summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/context
diff options
context:
space:
mode:
authorNorbert Preining <preining@logic.at>2019-02-24 15:12:57 +0000
committerNorbert Preining <preining@logic.at>2019-02-24 15:12:57 +0000
commit1314fbe93790c501dc436a5cf99f106b9e5c0f63 (patch)
tree04dc7734c8be8ffe385d41f4388826ef5857b6f9 /Master/texmf-dist/tex/context
parenteb80ce7b34f59896a1dfee5ca422495394d6677f (diff)
Revert "ConTeXt version 2019.02.22 19:35"
This reverts commit 5c6357cdb820b4f628d036ba7b2248f221d50c0b. git-svn-id: svn://tug.org/texlive/trunk@50112 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/context')
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/cont-new.mkii2
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/context.mkii2
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/core-sys.mkii12
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/enco-agr.mkii3
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/enco-def.mkii1
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/enco-uc.mkii2
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/mult-cs.mkii10
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/mult-de.mkii8
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/mult-en.mkii7
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/mult-fr.mkii7
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/mult-it.mkii8
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/mult-nl.mkii12
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/mult-pe.mkii7
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/mult-ro.mkii8
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/strc-reg.mkii4
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/syst-rtp.mkiv (renamed from Master/texmf-dist/tex/context/base/mkiv/syst-rtp.mkiv)0
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/unic-003.mkii4
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/xetx-chr.mkii1
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/anch-bck.mkvi24
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/anch-pgr.lua140
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/anch-pgr.mkiv14
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/anch-pos.lua166
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/anch-pos.mkiv18
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/anch-snc.lua271
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/anch-snc.mkiv272
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/anch-tab.mkiv17
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/attr-col.lua48
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/attr-ini.lua5
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/attr-ini.mkiv36
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/back-exp.lua936
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/back-exp.mkiv28
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/back-ini.lua221
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/back-ini.mkiv116
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/back-pdf.lua301
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/back-pdf.mkiv188
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/back-pdp.lua453
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/back-res.lua44
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/back-swf.mkiv101
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/bibl-bib.mkiv6
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/bibl-tra.mkiv2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/buff-imp-default.mkiv10
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/buff-ini.lua25
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/buff-ini.mkiv46
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/buff-ver.lua23
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/buff-ver.mkiv19
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/catc-ini.mkiv161
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/char-act.mkiv47
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/char-def.lua5239
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/char-emj.lua2566
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/char-ini.lua60
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/char-ini.mkiv16
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/char-tex.lua33
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/char-utf.lua13
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/chem-str.lua4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/chem-str.mkiv12
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/cldf-bas.lua155
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/cldf-ini.lua658
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/cldf-ini.mkiv8
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/cldf-int.lua5
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/cldf-scn.lua7
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/cldf-ver.lua87
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/colo-imp-crayola.mkiv10
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/colo-imp-svg.mkiv164
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/colo-ini.lua66
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/colo-ini.mkiv19
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/colo-run.lua2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/cont-log.mkiv40
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/cont-new.mkiv18
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/cont-run.lua48
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/cont-run.mkiv20
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/context.mkiv62
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/core-con.lua393
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/core-con.mkiv212
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/core-dat.lua62
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/core-dat.mkiv33
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/core-def.mkiv2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/core-env.lua67
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/core-env.mkiv46
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/core-lmt.lua34
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/core-lmt.mkiv32
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/core-sys.lua8
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/core-two.lua93
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/core-two.mkiv8
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/core-uti.lua23
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/data-aux.lua2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/data-pre.lua26
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/data-res.lua6
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/data-tex.lua8
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/data-tre.lua5
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/data-use.lua6
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/data-zip.lua10
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/driv-ini.lua194
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/driv-ini.mkiv25
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/export-example.css37
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/file-job.lua3
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/file-job.mkvi19
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/file-mod.mkvi32
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-aux.lua1
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-cff.lua554
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-cft.lua10
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-chk.lua94
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-col.lua191
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-col.mkvi5
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-con.lua179
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-ctx.lua585
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-def.lua120
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-dsp.lua736
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-emp.mkvi22
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-enh.lua16
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-ext.lua1856
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-fbk.lua272
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-fea.mkvi10
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-fil.mkvi33
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-gbn.lua262
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-gds.mkvi2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-hsh.lua101
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-imp-dimensions.lua115
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-imp-effects.lua414
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-imp-italics.lua147
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-imp-ligatures.lua136
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-imp-math.lua81
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-imp-notused.lua168
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-imp-properties.lua130
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-imp-quality.lua527
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-imp-reorder.lua174
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-imp-tex.lua144
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-imp-tracing.lua281
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-imp-unicode.lua82
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-ini.lua47
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-ini.mkvi99
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-lib.mkvi43
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-map.lua160
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-mat.mkvi30
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-mis.lua14
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-mps.lua131
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-nod.lua187
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-ocl.lua349
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-one.lua15
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-onr.lua79
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-osd.lua121
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-ota.lua10
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-otc.lua322
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-otj.lua110
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-otl.lua41
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-oto.lua69
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-otr.lua275
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-ots.lua500
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-ott.lua50
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-oup.lua644
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-pre.mkiv49
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-prv.lua78
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-sel.lua149
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-set.mkvi6
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-shp.lua128
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-sol.lua128
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-sty.mkvi25
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-sym.mkvi2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-syn.lua5
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-tfm.lua448
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-tra.mkiv2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-ttf.lua465
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-var.mkvi2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-vfc.lua123
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-vir.lua23
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-web.lua20
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-xtx.lua97
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/good-ctx.lua84
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/grph-epd.lua20
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/grph-inc.lua286
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/grph-inc.mkiv101
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/grph-mem.lua164
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/grph-pat.lua4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/grph-rul.lua149
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/grph-swf.lua3
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/grph-trf.mkiv39
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/java-imp-exa.mkiv (renamed from Master/texmf-dist/tex/context/base/mkiv/java-imp-example.mkiv)5
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/java-imp-fil.mkiv (renamed from Master/texmf-dist/tex/context/base/mkiv/java-imp-print.mkiv)4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/java-imp-fld.mkiv (renamed from Master/texmf-dist/tex/context/base/mkiv/java-imp-fields.mkiv)47
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/java-imp-rhh.mkiv (renamed from Master/texmf-dist/tex/context/base/mkiv/java-imp-highlight.mkiv)2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/java-imp-stp.mkiv (renamed from Master/texmf-dist/tex/context/base/mkiv/java-imp-steps.mkiv)2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/java-imp-videoplayer.mkiv82
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/java-imp-vplayer.mkiv105
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/java-ini.lua8
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/java-ini.mkiv17
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/l-bit32.lua10
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/l-dir.lua82
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/l-file.lua38
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/l-lpeg.lua195
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/l-lua.lua40
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/l-macro-imp-optimize.lua29
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/l-macro.lua95
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/l-number.lua23
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/l-os.lua132
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/l-package.lua4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/l-sandbox.lua3
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/l-sha.lua27
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/l-table.lua132
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/l-unicode.lua228
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lang-def.lua9
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lang-def.mkiv44
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lang-dis.lua107
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lang-exp.lua36
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lang-hyp.lua68
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lang-hyp.mkiv9
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lang-ini.mkiv270
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lang-lab.mkiv12
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lang-mis.mkiv156
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lang-rep.lua7
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lang-spa.mkiv18
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lang-txt.lua102
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lang-url.lua22
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lang-wrd.lua16
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lpdf-ano.lua276
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lpdf-aux.lua152
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lpdf-col.lua47
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lpdf-epa.lua783
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lpdf-epd.lua518
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lpdf-fld.lua180
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lpdf-fmt.lua21
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lpdf-fnt.lua202
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lpdf-grp.lua72
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lpdf-ini.lua1297
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lpdf-mis.lua126
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lpdf-nod.lua214
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lpdf-pda.xml85
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lpdf-pde.lua1157
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lpdf-pdx.xml1
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lpdf-pua.xml41
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lpdf-ren.lua12
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lpdf-res.lua26
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lpdf-swf.lua46
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lpdf-tag.lua244
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lpdf-u3d.lua26
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lpdf-wid.lua40
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lpdf-xmp.lua75
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/luat-bas.mkiv2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/luat-cbk.lua6
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/luat-cnf.lua4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/luat-cod.lua64
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/luat-env.lua24
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/luat-fio.lua4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/luat-fmt.lua14
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/luat-ini.lua16
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/luat-ini.mkiv127
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/luat-lib.mkiv16
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/luat-run.lua111
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/luat-soc.lua11
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/luat-soc.mkiv52
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/luat-sto.lua2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/luat-usr.lua3
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/luat-usr.mkiv4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lxml-aux.lua25
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lxml-css.lua137
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lxml-inf.lua3
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lxml-ini.mkiv21
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lxml-lpt.lua276
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lxml-tex.lua426
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/m-fonts-plugins.mkiv5
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/math-act.lua44
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/math-ali.mkiv29
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/math-arr.mkiv57
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/math-dim.lua3
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/math-dir.lua30
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/math-ext.lua27
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/math-fbk.lua201
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/math-fen.mkiv120
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/math-frc.lua4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/math-frc.mkiv42
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/math-inc.lua87
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/math-inc.mkiv69
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/math-ini.lua9
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/math-ini.mkiv146
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/math-noa.lua742
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/math-pln.mkiv2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/math-spa.lua37
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/math-stc.mkvi14
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/math-tag.lua437
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/math-vfu.lua344
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/meta-blb.lua322
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/meta-blb.mkiv56
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/meta-fnt.lua24
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/meta-imp-dum.mkiv4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/meta-imp-mat.mkiv38
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/meta-imp-txt.mkiv76
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/meta-ini.lua8
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/meta-ini.mkiv57
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/meta-nod.lua81
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/meta-nod.mkiv31
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/meta-pdf.lua76
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/meta-pdh.mkiv24
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/meta-tex.lua6
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/metatex.tex30
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/mlib-ctx.lua87
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/mlib-int.lua191
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/mlib-lua.lua1175
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/mlib-pdf.lua598
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/mlib-pdf.mkiv30
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/mlib-pps.lua1151
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/mlib-pps.mkiv35
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/mlib-run.lua279
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/mtx-context-domotica.tex31
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/mtx-context-fonts.tex98
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/mtx-context-listing.tex4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/mtx-context-xml.tex5
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/mult-aux.mkiv562
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/mult-def.lua33
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/mult-fun.lua34
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/mult-ini.lua16
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/mult-ini.mkiv15
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/mult-low.lua58
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/mult-prm.lua32
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/mult-prm.mkiv3
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/mult-sys.mkiv2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-acc.lua72
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-aux.lua198
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-bck.lua378
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-bck.mkiv21
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-dir.lua359
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-fin.lua472
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-fin.mkiv4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-fnt.lua545
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-ini.lua146
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-ini.mkiv4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-ltp.lua3261
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-met.lua172
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-mig.lua6
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-nut.lua327
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-par.lua48
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-ppt.lua173
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-pro.lua137
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-ref.lua291
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-res.lua329
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-rul.lua374
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-rul.mkiv39
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-scn.lua31
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-ser.lua8
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-shp.lua86
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-syn.lua109
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-tex.lua45
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-tra.lua256
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-tsk.lua609
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-tst.lua10
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/pack-bar.mkiv6
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/pack-bck.mkvi48
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/pack-box.mkiv1
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/pack-com.mkiv18
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/pack-cut.mkiv78
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/pack-lyr.mkiv86
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/pack-mrl.mkiv83
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/pack-obj.lua43
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/pack-obj.mkiv14
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/pack-rul.lua159
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/pack-rul.mkiv190
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/page-bck.mkiv2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/page-box.mkvi23
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/page-cst.lua161
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/page-cst.mkiv5
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/page-ffl.mkiv39
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/page-flt.mkiv10
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/page-imp.mkiv92
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/page-inf.mkiv8
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/page-ini.lua43
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/page-ini.mkiv7
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/page-inj.mkvi2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/page-lay.mkiv157
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/page-lin.lua44
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/page-lin.mkvi10
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/page-mix.lua19
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/page-mix.mkiv27
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/page-mul.mkiv36
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/page-one.mkiv63
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/page-otr.mkvi14
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/page-pcl.mkiv79
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/page-run.mkiv7
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/page-sel.mkvi4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/page-set.mkiv67
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/page-sid.mkiv153
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/page-smp.mkiv59
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/page-spr.mkiv35
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/page-str.lua73
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/page-str.mkiv2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/page-txt.mkvi33
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/publ-aut.lua48
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/publ-dat.lua123
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/publ-imp-apa.mkvi87
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/publ-imp-cite.mkvi3
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/publ-inc.lua26
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/publ-inc.mkiv63
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/publ-ini.lua43
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/publ-ini.mkiv75
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/scrn-bar.mkvi2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/scrn-but.mkvi19
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/scrn-fld.mkvi106
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/scrn-ini.mkvi2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/scrn-pag.mkvi20
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/scrn-ref.mkvi18
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/scrn-wid.mkvi97
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/scrp-cjk.lua107
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/scrp-eth.lua86
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/scrp-ini.lua247
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/scrp-ini.mkiv23
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/scrp-tib.lua81
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/sort-ini.lua29
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/sort-lan.lua46
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/spac-adj.lua67
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/spac-adj.mkiv51
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/spac-ali.lua16
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/spac-ali.mkiv134
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/spac-chr.lua100
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/spac-chr.mkiv2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/spac-flr.mkiv34
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/spac-grd.mkiv4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/spac-hor.mkiv56
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/spac-lin.mkiv4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/spac-pag.mkiv5
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/spac-par.mkiv14
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/spac-prf.lua27
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/spac-ver.lua421
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/spac-ver.mkiv186
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/status-files.pdfbin26589 -> 26054 bytes
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/status-lua.pdfbin268348 -> 255106 bytes
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-blk.lua92
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-blk.mkiv128
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-con.mkvi18
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-def.mkiv11
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-doc.lua138
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-doc.mkiv27
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-flt.lua34
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-flt.mkvi312
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-itm.mkvi4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-lnt.mkvi6
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-lst.lua37
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-lst.mkvi17
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-mar.lua180
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-mat.mkiv16
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-not.lua39
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-not.mkvi55
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-num.lua27
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-num.mkiv16
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-pag.lua16
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-pag.mkiv29
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-ref.lua102
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-ref.mkvi502
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-reg.lua407
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-reg.mkiv232
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-ren.mkiv46
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-sbe.mkiv4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-sec.mkiv107
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-syn.mkiv4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-tag.lua106
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-tag.mkiv108
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-usr.lua29
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-usr.mkiv180
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/supp-box.lua236
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/supp-box.mkiv182
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/supp-dir.mkiv56
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/supp-mat.mkiv2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/symb-emj.lua27
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/symb-imp-fontawesome.mkiv1505
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/symb-imp-mis.mkiv23
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/symb-imp-mvs.mkiv18
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/symb-ini.mkiv76
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/symb-run.mkiv62
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/syst-aux.lua133
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/syst-aux.mkiv1521
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/syst-cmp.lua8
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/syst-cmp.mkiv22
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/syst-ini.mkiv643
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/syst-lua.lua11
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/syst-lua.mkiv36
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/tabl-com.mkiv64
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/tabl-ltb.mkiv8
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/tabl-ntb.mkiv100
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/tabl-tab.mkiv38
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/tabl-tbl.mkiv463
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/tabl-tsp.mkiv29
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/tabl-xtb.lua13
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/tabl-xtb.mkvi149
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/task-ini.lua345
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/toks-aux.mkiv51
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/toks-ini.lua115
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/toks-ini.mkiv5
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/toks-scn.lua70
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/toks-scn.mkiv22
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/trac-deb.lua41
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/trac-inf.lua42
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/trac-jus.lua10
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/trac-log.lua63
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/trac-par.lua29
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/trac-set.lua17
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/trac-vis.lua366
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/trac-vis.mkiv7
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/type-ini.mkvi90
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/type-set.mkiv2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-bld.lua61
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-brk.lua30
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-cap.lua173
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-cap.mkiv62
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-chr.lua205
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-chr.mkiv19
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-cln.lua12
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-del.mkiv118
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-dha.lua58
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-dig.lua20
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-dir.lua17
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-dir.mkiv190
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-drp.lua45
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-drp.mkiv2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-dua.lua144
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-dub.lua271
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-duc.lua278
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-fkr.lua17
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-fln.lua64
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-fln.mkiv2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-itc.lua69
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-krn.lua314
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-lin.lua93
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-mar.lua83
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-mar.mkiv12
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-pag.lua5
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-par.mkiv2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-pnc.lua21
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-rep.lua10
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-rub.lua42
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-rub.mkiv9
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-scr.mkiv6
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-spa.lua12
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-sus.lua9
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-tal.lua37
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-wrp.lua85
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-wrp.mkiv9
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-deb.lua83
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-env.lua45
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-evo.lua109
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-fil.lua66
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-fmt.lua11
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-jsn.lua95
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-lib.lua62
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-lua.lua7
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-mrg.lua1
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-prs.lua35
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-sac.lua113
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-seq.lua370
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-sha.lua35
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-soc-imp-copas.lua931
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-soc-imp-ftp.lua402
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-soc-imp-headers.lua145
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-soc-imp-http.lua436
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-soc-imp-ltn12.lua387
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-soc-imp-mime.lua104
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-soc-imp-reset.lua13
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-soc-imp-smtp.lua267
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-soc-imp-socket.lua193
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-soc-imp-tp.lua144
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-soc-imp-url.lua268
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-soc.lua32
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-sql-imp-ffi.lua590
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-sql-imp-library.lua8
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-sql-imp-sqlite.lua13
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-sql-logins.lua12
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-sql-users.lua10
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-sta.lua14
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-sto.lua13
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-str.lua526
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-tab.lua54
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-you.lua1
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/koeielettersot.lfg16
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/type-imp-cambria.mkiv11
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/type-imp-dejavu.mkiv5
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/type-imp-firacode.mkiv54
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/type-imp-latinmodern.mkiv4
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/type-imp-lato.mkiv3
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/type-imp-lucida-typeone.mkiv2
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/type-imp-modernlatin.mkiv56
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/type-imp-opendyslexic.mkiv7
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/type-imp-plex.mkiv370
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/type-imp-source.mkiv48
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/type-imp-texgyre.mkiv17
-rw-r--r--Master/texmf-dist/tex/context/interface/mkii/keys-cs.xml10
-rw-r--r--Master/texmf-dist/tex/context/interface/mkii/keys-de.xml8
-rw-r--r--Master/texmf-dist/tex/context/interface/mkii/keys-en.xml7
-rw-r--r--Master/texmf-dist/tex/context/interface/mkii/keys-fr.xml7
-rw-r--r--Master/texmf-dist/tex/context/interface/mkii/keys-it.xml8
-rw-r--r--Master/texmf-dist/tex/context/interface/mkii/keys-nl.xml12
-rw-r--r--Master/texmf-dist/tex/context/interface/mkii/keys-pe.xml7
-rw-r--r--Master/texmf-dist/tex/context/interface/mkii/keys-ro.xml8
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/context-en.xml1416
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-attribute.xml2
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-backend.xml26
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-block.xml25
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-boxes.xml15
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-buffer.xml8
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-character.xml8
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-characteralign.xml51
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-color.xml4
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-columns.xml8
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-commandhandler.xml12
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-common-keyword.xml17
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-common-value.xml87
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-context.pdfbin865671 -> 846220 bytes
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-context.xml6
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-contextname.xml2353
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-delimitedtext.xml5
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-description.xml5
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-document.xml30
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-effect.xml2
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-enumeration.xml5
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-file.xml2
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-filler.xml16
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-fittingpage.xml2
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-floats.xml222
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-fonts.xml36
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-formula.xml3
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-framed.xml17
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-graphics.xml22
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-grid.xml9
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-hspace.xml7
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-interactionscreen.xml1
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-kerning.xml32
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-label.xml5
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-language.xml10
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-layout.xml5
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-linefiller.xml105
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-list.xml64
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-math.xml14
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-mathfence.xml3
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-mathmatrix.xml9
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-mathname.xml1091
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-narrow.xml6
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-note.xml6
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-pagecolumns.xml90
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-pagegrid.xml325
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-pagemarks.xml18
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-pagestate.xml41
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-readme.pdfbin61161 -> 61029 bytes
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-register.xml24
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-ruby.xml1
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-scale.xml3
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-script.xml22
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-section.xml2
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-setups.xml9
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-startstop.xml30
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-strut.xml2
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-symbol.xml5
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-system.xml53
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-tabulation.xml23
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-tagging.xml10
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-texts.xml79
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-token.xml31
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-unit.xml12
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-userdata.xml85
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-verbatim.xml4
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-visualizer.xml20
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-vspace.xml109
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-whitespace.xml6
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-xml.xml28
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-xtable.xml48
-rw-r--r--Master/texmf-dist/tex/context/modules/common/s-abbreviations-logos.tex3
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/m-asymptote.lua2
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/m-asymptote.mkiv58
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/m-chart.lua17
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/m-chart.mkvi7
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/m-format.mkiv4
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/m-matrix.mkiv153
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/m-maybe.mkiv57
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/m-old-columnsets.mkiv7
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/m-old-multicolumns.mkiv7
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/m-oldfun.mkiv4
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/m-oldnum.mkiv25
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/m-punk.mkiv27
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/m-scite.mkiv36
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/m-units.mkiv14
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/ppchtex.mkiv8
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-article-basic.mkiv19
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-article-titlepage.mkiv65
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-article-titletop.mkiv68
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-cgj.mkiv714
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-evohome.mkiv16
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-fonts-basics.mkiv2
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-fonts-charts.mkiv70
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-fonts-complete.mkiv119
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-fonts-effects.mkiv59
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-fonts-features.lua173
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-fonts-features.mkiv1
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-fonts-shapes.lua380
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-fonts-shapes.mkiv21
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-fonts-statistics.mkiv80
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-fonts-system.lua274
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-fonts-system.mkiv17
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-fonts-tables.lua655
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-fonts-tables.mkiv22
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-fonts-variable.mkiv30
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-languages-hyphenation.lua7
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-languages-system.lua2
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-maps.mkiv8
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-present-dark.mkiv357
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-present-steps.mkiv177
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-references-identify.mkiv69
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-xml-analyzers.lua6
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-youless.mkiv60
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/x-asciimath.lua24
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/x-mathml.mkiv2
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/x-setups-basics.mkiv19
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/x-setups-overview.mkiv9
-rw-r--r--Master/texmf-dist/tex/context/patterns/common/lang-agr.rme41
-rw-r--r--Master/texmf-dist/tex/context/patterns/common/lang-bg.rme935
-rw-r--r--Master/texmf-dist/tex/context/patterns/common/lang-de.rme65
-rw-r--r--Master/texmf-dist/tex/context/patterns/common/lang-deo.rme65
-rw-r--r--Master/texmf-dist/tex/context/patterns/common/lang-fr.rme9
-rw-r--r--Master/texmf-dist/tex/context/patterns/common/lang-la.rme96
-rw-r--r--Master/texmf-dist/tex/context/patterns/common/lang-th.rme35
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-agr.pat72
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-bg.pat8508
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-de.pat22403
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-deo.pat21973
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-fr.pat4
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-la.pat1
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-th.pat321
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkiv/lang-agr.lua47
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkiv/lang-bg.lua943
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkiv/lang-de.lua71
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkiv/lang-deo.lua71
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkiv/lang-fr.lua15
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkiv/lang-la.lua102
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkiv/lang-th.lua41
-rw-r--r--Master/texmf-dist/tex/context/sample/common/aesop-de.tex (renamed from Master/texmf-dist/tex/context/sample/third/aesop-de.tex)0
-rw-r--r--Master/texmf-dist/tex/context/sample/common/cervantes-es.tex (renamed from Master/texmf-dist/tex/context/sample/third/cervantes-es.tex)0
-rw-r--r--Master/texmf-dist/tex/context/sample/common/khatt-ar.tex (renamed from Master/texmf-dist/tex/context/sample/third/khatt-ar.tex)0
-rw-r--r--Master/texmf-dist/tex/context/sample/common/khatt-en.tex (renamed from Master/texmf-dist/tex/context/sample/third/khatt-en.tex)0
-rw-r--r--Master/texmf-dist/tex/context/sample/common/quevedo-es.tex (renamed from Master/texmf-dist/tex/context/sample/third/quevedo-es.tex)0
730 files changed, 42144 insertions, 100826 deletions
diff --git a/Master/texmf-dist/tex/context/base/mkii/cont-new.mkii b/Master/texmf-dist/tex/context/base/mkii/cont-new.mkii
index a688bc4b45c..49499250257 100644
--- a/Master/texmf-dist/tex/context/base/mkii/cont-new.mkii
+++ b/Master/texmf-dist/tex/context/base/mkii/cont-new.mkii
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2019.02.22 19:35}
+\newcontextversion{2018.04.04 00:51}
%D This file is loaded at runtime, thereby providing an
%D excellent place for hacks, patches, extensions and new
diff --git a/Master/texmf-dist/tex/context/base/mkii/context.mkii b/Master/texmf-dist/tex/context/base/mkii/context.mkii
index 398b6e89435..2938661941d 100644
--- a/Master/texmf-dist/tex/context/base/mkii/context.mkii
+++ b/Master/texmf-dist/tex/context/base/mkii/context.mkii
@@ -20,7 +20,7 @@
%D your styles an modules.
\edef\contextformat {\jobname}
-\edef\contextversion{2019.02.22 19:35}
+\edef\contextversion{2018.04.04 00:51}
%D For those who want to use this:
diff --git a/Master/texmf-dist/tex/context/base/mkii/core-sys.mkii b/Master/texmf-dist/tex/context/base/mkii/core-sys.mkii
index 5aa669d2c1e..54778eeed52 100644
--- a/Master/texmf-dist/tex/context/base/mkii/core-sys.mkii
+++ b/Master/texmf-dist/tex/context/base/mkii/core-sys.mkii
@@ -167,7 +167,7 @@
\def\stoplocal {\dostopglobaldefs}
\def\startglobal {\dostartglobaldefs<+}
\def\stopglobal {\dostopglobaldefs}
-
+
\def\complexstart[#1]{\bgroup\getvalue{\e!start#1}}
\def\complexstop [#1]{\getvalue{\e!stop #1}\egroup}
@@ -215,7 +215,7 @@
\def\setupstartstop
{\dodoubleargument\dosetupstartstop}
-
+
% \docommand kan niet worden gebruikt omdat deze macro
% soms lokaal wordt gebruikt
@@ -275,7 +275,7 @@
\def\docommand##1{\setbox0\hbox{\getvalue{\string##1}##1}}%
\processcommalist[#1]\docommand
\egroup}
-
+
\newif\ifforcefileexpansion % handy for document level overload
%D The next implementation is about 4 times as faster than a
@@ -374,7 +374,7 @@
\let\unicodechar\numbertoutf
\edef\ascii{#1}%
\expandafter\endgroup\expandafter\edef\expandafter#2\expandafter{\ascii}}
-
+
% \setvalue{statevalue\v!stop }{0}
% \setvalue{statevalue\v!start }{1}
% \setvalue{statevalue\v!normaal}{2}
@@ -385,12 +385,12 @@
% {\chardef\currentstate=0\getvalue{statevalue\getvalue{#1\c!state}\relax}
%
% \ifcase\currentstate ...
-
+
\def\redo{\dorepeat} % [n*10], kind of obsolete
% obsolete, use \dorecurse instead
%
% \def\herhaler {\repeater}
% \def\herhaalmetcommando {\dorepeatwithcommand}
-
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/enco-agr.mkii b/Master/texmf-dist/tex/context/base/mkii/enco-agr.mkii
index 9d821cca1c6..1dbb9b577af 100644
--- a/Master/texmf-dist/tex/context/base/mkii/enco-agr.mkii
+++ b/Master/texmf-dist/tex/context/base/mkii/enco-agr.mkii
@@ -17,7 +17,6 @@
\definecasemaps 91 to 255 lc 0 uc 0
\definecaseself 4 % apostrofe
- \definecaseself 5 % greekbetaalt
\stopmapping
@@ -27,7 +26,7 @@
\definecharacter endash 2
\definecharacter emdash 3
\definecharacter apostrophe 4
-\definecharacter greekbetaalt 5
+\definecharacter greekaltbeta 5
\definecharacter epih 6
\definecharacter textbraceleft 8
diff --git a/Master/texmf-dist/tex/context/base/mkii/enco-def.mkii b/Master/texmf-dist/tex/context/base/mkii/enco-def.mkii
index 53a3e9a981b..20c885d4dca 100644
--- a/Master/texmf-dist/tex/context/base/mkii/enco-def.mkii
+++ b/Master/texmf-dist/tex/context/base/mkii/enco-def.mkii
@@ -505,7 +505,6 @@
\definecharacter greekalpha {\alpha}
\definecharacter greekbeta {\beta}
-\definecharacter greekbetaalt {\beta}
\definecharacter greekgamma {\gamma}
\definecharacter greekdelta {\delta}
\definecharacter greekepsilon {\varepsilon}
diff --git a/Master/texmf-dist/tex/context/base/mkii/enco-uc.mkii b/Master/texmf-dist/tex/context/base/mkii/enco-uc.mkii
index f39260b16d0..0be22318a0f 100644
--- a/Master/texmf-dist/tex/context/base/mkii/enco-uc.mkii
+++ b/Master/texmf-dist/tex/context/base/mkii/enco-uc.mkii
@@ -505,8 +505,6 @@
\definecharacter greekupsilondialytikatonos {\uchar3{176}}
% new:
-
-\definecharacter greekbetaalt {\uchar3{208}}
\definecharacter greekthetaalt {\uchar3{209}}
\definecharacter greekphialt {\uchar3{213}}
\definecharacter greekpialt {\uchar3{214}}
diff --git a/Master/texmf-dist/tex/context/base/mkii/mult-cs.mkii b/Master/texmf-dist/tex/context/base/mkii/mult-cs.mkii
index 4ab875e4da6..9a4cc112bf9 100644
--- a/Master/texmf-dist/tex/context/base/mkii/mult-cs.mkii
+++ b/Master/texmf-dist/tex/context/base/mkii/mult-cs.mkii
@@ -137,7 +137,6 @@
\setinterfacevariable{chemicals}{chemicals}
\setinterfacevariable{chemistry}{chemistry}
\setinterfacevariable{cite}{cite}
-\setinterfacevariable{closed}{closed}
\setinterfacevariable{color}{barevne}
\setinterfacevariable{column}{column}
\setinterfacevariable{columns}{sloupce}
@@ -419,7 +418,7 @@
\setinterfacevariable{positive}{positiv}
\setinterfacevariable{postponing}{odlozit}
\setinterfacevariable{postscript}{postscript}
-\setinterfacevariable{precedingpage}{precedingpage}
+\setinterfacevariable{precedingpage}{followingpage}
\setinterfacevariable{preference}{nastaveni}
\setinterfacevariable{preview}{nahled}
\setinterfacevariable{previous}{predchozi}
@@ -587,7 +586,6 @@
\setinterfacevariable{understrike}{understrike}
\setinterfacevariable{understrikes}{understrikes}
\setinterfacevariable{unframed}{unframed}
-\setinterfacevariable{unicode}{unicode}
\setinterfacevariable{unit}{jednotka}
\setinterfacevariable{units}{jednotky}
\setinterfacevariable{unknown}{neznamy}
@@ -855,7 +853,7 @@
\setinterfaceconstant{headseparator}{headseparator}
\setinterfaceconstant{headstyle}{stylhlavicky}
\setinterfaceconstant{height}{vyska}
-\setinterfaceconstant{hfactor}{hfaktor}
+\setinterfaceconstant{hfactor}{vfaktor}
\setinterfaceconstant{hfil}{hfil}
\setinterfaceconstant{hidenumber}{hidenumber}
\setinterfaceconstant{hoffset}{hoffset}
@@ -1029,7 +1027,6 @@
\setinterfaceconstant{otherstext}{otherstext}
\setinterfaceconstant{outermargin}{outermargin}
\setinterfaceconstant{overprint}{overprint}
-\setinterfaceconstant{ownerpassword}{ownerpassword}
\setinterfaceconstant{ownnumber}{vlastnicislo}
\setinterfaceconstant{page}{stranka}
\setinterfaceconstant{pageboundaries}{hranicestranky}
@@ -1243,7 +1240,6 @@
\setinterfaceconstant{textstyle}{styltextu}
\setinterfaceconstant{textwidth}{sirkatextu}
\setinterfaceconstant{threshold}{threshold}
-\setinterfaceconstant{time}{time}
\setinterfaceconstant{title}{titul}
\setinterfaceconstant{titlecolor}{barvatitulek}
\setinterfaceconstant{titlecommand}{titlecommand}
@@ -1272,14 +1268,12 @@
\setinterfaceconstant{up}{up}
\setinterfaceconstant{urlalternative}{urlalternativa}
\setinterfaceconstant{urlspace}{prostorurl}
-\setinterfaceconstant{userpassword}{userpassword}
\setinterfaceconstant{validate}{validovat}
\setinterfaceconstant{values}{values}
\setinterfaceconstant{vcommand}{vprikaz}
\setinterfaceconstant{vcompact}{vcompact}
\setinterfaceconstant{vector}{vector}
\setinterfaceconstant{veroffset}{offsethlavicky}
-\setinterfaceconstant{vfactor}{vfaktor}
\setinterfaceconstant{vfil}{vfil}
\setinterfaceconstant{viewerprefix}{viewerprefix}
\setinterfaceconstant{voffset}{voffset}
diff --git a/Master/texmf-dist/tex/context/base/mkii/mult-de.mkii b/Master/texmf-dist/tex/context/base/mkii/mult-de.mkii
index 46a2393045c..a5269ff3f64 100644
--- a/Master/texmf-dist/tex/context/base/mkii/mult-de.mkii
+++ b/Master/texmf-dist/tex/context/base/mkii/mult-de.mkii
@@ -137,7 +137,6 @@
\setinterfacevariable{chemicals}{chemicals}
\setinterfacevariable{chemistry}{chemistry}
\setinterfacevariable{cite}{cite}
-\setinterfacevariable{closed}{closed}
\setinterfacevariable{color}{farbe}
\setinterfacevariable{column}{column}
\setinterfacevariable{columns}{spalten}
@@ -419,7 +418,7 @@
\setinterfacevariable{positive}{positiv}
\setinterfacevariable{postponing}{verschieben}
\setinterfacevariable{postscript}{postscript}
-\setinterfacevariable{precedingpage}{precedingpage}
+\setinterfacevariable{precedingpage}{followingpage}
\setinterfacevariable{preference}{einstellung}
\setinterfacevariable{preview}{vorschau}
\setinterfacevariable{previous}{vorig}
@@ -587,7 +586,6 @@
\setinterfacevariable{understrike}{understrike}
\setinterfacevariable{understrikes}{understrikes}
\setinterfacevariable{unframed}{unframed}
-\setinterfacevariable{unicode}{unicode}
\setinterfacevariable{unit}{einheit}
\setinterfacevariable{units}{einheiten}
\setinterfacevariable{unknown}{unbekannt}
@@ -1029,7 +1027,6 @@
\setinterfaceconstant{otherstext}{otherstext}
\setinterfaceconstant{outermargin}{outermargin}
\setinterfaceconstant{overprint}{overprint}
-\setinterfaceconstant{ownerpassword}{ownerpassword}
\setinterfaceconstant{ownnumber}{eigenenummer}
\setinterfaceconstant{page}{seite}
\setinterfaceconstant{pageboundaries}{seitenbegrenzung}
@@ -1243,7 +1240,6 @@
\setinterfaceconstant{textstyle}{textstil}
\setinterfaceconstant{textwidth}{textbreite}
\setinterfaceconstant{threshold}{threshold}
-\setinterfaceconstant{time}{time}
\setinterfaceconstant{title}{titel}
\setinterfaceconstant{titlecolor}{titelfarbe}
\setinterfaceconstant{titlecommand}{titlecommand}
@@ -1272,14 +1268,12 @@
\setinterfaceconstant{up}{up}
\setinterfaceconstant{urlalternative}{urlalternative}
\setinterfaceconstant{urlspace}{urlspatium}
-\setinterfaceconstant{userpassword}{userpassword}
\setinterfaceconstant{validate}{validieren}
\setinterfaceconstant{values}{values}
\setinterfaceconstant{vcommand}{vbefehl}
\setinterfaceconstant{vcompact}{vcompact}
\setinterfaceconstant{vector}{vector}
\setinterfaceconstant{veroffset}{kopfoffset}
-\setinterfaceconstant{vfactor}{vfaktor}
\setinterfaceconstant{vfil}{vfil}
\setinterfaceconstant{viewerprefix}{viewerprefix}
\setinterfaceconstant{voffset}{voffset}
diff --git a/Master/texmf-dist/tex/context/base/mkii/mult-en.mkii b/Master/texmf-dist/tex/context/base/mkii/mult-en.mkii
index faf2685769b..5c233a0c408 100644
--- a/Master/texmf-dist/tex/context/base/mkii/mult-en.mkii
+++ b/Master/texmf-dist/tex/context/base/mkii/mult-en.mkii
@@ -137,7 +137,6 @@
\setinterfacevariable{chemicals}{chemicals}
\setinterfacevariable{chemistry}{chemistry}
\setinterfacevariable{cite}{cite}
-\setinterfacevariable{closed}{closed}
\setinterfacevariable{color}{color}
\setinterfacevariable{column}{column}
\setinterfacevariable{columns}{columns}
@@ -419,7 +418,7 @@
\setinterfacevariable{positive}{positive}
\setinterfacevariable{postponing}{postponing}
\setinterfacevariable{postscript}{postscript}
-\setinterfacevariable{precedingpage}{precedingpage}
+\setinterfacevariable{precedingpage}{followingpage}
\setinterfacevariable{preference}{preference}
\setinterfacevariable{preview}{preview}
\setinterfacevariable{previous}{previous}
@@ -1028,7 +1027,6 @@
\setinterfaceconstant{otherstext}{otherstext}
\setinterfaceconstant{outermargin}{outermargin}
\setinterfaceconstant{overprint}{overprint}
-\setinterfaceconstant{ownerpassword}{ownerpassword}
\setinterfaceconstant{ownnumber}{ownnumber}
\setinterfaceconstant{page}{page}
\setinterfaceconstant{pageboundaries}{pageboundaries}
@@ -1242,7 +1240,6 @@
\setinterfaceconstant{textstyle}{textstyle}
\setinterfaceconstant{textwidth}{textwidth}
\setinterfaceconstant{threshold}{threshold}
-\setinterfaceconstant{time}{time}
\setinterfaceconstant{title}{title}
\setinterfaceconstant{titlecolor}{titlecolor}
\setinterfaceconstant{titlecommand}{titlecommand}
@@ -1271,14 +1268,12 @@
\setinterfaceconstant{up}{up}
\setinterfaceconstant{urlalternative}{urlalternative}
\setinterfaceconstant{urlspace}{urlspace}
-\setinterfaceconstant{userpassword}{userpassword}
\setinterfaceconstant{validate}{validate}
\setinterfaceconstant{values}{values}
\setinterfaceconstant{vcommand}{vcommand}
\setinterfaceconstant{vcompact}{vcompact}
\setinterfaceconstant{vector}{vector}
\setinterfaceconstant{veroffset}{veroffset}
-\setinterfaceconstant{vfactor}{vfactor}
\setinterfaceconstant{vfil}{vfil}
\setinterfaceconstant{viewerprefix}{viewerprefix}
\setinterfaceconstant{voffset}{voffset}
diff --git a/Master/texmf-dist/tex/context/base/mkii/mult-fr.mkii b/Master/texmf-dist/tex/context/base/mkii/mult-fr.mkii
index fe883d50f14..7cf1bc68442 100644
--- a/Master/texmf-dist/tex/context/base/mkii/mult-fr.mkii
+++ b/Master/texmf-dist/tex/context/base/mkii/mult-fr.mkii
@@ -137,7 +137,6 @@
\setinterfacevariable{chemicals}{chemicals}
\setinterfacevariable{chemistry}{chemistry}
\setinterfacevariable{cite}{cite}
-\setinterfacevariable{closed}{closed}
\setinterfacevariable{color}{couleur}
\setinterfacevariable{column}{colonne}
\setinterfacevariable{columns}{colonnes}
@@ -419,7 +418,7 @@
\setinterfacevariable{positive}{positif}
\setinterfacevariable{postponing}{postponing}
\setinterfacevariable{postscript}{postscript}
-\setinterfacevariable{precedingpage}{precedingpage}
+\setinterfacevariable{precedingpage}{followingpage}
\setinterfacevariable{preference}{preference}
\setinterfacevariable{preview}{previsualisation}
\setinterfacevariable{previous}{precedent}
@@ -1028,7 +1027,6 @@
\setinterfaceconstant{otherstext}{otherstext}
\setinterfaceconstant{outermargin}{margeexterieure}
\setinterfaceconstant{overprint}{overprint}
-\setinterfaceconstant{ownerpassword}{ownerpassword}
\setinterfaceconstant{ownnumber}{numeroproprio}
\setinterfaceconstant{page}{page}
\setinterfaceconstant{pageboundaries}{limitespage}
@@ -1242,7 +1240,6 @@
\setinterfaceconstant{textstyle}{styletexte}
\setinterfaceconstant{textwidth}{largeurtexte}
\setinterfaceconstant{threshold}{threshold}
-\setinterfaceconstant{time}{time}
\setinterfaceconstant{title}{titre}
\setinterfaceconstant{titlecolor}{couleurtitre}
\setinterfaceconstant{titlecommand}{titlecommand}
@@ -1271,14 +1268,12 @@
\setinterfaceconstant{up}{up}
\setinterfaceconstant{urlalternative}{alternativeurl}
\setinterfaceconstant{urlspace}{espaceurl}
-\setinterfaceconstant{userpassword}{userpassword}
\setinterfaceconstant{validate}{valider}
\setinterfaceconstant{values}{values}
\setinterfaceconstant{vcommand}{vcommande}
\setinterfaceconstant{vcompact}{vcompact}
\setinterfaceconstant{vector}{vector}
\setinterfaceconstant{veroffset}{veroffset}
-\setinterfaceconstant{vfactor}{vfactor}
\setinterfaceconstant{vfil}{vfil}
\setinterfaceconstant{viewerprefix}{viewerprefix}
\setinterfaceconstant{voffset}{voffset}
diff --git a/Master/texmf-dist/tex/context/base/mkii/mult-it.mkii b/Master/texmf-dist/tex/context/base/mkii/mult-it.mkii
index d83672d3895..38fb2de40d0 100644
--- a/Master/texmf-dist/tex/context/base/mkii/mult-it.mkii
+++ b/Master/texmf-dist/tex/context/base/mkii/mult-it.mkii
@@ -137,7 +137,6 @@
\setinterfacevariable{chemicals}{chemicals}
\setinterfacevariable{chemistry}{chemistry}
\setinterfacevariable{cite}{cite}
-\setinterfacevariable{closed}{closed}
\setinterfacevariable{color}{colore}
\setinterfacevariable{column}{colonna}
\setinterfacevariable{columns}{colonne}
@@ -419,7 +418,7 @@
\setinterfacevariable{positive}{positivo}
\setinterfacevariable{postponing}{posporre}
\setinterfacevariable{postscript}{postscript}
-\setinterfacevariable{precedingpage}{precedingpage}
+\setinterfacevariable{precedingpage}{followingpage}
\setinterfacevariable{preference}{preferenza}
\setinterfacevariable{preview}{anteprima}
\setinterfacevariable{previous}{precedente}
@@ -587,7 +586,6 @@
\setinterfacevariable{understrike}{understrike}
\setinterfacevariable{understrikes}{understrikes}
\setinterfacevariable{unframed}{unframed}
-\setinterfacevariable{unicode}{unicode}
\setinterfacevariable{unit}{unita}
\setinterfacevariable{units}{unita}
\setinterfacevariable{unknown}{ignoto}
@@ -1029,7 +1027,6 @@
\setinterfaceconstant{otherstext}{otherstext}
\setinterfaceconstant{outermargin}{margineesterno}
\setinterfaceconstant{overprint}{overprint}
-\setinterfaceconstant{ownerpassword}{ownerpassword}
\setinterfaceconstant{ownnumber}{numeroproprio}
\setinterfaceconstant{page}{pagina}
\setinterfaceconstant{pageboundaries}{limitipagina}
@@ -1243,7 +1240,6 @@
\setinterfaceconstant{textstyle}{stiletesto}
\setinterfaceconstant{textwidth}{ampiezzatesto}
\setinterfaceconstant{threshold}{threshold}
-\setinterfaceconstant{time}{time}
\setinterfaceconstant{title}{titolo}
\setinterfaceconstant{titlecolor}{coloretitolo}
\setinterfaceconstant{titlecommand}{titlecommand}
@@ -1272,14 +1268,12 @@
\setinterfaceconstant{up}{up}
\setinterfaceconstant{urlalternative}{alternativaurl}
\setinterfaceconstant{urlspace}{spaziourl}
-\setinterfaceconstant{userpassword}{userpassword}
\setinterfaceconstant{validate}{verifica}
\setinterfaceconstant{values}{values}
\setinterfaceconstant{vcommand}{vcomando}
\setinterfaceconstant{vcompact}{vcompact}
\setinterfaceconstant{vector}{vector}
\setinterfaceconstant{veroffset}{veroffset}
-\setinterfaceconstant{vfactor}{vfactor}
\setinterfaceconstant{vfil}{vfil}
\setinterfaceconstant{viewerprefix}{viewerprefix}
\setinterfaceconstant{voffset}{voffset}
diff --git a/Master/texmf-dist/tex/context/base/mkii/mult-nl.mkii b/Master/texmf-dist/tex/context/base/mkii/mult-nl.mkii
index 88450336313..ba7c5a42c4f 100644
--- a/Master/texmf-dist/tex/context/base/mkii/mult-nl.mkii
+++ b/Master/texmf-dist/tex/context/base/mkii/mult-nl.mkii
@@ -137,7 +137,6 @@
\setinterfacevariable{chemicals}{chemicals}
\setinterfacevariable{chemistry}{chemie}
\setinterfacevariable{cite}{cite}
-\setinterfacevariable{closed}{gesloten}
\setinterfacevariable{color}{kleur}
\setinterfacevariable{column}{kolom}
\setinterfacevariable{columns}{kolommen}
@@ -186,7 +185,6 @@
\setinterfacevariable{extremestretch}{extremestretch}
\setinterfacevariable{fact}{gegeven}
\setinterfacevariable{february}{februari}
-\setinterfacevariable{field}{veld}
\setinterfacevariable{figure}{figuur}
\setinterfacevariable{figures}{figuren}
\setinterfacevariable{file}{file}
@@ -796,7 +794,7 @@
\setinterfaceconstant{family}{soort}
\setinterfaceconstant{features}{features}
\setinterfaceconstant{fences}{fences}
-\setinterfaceconstant{field}{veld}
+\setinterfaceconstant{field}{field}
\setinterfaceconstant{fieldbackgroundcolor}{veldachtergrondkleur}
\setinterfaceconstant{fieldframecolor}{veldkaderkleur}
\setinterfaceconstant{fieldlayer}{veldlaag}
@@ -851,7 +849,6 @@
\setinterfaceconstant{headerstate}{hoofdstatus}
\setinterfaceconstant{headlabel}{koplabel}
\setinterfaceconstant{headnumber}{kopnummer}
-\setinterfaceconstant{headseparator}{kopscheider}
\setinterfaceconstant{headstyle}{kopletter}
\setinterfaceconstant{height}{hoogte}
\setinterfaceconstant{hfactor}{hfactor}
@@ -1028,7 +1025,6 @@
\setinterfaceconstant{otherstext}{otherstext}
\setinterfaceconstant{outermargin}{buitenmarge}
\setinterfaceconstant{overprint}{overprint}
-\setinterfaceconstant{ownerpassword}{ownerpassword}
\setinterfaceconstant{ownnumber}{eigennummer}
\setinterfaceconstant{page}{pagina}
\setinterfaceconstant{pageboundaries}{paginaovergangen}
@@ -1079,7 +1075,6 @@
\setinterfaceconstant{preview}{preview}
\setinterfaceconstant{previous}{vorige}
\setinterfaceconstant{previousnumber}{vorigenummer}
-\setinterfaceconstant{print}{print}
\setinterfaceconstant{printable}{printbaar}
\setinterfaceconstant{process}{proces}
\setinterfaceconstant{profile}{profile}
@@ -1165,10 +1160,8 @@
\setinterfaceconstant{sidemethod}{zijmethode}
\setinterfaceconstant{sidespaceafter}{zijnawit}
\setinterfaceconstant{sidespacebefore}{zijvoorwit}
-\setinterfaceconstant{sidespaceinbetween}{zijtussenwit}
\setinterfaceconstant{sidethreshold}{sidethreshold}
\setinterfaceconstant{sign}{teken}
-\setinterfaceconstant{simplecommand}{simpelcommando}
\setinterfaceconstant{size}{formaat}
\setinterfaceconstant{slantedfeatures}{slantedfeatures}
\setinterfaceconstant{slantedfont}{slantedfont}
@@ -1242,7 +1235,6 @@
\setinterfaceconstant{textstyle}{tekstletter}
\setinterfaceconstant{textwidth}{tekstbreedte}
\setinterfaceconstant{threshold}{threshold}
-\setinterfaceconstant{time}{tijd}
\setinterfaceconstant{title}{titel}
\setinterfaceconstant{titlecolor}{titelkleur}
\setinterfaceconstant{titlecommand}{titelcommando}
@@ -1271,14 +1263,12 @@
\setinterfaceconstant{up}{up}
\setinterfaceconstant{urlalternative}{urlvariant}
\setinterfaceconstant{urlspace}{urlspatie}
-\setinterfaceconstant{userpassword}{userpassword}
\setinterfaceconstant{validate}{valideer}
\setinterfaceconstant{values}{waarden}
\setinterfaceconstant{vcommand}{vcommando}
\setinterfaceconstant{vcompact}{vcomprimeer}
\setinterfaceconstant{vector}{vector}
\setinterfaceconstant{veroffset}{kopoffset}
-\setinterfaceconstant{vfactor}{vfactor}
\setinterfaceconstant{vfil}{vfil}
\setinterfaceconstant{viewerprefix}{viewerprefix}
\setinterfaceconstant{voffset}{voffset}
diff --git a/Master/texmf-dist/tex/context/base/mkii/mult-pe.mkii b/Master/texmf-dist/tex/context/base/mkii/mult-pe.mkii
index 57cbe5600e2..534c239da6c 100644
--- a/Master/texmf-dist/tex/context/base/mkii/mult-pe.mkii
+++ b/Master/texmf-dist/tex/context/base/mkii/mult-pe.mkii
@@ -137,7 +137,6 @@
\setinterfacevariable{chemicals}{chemicals}
\setinterfacevariable{chemistry}{chemistry}
\setinterfacevariable{cite}{cite}
-\setinterfacevariable{closed}{closed}
\setinterfacevariable{color}{ØąŲ†ÚŊ}
\setinterfacevariable{column}{ØģØŠŲˆŲ†}
\setinterfacevariable{columns}{ØģØŠŲˆŲ†Ų‡Ø§}
@@ -419,7 +418,7 @@
\setinterfacevariable{positive}{Ų…ØŦØĻØŠ}
\setinterfacevariable{postponing}{؊اØŪÛŒØą}
\setinterfacevariable{postscript}{ŲūØģ؊‌اØģÚĐØąÛŒŲūØŠ}
-\setinterfacevariable{precedingpage}{precedingpage}
+\setinterfacevariable{precedingpage}{followingpage}
\setinterfacevariable{preference}{ØŠØąØŽÛŒØ­}
\setinterfacevariable{preview}{ŲūیØī‌ØŊیØŊ}
\setinterfacevariable{previous}{Ų‚ØĻŲ„ÛŒ}
@@ -1028,7 +1027,6 @@
\setinterfaceconstant{otherstext}{otherstext}
\setinterfaceconstant{outermargin}{حاØīیŲ‡â€ŒØŪØ§ØąØŽÛŒ}
\setinterfaceconstant{overprint}{overprint}
-\setinterfaceconstant{ownerpassword}{ownerpassword}
\setinterfaceconstant{ownnumber}{ØīŲ…Ø§ØąŲ‡â€ŒØŪŲˆØŊ}
\setinterfaceconstant{page}{ØĩŲØ­Ų‡}
\setinterfaceconstant{pageboundaries}{Ų…ØąØēŲ‡Ø§ÛŒâ€ŒØĩŲØ­Ų‡}
@@ -1242,7 +1240,6 @@
\setinterfaceconstant{textstyle}{ØģØĻÚĐ‌Ų…ØŠŲ†}
\setinterfaceconstant{textwidth}{ØđØąØķ‌Ų…ØŠŲ†}
\setinterfaceconstant{threshold}{threshold}
-\setinterfaceconstant{time}{time}
\setinterfaceconstant{title}{ØđŲ†ŲˆØ§Ų†}
\setinterfaceconstant{titlecolor}{ØąŲ†ÚŊ‌ØđŲ†ŲˆØ§Ų†}
\setinterfaceconstant{titlecommand}{ŲØąŲ…اŲ†â€ŒØđŲ†ŲˆØ§Ų†}
@@ -1271,14 +1268,12 @@
\setinterfaceconstant{up}{up}
\setinterfaceconstant{urlalternative}{urlalternative}
\setinterfaceconstant{urlspace}{urlspace}
-\setinterfaceconstant{userpassword}{userpassword}
\setinterfaceconstant{validate}{؊اییØŊاØđØŠØĻØ§Øą}
\setinterfaceconstant{values}{values}
\setinterfaceconstant{vcommand}{vcommand}
\setinterfaceconstant{vcompact}{vcompact}
\setinterfaceconstant{vector}{vector}
\setinterfaceconstant{veroffset}{ØĒŲØģ؊‌ØđŲ…}
-\setinterfaceconstant{vfactor}{vfactor}
\setinterfaceconstant{vfil}{vfil}
\setinterfaceconstant{viewerprefix}{viewerprefix}
\setinterfaceconstant{voffset}{ØĒŲØģ؊‌Øđ}
diff --git a/Master/texmf-dist/tex/context/base/mkii/mult-ro.mkii b/Master/texmf-dist/tex/context/base/mkii/mult-ro.mkii
index 78631995613..46b61c8820e 100644
--- a/Master/texmf-dist/tex/context/base/mkii/mult-ro.mkii
+++ b/Master/texmf-dist/tex/context/base/mkii/mult-ro.mkii
@@ -137,7 +137,6 @@
\setinterfacevariable{chemicals}{chemicals}
\setinterfacevariable{chemistry}{chemistry}
\setinterfacevariable{cite}{cite}
-\setinterfacevariable{closed}{closed}
\setinterfacevariable{color}{culoare}
\setinterfacevariable{column}{coloana}
\setinterfacevariable{columns}{coloane}
@@ -419,7 +418,7 @@
\setinterfacevariable{positive}{positiv}
\setinterfacevariable{postponing}{postponing}
\setinterfacevariable{postscript}{postscript}
-\setinterfacevariable{precedingpage}{precedingpage}
+\setinterfacevariable{precedingpage}{followingpage}
\setinterfacevariable{preference}{preferinta}
\setinterfacevariable{preview}{previzualizare}
\setinterfacevariable{previous}{precedent}
@@ -587,7 +586,6 @@
\setinterfacevariable{understrike}{understrike}
\setinterfacevariable{understrikes}{understrikes}
\setinterfacevariable{unframed}{unframed}
-\setinterfacevariable{unicode}{unicode}
\setinterfacevariable{unit}{unitate}
\setinterfacevariable{units}{unitati}
\setinterfacevariable{unknown}{necunoscut}
@@ -1029,7 +1027,6 @@
\setinterfaceconstant{otherstext}{otherstext}
\setinterfaceconstant{outermargin}{outermargin}
\setinterfaceconstant{overprint}{overprint}
-\setinterfaceconstant{ownerpassword}{ownerpassword}
\setinterfaceconstant{ownnumber}{numarpropriu}
\setinterfaceconstant{page}{pagina}
\setinterfaceconstant{pageboundaries}{marginipagina}
@@ -1243,7 +1240,6 @@
\setinterfaceconstant{textstyle}{stiltext}
\setinterfaceconstant{textwidth}{latimetext}
\setinterfaceconstant{threshold}{threshold}
-\setinterfaceconstant{time}{time}
\setinterfaceconstant{title}{titlu}
\setinterfaceconstant{titlecolor}{culoaretitlu}
\setinterfaceconstant{titlecommand}{titlecommand}
@@ -1272,14 +1268,12 @@
\setinterfaceconstant{up}{up}
\setinterfaceconstant{urlalternative}{urlalternativ}
\setinterfaceconstant{urlspace}{spatiuurl}
-\setinterfaceconstant{userpassword}{userpassword}
\setinterfaceconstant{validate}{verifica}
\setinterfaceconstant{values}{values}
\setinterfaceconstant{vcommand}{comandav}
\setinterfaceconstant{vcompact}{vcompact}
\setinterfaceconstant{vector}{vector}
\setinterfaceconstant{veroffset}{veroffset}
-\setinterfaceconstant{vfactor}{vfactor}
\setinterfaceconstant{vfil}{vfil}
\setinterfaceconstant{viewerprefix}{viewerprefix}
\setinterfaceconstant{voffset}{voffset}
diff --git a/Master/texmf-dist/tex/context/base/mkii/strc-reg.mkii b/Master/texmf-dist/tex/context/base/mkii/strc-reg.mkii
index a8d05fb7862..45be825258f 100644
--- a/Master/texmf-dist/tex/context/base/mkii/strc-reg.mkii
+++ b/Master/texmf-dist/tex/context/base/mkii/strc-reg.mkii
@@ -18,7 +18,7 @@
% new: eigennummer=ja => eerste {} ipv pag nummer
\unprotect
-
+
%D Isolated but still indocumented.
% Formaat tex-utility-input-file <jobname.tui>:
@@ -1176,7 +1176,7 @@
\def\defineregister
{\dodoubleargument\dodefineregister}
-
+
\def\registerlengte{\utilityregisterlength}
\def\utilityregisterlength{0}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/syst-rtp.mkiv b/Master/texmf-dist/tex/context/base/mkii/syst-rtp.mkiv
index 82c0778b43f..82c0778b43f 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/syst-rtp.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkii/syst-rtp.mkiv
diff --git a/Master/texmf-dist/tex/context/base/mkii/unic-003.mkii b/Master/texmf-dist/tex/context/base/mkii/unic-003.mkii
index 91512ea546d..ad7d6df6a8f 100644
--- a/Master/texmf-dist/tex/context/base/mkii/unic-003.mkii
+++ b/Master/texmf-dist/tex/context/base/mkii/unic-003.mkii
@@ -100,9 +100,9 @@
\strippedcsname \greekupsilondialytika \or
\strippedcsname \greekomicrontonos \or
\strippedcsname \greekupsilontonos \or
- \strippedcsname \greekomegatonos \or
+ \strippedcsname \greekomegatonos \or % was greeek!
\strippedcsname \unknownchar \or
- \strippedcsname \greekbetaalt \or
+ \strippedcsname \unknownchar \or % beta alt
\strippedcsname \greekthetaalt \or
\strippedcsname \unknownchar \or % upsilon hook
\strippedcsname \unknownchar \or
diff --git a/Master/texmf-dist/tex/context/base/mkii/xetx-chr.mkii b/Master/texmf-dist/tex/context/base/mkii/xetx-chr.mkii
index 66ae0d63603..ca9c4aaa440 100644
--- a/Master/texmf-dist/tex/context/base/mkii/xetx-chr.mkii
+++ b/Master/texmf-dist/tex/context/base/mkii/xetx-chr.mkii
@@ -462,7 +462,6 @@
\def\greekomicrontonos {\char"003CC } % GREEK SMALL LETTER OMICRON WITH TONOS: ό
\def\greekupsilontonos {\char"003CD } % GREEK SMALL LETTER UPSILON WITH TONOS: ύ
\def\greekomegatonos {\char"003CE } % GREEK SMALL LETTER OMEGA WITH TONOS: ώ
-\def\greekbetaalt {\char"003D0 } % GREEK BETA SYMBOL: ϐ
\def\greekthetaalt {\char"003D1 } % GREEK THETA SYMBOL: ϑ
\def\greekphialt {\char"003D5 } % GREEK PHI SYMBOL: ϕ
\def\greekpialt {\char"003D6 } % GREEK PI SYMBOL: ϖ
diff --git a/Master/texmf-dist/tex/context/base/mkiv/anch-bck.mkvi b/Master/texmf-dist/tex/context/base/mkiv/anch-bck.mkvi
index 96dd0cdf54a..348ea0ad1e2 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/anch-bck.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/anch-bck.mkvi
@@ -47,7 +47,7 @@
\unexpanded\def\anch_backgrounds_text_initialize
{\doifelsepositionsused\enableparpositions\donothing
- \glet\anch_backgrounds_text_initialize\relax}
+ \global\let\anch_backgrounds_text_initialize\relax}
\appendtoks
\anch_backgrounds_text_initialize
@@ -352,7 +352,7 @@
{\ifproductionrun
\enabletextarearegistration
\enablehiddenbackground
- \glet\checkpositionoverlays\relax
+ \global\let\checkpositionoverlays\relax
\fi}
% shape handling
@@ -453,55 +453,55 @@
\strc_floats_mark_as_free
\plustwo
\zeropoint
- \d_page_sides_rightoffset
+ \d_page_sides_leftskip
\d_page_sides_topskip
\d_page_sides_bottomskip
\or % leftedge
\strc_floats_mark_as_free
\plustwo
\zeropoint
- \d_page_sides_rightoffset
+ \d_page_sides_leftskip
\d_page_sides_topskip
\d_page_sides_bottomskip
\or % leftmargin
\strc_floats_mark_as_free
\plustwo
\zeropoint
- \d_page_sides_rightoffset
+ \d_page_sides_leftskip
\d_page_sides_topskip
\d_page_sides_bottomskip
\or % leftside
\strc_floats_mark_as_free
\plustwo
- \d_page_sides_leftskip % maybe too
- \d_page_sides_margin
+ \d_page_sides_leftskip
+ \d_strc_floats_margin
\d_page_sides_topskip
\d_page_sides_bottomskip
\or % rightside
\strc_floats_mark_as_free
\plusthree
- \d_page_sides_margin
- \d_page_sides_rightskip % maybe too
+ \d_strc_floats_margin
+ \d_page_sides_rightskip
\d_page_sides_topskip
\d_page_sides_bottomskip
\or % rightmargin
\strc_floats_mark_as_free
\plusthree
- \d_page_sides_leftoffset
+ \d_page_sides_rightskip
\zeropoint
\d_page_sides_topskip
\d_page_sides_bottomskip
\or % rightedge
\strc_floats_mark_as_free
\plusthree
- \d_page_sides_leftoffset
+ \d_page_sides_rightskip
\zeropoint
\d_page_sides_topskip
\d_page_sides_bottomskip
\or % cutspace
\strc_floats_mark_as_free
\plusthree
- \d_page_sides_leftoffset
+ \d_page_sides_rightskip
\zeropoint
\d_page_sides_topskip
\d_page_sides_bottomskip
diff --git a/Master/texmf-dist/tex/context/base/mkiv/anch-pgr.lua b/Master/texmf-dist/tex/context/base/mkiv/anch-pgr.lua
index 14afa3967ae..ca5a5a8af15 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/anch-pgr.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/anch-pgr.lua
@@ -56,10 +56,13 @@ graphics.backgrounds = backgrounds
-- -- --
local texsetattribute = tex.setattribute
+local pdfgetpos = pdf.getpos -- why not a generic name !
local a_textbackground = attributes.private("textbackground")
local nuts = nodes.nuts
+local tonut = nodes.tonut
+local tonode = nodes.tonode
local new_latelua = nuts.pool.latelua
local new_rule = nuts.pool.rule
@@ -79,12 +82,11 @@ local localpar_code = nodecodes.localpar
local insert_before = nuts.insert_before
local insert_after = nuts.insert_after
-local processranges = nuts.processranges
+local processranges = nodes.processranges
local unsetvalue = attributes.unsetvalue
local jobpositions = job.positions
-local getpos = jobpositions.getpos
local data = { }
local realpage = 1
@@ -94,17 +96,10 @@ local enabled = false
-- Freeing the data is somewhat tricky as we can have backgrounds spanning
-- many pages but for an arbitrary background shape that is not so common.
-local function check(specification)
- local a = specification.attribute
- local index = specification.index
- local depth = specification.depth
- local d = specification.data
- local where = specification.where
- local ht = specification.ht
- local dp = specification.dp
+local function check(a,index,depth,d,where,ht,dp)
-- this is not yet r2l ready
local w = d.shapes[realpage]
- local x, y = getpos()
+ local x, y = pdfgetpos()
if trace_ranges then
report_shapes("attribute %i, index %i, depth %i, location %s, position (%p,%p)",
a,index,depth,where,x,y)
@@ -114,7 +109,7 @@ local function check(specification)
n = n + 1
d.index = index
d.depth = depth
- -- w[n] = { x, x, y, ht, dp }
+-- w[n] = { x, x, y, ht, dp }
w[n] = { y, ht, dp, x, x }
else
local wn = w[n]
@@ -155,13 +150,13 @@ local function flush(head,f,l,a,parent,depth)
local ix = index
local ht = getheight(parent)
local dp = getdepth(parent)
- local ln = new_latelua { action = check, attribute = a, index = ix, depth = depth, data = d, where = "l", ht = ht, dp = dp }
- local rn = new_latelua { action = check, attribute = a, index = ix, depth = depth, data = d, where = "r", ht = ht, dp = dp }
+ local ln = new_latelua(function() check(a,ix,depth,d,"l",ht,dp) end)
+ local rn = new_latelua(function() check(a,ix,depth,d,"r",ht,dp) end)
if trace_ranges then
ln = new_hlist(setlink(new_rule(65536,65536*4,0),new_kern(-65536),ln))
rn = new_hlist(setlink(new_rule(65536,0,65536*4),new_kern(-65536),rn))
end
- if getid(f) == localpar_code and getsubtype(f) == 0 then -- we need to clean this mess
+ if getid(f) == localpar_code then -- we need to clean this mess
insert_after(head,f,ln)
else
head, f = insert_before(head,f,ln)
@@ -218,8 +213,10 @@ end
nodes.handlers.textbackgrounds = function(head,where,parent) -- we have hlistdir and local dir
-- todo enable action in register
+ head = tonut(head)
index = index + 1
- return processranges(a_textbackground,flush,head,parent)
+ local head, done = processranges(a_textbackground,flush,head,parent)
+ return tonode(head), done
end
interfaces.implement {
@@ -231,8 +228,6 @@ interfaces.implement {
-- optimized already but we can assume a cycle i.e. prune the last point and then
-- even less code .. we could merge some loops but his is more robust
--- use idiv here
-
local function topairs(t,n)
local r = { }
for i=1,n do
@@ -242,7 +237,7 @@ local function topairs(t,n)
return concat(r," ")
end
-local eps = 65536 / 4
+local eps = 65536 / 4 -- 2
local pps = eps
local nps = - pps
@@ -514,8 +509,7 @@ local function shape(kind,b,p,realpage,xmin,xmax,ymin,ymax,fh,ld)
-- use height of b and depth of e, maybe check for weird border
-- cases here
if fh then
- local lsf = ls[1]
- local rsf = rs[1]
+ local lsf, rsf = ls[1], rs[1]
if lsf[2] < fh then
lsf[2] = fh
end
@@ -524,8 +518,7 @@ local function shape(kind,b,p,realpage,xmin,xmax,ymin,ymax,fh,ld)
end
end
if fd then
- local lsl = ls[n]
- local rsl = rs[n]
+ local lsl, rsl = ls[n], rs[n]
if lsl[2] > fd then
lsl[2] = fd
end
@@ -542,18 +535,12 @@ local function shape(kind,b,p,realpage,xmin,xmax,ymin,ymax,fh,ld)
end
local function singlepart(b,e,p,realpage,r,left,right)
- local bx = b.x
- local by = b.y
- local ex = e.x
- local ey = e.y
- local rx = r.x
- local ry = r.y
- local bh = by + b.h
- local bd = by - b.d
- local eh = ey + e.h
- local ed = ey - e.d
- local rh = ry + r.h
- local rd = ry - r.d
+ local bx, by = b.x, b.y
+ local ex, ey = e.x, e.y
+ local rx, ry = r.x, r.y
+ local bh, bd = by + b.h, by - b.d
+ local eh, ed = ey + e.h, ey - e.d
+ local rh, rd = ry + r.h, ry - r.d
local rw = rx + r.w
if left then
rx = rx + left
@@ -606,14 +593,10 @@ local function singlepart(b,e,p,realpage,r,left,right)
end
local function firstpart(b,e,p,realpage,r,left,right)
- local bx = b.x
- local by = b.y
- local rx = r.x
- local ry = r.y
- local bh = by + b.h
- local bd = by - b.d
- local rh = ry + r.h
- local rd = ry - r.d
+ local bx, by = b.x, b.y
+ local rx, ry = r.x, r.y
+ local bh, bd = by + b.h, by - b.d
+ local rh, rd = ry + r.h, ry - r.d
local rw = rx + r.w
if left then
rx = rx + left
@@ -647,10 +630,8 @@ local function firstpart(b,e,p,realpage,r,left,right)
end
local function middlepart(b,e,p,realpage,r,left,right)
- local rx = r.x
- local ry = r.y
- local rh = ry + r.h
- local rd = ry - r.d
+ local rx, ry = r.x, r.y
+ local rh, rd = ry + r.h, ry - r.d
local rw = rx + r.w
if left then
rx = rx + left
@@ -673,14 +654,10 @@ local function middlepart(b,e,p,realpage,r,left,right)
end
local function lastpart(b,e,p,realpage,r,left,right)
- local ex = e.x
- local ey = e.y
- local rx = r.x
- local ry = r.y
- local eh = ey + e.h
- local ed = ey - e.d
- local rh = ry + r.h
- local rd = ry - r.d
+ local ex, ey = e.x, e.y
+ local rx, ry = r.x, r.y
+ local eh, ed = ey + e.h, ey - e.d
+ local rh, rd = ry + r.h, ry - r.d
local rw = rx + r.w
if left then
rx = rx + left
@@ -763,7 +740,7 @@ local function calculatemultipar(tag)
local bp = b.p -- page
if trace_shapes then
report_shapes("tag %a, left %p, right %p, par %s, page %s, column %s",
- tag,left,right,bn or "-",bp or "-",bc or "-")
+ left,right,bn or "-",bp or "-",bc or "-")
end
--
if bindex == eindex then
@@ -867,10 +844,8 @@ local function freemultipar(pagedata,frees) -- ,k
local areas = { }
data.areas = areas
- local f_1 = { }
- local n_1 = 0
- local f_2 = { }
- local n_2 = 0
+ local f_1, n_1 = { }, 0
+ local f_2, n_2 = { }, 0
for i=1,#frees do
local f = frees[i]
local k = f.k
@@ -933,18 +908,14 @@ local function freemultipar(pagedata,frees) -- ,k
-- we can collect the coordinates first
local function check_two(area,frees)
- local ul = area[1]
- local ur = area[2]
- local lr = area[3]
- local ll = area[4]
- local ulx = ul[1]
- local uly = ul[2]
- local urx = ur[1]
- local ury = ur[2]
- local lrx = lr[1]
- local lry = lr[2]
- local llx = ll[1]
- local lly = ll[2]
+ local ul = area[1]
+ local ur = area[2]
+ local lr = area[3]
+ local ll = area[4]
+ local ulx, uly = ul[1], ul[2]
+ local urx, ury = ur[1], ur[2]
+ local lrx, lry = lr[1], lr[2]
+ local llx, lly = ll[1], ll[2]
local temp = { }
local n = 0
@@ -1137,16 +1108,12 @@ local function fetchmultipar(n,anchor,page)
report_graphics("fetching %a at page %s using anchor %a containing %s multipars",
n,page,anchor,nofmultipars)
end
- local x = a.x
- local y = a.y
- local w = a.w
- local h = a.h
- local d = a.d
- local bpos = data.bpos
- local bh = bpos.h
- local bd = bpos.d
- local result = { false } -- slot 1 will be set later
- local n = 0
+ local x, y = a.x, a.y
+ local w, h, d = a.w, a.h, a.d
+ local bpos = data.bpos
+ local bh, bd = bpos.h, bpos.d
+ local result = { false } -- slot 1 will be set later
+ local n = 0
for i=1,nofmultipars do
local data = pagedata[i]
local location = data.location
@@ -1211,8 +1178,7 @@ implement {
if type(tags) == "string" then
tags = utilities.parsers.settings_to_array(tags)
end
- local list = { }
- local nofboxes = 0
+ local list, nofboxes = { }, 0
for i=1,#tags do
local tag= tags[i]
local c = collected[tag]
@@ -1221,11 +1187,7 @@ implement {
if r then
r = collected[r]
if r then
- local rx = r.x
- local ry = r.y
- local rw = r.w
- local rh = r.h
- local rd = r.d
+ local rx, ry, rw, rh, rd = r.x, r.y, r.w, r.h, r.d
local cx = c.x - rx
local cy = c.y
local cw = cx + c.w
diff --git a/Master/texmf-dist/tex/context/base/mkiv/anch-pgr.mkiv b/Master/texmf-dist/tex/context/base/mkiv/anch-pgr.mkiv
index 7fa378cd14f..e49d18b8f6c 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/anch-pgr.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/anch-pgr.mkiv
@@ -66,7 +66,7 @@
\def\anch_positions_action_indeed_yes % we need a way to figure out if we have actions
{\begingroup
- \setbox\scratchbox\hbox % \hpack
+ \setbox\scratchbox\hbox
{\anch_positions_trace_action_yes
\the\everyinsertpositionaction
\the\everypositionaction
@@ -130,12 +130,12 @@
\else
\c_anch_page_width \paperwidth
\c_anch_page_height\paperheight
- \anch_make_page_box{#1}% \ifvbox#1\setbox#1\hpack{\box#1}\fi
+ \anch_make_page_box{#1}% \ifvbox#1\setbox#1\hbox{\box#1}\fi
\fi
\else
\c_anch_page_width \paperwidth
\c_anch_page_height\paperheight
- \anch_make_page_box{#1}% \ifvbox#1\setbox#1\hpack{\box#1}\fi
+ \anch_make_page_box{#1}% \ifvbox#1\setbox#1\hbox{\box#1}\fi
\fi
\fi\fi}
@@ -157,7 +157,7 @@
\endgroup}
\def\anch_positions_place_anchors_nop
- {\vkern\textheight}
+ {\vskip\textheight}
%D \macros
%D {positionoverlay,startpositionoverlay}
@@ -243,7 +243,7 @@
\let\MPanchor\MPoverlayanchor % no need to fetch it already, seldom used
\the\everyinsertpositionaction
\copyposition{\currentpositionoverlay::\MPanchoridentifier}\MPanchorid
- \setbox\scratchbox\hbox to \d_overlay_width % \hpack
+ \setbox\scratchbox\hbox to \d_overlay_width
{\dopositionaction{\currentpositionoverlay::\MPanchoridentifier}\hss}%
\ht\scratchbox\d_overlay_height
\dp\scratchbox\zeropoint
@@ -275,7 +275,7 @@
\let\MPanchor\MPoverlayanchor % no need to fetch it already, seldom used
\the\everyinsertpositionaction
\copyposition{\currentpositionoverlay::\MPanchoridentifier}\MPanchorid
- \setbox\scratchbox\hbox to \d_overlay_width % \hpack
+ \setbox\scratchbox\hbox to \d_overlay_width
{\dopositionaction{\currentpositionoverlay::\MPanchoridentifier}\hss}%
\ht\scratchbox\d_overlay_height
\dp\scratchbox\zeropoint
@@ -366,7 +366,7 @@
\anch_positions_meta_graphic_prepare
\obeyMPboxorigin % do we also set the size ? when needed this must be done in mp ... might change
\def\anch_positions_meta_graphic_direct{\anch_positions_meta_graphic_nested{#3}}% takes two extra arguments
- \setbox\b_anch_positions_graphic\hbox % \hpack
+ \setbox\b_anch_positions_graphic\hbox
{\ignorespaces\csname#1#2\endcsname\removelastspace}%
\smashbox\b_anch_positions_graphic
\box\b_anch_positions_graphic
diff --git a/Master/texmf-dist/tex/context/base/mkiv/anch-pos.lua b/Master/texmf-dist/tex/context/base/mkiv/anch-pos.lua
index ade99279201..e5f58c36ce4 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/anch-pos.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/anch-pos.lua
@@ -20,12 +20,8 @@ more efficient.</p>
-- this is one of the first modules using scanners and we need to replace
-- it by implement and friends
--- we could have namespaces, like p, page, region, columnarea, textarea but then
--- we need virtual table accessors as well as have tag/id accessors ... we don't
--- save much here (at least not now)
-
local tostring, next, rawget, rawset, setmetatable, tonumber = tostring, next, rawget, rawset, setmetatable, tonumber
-local sort = table.sort
+local sort, sortedhash, sortedkeys = table.sort, table.sortedhash, table.sortedkeys
local format, gmatch = string.format, string.gmatch
local rawget = rawget
local lpegmatch = lpeg.match
@@ -44,8 +40,7 @@ local scanners = interfaces.scanners
local commands = commands
local context = context
-
-local ctx_latelua = context.latelua
+local ctxnode = context.nodes.flush
local tex = tex
local texgetcount = tex.getcount
@@ -68,12 +63,12 @@ local getbox = nuts.getbox
local getid = nuts.getid
local getwhd = nuts.getwhd
-local hlist_code = nodes.nodecodes.hlist
+----- hlist_code = nodes.listcodes.hlist
local find_tail = nuts.tail
-local hpack = nuts.hpack
local new_latelua = nuts.pool.latelua
+local new_latelua_node = nodes.pool.latelua
local variables = interfaces.variables
local v_text = variables.text
@@ -241,6 +236,7 @@ end
-- t[#t+1] = data
-- end
--
+-- --
-- local pages = structures.pages.collected
-- if pages then
-- local last = nil
@@ -330,19 +326,9 @@ local nofpages = nil
-- beware ... we're not sparse here as lua will reserve slots for the nilled
-local getpos, gethpos, getvpos
-
-function jobpositions.registerhandlers(t)
- getpos = t and t.getpos or function() return 0, 0 end
- gethpos = t and t.gethpos or function() return 0 end
- getvpos = t and t.getvpos or function() return 0 end
-end
-
-function jobpositions.getpos () return getpos () end
-function jobpositions.gethpos() return gethpos() end
-function jobpositions.getvpos() return getvpos() end
-
-jobpositions.registerhandlers()
+local getpos = function() getpos = backends.codeinjections.getpos return getpos () end
+local gethpos = function() gethpos = backends.codeinjections.gethpos return gethpos() end
+local getvpos = function() getvpos = backends.codeinjections.getvpos return getvpos() end
local function setall(name,p,x,y,w,h,d,extra)
tobesaved[name] = {
@@ -400,28 +386,9 @@ end
-- analyze some files (with lots if margindata) and then when one key optionally
-- use that one instead of a table (so, a 3rd / 4th argument: key, e.g. "x")
-local function set(name,index,value) -- ,key
- local data = enhance(value or index)
- if value then
- container = tobesaved[name]
- if not container then
- tobesaved[name] = {
- [index] = data
- }
- else
- container[index] = data
- end
- else
- tobesaved[name] = data
- end
-end
-
-local function setspec(specification)
- local name = specification.name
- local index = specification.index
- local value = specification.value
- local data = enhance(value or index)
- if value then
+local function set(name,index,val) -- ,key
+ local data = enhance(val or index)
+ if val then
container = tobesaved[name]
if not container then
tobesaved[name] = {
@@ -444,11 +411,16 @@ local function get(id,index)
end
end
-------------.setdim = setdim
-jobpositions.setall = setall
-jobpositions.set = set
-jobpositions.setspec = setspec
-jobpositions.get = get
+------------.setdim = setdim
+jobpositions.setall = setall
+jobpositions.set = set
+jobpositions.get = get
+
+-- scanners.setpos = setall
+
+-- trackers.enable("tokens.compi*")
+
+-- something weird: the compiler fails us here
scanners.dosaveposition = compilescanner {
actions = setall, -- name p x y
@@ -470,8 +442,7 @@ scanners.dosavepositionplus = compilescanner {
-- not much gain in keeping stack (inc/dec instead of insert/remove)
-local function b_column(specification)
- local tag = specification.tag
+local function b_column(tag)
local x = gethpos()
tobesaved[tag] = {
r = true,
@@ -482,7 +453,7 @@ local function b_column(specification)
column = tag
end
-local function e_column()
+local function e_column(tag)
local t = tobesaved[column]
if not t then
-- something's wrong
@@ -508,7 +479,7 @@ scanners.bposcolumnregistered = function() -- tag
local tag = scanstring()
insert(columns,tag)
column = tag
- ctx_latelua { action = b_column, tag = tag }
+ ctxnode(new_latelua_node(function() b_column(tag) end))
end
scanners.eposcolumn = function()
@@ -517,42 +488,38 @@ scanners.eposcolumn = function()
end
scanners.eposcolumnregistered = function()
- ctx_latelua { action = e_column }
+ ctxnode(new_latelua_node(e_column))
remove(columns)
column = columns[#columns]
end
-- regions
-local function b_region(specification)
- local tag = specification.tag or specification
+local function b_region(tag)
local last = tobesaved[tag]
local x, y = getpos()
last.x = x ~= 0 and x or nil
last.y = y ~= 0 and y or nil
last.p = texgetcount("realpageno")
- insert(regions,tag) -- todo: fast stack
+ insert(regions,tag)
region = tag
end
-local function e_region(specification)
+local function e_region(correct)
local last = tobesaved[region]
local y = getvpos()
- local x, y = getpos()
- if specification.correct then
+ if correct then
local h = (last.y or 0) - y
last.h = h ~= 0 and h or nil
end
last.y = y ~= 0 and y or nil
- remove(regions) -- todo: fast stack
+ remove(regions)
region = regions[#regions]
end
jobpositions.b_region = b_region
jobpositions.e_region = e_region
-local lastregion
-
local function setregionbox(n,tag,k,lo,ro,to,bo) -- kind
if not tag or tag == "" then
nofregions = nofregions + 1
@@ -560,34 +527,34 @@ local function setregionbox(n,tag,k,lo,ro,to,bo) -- kind
end
local box = getbox(n)
local w, h, d = getwhd(box)
+ local x, y = getpos() -- hm, makes no sense here
tobesaved[tag] = {
- -- p = texgetcount("realpageno"), -- we copy them
- x = 0,
- y = 0,
- w = w ~= 0 and w or nil,
- h = h ~= 0 and h or nil,
- d = d ~= 0 and d or nil,
- k = k ~= 0 and k or nil,
+ -- p = texgetcount("realpageno"), -- we copy them
+ x = x ~= 0 and x or nil, -- was true
+ y = y ~= 0 and y or nil,
+ w = w ~= 0 and w or nil,
+ h = h ~= 0 and h or nil,
+ d = d ~= 0 and d or nil,
+ k = k ~= 0 and k or nil,
lo = lo ~= 0 and lo or nil,
ro = ro ~= 0 and ro or nil,
to = to ~= 0 and to or nil,
bo = bo ~= 0 and bo or nil,
}
- lastregion = tag
return tag, box
end
local function markregionbox(n,tag,correct,...) -- correct needs checking
local tag, box = setregionbox(n,tag,...)
-- todo: check if tostring is needed with formatter
- local push = new_latelua { action = b_region, tag = tag }
- local pop = new_latelua { action = e_region, correct = correct }
+ local push = new_latelua(function() b_region(tag) end)
+ local pop = new_latelua(function() e_region(correct) end)
-- maybe we should construct a hbox first (needs experimenting) so that we can avoid some at the tex end
local head = getlist(box)
- -- no, this fails with \framed[region=...] .. needs thinking
+ -- no :
-- if getid(box) ~= hlist_code then
-- -- report("mark region box assumes a hlist, fix this for %a",tag)
- -- head = hpack(head)
+ -- head = nuts.hpack(head)
-- end
if head then
local tail = find_tail(head)
@@ -617,7 +584,7 @@ end
local nofparagraphs = 0
-scanners.parpos = function()
+scanners.parpos = function() -- todo: relate to localpar (so this is an intermediate variant)
nofparagraphs = nofparagraphs + 1
texsetcount("global","c_anch_positions_paragraph",nofparagraphs)
local box = getbox("strutbox")
@@ -656,14 +623,14 @@ scanners.parpos = function()
if parshape and #parshape > 0 then
t.ps = parshape
end
- local name = f_p_tag(nofparagraphs)
- tobesaved[name] = t
- ctx_latelua { action = enhance, specification = t }
+ local tag = f_p_tag(nofparagraphs)
+ tobesaved[tag] = t
+ ctxnode(new_latelua_node(function() enhance(tobesaved[tag]) end))
end
scanners.dosetposition = function() -- name
local name = scanstring()
- local spec = {
+ tobesaved[name] = {
p = true,
c = column,
r = true,
@@ -672,15 +639,15 @@ scanners.dosetposition = function() -- name
n = nofparagraphs > 0 and nofparagraphs or nil,
r2l = texgetcount("inlinelefttoright") == 1 or nil,
}
- ctx_latelua { action = enhance, specification = spec }
+ ctxnode(new_latelua_node(function() enhance(tobesaved[name]) end))
end
scanners.dosetpositionwhd = function() -- name w h d extra
local name = scanstring()
- local w = scandimen()
- local h = scandimen()
- local d = scandimen()
- local spec = {
+ local w = scandimen()
+ local h = scandimen()
+ local d = scandimen()
+ tobesaved[name] = {
p = true,
c = column,
r = true,
@@ -692,14 +659,14 @@ scanners.dosetpositionwhd = function() -- name w h d extra
n = nofparagraphs > 0 and nofparagraphs or nil,
r2l = texgetcount("inlinelefttoright") == 1 or nil,
}
- ctx_latelua { action = enhance, specification = spec }
+ ctxnode(new_latelua_node(function() enhance(tobesaved[name]) end))
end
scanners.dosetpositionbox = function() -- name box
local name = scanstring()
local box = getbox(scaninteger())
local w, h, d = getwhd(box)
- local spec = {
+ tobesaved[name] = {
p = true,
c = column,
r = true,
@@ -711,15 +678,15 @@ scanners.dosetpositionbox = function() -- name box
n = nofparagraphs > 0 and nofparagraphs or nil,
r2l = texgetcount("inlinelefttoright") == 1 or nil,
}
- ctx_latelua { action = enhance, specification = spec }
+ ctxnode(new_latelua_node(function() enhance(tobesaved[name]) end))
end
scanners.dosetpositionplus = function() -- name w h d extra
local name = scanstring()
- local w = scandimen()
- local h = scandimen()
- local d = scandimen()
- local spec = {
+ local w = scandimen()
+ local h = scandimen()
+ local d = scandimen()
+ tobesaved[name] = {
p = true,
c = column,
r = true,
@@ -732,14 +699,14 @@ scanners.dosetpositionplus = function() -- name w h d extra
e = scanstring(),
r2l = texgetcount("inlinelefttoright") == 1 or nil,
}
- ctx_latelua { action = enhance, specification = spec }
+ ctxnode(new_latelua_node(function() enhance(tobesaved[name]) end))
end
scanners.dosetpositionstrut = function() -- name
local name = scanstring()
local box = getbox("strutbox")
local w, h, d = getwhd(box)
- local spec = {
+ tobesaved[name] = {
p = true,
c = column,
r = true,
@@ -750,7 +717,7 @@ scanners.dosetpositionstrut = function() -- name
n = nofparagraphs > 0 and nofparagraphs or nil,
r2l = texgetcount("inlinelefttoright") == 1 or nil,
}
- ctx_latelua { action = enhance, specification = spec }
+ ctxnode(new_latelua_node(function() enhance(tobesaved[name]) end))
end
scanners.dosetpositionstrutkind = function() -- name
@@ -758,7 +725,7 @@ scanners.dosetpositionstrutkind = function() -- name
local kind = scaninteger()
local box = getbox("strutbox")
local w, h, d = getwhd(box)
- local spec = {
+ tobesaved[name] = {
k = kind,
p = true,
c = column,
@@ -770,7 +737,7 @@ scanners.dosetpositionstrutkind = function() -- name
n = nofparagraphs > 0 and nofparagraphs or nil,
r2l = texgetcount("inlinelefttoright") == 1 or nil,
}
- ctx_latelua { action = enhance, specification = spec }
+ ctxnode(new_latelua_node(function() enhance(tobesaved[name]) end))
end
function jobpositions.getreserved(tag,n)
@@ -1410,11 +1377,6 @@ scanners.markregionboxtaggedkind = function() -- box tag kind
scaninteger(),scandimen(),scandimen(),scandimen(),scandimen())
end
-scanners.reservedautoregiontag = function()
- nofregions = nofregions + 1
- context(f_region(nofregions))
-end
-
-- statistics (at least for the moment, when testing)
-- statistics.register("positions", function()
diff --git a/Master/texmf-dist/tex/context/base/mkiv/anch-pos.mkiv b/Master/texmf-dist/tex/context/base/mkiv/anch-pos.mkiv
index fbebb5f173b..ab199eb1eee 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/anch-pos.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/anch-pos.mkiv
@@ -155,7 +155,7 @@
\def\anch_positions_set_data_indeed#1#2#3#4%
{\anch_positions_initialize
- \hbox % \hpack
+ \hbox
{\edef\currentposition{#1}%
\dosetpositionwhd\currentposition{#2}{#3}{#4}% already \the\dimexpr
\anch_positions_trace_left
@@ -177,7 +177,7 @@
\def\anch_positions_set_box_finish#1%
{\anch_positions_initialize
- \hbox to \wd\nextbox % \hpack
+ \hbox to \wd\nextbox
{\edef\currentposition{#1}%
\dosetpositionbox\currentposition\nextbox
\anch_positions_trace_left
@@ -198,7 +198,7 @@
\def\anch_positions_set_strut_yes#1%
{\anch_positions_initialize
- \hbox to \zeropoint % \hpack
+ \hbox to \zeropoint
{\edef\currentposition{#1}%
\dosetpositionstrut\currentposition
\anch_positions_trace_left
@@ -215,7 +215,7 @@
\def\anch_positions_set_strut_kind_yes#1#2%
{\anch_positions_initialize
- \hbox to \zeropoint % \hpack
+ \hbox to \zeropoint
{\edef\currentposition{#1}%
\dosetpositionstrutkind\currentposition{#2}%
\anch_positions_trace_left
@@ -235,7 +235,7 @@
\def\anch_positions_set_plus_indeed#1#2#3#4#5%
{\anch_positions_initialize
- \hbox % \hpack
+ \hbox % just package
{\edef\currentposition{#1}%
\dosetpositionplus\currentposition{#2}{#3}{#4}{#5}% already \the\dimexpr
\anch_positions_trace_right
@@ -257,7 +257,7 @@
\def\anch_positions_set_plus_yes_finish#1#2%
{\anch_positions_initialize
- \hbox to \nextboxwd % \hpack
+ \hbox to \nextboxwd
{\edef\currentposition{#1}%
\dosetpositionplus\currentposition{\wd\nextbox}{\ht\nextbox}{\dp\nextbox}{#2}%
\anch_positions_trace_right
@@ -296,7 +296,7 @@
{\clf_markregionbox#1\relax}
\unexpanded\def\anch_mark_flow_box#1% will be extended / renamed
- {\hpack\bgroup % \hpack
+ {\hbox\bgroup
\global\advance\c_anch_text\plusone
\clf_markregionboxtagged#1{textarea:\the\c_anch_text}%
\box#1%
@@ -330,8 +330,6 @@
#6\relax % bottomoffset
\fi}
-\def\reservedautoregiontag{\clf_reservedautoregiontag}
-
%D We can copy a position with:
%D
%D \starttyping
@@ -395,7 +393,7 @@
{\the\t_anch_positions_tracers}
\unexpanded\def\enableparpositions % global
- {\glet\registerparoptions\doregisterparoptions
+ {\global\let\registerparoptions\doregisterparoptions
\global\positioningtrue}
\let\disableparpositions\relax
diff --git a/Master/texmf-dist/tex/context/base/mkiv/anch-snc.lua b/Master/texmf-dist/tex/context/base/mkiv/anch-snc.lua
deleted file mode 100644
index 8006f3bd674..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/anch-snc.lua
+++ /dev/null
@@ -1,271 +0,0 @@
-if not modules then modules = { } end modules ['anch-snc'] = {
- version = 1.001,
- comment = "companion to anch-snc.mkiv",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
-
-function mp.xxOverlayRegion()
- local r = tokens.getters.macro("m_overlay_region")
- mp.quoted('"'.. r .. '"')
--- mp.print('"'.. r .. '"')
-end
-
--- use factors as in mlib-int.lua
-
-local tonumber, next, setmetatable = tonumber, next, setmetatable
-local concat, sort, remove, copy = table.concat, table.sort, table.remove, table.copy
-local match, find = string.match, string.find
-local lpegmatch = lpeg.match
-
-local setmetatableindex = table.setmetatableindex
-
-local factor = number.dimenfactors.bp
-local mpprint = mp.print
-local mpnumeric = mp.numeric
-local mppoints = mp.points
-local texgetdimen = tex.getdimen
-
-local p_number = lpeg.patterns.cardinal/tonumber
-local p_space = lpeg.patterns.whitespace^0
-local p_tag = lpeg.P("syncpos:") * p_number * lpeg.P(":") * p_number
-local p_option = p_number -- for now
- * ((lpeg.P(",") * p_space * lpeg.P("reset") * lpeg.Cc(true)) + lpeg.Cc(false))
-
-local list = { }
-local colors = setmetatableindex("table")
-
-local kinds = {
- above = 1,
- continue = 2,
- nothing = 3,
- normal = 4,
- below = 5,
-}
-
-local allentries = setmetatableindex(function(t,category)
- setmetatable(t,nil)
- for tag, pos in next, job.positions.collected do
- local c, n = lpegmatch(p_tag,tag)
- if c then
- local tc = t[c]
- if tc then
- tc[n] = pos
- else
- t[c] = { [n] = pos }
- end
- end
- end
- for k, list in next, t do
- sort(list,function(a,b)
- local ap = a.p
- local bp = b.p
- if ap == bp then
- return b.y < a.y
- else
- return ap < bp
- end
- end)
- list.start = 1
- end
- setmetatableindex(t,"table")
- return t[category]
-end)
-
-local lastdone = { }
-
-function mp.sync_collect(category,realpage,useregion)
- local all = allentries[category]
- local m = 0
- local n = #all
- list = { }
- if useregion then
- -- successive can be optimized when we sort by region
- local start = 1
- local done = false
- local last, rtop, rbot
- for i=start,n do
- local pos = all[i]
- local p = pos.p
- local r = pos.r
- if r == useregion then
- if not done then
- local region = job.positions.collected[r]
- list.region = region
- list.page = region
- rtop = (region.y or 0) + (region.h or 0)
- rbot = (region.y or 0) - (region.d or 0)
- last = { kind = "nothing", top = rtop, bottom = 0, task = 0 }
- m = m + 1 ; list[m] = last
- done = true
- end
- local top = pos.y + pos.h
- last.bottom = top
- local task, reset = lpegmatch(p_option,pos.e)
- last = { kind = "normal", top = top, bottom = 0, task = task }
- m = m + 1 ; list[m] = last
- end
- end
- if done then
- last.bottom = rbot
- end
- else
- local start = all.start or 1
- local done = false
- local last, rtop, rbot, ptop, pbot
- for i=start,n do
- local pos = all[i]
- local p = pos.p
- if p == realpage then
- if not done then
- local region = job.positions.collected[pos.r]
- local page = job.positions.collected["page:"..realpage] or region
- list.region = region
- list.page = page
- rtop = (region.y or 0) + (region.h or 0)
- rbot = (region.y or 0) - (region.d or 0)
- ptop = (page .y or 0) + (page .h or 0)
- pbot = (page .y or 0) - (page .d or 0)
- last = { kind = "above", top = ptop, bottom = rtop, task = 0 }
- m = m + 1 ; list[m] = last
- if i > 1 then
- local task, reset = lpegmatch(p_option,all[i-1].e)
- last = { kind = "continue", top = rtop, bottom = 0, task = task }
- m = m + 1 ; list[m] = last
- else
- last = { kind = "nothing", top = rtop, bottom = 0, task = 0 }
- m = m + 1 ; list[m] = last
- end
- done = true
- end
- local top = pos.y + pos.h
- last.bottom = top
- local task, reset = lpegmatch(p_option,pos.e)
- if reset then
- local l = list[2]
- l.kind = "nothing"
- l.task = 0
- end
- last = { kind = "normal", top = top, bottom = 0, task = task }
- m = m + 1 ; list[m] = last
- elseif p > realpage then
- all.start = i -- tricky, only for page
- break
- end
- end
- if done then
- last.bottom = rbot
- last = { kind = "below", top = rbot, bottom = pbot, task = 0 }
- m = m + 1 ; list[m] = last
- lastdone[category] = {
- { kind = "above", top = ptop, bottom = rtop, task = 0 },
- { kind = "continue", top = rtop, bottom = rbot, task = list[#list-1].task }, -- lasttask
- { kind = "below", top = rbot, bottom = pbot, task = 0 },
- region = list.region,
- page = list.page,
- }
- else
- local l = lastdone[category]
- if l then
- list = copy(l) -- inefficient, mayb emetatable for region/page
- m = 3
- end
- end
- end
- mpnumeric(m)
-end
-
-function mp.sync_extend()
- local n = #list
- if n > 0 then
- for i=1,n do
- local l = list[i]
- local k = l.kind
- if k == "nothing" then
- local ll = list[i+1]
- if ll and ll.kind == "normal" then
- ll.top = l.top
- remove(list,i)
- n = #list
- break
- end
- end
- end
- end
- mpnumeric(n)
-end
-
-function mp.sync_prune()
- local n = #list
- if n > 0 then
- if list[1].kind == "above" then
- remove(list,1)
- end
- if list[1].kind == "nothing" then
- remove(list,1)
- end
- if list[#list].kind == "below" then
- remove(list,#list)
- end
- n = #list
- end
- mpnumeric(n)
-end
-
-function mp.sync_collapse()
- local n = #list
- if n > 0 then
- local m = 0
- local p = nil
- for i=1,n do
- local l = list[i]
- local t = l.task
- if p == t then
- list[m].bottom = l.bottom
- else
- m = m + 1
- list[m] = l
- end
- p = t
- end
- for i=n,m+1,-1 do
- list[i] = nil
- end
- n = m
- end
- mpnumeric(n)
-end
-
-function mp.sync_set_color(category,n,v)
- colors[category][n] = v
-end
-
-function mp.sync_get_color(category,n)
- mpprint(colors[category][n])
-end
-
--- function mp.sync_get_size () mpnumeric(#list) end
--- function mp.sync_get_top (n) mppoints (list[n].top) end
--- function mp.sync_get_bottom(n) mppoints (list[n].bottom) end
--- function mp.sync_get_kind (n) mpnumeric(kinds[list[n].kind]) end
--- function mp.sync_get_task (n) mpnumeric(list[n].task) end
-
--- function mp.sync_get_x() mppoints(list.page.x or 0) end
--- function mp.sync_get_y() mppoints(list.page.y or 0) end
--- function mp.sync_get_w() mppoints(list.page.w or 0) end
--- function mp.sync_get_h() mppoints(list.page.h or 0) end
--- function mp.sync_get_d() mppoints(list.page.d or 0) end
-
-function mp.sync_get_size () mpnumeric(#list) end
-function mp.sync_get_top (n) mpnumeric(list[n].top * factor) end
-function mp.sync_get_bottom(n) mpnumeric(list[n].bottom * factor) end
-function mp.sync_get_kind (n) mpnumeric(kinds[list[n].kind]) end
-function mp.sync_get_task (n) mpnumeric(list[n].task) end
-
-function mp.sync_get_x() mpnumeric((list.page.x or 0)*factor) end
-function mp.sync_get_y() mpnumeric((list.page.y or 0)*factor) end
-function mp.sync_get_w() mpnumeric((list.page.w or 0)*factor) end
-function mp.sync_get_h() mpnumeric((list.page.h or 0)*factor) end
-function mp.sync_get_d() mpnumeric((list.page.d or 0)*factor) end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/anch-snc.mkiv b/Master/texmf-dist/tex/context/base/mkiv/anch-snc.mkiv
index 5f0246155e8..3e99da8a64f 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/anch-snc.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/anch-snc.mkiv
@@ -1,6 +1,6 @@
%D \module
%D [ file=anch-snc,
-%D version=2003.12.01, % actually 1999 so real old
+%D version=2003.12.01,
%D title=\CONTEXT\ Anchoring Macros,
%D subtitle=Synchronization,
%D author=Hans Hagen,
@@ -11,42 +11,151 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-%D The original is in the mkii file. It does more at the \TEX\ end and
-%D has some more magic. If we really need that I'll add it. After all,
-%D in mkiv we can do things different.
-
-%D TODO: bleed : + left , minus right oro check if it touches page ... autobleed
+% this can be optimized (will do when used again)
\writestatus{loading}{ConTeXt Anchoring Macros / Synchronization}
-\registerctxluafile{anch-snc}{}
-
\unprotect
-\ifx\??syncposcounter\undefined \installcorenamespace{syncposcounter} \fi
-\ifx\s!syncpos \undefined \def\s!syncpos {syncpos} \fi
-
-\let\c_sync_n\relax
+\ifx\s!num \undefined \def\s!num {num} \fi
+\ifx\s!set \undefined \def\s!set {set} \fi
+\ifx\s!reset \undefined \def\s!reset {reset} \fi
+\ifx\s!preset \undefined \def\s!preset {preset} \fi
+\ifx\s!syncpos\undefined \def\s!syncpos{syncpos} \fi
\unexpanded\def\definesyncpositions[#1]%
- {\ifcsname\??syncposcounter:#1\endcsname \else
- \expandafter\newcount\csname\??syncposcounter:#1\endcsname
+ {\ifcsname\s!num:\s!syncpos:#1\endcsname \else
+ \global\let\flushsyncpositions\doflushsyncpositions % only when used
+ \global\let\flushsyncresets \doflushsyncresets
+ \global\let\flushsyncpresets \doflushsyncpresets
+ \expandafter\newcount\csname\s!num:\s!syncpos:#1\endcsname
+ \doglobal\appendtoksonce\csname\s!reset :\s!syncpos:#1\endcsname\to\resetsyncpositions
+ \doglobal\appendtoksonce\csname\s!preset:\s!syncpos:#1\endcsname\to\presetsyncpositions
+% to be tested:
+% \doglobal\expandafter\appendtoksonce\csname\s!reset :\s!syncpos:#1\endcsname\to\resetsyncpositions
+% \doglobal\expandafter\appendtoksonce\csname\s!preset:\s!syncpos:#1\endcsname\to\presetsyncpositions
+ \setgvalue{\s!syncpos:#1}{sync_n[#1] := 0 ;}%
+ \setgvalue{\s!set:\s!syncpos:#1}{\dosetsyncpositions{#1}}%
\fi}
-\unexpanded\def\syncposition
- {\dodoubleempty\anch_sync_position}
+\def\syncposition
+ {\dodoubleempty\dosyncposition}
+
+\def\dosyncposition[#1][#2]%
+ {\letgvalue{\s!reset :\s!syncpos:#1}\relax
+ \letgvalue{\s!preset:\s!syncpos:#1}\relax
+ \dontleavehmode
+ \dodosyncposition{#1}{#2}\s!set
+ \ignorespaces}
+
+\def\doifelselastsyncposition#1#2%
+ {\doifelse{\lastsyncclass\lastsyncposition}{#1#2}}
+
+\let\doiflastsyncpositionelse\doifelselastsyncposition
-\def\anch_sync_position[#1][#2]% we could actually use par positions
- {\dontleavehmode
- \ifcsname\??syncposcounter:#1\endcsname
- \let\c_sync_n\lastnamedcs
- \global\advance\c_sync_n\plusone
- \enabletextarearegistration
- \setpositionplus{\s!syncpos:#1:\the\c_sync_n}{#2}\hpack{\strut}%
+\def\dodosyncposition#1#2#3%
+ {\letgvalue{\s!reset:\s!syncpos:#1}\relax
+ \letgvalue{\s!preset:\s!syncpos:#1}\relax
+ \ifcsname\s!syncpos:#1\endcsname
+ \global\advance\csname\s!num:\s!syncpos:#1\endcsname\plusone
+ \setsyncpositions{#1}%
+ % option: geen w/h, alleen p 0 0 0 data
+ \setpositionplus{\s!syncpos:#1:\the\csname\s!num:\s!syncpos:#1\endcsname}{#2}\hpack{\strut}%
\else
\strut
+ \fi}
+
+\def\setsyncpositions#1%
+ {\enabletextarearegistration
+ \getvalue {\s!set:\s!syncpos:#1}%
+ \letgvalue{\s!set:\s!syncpos:#1}\relax}
+
+\def\dosetsyncpositions#1%
+ {\startnointerference % removing out of sync can best be done in mp
+ \!!dimena\maxdimen
+ \!!counta\zerocount
+ \!!countc\zerocount
+ \doloop
+ {\doifelseposition{\s!syncpos:#1:\recurselevel}
+ {\!!dimenb\MPy{\s!syncpos:#1:\recurselevel}\relax
+ \!!countb\MPp{\s!syncpos:#1:\recurselevel}\relax
+ \ifnum\!!countb=\!!counta % same page
+ \ifdim\!!dimenb>\!!dimena
+ \donefalse % out of order nodes
+ \else
+ \donetrue % nodes in order
+ \fi
+ \else
+ \donetrue % different page
+ \fi
+ \ifdone
+ \!!counta\!!countb
+ \!!dimena\!!dimenb
+ \advance\!!countc\plusone
+ \edef\!!stringa{[#1][\the\!!countc]:=}%
+ \edef\!!stringc{\s!syncpos:#1:\the\!!countc}%
+ \edef\!!stringd{\MPplus\!!stringc{1}{0}}%
+ \setxvalue{\s!syncpos:#1}%
+ {\getsyncpositions{#1}%
+ sync_p \!!stringa \MPp \!!stringc ;
+ sync_xy\!!stringa \MPxy\!!stringc ;
+ sync_w \!!stringa \MPw \!!stringc ;
+ sync_h \!!stringa \MPh \!!stringc ;
+ sync_d \!!stringa \MPd \!!stringc ;
+ \ifx\!!stringd\empty \else sync_t \!!stringa \MPplus\!!stringc{1}{0} ; \fi}%
+ \fi}
+ {\setxvalue{\s!syncpos:#1}%
+ {\getsyncpositions{#1}%
+ sync_n[#1] := \the\!!countc ;}
+ \exitloop}}%
+ \stopnointerference}
+
+\def\getsyncpositions#1%
+ {\getvalue{\s!syncpos:#1}}
+
+\newtoks\resetsyncpositions
+\newtoks\presetsyncpositions
+
+\def\resyncposition {\dodoubleargument\doresyncposition}
+\def\presyncposition{\dodoubleargument\dopresyncposition}
+
+\def\dodoresyncposition #1#2{\dodosyncposition{#1}{#2}\s!reset}
+\def\dodopresyncposition#1#2{\dodosyncposition{#1}{#2}\s!preset}
+
+\def\doresyncposition [#1][#2]{\setxvalue{\s!reset :\s!syncpos:#1}{\noexpand\dodoresyncposition{#1}{#2}}}
+\def\dopresyncposition[#1][#2]{\setxvalue{\s!preset:\s!syncpos:#1}{\noexpand\dodopresyncposition{#1}{#2}}}
+
+\let\flushsyncpositions\relax
+
+\def\doflushsyncpositions % this order !
+ {\begingroup
+ \the\presetsyncpositions
+ \the\resetsyncpositions
+ \endgroup}
+
+\def\flushsyncxxsets#1%
+ {\begingroup
+ \setbox\scratchbox\hbox{\the#1}%
+ \ifvoid\scratchbox\else
+ \prewordbreak
+ %\let\prewordbreak\relax % only once
+ \smashbox\scratchbox
+ \box\scratchbox
\fi
- \ignorespaces}
+ \endgroup}
+
+\let\flushsyncresets \relax
+\let\flushsyncpresets\relax
+
+\def\doflushsyncresets {\flushsyncxxsets\resetsyncpositions }
+\def\doflushsyncpresets{\flushsyncxxsets\presetsyncpositions}
+
+% \appendtoks \flushsyncpositions \to \everypar
+% \appendtoks \flushsyncpositions \to \everyheadstart
+
+% \explicitneverypar -> in grid snapper, eerst testen
+%
+% \appendtoks \flushsyncpositions \to \neverypar
\protect
@@ -54,106 +163,41 @@
\starttext
-% \setuppapersize[A4][A3]
-
-\setuplayout[location=middle]
-
\setupbodyfont[dejavu]
\definesyncpositions[1]
-\definesyncpositions[2]
-
-% \enabletrackers[metapost.lua]
-
-\startMPdefinitions
- input "mp-asnc.mpiv" ;
-
- SetSyncColor(1,0,"magenta") ;
- SetSyncColor(1,1,"red") ;
- SetSyncColor(1,2,"green") ;
- SetSyncColor(1,3,"blue") ;
- SetSyncColor(1,4,"yellow") ;
-
- SetSyncColor(2,0,"magenta") ;
- SetSyncColor(2,1,"red") ;
- SetSyncColor(2,2,"green") ;
- SetSyncColor(2,3,"blue") ;
- SetSyncColor(2,4,"yellow") ;
-\stopMPdefinitions
-
-\startuseMPgraphic{sync1}
- StartPage ;
- StartSync(1) ;
- SyncHOffset := 0 ;
- SyncWidth := BackSpace - LeftMarginDistance;
- CollectSyncDataPage ;
- % ExtendSyncPaths ; % to top of text area
- PruneSyncPaths ; % clip top / bottom
- CollapseSyncPaths ;
- MakeSyncPaths ;
- % DrawSyncPaths ;
- FillSyncPaths ;
- StopSync ;
- clip currentpicture to Page ;
- setbounds currentpicture to Page ;
- StopPage ;
-\stopuseMPgraphic
-\startuseMPgraphic{sync2}
- StartSync(2) ;
- SyncHOffset := -1cm ;
- SyncWidth := 1cm ;
- CollectSyncDataRegion(OverlayRegion) ;
- ExtendSyncPaths ; % to top of text area
- MakeSyncPaths ;
- FillSyncPaths ;
- StopSync ;
- clip currentpicture to OverlayBox leftenlarged 1cm;
- setbounds currentpicture to OverlayBox ;
+\startuseMPgraphic{sync}
+ StartPage ;
+ \getsyncpositions{1} ;
+ SyncThreshold := 2LineHeight ;
+ SyncLeftOffset := -.5LeftMarginDistance ;
+ % SetSyncThreshold(1,3,3LineHeight) ;
+ SyncWidth := - (BackSpace + SyncLeftOffset) ;
+ SetSyncColor(1,1,\MPcolor{red}) ;
+ SetSyncColor(1,2,\MPcolor{green}) ;
+ SetSyncColor(1,3,\MPcolor{blue}) ;
+ SetSyncColor(1,4,\MPcolor{yellow}) ;
+ PrepareSyncTasks(1,true,true,false) ;
+ for i = 1 upto NOfSyncPaths :
+ fill SyncPaths[i]
+ withcolor TheSyncColor(CurrentSyncClass,sync_t[CurrentSyncClass][SyncTasks[i]]) ;
+ endfor ;
+ setbounds currentpicture to Page ;
+ StopPage ;
\stopuseMPgraphic
-\defineoverlay[tempoverlay1][\useMPgraphic{sync1}]
-\defineoverlay[tempoverlay2][\useMPgraphic{sync2}]
-
-\setupbackgrounds[page][background=tempoverlay1]
-
-\framed[region=yes,background=tempoverlay2,width=14cm,align=normal]{
- \syncposition[2][1]\samplefile{ward}\endgraf
- \syncposition[2][2]\samplefile{ward}\endgraf
- \syncposition[2][3]\samplefile{ward}\endgraf
-}
-
-
-\vskip1cm \hskip1cm \framed[region=yes,background=tempoverlay2,width=16cm,align=normal]{
- \syncposition[2][1]\samplefile{ward}\endgraf
- \syncposition[2][2]\samplefile{ward}\endgraf
- \syncposition[2][3]\samplefile{ward}\endgraf
-}
-
-\vskip1cm \hskip1cm \framed[region=yes,background=tempoverlay2,width=10cm,align=normal]{
- \syncposition[2][1]\samplefile{ward}\endgraf
- \syncposition[2][2]\samplefile{ward}\endgraf
- \syncposition[2][3]\samplefile{ward}\endgraf
-}
+\defineoverlay[tempoverlay][\useMPgraphic{sync}]
+\setupbackgrounds[page][background=tempoverlay]
-\dorecurse {100} {
-% \dorecurse {1} {
- \startchapter[title={Test #1}]
- \syncposition[1][1,reset]\dorecurse{20}{\samplefile{ward}\endgraf}
- \syncposition[1][2]\dorecurse {4}{\samplefile{ward}\endgraf}
- \syncposition[1][3]\dorecurse {7}{\samplefile{ward}\endgraf}
- \syncposition[1][4]\dorecurse {3}{\samplefile{ward}\endgraf}
- \stopchapter
-}
+\dorecurse {10} {
-\dorecurse {100} {
-% \dorecurse {1} {
\startchapter[title={Test #1}]
- \syncposition[1][1]\dorecurse{1}{\samplefile{ward}\endgraf}
- \syncposition[1][2]\dorecurse{1}{\samplefile{ward}\endgraf}
- \syncposition[1][3]\dorecurse{1}{\samplefile{ward}\endgraf}
- \syncposition[1][4]\dorecurse{1}{\samplefile{ward}\endgraf}
+ \syncposition[1][1] \dorecurse{10}{\input ward \endgraf}
+ \syncposition[1][2] \dorecurse {4}{\input ward \endgraf}
+ \syncposition[1][3] \dorecurse {7}{\input ward \endgraf}
+ \syncposition[1][4] \dorecurse {3}{\input ward \endgraf}
\stopchapter
}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/anch-tab.mkiv b/Master/texmf-dist/tex/context/base/mkiv/anch-tab.mkiv
index 67afb22f7cb..afa87c7b272 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/anch-tab.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/anch-tab.mkiv
@@ -84,8 +84,8 @@
\newcount \noftabpositions
\newtoks \posXCtoks
-\unexpanded\def\anch_tabulate_bpos{\bpos}
-\unexpanded\def\anch_tabulate_epos{\epos}
+\def\anch_tabulate_bpos{\bpos}
+\def\anch_tabulate_epos{\epos}
\installcorenamespace{positiontables}
@@ -134,18 +134,15 @@
{\anch_tables_append_GSC[#1:#1]}
\def\anch_tables_append_GSC[#1:#2:#3]%
-% {\doglobal\appendtoks\anch_tables_process_GSC[#1:#2]\to\posXCtoks\NC}
- {\gtoksapp\posXCtoks{\anch_tables_process_GSC[#1:#2]}\NC}
+ {\doglobal\appendtoks\anch_tables_process_GSC[#1:#2]\to\posXCtoks\NC}
\def\anch_tables_process_GSC[#1:#2]%
{\remappositionframed{#2}{\tbPOSprefix#1}%
\anch_tabulate_bpos{\tbPOSprefix#1}%
- \doglobal\appendtoks\expandafter\anch_tabulate_epos\expandafter{\tbPOSprefix#1}\to\posXCtoks}
-% \xtoksapp\posXCtoks{\anch_tabulate_epos{\tbPOSprefix#1}}}
+ \doglobal\appendtoks\@EA\anch_tabulate_epos\@EA{\tbPOSprefix#1}\to\posXCtoks}
\def\anch_tables_indeed_GFC[#1]%
{\doglobal\appendtoks\anch_tables_delayed_GFC[#1]\to\posXCtoks\NC}
-% {\gtoksapp\posXCtoks{\anch_tables_delayed_GFC[#1]}\NC}
\def\anch_tables_delayed_GFC[#1]%
{\processcommalist[#1]\anch_tables_step_GFC}
@@ -159,11 +156,9 @@
\def\anch_tables_indeed_GTC[#1]%
{\doglobal\appendtoks\anch_tables_delayed_GTC[#1]\to\posXCtoks\NC}
-% {\gtoksapp\posXCtoks{\anch_tables_delayed_GTC[#1]}\NC}
\def\anch_tables_delayed_GTC[#1]%
{\doglobal\appendtoks\anch_tables_process_GTC[#1]\to\posXCtoks}
-% {\gtoksapp\posXCtoks{\anch_tables_process_GTC[#1]}\NC}
\def\anch_tables_process_GTC[#1]%
{\processcommalist[#1]\anch_tables_step_GTC}
@@ -212,10 +207,10 @@
\let\anch_tabulate_flush_epos\relax
-\unexpanded\def\anch_tabulate_bpos_indeed
+\def\anch_tabulate_bpos_indeed
{\bpos}
-\unexpanded\def\anch_tabulate_epos_indeed#1%
+\def\anch_tabulate_epos_indeed#1%
{\ifvoid\b_tabl_tabulate_current\c_tabl_tabulate_column
\epos{#1}%
\glet\anch_tabulate_flush_epos\relax
diff --git a/Master/texmf-dist/tex/context/base/mkiv/attr-col.lua b/Master/texmf-dist/tex/context/base/mkiv/attr-col.lua
index 5ea72c7e3b3..28e63b1770f 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/attr-col.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/attr-col.lua
@@ -114,16 +114,12 @@ local data = colors.data
local values = colors.values
local registered = colors.registered
-local cmykrgbmode = 0 -- only for testing, already defined colors are not affected
-
local numbers = attributes.numbers
local list = attributes.list
registerstorage("attributes/colors/values", values, "attributes.colors.values")
registerstorage("attributes/colors/registered", registered, "attributes.colors.registered")
-directives.register("colors.cmykrgbmode", function(v) cmykrgbmode = tonumber(v) or 0 end)
-
local f_colors = {
rgb = formatters["r:%s:%s:%s"],
cmyk = formatters["c:%s:%s:%s:%s"],
@@ -152,11 +148,8 @@ end
local function cmyktorgb(c,m,y,k)
if not c then
return 0, 0, 0, 1
- elseif cmykrgbmode == 1 then
- local d = 1.0 - k
- return 1.0 - min(1.0,c*d+k), 1.0 - min(1.0,m*d+k), 1.0 - min(1.0,y*d+k)
else
- return 1.0 - min(1.0,c +k), 1.0 - min(1.0,m +k), 1.0 - min(1.0,y +k)
+ return 1.0 - min(1.0,c+k), 1.0 - min(1.0,m+k), 1.0 - min(1.0,y+k)
end
end
@@ -302,7 +295,7 @@ function colors.spot(parent,f,d,p)
local v = values[n]
if v then
-- the via cmyk hack is dirty, but it scales better
- local c, m, y, k = p*v[6], p*v[7], p*v[8], p*v[9]
+ local c, m, y, k = p*v[6], p*v[7], p*v[8], p*v[8]
local r, g, b = cmyktorgb(c,m,y,k)
local s = cmyktogray(c,m,y,k)
return { 5, s, r, g, b, c, m, y, k, parent, f, d, p }
@@ -325,7 +318,7 @@ function colors.spot(parent,f,d,p)
c = c + p*v[6]
m = m + p*v[7]
y = y + p*v[8]
- k = k + p*v[9]
+ k = k + p*v[8]
done = true
end
end
@@ -368,14 +361,10 @@ local function reviver(data,n)
local gray = graycolor(v[2])
d = { gray, gray, gray, gray }
elseif model == 3 then
- local gray = graycolor(v[2])
- local rgb = rgbcolor(v[3],v[4],v[5])
- local cmyk = cmykcolor(v[6],v[7],v[8],v[9])
+ local gray, rgb, cmyk = graycolor(v[2]), rgbcolor(v[3],v[4],v[5]), cmykcolor(v[6],v[7],v[8],v[9])
d = { rgb, gray, rgb, cmyk }
elseif model == 4 then
- local gray = graycolor(v[2])
- local rgb = rgbcolor(v[3],v[4],v[5])
- local cmyk = cmykcolor(v[6],v[7],v[8],v[9])
+ local gray, rgb, cmyk = graycolor(v[2]), rgbcolor(v[3],v[4],v[5]), cmykcolor(v[6],v[7],v[8],v[9])
d = { cmyk, gray, rgb, cmyk }
elseif model == 5 then
local spot = spotcolor(v[10],v[11],v[12],v[13])
@@ -417,29 +406,10 @@ function colors.setmodel(name,weightgray)
weightgray = true
end
end
- local default = models[name] or 1
-
- colors.model = name -- global, not useful that way
- colors.default = default -- global
- colors.weightgray = weightgray -- global
-
- -- avoid selective checking is no need for it
-
- local forced = colors.forced
-
- if forced == nil then
- -- unset
- colors.forced = default
- elseif forced == false then
- -- assumed mixed
- elseif forced ~= default then
- -- probably mixed
- colors.forced = false
- else
- -- stil the same
- end
-
- return default
+ colors.model = name -- global, not useful that way
+ colors.default = models[name] or 1 -- global
+ colors.weightgray = weightgray -- global
+ return colors.default
end
function colors.register(name, colorspace, ...) -- passing 9 vars is faster (but not called that often)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/attr-ini.lua b/Master/texmf-dist/tex/context/base/mkiv/attr-ini.lua
index dd971afc149..67faa9fc0a9 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/attr-ini.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/attr-ini.lua
@@ -62,7 +62,7 @@ ranges of numbers for them. Of course a the <l n='context'/> end a private attri
accessible too, so a private attribute can have a public appearance.</p>
--ldx]]--
-sharedstorage.attributes_last_private = sharedstorage.attributes_last_private or 15 -- very private
+sharedstorage.attributes_last_private = sharedstorage.attributes_last_private or 127 -- very private (can become 15)
sharedstorage.attributes_last_public = sharedstorage.attributes_last_public or 1024 -- less private
function attributes.private(name) -- at the lua end (hidden from user)
@@ -114,8 +114,7 @@ local function showlist(what,list)
local a = list.next
local i = 0
while a do
- local number = a.number
- local value = a.value
+ local number, value = a.number, a.value
i = i + 1
report_attribute("%S %2i: attribute %3i, value %4i, name %a",what,i,number,value,names[number])
a = a.next
diff --git a/Master/texmf-dist/tex/context/base/mkiv/attr-ini.mkiv b/Master/texmf-dist/tex/context/base/mkiv/attr-ini.mkiv
index 3792b1c6370..d537cebfa5d 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/attr-ini.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/attr-ini.mkiv
@@ -24,7 +24,6 @@
\installcorenamespace{attributecount} % the counter representing the attribute (attrdef'd)
\installcorenamespace{attributeid} % the internal number
\installcorenamespace{attributestack} % the attribute specific stack
-\installcorenamespace{attributepickup}
\unexpanded\def\pushattribute#1%
{\global\advance\csname\??attributestack\string#1\endcsname\plusone
@@ -41,15 +40,12 @@
\newtoks \t_attr_list_global
\newtoks \t_attr_list_local
-\newtoks \t_attr_list_pickup
\newtoks \t_attr_list_nomath
\ifdefined \s!global \else \def\s!global {global} \fi % for metatex % or hard check later
\ifdefined \s!public \else \def\s!public {public} \fi % for metatex % or hard check later
\ifdefined \s!private \else \def\s!private {private} \fi % for metatex % or hard check later
\ifdefined \s!attribute \else \def\s!attribute{attribute} \fi % for metatex % or hard check later
-\ifdefined \s!pickup \else \def\s!pickup {pickup} \fi % for metatex % or hard check later
-\ifdefined \s!forget \else \def\s!forget {forget} \fi % for metatex % or hard check later
\unexpanded\def\defineattribute {\dodoubleempty\attr_basics_define}
\unexpanded\def\definesystemattribute{\dodoubleempty\attr_basics_define_system}
@@ -57,8 +53,6 @@
\def\attr_basics_define {\attr_basics_define_indeed\s!public}
\def\attr_basics_define_system{\attr_basics_define_indeed\s!private}
- % here public means 'visible' so it's not to be confused with 'public' at the lua end
-
\def\attr_basics_define_indeed#1[#2][#3]%
{\ifcsname\??attributecount#2\endcsname\else
\scratchcounter\clf_defineattribute{#2}{#1}\relax
@@ -68,33 +62,15 @@
\csname\??attributeid#2\endcsname\scratchcounter
% some attributes are always global
\doifelseinset\s!global{#3}%
- {\etoksapp\t_attr_list_global{\csname\??attributecount#2\endcsname\attributeunsetvalue}}%
- {\etoksapp\t_attr_list_local {\csname\??attributecount#2\endcsname\attributeunsetvalue}}%
+ {\appendetoks\csname\??attributecount#2\endcsname\attributeunsetvalue\to\t_attr_list_global}%
+ {\appendetoks\csname\??attributecount#2\endcsname\attributeunsetvalue\to\t_attr_list_local }%
\doifinset\s!nomath{#3}%
- {\etoksapp\t_attr_list_nomath{\csname\??attributecount#2\endcsname\attributeunsetvalue}}%
+ {\appendetoks\csname\??attributecount#2\endcsname\attributeunsetvalue\to\t_attr_list_nomath}%
+ % here public means 'visible' so it's not to be confused with 'public' at the lua end
\doifinset\s!public{#3}%
{\expandafter\let\csname#2\s!attribute\expandafter\endcsname\csname\??attributeid#2\endcsname}%
- \doifinset\s!pickup{#3}%
- {\expandafter\newconstant\csname\??attributepickup#2\endcsname
- \csname\??attributepickup#2\endcsname\attributeunsetvalue
- \etoksapp\t_attr_list_pickup{\csname\??attributecount#2\endcsname\csname\??attributepickup#2\endcsname}%
- \ifcsname#2\s!attribute\endcsname
- \expandafter\edef\csname\s!pickup#2\s!attribute\endcsname
- {\csname\??attributepickup#2\endcsname\csname\??attributecount#2\endcsname}%
- \expandafter\edef\csname\s!forget#2\s!attribute\endcsname
- {\csname\??attributepickup#2\endcsname\attributeunsetvalue}%
- \fi}%
\fi}
-\unexpanded\def\pickupattributes
- {\the\t_attr_list_pickup\relax}
-
-% \unexpanded\def\pickupattribute#1%
-% {\csname\??attributecount#1\endcsname\csname\??attributepickup#1\endcsname}
-
-% \unexpanded\def\pickupattributelater#1%
-% {\csname\??attributepickup#1\endcsname\csname\??attributecount#1\endcsname}
-
\unexpanded\def\newattribute#1%
{\attr_basics_define_indeed\s!public[\csstring#1][]%
\expandafter\let\expandafter#1\csname\??attributeid\csstring#1\endcsname}
@@ -108,8 +84,8 @@
\let\dompattribute\gobbletwoarguments
-\unexpanded\def\resetglobalattributes{\the\t_attr_list_global\attribute\zerocount\zerocount}
-\unexpanded\def\resetlocalattributes {\the\t_attr_list_local \attribute\zerocount\zerocount}
+\unexpanded\def\resetglobalattributes{\the\t_attr_list_global}
+\unexpanded\def\resetlocalattributes {\the\t_attr_list_local }
\let\resetallattributes\resetlocalattributes
diff --git a/Master/texmf-dist/tex/context/base/mkiv/back-exp.lua b/Master/texmf-dist/tex/context/base/mkiv/back-exp.lua
index f5035d3cfab..b18679fa234 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/back-exp.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/back-exp.lua
@@ -37,7 +37,7 @@ local next, type, tonumber = next, type, tonumber
local sub, gsub = string.sub, string.gsub
local validstring = string.valid
local lpegmatch = lpeg.match
-local utfchar, utfvalues, utflen = utf.char, utf.values, utf.len
+local utfchar, utfvalues = utf.char, utf.values
local concat, insert, remove, merge, sort = table.concat, table.insert, table.remove, table.merge, table.sort
local sortedhash, sortedkeys = table.sortedhash, table.sortedkeys
local formatters = string.formatters
@@ -46,7 +46,6 @@ local replacetemplate = utilities.templates.replace
local trace_export = false trackers.register ("export.trace", function(v) trace_export = v end)
local trace_spacing = false trackers.register ("export.trace.spacing", function(v) trace_spacing = v end)
-local trace_detail = false trackers.register ("export.trace.detail", function(v) trace_detail = v end)
local less_state = false directives.register("export.lessstate", function(v) less_state = v end)
local show_comment = true directives.register("export.comment", function(v) show_comment = v end)
@@ -68,7 +67,6 @@ local attributes = attributes
local variables = interfaces.variables
local v_yes = variables.yes
local v_no = variables.no
-local v_xml = variables.xml
local v_hidden = variables.hidden
local implement = interfaces.implement
@@ -84,8 +82,56 @@ local fontchar = fonts.hashes.characters
local fontquads = fonts.hashes.quads
local languagenames = languages.numbers
+local nodecodes = nodes.nodecodes
+local skipcodes = nodes.skipcodes
+local listcodes = nodes.listcodes
+
+local hlist_code = nodecodes.hlist
+local vlist_code = nodecodes.vlist
+local glyph_code = nodecodes.glyph
+local glue_code = nodecodes.glue
+local kern_code = nodecodes.kern
+local disc_code = nodecodes.disc
+
+local userskip_code = skipcodes.userskip
+local rightskip_code = skipcodes.rightskip
+local parfillskip_code = skipcodes.parfillskip
+local spaceskip_code = skipcodes.spaceskip
+local xspaceskip_code = skipcodes.xspaceskip
+
+local line_code = listcodes.line
+
local texgetcount = tex.getcount
+local privateattribute = attributes.private
+local a_characters = privateattribute('characters')
+local a_exportstatus = privateattribute('exportstatus')
+local a_tagged = privateattribute('tagged')
+local a_taggedpar = privateattribute("taggedpar")
+local a_image = privateattribute('image')
+local a_reference = privateattribute('reference')
+local a_textblock = privateattribute("textblock")
+
+local nuts = nodes.nuts
+local tonut = nuts.tonut
+
+local getnext = nuts.getnext
+local getsubtype = nuts.getsubtype
+local getfont = nuts.getfont
+local getdisc = nuts.getdisc
+local getcomponents = nuts.getcomponents
+local getlist = nuts.getlist
+local getid = nuts.getid
+local getattr = nuts.getattr
+local setattr = nuts.setattr -- maybe use properties
+local isglyph = nuts.isglyph
+local getkern = nuts.getkern
+local getwidth = nuts.getwidth
+
+
+local traverse_id = nuts.traverse_id
+local traverse_nodes = nuts.traverse
+
local references = structures.references
local structurestags = structures.tags
local taglist = structurestags.taglist
@@ -121,7 +167,7 @@ local currentparagraph = nil
local noftextblocks = 0
------ hyphencode = 0xAD
+local hyphencode = 0xAD
local hyphen = utfchar(0xAD) -- todo: also emdash etc
local tagsplitter = structurestags.patterns.splitter
----- colonsplitter = lpeg.splitat(":")
@@ -508,8 +554,6 @@ do
local fields = { "title", "subtitle", "author", "keywords", "url", "version" }
- local ignoredelements = false
-
local function checkdocument(root)
local data = root.data
if data then
@@ -536,9 +580,6 @@ do
elseif tg == "ignore" then
di.element = ""
checkdocument(di)
- elseif ignoredelements and ignoredelements[tg] then
- di.element = ""
- checkdocument(di)
else
checkdocument(di) -- new, else no noexport handling
end
@@ -568,64 +609,6 @@ do
checkdocument(di)
end
- implement {
- name = "ignoretagsinexport",
- arguments = "string",
- actions = function(list)
- for tag in string.gmatch(list,"[a-z]+") do
- if ignoredelements then
- ignoredelements[tag] = true
- else
- ignoredelements = { [tag] = true }
- end
- end
- end,
- }
-
-end
-
-do
-
- local marginanchors = { }
- local margincontent = { }
-
- implement {
- name = "settagmargintext",
- arguments = "integer",
- actions = function(n)
- marginanchors[locatedtag("margintext")] = n
- end
- }
-
- implement {
- name = "settagmarginanchor",
- arguments = "integer",
- actions = function(n)
- marginanchors[locatedtag("marginanchor")] = n
- end
- }
-
- function checks.margintext(di)
- local i = marginanchors[di.fulltag]
- margincontent[i] = di
- end
-
- function checks.marginanchor(di)
- local i = marginanchors[di.fulltag]
- local d = margincontent[i]
- --
- di.attribute = d.attribute
- di.data = d.data
- di.detail = d.detail
- di.element = d.element
- di.fulltag = d.fulltag
- di.nature = d.nature
- di.samepar = true
- di.tg = d.tg
- --
- d.skip = "ignore"
- end
-
end
do
@@ -939,8 +922,7 @@ evaluators.special = function(di,var)
end
end
-local referencehash = { }
-local destinationhash = { }
+local referencehash = { }
do
@@ -1058,37 +1040,10 @@ do
end
end
- local function reference(di,element,n,fulltag)
- local destination = destinationhash[fulltag]
- if destination then
- local d = structures.references.internals[destination]
- if d then
- addreference(di,d.references)
- return true
- else
- return false
- end
- else
- local data = di.data
- if data then
- for i=1,#data do
- local di = data[i]
- if di then
- local fulltag = di.fulltag
- if fulltag and reference(di,element,n,fulltag) then
- return true
- end
- end
- end
- end
- end
- end
-
extras.adddestination = adddestination
extras.addreference = addreference
extras.link = link
- extras.reference = reference
end
@@ -1288,21 +1243,22 @@ do
}
end
if ndata == 0 then
- root.skip = "comment" -- get rid of weird artefacts
- root.nota = "weird"
+root.skip = "comment" -- get rid of weird artefacts
+root.nota = "weird"
return
elseif ndata == 1 then
local d = data[1]
if not d or d == "" then
- root.skip = "comment"
+root.skip = "comment"
return
elseif d.content then
return
else -- if ndata == 1 then
local tg = d.tg
- if automathrows and (roottg == "mrow" or roottg == "mtext") then
+-- if automathrows and roottg == "mrow" then
+if automathrows and (roottg == "mrow" or roottg == "mtext") then
-- maybe just always ! check spec first
- -- or we can have chesks.* for each as we then can flatten
+-- or we can have chesks.* for each as we then can flatten
if no_mrow[tg] then
root.skip = "comment"
end
@@ -1714,10 +1670,10 @@ do
end
function checks.mrow(di)
- -- local d = di.data
- -- if d then
- -- checked(d)
- -- end
+-- local d = di.data
+-- if d then
+-- checked(d)
+-- end
end
-- we can move more checks here
@@ -1804,25 +1760,6 @@ end
do
- local registered = { }
-
- function structurestags.setformulacontent(n)
- registered[locatedtag("formulacontent")] = {
- n = n,
- }
- end
-
- function extras.formulacontent(di,element,n,fulltag)
- local r = registered[fulltag]
- if r then
- setattribute(di,"n",r.n)
- end
- end
-
-end
-
-do
-
local registered = structures.sections.registered
local function resolve(di,element,n,fulltag)
@@ -1924,7 +1861,7 @@ do
end
end
- function extras.registerpages(di,element,n,fulltag) -- ignorebreaks
+ local function ignorebreaks(di,element,n,fulltag)
local data = di.data
for i=1,#data do
local d = data[i]
@@ -1934,7 +1871,7 @@ do
end
end
- function extras.registerseparator(di,element,n,fulltag) -- ignorespaces
+ local function ignorespaces(di,element,n,fulltag)
local data = di.data
for i=1,#data do
local d = data[i]
@@ -1945,6 +1882,9 @@ do
end
end
+ extras.registerpages = ignorebreaks
+ extras.registerseparator = ignorespaces
+
end
do
@@ -2051,41 +1991,6 @@ do
end
-do
-
- local usedpublications = { }
- local tagsindatasets = setmetatableindex("table")
- local serialize = false
-
- function structurestags.setpublication(dataset,tag,rendering)
- usedpublications[locatedtag("publication")] = {
- dataset = dataset,
- tag = tag,
- rendering = rendering
- }
- tagsindatasets[dataset][tag] = true
- if not serialize then
- structures.tags.registerextradata("btx",function()
- local t = { "<btxdata>"}
- for dataset, used in sortedhash(tagsindatasets) do
- t[#t+1] = publications.converttoxml(dataset,true,false,true,false,true,true)
- end
- t[#t+1] = "</btxdata>"
- return concat(t,"\n")
- end)
- end
- end
-
- function extras.publication(di,element,n,fulltag)
- local hash = usedpublications[fulltag]
- if hash then
- setattribute(di,"dataset",hash.dataset)
- setattribute(di,"tag",hash.tag)
- end
- end
-
-end
-
-- flusher
do
@@ -2093,7 +1998,7 @@ do
local f_detail = formatters[' detail="%s"']
local f_chain = formatters[' chain="%s"']
local f_index = formatters[' n="%s"']
- local f_spacing = formatters['<c p="%s">%s</c>']
+ local f_spacing = formatters['<c n="%s">%s</c>']
local f_empty_inline = formatters["<%s/>"]
local f_empty_mixed = formatters["%w<%s/>\n"]
@@ -2157,7 +2062,7 @@ do
local depth = 0
local inline = 0
- local function emptytag(result,element,nature,di) -- currently only break but at some point
+ local function emptytag(result,embedded,element,nature,di) -- currently only break but at some point
local a = di.attributes -- we might add detail etc
if a then -- happens seldom
if nature == "display" then
@@ -2206,7 +2111,7 @@ do
end
end
- local function begintag(result,element,nature,di,skip)
+ local function begintag(result,embedded,element,nature,di,skip)
local index = di.n
local fulltag = di.fulltag
local specification = specifications[fulltag] or { } -- we can have a dummy
@@ -2230,6 +2135,12 @@ do
-- ignore
else
+ -- if embedded then
+ -- if element == "math" then
+ -- embedded[f_tagid(element,index)] = #result+1
+ -- end
+ -- end
+
local n = 0
local r = { } -- delay this
if detail then
@@ -2249,7 +2160,6 @@ do
n = n + 1
r[n] = f_index(index)
end
- --
local extra = extras[element]
if extra then
extra(di,element,index,fulltag)
@@ -2271,14 +2181,8 @@ do
end
local a = di.attributes
if a then
- if trace_spacing then
- a.p = di.parnumber or 0
- end
n = n + 1
r[n] = attributes(a)
- elseif trace_spacing then
- n = n + 1
- r[n] = attributes { p = di.parnumber or 0 }
end
if n == 0 then
if nature == "inline" or inline > 0 then
@@ -2345,7 +2249,7 @@ do
end
end
- local function endtag(result,element,nature,di,skip)
+ local function endtag(result,embedded,element,nature,di,skip)
if skip == "comment" then
if show_comment then
if nature == "display" and (inline == 0 or inline == 1) then
@@ -2376,10 +2280,18 @@ do
inline = inline - 1
result[#result+1] = f_end_inline(namespaced[element])
end
+
+ -- if embedded then
+ -- if element == "math" then
+ -- local id = f_tagid(element,di.n) -- index)
+ -- local tx = concat(result,"",embedded[id],#result)
+ -- embedded[id] = "<?xml version='1.0' standalone='yes'?>" .. "\n" .. tx
+ -- end
+ -- end
end
end
- local function flushtree(result,data,nature)
+ local function flushtree(result,embedded,data,nature)
local nofdata = #data
for i=1,nofdata do
local di = data[i]
@@ -2411,23 +2323,23 @@ do
if not element then
-- skip
elseif element == "break" then -- or element == "pagebreak"
- emptytag(result,element,nature,di)
+ emptytag(result,embedded,element,nature,di)
elseif element == "" or di.skip == "ignore" then
-- skip
else
if di.before then
- flushtree(result,di.before,nature)
+ flushtree(result,embedded,di.before,nature)
end
local natu = di.nature
local skip = di.skip
if di.breaknode then
- emptytag(result,"break","display",di)
+ emptytag(result,embedded,"break","display",di)
end
- begintag(result,element,natu,di,skip)
- flushtree(result,di.data,natu)
- endtag(result,element,natu,di,skip)
+ begintag(result,embedded,element,natu,di,skip)
+ flushtree(result,embedded,di.data,natu)
+ endtag(result,embedded,element,natu,di,skip)
if di.after then
- flushtree(result,di.after,nature)
+ flushtree(result,embedded,di.after,nature)
end
end
end
@@ -2448,25 +2360,19 @@ do
local di = data[i]
if not di then
-- skip
- elseif di.skip == "ignore" then
- -- skip (new)
elseif di.content then
- if di.samepar then
- prevparnumber = false
- else
- local parnumber = di.parnumber
- if prevnature == "inline" and prevparnumber and prevparnumber ~= parnumber then
- nofnewdata = nofnewdata + 1
- if trace_spacing then
- newdata[nofnewdata] = makebreaknode { type = "a", p = prevparnumber, n = parnumber }
- else
- newdata[nofnewdata] = makebreaknode()
- end
+ local parnumber = di.parnumber
+ if prevnature == "inline" and prevparnumber and prevparnumber ~= parnumber then
+ nofnewdata = nofnewdata + 1
+ if trace_spacing then
+ newdata[nofnewdata] = makebreaknode { type = "a", p = prevparnumber, n = parnumber }
+ else
+ newdata[nofnewdata] = makebreaknode()
end
- prevelement = nil
- prevparnumber = parnumber
end
+ prevelement = nil
prevnature = "inline"
+ prevparnumber = parnumber
nofnewdata = nofnewdata + 1
newdata[nofnewdata] = di
elseif not di.collapsed then
@@ -2477,51 +2383,39 @@ do
end
prevelement = element
prevnature = "display"
- nofnewdata = nofnewdata + 1
- newdata[nofnewdata] = di
elseif element == "" or di.skip == "ignore" then
-- skip
else
- if di.samepar then
- prevnature = "inline"
- prevparnumber = false
- else
- local nature = di.nature
- local parnumber = di.parnumber
- if prevnature == "inline" and nature == "inline" and prevparnumber and prevparnumber ~= parnumber then
- nofnewdata = nofnewdata + 1
- if trace_spacing then
- newdata[nofnewdata] = makebreaknode { type = "b", p = prevparnumber, n = parnumber }
- else
- newdata[nofnewdata] = makebreaknode()
- end
- end
- prevnature = nature
- prevparnumber = parnumber
- end
- prevelement = element
- breaktree(di,tree,element)
- nofnewdata = nofnewdata + 1
- newdata[nofnewdata] = di
- end
- else
- if di.samepar then
- prevnature = "inline"
- prevparnumber = false
- else
local nature = di.nature
local parnumber = di.parnumber
if prevnature == "inline" and nature == "inline" and prevparnumber and prevparnumber ~= parnumber then
nofnewdata = nofnewdata + 1
if trace_spacing then
- newdata[nofnewdata] = makebreaknode { type = "c", p = prevparnumber, n = parnumber }
+ newdata[nofnewdata] = makebreaknode { type = "b", p = prevparnumber, n = parnumber }
else
newdata[nofnewdata] = makebreaknode()
end
end
prevnature = nature
prevparnumber = parnumber
+ prevelement = element
+ breaktree(di,tree,element)
+ end
+ nofnewdata = nofnewdata + 1
+ newdata[nofnewdata] = di
+ else
+ local nature = di.nature
+ local parnumber = di.parnumber
+ if prevnature == "inline" and nature == "inline" and prevparnumber and prevparnumber ~= parnumber then
+ nofnewdata = nofnewdata + 1
+ if trace_spacing then
+ newdata[nofnewdata] = makebreaknode { type = "c", p = prevparnumber, n = parnumber }
+ else
+ newdata[nofnewdata] = makebreaknode()
+ end
end
+ prevnature = nature
+ prevparnumber = parnumber
nofnewdata = nofnewdata + 1
newdata[nofnewdata] = di
end
@@ -2553,8 +2447,6 @@ do
local cd = currentdata[j]
if not cd or cd == "" then
-- skip
- elseif cd.skip == "ignore" then
- -- skip
elseif cd.content then
if not currentpar then
-- add space ?
@@ -2701,9 +2593,9 @@ local function pop()
currentdepth = currentdepth - 1
if trace_export then
if top then
- report_export("%w</%s>",currentdepth,tree.tg)
+ report_export("%w</%s>",currentdepth,top)
else
- report_export("</%s>",tree.tg)
+ report_export("</%s>",top)
end
end
else
@@ -2809,7 +2701,7 @@ local function pushcontent(oldparagraph,newparagraph)
local nd = #td
td[nd+1] = { parnumber = oldparagraph or currentparagraph, content = content }
if trace_export then
- report_export("%w<!-- start content with length %s -->",currentdepth,utflen(content))
+ report_export("%w<!-- start content with length %s -->",currentdepth,#content)
report_export("%w%s",currentdepth,(gsub(content,"\n","\\n")))
report_export("%w<!-- stop content -->",currentdepth)
end
@@ -2854,119 +2746,27 @@ end
-- inserts ?
-local collectresults do -- too many locals otherwise
-
- local nodecodes = nodes.nodecodes
- local gluecodes = nodes.gluecodes
- local listcodes = nodes.listcodes
- local whatsitcodes = nodes.whatsitcodes
-
- local subtypes = nodes.subtypes
-
- local hlist_code = nodecodes.hlist
- local vlist_code = nodecodes.vlist
- local glyph_code = nodecodes.glyph
- local glue_code = nodecodes.glue
- local kern_code = nodecodes.kern
- local disc_code = nodecodes.disc
- local whatsit_code = nodecodes.whatsit
- local localpar_code = nodecodes.localpar
-
- local userskip_code = gluecodes.userskip
- local rightskip_code = gluecodes.rightskip
- local parfillskip_code = gluecodes.parfillskip
- local spaceskip_code = gluecodes.spaceskip
- local xspaceskip_code = gluecodes.xspaceskip
-
- local linelist_code = listcodes.line
-
- local userdefinedwhatsit_code = whatsitcodes.userdefined
-
- local privateattribute = attributes.private
- local a_image = privateattribute('image')
- local a_reference = privateattribute('reference')
- local a_destination = privateattribute('destination')
- local a_characters = privateattribute('characters')
- local a_exportstatus = privateattribute('exportstatus')
- local a_tagged = privateattribute('tagged')
- local a_taggedpar = privateattribute("taggedpar")
- local a_textblock = privateattribute("textblock")
-
- local inline_mark = nodes.pool.userids["margins.inline"]
-
- local nuts = nodes.nuts
-
- local getnext = nuts.getnext
- local getdisc = nuts.getdisc
- local getlist = nuts.getlist
- local getid = nuts.getid
- local getattr = nuts.getattr
- local setattr = nuts.setattr -- maybe use properties
- local isglyph = nuts.isglyph
- local getkern = nuts.getkern
- local getwidth = nuts.getwidth
-
- local nexthlist = nuts.traversers.hlist
- local nextnode = nuts.traversers.node
-
- local function addtomaybe(maybewrong,c,case)
- if trace_export then
- report_export("%w<!-- possible paragraph mixup at %C case %i -->",currentdepth,c,case)
- else
- local s = formatters["%C"](c)
- if maybewrong then
- maybewrong[#maybewrong+1] = s
+local function collectresults(head,list,pat,pap) -- is last used (we also have currentattribute)
+ local p
+ for n in traverse_nodes(head) do
+ local c, id = isglyph(n) -- 14: image, 8: literal (mp)
+ if c then
+ local at = getattr(n,a_tagged) or pat
+ if not at then
+ -- we need to tag the pagebody stuff as being valid skippable
+ --
+ -- report_export("skipping character: %C (no attribute)",n.char)
else
- maybewrong = { s }
- end
- return maybewrong
- end
- end
-
- local function showmaybe(maybewrong)
- if not trace_export then
- report_export("fuzzy paragraph: % t",maybewrong)
- end
- end
-
- local function showdetail(n,id,subtype)
- local a = getattr(n,a_tagged)
- local t = taglist[a]
- local c = nodecodes[id]
- local s = subtypes[id][subtype]
- if a and t then
- report_export("node %a, subtype %a, tag %a, element %a, tree '% t'",c,s,a,t.tagname,t.taglist)
- else
- report_export("node %a, subtype %a, untagged",c,s)
- end
- end
-
- local function collectresults(head,list,pat,pap) -- is last used (we also have currentattribute)
- local p
- local localparagraph
- local maybewrong
- local pid
- for n, id, subtype in nextnode, head do
- if trace_detail then
- showdetail(n,id,subtype)
- end
- if id == glyph_code then
- local c, f = isglyph(n)
- local at = getattr(n,a_tagged) or pat
- if not at then
- -- we need to tag the pagebody stuff as being valid skippable
- --
- -- report_export("skipping character: %C (no attribute)",n.char)
+ -- we could add tonunicodes for ligatures (todo)
+ local components = getcomponents(n)
+ if components and (not characterdata[c] or overloads[c]) then -- we loose data
+ collectresults(components,nil,at) -- this assumes that components have the same attribute as the glyph ... we should be more tolerant (see math)
else
if last ~= at then
local tl = taglist[at]
- local ap = getattr(n,a_taggedpar) or pap
- if localparagraph and (not ap or ap < localparagraph) then
- maybewrong = addtomaybe(maybewrong,c,1)
- end
pushcontent()
- currentnesting = tl
- currentparagraph = ap
+ currentnesting = tl
+ currentparagraph = getattr(n,a_taggedpar) or pap
currentattribute = at
last = at
pushentry(currentnesting)
@@ -2980,11 +2780,6 @@ local collectresults do -- too many locals otherwise
local t = tl.taglist
referencehash[t[#t]] = r -- fulltag
end
- local d = getattr(n,a_destination)
- if d then
- local t = tl.taglist
- destinationhash[t[#t]] = d -- fulltag
- end
--
elseif last then
-- we can consider tagging the pars (lines) in the parbuilder but then we loose some
@@ -2997,15 +2792,12 @@ local collectresults do -- too many locals otherwise
currentattribute = last
currentparagraph = ap
end
- if localparagraph and (not ap or ap < localparagraph) then
- maybewrong = addtomaybe(maybewrong,c,2)
- end
if trace_export then
- report_export("%w<!-- processing glyph %C tagged %a -->",currentdepth,c,last)
+ report_export("%w<!-- processing glyph %C tagged %a) -->",currentdepth,c,last)
end
else
if trace_export then
- report_export("%w<!-- processing glyph %C tagged %a -->",currentdepth,c,at)
+ report_export("%w<!-- processing glyph %C tagged %a) -->",currentdepth,c,at)
end
end
local s = getattr(n,a_exportstatus)
@@ -3028,7 +2820,7 @@ local collectresults do -- too many locals otherwise
currentcontent[nofcurrentcontent] = " "
end
else
- local fc = fontchar[f]
+ local fc = fontchar[getfont(n)]
if fc then
fc = fc and fc[c]
if fc then
@@ -3059,60 +2851,63 @@ local collectresults do -- too many locals otherwise
end
end
end
- elseif id == disc_code then -- probably too late
- local pre, post, replace = getdisc(n)
- if keephyphens then
- if pre and not getnext(pre) and isglyph(pre) == 0xAD then -- hyphencode then
- nofcurrentcontent = nofcurrentcontent + 1
- currentcontent[nofcurrentcontent] = hyphen
- end
- end
- if replace then
- collectresults(replace,nil)
+ end
+ elseif id == disc_code then -- probably too late
+ local pre, post, replace = getdisc(n)
+ if keephyphens then
+ if pre and not getnext(pre) and isglyph(pre) == hyphencode then
+ nofcurrentcontent = nofcurrentcontent + 1
+ currentcontent[nofcurrentcontent] = hyphen
end
- elseif id == glue_code then
- -- we need to distinguish between hskips and vskips
- local ca = getattr(n,a_characters)
- if ca == 0 then
- -- skip this one ... already converted special character (node-acc)
- elseif ca then
- local a = getattr(n,a_tagged) or pat
- if a then
- local c = specialspaces[ca]
- if last ~= a then
- local tl = taglist[a]
- if trace_export then
- report_export("%w<!-- processing space glyph %U tagged %a case 1 -->",currentdepth,ca,a)
- end
- pushcontent()
- currentnesting = tl
- currentparagraph = getattr(n,a_taggedpar) or pap
- currentattribute = a
- last = a
+ end
+ if replace then
+ collectresults(replace,nil)
+ end
+ elseif id == glue_code then
+ -- we need to distinguish between hskips and vskips
+ local ca = getattr(n,a_characters)
+ if ca == 0 then
+ -- skip this one ... already converted special character (node-acc)
+ elseif ca then
+ local a = getattr(n,a_tagged) or pat
+ if a then
+ local c = specialspaces[ca]
+ if last ~= a then
+ local tl = taglist[a]
+ if trace_export then
+ report_export("%w<!-- processing space glyph %U tagged %a case 1 -->",currentdepth,ca,a)
+ end
+ pushcontent()
+ currentnesting = tl
+ currentparagraph = getattr(n,a_taggedpar) or pap
+ currentattribute = a
+ last = a
+ pushentry(currentnesting)
+ -- no reference check (see above)
+ elseif last then
+ local ap = getattr(n,a_taggedpar) or pap
+ if ap ~= currentparagraph then
+ pushcontent(currentparagraph,ap)
pushentry(currentnesting)
- -- no reference check (see above)
- elseif last then
- local ap = getattr(n,a_taggedpar) or pap
- if ap ~= currentparagraph then
- pushcontent(currentparagraph,ap)
- pushentry(currentnesting)
- currentattribute = last
- currentparagraph = ap
- end
- if trace_export then
- report_export("%w<!-- processing space glyph %U tagged %a case 2 -->",currentdepth,ca,last)
- end
+ currentattribute = last
+ currentparagraph = ap
+ end
+ if trace_export then
+ report_export("%w<!-- processing space glyph %U tagged %a case 2 -->",currentdepth,ca,last)
end
- -- if somespace[currentcontent[nofcurrentcontent]] then
- -- if trace_export then
- -- report_export("%w<!-- removing space -->",currentdepth)
- -- end
- -- nofcurrentcontent = nofcurrentcontent - 1
- -- end
- nofcurrentcontent = nofcurrentcontent + 1
- currentcontent[nofcurrentcontent] = c
end
- elseif subtype == userskip_code then
+ -- if somespace[currentcontent[nofcurrentcontent]] then
+ -- if trace_export then
+ -- report_export("%w<!-- removing space -->",currentdepth)
+ -- end
+ -- nofcurrentcontent = nofcurrentcontent - 1
+ -- end
+ nofcurrentcontent = nofcurrentcontent + 1
+ currentcontent[nofcurrentcontent] = c
+ end
+ else
+ local subtype = getsubtype(n)
+ if subtype == userskip_code then
if getwidth(n) > threshold then
if last and not somespace[currentcontent[nofcurrentcontent]] then
local a = getattr(n,a_tagged) or pat
@@ -3170,8 +2965,6 @@ local collectresults do -- too many locals otherwise
if not keephyphens then
nofcurrentcontent = nofcurrentcontent - 1
end
- elseif pid == disc_code then
- -- go on .. tricky: we should mark the glyhs as coming from a disc
elseif not somespace[r] then
local a = getattr(n,a_tagged) or pat
if a == last then
@@ -3195,134 +2988,101 @@ local collectresults do -- too many locals otherwise
end
end
elseif subtype == parfillskip_code then
- -- deal with paragraph endings (crossings) elsewhere and we quit here
+ -- deal with paragaph endings (crossings) elsewhere and we quit here
-- as we don't want the rightskip space addition
- if maybewrong then
- showmaybe(maybewrong)
- end
return
end
- elseif id == hlist_code or id == vlist_code then
- local ai = getattr(n,a_image)
- if ai then
+ end
+ elseif id == hlist_code or id == vlist_code then
+ local ai = getattr(n,a_image)
+ if ai then
+ local at = getattr(n,a_tagged) or pat
+ if nofcurrentcontent > 0 then
+ pushcontent()
+ pushentry(currentnesting) -- ??
+ end
+ pushentry(taglist[at]) -- has an index, todo: flag empty element
+ if trace_export then
+ report_export("%w<!-- processing image tagged %a",currentdepth,last)
+ end
+ last = nil
+ currentparagraph = nil
+ else
+ -- we need to determine an end-of-line
+ local list = getlist(n)
+ if list then
local at = getattr(n,a_tagged) or pat
- if nofcurrentcontent > 0 then
- pushcontent()
- pushentry(currentnesting) -- ??
- end
- pushentry(taglist[at]) -- has an index, todo: flag empty element
- if trace_export then
- report_export("%w<!-- processing image tagged %a",currentdepth,last)
- end
- last = nil
- currentparagraph = nil
- else
- -- we need to determine an end-of-line
- local list = getlist(n)
- if list then
- -- todo: no par checking needed in math
- local at = getattr(n,a_tagged) or pat
- collectresults(list,n,at)
- end
+ collectresults(list,n,at)
end
- elseif id == kern_code then
- local kern = getkern(n)
- if kern > 0 then
- local limit = threshold
- if p then
- local c, f = isglyph(p)
- if c then
- limit = fontquads[f] / 4
- end
- end
- if kern > limit then
- if last and not somespace[currentcontent[nofcurrentcontent]] then
- local a = getattr(n,a_tagged) or pat
- if a == last then
- if not somespace[currentcontent[nofcurrentcontent]] then
- if trace_export then
- report_export("%w<!-- injecting spacing 8 (kern %p) -->",currentdepth,kern)
- end
- nofcurrentcontent = nofcurrentcontent + 1
- currentcontent[nofcurrentcontent] = " "
- end
- elseif a then
- -- e.g LOGO<space>LOGO
- if trace_export then
- report_export("%w<!-- processing kern, threshold %p, tag %s => %s -->",currentdepth,limit,last,a)
- end
- last = a
- pushcontent()
+ end
+ elseif id == kern_code then
+ local kern = getkern(n)
+ if kern > 0 then
+ local limit = threshold
+ if p and getid(p) == glyph_code then
+ limit = fontquads[getfont(p)] / 4
+ end
+ if kern > limit then
+ if last and not somespace[currentcontent[nofcurrentcontent]] then
+ local a = getattr(n,a_tagged) or pat
+ if a == last then
+ if not somespace[currentcontent[nofcurrentcontent]] then
if trace_export then
- report_export("%w<!-- injecting spacing 9 (kern %p) -->",currentdepth,kern)
+ report_export("%w<!-- injecting spacing 8 (kern %p) -->",currentdepth,kern)
end
nofcurrentcontent = nofcurrentcontent + 1
currentcontent[nofcurrentcontent] = " "
- currentnesting = taglist[last]
- pushentry(currentnesting)
- currentattribute = last
end
+ elseif a then
+ -- e.g LOGO<space>LOGO
+ if trace_export then
+ report_export("%w<!-- processing kern, threshold %p, tag %s => %s -->",currentdepth,limit,last,a)
+ end
+ last = a
+ pushcontent()
+ if trace_export then
+ report_export("%w<!-- injecting spacing 9 (kern %p) -->",currentdepth,kern)
+ end
+ nofcurrentcontent = nofcurrentcontent + 1
+ currentcontent[nofcurrentcontent] = " "
+ currentnesting = taglist[last]
+ pushentry(currentnesting)
+ currentattribute = last
end
end
end
- elseif id == whatsit_code then
- if subtype == userdefinedwhatsit_code then
- -- similar to images, see above
- local at = getattr(n,a_tagged)
- if nofcurrentcontent > 0 then
- pushcontent()
- pushentry(currentnesting) -- ??
- end
- pushentry(taglist[at])
- if trace_export then
- report_export("%w<!-- processing anchor tagged %a",currentdepth,last)
- end
- last = nil
- currentparagraph = nil
- end
- elseif not localparagraph and id == localpar_code and subtype == 0 then
- localparagraph = getattr(n,a_taggedpar)
end
- p = n
- pid = id
- end
- if maybewrong then
- showmaybe(maybewrong)
end
+ p = n
end
+end
- function nodes.handlers.export(head) -- hooks into the page builder
- starttiming(treehash)
- if trace_export then
- report_export("%w<!-- start flushing page -->",currentdepth)
- end
- -- continueexport()
- restart = true
- collectresults(head)
- if trace_export then
- report_export("%w<!-- stop flushing page -->",currentdepth)
- end
- stoptiming(treehash)
- return head
+function nodes.handlers.export(head) -- hooks into the page builder
+ starttiming(treehash)
+ if trace_export then
+ report_export("%w<!-- start flushing page -->",currentdepth)
end
-
- function nodes.handlers.checkparcounter(p)
- setattr(p,a_taggedpar,texgetcount("tagparcounter") + 1)
- return p
+ -- continueexport()
+ restart = true
+ collectresults(tonut(head))
+ if trace_export then
+ report_export("%w<!-- stop flushing page -->",currentdepth)
end
+ stoptiming(treehash)
+ return head, true
+end
- function builders.paragraphs.tag(head)
- noftextblocks = noftextblocks + 1
- for n, subtype in nexthlist, head do
- if subtype == linelist_code then
- setattr(n,a_textblock,noftextblocks)
- elseif subtype == glue_code or subtype == kern_code then -- no need to set fontkerns
- setattr(n,a_textblock,0)
- end
+function builders.paragraphs.tag(head)
+ noftextblocks = noftextblocks + 1
+ for n in traverse_id(hlist_code,tonut(head)) do
+ local subtype = getsubtype(n)
+ if subtype == line_code then
+ setattr(n,a_textblock,noftextblocks)
+ elseif subtype == glue_code or subtype == kern_code then -- no need to set fontkerns
+ setattr(n,a_textblock,0)
end
- return false
end
-
+ return false
end
do
@@ -3477,12 +3237,13 @@ local htmltemplate = [[
local function allcontent(tree,embed)
local result = { }
- flushtree(result,tree.data,"display") -- we need to collect images
+ local embedded = embed and { }
+ flushtree(result,embedded,tree.data,"display") -- we need to collect images
result = concat(result)
-- no need to lpeg .. fast enough
result = gsub(result,"\n *\n","\n")
result = gsub(result,"\n +([^< ])","\n%1")
- return result
+ return result, embedded
end
-- local xhtmlpreamble = [[
@@ -3737,6 +3498,7 @@ local htmltemplate = [[
local basename = file.basename
local embedfile = false directives.register("export.embed",function(v) embedfile = v end)
+ local embedmath = false
function structurestags.finishexport()
@@ -3746,18 +3508,12 @@ local htmltemplate = [[
return
end
- local onlyxml = finetuning.export == v_xml
-
starttiming(treehash)
--
finishexport()
--
report_export("")
- if onlyxml then
- report_export("exporting xml, no other files")
- else
- report_export("exporting xml, xhtml, html and css files")
- end
+ report_export("exporting xml, xhtml and html files")
report_export("")
--
wrapups.collapsetree(tree)
@@ -3785,7 +3541,7 @@ local htmltemplate = [[
-- ./jobname-export/styles/jobname-images.css
-- ./jobname-export/styles/jobname-templates.css
- if type(askedname) ~= "string" or askedname == "" then
+ if type(askedname) ~= "string" or askedname == v_yes or askedname == "" then
askedname = tex.jobname
end
@@ -3853,74 +3609,6 @@ local htmltemplate = [[
stylefilebase,
}
- local cssextra = cssfile and table.unique(settings_to_array(cssfile)) or { }
-
- -- at this point we're ready for the content; the collector also does some
- -- housekeeping and data collecting; at this point we still have an xml
- -- representation that uses verbose element names and carries information in
- -- attributes
-
- local data = tree.data
- for i=1,#data do
- if data[i].tg ~= "document" then
- data[i] = { }
- end
- end
-
- local result = allcontent(tree,embedmath) -- embedfile is for testing
-
- -- ugly but so be it:
-
- local extradata = structures.tags.getextradata()
- if extradata then
- local t = { "" }
- t[#t+1] = "<extradata>"
- for name, action in sortedhash(extradata) do
- t[#t+1] = action()
- end
- t[#t+1] = "</extradata>"
- t[#t+1] = "</document>"
- -- we use a function because otherwise we can have a bad capture index
- result = gsub(result,"</document>",function()
- return concat(t,"\n")
- end)
- end
-
- -- done with ugly
-
- if onlyxml then
-
- os.remove(defaultfilename)
- os.remove(imagefilename)
- os.remove(stylefilename)
- os.remove(templatefilename)
-
- for i=1,#cssextra do
- os.remove(joinfile(stylepath,basename(source)))
- end
-
- -- os.remove(xmlfilename)
-
- os.remove(imagefilename)
- os.remove(stylefilename)
- os.remove(templatefilename)
- os.remove(xhtmlfilename)
- os.remove(specificationfilename)
- os.remove(htmlfilename)
-
- result = concat {
- wholepreamble(true),
- "<!-- This export file is used for filtering runtime only! -->\n",
- result,
- }
-
- report_export("saving xml data in %a",xmlfilename)
- io.savedata(xmlfilename,result)
-
- return
-
- end
-
local examplefilename = resolvers.find_file("export-example.css")
if examplefilename then
local data = io.loaddata(examplefilename)
@@ -3933,8 +3621,9 @@ local htmltemplate = [[
end
if cssfile then
- for i=1,#cssextra do
- local source = addsuffix(cssextra[i],"css")
+ local list = table.unique(settings_to_array(cssfile))
+ for i=1,#list do
+ local source = addsuffix(list[i],"css")
local target = joinfile(stylepath,basename(source))
cssfiles[#cssfiles+1] = source
if not lfs.isfile(source) then
@@ -3949,6 +3638,21 @@ local htmltemplate = [[
local x_styles, h_styles = allusedstylesheets(cssfiles,files,"styles")
+ -- at this point we're ready for the content; the collector also does some
+ -- housekeeping and data collecting; at this point we still have an xml
+ -- representation that uses verbose element names and carries information in
+ -- attributes
+
+
+ local data = tree.data
+ for i=1,#data do
+ if data[i].tg ~= "document" then
+ data[i] = { }
+ end
+ end
+
+ local result, embedded = allcontent(tree,embedmath) -- embedfile is for testing
+
local attach = backends.nodeinjections.attachfile
if embedfile and attach then
@@ -3962,6 +3666,22 @@ local htmltemplate = [[
mimetype = "application/mathml+xml",
}
end
+ -- if embedmath and attach then
+ -- local refs = { }
+ -- for k, v in sortedhash(embedded) do
+ -- attach {
+ -- data = v,
+ -- file = basename(k),
+ -- name = addsuffix(k,"xml"),
+ -- registered = k,
+ -- reference = k,
+ -- title = "xml export snippet: " .. k,
+ -- method = v_hidden,
+ -- mimetype = "application/mathml+xml",
+ -- }
+ -- refs[k] = 0
+ -- end
+ -- end
result = concat {
wholepreamble(true),
@@ -3991,14 +3711,14 @@ local htmltemplate = [[
local xmltree = cleanxhtmltree(xml.convert(result))
- -- local xmltree = xml.convert(result)
- -- for c in xml.collected(xmltree,"m:mtext[lastindex()=1]/m:mrow") do
- -- print(c)
- -- end
- -- for c in xml.collected(xmltree,"mtext/mrow") do
- -- print(c)
- -- end
- -- local xmltree = cleanxhtmltree(xmltree)
+-- local xmltree = xml.convert(result)
+-- for c in xml.collected(xmltree,"m:mtext[lastindex()=1]/m:mrow") do
+-- print(c)
+-- end
+-- for c in xml.collected(xmltree,"mtext/mrow") do
+-- print(c)
+-- end
+-- local xmltree = cleanxhtmltree(xmltree)
xml.save(xmltree,xhtmlfilename)
@@ -4007,8 +3727,8 @@ local htmltemplate = [[
-- looking at identity is somewhat redundant as we also inherit from interaction
-- at the tex end
- local identity = interactions.general.getidentity()
- local metadata = structures.tags.getmetadata()
+ local identity = interactions.general.getidentity()
+ local metadata = structures.tags.getmetadata()
local specification = {
name = usedname,
@@ -4071,15 +3791,19 @@ local htmltemplate = [[
stoptiming(treehash)
end
+ local appendaction = nodes.tasks.appendaction
local enableaction = nodes.tasks.enableaction
function structurestags.initializeexport()
if not exporting then
report_export("enabling export to xml")
- enableaction("shipouts","nodes.handlers.export")
+ -- not yet known in task-ini
+ appendaction("shipouts","normalizers", "nodes.handlers.export")
+ -- enableaction("shipouts","nodes.handlers.export")
enableaction("shipouts","nodes.handlers.accessibility")
enableaction("math", "noads.handlers.tags")
- enableaction("everypar","nodes.handlers.checkparcounter")
+ -- appendaction("finalizers","lists","builders.paragraphs.tag")
+ -- enableaction("finalizers","builders.paragraphs.tag")
luatex.registerstopactions(structurestags.finishexport)
exporting = true
end
@@ -4122,7 +3846,6 @@ implement {
{ "svgstyle" },
{ "cssfile" },
{ "file" },
- { "export" },
}
}
}
@@ -4137,6 +3860,7 @@ implement {
actions = structurestags.initializeexport,
}
+
implement {
name = "settagitemgroup",
actions = structurestags.setitemgroup,
@@ -4156,12 +3880,6 @@ implement {
}
implement {
- name = "settagformulacontent",
- actions = structurestags.setformulacontent,
- arguments = "integer",
-}
-
-implement {
name = "settagdelimitedsymbol",
actions = structurestags.settagdelimitedsymbol,
arguments = "string"
@@ -4244,9 +3962,3 @@ implement {
actions = structurestags.setlist,
arguments = "integer"
}
-
-implement {
- name = "settagpublication",
- actions = structurestags.setpublication,
- arguments = "2 strings"
-}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/back-exp.mkiv b/Master/texmf-dist/tex/context/base/mkiv/back-exp.mkiv
index 03dbe709a97..ad5ba837121 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/back-exp.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/back-exp.mkiv
@@ -17,7 +17,7 @@
%D This is an experimental exporter and a logical follow up on tagging. The
%D exporter assumes a properly tagged document. Some elements get a couple
-%D of attributes because otherwise rendering information would get lost. In
+%D of attributes becaus eitherwise rendering information would get lost. In
%D general we assume that when the \XML\ is converted to \HTML\ some stylesheet
%D is applied anyway.
@@ -241,27 +241,6 @@
\let\specialcontrolspace \explicitcontrolspace
\to \everyenableelements
-\appendtoks
- \unexpanded\def\dotagregisterformula#1%
- {\iftrialtypesetting\else
- \clf_settagformulacontent#1\relax
- \fi}%
-\to \everyenableelements
-
-\appendtoks
- \unexpanded\def\dotagmarginanchor#1%
- {\iftrialtypesetting\else\clf_settagmarginanchor#1\relax\fi}%
- \unexpanded\def\dotagmargintext#1%
- {\iftrialtypesetting\else\clf_settagmargintext#1\relax\fi}%
-\to \everyenableelements
-
-\appendtoks
- \unexpanded\def\dotagpublication#1#2%
- {\iftrialtypesetting\else
- \clf_settagpublication{#1}{#2}\relax
- \fi}%
-\to \everyenableelements
-
% The action: \setupbackend[export=yes] % or filename
% maybe xhtml css settings will move to setupexport
@@ -282,18 +261,18 @@
\c!author={\directinteractionparameter\c!author},
% \c!firstpage=, % imagename
% \c!lastpage=, % imagename
+ \c!alternative=, % html, div
\c!properties=\v!no, % no: ignore, yes: as attribute, otherwise: use as prefix
\c!hyphen=\v!no,
\c!svgstyle=,
\c!cssfile=,
- \c!file=]
+ \c!file={\backendparameter\c!export}] % downward compatibility
\resetsystemmode\v!export
\unexpanded\def\doinitializeexport
{\edef\p_export{\backendparameter\c!export}%
\ifx\p_export\empty \else
- % yes | xml
\setuptagging[\c!state=\v!start]%
\clf_initializeexport
\setsystemmode\v!export
@@ -321,7 +300,6 @@
svgstyle {\exportparameter\c!svgstyle}%
cssfile {\exportparameter\c!cssfile}%
file {\exportparameter\c!file}%
- export {\backendparameter\c!export}%
\relax}
\unexpanded\def\dostopexport
diff --git a/Master/texmf-dist/tex/context/base/mkiv/back-ini.lua b/Master/texmf-dist/tex/context/base/mkiv/back-ini.lua
index b7af1529b71..fd33d5ddc84 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/back-ini.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/back-ini.lua
@@ -6,47 +6,35 @@ if not modules then modules = { } end modules ['back-ini'] = {
license = "see context related readme files"
}
+-- -- how to create a shortcut:
+--
+-- local function something(...)
+-- something = backends.codeinjections.something
+-- return something(...)
+-- end
+
local next, type = next, type
local format = string.format
-local sind, cosd, abs = math.sind, math.cosd, math.abs
-local insert, remove = table.insert, table.remove
-local unpack = unpack
backends = backends or { }
local backends = backends
local trace_backend = false trackers.register("backend.initializers", function(v) trace_finalizers = v end)
-
-local report = logs.reporter("backend")
local report_backend = logs.reporter("backend","initializing")
local allocate = utilities.storage.allocate
local setmetatableindex = table.setmetatableindex
local setaction = nodes.tasks.setaction
-local scanners = tokens.scanners
-local scannumber = scanners.number
-local scankeyword = scanners.keyword
-local scancount = scanners.count
-local scanstring = scanners.string
-
-local scanners = interfaces.scanners
-
-local implement = interfaces.implement
-
-local texset = tex.set
-
-local nodeinjections = { }
-local codeinjections = { }
-local registrations = { }
-local tables = allocate()
-
-local function nothing()
- return nil
-end
+local function nothing() return nil end
backends.nothing = nothing
+local nodeinjections = { }
+local codeinjections = { }
+local registrations = { }
+local tables = allocate()
+
local function donothing(t,k)
t[k] = nothing
return nothing
@@ -72,17 +60,6 @@ backends.tables = { } setmetatableindex(backends.tables, tables
backends.current = "unknown"
-local lmtx_mode = nil
-
-local function lmtxmode()
- if lmtx_mode == nil then
- lmtx_mode = ((tonumber(CONTEXTLMTXMODE) or 0) > 0) and drivers and drivers.lmtxversion
- end
- return lmtx_mode
-end
-
-codeinjections.lmtxmode = lmtxmode
-
function backends.install(what)
if type(what) == "string" then
local backend = backends[what]
@@ -96,8 +73,7 @@ function backends.install(what)
end
backends.current = what
for category, default in next, defaults do
- local target = backends[category]
- local plugin = backend [category]
+ local target, plugin = backends[category], backend[category]
setmetatableindex(plugin, default)
setmetatableindex(target, plugin)
end
@@ -110,13 +86,7 @@ end
statistics.register("used backend", function()
local bc = backends.current
if bc ~= "unknown" then
- local lmtx = lmtxmode()
- local cmnt = backends[bc].comment or "no comment"
- if lmtx then
- return format("lmtx version %0.2f, %s (%s)",lmtx,bc,cmnt)
- else
- return format("%s (%s)",bc,cmnt)
- end
+ return format("%s (%s)",bc,backends[bc].comment or "no comment")
else
return nil
end
@@ -133,6 +103,14 @@ tables.vfspecials = allocate {
stopslant = comment,
}
+-- we'd better have this return something (defaults)
+
+function codeinjections.getpos () return 0, 0 end
+function codeinjections.gethpos () return 0 end
+function codeinjections.getvpos () return 0 end
+function codeinjections.hasmatrix() return false end
+function codeinjections.getmatrix() return 1, 0, 0, 1, 0, 0 end
+
-- can best be here
interfaces.implement {
@@ -161,156 +139,3 @@ backends.included = included
function backends.timestamp()
return os.date("%Y-%m-%dT%X") .. os.timezone(true)
end
-
--- Also here:
-
-local paper_width = 0
-local paper_height = 0
-
-function codeinjections.setpagedimensions(paperwidth,paperheight)
- if paperwidth then
- paper_width = paperwidth
- end
- if paperheight then
- paper_height = paperheight
- end
- if not lmtxmode() then
- texset("global","pageheight",paper_height)
- texset("global","pagewidth", paper_width)
- end
- return paper_width, paper_height
-end
-
-function codeinjections.getpagedimensions()
- return paper_width, paper_height
-end
-
-implement {
- name = "shipoutoffset",
- actions = function()
- context(lmtxmode() and "0pt" or "-1in") -- the old tex offset
- end
-}
-
--- could also be codeinjections
-
-function backends.noflatelua()
- return status.late_callbacks or 0
-end
-
---
-
-local stack = { }
-local restore = true -- false
-
-local nodepool = nodes.pool
-local savenode = nodepool.save
-local restorenode = nodepool.restore
-local setmatrixnode = nodepool.setmatrix
-
-updaters.register("backend.update",function()
- savenode = nodepool.save
- restorenode = nodepool.restore
- setmatrixnode = nodepool.setmatrix
-end)
-
-local function stopsomething()
- local top = remove(stack)
- if top == false then
- -- not wrapped
- elseif top == true then
- context(restorenode())
- elseif top then
- context(setmatrixnode(unpack(top))) -- not really needed anymore
- context(restorenode())
- else
- -- nesting error
- end
-end
-
-local function startrotation()
- local a = scannumber()
- if a == 0 then
- insert(stack,false)
- else
- local s, c = sind(a), cosd(a)
- if abs(s) < 0.000001 then
- s = 0 -- otherwise funny -0.00000
- end
- if abs(c) < 0.000001 then
- c = 0 -- otherwise funny -0.00000
- end
- context(savenode())
- context(setmatrixnode(c,s,-s,c))
- insert(stack,restore and { c, -s, s, c } or true)
- end
-end
-
-implement { name = "startrotation", actions = startrotation }
-implement { name = "stoprotation", actions = stopsomething }
-
-local function startscaling() -- at the tex end we use sx and sy instead of rx and ry
- local rx, ry = 1, 1
- while true do
- if scankeyword("rx") then
- rx = scannumber()
- elseif scankeyword("ry") then
- ry = scannumber()
- -- elseif scankeyword("revert") then
- -- local top = stack[#stack]
- -- if top then
- -- rx = top[1]
- -- ry = top[4]
- -- else
- -- rx = 1
- -- ry = 1
- -- end
- else
- break
- end
- end
- if rx == 1 and ry == 1 then
- insert(stack,false)
- else
- if rx == 0 then
- rx = 0.0001
- end
- if ry == 0 then
- ry = 0.0001
- end
- context(savenode())
- context(setmatrixnode(rx,0,0,ry))
- insert(stack,restore and { 1/rx, 0, 0, 1/ry } or true)
- end
-end
-
-implement { name = "startscaling", actions = startscaling }
-implement { name = "stopscaling", actions = stopsomething }
-
-local function startmatrix() -- rx sx sy ry -- tx, ty
- local rx, sx, sy, ry = 1, 0, 0, 1
- while true do
- if scankeyword("rx") then rx = scannumber()
- elseif scankeyword("ry") then ry = scannumber()
- elseif scankeyword("sx") then sx = scannumber()
- elseif scankeyword("sy") then sy = scannumber()
- else break end
- end
- if rx == 1 and sx == 0 and sy == 0 and ry == 1 then
- insert(stack,false)
- else
- context(savenode())
- context(setmatrixnode(rx,sx,sy,ry))
- insert(stack,store and { -rx, -sx, -sy, -ry } or true)
- end
-end
-
-implement { name = "startmatrix", actions = startmatrix }
-implement { name = "stopmatrix", actions = stopsomething }
-
-local function startmirroring()
- context(setmatrixnode(-1,0,0,1))
-end
-
-implement { name = "startmirroring", actions = startmirroring }
-implement { name = "stopmirroring", actions = startmirroring } -- not: stopsomething
diff --git a/Master/texmf-dist/tex/context/base/mkiv/back-ini.mkiv b/Master/texmf-dist/tex/context/base/mkiv/back-ini.mkiv
index 8729403f848..e810ecde554 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/back-ini.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/back-ini.mkiv
@@ -16,23 +16,10 @@
\writestatus{loading}{ConTeXt Backend Macros / Initialization}
-%D The exact page model depends on the backend so we just define some
-%D variables that are used. A helper at the \LUA\ end will synchronize
-%D with the internal variables. We store these in the format.
-
-% \newdimen\backendpageheight
-% \newdimen\backendpagewidth
-% \newdimen\backendinchoffset \backendinchoffset=1in
-
-%D Now we load the \LUA\ code:
-
\registerctxluafile{back-ini}{}
-\registerctxluafile{back-res}{}
-\doifelsefileexists{back-out.mkiv}{\loadmarkfile{back-out}}{}
-
-%D We currently have a curious mix between tex and lua backend handling but
-%D eventually most will move to \LUA.
+%D We currently have a curious mix between tex and lua backend
+%D handling but eventually most will move to lua.
\unprotect
@@ -40,84 +27,54 @@
\ifdefined\everylastbackendshipout \else \newtoks\everylastbackendshipout \fi
\ifdefined\everybackendlastinshipout \else \newtoks\everybackendlastinshipout \fi % e.g. finalize via latelua
-%D Right from the start \CONTEXT\ had a backend system based on runtime pluggable
-%D code. As most backend issues involved specials and since postprocessors had not
-%D that much in common, we ended up with a system where we could switch backend as
-%D well as output code for multiple backends at the same time.
+%D Right from the start \CONTEXT\ had a backend system based on
+%D runtime pluggable code. As most backend issues involved specials
+%D and since postprocessors had not that much in common, we ended up
+%D with a system where we could switch backend as well as output code
+%D for multiple backends at the same time.
%D
-%D Because \LUATEX\ has the backend built in, and since some backend issues have
-%D been moved to the frontend I decided to provide new backend code for \MKIV,
-%D starting with what was actually used.
+%D Because \LUATEX\ has the backend built in, and since some backend
+%D issues have been moved to the frontend I decided to provide new
+%D backend code for \MKIV, starting with what was actually used.
%D
-%D At this moment \DVI\ is no longer used for advanced document output and we
-%D therefore dropped support for this format. Future versions might support more
-%D backends again, but this has a low priority.
+%D At this moment \DVI\ is no longer used for advanced document
+%D output and we therefore dropped support for this format. Future
+%D versions might support more backends again, but this has a low
+%D priority.
%D
-%D Not everything here makes sense and the content of this file will definitely
-%D change (or even go away).
-
-% rotation
-
-\unexpanded\def\dostartrotation#1%
- {\forcecolorhack
- \clf_startrotation#1\relax} % todo: implement without Q q
-
-\unexpanded\def\dostoprotation
- {\clf_stoprotation
- \forcecolorhack}
-
-% scaling
-
-\unexpanded\def\dostartscaling#1#2%
- {\forcecolorhack
- \clf_startscaling rx #1 ry #2\relax}
+%D Not everything here makes sense and the content of this file will
+%D definitely change (or even go away).
-\unexpanded\def\dostopscaling
- {\clf_stopscaling
- \forcecolorhack}
-
-% mirroring
-
-\unexpanded\def\dostartmirroring
- {\clf_startmirroring}
-
-\unexpanded\def\dostopmirroring
- {\clf_stopmirroring}
-
-% transform
-
-\unexpanded\def\dotransformnextbox#1#2#3#4#5#6%
- {\dowithnextbox{\dodotransformnextbox{#1}{#2}{#3}{#4}{#5}{#6}}}
-
-\unexpanded\def\dodotransformnextbox#1#2#3#4#5#6%
- {\hpack
- {\kern #5\onebasepoint
- \raise#6\onebasepoint
- \hpack
- {\clf_startmatrix rx #1 sx #2 sy #3 ry #4\relax
- \box\nextbox
- \clf_stopmatrix}}}
+\let \dostartrotation \gobbleoneargument
+\let \dostoprotation \donothing
+\let \dostartscaling \gobbletwoarguments
+\let \dostopscaling \donothing
+\let \dostartmirroring \donothing
+\let \dostopmirroring \donothing
+\let \dotransformnextbox\gobblesixarguments % and pass last box
%D \macros
%D {back_ovalbox}
%D
-%D When we look at the implementation, this is a complicated one. There are seven
-%D arguments.
+%D When we look at the implementation, this is a complicated
+%D one. There are seven arguments.
%D
%D \starttyping
%D \back_ovalbox {w} {h} {d} {linewidth} {radius} {stroke} {fill} {variant}
%D \stoptyping
%D
-%D This command has to return a \type {\vbox} which can be used to lay over another
-%D one (with text). The radius is in degrees, the stroke and fill are~\type {1}
-%D (true) of~\type {0} (false).
+%D This command has to return a \type{\vbox} which can be used
+%D to lay over another one (with text). The radius is in
+%D degrees, the stroke and fill are~\type{1} (true) of~\type{0}
+%D (false).
\let\back_ovalbox \gobbleeightarguments
%D \macros
%D {dostartclipping,dostopclipping}
%D
-%D Clipping is implemented in such a way that an arbitrary code can be fed.
+%D Clipping is implemented in such a way that an arbitrary code
+%D can be fed.
%D
%D \starttyping
%D \dostartclipping {pathname} {width} {height}
@@ -130,8 +87,9 @@
%D \macros
%D {jobsuffix}
%D
-%D By default, \TEX\ produces \DVI\ files which can be converted to other filetypes.
-%D Sometimes it is handy to know what the target file will be. In other driver
+%D By default, \TEX\ produces \DVI\ files which can be
+%D converted to other filetypes. Sometimes it is handy to
+%D know what the target file will be. In other driver
%D modules we wil set \type {\jobsuffix} to \type {pdf}.
%D Backend configuration:
@@ -155,12 +113,6 @@
\clf_setrealspaces{\backendparameter\c!space}%
\to \everysetupbackend
-\appendtoks
- \ifdefined\clf_resetmapfile
- \clf_resetmapfile
- \fi
-\to \everysetupbackend
-
%D For older styles:
\let\setupoutput\gobbleoneoptional
diff --git a/Master/texmf-dist/tex/context/base/mkiv/back-pdf.lua b/Master/texmf-dist/tex/context/base/mkiv/back-pdf.lua
index 8886967e0c5..f45783e5101 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/back-pdf.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/back-pdf.lua
@@ -6,21 +6,302 @@ if not modules then modules = { } end modules ['back-pdf'] = {
license = "see context related readme files"
}
--- We hide the pdf table from users so that we can guarantee no interference with
--- the way we manage resources, info, etc. Users should use the \type {lpdf}
--- interface instead. If needed I will provide replacement functionality.
+-- we could do \pdfmatrix sx <> sy <> etc
-interfaces.implement {
+local sind, cosd = math.sind, math.cosd
+local insert, remove = table.insert, table.remove
+
+local codeinjections = backends.pdf.codeinjections
+
+local context = context
+
+local scanners = tokens.scanners
+local scannumber = scanners.number
+local scankeyword = scanners.keyword
+local scandimen = scanners.dimen
+local scancount = scanners.count
+local scanstring = scanners.string
+
+local scanners = interfaces.scanners
+local implement = interfaces.implement
+
+local report = logs.reporter("backend")
+
+local outputfilename
+
+function codeinjections.getoutputfilename()
+ if not outputfilename then
+ outputfilename = file.addsuffix(tex.jobname,"pdf")
+ end
+ return outputfilename
+end
+
+backends.install("pdf")
+
+local f_matrix = string.formatters["%F %F %F %F"] -- 0.8 is default
+
+scanners.pdfrotation = function() -- a
+ -- todo: check for 1 and 0 and flush sparse
+ local a = scannumber()
+ local s, c = sind(a), cosd(a)
+ context(f_matrix(c,s,-s,c))
+end
+
+-- experimental code (somewhat weird here) .. todo: nodeinjections .. this will only work
+-- out well if we also calculate the accumulated cm and wrap inclusions / annotations in
+-- the accumulated ... it's a mess
+--
+-- we could also do the save restore wrapping here + colorhack
+
+local pdfsave = nodes.pool.pdfsave
+local pdfrestore = nodes.pool.pdfrestore
+local pdfsetmatrix = nodes.pool.pdfsetmatrix
+
+local stack = { }
+local restore = true -- false
+
+scanners.pdfstartrotation = function()
+ local a = scannumber()
+ if a == 0 then
+ insert(stack,false)
+ else
+ local s, c = sind(a), cosd(a)
+ context(pdfsave())
+ context(pdfsetmatrix(c,s,-s,c))
+ insert(stack,restore and { c, -s, s, c } or true)
+ end
+end
+
+scanners.pdfstartscaling = function() -- at the tex end we use sx and sy instead of rx and ry
+ local rx, ry = 1, 1
+ while true do
+ if scankeyword("rx") then
+ rx = scannumber()
+ elseif scankeyword("ry") then
+ ry = scannumber()
+ -- elseif scankeyword("revert") then
+ -- local top = stack[#stack]
+ -- if top then
+ -- rx = top[1]
+ -- ry = top[4]
+ -- else
+ -- rx = 1
+ -- ry = 1
+ -- end
+ else
+ break
+ end
+ end
+ if rx == 1 and ry == 1 then
+ insert(stack,false)
+ else
+ if rx == 0 then
+ rx = 0.0001
+ end
+ if ry == 0 then
+ ry = 0.0001
+ end
+ context(pdfsave())
+ context(pdfsetmatrix(rx,0,0,ry))
+ insert(stack,restore and { 1/rx, 0, 0, 1/ry } or true)
+ end
+end
+
+scanners.pdfstartmatrix = function() -- rx sx sy ry -- tx, ty
+ local rx, sx, sy, ry = 1, 0, 0, 1
+ while true do
+ if scankeyword("rx") then rx = scannumber()
+ elseif scankeyword("ry") then ry = scannumber()
+ elseif scankeyword("sx") then sx = scannumber()
+ elseif scankeyword("sy") then sy = scannumber()
+ else break end
+ end
+ if rx == 1 and sx == 0 and sy == 0 and ry == 1 then
+ insert(stack,false)
+ else
+ context(pdfsave())
+ context(pdfsetmatrix(rx,sx,sy,ry))
+ insert(stack,store and { -rx, -sx, -sy, -ry } or true)
+ end
+end
+
+local function pdfstopsomething()
+ local top = remove(stack)
+ if top == false then
+ -- not wrapped
+ elseif top == true then
+ context(pdfrestore())
+ elseif top then
+ context(pdfsetmatrix(unpack(top))) -- not really needed anymore
+ context(pdfrestore())
+ else
+ -- nesting error
+ end
+end
+
+scanners.pdfstoprotation = pdfstopsomething
+scanners.pdfstopscaling = pdfstopsomething
+scanners.pdfstopmatrix = pdfstopsomething
+
+scanners.pdfstartmirroring = function()
+ context(pdfsetmatrix(-1,0,0,1))
+end
+
+if environment.arguments.nocompression then
+ lpdf.setcompression(0,0,true)
+end
+
+scanners.pdfstopmirroring = scanners.pdfstartmirroring
+
+-- todo, change the above to implement too --
+
+implement {
+ name = "setmapfile",
+ arguments = "string",
+ actions = pdf.mapfile
+}
+
+implement {
+ name = "setmapline",
+ arguments = "string",
+ actions = pdf.mapline
+}
+
+implement {
name = "setpdfcompression",
arguments = { "integer", "integer" },
actions = lpdf.setcompression,
}
-if CONTEXTLMTXMODE == 0 then
- updaters.apply("backend.update.pdf")
- updaters.apply("backend.update.lpdf")
- updaters.apply("backend.update.tex")
- updaters.apply("backend.update")
+local report = logs.reporter("backend","pdftex primitives")
+local trace = false
+
+scanners.pdfannot = function()
+ if scankeyword("reserveobjectnum") then
+ report("\\pdfannot reserveobjectnum is not (yet) supported")
+ -- if trace then
+ -- report()
+ -- report("\\pdfannot: reserved number (not supported yet)")
+ -- report()
+ -- end
+ else
+ local width = false
+ local height = false
+ local depth = false
+ local data = false
+ local object = false
+ local attr = false
+ --
+ if scankeyword("useobjnum") then
+ object = scancount()
+ report("\\pdfannot useobjectnum is not (yet) supported")
+ end
+ while true do
+ if scankeyword("width") then
+ width = scandimen()
+ elseif scankeyword("height") then
+ height = scandimen()
+ elseif scankeyword("depth") then
+ depth = scandimen()
+ else
+ break
+ end
+ end
+ if scankeyword("attr") then
+ attr = scanstring()
+ end
+ data = scanstring()
+ --
+ -- less strict variant:
+ --
+ -- while true do
+ -- if scankeyword("width") then
+ -- width = scandimen()
+ -- elseif scankeyword("height") then
+ -- height = scandimen()
+ -- elseif scankeyword("depth") then
+ -- depth = scandimen()
+ -- elseif scankeyword("useobjnum") then
+ -- object = scancount()
+ -- elseif scankeyword("attr") then
+ -- attr = scanstring()
+ -- else
+ -- data = scanstring()
+ -- break
+ -- end
+ -- end
+ --
+ -- if trace then
+ -- report()
+ -- report("\\pdfannot:")
+ -- report()
+ -- report(" object: %s",object or "<unset> (not supported yet)")
+ -- report(" width : %p",width or "<unset>")
+ -- report(" height: %p",height or "<unset>")
+ -- report(" depth : %p",depth or "<unset>")
+ -- report(" attr : %s",attr or "<unset>")
+ -- report(" data : %s",data or "<unset>")
+ -- report()
+ -- end
+ context(backends.nodeinjections.annotation(width or 0,height or 0,depth or 0,data or ""))
+ end
end
-backends.install("pdf")
+scanners.pdfdest = function()
+ local name = false
+ local zoom = false
+ local view = false
+ local width = false
+ local height = false
+ local depth = false
+ if scankeyword("num") then
+ report("\\pdfdest num is not (yet) supported")
+ elseif scankeyword("name") then
+ name = scanstring()
+ end
+ if scankeyword("xyz") then
+ view = "xyz"
+ if scankeyword("zoom") then
+ report("\\pdfdest zoom is ignored")
+ zoom = scancount() -- will be divided by 1000 in the backend
+ end
+ elseif scankeyword("fitbh") then
+ view = "fitbh"
+ elseif scankeyword("fitbv") then
+ view = "fitbv"
+ elseif scankeyword("fitb") then
+ view = "fitb"
+ elseif scankeyword("fith") then
+ view = "fith"
+ elseif scankeyword("fitv") then
+ view = "fitv"
+ elseif scankeyword("fitr") then
+ view = "fitr"
+ while true do
+ if scankeyword("width") then
+ width = scandimen()
+ elseif scankeyword("height") then
+ height = scandimen()
+ elseif scankeyword("depth") then
+ depth = scandimen()
+ else
+ break
+ end
+ end
+ elseif scankeyword("fit") then
+ view = "fit"
+ end
+ -- if trace then
+ -- report()
+ -- report("\\pdfdest:")
+ -- report()
+ -- report(" name : %s",name or "<unset>")
+ -- report(" view : %s",view or "<unset>")
+ -- report(" zoom : %s",zoom or "<unset> (not supported)")
+ -- report(" width : %p",width or "<unset>")
+ -- report(" height: %p",height or "<unset>")
+ -- report(" depth : %p",depth or "<unset>")
+ -- report()
+ -- end
+ context(backends.nodeinjections.destination(width or 0,height or 0,depth or 0,{ name or "" },view or "fit"))
+end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/back-pdf.mkiv b/Master/texmf-dist/tex/context/base/mkiv/back-pdf.mkiv
index 9e88ab19399..3b0dd78520a 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/back-pdf.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/back-pdf.mkiv
@@ -11,10 +11,11 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-%D The less there is here, the better.
+%D The less ther ei shere, the better.
\writestatus{loading}{ConTeXt Backend Macros / PDF}
+%registerctxluafile{lpdf-aux}{optimize} % common helpers
\registerctxluafile{lpdf-ini}{optimize}
\registerctxluafile{lpdf-nod}{}
\registerctxluafile{lpdf-col}{}
@@ -31,22 +32,9 @@
\registerctxluafile{lpdf-swf}{} % this will become a module
\registerctxluafile{lpdf-tag}{}
\registerctxluafile{lpdf-fmt}{}
-\registerctxluafile{lpdf-pde}{}
-
-\ifcase\contextlmtxmode\else
- \registerctxluafile{lpdf-img}{optimize}
-\fi
-
+\registerctxluafile{lpdf-epd}{}
\registerctxluafile{lpdf-epa}{}
-\ifcase\contextlmtxmode\else
- \registerctxluafile{lpdf-emb}{optimize}
-\fi
-
-\registerctxluafile{back-pdp}{}
-
-\registerctxluafile{lpdf-fnt}{}
-
\registerctxluafile{back-pdf}{} % some code will move to lpdf-*
\loadmarkfile{back-u3d} % this will become a module
@@ -59,53 +47,26 @@
%D
%D Here we initialize some internal quantities. We also protect them.
-\ifdefined\outputmode
- \outputmode\plusone
- \let\outputmode\relax
- \newcount\outputmode
- \outputmode\plusone
- \let\normaloutputmode\outputmode
-\fi
+\outputmode\plusone \let\outputmode\relax \newcount\outputmode \outputmode\plusone
%D Because we do a lot in \LUA\ and don't want interferences, we nil most of the
%D \PDFTEX\ primitives. Of course one can always use the \type {\pdfvariable},
%D \type {\pdfextension} and \type {\pdffeedback} primitives but it will probably
%D have bad side effects.
-%D For the moment we put these here as they are pdf related but they might move to
-%D a better place. We overload the primitives with our own but use a bit of indirection
-%D for the purpose of tracing.
-
-\unexpanded\def\saveboxresource {\clf_saveboxresource}
-\unexpanded\def\lastsavedboxresourceindex {\numexpr\clf_lastsavedboxresourceindex\relax}
-\unexpanded\def\useboxresource {\clf_useboxresource}
-
-\unexpanded\def\saveimageresource {\clf_saveimageresource}
-\unexpanded\def\lastsavedimageresourceindex{\numexpr\clf_lastsavedimageresourceindex\relax}
-\unexpanded\def\lastsavedimageresourcepages{\numexpr\clf_lastsavedimageresourcepages\relax}
-\unexpanded\def\useimageresource {\clf_useimageresource}
-
-\unexpanded\def\savepos {\clf_savepos}
- \def\lastxpos {\clf_lastxpos}
- \def\lastypos {\clf_lastypos}
-
-\unexpanded\def\pdfextension {\clf_pdfextension}
- \def\pdffeedback {\clf_pdffeedback}
-
%D These are no-ops and don't even intercept what comes next. Maybe some day
%D I'll write a parser that maps onto \CONTEXT.
\unexpanded\def\unsupportedpdfprimitive#1%
- {\writestatus{fatal error}{the primitive \string#1\space is not supported}%
- \directlua{os.exit()}}
+ {\writestatus{error}{the primitive \string#1\space is not supported}}
\unexpanded\def\pdfcolorstack {\unsupportedpdfprimitive\pdfcolorstack}
\unexpanded\def\pdfcolorstackinit{\unsupportedpdfprimitive\pdfcolorstackinit}
-% pdfannot
+%unexpanded\def\pdfannot {\unsupportedpdfprimitive\pdfannot}
\unexpanded\def\pdfstartlink {\unsupportedpdfprimitive\pdfstartlink}
\unexpanded\def\pdfendlink {\unsupportedpdfprimitive\pdfendlink}
\unexpanded\def\pdfoutline {\unsupportedpdfprimitive\pdfoutline}
-% pdfdest
+%unexpanded\def\pdfdest {\unsupportedpdfprimitive\pdfdest}
\unexpanded\def\pdfthread {\unsupportedpdfprimitive\pdfthread}
\unexpanded\def\pdfstartthread {\unsupportedpdfprimitive\pdfstartthread}
\unexpanded\def\pdfendthread {\unsupportedpdfprimitive\pdfendthread}
@@ -136,24 +97,23 @@
%D But we still provide:
-\unexpanded\def\nopdfcompression {\clf_setpdfcompression\zerocount\zerocount}
-\unexpanded\def\onlypdfobjectcompression{\clf_setpdfcompression\zerocount\plusthree}
-\unexpanded\def\maximumpdfcompression {\clf_setpdfcompression\plusnine \plusnine }
-\unexpanded\def\normalpdfcompression {\clf_setpdfcompression\plusthree\plusthree}
+\unexpanded\def\nopdfcompression {\clf_setpdfcompression\zerocount\zerocount}
+\unexpanded\def\maximumpdfcompression {\clf_setpdfcompression\plusnine \plusnine }
+\unexpanded\def\normalpdfcompression {\clf_setpdfcompression\plusthree\plusthree}
%D These might even become no-ops as we don't need them in \CONTEXT:
-\unexpanded\def\pdfmapfile#1{} % obsolete
-\unexpanded\def\pdfmapline#1{} % obsolete
+\unexpanded\def\pdfmapfile#1{\clf_setmapfile{#1}}
+\unexpanded\def\pdfmapline#1{\clf_setmapline{#1}}
%D We don't support these directives, at least not this way. If they are needed
%D by third party modules we can provide some interface.
-%pdfcreationdate
+% \pdfcreationdate
\let\pdfdecimaldigits \relax \newcount\pdfdecimaldigits
\let\pdfdestmargin \relax \newdimen\pdfdestmargin
-% pdffontname
-% pdffontobjnum
+% \pdffontname
+% \pdffontobjnum
\let\pdffontsize \relax \newcount\pdffontsize
\let\pdfgamma \relax \newcount\pdfgamma
\let\pdfgentounicode \relax \newcount\pdfgentounicode
@@ -168,21 +128,21 @@
\let\pdfinclusioncopyfonts \relax \newcount\pdfinclusioncopyfonts
\let\pdfinclusionerrorlevel \relax \newcount\pdfinclusionerrorlevel
\let\pdfinfoomitdate \relax \newcount\pdfinfoomitdate
-% pdflastannot
-% pdflastlink
+% \pdflastannot
+% \pdflastlink
\let\pdflinkmargin \relax \newdimen\pdflinkmargin
\let\pdfmajorversion \relax \newcount\pdfmajorversion
\let\pdfminorversion \relax \newcount\pdfminorversion
\let\pdfpagebox \relax \newcount\pdfpagebox
-% pdfpageref
+% \pdfpageref
\let\pdfpkfixeddpi \relax \newcount\pdfpkfixeddpi
\let\pdfpkmode \relax \newtoks \pdfpkmode
\let\pdfpkresolution \relax \newcount\pdfpkresolution
-% pdfretval
+% \pdfretval
\let\pdfsuppressoptionalinfo \relax \newcount\pdfsuppressoptionalinfo
\let\pdfsuppressptexinfo \relax \newcount\pdfsuppressptexinfo
-% pdftexrevision
-% pdftexversion
+% \pdftexrevision
+% \pdftexversion
\let\pdfthreadmargin \relax \newdimen\pdfthreadmargin
\let\pdftrailerid \relax \newtoks \pdftrailerid
\let\pdfuniqueresname \relax \newcount\pdfuniqueresname
@@ -192,33 +152,27 @@
%D These are still accepted but are normally not needed.
-\let\pdfxform \saveboxresource
-\let\pdfximage \saveimageresource
-
\let\pdflastxform \lastsavedboxresourceindex
\let\pdflastximage \lastsavedimageresourceindex
-
-\let\pdfrefxform \useboxresource
-\let\pdfrefximage \useimageresource
-
\let\pdflastximagepages \lastsavedimageresourcepages
-
-\let\pdfsavepos \savepos
\let\pdflastxpos \lastxpos
\let\pdflastypos \lastypos
+\let\pdfrefxform \useboxresource
+\let\pdfrefximage \useimageresource
+\let\pdfsavepos \savepos
+\let\pdfxform \saveboxresource
+\let\pdfximage \saveimageresource
%D For the moment we keep these as they are but they will become \LUA\ calls
%D eventually, after which we will nil the three \type {\pdf} interface primitives.
-\normalprotected\def\pdfliteral {\clf_pdfliteral}%
-
-\normalprotected\def\pdfobj {\clf_pdfobj}%
-\normalprotected\def\pdflastobj {\numexpr\clf_pdflastobj\relax}%
-
+\normalprotected\def\pdfliteral {\pdfextension literal }
+\normalprotected\def\pdfobj {\pdfextension obj }
+ \def\pdflastobj {\numexpr\pdffeedback lastobj\relax}
\normalprotected\def\pdfrefobj {\pdfextension refobj }
-\normalprotected\def\pdfrestore {\clf_restore}
-\normalprotected\def\pdfsave {\clf_save}
-\normalprotected\def\pdfsetmatrix{\clf_setmatrix}
+\normalprotected\def\pdfrestore {\pdfextension restore\relax}
+\normalprotected\def\pdfsave {\pdfextension save\relax}
+\normalprotected\def\pdfsetmatrix{\pdfextension setmatrix }
%D This one can be consulted by users although the suffix is also a system mode.
@@ -271,6 +225,84 @@
\def\pdfcolor #1{\clf_lpdf_color\numexpr\thecolorattribute{#1}\relax}
\let\PDFcolor\pdfcolor
+%D Transformations
+
+% rotation
+
+\unexpanded\def\dostartrotation#1%
+ {\forcecolorhack
+ \clf_pdfstartrotation#1\relax} % todo: implement without Q q
+
+\unexpanded\def\dostoprotation
+ {\clf_pdfstoprotation
+ \forcecolorhack}
+
+% scaling
+
+\unexpanded\def\dostartscaling#1#2%
+ {\forcecolorhack
+ \clf_pdfstartscaling rx #1 ry #2\relax}
+
+\unexpanded\def\dostopscaling
+ {\clf_pdfstopscaling
+ \forcecolorhack}
+
+% mirroring
+
+\unexpanded\def\dostartmirroring
+ {\clf_pdfstartmirroring}
+
+\unexpanded\def\dostopmirroring
+ {\clf_pdfstopmirroring}
+
+% transform
+
+\unexpanded\def\dotransformnextbox#1#2#3#4#5#6%
+ {\dowithnextbox{\dodotransformnextbox{#1}{#2}{#3}{#4}{#5}{#6}}}
+
+\unexpanded\def\dodotransformnextbox#1#2#3#4#5#6%
+ {\hpack
+ {\kern #5\onebasepoint
+ \raise#6\onebasepoint
+ \hpack
+ {\clf_pdfstartmatrix rx #1 sx #2 sy #3 ry #4\relax
+ \box\nextbox
+ \clf_pdfstopmatrix}}}
+
+% somehow the shift is not happening .. bug in luatex?
+%
+% \unexpanded\def\dodotransformnextbox#1#2#3#4#5#6%
+% {\ctxcommand{pdftransformbox(\number\nextbox,#1,#2,#3,#4,\number\dimexpr#5\onebasepoint,\number\dimexpr#6\onebasepoint)}%
+% \box\nextbox}
+%
+% \startluacode
+% function commands.pdftransformbox(box,rx,sx,sy,ry,tx,ty)
+% if rx == 1 and sx == 0 and sy == 0 and ry == 1 then
+% if tx == 0 and ty == 0 then
+% local b = nodes.hpack(nodes.concat {
+% nodes.pool.kern(tx),
+% nodes.takebox(box),
+% })
+% b.shift = -ty
+% tex.setbox(box,b)
+% else
+% -- no need to transform
+% end
+% else
+% local b = nodes.hpack(nodes.concat {
+% nodes.pool.kern(tx),
+% nodes.pool.pdfsave(),
+% nodes.pool.pdfsetmatrix(rx,sx,sy,ry),
+% nodes.takebox(box),
+% nodes.pool.pdfsetmatrix(-rx,-sx,-sy,-ry),
+% nodes.pool.pdfrestore(),
+% })
+% b.shift = -ty
+% tex.setbox(box,b)
+% end
+% end
+% \stopluacode
+
% clipping
\unexpanded\def\dostartclipping#1#2#3% we can move this to lua and only set a box here
diff --git a/Master/texmf-dist/tex/context/base/mkiv/back-pdp.lua b/Master/texmf-dist/tex/context/base/mkiv/back-pdp.lua
deleted file mode 100644
index 7363cfcae4d..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/back-pdp.lua
+++ /dev/null
@@ -1,453 +0,0 @@
-if not modules then modules = { } end modules ['back-pdp'] = {
- version = 1.001,
- comment = "companion to lpdf-ini.mkiv",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
--- This is temporary ... awaiting a better test .. basically we can
--- always use this: pdf primitives.
-
-local context = context
-
-local lpdfreserveobject = lpdf.reserveobject
-local lpdfcompresslevel = lpdf.compresslevel
-local lpdfobj = lpdf.obj
-local lpdfpagereference = lpdf.pagereference
-local lpdfxformname = lpdf.xformname
-
-local jobpositions = job.positions
-local gethpos = jobpositions.gethpos
-local getvpos = jobpositions.getvpos
-
-local tokenscanners = tokens.scanners
-local scanword = tokenscanners.word
-local scankeyword = tokenscanners.keyword
-local scanstring = tokenscanners.string
-local scaninteger = tokenscanners.integer
-local scandimension = tokenscanners.dimension
-
-local trace = false trackers.register("commands", function(v) trace = v end)
-local report = logs.reporter("command")
-
-local nodepool = nodes.pool
-local newsavepos = nodepool.savepos
-local newliteral = nodepool.literal
-local newsave = nodepool.save
-local newrestore = nodepool.restore
-local newsetmatrix = nodepool.setmatrix
-
-local implement = interfaces.implement
-local constants = interfaces.constants
-local variables = interfaces.variables
-
--- helper
-
-local function scanwhd()
- local width, height, depth
- while true do
- if scankeyword("width") then
- width = scandimension()
- elseif scankeyword("height") then
- height = scandimension()
- elseif scankeyword("depth") then
- depth = scandimension()
- else
- break
- end
- end
- if width or height or depth then
- return width or 0, height or 0, depth or 0
- else
- -- we inherit
- end
-end
-
--- positions
-
-local function savepos()
- context(newsavepos())
-end
-
-local function lastxpos()
- context(gethpos())
-end
-
-local function lastypos()
- context(getvpos())
-end
-
-implement { name = "savepos", actions = savepos }
-implement { name = "lastxpos", actions = lastxpos }
-implement { name = "lastypos", actions = lastypos }
-
--- literals
-
-local function pdfliteral()
- context(newliteral(scanword() or "origin",scanstring()))
-end
-
-implement { name = "pdfliteral", actions = pdfliteral }
-
--- box resources
-
-local boxresources = tex.boxresources
-local savebox = boxresources.save
-local usebox = boxresources.use
-
-local lastindex = 0
-
-local function saveboxresource()
- local immediate = true
- local kind = scankeyword("type") and scaninteger() or 0
- local attributes = scankeyword("attr") and scanstring() or nil
- local resources = scankeyword("resources") and scanstring() or nil
- local margin = scankeyword("margin") and scandimension() or 0 -- register
- local boxnumber = scaninteger()
- --
- lastindex = savebox(boxnumber,attributes,resources,immediate,kind,margin)
- if trace then
- report("\\saveboxresource: index %i",lastindex)
- end
-end
-
-local function lastsavedboxresourceindex()
- if trace then
- report("\\lastsaveboxresource: index %i",lastindex)
- end
- context("%i",lastindex)
-end
-
-local function useboxresource()
- local width, height, depth = scanwhd()
- local index = scaninteger()
- local node = usebox(index,width,height,depth)
- if trace then
- report("\\useboxresource: index %i",index)
- end
- context(node)
-end
-
-implement { name = "saveboxresource", actions = saveboxresource }
-implement { name = "lastsavedboxresourceindex", actions = lastsavedboxresourceindex }
-implement { name = "useboxresource", actions = useboxresource }
-
--- image resources (messy: will move)
-
-local imageresources = { }
-local lastindex = 0
-local lastpages = 1
-
-local function saveimageresource()
- local width, height, depth = scanwhd()
- local page = 1
- local immediate = true
- local margin = 0 -- or dimension
- local attributes = scankeyword("attr") and scanstring() or nil
- if scankeyword("named") then
- scanstring() -- ignored
- elseif scankeyword("page") then
- page = scaninteger()
- end
- local userpassword = scankeyword("userpassword") and scanstring() or nil
- local ownerpassword = scankeyword("ownerpassword") and scanstring() or nil
- local visiblefilename = scankeyword("visiblefilename") and scanstring() or nil
- local colorspace = scankeyword("colorspace") and scaninteger() or nil
- local pagebox = scanword() or nil
- local filename = scanstring()
--- pcall
- context.getfiguredimensions( { filename }, {
- [constants.userpassword] = userpassword,
- [constants.ownerpassword] = ownerpassword,
- [constants.page] = page or 1,
- [constants.size] = pagebox,
- })
- context.relax()
- lastindex = lastindex + 1
- lastpages = 1
- imageresources[lastindex] = {
- filename = filename,
- page = page or 1,
- size = pagebox,
- width = width,
- height = height,
- depth = depth,
- attr = attributes,
- -- margin = margin,
- }
-end
-
-local function lastsavedimageresourceindex()
- context("%i",lastindex or 0)
-end
-
-local function lastsavedimageresourcepages()
- context("%i",lastpages or 0) -- todo
-end
-
-local function useimageresource()
- local width, height, depth = scanwhd()
- if scankeyword("keepopen") then
- -- ignored
- end
- local index = scaninteger()
- local l = imageresources[index]
- if l then
- if not (width or height or depth) then
- width = l.width
- height = l.height
- depth = l.depth
- end
--- pcall
- context.externalfigure( { l.filename }, {
- [constants.userpassword] = l.userpassword,
- [constants.ownerpassword] = l.ownerpassword,
- [constants.width] = width and (width .. "sp") or nil,
- [constants.height] = height and (height .. "sp") or nil,
- [constants.page] = l.page or 1,
- [constants.size] = pagebox,
- })
- context.relax()
- else
- print("no image resource",index)
- end
-end
-
-implement { name = "saveimageresource", actions = saveimageresource }
-implement { name = "lastsavedimageresourceindex", actions = lastsavedimageresourceindex }
-implement { name = "lastsavedimageresourcepages", actions = lastsavedimageresourcepages }
-implement { name = "useimageresource", actions = useimageresource }
-
--- objects
-
-local lastobjnum = 0
-
-local function pdfobj()
- if scankeyword("reserveobjnum") then
- lastobjnum = lpdfreserveobject()
- if trace then
- report("\\pdfobj reserveobjnum: object %i",lastobjnum)
- end
- else
- local immediate = true
- local objnum = scankeyword("useobjnum") and scaninteger() or lpdfreserveobject()
- local uncompress = scankeyword("uncompressed") or lpdfcompresslevel() == 0
- local streamobject = scankeyword("stream") and true or false
- local attributes = scankeyword("attr") and scanstring()
- local fileobject = scankeyword("file")
- local content = scanstring()
- local object = {
- immediate = immediate,
- attr = attributes,
- objnum = objnum,
- type = streamobject and "stream" or nil,
- compresslevel = uncompress and 0 or nil,
- }
- if fileobject then
- object.filename = content
- else
- object.string = content
- end
- lpdfobj(object)
- lastobjnum = objnum
- if trace then
- report("\\pdfobj: object %i",lastobjnum)
- end
- end
-end
-
-local function pdflastobj()
- context("%i",lastobjnum)
- if trace then
- report("\\lastobj: object %i",lastobjnum)
- end
-end
-
-local function pdfrefobj()
- local objnum = scaninteger()
- if trace then
- report("\\refobj: object %i (todo)",objnum)
- end
-end
-
-implement { name = "pdfobj", actions = pdfobj }
-implement { name = "pdflastobj", actions = pdflastobj }
-implement { name = "pdfrefobj", actions = pdfrefobj }
-
--- annotations
-
-local lastobjnum = 0
-
-local function pdfannot()
- if scankeyword("reserveobjnum") then
- lastobjnum = lpdfreserveobject()
- if trace then
- report("\\pdfannot reserveobjnum: object %i",lastobjnum)
- end
- else
- local width = false
- local height = false
- local depth = false
- local data = false
- local object = false
- local attr = false
- --
- if scankeyword("useobjnum") then
- object = scancount()
- report("\\pdfannot useobjectnum is not (yet) supported")
- end
- local width, height, depth = scanwhd()
- if scankeyword("attr") then
- attr = scanstring()
- end
- data = scanstring()
- context(backends.nodeinjections.annotation(width or 0,height or 0,depth or 0,data or ""))
- end
-end
-
-implement { name = "pdfannot", actions = pdfannot }
-
-local function pdfdest()
- local name = false
- local zoom = false
- local view = false
- local width = false
- local height = false
- local depth = false
- if scankeyword("num") then
- report("\\pdfdest num is not (yet) supported")
- elseif scankeyword("name") then
- name = scanstring()
- end
- if scankeyword("xyz") then
- view = "xyz"
- if scankeyword("zoom") then
- report("\\pdfdest zoom is ignored")
- zoom = scancount() -- will be divided by 1000 in the backend
- end
- elseif scankeyword("fitbh") then
- view = "fitbh"
- elseif scankeyword("fitbv") then
- view = "fitbv"
- elseif scankeyword("fitb") then
- view = "fitb"
- elseif scankeyword("fith") then
- view = "fith"
- elseif scankeyword("fitv") then
- view = "fitv"
- elseif scankeyword("fitr") then
- view = "fitr"
- width, height, depth = scanwhd()
- elseif scankeyword("fit") then
- view = "fit"
- end
- context(backends.nodeinjections.destination(width or 0,height or 0,depth or 0,{ name or "" },view or "fit"))
-end
-
-implement { name = "pdfdest", actions = pdfdest }
-
--- management
-
-
-local function pdfsave()
- context(newsave())
-end
-
-local function pdfrestore()
- context(newrestore())
-end
-
-local function pdfsetmatrix()
- context(newsetmatrix(scanstring()))
-end
-
-
--- extras
-
-local function pdfpageref()
- context(lpdfpagereference())
-end
-
-local function pdfxformname()
- context(lpdfxformname())
-end
-
--- extensions: literal dest annot save restore setmatrix obj refobj colorstack
--- startlink endlink startthread endthread thread outline glyphtounicode fontattr
--- mapfile mapline includechars catalog info names trailer
-
-local extensions = {
- literal = pdfliteral,
- obj = pdfobj,
- refobj = pdfrefobj,
- dest = pdfdest,
- annot = pdfannot,
- save = pdfsave,
- restore = pdfrestore,
- setmatrix = pdfsetmatrix,
-}
-
-local function pdfextension()
- local w = scanword()
- if w then
- local e = extensions[w]
- if e then
- e()
- else
- report("\\pdfextension: unknown %a",w)
- end
- end
-end
-
-implement { name = "pdfextension", actions = pdfextension }
-
--- feedbacks: colorstackinit creationdate fontname fontobjnum fontsize lastannot
--- lastlink lastobj pageref retval revision version xformname
-
-local feedbacks = {
- lastobj = pdflastobj,
- pageref = pdfpageref,
- xformname = pdfxformname,
-}
-
-local function pdffeedback()
- local w = scanword()
- if w then
- local f = feedbacks[w]
- if f then
- f()
- else
- report("\\pdffeedback: unknown %a",w)
- end
- end
-end
-
-implement { name = "pdffeedback", actions = pdffeedback }
-
--- variables: (integers:) compresslevel decimaldigits gamma gentounicode
--- ignoreunknownimages imageaddfilename imageapplygamma imagegamma imagehicolor
--- imageresolution inclusioncopyfonts inclusionerrorlevel majorversion minorversion
--- objcompresslevel omitcharset omitcidset pagebox pkfixeddpi pkresolution
--- recompress suppressoptionalinfo uniqueresname (dimensions:) destmargin horigin
--- linkmargin threadmargin vorigin xformmargin (tokenlists:) pageattr pageresources
--- pagesattr pkmode trailerid xformattr xformresources
-
--- local variables = {
--- }
---
--- local function pdfvariable()
--- local w = scanword()
--- if w then
--- local f = variables[w]
--- if f then
--- f()
--- else
--- print("invalid variable",w)
--- end
--- else
--- print("missing variable")
--- end
--- end
-
---------- { name = "pdfvariable", actions = pdfvariable }
diff --git a/Master/texmf-dist/tex/context/base/mkiv/back-res.lua b/Master/texmf-dist/tex/context/base/mkiv/back-res.lua
deleted file mode 100644
index be92c74a6db..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/back-res.lua
+++ /dev/null
@@ -1,44 +0,0 @@
-if not modules then modules = { } end modules ['back-res'] = {
- version = 1.001,
- comment = "companion to lpdf-ini.mkiv",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
--- A box resource has an index. This happens to be an object number
--- due to the pdf backend but in fact it's an abstraction. This is why
--- we have explicit fetchers. The internal number (as in \Fm123) is yet
--- another number.
-
-local tex_saveboxresource = tex.saveboxresource
-local tex_useboxresource = tex.useboxresource
-local tex_getboxresourcebox = tex.getboxresourcebox
-local tex_getboxresourcedimensions = tex.getboxresourcedimensions
-
-updaters.register("backend.update",function()
- tex_saveboxresource = tex.saveboxresource
- tex_useboxresource = tex.useboxresource
- tex_getboxresourcebox = tex.getboxresourcebox
- tex_getboxresourcedimensions = tex.getboxresourcedimensions
-end)
-
-tex.boxresources = {
- save = function(...) return tex_saveboxresource(...) end,
- use = function(...) return tex_useboxresource(...) end,
- getbox = function(...) return tex_getboxresourcebox(...) end,
- getdimensions = function(...) return tex_getboxresourcedimensions(...) end,
-}
-
--- local tex_saveimageresource = tex.saveimageresource
--- local tex_useimageresource = tex.useimageresource
---
--- updaters.register("backend.update",function()
--- tex_saveimageresource = tex.saveimageresource
--- tex_useimageresource = tex.useimageresource
--- end)
---
--- tex.imageresources = {
--- save = function(...) return tex_saveimageresource(...) end,
--- use = function(...) return tex_useimageresource(...) end,
--- }
diff --git a/Master/texmf-dist/tex/context/base/mkiv/back-swf.mkiv b/Master/texmf-dist/tex/context/base/mkiv/back-swf.mkiv
index 20a94266a4f..0a53a8fd2e7 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/back-swf.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/back-swf.mkiv
@@ -11,9 +11,6 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-%D The question is: should I still document this in interaction.tex or just
-%D assume it's obsolete technology \unknown
-
%D This is only a placeholder that demonstrates the usage of swf resources.
%D There is no need to include this file into the format. The module was
%D tested by Luigi and Willi and based on their suggestions the functionality
@@ -61,8 +58,6 @@
%D [file=test.mp4,
%D label=foo]
%D
-%D \useJSscripts[vplayer] % or \useJSscripts[videoplayer]
-%D
%D \goto{START} [JS(StartShockwave{foo})]
%D \goto{REWIND}[JS(RewindShockwave{foo})]
%D \goto{PAUSE} [JS(PauseShockwave{foo})]
@@ -89,8 +84,100 @@
\unprotect
-%D The code has moved to the (explicitly loaded) \JAVASCRIPT\ modules. See there
-%D for more info.
+\startluaparameterset[shockwave:display]
+ toolbar = true,
+ -- preview = "somefile",
+ open = "click",
+ close = "focus",
+\stopluaparameterset
+
+% using vplayer9.swf from ctan:
+
+\useexternalfigure
+ [shockwave]
+ [vplayer9.swf]
+% [arguments=\luaparameterset{shockwave:arguments}{src="\externalfigureparameter\v!file",source="\externalfigureparameter\v!file"},
+ [\c!arguments=\luaparameterset{shockwave:arguments}{source="\externalfigureparameter\v!file",autoPlay=true},
+ \c!resources=\luaparameterset{shockwave:resources}{files={"\externalfigureparameter\v!file"}},
+ \c!display=shockwave:display]
+
+\startJSpreamble shockwave used now
+ function StartShockwave(label) {
+ var rm = this.getAnnotsRichMedia(this.pageNum,label)[0] ;
+ if (rm.activated) {
+ // ok
+ } else {
+ rm.activated = true ;
+ }
+ rm.callAS("rewind") ;
+ rm.callAS("playPause") ;
+ }
+ function StopShockwave(label) {
+ var rm = this.getAnnotsRichMedia(this.pageNum,label)[0] ;
+ if (rm.activated) {
+ rm.callAS("pause") ;
+ rm.callAS("rewind") ;
+ }
+ }
+ function RewindShockwave(label) {
+ var rm = this.getAnnotsRichMedia(this.pageNum,label)[0] ;
+ if (rm.activated) {
+ rm.callAS("rewind") ;
+ }
+ }
+ function PauseShockwave(label) {
+ var rm = this.getAnnotsRichMedia(this.pageNum,label)[0] ;
+ if (rm.activated) {
+ rm.callAS("playPause") ;
+ }
+ }
+\stopJSpreamble
+
+% using videoplayer.swf from adobe or strobemediaplayback.swf from sourceforge:
+
+%\useexternalfigure
+% [shockwave]
+% [videoplayer.swf]
+% [\c!arguments=\luaparameterset{shockwave:arguments}{source="\externalfigureparameter\v!file"},
+% \c!resources=\luaparameterset{shockwave:resources}{files={"\externalfigureparameter\v!file"}},
+% \c!display=shockwave:display]
+
+\startJSpreamble shockwave used now
+ function StartShockwave(label) {
+ var rm = this.getAnnotsRichMedia(this.pageNum,label)[0] ;
+ if (rm.activated) {
+ rm.callAS("multimedia_play") ;
+ } else {
+ rm.activated = true ;
+ }
+ }
+ function StopShockwave(label) {
+ var rm = this.getAnnotsRichMedia(this.pageNum,label)[0] ;
+ if (rm.activated) {
+ rm.callAS("multimedia_pause") ;
+ rm.callAS("multimedia_rewind") ;
+ }
+ }
+ function RewindShockwave(label) {
+ var rm = this.getAnnotsRichMedia(this.pageNum,label)[0] ;
+ if (rm.activated) {
+ rm.callAS("multimedia_rewind") ;
+ }
+ }
+ function PauseShockwave(label) {
+ var rm = this.getAnnotsRichMedia(this.pageNum,label)[0] ;
+ if (rm.activated) {
+ rm.callAS("multimedia_pause") ;
+ }
+ }
+\stopJSpreamble
+
+% \useexternalfigure
+% [shockwave]
+% [strobemediaplayback.swf]
+% [arguments=\luaparameterset{shockwave:arguments}{src="\externalfigureparameter\v!file"},
+% resources=\luaparameterset{shockwave:resources}{files={"\externalfigureparameter\v!file"}},
+% display=shockwave:display]
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkiv/bibl-bib.mkiv b/Master/texmf-dist/tex/context/base/mkiv/bibl-bib.mkiv
index 60291ee71b5..784c87a020b 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/bibl-bib.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/bibl-bib.mkiv
@@ -812,12 +812,12 @@
{\iflocation
\edef\temp{\bibtexcitationparameter\c!interaction}%
\ifx\temp\v!stop
- \doubleexpandafter\secondoftwoarguments
+ \@EA@EA@EA\secondoftwoarguments
\else
- \doubleexpandafter\firstoftwoarguments
+ \@EA@EA@EA\firstoftwoarguments
\fi
\else
- \expandafter\secondoftwoarguments
+ \@EA\secondoftwoarguments
\fi}
\let\doifbibtexinteractionelse\doifelsebibtexinteraction
diff --git a/Master/texmf-dist/tex/context/base/mkiv/bibl-tra.mkiv b/Master/texmf-dist/tex/context/base/mkiv/bibl-tra.mkiv
index 5389400f31b..3ff07ead595 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/bibl-tra.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/bibl-tra.mkiv
@@ -1500,7 +1500,7 @@
\c!numbercommand=\bibleftnumber]
\unexpanded\def\preloadbiblist
- {\glet\preloadbiblist\relax
+ {\globallet\preloadbiblist\relax
\dousepublications\jobname}
% \appendtoks \preloadbiblist \to \everysetuppublications
diff --git a/Master/texmf-dist/tex/context/base/mkiv/buff-imp-default.mkiv b/Master/texmf-dist/tex/context/base/mkiv/buff-imp-default.mkiv
index 4da4ff0df20..a4ad788bb76 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/buff-imp-default.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/buff-imp-default.mkiv
@@ -15,11 +15,11 @@
\unprotect
-\setupstartstop
- [DefaultSnippet]
- [\c!before={\typingparameter\c!before},
- \c!after={\typingparameter\c!after},
- \c!style={\typingparameter\c!style}]
+\definestartstop
+ [DefaultSnippet]
+ [\c!before=\blank,
+ \c!after=\blank,
+ \c!style=\tt]
% Name
% NamePrimitive
diff --git a/Master/texmf-dist/tex/context/base/mkiv/buff-ini.lua b/Master/texmf-dist/tex/context/base/mkiv/buff-ini.lua
index bd3cf9d5ae2..1c791277318 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/buff-ini.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/buff-ini.lua
@@ -167,8 +167,7 @@ local function collectcontent(name,separator) -- no print
elseif nnames == 1 then
return getcontent(names[1])
else
- local t = { }
- local n = 0
+ local t, n = { }, 0
for i=1,nnames do
local c = getcontent(names[i])
if c ~= "" then
@@ -183,7 +182,7 @@ local function collectcontent(name,separator) -- no print
end
local function loadcontent(name) -- no print
- local content = collectcontent(name,"\n") -- tex likes \n hm, elsewhere \r
+ local content = collectcontent(name,"\n") -- tex likes \n
local ok, err = load(content)
if ok then
return ok()
@@ -646,10 +645,7 @@ local function gettexbuffer(name)
end
end
-buffers.get = getbuffer
-buffers.getmkiv = getbuffermkiv
-buffers.gettexbuffer = gettexbuffer
-buffers.run = runbuffer
+buffers.run = runbuffer
implement { name = "getbufferctxlua", actions = loadcontent, arguments = "string" }
implement { name = "getbuffer", actions = getbuffer, arguments = "string" }
@@ -712,18 +708,3 @@ do
end
end
-
--- moved here:
-
-function buffers.samplefile(name)
- if not buffers.exists(name) then
- buffers.assign(name,io.loaddata(resolvers.findfile(name)))
- end
- buffers.get(name)
-end
-
-implement {
- name = "samplefile", -- bad name, maybe rename to injectbuffercontent
- actions = buffers.samplefile,
- arguments = "string"
-}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/buff-ini.mkiv b/Master/texmf-dist/tex/context/base/mkiv/buff-ini.mkiv
index 145f0f39245..1a5ce459103 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/buff-ini.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/buff-ini.mkiv
@@ -44,18 +44,8 @@
% \def\buff_start_indeed#1#2#3#4#5% \donothing needed ! #5=undent)
% {\normalexpanded{\buff_pickup{#2}{#3}{#4}{}{\buff_stop{#4}}\plusone}}
-% \def\buff_start_indeed#1#2#3#4%
-% {\normalexpanded{\buff_pickup{#2}{#3}{#4}{}{\buff_stop{#4}}\plusone}}
-
\def\buff_start_indeed#1#2#3#4%
- {\edef\p_strip{\namedbufferparameter{#1}\c!strip}% for aditya
- \normalexpanded{\buff_pickup
- {#2}%
- {#3}%
- {#4}%
- {}%
- {\buff_stop{#4}}%
- \ifx\p_strip\v!no\zerocount\else\plusone\fi}}
+ {\normalexpanded{\buff_pickup{#2}{#3}{#4}{}{\buff_stop{#4}}\plusone}}
\unexpanded\def\grabbufferdata % was: \dostartbuffer
{\begingroup % (4)
@@ -165,7 +155,7 @@
\setexpandedbufferparameter\c!number{\number\c_buff_n_of_defined}%
\edef\currentdefinedbuffer{def-\number\c_buff_n_of_defined}%
\setuevalue{\e!start\currentbuffer}{\buff_start_defined{\currentbuffer}{\currentdefinedbuffer}{\e!start\currentbuffer}{\e!stop\currentbuffer}}%
- \setuevalue{\e!get \currentbuffer}{\buff_get_stored {\currentbuffer}{\currentdefinedbuffer}}%
+ \setuevalue{\e!get\currentbuffer }{\buff_get_stored{\currentbuffer}{\currentdefinedbuffer}}%
\to \everydefinebuffer
\unexpanded\def\buff_start_defined
@@ -179,16 +169,16 @@
{\dosingleempty\buff_get}
\unexpanded\def\buff_get[#1]% [name]
- {\namedbufferparameter\empty\c!before\relax
+ {\namedbufferparameter\empty\c!before
\doifelsenothing{#1}
{\buff_get_stored_indeed\empty}
{\processcommalist[#1]\buff_get_stored_indeed}%
- \namedbufferparameter\empty\c!after\relax}
+ \namedbufferparameter\empty\c!after}
\unexpanded\def\buff_get_stored#1#2%
- {\namedbufferparameter{#1}\c!before\relax
+ {\namedbufferparameter{#1}\c!before
\buff_get_stored_indeed{#2}%
- \namedbufferparameter{#1}\c!after\relax}
+ \namedbufferparameter{#1}\c!after}
\unexpanded\def\buff_get_stored_indeed#1%
{\clf_getbuffer{#1}}
@@ -284,4 +274,28 @@
\def\getbufferdata[#1]{\buff_get_stored_indeed{#1}}
+%D This is a weird one, moved from cont-new. Do we really need it? If not
+%D it will go away.
+
+\bgroup \permitcircumflexescape
+
+\obeylines % don't remove %'s !
+
+\gdef\collapsedspace#1%
+ {\ifx#1^^M%
+ \expandafter\collapsedspace
+ \else
+ \space
+ \expandafter#1%
+ \fi}
+
+\unexpanded\gdef\collapsespaces
+ {\prependtoksonce\relax\to\everyeof%
+ \ignorelines%
+ \ignoretabs%
+ \let\obeyedspace\collapsedspace%
+ \obeyspaces}
+
+\egroup
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkiv/buff-ver.lua b/Master/texmf-dist/tex/context/base/mkiv/buff-ver.lua
index 88605631d84..d9178b1dfc9 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/buff-ver.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/buff-ver.lua
@@ -43,7 +43,6 @@ local findfile = resolvers.findfile
local addsuffix = file.addsuffix
local v_yes = variables.yes
-local v_no = variables.no
local v_last = variables.last
local v_all = variables.all
local v_absolute = variables.absolute
@@ -142,8 +141,7 @@ local functions = { __index = {
local handlers = { }
function visualizers.newhandler(name,data)
- local tname = type(name)
- local tdata = type(data)
+ local tname, tdata = type(name), type(data)
if tname == "table" then -- (data)
setmetatable(name,getmetatable(name) or functions)
return name
@@ -257,7 +255,7 @@ function visualizers.load(name)
if trace_visualize then
report_visualizers("loading visualizer %a",name)
end
- lua.registercode(luaname) -- only used here, end up in format
+ lua.registercode(luaname)
context.input(texname)
end
if rawget(specifications,name) == nil then
@@ -447,7 +445,7 @@ function visualizers.registerescapecommand(name,token,normalmethod,escapecommand
end
token = P(token)
local notoken = hack((1 - token)^1)
- local cstoken = Cs(name_pattern * (space_pattern/""))
+ local cstoken = name_pattern * space_pattern
escapepattern = (
(token / "")
* (cstoken / (escapecommand or texcommand))
@@ -616,12 +614,7 @@ end
local onlyspaces = S(" \t\f\n\r")^0 * P(-1)
local function getstrip(lines,first,last)
- if not first then
- first = 1
- end
- if not last then
- last = #lines
- end
+ local first, last = first or 1, last or #lines
for i=first,last do
local li = lines[i]
if #li == 0 or lpegmatch(onlyspaces,li) then
@@ -743,14 +736,12 @@ end
local function filter(lines,settings) -- todo: inline or display in settings
local strip = settings.strip
- -- if strip and strip == "" then
- if strip ~= v_no and strip ~= false then
+ if strip and strip ~= "" then
lines = realign(lines,strip)
end
- local line = 0
- local n = 0
- local range = settings.range
+ local line, n = 0, 0
local first, last, m = getstrip(lines)
+ local range = settings.range
if range then
first, last = getrange(lines,first,last,range)
first, last = getstrip(lines,first,last)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/buff-ver.mkiv b/Master/texmf-dist/tex/context/base/mkiv/buff-ver.mkiv
index 7cf829b746c..558049dcc59 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/buff-ver.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/buff-ver.mkiv
@@ -496,7 +496,7 @@
\def\buff_verbatim_typing_start_nop
{\typingparameter\c!before
- \startpacked[\v!blank]%
+ \startpacked[\v!blank]
\buff_verbatim_setup_line_numbering
\buff_verbatim_initialize_typing_one
\buff_verbatim_setup_keep_together
@@ -504,7 +504,7 @@
\def\buff_verbatim_typing_start_yes[#1]%
{\typingparameter\c!before
- \startpacked[\v!blank]%
+ \startpacked[\v!blank]
\doifelseassignment{#1}
{\setupcurrenttyping[#1]}
{\doif\v!continue{#1}{\lettypingparameter\c!continue\v!yes}}%
@@ -514,16 +514,9 @@
\normalexpanded{\buff_verbatim_type_block{\e!start\currenttyping}{\e!stop\currenttyping}}}
\unexpanded\def\buff_verbatim_type_block#1#2%
- {\edef\p_strip{\typingparameter\c!strip}%
- \normalexpanded{\buff_pickup
- {_typing_}%
- {#1}%
- {#2}%
- {}%
- {\buff_verbatim_type_block_verbatim_indeed{#1}{#2}}%
- \ifx\p_strip\v!no\zerocount\else\plusone\fi}}
-
-\unexpanded\def\buff_verbatim_type_block_verbatim_indeed#1#2%
+ {\buff_pickup{_typing_}{#1}{#2}{}{\buff_verbatim_type_block_verbatim_indeed{#1}{#2}}\plusone} % was dowithbuffer
+
+\def\buff_verbatim_type_block_verbatim_indeed#1#2%
{\buff_verbatim_initialize_typing_two
\dostarttaggedchained\t!verbatimblock\currenttyping\??typing
\beginofverbatimlines
@@ -540,7 +533,7 @@
\dostoptagged
\endofverbatimlines
\dostoptagged
- \begincsname#2\endcsname}
+ \csname#2\endcsname}
\unexpanded\def\buff_verbatim_typing_stop#1% hm, currenttyping
{\stoppacked
diff --git a/Master/texmf-dist/tex/context/base/mkiv/catc-ini.mkiv b/Master/texmf-dist/tex/context/base/mkiv/catc-ini.mkiv
index 215ec14e16c..471e4d1c856 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/catc-ini.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/catc-ini.mkiv
@@ -23,110 +23,58 @@
%D \MKII\ file. There is some overlap in code with \MKII\ but we take that
%D for granted. Also, in \MKIV\ less active characters are used.
-% \normalprotected\def\setnewconstantfromchar#1%
-% {\expandafter\ifdefined\expandafter#1\expandafter
-% \let\expandafter#1\expandafter\undefined\expandafter\fi\expandafter
-% \newcount\expandafter#1\expandafter#1\the#1\relax}
-%
-% \normalprotected\def\setnewconstantfromchar#1%
-% {\begingroup
-% \scratchcounter#1%
-% \edef\!!stringa{\meaning#1}%
-% \chardef#1\scratchcounter
-% \edef\!!stringb{\meaning#1}%
-% \normalexpanded{\endgroup
-% \ifx\!!stringa\!!stringb
-% \let#1\noexpand\undefined
-% \newcount#1%
-% \fi
-% #1\the\scratchcounter\relax}}
-%
-% \normalprotected\def\setnewconstantfromchar#1%
-% {\begingroup
-% \edef\!!stringa{\meaning#1}%
-% \expandafter\chardef\expandafter#1\the#1%
-% \edef\!!stringb{\meaning#1}%
-% \normalexpanded{\endgroup
-% \ifx\!!stringa\!!stringb
-% \let#1\noexpand\undefined
-% \newcount#1%
-% \fi
-% #1\the#1\relax}}
-%
-% \normalprotected\def\setnewconstantfromchar#1%
-% {\scratchcounter#1\let#1\undefined\newcount#1#1\scratchcounter}
-
-\def\promote#1{\scratchcounter#1\let#1\undefined\newcount#1#1\scratchcounter}
-
-\promote\escapecatcode
-\promote\begingroupcatcode
-\promote\endgroupcatcode
-\promote\mathshiftcatcode
-\promote\alignmentcatcode
-\promote\endoflinecatcode
-\promote\parametercatcode
-\promote\superscriptcatcode
-\promote\subscriptcatcode
-\promote\ignorecatcode
-\promote\spacecatcode
-\promote\lettercatcode
-\promote\othercatcode
-\promote\activecatcode
-\promote\commentcatcode
-\promote\invalidcatcode
-
-\promote\tabasciicode
-\promote\newlineasciicode
-\promote\formfeedasciicode
-\promote\endoflineasciicode
-\promote\endoffileasciicode
-\promote\spaceasciicode
-\promote\exclamationmarkasciicode
-\promote\doublequoteasciicode
-\promote\hashasciicode
-\promote\dollarasciicode
-\promote\commentasciicode
-\promote\ampersandasciicode
-\promote\singlequoteasciicode
-\promote\primeasciicode
-\promote\hyphenasciicode
-\promote\forwardslashasciicode
-\promote\colonasciicode
-\promote\lessthanasciicode
-\promote\morethanasciicode
-\promote\questionmarkasciicode
-\promote\atsignasciicode
-\promote\backslashasciicode
-\promote\circumflexasciicode
-\promote\underscoreasciicode
-\promote\leftbraceasciicode
-\promote\barasciicode
-\promote\rightbraceasciicode
-\promote\tildeasciicode
-\promote\delasciicode
-
-\let\promote\undefined
-
-% \begingroup
-%
-% \catcode\tabasciicode \activecatcode
-% \catcode\formfeedasciicode \activecatcode
-% \catcode\endoflineasciicode\activecatcode
-%
-% \letcharcode\tabasciicode \relax
-% \letcharcode\newlineasciicode \relax
-% \letcharcode\formfeedasciicode \relax
-% \letcharcode\endoflineasciicode\relax
-%
-% \xdef\activetabtoken {\Uchar\tabasciicode } % \gdef\activetabtoken {^^I}
-% \xdef\outputnewlinechar {\Uchar\newlineasciicode } % \gdef\outputnewlinechar {^^J}
-% \xdef\activeformfeedtoken {\Uchar\formfeedasciicode } % \gdef\activeformfeedtoken {^^L}
-% \xdef\activeendoflinetoken{\Uchar\endoflineasciicode} % \gdef\activeendoflinetoken{^^M}
-%
-% \endgroup
+\setnewconstant\escapecatcode 0
+\setnewconstant\begingroupcatcode 1
+\setnewconstant\endgroupcatcode 2
+\setnewconstant\mathshiftcatcode 3
+\setnewconstant\alignmentcatcode 4
+\setnewconstant\endoflinecatcode 5
+\setnewconstant\parametercatcode 6
+\setnewconstant\superscriptcatcode 7
+\setnewconstant\subscriptcatcode 8
+\setnewconstant\ignorecatcode 9
+\setnewconstant\spacecatcode 10
+\setnewconstant\lettercatcode 11
+\setnewconstant\othercatcode 12 % finally obsolete: \let\other \othercatcode
+\setnewconstant\activecatcode 13 % finally obsolete: \let\active\activecatcode
+\setnewconstant\commentcatcode 14
+\setnewconstant\invalidcatcode 15
+
+\setnewconstant\tabasciicode 9
+\setnewconstant\newlineasciicode 10 % don't confuse this one with \endoflineasciicode
+\setnewconstant\formfeedasciicode 12
+\setnewconstant\endoflineasciicode 13 % somewhat messy but this can be the active \par
+\setnewconstant\endoffileasciicode 26
+\setnewconstant\spaceasciicode 32
+\setnewconstant\exclamationmarkasciicode 33 % ! used in namespace protection
+\setnewconstant\doublequoteasciicode 34 % "
+\setnewconstant\hashasciicode 35
+\setnewconstant\dollarasciicode 36
+\setnewconstant\commentasciicode 37
+\setnewconstant\ampersandasciicode 38
+\setnewconstant\singlequoteasciicode 39 % '
+\setnewconstant\primeasciicode 39 % '
+\setnewconstant\hyphenasciicode 45
+\setnewconstant\forwardslashasciicode 47 % /
+\setnewconstant\colonasciicode 58
+\setnewconstant\lessthanasciicode 60 % < used as alternative verbatim {
+\setnewconstant\morethanasciicode 62 % > used as alternative verbatim }
+\setnewconstant\questionmarkasciicode 63 % ? used in namespace protection
+\setnewconstant\atsignasciicode 64 % @ used in namespace protection
+\setnewconstant\backslashasciicode 92 % `\\
+\setnewconstant\circumflexasciicode 94
+\setnewconstant\underscoreasciicode 95
+\setnewconstant\leftbraceasciicode 123 % `\{
+\setnewconstant\barasciicode 124 % `\|
+\setnewconstant\rightbraceasciicode 125 % `\}
+\setnewconstant\tildeasciicode 126 % `\~
+\setnewconstant\delasciicode 127
\begingroup
- \letcharcode\newlineasciicode\relax \xdef\outputnewlinechar{\Uchar\newlineasciicode}
+ \catcode \tabasciicode \activecatcode \gdef\activetabtoken {^^I}
+ \gdef\outputnewlinechar {^^J}
+ \catcode \formfeedasciicode \activecatcode \gdef\activeformfeedtoken {^^L}
+ \catcode \endoflineasciicode \activecatcode \gdef\activeendoflinetoken{^^M}
\endgroup
% \endlinechar = \endoflineasciicode % appended to input lines
@@ -134,17 +82,10 @@
% rather special and used in writing to file: \let\par\outputnewlinechar
-% \normalprotected\def\initializenewlinechar % operating system dependent
-% {\begingroup
-% \newlinechar\newlineasciicode
-% \xdef\outputnewlinechar{^^J}%
-% \endgroup}
-
\normalprotected\def\initializenewlinechar % operating system dependent
{\begingroup
- \letcharcode\newlineasciicode\relax
\newlinechar\newlineasciicode
- \xdef\outputnewlinechar{\Uchar\newlineasciicode}%
+ \xdef\outputnewlinechar{^^J}%
\endgroup}
%D We predefine some prefixes ahead of syst-aux and mult-sys.
diff --git a/Master/texmf-dist/tex/context/base/mkiv/char-act.mkiv b/Master/texmf-dist/tex/context/base/mkiv/char-act.mkiv
index dd9a325f234..7d7268c8ba6 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/char-act.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/char-act.mkiv
@@ -44,14 +44,11 @@
\unexpanded\def\controlspace{\hbox{\asciispacechar}} % rather tex, we need the unicode value
\unexpanded\def\normalspaces{\catcode\spaceasciicode\spacecatcode}
-% \bgroup
-% \catcode\spaceasciicode\activecatcode
-% \unexpanded\gdef\obeyspaces {\catcode\spaceasciicode\activecatcode\def {\obeyedspace }}
-% \unexpanded\gdef\setcontrolspaces{\catcode\spaceasciicode\activecatcode\def {\controlspace}}
-% \egroup
-
-%unexpanded\def\obeyspaces {\catcode\spaceasciicode\activecatcode\letcharcode\spaceasciicode\obeyedspace }
-\unexpanded\def\setcontrolspaces{\catcode\spaceasciicode\activecatcode\letcharcode\spaceasciicode\controlspace}
+\bgroup
+ \catcode\spaceasciicode\activecatcode
+ \unexpanded\gdef\obeyspaces{\catcode\spaceasciicode\activecatcode\def {\obeyedspace}}
+ \unexpanded\gdef\setcontrolspaces{\catcode\spaceasciicode\activecatcode\def {\controlspace}}
+\egroup
%D \macros
%D {obeytabs, obeylines, obeypages,ignoretabs, ignorelines, ignorepages}
@@ -62,42 +59,20 @@
%D \NEWPAGE\ character locally, we redefine the meaning of
%D this (often already) active character.
-% \expandafter\def\activeformfeedtoken{\par}
-
-\letcharcode\formfeedasciicode\par
+\expandafter\def\activeformfeedtoken{\par}
%D The following indirect definitions enable us to implement
%D all kind of \type{\obeyed} handlers.
-% \unexpanded\def\obeytabs {\catcode\tabasciicode \activecatcode\expandafter\def\activetabtoken {\obeyedtab }}
-% \unexpanded\def\obeylines {\catcode\endoflineasciicode\activecatcode\expandafter\def\activeendoflinetoken{\obeyedline}}
-% \unexpanded\def\obeypages {\catcode\formfeedasciicode \activecatcode\expandafter\def\activeformfeedtoken {\obeyedpage}}
-
-% \unexpanded\def\ignoretabs {\catcode\tabasciicode \activecatcode\expandafter\def\activetabtoken {\obeyedspace}}
-% \unexpanded\def\ignorelines{\catcode\endoflineasciicode\activecatcode\expandafter\def\activeendoflinetoken{\obeyedspace}}
-% \unexpanded\def\ignorepages{\catcode\formfeedasciicode \ignorecatcode}
-% \unexpanded\def\ignoreeofs {\catcode\endoffileasciicode\ignorecatcode}
-
-% but ... as we don't want to freeze to \obeyedspace etc which can be set after \obeyspaces, we
-% use an idirectness
+\unexpanded\def\obeytabs {\catcode\tabasciicode \activecatcode\expandafter\def\activetabtoken {\obeyedtab }}
+\unexpanded\def\obeylines {\catcode\endoflineasciicode\activecatcode\expandafter\def\activeendoflinetoken{\obeyedline}}
+\unexpanded\def\obeypages {\catcode\formfeedasciicode \activecatcode\expandafter\def\activeformfeedtoken {\obeyedpage}}
-\def\_obeyed_space_{\obeyedspace}
-\def\_obeyed_tab_ {\obeyedtab}
-\def\_obeyed_line_ {\obeyedline}
-\def\_obeyed_page_ {\obeyedpage}
-
-\unexpanded\def\obeyspaces {\catcode\spaceasciicode \activecatcode\letcharcode\spaceasciicode \_obeyed_space_}
-\unexpanded\def\obeytabs {\catcode\tabasciicode \activecatcode\letcharcode\tabasciicode \_obeyed_tab_}
-\unexpanded\def\obeylines {\catcode\endoflineasciicode\activecatcode\letcharcode\endoflineasciicode\_obeyed_line_}
-\unexpanded\def\obeypages {\catcode\formfeedasciicode \activecatcode\letcharcode\formfeedasciicode \_obeyed_page_}
-
-\unexpanded\def\ignoretabs {\catcode\tabasciicode \activecatcode\letcharcode\tabasciicode \_obeyed_space_}
-\unexpanded\def\ignorelines{\catcode\endoflineasciicode\activecatcode\letcharcode\endoflineasciicode\_obeyed_space_}
+\unexpanded\def\ignoretabs {\catcode\tabasciicode \activecatcode\expandafter\def\activetabtoken {\obeyedspace}}
+\unexpanded\def\ignorelines{\catcode\endoflineasciicode\activecatcode\expandafter\def\activeendoflinetoken{\obeyedspace}}
\unexpanded\def\ignorepages{\catcode\formfeedasciicode \ignorecatcode}
\unexpanded\def\ignoreeofs {\catcode\endoffileasciicode\ignorecatcode}
-\unexpanded\def\setcontrolspaces{\catcode\spaceasciicode\activecatcode\letcharcode\spaceasciicode\_control_space_}
-
%D \macros
%D {naturaltextext}
%D
diff --git a/Master/texmf-dist/tex/context/base/mkiv/char-def.lua b/Master/texmf-dist/tex/context/base/mkiv/char-def.lua
index c17400a7942..fcbf0190087 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/char-def.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/char-def.lua
@@ -10232,7 +10232,6 @@ characters.data={
[0x3D0]={
adobename="betasymbolgreek",
category="ll",
- contextname="greekbetaalt",
description="GREEK BETA SYMBOL",
direction="l",
linebreak="al",
@@ -14165,13 +14164,6 @@ characters.data={
synonyms={ "armenian patiw" },
unicodeslot=0x55F,
},
- [0x560]={
- category="ll",
- description="ARMENIAN SMALL LETTER TURNED AYB",
- direction="l",
- linebreak="al",
- unicodeslot=0x560,
- },
[0x561]={
adobename="aybarmenian",
category="ll",
@@ -14523,13 +14515,6 @@ characters.data={
specials={ "compat", 0x565, 0x582 },
unicodeslot=0x587,
},
- [0x588]={
- category="ll",
- description="ARMENIAN SMALL LETTER YI WITH STROKE",
- direction="l",
- linebreak="al",
- unicodeslot=0x588,
- },
[0x589]={
adobename="periodarmenian",
category="po",
@@ -15298,13 +15283,6 @@ characters.data={
linebreak="hl",
unicodeslot=0x5EA,
},
- [0x5EF]={
- category="lo",
- description="HEBREW YOD TRIANGLE",
- direction="r",
- linebreak="hl",
- unicodeslot=0x5EF,
- },
[0x5F0]={
adobename="vavvavhebrew",
category="lo",
@@ -17660,7 +17638,6 @@ characters.data={
unicodeslot=0x70D,
},
[0x70F]={
- arabic="t",
category="cf",
description="SYRIAC ABBREVIATION MARK",
direction="al",
@@ -19385,28 +19362,6 @@ characters.data={
linebreak="al",
unicodeslot=0x7FA,
},
- [0x7FD]={
- category="mn",
- combining=0xDC,
- description="NKO DANTAYALAN",
- direction="nsm",
- linebreak="cm",
- unicodeslot=0x7FD,
- },
- [0x7FE]={
- category="sc",
- description="NKO DOROME SIGN",
- direction="r",
- linebreak="pr",
- unicodeslot=0x7FE,
- },
- [0x7FF]={
- category="sc",
- description="NKO TAMAN SIGN",
- direction="r",
- linebreak="pr",
- unicodeslot=0x7FF,
- },
[0x800]={
category="lo",
description="SAMARITAN LETTER ALAF",
@@ -20406,14 +20361,6 @@ characters.data={
linebreak="al",
unicodeslot=0x8BD,
},
- [0x8D3]={
- category="mn",
- combining=0xDC,
- description="ARABIC SMALL LOW WAW",
- direction="nsm",
- linebreak="cm",
- unicodeslot=0x8D3,
- },
[0x8D4]={
category="mn",
combining=0xE6,
@@ -21337,8 +21284,8 @@ characters.data={
description="DEVANAGARI SIGN NUKTA",
direction="nsm",
indic="o",
- indicclass="nukta",
indicmark="b",
+ indicclass="nukta",
linebreak="cm",
unicodeslot=0x93C,
},
@@ -21575,8 +21522,8 @@ characters.data={
description="DEVANAGARI STRESS SIGN ANUDATTA",
direction="nsm",
indic="s",
- indicclass="anudatta",
indicmark="b",
+ indicclass="anudatta",
linebreak="cm",
unicodeslot=0x952,
},
@@ -22429,8 +22376,8 @@ characters.data={
description="BENGALI SIGN NUKTA",
direction="nsm",
indic="o",
- indicclass="nukta",
indicmark="b",
+ indicclass="nukta",
linebreak="cm",
unicodeslot=0x9BC,
},
@@ -22876,14 +22823,6 @@ characters.data={
linebreak="al",
unicodeslot=0x9FD,
},
- [0x9FE]={
- category="mn",
- combining=0xE6,
- description="BENGALI SANDHI MARK",
- direction="nsm",
- linebreak="cm",
- unicodeslot=0x9FE,
- },
[0xA01]={
category="mn",
description="GURMUKHI SIGN ADAK BINDI",
@@ -23308,8 +23247,8 @@ characters.data={
description="GURMUKHI SIGN NUKTA",
direction="nsm",
indic="o",
- indicclass="nukta",
indicmark="b",
+ indicclass="nukta",
linebreak="cm",
unicodeslot=0xA3C,
},
@@ -23626,13 +23565,6 @@ characters.data={
linebreak="cm",
unicodeslot=0xA75,
},
- [0xA76]={
- category="po",
- description="GURMUKHI ABBREVIATION SIGN",
- direction="l",
- linebreak="al",
- unicodeslot=0xA76,
- },
[0xA81]={
adobename="candrabindugujarati",
category="mn",
@@ -24100,8 +24032,8 @@ characters.data={
description="GUJARATI SIGN NUKTA",
direction="nsm",
indic="o",
- indicclass="nukta",
indicmark="b",
+ indicclass="nukta",
linebreak="cm",
unicodeslot=0xABC,
},
@@ -24875,8 +24807,8 @@ characters.data={
description="ORIYA SIGN NUKTA",
direction="nsm",
indic="o",
- indicclass="nukta",
indicmark="b",
+ indicclass="nukta",
linebreak="cm",
unicodeslot=0xB3C,
},
@@ -25877,13 +25809,6 @@ characters.data={
linebreak="cm",
unicodeslot=0xC03,
},
- [0xC04]={
- category="mn",
- description="TELUGU SIGN COMBINING ANUSVARA ABOVE",
- direction="nsm",
- linebreak="cm",
- unicodeslot=0xC04,
- },
[0xC05]={
category="lo",
description="TELUGU LETTER A",
@@ -26250,9 +26175,9 @@ characters.data={
category="lo",
description="TELUGU LETTER VA",
direction="l",
- indic="c",
linebreak="al",
unicodeslot=0xC35,
+ indic="c",
},
[0xC36]={
category="lo",
@@ -26689,13 +26614,6 @@ characters.data={
linebreak="cm",
unicodeslot=0xC83,
},
- [0xC84]={
- category="po",
- description="KANNADA SIGN SIDDHAM",
- direction="l",
- linebreak="bb",
- unicodeslot=0xC84,
- },
[0xC85]={
category="lo",
description="KANNADA LETTER A",
@@ -27096,8 +27014,8 @@ characters.data={
description="KANNADA SIGN NUKTA",
direction="nsm",
indic="o",
- indicclass="nukta",
indicmark="b",
+ indicclass="nukta",
linebreak="cm",
unicodeslot=0xCBC,
},
@@ -31725,7 +31643,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER KA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x1000,
variants={
@@ -31736,7 +31653,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER KHA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x1001,
},
@@ -31744,7 +31660,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER GA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x1002,
variants={
@@ -31755,7 +31670,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER GHA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x1003,
},
@@ -31763,7 +31677,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER NGA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x1004,
variants={
@@ -31774,7 +31687,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER CA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x1005,
},
@@ -31782,7 +31694,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER CHA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x1006,
},
@@ -31790,7 +31701,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER JA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x1007,
},
@@ -31798,7 +31708,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER JHA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x1008,
},
@@ -31806,7 +31715,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER NYA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x1009,
},
@@ -31814,7 +31722,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER NNYA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x100A,
},
@@ -31822,7 +31729,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER TTA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x100B,
},
@@ -31830,7 +31736,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER TTHA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x100C,
},
@@ -31838,7 +31743,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER DDA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x100D,
},
@@ -31846,7 +31750,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER DDHA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x100E,
},
@@ -31854,7 +31757,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER NNA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x100F,
},
@@ -31862,7 +31764,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER TA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x1010,
variants={
@@ -31873,7 +31774,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER THA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x1011,
variants={
@@ -31884,7 +31784,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER DA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x1012,
},
@@ -31892,7 +31791,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER DHA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x1013,
},
@@ -31900,7 +31798,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER NA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x1014,
},
@@ -31908,7 +31805,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER PA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x1015,
variants={
@@ -31919,7 +31815,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER PHA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x1016,
},
@@ -31927,7 +31822,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER BA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x1017,
},
@@ -31935,7 +31829,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER BHA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x1018,
},
@@ -31943,7 +31836,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER MA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x1019,
variants={
@@ -31954,7 +31846,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER YA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x101A,
variants={
@@ -31965,7 +31856,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER RA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x101B,
},
@@ -31973,7 +31863,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER LA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x101C,
variants={
@@ -31984,7 +31873,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER WA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x101D,
variants={
@@ -31995,7 +31883,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER SA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x101E,
},
@@ -32003,7 +31890,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER HA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x101F,
},
@@ -32011,7 +31897,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER LLA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x1020,
},
@@ -32019,7 +31904,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER A",
direction="l",
- indic="i",
linebreak="sa",
unicodeslot=0x1021,
},
@@ -32027,7 +31911,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER SHAN A",
direction="l",
- indic="i",
linebreak="sa",
unicodeslot=0x1022,
variants={
@@ -32038,7 +31921,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER I",
direction="l",
- indic="i",
linebreak="sa",
unicodeslot=0x1023,
},
@@ -32046,7 +31928,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER II",
direction="l",
- indic="i",
linebreak="sa",
unicodeslot=0x1024,
},
@@ -32054,7 +31935,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER U",
direction="l",
- indic="i",
linebreak="sa",
unicodeslot=0x1025,
},
@@ -32062,7 +31942,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER UU",
direction="l",
- indic="i",
linebreak="sa",
specials={ "char", 0x1025, 0x102E },
unicodeslot=0x1026,
@@ -32071,7 +31950,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER E",
direction="l",
- indic="i",
linebreak="sa",
unicodeslot=0x1027,
},
@@ -32079,7 +31957,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER MON E",
direction="l",
- indic="i",
linebreak="sa",
unicodeslot=0x1028,
},
@@ -32087,7 +31964,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER O",
direction="l",
- indic="i",
linebreak="sa",
unicodeslot=0x1029,
},
@@ -32095,7 +31971,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER AU",
direction="l",
- indic="i",
linebreak="sa",
unicodeslot=0x102A,
},
@@ -32103,8 +31978,6 @@ characters.data={
category="mc",
description="MYANMAR VOWEL SIGN TALL AA",
direction="l",
- indic="d",
- indicmark="r",
linebreak="sa",
unicodeslot=0x102B,
},
@@ -32112,8 +31985,6 @@ characters.data={
category="mc",
description="MYANMAR VOWEL SIGN AA",
direction="l",
- indic="d",
- indicmark="r",
linebreak="sa",
unicodeslot=0x102C,
},
@@ -32121,8 +31992,6 @@ characters.data={
category="mn",
description="MYANMAR VOWEL SIGN I",
direction="nsm",
- indic="d",
- indicmark="t",
linebreak="sa",
unicodeslot=0x102D,
},
@@ -32130,8 +31999,6 @@ characters.data={
category="mn",
description="MYANMAR VOWEL SIGN II",
direction="nsm",
- indic="d",
- indicmark="t",
linebreak="sa",
unicodeslot=0x102E,
},
@@ -32139,8 +32006,6 @@ characters.data={
category="mn",
description="MYANMAR VOWEL SIGN U",
direction="nsm",
- indic="d",
- indicmark="b",
linebreak="sa",
unicodeslot=0x102F,
},
@@ -32148,8 +32013,6 @@ characters.data={
category="mn",
description="MYANMAR VOWEL SIGN UU",
direction="nsm",
- indic="d",
- indicmark="b",
linebreak="sa",
unicodeslot=0x1030,
},
@@ -32157,8 +32020,6 @@ characters.data={
category="mc",
description="MYANMAR VOWEL SIGN E",
direction="l",
- indic="d",
- indicmark="l",
linebreak="sa",
unicodeslot=0x1031,
variants={
@@ -32169,8 +32030,6 @@ characters.data={
category="mn",
description="MYANMAR VOWEL SIGN AI",
direction="nsm",
- indic="d",
- indicmark="t",
linebreak="sa",
unicodeslot=0x1032,
},
@@ -32178,8 +32037,6 @@ characters.data={
category="mn",
description="MYANMAR VOWEL SIGN MON II",
direction="nsm",
- indic="d",
- indicmark="t",
linebreak="sa",
unicodeslot=0x1033,
},
@@ -32187,8 +32044,6 @@ characters.data={
category="mn",
description="MYANMAR VOWEL SIGN MON O",
direction="nsm",
- indic="d",
- indicmark="t",
linebreak="sa",
unicodeslot=0x1034,
},
@@ -32196,8 +32051,6 @@ characters.data={
category="mn",
description="MYANMAR VOWEL SIGN E ABOVE",
direction="nsm",
- indic="d",
- indicmark="t",
linebreak="sa",
unicodeslot=0x1035,
},
@@ -32205,8 +32058,6 @@ characters.data={
category="mn",
description="MYANMAR SIGN ANUSVARA",
direction="nsm",
- indic="m",
- indicmark="t",
linebreak="sa",
unicodeslot=0x1036,
},
@@ -32215,8 +32066,6 @@ characters.data={
combining=0x7,
description="MYANMAR SIGN DOT BELOW",
direction="nsm",
- indic="s",
- indicmark="b",
linebreak="sa",
unicodeslot=0x1037,
},
@@ -32224,8 +32073,6 @@ characters.data={
category="mc",
description="MYANMAR SIGN VISARGA",
direction="l",
- indic="m",
- indicmark="r",
linebreak="sa",
unicodeslot=0x1038,
},
@@ -32234,8 +32081,6 @@ characters.data={
combining=0x9,
description="MYANMAR SIGN VIRAMA",
direction="nsm",
- indic="m",
- indicmark="b",
linebreak="sa",
synonyms={ "myanmar killer" },
unicodeslot=0x1039,
@@ -32245,8 +32090,6 @@ characters.data={
combining=0x9,
description="MYANMAR SIGN ASAT",
direction="nsm",
- indic="m",
- indicmark="t",
linebreak="sa",
unicodeslot=0x103A,
},
@@ -32254,8 +32097,6 @@ characters.data={
category="mc",
description="MYANMAR CONSONANT SIGN MEDIAL YA",
direction="l",
- indic="c",
- indicmark="r",
linebreak="sa",
unicodeslot=0x103B,
},
@@ -32263,7 +32104,6 @@ characters.data={
category="mc",
description="MYANMAR CONSONANT SIGN MEDIAL RA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x103C,
},
@@ -32271,8 +32111,6 @@ characters.data={
category="mn",
description="MYANMAR CONSONANT SIGN MEDIAL WA",
direction="nsm",
- indic="c",
- indicmark="b",
linebreak="sa",
unicodeslot=0x103D,
},
@@ -32280,8 +32118,6 @@ characters.data={
category="mn",
description="MYANMAR CONSONANT SIGN MEDIAL HA",
direction="nsm",
- indic="c",
- indicmark="b",
linebreak="sa",
unicodeslot=0x103E,
},
@@ -32289,7 +32125,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER GREAT SA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x103F,
},
@@ -32297,7 +32132,6 @@ characters.data={
category="nd",
description="MYANMAR DIGIT ZERO",
direction="l",
- indic="o",
linebreak="nu",
unicodeslot=0x1040,
},
@@ -32305,7 +32139,6 @@ characters.data={
category="nd",
description="MYANMAR DIGIT ONE",
direction="l",
- indic="o",
linebreak="nu",
unicodeslot=0x1041,
},
@@ -32313,7 +32146,6 @@ characters.data={
category="nd",
description="MYANMAR DIGIT TWO",
direction="l",
- indic="o",
linebreak="nu",
unicodeslot=0x1042,
},
@@ -32321,7 +32153,6 @@ characters.data={
category="nd",
description="MYANMAR DIGIT THREE",
direction="l",
- indic="o",
linebreak="nu",
unicodeslot=0x1043,
},
@@ -32329,7 +32160,6 @@ characters.data={
category="nd",
description="MYANMAR DIGIT FOUR",
direction="l",
- indic="o",
linebreak="nu",
unicodeslot=0x1044,
},
@@ -32337,7 +32167,6 @@ characters.data={
category="nd",
description="MYANMAR DIGIT FIVE",
direction="l",
- indic="o",
linebreak="nu",
unicodeslot=0x1045,
},
@@ -32345,7 +32174,6 @@ characters.data={
category="nd",
description="MYANMAR DIGIT SIX",
direction="l",
- indic="o",
linebreak="nu",
unicodeslot=0x1046,
},
@@ -32353,7 +32181,6 @@ characters.data={
category="nd",
description="MYANMAR DIGIT SEVEN",
direction="l",
- indic="o",
linebreak="nu",
unicodeslot=0x1047,
},
@@ -32361,7 +32188,6 @@ characters.data={
category="nd",
description="MYANMAR DIGIT EIGHT",
direction="l",
- indic="o",
linebreak="nu",
unicodeslot=0x1048,
},
@@ -32369,7 +32195,6 @@ characters.data={
category="nd",
description="MYANMAR DIGIT NINE",
direction="l",
- indic="o",
linebreak="nu",
unicodeslot=0x1049,
},
@@ -32377,7 +32202,6 @@ characters.data={
category="po",
description="MYANMAR SIGN LITTLE SECTION",
direction="l",
- indic="o",
linebreak="ba",
unicodeslot=0x104A,
},
@@ -32385,7 +32209,6 @@ characters.data={
category="po",
description="MYANMAR SIGN SECTION",
direction="l",
- indic="o",
linebreak="ba",
unicodeslot=0x104B,
},
@@ -32393,7 +32216,6 @@ characters.data={
category="po",
description="MYANMAR SYMBOL LOCATIVE",
direction="l",
- indic="o",
linebreak="al",
unicodeslot=0x104C,
},
@@ -32401,7 +32223,6 @@ characters.data={
category="po",
description="MYANMAR SYMBOL COMPLETED",
direction="l",
- indic="o",
linebreak="al",
unicodeslot=0x104D,
},
@@ -32409,7 +32230,6 @@ characters.data={
category="po",
description="MYANMAR SYMBOL AFOREMENTIONED",
direction="l",
- indic="o",
linebreak="al",
unicodeslot=0x104E,
},
@@ -32417,7 +32237,6 @@ characters.data={
category="po",
description="MYANMAR SYMBOL GENITIVE",
direction="l",
- indic="o",
linebreak="al",
unicodeslot=0x104F,
},
@@ -32425,7 +32244,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER SHA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x1050,
},
@@ -32433,7 +32251,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER SSA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x1051,
},
@@ -32441,7 +32258,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER VOCALIC R",
direction="l",
- indic="i",
linebreak="sa",
unicodeslot=0x1052,
},
@@ -32449,7 +32265,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER VOCALIC RR",
direction="l",
- indic="i",
linebreak="sa",
unicodeslot=0x1053,
},
@@ -32457,7 +32272,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER VOCALIC L",
direction="l",
- indic="i",
linebreak="sa",
unicodeslot=0x1054,
},
@@ -32465,7 +32279,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER VOCALIC LL",
direction="l",
- indic="i",
linebreak="sa",
unicodeslot=0x1055,
},
@@ -32473,8 +32286,6 @@ characters.data={
category="mc",
description="MYANMAR VOWEL SIGN VOCALIC R",
direction="l",
- indic="d",
- indicmark="r",
linebreak="sa",
unicodeslot=0x1056,
},
@@ -32482,8 +32293,6 @@ characters.data={
category="mc",
description="MYANMAR VOWEL SIGN VOCALIC RR",
direction="l",
- indic="d",
- indicmark="r",
linebreak="sa",
unicodeslot=0x1057,
},
@@ -32491,8 +32300,6 @@ characters.data={
category="mn",
description="MYANMAR VOWEL SIGN VOCALIC L",
direction="nsm",
- indic="d",
- indicmark="b",
linebreak="sa",
unicodeslot=0x1058,
},
@@ -32500,8 +32307,6 @@ characters.data={
category="mn",
description="MYANMAR VOWEL SIGN VOCALIC LL",
direction="nsm",
- indic="d",
- indicmark="b",
linebreak="sa",
unicodeslot=0x1059,
},
@@ -32509,7 +32314,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER MON NGA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x105A,
},
@@ -32517,7 +32321,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER MON JHA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x105B,
},
@@ -32525,7 +32328,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER MON BBA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x105C,
},
@@ -32533,7 +32335,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER MON BBE",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x105D,
},
@@ -32541,8 +32342,6 @@ characters.data={
category="mn",
description="MYANMAR CONSONANT SIGN MON MEDIAL NA",
direction="nsm",
- indic="c",
- indicmark="b",
linebreak="sa",
unicodeslot=0x105E,
},
@@ -32550,8 +32349,6 @@ characters.data={
category="mn",
description="MYANMAR CONSONANT SIGN MON MEDIAL MA",
direction="nsm",
- indic="c",
- indicmark="b",
linebreak="sa",
unicodeslot=0x105F,
},
@@ -32559,8 +32356,6 @@ characters.data={
category="mn",
description="MYANMAR CONSONANT SIGN MON MEDIAL LA",
direction="nsm",
- indic="c",
- indicmark="b",
linebreak="sa",
unicodeslot=0x1060,
},
@@ -32568,7 +32363,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER SGAW KAREN SHA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x1061,
},
@@ -32576,8 +32370,6 @@ characters.data={
category="mc",
description="MYANMAR VOWEL SIGN SGAW KAREN EU",
direction="l",
- indic="d",
- indicmark="r",
linebreak="sa",
unicodeslot=0x1062,
},
@@ -32585,8 +32377,6 @@ characters.data={
category="mc",
description="MYANMAR TONE MARK SGAW KAREN HATHI",
direction="l",
- indic="s",
- indicmark="r",
linebreak="sa",
unicodeslot=0x1063,
},
@@ -32594,8 +32384,6 @@ characters.data={
category="mc",
description="MYANMAR TONE MARK SGAW KAREN KE PHO",
direction="l",
- indic="s",
- indicmark="r",
linebreak="sa",
unicodeslot=0x1064,
},
@@ -32603,7 +32391,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER WESTERN PWO KAREN THA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x1065,
},
@@ -32611,7 +32398,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER WESTERN PWO KAREN PWA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x1066,
},
@@ -32619,8 +32405,6 @@ characters.data={
category="mc",
description="MYANMAR VOWEL SIGN WESTERN PWO KAREN EU",
direction="l",
- indic="d",
- indicmark="r",
linebreak="sa",
unicodeslot=0x1067,
},
@@ -32628,8 +32412,6 @@ characters.data={
category="mc",
description="MYANMAR VOWEL SIGN WESTERN PWO KAREN UE",
direction="l",
- indic="d",
- indicmark="r",
linebreak="sa",
unicodeslot=0x1068,
},
@@ -32637,8 +32419,6 @@ characters.data={
category="mc",
description="MYANMAR SIGN WESTERN PWO KAREN TONE-1",
direction="l",
- indic="s",
- indicmark="r",
linebreak="sa",
unicodeslot=0x1069,
},
@@ -32646,8 +32426,6 @@ characters.data={
category="mc",
description="MYANMAR SIGN WESTERN PWO KAREN TONE-2",
direction="l",
- indic="s",
- indicmark="r",
linebreak="sa",
unicodeslot=0x106A,
},
@@ -32655,8 +32433,6 @@ characters.data={
category="mc",
description="MYANMAR SIGN WESTERN PWO KAREN TONE-3",
direction="l",
- indic="s",
- indicmark="r",
linebreak="sa",
unicodeslot=0x106B,
},
@@ -32664,8 +32440,6 @@ characters.data={
category="mc",
description="MYANMAR SIGN WESTERN PWO KAREN TONE-4",
direction="l",
- indic="s",
- indicmark="r",
linebreak="sa",
unicodeslot=0x106C,
},
@@ -32673,8 +32447,6 @@ characters.data={
category="mc",
description="MYANMAR SIGN WESTERN PWO KAREN TONE-5",
direction="l",
- indic="s",
- indicmark="r",
linebreak="sa",
unicodeslot=0x106D,
},
@@ -32682,7 +32454,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER EASTERN PWO KAREN NNA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x106E,
},
@@ -32690,7 +32461,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER EASTERN PWO KAREN YWA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x106F,
},
@@ -32698,7 +32468,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER EASTERN PWO KAREN GHWA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x1070,
},
@@ -32706,8 +32475,6 @@ characters.data={
category="mn",
description="MYANMAR VOWEL SIGN GEBA KAREN I",
direction="nsm",
- indic="d",
- indicmark="t",
linebreak="sa",
unicodeslot=0x1071,
},
@@ -32715,8 +32482,6 @@ characters.data={
category="mn",
description="MYANMAR VOWEL SIGN KAYAH OE",
direction="nsm",
- indic="d",
- indicmark="t",
linebreak="sa",
unicodeslot=0x1072,
},
@@ -32724,8 +32489,6 @@ characters.data={
category="mn",
description="MYANMAR VOWEL SIGN KAYAH U",
direction="nsm",
- indic="d",
- indicmark="t",
linebreak="sa",
unicodeslot=0x1073,
},
@@ -32733,8 +32496,6 @@ characters.data={
category="mn",
description="MYANMAR VOWEL SIGN KAYAH EE",
direction="nsm",
- indic="d",
- indicmark="t",
linebreak="sa",
unicodeslot=0x1074,
},
@@ -32742,7 +32503,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER SHAN KA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x1075,
variants={
@@ -32753,7 +32513,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER SHAN KHA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x1076,
},
@@ -32761,7 +32520,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER SHAN GA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x1077,
},
@@ -32769,7 +32527,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER SHAN CA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x1078,
variants={
@@ -32780,7 +32537,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER SHAN ZA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x1079,
},
@@ -32788,7 +32544,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER SHAN NYA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x107A,
variants={
@@ -32799,7 +32554,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER SHAN DA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x107B,
},
@@ -32807,7 +32561,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER SHAN NA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x107C,
},
@@ -32815,7 +32568,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER SHAN PHA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x107D,
},
@@ -32823,7 +32575,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER SHAN FA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x107E,
},
@@ -32831,7 +32582,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER SHAN BA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x107F,
},
@@ -32839,7 +32589,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER SHAN THA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x1080,
variants={
@@ -32850,7 +32599,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER SHAN HA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x1081,
},
@@ -32858,8 +32606,6 @@ characters.data={
category="mn",
description="MYANMAR CONSONANT SIGN SHAN MEDIAL WA",
direction="nsm",
- indic="c",
- indicmark="b",
linebreak="sa",
unicodeslot=0x1082,
},
@@ -32867,8 +32613,6 @@ characters.data={
category="mc",
description="MYANMAR VOWEL SIGN SHAN AA",
direction="l",
- indic="d",
- indicmark="r",
linebreak="sa",
unicodeslot=0x1083,
},
@@ -32876,8 +32620,6 @@ characters.data={
category="mc",
description="MYANMAR VOWEL SIGN SHAN E",
direction="l",
- indic="d",
- indicmark="l",
linebreak="sa",
unicodeslot=0x1084,
},
@@ -32885,8 +32627,6 @@ characters.data={
category="mn",
description="MYANMAR VOWEL SIGN SHAN E ABOVE",
direction="nsm",
- indic="d",
- indicmark="t",
linebreak="sa",
unicodeslot=0x1085,
},
@@ -32894,8 +32634,6 @@ characters.data={
category="mn",
description="MYANMAR VOWEL SIGN SHAN FINAL Y",
direction="nsm",
- indic="d",
- indicmark="t",
linebreak="sa",
unicodeslot=0x1086,
},
@@ -32903,8 +32641,6 @@ characters.data={
category="mc",
description="MYANMAR SIGN SHAN TONE-2",
direction="l",
- indic="s",
- indicmark="r",
linebreak="sa",
unicodeslot=0x1087,
},
@@ -32912,8 +32648,6 @@ characters.data={
category="mc",
description="MYANMAR SIGN SHAN TONE-3",
direction="l",
- indic="s",
- indicmark="r",
linebreak="sa",
unicodeslot=0x1088,
},
@@ -32921,8 +32655,6 @@ characters.data={
category="mc",
description="MYANMAR SIGN SHAN TONE-5",
direction="l",
- indic="s",
- indicmark="r",
linebreak="sa",
unicodeslot=0x1089,
},
@@ -32930,8 +32662,6 @@ characters.data={
category="mc",
description="MYANMAR SIGN SHAN TONE-6",
direction="l",
- indic="s",
- indicmark="r",
linebreak="sa",
unicodeslot=0x108A,
},
@@ -32939,8 +32669,6 @@ characters.data={
category="mc",
description="MYANMAR SIGN SHAN COUNCIL TONE-2",
direction="l",
- indic="s",
- indicmark="r",
linebreak="sa",
unicodeslot=0x108B,
},
@@ -32948,8 +32676,6 @@ characters.data={
category="mc",
description="MYANMAR SIGN SHAN COUNCIL TONE-3",
direction="l",
- indic="s",
- indicmark="r",
linebreak="sa",
unicodeslot=0x108C,
},
@@ -32958,8 +32684,6 @@ characters.data={
combining=0xDC,
description="MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE",
direction="nsm",
- indic="s",
- indicmark="b",
linebreak="sa",
unicodeslot=0x108D,
},
@@ -32967,7 +32691,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER RUMAI PALAUNG FA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0x108E,
},
@@ -32975,8 +32698,6 @@ characters.data={
category="mc",
description="MYANMAR SIGN RUMAI PALAUNG TONE-5",
direction="l",
- indic="s",
- indicmark="r",
linebreak="sa",
unicodeslot=0x108F,
},
@@ -32984,7 +32705,6 @@ characters.data={
category="nd",
description="MYANMAR SHAN DIGIT ZERO",
direction="l",
- indic="o",
linebreak="nu",
unicodeslot=0x1090,
},
@@ -32992,7 +32712,6 @@ characters.data={
category="nd",
description="MYANMAR SHAN DIGIT ONE",
direction="l",
- indic="o",
linebreak="nu",
unicodeslot=0x1091,
},
@@ -33000,7 +32719,6 @@ characters.data={
category="nd",
description="MYANMAR SHAN DIGIT TWO",
direction="l",
- indic="o",
linebreak="nu",
unicodeslot=0x1092,
},
@@ -33008,7 +32726,6 @@ characters.data={
category="nd",
description="MYANMAR SHAN DIGIT THREE",
direction="l",
- indic="o",
linebreak="nu",
unicodeslot=0x1093,
},
@@ -33016,7 +32733,6 @@ characters.data={
category="nd",
description="MYANMAR SHAN DIGIT FOUR",
direction="l",
- indic="o",
linebreak="nu",
unicodeslot=0x1094,
},
@@ -33024,7 +32740,6 @@ characters.data={
category="nd",
description="MYANMAR SHAN DIGIT FIVE",
direction="l",
- indic="o",
linebreak="nu",
unicodeslot=0x1095,
},
@@ -33032,7 +32747,6 @@ characters.data={
category="nd",
description="MYANMAR SHAN DIGIT SIX",
direction="l",
- indic="o",
linebreak="nu",
unicodeslot=0x1096,
},
@@ -33040,7 +32754,6 @@ characters.data={
category="nd",
description="MYANMAR SHAN DIGIT SEVEN",
direction="l",
- indic="o",
linebreak="nu",
unicodeslot=0x1097,
},
@@ -33048,7 +32761,6 @@ characters.data={
category="nd",
description="MYANMAR SHAN DIGIT EIGHT",
direction="l",
- indic="o",
linebreak="nu",
unicodeslot=0x1098,
},
@@ -33056,7 +32768,6 @@ characters.data={
category="nd",
description="MYANMAR SHAN DIGIT NINE",
direction="l",
- indic="o",
linebreak="nu",
unicodeslot=0x1099,
},
@@ -33064,8 +32775,6 @@ characters.data={
category="mc",
description="MYANMAR SIGN KHAMTI TONE-1",
direction="l",
- indic="s",
- indicmark="r",
linebreak="sa",
unicodeslot=0x109A,
},
@@ -33073,8 +32782,6 @@ characters.data={
category="mc",
description="MYANMAR SIGN KHAMTI TONE-3",
direction="l",
- indic="s",
- indicmark="r",
linebreak="sa",
unicodeslot=0x109B,
},
@@ -33082,8 +32789,6 @@ characters.data={
category="mc",
description="MYANMAR VOWEL SIGN AITON A",
direction="l",
- indic="d",
- indicmark="r",
linebreak="sa",
unicodeslot=0x109C,
},
@@ -33091,8 +32796,6 @@ characters.data={
category="mn",
description="MYANMAR VOWEL SIGN AITON AI",
direction="nsm",
- indic="d",
- indicmark="t",
linebreak="sa",
unicodeslot=0x109D,
},
@@ -33100,7 +32803,6 @@ characters.data={
category="so",
description="MYANMAR SYMBOL SHAN ONE",
direction="l",
- indic="o",
linebreak="sa",
unicodeslot=0x109E,
},
@@ -33108,7 +32810,6 @@ characters.data={
category="so",
description="MYANMAR SYMBOL SHAN EXCLAMATION",
direction="l",
- indic="o",
linebreak="sa",
unicodeslot=0x109F,
},
@@ -46676,14 +46377,6 @@ characters.data={
linebreak="al",
unicodeslot=0x1877,
},
- [0x1878]={
- arabic="d",
- category="lo",
- description="MONGOLIAN LETTER CHA WITH TWO DOTS",
- direction="l",
- linebreak="al",
- unicodeslot=0x1878,
- },
[0x1880]={
arabic="u",
category="lo",
@@ -52926,328 +52619,6 @@ characters.data={
linebreak="al",
unicodeslot=0x1C88,
},
- [0x1C90]={
- category="lu",
- description="GEORGIAN MTAVRULI CAPITAL LETTER AN",
- direction="l",
- linebreak="al",
- unicodeslot=0x1C90,
- },
- [0x1C91]={
- category="lu",
- description="GEORGIAN MTAVRULI CAPITAL LETTER BAN",
- direction="l",
- linebreak="al",
- unicodeslot=0x1C91,
- },
- [0x1C92]={
- category="lu",
- description="GEORGIAN MTAVRULI CAPITAL LETTER GAN",
- direction="l",
- linebreak="al",
- unicodeslot=0x1C92,
- },
- [0x1C93]={
- category="lu",
- description="GEORGIAN MTAVRULI CAPITAL LETTER DON",
- direction="l",
- linebreak="al",
- unicodeslot=0x1C93,
- },
- [0x1C94]={
- category="lu",
- description="GEORGIAN MTAVRULI CAPITAL LETTER EN",
- direction="l",
- linebreak="al",
- unicodeslot=0x1C94,
- },
- [0x1C95]={
- category="lu",
- description="GEORGIAN MTAVRULI CAPITAL LETTER VIN",
- direction="l",
- linebreak="al",
- unicodeslot=0x1C95,
- },
- [0x1C96]={
- category="lu",
- description="GEORGIAN MTAVRULI CAPITAL LETTER ZEN",
- direction="l",
- linebreak="al",
- unicodeslot=0x1C96,
- },
- [0x1C97]={
- category="lu",
- description="GEORGIAN MTAVRULI CAPITAL LETTER TAN",
- direction="l",
- linebreak="al",
- unicodeslot=0x1C97,
- },
- [0x1C98]={
- category="lu",
- description="GEORGIAN MTAVRULI CAPITAL LETTER IN",
- direction="l",
- linebreak="al",
- unicodeslot=0x1C98,
- },
- [0x1C99]={
- category="lu",
- description="GEORGIAN MTAVRULI CAPITAL LETTER KAN",
- direction="l",
- linebreak="al",
- unicodeslot=0x1C99,
- },
- [0x1C9A]={
- category="lu",
- description="GEORGIAN MTAVRULI CAPITAL LETTER LAS",
- direction="l",
- linebreak="al",
- unicodeslot=0x1C9A,
- },
- [0x1C9B]={
- category="lu",
- description="GEORGIAN MTAVRULI CAPITAL LETTER MAN",
- direction="l",
- linebreak="al",
- unicodeslot=0x1C9B,
- },
- [0x1C9C]={
- category="lu",
- description="GEORGIAN MTAVRULI CAPITAL LETTER NAR",
- direction="l",
- linebreak="al",
- unicodeslot=0x1C9C,
- },
- [0x1C9D]={
- category="lu",
- description="GEORGIAN MTAVRULI CAPITAL LETTER ON",
- direction="l",
- linebreak="al",
- unicodeslot=0x1C9D,
- },
- [0x1C9E]={
- category="lu",
- description="GEORGIAN MTAVRULI CAPITAL LETTER PAR",
- direction="l",
- linebreak="al",
- unicodeslot=0x1C9E,
- },
- [0x1C9F]={
- category="lu",
- description="GEORGIAN MTAVRULI CAPITAL LETTER ZHAR",
- direction="l",
- linebreak="al",
- unicodeslot=0x1C9F,
- },
- [0x1CA0]={
- category="lu",
- description="GEORGIAN MTAVRULI CAPITAL LETTER RAE",
- direction="l",
- linebreak="al",
- unicodeslot=0x1CA0,
- },
- [0x1CA1]={
- category="lu",
- description="GEORGIAN MTAVRULI CAPITAL LETTER SAN",
- direction="l",
- linebreak="al",
- unicodeslot=0x1CA1,
- },
- [0x1CA2]={
- category="lu",
- description="GEORGIAN MTAVRULI CAPITAL LETTER TAR",
- direction="l",
- linebreak="al",
- unicodeslot=0x1CA2,
- },
- [0x1CA3]={
- category="lu",
- description="GEORGIAN MTAVRULI CAPITAL LETTER UN",
- direction="l",
- linebreak="al",
- unicodeslot=0x1CA3,
- },
- [0x1CA4]={
- category="lu",
- description="GEORGIAN MTAVRULI CAPITAL LETTER PHAR",
- direction="l",
- linebreak="al",
- unicodeslot=0x1CA4,
- },
- [0x1CA5]={
- category="lu",
- description="GEORGIAN MTAVRULI CAPITAL LETTER KHAR",
- direction="l",
- linebreak="al",
- unicodeslot=0x1CA5,
- },
- [0x1CA6]={
- category="lu",
- description="GEORGIAN MTAVRULI CAPITAL LETTER GHAN",
- direction="l",
- linebreak="al",
- unicodeslot=0x1CA6,
- },
- [0x1CA7]={
- category="lu",
- description="GEORGIAN MTAVRULI CAPITAL LETTER QAR",
- direction="l",
- linebreak="al",
- unicodeslot=0x1CA7,
- },
- [0x1CA8]={
- category="lu",
- description="GEORGIAN MTAVRULI CAPITAL LETTER SHIN",
- direction="l",
- linebreak="al",
- unicodeslot=0x1CA8,
- },
- [0x1CA9]={
- category="lu",
- description="GEORGIAN MTAVRULI CAPITAL LETTER CHIN",
- direction="l",
- linebreak="al",
- unicodeslot=0x1CA9,
- },
- [0x1CAA]={
- category="lu",
- description="GEORGIAN MTAVRULI CAPITAL LETTER CAN",
- direction="l",
- linebreak="al",
- unicodeslot=0x1CAA,
- },
- [0x1CAB]={
- category="lu",
- description="GEORGIAN MTAVRULI CAPITAL LETTER JIL",
- direction="l",
- linebreak="al",
- unicodeslot=0x1CAB,
- },
- [0x1CAC]={
- category="lu",
- description="GEORGIAN MTAVRULI CAPITAL LETTER CIL",
- direction="l",
- linebreak="al",
- unicodeslot=0x1CAC,
- },
- [0x1CAD]={
- category="lu",
- description="GEORGIAN MTAVRULI CAPITAL LETTER CHAR",
- direction="l",
- linebreak="al",
- unicodeslot=0x1CAD,
- },
- [0x1CAE]={
- category="lu",
- description="GEORGIAN MTAVRULI CAPITAL LETTER XAN",
- direction="l",
- linebreak="al",
- unicodeslot=0x1CAE,
- },
- [0x1CAF]={
- category="lu",
- description="GEORGIAN MTAVRULI CAPITAL LETTER JHAN",
- direction="l",
- linebreak="al",
- unicodeslot=0x1CAF,
- },
- [0x1CB0]={
- category="lu",
- description="GEORGIAN MTAVRULI CAPITAL LETTER HAE",
- direction="l",
- linebreak="al",
- unicodeslot=0x1CB0,
- },
- [0x1CB1]={
- category="lu",
- description="GEORGIAN MTAVRULI CAPITAL LETTER HE",
- direction="l",
- linebreak="al",
- unicodeslot=0x1CB1,
- },
- [0x1CB2]={
- category="lu",
- description="GEORGIAN MTAVRULI CAPITAL LETTER HIE",
- direction="l",
- linebreak="al",
- unicodeslot=0x1CB2,
- },
- [0x1CB3]={
- category="lu",
- description="GEORGIAN MTAVRULI CAPITAL LETTER WE",
- direction="l",
- linebreak="al",
- unicodeslot=0x1CB3,
- },
- [0x1CB4]={
- category="lu",
- description="GEORGIAN MTAVRULI CAPITAL LETTER HAR",
- direction="l",
- linebreak="al",
- unicodeslot=0x1CB4,
- },
- [0x1CB5]={
- category="lu",
- description="GEORGIAN MTAVRULI CAPITAL LETTER HOE",
- direction="l",
- linebreak="al",
- unicodeslot=0x1CB5,
- },
- [0x1CB6]={
- category="lu",
- description="GEORGIAN MTAVRULI CAPITAL LETTER FI",
- direction="l",
- linebreak="al",
- unicodeslot=0x1CB6,
- },
- [0x1CB7]={
- category="lu",
- description="GEORGIAN MTAVRULI CAPITAL LETTER YN",
- direction="l",
- linebreak="al",
- unicodeslot=0x1CB7,
- },
- [0x1CB8]={
- category="lu",
- description="GEORGIAN MTAVRULI CAPITAL LETTER ELIFI",
- direction="l",
- linebreak="al",
- unicodeslot=0x1CB8,
- },
- [0x1CB9]={
- category="lu",
- description="GEORGIAN MTAVRULI CAPITAL LETTER TURNED GAN",
- direction="l",
- linebreak="al",
- unicodeslot=0x1CB9,
- },
- [0x1CBA]={
- category="lu",
- description="GEORGIAN MTAVRULI CAPITAL LETTER AIN",
- direction="l",
- linebreak="al",
- unicodeslot=0x1CBA,
- },
- [0x1CBD]={
- category="lu",
- description="GEORGIAN MTAVRULI CAPITAL LETTER AEN",
- direction="l",
- linebreak="al",
- unicodeslot=0x1CBD,
- },
- [0x1CBE]={
- category="lu",
- description="GEORGIAN MTAVRULI CAPITAL LETTER HARD SIGN",
- direction="l",
- linebreak="al",
- unicodeslot=0x1CBE,
- },
- [0x1CBF]={
- category="lu",
- description="GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN",
- direction="l",
- linebreak="al",
- unicodeslot=0x1CBF,
- },
[0x1CC0]={
category="po",
description="SUNDANESE PUNCTUATION BINDU SURYA",
@@ -66000,7 +65371,6 @@ characters.data={
linebreak="ai",
mathclass="ordinary",
mathname="rightangle",
- mirror=0x2BFE,
unicodeslot=0x221F,
},
[0x2220]={
@@ -66012,7 +65382,6 @@ characters.data={
linebreak="ai",
mathclass="ordinary",
mathname="angle",
- mirror=0x29A3,
unicodeslot=0x2220,
},
[0x2221]={
@@ -66022,7 +65391,6 @@ characters.data={
linebreak="al",
mathclass="ordinary",
mathname="measuredangle",
- mirror=0x299B,
unicodeslot=0x2221,
},
[0x2222]={
@@ -66032,7 +65400,6 @@ characters.data={
linebreak="al",
mathclass="ordinary",
mathname="sphericalangle",
- mirror=0x29A0,
synonyms={ "angle arc" },
unicodeslot=0x2222,
},
@@ -66063,7 +65430,6 @@ characters.data={
name="nmid",
},
},
- mirror=0x2AEE,
specials={ "char", 0x2223, 0x338 },
unicodeslot=0x2224,
},
@@ -66468,7 +65834,6 @@ characters.data={
name="cong",
},
},
- mirror=0x224C,
unicodeslot=0x2245,
},
[0x2246]={
@@ -66544,7 +65909,6 @@ characters.data={
direction="on",
linebreak="ai",
mathclass="relation",
- mirror=0x2245,
unicodeslot=0x224C,
},
[0x224D]={
@@ -67746,7 +67110,6 @@ characters.data={
linebreak="al",
mathclass="relation",
mathname="multimap",
- mirror=0x27DC,
unicodeslot=0x22B8,
},
[0x22B9]={
@@ -74087,8 +73450,8 @@ characters.data={
},
[0x25CC]={
adobename="dottedcircle",
- category="so",
contextname="dottedcircle",
+ category="so",
description="DOTTED CIRCLE",
direction="on",
linebreak="al",
@@ -78196,7 +77559,6 @@ characters.data={
description="LEFT MULTIMAP",
direction="on",
linebreak="al",
- mirror=0x22B8,
unicodeslot=0x27DC,
},
[0x27DD]={
@@ -81582,7 +80944,6 @@ characters.data={
description="MEASURED ANGLE OPENING LEFT",
direction="on",
linebreak="al",
- mirror=0x2221,
unicodeslot=0x299B,
},
[0x299C]={
@@ -81618,7 +80979,6 @@ characters.data={
description="SPHERICAL ANGLE OPENING LEFT",
direction="on",
linebreak="al",
- mirror=0x2222,
unicodeslot=0x29A0,
},
[0x29A1]={
@@ -81640,7 +81000,6 @@ characters.data={
description="REVERSED ANGLE",
direction="on",
linebreak="al",
- mirror=0x2220,
unicodeslot=0x29A3,
},
[0x29A4]={
@@ -81648,7 +81007,6 @@ characters.data={
description="ANGLE WITH UNDERBAR",
direction="on",
linebreak="al",
- mirror=0x29A5,
unicodeslot=0x29A4,
},
[0x29A5]={
@@ -81656,7 +81014,6 @@ characters.data={
description="REVERSED ANGLE WITH UNDERBAR",
direction="on",
linebreak="al",
- mirror=0x29A4,
unicodeslot=0x29A5,
},
[0x29A6]={
@@ -81678,7 +81035,6 @@ characters.data={
description="MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT",
direction="on",
linebreak="al",
- mirror=0x29A9,
unicodeslot=0x29A8,
},
[0x29A9]={
@@ -81686,7 +81042,6 @@ characters.data={
description="MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT",
direction="on",
linebreak="al",
- mirror=0x29A8,
unicodeslot=0x29A9,
},
[0x29AA]={
@@ -81694,7 +81049,6 @@ characters.data={
description="MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT",
direction="on",
linebreak="al",
- mirror=0x29AB,
unicodeslot=0x29AA,
},
[0x29AB]={
@@ -81702,7 +81056,6 @@ characters.data={
description="MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT",
direction="on",
linebreak="al",
- mirror=0x29AA,
unicodeslot=0x29AB,
},
[0x29AC]={
@@ -81710,7 +81063,6 @@ characters.data={
description="MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP",
direction="on",
linebreak="al",
- mirror=0x29AD,
unicodeslot=0x29AC,
},
[0x29AD]={
@@ -81718,7 +81070,6 @@ characters.data={
description="MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP",
direction="on",
linebreak="al",
- mirror=0x29AC,
unicodeslot=0x29AD,
},
[0x29AE]={
@@ -81726,7 +81077,6 @@ characters.data={
description="MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN",
direction="on",
linebreak="al",
- mirror=0x29AF,
unicodeslot=0x29AE,
},
[0x29AF]={
@@ -81734,7 +81084,6 @@ characters.data={
description="MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN",
direction="on",
linebreak="al",
- mirror=0x29AE,
unicodeslot=0x29AF,
},
[0x29B0]={
@@ -82153,7 +81502,6 @@ characters.data={
description="DOWN-POINTING TRIANGLE WITH LEFT HALF BLACK",
direction="on",
linebreak="al",
- mirror=0x29E9,
unicodeslot=0x29E8,
},
[0x29E9]={
@@ -82161,7 +81509,6 @@ characters.data={
description="DOWN-POINTING TRIANGLE WITH RIGHT HALF BLACK",
direction="on",
linebreak="al",
- mirror=0x29E8,
unicodeslot=0x29E9,
},
[0x29EA]={
@@ -83261,7 +82608,6 @@ characters.data={
description="LESS-THAN WITH QUESTION MARK ABOVE",
direction="on",
linebreak="al",
- mirror=0x2A7C,
unicodeslot=0x2A7B,
},
[0x2A7C]={
@@ -83269,7 +82615,6 @@ characters.data={
description="GREATER-THAN WITH QUESTION MARK ABOVE",
direction="on",
linebreak="al",
- mirror=0x2A7B,
unicodeslot=0x2A7C,
},
[0x2A7D]={
@@ -83347,7 +82692,6 @@ characters.data={
linebreak="al",
mathclass="relation",
mathname="lessapprox",
- mirror=0x2A86,
unicodeslot=0x2A85,
},
[0x2A86]={
@@ -83357,7 +82701,6 @@ characters.data={
linebreak="al",
mathclass="relation",
mathname="gtrapprox",
- mirror=0x2A85,
unicodeslot=0x2A86,
},
[0x2A87]={
@@ -83367,7 +82710,6 @@ characters.data={
linebreak="al",
mathclass="relation",
mathname="lneq",
- mirror=0x2A88,
unicodeslot=0x2A87,
},
[0x2A88]={
@@ -83377,7 +82719,6 @@ characters.data={
linebreak="al",
mathclass="relation",
mathname="rneq",
- mirror=0x2A87,
unicodeslot=0x2A88,
},
[0x2A89]={
@@ -83387,7 +82728,6 @@ characters.data={
linebreak="al",
mathclass="relation",
mathname="lnapprox",
- mirror=0x2A8A,
unicodeslot=0x2A89,
},
[0x2A8A]={
@@ -83397,7 +82737,6 @@ characters.data={
linebreak="al",
mathclass="relation",
mathname="gnapprox",
- mirror=0x2A89,
unicodeslot=0x2A8A,
},
[0x2A8B]={
@@ -83427,7 +82766,6 @@ characters.data={
description="LESS-THAN ABOVE SIMILAR OR EQUAL",
direction="on",
linebreak="al",
- mirror=0x2A8E,
unicodeslot=0x2A8D,
},
[0x2A8E]={
@@ -83435,7 +82773,6 @@ characters.data={
description="GREATER-THAN ABOVE SIMILAR OR EQUAL",
direction="on",
linebreak="al",
- mirror=0x2A8D,
unicodeslot=0x2A8E,
},
[0x2A8F]={
@@ -83443,7 +82780,6 @@ characters.data={
description="LESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN",
direction="on",
linebreak="al",
- mirror=0x2A90,
unicodeslot=0x2A8F,
},
[0x2A90]={
@@ -83451,7 +82787,6 @@ characters.data={
description="GREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN",
direction="on",
linebreak="al",
- mirror=0x2A8F,
unicodeslot=0x2A90,
},
[0x2A91]={
@@ -83559,7 +82894,6 @@ characters.data={
description="SIMILAR OR LESS-THAN",
direction="on",
linebreak="al",
- mirror=0x2A9E,
unicodeslot=0x2A9D,
variants={
[0xFE00]="with similar following the slant of the upper leg",
@@ -83570,7 +82904,6 @@ characters.data={
description="SIMILAR OR GREATER-THAN",
direction="on",
linebreak="al",
- mirror=0x2A9D,
unicodeslot=0x2A9E,
variants={
[0xFE00]="with similar following the slant of the upper leg",
@@ -83581,7 +82914,6 @@ characters.data={
description="SIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN",
direction="on",
linebreak="al",
- mirror=0x2AA0,
unicodeslot=0x2A9F,
},
[0x2AA0]={
@@ -83589,7 +82921,6 @@ characters.data={
description="SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN",
direction="on",
linebreak="al",
- mirror=0x2A9F,
unicodeslot=0x2AA0,
},
[0x2AA1]={
@@ -83734,7 +83065,6 @@ characters.data={
linebreak="al",
mathclass="relation",
mathname="precneq",
- mirror=0x2AB2,
unicodeslot=0x2AB1,
},
[0x2AB2]={
@@ -83744,7 +83074,6 @@ characters.data={
linebreak="al",
mathclass="relation",
mathname="succneq",
- mirror=0x2AB1,
unicodeslot=0x2AB2,
},
[0x2AB3]={
@@ -83774,7 +83103,6 @@ characters.data={
linebreak="al",
mathclass="relation",
mathname="precneqq",
- mirror=0x2AB6,
unicodeslot=0x2AB5,
},
[0x2AB6]={
@@ -83784,7 +83112,6 @@ characters.data={
linebreak="al",
mathclass="relation",
mathname="succneqq",
- mirror=0x2AB5,
unicodeslot=0x2AB6,
},
[0x2AB7]={
@@ -83794,7 +83121,6 @@ characters.data={
linebreak="al",
mathclass="relation",
mathname="precapprox",
- mirror=0x2AB8,
unicodeslot=0x2AB7,
},
[0x2AB8]={
@@ -83804,7 +83130,6 @@ characters.data={
linebreak="al",
mathclass="relation",
mathname="succapprox",
- mirror=0x2AB7,
unicodeslot=0x2AB8,
},
[0x2AB9]={
@@ -83814,7 +83139,6 @@ characters.data={
linebreak="al",
mathclass="relation",
mathname="precnapprox",
- mirror=0x2ABA,
unicodeslot=0x2AB9,
},
[0x2ABA]={
@@ -83824,7 +83148,6 @@ characters.data={
linebreak="al",
mathclass="relation",
mathname="succnapprox",
- mirror=0x2AB9,
unicodeslot=0x2ABA,
},
[0x2ABB]={
@@ -83932,7 +83255,6 @@ characters.data={
description="SUBSET OF ABOVE TILDE OPERATOR",
direction="on",
linebreak="al",
- mirror=0x2AC8,
unicodeslot=0x2AC7,
},
[0x2AC8]={
@@ -83940,7 +83262,6 @@ characters.data={
description="SUPERSET OF ABOVE TILDE OPERATOR",
direction="on",
linebreak="al",
- mirror=0x2AC7,
unicodeslot=0x2AC8,
},
[0x2AC9]={
@@ -83948,7 +83269,6 @@ characters.data={
description="SUBSET OF ABOVE ALMOST EQUAL TO",
direction="on",
linebreak="al",
- mirror=0x2ACA,
unicodeslot=0x2AC9,
},
[0x2ACA]={
@@ -83956,7 +83276,6 @@ characters.data={
description="SUPERSET OF ABOVE ALMOST EQUAL TO",
direction="on",
linebreak="al",
- mirror=0x2AC9,
unicodeslot=0x2ACA,
},
[0x2ACB]={
@@ -83966,7 +83285,6 @@ characters.data={
linebreak="al",
mathclass="relation",
mathname="subsetneqq",
- mirror=0x2ACC,
unicodeslot=0x2ACB,
variants={
[0xFE00]="with stroke through bottom members",
@@ -83979,7 +83297,6 @@ characters.data={
linebreak="al",
mathclass="relation",
mathname="supsetneqq",
- mirror=0x2ACB,
unicodeslot=0x2ACC,
variants={
[0xFE00]="with stroke through bottom members",
@@ -84242,7 +83559,6 @@ characters.data={
description="DOES NOT DIVIDE WITH REVERSED NEGATION SLASH",
direction="on",
linebreak="al",
- mirror=0x2224,
unicodeslot=0x2AEE,
},
[0x2AEF]={
@@ -85682,27 +84998,6 @@ characters.data={
synonyms={ "escape" },
unicodeslot=0x2BB9,
},
- [0x2BBA]={
- category="so",
- description="OVERLAPPING WHITE SQUARES",
- direction="on",
- linebreak="al",
- unicodeslot=0x2BBA,
- },
- [0x2BBB]={
- category="so",
- description="OVERLAPPING WHITE AND BLACK SQUARES",
- direction="on",
- linebreak="al",
- unicodeslot=0x2BBB,
- },
- [0x2BBC]={
- category="so",
- description="OVERLAPPING BLACK SQUARES",
- direction="on",
- linebreak="al",
- unicodeslot=0x2BBC,
- },
[0x2BBD]={
category="so",
description="BALLOT BOX WITH LIGHT X",
@@ -85850,181 +85145,6 @@ characters.data={
linebreak="al",
unicodeslot=0x2BD2,
},
- [0x2BD3]={
- category="so",
- description="PLUTO FORM TWO",
- direction="on",
- linebreak="al",
- unicodeslot=0x2BD3,
- },
- [0x2BD4]={
- category="so",
- description="PLUTO FORM THREE",
- direction="on",
- linebreak="al",
- unicodeslot=0x2BD4,
- },
- [0x2BD5]={
- category="so",
- description="PLUTO FORM FOUR",
- direction="on",
- linebreak="al",
- unicodeslot=0x2BD5,
- },
- [0x2BD6]={
- category="so",
- description="PLUTO FORM FIVE",
- direction="on",
- linebreak="al",
- unicodeslot=0x2BD6,
- },
- [0x2BD7]={
- category="so",
- description="TRANSPLUTO",
- direction="on",
- linebreak="al",
- unicodeslot=0x2BD7,
- },
- [0x2BD8]={
- category="so",
- description="PROSERPINA",
- direction="on",
- linebreak="al",
- unicodeslot=0x2BD8,
- },
- [0x2BD9]={
- category="so",
- description="ASTRAEA",
- direction="on",
- linebreak="al",
- unicodeslot=0x2BD9,
- },
- [0x2BDA]={
- category="so",
- description="HYGIEA",
- direction="on",
- linebreak="al",
- unicodeslot=0x2BDA,
- },
- [0x2BDB]={
- category="so",
- description="PHOLUS",
- direction="on",
- linebreak="al",
- unicodeslot=0x2BDB,
- },
- [0x2BDC]={
- category="so",
- description="NESSUS",
- direction="on",
- linebreak="al",
- unicodeslot=0x2BDC,
- },
- [0x2BDD]={
- category="so",
- description="WHITE MOON SELENA",
- direction="on",
- linebreak="al",
- unicodeslot=0x2BDD,
- },
- [0x2BDE]={
- category="so",
- description="BLACK DIAMOND ON CROSS",
- direction="on",
- linebreak="al",
- unicodeslot=0x2BDE,
- },
- [0x2BDF]={
- category="so",
- description="TRUE LIGHT MOON ARTA",
- direction="on",
- linebreak="al",
- unicodeslot=0x2BDF,
- },
- [0x2BE0]={
- category="so",
- description="CUPIDO",
- direction="on",
- linebreak="al",
- unicodeslot=0x2BE0,
- },
- [0x2BE1]={
- category="so",
- description="HADES",
- direction="on",
- linebreak="al",
- unicodeslot=0x2BE1,
- },
- [0x2BE2]={
- category="so",
- description="ZEUS",
- direction="on",
- linebreak="al",
- unicodeslot=0x2BE2,
- },
- [0x2BE3]={
- category="so",
- description="KRONOS",
- direction="on",
- linebreak="al",
- unicodeslot=0x2BE3,
- },
- [0x2BE4]={
- category="so",
- description="APOLLON",
- direction="on",
- linebreak="al",
- unicodeslot=0x2BE4,
- },
- [0x2BE5]={
- category="so",
- description="ADMETOS",
- direction="on",
- linebreak="al",
- unicodeslot=0x2BE5,
- },
- [0x2BE6]={
- category="so",
- description="VULCANUS",
- direction="on",
- linebreak="al",
- unicodeslot=0x2BE6,
- },
- [0x2BE7]={
- category="so",
- description="POSEIDON",
- direction="on",
- linebreak="al",
- unicodeslot=0x2BE7,
- },
- [0x2BE8]={
- category="so",
- description="LEFT HALF BLACK STAR",
- direction="on",
- linebreak="al",
- unicodeslot=0x2BE8,
- },
- [0x2BE9]={
- category="so",
- description="RIGHT HALF BLACK STAR",
- direction="on",
- linebreak="al",
- unicodeslot=0x2BE9,
- },
- [0x2BEA]={
- category="so",
- description="STAR WITH LEFT HALF BLACK",
- direction="on",
- linebreak="al",
- unicodeslot=0x2BEA,
- },
- [0x2BEB]={
- category="so",
- description="STAR WITH RIGHT HALF BLACK",
- direction="on",
- linebreak="al",
- unicodeslot=0x2BEB,
- },
[0x2BEC]={
category="so",
description="LEFTWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS",
@@ -86053,112 +85173,6 @@ characters.data={
linebreak="al",
unicodeslot=0x2BEF,
},
- [0x2BF0]={
- category="so",
- description="ERIS FORM ONE",
- direction="on",
- linebreak="al",
- unicodeslot=0x2BF0,
- },
- [0x2BF1]={
- category="so",
- description="ERIS FORM TWO",
- direction="on",
- linebreak="al",
- unicodeslot=0x2BF1,
- },
- [0x2BF2]={
- category="so",
- description="SEDNA",
- direction="on",
- linebreak="al",
- unicodeslot=0x2BF2,
- },
- [0x2BF3]={
- category="so",
- description="RUSSIAN ASTROLOGICAL SYMBOL VIGINTILE",
- direction="on",
- linebreak="al",
- unicodeslot=0x2BF3,
- },
- [0x2BF4]={
- category="so",
- description="RUSSIAN ASTROLOGICAL SYMBOL NOVILE",
- direction="on",
- linebreak="al",
- unicodeslot=0x2BF4,
- },
- [0x2BF5]={
- category="so",
- description="RUSSIAN ASTROLOGICAL SYMBOL QUINTILE",
- direction="on",
- linebreak="al",
- unicodeslot=0x2BF5,
- },
- [0x2BF6]={
- category="so",
- description="RUSSIAN ASTROLOGICAL SYMBOL BINOVILE",
- direction="on",
- linebreak="al",
- unicodeslot=0x2BF6,
- },
- [0x2BF7]={
- category="so",
- description="RUSSIAN ASTROLOGICAL SYMBOL SENTAGON",
- direction="on",
- linebreak="al",
- unicodeslot=0x2BF7,
- },
- [0x2BF8]={
- category="so",
- description="RUSSIAN ASTROLOGICAL SYMBOL TREDECILE",
- direction="on",
- linebreak="al",
- unicodeslot=0x2BF8,
- },
- [0x2BF9]={
- category="so",
- description="EQUALS SIGN WITH INFINITY BELOW",
- direction="on",
- linebreak="al",
- unicodeslot=0x2BF9,
- },
- [0x2BFA]={
- category="so",
- description="UNITED SYMBOL",
- direction="on",
- linebreak="al",
- unicodeslot=0x2BFA,
- },
- [0x2BFB]={
- category="so",
- description="SEPARATED SYMBOL",
- direction="on",
- linebreak="al",
- unicodeslot=0x2BFB,
- },
- [0x2BFC]={
- category="so",
- description="DOUBLED SYMBOL",
- direction="on",
- linebreak="al",
- unicodeslot=0x2BFC,
- },
- [0x2BFD]={
- category="so",
- description="PASSED SYMBOL",
- direction="on",
- linebreak="al",
- unicodeslot=0x2BFD,
- },
- [0x2BFE]={
- category="so",
- description="REVERSED RIGHT ANGLE",
- direction="on",
- linebreak="al",
- mirror=0x221F,
- unicodeslot=0x2BFE,
- },
[0x2C00]={
category="lu",
description="GLAGOLITIC CAPITAL LETTER AZU",
@@ -90212,41 +89226,6 @@ characters.data={
linebreak="ba",
unicodeslot=0x2E49,
},
- [0x2E4A]={
- category="po",
- description="DOTTED SOLIDUS",
- direction="on",
- linebreak="ba",
- unicodeslot=0x2E4A,
- },
- [0x2E4B]={
- category="po",
- description="TRIPLE DAGGER",
- direction="on",
- linebreak="al",
- unicodeslot=0x2E4B,
- },
- [0x2E4C]={
- category="po",
- description="MEDIEVAL COMMA",
- direction="on",
- linebreak="ba",
- unicodeslot=0x2E4C,
- },
- [0x2E4D]={
- category="po",
- description="PARAGRAPHUS MARK",
- direction="on",
- linebreak="al",
- unicodeslot=0x2E4D,
- },
- [0x2E4E]={
- category="po",
- description="PUNCTUS ELEVATUS MARK",
- direction="on",
- linebreak="ba",
- unicodeslot=0x2E4E,
- },
[0x2E80]={
category="so",
cjkwd="w",
@@ -96455,14 +95434,6 @@ characters.data={
linebreak="id",
unicodeslot=0x312E,
},
- [0x312F]={
- category="lo",
- cjkwd="w",
- description="BOPOMOFO LETTER NN",
- direction="l",
- linebreak="id",
- unicodeslot=0x312F,
- },
[0x3131]={
adobename="kiyeokkorean",
category="lo",
@@ -118203,13 +117174,6 @@ characters.data={
linebreak="al",
unicodeslot=0xA7AE,
},
- [0xA7AF]={
- category="ll",
- description="LATIN LETTER SMALL CAPITAL Q",
- direction="l",
- linebreak="al",
- unicodeslot=0xA7AF,
- },
[0xA7B0]={
category="lu",
description="LATIN CAPITAL LETTER TURNED K",
@@ -118266,20 +117230,6 @@ characters.data={
linebreak="al",
unicodeslot=0xA7B7,
},
- [0xA7B8]={
- category="lu",
- description="LATIN CAPITAL LETTER U WITH STROKE",
- direction="l",
- linebreak="al",
- unicodeslot=0xA7B8,
- },
- [0xA7B9]={
- category="ll",
- description="LATIN SMALL LETTER U WITH STROKE",
- direction="l",
- linebreak="al",
- unicodeslot=0xA7B9,
- },
[0xA7F7]={
category="lo",
description="LATIN EPIGRAPHIC LETTER SIDEWAYS I",
@@ -120025,20 +118975,6 @@ characters.data={
linebreak="al",
unicodeslot=0xA8FD,
},
- [0xA8FE]={
- category="lo",
- description="DEVANAGARI LETTER AY",
- direction="l",
- linebreak="al",
- unicodeslot=0xA8FE,
- },
- [0xA8FF]={
- category="mn",
- description="DEVANAGARI VOWEL SIGN AY",
- direction="nsm",
- linebreak="cm",
- unicodeslot=0xA8FF,
- },
[0xA900]={
category="nd",
description="KAYAH LI DIGIT ZERO",
@@ -121513,7 +120449,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER SHAN GHA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0xA9E0,
},
@@ -121521,7 +120456,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER SHAN CHA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0xA9E1,
},
@@ -121529,7 +120463,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER SHAN JHA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0xA9E2,
},
@@ -121537,7 +120470,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER SHAN NNA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0xA9E3,
},
@@ -121545,7 +120477,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER SHAN BHA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0xA9E4,
},
@@ -121553,8 +120484,6 @@ characters.data={
category="mn",
description="MYANMAR SIGN SHAN SAW",
direction="nsm",
- indic="d",
- indicmark="t",
linebreak="sa",
unicodeslot=0xA9E5,
},
@@ -121562,7 +120491,6 @@ characters.data={
category="lm",
description="MYANMAR MODIFIER LETTER SHAN REDUPLICATION",
direction="l",
- indic="o",
linebreak="sa",
unicodeslot=0xA9E6,
},
@@ -121570,7 +120498,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER TAI LAING NYA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0xA9E7,
},
@@ -121578,7 +120505,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER TAI LAING FA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0xA9E8,
},
@@ -121586,7 +120512,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER TAI LAING GA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0xA9E9,
},
@@ -121594,7 +120519,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER TAI LAING GHA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0xA9EA,
},
@@ -121602,7 +120526,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER TAI LAING JA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0xA9EB,
},
@@ -121610,7 +120533,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER TAI LAING JHA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0xA9EC,
},
@@ -121618,7 +120540,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER TAI LAING DDA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0xA9ED,
},
@@ -121626,7 +120547,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER TAI LAING DDHA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0xA9EE,
},
@@ -121634,7 +120554,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER TAI LAING NNA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0xA9EF,
},
@@ -121642,7 +120561,6 @@ characters.data={
category="nd",
description="MYANMAR TAI LAING DIGIT ZERO",
direction="l",
- indic="o",
linebreak="nu",
unicodeslot=0xA9F0,
},
@@ -121650,7 +120568,6 @@ characters.data={
category="nd",
description="MYANMAR TAI LAING DIGIT ONE",
direction="l",
- indic="o",
linebreak="nu",
unicodeslot=0xA9F1,
},
@@ -121658,7 +120575,6 @@ characters.data={
category="nd",
description="MYANMAR TAI LAING DIGIT TWO",
direction="l",
- indic="o",
linebreak="nu",
unicodeslot=0xA9F2,
},
@@ -121666,7 +120582,6 @@ characters.data={
category="nd",
description="MYANMAR TAI LAING DIGIT THREE",
direction="l",
- indic="o",
linebreak="nu",
unicodeslot=0xA9F3,
},
@@ -121674,7 +120589,6 @@ characters.data={
category="nd",
description="MYANMAR TAI LAING DIGIT FOUR",
direction="l",
- indic="o",
linebreak="nu",
unicodeslot=0xA9F4,
},
@@ -121682,7 +120596,6 @@ characters.data={
category="nd",
description="MYANMAR TAI LAING DIGIT FIVE",
direction="l",
- indic="o",
linebreak="nu",
unicodeslot=0xA9F5,
},
@@ -121690,7 +120603,6 @@ characters.data={
category="nd",
description="MYANMAR TAI LAING DIGIT SIX",
direction="l",
- indic="o",
linebreak="nu",
unicodeslot=0xA9F6,
},
@@ -121698,7 +120610,6 @@ characters.data={
category="nd",
description="MYANMAR TAI LAING DIGIT SEVEN",
direction="l",
- indic="o",
linebreak="nu",
unicodeslot=0xA9F7,
},
@@ -121706,7 +120617,6 @@ characters.data={
category="nd",
description="MYANMAR TAI LAING DIGIT EIGHT",
direction="l",
- indic="o",
linebreak="nu",
unicodeslot=0xA9F8,
},
@@ -121714,7 +120624,6 @@ characters.data={
category="nd",
description="MYANMAR TAI LAING DIGIT NINE",
direction="l",
- indic="o",
linebreak="nu",
unicodeslot=0xA9F9,
},
@@ -121722,7 +120631,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER TAI LAING LLA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0xA9FA,
},
@@ -121730,7 +120638,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER TAI LAING DA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0xA9FB,
},
@@ -121738,7 +120645,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER TAI LAING DHA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0xA9FC,
},
@@ -121746,7 +120652,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER TAI LAING BA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0xA9FD,
},
@@ -121754,7 +120659,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER TAI LAING BHA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0xA9FE,
},
@@ -122343,7 +121247,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER KHAMTI GA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0xAA60,
variants={
@@ -122354,7 +121257,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER KHAMTI CA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0xAA61,
variants={
@@ -122365,7 +121267,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER KHAMTI CHA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0xAA62,
variants={
@@ -122376,7 +121277,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER KHAMTI JA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0xAA63,
variants={
@@ -122387,7 +121287,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER KHAMTI JHA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0xAA64,
variants={
@@ -122398,7 +121297,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER KHAMTI NYA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0xAA65,
variants={
@@ -122409,7 +121307,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER KHAMTI TTA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0xAA66,
variants={
@@ -122420,7 +121317,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER KHAMTI TTHA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0xAA67,
},
@@ -122428,7 +121324,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER KHAMTI DDA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0xAA68,
},
@@ -122436,7 +121331,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER KHAMTI DDHA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0xAA69,
},
@@ -122444,7 +121338,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER KHAMTI DHA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0xAA6A,
},
@@ -122462,7 +121355,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER KHAMTI SA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0xAA6C,
variants={
@@ -122473,7 +121365,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER KHAMTI HA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0xAA6D,
},
@@ -122481,7 +121372,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER KHAMTI HHA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0xAA6E,
},
@@ -122489,7 +121379,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER KHAMTI FA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0xAA6F,
variants={
@@ -122500,7 +121389,6 @@ characters.data={
category="lm",
description="MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION",
direction="l",
- indic="o",
linebreak="sa",
unicodeslot=0xAA70,
},
@@ -122508,7 +121396,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER KHAMTI XA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0xAA71,
},
@@ -122516,7 +121403,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER KHAMTI ZA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0xAA72,
},
@@ -122524,7 +121410,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER KHAMTI RA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0xAA73,
},
@@ -122532,7 +121417,6 @@ characters.data={
category="lo",
description="MYANMAR LOGOGRAM KHAMTI OAY",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0xAA74,
},
@@ -122540,7 +121424,6 @@ characters.data={
category="lo",
description="MYANMAR LOGOGRAM KHAMTI QN",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0xAA75,
},
@@ -122548,7 +121431,6 @@ characters.data={
category="lo",
description="MYANMAR LOGOGRAM KHAMTI HM",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0xAA76,
},
@@ -122556,7 +121438,6 @@ characters.data={
category="so",
description="MYANMAR SYMBOL AITON EXCLAMATION",
direction="l",
- indic="o",
linebreak="sa",
unicodeslot=0xAA77,
},
@@ -122564,7 +121445,6 @@ characters.data={
category="so",
description="MYANMAR SYMBOL AITON ONE",
direction="l",
- indic="o",
linebreak="sa",
unicodeslot=0xAA78,
},
@@ -122572,7 +121452,6 @@ characters.data={
category="so",
description="MYANMAR SYMBOL AITON TWO",
direction="l",
- indic="o",
linebreak="sa",
unicodeslot=0xAA79,
},
@@ -122580,7 +121459,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER AITON RA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0xAA7A,
variants={
@@ -122591,8 +121469,6 @@ characters.data={
category="mc",
description="MYANMAR SIGN PAO KAREN TONE",
direction="l",
- indic="s",
- indicmark="r",
linebreak="sa",
unicodeslot=0xAA7B,
},
@@ -122600,8 +121476,6 @@ characters.data={
category="mn",
description="MYANMAR SIGN TAI LAING TONE-2",
direction="nsm",
- indic="s",
- indicmark="t",
linebreak="sa",
unicodeslot=0xAA7C,
},
@@ -122609,8 +121483,6 @@ characters.data={
category="mc",
description="MYANMAR SIGN TAI LAING TONE-5",
direction="l",
- indic="s",
- indicmark="r",
linebreak="sa",
unicodeslot=0xAA7D,
},
@@ -122618,7 +121490,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER SHWE PALAUNG CHA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0xAA7E,
},
@@ -122626,7 +121497,6 @@ characters.data={
category="lo",
description="MYANMAR LETTER SHWE PALAUNG SHA",
direction="l",
- indic="c",
linebreak="sa",
unicodeslot=0xAA7F,
},
@@ -137360,9 +136230,6 @@ characters.data={
linebreak="id",
specials={ "wide", 0x30 },
unicodeslot=0xFF10,
- variants={
- [0xFE00]="short diagonal stroke form",
- },
},
[0xFF11]={
adobename="onemonospace",
@@ -152115,20 +150982,6 @@ characters.data={
linebreak="al",
unicodeslot=0x10A33,
},
- [0x10A34]={
- category="lo",
- description="KHAROSHTHI LETTER TTTA",
- direction="r",
- linebreak="al",
- unicodeslot=0x10A34,
- },
- [0x10A35]={
- category="lo",
- description="KHAROSHTHI LETTER VHA",
- direction="r",
- linebreak="al",
- unicodeslot=0x10A35,
- },
[0x10A38]={
category="mn",
combining=0xE6,
@@ -152217,13 +151070,6 @@ characters.data={
linebreak="al",
unicodeslot=0x10A47,
},
- [0x10A48]={
- category="no",
- description="KHAROSHTHI FRACTION ONE HALF",
- direction="r",
- linebreak="al",
- unicodeslot=0x10A48,
- },
[0x10A50]={
category="po",
description="KHAROSHTHI PUNCTUATION DOT",
@@ -155472,396 +154318,6 @@ characters.data={
linebreak="al",
unicodeslot=0x10CFF,
},
- [0x10D00]={
- arabic="l",
- category="lo",
- description="HANIFI ROHINGYA LETTER A",
- direction="al",
- linebreak="al",
- unicodeslot=0x10D00,
- },
- [0x10D01]={
- arabic="d",
- category="lo",
- description="HANIFI ROHINGYA LETTER BA",
- direction="al",
- linebreak="al",
- unicodeslot=0x10D01,
- },
- [0x10D02]={
- arabic="d",
- category="lo",
- description="HANIFI ROHINGYA LETTER PA",
- direction="al",
- linebreak="al",
- unicodeslot=0x10D02,
- },
- [0x10D03]={
- arabic="d",
- category="lo",
- description="HANIFI ROHINGYA LETTER TA",
- direction="al",
- linebreak="al",
- unicodeslot=0x10D03,
- },
- [0x10D04]={
- arabic="d",
- category="lo",
- description="HANIFI ROHINGYA LETTER TTA",
- direction="al",
- linebreak="al",
- unicodeslot=0x10D04,
- },
- [0x10D05]={
- arabic="d",
- category="lo",
- description="HANIFI ROHINGYA LETTER JA",
- direction="al",
- linebreak="al",
- unicodeslot=0x10D05,
- },
- [0x10D06]={
- arabic="d",
- category="lo",
- description="HANIFI ROHINGYA LETTER CA",
- direction="al",
- linebreak="al",
- unicodeslot=0x10D06,
- },
- [0x10D07]={
- arabic="d",
- category="lo",
- description="HANIFI ROHINGYA LETTER HA",
- direction="al",
- linebreak="al",
- unicodeslot=0x10D07,
- },
- [0x10D08]={
- arabic="d",
- category="lo",
- description="HANIFI ROHINGYA LETTER KHA",
- direction="al",
- linebreak="al",
- unicodeslot=0x10D08,
- },
- [0x10D09]={
- arabic="d",
- category="lo",
- description="HANIFI ROHINGYA LETTER FA",
- direction="al",
- linebreak="al",
- unicodeslot=0x10D09,
- },
- [0x10D0A]={
- arabic="d",
- category="lo",
- description="HANIFI ROHINGYA LETTER DA",
- direction="al",
- linebreak="al",
- unicodeslot=0x10D0A,
- },
- [0x10D0B]={
- arabic="d",
- category="lo",
- description="HANIFI ROHINGYA LETTER DDA",
- direction="al",
- linebreak="al",
- unicodeslot=0x10D0B,
- },
- [0x10D0C]={
- arabic="d",
- category="lo",
- description="HANIFI ROHINGYA LETTER RA",
- direction="al",
- linebreak="al",
- unicodeslot=0x10D0C,
- },
- [0x10D0D]={
- arabic="d",
- category="lo",
- description="HANIFI ROHINGYA LETTER RRA",
- direction="al",
- linebreak="al",
- unicodeslot=0x10D0D,
- },
- [0x10D0E]={
- arabic="d",
- category="lo",
- description="HANIFI ROHINGYA LETTER ZA",
- direction="al",
- linebreak="al",
- unicodeslot=0x10D0E,
- },
- [0x10D0F]={
- arabic="d",
- category="lo",
- description="HANIFI ROHINGYA LETTER SA",
- direction="al",
- linebreak="al",
- unicodeslot=0x10D0F,
- },
- [0x10D10]={
- arabic="d",
- category="lo",
- description="HANIFI ROHINGYA LETTER SHA",
- direction="al",
- linebreak="al",
- unicodeslot=0x10D10,
- },
- [0x10D11]={
- arabic="d",
- category="lo",
- description="HANIFI ROHINGYA LETTER KA",
- direction="al",
- linebreak="al",
- unicodeslot=0x10D11,
- },
- [0x10D12]={
- arabic="d",
- category="lo",
- description="HANIFI ROHINGYA LETTER GA",
- direction="al",
- linebreak="al",
- unicodeslot=0x10D12,
- },
- [0x10D13]={
- arabic="d",
- category="lo",
- description="HANIFI ROHINGYA LETTER LA",
- direction="al",
- linebreak="al",
- unicodeslot=0x10D13,
- },
- [0x10D14]={
- arabic="d",
- category="lo",
- description="HANIFI ROHINGYA LETTER MA",
- direction="al",
- linebreak="al",
- unicodeslot=0x10D14,
- },
- [0x10D15]={
- arabic="d",
- category="lo",
- description="HANIFI ROHINGYA LETTER NA",
- direction="al",
- linebreak="al",
- unicodeslot=0x10D15,
- },
- [0x10D16]={
- arabic="d",
- category="lo",
- description="HANIFI ROHINGYA LETTER WA",
- direction="al",
- linebreak="al",
- unicodeslot=0x10D16,
- },
- [0x10D17]={
- arabic="d",
- category="lo",
- description="HANIFI ROHINGYA LETTER KINNA WA",
- direction="al",
- linebreak="al",
- unicodeslot=0x10D17,
- },
- [0x10D18]={
- arabic="d",
- category="lo",
- description="HANIFI ROHINGYA LETTER YA",
- direction="al",
- linebreak="al",
- unicodeslot=0x10D18,
- },
- [0x10D19]={
- arabic="d",
- category="lo",
- description="HANIFI ROHINGYA LETTER KINNA YA",
- direction="al",
- linebreak="al",
- unicodeslot=0x10D19,
- },
- [0x10D1A]={
- arabic="d",
- category="lo",
- description="HANIFI ROHINGYA LETTER NGA",
- direction="al",
- linebreak="al",
- unicodeslot=0x10D1A,
- },
- [0x10D1B]={
- arabic="d",
- category="lo",
- description="HANIFI ROHINGYA LETTER NYA",
- direction="al",
- linebreak="al",
- unicodeslot=0x10D1B,
- },
- [0x10D1C]={
- arabic="d",
- category="lo",
- description="HANIFI ROHINGYA LETTER VA",
- direction="al",
- linebreak="al",
- unicodeslot=0x10D1C,
- },
- [0x10D1D]={
- arabic="d",
- category="lo",
- description="HANIFI ROHINGYA VOWEL A",
- direction="al",
- linebreak="al",
- unicodeslot=0x10D1D,
- },
- [0x10D1E]={
- arabic="d",
- category="lo",
- description="HANIFI ROHINGYA VOWEL I",
- direction="al",
- linebreak="al",
- unicodeslot=0x10D1E,
- },
- [0x10D1F]={
- arabic="d",
- category="lo",
- description="HANIFI ROHINGYA VOWEL U",
- direction="al",
- linebreak="al",
- unicodeslot=0x10D1F,
- },
- [0x10D20]={
- arabic="d",
- category="lo",
- description="HANIFI ROHINGYA VOWEL E",
- direction="al",
- linebreak="al",
- unicodeslot=0x10D20,
- },
- [0x10D21]={
- arabic="d",
- category="lo",
- description="HANIFI ROHINGYA VOWEL O",
- direction="al",
- linebreak="al",
- unicodeslot=0x10D21,
- },
- [0x10D22]={
- arabic="r",
- category="lo",
- description="HANIFI ROHINGYA MARK SAKIN",
- direction="al",
- linebreak="al",
- unicodeslot=0x10D22,
- },
- [0x10D23]={
- arabic="d",
- category="lo",
- description="HANIFI ROHINGYA MARK NA KHONNA",
- direction="al",
- linebreak="al",
- unicodeslot=0x10D23,
- },
- [0x10D24]={
- category="mn",
- combining=0xE6,
- description="HANIFI ROHINGYA SIGN HARBAHAY",
- direction="nsm",
- linebreak="cm",
- unicodeslot=0x10D24,
- },
- [0x10D25]={
- category="mn",
- combining=0xE6,
- description="HANIFI ROHINGYA SIGN TAHALA",
- direction="nsm",
- linebreak="cm",
- unicodeslot=0x10D25,
- },
- [0x10D26]={
- category="mn",
- combining=0xE6,
- description="HANIFI ROHINGYA SIGN TANA",
- direction="nsm",
- linebreak="cm",
- unicodeslot=0x10D26,
- },
- [0x10D27]={
- category="mn",
- combining=0xE6,
- description="HANIFI ROHINGYA SIGN TASSI",
- direction="nsm",
- linebreak="cm",
- unicodeslot=0x10D27,
- },
- [0x10D30]={
- category="nd",
- description="HANIFI ROHINGYA DIGIT ZERO",
- direction="an",
- linebreak="nu",
- unicodeslot=0x10D30,
- },
- [0x10D31]={
- category="nd",
- description="HANIFI ROHINGYA DIGIT ONE",
- direction="an",
- linebreak="nu",
- unicodeslot=0x10D31,
- },
- [0x10D32]={
- category="nd",
- description="HANIFI ROHINGYA DIGIT TWO",
- direction="an",
- linebreak="nu",
- unicodeslot=0x10D32,
- },
- [0x10D33]={
- category="nd",
- description="HANIFI ROHINGYA DIGIT THREE",
- direction="an",
- linebreak="nu",
- unicodeslot=0x10D33,
- },
- [0x10D34]={
- category="nd",
- description="HANIFI ROHINGYA DIGIT FOUR",
- direction="an",
- linebreak="nu",
- unicodeslot=0x10D34,
- },
- [0x10D35]={
- category="nd",
- description="HANIFI ROHINGYA DIGIT FIVE",
- direction="an",
- linebreak="nu",
- unicodeslot=0x10D35,
- },
- [0x10D36]={
- category="nd",
- description="HANIFI ROHINGYA DIGIT SIX",
- direction="an",
- linebreak="nu",
- unicodeslot=0x10D36,
- },
- [0x10D37]={
- category="nd",
- description="HANIFI ROHINGYA DIGIT SEVEN",
- direction="an",
- linebreak="nu",
- unicodeslot=0x10D37,
- },
- [0x10D38]={
- category="nd",
- description="HANIFI ROHINGYA DIGIT EIGHT",
- direction="an",
- linebreak="nu",
- unicodeslot=0x10D38,
- },
- [0x10D39]={
- category="nd",
- description="HANIFI ROHINGYA DIGIT NINE",
- direction="an",
- linebreak="nu",
- unicodeslot=0x10D39,
- },
[0x10E60]={
category="no",
description="RUMI DIGIT ONE",
@@ -156079,617 +154535,6 @@ characters.data={
linebreak="al",
unicodeslot=0x10E7E,
},
- [0x10F00]={
- category="lo",
- description="OLD SOGDIAN LETTER ALEPH",
- direction="r",
- linebreak="al",
- unicodeslot=0x10F00,
- },
- [0x10F01]={
- category="lo",
- description="OLD SOGDIAN LETTER FINAL ALEPH",
- direction="r",
- linebreak="al",
- unicodeslot=0x10F01,
- },
- [0x10F02]={
- category="lo",
- description="OLD SOGDIAN LETTER BETH",
- direction="r",
- linebreak="al",
- unicodeslot=0x10F02,
- },
- [0x10F03]={
- category="lo",
- description="OLD SOGDIAN LETTER FINAL BETH",
- direction="r",
- linebreak="al",
- unicodeslot=0x10F03,
- },
- [0x10F04]={
- category="lo",
- description="OLD SOGDIAN LETTER GIMEL",
- direction="r",
- linebreak="al",
- unicodeslot=0x10F04,
- },
- [0x10F05]={
- category="lo",
- description="OLD SOGDIAN LETTER HE",
- direction="r",
- linebreak="al",
- unicodeslot=0x10F05,
- },
- [0x10F06]={
- category="lo",
- description="OLD SOGDIAN LETTER FINAL HE",
- direction="r",
- linebreak="al",
- unicodeslot=0x10F06,
- },
- [0x10F07]={
- category="lo",
- description="OLD SOGDIAN LETTER WAW",
- direction="r",
- linebreak="al",
- unicodeslot=0x10F07,
- },
- [0x10F08]={
- category="lo",
- description="OLD SOGDIAN LETTER ZAYIN",
- direction="r",
- linebreak="al",
- unicodeslot=0x10F08,
- },
- [0x10F09]={
- category="lo",
- description="OLD SOGDIAN LETTER HETH",
- direction="r",
- linebreak="al",
- unicodeslot=0x10F09,
- },
- [0x10F0A]={
- category="lo",
- description="OLD SOGDIAN LETTER YODH",
- direction="r",
- linebreak="al",
- unicodeslot=0x10F0A,
- },
- [0x10F0B]={
- category="lo",
- description="OLD SOGDIAN LETTER KAPH",
- direction="r",
- linebreak="al",
- unicodeslot=0x10F0B,
- },
- [0x10F0C]={
- category="lo",
- description="OLD SOGDIAN LETTER LAMEDH",
- direction="r",
- linebreak="al",
- unicodeslot=0x10F0C,
- },
- [0x10F0D]={
- category="lo",
- description="OLD SOGDIAN LETTER MEM",
- direction="r",
- linebreak="al",
- unicodeslot=0x10F0D,
- },
- [0x10F0E]={
- category="lo",
- description="OLD SOGDIAN LETTER NUN",
- direction="r",
- linebreak="al",
- unicodeslot=0x10F0E,
- },
- [0x10F0F]={
- category="lo",
- description="OLD SOGDIAN LETTER FINAL NUN",
- direction="r",
- linebreak="al",
- unicodeslot=0x10F0F,
- },
- [0x10F10]={
- category="lo",
- description="OLD SOGDIAN LETTER FINAL NUN WITH VERTICAL TAIL",
- direction="r",
- linebreak="al",
- unicodeslot=0x10F10,
- },
- [0x10F11]={
- category="lo",
- description="OLD SOGDIAN LETTER SAMEKH",
- direction="r",
- linebreak="al",
- unicodeslot=0x10F11,
- },
- [0x10F12]={
- category="lo",
- description="OLD SOGDIAN LETTER AYIN",
- direction="r",
- linebreak="al",
- unicodeslot=0x10F12,
- },
- [0x10F13]={
- category="lo",
- description="OLD SOGDIAN LETTER ALTERNATE AYIN",
- direction="r",
- linebreak="al",
- unicodeslot=0x10F13,
- },
- [0x10F14]={
- category="lo",
- description="OLD SOGDIAN LETTER PE",
- direction="r",
- linebreak="al",
- unicodeslot=0x10F14,
- },
- [0x10F15]={
- category="lo",
- description="OLD SOGDIAN LETTER SADHE",
- direction="r",
- linebreak="al",
- unicodeslot=0x10F15,
- },
- [0x10F16]={
- category="lo",
- description="OLD SOGDIAN LETTER FINAL SADHE",
- direction="r",
- linebreak="al",
- unicodeslot=0x10F16,
- },
- [0x10F17]={
- category="lo",
- description="OLD SOGDIAN LETTER FINAL SADHE WITH VERTICAL TAIL",
- direction="r",
- linebreak="al",
- unicodeslot=0x10F17,
- },
- [0x10F18]={
- category="lo",
- description="OLD SOGDIAN LETTER RESH-AYIN-DALETH",
- direction="r",
- linebreak="al",
- unicodeslot=0x10F18,
- },
- [0x10F19]={
- category="lo",
- description="OLD SOGDIAN LETTER SHIN",
- direction="r",
- linebreak="al",
- unicodeslot=0x10F19,
- },
- [0x10F1A]={
- category="lo",
- description="OLD SOGDIAN LETTER TAW",
- direction="r",
- linebreak="al",
- unicodeslot=0x10F1A,
- },
- [0x10F1B]={
- category="lo",
- description="OLD SOGDIAN LETTER FINAL TAW",
- direction="r",
- linebreak="al",
- unicodeslot=0x10F1B,
- },
- [0x10F1C]={
- category="lo",
- description="OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL",
- direction="r",
- linebreak="al",
- unicodeslot=0x10F1C,
- },
- [0x10F1D]={
- category="no",
- description="OLD SOGDIAN NUMBER ONE",
- direction="r",
- linebreak="al",
- unicodeslot=0x10F1D,
- },
- [0x10F1E]={
- category="no",
- description="OLD SOGDIAN NUMBER TWO",
- direction="r",
- linebreak="al",
- unicodeslot=0x10F1E,
- },
- [0x10F1F]={
- category="no",
- description="OLD SOGDIAN NUMBER THREE",
- direction="r",
- linebreak="al",
- unicodeslot=0x10F1F,
- },
- [0x10F20]={
- category="no",
- description="OLD SOGDIAN NUMBER FOUR",
- direction="r",
- linebreak="al",
- unicodeslot=0x10F20,
- },
- [0x10F21]={
- category="no",
- description="OLD SOGDIAN NUMBER FIVE",
- direction="r",
- linebreak="al",
- unicodeslot=0x10F21,
- },
- [0x10F22]={
- category="no",
- description="OLD SOGDIAN NUMBER TEN",
- direction="r",
- linebreak="al",
- unicodeslot=0x10F22,
- },
- [0x10F23]={
- category="no",
- description="OLD SOGDIAN NUMBER TWENTY",
- direction="r",
- linebreak="al",
- unicodeslot=0x10F23,
- },
- [0x10F24]={
- category="no",
- description="OLD SOGDIAN NUMBER THIRTY",
- direction="r",
- linebreak="al",
- unicodeslot=0x10F24,
- },
- [0x10F25]={
- category="no",
- description="OLD SOGDIAN NUMBER ONE HUNDRED",
- direction="r",
- linebreak="al",
- unicodeslot=0x10F25,
- },
- [0x10F26]={
- category="no",
- description="OLD SOGDIAN FRACTION ONE HALF",
- direction="r",
- linebreak="al",
- unicodeslot=0x10F26,
- },
- [0x10F27]={
- category="lo",
- description="OLD SOGDIAN LIGATURE AYIN-DALETH",
- direction="r",
- linebreak="al",
- unicodeslot=0x10F27,
- },
- [0x10F30]={
- arabic="d",
- category="lo",
- description="SOGDIAN LETTER ALEPH",
- direction="al",
- linebreak="al",
- unicodeslot=0x10F30,
- },
- [0x10F31]={
- arabic="d",
- category="lo",
- description="SOGDIAN LETTER BETH",
- direction="al",
- linebreak="al",
- unicodeslot=0x10F31,
- },
- [0x10F32]={
- arabic="d",
- category="lo",
- description="SOGDIAN LETTER GIMEL",
- direction="al",
- linebreak="al",
- unicodeslot=0x10F32,
- },
- [0x10F33]={
- arabic="r",
- category="lo",
- description="SOGDIAN LETTER HE",
- direction="al",
- linebreak="al",
- unicodeslot=0x10F33,
- },
- [0x10F34]={
- arabic="d",
- category="lo",
- description="SOGDIAN LETTER WAW",
- direction="al",
- linebreak="al",
- unicodeslot=0x10F34,
- },
- [0x10F35]={
- arabic="d",
- category="lo",
- description="SOGDIAN LETTER ZAYIN",
- direction="al",
- linebreak="al",
- unicodeslot=0x10F35,
- },
- [0x10F36]={
- arabic="d",
- category="lo",
- description="SOGDIAN LETTER HETH",
- direction="al",
- linebreak="al",
- unicodeslot=0x10F36,
- },
- [0x10F37]={
- arabic="d",
- category="lo",
- description="SOGDIAN LETTER YODH",
- direction="al",
- linebreak="al",
- unicodeslot=0x10F37,
- },
- [0x10F38]={
- arabic="d",
- category="lo",
- description="SOGDIAN LETTER KAPH",
- direction="al",
- linebreak="al",
- unicodeslot=0x10F38,
- },
- [0x10F39]={
- arabic="d",
- category="lo",
- description="SOGDIAN LETTER LAMEDH",
- direction="al",
- linebreak="al",
- unicodeslot=0x10F39,
- },
- [0x10F3A]={
- arabic="d",
- category="lo",
- description="SOGDIAN LETTER MEM",
- direction="al",
- linebreak="al",
- unicodeslot=0x10F3A,
- },
- [0x10F3B]={
- arabic="d",
- category="lo",
- description="SOGDIAN LETTER NUN",
- direction="al",
- linebreak="al",
- unicodeslot=0x10F3B,
- },
- [0x10F3C]={
- arabic="d",
- category="lo",
- description="SOGDIAN LETTER SAMEKH",
- direction="al",
- linebreak="al",
- unicodeslot=0x10F3C,
- },
- [0x10F3D]={
- arabic="d",
- category="lo",
- description="SOGDIAN LETTER AYIN",
- direction="al",
- linebreak="al",
- unicodeslot=0x10F3D,
- },
- [0x10F3E]={
- arabic="d",
- category="lo",
- description="SOGDIAN LETTER PE",
- direction="al",
- linebreak="al",
- unicodeslot=0x10F3E,
- },
- [0x10F3F]={
- arabic="d",
- category="lo",
- description="SOGDIAN LETTER SADHE",
- direction="al",
- linebreak="al",
- unicodeslot=0x10F3F,
- },
- [0x10F40]={
- arabic="d",
- category="lo",
- description="SOGDIAN LETTER RESH-AYIN",
- direction="al",
- linebreak="al",
- unicodeslot=0x10F40,
- },
- [0x10F41]={
- arabic="d",
- category="lo",
- description="SOGDIAN LETTER SHIN",
- direction="al",
- linebreak="al",
- unicodeslot=0x10F41,
- },
- [0x10F42]={
- arabic="d",
- category="lo",
- description="SOGDIAN LETTER TAW",
- direction="al",
- linebreak="al",
- unicodeslot=0x10F42,
- },
- [0x10F43]={
- arabic="d",
- category="lo",
- description="SOGDIAN LETTER FETH",
- direction="al",
- linebreak="al",
- unicodeslot=0x10F43,
- },
- [0x10F44]={
- arabic="d",
- category="lo",
- description="SOGDIAN LETTER LESH",
- direction="al",
- linebreak="al",
- unicodeslot=0x10F44,
- },
- [0x10F45]={
- arabic="u",
- category="lo",
- description="SOGDIAN INDEPENDENT SHIN",
- direction="al",
- linebreak="al",
- unicodeslot=0x10F45,
- },
- [0x10F46]={
- category="mn",
- combining=0xDC,
- description="SOGDIAN COMBINING DOT BELOW",
- direction="nsm",
- linebreak="cm",
- unicodeslot=0x10F46,
- },
- [0x10F47]={
- category="mn",
- combining=0xDC,
- description="SOGDIAN COMBINING TWO DOTS BELOW",
- direction="nsm",
- linebreak="cm",
- unicodeslot=0x10F47,
- },
- [0x10F48]={
- category="mn",
- combining=0xE6,
- description="SOGDIAN COMBINING DOT ABOVE",
- direction="nsm",
- linebreak="cm",
- unicodeslot=0x10F48,
- },
- [0x10F49]={
- category="mn",
- combining=0xE6,
- description="SOGDIAN COMBINING TWO DOTS ABOVE",
- direction="nsm",
- linebreak="cm",
- unicodeslot=0x10F49,
- },
- [0x10F4A]={
- category="mn",
- combining=0xE6,
- description="SOGDIAN COMBINING CURVE ABOVE",
- direction="nsm",
- linebreak="cm",
- unicodeslot=0x10F4A,
- },
- [0x10F4B]={
- category="mn",
- combining=0xDC,
- description="SOGDIAN COMBINING CURVE BELOW",
- direction="nsm",
- linebreak="cm",
- unicodeslot=0x10F4B,
- },
- [0x10F4C]={
- category="mn",
- combining=0xE6,
- description="SOGDIAN COMBINING HOOK ABOVE",
- direction="nsm",
- linebreak="cm",
- unicodeslot=0x10F4C,
- },
- [0x10F4D]={
- category="mn",
- combining=0xDC,
- description="SOGDIAN COMBINING HOOK BELOW",
- direction="nsm",
- linebreak="cm",
- unicodeslot=0x10F4D,
- },
- [0x10F4E]={
- category="mn",
- combining=0xDC,
- description="SOGDIAN COMBINING LONG HOOK BELOW",
- direction="nsm",
- linebreak="cm",
- unicodeslot=0x10F4E,
- },
- [0x10F4F]={
- category="mn",
- combining=0xDC,
- description="SOGDIAN COMBINING RESH BELOW",
- direction="nsm",
- linebreak="cm",
- unicodeslot=0x10F4F,
- },
- [0x10F50]={
- category="mn",
- combining=0xDC,
- description="SOGDIAN COMBINING STROKE BELOW",
- direction="nsm",
- linebreak="cm",
- unicodeslot=0x10F50,
- },
- [0x10F51]={
- arabic="d",
- category="no",
- description="SOGDIAN NUMBER ONE",
- direction="al",
- linebreak="al",
- unicodeslot=0x10F51,
- },
- [0x10F52]={
- arabic="d",
- category="no",
- description="SOGDIAN NUMBER TEN",
- direction="al",
- linebreak="al",
- unicodeslot=0x10F52,
- },
- [0x10F53]={
- arabic="d",
- category="no",
- description="SOGDIAN NUMBER TWENTY",
- direction="al",
- linebreak="al",
- unicodeslot=0x10F53,
- },
- [0x10F54]={
- arabic="r",
- category="no",
- description="SOGDIAN NUMBER ONE HUNDRED",
- direction="al",
- linebreak="al",
- unicodeslot=0x10F54,
- },
- [0x10F55]={
- category="po",
- description="SOGDIAN PUNCTUATION TWO VERTICAL BARS",
- direction="al",
- linebreak="al",
- unicodeslot=0x10F55,
- },
- [0x10F56]={
- category="po",
- description="SOGDIAN PUNCTUATION TWO VERTICAL BARS WITH DOTS",
- direction="al",
- linebreak="al",
- unicodeslot=0x10F56,
- },
- [0x10F57]={
- category="po",
- description="SOGDIAN PUNCTUATION CIRCLE WITH DOT",
- direction="al",
- linebreak="al",
- unicodeslot=0x10F57,
- },
- [0x10F58]={
- category="po",
- description="SOGDIAN PUNCTUATION TWO CIRCLES WITH DOTS",
- direction="al",
- linebreak="al",
- unicodeslot=0x10F58,
- },
- [0x10F59]={
- category="po",
- description="SOGDIAN PUNCTUATION HALF CIRCLE WITH DOT",
- direction="al",
- linebreak="al",
- unicodeslot=0x10F59,
- },
[0x11000]={
category="mc",
description="BRAHMI SIGN CANDRABINDU",
@@ -157888,7 +155733,6 @@ characters.data={
unicodeslot=0x110BC,
},
[0x110BD]={
- arabic="u",
category="cf",
description="KAITHI NUMBER SIGN",
direction="l",
@@ -157923,14 +155767,6 @@ characters.data={
linebreak="ba",
unicodeslot=0x110C1,
},
- [0x110CD]={
- arabic="u",
- category="cf",
- description="KAITHI NUMBER SIGN ABOVE",
- direction="l",
- linebreak="al",
- unicodeslot=0x110CD,
- },
[0x110D0]={
category="lo",
description="SORA SOMPENG LETTER SAH",
@@ -158652,27 +156488,6 @@ characters.data={
linebreak="ba",
unicodeslot=0x11143,
},
- [0x11144]={
- category="lo",
- description="CHAKMA LETTER LHAA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11144,
- },
- [0x11145]={
- category="mc",
- description="CHAKMA VOWEL SIGN AA",
- direction="l",
- linebreak="cm",
- unicodeslot=0x11145,
- },
- [0x11146]={
- category="mc",
- description="CHAKMA VOWEL SIGN EI",
- direction="l",
- linebreak="cm",
- unicodeslot=0x11146,
- },
[0x11150]={
category="lo",
description="MAHAJANI LETTER A",
@@ -159462,8 +157277,8 @@ characters.data={
[0x111C9]={
category="po",
description="SHARADA SANDHI MARK",
- direction="nsm",
- linebreak="cm",
+ direction="l",
+ linebreak="al",
unicodeslot=0x111C9,
},
[0x111CA]={
@@ -161284,14 +159099,6 @@ characters.data={
linebreak="al",
unicodeslot=0x11339,
},
- [0x1133B]={
- category="mn",
- combining=0x7,
- description="COMBINING BINDU BELOW",
- direction="nsm",
- linebreak="cm",
- unicodeslot=0x1133B,
- },
[0x1133C]={
category="mn",
combining=0x7,
@@ -162199,14 +160006,6 @@ characters.data={
linebreak="al",
unicodeslot=0x1145D,
},
- [0x1145E]={
- category="mn",
- combining=0xE6,
- description="NEWA SANDHI MARK",
- direction="nsm",
- linebreak="cm",
- unicodeslot=0x1145E,
- },
[0x11480]={
category="lo",
description="TIRHUTA ANJI",
@@ -164725,13 +162524,6 @@ characters.data={
linebreak="sa",
unicodeslot=0x11719,
},
- [0x1171A]={
- category="lo",
- description="AHOM LETTER ALTERNATE BA",
- direction="l",
- linebreak="sa",
- unicodeslot=0x1171A,
- },
[0x1171D]={
category="mn",
description="AHOM CONSONANT SIGN MEDIAL LA",
@@ -164950,428 +162742,6 @@ characters.data={
linebreak="sa",
unicodeslot=0x1173F,
},
- [0x11800]={
- category="lo",
- description="DOGRA LETTER A",
- direction="l",
- linebreak="al",
- unicodeslot=0x11800,
- },
- [0x11801]={
- category="lo",
- description="DOGRA LETTER AA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11801,
- },
- [0x11802]={
- category="lo",
- description="DOGRA LETTER I",
- direction="l",
- linebreak="al",
- unicodeslot=0x11802,
- },
- [0x11803]={
- category="lo",
- description="DOGRA LETTER II",
- direction="l",
- linebreak="al",
- unicodeslot=0x11803,
- },
- [0x11804]={
- category="lo",
- description="DOGRA LETTER U",
- direction="l",
- linebreak="al",
- unicodeslot=0x11804,
- },
- [0x11805]={
- category="lo",
- description="DOGRA LETTER UU",
- direction="l",
- linebreak="al",
- unicodeslot=0x11805,
- },
- [0x11806]={
- category="lo",
- description="DOGRA LETTER E",
- direction="l",
- linebreak="al",
- unicodeslot=0x11806,
- },
- [0x11807]={
- category="lo",
- description="DOGRA LETTER AI",
- direction="l",
- linebreak="al",
- unicodeslot=0x11807,
- },
- [0x11808]={
- category="lo",
- description="DOGRA LETTER O",
- direction="l",
- linebreak="al",
- unicodeslot=0x11808,
- },
- [0x11809]={
- category="lo",
- description="DOGRA LETTER AU",
- direction="l",
- linebreak="al",
- unicodeslot=0x11809,
- },
- [0x1180A]={
- category="lo",
- description="DOGRA LETTER KA",
- direction="l",
- linebreak="al",
- unicodeslot=0x1180A,
- },
- [0x1180B]={
- category="lo",
- description="DOGRA LETTER KHA",
- direction="l",
- linebreak="al",
- unicodeslot=0x1180B,
- },
- [0x1180C]={
- category="lo",
- description="DOGRA LETTER GA",
- direction="l",
- linebreak="al",
- unicodeslot=0x1180C,
- },
- [0x1180D]={
- category="lo",
- description="DOGRA LETTER GHA",
- direction="l",
- linebreak="al",
- unicodeslot=0x1180D,
- },
- [0x1180E]={
- category="lo",
- description="DOGRA LETTER NGA",
- direction="l",
- linebreak="al",
- unicodeslot=0x1180E,
- },
- [0x1180F]={
- category="lo",
- description="DOGRA LETTER CA",
- direction="l",
- linebreak="al",
- unicodeslot=0x1180F,
- },
- [0x11810]={
- category="lo",
- description="DOGRA LETTER CHA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11810,
- },
- [0x11811]={
- category="lo",
- description="DOGRA LETTER JA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11811,
- },
- [0x11812]={
- category="lo",
- description="DOGRA LETTER JHA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11812,
- },
- [0x11813]={
- category="lo",
- description="DOGRA LETTER NYA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11813,
- },
- [0x11814]={
- category="lo",
- description="DOGRA LETTER TTA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11814,
- },
- [0x11815]={
- category="lo",
- description="DOGRA LETTER TTHA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11815,
- },
- [0x11816]={
- category="lo",
- description="DOGRA LETTER DDA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11816,
- },
- [0x11817]={
- category="lo",
- description="DOGRA LETTER DDHA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11817,
- },
- [0x11818]={
- category="lo",
- description="DOGRA LETTER NNA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11818,
- },
- [0x11819]={
- category="lo",
- description="DOGRA LETTER TA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11819,
- },
- [0x1181A]={
- category="lo",
- description="DOGRA LETTER THA",
- direction="l",
- linebreak="al",
- unicodeslot=0x1181A,
- },
- [0x1181B]={
- category="lo",
- description="DOGRA LETTER DA",
- direction="l",
- linebreak="al",
- unicodeslot=0x1181B,
- },
- [0x1181C]={
- category="lo",
- description="DOGRA LETTER DHA",
- direction="l",
- linebreak="al",
- unicodeslot=0x1181C,
- },
- [0x1181D]={
- category="lo",
- description="DOGRA LETTER NA",
- direction="l",
- linebreak="al",
- unicodeslot=0x1181D,
- },
- [0x1181E]={
- category="lo",
- description="DOGRA LETTER PA",
- direction="l",
- linebreak="al",
- unicodeslot=0x1181E,
- },
- [0x1181F]={
- category="lo",
- description="DOGRA LETTER PHA",
- direction="l",
- linebreak="al",
- unicodeslot=0x1181F,
- },
- [0x11820]={
- category="lo",
- description="DOGRA LETTER BA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11820,
- },
- [0x11821]={
- category="lo",
- description="DOGRA LETTER BHA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11821,
- },
- [0x11822]={
- category="lo",
- description="DOGRA LETTER MA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11822,
- },
- [0x11823]={
- category="lo",
- description="DOGRA LETTER YA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11823,
- },
- [0x11824]={
- category="lo",
- description="DOGRA LETTER RA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11824,
- },
- [0x11825]={
- category="lo",
- description="DOGRA LETTER LA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11825,
- },
- [0x11826]={
- category="lo",
- description="DOGRA LETTER VA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11826,
- },
- [0x11827]={
- category="lo",
- description="DOGRA LETTER SHA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11827,
- },
- [0x11828]={
- category="lo",
- description="DOGRA LETTER SSA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11828,
- },
- [0x11829]={
- category="lo",
- description="DOGRA LETTER SA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11829,
- },
- [0x1182A]={
- category="lo",
- description="DOGRA LETTER HA",
- direction="l",
- linebreak="al",
- unicodeslot=0x1182A,
- },
- [0x1182B]={
- category="lo",
- description="DOGRA LETTER RRA",
- direction="l",
- linebreak="al",
- unicodeslot=0x1182B,
- },
- [0x1182C]={
- category="mc",
- description="DOGRA VOWEL SIGN AA",
- direction="l",
- linebreak="cm",
- unicodeslot=0x1182C,
- },
- [0x1182D]={
- category="mc",
- description="DOGRA VOWEL SIGN I",
- direction="l",
- linebreak="cm",
- unicodeslot=0x1182D,
- },
- [0x1182E]={
- category="mc",
- description="DOGRA VOWEL SIGN II",
- direction="l",
- linebreak="cm",
- unicodeslot=0x1182E,
- },
- [0x1182F]={
- category="mn",
- description="DOGRA VOWEL SIGN U",
- direction="nsm",
- linebreak="cm",
- unicodeslot=0x1182F,
- },
- [0x11830]={
- category="mn",
- description="DOGRA VOWEL SIGN UU",
- direction="nsm",
- linebreak="cm",
- unicodeslot=0x11830,
- },
- [0x11831]={
- category="mn",
- description="DOGRA VOWEL SIGN VOCALIC R",
- direction="nsm",
- linebreak="cm",
- unicodeslot=0x11831,
- },
- [0x11832]={
- category="mn",
- description="DOGRA VOWEL SIGN VOCALIC RR",
- direction="nsm",
- linebreak="cm",
- unicodeslot=0x11832,
- },
- [0x11833]={
- category="mn",
- description="DOGRA VOWEL SIGN E",
- direction="nsm",
- linebreak="cm",
- unicodeslot=0x11833,
- },
- [0x11834]={
- category="mn",
- description="DOGRA VOWEL SIGN AI",
- direction="nsm",
- linebreak="cm",
- unicodeslot=0x11834,
- },
- [0x11835]={
- category="mn",
- description="DOGRA VOWEL SIGN O",
- direction="nsm",
- linebreak="cm",
- unicodeslot=0x11835,
- },
- [0x11836]={
- category="mn",
- description="DOGRA VOWEL SIGN AU",
- direction="nsm",
- linebreak="cm",
- unicodeslot=0x11836,
- },
- [0x11837]={
- category="mn",
- description="DOGRA SIGN ANUSVARA",
- direction="nsm",
- linebreak="cm",
- unicodeslot=0x11837,
- },
- [0x11838]={
- category="mc",
- description="DOGRA SIGN VISARGA",
- direction="l",
- linebreak="cm",
- unicodeslot=0x11838,
- },
- [0x11839]={
- category="mn",
- combining=0x9,
- description="DOGRA SIGN VIRAMA",
- direction="nsm",
- linebreak="cm",
- unicodeslot=0x11839,
- },
- [0x1183A]={
- category="mn",
- combining=0x7,
- description="DOGRA SIGN NUKTA",
- direction="nsm",
- linebreak="cm",
- unicodeslot=0x1183A,
- },
- [0x1183B]={
- category="po",
- description="DOGRA ABBREVIATION SIGN",
- direction="l",
- linebreak="al",
- unicodeslot=0x1183B,
- },
[0x118A0]={
category="lu",
description="WARANG CITI CAPITAL LETTER NGAA",
@@ -166992,13 +164362,6 @@ characters.data={
linebreak="ba",
unicodeslot=0x11A9C,
},
- [0x11A9D]={
- category="lo",
- description="SOYOMBO MARK PLUTA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11A9D,
- },
[0x11A9E]={
category="po",
description="SOYOMBO HEAD MARK WITH MOON AND SUN AND TRIPLE FLAME",
@@ -169117,623 +166480,6 @@ characters.data={
linebreak="nu",
unicodeslot=0x11D59,
},
- [0x11D60]={
- category="lo",
- description="GUNJALA GONDI LETTER A",
- direction="l",
- linebreak="al",
- unicodeslot=0x11D60,
- },
- [0x11D61]={
- category="lo",
- description="GUNJALA GONDI LETTER AA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11D61,
- },
- [0x11D62]={
- category="lo",
- description="GUNJALA GONDI LETTER I",
- direction="l",
- linebreak="al",
- unicodeslot=0x11D62,
- },
- [0x11D63]={
- category="lo",
- description="GUNJALA GONDI LETTER II",
- direction="l",
- linebreak="al",
- unicodeslot=0x11D63,
- },
- [0x11D64]={
- category="lo",
- description="GUNJALA GONDI LETTER U",
- direction="l",
- linebreak="al",
- unicodeslot=0x11D64,
- },
- [0x11D65]={
- category="lo",
- description="GUNJALA GONDI LETTER UU",
- direction="l",
- linebreak="al",
- unicodeslot=0x11D65,
- },
- [0x11D67]={
- category="lo",
- description="GUNJALA GONDI LETTER EE",
- direction="l",
- linebreak="al",
- unicodeslot=0x11D67,
- },
- [0x11D68]={
- category="lo",
- description="GUNJALA GONDI LETTER AI",
- direction="l",
- linebreak="al",
- unicodeslot=0x11D68,
- },
- [0x11D6A]={
- category="lo",
- description="GUNJALA GONDI LETTER OO",
- direction="l",
- linebreak="al",
- unicodeslot=0x11D6A,
- },
- [0x11D6B]={
- category="lo",
- description="GUNJALA GONDI LETTER AU",
- direction="l",
- linebreak="al",
- unicodeslot=0x11D6B,
- },
- [0x11D6C]={
- category="lo",
- description="GUNJALA GONDI LETTER YA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11D6C,
- },
- [0x11D6D]={
- category="lo",
- description="GUNJALA GONDI LETTER VA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11D6D,
- },
- [0x11D6E]={
- category="lo",
- description="GUNJALA GONDI LETTER BA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11D6E,
- },
- [0x11D6F]={
- category="lo",
- description="GUNJALA GONDI LETTER BHA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11D6F,
- },
- [0x11D70]={
- category="lo",
- description="GUNJALA GONDI LETTER MA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11D70,
- },
- [0x11D71]={
- category="lo",
- description="GUNJALA GONDI LETTER KA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11D71,
- },
- [0x11D72]={
- category="lo",
- description="GUNJALA GONDI LETTER KHA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11D72,
- },
- [0x11D73]={
- category="lo",
- description="GUNJALA GONDI LETTER TA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11D73,
- },
- [0x11D74]={
- category="lo",
- description="GUNJALA GONDI LETTER THA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11D74,
- },
- [0x11D75]={
- category="lo",
- description="GUNJALA GONDI LETTER LA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11D75,
- },
- [0x11D76]={
- category="lo",
- description="GUNJALA GONDI LETTER GA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11D76,
- },
- [0x11D77]={
- category="lo",
- description="GUNJALA GONDI LETTER GHA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11D77,
- },
- [0x11D78]={
- category="lo",
- description="GUNJALA GONDI LETTER DA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11D78,
- },
- [0x11D79]={
- category="lo",
- description="GUNJALA GONDI LETTER DHA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11D79,
- },
- [0x11D7A]={
- category="lo",
- description="GUNJALA GONDI LETTER NA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11D7A,
- },
- [0x11D7B]={
- category="lo",
- description="GUNJALA GONDI LETTER CA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11D7B,
- },
- [0x11D7C]={
- category="lo",
- description="GUNJALA GONDI LETTER CHA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11D7C,
- },
- [0x11D7D]={
- category="lo",
- description="GUNJALA GONDI LETTER TTA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11D7D,
- },
- [0x11D7E]={
- category="lo",
- description="GUNJALA GONDI LETTER TTHA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11D7E,
- },
- [0x11D7F]={
- category="lo",
- description="GUNJALA GONDI LETTER LLA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11D7F,
- },
- [0x11D80]={
- category="lo",
- description="GUNJALA GONDI LETTER JA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11D80,
- },
- [0x11D81]={
- category="lo",
- description="GUNJALA GONDI LETTER JHA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11D81,
- },
- [0x11D82]={
- category="lo",
- description="GUNJALA GONDI LETTER DDA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11D82,
- },
- [0x11D83]={
- category="lo",
- description="GUNJALA GONDI LETTER DDHA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11D83,
- },
- [0x11D84]={
- category="lo",
- description="GUNJALA GONDI LETTER NGA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11D84,
- },
- [0x11D85]={
- category="lo",
- description="GUNJALA GONDI LETTER PA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11D85,
- },
- [0x11D86]={
- category="lo",
- description="GUNJALA GONDI LETTER PHA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11D86,
- },
- [0x11D87]={
- category="lo",
- description="GUNJALA GONDI LETTER HA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11D87,
- },
- [0x11D88]={
- category="lo",
- description="GUNJALA GONDI LETTER RA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11D88,
- },
- [0x11D89]={
- category="lo",
- description="GUNJALA GONDI LETTER SA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11D89,
- },
- [0x11D8A]={
- category="mc",
- description="GUNJALA GONDI VOWEL SIGN AA",
- direction="l",
- linebreak="cm",
- unicodeslot=0x11D8A,
- },
- [0x11D8B]={
- category="mc",
- description="GUNJALA GONDI VOWEL SIGN I",
- direction="l",
- linebreak="cm",
- unicodeslot=0x11D8B,
- },
- [0x11D8C]={
- category="mc",
- description="GUNJALA GONDI VOWEL SIGN II",
- direction="l",
- linebreak="cm",
- unicodeslot=0x11D8C,
- },
- [0x11D8D]={
- category="mc",
- description="GUNJALA GONDI VOWEL SIGN U",
- direction="l",
- linebreak="cm",
- unicodeslot=0x11D8D,
- },
- [0x11D8E]={
- category="mc",
- description="GUNJALA GONDI VOWEL SIGN UU",
- direction="l",
- linebreak="cm",
- unicodeslot=0x11D8E,
- },
- [0x11D90]={
- category="mn",
- description="GUNJALA GONDI VOWEL SIGN EE",
- direction="nsm",
- linebreak="cm",
- unicodeslot=0x11D90,
- },
- [0x11D91]={
- category="mn",
- description="GUNJALA GONDI VOWEL SIGN AI",
- direction="nsm",
- linebreak="cm",
- unicodeslot=0x11D91,
- },
- [0x11D93]={
- category="mc",
- description="GUNJALA GONDI VOWEL SIGN OO",
- direction="l",
- linebreak="cm",
- unicodeslot=0x11D93,
- },
- [0x11D94]={
- category="mc",
- description="GUNJALA GONDI VOWEL SIGN AU",
- direction="l",
- linebreak="cm",
- unicodeslot=0x11D94,
- },
- [0x11D95]={
- category="mn",
- description="GUNJALA GONDI SIGN ANUSVARA",
- direction="nsm",
- linebreak="cm",
- unicodeslot=0x11D95,
- },
- [0x11D96]={
- category="mc",
- description="GUNJALA GONDI SIGN VISARGA",
- direction="l",
- linebreak="cm",
- unicodeslot=0x11D96,
- },
- [0x11D97]={
- category="mn",
- combining=0x9,
- description="GUNJALA GONDI VIRAMA",
- direction="nsm",
- linebreak="cm",
- unicodeslot=0x11D97,
- },
- [0x11D98]={
- category="lo",
- description="GUNJALA GONDI OM",
- direction="l",
- linebreak="al",
- unicodeslot=0x11D98,
- },
- [0x11DA0]={
- category="nd",
- description="GUNJALA GONDI DIGIT ZERO",
- direction="l",
- linebreak="nu",
- unicodeslot=0x11DA0,
- },
- [0x11DA1]={
- category="nd",
- description="GUNJALA GONDI DIGIT ONE",
- direction="l",
- linebreak="nu",
- unicodeslot=0x11DA1,
- },
- [0x11DA2]={
- category="nd",
- description="GUNJALA GONDI DIGIT TWO",
- direction="l",
- linebreak="nu",
- unicodeslot=0x11DA2,
- },
- [0x11DA3]={
- category="nd",
- description="GUNJALA GONDI DIGIT THREE",
- direction="l",
- linebreak="nu",
- unicodeslot=0x11DA3,
- },
- [0x11DA4]={
- category="nd",
- description="GUNJALA GONDI DIGIT FOUR",
- direction="l",
- linebreak="nu",
- unicodeslot=0x11DA4,
- },
- [0x11DA5]={
- category="nd",
- description="GUNJALA GONDI DIGIT FIVE",
- direction="l",
- linebreak="nu",
- unicodeslot=0x11DA5,
- },
- [0x11DA6]={
- category="nd",
- description="GUNJALA GONDI DIGIT SIX",
- direction="l",
- linebreak="nu",
- unicodeslot=0x11DA6,
- },
- [0x11DA7]={
- category="nd",
- description="GUNJALA GONDI DIGIT SEVEN",
- direction="l",
- linebreak="nu",
- unicodeslot=0x11DA7,
- },
- [0x11DA8]={
- category="nd",
- description="GUNJALA GONDI DIGIT EIGHT",
- direction="l",
- linebreak="nu",
- unicodeslot=0x11DA8,
- },
- [0x11DA9]={
- category="nd",
- description="GUNJALA GONDI DIGIT NINE",
- direction="l",
- linebreak="nu",
- unicodeslot=0x11DA9,
- },
- [0x11EE0]={
- category="lo",
- description="MAKASAR LETTER KA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11EE0,
- },
- [0x11EE1]={
- category="lo",
- description="MAKASAR LETTER GA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11EE1,
- },
- [0x11EE2]={
- category="lo",
- description="MAKASAR LETTER NGA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11EE2,
- },
- [0x11EE3]={
- category="lo",
- description="MAKASAR LETTER PA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11EE3,
- },
- [0x11EE4]={
- category="lo",
- description="MAKASAR LETTER BA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11EE4,
- },
- [0x11EE5]={
- category="lo",
- description="MAKASAR LETTER MA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11EE5,
- },
- [0x11EE6]={
- category="lo",
- description="MAKASAR LETTER TA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11EE6,
- },
- [0x11EE7]={
- category="lo",
- description="MAKASAR LETTER DA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11EE7,
- },
- [0x11EE8]={
- category="lo",
- description="MAKASAR LETTER NA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11EE8,
- },
- [0x11EE9]={
- category="lo",
- description="MAKASAR LETTER CA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11EE9,
- },
- [0x11EEA]={
- category="lo",
- description="MAKASAR LETTER JA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11EEA,
- },
- [0x11EEB]={
- category="lo",
- description="MAKASAR LETTER NYA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11EEB,
- },
- [0x11EEC]={
- category="lo",
- description="MAKASAR LETTER YA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11EEC,
- },
- [0x11EED]={
- category="lo",
- description="MAKASAR LETTER RA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11EED,
- },
- [0x11EEE]={
- category="lo",
- description="MAKASAR LETTER LA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11EEE,
- },
- [0x11EEF]={
- category="lo",
- description="MAKASAR LETTER VA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11EEF,
- },
- [0x11EF0]={
- category="lo",
- description="MAKASAR LETTER SA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11EF0,
- },
- [0x11EF1]={
- category="lo",
- description="MAKASAR LETTER A",
- direction="l",
- linebreak="al",
- unicodeslot=0x11EF1,
- },
- [0x11EF2]={
- category="lo",
- description="MAKASAR ANGKA",
- direction="l",
- linebreak="al",
- unicodeslot=0x11EF2,
- },
- [0x11EF3]={
- category="mn",
- description="MAKASAR VOWEL SIGN I",
- direction="nsm",
- linebreak="cm",
- unicodeslot=0x11EF3,
- },
- [0x11EF4]={
- category="mn",
- description="MAKASAR VOWEL SIGN U",
- direction="nsm",
- linebreak="cm",
- unicodeslot=0x11EF4,
- },
- [0x11EF5]={
- category="mc",
- description="MAKASAR VOWEL SIGN E",
- direction="l",
- linebreak="cm",
- unicodeslot=0x11EF5,
- },
- [0x11EF6]={
- category="mc",
- description="MAKASAR VOWEL SIGN O",
- direction="l",
- linebreak="cm",
- unicodeslot=0x11EF6,
- },
- [0x11EF7]={
- category="po",
- description="MAKASAR PASSIMBANG",
- direction="l",
- linebreak="al",
- unicodeslot=0x11EF7,
- },
- [0x11EF8]={
- category="po",
- description="MAKASAR END OF SECTION",
- direction="l",
- linebreak="al",
- unicodeslot=0x11EF8,
- },
[0x12000]={
category="lo",
description="CUNEIFORM SIGN A",
@@ -195389,643 +192135,6 @@ characters.data={
linebreak="al",
unicodeslot=0x16B8F,
},
- [0x16E40]={
- category="lu",
- description="MEDEFAIDRIN CAPITAL LETTER M",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E40,
- },
- [0x16E41]={
- category="lu",
- description="MEDEFAIDRIN CAPITAL LETTER S",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E41,
- },
- [0x16E42]={
- category="lu",
- description="MEDEFAIDRIN CAPITAL LETTER V",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E42,
- },
- [0x16E43]={
- category="lu",
- description="MEDEFAIDRIN CAPITAL LETTER W",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E43,
- },
- [0x16E44]={
- category="lu",
- description="MEDEFAIDRIN CAPITAL LETTER ATIU",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E44,
- },
- [0x16E45]={
- category="lu",
- description="MEDEFAIDRIN CAPITAL LETTER Z",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E45,
- },
- [0x16E46]={
- category="lu",
- description="MEDEFAIDRIN CAPITAL LETTER KP",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E46,
- },
- [0x16E47]={
- category="lu",
- description="MEDEFAIDRIN CAPITAL LETTER P",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E47,
- },
- [0x16E48]={
- category="lu",
- description="MEDEFAIDRIN CAPITAL LETTER T",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E48,
- },
- [0x16E49]={
- category="lu",
- description="MEDEFAIDRIN CAPITAL LETTER G",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E49,
- },
- [0x16E4A]={
- category="lu",
- description="MEDEFAIDRIN CAPITAL LETTER F",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E4A,
- },
- [0x16E4B]={
- category="lu",
- description="MEDEFAIDRIN CAPITAL LETTER I",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E4B,
- },
- [0x16E4C]={
- category="lu",
- description="MEDEFAIDRIN CAPITAL LETTER K",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E4C,
- },
- [0x16E4D]={
- category="lu",
- description="MEDEFAIDRIN CAPITAL LETTER A",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E4D,
- },
- [0x16E4E]={
- category="lu",
- description="MEDEFAIDRIN CAPITAL LETTER J",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E4E,
- },
- [0x16E4F]={
- category="lu",
- description="MEDEFAIDRIN CAPITAL LETTER E",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E4F,
- },
- [0x16E50]={
- category="lu",
- description="MEDEFAIDRIN CAPITAL LETTER B",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E50,
- },
- [0x16E51]={
- category="lu",
- description="MEDEFAIDRIN CAPITAL LETTER C",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E51,
- },
- [0x16E52]={
- category="lu",
- description="MEDEFAIDRIN CAPITAL LETTER U",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E52,
- },
- [0x16E53]={
- category="lu",
- description="MEDEFAIDRIN CAPITAL LETTER YU",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E53,
- },
- [0x16E54]={
- category="lu",
- description="MEDEFAIDRIN CAPITAL LETTER L",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E54,
- },
- [0x16E55]={
- category="lu",
- description="MEDEFAIDRIN CAPITAL LETTER Q",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E55,
- },
- [0x16E56]={
- category="lu",
- description="MEDEFAIDRIN CAPITAL LETTER HP",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E56,
- },
- [0x16E57]={
- category="lu",
- description="MEDEFAIDRIN CAPITAL LETTER NY",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E57,
- },
- [0x16E58]={
- category="lu",
- description="MEDEFAIDRIN CAPITAL LETTER X",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E58,
- },
- [0x16E59]={
- category="lu",
- description="MEDEFAIDRIN CAPITAL LETTER D",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E59,
- },
- [0x16E5A]={
- category="lu",
- description="MEDEFAIDRIN CAPITAL LETTER OE",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E5A,
- },
- [0x16E5B]={
- category="lu",
- description="MEDEFAIDRIN CAPITAL LETTER N",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E5B,
- },
- [0x16E5C]={
- category="lu",
- description="MEDEFAIDRIN CAPITAL LETTER R",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E5C,
- },
- [0x16E5D]={
- category="lu",
- description="MEDEFAIDRIN CAPITAL LETTER O",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E5D,
- },
- [0x16E5E]={
- category="lu",
- description="MEDEFAIDRIN CAPITAL LETTER AI",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E5E,
- },
- [0x16E5F]={
- category="lu",
- description="MEDEFAIDRIN CAPITAL LETTER Y",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E5F,
- },
- [0x16E60]={
- category="ll",
- description="MEDEFAIDRIN SMALL LETTER M",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E60,
- },
- [0x16E61]={
- category="ll",
- description="MEDEFAIDRIN SMALL LETTER S",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E61,
- },
- [0x16E62]={
- category="ll",
- description="MEDEFAIDRIN SMALL LETTER V",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E62,
- },
- [0x16E63]={
- category="ll",
- description="MEDEFAIDRIN SMALL LETTER W",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E63,
- },
- [0x16E64]={
- category="ll",
- description="MEDEFAIDRIN SMALL LETTER ATIU",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E64,
- },
- [0x16E65]={
- category="ll",
- description="MEDEFAIDRIN SMALL LETTER Z",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E65,
- },
- [0x16E66]={
- category="ll",
- description="MEDEFAIDRIN SMALL LETTER KP",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E66,
- },
- [0x16E67]={
- category="ll",
- description="MEDEFAIDRIN SMALL LETTER P",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E67,
- },
- [0x16E68]={
- category="ll",
- description="MEDEFAIDRIN SMALL LETTER T",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E68,
- },
- [0x16E69]={
- category="ll",
- description="MEDEFAIDRIN SMALL LETTER G",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E69,
- },
- [0x16E6A]={
- category="ll",
- description="MEDEFAIDRIN SMALL LETTER F",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E6A,
- },
- [0x16E6B]={
- category="ll",
- description="MEDEFAIDRIN SMALL LETTER I",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E6B,
- },
- [0x16E6C]={
- category="ll",
- description="MEDEFAIDRIN SMALL LETTER K",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E6C,
- },
- [0x16E6D]={
- category="ll",
- description="MEDEFAIDRIN SMALL LETTER A",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E6D,
- },
- [0x16E6E]={
- category="ll",
- description="MEDEFAIDRIN SMALL LETTER J",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E6E,
- },
- [0x16E6F]={
- category="ll",
- description="MEDEFAIDRIN SMALL LETTER E",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E6F,
- },
- [0x16E70]={
- category="ll",
- description="MEDEFAIDRIN SMALL LETTER B",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E70,
- },
- [0x16E71]={
- category="ll",
- description="MEDEFAIDRIN SMALL LETTER C",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E71,
- },
- [0x16E72]={
- category="ll",
- description="MEDEFAIDRIN SMALL LETTER U",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E72,
- },
- [0x16E73]={
- category="ll",
- description="MEDEFAIDRIN SMALL LETTER YU",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E73,
- },
- [0x16E74]={
- category="ll",
- description="MEDEFAIDRIN SMALL LETTER L",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E74,
- },
- [0x16E75]={
- category="ll",
- description="MEDEFAIDRIN SMALL LETTER Q",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E75,
- },
- [0x16E76]={
- category="ll",
- description="MEDEFAIDRIN SMALL LETTER HP",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E76,
- },
- [0x16E77]={
- category="ll",
- description="MEDEFAIDRIN SMALL LETTER NY",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E77,
- },
- [0x16E78]={
- category="ll",
- description="MEDEFAIDRIN SMALL LETTER X",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E78,
- },
- [0x16E79]={
- category="ll",
- description="MEDEFAIDRIN SMALL LETTER D",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E79,
- },
- [0x16E7A]={
- category="ll",
- description="MEDEFAIDRIN SMALL LETTER OE",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E7A,
- },
- [0x16E7B]={
- category="ll",
- description="MEDEFAIDRIN SMALL LETTER N",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E7B,
- },
- [0x16E7C]={
- category="ll",
- description="MEDEFAIDRIN SMALL LETTER R",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E7C,
- },
- [0x16E7D]={
- category="ll",
- description="MEDEFAIDRIN SMALL LETTER O",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E7D,
- },
- [0x16E7E]={
- category="ll",
- description="MEDEFAIDRIN SMALL LETTER AI",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E7E,
- },
- [0x16E7F]={
- category="ll",
- description="MEDEFAIDRIN SMALL LETTER Y",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E7F,
- },
- [0x16E80]={
- category="no",
- description="MEDEFAIDRIN DIGIT ZERO",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E80,
- },
- [0x16E81]={
- category="no",
- description="MEDEFAIDRIN DIGIT ONE",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E81,
- },
- [0x16E82]={
- category="no",
- description="MEDEFAIDRIN DIGIT TWO",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E82,
- },
- [0x16E83]={
- category="no",
- description="MEDEFAIDRIN DIGIT THREE",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E83,
- },
- [0x16E84]={
- category="no",
- description="MEDEFAIDRIN DIGIT FOUR",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E84,
- },
- [0x16E85]={
- category="no",
- description="MEDEFAIDRIN DIGIT FIVE",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E85,
- },
- [0x16E86]={
- category="no",
- description="MEDEFAIDRIN DIGIT SIX",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E86,
- },
- [0x16E87]={
- category="no",
- description="MEDEFAIDRIN DIGIT SEVEN",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E87,
- },
- [0x16E88]={
- category="no",
- description="MEDEFAIDRIN DIGIT EIGHT",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E88,
- },
- [0x16E89]={
- category="no",
- description="MEDEFAIDRIN DIGIT NINE",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E89,
- },
- [0x16E8A]={
- category="no",
- description="MEDEFAIDRIN NUMBER TEN",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E8A,
- },
- [0x16E8B]={
- category="no",
- description="MEDEFAIDRIN NUMBER ELEVEN",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E8B,
- },
- [0x16E8C]={
- category="no",
- description="MEDEFAIDRIN NUMBER TWELVE",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E8C,
- },
- [0x16E8D]={
- category="no",
- description="MEDEFAIDRIN NUMBER THIRTEEN",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E8D,
- },
- [0x16E8E]={
- category="no",
- description="MEDEFAIDRIN NUMBER FOURTEEN",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E8E,
- },
- [0x16E8F]={
- category="no",
- description="MEDEFAIDRIN NUMBER FIFTEEN",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E8F,
- },
- [0x16E90]={
- category="no",
- description="MEDEFAIDRIN NUMBER SIXTEEN",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E90,
- },
- [0x16E91]={
- category="no",
- description="MEDEFAIDRIN NUMBER SEVENTEEN",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E91,
- },
- [0x16E92]={
- category="no",
- description="MEDEFAIDRIN NUMBER EIGHTEEN",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E92,
- },
- [0x16E93]={
- category="no",
- description="MEDEFAIDRIN NUMBER NINETEEN",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E93,
- },
- [0x16E94]={
- category="no",
- description="MEDEFAIDRIN DIGIT ONE ALTERNATE FORM",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E94,
- },
- [0x16E95]={
- category="no",
- description="MEDEFAIDRIN DIGIT TWO ALTERNATE FORM",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E95,
- },
- [0x16E96]={
- category="no",
- description="MEDEFAIDRIN DIGIT THREE ALTERNATE FORM",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E96,
- },
- [0x16E97]={
- category="po",
- description="MEDEFAIDRIN COMMA",
- direction="l",
- linebreak="ba",
- unicodeslot=0x16E97,
- },
- [0x16E98]={
- category="po",
- description="MEDEFAIDRIN FULL STOP",
- direction="l",
- linebreak="ba",
- unicodeslot=0x16E98,
- },
- [0x16E99]={
- category="po",
- description="MEDEFAIDRIN SYMBOL AIVA",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E99,
- },
- [0x16E9A]={
- category="po",
- description="MEDEFAIDRIN EXCLAMATION OH",
- direction="l",
- linebreak="al",
- unicodeslot=0x16E9A,
- },
[0x16F00]={
category="lo",
description="MIAO LETTER PA",
@@ -213384,146 +209493,6 @@ characters.data={
linebreak="al",
unicodeslot=0x1D245,
},
- [0x1D2E0]={
- category="no",
- description="MAYAN NUMERAL ZERO",
- direction="l",
- linebreak="al",
- unicodeslot=0x1D2E0,
- },
- [0x1D2E1]={
- category="no",
- description="MAYAN NUMERAL ONE",
- direction="l",
- linebreak="al",
- unicodeslot=0x1D2E1,
- },
- [0x1D2E2]={
- category="no",
- description="MAYAN NUMERAL TWO",
- direction="l",
- linebreak="al",
- unicodeslot=0x1D2E2,
- },
- [0x1D2E3]={
- category="no",
- description="MAYAN NUMERAL THREE",
- direction="l",
- linebreak="al",
- unicodeslot=0x1D2E3,
- },
- [0x1D2E4]={
- category="no",
- description="MAYAN NUMERAL FOUR",
- direction="l",
- linebreak="al",
- unicodeslot=0x1D2E4,
- },
- [0x1D2E5]={
- category="no",
- description="MAYAN NUMERAL FIVE",
- direction="l",
- linebreak="al",
- unicodeslot=0x1D2E5,
- },
- [0x1D2E6]={
- category="no",
- description="MAYAN NUMERAL SIX",
- direction="l",
- linebreak="al",
- unicodeslot=0x1D2E6,
- },
- [0x1D2E7]={
- category="no",
- description="MAYAN NUMERAL SEVEN",
- direction="l",
- linebreak="al",
- unicodeslot=0x1D2E7,
- },
- [0x1D2E8]={
- category="no",
- description="MAYAN NUMERAL EIGHT",
- direction="l",
- linebreak="al",
- unicodeslot=0x1D2E8,
- },
- [0x1D2E9]={
- category="no",
- description="MAYAN NUMERAL NINE",
- direction="l",
- linebreak="al",
- unicodeslot=0x1D2E9,
- },
- [0x1D2EA]={
- category="no",
- description="MAYAN NUMERAL TEN",
- direction="l",
- linebreak="al",
- unicodeslot=0x1D2EA,
- },
- [0x1D2EB]={
- category="no",
- description="MAYAN NUMERAL ELEVEN",
- direction="l",
- linebreak="al",
- unicodeslot=0x1D2EB,
- },
- [0x1D2EC]={
- category="no",
- description="MAYAN NUMERAL TWELVE",
- direction="l",
- linebreak="al",
- unicodeslot=0x1D2EC,
- },
- [0x1D2ED]={
- category="no",
- description="MAYAN NUMERAL THIRTEEN",
- direction="l",
- linebreak="al",
- unicodeslot=0x1D2ED,
- },
- [0x1D2EE]={
- category="no",
- description="MAYAN NUMERAL FOURTEEN",
- direction="l",
- linebreak="al",
- unicodeslot=0x1D2EE,
- },
- [0x1D2EF]={
- category="no",
- description="MAYAN NUMERAL FIFTEEN",
- direction="l",
- linebreak="al",
- unicodeslot=0x1D2EF,
- },
- [0x1D2F0]={
- category="no",
- description="MAYAN NUMERAL SIXTEEN",
- direction="l",
- linebreak="al",
- unicodeslot=0x1D2F0,
- },
- [0x1D2F1]={
- category="no",
- description="MAYAN NUMERAL SEVENTEEN",
- direction="l",
- linebreak="al",
- unicodeslot=0x1D2F1,
- },
- [0x1D2F2]={
- category="no",
- description="MAYAN NUMERAL EIGHTEEN",
- direction="l",
- linebreak="al",
- unicodeslot=0x1D2F2,
- },
- [0x1D2F3]={
- category="no",
- description="MAYAN NUMERAL NINETEEN",
- direction="l",
- linebreak="al",
- unicodeslot=0x1D2F3,
- },
[0x1D300]={
category="so",
description="MONOGRAM FOR EARTH",
@@ -214259,55 +210228,6 @@ characters.data={
linebreak="al",
unicodeslot=0x1D371,
},
- [0x1D372]={
- category="no",
- description="IDEOGRAPHIC TALLY MARK ONE",
- direction="l",
- linebreak="al",
- unicodeslot=0x1D372,
- },
- [0x1D373]={
- category="no",
- description="IDEOGRAPHIC TALLY MARK TWO",
- direction="l",
- linebreak="al",
- unicodeslot=0x1D373,
- },
- [0x1D374]={
- category="no",
- description="IDEOGRAPHIC TALLY MARK THREE",
- direction="l",
- linebreak="al",
- unicodeslot=0x1D374,
- },
- [0x1D375]={
- category="no",
- description="IDEOGRAPHIC TALLY MARK FOUR",
- direction="l",
- linebreak="al",
- unicodeslot=0x1D375,
- },
- [0x1D376]={
- category="no",
- description="IDEOGRAPHIC TALLY MARK FIVE",
- direction="l",
- linebreak="al",
- unicodeslot=0x1D376,
- },
- [0x1D377]={
- category="no",
- description="TALLY MARK ONE",
- direction="l",
- linebreak="al",
- unicodeslot=0x1D377,
- },
- [0x1D378]={
- category="no",
- description="TALLY MARK FIVE",
- direction="l",
- linebreak="al",
- unicodeslot=0x1D378,
- },
[0x1D400]={
category="lu",
description="MATHEMATICAL BOLD CAPITAL A",
@@ -230250,482 +226170,6 @@ characters.data={
linebreak="op",
unicodeslot=0x1E95F,
},
- [0x1EC71]={
- category="no",
- description="INDIC SIYAQ NUMBER ONE",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC71,
- },
- [0x1EC72]={
- category="no",
- description="INDIC SIYAQ NUMBER TWO",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC72,
- },
- [0x1EC73]={
- category="no",
- description="INDIC SIYAQ NUMBER THREE",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC73,
- },
- [0x1EC74]={
- category="no",
- description="INDIC SIYAQ NUMBER FOUR",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC74,
- },
- [0x1EC75]={
- category="no",
- description="INDIC SIYAQ NUMBER FIVE",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC75,
- },
- [0x1EC76]={
- category="no",
- description="INDIC SIYAQ NUMBER SIX",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC76,
- },
- [0x1EC77]={
- category="no",
- description="INDIC SIYAQ NUMBER SEVEN",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC77,
- },
- [0x1EC78]={
- category="no",
- description="INDIC SIYAQ NUMBER EIGHT",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC78,
- },
- [0x1EC79]={
- category="no",
- description="INDIC SIYAQ NUMBER NINE",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC79,
- },
- [0x1EC7A]={
- category="no",
- description="INDIC SIYAQ NUMBER TEN",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC7A,
- },
- [0x1EC7B]={
- category="no",
- description="INDIC SIYAQ NUMBER TWENTY",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC7B,
- },
- [0x1EC7C]={
- category="no",
- description="INDIC SIYAQ NUMBER THIRTY",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC7C,
- },
- [0x1EC7D]={
- category="no",
- description="INDIC SIYAQ NUMBER FORTY",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC7D,
- },
- [0x1EC7E]={
- category="no",
- description="INDIC SIYAQ NUMBER FIFTY",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC7E,
- },
- [0x1EC7F]={
- category="no",
- description="INDIC SIYAQ NUMBER SIXTY",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC7F,
- },
- [0x1EC80]={
- category="no",
- description="INDIC SIYAQ NUMBER SEVENTY",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC80,
- },
- [0x1EC81]={
- category="no",
- description="INDIC SIYAQ NUMBER EIGHTY",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC81,
- },
- [0x1EC82]={
- category="no",
- description="INDIC SIYAQ NUMBER NINETY",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC82,
- },
- [0x1EC83]={
- category="no",
- description="INDIC SIYAQ NUMBER ONE HUNDRED",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC83,
- },
- [0x1EC84]={
- category="no",
- description="INDIC SIYAQ NUMBER TWO HUNDRED",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC84,
- },
- [0x1EC85]={
- category="no",
- description="INDIC SIYAQ NUMBER THREE HUNDRED",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC85,
- },
- [0x1EC86]={
- category="no",
- description="INDIC SIYAQ NUMBER FOUR HUNDRED",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC86,
- },
- [0x1EC87]={
- category="no",
- description="INDIC SIYAQ NUMBER FIVE HUNDRED",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC87,
- },
- [0x1EC88]={
- category="no",
- description="INDIC SIYAQ NUMBER SIX HUNDRED",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC88,
- },
- [0x1EC89]={
- category="no",
- description="INDIC SIYAQ NUMBER SEVEN HUNDRED",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC89,
- },
- [0x1EC8A]={
- category="no",
- description="INDIC SIYAQ NUMBER EIGHT HUNDRED",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC8A,
- },
- [0x1EC8B]={
- category="no",
- description="INDIC SIYAQ NUMBER NINE HUNDRED",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC8B,
- },
- [0x1EC8C]={
- category="no",
- description="INDIC SIYAQ NUMBER ONE THOUSAND",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC8C,
- },
- [0x1EC8D]={
- category="no",
- description="INDIC SIYAQ NUMBER TWO THOUSAND",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC8D,
- },
- [0x1EC8E]={
- category="no",
- description="INDIC SIYAQ NUMBER THREE THOUSAND",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC8E,
- },
- [0x1EC8F]={
- category="no",
- description="INDIC SIYAQ NUMBER FOUR THOUSAND",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC8F,
- },
- [0x1EC90]={
- category="no",
- description="INDIC SIYAQ NUMBER FIVE THOUSAND",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC90,
- },
- [0x1EC91]={
- category="no",
- description="INDIC SIYAQ NUMBER SIX THOUSAND",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC91,
- },
- [0x1EC92]={
- category="no",
- description="INDIC SIYAQ NUMBER SEVEN THOUSAND",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC92,
- },
- [0x1EC93]={
- category="no",
- description="INDIC SIYAQ NUMBER EIGHT THOUSAND",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC93,
- },
- [0x1EC94]={
- category="no",
- description="INDIC SIYAQ NUMBER NINE THOUSAND",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC94,
- },
- [0x1EC95]={
- category="no",
- description="INDIC SIYAQ NUMBER TEN THOUSAND",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC95,
- },
- [0x1EC96]={
- category="no",
- description="INDIC SIYAQ NUMBER TWENTY THOUSAND",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC96,
- },
- [0x1EC97]={
- category="no",
- description="INDIC SIYAQ NUMBER THIRTY THOUSAND",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC97,
- },
- [0x1EC98]={
- category="no",
- description="INDIC SIYAQ NUMBER FORTY THOUSAND",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC98,
- },
- [0x1EC99]={
- category="no",
- description="INDIC SIYAQ NUMBER FIFTY THOUSAND",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC99,
- },
- [0x1EC9A]={
- category="no",
- description="INDIC SIYAQ NUMBER SIXTY THOUSAND",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC9A,
- },
- [0x1EC9B]={
- category="no",
- description="INDIC SIYAQ NUMBER SEVENTY THOUSAND",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC9B,
- },
- [0x1EC9C]={
- category="no",
- description="INDIC SIYAQ NUMBER EIGHTY THOUSAND",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC9C,
- },
- [0x1EC9D]={
- category="no",
- description="INDIC SIYAQ NUMBER NINETY THOUSAND",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC9D,
- },
- [0x1EC9E]={
- category="no",
- description="INDIC SIYAQ NUMBER LAKH",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC9E,
- },
- [0x1EC9F]={
- category="no",
- description="INDIC SIYAQ NUMBER LAKHAN",
- direction="al",
- linebreak="al",
- unicodeslot=0x1EC9F,
- },
- [0x1ECA0]={
- category="no",
- description="INDIC SIYAQ LAKH MARK",
- direction="al",
- linebreak="al",
- unicodeslot=0x1ECA0,
- },
- [0x1ECA1]={
- category="no",
- description="INDIC SIYAQ NUMBER KAROR",
- direction="al",
- linebreak="al",
- unicodeslot=0x1ECA1,
- },
- [0x1ECA2]={
- category="no",
- description="INDIC SIYAQ NUMBER KARORAN",
- direction="al",
- linebreak="al",
- unicodeslot=0x1ECA2,
- },
- [0x1ECA3]={
- category="no",
- description="INDIC SIYAQ NUMBER PREFIXED ONE",
- direction="al",
- linebreak="al",
- unicodeslot=0x1ECA3,
- },
- [0x1ECA4]={
- category="no",
- description="INDIC SIYAQ NUMBER PREFIXED TWO",
- direction="al",
- linebreak="al",
- unicodeslot=0x1ECA4,
- },
- [0x1ECA5]={
- category="no",
- description="INDIC SIYAQ NUMBER PREFIXED THREE",
- direction="al",
- linebreak="al",
- unicodeslot=0x1ECA5,
- },
- [0x1ECA6]={
- category="no",
- description="INDIC SIYAQ NUMBER PREFIXED FOUR",
- direction="al",
- linebreak="al",
- unicodeslot=0x1ECA6,
- },
- [0x1ECA7]={
- category="no",
- description="INDIC SIYAQ NUMBER PREFIXED FIVE",
- direction="al",
- linebreak="al",
- unicodeslot=0x1ECA7,
- },
- [0x1ECA8]={
- category="no",
- description="INDIC SIYAQ NUMBER PREFIXED SIX",
- direction="al",
- linebreak="al",
- unicodeslot=0x1ECA8,
- },
- [0x1ECA9]={
- category="no",
- description="INDIC SIYAQ NUMBER PREFIXED SEVEN",
- direction="al",
- linebreak="al",
- unicodeslot=0x1ECA9,
- },
- [0x1ECAA]={
- category="no",
- description="INDIC SIYAQ NUMBER PREFIXED EIGHT",
- direction="al",
- linebreak="al",
- unicodeslot=0x1ECAA,
- },
- [0x1ECAB]={
- category="no",
- description="INDIC SIYAQ NUMBER PREFIXED NINE",
- direction="al",
- linebreak="al",
- unicodeslot=0x1ECAB,
- },
- [0x1ECAC]={
- category="so",
- description="INDIC SIYAQ PLACEHOLDER",
- direction="al",
- linebreak="po",
- unicodeslot=0x1ECAC,
- },
- [0x1ECAD]={
- category="no",
- description="INDIC SIYAQ FRACTION ONE QUARTER",
- direction="al",
- linebreak="al",
- unicodeslot=0x1ECAD,
- },
- [0x1ECAE]={
- category="no",
- description="INDIC SIYAQ FRACTION ONE HALF",
- direction="al",
- linebreak="al",
- unicodeslot=0x1ECAE,
- },
- [0x1ECAF]={
- category="no",
- description="INDIC SIYAQ FRACTION THREE QUARTERS",
- direction="al",
- linebreak="al",
- unicodeslot=0x1ECAF,
- },
- [0x1ECB0]={
- category="sc",
- description="INDIC SIYAQ RUPEE MARK",
- direction="al",
- linebreak="po",
- unicodeslot=0x1ECB0,
- },
- [0x1ECB1]={
- category="no",
- description="INDIC SIYAQ NUMBER ALTERNATE ONE",
- direction="al",
- linebreak="al",
- unicodeslot=0x1ECB1,
- },
- [0x1ECB2]={
- category="no",
- description="INDIC SIYAQ NUMBER ALTERNATE TWO",
- direction="al",
- linebreak="al",
- unicodeslot=0x1ECB2,
- },
- [0x1ECB3]={
- category="no",
- description="INDIC SIYAQ NUMBER ALTERNATE TEN THOUSAND",
- direction="al",
- linebreak="al",
- unicodeslot=0x1ECB3,
- },
- [0x1ECB4]={
- category="no",
- description="INDIC SIYAQ ALTERNATE LAKH MARK",
- direction="al",
- linebreak="al",
- unicodeslot=0x1ECB4,
- },
[0x1EE00]={
category="lo",
comment="check math properties",
@@ -233987,13 +229431,6 @@ characters.data={
specials={ "circle", 0x57, 0x5A },
unicodeslot=0x1F12E,
},
- [0x1F12F]={
- category="so",
- description="COPYLEFT SYMBOL",
- direction="on",
- linebreak="al",
- unicodeslot=0x1F12F,
- },
[0x1F130]={
category="so",
cjkwd="a",
@@ -243616,14 +239053,6 @@ characters.data={
linebreak="id",
unicodeslot=0x1F6F8,
},
- [0x1F6F9]={
- category="so",
- cjkwd="w",
- description="SKATEBOARD",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F6F9,
- },
[0x1F700]={
category="so",
description="ALCHEMICAL SYMBOL FOR QUINTESSENCE",
@@ -245032,34 +240461,6 @@ characters.data={
linebreak="al",
unicodeslot=0x1F7D4,
},
- [0x1F7D5]={
- category="so",
- description="CIRCLED TRIANGLE",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F7D5,
- },
- [0x1F7D6]={
- category="so",
- description="NEGATIVE CIRCLED TRIANGLE",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F7D6,
- },
- [0x1F7D7]={
- category="so",
- description="CIRCLED SQUARE",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F7D7,
- },
- [0x1F7D8]={
- category="so",
- description="NEGATIVE CIRCLED SQUARE",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F7D8,
- },
[0x1F800]={
category="so",
description="LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD",
@@ -246666,30 +242067,6 @@ characters.data={
linebreak="id",
unicodeslot=0x1F94C,
},
- [0x1F94D]={
- category="so",
- cjkwd="w",
- description="LACROSSE STICK AND BALL",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F94D,
- },
- [0x1F94E]={
- category="so",
- cjkwd="w",
- description="SOFTBALL",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F94E,
- },
- [0x1F94F]={
- category="so",
- cjkwd="w",
- description="FLYING DISC",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F94F,
- },
[0x1F950]={
category="so",
cjkwd="w",
@@ -246915,118 +242292,6 @@ characters.data={
linebreak="id",
unicodeslot=0x1F96B,
},
- [0x1F96C]={
- category="so",
- cjkwd="w",
- description="LEAFY GREEN",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F96C,
- },
- [0x1F96D]={
- category="so",
- cjkwd="w",
- description="MANGO",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F96D,
- },
- [0x1F96E]={
- category="so",
- cjkwd="w",
- description="MOON CAKE",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F96E,
- },
- [0x1F96F]={
- category="so",
- cjkwd="w",
- description="BAGEL",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F96F,
- },
- [0x1F970]={
- category="so",
- cjkwd="w",
- description="SMILING FACE WITH SMILING EYES AND THREE HEARTS",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F970,
- },
- [0x1F973]={
- category="so",
- cjkwd="w",
- description="FACE WITH PARTY HORN AND PARTY HAT",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F973,
- },
- [0x1F974]={
- category="so",
- cjkwd="w",
- description="FACE WITH UNEVEN EYES AND WAVY MOUTH",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F974,
- },
- [0x1F975]={
- category="so",
- cjkwd="w",
- description="OVERHEATED FACE",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F975,
- },
- [0x1F976]={
- category="so",
- cjkwd="w",
- description="FREEZING FACE",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F976,
- },
- [0x1F97A]={
- category="so",
- cjkwd="w",
- description="FACE WITH PLEADING EYES",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F97A,
- },
- [0x1F97C]={
- category="so",
- cjkwd="w",
- description="LAB COAT",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F97C,
- },
- [0x1F97D]={
- category="so",
- cjkwd="w",
- description="GOGGLES",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F97D,
- },
- [0x1F97E]={
- category="so",
- cjkwd="w",
- description="HIKING BOOT",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F97E,
- },
- [0x1F97F]={
- category="so",
- cjkwd="w",
- description="FLAT SHOE",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F97F,
- },
[0x1F980]={
category="so",
cjkwd="w",
@@ -247220,174 +242485,6 @@ characters.data={
linebreak="id",
unicodeslot=0x1F997,
},
- [0x1F998]={
- category="so",
- cjkwd="w",
- description="KANGAROO",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F998,
- },
- [0x1F999]={
- category="so",
- cjkwd="w",
- description="LLAMA",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F999,
- },
- [0x1F99A]={
- category="so",
- cjkwd="w",
- description="PEACOCK",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F99A,
- },
- [0x1F99B]={
- category="so",
- cjkwd="w",
- description="HIPPOPOTAMUS",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F99B,
- },
- [0x1F99C]={
- category="so",
- cjkwd="w",
- description="PARROT",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F99C,
- },
- [0x1F99D]={
- category="so",
- cjkwd="w",
- description="RACCOON",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F99D,
- },
- [0x1F99E]={
- category="so",
- cjkwd="w",
- description="LOBSTER",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F99E,
- },
- [0x1F99F]={
- category="so",
- cjkwd="w",
- description="MOSQUITO",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F99F,
- },
- [0x1F9A0]={
- category="so",
- cjkwd="w",
- description="MICROBE",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F9A0,
- },
- [0x1F9A1]={
- category="so",
- cjkwd="w",
- description="BADGER",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F9A1,
- },
- [0x1F9A2]={
- category="so",
- cjkwd="w",
- description="SWAN",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F9A2,
- },
- [0x1F9B0]={
- category="so",
- cjkwd="w",
- description="EMOJI COMPONENT RED HAIR",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F9B0,
- },
- [0x1F9B1]={
- category="so",
- cjkwd="w",
- description="EMOJI COMPONENT CURLY HAIR",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F9B1,
- },
- [0x1F9B2]={
- category="so",
- cjkwd="w",
- description="EMOJI COMPONENT BALD",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F9B2,
- },
- [0x1F9B3]={
- category="so",
- cjkwd="w",
- description="EMOJI COMPONENT WHITE HAIR",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F9B3,
- },
- [0x1F9B4]={
- category="so",
- cjkwd="w",
- description="BONE",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F9B4,
- },
- [0x1F9B5]={
- category="so",
- cjkwd="w",
- description="LEG",
- direction="on",
- linebreak="eb",
- unicodeslot=0x1F9B5,
- },
- [0x1F9B6]={
- category="so",
- cjkwd="w",
- description="FOOT",
- direction="on",
- linebreak="eb",
- unicodeslot=0x1F9B6,
- },
- [0x1F9B7]={
- category="so",
- cjkwd="w",
- description="TOOTH",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F9B7,
- },
- [0x1F9B8]={
- category="so",
- cjkwd="w",
- description="SUPERHERO",
- direction="on",
- linebreak="eb",
- unicodeslot=0x1F9B8,
- },
- [0x1F9B9]={
- category="so",
- cjkwd="w",
- description="SUPERVILLAIN",
- direction="on",
- linebreak="eb",
- unicodeslot=0x1F9B9,
- },
[0x1F9C0]={
category="so",
cjkwd="w",
@@ -247396,22 +242493,6 @@ characters.data={
linebreak="id",
unicodeslot=0x1F9C0,
},
- [0x1F9C1]={
- category="so",
- cjkwd="w",
- description="CUPCAKE",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F9C1,
- },
- [0x1F9C2]={
- category="so",
- cjkwd="w",
- description="SALT SHAKER",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F9C2,
- },
[0x1F9D0]={
category="so",
cjkwd="w",
@@ -247596,304 +242677,6 @@ characters.data={
linebreak="id",
unicodeslot=0x1F9E6,
},
- [0x1F9E7]={
- category="so",
- cjkwd="w",
- description="RED GIFT ENVELOPE",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F9E7,
- },
- [0x1F9E8]={
- category="so",
- cjkwd="w",
- description="FIRECRACKER",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F9E8,
- },
- [0x1F9E9]={
- category="so",
- cjkwd="w",
- description="JIGSAW PUZZLE PIECE",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F9E9,
- },
- [0x1F9EA]={
- category="so",
- cjkwd="w",
- description="TEST TUBE",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F9EA,
- },
- [0x1F9EB]={
- category="so",
- cjkwd="w",
- description="PETRI DISH",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F9EB,
- },
- [0x1F9EC]={
- category="so",
- cjkwd="w",
- description="DNA DOUBLE HELIX",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F9EC,
- },
- [0x1F9ED]={
- category="so",
- cjkwd="w",
- description="COMPASS",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F9ED,
- },
- [0x1F9EE]={
- category="so",
- cjkwd="w",
- description="ABACUS",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F9EE,
- },
- [0x1F9EF]={
- category="so",
- cjkwd="w",
- description="FIRE EXTINGUISHER",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F9EF,
- },
- [0x1F9F0]={
- category="so",
- cjkwd="w",
- description="TOOLBOX",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F9F0,
- },
- [0x1F9F1]={
- category="so",
- cjkwd="w",
- description="BRICK",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F9F1,
- },
- [0x1F9F2]={
- category="so",
- cjkwd="w",
- description="MAGNET",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F9F2,
- },
- [0x1F9F3]={
- category="so",
- cjkwd="w",
- description="LUGGAGE",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F9F3,
- },
- [0x1F9F4]={
- category="so",
- cjkwd="w",
- description="LOTION BOTTLE",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F9F4,
- },
- [0x1F9F5]={
- category="so",
- cjkwd="w",
- description="SPOOL OF THREAD",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F9F5,
- },
- [0x1F9F6]={
- category="so",
- cjkwd="w",
- description="BALL OF YARN",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F9F6,
- },
- [0x1F9F7]={
- category="so",
- cjkwd="w",
- description="SAFETY PIN",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F9F7,
- },
- [0x1F9F8]={
- category="so",
- cjkwd="w",
- description="TEDDY BEAR",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F9F8,
- },
- [0x1F9F9]={
- category="so",
- cjkwd="w",
- description="BROOM",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F9F9,
- },
- [0x1F9FA]={
- category="so",
- cjkwd="w",
- description="BASKET",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F9FA,
- },
- [0x1F9FB]={
- category="so",
- cjkwd="w",
- description="ROLL OF PAPER",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F9FB,
- },
- [0x1F9FC]={
- category="so",
- cjkwd="w",
- description="BAR OF SOAP",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F9FC,
- },
- [0x1F9FD]={
- category="so",
- cjkwd="w",
- description="SPONGE",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F9FD,
- },
- [0x1F9FE]={
- category="so",
- cjkwd="w",
- description="RECEIPT",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F9FE,
- },
- [0x1F9FF]={
- category="so",
- cjkwd="w",
- description="NAZAR AMULET",
- direction="on",
- linebreak="id",
- unicodeslot=0x1F9FF,
- },
- [0x1FA60]={
- category="so",
- description="XIANGQI RED GENERAL",
- direction="on",
- linebreak="id",
- unicodeslot=0x1FA60,
- },
- [0x1FA61]={
- category="so",
- description="XIANGQI RED MANDARIN",
- direction="on",
- linebreak="id",
- unicodeslot=0x1FA61,
- },
- [0x1FA62]={
- category="so",
- description="XIANGQI RED ELEPHANT",
- direction="on",
- linebreak="id",
- unicodeslot=0x1FA62,
- },
- [0x1FA63]={
- category="so",
- description="XIANGQI RED HORSE",
- direction="on",
- linebreak="id",
- unicodeslot=0x1FA63,
- },
- [0x1FA64]={
- category="so",
- description="XIANGQI RED CHARIOT",
- direction="on",
- linebreak="id",
- unicodeslot=0x1FA64,
- },
- [0x1FA65]={
- category="so",
- description="XIANGQI RED CANNON",
- direction="on",
- linebreak="id",
- unicodeslot=0x1FA65,
- },
- [0x1FA66]={
- category="so",
- description="XIANGQI RED SOLDIER",
- direction="on",
- linebreak="id",
- unicodeslot=0x1FA66,
- },
- [0x1FA67]={
- category="so",
- description="XIANGQI BLACK GENERAL",
- direction="on",
- linebreak="id",
- unicodeslot=0x1FA67,
- },
- [0x1FA68]={
- category="so",
- description="XIANGQI BLACK MANDARIN",
- direction="on",
- linebreak="id",
- unicodeslot=0x1FA68,
- },
- [0x1FA69]={
- category="so",
- description="XIANGQI BLACK ELEPHANT",
- direction="on",
- linebreak="id",
- unicodeslot=0x1FA69,
- },
- [0x1FA6A]={
- category="so",
- description="XIANGQI BLACK HORSE",
- direction="on",
- linebreak="id",
- unicodeslot=0x1FA6A,
- },
- [0x1FA6B]={
- category="so",
- description="XIANGQI BLACK CHARIOT",
- direction="on",
- linebreak="id",
- unicodeslot=0x1FA6B,
- },
- [0x1FA6C]={
- category="so",
- description="XIANGQI BLACK CANNON",
- direction="on",
- linebreak="id",
- unicodeslot=0x1FA6C,
- },
- [0x1FA6D]={
- category="so",
- description="XIANGQI BLACK SOLDIER",
- direction="on",
- linebreak="id",
- unicodeslot=0x1FA6D,
- },
[0x2F800]={
category="lo",
cjkwd="w",
diff --git a/Master/texmf-dist/tex/context/base/mkiv/char-emj.lua b/Master/texmf-dist/tex/context/base/mkiv/char-emj.lua
index b00e9ebf809..718d3bc6efb 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/char-emj.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/char-emj.lua
@@ -13,42 +13,60 @@ return {
["1st place medal"]={ 0x1F947 },
["2nd place medal"]={ 0x1F948 },
["3rd place medal"]={ 0x1F949 },
- ["a button (blood type)"]={ 0x1F170, 0xFE0F },
+ ["a button (blood type)"]={ 0x1F170 },
["ab button (blood type)"]={ 0x1F18E },
- ["abacus"]={ 0x1F9EE },
- ["adhesive bandage"]={ 0x1FA79 },
- ["admission tickets"]={ 0x1F39F, 0xFE0F },
+ ["admission tickets"]={ 0x1F39F },
+ ["adult"]={ 0x1F9D1 },
+ ["adult: dark skin tone"]={ 0x1F9D1, 0x1F3FF },
+ ["adult: light skin tone"]={ 0x1F9D1, 0x1F3FB },
+ ["adult: medium skin tone"]={ 0x1F9D1, 0x1F3FD },
+ ["adult: medium-dark skin tone"]={ 0x1F9D1, 0x1F3FE },
+ ["adult: medium-light skin tone"]={ 0x1F9D1, 0x1F3FC },
["aerial tramway"]={ 0x1F6A1 },
- ["airplane"]={ 0x2708, 0xFE0F },
+ ["afghanistan"]={ 0x1F1E6, 0x1F1EB },
+ ["airplane"]={ 0x2708 },
["airplane arrival"]={ 0x1F6EC },
["airplane departure"]={ 0x1F6EB },
["alarm clock"]={ 0x23F0 },
- ["alembic"]={ 0x2697, 0xFE0F },
+ ["albania"]={ 0x1F1E6, 0x1F1F1 },
+ ["alembic"]={ 0x2697 },
+ ["algeria"]={ 0x1F1E9, 0x1F1FF },
["alien"]={ 0x1F47D },
["alien monster"]={ 0x1F47E },
["ambulance"]={ 0x1F691 },
["american football"]={ 0x1F3C8 },
+ ["american samoa"]={ 0x1F1E6, 0x1F1F8 },
["amphora"]={ 0x1F3FA },
["anchor"]={ 0x2693 },
+ ["andorra"]={ 0x1F1E6, 0x1F1E9 },
["anger symbol"]={ 0x1F4A2 },
+ ["angola"]={ 0x1F1E6, 0x1F1F4 },
["angry face"]={ 0x1F620 },
["angry face with horns"]={ 0x1F47F },
+ ["anguilla"]={ 0x1F1E6, 0x1F1EE },
["anguished face"]={ 0x1F627 },
["ant"]={ 0x1F41C },
+ ["antarctica"]={ 0x1F1E6, 0x1F1F6 },
["antenna bars"]={ 0x1F4F6 },
- ["anxious face with sweat"]={ 0x1F630 },
+ ["anticlockwise arrows button"]={ 0x1F504 },
+ ["antigua & barbuda"]={ 0x1F1E6, 0x1F1EC },
["aquarius"]={ 0x2652 },
+ ["argentina"]={ 0x1F1E6, 0x1F1F7 },
["aries"]={ 0x2648 },
+ ["armenia"]={ 0x1F1E6, 0x1F1F2 },
["articulated lorry"]={ 0x1F69B },
["artist palette"]={ 0x1F3A8 },
+ ["aruba"]={ 0x1F1E6, 0x1F1FC },
+ ["ascension island"]={ 0x1F1E6, 0x1F1E8 },
["astonished face"]={ 0x1F632 },
["atm sign"]={ 0x1F3E7 },
- ["atom symbol"]={ 0x269B, 0xFE0F },
- ["auto rickshaw"]={ 0x1F6FA },
+ ["atom symbol"]={ 0x269B },
+ ["australia"]={ 0x1F1E6, 0x1F1FA },
+ ["austria"]={ 0x1F1E6, 0x1F1F9 },
["automobile"]={ 0x1F697 },
["avocado"]={ 0x1F951 },
- ["axe"]={ 0x1FA93 },
- ["b button (blood type)"]={ 0x1F171, 0xFE0F },
+ ["azerbaijan"]={ 0x1F1E6, 0x1F1FF },
+ ["b button (blood type)"]={ 0x1F171 },
["baby"]={ 0x1F476 },
["baby angel"]={ 0x1F47C },
["baby angel: dark skin tone"]={ 0x1F47C, 0x1F3FF },
@@ -89,68 +107,97 @@ return {
["backhand index pointing up: medium skin tone"]={ 0x1F446, 0x1F3FD },
["backhand index pointing up: medium-dark skin tone"]={ 0x1F446, 0x1F3FE },
["backhand index pointing up: medium-light skin tone"]={ 0x1F446, 0x1F3FC },
- ["backpack"]={ 0x1F392 },
["bacon"]={ 0x1F953 },
- ["badger"]={ 0x1F9A1 },
["badminton"]={ 0x1F3F8 },
- ["bagel"]={ 0x1F96F },
["baggage claim"]={ 0x1F6C4 },
["baguette bread"]={ 0x1F956 },
- ["balance scale"]={ 0x2696, 0xFE0F },
- ["ballet shoes"]={ 0x1FA70 },
+ ["bahamas"]={ 0x1F1E7, 0x1F1F8 },
+ ["bahrain"]={ 0x1F1E7, 0x1F1ED },
+ ["balance scale"]={ 0x2696 },
["balloon"]={ 0x1F388 },
- ["ballot box with ballot"]={ 0x1F5F3, 0xFE0F },
+ ["ballot box with ballot"]={ 0x1F5F3 },
+ ["ballot box with check"]={ 0x2611 },
["banana"]={ 0x1F34C },
- ["banjo"]={ 0x1FA95 },
+ ["bangladesh"]={ 0x1F1E7, 0x1F1E9 },
["bank"]={ 0x1F3E6 },
["bar chart"]={ 0x1F4CA },
+ ["barbados"]={ 0x1F1E7, 0x1F1E7 },
["barber pole"]={ 0x1F488 },
["baseball"]={ 0x26BE },
- ["basket"]={ 0x1F9FA },
["basketball"]={ 0x1F3C0 },
["bat"]={ 0x1F987 },
["bathtub"]={ 0x1F6C1 },
["battery"]={ 0x1F50B },
- ["beach with umbrella"]={ 0x1F3D6, 0xFE0F },
- ["beaming face with smiling eyes"]={ 0x1F601 },
- ["bear"]={ 0x1F43B },
+ ["beach with umbrella"]={ 0x1F3D6 },
+ ["bear face"]={ 0x1F43B },
+ ["bearded person"]={ 0x1F9D4 },
+ ["bearded person: dark skin tone"]={ 0x1F9D4, 0x1F3FF },
+ ["bearded person: light skin tone"]={ 0x1F9D4, 0x1F3FB },
+ ["bearded person: medium skin tone"]={ 0x1F9D4, 0x1F3FD },
+ ["bearded person: medium-dark skin tone"]={ 0x1F9D4, 0x1F3FE },
+ ["bearded person: medium-light skin tone"]={ 0x1F9D4, 0x1F3FC },
["beating heart"]={ 0x1F493 },
- ["bed"]={ 0x1F6CF, 0xFE0F },
+ ["bed"]={ 0x1F6CF },
["beer mug"]={ 0x1F37A },
+ ["belarus"]={ 0x1F1E7, 0x1F1FE },
+ ["belgium"]={ 0x1F1E7, 0x1F1EA },
+ ["belize"]={ 0x1F1E7, 0x1F1FF },
["bell"]={ 0x1F514 },
["bell with slash"]={ 0x1F515 },
- ["bellhop bell"]={ 0x1F6CE, 0xFE0F },
+ ["bellhop bell"]={ 0x1F6CE },
+ ["benin"]={ 0x1F1E7, 0x1F1EF },
["bento box"]={ 0x1F371 },
- ["beverage box"]={ 0x1F9C3 },
+ ["bermuda"]={ 0x1F1E7, 0x1F1F2 },
+ ["bhutan"]={ 0x1F1E7, 0x1F1F9 },
["bicycle"]={ 0x1F6B2 },
["bikini"]={ 0x1F459 },
["billed cap"]={ 0x1F9E2 },
- ["biohazard"]={ 0x2623, 0xFE0F },
+ ["biohazard"]={ 0x2623 },
["bird"]={ 0x1F426 },
["birthday cake"]={ 0x1F382 },
["black circle"]={ 0x26AB },
["black flag"]={ 0x1F3F4 },
["black heart"]={ 0x1F5A4 },
["black large square"]={ 0x2B1B },
- ["black medium square"]={ 0x25FC, 0xFE0F },
+ ["black medium square"]={ 0x25FC },
["black medium-small square"]={ 0x25FE },
- ["black nib"]={ 0x2712, 0xFE0F },
- ["black small square"]={ 0x25AA, 0xFE0F },
+ ["black nib"]={ 0x2712 },
+ ["black small square"]={ 0x25AA },
["black square button"]={ 0x1F532 },
+ ["blond-haired man"]={ 0x1F471, 0x200D, 0x2642 },
+ ["blond-haired man: dark skin tone"]={ 0x1F471, 0x1F3FF, 0x200D, 0x2642 },
+ ["blond-haired man: light skin tone"]={ 0x1F471, 0x1F3FB, 0x200D, 0x2642 },
+ ["blond-haired man: medium skin tone"]={ 0x1F471, 0x1F3FD, 0x200D, 0x2642 },
+ ["blond-haired man: medium-dark skin tone"]={ 0x1F471, 0x1F3FE, 0x200D, 0x2642 },
+ ["blond-haired man: medium-light skin tone"]={ 0x1F471, 0x1F3FC, 0x200D, 0x2642 },
+ ["blond-haired person"]={ 0x1F471 },
+ ["blond-haired person: dark skin tone"]={ 0x1F471, 0x1F3FF },
+ ["blond-haired person: light skin tone"]={ 0x1F471, 0x1F3FB },
+ ["blond-haired person: medium skin tone"]={ 0x1F471, 0x1F3FD },
+ ["blond-haired person: medium-dark skin tone"]={ 0x1F471, 0x1F3FE },
+ ["blond-haired person: medium-light skin tone"]={ 0x1F471, 0x1F3FC },
+ ["blond-haired woman"]={ 0x1F471, 0x200D, 0x2640 },
+ ["blond-haired woman: dark skin tone"]={ 0x1F471, 0x1F3FF, 0x200D, 0x2640 },
+ ["blond-haired woman: light skin tone"]={ 0x1F471, 0x1F3FB, 0x200D, 0x2640 },
+ ["blond-haired woman: medium skin tone"]={ 0x1F471, 0x1F3FD, 0x200D, 0x2640 },
+ ["blond-haired woman: medium-dark skin tone"]={ 0x1F471, 0x1F3FE, 0x200D, 0x2640 },
+ ["blond-haired woman: medium-light skin tone"]={ 0x1F471, 0x1F3FC, 0x200D, 0x2640 },
["blossom"]={ 0x1F33C },
["blowfish"]={ 0x1F421 },
["blue book"]={ 0x1F4D8 },
["blue circle"]={ 0x1F535 },
["blue heart"]={ 0x1F499 },
- ["blue square"]={ 0x1F7E6 },
["boar"]={ 0x1F417 },
+ ["bolivia"]={ 0x1F1E7, 0x1F1F4 },
["bomb"]={ 0x1F4A3 },
- ["bone"]={ 0x1F9B4 },
["bookmark"]={ 0x1F516 },
["bookmark tabs"]={ 0x1F4D1 },
["books"]={ 0x1F4DA },
+ ["bosnia & herzegovina"]={ 0x1F1E7, 0x1F1E6 },
+ ["botswana"]={ 0x1F1E7, 0x1F1FC },
["bottle with popping cork"]={ 0x1F37E },
["bouquet"]={ 0x1F490 },
+ ["bouvet island"]={ 0x1F1E7, 0x1F1FB },
["bow and arrow"]={ 0x1F3F9 },
["bowl with spoon"]={ 0x1F963 },
["bowling"]={ 0x1F3B3 },
@@ -162,6 +209,7 @@ return {
["boy: medium-dark skin tone"]={ 0x1F466, 0x1F3FE },
["boy: medium-light skin tone"]={ 0x1F466, 0x1F3FC },
["brain"]={ 0x1F9E0 },
+ ["brazil"]={ 0x1F1E7, 0x1F1F7 },
["bread"]={ 0x1F35E },
["breast-feeding"]={ 0x1F931 },
["breast-feeding: dark skin tone"]={ 0x1F931, 0x1F3FF },
@@ -169,7 +217,6 @@ return {
["breast-feeding: medium skin tone"]={ 0x1F931, 0x1F3FD },
["breast-feeding: medium-dark skin tone"]={ 0x1F931, 0x1F3FE },
["breast-feeding: medium-light skin tone"]={ 0x1F931, 0x1F3FC },
- ["brick"]={ 0x1F9F1 },
["bride with veil"]={ 0x1F470 },
["bride with veil: dark skin tone"]={ 0x1F470, 0x1F3FF },
["bride with veil: light skin tone"]={ 0x1F470, 0x1F3FB },
@@ -179,21 +226,21 @@ return {
["bridge at night"]={ 0x1F309 },
["briefcase"]={ 0x1F4BC },
["bright button"]={ 0x1F506 },
+ ["british indian ocean territory"]={ 0x1F1EE, 0x1F1F4 },
+ ["british virgin islands"]={ 0x1F1FB, 0x1F1EC },
["broccoli"]={ 0x1F966 },
["broken heart"]={ 0x1F494 },
- ["broom"]={ 0x1F9F9 },
- ["brown circle"]={ 0x1F7E4 },
- ["brown heart"]={ 0x1F90E },
- ["brown square"]={ 0x1F7EB },
+ ["brunei"]={ 0x1F1E7, 0x1F1F3 },
["bug"]={ 0x1F41B },
- ["building construction"]={ 0x1F3D7, 0xFE0F },
- ["bullet train"]={ 0x1F685 },
+ ["building construction"]={ 0x1F3D7 },
+ ["bulgaria"]={ 0x1F1E7, 0x1F1EC },
+ ["burkina faso"]={ 0x1F1E7, 0x1F1EB },
["burrito"]={ 0x1F32F },
+ ["burundi"]={ 0x1F1E7, 0x1F1EE },
["bus"]={ 0x1F68C },
["bus stop"]={ 0x1F68F },
["bust in silhouette"]={ 0x1F464 },
["busts in silhouette"]={ 0x1F465 },
- ["butter"]={ 0x1F9C8 },
["butterfly"]={ 0x1F98B },
["cactus"]={ 0x1F335 },
["calendar"]={ 0x1F4C5 },
@@ -203,40 +250,45 @@ return {
["call me hand: medium skin tone"]={ 0x1F919, 0x1F3FD },
["call me hand: medium-dark skin tone"]={ 0x1F919, 0x1F3FE },
["call me hand: medium-light skin tone"]={ 0x1F919, 0x1F3FC },
+ ["cambodia"]={ 0x1F1F0, 0x1F1ED },
["camel"]={ 0x1F42A },
["camera"]={ 0x1F4F7 },
["camera with flash"]={ 0x1F4F8 },
- ["camping"]={ 0x1F3D5, 0xFE0F },
+ ["cameroon"]={ 0x1F1E8, 0x1F1F2 },
+ ["camping"]={ 0x1F3D5 },
+ ["canada"]={ 0x1F1E8, 0x1F1E6 },
+ ["canary islands"]={ 0x1F1EE, 0x1F1E8 },
["cancer"]={ 0x264B },
- ["candle"]={ 0x1F56F, 0xFE0F },
+ ["candle"]={ 0x1F56F },
["candy"]={ 0x1F36C },
["canned food"]={ 0x1F96B },
["canoe"]={ 0x1F6F6 },
+ ["cape verde"]={ 0x1F1E8, 0x1F1FB },
["capricorn"]={ 0x2651 },
- ["card file box"]={ 0x1F5C3, 0xFE0F },
+ ["card file box"]={ 0x1F5C3 },
["card index"]={ 0x1F4C7 },
- ["card index dividers"]={ 0x1F5C2, 0xFE0F },
+ ["card index dividers"]={ 0x1F5C2 },
+ ["caribbean netherlands"]={ 0x1F1E7, 0x1F1F6 },
["carousel horse"]={ 0x1F3A0 },
["carp streamer"]={ 0x1F38F },
["carrot"]={ 0x1F955 },
["castle"]={ 0x1F3F0 },
["cat"]={ 0x1F408 },
["cat face"]={ 0x1F431 },
- ["cat with tears of joy"]={ 0x1F639 },
- ["cat with wry smile"]={ 0x1F63C },
- ["chains"]={ 0x26D3, 0xFE0F },
- ["chair"]={ 0x1FA91 },
+ ["cat face with tears of joy"]={ 0x1F639 },
+ ["cat face with wry smile"]={ 0x1F63C },
+ ["cayman islands"]={ 0x1F1F0, 0x1F1FE },
+ ["central african republic"]={ 0x1F1E8, 0x1F1EB },
+ ["ceuta & melilla"]={ 0x1F1EA, 0x1F1E6 },
+ ["chad"]={ 0x1F1F9, 0x1F1E9 },
+ ["chains"]={ 0x26D3 },
["chart decreasing"]={ 0x1F4C9 },
["chart increasing"]={ 0x1F4C8 },
["chart increasing with yen"]={ 0x1F4B9 },
- ["check box with check"]={ 0x2611, 0xFE0F },
- ["check mark"]={ 0x2714, 0xFE0F },
- ["check mark button"]={ 0x2705 },
["cheese wedge"]={ 0x1F9C0 },
["chequered flag"]={ 0x1F3C1 },
["cherries"]={ 0x1F352 },
["cherry blossom"]={ 0x1F338 },
- ["chess pawn"]={ 0x265F, 0xFE0F },
["chestnut"]={ 0x1F330 },
["chicken"]={ 0x1F414 },
["child"]={ 0x1F9D2 },
@@ -246,19 +298,22 @@ return {
["child: medium-dark skin tone"]={ 0x1F9D2, 0x1F3FE },
["child: medium-light skin tone"]={ 0x1F9D2, 0x1F3FC },
["children crossing"]={ 0x1F6B8 },
- ["chipmunk"]={ 0x1F43F, 0xFE0F },
+ ["chile"]={ 0x1F1E8, 0x1F1F1 },
+ ["china"]={ 0x1F1E8, 0x1F1F3 },
+ ["chipmunk"]={ 0x1F43F },
["chocolate bar"]={ 0x1F36B },
["chopsticks"]={ 0x1F962 },
+ ["christmas island"]={ 0x1F1E8, 0x1F1FD },
["christmas tree"]={ 0x1F384 },
["church"]={ 0x26EA },
["cigarette"]={ 0x1F6AC },
["cinema"]={ 0x1F3A6 },
- ["circled m"]={ 0x24C2, 0xFE0F },
+ ["circled m"]={ 0x24C2 },
["circus tent"]={ 0x1F3AA },
- ["cityscape"]={ 0x1F3D9, 0xFE0F },
+ ["cityscape"]={ 0x1F3D9 },
["cityscape at dusk"]={ 0x1F306 },
["cl button"]={ 0x1F191 },
- ["clamp"]={ 0x1F5DC, 0xFE0F },
+ ["clamp"]={ 0x1F5DC },
["clapper board"]={ 0x1F3AC },
["clapping hands"]={ 0x1F44F },
["clapping hands: dark skin tone"]={ 0x1F44F, 0x1F3FF },
@@ -266,36 +321,40 @@ return {
["clapping hands: medium skin tone"]={ 0x1F44F, 0x1F3FD },
["clapping hands: medium-dark skin tone"]={ 0x1F44F, 0x1F3FE },
["clapping hands: medium-light skin tone"]={ 0x1F44F, 0x1F3FC },
- ["classical building"]={ 0x1F3DB, 0xFE0F },
+ ["classical building"]={ 0x1F3DB },
["clinking beer mugs"]={ 0x1F37B },
["clinking glasses"]={ 0x1F942 },
["clipboard"]={ 0x1F4CB },
+ ["clipperton island"]={ 0x1F1E8, 0x1F1F5 },
["clockwise vertical arrows"]={ 0x1F503 },
["closed book"]={ 0x1F4D5 },
["closed mailbox with lowered flag"]={ 0x1F4EA },
["closed mailbox with raised flag"]={ 0x1F4EB },
["closed umbrella"]={ 0x1F302 },
- ["cloud"]={ 0x2601, 0xFE0F },
- ["cloud with lightning"]={ 0x1F329, 0xFE0F },
- ["cloud with lightning and rain"]={ 0x26C8, 0xFE0F },
- ["cloud with rain"]={ 0x1F327, 0xFE0F },
- ["cloud with snow"]={ 0x1F328, 0xFE0F },
+ ["cloud"]={ 0x2601 },
+ ["cloud with lightning"]={ 0x1F329 },
+ ["cloud with lightning and rain"]={ 0x26C8 },
+ ["cloud with rain"]={ 0x1F327 },
+ ["cloud with snow"]={ 0x1F328 },
["clown face"]={ 0x1F921 },
- ["club suit"]={ 0x2663, 0xFE0F },
+ ["club suit"]={ 0x2663 },
["clutch bag"]={ 0x1F45D },
["coat"]={ 0x1F9E5 },
["cocktail glass"]={ 0x1F378 },
["coconut"]={ 0x1F965 },
- ["coffin"]={ 0x26B0, 0xFE0F },
- ["cold face"]={ 0x1F976 },
+ ["cocos (keeling) islands"]={ 0x1F1E8, 0x1F1E8 },
+ ["coffin"]={ 0x26B0 },
["collision"]={ 0x1F4A5 },
- ["comet"]={ 0x2604, 0xFE0F },
- ["compass"]={ 0x1F9ED },
+ ["colombia"]={ 0x1F1E8, 0x1F1F4 },
+ ["comet"]={ 0x2604 },
+ ["comoros"]={ 0x1F1F0, 0x1F1F2 },
["computer disk"]={ 0x1F4BD },
- ["computer mouse"]={ 0x1F5B1, 0xFE0F },
+ ["computer mouse"]={ 0x1F5B1 },
["confetti ball"]={ 0x1F38A },
["confounded face"]={ 0x1F616 },
["confused face"]={ 0x1F615 },
+ ["congo - brazzaville"]={ 0x1F1E8, 0x1F1EC },
+ ["congo - kinshasa"]={ 0x1F1E8, 0x1F1E9 },
["construction"]={ 0x1F6A7 },
["construction worker"]={ 0x1F477 },
["construction worker: dark skin tone"]={ 0x1F477, 0x1F3FF },
@@ -303,28 +362,30 @@ return {
["construction worker: medium skin tone"]={ 0x1F477, 0x1F3FD },
["construction worker: medium-dark skin tone"]={ 0x1F477, 0x1F3FE },
["construction worker: medium-light skin tone"]={ 0x1F477, 0x1F3FC },
- ["control knobs"]={ 0x1F39B, 0xFE0F },
+ ["control knobs"]={ 0x1F39B },
["convenience store"]={ 0x1F3EA },
+ ["cook islands"]={ 0x1F1E8, 0x1F1F0 },
["cooked rice"]={ 0x1F35A },
["cookie"]={ 0x1F36A },
["cooking"]={ 0x1F373 },
["cool button"]={ 0x1F192 },
- ["copyright"]={ 0xA9, 0xFE0F },
- ["couch and lamp"]={ 0x1F6CB, 0xFE0F },
- ["counterclockwise arrows button"]={ 0x1F504 },
+ ["copyright"]={ 0xA9 },
+ ["costa rica"]={ 0x1F1E8, 0x1F1F7 },
+ ["couch and lamp"]={ 0x1F6CB },
["couple with heart"]={ 0x1F491 },
- ["couple with heart: man, man"]={ 0x1F468, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468 },
- ["couple with heart: woman, man"]={ 0x1F469, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468 },
- ["couple with heart: woman, woman"]={ 0x1F469, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F469 },
+ ["couple with heart: man, man"]={ 0x1F468, 0x200D, 0x2764, 0x200D, 0x1F468 },
+ ["couple with heart: woman, man"]={ 0x1F469, 0x200D, 0x2764, 0x200D, 0x1F468 },
+ ["couple with heart: woman, woman"]={ 0x1F469, 0x200D, 0x2764, 0x200D, 0x1F469 },
["cow"]={ 0x1F404 },
["cow face"]={ 0x1F42E },
["cowboy hat face"]={ 0x1F920 },
["crab"]={ 0x1F980 },
- ["crayon"]={ 0x1F58D, 0xFE0F },
+ ["crayon"]={ 0x1F58D },
+ ["crazy face"]={ 0x1F92A },
["credit card"]={ 0x1F4B3 },
["crescent moon"]={ 0x1F319 },
- ["cricket"]={ 0x1F997 },
- ["cricket game"]={ 0x1F3CF },
+ ["cricket"]={ 0x1F3CF },
+ ["croatia"]={ 0x1F1ED, 0x1F1F7 },
["crocodile"]={ 0x1F40A },
["croissant"]={ 0x1F950 },
["cross mark"]={ 0x274C },
@@ -336,14 +397,15 @@ return {
["crossed fingers: medium-dark skin tone"]={ 0x1F91E, 0x1F3FE },
["crossed fingers: medium-light skin tone"]={ 0x1F91E, 0x1F3FC },
["crossed flags"]={ 0x1F38C },
- ["crossed swords"]={ 0x2694, 0xFE0F },
+ ["crossed swords"]={ 0x2694 },
["crown"]={ 0x1F451 },
- ["crying cat"]={ 0x1F63F },
+ ["crying cat face"]={ 0x1F63F },
["crying face"]={ 0x1F622 },
["crystal ball"]={ 0x1F52E },
+ ["cuba"]={ 0x1F1E8, 0x1F1FA },
["cucumber"]={ 0x1F952 },
["cup with straw"]={ 0x1F964 },
- ["cupcake"]={ 0x1F9C1 },
+ ["curaçao"]={ 0x1F1E8, 0x1F1FC },
["curling stone"]={ 0x1F94C },
["curly loop"]={ 0x27B0 },
["currency exchange"]={ 0x1F4B1 },
@@ -352,72 +414,57 @@ return {
["customs"]={ 0x1F6C3 },
["cut of meat"]={ 0x1F969 },
["cyclone"]={ 0x1F300 },
- ["dagger"]={ 0x1F5E1, 0xFE0F },
+ ["cyprus"]={ 0x1F1E8, 0x1F1FE },
+ ["czechia"]={ 0x1F1E8, 0x1F1FF },
+ ["cÃīte d’ivoire"]={ 0x1F1E8, 0x1F1EE },
+ ["dagger"]={ 0x1F5E1 },
["dango"]={ 0x1F361 },
["dashing away"]={ 0x1F4A8 },
- ["deaf man"]={ 0x1F9CF, 0x200D, 0x2642, 0xFE0F },
- ["deaf man: dark skin tone"]={ 0x1F9CF, 0x1F3FF, 0x200D, 0x2642, 0xFE0F },
- ["deaf man: light skin tone"]={ 0x1F9CF, 0x1F3FB, 0x200D, 0x2642, 0xFE0F },
- ["deaf man: medium skin tone"]={ 0x1F9CF, 0x1F3FD, 0x200D, 0x2642, 0xFE0F },
- ["deaf man: medium-dark skin tone"]={ 0x1F9CF, 0x1F3FE, 0x200D, 0x2642, 0xFE0F },
- ["deaf man: medium-light skin tone"]={ 0x1F9CF, 0x1F3FC, 0x200D, 0x2642, 0xFE0F },
- ["deaf person"]={ 0x1F9CF },
- ["deaf person: dark skin tone"]={ 0x1F9CF, 0x1F3FF },
- ["deaf person: light skin tone"]={ 0x1F9CF, 0x1F3FB },
- ["deaf person: medium skin tone"]={ 0x1F9CF, 0x1F3FD },
- ["deaf person: medium-dark skin tone"]={ 0x1F9CF, 0x1F3FE },
- ["deaf person: medium-light skin tone"]={ 0x1F9CF, 0x1F3FC },
- ["deaf woman"]={ 0x1F9CF, 0x200D, 0x2640, 0xFE0F },
- ["deaf woman: dark skin tone"]={ 0x1F9CF, 0x1F3FF, 0x200D, 0x2640, 0xFE0F },
- ["deaf woman: light skin tone"]={ 0x1F9CF, 0x1F3FB, 0x200D, 0x2640, 0xFE0F },
- ["deaf woman: medium skin tone"]={ 0x1F9CF, 0x1F3FD, 0x200D, 0x2640, 0xFE0F },
- ["deaf woman: medium-dark skin tone"]={ 0x1F9CF, 0x1F3FE, 0x200D, 0x2640, 0xFE0F },
- ["deaf woman: medium-light skin tone"]={ 0x1F9CF, 0x1F3FC, 0x200D, 0x2640, 0xFE0F },
["deciduous tree"]={ 0x1F333 },
["deer"]={ 0x1F98C },
["delivery truck"]={ 0x1F69A },
+ ["denmark"]={ 0x1F1E9, 0x1F1F0 },
["department store"]={ 0x1F3EC },
- ["derelict house"]={ 0x1F3DA, 0xFE0F },
- ["desert"]={ 0x1F3DC, 0xFE0F },
- ["desert island"]={ 0x1F3DD, 0xFE0F },
- ["desktop computer"]={ 0x1F5A5, 0xFE0F },
- ["detective"]={ 0x1F575, 0xFE0F },
+ ["derelict house"]={ 0x1F3DA },
+ ["desert"]={ 0x1F3DC },
+ ["desert island"]={ 0x1F3DD },
+ ["desktop computer"]={ 0x1F5A5 },
+ ["detective"]={ 0x1F575 },
["detective: dark skin tone"]={ 0x1F575, 0x1F3FF },
["detective: light skin tone"]={ 0x1F575, 0x1F3FB },
["detective: medium skin tone"]={ 0x1F575, 0x1F3FD },
["detective: medium-dark skin tone"]={ 0x1F575, 0x1F3FE },
["detective: medium-light skin tone"]={ 0x1F575, 0x1F3FC },
- ["diamond suit"]={ 0x2666, 0xFE0F },
+ ["diamond suit"]={ 0x2666 },
["diamond with a dot"]={ 0x1F4A0 },
+ ["diego garcia"]={ 0x1F1E9, 0x1F1EC },
["dim button"]={ 0x1F505 },
["direct hit"]={ 0x1F3AF },
+ ["disappointed but relieved face"]={ 0x1F625 },
["disappointed face"]={ 0x1F61E },
- ["diving mask"]={ 0x1F93F },
- ["division sign"]={ 0x2797 },
- ["diya lamp"]={ 0x1FA94 },
["dizzy"]={ 0x1F4AB },
["dizzy face"]={ 0x1F635 },
- ["dna"]={ 0x1F9EC },
+ ["djibouti"]={ 0x1F1E9, 0x1F1EF },
["dog"]={ 0x1F415 },
["dog face"]={ 0x1F436 },
["dollar banknote"]={ 0x1F4B5 },
["dolphin"]={ 0x1F42C },
+ ["dominica"]={ 0x1F1E9, 0x1F1F2 },
+ ["dominican republic"]={ 0x1F1E9, 0x1F1F4 },
["door"]={ 0x1F6AA },
["dotted six-pointed star"]={ 0x1F52F },
["double curly loop"]={ 0x27BF },
- ["double exclamation mark"]={ 0x203C, 0xFE0F },
+ ["double exclamation mark"]={ 0x203C },
["doughnut"]={ 0x1F369 },
- ["dove"]={ 0x1F54A, 0xFE0F },
- ["down arrow"]={ 0x2B07, 0xFE0F },
- ["down-left arrow"]={ 0x2199, 0xFE0F },
- ["down-right arrow"]={ 0x2198, 0xFE0F },
- ["downcast face with sweat"]={ 0x1F613 },
- ["downwards button"]={ 0x1F53D },
+ ["dove"]={ 0x1F54A },
+ ["down arrow"]={ 0x2B07 },
+ ["down button"]={ 0x1F53D },
+ ["down-left arrow"]={ 0x2199 },
+ ["down-right arrow"]={ 0x2198 },
["dragon"]={ 0x1F409 },
["dragon face"]={ 0x1F432 },
["dress"]={ 0x1F457 },
["drooling face"]={ 0x1F924 },
- ["drop of blood"]={ 0x1FA78 },
["droplet"]={ 0x1F4A7 },
["drum"]={ 0x1F941 },
["duck"]={ 0x1F986 },
@@ -427,24 +474,21 @@ return {
["eagle"]={ 0x1F985 },
["ear"]={ 0x1F442 },
["ear of corn"]={ 0x1F33D },
- ["ear with hearing aid"]={ 0x1F9BB },
- ["ear with hearing aid: dark skin tone"]={ 0x1F9BB, 0x1F3FF },
- ["ear with hearing aid: light skin tone"]={ 0x1F9BB, 0x1F3FB },
- ["ear with hearing aid: medium skin tone"]={ 0x1F9BB, 0x1F3FD },
- ["ear with hearing aid: medium-dark skin tone"]={ 0x1F9BB, 0x1F3FE },
- ["ear with hearing aid: medium-light skin tone"]={ 0x1F9BB, 0x1F3FC },
["ear: dark skin tone"]={ 0x1F442, 0x1F3FF },
["ear: light skin tone"]={ 0x1F442, 0x1F3FB },
["ear: medium skin tone"]={ 0x1F442, 0x1F3FD },
["ear: medium-dark skin tone"]={ 0x1F442, 0x1F3FE },
["ear: medium-light skin tone"]={ 0x1F442, 0x1F3FC },
+ ["ecuador"]={ 0x1F1EA, 0x1F1E8 },
["egg"]={ 0x1F95A },
["eggplant"]={ 0x1F346 },
+ ["egypt"]={ 0x1F1EA, 0x1F1EC },
["eight o’clock"]={ 0x1F557 },
- ["eight-pointed star"]={ 0x2734, 0xFE0F },
- ["eight-spoked asterisk"]={ 0x2733, 0xFE0F },
+ ["eight-pointed star"]={ 0x2734 },
+ ["eight-spoked asterisk"]={ 0x2733 },
["eight-thirty"]={ 0x1F563 },
- ["eject button"]={ 0x23CF, 0xFE0F },
+ ["eject button"]={ 0x23CF },
+ ["el salvador"]={ 0x1F1F8, 0x1F1FB },
["electric plug"]={ 0x1F50C },
["elephant"]={ 0x1F418 },
["eleven o’clock"]={ 0x1F55A },
@@ -456,34 +500,44 @@ return {
["elf: medium-dark skin tone"]={ 0x1F9DD, 0x1F3FE },
["elf: medium-light skin tone"]={ 0x1F9DD, 0x1F3FC },
["end arrow"]={ 0x1F51A },
- ["envelope"]={ 0x2709, 0xFE0F },
+ ["england"]={ 0x1F3F4, 0xE0067, 0xE0062, 0xE0065, 0xE006E, 0xE0067, 0xE007F },
+ ["envelope"]={ 0x2709 },
["envelope with arrow"]={ 0x1F4E9 },
+ ["equatorial guinea"]={ 0x1F1EC, 0x1F1F6 },
+ ["eritrea"]={ 0x1F1EA, 0x1F1F7 },
+ ["estonia"]={ 0x1F1EA, 0x1F1EA },
+ ["ethiopia"]={ 0x1F1EA, 0x1F1F9 },
["euro banknote"]={ 0x1F4B6 },
+ ["european union"]={ 0x1F1EA, 0x1F1FA },
["evergreen tree"]={ 0x1F332 },
["ewe"]={ 0x1F411 },
["exclamation mark"]={ 0x2757 },
- ["exclamation question mark"]={ 0x2049, 0xFE0F },
+ ["exclamation question mark"]={ 0x2049 },
["exploding head"]={ 0x1F92F },
["expressionless face"]={ 0x1F611 },
- ["eye"]={ 0x1F441, 0xFE0F },
- ["eye in speech bubble"]={ 0x1F441, 0xFE0F, 0x200D, 0x1F5E8, 0xFE0F },
+ ["eye"]={ 0x1F441 },
+ ["eye in speech bubble"]={ 0x1F441, 0x200D, 0x1F5E8 },
["eyes"]={ 0x1F440 },
["face blowing a kiss"]={ 0x1F618 },
- ["face savoring food"]={ 0x1F60B },
+ ["face savouring delicious food"]={ 0x1F60B },
["face screaming in fear"]={ 0x1F631 },
["face vomiting"]={ 0x1F92E },
+ ["face with cold sweat"]={ 0x1F613 },
["face with hand over mouth"]={ 0x1F92D },
["face with head-bandage"]={ 0x1F915 },
["face with medical mask"]={ 0x1F637 },
["face with monocle"]={ 0x1F9D0 },
["face with open mouth"]={ 0x1F62E },
+ ["face with open mouth & cold sweat"]={ 0x1F630 },
["face with raised eyebrow"]={ 0x1F928 },
["face with rolling eyes"]={ 0x1F644 },
["face with steam from nose"]={ 0x1F624 },
- ["face with symbols on mouth"]={ 0x1F92C },
+ ["face with stuck-out tongue"]={ 0x1F61B },
+ ["face with stuck-out tongue & closed eyes"]={ 0x1F61D },
+ ["face with stuck-out tongue & winking eye"]={ 0x1F61C },
+ ["face with symbols over mouth"]={ 0x1F92C },
["face with tears of joy"]={ 0x1F602 },
["face with thermometer"]={ 0x1F912 },
- ["face with tongue"]={ 0x1F61B },
["face without mouth"]={ 0x1F636 },
["factory"]={ 0x1F3ED },
["fairy"]={ 0x1F9DA },
@@ -492,7 +546,7 @@ return {
["fairy: medium skin tone"]={ 0x1F9DA, 0x1F3FD },
["fairy: medium-dark skin tone"]={ 0x1F9DA, 0x1F3FE },
["fairy: medium-light skin tone"]={ 0x1F9DA, 0x1F3FC },
- ["falafel"]={ 0x1F9C6 },
+ ["falkland islands"]={ 0x1F1EB, 0x1F1F0 },
["fallen leaf"]={ 0x1F342 },
["family"]={ 0x1F46A },
["family: man, boy"]={ 0x1F468, 0x200D, 0x1F466 },
@@ -520,298 +574,36 @@ return {
["family: woman, woman, girl"]={ 0x1F469, 0x200D, 0x1F469, 0x200D, 0x1F467 },
["family: woman, woman, girl, boy"]={ 0x1F469, 0x200D, 0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F466 },
["family: woman, woman, girl, girl"]={ 0x1F469, 0x200D, 0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F467 },
+ ["faroe islands"]={ 0x1F1EB, 0x1F1F4 },
["fast down button"]={ 0x23EC },
["fast reverse button"]={ 0x23EA },
["fast up button"]={ 0x23EB },
["fast-forward button"]={ 0x23E9 },
["fax machine"]={ 0x1F4E0 },
["fearful face"]={ 0x1F628 },
- ["female sign"]={ 0x2640, 0xFE0F },
+ ["female sign"]={ 0x2640 },
["ferris wheel"]={ 0x1F3A1 },
- ["ferry"]={ 0x26F4, 0xFE0F },
+ ["ferry"]={ 0x26F4 },
["field hockey"]={ 0x1F3D1 },
- ["file cabinet"]={ 0x1F5C4, 0xFE0F },
+ ["fiji"]={ 0x1F1EB, 0x1F1EF },
+ ["file cabinet"]={ 0x1F5C4 },
["file folder"]={ 0x1F4C1 },
- ["film frames"]={ 0x1F39E, 0xFE0F },
- ["film projector"]={ 0x1F4FD, 0xFE0F },
+ ["film frames"]={ 0x1F39E },
+ ["film projector"]={ 0x1F4FD },
+ ["finland"]={ 0x1F1EB, 0x1F1EE },
["fire"]={ 0x1F525 },
["fire engine"]={ 0x1F692 },
- ["fire extinguisher"]={ 0x1F9EF },
- ["firecracker"]={ 0x1F9E8 },
["fireworks"]={ 0x1F386 },
["first quarter moon"]={ 0x1F313 },
- ["first quarter moon face"]={ 0x1F31B },
+ ["first quarter moon with face"]={ 0x1F31B },
["fish"]={ 0x1F41F },
["fish cake with swirl"]={ 0x1F365 },
["fishing pole"]={ 0x1F3A3 },
["five o’clock"]={ 0x1F554 },
["five-thirty"]={ 0x1F560 },
["flag in hole"]={ 0x26F3 },
- ["flag: afghanistan"]={ 0x1F1E6, 0x1F1EB },
- ["flag: albania"]={ 0x1F1E6, 0x1F1F1 },
- ["flag: algeria"]={ 0x1F1E9, 0x1F1FF },
- ["flag: american samoa"]={ 0x1F1E6, 0x1F1F8 },
- ["flag: andorra"]={ 0x1F1E6, 0x1F1E9 },
- ["flag: angola"]={ 0x1F1E6, 0x1F1F4 },
- ["flag: anguilla"]={ 0x1F1E6, 0x1F1EE },
- ["flag: antarctica"]={ 0x1F1E6, 0x1F1F6 },
- ["flag: antigua & barbuda"]={ 0x1F1E6, 0x1F1EC },
- ["flag: argentina"]={ 0x1F1E6, 0x1F1F7 },
- ["flag: armenia"]={ 0x1F1E6, 0x1F1F2 },
- ["flag: aruba"]={ 0x1F1E6, 0x1F1FC },
- ["flag: ascension island"]={ 0x1F1E6, 0x1F1E8 },
- ["flag: australia"]={ 0x1F1E6, 0x1F1FA },
- ["flag: austria"]={ 0x1F1E6, 0x1F1F9 },
- ["flag: azerbaijan"]={ 0x1F1E6, 0x1F1FF },
- ["flag: bahamas"]={ 0x1F1E7, 0x1F1F8 },
- ["flag: bahrain"]={ 0x1F1E7, 0x1F1ED },
- ["flag: bangladesh"]={ 0x1F1E7, 0x1F1E9 },
- ["flag: barbados"]={ 0x1F1E7, 0x1F1E7 },
- ["flag: belarus"]={ 0x1F1E7, 0x1F1FE },
- ["flag: belgium"]={ 0x1F1E7, 0x1F1EA },
- ["flag: belize"]={ 0x1F1E7, 0x1F1FF },
- ["flag: benin"]={ 0x1F1E7, 0x1F1EF },
- ["flag: bermuda"]={ 0x1F1E7, 0x1F1F2 },
- ["flag: bhutan"]={ 0x1F1E7, 0x1F1F9 },
- ["flag: bolivia"]={ 0x1F1E7, 0x1F1F4 },
- ["flag: bosnia & herzegovina"]={ 0x1F1E7, 0x1F1E6 },
- ["flag: botswana"]={ 0x1F1E7, 0x1F1FC },
- ["flag: bouvet island"]={ 0x1F1E7, 0x1F1FB },
- ["flag: brazil"]={ 0x1F1E7, 0x1F1F7 },
- ["flag: british indian ocean territory"]={ 0x1F1EE, 0x1F1F4 },
- ["flag: british virgin islands"]={ 0x1F1FB, 0x1F1EC },
- ["flag: brunei"]={ 0x1F1E7, 0x1F1F3 },
- ["flag: bulgaria"]={ 0x1F1E7, 0x1F1EC },
- ["flag: burkina faso"]={ 0x1F1E7, 0x1F1EB },
- ["flag: burundi"]={ 0x1F1E7, 0x1F1EE },
- ["flag: cambodia"]={ 0x1F1F0, 0x1F1ED },
- ["flag: cameroon"]={ 0x1F1E8, 0x1F1F2 },
- ["flag: canada"]={ 0x1F1E8, 0x1F1E6 },
- ["flag: canary islands"]={ 0x1F1EE, 0x1F1E8 },
- ["flag: cape verde"]={ 0x1F1E8, 0x1F1FB },
- ["flag: caribbean netherlands"]={ 0x1F1E7, 0x1F1F6 },
- ["flag: cayman islands"]={ 0x1F1F0, 0x1F1FE },
- ["flag: central african republic"]={ 0x1F1E8, 0x1F1EB },
- ["flag: ceuta & melilla"]={ 0x1F1EA, 0x1F1E6 },
- ["flag: chad"]={ 0x1F1F9, 0x1F1E9 },
- ["flag: chile"]={ 0x1F1E8, 0x1F1F1 },
- ["flag: china"]={ 0x1F1E8, 0x1F1F3 },
- ["flag: christmas island"]={ 0x1F1E8, 0x1F1FD },
- ["flag: clipperton island"]={ 0x1F1E8, 0x1F1F5 },
- ["flag: cocos (keeling) islands"]={ 0x1F1E8, 0x1F1E8 },
- ["flag: colombia"]={ 0x1F1E8, 0x1F1F4 },
- ["flag: comoros"]={ 0x1F1F0, 0x1F1F2 },
- ["flag: congo - brazzaville"]={ 0x1F1E8, 0x1F1EC },
- ["flag: congo - kinshasa"]={ 0x1F1E8, 0x1F1E9 },
- ["flag: cook islands"]={ 0x1F1E8, 0x1F1F0 },
- ["flag: costa rica"]={ 0x1F1E8, 0x1F1F7 },
- ["flag: croatia"]={ 0x1F1ED, 0x1F1F7 },
- ["flag: cuba"]={ 0x1F1E8, 0x1F1FA },
- ["flag: curaçao"]={ 0x1F1E8, 0x1F1FC },
- ["flag: cyprus"]={ 0x1F1E8, 0x1F1FE },
- ["flag: czechia"]={ 0x1F1E8, 0x1F1FF },
- ["flag: cÃīte d’ivoire"]={ 0x1F1E8, 0x1F1EE },
- ["flag: denmark"]={ 0x1F1E9, 0x1F1F0 },
- ["flag: diego garcia"]={ 0x1F1E9, 0x1F1EC },
- ["flag: djibouti"]={ 0x1F1E9, 0x1F1EF },
- ["flag: dominica"]={ 0x1F1E9, 0x1F1F2 },
- ["flag: dominican republic"]={ 0x1F1E9, 0x1F1F4 },
- ["flag: ecuador"]={ 0x1F1EA, 0x1F1E8 },
- ["flag: egypt"]={ 0x1F1EA, 0x1F1EC },
- ["flag: el salvador"]={ 0x1F1F8, 0x1F1FB },
- ["flag: england"]={ 0x1F3F4, 0xE0067, 0xE0062, 0xE0065, 0xE006E, 0xE0067, 0xE007F },
- ["flag: equatorial guinea"]={ 0x1F1EC, 0x1F1F6 },
- ["flag: eritrea"]={ 0x1F1EA, 0x1F1F7 },
- ["flag: estonia"]={ 0x1F1EA, 0x1F1EA },
- ["flag: eswatini"]={ 0x1F1F8, 0x1F1FF },
- ["flag: ethiopia"]={ 0x1F1EA, 0x1F1F9 },
- ["flag: european union"]={ 0x1F1EA, 0x1F1FA },
- ["flag: falkland islands"]={ 0x1F1EB, 0x1F1F0 },
- ["flag: faroe islands"]={ 0x1F1EB, 0x1F1F4 },
- ["flag: fiji"]={ 0x1F1EB, 0x1F1EF },
- ["flag: finland"]={ 0x1F1EB, 0x1F1EE },
- ["flag: france"]={ 0x1F1EB, 0x1F1F7 },
- ["flag: french guiana"]={ 0x1F1EC, 0x1F1EB },
- ["flag: french polynesia"]={ 0x1F1F5, 0x1F1EB },
- ["flag: french southern territories"]={ 0x1F1F9, 0x1F1EB },
- ["flag: gabon"]={ 0x1F1EC, 0x1F1E6 },
- ["flag: gambia"]={ 0x1F1EC, 0x1F1F2 },
- ["flag: georgia"]={ 0x1F1EC, 0x1F1EA },
- ["flag: germany"]={ 0x1F1E9, 0x1F1EA },
- ["flag: ghana"]={ 0x1F1EC, 0x1F1ED },
- ["flag: gibraltar"]={ 0x1F1EC, 0x1F1EE },
- ["flag: greece"]={ 0x1F1EC, 0x1F1F7 },
- ["flag: greenland"]={ 0x1F1EC, 0x1F1F1 },
- ["flag: grenada"]={ 0x1F1EC, 0x1F1E9 },
- ["flag: guadeloupe"]={ 0x1F1EC, 0x1F1F5 },
- ["flag: guam"]={ 0x1F1EC, 0x1F1FA },
- ["flag: guatemala"]={ 0x1F1EC, 0x1F1F9 },
- ["flag: guernsey"]={ 0x1F1EC, 0x1F1EC },
- ["flag: guinea"]={ 0x1F1EC, 0x1F1F3 },
- ["flag: guinea-bissau"]={ 0x1F1EC, 0x1F1FC },
- ["flag: guyana"]={ 0x1F1EC, 0x1F1FE },
- ["flag: haiti"]={ 0x1F1ED, 0x1F1F9 },
- ["flag: heard & mcdonald islands"]={ 0x1F1ED, 0x1F1F2 },
- ["flag: honduras"]={ 0x1F1ED, 0x1F1F3 },
- ["flag: hong kong sar china"]={ 0x1F1ED, 0x1F1F0 },
- ["flag: hungary"]={ 0x1F1ED, 0x1F1FA },
- ["flag: iceland"]={ 0x1F1EE, 0x1F1F8 },
- ["flag: india"]={ 0x1F1EE, 0x1F1F3 },
- ["flag: indonesia"]={ 0x1F1EE, 0x1F1E9 },
- ["flag: iran"]={ 0x1F1EE, 0x1F1F7 },
- ["flag: iraq"]={ 0x1F1EE, 0x1F1F6 },
- ["flag: ireland"]={ 0x1F1EE, 0x1F1EA },
- ["flag: isle of man"]={ 0x1F1EE, 0x1F1F2 },
- ["flag: israel"]={ 0x1F1EE, 0x1F1F1 },
- ["flag: italy"]={ 0x1F1EE, 0x1F1F9 },
- ["flag: jamaica"]={ 0x1F1EF, 0x1F1F2 },
- ["flag: japan"]={ 0x1F1EF, 0x1F1F5 },
- ["flag: jersey"]={ 0x1F1EF, 0x1F1EA },
- ["flag: jordan"]={ 0x1F1EF, 0x1F1F4 },
- ["flag: kazakhstan"]={ 0x1F1F0, 0x1F1FF },
- ["flag: kenya"]={ 0x1F1F0, 0x1F1EA },
- ["flag: kiribati"]={ 0x1F1F0, 0x1F1EE },
- ["flag: kosovo"]={ 0x1F1FD, 0x1F1F0 },
- ["flag: kuwait"]={ 0x1F1F0, 0x1F1FC },
- ["flag: kyrgyzstan"]={ 0x1F1F0, 0x1F1EC },
- ["flag: laos"]={ 0x1F1F1, 0x1F1E6 },
- ["flag: latvia"]={ 0x1F1F1, 0x1F1FB },
- ["flag: lebanon"]={ 0x1F1F1, 0x1F1E7 },
- ["flag: lesotho"]={ 0x1F1F1, 0x1F1F8 },
- ["flag: liberia"]={ 0x1F1F1, 0x1F1F7 },
- ["flag: libya"]={ 0x1F1F1, 0x1F1FE },
- ["flag: liechtenstein"]={ 0x1F1F1, 0x1F1EE },
- ["flag: lithuania"]={ 0x1F1F1, 0x1F1F9 },
- ["flag: luxembourg"]={ 0x1F1F1, 0x1F1FA },
- ["flag: macao sar china"]={ 0x1F1F2, 0x1F1F4 },
- ["flag: macedonia"]={ 0x1F1F2, 0x1F1F0 },
- ["flag: madagascar"]={ 0x1F1F2, 0x1F1EC },
- ["flag: malawi"]={ 0x1F1F2, 0x1F1FC },
- ["flag: malaysia"]={ 0x1F1F2, 0x1F1FE },
- ["flag: maldives"]={ 0x1F1F2, 0x1F1FB },
- ["flag: mali"]={ 0x1F1F2, 0x1F1F1 },
- ["flag: malta"]={ 0x1F1F2, 0x1F1F9 },
- ["flag: marshall islands"]={ 0x1F1F2, 0x1F1ED },
- ["flag: martinique"]={ 0x1F1F2, 0x1F1F6 },
- ["flag: mauritania"]={ 0x1F1F2, 0x1F1F7 },
- ["flag: mauritius"]={ 0x1F1F2, 0x1F1FA },
- ["flag: mayotte"]={ 0x1F1FE, 0x1F1F9 },
- ["flag: mexico"]={ 0x1F1F2, 0x1F1FD },
- ["flag: micronesia"]={ 0x1F1EB, 0x1F1F2 },
- ["flag: moldova"]={ 0x1F1F2, 0x1F1E9 },
- ["flag: monaco"]={ 0x1F1F2, 0x1F1E8 },
- ["flag: mongolia"]={ 0x1F1F2, 0x1F1F3 },
- ["flag: montenegro"]={ 0x1F1F2, 0x1F1EA },
- ["flag: montserrat"]={ 0x1F1F2, 0x1F1F8 },
- ["flag: morocco"]={ 0x1F1F2, 0x1F1E6 },
- ["flag: mozambique"]={ 0x1F1F2, 0x1F1FF },
- ["flag: myanmar (burma)"]={ 0x1F1F2, 0x1F1F2 },
- ["flag: namibia"]={ 0x1F1F3, 0x1F1E6 },
- ["flag: nauru"]={ 0x1F1F3, 0x1F1F7 },
- ["flag: nepal"]={ 0x1F1F3, 0x1F1F5 },
- ["flag: netherlands"]={ 0x1F1F3, 0x1F1F1 },
- ["flag: new caledonia"]={ 0x1F1F3, 0x1F1E8 },
- ["flag: new zealand"]={ 0x1F1F3, 0x1F1FF },
- ["flag: nicaragua"]={ 0x1F1F3, 0x1F1EE },
- ["flag: niger"]={ 0x1F1F3, 0x1F1EA },
- ["flag: nigeria"]={ 0x1F1F3, 0x1F1EC },
- ["flag: niue"]={ 0x1F1F3, 0x1F1FA },
- ["flag: norfolk island"]={ 0x1F1F3, 0x1F1EB },
- ["flag: north korea"]={ 0x1F1F0, 0x1F1F5 },
- ["flag: northern mariana islands"]={ 0x1F1F2, 0x1F1F5 },
- ["flag: norway"]={ 0x1F1F3, 0x1F1F4 },
- ["flag: oman"]={ 0x1F1F4, 0x1F1F2 },
- ["flag: pakistan"]={ 0x1F1F5, 0x1F1F0 },
- ["flag: palau"]={ 0x1F1F5, 0x1F1FC },
- ["flag: palestinian territories"]={ 0x1F1F5, 0x1F1F8 },
- ["flag: panama"]={ 0x1F1F5, 0x1F1E6 },
- ["flag: papua new guinea"]={ 0x1F1F5, 0x1F1EC },
- ["flag: paraguay"]={ 0x1F1F5, 0x1F1FE },
- ["flag: peru"]={ 0x1F1F5, 0x1F1EA },
- ["flag: philippines"]={ 0x1F1F5, 0x1F1ED },
- ["flag: pitcairn islands"]={ 0x1F1F5, 0x1F1F3 },
- ["flag: poland"]={ 0x1F1F5, 0x1F1F1 },
- ["flag: portugal"]={ 0x1F1F5, 0x1F1F9 },
- ["flag: puerto rico"]={ 0x1F1F5, 0x1F1F7 },
- ["flag: qatar"]={ 0x1F1F6, 0x1F1E6 },
- ["flag: romania"]={ 0x1F1F7, 0x1F1F4 },
- ["flag: russia"]={ 0x1F1F7, 0x1F1FA },
- ["flag: rwanda"]={ 0x1F1F7, 0x1F1FC },
- ["flag: rÃĐunion"]={ 0x1F1F7, 0x1F1EA },
- ["flag: samoa"]={ 0x1F1FC, 0x1F1F8 },
- ["flag: san marino"]={ 0x1F1F8, 0x1F1F2 },
- ["flag: saudi arabia"]={ 0x1F1F8, 0x1F1E6 },
- ["flag: scotland"]={ 0x1F3F4, 0xE0067, 0xE0062, 0xE0073, 0xE0063, 0xE0074, 0xE007F },
- ["flag: senegal"]={ 0x1F1F8, 0x1F1F3 },
- ["flag: serbia"]={ 0x1F1F7, 0x1F1F8 },
- ["flag: seychelles"]={ 0x1F1F8, 0x1F1E8 },
- ["flag: sierra leone"]={ 0x1F1F8, 0x1F1F1 },
- ["flag: singapore"]={ 0x1F1F8, 0x1F1EC },
- ["flag: sint maarten"]={ 0x1F1F8, 0x1F1FD },
- ["flag: slovakia"]={ 0x1F1F8, 0x1F1F0 },
- ["flag: slovenia"]={ 0x1F1F8, 0x1F1EE },
- ["flag: solomon islands"]={ 0x1F1F8, 0x1F1E7 },
- ["flag: somalia"]={ 0x1F1F8, 0x1F1F4 },
- ["flag: south africa"]={ 0x1F1FF, 0x1F1E6 },
- ["flag: south georgia & south sandwich islands"]={ 0x1F1EC, 0x1F1F8 },
- ["flag: south korea"]={ 0x1F1F0, 0x1F1F7 },
- ["flag: south sudan"]={ 0x1F1F8, 0x1F1F8 },
- ["flag: spain"]={ 0x1F1EA, 0x1F1F8 },
- ["flag: sri lanka"]={ 0x1F1F1, 0x1F1F0 },
- ["flag: st. barthÃĐlemy"]={ 0x1F1E7, 0x1F1F1 },
- ["flag: st. helena"]={ 0x1F1F8, 0x1F1ED },
- ["flag: st. kitts & nevis"]={ 0x1F1F0, 0x1F1F3 },
- ["flag: st. lucia"]={ 0x1F1F1, 0x1F1E8 },
- ["flag: st. martin"]={ 0x1F1F2, 0x1F1EB },
- ["flag: st. pierre & miquelon"]={ 0x1F1F5, 0x1F1F2 },
- ["flag: st. vincent & grenadines"]={ 0x1F1FB, 0x1F1E8 },
- ["flag: sudan"]={ 0x1F1F8, 0x1F1E9 },
- ["flag: suriname"]={ 0x1F1F8, 0x1F1F7 },
- ["flag: svalbard & jan mayen"]={ 0x1F1F8, 0x1F1EF },
- ["flag: sweden"]={ 0x1F1F8, 0x1F1EA },
- ["flag: switzerland"]={ 0x1F1E8, 0x1F1ED },
- ["flag: syria"]={ 0x1F1F8, 0x1F1FE },
- ["flag: sÃĢo tomÃĐ & príncipe"]={ 0x1F1F8, 0x1F1F9 },
- ["flag: taiwan"]={ 0x1F1F9, 0x1F1FC },
- ["flag: tajikistan"]={ 0x1F1F9, 0x1F1EF },
- ["flag: tanzania"]={ 0x1F1F9, 0x1F1FF },
- ["flag: thailand"]={ 0x1F1F9, 0x1F1ED },
- ["flag: timor-leste"]={ 0x1F1F9, 0x1F1F1 },
- ["flag: togo"]={ 0x1F1F9, 0x1F1EC },
- ["flag: tokelau"]={ 0x1F1F9, 0x1F1F0 },
- ["flag: tonga"]={ 0x1F1F9, 0x1F1F4 },
- ["flag: trinidad & tobago"]={ 0x1F1F9, 0x1F1F9 },
- ["flag: tristan da cunha"]={ 0x1F1F9, 0x1F1E6 },
- ["flag: tunisia"]={ 0x1F1F9, 0x1F1F3 },
- ["flag: turkey"]={ 0x1F1F9, 0x1F1F7 },
- ["flag: turkmenistan"]={ 0x1F1F9, 0x1F1F2 },
- ["flag: turks & caicos islands"]={ 0x1F1F9, 0x1F1E8 },
- ["flag: tuvalu"]={ 0x1F1F9, 0x1F1FB },
- ["flag: u.s. outlying islands"]={ 0x1F1FA, 0x1F1F2 },
- ["flag: u.s. virgin islands"]={ 0x1F1FB, 0x1F1EE },
- ["flag: uganda"]={ 0x1F1FA, 0x1F1EC },
- ["flag: ukraine"]={ 0x1F1FA, 0x1F1E6 },
- ["flag: united arab emirates"]={ 0x1F1E6, 0x1F1EA },
- ["flag: united kingdom"]={ 0x1F1EC, 0x1F1E7 },
- ["flag: united nations"]={ 0x1F1FA, 0x1F1F3 },
- ["flag: united states"]={ 0x1F1FA, 0x1F1F8 },
- ["flag: uruguay"]={ 0x1F1FA, 0x1F1FE },
- ["flag: uzbekistan"]={ 0x1F1FA, 0x1F1FF },
- ["flag: vanuatu"]={ 0x1F1FB, 0x1F1FA },
- ["flag: vatican city"]={ 0x1F1FB, 0x1F1E6 },
- ["flag: venezuela"]={ 0x1F1FB, 0x1F1EA },
- ["flag: vietnam"]={ 0x1F1FB, 0x1F1F3 },
- ["flag: wales"]={ 0x1F3F4, 0xE0067, 0xE0062, 0xE0077, 0xE006C, 0xE0073, 0xE007F },
- ["flag: wallis & futuna"]={ 0x1F1FC, 0x1F1EB },
- ["flag: western sahara"]={ 0x1F1EA, 0x1F1ED },
- ["flag: yemen"]={ 0x1F1FE, 0x1F1EA },
- ["flag: zambia"]={ 0x1F1FF, 0x1F1F2 },
- ["flag: zimbabwe"]={ 0x1F1FF, 0x1F1FC },
- ["flag: Åland islands"]={ 0x1F1E6, 0x1F1FD },
- ["flamingo"]={ 0x1F9A9 },
["flashlight"]={ 0x1F526 },
- ["flat shoe"]={ 0x1F97F },
- ["fleur-de-lis"]={ 0x269C, 0xFE0F },
+ ["fleur-de-lis"]={ 0x269C },
["flexed biceps"]={ 0x1F4AA },
["flexed biceps: dark skin tone"]={ 0x1F4AA, 0x1F3FF },
["flexed biceps: light skin tone"]={ 0x1F4AA, 0x1F3FB },
@@ -821,9 +613,8 @@ return {
["floppy disk"]={ 0x1F4BE },
["flower playing cards"]={ 0x1F3B4 },
["flushed face"]={ 0x1F633 },
- ["flying disc"]={ 0x1F94F },
["flying saucer"]={ 0x1F6F8 },
- ["fog"]={ 0x1F32B, 0xFE0F },
+ ["fog"]={ 0x1F32B },
["foggy"]={ 0x1F301 },
["folded hands"]={ 0x1F64F },
["folded hands: dark skin tone"]={ 0x1F64F, 0x1F3FF },
@@ -831,41 +622,44 @@ return {
["folded hands: medium skin tone"]={ 0x1F64F, 0x1F3FD },
["folded hands: medium-dark skin tone"]={ 0x1F64F, 0x1F3FE },
["folded hands: medium-light skin tone"]={ 0x1F64F, 0x1F3FC },
- ["foot"]={ 0x1F9B6 },
- ["foot: dark skin tone"]={ 0x1F9B6, 0x1F3FF },
- ["foot: light skin tone"]={ 0x1F9B6, 0x1F3FB },
- ["foot: medium skin tone"]={ 0x1F9B6, 0x1F3FD },
- ["foot: medium-dark skin tone"]={ 0x1F9B6, 0x1F3FE },
- ["foot: medium-light skin tone"]={ 0x1F9B6, 0x1F3FC },
["footprints"]={ 0x1F463 },
["fork and knife"]={ 0x1F374 },
- ["fork and knife with plate"]={ 0x1F37D, 0xFE0F },
+ ["fork and knife with plate"]={ 0x1F37D },
["fortune cookie"]={ 0x1F960 },
["fountain"]={ 0x26F2 },
- ["fountain pen"]={ 0x1F58B, 0xFE0F },
+ ["fountain pen"]={ 0x1F58B },
["four leaf clover"]={ 0x1F340 },
["four o’clock"]={ 0x1F553 },
["four-thirty"]={ 0x1F55F },
- ["fox"]={ 0x1F98A },
- ["framed picture"]={ 0x1F5BC, 0xFE0F },
+ ["fox face"]={ 0x1F98A },
+ ["framed picture"]={ 0x1F5BC },
+ ["france"]={ 0x1F1EB, 0x1F1F7 },
["free button"]={ 0x1F193 },
["french fries"]={ 0x1F35F },
+ ["french guiana"]={ 0x1F1EC, 0x1F1EB },
+ ["french polynesia"]={ 0x1F1F5, 0x1F1EB },
+ ["french southern territories"]={ 0x1F1F9, 0x1F1EB },
["fried shrimp"]={ 0x1F364 },
- ["frog"]={ 0x1F438 },
+ ["frog face"]={ 0x1F438 },
["front-facing baby chick"]={ 0x1F425 },
- ["frowning face"]={ 0x2639, 0xFE0F },
+ ["frowning face"]={ 0x2639 },
["frowning face with open mouth"]={ 0x1F626 },
["fuel pump"]={ 0x26FD },
["full moon"]={ 0x1F315 },
- ["full moon face"]={ 0x1F31D },
- ["funeral urn"]={ 0x26B1, 0xFE0F },
+ ["full moon with face"]={ 0x1F31D },
+ ["funeral urn"]={ 0x26B1 },
+ ["gabon"]={ 0x1F1EC, 0x1F1E6 },
+ ["gambia"]={ 0x1F1EC, 0x1F1F2 },
["game die"]={ 0x1F3B2 },
- ["garlic"]={ 0x1F9C4 },
- ["gear"]={ 0x2699, 0xFE0F },
+ ["gear"]={ 0x2699 },
["gem stone"]={ 0x1F48E },
["gemini"]={ 0x264A },
["genie"]={ 0x1F9DE },
+ ["georgia"]={ 0x1F1EC, 0x1F1EA },
+ ["germany"]={ 0x1F1E9, 0x1F1EA },
+ ["ghana"]={ 0x1F1EC, 0x1F1ED },
["ghost"]={ 0x1F47B },
+ ["gibraltar"]={ 0x1F1EC, 0x1F1EE },
["giraffe"]={ 0x1F992 },
["girl"]={ 0x1F467 },
["girl: dark skin tone"]={ 0x1F467, 0x1F3FF },
@@ -884,55 +678,59 @@ return {
["goal net"]={ 0x1F945 },
["goat"]={ 0x1F410 },
["goblin"]={ 0x1F47A },
- ["goggles"]={ 0x1F97D },
["gorilla"]={ 0x1F98D },
["graduation cap"]={ 0x1F393 },
["grapes"]={ 0x1F347 },
+ ["greece"]={ 0x1F1EC, 0x1F1F7 },
["green apple"]={ 0x1F34F },
["green book"]={ 0x1F4D7 },
- ["green circle"]={ 0x1F7E2 },
["green heart"]={ 0x1F49A },
["green salad"]={ 0x1F957 },
- ["green square"]={ 0x1F7E9 },
+ ["greenland"]={ 0x1F1EC, 0x1F1F1 },
+ ["grenada"]={ 0x1F1EC, 0x1F1E9 },
["grimacing face"]={ 0x1F62C },
- ["grinning cat"]={ 0x1F63A },
- ["grinning cat with smiling eyes"]={ 0x1F638 },
+ ["grinning cat face with smiling eyes"]={ 0x1F638 },
["grinning face"]={ 0x1F600 },
- ["grinning face with big eyes"]={ 0x1F603 },
- ["grinning face with smiling eyes"]={ 0x1F604 },
- ["grinning face with sweat"]={ 0x1F605 },
- ["grinning squinting face"]={ 0x1F606 },
+ ["grinning face with smiling eyes"]={ 0x1F601 },
["growing heart"]={ 0x1F497 },
+ ["guadeloupe"]={ 0x1F1EC, 0x1F1F5 },
+ ["guam"]={ 0x1F1EC, 0x1F1FA },
["guard"]={ 0x1F482 },
["guard: dark skin tone"]={ 0x1F482, 0x1F3FF },
["guard: light skin tone"]={ 0x1F482, 0x1F3FB },
["guard: medium skin tone"]={ 0x1F482, 0x1F3FD },
["guard: medium-dark skin tone"]={ 0x1F482, 0x1F3FE },
["guard: medium-light skin tone"]={ 0x1F482, 0x1F3FC },
- ["guide dog"]={ 0x1F9AE },
+ ["guatemala"]={ 0x1F1EC, 0x1F1F9 },
+ ["guernsey"]={ 0x1F1EC, 0x1F1EC },
+ ["guinea"]={ 0x1F1EC, 0x1F1F3 },
+ ["guinea-bissau"]={ 0x1F1EC, 0x1F1FC },
["guitar"]={ 0x1F3B8 },
+ ["guyana"]={ 0x1F1EC, 0x1F1FE },
+ ["haiti"]={ 0x1F1ED, 0x1F1F9 },
["hamburger"]={ 0x1F354 },
["hammer"]={ 0x1F528 },
- ["hammer and pick"]={ 0x2692, 0xFE0F },
- ["hammer and wrench"]={ 0x1F6E0, 0xFE0F },
- ["hamster"]={ 0x1F439 },
- ["hand with fingers splayed"]={ 0x1F590, 0xFE0F },
- ["hand with fingers splayed: dark skin tone"]={ 0x1F590, 0x1F3FF },
- ["hand with fingers splayed: light skin tone"]={ 0x1F590, 0x1F3FB },
- ["hand with fingers splayed: medium skin tone"]={ 0x1F590, 0x1F3FD },
- ["hand with fingers splayed: medium-dark skin tone"]={ 0x1F590, 0x1F3FE },
- ["hand with fingers splayed: medium-light skin tone"]={ 0x1F590, 0x1F3FC },
+ ["hammer and pick"]={ 0x2692 },
+ ["hammer and wrench"]={ 0x1F6E0 },
+ ["hamster face"]={ 0x1F439 },
["handbag"]={ 0x1F45C },
["handshake"]={ 0x1F91D },
["hatching chick"]={ 0x1F423 },
["headphone"]={ 0x1F3A7 },
["hear-no-evil monkey"]={ 0x1F649 },
+ ["heard & mcdonald islands"]={ 0x1F1ED, 0x1F1F2 },
["heart decoration"]={ 0x1F49F },
- ["heart exclamation"]={ 0x2763, 0xFE0F },
- ["heart suit"]={ 0x2665, 0xFE0F },
+ ["heart suit"]={ 0x2665 },
["heart with arrow"]={ 0x1F498 },
["heart with ribbon"]={ 0x1F49D },
+ ["heavy check mark"]={ 0x2714 },
+ ["heavy division sign"]={ 0x2797 },
["heavy dollar sign"]={ 0x1F4B2 },
+ ["heavy heart exclamation"]={ 0x2763 },
+ ["heavy large circle"]={ 0x2B55 },
+ ["heavy minus sign"]={ 0x2796 },
+ ["heavy multiplication x"]={ 0x2716 },
+ ["heavy plus sign"]={ 0x2795 },
["hedgehog"]={ 0x1F994 },
["helicopter"]={ 0x1F681 },
["herb"]={ 0x1F33F },
@@ -940,13 +738,12 @@ return {
["high voltage"]={ 0x26A1 },
["high-heeled shoe"]={ 0x1F460 },
["high-speed train"]={ 0x1F684 },
- ["hiking boot"]={ 0x1F97E },
- ["hindu temple"]={ 0x1F6D5 },
- ["hippopotamus"]={ 0x1F99B },
- ["hole"]={ 0x1F573, 0xFE0F },
- ["hollow red circle"]={ 0x2B55 },
+ ["high-speed train with bullet nose"]={ 0x1F685 },
+ ["hole"]={ 0x1F573 },
+ ["honduras"]={ 0x1F1ED, 0x1F1F3 },
["honey pot"]={ 0x1F36F },
["honeybee"]={ 0x1F41D },
+ ["hong kong sar china"]={ 0x1F1ED, 0x1F1F0 },
["horizontal traffic light"]={ 0x1F6A5 },
["horse"]={ 0x1F40E },
["horse face"]={ 0x1F434 },
@@ -959,39 +756,47 @@ return {
["hospital"]={ 0x1F3E5 },
["hot beverage"]={ 0x2615 },
["hot dog"]={ 0x1F32D },
- ["hot face"]={ 0x1F975 },
- ["hot pepper"]={ 0x1F336, 0xFE0F },
- ["hot springs"]={ 0x2668, 0xFE0F },
+ ["hot pepper"]={ 0x1F336 },
+ ["hot springs"]={ 0x2668 },
["hotel"]={ 0x1F3E8 },
- ["hourglass done"]={ 0x231B },
- ["hourglass not done"]={ 0x23F3 },
+ ["hourglass"]={ 0x231B },
+ ["hourglass with flowing sand"]={ 0x23F3 },
["house"]={ 0x1F3E0 },
["house with garden"]={ 0x1F3E1 },
- ["houses"]={ 0x1F3D8, 0xFE0F },
["hugging face"]={ 0x1F917 },
["hundred points"]={ 0x1F4AF },
+ ["hungary"]={ 0x1F1ED, 0x1F1FA },
["hushed face"]={ 0x1F62F },
["ice cream"]={ 0x1F368 },
- ["ice cube"]={ 0x1F9CA },
["ice hockey"]={ 0x1F3D2 },
- ["ice skate"]={ 0x26F8, 0xFE0F },
+ ["ice skate"]={ 0x26F8 },
+ ["iceland"]={ 0x1F1EE, 0x1F1F8 },
["id button"]={ 0x1F194 },
["inbox tray"]={ 0x1F4E5 },
["incoming envelope"]={ 0x1F4E8 },
- ["index pointing up"]={ 0x261D, 0xFE0F },
+ ["index pointing up"]={ 0x261D },
["index pointing up: dark skin tone"]={ 0x261D, 0x1F3FF },
["index pointing up: light skin tone"]={ 0x261D, 0x1F3FB },
["index pointing up: medium skin tone"]={ 0x261D, 0x1F3FD },
["index pointing up: medium-dark skin tone"]={ 0x261D, 0x1F3FE },
["index pointing up: medium-light skin tone"]={ 0x261D, 0x1F3FC },
- ["infinity"]={ 0x267E, 0xFE0F },
- ["information"]={ 0x2139, 0xFE0F },
+ ["india"]={ 0x1F1EE, 0x1F1F3 },
+ ["indonesia"]={ 0x1F1EE, 0x1F1E9 },
+ ["information"]={ 0x2139 },
["input latin letters"]={ 0x1F524 },
["input latin lowercase"]={ 0x1F521 },
["input latin uppercase"]={ 0x1F520 },
["input numbers"]={ 0x1F522 },
["input symbols"]={ 0x1F523 },
+ ["iran"]={ 0x1F1EE, 0x1F1F7 },
+ ["iraq"]={ 0x1F1EE, 0x1F1F6 },
+ ["ireland"]={ 0x1F1EE, 0x1F1EA },
+ ["isle of man"]={ 0x1F1EE, 0x1F1F2 },
+ ["israel"]={ 0x1F1EE, 0x1F1F1 },
+ ["italy"]={ 0x1F1EE, 0x1F1F9 },
["jack-o-lantern"]={ 0x1F383 },
+ ["jamaica"]={ 0x1F1EF, 0x1F1F2 },
+ ["japan"]={ 0x1F1EF, 0x1F1F5 },
["japanese castle"]={ 0x1F3EF },
["japanese dolls"]={ 0x1F38E },
["japanese post office"]={ 0x1F3E3 },
@@ -999,107 +804,110 @@ return {
["japanese “acceptable” button"]={ 0x1F251 },
["japanese “application” button"]={ 0x1F238 },
["japanese “bargain” button"]={ 0x1F250 },
- ["japanese “congratulations” button"]={ 0x3297, 0xFE0F },
+ ["japanese “congratulations” button"]={ 0x3297 },
["japanese “discount” button"]={ 0x1F239 },
["japanese “free of charge” button"]={ 0x1F21A },
["japanese “here” button"]={ 0x1F201 },
- ["japanese “monthly amount” button"]={ 0x1F237, 0xFE0F },
+ ["japanese “monthly amount” button"]={ 0x1F237 },
["japanese “no vacancy” button"]={ 0x1F235 },
["japanese “not free of charge” button"]={ 0x1F236 },
["japanese “open for business” button"]={ 0x1F23A },
["japanese “passing grade” button"]={ 0x1F234 },
["japanese “prohibited” button"]={ 0x1F232 },
["japanese “reserved” button"]={ 0x1F22F },
- ["japanese “secret” button"]={ 0x3299, 0xFE0F },
- ["japanese “service charge” button"]={ 0x1F202, 0xFE0F },
+ ["japanese “secret” button"]={ 0x3299 },
+ ["japanese “service charge” button"]={ 0x1F202 },
["japanese “vacancy” button"]={ 0x1F233 },
["jeans"]={ 0x1F456 },
+ ["jersey"]={ 0x1F1EF, 0x1F1EA },
["joker"]={ 0x1F0CF },
- ["joystick"]={ 0x1F579, 0xFE0F },
+ ["jordan"]={ 0x1F1EF, 0x1F1F4 },
+ ["joystick"]={ 0x1F579 },
["kaaba"]={ 0x1F54B },
- ["kangaroo"]={ 0x1F998 },
+ ["kazakhstan"]={ 0x1F1F0, 0x1F1FF },
+ ["kenya"]={ 0x1F1F0, 0x1F1EA },
["key"]={ 0x1F511 },
- ["keyboard"]={ 0x2328, 0xFE0F },
- ["keycap: 0"]={ 0x30, 0xFE0F, 0x20E3 },
- ["keycap: 1"]={ 0x31, 0xFE0F, 0x20E3 },
- ["keycap: 10"]={ 0x1F51F },
- ["keycap: 2"]={ 0x32, 0xFE0F, 0x20E3 },
- ["keycap: 3"]={ 0x33, 0xFE0F, 0x20E3 },
- ["keycap: 4"]={ 0x34, 0xFE0F, 0x20E3 },
- ["keycap: 5"]={ 0x35, 0xFE0F, 0x20E3 },
- ["keycap: 6"]={ 0x36, 0xFE0F, 0x20E3 },
- ["keycap: 7"]={ 0x37, 0xFE0F, 0x20E3 },
- ["keycap: 8"]={ 0x38, 0xFE0F, 0x20E3 },
- ["keycap: 9"]={ 0x39, 0xFE0F, 0x20E3 },
- ["keycap: asterisk"]={ 0x2A, 0xFE0F, 0x20E3 },
- ["keycap: hash"]={ 0x23, 0xFE0F, 0x20E3 },
+ ["keyboard"]={ 0x2328 },
+ ["keycap 10"]={ 0x1F51F },
+ ["keycap: 0"]={ 0x30, 0x20E3 },
+ ["keycap: 1"]={ 0x31, 0x20E3 },
+ ["keycap: 2"]={ 0x32, 0x20E3 },
+ ["keycap: 3"]={ 0x33, 0x20E3 },
+ ["keycap: 4"]={ 0x34, 0x20E3 },
+ ["keycap: 5"]={ 0x35, 0x20E3 },
+ ["keycap: 6"]={ 0x36, 0x20E3 },
+ ["keycap: 7"]={ 0x37, 0x20E3 },
+ ["keycap: 8"]={ 0x38, 0x20E3 },
+ ["keycap: 9"]={ 0x39, 0x20E3 },
+ ["keycap: asterisk"]={ 0x2A, 0x20E3 },
+ ["keycap: hash"]={ 0x23, 0x20E3 },
["kick scooter"]={ 0x1F6F4 },
["kimono"]={ 0x1F458 },
+ ["kiribati"]={ 0x1F1F0, 0x1F1EE },
["kiss"]={ 0x1F48F },
["kiss mark"]={ 0x1F48B },
- ["kiss: man, man"]={ 0x1F468, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468 },
- ["kiss: woman, man"]={ 0x1F469, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468 },
- ["kiss: woman, woman"]={ 0x1F469, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F469 },
- ["kissing cat"]={ 0x1F63D },
+ ["kiss: man, man"]={ 0x1F468, 0x200D, 0x2764, 0x200D, 0x1F48B, 0x200D, 0x1F468 },
+ ["kiss: woman, man"]={ 0x1F469, 0x200D, 0x2764, 0x200D, 0x1F48B, 0x200D, 0x1F468 },
+ ["kiss: woman, woman"]={ 0x1F469, 0x200D, 0x2764, 0x200D, 0x1F48B, 0x200D, 0x1F469 },
+ ["kissing cat face with closed eyes"]={ 0x1F63D },
["kissing face"]={ 0x1F617 },
["kissing face with closed eyes"]={ 0x1F61A },
["kissing face with smiling eyes"]={ 0x1F619 },
["kitchen knife"]={ 0x1F52A },
- ["kite"]={ 0x1FA81 },
["kiwi fruit"]={ 0x1F95D },
["koala"]={ 0x1F428 },
- ["lab coat"]={ 0x1F97C },
- ["label"]={ 0x1F3F7, 0xFE0F },
- ["lacrosse"]={ 0x1F94D },
+ ["kosovo"]={ 0x1F1FD, 0x1F1F0 },
+ ["kuwait"]={ 0x1F1F0, 0x1F1FC },
+ ["kyrgyzstan"]={ 0x1F1F0, 0x1F1EC },
+ ["label"]={ 0x1F3F7 },
["lady beetle"]={ 0x1F41E },
+ ["laos"]={ 0x1F1F1, 0x1F1E6 },
["laptop computer"]={ 0x1F4BB },
["large blue diamond"]={ 0x1F537 },
["large orange diamond"]={ 0x1F536 },
["last quarter moon"]={ 0x1F317 },
- ["last quarter moon face"]={ 0x1F31C },
- ["last track button"]={ 0x23EE, 0xFE0F },
- ["latin cross"]={ 0x271D, 0xFE0F },
+ ["last quarter moon with face"]={ 0x1F31C },
+ ["last track button"]={ 0x23EE },
+ ["latin cross"]={ 0x271D },
+ ["latvia"]={ 0x1F1F1, 0x1F1FB },
["leaf fluttering in wind"]={ 0x1F343 },
- ["leafy green"]={ 0x1F96C },
+ ["lebanon"]={ 0x1F1F1, 0x1F1E7 },
["ledger"]={ 0x1F4D2 },
- ["left arrow"]={ 0x2B05, 0xFE0F },
- ["left arrow curving right"]={ 0x21AA, 0xFE0F },
+ ["left arrow"]={ 0x2B05 },
+ ["left arrow curving right"]={ 0x21AA },
["left luggage"]={ 0x1F6C5 },
- ["left speech bubble"]={ 0x1F5E8, 0xFE0F },
+ ["left speech bubble"]={ 0x1F5E8 },
["left-facing fist"]={ 0x1F91B },
["left-facing fist: dark skin tone"]={ 0x1F91B, 0x1F3FF },
["left-facing fist: light skin tone"]={ 0x1F91B, 0x1F3FB },
["left-facing fist: medium skin tone"]={ 0x1F91B, 0x1F3FD },
["left-facing fist: medium-dark skin tone"]={ 0x1F91B, 0x1F3FE },
["left-facing fist: medium-light skin tone"]={ 0x1F91B, 0x1F3FC },
- ["left-right arrow"]={ 0x2194, 0xFE0F },
- ["leg"]={ 0x1F9B5 },
- ["leg: dark skin tone"]={ 0x1F9B5, 0x1F3FF },
- ["leg: light skin tone"]={ 0x1F9B5, 0x1F3FB },
- ["leg: medium skin tone"]={ 0x1F9B5, 0x1F3FD },
- ["leg: medium-dark skin tone"]={ 0x1F9B5, 0x1F3FE },
- ["leg: medium-light skin tone"]={ 0x1F9B5, 0x1F3FC },
+ ["left-pointing magnifying glass"]={ 0x1F50D },
+ ["left-right arrow"]={ 0x2194 },
["lemon"]={ 0x1F34B },
["leo"]={ 0x264C },
["leopard"]={ 0x1F406 },
- ["level slider"]={ 0x1F39A, 0xFE0F },
+ ["lesotho"]={ 0x1F1F1, 0x1F1F8 },
+ ["level slider"]={ 0x1F39A },
+ ["liberia"]={ 0x1F1F1, 0x1F1F7 },
["libra"]={ 0x264E },
+ ["libya"]={ 0x1F1F1, 0x1F1FE },
+ ["liechtenstein"]={ 0x1F1F1, 0x1F1EE },
["light bulb"]={ 0x1F4A1 },
["light rail"]={ 0x1F688 },
["link"]={ 0x1F517 },
- ["linked paperclips"]={ 0x1F587, 0xFE0F },
- ["lion"]={ 0x1F981 },
+ ["linked paperclips"]={ 0x1F587 },
+ ["lion face"]={ 0x1F981 },
["lipstick"]={ 0x1F484 },
+ ["lithuania"]={ 0x1F1F1, 0x1F1F9 },
["litter in bin sign"]={ 0x1F6AE },
["lizard"]={ 0x1F98E },
- ["llama"]={ 0x1F999 },
- ["lobster"]={ 0x1F99E },
["locked"]={ 0x1F512 },
["locked with key"]={ 0x1F510 },
["locked with pen"]={ 0x1F50F },
["locomotive"]={ 0x1F682 },
["lollipop"]={ 0x1F36D },
- ["lotion bottle"]={ 0x1F9F4 },
["loudly crying face"]={ 0x1F62D },
["loudspeaker"]={ 0x1F4E2 },
["love hotel"]={ 0x1F3E9 },
@@ -1110,20 +918,26 @@ return {
["love-you gesture: medium skin tone"]={ 0x1F91F, 0x1F3FD },
["love-you gesture: medium-dark skin tone"]={ 0x1F91F, 0x1F3FE },
["love-you gesture: medium-light skin tone"]={ 0x1F91F, 0x1F3FC },
- ["luggage"]={ 0x1F9F3 },
+ ["luxembourg"]={ 0x1F1F1, 0x1F1FA },
["lying face"]={ 0x1F925 },
+ ["macau sar china"]={ 0x1F1F2, 0x1F1F4 },
+ ["macedonia"]={ 0x1F1F2, 0x1F1F0 },
+ ["madagascar"]={ 0x1F1F2, 0x1F1EC },
["mage"]={ 0x1F9D9 },
["mage: dark skin tone"]={ 0x1F9D9, 0x1F3FF },
["mage: light skin tone"]={ 0x1F9D9, 0x1F3FB },
["mage: medium skin tone"]={ 0x1F9D9, 0x1F3FD },
["mage: medium-dark skin tone"]={ 0x1F9D9, 0x1F3FE },
["mage: medium-light skin tone"]={ 0x1F9D9, 0x1F3FC },
- ["magnet"]={ 0x1F9F2 },
- ["magnifying glass tilted left"]={ 0x1F50D },
- ["magnifying glass tilted right"]={ 0x1F50E },
["mahjong red dragon"]={ 0x1F004 },
- ["male sign"]={ 0x2642, 0xFE0F },
+ ["malawi"]={ 0x1F1F2, 0x1F1FC },
+ ["malaysia"]={ 0x1F1F2, 0x1F1FE },
+ ["maldives"]={ 0x1F1F2, 0x1F1FB },
+ ["male sign"]={ 0x2642 },
+ ["mali"]={ 0x1F1F2, 0x1F1F1 },
+ ["malta"]={ 0x1F1F2, 0x1F1F9 },
["man"]={ 0x1F468 },
+ ["man and woman holding hands"]={ 0x1F46B },
["man artist"]={ 0x1F468, 0x200D, 0x1F3A8 },
["man artist: dark skin tone"]={ 0x1F468, 0x1F3FF, 0x200D, 0x1F3A8 },
["man artist: light skin tone"]={ 0x1F468, 0x1F3FB, 0x200D, 0x1F3A8 },
@@ -1136,42 +950,42 @@ return {
["man astronaut: medium skin tone"]={ 0x1F468, 0x1F3FD, 0x200D, 0x1F680 },
["man astronaut: medium-dark skin tone"]={ 0x1F468, 0x1F3FE, 0x200D, 0x1F680 },
["man astronaut: medium-light skin tone"]={ 0x1F468, 0x1F3FC, 0x200D, 0x1F680 },
- ["man biking"]={ 0x1F6B4, 0x200D, 0x2642, 0xFE0F },
- ["man biking: dark skin tone"]={ 0x1F6B4, 0x1F3FF, 0x200D, 0x2642, 0xFE0F },
- ["man biking: light skin tone"]={ 0x1F6B4, 0x1F3FB, 0x200D, 0x2642, 0xFE0F },
- ["man biking: medium skin tone"]={ 0x1F6B4, 0x1F3FD, 0x200D, 0x2642, 0xFE0F },
- ["man biking: medium-dark skin tone"]={ 0x1F6B4, 0x1F3FE, 0x200D, 0x2642, 0xFE0F },
- ["man biking: medium-light skin tone"]={ 0x1F6B4, 0x1F3FC, 0x200D, 0x2642, 0xFE0F },
- ["man bouncing ball"]={ 0x26F9, 0xFE0F, 0x200D, 0x2642, 0xFE0F },
- ["man bouncing ball: dark skin tone"]={ 0x26F9, 0x1F3FF, 0x200D, 0x2642, 0xFE0F },
- ["man bouncing ball: light skin tone"]={ 0x26F9, 0x1F3FB, 0x200D, 0x2642, 0xFE0F },
- ["man bouncing ball: medium skin tone"]={ 0x26F9, 0x1F3FD, 0x200D, 0x2642, 0xFE0F },
- ["man bouncing ball: medium-dark skin tone"]={ 0x26F9, 0x1F3FE, 0x200D, 0x2642, 0xFE0F },
- ["man bouncing ball: medium-light skin tone"]={ 0x26F9, 0x1F3FC, 0x200D, 0x2642, 0xFE0F },
- ["man bowing"]={ 0x1F647, 0x200D, 0x2642, 0xFE0F },
- ["man bowing: dark skin tone"]={ 0x1F647, 0x1F3FF, 0x200D, 0x2642, 0xFE0F },
- ["man bowing: light skin tone"]={ 0x1F647, 0x1F3FB, 0x200D, 0x2642, 0xFE0F },
- ["man bowing: medium skin tone"]={ 0x1F647, 0x1F3FD, 0x200D, 0x2642, 0xFE0F },
- ["man bowing: medium-dark skin tone"]={ 0x1F647, 0x1F3FE, 0x200D, 0x2642, 0xFE0F },
- ["man bowing: medium-light skin tone"]={ 0x1F647, 0x1F3FC, 0x200D, 0x2642, 0xFE0F },
- ["man cartwheeling"]={ 0x1F938, 0x200D, 0x2642, 0xFE0F },
- ["man cartwheeling: dark skin tone"]={ 0x1F938, 0x1F3FF, 0x200D, 0x2642, 0xFE0F },
- ["man cartwheeling: light skin tone"]={ 0x1F938, 0x1F3FB, 0x200D, 0x2642, 0xFE0F },
- ["man cartwheeling: medium skin tone"]={ 0x1F938, 0x1F3FD, 0x200D, 0x2642, 0xFE0F },
- ["man cartwheeling: medium-dark skin tone"]={ 0x1F938, 0x1F3FE, 0x200D, 0x2642, 0xFE0F },
- ["man cartwheeling: medium-light skin tone"]={ 0x1F938, 0x1F3FC, 0x200D, 0x2642, 0xFE0F },
- ["man climbing"]={ 0x1F9D7, 0x200D, 0x2642, 0xFE0F },
- ["man climbing: dark skin tone"]={ 0x1F9D7, 0x1F3FF, 0x200D, 0x2642, 0xFE0F },
- ["man climbing: light skin tone"]={ 0x1F9D7, 0x1F3FB, 0x200D, 0x2642, 0xFE0F },
- ["man climbing: medium skin tone"]={ 0x1F9D7, 0x1F3FD, 0x200D, 0x2642, 0xFE0F },
- ["man climbing: medium-dark skin tone"]={ 0x1F9D7, 0x1F3FE, 0x200D, 0x2642, 0xFE0F },
- ["man climbing: medium-light skin tone"]={ 0x1F9D7, 0x1F3FC, 0x200D, 0x2642, 0xFE0F },
- ["man construction worker"]={ 0x1F477, 0x200D, 0x2642, 0xFE0F },
- ["man construction worker: dark skin tone"]={ 0x1F477, 0x1F3FF, 0x200D, 0x2642, 0xFE0F },
- ["man construction worker: light skin tone"]={ 0x1F477, 0x1F3FB, 0x200D, 0x2642, 0xFE0F },
- ["man construction worker: medium skin tone"]={ 0x1F477, 0x1F3FD, 0x200D, 0x2642, 0xFE0F },
- ["man construction worker: medium-dark skin tone"]={ 0x1F477, 0x1F3FE, 0x200D, 0x2642, 0xFE0F },
- ["man construction worker: medium-light skin tone"]={ 0x1F477, 0x1F3FC, 0x200D, 0x2642, 0xFE0F },
+ ["man biking"]={ 0x1F6B4, 0x200D, 0x2642 },
+ ["man biking: dark skin tone"]={ 0x1F6B4, 0x1F3FF, 0x200D, 0x2642 },
+ ["man biking: light skin tone"]={ 0x1F6B4, 0x1F3FB, 0x200D, 0x2642 },
+ ["man biking: medium skin tone"]={ 0x1F6B4, 0x1F3FD, 0x200D, 0x2642 },
+ ["man biking: medium-dark skin tone"]={ 0x1F6B4, 0x1F3FE, 0x200D, 0x2642 },
+ ["man biking: medium-light skin tone"]={ 0x1F6B4, 0x1F3FC, 0x200D, 0x2642 },
+ ["man bouncing ball"]={ 0x26F9, 0x200D, 0x2642 },
+ ["man bouncing ball: dark skin tone"]={ 0x26F9, 0x1F3FF, 0x200D, 0x2642 },
+ ["man bouncing ball: light skin tone"]={ 0x26F9, 0x1F3FB, 0x200D, 0x2642 },
+ ["man bouncing ball: medium skin tone"]={ 0x26F9, 0x1F3FD, 0x200D, 0x2642 },
+ ["man bouncing ball: medium-dark skin tone"]={ 0x26F9, 0x1F3FE, 0x200D, 0x2642 },
+ ["man bouncing ball: medium-light skin tone"]={ 0x26F9, 0x1F3FC, 0x200D, 0x2642 },
+ ["man bowing"]={ 0x1F647, 0x200D, 0x2642 },
+ ["man bowing: dark skin tone"]={ 0x1F647, 0x1F3FF, 0x200D, 0x2642 },
+ ["man bowing: light skin tone"]={ 0x1F647, 0x1F3FB, 0x200D, 0x2642 },
+ ["man bowing: medium skin tone"]={ 0x1F647, 0x1F3FD, 0x200D, 0x2642 },
+ ["man bowing: medium-dark skin tone"]={ 0x1F647, 0x1F3FE, 0x200D, 0x2642 },
+ ["man bowing: medium-light skin tone"]={ 0x1F647, 0x1F3FC, 0x200D, 0x2642 },
+ ["man cartwheeling"]={ 0x1F938, 0x200D, 0x2642 },
+ ["man cartwheeling: dark skin tone"]={ 0x1F938, 0x1F3FF, 0x200D, 0x2642 },
+ ["man cartwheeling: light skin tone"]={ 0x1F938, 0x1F3FB, 0x200D, 0x2642 },
+ ["man cartwheeling: medium skin tone"]={ 0x1F938, 0x1F3FD, 0x200D, 0x2642 },
+ ["man cartwheeling: medium-dark skin tone"]={ 0x1F938, 0x1F3FE, 0x200D, 0x2642 },
+ ["man cartwheeling: medium-light skin tone"]={ 0x1F938, 0x1F3FC, 0x200D, 0x2642 },
+ ["man climbing"]={ 0x1F9D7, 0x200D, 0x2642 },
+ ["man climbing: dark skin tone"]={ 0x1F9D7, 0x1F3FF, 0x200D, 0x2642 },
+ ["man climbing: light skin tone"]={ 0x1F9D7, 0x1F3FB, 0x200D, 0x2642 },
+ ["man climbing: medium skin tone"]={ 0x1F9D7, 0x1F3FD, 0x200D, 0x2642 },
+ ["man climbing: medium-dark skin tone"]={ 0x1F9D7, 0x1F3FE, 0x200D, 0x2642 },
+ ["man climbing: medium-light skin tone"]={ 0x1F9D7, 0x1F3FC, 0x200D, 0x2642 },
+ ["man construction worker"]={ 0x1F477, 0x200D, 0x2642 },
+ ["man construction worker: dark skin tone"]={ 0x1F477, 0x1F3FF, 0x200D, 0x2642 },
+ ["man construction worker: light skin tone"]={ 0x1F477, 0x1F3FB, 0x200D, 0x2642 },
+ ["man construction worker: medium skin tone"]={ 0x1F477, 0x1F3FD, 0x200D, 0x2642 },
+ ["man construction worker: medium-dark skin tone"]={ 0x1F477, 0x1F3FE, 0x200D, 0x2642 },
+ ["man construction worker: medium-light skin tone"]={ 0x1F477, 0x1F3FC, 0x200D, 0x2642 },
["man cook"]={ 0x1F468, 0x200D, 0x1F373 },
["man cook: dark skin tone"]={ 0x1F468, 0x1F3FF, 0x200D, 0x1F373 },
["man cook: light skin tone"]={ 0x1F468, 0x1F3FB, 0x200D, 0x1F373 },
@@ -1184,36 +998,36 @@ return {
["man dancing: medium skin tone"]={ 0x1F57A, 0x1F3FD },
["man dancing: medium-dark skin tone"]={ 0x1F57A, 0x1F3FE },
["man dancing: medium-light skin tone"]={ 0x1F57A, 0x1F3FC },
- ["man detective"]={ 0x1F575, 0xFE0F, 0x200D, 0x2642, 0xFE0F },
- ["man detective: dark skin tone"]={ 0x1F575, 0x1F3FF, 0x200D, 0x2642, 0xFE0F },
- ["man detective: light skin tone"]={ 0x1F575, 0x1F3FB, 0x200D, 0x2642, 0xFE0F },
- ["man detective: medium skin tone"]={ 0x1F575, 0x1F3FD, 0x200D, 0x2642, 0xFE0F },
- ["man detective: medium-dark skin tone"]={ 0x1F575, 0x1F3FE, 0x200D, 0x2642, 0xFE0F },
- ["man detective: medium-light skin tone"]={ 0x1F575, 0x1F3FC, 0x200D, 0x2642, 0xFE0F },
- ["man elf"]={ 0x1F9DD, 0x200D, 0x2642, 0xFE0F },
- ["man elf: dark skin tone"]={ 0x1F9DD, 0x1F3FF, 0x200D, 0x2642, 0xFE0F },
- ["man elf: light skin tone"]={ 0x1F9DD, 0x1F3FB, 0x200D, 0x2642, 0xFE0F },
- ["man elf: medium skin tone"]={ 0x1F9DD, 0x1F3FD, 0x200D, 0x2642, 0xFE0F },
- ["man elf: medium-dark skin tone"]={ 0x1F9DD, 0x1F3FE, 0x200D, 0x2642, 0xFE0F },
- ["man elf: medium-light skin tone"]={ 0x1F9DD, 0x1F3FC, 0x200D, 0x2642, 0xFE0F },
- ["man facepalming"]={ 0x1F926, 0x200D, 0x2642, 0xFE0F },
- ["man facepalming: dark skin tone"]={ 0x1F926, 0x1F3FF, 0x200D, 0x2642, 0xFE0F },
- ["man facepalming: light skin tone"]={ 0x1F926, 0x1F3FB, 0x200D, 0x2642, 0xFE0F },
- ["man facepalming: medium skin tone"]={ 0x1F926, 0x1F3FD, 0x200D, 0x2642, 0xFE0F },
- ["man facepalming: medium-dark skin tone"]={ 0x1F926, 0x1F3FE, 0x200D, 0x2642, 0xFE0F },
- ["man facepalming: medium-light skin tone"]={ 0x1F926, 0x1F3FC, 0x200D, 0x2642, 0xFE0F },
+ ["man detective"]={ 0x1F575, 0x200D, 0x2642 },
+ ["man detective: dark skin tone"]={ 0x1F575, 0x1F3FF, 0x200D, 0x2642 },
+ ["man detective: light skin tone"]={ 0x1F575, 0x1F3FB, 0x200D, 0x2642 },
+ ["man detective: medium skin tone"]={ 0x1F575, 0x1F3FD, 0x200D, 0x2642 },
+ ["man detective: medium-dark skin tone"]={ 0x1F575, 0x1F3FE, 0x200D, 0x2642 },
+ ["man detective: medium-light skin tone"]={ 0x1F575, 0x1F3FC, 0x200D, 0x2642 },
+ ["man elf"]={ 0x1F9DD, 0x200D, 0x2642 },
+ ["man elf: dark skin tone"]={ 0x1F9DD, 0x1F3FF, 0x200D, 0x2642 },
+ ["man elf: light skin tone"]={ 0x1F9DD, 0x1F3FB, 0x200D, 0x2642 },
+ ["man elf: medium skin tone"]={ 0x1F9DD, 0x1F3FD, 0x200D, 0x2642 },
+ ["man elf: medium-dark skin tone"]={ 0x1F9DD, 0x1F3FE, 0x200D, 0x2642 },
+ ["man elf: medium-light skin tone"]={ 0x1F9DD, 0x1F3FC, 0x200D, 0x2642 },
+ ["man facepalming"]={ 0x1F926, 0x200D, 0x2642 },
+ ["man facepalming: dark skin tone"]={ 0x1F926, 0x1F3FF, 0x200D, 0x2642 },
+ ["man facepalming: light skin tone"]={ 0x1F926, 0x1F3FB, 0x200D, 0x2642 },
+ ["man facepalming: medium skin tone"]={ 0x1F926, 0x1F3FD, 0x200D, 0x2642 },
+ ["man facepalming: medium-dark skin tone"]={ 0x1F926, 0x1F3FE, 0x200D, 0x2642 },
+ ["man facepalming: medium-light skin tone"]={ 0x1F926, 0x1F3FC, 0x200D, 0x2642 },
["man factory worker"]={ 0x1F468, 0x200D, 0x1F3ED },
["man factory worker: dark skin tone"]={ 0x1F468, 0x1F3FF, 0x200D, 0x1F3ED },
["man factory worker: light skin tone"]={ 0x1F468, 0x1F3FB, 0x200D, 0x1F3ED },
["man factory worker: medium skin tone"]={ 0x1F468, 0x1F3FD, 0x200D, 0x1F3ED },
["man factory worker: medium-dark skin tone"]={ 0x1F468, 0x1F3FE, 0x200D, 0x1F3ED },
["man factory worker: medium-light skin tone"]={ 0x1F468, 0x1F3FC, 0x200D, 0x1F3ED },
- ["man fairy"]={ 0x1F9DA, 0x200D, 0x2642, 0xFE0F },
- ["man fairy: dark skin tone"]={ 0x1F9DA, 0x1F3FF, 0x200D, 0x2642, 0xFE0F },
- ["man fairy: light skin tone"]={ 0x1F9DA, 0x1F3FB, 0x200D, 0x2642, 0xFE0F },
- ["man fairy: medium skin tone"]={ 0x1F9DA, 0x1F3FD, 0x200D, 0x2642, 0xFE0F },
- ["man fairy: medium-dark skin tone"]={ 0x1F9DA, 0x1F3FE, 0x200D, 0x2642, 0xFE0F },
- ["man fairy: medium-light skin tone"]={ 0x1F9DA, 0x1F3FC, 0x200D, 0x2642, 0xFE0F },
+ ["man fairy"]={ 0x1F9DA, 0x200D, 0x2642 },
+ ["man fairy: dark skin tone"]={ 0x1F9DA, 0x1F3FF, 0x200D, 0x2642 },
+ ["man fairy: light skin tone"]={ 0x1F9DA, 0x1F3FB, 0x200D, 0x2642 },
+ ["man fairy: medium skin tone"]={ 0x1F9DA, 0x1F3FD, 0x200D, 0x2642 },
+ ["man fairy: medium-dark skin tone"]={ 0x1F9DA, 0x1F3FE, 0x200D, 0x2642 },
+ ["man fairy: medium-light skin tone"]={ 0x1F9DA, 0x1F3FC, 0x200D, 0x2642 },
["man farmer"]={ 0x1F468, 0x200D, 0x1F33E },
["man farmer: dark skin tone"]={ 0x1F468, 0x1F3FF, 0x200D, 0x1F33E },
["man farmer: light skin tone"]={ 0x1F468, 0x1F3FB, 0x200D, 0x1F33E },
@@ -1226,241 +1040,205 @@ return {
["man firefighter: medium skin tone"]={ 0x1F468, 0x1F3FD, 0x200D, 0x1F692 },
["man firefighter: medium-dark skin tone"]={ 0x1F468, 0x1F3FE, 0x200D, 0x1F692 },
["man firefighter: medium-light skin tone"]={ 0x1F468, 0x1F3FC, 0x200D, 0x1F692 },
- ["man frowning"]={ 0x1F64D, 0x200D, 0x2642, 0xFE0F },
- ["man frowning: dark skin tone"]={ 0x1F64D, 0x1F3FF, 0x200D, 0x2642, 0xFE0F },
- ["man frowning: light skin tone"]={ 0x1F64D, 0x1F3FB, 0x200D, 0x2642, 0xFE0F },
- ["man frowning: medium skin tone"]={ 0x1F64D, 0x1F3FD, 0x200D, 0x2642, 0xFE0F },
- ["man frowning: medium-dark skin tone"]={ 0x1F64D, 0x1F3FE, 0x200D, 0x2642, 0xFE0F },
- ["man frowning: medium-light skin tone"]={ 0x1F64D, 0x1F3FC, 0x200D, 0x2642, 0xFE0F },
- ["man genie"]={ 0x1F9DE, 0x200D, 0x2642, 0xFE0F },
- ["man gesturing no"]={ 0x1F645, 0x200D, 0x2642, 0xFE0F },
- ["man gesturing no: dark skin tone"]={ 0x1F645, 0x1F3FF, 0x200D, 0x2642, 0xFE0F },
- ["man gesturing no: light skin tone"]={ 0x1F645, 0x1F3FB, 0x200D, 0x2642, 0xFE0F },
- ["man gesturing no: medium skin tone"]={ 0x1F645, 0x1F3FD, 0x200D, 0x2642, 0xFE0F },
- ["man gesturing no: medium-dark skin tone"]={ 0x1F645, 0x1F3FE, 0x200D, 0x2642, 0xFE0F },
- ["man gesturing no: medium-light skin tone"]={ 0x1F645, 0x1F3FC, 0x200D, 0x2642, 0xFE0F },
- ["man gesturing ok"]={ 0x1F646, 0x200D, 0x2642, 0xFE0F },
- ["man gesturing ok: dark skin tone"]={ 0x1F646, 0x1F3FF, 0x200D, 0x2642, 0xFE0F },
- ["man gesturing ok: light skin tone"]={ 0x1F646, 0x1F3FB, 0x200D, 0x2642, 0xFE0F },
- ["man gesturing ok: medium skin tone"]={ 0x1F646, 0x1F3FD, 0x200D, 0x2642, 0xFE0F },
- ["man gesturing ok: medium-dark skin tone"]={ 0x1F646, 0x1F3FE, 0x200D, 0x2642, 0xFE0F },
- ["man gesturing ok: medium-light skin tone"]={ 0x1F646, 0x1F3FC, 0x200D, 0x2642, 0xFE0F },
- ["man getting haircut"]={ 0x1F487, 0x200D, 0x2642, 0xFE0F },
- ["man getting haircut: dark skin tone"]={ 0x1F487, 0x1F3FF, 0x200D, 0x2642, 0xFE0F },
- ["man getting haircut: light skin tone"]={ 0x1F487, 0x1F3FB, 0x200D, 0x2642, 0xFE0F },
- ["man getting haircut: medium skin tone"]={ 0x1F487, 0x1F3FD, 0x200D, 0x2642, 0xFE0F },
- ["man getting haircut: medium-dark skin tone"]={ 0x1F487, 0x1F3FE, 0x200D, 0x2642, 0xFE0F },
- ["man getting haircut: medium-light skin tone"]={ 0x1F487, 0x1F3FC, 0x200D, 0x2642, 0xFE0F },
- ["man getting massage"]={ 0x1F486, 0x200D, 0x2642, 0xFE0F },
- ["man getting massage: dark skin tone"]={ 0x1F486, 0x1F3FF, 0x200D, 0x2642, 0xFE0F },
- ["man getting massage: light skin tone"]={ 0x1F486, 0x1F3FB, 0x200D, 0x2642, 0xFE0F },
- ["man getting massage: medium skin tone"]={ 0x1F486, 0x1F3FD, 0x200D, 0x2642, 0xFE0F },
- ["man getting massage: medium-dark skin tone"]={ 0x1F486, 0x1F3FE, 0x200D, 0x2642, 0xFE0F },
- ["man getting massage: medium-light skin tone"]={ 0x1F486, 0x1F3FC, 0x200D, 0x2642, 0xFE0F },
- ["man golfing"]={ 0x1F3CC, 0xFE0F, 0x200D, 0x2642, 0xFE0F },
- ["man golfing: dark skin tone"]={ 0x1F3CC, 0x1F3FF, 0x200D, 0x2642, 0xFE0F },
- ["man golfing: light skin tone"]={ 0x1F3CC, 0x1F3FB, 0x200D, 0x2642, 0xFE0F },
- ["man golfing: medium skin tone"]={ 0x1F3CC, 0x1F3FD, 0x200D, 0x2642, 0xFE0F },
- ["man golfing: medium-dark skin tone"]={ 0x1F3CC, 0x1F3FE, 0x200D, 0x2642, 0xFE0F },
- ["man golfing: medium-light skin tone"]={ 0x1F3CC, 0x1F3FC, 0x200D, 0x2642, 0xFE0F },
- ["man guard"]={ 0x1F482, 0x200D, 0x2642, 0xFE0F },
- ["man guard: dark skin tone"]={ 0x1F482, 0x1F3FF, 0x200D, 0x2642, 0xFE0F },
- ["man guard: light skin tone"]={ 0x1F482, 0x1F3FB, 0x200D, 0x2642, 0xFE0F },
- ["man guard: medium skin tone"]={ 0x1F482, 0x1F3FD, 0x200D, 0x2642, 0xFE0F },
- ["man guard: medium-dark skin tone"]={ 0x1F482, 0x1F3FE, 0x200D, 0x2642, 0xFE0F },
- ["man guard: medium-light skin tone"]={ 0x1F482, 0x1F3FC, 0x200D, 0x2642, 0xFE0F },
- ["man health worker"]={ 0x1F468, 0x200D, 0x2695, 0xFE0F },
- ["man health worker: dark skin tone"]={ 0x1F468, 0x1F3FF, 0x200D, 0x2695, 0xFE0F },
- ["man health worker: light skin tone"]={ 0x1F468, 0x1F3FB, 0x200D, 0x2695, 0xFE0F },
- ["man health worker: medium skin tone"]={ 0x1F468, 0x1F3FD, 0x200D, 0x2695, 0xFE0F },
- ["man health worker: medium-dark skin tone"]={ 0x1F468, 0x1F3FE, 0x200D, 0x2695, 0xFE0F },
- ["man health worker: medium-light skin tone"]={ 0x1F468, 0x1F3FC, 0x200D, 0x2695, 0xFE0F },
- ["man in lotus position"]={ 0x1F9D8, 0x200D, 0x2642, 0xFE0F },
- ["man in lotus position: dark skin tone"]={ 0x1F9D8, 0x1F3FF, 0x200D, 0x2642, 0xFE0F },
- ["man in lotus position: light skin tone"]={ 0x1F9D8, 0x1F3FB, 0x200D, 0x2642, 0xFE0F },
- ["man in lotus position: medium skin tone"]={ 0x1F9D8, 0x1F3FD, 0x200D, 0x2642, 0xFE0F },
- ["man in lotus position: medium-dark skin tone"]={ 0x1F9D8, 0x1F3FE, 0x200D, 0x2642, 0xFE0F },
- ["man in lotus position: medium-light skin tone"]={ 0x1F9D8, 0x1F3FC, 0x200D, 0x2642, 0xFE0F },
- ["man in manual wheelchair"]={ 0x1F468, 0x200D, 0x1F9BD },
- ["man in manual wheelchair: dark skin tone"]={ 0x1F468, 0x1F3FF, 0x200D, 0x1F9BD },
- ["man in manual wheelchair: light skin tone"]={ 0x1F468, 0x1F3FB, 0x200D, 0x1F9BD },
- ["man in manual wheelchair: medium skin tone"]={ 0x1F468, 0x1F3FD, 0x200D, 0x1F9BD },
- ["man in manual wheelchair: medium-dark skin tone"]={ 0x1F468, 0x1F3FE, 0x200D, 0x1F9BD },
- ["man in manual wheelchair: medium-light skin tone"]={ 0x1F468, 0x1F3FC, 0x200D, 0x1F9BD },
- ["man in motorized wheelchair"]={ 0x1F468, 0x200D, 0x1F9BC },
- ["man in motorized wheelchair: dark skin tone"]={ 0x1F468, 0x1F3FF, 0x200D, 0x1F9BC },
- ["man in motorized wheelchair: light skin tone"]={ 0x1F468, 0x1F3FB, 0x200D, 0x1F9BC },
- ["man in motorized wheelchair: medium skin tone"]={ 0x1F468, 0x1F3FD, 0x200D, 0x1F9BC },
- ["man in motorized wheelchair: medium-dark skin tone"]={ 0x1F468, 0x1F3FE, 0x200D, 0x1F9BC },
- ["man in motorized wheelchair: medium-light skin tone"]={ 0x1F468, 0x1F3FC, 0x200D, 0x1F9BC },
- ["man in steamy room"]={ 0x1F9D6, 0x200D, 0x2642, 0xFE0F },
- ["man in steamy room: dark skin tone"]={ 0x1F9D6, 0x1F3FF, 0x200D, 0x2642, 0xFE0F },
- ["man in steamy room: light skin tone"]={ 0x1F9D6, 0x1F3FB, 0x200D, 0x2642, 0xFE0F },
- ["man in steamy room: medium skin tone"]={ 0x1F9D6, 0x1F3FD, 0x200D, 0x2642, 0xFE0F },
- ["man in steamy room: medium-dark skin tone"]={ 0x1F9D6, 0x1F3FE, 0x200D, 0x2642, 0xFE0F },
- ["man in steamy room: medium-light skin tone"]={ 0x1F9D6, 0x1F3FC, 0x200D, 0x2642, 0xFE0F },
- ["man in suit levitating"]={ 0x1F574, 0xFE0F },
- ["man in suit levitating: dark skin tone"]={ 0x1F574, 0x1F3FF },
- ["man in suit levitating: light skin tone"]={ 0x1F574, 0x1F3FB },
- ["man in suit levitating: medium skin tone"]={ 0x1F574, 0x1F3FD },
- ["man in suit levitating: medium-dark skin tone"]={ 0x1F574, 0x1F3FE },
- ["man in suit levitating: medium-light skin tone"]={ 0x1F574, 0x1F3FC },
+ ["man frowning"]={ 0x1F64D, 0x200D, 0x2642 },
+ ["man frowning: dark skin tone"]={ 0x1F64D, 0x1F3FF, 0x200D, 0x2642 },
+ ["man frowning: light skin tone"]={ 0x1F64D, 0x1F3FB, 0x200D, 0x2642 },
+ ["man frowning: medium skin tone"]={ 0x1F64D, 0x1F3FD, 0x200D, 0x2642 },
+ ["man frowning: medium-dark skin tone"]={ 0x1F64D, 0x1F3FE, 0x200D, 0x2642 },
+ ["man frowning: medium-light skin tone"]={ 0x1F64D, 0x1F3FC, 0x200D, 0x2642 },
+ ["man genie"]={ 0x1F9DE, 0x200D, 0x2642 },
+ ["man gesturing no"]={ 0x1F645, 0x200D, 0x2642 },
+ ["man gesturing no: dark skin tone"]={ 0x1F645, 0x1F3FF, 0x200D, 0x2642 },
+ ["man gesturing no: light skin tone"]={ 0x1F645, 0x1F3FB, 0x200D, 0x2642 },
+ ["man gesturing no: medium skin tone"]={ 0x1F645, 0x1F3FD, 0x200D, 0x2642 },
+ ["man gesturing no: medium-dark skin tone"]={ 0x1F645, 0x1F3FE, 0x200D, 0x2642 },
+ ["man gesturing no: medium-light skin tone"]={ 0x1F645, 0x1F3FC, 0x200D, 0x2642 },
+ ["man gesturing ok"]={ 0x1F646, 0x200D, 0x2642 },
+ ["man gesturing ok: dark skin tone"]={ 0x1F646, 0x1F3FF, 0x200D, 0x2642 },
+ ["man gesturing ok: light skin tone"]={ 0x1F646, 0x1F3FB, 0x200D, 0x2642 },
+ ["man gesturing ok: medium skin tone"]={ 0x1F646, 0x1F3FD, 0x200D, 0x2642 },
+ ["man gesturing ok: medium-dark skin tone"]={ 0x1F646, 0x1F3FE, 0x200D, 0x2642 },
+ ["man gesturing ok: medium-light skin tone"]={ 0x1F646, 0x1F3FC, 0x200D, 0x2642 },
+ ["man getting haircut"]={ 0x1F487, 0x200D, 0x2642 },
+ ["man getting haircut: dark skin tone"]={ 0x1F487, 0x1F3FF, 0x200D, 0x2642 },
+ ["man getting haircut: light skin tone"]={ 0x1F487, 0x1F3FB, 0x200D, 0x2642 },
+ ["man getting haircut: medium skin tone"]={ 0x1F487, 0x1F3FD, 0x200D, 0x2642 },
+ ["man getting haircut: medium-dark skin tone"]={ 0x1F487, 0x1F3FE, 0x200D, 0x2642 },
+ ["man getting haircut: medium-light skin tone"]={ 0x1F487, 0x1F3FC, 0x200D, 0x2642 },
+ ["man getting massage"]={ 0x1F486, 0x200D, 0x2642 },
+ ["man getting massage: dark skin tone"]={ 0x1F486, 0x1F3FF, 0x200D, 0x2642 },
+ ["man getting massage: light skin tone"]={ 0x1F486, 0x1F3FB, 0x200D, 0x2642 },
+ ["man getting massage: medium skin tone"]={ 0x1F486, 0x1F3FD, 0x200D, 0x2642 },
+ ["man getting massage: medium-dark skin tone"]={ 0x1F486, 0x1F3FE, 0x200D, 0x2642 },
+ ["man getting massage: medium-light skin tone"]={ 0x1F486, 0x1F3FC, 0x200D, 0x2642 },
+ ["man golfing"]={ 0x1F3CC, 0x200D, 0x2642 },
+ ["man golfing: dark skin tone"]={ 0x1F3CC, 0x1F3FF, 0x200D, 0x2642 },
+ ["man golfing: light skin tone"]={ 0x1F3CC, 0x1F3FB, 0x200D, 0x2642 },
+ ["man golfing: medium skin tone"]={ 0x1F3CC, 0x1F3FD, 0x200D, 0x2642 },
+ ["man golfing: medium-dark skin tone"]={ 0x1F3CC, 0x1F3FE, 0x200D, 0x2642 },
+ ["man golfing: medium-light skin tone"]={ 0x1F3CC, 0x1F3FC, 0x200D, 0x2642 },
+ ["man guard"]={ 0x1F482, 0x200D, 0x2642 },
+ ["man guard: dark skin tone"]={ 0x1F482, 0x1F3FF, 0x200D, 0x2642 },
+ ["man guard: light skin tone"]={ 0x1F482, 0x1F3FB, 0x200D, 0x2642 },
+ ["man guard: medium skin tone"]={ 0x1F482, 0x1F3FD, 0x200D, 0x2642 },
+ ["man guard: medium-dark skin tone"]={ 0x1F482, 0x1F3FE, 0x200D, 0x2642 },
+ ["man guard: medium-light skin tone"]={ 0x1F482, 0x1F3FC, 0x200D, 0x2642 },
+ ["man health worker"]={ 0x1F468, 0x200D, 0x2695 },
+ ["man health worker: dark skin tone"]={ 0x1F468, 0x1F3FF, 0x200D, 0x2695 },
+ ["man health worker: light skin tone"]={ 0x1F468, 0x1F3FB, 0x200D, 0x2695 },
+ ["man health worker: medium skin tone"]={ 0x1F468, 0x1F3FD, 0x200D, 0x2695 },
+ ["man health worker: medium-dark skin tone"]={ 0x1F468, 0x1F3FE, 0x200D, 0x2695 },
+ ["man health worker: medium-light skin tone"]={ 0x1F468, 0x1F3FC, 0x200D, 0x2695 },
+ ["man in business suit levitating"]={ 0x1F574 },
+ ["man in business suit levitating: dark skin tone"]={ 0x1F574, 0x1F3FF },
+ ["man in business suit levitating: light skin tone"]={ 0x1F574, 0x1F3FB },
+ ["man in business suit levitating: medium skin tone"]={ 0x1F574, 0x1F3FD },
+ ["man in business suit levitating: medium-dark skin tone"]={ 0x1F574, 0x1F3FE },
+ ["man in business suit levitating: medium-light skin tone"]={ 0x1F574, 0x1F3FC },
+ ["man in lotus position"]={ 0x1F9D8, 0x200D, 0x2642 },
+ ["man in lotus position: dark skin tone"]={ 0x1F9D8, 0x1F3FF, 0x200D, 0x2642 },
+ ["man in lotus position: light skin tone"]={ 0x1F9D8, 0x1F3FB, 0x200D, 0x2642 },
+ ["man in lotus position: medium skin tone"]={ 0x1F9D8, 0x1F3FD, 0x200D, 0x2642 },
+ ["man in lotus position: medium-dark skin tone"]={ 0x1F9D8, 0x1F3FE, 0x200D, 0x2642 },
+ ["man in lotus position: medium-light skin tone"]={ 0x1F9D8, 0x1F3FC, 0x200D, 0x2642 },
+ ["man in steamy room"]={ 0x1F9D6, 0x200D, 0x2642 },
+ ["man in steamy room: dark skin tone"]={ 0x1F9D6, 0x1F3FF, 0x200D, 0x2642 },
+ ["man in steamy room: light skin tone"]={ 0x1F9D6, 0x1F3FB, 0x200D, 0x2642 },
+ ["man in steamy room: medium skin tone"]={ 0x1F9D6, 0x1F3FD, 0x200D, 0x2642 },
+ ["man in steamy room: medium-dark skin tone"]={ 0x1F9D6, 0x1F3FE, 0x200D, 0x2642 },
+ ["man in steamy room: medium-light skin tone"]={ 0x1F9D6, 0x1F3FC, 0x200D, 0x2642 },
["man in tuxedo"]={ 0x1F935 },
["man in tuxedo: dark skin tone"]={ 0x1F935, 0x1F3FF },
["man in tuxedo: light skin tone"]={ 0x1F935, 0x1F3FB },
["man in tuxedo: medium skin tone"]={ 0x1F935, 0x1F3FD },
["man in tuxedo: medium-dark skin tone"]={ 0x1F935, 0x1F3FE },
["man in tuxedo: medium-light skin tone"]={ 0x1F935, 0x1F3FC },
- ["man judge"]={ 0x1F468, 0x200D, 0x2696, 0xFE0F },
- ["man judge: dark skin tone"]={ 0x1F468, 0x1F3FF, 0x200D, 0x2696, 0xFE0F },
- ["man judge: light skin tone"]={ 0x1F468, 0x1F3FB, 0x200D, 0x2696, 0xFE0F },
- ["man judge: medium skin tone"]={ 0x1F468, 0x1F3FD, 0x200D, 0x2696, 0xFE0F },
- ["man judge: medium-dark skin tone"]={ 0x1F468, 0x1F3FE, 0x200D, 0x2696, 0xFE0F },
- ["man judge: medium-light skin tone"]={ 0x1F468, 0x1F3FC, 0x200D, 0x2696, 0xFE0F },
- ["man juggling"]={ 0x1F939, 0x200D, 0x2642, 0xFE0F },
- ["man juggling: dark skin tone"]={ 0x1F939, 0x1F3FF, 0x200D, 0x2642, 0xFE0F },
- ["man juggling: light skin tone"]={ 0x1F939, 0x1F3FB, 0x200D, 0x2642, 0xFE0F },
- ["man juggling: medium skin tone"]={ 0x1F939, 0x1F3FD, 0x200D, 0x2642, 0xFE0F },
- ["man juggling: medium-dark skin tone"]={ 0x1F939, 0x1F3FE, 0x200D, 0x2642, 0xFE0F },
- ["man juggling: medium-light skin tone"]={ 0x1F939, 0x1F3FC, 0x200D, 0x2642, 0xFE0F },
- ["man kneeling"]={ 0x1F9CE, 0x200D, 0x2642, 0xFE0F },
- ["man kneeling: dark skin tone"]={ 0x1F9CE, 0x1F3FF, 0x200D, 0x2642, 0xFE0F },
- ["man kneeling: light skin tone"]={ 0x1F9CE, 0x1F3FB, 0x200D, 0x2642, 0xFE0F },
- ["man kneeling: medium skin tone"]={ 0x1F9CE, 0x1F3FD, 0x200D, 0x2642, 0xFE0F },
- ["man kneeling: medium-dark skin tone"]={ 0x1F9CE, 0x1F3FE, 0x200D, 0x2642, 0xFE0F },
- ["man kneeling: medium-light skin tone"]={ 0x1F9CE, 0x1F3FC, 0x200D, 0x2642, 0xFE0F },
- ["man lifting weights"]={ 0x1F3CB, 0xFE0F, 0x200D, 0x2642, 0xFE0F },
- ["man lifting weights: dark skin tone"]={ 0x1F3CB, 0x1F3FF, 0x200D, 0x2642, 0xFE0F },
- ["man lifting weights: light skin tone"]={ 0x1F3CB, 0x1F3FB, 0x200D, 0x2642, 0xFE0F },
- ["man lifting weights: medium skin tone"]={ 0x1F3CB, 0x1F3FD, 0x200D, 0x2642, 0xFE0F },
- ["man lifting weights: medium-dark skin tone"]={ 0x1F3CB, 0x1F3FE, 0x200D, 0x2642, 0xFE0F },
- ["man lifting weights: medium-light skin tone"]={ 0x1F3CB, 0x1F3FC, 0x200D, 0x2642, 0xFE0F },
- ["man mage"]={ 0x1F9D9, 0x200D, 0x2642, 0xFE0F },
- ["man mage: dark skin tone"]={ 0x1F9D9, 0x1F3FF, 0x200D, 0x2642, 0xFE0F },
- ["man mage: light skin tone"]={ 0x1F9D9, 0x1F3FB, 0x200D, 0x2642, 0xFE0F },
- ["man mage: medium skin tone"]={ 0x1F9D9, 0x1F3FD, 0x200D, 0x2642, 0xFE0F },
- ["man mage: medium-dark skin tone"]={ 0x1F9D9, 0x1F3FE, 0x200D, 0x2642, 0xFE0F },
- ["man mage: medium-light skin tone"]={ 0x1F9D9, 0x1F3FC, 0x200D, 0x2642, 0xFE0F },
+ ["man judge"]={ 0x1F468, 0x200D, 0x2696 },
+ ["man judge: dark skin tone"]={ 0x1F468, 0x1F3FF, 0x200D, 0x2696 },
+ ["man judge: light skin tone"]={ 0x1F468, 0x1F3FB, 0x200D, 0x2696 },
+ ["man judge: medium skin tone"]={ 0x1F468, 0x1F3FD, 0x200D, 0x2696 },
+ ["man judge: medium-dark skin tone"]={ 0x1F468, 0x1F3FE, 0x200D, 0x2696 },
+ ["man judge: medium-light skin tone"]={ 0x1F468, 0x1F3FC, 0x200D, 0x2696 },
+ ["man juggling"]={ 0x1F939, 0x200D, 0x2642 },
+ ["man juggling: dark skin tone"]={ 0x1F939, 0x1F3FF, 0x200D, 0x2642 },
+ ["man juggling: light skin tone"]={ 0x1F939, 0x1F3FB, 0x200D, 0x2642 },
+ ["man juggling: medium skin tone"]={ 0x1F939, 0x1F3FD, 0x200D, 0x2642 },
+ ["man juggling: medium-dark skin tone"]={ 0x1F939, 0x1F3FE, 0x200D, 0x2642 },
+ ["man juggling: medium-light skin tone"]={ 0x1F939, 0x1F3FC, 0x200D, 0x2642 },
+ ["man lifting weights"]={ 0x1F3CB, 0x200D, 0x2642 },
+ ["man lifting weights: dark skin tone"]={ 0x1F3CB, 0x1F3FF, 0x200D, 0x2642 },
+ ["man lifting weights: light skin tone"]={ 0x1F3CB, 0x1F3FB, 0x200D, 0x2642 },
+ ["man lifting weights: medium skin tone"]={ 0x1F3CB, 0x1F3FD, 0x200D, 0x2642 },
+ ["man lifting weights: medium-dark skin tone"]={ 0x1F3CB, 0x1F3FE, 0x200D, 0x2642 },
+ ["man lifting weights: medium-light skin tone"]={ 0x1F3CB, 0x1F3FC, 0x200D, 0x2642 },
+ ["man mage"]={ 0x1F9D9, 0x200D, 0x2642 },
+ ["man mage: dark skin tone"]={ 0x1F9D9, 0x1F3FF, 0x200D, 0x2642 },
+ ["man mage: light skin tone"]={ 0x1F9D9, 0x1F3FB, 0x200D, 0x2642 },
+ ["man mage: medium skin tone"]={ 0x1F9D9, 0x1F3FD, 0x200D, 0x2642 },
+ ["man mage: medium-dark skin tone"]={ 0x1F9D9, 0x1F3FE, 0x200D, 0x2642 },
+ ["man mage: medium-light skin tone"]={ 0x1F9D9, 0x1F3FC, 0x200D, 0x2642 },
["man mechanic"]={ 0x1F468, 0x200D, 0x1F527 },
["man mechanic: dark skin tone"]={ 0x1F468, 0x1F3FF, 0x200D, 0x1F527 },
["man mechanic: light skin tone"]={ 0x1F468, 0x1F3FB, 0x200D, 0x1F527 },
["man mechanic: medium skin tone"]={ 0x1F468, 0x1F3FD, 0x200D, 0x1F527 },
["man mechanic: medium-dark skin tone"]={ 0x1F468, 0x1F3FE, 0x200D, 0x1F527 },
["man mechanic: medium-light skin tone"]={ 0x1F468, 0x1F3FC, 0x200D, 0x1F527 },
- ["man mountain biking"]={ 0x1F6B5, 0x200D, 0x2642, 0xFE0F },
- ["man mountain biking: dark skin tone"]={ 0x1F6B5, 0x1F3FF, 0x200D, 0x2642, 0xFE0F },
- ["man mountain biking: light skin tone"]={ 0x1F6B5, 0x1F3FB, 0x200D, 0x2642, 0xFE0F },
- ["man mountain biking: medium skin tone"]={ 0x1F6B5, 0x1F3FD, 0x200D, 0x2642, 0xFE0F },
- ["man mountain biking: medium-dark skin tone"]={ 0x1F6B5, 0x1F3FE, 0x200D, 0x2642, 0xFE0F },
- ["man mountain biking: medium-light skin tone"]={ 0x1F6B5, 0x1F3FC, 0x200D, 0x2642, 0xFE0F },
+ ["man mountain biking"]={ 0x1F6B5, 0x200D, 0x2642 },
+ ["man mountain biking: dark skin tone"]={ 0x1F6B5, 0x1F3FF, 0x200D, 0x2642 },
+ ["man mountain biking: light skin tone"]={ 0x1F6B5, 0x1F3FB, 0x200D, 0x2642 },
+ ["man mountain biking: medium skin tone"]={ 0x1F6B5, 0x1F3FD, 0x200D, 0x2642 },
+ ["man mountain biking: medium-dark skin tone"]={ 0x1F6B5, 0x1F3FE, 0x200D, 0x2642 },
+ ["man mountain biking: medium-light skin tone"]={ 0x1F6B5, 0x1F3FC, 0x200D, 0x2642 },
["man office worker"]={ 0x1F468, 0x200D, 0x1F4BC },
["man office worker: dark skin tone"]={ 0x1F468, 0x1F3FF, 0x200D, 0x1F4BC },
["man office worker: light skin tone"]={ 0x1F468, 0x1F3FB, 0x200D, 0x1F4BC },
["man office worker: medium skin tone"]={ 0x1F468, 0x1F3FD, 0x200D, 0x1F4BC },
["man office worker: medium-dark skin tone"]={ 0x1F468, 0x1F3FE, 0x200D, 0x1F4BC },
["man office worker: medium-light skin tone"]={ 0x1F468, 0x1F3FC, 0x200D, 0x1F4BC },
- ["man pilot"]={ 0x1F468, 0x200D, 0x2708, 0xFE0F },
- ["man pilot: dark skin tone"]={ 0x1F468, 0x1F3FF, 0x200D, 0x2708, 0xFE0F },
- ["man pilot: light skin tone"]={ 0x1F468, 0x1F3FB, 0x200D, 0x2708, 0xFE0F },
- ["man pilot: medium skin tone"]={ 0x1F468, 0x1F3FD, 0x200D, 0x2708, 0xFE0F },
- ["man pilot: medium-dark skin tone"]={ 0x1F468, 0x1F3FE, 0x200D, 0x2708, 0xFE0F },
- ["man pilot: medium-light skin tone"]={ 0x1F468, 0x1F3FC, 0x200D, 0x2708, 0xFE0F },
- ["man playing handball"]={ 0x1F93E, 0x200D, 0x2642, 0xFE0F },
- ["man playing handball: dark skin tone"]={ 0x1F93E, 0x1F3FF, 0x200D, 0x2642, 0xFE0F },
- ["man playing handball: light skin tone"]={ 0x1F93E, 0x1F3FB, 0x200D, 0x2642, 0xFE0F },
- ["man playing handball: medium skin tone"]={ 0x1F93E, 0x1F3FD, 0x200D, 0x2642, 0xFE0F },
- ["man playing handball: medium-dark skin tone"]={ 0x1F93E, 0x1F3FE, 0x200D, 0x2642, 0xFE0F },
- ["man playing handball: medium-light skin tone"]={ 0x1F93E, 0x1F3FC, 0x200D, 0x2642, 0xFE0F },
- ["man playing water polo"]={ 0x1F93D, 0x200D, 0x2642, 0xFE0F },
- ["man playing water polo: dark skin tone"]={ 0x1F93D, 0x1F3FF, 0x200D, 0x2642, 0xFE0F },
- ["man playing water polo: light skin tone"]={ 0x1F93D, 0x1F3FB, 0x200D, 0x2642, 0xFE0F },
- ["man playing water polo: medium skin tone"]={ 0x1F93D, 0x1F3FD, 0x200D, 0x2642, 0xFE0F },
- ["man playing water polo: medium-dark skin tone"]={ 0x1F93D, 0x1F3FE, 0x200D, 0x2642, 0xFE0F },
- ["man playing water polo: medium-light skin tone"]={ 0x1F93D, 0x1F3FC, 0x200D, 0x2642, 0xFE0F },
- ["man police officer"]={ 0x1F46E, 0x200D, 0x2642, 0xFE0F },
- ["man police officer: dark skin tone"]={ 0x1F46E, 0x1F3FF, 0x200D, 0x2642, 0xFE0F },
- ["man police officer: light skin tone"]={ 0x1F46E, 0x1F3FB, 0x200D, 0x2642, 0xFE0F },
- ["man police officer: medium skin tone"]={ 0x1F46E, 0x1F3FD, 0x200D, 0x2642, 0xFE0F },
- ["man police officer: medium-dark skin tone"]={ 0x1F46E, 0x1F3FE, 0x200D, 0x2642, 0xFE0F },
- ["man police officer: medium-light skin tone"]={ 0x1F46E, 0x1F3FC, 0x200D, 0x2642, 0xFE0F },
- ["man pouting"]={ 0x1F64E, 0x200D, 0x2642, 0xFE0F },
- ["man pouting: dark skin tone"]={ 0x1F64E, 0x1F3FF, 0x200D, 0x2642, 0xFE0F },
- ["man pouting: light skin tone"]={ 0x1F64E, 0x1F3FB, 0x200D, 0x2642, 0xFE0F },
- ["man pouting: medium skin tone"]={ 0x1F64E, 0x1F3FD, 0x200D, 0x2642, 0xFE0F },
- ["man pouting: medium-dark skin tone"]={ 0x1F64E, 0x1F3FE, 0x200D, 0x2642, 0xFE0F },
- ["man pouting: medium-light skin tone"]={ 0x1F64E, 0x1F3FC, 0x200D, 0x2642, 0xFE0F },
- ["man raising hand"]={ 0x1F64B, 0x200D, 0x2642, 0xFE0F },
- ["man raising hand: dark skin tone"]={ 0x1F64B, 0x1F3FF, 0x200D, 0x2642, 0xFE0F },
- ["man raising hand: light skin tone"]={ 0x1F64B, 0x1F3FB, 0x200D, 0x2642, 0xFE0F },
- ["man raising hand: medium skin tone"]={ 0x1F64B, 0x1F3FD, 0x200D, 0x2642, 0xFE0F },
- ["man raising hand: medium-dark skin tone"]={ 0x1F64B, 0x1F3FE, 0x200D, 0x2642, 0xFE0F },
- ["man raising hand: medium-light skin tone"]={ 0x1F64B, 0x1F3FC, 0x200D, 0x2642, 0xFE0F },
- ["man rowing boat"]={ 0x1F6A3, 0x200D, 0x2642, 0xFE0F },
- ["man rowing boat: dark skin tone"]={ 0x1F6A3, 0x1F3FF, 0x200D, 0x2642, 0xFE0F },
- ["man rowing boat: light skin tone"]={ 0x1F6A3, 0x1F3FB, 0x200D, 0x2642, 0xFE0F },
- ["man rowing boat: medium skin tone"]={ 0x1F6A3, 0x1F3FD, 0x200D, 0x2642, 0xFE0F },
- ["man rowing boat: medium-dark skin tone"]={ 0x1F6A3, 0x1F3FE, 0x200D, 0x2642, 0xFE0F },
- ["man rowing boat: medium-light skin tone"]={ 0x1F6A3, 0x1F3FC, 0x200D, 0x2642, 0xFE0F },
- ["man running"]={ 0x1F3C3, 0x200D, 0x2642, 0xFE0F },
- ["man running: dark skin tone"]={ 0x1F3C3, 0x1F3FF, 0x200D, 0x2642, 0xFE0F },
- ["man running: light skin tone"]={ 0x1F3C3, 0x1F3FB, 0x200D, 0x2642, 0xFE0F },
- ["man running: medium skin tone"]={ 0x1F3C3, 0x1F3FD, 0x200D, 0x2642, 0xFE0F },
- ["man running: medium-dark skin tone"]={ 0x1F3C3, 0x1F3FE, 0x200D, 0x2642, 0xFE0F },
- ["man running: medium-light skin tone"]={ 0x1F3C3, 0x1F3FC, 0x200D, 0x2642, 0xFE0F },
+ ["man pilot"]={ 0x1F468, 0x200D, 0x2708 },
+ ["man pilot: dark skin tone"]={ 0x1F468, 0x1F3FF, 0x200D, 0x2708 },
+ ["man pilot: light skin tone"]={ 0x1F468, 0x1F3FB, 0x200D, 0x2708 },
+ ["man pilot: medium skin tone"]={ 0x1F468, 0x1F3FD, 0x200D, 0x2708 },
+ ["man pilot: medium-dark skin tone"]={ 0x1F468, 0x1F3FE, 0x200D, 0x2708 },
+ ["man pilot: medium-light skin tone"]={ 0x1F468, 0x1F3FC, 0x200D, 0x2708 },
+ ["man playing handball"]={ 0x1F93E, 0x200D, 0x2642 },
+ ["man playing handball: dark skin tone"]={ 0x1F93E, 0x1F3FF, 0x200D, 0x2642 },
+ ["man playing handball: light skin tone"]={ 0x1F93E, 0x1F3FB, 0x200D, 0x2642 },
+ ["man playing handball: medium skin tone"]={ 0x1F93E, 0x1F3FD, 0x200D, 0x2642 },
+ ["man playing handball: medium-dark skin tone"]={ 0x1F93E, 0x1F3FE, 0x200D, 0x2642 },
+ ["man playing handball: medium-light skin tone"]={ 0x1F93E, 0x1F3FC, 0x200D, 0x2642 },
+ ["man playing water polo"]={ 0x1F93D, 0x200D, 0x2642 },
+ ["man playing water polo: dark skin tone"]={ 0x1F93D, 0x1F3FF, 0x200D, 0x2642 },
+ ["man playing water polo: light skin tone"]={ 0x1F93D, 0x1F3FB, 0x200D, 0x2642 },
+ ["man playing water polo: medium skin tone"]={ 0x1F93D, 0x1F3FD, 0x200D, 0x2642 },
+ ["man playing water polo: medium-dark skin tone"]={ 0x1F93D, 0x1F3FE, 0x200D, 0x2642 },
+ ["man playing water polo: medium-light skin tone"]={ 0x1F93D, 0x1F3FC, 0x200D, 0x2642 },
+ ["man police officer"]={ 0x1F46E, 0x200D, 0x2642 },
+ ["man police officer: dark skin tone"]={ 0x1F46E, 0x1F3FF, 0x200D, 0x2642 },
+ ["man police officer: light skin tone"]={ 0x1F46E, 0x1F3FB, 0x200D, 0x2642 },
+ ["man police officer: medium skin tone"]={ 0x1F46E, 0x1F3FD, 0x200D, 0x2642 },
+ ["man police officer: medium-dark skin tone"]={ 0x1F46E, 0x1F3FE, 0x200D, 0x2642 },
+ ["man police officer: medium-light skin tone"]={ 0x1F46E, 0x1F3FC, 0x200D, 0x2642 },
+ ["man pouting"]={ 0x1F64E, 0x200D, 0x2642 },
+ ["man pouting: dark skin tone"]={ 0x1F64E, 0x1F3FF, 0x200D, 0x2642 },
+ ["man pouting: light skin tone"]={ 0x1F64E, 0x1F3FB, 0x200D, 0x2642 },
+ ["man pouting: medium skin tone"]={ 0x1F64E, 0x1F3FD, 0x200D, 0x2642 },
+ ["man pouting: medium-dark skin tone"]={ 0x1F64E, 0x1F3FE, 0x200D, 0x2642 },
+ ["man pouting: medium-light skin tone"]={ 0x1F64E, 0x1F3FC, 0x200D, 0x2642 },
+ ["man raising hand"]={ 0x1F64B, 0x200D, 0x2642 },
+ ["man raising hand: dark skin tone"]={ 0x1F64B, 0x1F3FF, 0x200D, 0x2642 },
+ ["man raising hand: light skin tone"]={ 0x1F64B, 0x1F3FB, 0x200D, 0x2642 },
+ ["man raising hand: medium skin tone"]={ 0x1F64B, 0x1F3FD, 0x200D, 0x2642 },
+ ["man raising hand: medium-dark skin tone"]={ 0x1F64B, 0x1F3FE, 0x200D, 0x2642 },
+ ["man raising hand: medium-light skin tone"]={ 0x1F64B, 0x1F3FC, 0x200D, 0x2642 },
+ ["man rowing boat"]={ 0x1F6A3, 0x200D, 0x2642 },
+ ["man rowing boat: dark skin tone"]={ 0x1F6A3, 0x1F3FF, 0x200D, 0x2642 },
+ ["man rowing boat: light skin tone"]={ 0x1F6A3, 0x1F3FB, 0x200D, 0x2642 },
+ ["man rowing boat: medium skin tone"]={ 0x1F6A3, 0x1F3FD, 0x200D, 0x2642 },
+ ["man rowing boat: medium-dark skin tone"]={ 0x1F6A3, 0x1F3FE, 0x200D, 0x2642 },
+ ["man rowing boat: medium-light skin tone"]={ 0x1F6A3, 0x1F3FC, 0x200D, 0x2642 },
+ ["man running"]={ 0x1F3C3, 0x200D, 0x2642 },
+ ["man running: dark skin tone"]={ 0x1F3C3, 0x1F3FF, 0x200D, 0x2642 },
+ ["man running: light skin tone"]={ 0x1F3C3, 0x1F3FB, 0x200D, 0x2642 },
+ ["man running: medium skin tone"]={ 0x1F3C3, 0x1F3FD, 0x200D, 0x2642 },
+ ["man running: medium-dark skin tone"]={ 0x1F3C3, 0x1F3FE, 0x200D, 0x2642 },
+ ["man running: medium-light skin tone"]={ 0x1F3C3, 0x1F3FC, 0x200D, 0x2642 },
["man scientist"]={ 0x1F468, 0x200D, 0x1F52C },
["man scientist: dark skin tone"]={ 0x1F468, 0x1F3FF, 0x200D, 0x1F52C },
["man scientist: light skin tone"]={ 0x1F468, 0x1F3FB, 0x200D, 0x1F52C },
["man scientist: medium skin tone"]={ 0x1F468, 0x1F3FD, 0x200D, 0x1F52C },
["man scientist: medium-dark skin tone"]={ 0x1F468, 0x1F3FE, 0x200D, 0x1F52C },
["man scientist: medium-light skin tone"]={ 0x1F468, 0x1F3FC, 0x200D, 0x1F52C },
- ["man shrugging"]={ 0x1F937, 0x200D, 0x2642, 0xFE0F },
- ["man shrugging: dark skin tone"]={ 0x1F937, 0x1F3FF, 0x200D, 0x2642, 0xFE0F },
- ["man shrugging: light skin tone"]={ 0x1F937, 0x1F3FB, 0x200D, 0x2642, 0xFE0F },
- ["man shrugging: medium skin tone"]={ 0x1F937, 0x1F3FD, 0x200D, 0x2642, 0xFE0F },
- ["man shrugging: medium-dark skin tone"]={ 0x1F937, 0x1F3FE, 0x200D, 0x2642, 0xFE0F },
- ["man shrugging: medium-light skin tone"]={ 0x1F937, 0x1F3FC, 0x200D, 0x2642, 0xFE0F },
+ ["man shrugging"]={ 0x1F937, 0x200D, 0x2642 },
+ ["man shrugging: dark skin tone"]={ 0x1F937, 0x1F3FF, 0x200D, 0x2642 },
+ ["man shrugging: light skin tone"]={ 0x1F937, 0x1F3FB, 0x200D, 0x2642 },
+ ["man shrugging: medium skin tone"]={ 0x1F937, 0x1F3FD, 0x200D, 0x2642 },
+ ["man shrugging: medium-dark skin tone"]={ 0x1F937, 0x1F3FE, 0x200D, 0x2642 },
+ ["man shrugging: medium-light skin tone"]={ 0x1F937, 0x1F3FC, 0x200D, 0x2642 },
["man singer"]={ 0x1F468, 0x200D, 0x1F3A4 },
["man singer: dark skin tone"]={ 0x1F468, 0x1F3FF, 0x200D, 0x1F3A4 },
["man singer: light skin tone"]={ 0x1F468, 0x1F3FB, 0x200D, 0x1F3A4 },
["man singer: medium skin tone"]={ 0x1F468, 0x1F3FD, 0x200D, 0x1F3A4 },
["man singer: medium-dark skin tone"]={ 0x1F468, 0x1F3FE, 0x200D, 0x1F3A4 },
["man singer: medium-light skin tone"]={ 0x1F468, 0x1F3FC, 0x200D, 0x1F3A4 },
- ["man standing"]={ 0x1F9CD, 0x200D, 0x2642, 0xFE0F },
- ["man standing: dark skin tone"]={ 0x1F9CD, 0x1F3FF, 0x200D, 0x2642, 0xFE0F },
- ["man standing: light skin tone"]={ 0x1F9CD, 0x1F3FB, 0x200D, 0x2642, 0xFE0F },
- ["man standing: medium skin tone"]={ 0x1F9CD, 0x1F3FD, 0x200D, 0x2642, 0xFE0F },
- ["man standing: medium-dark skin tone"]={ 0x1F9CD, 0x1F3FE, 0x200D, 0x2642, 0xFE0F },
- ["man standing: medium-light skin tone"]={ 0x1F9CD, 0x1F3FC, 0x200D, 0x2642, 0xFE0F },
["man student"]={ 0x1F468, 0x200D, 0x1F393 },
["man student: dark skin tone"]={ 0x1F468, 0x1F3FF, 0x200D, 0x1F393 },
["man student: light skin tone"]={ 0x1F468, 0x1F3FB, 0x200D, 0x1F393 },
["man student: medium skin tone"]={ 0x1F468, 0x1F3FD, 0x200D, 0x1F393 },
["man student: medium-dark skin tone"]={ 0x1F468, 0x1F3FE, 0x200D, 0x1F393 },
["man student: medium-light skin tone"]={ 0x1F468, 0x1F3FC, 0x200D, 0x1F393 },
- ["man superhero"]={ 0x1F9B8, 0x200D, 0x2642, 0xFE0F },
- ["man superhero: dark skin tone"]={ 0x1F9B8, 0x1F3FF, 0x200D, 0x2642, 0xFE0F },
- ["man superhero: light skin tone"]={ 0x1F9B8, 0x1F3FB, 0x200D, 0x2642, 0xFE0F },
- ["man superhero: medium skin tone"]={ 0x1F9B8, 0x1F3FD, 0x200D, 0x2642, 0xFE0F },
- ["man superhero: medium-dark skin tone"]={ 0x1F9B8, 0x1F3FE, 0x200D, 0x2642, 0xFE0F },
- ["man superhero: medium-light skin tone"]={ 0x1F9B8, 0x1F3FC, 0x200D, 0x2642, 0xFE0F },
- ["man supervillain"]={ 0x1F9B9, 0x200D, 0x2642, 0xFE0F },
- ["man supervillain: dark skin tone"]={ 0x1F9B9, 0x1F3FF, 0x200D, 0x2642, 0xFE0F },
- ["man supervillain: light skin tone"]={ 0x1F9B9, 0x1F3FB, 0x200D, 0x2642, 0xFE0F },
- ["man supervillain: medium skin tone"]={ 0x1F9B9, 0x1F3FD, 0x200D, 0x2642, 0xFE0F },
- ["man supervillain: medium-dark skin tone"]={ 0x1F9B9, 0x1F3FE, 0x200D, 0x2642, 0xFE0F },
- ["man supervillain: medium-light skin tone"]={ 0x1F9B9, 0x1F3FC, 0x200D, 0x2642, 0xFE0F },
- ["man surfing"]={ 0x1F3C4, 0x200D, 0x2642, 0xFE0F },
- ["man surfing: dark skin tone"]={ 0x1F3C4, 0x1F3FF, 0x200D, 0x2642, 0xFE0F },
- ["man surfing: light skin tone"]={ 0x1F3C4, 0x1F3FB, 0x200D, 0x2642, 0xFE0F },
- ["man surfing: medium skin tone"]={ 0x1F3C4, 0x1F3FD, 0x200D, 0x2642, 0xFE0F },
- ["man surfing: medium-dark skin tone"]={ 0x1F3C4, 0x1F3FE, 0x200D, 0x2642, 0xFE0F },
- ["man surfing: medium-light skin tone"]={ 0x1F3C4, 0x1F3FC, 0x200D, 0x2642, 0xFE0F },
- ["man swimming"]={ 0x1F3CA, 0x200D, 0x2642, 0xFE0F },
- ["man swimming: dark skin tone"]={ 0x1F3CA, 0x1F3FF, 0x200D, 0x2642, 0xFE0F },
- ["man swimming: light skin tone"]={ 0x1F3CA, 0x1F3FB, 0x200D, 0x2642, 0xFE0F },
- ["man swimming: medium skin tone"]={ 0x1F3CA, 0x1F3FD, 0x200D, 0x2642, 0xFE0F },
- ["man swimming: medium-dark skin tone"]={ 0x1F3CA, 0x1F3FE, 0x200D, 0x2642, 0xFE0F },
- ["man swimming: medium-light skin tone"]={ 0x1F3CA, 0x1F3FC, 0x200D, 0x2642, 0xFE0F },
+ ["man surfing"]={ 0x1F3C4, 0x200D, 0x2642 },
+ ["man surfing: dark skin tone"]={ 0x1F3C4, 0x1F3FF, 0x200D, 0x2642 },
+ ["man surfing: light skin tone"]={ 0x1F3C4, 0x1F3FB, 0x200D, 0x2642 },
+ ["man surfing: medium skin tone"]={ 0x1F3C4, 0x1F3FD, 0x200D, 0x2642 },
+ ["man surfing: medium-dark skin tone"]={ 0x1F3C4, 0x1F3FE, 0x200D, 0x2642 },
+ ["man surfing: medium-light skin tone"]={ 0x1F3C4, 0x1F3FC, 0x200D, 0x2642 },
+ ["man swimming"]={ 0x1F3CA, 0x200D, 0x2642 },
+ ["man swimming: dark skin tone"]={ 0x1F3CA, 0x1F3FF, 0x200D, 0x2642 },
+ ["man swimming: light skin tone"]={ 0x1F3CA, 0x1F3FB, 0x200D, 0x2642 },
+ ["man swimming: medium skin tone"]={ 0x1F3CA, 0x1F3FD, 0x200D, 0x2642 },
+ ["man swimming: medium-dark skin tone"]={ 0x1F3CA, 0x1F3FE, 0x200D, 0x2642 },
+ ["man swimming: medium-light skin tone"]={ 0x1F3CA, 0x1F3FC, 0x200D, 0x2642 },
["man teacher"]={ 0x1F468, 0x200D, 0x1F3EB },
["man teacher: dark skin tone"]={ 0x1F468, 0x1F3FF, 0x200D, 0x1F3EB },
["man teacher: light skin tone"]={ 0x1F468, 0x1F3FB, 0x200D, 0x1F3EB },
@@ -1473,131 +1251,73 @@ return {
["man technologist: medium skin tone"]={ 0x1F468, 0x1F3FD, 0x200D, 0x1F4BB },
["man technologist: medium-dark skin tone"]={ 0x1F468, 0x1F3FE, 0x200D, 0x1F4BB },
["man technologist: medium-light skin tone"]={ 0x1F468, 0x1F3FC, 0x200D, 0x1F4BB },
- ["man tipping hand"]={ 0x1F481, 0x200D, 0x2642, 0xFE0F },
- ["man tipping hand: dark skin tone"]={ 0x1F481, 0x1F3FF, 0x200D, 0x2642, 0xFE0F },
- ["man tipping hand: light skin tone"]={ 0x1F481, 0x1F3FB, 0x200D, 0x2642, 0xFE0F },
- ["man tipping hand: medium skin tone"]={ 0x1F481, 0x1F3FD, 0x200D, 0x2642, 0xFE0F },
- ["man tipping hand: medium-dark skin tone"]={ 0x1F481, 0x1F3FE, 0x200D, 0x2642, 0xFE0F },
- ["man tipping hand: medium-light skin tone"]={ 0x1F481, 0x1F3FC, 0x200D, 0x2642, 0xFE0F },
- ["man vampire"]={ 0x1F9DB, 0x200D, 0x2642, 0xFE0F },
- ["man vampire: dark skin tone"]={ 0x1F9DB, 0x1F3FF, 0x200D, 0x2642, 0xFE0F },
- ["man vampire: light skin tone"]={ 0x1F9DB, 0x1F3FB, 0x200D, 0x2642, 0xFE0F },
- ["man vampire: medium skin tone"]={ 0x1F9DB, 0x1F3FD, 0x200D, 0x2642, 0xFE0F },
- ["man vampire: medium-dark skin tone"]={ 0x1F9DB, 0x1F3FE, 0x200D, 0x2642, 0xFE0F },
- ["man vampire: medium-light skin tone"]={ 0x1F9DB, 0x1F3FC, 0x200D, 0x2642, 0xFE0F },
- ["man walking"]={ 0x1F6B6, 0x200D, 0x2642, 0xFE0F },
- ["man walking: dark skin tone"]={ 0x1F6B6, 0x1F3FF, 0x200D, 0x2642, 0xFE0F },
- ["man walking: light skin tone"]={ 0x1F6B6, 0x1F3FB, 0x200D, 0x2642, 0xFE0F },
- ["man walking: medium skin tone"]={ 0x1F6B6, 0x1F3FD, 0x200D, 0x2642, 0xFE0F },
- ["man walking: medium-dark skin tone"]={ 0x1F6B6, 0x1F3FE, 0x200D, 0x2642, 0xFE0F },
- ["man walking: medium-light skin tone"]={ 0x1F6B6, 0x1F3FC, 0x200D, 0x2642, 0xFE0F },
- ["man wearing turban"]={ 0x1F473, 0x200D, 0x2642, 0xFE0F },
- ["man wearing turban: dark skin tone"]={ 0x1F473, 0x1F3FF, 0x200D, 0x2642, 0xFE0F },
- ["man wearing turban: light skin tone"]={ 0x1F473, 0x1F3FB, 0x200D, 0x2642, 0xFE0F },
- ["man wearing turban: medium skin tone"]={ 0x1F473, 0x1F3FD, 0x200D, 0x2642, 0xFE0F },
- ["man wearing turban: medium-dark skin tone"]={ 0x1F473, 0x1F3FE, 0x200D, 0x2642, 0xFE0F },
- ["man wearing turban: medium-light skin tone"]={ 0x1F473, 0x1F3FC, 0x200D, 0x2642, 0xFE0F },
+ ["man tipping hand"]={ 0x1F481, 0x200D, 0x2642 },
+ ["man tipping hand: dark skin tone"]={ 0x1F481, 0x1F3FF, 0x200D, 0x2642 },
+ ["man tipping hand: light skin tone"]={ 0x1F481, 0x1F3FB, 0x200D, 0x2642 },
+ ["man tipping hand: medium skin tone"]={ 0x1F481, 0x1F3FD, 0x200D, 0x2642 },
+ ["man tipping hand: medium-dark skin tone"]={ 0x1F481, 0x1F3FE, 0x200D, 0x2642 },
+ ["man tipping hand: medium-light skin tone"]={ 0x1F481, 0x1F3FC, 0x200D, 0x2642 },
+ ["man vampire"]={ 0x1F9DB, 0x200D, 0x2642 },
+ ["man vampire: dark skin tone"]={ 0x1F9DB, 0x1F3FF, 0x200D, 0x2642 },
+ ["man vampire: light skin tone"]={ 0x1F9DB, 0x1F3FB, 0x200D, 0x2642 },
+ ["man vampire: medium skin tone"]={ 0x1F9DB, 0x1F3FD, 0x200D, 0x2642 },
+ ["man vampire: medium-dark skin tone"]={ 0x1F9DB, 0x1F3FE, 0x200D, 0x2642 },
+ ["man vampire: medium-light skin tone"]={ 0x1F9DB, 0x1F3FC, 0x200D, 0x2642 },
+ ["man walking"]={ 0x1F6B6, 0x200D, 0x2642 },
+ ["man walking: dark skin tone"]={ 0x1F6B6, 0x1F3FF, 0x200D, 0x2642 },
+ ["man walking: light skin tone"]={ 0x1F6B6, 0x1F3FB, 0x200D, 0x2642 },
+ ["man walking: medium skin tone"]={ 0x1F6B6, 0x1F3FD, 0x200D, 0x2642 },
+ ["man walking: medium-dark skin tone"]={ 0x1F6B6, 0x1F3FE, 0x200D, 0x2642 },
+ ["man walking: medium-light skin tone"]={ 0x1F6B6, 0x1F3FC, 0x200D, 0x2642 },
+ ["man wearing turban"]={ 0x1F473, 0x200D, 0x2642 },
+ ["man wearing turban: dark skin tone"]={ 0x1F473, 0x1F3FF, 0x200D, 0x2642 },
+ ["man wearing turban: light skin tone"]={ 0x1F473, 0x1F3FB, 0x200D, 0x2642 },
+ ["man wearing turban: medium skin tone"]={ 0x1F473, 0x1F3FD, 0x200D, 0x2642 },
+ ["man wearing turban: medium-dark skin tone"]={ 0x1F473, 0x1F3FE, 0x200D, 0x2642 },
+ ["man wearing turban: medium-light skin tone"]={ 0x1F473, 0x1F3FC, 0x200D, 0x2642 },
["man with chinese cap"]={ 0x1F472 },
["man with chinese cap: dark skin tone"]={ 0x1F472, 0x1F3FF },
["man with chinese cap: light skin tone"]={ 0x1F472, 0x1F3FB },
["man with chinese cap: medium skin tone"]={ 0x1F472, 0x1F3FD },
["man with chinese cap: medium-dark skin tone"]={ 0x1F472, 0x1F3FE },
["man with chinese cap: medium-light skin tone"]={ 0x1F472, 0x1F3FC },
- ["man with probing cane"]={ 0x1F468, 0x200D, 0x1F9AF },
- ["man with probing cane: dark skin tone"]={ 0x1F468, 0x1F3FF, 0x200D, 0x1F9AF },
- ["man with probing cane: light skin tone"]={ 0x1F468, 0x1F3FB, 0x200D, 0x1F9AF },
- ["man with probing cane: medium skin tone"]={ 0x1F468, 0x1F3FD, 0x200D, 0x1F9AF },
- ["man with probing cane: medium-dark skin tone"]={ 0x1F468, 0x1F3FE, 0x200D, 0x1F9AF },
- ["man with probing cane: medium-light skin tone"]={ 0x1F468, 0x1F3FC, 0x200D, 0x1F9AF },
- ["man zombie"]={ 0x1F9DF, 0x200D, 0x2642, 0xFE0F },
- ["man: bald"]={ 0x1F468, 0x200D, 0x1F9B2 },
- ["man: beard"]={ 0x1F9D4 },
- ["man: blond hair"]={ 0x1F471, 0x200D, 0x2642, 0xFE0F },
- ["man: curly hair"]={ 0x1F468, 0x200D, 0x1F9B1 },
+ ["man zombie"]={ 0x1F9DF, 0x200D, 0x2642 },
["man: dark skin tone"]={ 0x1F468, 0x1F3FF },
- ["man: dark skin tone, bald"]={ 0x1F468, 0x1F3FF, 0x200D, 0x1F9B2 },
- ["man: dark skin tone, beard"]={ 0x1F9D4, 0x1F3FF },
- ["man: dark skin tone, blond hair"]={ 0x1F471, 0x1F3FF, 0x200D, 0x2642, 0xFE0F },
- ["man: dark skin tone, curly hair"]={ 0x1F468, 0x1F3FF, 0x200D, 0x1F9B1 },
- ["man: dark skin tone, red hair"]={ 0x1F468, 0x1F3FF, 0x200D, 0x1F9B0 },
- ["man: dark skin tone, white hair"]={ 0x1F468, 0x1F3FF, 0x200D, 0x1F9B3 },
["man: light skin tone"]={ 0x1F468, 0x1F3FB },
- ["man: light skin tone, bald"]={ 0x1F468, 0x1F3FB, 0x200D, 0x1F9B2 },
- ["man: light skin tone, beard"]={ 0x1F9D4, 0x1F3FB },
- ["man: light skin tone, blond hair"]={ 0x1F471, 0x1F3FB, 0x200D, 0x2642, 0xFE0F },
- ["man: light skin tone, curly hair"]={ 0x1F468, 0x1F3FB, 0x200D, 0x1F9B1 },
- ["man: light skin tone, red hair"]={ 0x1F468, 0x1F3FB, 0x200D, 0x1F9B0 },
- ["man: light skin tone, white hair"]={ 0x1F468, 0x1F3FB, 0x200D, 0x1F9B3 },
["man: medium skin tone"]={ 0x1F468, 0x1F3FD },
- ["man: medium skin tone, bald"]={ 0x1F468, 0x1F3FD, 0x200D, 0x1F9B2 },
- ["man: medium skin tone, beard"]={ 0x1F9D4, 0x1F3FD },
- ["man: medium skin tone, blond hair"]={ 0x1F471, 0x1F3FD, 0x200D, 0x2642, 0xFE0F },
- ["man: medium skin tone, curly hair"]={ 0x1F468, 0x1F3FD, 0x200D, 0x1F9B1 },
- ["man: medium skin tone, red hair"]={ 0x1F468, 0x1F3FD, 0x200D, 0x1F9B0 },
- ["man: medium skin tone, white hair"]={ 0x1F468, 0x1F3FD, 0x200D, 0x1F9B3 },
["man: medium-dark skin tone"]={ 0x1F468, 0x1F3FE },
- ["man: medium-dark skin tone, bald"]={ 0x1F468, 0x1F3FE, 0x200D, 0x1F9B2 },
- ["man: medium-dark skin tone, beard"]={ 0x1F9D4, 0x1F3FE },
- ["man: medium-dark skin tone, blond hair"]={ 0x1F471, 0x1F3FE, 0x200D, 0x2642, 0xFE0F },
- ["man: medium-dark skin tone, curly hair"]={ 0x1F468, 0x1F3FE, 0x200D, 0x1F9B1 },
- ["man: medium-dark skin tone, red hair"]={ 0x1F468, 0x1F3FE, 0x200D, 0x1F9B0 },
- ["man: medium-dark skin tone, white hair"]={ 0x1F468, 0x1F3FE, 0x200D, 0x1F9B3 },
["man: medium-light skin tone"]={ 0x1F468, 0x1F3FC },
- ["man: medium-light skin tone, bald"]={ 0x1F468, 0x1F3FC, 0x200D, 0x1F9B2 },
- ["man: medium-light skin tone, beard"]={ 0x1F9D4, 0x1F3FC },
- ["man: medium-light skin tone, blond hair"]={ 0x1F471, 0x1F3FC, 0x200D, 0x2642, 0xFE0F },
- ["man: medium-light skin tone, curly hair"]={ 0x1F468, 0x1F3FC, 0x200D, 0x1F9B1 },
- ["man: medium-light skin tone, red hair"]={ 0x1F468, 0x1F3FC, 0x200D, 0x1F9B0 },
- ["man: medium-light skin tone, white hair"]={ 0x1F468, 0x1F3FC, 0x200D, 0x1F9B3 },
- ["man: red hair"]={ 0x1F468, 0x200D, 0x1F9B0 },
- ["man: white hair"]={ 0x1F468, 0x200D, 0x1F9B3 },
- ["mango"]={ 0x1F96D },
- ["mantelpiece clock"]={ 0x1F570, 0xFE0F },
- ["manual wheelchair"]={ 0x1F9BD },
+ ["mantelpiece clock"]={ 0x1F570 },
["man’s shoe"]={ 0x1F45E },
["map of japan"]={ 0x1F5FE },
["maple leaf"]={ 0x1F341 },
+ ["marshall islands"]={ 0x1F1F2, 0x1F1ED },
["martial arts uniform"]={ 0x1F94B },
- ["mate"]={ 0x1F9C9 },
+ ["martinique"]={ 0x1F1F2, 0x1F1F6 },
+ ["mauritania"]={ 0x1F1F2, 0x1F1F7 },
+ ["mauritius"]={ 0x1F1F2, 0x1F1FA },
+ ["mayotte"]={ 0x1F1FE, 0x1F1F9 },
["meat on bone"]={ 0x1F356 },
- ["mechanical arm"]={ 0x1F9BE },
- ["mechanical leg"]={ 0x1F9BF },
- ["medical symbol"]={ 0x2695, 0xFE0F },
+ ["medical symbol"]={ 0x2695 },
["megaphone"]={ 0x1F4E3 },
["melon"]={ 0x1F348 },
["memo"]={ 0x1F4DD },
- ["men holding hands"]={ 0x1F46C },
- ["men holding hands: dark skin tone"]={ 0x1F46C, 0x1F3FF },
- ["men holding hands: dark skin tone, light skin tone"]={ 0x1F468, 0x1F3FF, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FB },
- ["men holding hands: dark skin tone, medium skin tone"]={ 0x1F468, 0x1F3FF, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FD },
- ["men holding hands: dark skin tone, medium-dark skin tone"]={ 0x1F468, 0x1F3FF, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FE },
- ["men holding hands: dark skin tone, medium-light skin tone"]={ 0x1F468, 0x1F3FF, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FC },
- ["men holding hands: light skin tone"]={ 0x1F46C, 0x1F3FB },
- ["men holding hands: medium skin tone"]={ 0x1F46C, 0x1F3FD },
- ["men holding hands: medium skin tone, light skin tone"]={ 0x1F468, 0x1F3FD, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FB },
- ["men holding hands: medium skin tone, medium-light skin tone"]={ 0x1F468, 0x1F3FD, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FC },
- ["men holding hands: medium-dark skin tone"]={ 0x1F46C, 0x1F3FE },
- ["men holding hands: medium-dark skin tone, light skin tone"]={ 0x1F468, 0x1F3FE, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FB },
- ["men holding hands: medium-dark skin tone, medium skin tone"]={ 0x1F468, 0x1F3FE, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FD },
- ["men holding hands: medium-dark skin tone, medium-light skin tone"]={ 0x1F468, 0x1F3FE, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FC },
- ["men holding hands: medium-light skin tone"]={ 0x1F46C, 0x1F3FC },
- ["men holding hands: medium-light skin tone, light skin tone"]={ 0x1F468, 0x1F3FC, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FB },
- ["men with bunny ears"]={ 0x1F46F, 0x200D, 0x2642, 0xFE0F },
- ["men wrestling"]={ 0x1F93C, 0x200D, 0x2642, 0xFE0F },
+ ["men with bunny ears partying"]={ 0x1F46F, 0x200D, 0x2642 },
+ ["men wrestling"]={ 0x1F93C, 0x200D, 0x2642 },
["menorah"]={ 0x1F54E },
["men’s room"]={ 0x1F6B9 },
- ["mermaid"]={ 0x1F9DC, 0x200D, 0x2640, 0xFE0F },
- ["mermaid: dark skin tone"]={ 0x1F9DC, 0x1F3FF, 0x200D, 0x2640, 0xFE0F },
- ["mermaid: light skin tone"]={ 0x1F9DC, 0x1F3FB, 0x200D, 0x2640, 0xFE0F },
- ["mermaid: medium skin tone"]={ 0x1F9DC, 0x1F3FD, 0x200D, 0x2640, 0xFE0F },
- ["mermaid: medium-dark skin tone"]={ 0x1F9DC, 0x1F3FE, 0x200D, 0x2640, 0xFE0F },
- ["mermaid: medium-light skin tone"]={ 0x1F9DC, 0x1F3FC, 0x200D, 0x2640, 0xFE0F },
- ["merman"]={ 0x1F9DC, 0x200D, 0x2642, 0xFE0F },
- ["merman: dark skin tone"]={ 0x1F9DC, 0x1F3FF, 0x200D, 0x2642, 0xFE0F },
- ["merman: light skin tone"]={ 0x1F9DC, 0x1F3FB, 0x200D, 0x2642, 0xFE0F },
- ["merman: medium skin tone"]={ 0x1F9DC, 0x1F3FD, 0x200D, 0x2642, 0xFE0F },
- ["merman: medium-dark skin tone"]={ 0x1F9DC, 0x1F3FE, 0x200D, 0x2642, 0xFE0F },
- ["merman: medium-light skin tone"]={ 0x1F9DC, 0x1F3FC, 0x200D, 0x2642, 0xFE0F },
+ ["mermaid"]={ 0x1F9DC, 0x200D, 0x2640 },
+ ["mermaid: dark skin tone"]={ 0x1F9DC, 0x1F3FF, 0x200D, 0x2640 },
+ ["mermaid: light skin tone"]={ 0x1F9DC, 0x1F3FB, 0x200D, 0x2640 },
+ ["mermaid: medium skin tone"]={ 0x1F9DC, 0x1F3FD, 0x200D, 0x2640 },
+ ["mermaid: medium-dark skin tone"]={ 0x1F9DC, 0x1F3FE, 0x200D, 0x2640 },
+ ["mermaid: medium-light skin tone"]={ 0x1F9DC, 0x1F3FC, 0x200D, 0x2640 },
+ ["merman"]={ 0x1F9DC, 0x200D, 0x2642 },
+ ["merman: dark skin tone"]={ 0x1F9DC, 0x1F3FF, 0x200D, 0x2642 },
+ ["merman: light skin tone"]={ 0x1F9DC, 0x1F3FB, 0x200D, 0x2642 },
+ ["merman: medium skin tone"]={ 0x1F9DC, 0x1F3FD, 0x200D, 0x2642 },
+ ["merman: medium-dark skin tone"]={ 0x1F9DC, 0x1F3FE, 0x200D, 0x2642 },
+ ["merman: medium-light skin tone"]={ 0x1F9DC, 0x1F3FC, 0x200D, 0x2642 },
["merperson"]={ 0x1F9DC },
["merperson: dark skin tone"]={ 0x1F9DC, 0x1F3FF },
["merperson: light skin tone"]={ 0x1F9DC, 0x1F3FB },
@@ -1605,7 +1325,8 @@ return {
["merperson: medium-dark skin tone"]={ 0x1F9DC, 0x1F3FE },
["merperson: medium-light skin tone"]={ 0x1F9DC, 0x1F3FC },
["metro"]={ 0x1F687 },
- ["microbe"]={ 0x1F9A0 },
+ ["mexico"]={ 0x1F1F2, 0x1F1FD },
+ ["micronesia"]={ 0x1F1EB, 0x1F1F2 },
["microphone"]={ 0x1F3A4 },
["microscope"]={ 0x1F52C },
["middle finger"]={ 0x1F595 },
@@ -1614,50 +1335,53 @@ return {
["middle finger: medium skin tone"]={ 0x1F595, 0x1F3FD },
["middle finger: medium-dark skin tone"]={ 0x1F595, 0x1F3FE },
["middle finger: medium-light skin tone"]={ 0x1F595, 0x1F3FC },
- ["military medal"]={ 0x1F396, 0xFE0F },
+ ["military medal"]={ 0x1F396 },
["milky way"]={ 0x1F30C },
["minibus"]={ 0x1F690 },
- ["minus sign"]={ 0x2796 },
["moai"]={ 0x1F5FF },
["mobile phone"]={ 0x1F4F1 },
["mobile phone off"]={ 0x1F4F4 },
["mobile phone with arrow"]={ 0x1F4F2 },
+ ["moldova"]={ 0x1F1F2, 0x1F1E9 },
+ ["monaco"]={ 0x1F1F2, 0x1F1E8 },
["money bag"]={ 0x1F4B0 },
["money with wings"]={ 0x1F4B8 },
["money-mouth face"]={ 0x1F911 },
+ ["mongolia"]={ 0x1F1F2, 0x1F1F3 },
["monkey"]={ 0x1F412 },
["monkey face"]={ 0x1F435 },
["monorail"]={ 0x1F69D },
- ["moon cake"]={ 0x1F96E },
+ ["montenegro"]={ 0x1F1F2, 0x1F1EA },
+ ["montserrat"]={ 0x1F1F2, 0x1F1F8 },
["moon viewing ceremony"]={ 0x1F391 },
+ ["morocco"]={ 0x1F1F2, 0x1F1E6 },
["mosque"]={ 0x1F54C },
- ["mosquito"]={ 0x1F99F },
- ["motor boat"]={ 0x1F6E5, 0xFE0F },
+ ["motor boat"]={ 0x1F6E5 },
["motor scooter"]={ 0x1F6F5 },
- ["motorcycle"]={ 0x1F3CD, 0xFE0F },
- ["motorized wheelchair"]={ 0x1F9BC },
- ["motorway"]={ 0x1F6E3, 0xFE0F },
+ ["motorcycle"]={ 0x1F3CD },
+ ["motorway"]={ 0x1F6E3 },
["mount fuji"]={ 0x1F5FB },
- ["mountain"]={ 0x26F0, 0xFE0F },
+ ["mountain"]={ 0x26F0 },
["mountain cableway"]={ 0x1F6A0 },
["mountain railway"]={ 0x1F69E },
["mouse"]={ 0x1F401 },
["mouse face"]={ 0x1F42D },
["mouth"]={ 0x1F444 },
["movie camera"]={ 0x1F3A5 },
+ ["mozambique"]={ 0x1F1F2, 0x1F1FF },
["mrs. claus"]={ 0x1F936 },
["mrs. claus: dark skin tone"]={ 0x1F936, 0x1F3FF },
["mrs. claus: light skin tone"]={ 0x1F936, 0x1F3FB },
["mrs. claus: medium skin tone"]={ 0x1F936, 0x1F3FD },
["mrs. claus: medium-dark skin tone"]={ 0x1F936, 0x1F3FE },
["mrs. claus: medium-light skin tone"]={ 0x1F936, 0x1F3FC },
- ["multiplication sign"]={ 0x2716, 0xFE0F },
["mushroom"]={ 0x1F344 },
["musical keyboard"]={ 0x1F3B9 },
["musical note"]={ 0x1F3B5 },
["musical notes"]={ 0x1F3B6 },
["musical score"]={ 0x1F3BC },
["muted speaker"]={ 0x1F507 },
+ ["myanmar (burma)"]={ 0x1F1F2, 0x1F1F2 },
["nail polish"]={ 0x1F485 },
["nail polish: dark skin tone"]={ 0x1F485, 0x1F3FF },
["nail polish: light skin tone"]={ 0x1F485, 0x1F3FB },
@@ -1665,21 +1389,30 @@ return {
["nail polish: medium-dark skin tone"]={ 0x1F485, 0x1F3FE },
["nail polish: medium-light skin tone"]={ 0x1F485, 0x1F3FC },
["name badge"]={ 0x1F4DB },
- ["national park"]={ 0x1F3DE, 0xFE0F },
+ ["namibia"]={ 0x1F1F3, 0x1F1E6 },
+ ["national park"]={ 0x1F3DE },
+ ["nauru"]={ 0x1F1F3, 0x1F1F7 },
["nauseated face"]={ 0x1F922 },
- ["nazar amulet"]={ 0x1F9FF },
["necktie"]={ 0x1F454 },
+ ["nepal"]={ 0x1F1F3, 0x1F1F5 },
["nerd face"]={ 0x1F913 },
+ ["netherlands"]={ 0x1F1F3, 0x1F1F1 },
["neutral face"]={ 0x1F610 },
["new button"]={ 0x1F195 },
+ ["new caledonia"]={ 0x1F1F3, 0x1F1E8 },
["new moon"]={ 0x1F311 },
["new moon face"]={ 0x1F31A },
+ ["new zealand"]={ 0x1F1F3, 0x1F1FF },
["newspaper"]={ 0x1F4F0 },
- ["next track button"]={ 0x23ED, 0xFE0F },
+ ["next track button"]={ 0x23ED },
["ng button"]={ 0x1F196 },
+ ["nicaragua"]={ 0x1F1F3, 0x1F1EE },
+ ["niger"]={ 0x1F1F3, 0x1F1EA },
+ ["nigeria"]={ 0x1F1F3, 0x1F1EC },
["night with stars"]={ 0x1F303 },
["nine o’clock"]={ 0x1F558 },
["nine-thirty"]={ 0x1F564 },
+ ["niue"]={ 0x1F1F3, 0x1F1FA },
["no bicycles"]={ 0x1F6B3 },
["no entry"]={ 0x26D4 },
["no littering"]={ 0x1F6AF },
@@ -1688,6 +1421,10 @@ return {
["no pedestrians"]={ 0x1F6B7 },
["no smoking"]={ 0x1F6AD },
["non-potable water"]={ 0x1F6B1 },
+ ["norfolk island"]={ 0x1F1F3, 0x1F1EB },
+ ["north korea"]={ 0x1F1F0, 0x1F1F5 },
+ ["northern mariana islands"]={ 0x1F1F2, 0x1F1F5 },
+ ["norway"]={ 0x1F1F3, 0x1F1F4 },
["nose"]={ 0x1F443 },
["nose: dark skin tone"]={ 0x1F443, 0x1F3FF },
["nose: light skin tone"]={ 0x1F443, 0x1F3FB },
@@ -1697,12 +1434,12 @@ return {
["notebook"]={ 0x1F4D3 },
["notebook with decorative cover"]={ 0x1F4D4 },
["nut and bolt"]={ 0x1F529 },
- ["o button (blood type)"]={ 0x1F17E, 0xFE0F },
+ ["o button (blood type)"]={ 0x1F17E },
["octopus"]={ 0x1F419 },
["oden"]={ 0x1F362 },
["office building"]={ 0x1F3E2 },
["ogre"]={ 0x1F479 },
- ["oil drum"]={ 0x1F6E2, 0xFE0F },
+ ["oil drum"]={ 0x1F6E2 },
["ok button"]={ 0x1F197 },
["ok hand"]={ 0x1F44C },
["ok hand: dark skin tone"]={ 0x1F44C, 0x1F3FF },
@@ -1710,7 +1447,7 @@ return {
["ok hand: medium skin tone"]={ 0x1F44C, 0x1F3FD },
["ok hand: medium-dark skin tone"]={ 0x1F44C, 0x1F3FE },
["ok hand: medium-light skin tone"]={ 0x1F44C, 0x1F3FC },
- ["old key"]={ 0x1F5DD, 0xFE0F },
+ ["old key"]={ 0x1F5DD },
["old man"]={ 0x1F474 },
["old man: dark skin tone"]={ 0x1F474, 0x1F3FF },
["old man: light skin tone"]={ 0x1F474, 0x1F3FB },
@@ -1723,13 +1460,14 @@ return {
["old woman: medium skin tone"]={ 0x1F475, 0x1F3FD },
["old woman: medium-dark skin tone"]={ 0x1F475, 0x1F3FE },
["old woman: medium-light skin tone"]={ 0x1F475, 0x1F3FC },
- ["older person"]={ 0x1F9D3 },
- ["older person: dark skin tone"]={ 0x1F9D3, 0x1F3FF },
- ["older person: light skin tone"]={ 0x1F9D3, 0x1F3FB },
- ["older person: medium skin tone"]={ 0x1F9D3, 0x1F3FD },
- ["older person: medium-dark skin tone"]={ 0x1F9D3, 0x1F3FE },
- ["older person: medium-light skin tone"]={ 0x1F9D3, 0x1F3FC },
- ["om"]={ 0x1F549, 0xFE0F },
+ ["older adult"]={ 0x1F9D3 },
+ ["older adult: dark skin tone"]={ 0x1F9D3, 0x1F3FF },
+ ["older adult: light skin tone"]={ 0x1F9D3, 0x1F3FB },
+ ["older adult: medium skin tone"]={ 0x1F9D3, 0x1F3FD },
+ ["older adult: medium-dark skin tone"]={ 0x1F9D3, 0x1F3FE },
+ ["older adult: medium-light skin tone"]={ 0x1F9D3, 0x1F3FC },
+ ["om"]={ 0x1F549 },
+ ["oman"]={ 0x1F1F4, 0x1F1F2 },
["on! arrow"]={ 0x1F51B },
["oncoming automobile"]={ 0x1F698 },
["oncoming bus"]={ 0x1F68D },
@@ -1742,9 +1480,7 @@ return {
["oncoming police car"]={ 0x1F694 },
["oncoming taxi"]={ 0x1F696 },
["one o’clock"]={ 0x1F550 },
- ["one-piece swimsuit"]={ 0x1FA71 },
["one-thirty"]={ 0x1F55C },
- ["onion"]={ 0x1F9C5 },
["open book"]={ 0x1F4D6 },
["open file folder"]={ 0x1F4C2 },
["open hands"]={ 0x1F450 },
@@ -1758,22 +1494,20 @@ return {
["ophiuchus"]={ 0x26CE },
["optical disk"]={ 0x1F4BF },
["orange book"]={ 0x1F4D9 },
- ["orange circle"]={ 0x1F7E0 },
["orange heart"]={ 0x1F9E1 },
- ["orange square"]={ 0x1F7E7 },
- ["orangutan"]={ 0x1F9A7 },
- ["orthodox cross"]={ 0x2626, 0xFE0F },
- ["otter"]={ 0x1F9A6 },
+ ["orthodox cross"]={ 0x2626 },
["outbox tray"]={ 0x1F4E4 },
["owl"]={ 0x1F989 },
["ox"]={ 0x1F402 },
- ["oyster"]={ 0x1F9AA },
- ["p button"]={ 0x1F17F, 0xFE0F },
+ ["p button"]={ 0x1F17F },
["package"]={ 0x1F4E6 },
["page facing up"]={ 0x1F4C4 },
["page with curl"]={ 0x1F4C3 },
["pager"]={ 0x1F4DF },
- ["paintbrush"]={ 0x1F58C, 0xFE0F },
+ ["paintbrush"]={ 0x1F58C },
+ ["pakistan"]={ 0x1F1F5, 0x1F1F0 },
+ ["palau"]={ 0x1F1F5, 0x1F1FC },
+ ["palestinian territories"]={ 0x1F1F5, 0x1F1F8 },
["palm tree"]={ 0x1F334 },
["palms up together"]={ 0x1F932 },
["palms up together: dark skin tone"]={ 0x1F932, 0x1F3FF },
@@ -1781,55 +1515,37 @@ return {
["palms up together: medium skin tone"]={ 0x1F932, 0x1F3FD },
["palms up together: medium-dark skin tone"]={ 0x1F932, 0x1F3FE },
["palms up together: medium-light skin tone"]={ 0x1F932, 0x1F3FC },
+ ["panama"]={ 0x1F1F5, 0x1F1E6 },
["pancakes"]={ 0x1F95E },
- ["panda"]={ 0x1F43C },
+ ["panda face"]={ 0x1F43C },
["paperclip"]={ 0x1F4CE },
- ["parachute"]={ 0x1FA82 },
- ["parrot"]={ 0x1F99C },
- ["part alternation mark"]={ 0x303D, 0xFE0F },
+ ["papua new guinea"]={ 0x1F1F5, 0x1F1EC },
+ ["paraguay"]={ 0x1F1F5, 0x1F1FE },
+ ["part alternation mark"]={ 0x303D },
["party popper"]={ 0x1F389 },
- ["partying face"]={ 0x1F973 },
- ["passenger ship"]={ 0x1F6F3, 0xFE0F },
+ ["passenger ship"]={ 0x1F6F3 },
["passport control"]={ 0x1F6C2 },
- ["pause button"]={ 0x23F8, 0xFE0F },
+ ["pause button"]={ 0x23F8 },
["paw prints"]={ 0x1F43E },
- ["peace symbol"]={ 0x262E, 0xFE0F },
+ ["peace symbol"]={ 0x262E },
["peach"]={ 0x1F351 },
- ["peacock"]={ 0x1F99A },
["peanuts"]={ 0x1F95C },
["pear"]={ 0x1F350 },
- ["pen"]={ 0x1F58A, 0xFE0F },
- ["pencil"]={ 0x270F, 0xFE0F },
+ ["pen"]={ 0x1F58A },
+ ["pencil"]={ 0x270F },
["penguin"]={ 0x1F427 },
["pensive face"]={ 0x1F614 },
- ["people holding hands"]={ 0x1F9D1, 0x200D, 0x1F91D, 0x200D, 0x1F9D1 },
- ["people holding hands: dark skin tone"]={ 0x1F9D1, 0x1F3FF, 0x200D, 0x1F91D, 0x200D, 0x1F9D1, 0x1F3FF },
- ["people holding hands: dark skin tone, light skin tone"]={ 0x1F9D1, 0x1F3FF, 0x200D, 0x1F91D, 0x200D, 0x1F9D1, 0x1F3FB },
- ["people holding hands: dark skin tone, medium skin tone"]={ 0x1F9D1, 0x1F3FF, 0x200D, 0x1F91D, 0x200D, 0x1F9D1, 0x1F3FD },
- ["people holding hands: dark skin tone, medium-dark skin tone"]={ 0x1F9D1, 0x1F3FF, 0x200D, 0x1F91D, 0x200D, 0x1F9D1, 0x1F3FE },
- ["people holding hands: dark skin tone, medium-light skin tone"]={ 0x1F9D1, 0x1F3FF, 0x200D, 0x1F91D, 0x200D, 0x1F9D1, 0x1F3FC },
- ["people holding hands: light skin tone"]={ 0x1F9D1, 0x1F3FB, 0x200D, 0x1F91D, 0x200D, 0x1F9D1, 0x1F3FB },
- ["people holding hands: medium skin tone"]={ 0x1F9D1, 0x1F3FD, 0x200D, 0x1F91D, 0x200D, 0x1F9D1, 0x1F3FD },
- ["people holding hands: medium skin tone, light skin tone"]={ 0x1F9D1, 0x1F3FD, 0x200D, 0x1F91D, 0x200D, 0x1F9D1, 0x1F3FB },
- ["people holding hands: medium skin tone, medium-light skin tone"]={ 0x1F9D1, 0x1F3FD, 0x200D, 0x1F91D, 0x200D, 0x1F9D1, 0x1F3FC },
- ["people holding hands: medium-dark skin tone"]={ 0x1F9D1, 0x1F3FE, 0x200D, 0x1F91D, 0x200D, 0x1F9D1, 0x1F3FE },
- ["people holding hands: medium-dark skin tone, light skin tone"]={ 0x1F9D1, 0x1F3FE, 0x200D, 0x1F91D, 0x200D, 0x1F9D1, 0x1F3FB },
- ["people holding hands: medium-dark skin tone, medium skin tone"]={ 0x1F9D1, 0x1F3FE, 0x200D, 0x1F91D, 0x200D, 0x1F9D1, 0x1F3FD },
- ["people holding hands: medium-dark skin tone, medium-light skin tone"]={ 0x1F9D1, 0x1F3FE, 0x200D, 0x1F91D, 0x200D, 0x1F9D1, 0x1F3FC },
- ["people holding hands: medium-light skin tone"]={ 0x1F9D1, 0x1F3FC, 0x200D, 0x1F91D, 0x200D, 0x1F9D1, 0x1F3FC },
- ["people holding hands: medium-light skin tone, light skin tone"]={ 0x1F9D1, 0x1F3FC, 0x200D, 0x1F91D, 0x200D, 0x1F9D1, 0x1F3FB },
- ["people with bunny ears"]={ 0x1F46F },
+ ["people with bunny ears partying"]={ 0x1F46F },
["people wrestling"]={ 0x1F93C },
["performing arts"]={ 0x1F3AD },
["persevering face"]={ 0x1F623 },
- ["person"]={ 0x1F9D1 },
["person biking"]={ 0x1F6B4 },
["person biking: dark skin tone"]={ 0x1F6B4, 0x1F3FF },
["person biking: light skin tone"]={ 0x1F6B4, 0x1F3FB },
["person biking: medium skin tone"]={ 0x1F6B4, 0x1F3FD },
["person biking: medium-dark skin tone"]={ 0x1F6B4, 0x1F3FE },
["person biking: medium-light skin tone"]={ 0x1F6B4, 0x1F3FC },
- ["person bouncing ball"]={ 0x26F9, 0xFE0F },
+ ["person bouncing ball"]={ 0x26F9 },
["person bouncing ball: dark skin tone"]={ 0x26F9, 0x1F3FF },
["person bouncing ball: light skin tone"]={ 0x26F9, 0x1F3FB },
["person bouncing ball: medium skin tone"]={ 0x26F9, 0x1F3FD },
@@ -1890,7 +1606,7 @@ return {
["person getting massage: medium skin tone"]={ 0x1F486, 0x1F3FD },
["person getting massage: medium-dark skin tone"]={ 0x1F486, 0x1F3FE },
["person getting massage: medium-light skin tone"]={ 0x1F486, 0x1F3FC },
- ["person golfing"]={ 0x1F3CC, 0xFE0F },
+ ["person golfing"]={ 0x1F3CC },
["person golfing: dark skin tone"]={ 0x1F3CC, 0x1F3FF },
["person golfing: light skin tone"]={ 0x1F3CC, 0x1F3FB },
["person golfing: medium skin tone"]={ 0x1F3CC, 0x1F3FD },
@@ -1920,13 +1636,7 @@ return {
["person juggling: medium skin tone"]={ 0x1F939, 0x1F3FD },
["person juggling: medium-dark skin tone"]={ 0x1F939, 0x1F3FE },
["person juggling: medium-light skin tone"]={ 0x1F939, 0x1F3FC },
- ["person kneeling"]={ 0x1F9CE },
- ["person kneeling: dark skin tone"]={ 0x1F9CE, 0x1F3FF },
- ["person kneeling: light skin tone"]={ 0x1F9CE, 0x1F3FB },
- ["person kneeling: medium skin tone"]={ 0x1F9CE, 0x1F3FD },
- ["person kneeling: medium-dark skin tone"]={ 0x1F9CE, 0x1F3FE },
- ["person kneeling: medium-light skin tone"]={ 0x1F9CE, 0x1F3FC },
- ["person lifting weights"]={ 0x1F3CB, 0xFE0F },
+ ["person lifting weights"]={ 0x1F3CB },
["person lifting weights: dark skin tone"]={ 0x1F3CB, 0x1F3FF },
["person lifting weights: light skin tone"]={ 0x1F3CB, 0x1F3FB },
["person lifting weights: medium skin tone"]={ 0x1F3CB, 0x1F3FD },
@@ -1980,12 +1690,6 @@ return {
["person shrugging: medium skin tone"]={ 0x1F937, 0x1F3FD },
["person shrugging: medium-dark skin tone"]={ 0x1F937, 0x1F3FE },
["person shrugging: medium-light skin tone"]={ 0x1F937, 0x1F3FC },
- ["person standing"]={ 0x1F9CD },
- ["person standing: dark skin tone"]={ 0x1F9CD, 0x1F3FF },
- ["person standing: light skin tone"]={ 0x1F9CD, 0x1F3FB },
- ["person standing: medium skin tone"]={ 0x1F9CD, 0x1F3FD },
- ["person standing: medium-dark skin tone"]={ 0x1F9CD, 0x1F3FE },
- ["person standing: medium-light skin tone"]={ 0x1F9CD, 0x1F3FC },
["person surfing"]={ 0x1F3C4 },
["person surfing: dark skin tone"]={ 0x1F3C4, 0x1F3FF },
["person surfing: light skin tone"]={ 0x1F3C4, 0x1F3FB },
@@ -2022,43 +1726,26 @@ return {
["person wearing turban: medium skin tone"]={ 0x1F473, 0x1F3FD },
["person wearing turban: medium-dark skin tone"]={ 0x1F473, 0x1F3FE },
["person wearing turban: medium-light skin tone"]={ 0x1F473, 0x1F3FC },
- ["person: blond hair"]={ 0x1F471 },
- ["person: dark skin tone"]={ 0x1F9D1, 0x1F3FF },
- ["person: dark skin tone, blond hair"]={ 0x1F471, 0x1F3FF },
- ["person: light skin tone"]={ 0x1F9D1, 0x1F3FB },
- ["person: light skin tone, blond hair"]={ 0x1F471, 0x1F3FB },
- ["person: medium skin tone"]={ 0x1F9D1, 0x1F3FD },
- ["person: medium skin tone, blond hair"]={ 0x1F471, 0x1F3FD },
- ["person: medium-dark skin tone"]={ 0x1F9D1, 0x1F3FE },
- ["person: medium-dark skin tone, blond hair"]={ 0x1F471, 0x1F3FE },
- ["person: medium-light skin tone"]={ 0x1F9D1, 0x1F3FC },
- ["person: medium-light skin tone, blond hair"]={ 0x1F471, 0x1F3FC },
- ["petri dish"]={ 0x1F9EB },
- ["pick"]={ 0x26CF, 0xFE0F },
+ ["peru"]={ 0x1F1F5, 0x1F1EA },
+ ["philippines"]={ 0x1F1F5, 0x1F1ED },
+ ["pick"]={ 0x26CF },
["pie"]={ 0x1F967 },
["pig"]={ 0x1F416 },
["pig face"]={ 0x1F437 },
["pig nose"]={ 0x1F43D },
["pile of poo"]={ 0x1F4A9 },
["pill"]={ 0x1F48A },
- ["pinching hand"]={ 0x1F90F },
- ["pinching hand: dark skin tone"]={ 0x1F90F, 0x1F3FF },
- ["pinching hand: light skin tone"]={ 0x1F90F, 0x1F3FB },
- ["pinching hand: medium skin tone"]={ 0x1F90F, 0x1F3FD },
- ["pinching hand: medium-dark skin tone"]={ 0x1F90F, 0x1F3FE },
- ["pinching hand: medium-light skin tone"]={ 0x1F90F, 0x1F3FC },
["pine decoration"]={ 0x1F38D },
["pineapple"]={ 0x1F34D },
["ping pong"]={ 0x1F3D3 },
- ["pirate flag"]={ 0x1F3F4, 0x200D, 0x2620, 0xFE0F },
["pisces"]={ 0x2653 },
["pistol"]={ 0x1F52B },
+ ["pitcairn islands"]={ 0x1F1F5, 0x1F1F3 },
["pizza"]={ 0x1F355 },
["place of worship"]={ 0x1F6D0 },
- ["play button"]={ 0x25B6, 0xFE0F },
- ["play or pause button"]={ 0x23EF, 0xFE0F },
- ["pleading face"]={ 0x1F97A },
- ["plus sign"]={ 0x2795 },
+ ["play button"]={ 0x25B6 },
+ ["play or pause button"]={ 0x23EF },
+ ["poland"]={ 0x1F1F5, 0x1F1F1 },
["police car"]={ 0x1F693 },
["police car light"]={ 0x1F6A8 },
["police officer"]={ 0x1F46E },
@@ -2070,6 +1757,7 @@ return {
["poodle"]={ 0x1F429 },
["pool 8 ball"]={ 0x1F3B1 },
["popcorn"]={ 0x1F37F },
+ ["portugal"]={ 0x1F1F5, 0x1F1F9 },
["post office"]={ 0x1F3E4 },
["postal horn"]={ 0x1F4EF },
["postbox"]={ 0x1F4EE },
@@ -2078,7 +1766,7 @@ return {
["potato"]={ 0x1F954 },
["poultry leg"]={ 0x1F357 },
["pound banknote"]={ 0x1F4B7 },
- ["pouting cat"]={ 0x1F63E },
+ ["pouting cat face"]={ 0x1F63E },
["pouting face"]={ 0x1F621 },
["prayer beads"]={ 0x1F4FF },
["pregnant woman"]={ 0x1F930 },
@@ -2100,27 +1788,24 @@ return {
["princess: medium skin tone"]={ 0x1F478, 0x1F3FD },
["princess: medium-dark skin tone"]={ 0x1F478, 0x1F3FE },
["princess: medium-light skin tone"]={ 0x1F478, 0x1F3FC },
- ["printer"]={ 0x1F5A8, 0xFE0F },
- ["probing cane"]={ 0x1F9AF },
+ ["printer"]={ 0x1F5A8 },
["prohibited"]={ 0x1F6AB },
- ["purple circle"]={ 0x1F7E3 },
+ ["puerto rico"]={ 0x1F1F5, 0x1F1F7 },
["purple heart"]={ 0x1F49C },
- ["purple square"]={ 0x1F7EA },
["purse"]={ 0x1F45B },
["pushpin"]={ 0x1F4CC },
- ["puzzle piece"]={ 0x1F9E9 },
+ ["qatar"]={ 0x1F1F6, 0x1F1E6 },
["question mark"]={ 0x2753 },
["rabbit"]={ 0x1F407 },
["rabbit face"]={ 0x1F430 },
- ["raccoon"]={ 0x1F99D },
- ["racing car"]={ 0x1F3CE, 0xFE0F },
+ ["racing car"]={ 0x1F3CE },
["radio"]={ 0x1F4FB },
["radio button"]={ 0x1F518 },
- ["radioactive"]={ 0x2622, 0xFE0F },
+ ["radioactive"]={ 0x2622 },
["railway car"]={ 0x1F683 },
- ["railway track"]={ 0x1F6E4, 0xFE0F },
+ ["railway track"]={ 0x1F6E4 },
["rainbow"]={ 0x1F308 },
- ["rainbow flag"]={ 0x1F3F3, 0xFE0F, 0x200D, 0x1F308 },
+ ["rainbow flag"]={ 0x1F3F3, 0x200D, 0x1F308 },
["raised back of hand"]={ 0x1F91A },
["raised back of hand: dark skin tone"]={ 0x1F91A, 0x1F3FF },
["raised back of hand: light skin tone"]={ 0x1F91A, 0x1F3FB },
@@ -2134,6 +1819,12 @@ return {
["raised fist: medium-dark skin tone"]={ 0x270A, 0x1F3FE },
["raised fist: medium-light skin tone"]={ 0x270A, 0x1F3FC },
["raised hand"]={ 0x270B },
+ ["raised hand with fingers splayed"]={ 0x1F590 },
+ ["raised hand with fingers splayed: dark skin tone"]={ 0x1F590, 0x1F3FF },
+ ["raised hand with fingers splayed: light skin tone"]={ 0x1F590, 0x1F3FB },
+ ["raised hand with fingers splayed: medium skin tone"]={ 0x1F590, 0x1F3FD },
+ ["raised hand with fingers splayed: medium-dark skin tone"]={ 0x1F590, 0x1F3FE },
+ ["raised hand with fingers splayed: medium-light skin tone"]={ 0x1F590, 0x1F3FC },
["raised hand: dark skin tone"]={ 0x270B, 0x1F3FF },
["raised hand: light skin tone"]={ 0x270B, 0x1F3FB },
["raised hand: medium skin tone"]={ 0x270B, 0x1F3FD },
@@ -2147,65 +1838,62 @@ return {
["raising hands: medium-light skin tone"]={ 0x1F64C, 0x1F3FC },
["ram"]={ 0x1F40F },
["rat"]={ 0x1F400 },
- ["razor"]={ 0x1FA92 },
- ["receipt"]={ 0x1F9FE },
- ["record button"]={ 0x23FA, 0xFE0F },
- ["recycling symbol"]={ 0x267B, 0xFE0F },
+ ["record button"]={ 0x23FA },
+ ["recycling symbol"]={ 0x267B },
["red apple"]={ 0x1F34E },
["red circle"]={ 0x1F534 },
- ["red envelope"]={ 0x1F9E7 },
- ["red heart"]={ 0x2764, 0xFE0F },
+ ["red heart"]={ 0x2764 },
["red paper lantern"]={ 0x1F3EE },
- ["red square"]={ 0x1F7E5 },
["red triangle pointed down"]={ 0x1F53B },
["red triangle pointed up"]={ 0x1F53A },
- ["registered"]={ 0xAE, 0xFE0F },
+ ["registered"]={ 0xAE },
["relieved face"]={ 0x1F60C },
- ["reminder ribbon"]={ 0x1F397, 0xFE0F },
+ ["reminder ribbon"]={ 0x1F397 },
["repeat button"]={ 0x1F501 },
["repeat single button"]={ 0x1F502 },
- ["rescue worker’s helmet"]={ 0x26D1, 0xFE0F },
+ ["rescue worker’s helmet"]={ 0x26D1 },
["restroom"]={ 0x1F6BB },
- ["reverse button"]={ 0x25C0, 0xFE0F },
+ ["reverse button"]={ 0x25C0 },
["revolving hearts"]={ 0x1F49E },
["rhinoceros"]={ 0x1F98F },
["ribbon"]={ 0x1F380 },
["rice ball"]={ 0x1F359 },
["rice cracker"]={ 0x1F358 },
- ["right anger bubble"]={ 0x1F5EF, 0xFE0F },
- ["right arrow"]={ 0x27A1, 0xFE0F },
- ["right arrow curving down"]={ 0x2935, 0xFE0F },
- ["right arrow curving left"]={ 0x21A9, 0xFE0F },
- ["right arrow curving up"]={ 0x2934, 0xFE0F },
+ ["right anger bubble"]={ 0x1F5EF },
+ ["right arrow"]={ 0x27A1 },
+ ["right arrow curving down"]={ 0x2935 },
+ ["right arrow curving left"]={ 0x21A9 },
+ ["right arrow curving up"]={ 0x2934 },
["right-facing fist"]={ 0x1F91C },
["right-facing fist: dark skin tone"]={ 0x1F91C, 0x1F3FF },
["right-facing fist: light skin tone"]={ 0x1F91C, 0x1F3FB },
["right-facing fist: medium skin tone"]={ 0x1F91C, 0x1F3FD },
["right-facing fist: medium-dark skin tone"]={ 0x1F91C, 0x1F3FE },
["right-facing fist: medium-light skin tone"]={ 0x1F91C, 0x1F3FC },
+ ["right-pointing magnifying glass"]={ 0x1F50E },
["ring"]={ 0x1F48D },
- ["ringed planet"]={ 0x1FA90 },
["roasted sweet potato"]={ 0x1F360 },
- ["robot"]={ 0x1F916 },
+ ["robot face"]={ 0x1F916 },
["rocket"]={ 0x1F680 },
- ["roll of paper"]={ 0x1F9FB },
- ["rolled-up newspaper"]={ 0x1F5DE, 0xFE0F },
+ ["rolled-up newspaper"]={ 0x1F5DE },
["roller coaster"]={ 0x1F3A2 },
["rolling on the floor laughing"]={ 0x1F923 },
+ ["romania"]={ 0x1F1F7, 0x1F1F4 },
["rooster"]={ 0x1F413 },
["rose"]={ 0x1F339 },
- ["rosette"]={ 0x1F3F5, 0xFE0F },
+ ["rosette"]={ 0x1F3F5 },
["round pushpin"]={ 0x1F4CD },
["rugby football"]={ 0x1F3C9 },
["running shirt"]={ 0x1F3BD },
["running shoe"]={ 0x1F45F },
- ["sad but relieved face"]={ 0x1F625 },
- ["safety pin"]={ 0x1F9F7 },
- ["safety vest"]={ 0x1F9BA },
+ ["russia"]={ 0x1F1F7, 0x1F1FA },
+ ["rwanda"]={ 0x1F1F7, 0x1F1FC },
+ ["rÃĐunion"]={ 0x1F1F7, 0x1F1EA },
["sagittarius"]={ 0x2650 },
["sailboat"]={ 0x26F5 },
["sake"]={ 0x1F376 },
- ["salt"]={ 0x1F9C2 },
+ ["samoa"]={ 0x1F1FC, 0x1F1F8 },
+ ["san marino"]={ 0x1F1F8, 0x1F1F2 },
["sandwich"]={ 0x1F96A },
["santa claus"]={ 0x1F385 },
["santa claus: dark skin tone"]={ 0x1F385, 0x1F3FF },
@@ -2213,16 +1901,18 @@ return {
["santa claus: medium skin tone"]={ 0x1F385, 0x1F3FD },
["santa claus: medium-dark skin tone"]={ 0x1F385, 0x1F3FE },
["santa claus: medium-light skin tone"]={ 0x1F385, 0x1F3FC },
- ["sari"]={ 0x1F97B },
- ["satellite"]={ 0x1F6F0, 0xFE0F },
+ ["satellite"]={ 0x1F6F0 },
["satellite antenna"]={ 0x1F4E1 },
+ ["saudi arabia"]={ 0x1F1F8, 0x1F1E6 },
["sauropod"]={ 0x1F995 },
["saxophone"]={ 0x1F3B7 },
["scarf"]={ 0x1F9E3 },
["school"]={ 0x1F3EB },
- ["scissors"]={ 0x2702, 0xFE0F },
- ["scorpio"]={ 0x264F },
+ ["school backpack"]={ 0x1F392 },
+ ["scissors"]={ 0x2702 },
["scorpion"]={ 0x1F982 },
+ ["scorpius"]={ 0x264F },
+ ["scotland"]={ 0x1F3F4, 0xE0067, 0xE0062, 0xE0073, 0xE0063, 0xE0074, 0xE007F },
["scroll"]={ 0x1F4DC },
["seat"]={ 0x1F4BA },
["see-no-evil monkey"]={ 0x1F648 },
@@ -2233,82 +1923,94 @@ return {
["selfie: medium skin tone"]={ 0x1F933, 0x1F3FD },
["selfie: medium-dark skin tone"]={ 0x1F933, 0x1F3FE },
["selfie: medium-light skin tone"]={ 0x1F933, 0x1F3FC },
- ["service dog"]={ 0x1F415, 0x200D, 0x1F9BA },
+ ["senegal"]={ 0x1F1F8, 0x1F1F3 },
+ ["serbia"]={ 0x1F1F7, 0x1F1F8 },
["seven o’clock"]={ 0x1F556 },
["seven-thirty"]={ 0x1F562 },
+ ["seychelles"]={ 0x1F1F8, 0x1F1E8 },
["shallow pan of food"]={ 0x1F958 },
- ["shamrock"]={ 0x2618, 0xFE0F },
+ ["shamrock"]={ 0x2618 },
["shark"]={ 0x1F988 },
["shaved ice"]={ 0x1F367 },
["sheaf of rice"]={ 0x1F33E },
- ["shield"]={ 0x1F6E1, 0xFE0F },
- ["shinto shrine"]={ 0x26E9, 0xFE0F },
+ ["shield"]={ 0x1F6E1 },
+ ["shinto shrine"]={ 0x26E9 },
["ship"]={ 0x1F6A2 },
["shooting star"]={ 0x1F320 },
- ["shopping bags"]={ 0x1F6CD, 0xFE0F },
+ ["shopping bags"]={ 0x1F6CD },
["shopping cart"]={ 0x1F6D2 },
["shortcake"]={ 0x1F370 },
- ["shorts"]={ 0x1FA73 },
["shower"]={ 0x1F6BF },
["shrimp"]={ 0x1F990 },
["shuffle tracks button"]={ 0x1F500 },
["shushing face"]={ 0x1F92B },
+ ["sierra leone"]={ 0x1F1F8, 0x1F1F1 },
["sign of the horns"]={ 0x1F918 },
["sign of the horns: dark skin tone"]={ 0x1F918, 0x1F3FF },
["sign of the horns: light skin tone"]={ 0x1F918, 0x1F3FB },
["sign of the horns: medium skin tone"]={ 0x1F918, 0x1F3FD },
["sign of the horns: medium-dark skin tone"]={ 0x1F918, 0x1F3FE },
["sign of the horns: medium-light skin tone"]={ 0x1F918, 0x1F3FC },
+ ["singapore"]={ 0x1F1F8, 0x1F1EC },
+ ["sint maarten"]={ 0x1F1F8, 0x1F1FD },
["six o’clock"]={ 0x1F555 },
["six-thirty"]={ 0x1F561 },
- ["skateboard"]={ 0x1F6F9 },
- ["skier"]={ 0x26F7, 0xFE0F },
+ ["skier"]={ 0x26F7 },
["skis"]={ 0x1F3BF },
["skull"]={ 0x1F480 },
- ["skull and crossbones"]={ 0x2620, 0xFE0F },
- ["skunk"]={ 0x1F9A8 },
+ ["skull and crossbones"]={ 0x2620 },
["sled"]={ 0x1F6F7 },
["sleeping face"]={ 0x1F634 },
["sleepy face"]={ 0x1F62A },
["slightly frowning face"]={ 0x1F641 },
["slightly smiling face"]={ 0x1F642 },
["slot machine"]={ 0x1F3B0 },
- ["sloth"]={ 0x1F9A5 },
- ["small airplane"]={ 0x1F6E9, 0xFE0F },
+ ["slovakia"]={ 0x1F1F8, 0x1F1F0 },
+ ["slovenia"]={ 0x1F1F8, 0x1F1EE },
+ ["small airplane"]={ 0x1F6E9 },
["small blue diamond"]={ 0x1F539 },
["small orange diamond"]={ 0x1F538 },
- ["smiling cat with heart-eyes"]={ 0x1F63B },
- ["smiling face"]={ 0x263A, 0xFE0F },
+ ["smiling cat face with heart-eyes"]={ 0x1F63B },
+ ["smiling cat face with open mouth"]={ 0x1F63A },
+ ["smiling face"]={ 0x263A },
["smiling face with halo"]={ 0x1F607 },
["smiling face with heart-eyes"]={ 0x1F60D },
- ["smiling face with hearts"]={ 0x1F970 },
["smiling face with horns"]={ 0x1F608 },
+ ["smiling face with open mouth"]={ 0x1F603 },
+ ["smiling face with open mouth & closed eyes"]={ 0x1F606 },
+ ["smiling face with open mouth & cold sweat"]={ 0x1F605 },
+ ["smiling face with open mouth & smiling eyes"]={ 0x1F604 },
["smiling face with smiling eyes"]={ 0x1F60A },
["smiling face with sunglasses"]={ 0x1F60E },
["smirking face"]={ 0x1F60F },
["snail"]={ 0x1F40C },
["snake"]={ 0x1F40D },
["sneezing face"]={ 0x1F927 },
- ["snow-capped mountain"]={ 0x1F3D4, 0xFE0F },
+ ["snow-capped mountain"]={ 0x1F3D4 },
["snowboarder"]={ 0x1F3C2 },
["snowboarder: dark skin tone"]={ 0x1F3C2, 0x1F3FF },
["snowboarder: light skin tone"]={ 0x1F3C2, 0x1F3FB },
["snowboarder: medium skin tone"]={ 0x1F3C2, 0x1F3FD },
["snowboarder: medium-dark skin tone"]={ 0x1F3C2, 0x1F3FE },
["snowboarder: medium-light skin tone"]={ 0x1F3C2, 0x1F3FC },
- ["snowflake"]={ 0x2744, 0xFE0F },
- ["snowman"]={ 0x2603, 0xFE0F },
+ ["snowflake"]={ 0x2744 },
+ ["snowman"]={ 0x2603 },
["snowman without snow"]={ 0x26C4 },
- ["soap"]={ 0x1F9FC },
["soccer ball"]={ 0x26BD },
["socks"]={ 0x1F9E6 },
["soft ice cream"]={ 0x1F366 },
- ["softball"]={ 0x1F94E },
+ ["solomon islands"]={ 0x1F1F8, 0x1F1E7 },
+ ["somalia"]={ 0x1F1F8, 0x1F1F4 },
["soon arrow"]={ 0x1F51C },
["sos button"]={ 0x1F198 },
- ["spade suit"]={ 0x2660, 0xFE0F },
+ ["south africa"]={ 0x1F1FF, 0x1F1E6 },
+ ["south georgia & south sandwich islands"]={ 0x1F1EC, 0x1F1F8 },
+ ["south korea"]={ 0x1F1F0, 0x1F1F7 },
+ ["south sudan"]={ 0x1F1F8, 0x1F1F8 },
+ ["spade suit"]={ 0x2660 },
["spaghetti"]={ 0x1F35D },
- ["sparkle"]={ 0x2747, 0xFE0F },
+ ["spain"]={ 0x1F1EA, 0x1F1F8 },
+ ["sparkle"]={ 0x2747 },
["sparkler"]={ 0x1F387 },
["sparkles"]={ 0x2728 },
["sparkling heart"]={ 0x1F496 },
@@ -2316,79 +2018,79 @@ return {
["speaker high volume"]={ 0x1F50A },
["speaker low volume"]={ 0x1F508 },
["speaker medium volume"]={ 0x1F509 },
- ["speaking head"]={ 0x1F5E3, 0xFE0F },
+ ["speaking head"]={ 0x1F5E3 },
["speech balloon"]={ 0x1F4AC },
["speedboat"]={ 0x1F6A4 },
- ["spider"]={ 0x1F577, 0xFE0F },
- ["spider web"]={ 0x1F578, 0xFE0F },
- ["spiral calendar"]={ 0x1F5D3, 0xFE0F },
- ["spiral notepad"]={ 0x1F5D2, 0xFE0F },
+ ["spider"]={ 0x1F577 },
+ ["spider web"]={ 0x1F578 },
+ ["spiral calendar"]={ 0x1F5D3 },
+ ["spiral notepad"]={ 0x1F5D2 },
["spiral shell"]={ 0x1F41A },
- ["sponge"]={ 0x1F9FD },
["spoon"]={ 0x1F944 },
["sport utility vehicle"]={ 0x1F699 },
["sports medal"]={ 0x1F3C5 },
["spouting whale"]={ 0x1F433 },
["squid"]={ 0x1F991 },
- ["squinting face with tongue"]={ 0x1F61D },
- ["stadium"]={ 0x1F3DF, 0xFE0F },
- ["star"]={ 0x2B50 },
- ["star and crescent"]={ 0x262A, 0xFE0F },
- ["star of david"]={ 0x2721, 0xFE0F },
+ ["sri lanka"]={ 0x1F1F1, 0x1F1F0 },
+ ["st. barthÃĐlemy"]={ 0x1F1E7, 0x1F1F1 },
+ ["st. helena"]={ 0x1F1F8, 0x1F1ED },
+ ["st. kitts & nevis"]={ 0x1F1F0, 0x1F1F3 },
+ ["st. lucia"]={ 0x1F1F1, 0x1F1E8 },
+ ["st. martin"]={ 0x1F1F2, 0x1F1EB },
+ ["st. pierre & miquelon"]={ 0x1F1F5, 0x1F1F2 },
+ ["st. vincent & grenadines"]={ 0x1F1FB, 0x1F1E8 },
+ ["stadium"]={ 0x1F3DF },
+ ["star and crescent"]={ 0x262A },
+ ["star of david"]={ 0x2721 },
["star-struck"]={ 0x1F929 },
["station"]={ 0x1F689 },
["statue of liberty"]={ 0x1F5FD },
["steaming bowl"]={ 0x1F35C },
- ["stethoscope"]={ 0x1FA7A },
- ["stop button"]={ 0x23F9, 0xFE0F },
+ ["stop button"]={ 0x23F9 },
["stop sign"]={ 0x1F6D1 },
- ["stopwatch"]={ 0x23F1, 0xFE0F },
+ ["stopwatch"]={ 0x23F1 },
["straight ruler"]={ 0x1F4CF },
["strawberry"]={ 0x1F353 },
- ["studio microphone"]={ 0x1F399, 0xFE0F },
+ ["studio microphone"]={ 0x1F399 },
["stuffed flatbread"]={ 0x1F959 },
- ["sun"]={ 0x2600, 0xFE0F },
+ ["sudan"]={ 0x1F1F8, 0x1F1E9 },
+ ["sun"]={ 0x2600 },
["sun behind cloud"]={ 0x26C5 },
- ["sun behind large cloud"]={ 0x1F325, 0xFE0F },
- ["sun behind rain cloud"]={ 0x1F326, 0xFE0F },
- ["sun behind small cloud"]={ 0x1F324, 0xFE0F },
+ ["sun behind large cloud"]={ 0x1F325 },
+ ["sun behind rain cloud"]={ 0x1F326 },
+ ["sun behind small cloud"]={ 0x1F324 },
["sun with face"]={ 0x1F31E },
["sunflower"]={ 0x1F33B },
- ["sunglasses"]={ 0x1F576, 0xFE0F },
+ ["sunglasses"]={ 0x1F576 },
["sunrise"]={ 0x1F305 },
["sunrise over mountains"]={ 0x1F304 },
["sunset"]={ 0x1F307 },
- ["superhero"]={ 0x1F9B8 },
- ["superhero: dark skin tone"]={ 0x1F9B8, 0x1F3FF },
- ["superhero: light skin tone"]={ 0x1F9B8, 0x1F3FB },
- ["superhero: medium skin tone"]={ 0x1F9B8, 0x1F3FD },
- ["superhero: medium-dark skin tone"]={ 0x1F9B8, 0x1F3FE },
- ["superhero: medium-light skin tone"]={ 0x1F9B8, 0x1F3FC },
- ["supervillain"]={ 0x1F9B9 },
- ["supervillain: dark skin tone"]={ 0x1F9B9, 0x1F3FF },
- ["supervillain: light skin tone"]={ 0x1F9B9, 0x1F3FB },
- ["supervillain: medium skin tone"]={ 0x1F9B9, 0x1F3FD },
- ["supervillain: medium-dark skin tone"]={ 0x1F9B9, 0x1F3FE },
- ["supervillain: medium-light skin tone"]={ 0x1F9B9, 0x1F3FC },
+ ["suriname"]={ 0x1F1F8, 0x1F1F7 },
["sushi"]={ 0x1F363 },
["suspension railway"]={ 0x1F69F },
- ["swan"]={ 0x1F9A2 },
+ ["svalbard & jan mayen"]={ 0x1F1F8, 0x1F1EF },
+ ["swaziland"]={ 0x1F1F8, 0x1F1FF },
["sweat droplets"]={ 0x1F4A6 },
- ["swim brief"]={ 0x1FA72 },
+ ["sweden"]={ 0x1F1F8, 0x1F1EA },
+ ["switzerland"]={ 0x1F1E8, 0x1F1ED },
["synagogue"]={ 0x1F54D },
+ ["syria"]={ 0x1F1F8, 0x1F1FE },
["syringe"]={ 0x1F489 },
+ ["sÃĢo tomÃĐ & príncipe"]={ 0x1F1F8, 0x1F1F9 },
["t-rex"]={ 0x1F996 },
["t-shirt"]={ 0x1F455 },
["taco"]={ 0x1F32E },
+ ["taiwan"]={ 0x1F1F9, 0x1F1FC },
+ ["tajikistan"]={ 0x1F1F9, 0x1F1EF },
["takeout box"]={ 0x1F961 },
["tanabata tree"]={ 0x1F38B },
["tangerine"]={ 0x1F34A },
+ ["tanzania"]={ 0x1F1F9, 0x1F1FF },
["taurus"]={ 0x2649 },
["taxi"]={ 0x1F695 },
["teacup without handle"]={ 0x1F375 },
["tear-off calendar"]={ 0x1F4C6 },
- ["teddy bear"]={ 0x1F9F8 },
- ["telephone"]={ 0x260E, 0xFE0F },
+ ["telephone"]={ 0x260E },
["telephone receiver"]={ 0x1F4DE },
["telescope"]={ 0x1F52D },
["television"]={ 0x1F4FA },
@@ -2396,11 +2098,10 @@ return {
["ten-thirty"]={ 0x1F565 },
["tennis"]={ 0x1F3BE },
["tent"]={ 0x26FA },
- ["test tube"]={ 0x1F9EA },
- ["thermometer"]={ 0x1F321, 0xFE0F },
+ ["thailand"]={ 0x1F1F9, 0x1F1ED },
+ ["thermometer"]={ 0x1F321 },
["thinking face"]={ 0x1F914 },
["thought balloon"]={ 0x1F4AD },
- ["thread"]={ 0x1F9F5 },
["three o’clock"]={ 0x1F552 },
["three-thirty"]={ 0x1F55E },
["thumbs down"]={ 0x1F44E },
@@ -2418,26 +2119,30 @@ return {
["ticket"]={ 0x1F3AB },
["tiger"]={ 0x1F405 },
["tiger face"]={ 0x1F42F },
- ["timer clock"]={ 0x23F2, 0xFE0F },
+ ["timer clock"]={ 0x23F2 },
+ ["timor-leste"]={ 0x1F1F9, 0x1F1F1 },
["tired face"]={ 0x1F62B },
+ ["togo"]={ 0x1F1F9, 0x1F1EC },
["toilet"]={ 0x1F6BD },
+ ["tokelau"]={ 0x1F1F9, 0x1F1F0 },
["tokyo tower"]={ 0x1F5FC },
["tomato"]={ 0x1F345 },
+ ["tonga"]={ 0x1F1F9, 0x1F1F4 },
["tongue"]={ 0x1F445 },
- ["toolbox"]={ 0x1F9F0 },
- ["tooth"]={ 0x1F9B7 },
["top arrow"]={ 0x1F51D },
["top hat"]={ 0x1F3A9 },
- ["tornado"]={ 0x1F32A, 0xFE0F },
- ["trackball"]={ 0x1F5B2, 0xFE0F },
+ ["tornado"]={ 0x1F32A },
+ ["trackball"]={ 0x1F5B2 },
["tractor"]={ 0x1F69C },
- ["trade mark"]={ 0x2122, 0xFE0F },
+ ["trade mark"]={ 0x2122 },
["train"]={ 0x1F686 },
["tram"]={ 0x1F68A },
["tram car"]={ 0x1F68B },
["triangular flag"]={ 0x1F6A9 },
["triangular ruler"]={ 0x1F4D0 },
["trident emblem"]={ 0x1F531 },
+ ["trinidad & tobago"]={ 0x1F1F9, 0x1F1F9 },
+ ["tristan da cunha"]={ 0x1F1F9, 0x1F1E6 },
["trolleybus"]={ 0x1F68E },
["trophy"]={ 0x1F3C6 },
["tropical drink"]={ 0x1F379 },
@@ -2445,36 +2150,55 @@ return {
["trumpet"]={ 0x1F3BA },
["tulip"]={ 0x1F337 },
["tumbler glass"]={ 0x1F943 },
- ["turkey"]={ 0x1F983 },
+ ["tunisia"]={ 0x1F1F9, 0x1F1F3 },
+ ["turkey"]={ 0x1F1F9, 0x1F1F7 },
+ ["turkmenistan"]={ 0x1F1F9, 0x1F1F2 },
+ ["turks & caicos islands"]={ 0x1F1F9, 0x1F1E8 },
["turtle"]={ 0x1F422 },
+ ["tuvalu"]={ 0x1F1F9, 0x1F1FB },
["twelve o’clock"]={ 0x1F55B },
["twelve-thirty"]={ 0x1F567 },
["two hearts"]={ 0x1F495 },
+ ["two men holding hands"]={ 0x1F46C },
["two o’clock"]={ 0x1F551 },
+ ["two women holding hands"]={ 0x1F46D },
["two-hump camel"]={ 0x1F42B },
["two-thirty"]={ 0x1F55D },
- ["umbrella"]={ 0x2602, 0xFE0F },
- ["umbrella on ground"]={ 0x26F1, 0xFE0F },
+ ["u.s. outlying islands"]={ 0x1F1FA, 0x1F1F2 },
+ ["u.s. virgin islands"]={ 0x1F1FB, 0x1F1EE },
+ ["uganda"]={ 0x1F1FA, 0x1F1EC },
+ ["ukraine"]={ 0x1F1FA, 0x1F1E6 },
+ ["umbrella"]={ 0x2602 },
+ ["umbrella on ground"]={ 0x26F1 },
["umbrella with rain drops"]={ 0x2614 },
["unamused face"]={ 0x1F612 },
- ["unicorn"]={ 0x1F984 },
+ ["unicorn face"]={ 0x1F984 },
+ ["united arab emirates"]={ 0x1F1E6, 0x1F1EA },
+ ["united kingdom"]={ 0x1F1EC, 0x1F1E7 },
+ ["united nations"]={ 0x1F1FA, 0x1F1F3 },
+ ["united states"]={ 0x1F1FA, 0x1F1F8 },
["unlocked"]={ 0x1F513 },
- ["up arrow"]={ 0x2B06, 0xFE0F },
+ ["up arrow"]={ 0x2B06 },
+ ["up button"]={ 0x1F53C },
["up! button"]={ 0x1F199 },
- ["up-down arrow"]={ 0x2195, 0xFE0F },
- ["up-left arrow"]={ 0x2196, 0xFE0F },
- ["up-right arrow"]={ 0x2197, 0xFE0F },
+ ["up-down arrow"]={ 0x2195 },
+ ["up-left arrow"]={ 0x2196 },
+ ["up-right arrow"]={ 0x2197 },
["upside-down face"]={ 0x1F643 },
- ["upwards button"]={ 0x1F53C },
+ ["uruguay"]={ 0x1F1FA, 0x1F1FE },
+ ["uzbekistan"]={ 0x1F1FA, 0x1F1FF },
["vampire"]={ 0x1F9DB },
["vampire: dark skin tone"]={ 0x1F9DB, 0x1F3FF },
["vampire: light skin tone"]={ 0x1F9DB, 0x1F3FB },
["vampire: medium skin tone"]={ 0x1F9DB, 0x1F3FD },
["vampire: medium-dark skin tone"]={ 0x1F9DB, 0x1F3FE },
["vampire: medium-light skin tone"]={ 0x1F9DB, 0x1F3FC },
+ ["vanuatu"]={ 0x1F1FB, 0x1F1FA },
+ ["vatican city"]={ 0x1F1FB, 0x1F1E6 },
+ ["venezuela"]={ 0x1F1FB, 0x1F1EA },
["vertical traffic light"]={ 0x1F6A6 },
["vibration mode"]={ 0x1F4F3 },
- ["victory hand"]={ 0x270C, 0xFE0F },
+ ["victory hand"]={ 0x270C },
["victory hand: dark skin tone"]={ 0x270C, 0x1F3FF },
["victory hand: light skin tone"]={ 0x270C, 0x1F3FB },
["victory hand: medium skin tone"]={ 0x270C, 0x1F3FD },
@@ -2483,6 +2207,7 @@ return {
["video camera"]={ 0x1F4F9 },
["video game"]={ 0x1F3AE },
["videocassette"]={ 0x1F4FC },
+ ["vietnam"]={ 0x1F1FB, 0x1F1F3 },
["violin"]={ 0x1F3BB },
["virgo"]={ 0x264D },
["volcano"]={ 0x1F30B },
@@ -2494,11 +2219,12 @@ return {
["vulcan salute: medium skin tone"]={ 0x1F596, 0x1F3FD },
["vulcan salute: medium-dark skin tone"]={ 0x1F596, 0x1F3FE },
["vulcan salute: medium-light skin tone"]={ 0x1F596, 0x1F3FC },
- ["waffle"]={ 0x1F9C7 },
+ ["wales"]={ 0x1F3F4, 0xE0067, 0xE0062, 0xE0077, 0xE006C, 0xE0073, 0xE007F },
+ ["wallis & futuna"]={ 0x1F1FC, 0x1F1EB },
["waning crescent moon"]={ 0x1F318 },
["waning gibbous moon"]={ 0x1F316 },
- ["warning"]={ 0x26A0, 0xFE0F },
- ["wastebasket"]={ 0x1F5D1, 0xFE0F },
+ ["warning"]={ 0x26A0 },
+ ["wastebasket"]={ 0x1F5D1 },
["watch"]={ 0x231A },
["water buffalo"]={ 0x1F403 },
["water closet"]={ 0x1F6BE },
@@ -2510,60 +2236,35 @@ return {
["waving hand: medium skin tone"]={ 0x1F44B, 0x1F3FD },
["waving hand: medium-dark skin tone"]={ 0x1F44B, 0x1F3FE },
["waving hand: medium-light skin tone"]={ 0x1F44B, 0x1F3FC },
- ["wavy dash"]={ 0x3030, 0xFE0F },
+ ["wavy dash"]={ 0x3030 },
["waxing crescent moon"]={ 0x1F312 },
["waxing gibbous moon"]={ 0x1F314 },
- ["weary cat"]={ 0x1F640 },
+ ["weary cat face"]={ 0x1F640 },
["weary face"]={ 0x1F629 },
["wedding"]={ 0x1F492 },
+ ["western sahara"]={ 0x1F1EA, 0x1F1ED },
["whale"]={ 0x1F40B },
- ["wheel of dharma"]={ 0x2638, 0xFE0F },
+ ["wheel of dharma"]={ 0x2638 },
["wheelchair symbol"]={ 0x267F },
["white circle"]={ 0x26AA },
["white exclamation mark"]={ 0x2755 },
- ["white flag"]={ 0x1F3F3, 0xFE0F },
+ ["white flag"]={ 0x1F3F3 },
["white flower"]={ 0x1F4AE },
- ["white heart"]={ 0x1F90D },
+ ["white heavy check mark"]={ 0x2705 },
["white large square"]={ 0x2B1C },
- ["white medium square"]={ 0x25FB, 0xFE0F },
+ ["white medium square"]={ 0x25FB },
+ ["white medium star"]={ 0x2B50 },
["white medium-small square"]={ 0x25FD },
["white question mark"]={ 0x2754 },
- ["white small square"]={ 0x25AB, 0xFE0F },
+ ["white small square"]={ 0x25AB },
["white square button"]={ 0x1F533 },
["wilted flower"]={ 0x1F940 },
["wind chime"]={ 0x1F390 },
- ["wind face"]={ 0x1F32C, 0xFE0F },
+ ["wind face"]={ 0x1F32C },
["wine glass"]={ 0x1F377 },
["winking face"]={ 0x1F609 },
- ["winking face with tongue"]={ 0x1F61C },
- ["wolf"]={ 0x1F43A },
+ ["wolf face"]={ 0x1F43A },
["woman"]={ 0x1F469 },
- ["woman and man holding hands"]={ 0x1F46B },
- ["woman and man holding hands: dark skin tone"]={ 0x1F46B, 0x1F3FF },
- ["woman and man holding hands: dark skin tone, light skin tone"]={ 0x1F469, 0x1F3FF, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FB },
- ["woman and man holding hands: dark skin tone, medium skin tone"]={ 0x1F469, 0x1F3FF, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FD },
- ["woman and man holding hands: dark skin tone, medium-dark skin tone"]={ 0x1F469, 0x1F3FF, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FE },
- ["woman and man holding hands: dark skin tone, medium-light skin tone"]={ 0x1F469, 0x1F3FF, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FC },
- ["woman and man holding hands: light skin tone"]={ 0x1F46B, 0x1F3FB },
- ["woman and man holding hands: light skin tone, dark skin tone"]={ 0x1F469, 0x1F3FB, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FF },
- ["woman and man holding hands: light skin tone, medium skin tone"]={ 0x1F469, 0x1F3FB, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FD },
- ["woman and man holding hands: light skin tone, medium-dark skin tone"]={ 0x1F469, 0x1F3FB, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FE },
- ["woman and man holding hands: light skin tone, medium-light skin tone"]={ 0x1F469, 0x1F3FB, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FC },
- ["woman and man holding hands: medium skin tone"]={ 0x1F46B, 0x1F3FD },
- ["woman and man holding hands: medium skin tone, dark skin tone"]={ 0x1F469, 0x1F3FD, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FF },
- ["woman and man holding hands: medium skin tone, light skin tone"]={ 0x1F469, 0x1F3FD, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FB },
- ["woman and man holding hands: medium skin tone, medium-dark skin tone"]={ 0x1F469, 0x1F3FD, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FE },
- ["woman and man holding hands: medium skin tone, medium-light skin tone"]={ 0x1F469, 0x1F3FD, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FC },
- ["woman and man holding hands: medium-dark skin tone"]={ 0x1F46B, 0x1F3FE },
- ["woman and man holding hands: medium-dark skin tone, dark skin tone"]={ 0x1F469, 0x1F3FE, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FF },
- ["woman and man holding hands: medium-dark skin tone, light skin tone"]={ 0x1F469, 0x1F3FE, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FB },
- ["woman and man holding hands: medium-dark skin tone, medium skin tone"]={ 0x1F469, 0x1F3FE, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FD },
- ["woman and man holding hands: medium-dark skin tone, medium-light skin tone"]={ 0x1F469, 0x1F3FE, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FC },
- ["woman and man holding hands: medium-light skin tone"]={ 0x1F46B, 0x1F3FC },
- ["woman and man holding hands: medium-light skin tone, dark skin tone"]={ 0x1F469, 0x1F3FC, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FF },
- ["woman and man holding hands: medium-light skin tone, light skin tone"]={ 0x1F469, 0x1F3FC, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FB },
- ["woman and man holding hands: medium-light skin tone, medium skin tone"]={ 0x1F469, 0x1F3FC, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FD },
- ["woman and man holding hands: medium-light skin tone, medium-dark skin tone"]={ 0x1F469, 0x1F3FC, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FE },
["woman artist"]={ 0x1F469, 0x200D, 0x1F3A8 },
["woman artist: dark skin tone"]={ 0x1F469, 0x1F3FF, 0x200D, 0x1F3A8 },
["woman artist: light skin tone"]={ 0x1F469, 0x1F3FB, 0x200D, 0x1F3A8 },
@@ -2576,42 +2277,42 @@ return {
["woman astronaut: medium skin tone"]={ 0x1F469, 0x1F3FD, 0x200D, 0x1F680 },
["woman astronaut: medium-dark skin tone"]={ 0x1F469, 0x1F3FE, 0x200D, 0x1F680 },
["woman astronaut: medium-light skin tone"]={ 0x1F469, 0x1F3FC, 0x200D, 0x1F680 },
- ["woman biking"]={ 0x1F6B4, 0x200D, 0x2640, 0xFE0F },
- ["woman biking: dark skin tone"]={ 0x1F6B4, 0x1F3FF, 0x200D, 0x2640, 0xFE0F },
- ["woman biking: light skin tone"]={ 0x1F6B4, 0x1F3FB, 0x200D, 0x2640, 0xFE0F },
- ["woman biking: medium skin tone"]={ 0x1F6B4, 0x1F3FD, 0x200D, 0x2640, 0xFE0F },
- ["woman biking: medium-dark skin tone"]={ 0x1F6B4, 0x1F3FE, 0x200D, 0x2640, 0xFE0F },
- ["woman biking: medium-light skin tone"]={ 0x1F6B4, 0x1F3FC, 0x200D, 0x2640, 0xFE0F },
- ["woman bouncing ball"]={ 0x26F9, 0xFE0F, 0x200D, 0x2640, 0xFE0F },
- ["woman bouncing ball: dark skin tone"]={ 0x26F9, 0x1F3FF, 0x200D, 0x2640, 0xFE0F },
- ["woman bouncing ball: light skin tone"]={ 0x26F9, 0x1F3FB, 0x200D, 0x2640, 0xFE0F },
- ["woman bouncing ball: medium skin tone"]={ 0x26F9, 0x1F3FD, 0x200D, 0x2640, 0xFE0F },
- ["woman bouncing ball: medium-dark skin tone"]={ 0x26F9, 0x1F3FE, 0x200D, 0x2640, 0xFE0F },
- ["woman bouncing ball: medium-light skin tone"]={ 0x26F9, 0x1F3FC, 0x200D, 0x2640, 0xFE0F },
- ["woman bowing"]={ 0x1F647, 0x200D, 0x2640, 0xFE0F },
- ["woman bowing: dark skin tone"]={ 0x1F647, 0x1F3FF, 0x200D, 0x2640, 0xFE0F },
- ["woman bowing: light skin tone"]={ 0x1F647, 0x1F3FB, 0x200D, 0x2640, 0xFE0F },
- ["woman bowing: medium skin tone"]={ 0x1F647, 0x1F3FD, 0x200D, 0x2640, 0xFE0F },
- ["woman bowing: medium-dark skin tone"]={ 0x1F647, 0x1F3FE, 0x200D, 0x2640, 0xFE0F },
- ["woman bowing: medium-light skin tone"]={ 0x1F647, 0x1F3FC, 0x200D, 0x2640, 0xFE0F },
- ["woman cartwheeling"]={ 0x1F938, 0x200D, 0x2640, 0xFE0F },
- ["woman cartwheeling: dark skin tone"]={ 0x1F938, 0x1F3FF, 0x200D, 0x2640, 0xFE0F },
- ["woman cartwheeling: light skin tone"]={ 0x1F938, 0x1F3FB, 0x200D, 0x2640, 0xFE0F },
- ["woman cartwheeling: medium skin tone"]={ 0x1F938, 0x1F3FD, 0x200D, 0x2640, 0xFE0F },
- ["woman cartwheeling: medium-dark skin tone"]={ 0x1F938, 0x1F3FE, 0x200D, 0x2640, 0xFE0F },
- ["woman cartwheeling: medium-light skin tone"]={ 0x1F938, 0x1F3FC, 0x200D, 0x2640, 0xFE0F },
- ["woman climbing"]={ 0x1F9D7, 0x200D, 0x2640, 0xFE0F },
- ["woman climbing: dark skin tone"]={ 0x1F9D7, 0x1F3FF, 0x200D, 0x2640, 0xFE0F },
- ["woman climbing: light skin tone"]={ 0x1F9D7, 0x1F3FB, 0x200D, 0x2640, 0xFE0F },
- ["woman climbing: medium skin tone"]={ 0x1F9D7, 0x1F3FD, 0x200D, 0x2640, 0xFE0F },
- ["woman climbing: medium-dark skin tone"]={ 0x1F9D7, 0x1F3FE, 0x200D, 0x2640, 0xFE0F },
- ["woman climbing: medium-light skin tone"]={ 0x1F9D7, 0x1F3FC, 0x200D, 0x2640, 0xFE0F },
- ["woman construction worker"]={ 0x1F477, 0x200D, 0x2640, 0xFE0F },
- ["woman construction worker: dark skin tone"]={ 0x1F477, 0x1F3FF, 0x200D, 0x2640, 0xFE0F },
- ["woman construction worker: light skin tone"]={ 0x1F477, 0x1F3FB, 0x200D, 0x2640, 0xFE0F },
- ["woman construction worker: medium skin tone"]={ 0x1F477, 0x1F3FD, 0x200D, 0x2640, 0xFE0F },
- ["woman construction worker: medium-dark skin tone"]={ 0x1F477, 0x1F3FE, 0x200D, 0x2640, 0xFE0F },
- ["woman construction worker: medium-light skin tone"]={ 0x1F477, 0x1F3FC, 0x200D, 0x2640, 0xFE0F },
+ ["woman biking"]={ 0x1F6B4, 0x200D, 0x2640 },
+ ["woman biking: dark skin tone"]={ 0x1F6B4, 0x1F3FF, 0x200D, 0x2640 },
+ ["woman biking: light skin tone"]={ 0x1F6B4, 0x1F3FB, 0x200D, 0x2640 },
+ ["woman biking: medium skin tone"]={ 0x1F6B4, 0x1F3FD, 0x200D, 0x2640 },
+ ["woman biking: medium-dark skin tone"]={ 0x1F6B4, 0x1F3FE, 0x200D, 0x2640 },
+ ["woman biking: medium-light skin tone"]={ 0x1F6B4, 0x1F3FC, 0x200D, 0x2640 },
+ ["woman bouncing ball"]={ 0x26F9, 0x200D, 0x2640 },
+ ["woman bouncing ball: dark skin tone"]={ 0x26F9, 0x1F3FF, 0x200D, 0x2640 },
+ ["woman bouncing ball: light skin tone"]={ 0x26F9, 0x1F3FB, 0x200D, 0x2640 },
+ ["woman bouncing ball: medium skin tone"]={ 0x26F9, 0x1F3FD, 0x200D, 0x2640 },
+ ["woman bouncing ball: medium-dark skin tone"]={ 0x26F9, 0x1F3FE, 0x200D, 0x2640 },
+ ["woman bouncing ball: medium-light skin tone"]={ 0x26F9, 0x1F3FC, 0x200D, 0x2640 },
+ ["woman bowing"]={ 0x1F647, 0x200D, 0x2640 },
+ ["woman bowing: dark skin tone"]={ 0x1F647, 0x1F3FF, 0x200D, 0x2640 },
+ ["woman bowing: light skin tone"]={ 0x1F647, 0x1F3FB, 0x200D, 0x2640 },
+ ["woman bowing: medium skin tone"]={ 0x1F647, 0x1F3FD, 0x200D, 0x2640 },
+ ["woman bowing: medium-dark skin tone"]={ 0x1F647, 0x1F3FE, 0x200D, 0x2640 },
+ ["woman bowing: medium-light skin tone"]={ 0x1F647, 0x1F3FC, 0x200D, 0x2640 },
+ ["woman cartwheeling"]={ 0x1F938, 0x200D, 0x2640 },
+ ["woman cartwheeling: dark skin tone"]={ 0x1F938, 0x1F3FF, 0x200D, 0x2640 },
+ ["woman cartwheeling: light skin tone"]={ 0x1F938, 0x1F3FB, 0x200D, 0x2640 },
+ ["woman cartwheeling: medium skin tone"]={ 0x1F938, 0x1F3FD, 0x200D, 0x2640 },
+ ["woman cartwheeling: medium-dark skin tone"]={ 0x1F938, 0x1F3FE, 0x200D, 0x2640 },
+ ["woman cartwheeling: medium-light skin tone"]={ 0x1F938, 0x1F3FC, 0x200D, 0x2640 },
+ ["woman climbing"]={ 0x1F9D7, 0x200D, 0x2640 },
+ ["woman climbing: dark skin tone"]={ 0x1F9D7, 0x1F3FF, 0x200D, 0x2640 },
+ ["woman climbing: light skin tone"]={ 0x1F9D7, 0x1F3FB, 0x200D, 0x2640 },
+ ["woman climbing: medium skin tone"]={ 0x1F9D7, 0x1F3FD, 0x200D, 0x2640 },
+ ["woman climbing: medium-dark skin tone"]={ 0x1F9D7, 0x1F3FE, 0x200D, 0x2640 },
+ ["woman climbing: medium-light skin tone"]={ 0x1F9D7, 0x1F3FC, 0x200D, 0x2640 },
+ ["woman construction worker"]={ 0x1F477, 0x200D, 0x2640 },
+ ["woman construction worker: dark skin tone"]={ 0x1F477, 0x1F3FF, 0x200D, 0x2640 },
+ ["woman construction worker: light skin tone"]={ 0x1F477, 0x1F3FB, 0x200D, 0x2640 },
+ ["woman construction worker: medium skin tone"]={ 0x1F477, 0x1F3FD, 0x200D, 0x2640 },
+ ["woman construction worker: medium-dark skin tone"]={ 0x1F477, 0x1F3FE, 0x200D, 0x2640 },
+ ["woman construction worker: medium-light skin tone"]={ 0x1F477, 0x1F3FC, 0x200D, 0x2640 },
["woman cook"]={ 0x1F469, 0x200D, 0x1F373 },
["woman cook: dark skin tone"]={ 0x1F469, 0x1F3FF, 0x200D, 0x1F373 },
["woman cook: light skin tone"]={ 0x1F469, 0x1F3FB, 0x200D, 0x1F373 },
@@ -2624,36 +2325,36 @@ return {
["woman dancing: medium skin tone"]={ 0x1F483, 0x1F3FD },
["woman dancing: medium-dark skin tone"]={ 0x1F483, 0x1F3FE },
["woman dancing: medium-light skin tone"]={ 0x1F483, 0x1F3FC },
- ["woman detective"]={ 0x1F575, 0xFE0F, 0x200D, 0x2640, 0xFE0F },
- ["woman detective: dark skin tone"]={ 0x1F575, 0x1F3FF, 0x200D, 0x2640, 0xFE0F },
- ["woman detective: light skin tone"]={ 0x1F575, 0x1F3FB, 0x200D, 0x2640, 0xFE0F },
- ["woman detective: medium skin tone"]={ 0x1F575, 0x1F3FD, 0x200D, 0x2640, 0xFE0F },
- ["woman detective: medium-dark skin tone"]={ 0x1F575, 0x1F3FE, 0x200D, 0x2640, 0xFE0F },
- ["woman detective: medium-light skin tone"]={ 0x1F575, 0x1F3FC, 0x200D, 0x2640, 0xFE0F },
- ["woman elf"]={ 0x1F9DD, 0x200D, 0x2640, 0xFE0F },
- ["woman elf: dark skin tone"]={ 0x1F9DD, 0x1F3FF, 0x200D, 0x2640, 0xFE0F },
- ["woman elf: light skin tone"]={ 0x1F9DD, 0x1F3FB, 0x200D, 0x2640, 0xFE0F },
- ["woman elf: medium skin tone"]={ 0x1F9DD, 0x1F3FD, 0x200D, 0x2640, 0xFE0F },
- ["woman elf: medium-dark skin tone"]={ 0x1F9DD, 0x1F3FE, 0x200D, 0x2640, 0xFE0F },
- ["woman elf: medium-light skin tone"]={ 0x1F9DD, 0x1F3FC, 0x200D, 0x2640, 0xFE0F },
- ["woman facepalming"]={ 0x1F926, 0x200D, 0x2640, 0xFE0F },
- ["woman facepalming: dark skin tone"]={ 0x1F926, 0x1F3FF, 0x200D, 0x2640, 0xFE0F },
- ["woman facepalming: light skin tone"]={ 0x1F926, 0x1F3FB, 0x200D, 0x2640, 0xFE0F },
- ["woman facepalming: medium skin tone"]={ 0x1F926, 0x1F3FD, 0x200D, 0x2640, 0xFE0F },
- ["woman facepalming: medium-dark skin tone"]={ 0x1F926, 0x1F3FE, 0x200D, 0x2640, 0xFE0F },
- ["woman facepalming: medium-light skin tone"]={ 0x1F926, 0x1F3FC, 0x200D, 0x2640, 0xFE0F },
+ ["woman detective"]={ 0x1F575, 0x200D, 0x2640 },
+ ["woman detective: dark skin tone"]={ 0x1F575, 0x1F3FF, 0x200D, 0x2640 },
+ ["woman detective: light skin tone"]={ 0x1F575, 0x1F3FB, 0x200D, 0x2640 },
+ ["woman detective: medium skin tone"]={ 0x1F575, 0x1F3FD, 0x200D, 0x2640 },
+ ["woman detective: medium-dark skin tone"]={ 0x1F575, 0x1F3FE, 0x200D, 0x2640 },
+ ["woman detective: medium-light skin tone"]={ 0x1F575, 0x1F3FC, 0x200D, 0x2640 },
+ ["woman elf"]={ 0x1F9DD, 0x200D, 0x2640 },
+ ["woman elf: dark skin tone"]={ 0x1F9DD, 0x1F3FF, 0x200D, 0x2640 },
+ ["woman elf: light skin tone"]={ 0x1F9DD, 0x1F3FB, 0x200D, 0x2640 },
+ ["woman elf: medium skin tone"]={ 0x1F9DD, 0x1F3FD, 0x200D, 0x2640 },
+ ["woman elf: medium-dark skin tone"]={ 0x1F9DD, 0x1F3FE, 0x200D, 0x2640 },
+ ["woman elf: medium-light skin tone"]={ 0x1F9DD, 0x1F3FC, 0x200D, 0x2640 },
+ ["woman facepalming"]={ 0x1F926, 0x200D, 0x2640 },
+ ["woman facepalming: dark skin tone"]={ 0x1F926, 0x1F3FF, 0x200D, 0x2640 },
+ ["woman facepalming: light skin tone"]={ 0x1F926, 0x1F3FB, 0x200D, 0x2640 },
+ ["woman facepalming: medium skin tone"]={ 0x1F926, 0x1F3FD, 0x200D, 0x2640 },
+ ["woman facepalming: medium-dark skin tone"]={ 0x1F926, 0x1F3FE, 0x200D, 0x2640 },
+ ["woman facepalming: medium-light skin tone"]={ 0x1F926, 0x1F3FC, 0x200D, 0x2640 },
["woman factory worker"]={ 0x1F469, 0x200D, 0x1F3ED },
["woman factory worker: dark skin tone"]={ 0x1F469, 0x1F3FF, 0x200D, 0x1F3ED },
["woman factory worker: light skin tone"]={ 0x1F469, 0x1F3FB, 0x200D, 0x1F3ED },
["woman factory worker: medium skin tone"]={ 0x1F469, 0x1F3FD, 0x200D, 0x1F3ED },
["woman factory worker: medium-dark skin tone"]={ 0x1F469, 0x1F3FE, 0x200D, 0x1F3ED },
["woman factory worker: medium-light skin tone"]={ 0x1F469, 0x1F3FC, 0x200D, 0x1F3ED },
- ["woman fairy"]={ 0x1F9DA, 0x200D, 0x2640, 0xFE0F },
- ["woman fairy: dark skin tone"]={ 0x1F9DA, 0x1F3FF, 0x200D, 0x2640, 0xFE0F },
- ["woman fairy: light skin tone"]={ 0x1F9DA, 0x1F3FB, 0x200D, 0x2640, 0xFE0F },
- ["woman fairy: medium skin tone"]={ 0x1F9DA, 0x1F3FD, 0x200D, 0x2640, 0xFE0F },
- ["woman fairy: medium-dark skin tone"]={ 0x1F9DA, 0x1F3FE, 0x200D, 0x2640, 0xFE0F },
- ["woman fairy: medium-light skin tone"]={ 0x1F9DA, 0x1F3FC, 0x200D, 0x2640, 0xFE0F },
+ ["woman fairy"]={ 0x1F9DA, 0x200D, 0x2640 },
+ ["woman fairy: dark skin tone"]={ 0x1F9DA, 0x1F3FF, 0x200D, 0x2640 },
+ ["woman fairy: light skin tone"]={ 0x1F9DA, 0x1F3FB, 0x200D, 0x2640 },
+ ["woman fairy: medium skin tone"]={ 0x1F9DA, 0x1F3FD, 0x200D, 0x2640 },
+ ["woman fairy: medium-dark skin tone"]={ 0x1F9DA, 0x1F3FE, 0x200D, 0x2640 },
+ ["woman fairy: medium-light skin tone"]={ 0x1F9DA, 0x1F3FC, 0x200D, 0x2640 },
["woman farmer"]={ 0x1F469, 0x200D, 0x1F33E },
["woman farmer: dark skin tone"]={ 0x1F469, 0x1F3FF, 0x200D, 0x1F33E },
["woman farmer: light skin tone"]={ 0x1F469, 0x1F3FB, 0x200D, 0x1F33E },
@@ -2666,229 +2367,193 @@ return {
["woman firefighter: medium skin tone"]={ 0x1F469, 0x1F3FD, 0x200D, 0x1F692 },
["woman firefighter: medium-dark skin tone"]={ 0x1F469, 0x1F3FE, 0x200D, 0x1F692 },
["woman firefighter: medium-light skin tone"]={ 0x1F469, 0x1F3FC, 0x200D, 0x1F692 },
- ["woman frowning"]={ 0x1F64D, 0x200D, 0x2640, 0xFE0F },
- ["woman frowning: dark skin tone"]={ 0x1F64D, 0x1F3FF, 0x200D, 0x2640, 0xFE0F },
- ["woman frowning: light skin tone"]={ 0x1F64D, 0x1F3FB, 0x200D, 0x2640, 0xFE0F },
- ["woman frowning: medium skin tone"]={ 0x1F64D, 0x1F3FD, 0x200D, 0x2640, 0xFE0F },
- ["woman frowning: medium-dark skin tone"]={ 0x1F64D, 0x1F3FE, 0x200D, 0x2640, 0xFE0F },
- ["woman frowning: medium-light skin tone"]={ 0x1F64D, 0x1F3FC, 0x200D, 0x2640, 0xFE0F },
- ["woman genie"]={ 0x1F9DE, 0x200D, 0x2640, 0xFE0F },
- ["woman gesturing no"]={ 0x1F645, 0x200D, 0x2640, 0xFE0F },
- ["woman gesturing no: dark skin tone"]={ 0x1F645, 0x1F3FF, 0x200D, 0x2640, 0xFE0F },
- ["woman gesturing no: light skin tone"]={ 0x1F645, 0x1F3FB, 0x200D, 0x2640, 0xFE0F },
- ["woman gesturing no: medium skin tone"]={ 0x1F645, 0x1F3FD, 0x200D, 0x2640, 0xFE0F },
- ["woman gesturing no: medium-dark skin tone"]={ 0x1F645, 0x1F3FE, 0x200D, 0x2640, 0xFE0F },
- ["woman gesturing no: medium-light skin tone"]={ 0x1F645, 0x1F3FC, 0x200D, 0x2640, 0xFE0F },
- ["woman gesturing ok"]={ 0x1F646, 0x200D, 0x2640, 0xFE0F },
- ["woman gesturing ok: dark skin tone"]={ 0x1F646, 0x1F3FF, 0x200D, 0x2640, 0xFE0F },
- ["woman gesturing ok: light skin tone"]={ 0x1F646, 0x1F3FB, 0x200D, 0x2640, 0xFE0F },
- ["woman gesturing ok: medium skin tone"]={ 0x1F646, 0x1F3FD, 0x200D, 0x2640, 0xFE0F },
- ["woman gesturing ok: medium-dark skin tone"]={ 0x1F646, 0x1F3FE, 0x200D, 0x2640, 0xFE0F },
- ["woman gesturing ok: medium-light skin tone"]={ 0x1F646, 0x1F3FC, 0x200D, 0x2640, 0xFE0F },
- ["woman getting haircut"]={ 0x1F487, 0x200D, 0x2640, 0xFE0F },
- ["woman getting haircut: dark skin tone"]={ 0x1F487, 0x1F3FF, 0x200D, 0x2640, 0xFE0F },
- ["woman getting haircut: light skin tone"]={ 0x1F487, 0x1F3FB, 0x200D, 0x2640, 0xFE0F },
- ["woman getting haircut: medium skin tone"]={ 0x1F487, 0x1F3FD, 0x200D, 0x2640, 0xFE0F },
- ["woman getting haircut: medium-dark skin tone"]={ 0x1F487, 0x1F3FE, 0x200D, 0x2640, 0xFE0F },
- ["woman getting haircut: medium-light skin tone"]={ 0x1F487, 0x1F3FC, 0x200D, 0x2640, 0xFE0F },
- ["woman getting massage"]={ 0x1F486, 0x200D, 0x2640, 0xFE0F },
- ["woman getting massage: dark skin tone"]={ 0x1F486, 0x1F3FF, 0x200D, 0x2640, 0xFE0F },
- ["woman getting massage: light skin tone"]={ 0x1F486, 0x1F3FB, 0x200D, 0x2640, 0xFE0F },
- ["woman getting massage: medium skin tone"]={ 0x1F486, 0x1F3FD, 0x200D, 0x2640, 0xFE0F },
- ["woman getting massage: medium-dark skin tone"]={ 0x1F486, 0x1F3FE, 0x200D, 0x2640, 0xFE0F },
- ["woman getting massage: medium-light skin tone"]={ 0x1F486, 0x1F3FC, 0x200D, 0x2640, 0xFE0F },
- ["woman golfing"]={ 0x1F3CC, 0xFE0F, 0x200D, 0x2640, 0xFE0F },
- ["woman golfing: dark skin tone"]={ 0x1F3CC, 0x1F3FF, 0x200D, 0x2640, 0xFE0F },
- ["woman golfing: light skin tone"]={ 0x1F3CC, 0x1F3FB, 0x200D, 0x2640, 0xFE0F },
- ["woman golfing: medium skin tone"]={ 0x1F3CC, 0x1F3FD, 0x200D, 0x2640, 0xFE0F },
- ["woman golfing: medium-dark skin tone"]={ 0x1F3CC, 0x1F3FE, 0x200D, 0x2640, 0xFE0F },
- ["woman golfing: medium-light skin tone"]={ 0x1F3CC, 0x1F3FC, 0x200D, 0x2640, 0xFE0F },
- ["woman guard"]={ 0x1F482, 0x200D, 0x2640, 0xFE0F },
- ["woman guard: dark skin tone"]={ 0x1F482, 0x1F3FF, 0x200D, 0x2640, 0xFE0F },
- ["woman guard: light skin tone"]={ 0x1F482, 0x1F3FB, 0x200D, 0x2640, 0xFE0F },
- ["woman guard: medium skin tone"]={ 0x1F482, 0x1F3FD, 0x200D, 0x2640, 0xFE0F },
- ["woman guard: medium-dark skin tone"]={ 0x1F482, 0x1F3FE, 0x200D, 0x2640, 0xFE0F },
- ["woman guard: medium-light skin tone"]={ 0x1F482, 0x1F3FC, 0x200D, 0x2640, 0xFE0F },
- ["woman health worker"]={ 0x1F469, 0x200D, 0x2695, 0xFE0F },
- ["woman health worker: dark skin tone"]={ 0x1F469, 0x1F3FF, 0x200D, 0x2695, 0xFE0F },
- ["woman health worker: light skin tone"]={ 0x1F469, 0x1F3FB, 0x200D, 0x2695, 0xFE0F },
- ["woman health worker: medium skin tone"]={ 0x1F469, 0x1F3FD, 0x200D, 0x2695, 0xFE0F },
- ["woman health worker: medium-dark skin tone"]={ 0x1F469, 0x1F3FE, 0x200D, 0x2695, 0xFE0F },
- ["woman health worker: medium-light skin tone"]={ 0x1F469, 0x1F3FC, 0x200D, 0x2695, 0xFE0F },
- ["woman in lotus position"]={ 0x1F9D8, 0x200D, 0x2640, 0xFE0F },
- ["woman in lotus position: dark skin tone"]={ 0x1F9D8, 0x1F3FF, 0x200D, 0x2640, 0xFE0F },
- ["woman in lotus position: light skin tone"]={ 0x1F9D8, 0x1F3FB, 0x200D, 0x2640, 0xFE0F },
- ["woman in lotus position: medium skin tone"]={ 0x1F9D8, 0x1F3FD, 0x200D, 0x2640, 0xFE0F },
- ["woman in lotus position: medium-dark skin tone"]={ 0x1F9D8, 0x1F3FE, 0x200D, 0x2640, 0xFE0F },
- ["woman in lotus position: medium-light skin tone"]={ 0x1F9D8, 0x1F3FC, 0x200D, 0x2640, 0xFE0F },
- ["woman in manual wheelchair"]={ 0x1F469, 0x200D, 0x1F9BD },
- ["woman in manual wheelchair: dark skin tone"]={ 0x1F469, 0x1F3FF, 0x200D, 0x1F9BD },
- ["woman in manual wheelchair: light skin tone"]={ 0x1F469, 0x1F3FB, 0x200D, 0x1F9BD },
- ["woman in manual wheelchair: medium skin tone"]={ 0x1F469, 0x1F3FD, 0x200D, 0x1F9BD },
- ["woman in manual wheelchair: medium-dark skin tone"]={ 0x1F469, 0x1F3FE, 0x200D, 0x1F9BD },
- ["woman in manual wheelchair: medium-light skin tone"]={ 0x1F469, 0x1F3FC, 0x200D, 0x1F9BD },
- ["woman in motorized wheelchair"]={ 0x1F469, 0x200D, 0x1F9BC },
- ["woman in motorized wheelchair: dark skin tone"]={ 0x1F469, 0x1F3FF, 0x200D, 0x1F9BC },
- ["woman in motorized wheelchair: light skin tone"]={ 0x1F469, 0x1F3FB, 0x200D, 0x1F9BC },
- ["woman in motorized wheelchair: medium skin tone"]={ 0x1F469, 0x1F3FD, 0x200D, 0x1F9BC },
- ["woman in motorized wheelchair: medium-dark skin tone"]={ 0x1F469, 0x1F3FE, 0x200D, 0x1F9BC },
- ["woman in motorized wheelchair: medium-light skin tone"]={ 0x1F469, 0x1F3FC, 0x200D, 0x1F9BC },
- ["woman in steamy room"]={ 0x1F9D6, 0x200D, 0x2640, 0xFE0F },
- ["woman in steamy room: dark skin tone"]={ 0x1F9D6, 0x1F3FF, 0x200D, 0x2640, 0xFE0F },
- ["woman in steamy room: light skin tone"]={ 0x1F9D6, 0x1F3FB, 0x200D, 0x2640, 0xFE0F },
- ["woman in steamy room: medium skin tone"]={ 0x1F9D6, 0x1F3FD, 0x200D, 0x2640, 0xFE0F },
- ["woman in steamy room: medium-dark skin tone"]={ 0x1F9D6, 0x1F3FE, 0x200D, 0x2640, 0xFE0F },
- ["woman in steamy room: medium-light skin tone"]={ 0x1F9D6, 0x1F3FC, 0x200D, 0x2640, 0xFE0F },
- ["woman judge"]={ 0x1F469, 0x200D, 0x2696, 0xFE0F },
- ["woman judge: dark skin tone"]={ 0x1F469, 0x1F3FF, 0x200D, 0x2696, 0xFE0F },
- ["woman judge: light skin tone"]={ 0x1F469, 0x1F3FB, 0x200D, 0x2696, 0xFE0F },
- ["woman judge: medium skin tone"]={ 0x1F469, 0x1F3FD, 0x200D, 0x2696, 0xFE0F },
- ["woman judge: medium-dark skin tone"]={ 0x1F469, 0x1F3FE, 0x200D, 0x2696, 0xFE0F },
- ["woman judge: medium-light skin tone"]={ 0x1F469, 0x1F3FC, 0x200D, 0x2696, 0xFE0F },
- ["woman juggling"]={ 0x1F939, 0x200D, 0x2640, 0xFE0F },
- ["woman juggling: dark skin tone"]={ 0x1F939, 0x1F3FF, 0x200D, 0x2640, 0xFE0F },
- ["woman juggling: light skin tone"]={ 0x1F939, 0x1F3FB, 0x200D, 0x2640, 0xFE0F },
- ["woman juggling: medium skin tone"]={ 0x1F939, 0x1F3FD, 0x200D, 0x2640, 0xFE0F },
- ["woman juggling: medium-dark skin tone"]={ 0x1F939, 0x1F3FE, 0x200D, 0x2640, 0xFE0F },
- ["woman juggling: medium-light skin tone"]={ 0x1F939, 0x1F3FC, 0x200D, 0x2640, 0xFE0F },
- ["woman kneeling"]={ 0x1F9CE, 0x200D, 0x2640, 0xFE0F },
- ["woman kneeling: dark skin tone"]={ 0x1F9CE, 0x1F3FF, 0x200D, 0x2640, 0xFE0F },
- ["woman kneeling: light skin tone"]={ 0x1F9CE, 0x1F3FB, 0x200D, 0x2640, 0xFE0F },
- ["woman kneeling: medium skin tone"]={ 0x1F9CE, 0x1F3FD, 0x200D, 0x2640, 0xFE0F },
- ["woman kneeling: medium-dark skin tone"]={ 0x1F9CE, 0x1F3FE, 0x200D, 0x2640, 0xFE0F },
- ["woman kneeling: medium-light skin tone"]={ 0x1F9CE, 0x1F3FC, 0x200D, 0x2640, 0xFE0F },
- ["woman lifting weights"]={ 0x1F3CB, 0xFE0F, 0x200D, 0x2640, 0xFE0F },
- ["woman lifting weights: dark skin tone"]={ 0x1F3CB, 0x1F3FF, 0x200D, 0x2640, 0xFE0F },
- ["woman lifting weights: light skin tone"]={ 0x1F3CB, 0x1F3FB, 0x200D, 0x2640, 0xFE0F },
- ["woman lifting weights: medium skin tone"]={ 0x1F3CB, 0x1F3FD, 0x200D, 0x2640, 0xFE0F },
- ["woman lifting weights: medium-dark skin tone"]={ 0x1F3CB, 0x1F3FE, 0x200D, 0x2640, 0xFE0F },
- ["woman lifting weights: medium-light skin tone"]={ 0x1F3CB, 0x1F3FC, 0x200D, 0x2640, 0xFE0F },
- ["woman mage"]={ 0x1F9D9, 0x200D, 0x2640, 0xFE0F },
- ["woman mage: dark skin tone"]={ 0x1F9D9, 0x1F3FF, 0x200D, 0x2640, 0xFE0F },
- ["woman mage: light skin tone"]={ 0x1F9D9, 0x1F3FB, 0x200D, 0x2640, 0xFE0F },
- ["woman mage: medium skin tone"]={ 0x1F9D9, 0x1F3FD, 0x200D, 0x2640, 0xFE0F },
- ["woman mage: medium-dark skin tone"]={ 0x1F9D9, 0x1F3FE, 0x200D, 0x2640, 0xFE0F },
- ["woman mage: medium-light skin tone"]={ 0x1F9D9, 0x1F3FC, 0x200D, 0x2640, 0xFE0F },
+ ["woman frowning"]={ 0x1F64D, 0x200D, 0x2640 },
+ ["woman frowning: dark skin tone"]={ 0x1F64D, 0x1F3FF, 0x200D, 0x2640 },
+ ["woman frowning: light skin tone"]={ 0x1F64D, 0x1F3FB, 0x200D, 0x2640 },
+ ["woman frowning: medium skin tone"]={ 0x1F64D, 0x1F3FD, 0x200D, 0x2640 },
+ ["woman frowning: medium-dark skin tone"]={ 0x1F64D, 0x1F3FE, 0x200D, 0x2640 },
+ ["woman frowning: medium-light skin tone"]={ 0x1F64D, 0x1F3FC, 0x200D, 0x2640 },
+ ["woman genie"]={ 0x1F9DE, 0x200D, 0x2640 },
+ ["woman gesturing no"]={ 0x1F645, 0x200D, 0x2640 },
+ ["woman gesturing no: dark skin tone"]={ 0x1F645, 0x1F3FF, 0x200D, 0x2640 },
+ ["woman gesturing no: light skin tone"]={ 0x1F645, 0x1F3FB, 0x200D, 0x2640 },
+ ["woman gesturing no: medium skin tone"]={ 0x1F645, 0x1F3FD, 0x200D, 0x2640 },
+ ["woman gesturing no: medium-dark skin tone"]={ 0x1F645, 0x1F3FE, 0x200D, 0x2640 },
+ ["woman gesturing no: medium-light skin tone"]={ 0x1F645, 0x1F3FC, 0x200D, 0x2640 },
+ ["woman gesturing ok"]={ 0x1F646, 0x200D, 0x2640 },
+ ["woman gesturing ok: dark skin tone"]={ 0x1F646, 0x1F3FF, 0x200D, 0x2640 },
+ ["woman gesturing ok: light skin tone"]={ 0x1F646, 0x1F3FB, 0x200D, 0x2640 },
+ ["woman gesturing ok: medium skin tone"]={ 0x1F646, 0x1F3FD, 0x200D, 0x2640 },
+ ["woman gesturing ok: medium-dark skin tone"]={ 0x1F646, 0x1F3FE, 0x200D, 0x2640 },
+ ["woman gesturing ok: medium-light skin tone"]={ 0x1F646, 0x1F3FC, 0x200D, 0x2640 },
+ ["woman getting haircut"]={ 0x1F487, 0x200D, 0x2640 },
+ ["woman getting haircut: dark skin tone"]={ 0x1F487, 0x1F3FF, 0x200D, 0x2640 },
+ ["woman getting haircut: light skin tone"]={ 0x1F487, 0x1F3FB, 0x200D, 0x2640 },
+ ["woman getting haircut: medium skin tone"]={ 0x1F487, 0x1F3FD, 0x200D, 0x2640 },
+ ["woman getting haircut: medium-dark skin tone"]={ 0x1F487, 0x1F3FE, 0x200D, 0x2640 },
+ ["woman getting haircut: medium-light skin tone"]={ 0x1F487, 0x1F3FC, 0x200D, 0x2640 },
+ ["woman getting massage"]={ 0x1F486, 0x200D, 0x2640 },
+ ["woman getting massage: dark skin tone"]={ 0x1F486, 0x1F3FF, 0x200D, 0x2640 },
+ ["woman getting massage: light skin tone"]={ 0x1F486, 0x1F3FB, 0x200D, 0x2640 },
+ ["woman getting massage: medium skin tone"]={ 0x1F486, 0x1F3FD, 0x200D, 0x2640 },
+ ["woman getting massage: medium-dark skin tone"]={ 0x1F486, 0x1F3FE, 0x200D, 0x2640 },
+ ["woman getting massage: medium-light skin tone"]={ 0x1F486, 0x1F3FC, 0x200D, 0x2640 },
+ ["woman golfing"]={ 0x1F3CC, 0x200D, 0x2640 },
+ ["woman golfing: dark skin tone"]={ 0x1F3CC, 0x1F3FF, 0x200D, 0x2640 },
+ ["woman golfing: light skin tone"]={ 0x1F3CC, 0x1F3FB, 0x200D, 0x2640 },
+ ["woman golfing: medium skin tone"]={ 0x1F3CC, 0x1F3FD, 0x200D, 0x2640 },
+ ["woman golfing: medium-dark skin tone"]={ 0x1F3CC, 0x1F3FE, 0x200D, 0x2640 },
+ ["woman golfing: medium-light skin tone"]={ 0x1F3CC, 0x1F3FC, 0x200D, 0x2640 },
+ ["woman guard"]={ 0x1F482, 0x200D, 0x2640 },
+ ["woman guard: dark skin tone"]={ 0x1F482, 0x1F3FF, 0x200D, 0x2640 },
+ ["woman guard: light skin tone"]={ 0x1F482, 0x1F3FB, 0x200D, 0x2640 },
+ ["woman guard: medium skin tone"]={ 0x1F482, 0x1F3FD, 0x200D, 0x2640 },
+ ["woman guard: medium-dark skin tone"]={ 0x1F482, 0x1F3FE, 0x200D, 0x2640 },
+ ["woman guard: medium-light skin tone"]={ 0x1F482, 0x1F3FC, 0x200D, 0x2640 },
+ ["woman health worker"]={ 0x1F469, 0x200D, 0x2695 },
+ ["woman health worker: dark skin tone"]={ 0x1F469, 0x1F3FF, 0x200D, 0x2695 },
+ ["woman health worker: light skin tone"]={ 0x1F469, 0x1F3FB, 0x200D, 0x2695 },
+ ["woman health worker: medium skin tone"]={ 0x1F469, 0x1F3FD, 0x200D, 0x2695 },
+ ["woman health worker: medium-dark skin tone"]={ 0x1F469, 0x1F3FE, 0x200D, 0x2695 },
+ ["woman health worker: medium-light skin tone"]={ 0x1F469, 0x1F3FC, 0x200D, 0x2695 },
+ ["woman in lotus position"]={ 0x1F9D8, 0x200D, 0x2640 },
+ ["woman in lotus position: dark skin tone"]={ 0x1F9D8, 0x1F3FF, 0x200D, 0x2640 },
+ ["woman in lotus position: light skin tone"]={ 0x1F9D8, 0x1F3FB, 0x200D, 0x2640 },
+ ["woman in lotus position: medium skin tone"]={ 0x1F9D8, 0x1F3FD, 0x200D, 0x2640 },
+ ["woman in lotus position: medium-dark skin tone"]={ 0x1F9D8, 0x1F3FE, 0x200D, 0x2640 },
+ ["woman in lotus position: medium-light skin tone"]={ 0x1F9D8, 0x1F3FC, 0x200D, 0x2640 },
+ ["woman in steamy room"]={ 0x1F9D6, 0x200D, 0x2640 },
+ ["woman in steamy room: dark skin tone"]={ 0x1F9D6, 0x1F3FF, 0x200D, 0x2640 },
+ ["woman in steamy room: light skin tone"]={ 0x1F9D6, 0x1F3FB, 0x200D, 0x2640 },
+ ["woman in steamy room: medium skin tone"]={ 0x1F9D6, 0x1F3FD, 0x200D, 0x2640 },
+ ["woman in steamy room: medium-dark skin tone"]={ 0x1F9D6, 0x1F3FE, 0x200D, 0x2640 },
+ ["woman in steamy room: medium-light skin tone"]={ 0x1F9D6, 0x1F3FC, 0x200D, 0x2640 },
+ ["woman judge"]={ 0x1F469, 0x200D, 0x2696 },
+ ["woman judge: dark skin tone"]={ 0x1F469, 0x1F3FF, 0x200D, 0x2696 },
+ ["woman judge: light skin tone"]={ 0x1F469, 0x1F3FB, 0x200D, 0x2696 },
+ ["woman judge: medium skin tone"]={ 0x1F469, 0x1F3FD, 0x200D, 0x2696 },
+ ["woman judge: medium-dark skin tone"]={ 0x1F469, 0x1F3FE, 0x200D, 0x2696 },
+ ["woman judge: medium-light skin tone"]={ 0x1F469, 0x1F3FC, 0x200D, 0x2696 },
+ ["woman juggling"]={ 0x1F939, 0x200D, 0x2640 },
+ ["woman juggling: dark skin tone"]={ 0x1F939, 0x1F3FF, 0x200D, 0x2640 },
+ ["woman juggling: light skin tone"]={ 0x1F939, 0x1F3FB, 0x200D, 0x2640 },
+ ["woman juggling: medium skin tone"]={ 0x1F939, 0x1F3FD, 0x200D, 0x2640 },
+ ["woman juggling: medium-dark skin tone"]={ 0x1F939, 0x1F3FE, 0x200D, 0x2640 },
+ ["woman juggling: medium-light skin tone"]={ 0x1F939, 0x1F3FC, 0x200D, 0x2640 },
+ ["woman lifting weights"]={ 0x1F3CB, 0x200D, 0x2640 },
+ ["woman lifting weights: dark skin tone"]={ 0x1F3CB, 0x1F3FF, 0x200D, 0x2640 },
+ ["woman lifting weights: light skin tone"]={ 0x1F3CB, 0x1F3FB, 0x200D, 0x2640 },
+ ["woman lifting weights: medium skin tone"]={ 0x1F3CB, 0x1F3FD, 0x200D, 0x2640 },
+ ["woman lifting weights: medium-dark skin tone"]={ 0x1F3CB, 0x1F3FE, 0x200D, 0x2640 },
+ ["woman lifting weights: medium-light skin tone"]={ 0x1F3CB, 0x1F3FC, 0x200D, 0x2640 },
+ ["woman mage"]={ 0x1F9D9, 0x200D, 0x2640 },
+ ["woman mage: dark skin tone"]={ 0x1F9D9, 0x1F3FF, 0x200D, 0x2640 },
+ ["woman mage: light skin tone"]={ 0x1F9D9, 0x1F3FB, 0x200D, 0x2640 },
+ ["woman mage: medium skin tone"]={ 0x1F9D9, 0x1F3FD, 0x200D, 0x2640 },
+ ["woman mage: medium-dark skin tone"]={ 0x1F9D9, 0x1F3FE, 0x200D, 0x2640 },
+ ["woman mage: medium-light skin tone"]={ 0x1F9D9, 0x1F3FC, 0x200D, 0x2640 },
["woman mechanic"]={ 0x1F469, 0x200D, 0x1F527 },
["woman mechanic: dark skin tone"]={ 0x1F469, 0x1F3FF, 0x200D, 0x1F527 },
["woman mechanic: light skin tone"]={ 0x1F469, 0x1F3FB, 0x200D, 0x1F527 },
["woman mechanic: medium skin tone"]={ 0x1F469, 0x1F3FD, 0x200D, 0x1F527 },
["woman mechanic: medium-dark skin tone"]={ 0x1F469, 0x1F3FE, 0x200D, 0x1F527 },
["woman mechanic: medium-light skin tone"]={ 0x1F469, 0x1F3FC, 0x200D, 0x1F527 },
- ["woman mountain biking"]={ 0x1F6B5, 0x200D, 0x2640, 0xFE0F },
- ["woman mountain biking: dark skin tone"]={ 0x1F6B5, 0x1F3FF, 0x200D, 0x2640, 0xFE0F },
- ["woman mountain biking: light skin tone"]={ 0x1F6B5, 0x1F3FB, 0x200D, 0x2640, 0xFE0F },
- ["woman mountain biking: medium skin tone"]={ 0x1F6B5, 0x1F3FD, 0x200D, 0x2640, 0xFE0F },
- ["woman mountain biking: medium-dark skin tone"]={ 0x1F6B5, 0x1F3FE, 0x200D, 0x2640, 0xFE0F },
- ["woman mountain biking: medium-light skin tone"]={ 0x1F6B5, 0x1F3FC, 0x200D, 0x2640, 0xFE0F },
+ ["woman mountain biking"]={ 0x1F6B5, 0x200D, 0x2640 },
+ ["woman mountain biking: dark skin tone"]={ 0x1F6B5, 0x1F3FF, 0x200D, 0x2640 },
+ ["woman mountain biking: light skin tone"]={ 0x1F6B5, 0x1F3FB, 0x200D, 0x2640 },
+ ["woman mountain biking: medium skin tone"]={ 0x1F6B5, 0x1F3FD, 0x200D, 0x2640 },
+ ["woman mountain biking: medium-dark skin tone"]={ 0x1F6B5, 0x1F3FE, 0x200D, 0x2640 },
+ ["woman mountain biking: medium-light skin tone"]={ 0x1F6B5, 0x1F3FC, 0x200D, 0x2640 },
["woman office worker"]={ 0x1F469, 0x200D, 0x1F4BC },
["woman office worker: dark skin tone"]={ 0x1F469, 0x1F3FF, 0x200D, 0x1F4BC },
["woman office worker: light skin tone"]={ 0x1F469, 0x1F3FB, 0x200D, 0x1F4BC },
["woman office worker: medium skin tone"]={ 0x1F469, 0x1F3FD, 0x200D, 0x1F4BC },
["woman office worker: medium-dark skin tone"]={ 0x1F469, 0x1F3FE, 0x200D, 0x1F4BC },
["woman office worker: medium-light skin tone"]={ 0x1F469, 0x1F3FC, 0x200D, 0x1F4BC },
- ["woman pilot"]={ 0x1F469, 0x200D, 0x2708, 0xFE0F },
- ["woman pilot: dark skin tone"]={ 0x1F469, 0x1F3FF, 0x200D, 0x2708, 0xFE0F },
- ["woman pilot: light skin tone"]={ 0x1F469, 0x1F3FB, 0x200D, 0x2708, 0xFE0F },
- ["woman pilot: medium skin tone"]={ 0x1F469, 0x1F3FD, 0x200D, 0x2708, 0xFE0F },
- ["woman pilot: medium-dark skin tone"]={ 0x1F469, 0x1F3FE, 0x200D, 0x2708, 0xFE0F },
- ["woman pilot: medium-light skin tone"]={ 0x1F469, 0x1F3FC, 0x200D, 0x2708, 0xFE0F },
- ["woman playing handball"]={ 0x1F93E, 0x200D, 0x2640, 0xFE0F },
- ["woman playing handball: dark skin tone"]={ 0x1F93E, 0x1F3FF, 0x200D, 0x2640, 0xFE0F },
- ["woman playing handball: light skin tone"]={ 0x1F93E, 0x1F3FB, 0x200D, 0x2640, 0xFE0F },
- ["woman playing handball: medium skin tone"]={ 0x1F93E, 0x1F3FD, 0x200D, 0x2640, 0xFE0F },
- ["woman playing handball: medium-dark skin tone"]={ 0x1F93E, 0x1F3FE, 0x200D, 0x2640, 0xFE0F },
- ["woman playing handball: medium-light skin tone"]={ 0x1F93E, 0x1F3FC, 0x200D, 0x2640, 0xFE0F },
- ["woman playing water polo"]={ 0x1F93D, 0x200D, 0x2640, 0xFE0F },
- ["woman playing water polo: dark skin tone"]={ 0x1F93D, 0x1F3FF, 0x200D, 0x2640, 0xFE0F },
- ["woman playing water polo: light skin tone"]={ 0x1F93D, 0x1F3FB, 0x200D, 0x2640, 0xFE0F },
- ["woman playing water polo: medium skin tone"]={ 0x1F93D, 0x1F3FD, 0x200D, 0x2640, 0xFE0F },
- ["woman playing water polo: medium-dark skin tone"]={ 0x1F93D, 0x1F3FE, 0x200D, 0x2640, 0xFE0F },
- ["woman playing water polo: medium-light skin tone"]={ 0x1F93D, 0x1F3FC, 0x200D, 0x2640, 0xFE0F },
- ["woman police officer"]={ 0x1F46E, 0x200D, 0x2640, 0xFE0F },
- ["woman police officer: dark skin tone"]={ 0x1F46E, 0x1F3FF, 0x200D, 0x2640, 0xFE0F },
- ["woman police officer: light skin tone"]={ 0x1F46E, 0x1F3FB, 0x200D, 0x2640, 0xFE0F },
- ["woman police officer: medium skin tone"]={ 0x1F46E, 0x1F3FD, 0x200D, 0x2640, 0xFE0F },
- ["woman police officer: medium-dark skin tone"]={ 0x1F46E, 0x1F3FE, 0x200D, 0x2640, 0xFE0F },
- ["woman police officer: medium-light skin tone"]={ 0x1F46E, 0x1F3FC, 0x200D, 0x2640, 0xFE0F },
- ["woman pouting"]={ 0x1F64E, 0x200D, 0x2640, 0xFE0F },
- ["woman pouting: dark skin tone"]={ 0x1F64E, 0x1F3FF, 0x200D, 0x2640, 0xFE0F },
- ["woman pouting: light skin tone"]={ 0x1F64E, 0x1F3FB, 0x200D, 0x2640, 0xFE0F },
- ["woman pouting: medium skin tone"]={ 0x1F64E, 0x1F3FD, 0x200D, 0x2640, 0xFE0F },
- ["woman pouting: medium-dark skin tone"]={ 0x1F64E, 0x1F3FE, 0x200D, 0x2640, 0xFE0F },
- ["woman pouting: medium-light skin tone"]={ 0x1F64E, 0x1F3FC, 0x200D, 0x2640, 0xFE0F },
- ["woman raising hand"]={ 0x1F64B, 0x200D, 0x2640, 0xFE0F },
- ["woman raising hand: dark skin tone"]={ 0x1F64B, 0x1F3FF, 0x200D, 0x2640, 0xFE0F },
- ["woman raising hand: light skin tone"]={ 0x1F64B, 0x1F3FB, 0x200D, 0x2640, 0xFE0F },
- ["woman raising hand: medium skin tone"]={ 0x1F64B, 0x1F3FD, 0x200D, 0x2640, 0xFE0F },
- ["woman raising hand: medium-dark skin tone"]={ 0x1F64B, 0x1F3FE, 0x200D, 0x2640, 0xFE0F },
- ["woman raising hand: medium-light skin tone"]={ 0x1F64B, 0x1F3FC, 0x200D, 0x2640, 0xFE0F },
- ["woman rowing boat"]={ 0x1F6A3, 0x200D, 0x2640, 0xFE0F },
- ["woman rowing boat: dark skin tone"]={ 0x1F6A3, 0x1F3FF, 0x200D, 0x2640, 0xFE0F },
- ["woman rowing boat: light skin tone"]={ 0x1F6A3, 0x1F3FB, 0x200D, 0x2640, 0xFE0F },
- ["woman rowing boat: medium skin tone"]={ 0x1F6A3, 0x1F3FD, 0x200D, 0x2640, 0xFE0F },
- ["woman rowing boat: medium-dark skin tone"]={ 0x1F6A3, 0x1F3FE, 0x200D, 0x2640, 0xFE0F },
- ["woman rowing boat: medium-light skin tone"]={ 0x1F6A3, 0x1F3FC, 0x200D, 0x2640, 0xFE0F },
- ["woman running"]={ 0x1F3C3, 0x200D, 0x2640, 0xFE0F },
- ["woman running: dark skin tone"]={ 0x1F3C3, 0x1F3FF, 0x200D, 0x2640, 0xFE0F },
- ["woman running: light skin tone"]={ 0x1F3C3, 0x1F3FB, 0x200D, 0x2640, 0xFE0F },
- ["woman running: medium skin tone"]={ 0x1F3C3, 0x1F3FD, 0x200D, 0x2640, 0xFE0F },
- ["woman running: medium-dark skin tone"]={ 0x1F3C3, 0x1F3FE, 0x200D, 0x2640, 0xFE0F },
- ["woman running: medium-light skin tone"]={ 0x1F3C3, 0x1F3FC, 0x200D, 0x2640, 0xFE0F },
+ ["woman pilot"]={ 0x1F469, 0x200D, 0x2708 },
+ ["woman pilot: dark skin tone"]={ 0x1F469, 0x1F3FF, 0x200D, 0x2708 },
+ ["woman pilot: light skin tone"]={ 0x1F469, 0x1F3FB, 0x200D, 0x2708 },
+ ["woman pilot: medium skin tone"]={ 0x1F469, 0x1F3FD, 0x200D, 0x2708 },
+ ["woman pilot: medium-dark skin tone"]={ 0x1F469, 0x1F3FE, 0x200D, 0x2708 },
+ ["woman pilot: medium-light skin tone"]={ 0x1F469, 0x1F3FC, 0x200D, 0x2708 },
+ ["woman playing handball"]={ 0x1F93E, 0x200D, 0x2640 },
+ ["woman playing handball: dark skin tone"]={ 0x1F93E, 0x1F3FF, 0x200D, 0x2640 },
+ ["woman playing handball: light skin tone"]={ 0x1F93E, 0x1F3FB, 0x200D, 0x2640 },
+ ["woman playing handball: medium skin tone"]={ 0x1F93E, 0x1F3FD, 0x200D, 0x2640 },
+ ["woman playing handball: medium-dark skin tone"]={ 0x1F93E, 0x1F3FE, 0x200D, 0x2640 },
+ ["woman playing handball: medium-light skin tone"]={ 0x1F93E, 0x1F3FC, 0x200D, 0x2640 },
+ ["woman playing water polo"]={ 0x1F93D, 0x200D, 0x2640 },
+ ["woman playing water polo: dark skin tone"]={ 0x1F93D, 0x1F3FF, 0x200D, 0x2640 },
+ ["woman playing water polo: light skin tone"]={ 0x1F93D, 0x1F3FB, 0x200D, 0x2640 },
+ ["woman playing water polo: medium skin tone"]={ 0x1F93D, 0x1F3FD, 0x200D, 0x2640 },
+ ["woman playing water polo: medium-dark skin tone"]={ 0x1F93D, 0x1F3FE, 0x200D, 0x2640 },
+ ["woman playing water polo: medium-light skin tone"]={ 0x1F93D, 0x1F3FC, 0x200D, 0x2640 },
+ ["woman police officer"]={ 0x1F46E, 0x200D, 0x2640 },
+ ["woman police officer: dark skin tone"]={ 0x1F46E, 0x1F3FF, 0x200D, 0x2640 },
+ ["woman police officer: light skin tone"]={ 0x1F46E, 0x1F3FB, 0x200D, 0x2640 },
+ ["woman police officer: medium skin tone"]={ 0x1F46E, 0x1F3FD, 0x200D, 0x2640 },
+ ["woman police officer: medium-dark skin tone"]={ 0x1F46E, 0x1F3FE, 0x200D, 0x2640 },
+ ["woman police officer: medium-light skin tone"]={ 0x1F46E, 0x1F3FC, 0x200D, 0x2640 },
+ ["woman pouting"]={ 0x1F64E, 0x200D, 0x2640 },
+ ["woman pouting: dark skin tone"]={ 0x1F64E, 0x1F3FF, 0x200D, 0x2640 },
+ ["woman pouting: light skin tone"]={ 0x1F64E, 0x1F3FB, 0x200D, 0x2640 },
+ ["woman pouting: medium skin tone"]={ 0x1F64E, 0x1F3FD, 0x200D, 0x2640 },
+ ["woman pouting: medium-dark skin tone"]={ 0x1F64E, 0x1F3FE, 0x200D, 0x2640 },
+ ["woman pouting: medium-light skin tone"]={ 0x1F64E, 0x1F3FC, 0x200D, 0x2640 },
+ ["woman raising hand"]={ 0x1F64B, 0x200D, 0x2640 },
+ ["woman raising hand: dark skin tone"]={ 0x1F64B, 0x1F3FF, 0x200D, 0x2640 },
+ ["woman raising hand: light skin tone"]={ 0x1F64B, 0x1F3FB, 0x200D, 0x2640 },
+ ["woman raising hand: medium skin tone"]={ 0x1F64B, 0x1F3FD, 0x200D, 0x2640 },
+ ["woman raising hand: medium-dark skin tone"]={ 0x1F64B, 0x1F3FE, 0x200D, 0x2640 },
+ ["woman raising hand: medium-light skin tone"]={ 0x1F64B, 0x1F3FC, 0x200D, 0x2640 },
+ ["woman rowing boat"]={ 0x1F6A3, 0x200D, 0x2640 },
+ ["woman rowing boat: dark skin tone"]={ 0x1F6A3, 0x1F3FF, 0x200D, 0x2640 },
+ ["woman rowing boat: light skin tone"]={ 0x1F6A3, 0x1F3FB, 0x200D, 0x2640 },
+ ["woman rowing boat: medium skin tone"]={ 0x1F6A3, 0x1F3FD, 0x200D, 0x2640 },
+ ["woman rowing boat: medium-dark skin tone"]={ 0x1F6A3, 0x1F3FE, 0x200D, 0x2640 },
+ ["woman rowing boat: medium-light skin tone"]={ 0x1F6A3, 0x1F3FC, 0x200D, 0x2640 },
+ ["woman running"]={ 0x1F3C3, 0x200D, 0x2640 },
+ ["woman running: dark skin tone"]={ 0x1F3C3, 0x1F3FF, 0x200D, 0x2640 },
+ ["woman running: light skin tone"]={ 0x1F3C3, 0x1F3FB, 0x200D, 0x2640 },
+ ["woman running: medium skin tone"]={ 0x1F3C3, 0x1F3FD, 0x200D, 0x2640 },
+ ["woman running: medium-dark skin tone"]={ 0x1F3C3, 0x1F3FE, 0x200D, 0x2640 },
+ ["woman running: medium-light skin tone"]={ 0x1F3C3, 0x1F3FC, 0x200D, 0x2640 },
["woman scientist"]={ 0x1F469, 0x200D, 0x1F52C },
["woman scientist: dark skin tone"]={ 0x1F469, 0x1F3FF, 0x200D, 0x1F52C },
["woman scientist: light skin tone"]={ 0x1F469, 0x1F3FB, 0x200D, 0x1F52C },
["woman scientist: medium skin tone"]={ 0x1F469, 0x1F3FD, 0x200D, 0x1F52C },
["woman scientist: medium-dark skin tone"]={ 0x1F469, 0x1F3FE, 0x200D, 0x1F52C },
["woman scientist: medium-light skin tone"]={ 0x1F469, 0x1F3FC, 0x200D, 0x1F52C },
- ["woman shrugging"]={ 0x1F937, 0x200D, 0x2640, 0xFE0F },
- ["woman shrugging: dark skin tone"]={ 0x1F937, 0x1F3FF, 0x200D, 0x2640, 0xFE0F },
- ["woman shrugging: light skin tone"]={ 0x1F937, 0x1F3FB, 0x200D, 0x2640, 0xFE0F },
- ["woman shrugging: medium skin tone"]={ 0x1F937, 0x1F3FD, 0x200D, 0x2640, 0xFE0F },
- ["woman shrugging: medium-dark skin tone"]={ 0x1F937, 0x1F3FE, 0x200D, 0x2640, 0xFE0F },
- ["woman shrugging: medium-light skin tone"]={ 0x1F937, 0x1F3FC, 0x200D, 0x2640, 0xFE0F },
+ ["woman shrugging"]={ 0x1F937, 0x200D, 0x2640 },
+ ["woman shrugging: dark skin tone"]={ 0x1F937, 0x1F3FF, 0x200D, 0x2640 },
+ ["woman shrugging: light skin tone"]={ 0x1F937, 0x1F3FB, 0x200D, 0x2640 },
+ ["woman shrugging: medium skin tone"]={ 0x1F937, 0x1F3FD, 0x200D, 0x2640 },
+ ["woman shrugging: medium-dark skin tone"]={ 0x1F937, 0x1F3FE, 0x200D, 0x2640 },
+ ["woman shrugging: medium-light skin tone"]={ 0x1F937, 0x1F3FC, 0x200D, 0x2640 },
["woman singer"]={ 0x1F469, 0x200D, 0x1F3A4 },
["woman singer: dark skin tone"]={ 0x1F469, 0x1F3FF, 0x200D, 0x1F3A4 },
["woman singer: light skin tone"]={ 0x1F469, 0x1F3FB, 0x200D, 0x1F3A4 },
["woman singer: medium skin tone"]={ 0x1F469, 0x1F3FD, 0x200D, 0x1F3A4 },
["woman singer: medium-dark skin tone"]={ 0x1F469, 0x1F3FE, 0x200D, 0x1F3A4 },
["woman singer: medium-light skin tone"]={ 0x1F469, 0x1F3FC, 0x200D, 0x1F3A4 },
- ["woman standing"]={ 0x1F9CD, 0x200D, 0x2640, 0xFE0F },
- ["woman standing: dark skin tone"]={ 0x1F9CD, 0x1F3FF, 0x200D, 0x2640, 0xFE0F },
- ["woman standing: light skin tone"]={ 0x1F9CD, 0x1F3FB, 0x200D, 0x2640, 0xFE0F },
- ["woman standing: medium skin tone"]={ 0x1F9CD, 0x1F3FD, 0x200D, 0x2640, 0xFE0F },
- ["woman standing: medium-dark skin tone"]={ 0x1F9CD, 0x1F3FE, 0x200D, 0x2640, 0xFE0F },
- ["woman standing: medium-light skin tone"]={ 0x1F9CD, 0x1F3FC, 0x200D, 0x2640, 0xFE0F },
["woman student"]={ 0x1F469, 0x200D, 0x1F393 },
["woman student: dark skin tone"]={ 0x1F469, 0x1F3FF, 0x200D, 0x1F393 },
["woman student: light skin tone"]={ 0x1F469, 0x1F3FB, 0x200D, 0x1F393 },
["woman student: medium skin tone"]={ 0x1F469, 0x1F3FD, 0x200D, 0x1F393 },
["woman student: medium-dark skin tone"]={ 0x1F469, 0x1F3FE, 0x200D, 0x1F393 },
["woman student: medium-light skin tone"]={ 0x1F469, 0x1F3FC, 0x200D, 0x1F393 },
- ["woman superhero"]={ 0x1F9B8, 0x200D, 0x2640, 0xFE0F },
- ["woman superhero: dark skin tone"]={ 0x1F9B8, 0x1F3FF, 0x200D, 0x2640, 0xFE0F },
- ["woman superhero: light skin tone"]={ 0x1F9B8, 0x1F3FB, 0x200D, 0x2640, 0xFE0F },
- ["woman superhero: medium skin tone"]={ 0x1F9B8, 0x1F3FD, 0x200D, 0x2640, 0xFE0F },
- ["woman superhero: medium-dark skin tone"]={ 0x1F9B8, 0x1F3FE, 0x200D, 0x2640, 0xFE0F },
- ["woman superhero: medium-light skin tone"]={ 0x1F9B8, 0x1F3FC, 0x200D, 0x2640, 0xFE0F },
- ["woman supervillain"]={ 0x1F9B9, 0x200D, 0x2640, 0xFE0F },
- ["woman supervillain: dark skin tone"]={ 0x1F9B9, 0x1F3FF, 0x200D, 0x2640, 0xFE0F },
- ["woman supervillain: light skin tone"]={ 0x1F9B9, 0x1F3FB, 0x200D, 0x2640, 0xFE0F },
- ["woman supervillain: medium skin tone"]={ 0x1F9B9, 0x1F3FD, 0x200D, 0x2640, 0xFE0F },
- ["woman supervillain: medium-dark skin tone"]={ 0x1F9B9, 0x1F3FE, 0x200D, 0x2640, 0xFE0F },
- ["woman supervillain: medium-light skin tone"]={ 0x1F9B9, 0x1F3FC, 0x200D, 0x2640, 0xFE0F },
- ["woman surfing"]={ 0x1F3C4, 0x200D, 0x2640, 0xFE0F },
- ["woman surfing: dark skin tone"]={ 0x1F3C4, 0x1F3FF, 0x200D, 0x2640, 0xFE0F },
- ["woman surfing: light skin tone"]={ 0x1F3C4, 0x1F3FB, 0x200D, 0x2640, 0xFE0F },
- ["woman surfing: medium skin tone"]={ 0x1F3C4, 0x1F3FD, 0x200D, 0x2640, 0xFE0F },
- ["woman surfing: medium-dark skin tone"]={ 0x1F3C4, 0x1F3FE, 0x200D, 0x2640, 0xFE0F },
- ["woman surfing: medium-light skin tone"]={ 0x1F3C4, 0x1F3FC, 0x200D, 0x2640, 0xFE0F },
- ["woman swimming"]={ 0x1F3CA, 0x200D, 0x2640, 0xFE0F },
- ["woman swimming: dark skin tone"]={ 0x1F3CA, 0x1F3FF, 0x200D, 0x2640, 0xFE0F },
- ["woman swimming: light skin tone"]={ 0x1F3CA, 0x1F3FB, 0x200D, 0x2640, 0xFE0F },
- ["woman swimming: medium skin tone"]={ 0x1F3CA, 0x1F3FD, 0x200D, 0x2640, 0xFE0F },
- ["woman swimming: medium-dark skin tone"]={ 0x1F3CA, 0x1F3FE, 0x200D, 0x2640, 0xFE0F },
- ["woman swimming: medium-light skin tone"]={ 0x1F3CA, 0x1F3FC, 0x200D, 0x2640, 0xFE0F },
+ ["woman surfing"]={ 0x1F3C4, 0x200D, 0x2640 },
+ ["woman surfing: dark skin tone"]={ 0x1F3C4, 0x1F3FF, 0x200D, 0x2640 },
+ ["woman surfing: light skin tone"]={ 0x1F3C4, 0x1F3FB, 0x200D, 0x2640 },
+ ["woman surfing: medium skin tone"]={ 0x1F3C4, 0x1F3FD, 0x200D, 0x2640 },
+ ["woman surfing: medium-dark skin tone"]={ 0x1F3C4, 0x1F3FE, 0x200D, 0x2640 },
+ ["woman surfing: medium-light skin tone"]={ 0x1F3C4, 0x1F3FC, 0x200D, 0x2640 },
+ ["woman swimming"]={ 0x1F3CA, 0x200D, 0x2640 },
+ ["woman swimming: dark skin tone"]={ 0x1F3CA, 0x1F3FF, 0x200D, 0x2640 },
+ ["woman swimming: light skin tone"]={ 0x1F3CA, 0x1F3FB, 0x200D, 0x2640 },
+ ["woman swimming: medium skin tone"]={ 0x1F3CA, 0x1F3FD, 0x200D, 0x2640 },
+ ["woman swimming: medium-dark skin tone"]={ 0x1F3CA, 0x1F3FE, 0x200D, 0x2640 },
+ ["woman swimming: medium-light skin tone"]={ 0x1F3CA, 0x1F3FC, 0x200D, 0x2640 },
["woman teacher"]={ 0x1F469, 0x200D, 0x1F3EB },
["woman teacher: dark skin tone"]={ 0x1F469, 0x1F3FF, 0x200D, 0x1F3EB },
["woman teacher: light skin tone"]={ 0x1F469, 0x1F3FB, 0x200D, 0x1F3EB },
@@ -2901,123 +2566,68 @@ return {
["woman technologist: medium skin tone"]={ 0x1F469, 0x1F3FD, 0x200D, 0x1F4BB },
["woman technologist: medium-dark skin tone"]={ 0x1F469, 0x1F3FE, 0x200D, 0x1F4BB },
["woman technologist: medium-light skin tone"]={ 0x1F469, 0x1F3FC, 0x200D, 0x1F4BB },
- ["woman tipping hand"]={ 0x1F481, 0x200D, 0x2640, 0xFE0F },
- ["woman tipping hand: dark skin tone"]={ 0x1F481, 0x1F3FF, 0x200D, 0x2640, 0xFE0F },
- ["woman tipping hand: light skin tone"]={ 0x1F481, 0x1F3FB, 0x200D, 0x2640, 0xFE0F },
- ["woman tipping hand: medium skin tone"]={ 0x1F481, 0x1F3FD, 0x200D, 0x2640, 0xFE0F },
- ["woman tipping hand: medium-dark skin tone"]={ 0x1F481, 0x1F3FE, 0x200D, 0x2640, 0xFE0F },
- ["woman tipping hand: medium-light skin tone"]={ 0x1F481, 0x1F3FC, 0x200D, 0x2640, 0xFE0F },
- ["woman vampire"]={ 0x1F9DB, 0x200D, 0x2640, 0xFE0F },
- ["woman vampire: dark skin tone"]={ 0x1F9DB, 0x1F3FF, 0x200D, 0x2640, 0xFE0F },
- ["woman vampire: light skin tone"]={ 0x1F9DB, 0x1F3FB, 0x200D, 0x2640, 0xFE0F },
- ["woman vampire: medium skin tone"]={ 0x1F9DB, 0x1F3FD, 0x200D, 0x2640, 0xFE0F },
- ["woman vampire: medium-dark skin tone"]={ 0x1F9DB, 0x1F3FE, 0x200D, 0x2640, 0xFE0F },
- ["woman vampire: medium-light skin tone"]={ 0x1F9DB, 0x1F3FC, 0x200D, 0x2640, 0xFE0F },
- ["woman walking"]={ 0x1F6B6, 0x200D, 0x2640, 0xFE0F },
- ["woman walking: dark skin tone"]={ 0x1F6B6, 0x1F3FF, 0x200D, 0x2640, 0xFE0F },
- ["woman walking: light skin tone"]={ 0x1F6B6, 0x1F3FB, 0x200D, 0x2640, 0xFE0F },
- ["woman walking: medium skin tone"]={ 0x1F6B6, 0x1F3FD, 0x200D, 0x2640, 0xFE0F },
- ["woman walking: medium-dark skin tone"]={ 0x1F6B6, 0x1F3FE, 0x200D, 0x2640, 0xFE0F },
- ["woman walking: medium-light skin tone"]={ 0x1F6B6, 0x1F3FC, 0x200D, 0x2640, 0xFE0F },
- ["woman wearing turban"]={ 0x1F473, 0x200D, 0x2640, 0xFE0F },
- ["woman wearing turban: dark skin tone"]={ 0x1F473, 0x1F3FF, 0x200D, 0x2640, 0xFE0F },
- ["woman wearing turban: light skin tone"]={ 0x1F473, 0x1F3FB, 0x200D, 0x2640, 0xFE0F },
- ["woman wearing turban: medium skin tone"]={ 0x1F473, 0x1F3FD, 0x200D, 0x2640, 0xFE0F },
- ["woman wearing turban: medium-dark skin tone"]={ 0x1F473, 0x1F3FE, 0x200D, 0x2640, 0xFE0F },
- ["woman wearing turban: medium-light skin tone"]={ 0x1F473, 0x1F3FC, 0x200D, 0x2640, 0xFE0F },
+ ["woman tipping hand"]={ 0x1F481, 0x200D, 0x2640 },
+ ["woman tipping hand: dark skin tone"]={ 0x1F481, 0x1F3FF, 0x200D, 0x2640 },
+ ["woman tipping hand: light skin tone"]={ 0x1F481, 0x1F3FB, 0x200D, 0x2640 },
+ ["woman tipping hand: medium skin tone"]={ 0x1F481, 0x1F3FD, 0x200D, 0x2640 },
+ ["woman tipping hand: medium-dark skin tone"]={ 0x1F481, 0x1F3FE, 0x200D, 0x2640 },
+ ["woman tipping hand: medium-light skin tone"]={ 0x1F481, 0x1F3FC, 0x200D, 0x2640 },
+ ["woman vampire"]={ 0x1F9DB, 0x200D, 0x2640 },
+ ["woman vampire: dark skin tone"]={ 0x1F9DB, 0x1F3FF, 0x200D, 0x2640 },
+ ["woman vampire: light skin tone"]={ 0x1F9DB, 0x1F3FB, 0x200D, 0x2640 },
+ ["woman vampire: medium skin tone"]={ 0x1F9DB, 0x1F3FD, 0x200D, 0x2640 },
+ ["woman vampire: medium-dark skin tone"]={ 0x1F9DB, 0x1F3FE, 0x200D, 0x2640 },
+ ["woman vampire: medium-light skin tone"]={ 0x1F9DB, 0x1F3FC, 0x200D, 0x2640 },
+ ["woman walking"]={ 0x1F6B6, 0x200D, 0x2640 },
+ ["woman walking: dark skin tone"]={ 0x1F6B6, 0x1F3FF, 0x200D, 0x2640 },
+ ["woman walking: light skin tone"]={ 0x1F6B6, 0x1F3FB, 0x200D, 0x2640 },
+ ["woman walking: medium skin tone"]={ 0x1F6B6, 0x1F3FD, 0x200D, 0x2640 },
+ ["woman walking: medium-dark skin tone"]={ 0x1F6B6, 0x1F3FE, 0x200D, 0x2640 },
+ ["woman walking: medium-light skin tone"]={ 0x1F6B6, 0x1F3FC, 0x200D, 0x2640 },
+ ["woman wearing turban"]={ 0x1F473, 0x200D, 0x2640 },
+ ["woman wearing turban: dark skin tone"]={ 0x1F473, 0x1F3FF, 0x200D, 0x2640 },
+ ["woman wearing turban: light skin tone"]={ 0x1F473, 0x1F3FB, 0x200D, 0x2640 },
+ ["woman wearing turban: medium skin tone"]={ 0x1F473, 0x1F3FD, 0x200D, 0x2640 },
+ ["woman wearing turban: medium-dark skin tone"]={ 0x1F473, 0x1F3FE, 0x200D, 0x2640 },
+ ["woman wearing turban: medium-light skin tone"]={ 0x1F473, 0x1F3FC, 0x200D, 0x2640 },
["woman with headscarf"]={ 0x1F9D5 },
["woman with headscarf: dark skin tone"]={ 0x1F9D5, 0x1F3FF },
["woman with headscarf: light skin tone"]={ 0x1F9D5, 0x1F3FB },
["woman with headscarf: medium skin tone"]={ 0x1F9D5, 0x1F3FD },
["woman with headscarf: medium-dark skin tone"]={ 0x1F9D5, 0x1F3FE },
["woman with headscarf: medium-light skin tone"]={ 0x1F9D5, 0x1F3FC },
- ["woman with probing cane"]={ 0x1F469, 0x200D, 0x1F9AF },
- ["woman with probing cane: dark skin tone"]={ 0x1F469, 0x1F3FF, 0x200D, 0x1F9AF },
- ["woman with probing cane: light skin tone"]={ 0x1F469, 0x1F3FB, 0x200D, 0x1F9AF },
- ["woman with probing cane: medium skin tone"]={ 0x1F469, 0x1F3FD, 0x200D, 0x1F9AF },
- ["woman with probing cane: medium-dark skin tone"]={ 0x1F469, 0x1F3FE, 0x200D, 0x1F9AF },
- ["woman with probing cane: medium-light skin tone"]={ 0x1F469, 0x1F3FC, 0x200D, 0x1F9AF },
- ["woman zombie"]={ 0x1F9DF, 0x200D, 0x2640, 0xFE0F },
- ["woman: bald"]={ 0x1F469, 0x200D, 0x1F9B2 },
- ["woman: blond hair"]={ 0x1F471, 0x200D, 0x2640, 0xFE0F },
- ["woman: curly hair"]={ 0x1F469, 0x200D, 0x1F9B1 },
+ ["woman zombie"]={ 0x1F9DF, 0x200D, 0x2640 },
["woman: dark skin tone"]={ 0x1F469, 0x1F3FF },
- ["woman: dark skin tone, bald"]={ 0x1F469, 0x1F3FF, 0x200D, 0x1F9B2 },
- ["woman: dark skin tone, blond hair"]={ 0x1F471, 0x1F3FF, 0x200D, 0x2640, 0xFE0F },
- ["woman: dark skin tone, curly hair"]={ 0x1F469, 0x1F3FF, 0x200D, 0x1F9B1 },
- ["woman: dark skin tone, red hair"]={ 0x1F469, 0x1F3FF, 0x200D, 0x1F9B0 },
- ["woman: dark skin tone, white hair"]={ 0x1F469, 0x1F3FF, 0x200D, 0x1F9B3 },
["woman: light skin tone"]={ 0x1F469, 0x1F3FB },
- ["woman: light skin tone, bald"]={ 0x1F469, 0x1F3FB, 0x200D, 0x1F9B2 },
- ["woman: light skin tone, blond hair"]={ 0x1F471, 0x1F3FB, 0x200D, 0x2640, 0xFE0F },
- ["woman: light skin tone, curly hair"]={ 0x1F469, 0x1F3FB, 0x200D, 0x1F9B1 },
- ["woman: light skin tone, red hair"]={ 0x1F469, 0x1F3FB, 0x200D, 0x1F9B0 },
- ["woman: light skin tone, white hair"]={ 0x1F469, 0x1F3FB, 0x200D, 0x1F9B3 },
["woman: medium skin tone"]={ 0x1F469, 0x1F3FD },
- ["woman: medium skin tone, bald"]={ 0x1F469, 0x1F3FD, 0x200D, 0x1F9B2 },
- ["woman: medium skin tone, blond hair"]={ 0x1F471, 0x1F3FD, 0x200D, 0x2640, 0xFE0F },
- ["woman: medium skin tone, curly hair"]={ 0x1F469, 0x1F3FD, 0x200D, 0x1F9B1 },
- ["woman: medium skin tone, red hair"]={ 0x1F469, 0x1F3FD, 0x200D, 0x1F9B0 },
- ["woman: medium skin tone, white hair"]={ 0x1F469, 0x1F3FD, 0x200D, 0x1F9B3 },
["woman: medium-dark skin tone"]={ 0x1F469, 0x1F3FE },
- ["woman: medium-dark skin tone, bald"]={ 0x1F469, 0x1F3FE, 0x200D, 0x1F9B2 },
- ["woman: medium-dark skin tone, blond hair"]={ 0x1F471, 0x1F3FE, 0x200D, 0x2640, 0xFE0F },
- ["woman: medium-dark skin tone, curly hair"]={ 0x1F469, 0x1F3FE, 0x200D, 0x1F9B1 },
- ["woman: medium-dark skin tone, red hair"]={ 0x1F469, 0x1F3FE, 0x200D, 0x1F9B0 },
- ["woman: medium-dark skin tone, white hair"]={ 0x1F469, 0x1F3FE, 0x200D, 0x1F9B3 },
["woman: medium-light skin tone"]={ 0x1F469, 0x1F3FC },
- ["woman: medium-light skin tone, bald"]={ 0x1F469, 0x1F3FC, 0x200D, 0x1F9B2 },
- ["woman: medium-light skin tone, blond hair"]={ 0x1F471, 0x1F3FC, 0x200D, 0x2640, 0xFE0F },
- ["woman: medium-light skin tone, curly hair"]={ 0x1F469, 0x1F3FC, 0x200D, 0x1F9B1 },
- ["woman: medium-light skin tone, red hair"]={ 0x1F469, 0x1F3FC, 0x200D, 0x1F9B0 },
- ["woman: medium-light skin tone, white hair"]={ 0x1F469, 0x1F3FC, 0x200D, 0x1F9B3 },
- ["woman: red hair"]={ 0x1F469, 0x200D, 0x1F9B0 },
- ["woman: white hair"]={ 0x1F469, 0x200D, 0x1F9B3 },
["woman’s boot"]={ 0x1F462 },
["woman’s clothes"]={ 0x1F45A },
["woman’s hat"]={ 0x1F452 },
["woman’s sandal"]={ 0x1F461 },
- ["women holding hands"]={ 0x1F46D },
- ["women holding hands: dark skin tone"]={ 0x1F46D, 0x1F3FF },
- ["women holding hands: dark skin tone, light skin tone"]={ 0x1F469, 0x1F3FF, 0x200D, 0x1F91D, 0x200D, 0x1F469, 0x1F3FB },
- ["women holding hands: dark skin tone, medium skin tone"]={ 0x1F469, 0x1F3FF, 0x200D, 0x1F91D, 0x200D, 0x1F469, 0x1F3FD },
- ["women holding hands: dark skin tone, medium-dark skin tone"]={ 0x1F469, 0x1F3FF, 0x200D, 0x1F91D, 0x200D, 0x1F469, 0x1F3FE },
- ["women holding hands: dark skin tone, medium-light skin tone"]={ 0x1F469, 0x1F3FF, 0x200D, 0x1F91D, 0x200D, 0x1F469, 0x1F3FC },
- ["women holding hands: light skin tone"]={ 0x1F46D, 0x1F3FB },
- ["women holding hands: medium skin tone"]={ 0x1F46D, 0x1F3FD },
- ["women holding hands: medium skin tone, light skin tone"]={ 0x1F469, 0x1F3FD, 0x200D, 0x1F91D, 0x200D, 0x1F469, 0x1F3FB },
- ["women holding hands: medium skin tone, medium-light skin tone"]={ 0x1F469, 0x1F3FD, 0x200D, 0x1F91D, 0x200D, 0x1F469, 0x1F3FC },
- ["women holding hands: medium-dark skin tone"]={ 0x1F46D, 0x1F3FE },
- ["women holding hands: medium-dark skin tone, light skin tone"]={ 0x1F469, 0x1F3FE, 0x200D, 0x1F91D, 0x200D, 0x1F469, 0x1F3FB },
- ["women holding hands: medium-dark skin tone, medium skin tone"]={ 0x1F469, 0x1F3FE, 0x200D, 0x1F91D, 0x200D, 0x1F469, 0x1F3FD },
- ["women holding hands: medium-dark skin tone, medium-light skin tone"]={ 0x1F469, 0x1F3FE, 0x200D, 0x1F91D, 0x200D, 0x1F469, 0x1F3FC },
- ["women holding hands: medium-light skin tone"]={ 0x1F46D, 0x1F3FC },
- ["women holding hands: medium-light skin tone, light skin tone"]={ 0x1F469, 0x1F3FC, 0x200D, 0x1F91D, 0x200D, 0x1F469, 0x1F3FB },
- ["women with bunny ears"]={ 0x1F46F, 0x200D, 0x2640, 0xFE0F },
- ["women wrestling"]={ 0x1F93C, 0x200D, 0x2640, 0xFE0F },
+ ["women with bunny ears partying"]={ 0x1F46F, 0x200D, 0x2640 },
+ ["women wrestling"]={ 0x1F93C, 0x200D, 0x2640 },
["women’s room"]={ 0x1F6BA },
- ["woozy face"]={ 0x1F974 },
- ["world map"]={ 0x1F5FA, 0xFE0F },
+ ["world map"]={ 0x1F5FA },
["worried face"]={ 0x1F61F },
["wrapped gift"]={ 0x1F381 },
["wrench"]={ 0x1F527 },
- ["writing hand"]={ 0x270D, 0xFE0F },
+ ["writing hand"]={ 0x270D },
["writing hand: dark skin tone"]={ 0x270D, 0x1F3FF },
["writing hand: light skin tone"]={ 0x270D, 0x1F3FB },
["writing hand: medium skin tone"]={ 0x270D, 0x1F3FD },
["writing hand: medium-dark skin tone"]={ 0x270D, 0x1F3FE },
["writing hand: medium-light skin tone"]={ 0x270D, 0x1F3FC },
- ["yarn"]={ 0x1F9F6 },
- ["yawning face"]={ 0x1F971 },
- ["yellow circle"]={ 0x1F7E1 },
["yellow heart"]={ 0x1F49B },
- ["yellow square"]={ 0x1F7E8 },
+ ["yemen"]={ 0x1F1FE, 0x1F1EA },
["yen banknote"]={ 0x1F4B4 },
- ["yin yang"]={ 0x262F, 0xFE0F },
- ["yo-yo"]={ 0x1FA80 },
- ["zany face"]={ 0x1F92A },
+ ["yin yang"]={ 0x262F },
+ ["zambia"]={ 0x1F1FF, 0x1F1F2 },
["zebra"]={ 0x1F993 },
+ ["zimbabwe"]={ 0x1F1FF, 0x1F1FC },
["zipper-mouth face"]={ 0x1F910 },
["zombie"]={ 0x1F9DF },
["zzz"]={ 0x1F4A4 },
-} \ No newline at end of file
+ ["Åland islands"]={ 0x1F1E6, 0x1F1FD },
+}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/char-ini.lua b/Master/texmf-dist/tex/context/base/mkiv/char-ini.lua
index fb9d9f126e4..c308a2c0fc6 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/char-ini.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/char-ini.lua
@@ -234,7 +234,6 @@ local blocks = allocate {
["cham"] = { first = 0x0AA00, last = 0x0AA5F, description = "Cham" },
["cherokee"] = { first = 0x013A0, last = 0x013FF, otf="cher", description = "Cherokee" },
["cherokeesupplement"] = { first = 0x0AB70, last = 0x0ABBF, description = "Cherokee Supplement" },
- ["chesssymbols"] = { first = 0x1FA00, last = 0x1FA6F, description = "Chess Symbols" },
["cjkcompatibility"] = { first = 0x03300, last = 0x033FF, otf="hang", description = "CJK Compatibility" },
["cjkcompatibilityforms"] = { first = 0x0FE30, last = 0x0FE4F, otf="hang", description = "CJK Compatibility Forms" },
["cjkcompatibilityideographs"] = { first = 0x0F900, last = 0x0FAFF, otf="hang", description = "CJK Compatibility Ideographs" },
@@ -297,7 +296,6 @@ local blocks = allocate {
-- ["digitsthai"] = { first = 0x00E50, last = 0x00E59, math = true },
-- ["digitstibetan"] = { first = 0x00F20, last = 0x00F29, math = true },
["dingbats"] = { first = 0x02700, last = 0x027BF, description = "Dingbats" },
- ["dogra"] = { first = 0x11800, last = 0x1184F, description = "Dogra" },
["dominotiles"] = { first = 0x1F030, last = 0x1F09F, description = "Domino Tiles" },
["duployan"] = { first = 0x1BC00, last = 0x1BC9F, description = "Duployan" },
["earlydynasticcuneiform"] = { first = 0x12480, last = 0x1254F, description = "Early Dynastic Cuneiform" },
@@ -316,7 +314,6 @@ local blocks = allocate {
["geometricshapes"] = { first = 0x025A0, last = 0x025FF, math = true, description = "Geometric Shapes" },
["geometricshapesextended"] = { first = 0x1F780, last = 0x1F7FF, description = "Geometric Shapes Extended" },
["georgian"] = { first = 0x010A0, last = 0x010FF, otf="geor", description = "Georgian" },
- ["georgianextended"] = { first = 0x01C90, last = 0x01CBF, description = "Georgian Extended" },
["georgiansupplement"] = { first = 0x02D00, last = 0x02D2F, otf="geor", description = "Georgian Supplement" },
["glagolitic"] = { first = 0x02C00, last = 0x02C5F, otf="glag", description = "Glagolitic" },
["glagoliticsupplement"] = { first = 0x1E000, last = 0x1E02F, description = "Glagolitic Supplement" },
@@ -325,7 +322,6 @@ local blocks = allocate {
["greekandcoptic"] = { first = 0x00370, last = 0x003FF, otf="grek", description = "Greek and Coptic" },
["greekextended"] = { first = 0x01F00, last = 0x01FFF, otf="grek", description = "Greek Extended" },
["gujarati"] = { first = 0x00A80, last = 0x00AFF, otf="gujr", description = "Gujarati" },
- ["gunjalagondi"] = { first = 0x11D60, last = 0x11DAF, description = "Gunjala Gondi" },
["gurmukhi"] = { first = 0x00A00, last = 0x00A7F, otf="guru", description = "Gurmukhi" },
["halfwidthandfullwidthforms"] = { first = 0x0FF00, last = 0x0FFEF, description = "Halfwidth and Fullwidth Forms" },
["hangulcompatibilityjamo"] = { first = 0x03130, last = 0x0318F, otf="jamo", description = "Hangul Compatibility Jamo" },
@@ -333,7 +329,6 @@ local blocks = allocate {
["hanguljamoextendeda"] = { first = 0x0A960, last = 0x0A97F, description = "Hangul Jamo Extended-A" },
["hanguljamoextendedb"] = { first = 0x0D7B0, last = 0x0D7FF, description = "Hangul Jamo Extended-B" },
["hangulsyllables"] = { first = 0x0AC00, last = 0x0D7AF, otf="hang", description = "Hangul Syllables" },
- ["hanifirohingya"] = { first = 0x10D00, last = 0x10D3F, description = "Hanifi Rohingya" },
["hanunoo"] = { first = 0x01720, last = 0x0173F, otf="hano", description = "Hanunoo" },
["hatran"] = { first = 0x108E0, last = 0x108FF, description = "Hatran" },
["hebrew"] = { first = 0x00590, last = 0x005FF, otf="hebr", description = "Hebrew" },
@@ -343,7 +338,6 @@ local blocks = allocate {
["ideographicdescriptioncharacters"] = { first = 0x02FF0, last = 0x02FFF, description = "Ideographic Description Characters" },
["ideographicsymbolsandpunctuation"] = { first = 0x16FE0, last = 0x16FFF, description = "Ideographic Symbols and Punctuation" },
["imperialaramaic"] = { first = 0x10840, last = 0x1085F, description = "Imperial Aramaic" },
- ["indicsiyaqnumbers"] = { first = 0x1EC70, last = 0x1ECBF, description = "Indic Siyaq Numbers" },
["inscriptionalpahlavi"] = { first = 0x10B60, last = 0x10B7F, description = "Inscriptional Pahlavi" },
["inscriptionalparthian"] = { first = 0x10B40, last = 0x10B5F, description = "Inscriptional Parthian" },
["ipaextensions"] = { first = 0x00250, last = 0x002AF, description = "IPA Extensions" },
@@ -402,7 +396,6 @@ local blocks = allocate {
["lydian"] = { first = 0x10920, last = 0x1093F, description = "Lydian" },
["mahajani"] = { first = 0x11150, last = 0x1117F, description = "Mahajani" },
["mahjongtiles"] = { first = 0x1F000, last = 0x1F02F, description = "Mahjong Tiles" },
- ["makasar"] = { first = 0x11EE0, last = 0x11EFF, description = "Makasar" },
["malayalam"] = { first = 0x00D00, last = 0x00D7F, otf="mlym", description = "Malayalam" },
["mandaic"] = { first = 0x00840, last = 0x0085F, otf="mand", description = "Mandaic" },
["manichaean"] = { first = 0x10AC0, last = 0x10AFF, description = "Manichaean" },
@@ -410,8 +403,6 @@ local blocks = allocate {
["masaramgondi"] = { first = 0x11D00, last = 0x11D5F, description = "Masaram Gondi" },
["mathematicalalphanumericsymbols"] = { first = 0x1D400, last = 0x1D7FF, math = true, description = "Mathematical Alphanumeric Symbols" },
["mathematicaloperators"] = { first = 0x02200, last = 0x022FF, math = true, description = "Mathematical Operators" },
- ["mayannumerals"] = { first = 0x1D2E0, last = 0x1D2FF, description = "Mayan Numerals" },
- ["medefaidrin"] = { first = 0x16E40, last = 0x16E9F, description = "Medefaidrin" },
["meeteimayek"] = { first = 0x0ABC0, last = 0x0ABFF, description = "Meetei Mayek" },
["meeteimayekextensions"] = { first = 0x0AAE0, last = 0x0AAFF, description = "Meetei Mayek Extensions" },
["mendekikakui"] = { first = 0x1E800, last = 0x1E8DF, description = "Mende Kikakui" },
@@ -447,7 +438,6 @@ local blocks = allocate {
["oldnortharabian"] = { first = 0x10A80, last = 0x10A9F, description = "Old North Arabian" },
["oldpermic"] = { first = 0x10350, last = 0x1037F, description = "Old Permic" },
["oldpersian"] = { first = 0x103A0, last = 0x103DF, otf="xpeo", description = "Old Persian" },
- ["oldsogdian"] = { first = 0x10F00, last = 0x10F2F, description = "Old Sogdian" },
["oldsoutharabian"] = { first = 0x10A60, last = 0x10A7F, description = "Old South Arabian" },
["oldturkic"] = { first = 0x10C00, last = 0x10C4F, description = "Old Turkic" },
["opticalcharacterrecognition"] = { first = 0x02440, last = 0x0245F, description = "Optical Character Recognition" },
@@ -478,7 +468,6 @@ local blocks = allocate {
["sinhala"] = { first = 0x00D80, last = 0x00DFF, otf="sinh", description = "Sinhala" },
["sinhalaarchaicnumbers"] = { first = 0x111E0, last = 0x111FF, description = "Sinhala Archaic Numbers" },
["smallformvariants"] = { first = 0x0FE50, last = 0x0FE6F, description = "Small Form Variants" },
- ["sogdian"] = { first = 0x10F30, last = 0x10F6F, description = "Sogdian" },
["sorasompeng"] = { first = 0x110D0, last = 0x110FF, description = "Sora Sompeng" },
["soyombo"] = { first = 0x11A50, last = 0x11AAF, description = "Soyombo" },
["spacingmodifierletters"] = { first = 0x002B0, last = 0x002FF, description = "Spacing Modifier Letters" },
@@ -617,8 +606,7 @@ characters.otfscripts = otfscripts
setmetatableindex(otfscripts,function(t,unicode)
for k, v in next, blocks do
- local first = v.first
- local last = v.last
+ local first, last = v.first, v.last
if unicode >= first and unicode <= last then
local script = v.otf or "dflt"
for u=first,last do
@@ -643,27 +631,25 @@ function characters.getrange(name,expression) -- used in font fallback definitio
name = gsub(name,'"',"0x") -- goodie: tex hex notation
local start, stop
if expression then
- local n = tonumber(name)
- if n then
- return n, n, nil
- else
- local first, rest = lpegmatch(splitter2,name)
- local range = rawget(blocks,lower(gsub(first,"[^a-zA-Z0-9]","")))
- if range then
- local s = loadstring("return 0 " .. rest)
- if type(s) == "function" then
- local d = s()
- if type(d) == "number" then
- return range.first + d, range.last + d, nil
- end
+ local first, rest = lpegmatch(splitter2,name)
+ local range = rawget(blocks,lower(gsub(first,"[^a-zA-Z0-9]","")))
+ if range then
+ start = range.first
+ stop = range.last
+ local s = loadstring("return 0 " .. rest)
+ if type(s) == "function" then
+ local d = s()
+ if type(d) == "number" then
+ start = start + d
+ stop = stop + d
+ return start, stop, nil
end
end
end
end
- local start, stop = lpegmatch(splitter1,name)
+ start, stop = lpegmatch(splitter1,name)
if start and stop then
- start = tonumber(start,16) or tonumber(start)
- stop = tonumber(stop, 16) or tonumber(stop)
+ start, stop = tonumber(start,16) or tonumber(start), tonumber(stop,16) or tonumber(stop)
if start and stop then
return start, stop, nil
end
@@ -752,10 +738,6 @@ local is_punctuation = allocate ( tohash {
"pc","pd","ps","pe","pi","pf","po",
} )
-local is_symbol = allocate ( tohash {
- "sm", "sc", "sk", "so",
-} )
-
-- to be redone: store checked characters
characters.is_character = is_character
@@ -764,7 +746,6 @@ characters.is_command = is_command
characters.is_spacing = is_spacing
characters.is_mark = is_mark
characters.is_punctuation = is_punctuation
-characters.is_symbol = is_symbol
local mti = function(t,k)
if type(k) == "number" then
@@ -1058,8 +1039,7 @@ setmetatableindex(specialchars, function(t,u)
local c = data[u]
local s = c and c.specials
if s then
- local tt = { }
- local ttn = 0
+ local tt, ttn = { }, 0
for i=2,#s do
local si = s[i]
local c = data[si]
@@ -1285,11 +1265,9 @@ lpegpatterns.utf8lower = utf8lower -- string
lpegpatterns.utf8upper = utf8upper -- string
lpegpatterns.utf8shape = utf8shape -- string
-function characters.lower (str) return str and lpegmatch(utf8lower,str) or "" end
-function characters.upper (str) return str and lpegmatch(utf8upper,str) or "" end
-function characters.shaped(str) return str and lpegmatch(utf8shape,str) or "" end
-
-lpeg.setutfcasers(characters.lower,characters.upper)
+function characters.lower (str) return lpegmatch(utf8lower,str) end
+function characters.upper (str) return lpegmatch(utf8upper,str) end
+function characters.shaped(str) return lpegmatch(utf8shape,str) end
-- local str = [[
-- Ã€ÃÃ‚ÃƒÃ„Ã…Ã ÃĄÃĒÃĢÃĪÃĨ Ã ÃĄÃĒÃĢÃĪÃĨÃ ÃĄÃĒÃĢÃĪÃĨ ÀÁÂÃÄÅÀÁÂÃÄÅ AAAAAAaaaaaa
diff --git a/Master/texmf-dist/tex/context/base/mkiv/char-ini.mkiv b/Master/texmf-dist/tex/context/base/mkiv/char-ini.mkiv
index 0519aaf915f..9c41df67300 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/char-ini.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/char-ini.mkiv
@@ -42,8 +42,8 @@
% use \normalUchar when possible .. the next one is nice for documents and it also accepts
% 0x prefixed numbers
-\def\utfchar #1{\clf_utfchar {#1}}
-\def\safechar#1{\clf_safechar{#1}}
+\def\utfchar #1{\clf_utfchar \numexpr#1\relax}
+\def\safechar#1{\clf_safechar\numexpr#1\relax}
\unexpanded\def\Ux #1{\Uchar\numexpr"#1\relax} % used in xml
\def\eUx#1{\Uchar\numexpr"#1\relax} % used in xml
@@ -66,18 +66,6 @@
\normalstartimath\char#1\normalstopimath
\fi\fi}
-\unexpanded\def\textormathchars#1%
- {{\font_text_or_mathchars#1\relax}}
-
-\unexpanded\def\font_text_or_mathchars#1#2\relax
- {\relax\ifmmode
- #1#2%
- \else\iffontchar\font`#1\relax
- #1#2\relax
- \else
- \normalstartimath#1#2\normalstopimath
- \fi\fi}
-
%D The codes are stored in the format, so we don't need to reinitialize
%D them (unless of course we have adapted the table). It is on the agenda
%D to do this with \type {tex.lccode} cum suis once they're available.
diff --git a/Master/texmf-dist/tex/context/base/mkiv/char-tex.lua b/Master/texmf-dist/tex/context/base/mkiv/char-tex.lua
index bbaf11875d0..065152881d6 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/char-tex.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/char-tex.lua
@@ -8,7 +8,7 @@ if not modules then modules = { } end modules ['char-tex'] = {
local lpeg = lpeg
local tonumber, next, type = tonumber, next, type
-local format, find, gmatch, match = string.format, string.find, string.gmatch, string.match
+local format, find, gmatch = string.format, string.find, string.gmatch
local utfchar, utfbyte = utf.char, utf.byte
local concat, tohash = table.concat, table.tohash
local P, C, R, S, V, Cs, Cc = lpeg.P, lpeg.C, lpeg.R, lpeg.S, lpeg.V, lpeg.Cs, lpeg.Cc
@@ -462,24 +462,16 @@ function commands.makeactive(n,name) -- not used
-- context("\\catcode%s=13\\unexpanded\\def %s{\\%s}",n,utfchar(n),name)
end
-local function to_number(s)
- local n = tonumber(s)
- if n then
- return n
- end
- return tonumber(match(s,'^"(.*)$'),16) or 0
-end
-
implement {
name = "utfchar",
- actions = { to_number, utfchar, contextsprint },
- arguments = "string"
+ actions = { utfchar, contextsprint },
+ arguments = "integer"
}
implement {
name = "safechar",
- actions = { to_number, texcharacters.safechar, contextsprint },
- arguments = "string"
+ actions = { texcharacters.safechar, contextsprint },
+ arguments = "integer"
}
implement {
@@ -600,17 +592,14 @@ if not csletters then
end
--
if isletter then
- local lc = chr.lccode
- local uc = chr.uccode
+ local lc, uc = chr.lccode, chr.uccode
if not lc then
- chr.lccode = u
- lc = u
+ chr.lccode, lc = u, u
elseif type(lc) == "table" then
lc = u
end
if not uc then
- chr.uccode = u
- uc = u
+ chr.uccode, uc = u, u
elseif type(uc) == "table" then
uc = u
end
@@ -634,14 +623,12 @@ if not csletters then
--
local lc, uc = chr.lccode, chr.uccode
if not lc then
- chr.lccode = u
- lc = u
+ chr.lccode, lc = u, u
elseif type(lc) == "table" then
lc = u
end
if not uc then
- chr.uccode = u
- uc = u
+ chr.uccode, uc = u, u
elseif type(uc) == "table" then
uc = u
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/char-utf.lua b/Master/texmf-dist/tex/context/base/mkiv/char-utf.lua
index 110a4a48ce5..4dc7eba7a77 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/char-utf.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/char-utf.lua
@@ -107,10 +107,8 @@ else
local function backtrack(v,last,target)
local vs = v.specials
if vs and #vs == 3 and vs[1] == "char" then
- local one = vs[2]
- local two = vs[3]
- local first = utfchar(one)
- local second = utfchar(two) .. last
+ local one, two = vs[2], vs[3]
+ local first, second = utfchar(one), utfchar(two) .. last
collapsed[first..second] = target
backtrack(data[one],second,target)
end
@@ -143,11 +141,8 @@ else
local size = #vs
if kind == "char" and size == 3 then -- what if more than 3
--
- local one = vs[2]
- local two = vs[3]
- local first = utfchar(one)
- local second = utfchar(two)
- local combination = utfchar(unicode)
+ local one, two = vs[2], vs[3]
+ local first, second, combination = utfchar(one), utfchar(two), utfchar(unicode)
--
collapsed[first..second] = combination
backtrack(data[one],second,combination)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/chem-str.lua b/Master/texmf-dist/tex/context/base/mkiv/chem-str.lua
index 9f0738fc516..7581a61d115 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/chem-str.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/chem-str.lua
@@ -766,6 +766,9 @@ function chemistry.stop()
if trace_metapost then
report_chemistry("metapost code:\n%s", mpcode)
end
+ if metapost.instance(chemistry.instance) then
+ f_initialize = nil
+ end
metapost.graphic {
instance = chemistry.instance,
format = chemistry.format,
@@ -773,6 +776,7 @@ function chemistry.stop()
data = mpcode,
definitions = f_initialize,
}
+ t_initialize = ""
metacode = nil
end
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/chem-str.mkiv b/Master/texmf-dist/tex/context/base/mkiv/chem-str.mkiv
index 71b104e4791..646cf13f103 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/chem-str.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/chem-str.mkiv
@@ -650,18 +650,18 @@
\chem_formula_bot_nop
\fi\fi
\ifcsname\??chemicalsymbol d:\detokenize{#1}\endcsname
- \toksapp\t_chem_mid{\chemicalsymbol[d:#1]\aligntab}%
+ \t_chem_mid\expandafter{\the\t_chem_mid\chemicalsymbol[d:#1]\aligntab}%
\else
- \toksapp\t_chem_mid{\molecule{#1}\aligntab}%
+ \t_chem_mid\expandafter{\the\t_chem_mid\molecule{#1}\aligntab}%
\fi}
\def\chem_formula_mid#1%
{\csname\??chemicalsymbol\detokenize{#1}\endcsname}
-\def\chem_formula_top_nop {\toksapp\t_chem_top{\aligntab}}
-\def\chem_formula_bot_nop {\toksapp\t_chem_bot{\aligntab}}
-\def\chem_formula_top_yes#1{\toksapp\t_chem_top{\chem_formula_top_indeed{#1}\aligntab}\settrue\c_chem_has_top}
-\def\chem_formula_bot_yes#1{\toksapp\t_chem_bot{\chem_formula_bot_indeed{#1}\aligntab}\settrue\c_chem_has_bot}
+\def\chem_formula_top_nop {\t_chem_top\expandafter{\the\t_chem_top\aligntab}}
+\def\chem_formula_bot_nop {\t_chem_bot\expandafter{\the\t_chem_bot\aligntab}}
+\def\chem_formula_top_yes#1{\t_chem_top\expandafter{\the\t_chem_top\chem_formula_top_indeed{#1}\aligntab}\settrue\c_chem_has_top}
+\def\chem_formula_bot_yes#1{\t_chem_bot\expandafter{\the\t_chem_bot\chem_formula_bot_indeed{#1}\aligntab}\settrue\c_chem_has_bot}
\def\chem_formula_top_indeed#1{\strut#1}
\def\chem_formula_bot_indeed#1{\strut#1}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/cldf-bas.lua b/Master/texmf-dist/tex/context/base/mkiv/cldf-bas.lua
index f55132a0612..07054663708 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/cldf-bas.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/cldf-bas.lua
@@ -22,38 +22,27 @@ if not modules then modules = { } end modules ['cldf-bas'] = {
-- flush(ctxcatcodes,"}")
-- end
-local tonumber = tonumber
-local type = type
-local format = string.format
-local utfchar = utf.char
-local concat = table.concat
+local tonumber = tonumber
+local type = type
+local format = string.format
+local utfchar = utf.char
+local concat = table.concat
-local context = context
-local ctxcore = context.core
+local context = context
+local ctxcore = context.core
+local variables = interfaces.variables
-local variables = interfaces.variables
+local nodepool = nodes.pool
+local new_rule = nodepool.rule
+local new_glyph = nodepool.glyph
+local current_attr = nodes.current_attr
-local ctx_flushnode = context.nuts.flush
-
-local nuts = nodes.nuts
-local tonode = nuts.tonode
-local nodepool = nuts.pool
-local new_rule = nodepool.rule
-local new_glyph = nodepool.glyph
-local new_latelua = nodepool.latelua
-
-local setattrlist = nuts.setattrlist
-
-local texgetcount = tex.getcount
-local texsetcount = tex.setcount
+local current_font = font.current
+local texgetcount = tex.getcount
+local texsetcount = tex.setcount
-- a set of basic fast ones
-function context.setfontid(n)
- -- isn't there a setter?
- context("\\setfontid%i\\relax",n)
-end
-
function context.char(k) -- used as escape too, so don't change to utf
if type(k) == "table" then
local n = #k
@@ -81,35 +70,30 @@ function context.utfchar(k)
end
end
-function context.rule(w,h,d,direction)
+function context.rule(w,h,d,dir)
local rule
if type(w) == "table" then
- rule = new_rule(w.width,w.height,w.depth,w.direction)
+ rule = new_rule(w.width,w.height,w.depth,w.dir)
else
- rule = new_rule(w,h,d,direction)
+ rule = new_rule(w,h,d,dir)
end
- setattrlist(rule,true)
- context(tonode(rule))
- -- ctx_flushnode(tonode(rule))
+ rule.attr = current_attr()
+ context(rule)
end
function context.glyph(id,k)
if id then
if not k then
- id, k = true, id
+ id, k = current_font(), id
end
local glyph = new_glyph(id,k)
- setattrlist(glyph,true)
- context(tonode(glyph))
- -- ctx_flushnode(tonode(glyph))
+ glyph.attr = current_attr()
+ context(glyph)
end
end
--- local function ctx_par () context("\\par") end
--- local function ctx_space() context("\\space") end
-
-local ctx_par = context.cs.par
-local ctx_space = context.cs.space
+local function ctx_par () context("\\par") end
+local function ctx_space() context("\\space") end
context.par = ctx_par
context.space = ctx_space
@@ -117,11 +101,8 @@ context.space = ctx_space
ctxcore.par = ctx_par
ctxcore.space = ctx_space
--- local function ctx_bgroup() context("{") end
--- local function ctx_egroup() context("}") end
-
-local ctx_bgroup = context.cs.bgroup
-local ctx_egroup = context.cs.egroup
+local function ctx_bgroup() context("{") end
+local function ctx_egroup() context("}") end
context.bgroup = ctx_bgroup
context.egroup = ctx_egroup
@@ -155,21 +136,13 @@ function ctxcore.flushboxregister(n)
context(type(n) == "number" and [[\box%s ]] or [[\box\%s]],n)
end
--- function ctxcore.beginhbox() context([[\hbox\bgroup]]) end
--- function ctxcore.beginvbox() context([[\vbox\bgroup]]) end
--- function ctxcore.beginvtop() context([[\vtop\bgroup]]) end
-
-local ctx_hbox = context.cs.hbox
-local ctx_vbox = context.cs.vbox
-local ctx_vtop = context.cs.vtop
+function ctxcore.beginhbox() context([[\hbox{]]) end
+function ctxcore.beginvbox() context([[\vbox{]]) end
+function ctxcore.beginvtop() context([[\vtop{]]) end
-function ctxcore.beginhbox() ctx_hbox() ctx_bgroup() end
-function ctxcore.beginvbox() ctx_vbox() ctx_bgroup() end
-function ctxcore.beginvtop() ctx_vtop() ctx_bgroup() end
-
-ctxcore.endhbox = ctx_egroup -- \egroup
-ctxcore.endvbox = ctx_egroup -- \egroup
-ctxcore.endvtop = ctx_egroup -- \egroup
+ctxcore.endhbox = ctx_egroup
+ctxcore.endvbox = ctx_egroup
+ctxcore.endvtop = ctx_egroup
local function allocate(name,what,cmd)
local a = format("c_syst_last_allocated_%s",what)
@@ -192,65 +165,3 @@ context.registers = {
-- not really a register but kind of belongs here
newchar = function(name,u) context([[\chardef\%s=%s\relax]],name,u) end,
}
-
-do
-
- if CONTEXTLMTXMODE > 1 then
-
- function context.latelua(f)
- -- table check moved elsewhere
- local latelua = new_latelua(f)
- setattrlist(latelua,true) -- will become an option
- ctx_flushnode(latelua,true)
- end
-
- else
-
- function context.latelua(f)
- if type(f) == "table" then
- local action = f.action
- local specification = f.specification or f
- f = function() action(specification) end
- end
- local latelua = new_latelua(f)
- setattrlist(latelua,true) -- will become an option
- ctx_flushnode(latelua,true)
- end
-
- end
-
-end
--- yes or no
-
-do
-
- local NC = ctxcore.NC
- local BC = ctxcore.BC
- local NR = ctxcore.NR
-
- context.nc = setmetatable({ }, {
- __call =
- function(t,...)
- NC()
- return context(...)
- end,
- __index =
- function(t,k)
- NC()
- return context[k]
- end,
- }
- )
-
- function context.bc(...)
- BC()
- return context(...)
- end
-
- function context.nr(...)
- NC()
- NR()
- end
-
-end
-
diff --git a/Master/texmf-dist/tex/context/base/mkiv/cldf-ini.lua b/Master/texmf-dist/tex/context/base/mkiv/cldf-ini.lua
index 9b1a4e368da..8cd6408d372 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/cldf-ini.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/cldf-ini.lua
@@ -6,8 +6,6 @@ if not modules then modules = { } end modules ['cldf-ini'] = {
license = "see context related readme files"
}
--- todo: {token} -> 3 tokens
-
-- This started as an experiment: generating context code at the lua end. After all
-- it is surprisingly simple to implement due to metatables. I was wondering if
-- there was a more natural way to deal with commands at the lua end. Of course it's
@@ -31,7 +29,7 @@ if not modules then modules = { } end modules ['cldf-ini'] = {
-- todo : context("%bold{total: }%s",total)
-- todo : context.documentvariable("title")
--
--- During the crited project we ran into the situation that luajittex was 10-20 times
+-- during the crited project we ran into the situation that luajittex was 10-20 times
-- slower that luatex ... after 3 days of testing and probing we finally figured out that
-- the the differences between the lua and luajit hashers can lead to quite a slowdown
-- in some cases.
@@ -54,11 +52,6 @@ if not modules then modules = { } end modules ['cldf-ini'] = {
-- watching Trio Hiromi Uehara, Anthony Jackson & Simon Phillips (discovered via the
-- later on YT). Hopefully the video breaks made the following better in the end.
--- This module is also a test bed for experimental features so the content changes over
--- time (for the better or worse). There have been no fundamental changes for many years
--- and performance has not changed much either.
-
-
local format, stripstring = string.format, string.strip
local next, type, tostring, tonumber, unpack, select, rawset = next, type, tostring, tonumber, unpack, select, rawset
local insert, remove, concat = table.insert, table.remove, table.concat
@@ -91,13 +84,6 @@ local texgetcount = tex.getcount
local isnode = node.is_node
local writenode = node.write
local copynodelist = node.copy_list
-local tonut = node.direct.todirect
-local tonode = node.direct.tonode
-
-local istoken = token.is_token
-local newtoken = token.new
-local createtoken = token.create
-local setluatoken = token.set_lua
local catcodenumbers = catcodes.numbers
@@ -118,31 +104,16 @@ local report_cld = logs.reporter("cld","stack")
local processlines = true -- experiments.register("context.processlines", function(v) processlines = v end)
-local tokenflushmode = true
-local nodeflushmode = true
-local scannerdefmode = true
-local maxflushnodeindex = 0x10FFFF - 1
-
--- tokenflushmode = false
--- scannerdefmode = false
--- nodeflushmode = false
-
-- In earlier experiments a function tables was referred to as lua.calls and the
-- primitive \luafunctions was \luacall and we used our own implementation of
-- a function table (more indirectness).
-local trialtypesettingstate = createtoken("trialtypesettingstate").index
-
-function context.trialtypesetting()
- return texgetcount(trialtypesettingstate) ~= 0
-end
-
local knownfunctions = lua.get_functions_table()
local showstackusage = false
trackers.register("context.stack",function(v) showstackusage = v end)
-local freed, nofused, noffreed = { }, 0, 0
+local freed, nofused, noffreed = { }, 0, 0 -- maybe use the number of @@trialtypesetting
local usedstack = function()
return nofused, noffreed
@@ -151,7 +122,7 @@ end
local flushfunction = function(slot,arg)
if arg() then
-- keep
- elseif texgetcount(trialtypesettingstate) == 0 then
+ elseif texgetcount("@@trialtypesetting") == 0 then -- @@trialtypesetting is private!
noffreed = noffreed + 1
freed[noffreed] = slot
knownfunctions[slot] = false
@@ -176,7 +147,7 @@ local storefunction = function(arg)
end
local flushnode = function(slot,arg)
- if texgetcount(trialtypesettingstate) == 0 then
+ if texgetcount("@@trialtypesetting") == 0 then -- @@trialtypesetting is private!
writenode(arg)
noffreed = noffreed + 1
freed[noffreed] = slot
@@ -211,13 +182,9 @@ local f_resolve = nil
local p_resolve = ((1-lpegP("."))^1 / function(s) f_resolve = f_resolve[s] end * lpegP(".")^0)^1
local function resolvestoredfunction(str)
- if type(str) == "string" then
- f_resolve = global
- lpegmatch(p_resolve,str)
- return f_resolve
- else
- return str
- end
+ f_resolve = global
+ lpegmatch(p_resolve,str)
+ return f_resolve
end
local function expose(slot,f,...) -- so we can register yet undefined functions
@@ -279,17 +246,17 @@ local registerfunction = function(f,direct) -- either f=code or f=namespace,dire
func = resolvestoredfunction(f)
end
if type(func) ~= "function" then
- func = function() report_cld("invalid resolve %A, case %s",f,1) end
+ func = function() report_cld("invalid resolve %A",f) end
end
elseif type(f) == "string" then
func = loadstring(f)
if type(func) ~= "function" then
- func = function() report_cld("invalid code %A, case %s",f,2) end
+ func = function() report_cld("invalid code %A",f) end
end
elseif type(f) == "function" then
func = f
else
- func = function() report_cld("invalid function %A, case %s",f,3) end
+ func = function() report_cld("invalid function %A",f) end
end
knownfunctions[slot] = func
return slot
@@ -338,52 +305,53 @@ local storedscanners = interfaces.storedscanners
storage.register("interfaces/storedscanners", storedscanners, "interfaces.storedscanners")
local interfacescanners = setmetatablenewindex(function(t,k,v)
- rawset(t,k,v)
if storedscanners[k] then
- -- report_cld("warning: scanner %a is already set (mode 1a)",k)
+ -- report_cld("warning: scanner %a is already set",k)
-- os.exit()
-- \scan_<k> is already in the format
-- report_cld("using interface scanner: %s",k)
- elseif scannerdefmode then
- -- report_cld("installing interface scanner: %s (mode 1b)",k)
- -- local n = registerfunction(interfaces.scanners[k],true)
- local n = registerfunction("interfaces.scanners."..k,true)
- storedscanners[k] = n
- local name = "clf_" .. k
- setluatoken(name,n,"global") -- todo : protected and "protected" or ""
else
- -- report_cld("installing interface scanner: %s (mode 1c)",k)
+ -- todo: allocate slot here and pass it
storedscanners[k] = true
+ -- report_cld("installing interface scanner: %s",k)
context("\\installctxscanner{clf_%s}{interfaces.scanners.%s}",k,k)
end
- -- rawset(t,k,v)
+ rawset(t,k,v)
end)
function interfaces.registerscanner(name,action,protected,public,call)
- rawset(interfacescanners,name,action)
if storedscanners[name] then
- -- report_cld("warning: scanner %a is already set (mode 2a)",name)
+ -- report_cld("warning: scanner %a is already set",k)
-- os.exit()
-- \scan_<k> is already in the format
-- report_cld("using interface scanner: %s",k)
- elseif scannerdefmode then
- -- report_cld("installing interface scanner: %s (mode 2b)",name)
- -- local n = registerfunction(action,true) -- todo
- local n = registerfunction("interfaces.scanners."..name,true)
- storedscanners[name] = n
- local name = public and name or ("clf_" .. name)
- setluatoken(name,n,"global",protected and "protected" or "")
else
storedscanners[name] = true
- -- report_cld("installing interface scanner: %s (mode 2c)",name)
- context("\\install%sctxscanner{%s%s}{interfaces.scanners.%s}",
- protected and "protected" or "",
- public and "" or "clf_",
- name,
- name
- )
- end
- -- rawset(interfacescanners,name,action)
+-- if protected then
+-- -- report_cld("installing expandable interface scanner: %s",k)
+-- if public then
+-- context("\\installprotectedctxscanner{%s}{interfaces.scanners.%s}",name,name)
+-- else
+-- context("\\installprotectedctxscanner{clf_%s}{interfaces.scanners.%s}",name,name)
+-- end
+-- else
+-- -- report_cld("installing protected interface scanner: %s",k)
+-- if public then
+-- context("\\installctxscanner{%s}{interfaces.scanners.%s}",name,name)
+-- else
+-- context("\\installctxscanner{clf_%s}{interfaces.scanners.%s}",name,name)
+-- end
+-- end
+ -- report_cld("installing interface scanner: %s",k)
+ context("\\install%sctxscanner%s{%s%s}{interfaces.scanners.%s}",
+ protected and "protected" or "",
+ call and "call" or "",
+ public and "" or "clf_",
+ name,
+ name
+ )
+ end
+ rawset(interfacescanners,name,action)
end
interfaces.scanners = storage.mark(interfacescanners)
@@ -411,7 +379,7 @@ end
local function dummy() end
-function commands.ctxresetter(name) -- to be checked
+function commands.ctxresetter(name)
return function()
if storedscanners[name] then
rawset(interfacescanners,name,dummy)
@@ -420,6 +388,10 @@ function commands.ctxresetter(name) -- to be checked
end
end
+function context.trialtypesetting()
+ return texgetcount("@@trialtypesetting") ~= 0
+end
+
-- Should we keep the catcodes with the function?
local catcodestack = { }
@@ -701,8 +673,6 @@ local s_cldl_option_b = "[\\cldl"
local s_cldl_option_f = "[\\cldl" -- add space (not needed)
local s_cldl_option_e = "]"
local s_cldl_option_s = "\\cldl"
------ s_cldl_option_d = "\\cldd"
-local s_cldl_option_d = s_cldl_option_s
local s_cldl_argument_b = "{\\cldl"
local s_cldl_argument_f = "{\\cldl "
local s_cldl_argument_e = "}"
@@ -713,23 +683,14 @@ local s_cldl_argument_e = "}"
-- local s_cldl_argument_b = "{"
-- local s_cldl_argument_f = "{ "
-local t_cldl_luafunction = createtoken("luafunctioncall")
-local lua_expandable_call_token_code = token.command_id and token.command_id("lua_expandable_call")
-
local function writer(parent,command,...) -- already optimized before call
-
- if type(command) == "string" then -- for now
- flush(currentcatcodes,command) -- todo: ctx|prt|texcatcodes
- else
- flush(command) -- todo: ctx|prt|texcatcodes
- end
-
+ flush(currentcatcodes,command) -- todo: ctx|prt|texcatcodes
local direct = false
-- local t = { ... }
-- for i=1,#t do
-- local ti = t[i]
for i=1,select("#",...) do
- local ti = select(i,...)
+ local ti = (select(i,...))
if direct then
local typ = type(ti)
if typ == "string" or typ == "number" then
@@ -742,8 +703,6 @@ local function writer(parent,command,...) -- already optimized before call
-- nothing
elseif ti == "" then
flush(currentcatcodes,"{}")
- -- elseif ti == 1 then
- -- flush(currentcatcodes,"{1}")
else
local typ = type(ti)
if typ == "string" then
@@ -760,7 +719,7 @@ local function writer(parent,command,...) -- already optimized before call
flush(currentcatcodes,"}")
end
elseif typ == "number" then
- -- numbers never have funny catcodesz
+ -- numbers never have funny catcodes
flush(currentcatcodes,"{",ti,"}")
elseif typ == "table" then
local tn = #ti
@@ -790,16 +749,7 @@ local function writer(parent,command,...) -- already optimized before call
elseif tn == 1 then -- some 20% faster than the next loop
local tj = ti[1]
if type(tj) == "function" then
- tj = storefunction(tj)
- if tokenflushmode then
- if newtoken then
- flush(currentcatcodes,"[",newtoken(tj,lua_expandable_call_code),"]")
- else
- flush(currentcatcodes,"[",t_cldl_luafunction,tj,"]")
- end
- else
- flush(currentcatcodes,s_cldl_option_b,tj,s_cldl_option_e)
- end
+ flush(currentcatcodes,s_cldl_option_b,storefunction(tj),s_cldl_option_e)
else
flush(currentcatcodes,"[",tj,"]")
end
@@ -808,15 +758,10 @@ local function writer(parent,command,...) -- already optimized before call
for j=1,tn do
local tj = ti[j]
if type(tj) == "function" then
- tj = storefunction(tj)
- if tokenflushmode then
- if newtoken then
- flush(currentcatcodes,"[",newtoken(tj,lua_expandable_call_code),j == tn and "]" or ",")
- else
- flush(currentcatcodes,"[",t_cldl_luafunction,tj,j == tn and "]" or ",")
- end
+ if j == tn then
+ flush(currentcatcodes,s_cldl_option_s,storefunction(tj),"]")
else
- flush(currentcatcodes,s_cldl_option_s,tj,j == tn and "]" or ",")
+ flush(currentcatcodes,s_cldl_option_s,storefunction(tj),",")
end
else
if j == tn then
@@ -829,16 +774,7 @@ local function writer(parent,command,...) -- already optimized before call
end
elseif typ == "function" then
-- todo: ctx|prt|texcatcodes
- ti = storefunction(ti)
- if tokenflushmode then
- if newtoken then
- flush(currentcatcodes,"{",newtoken(ti,lua_expandable_call_token_code),"}")
- else
- flush(currentcatcodes,"{",t_cldl_luafunction,ti,"}")
- end
- else
- flush(currentcatcodes,s_cldl_argument_f,ti,s_cldl_argument_e)
- end
+ flush(currentcatcodes,s_cldl_argument_f,storefunction(ti),s_cldl_argument_e)
elseif typ == "boolean" then
if ti then
flushdirect(currentcatcodes,"\r")
@@ -847,123 +783,62 @@ local function writer(parent,command,...) -- already optimized before call
end
elseif typ == "thread" then
report_context("coroutines not supported as we cannot yield across boundaries")
- elseif isnode(ti) then -- slow | why {} here ?
- if nodeflushmode then
- local n = tonut(ti)
- if n <= maxflushnodeindex then
- flush(currentcatcodes,"{",ti,"}")
- else
- flush(currentcatcodes,s_cldl_argument_b,storenode(ti),s_cldl_argument_e)
- end
- else
- flush(currentcatcodes,s_cldl_argument_b,storenode(ti),s_cldl_argument_e)
- end
+ elseif isnode(ti) then -- slow
+ flush(currentcatcodes,s_cldl_argument_b,storenode(ti),s_cldl_argument_e)
else
report_context("error: %a gets a weird argument %a",command,ti)
end
--- else
--- local n = isnode(ti)
--- if n then
--- if nodeflushmode and n <= maxflushnodeindex then
--- flush(ti)
--- else
--- flush(currentcatcodes,s_cldl_argument_b,storenode(ti),s_cldl_argument_e)
--- end
--- else
--- report_context("error: %a gets a weird argument %a",command,ti)
--- end
--- end
end
end
end
-local core
-
-if tokenflushmode then -- combine them
-
- local toks = tokens.cache
-
- context.tokenizedcs = toks
-
- core = setmetatableindex(function(parent,k)
- local t
- local f = function(first,...)
- if not t then
- t = toks[k]
- end
- if first == nil then
- flush(t)
- else
- return writer(context,t,first,...)
- end
- end
- parent[k] = f
- return f
- end)
-
--- core = setmetatableindex(function(parent,k)
--- local t
--- local f = function(first,...)
--- if not t then
--- t = toks[k]
--- end
--- local f = function(first,...)
--- if first == nil then
--- flush(t)
+-- if performance really matters we can consider a compiler but it will never
+-- pay off
+
+-- local function prtwriter(command,...) -- already optimized before call
+-- flush(prtcatcodes,command)
+-- for i=1,select("#",...) do
+-- local ti = (select(i,...))
+-- if ti == nil then
+-- -- nothing
+-- elseif ti == "" then
+-- flush(prtcatcodes,"{}")
+-- else
+-- local tp = type(ti)
+-- if tp == "string" or tp == "number"then
+-- flush(prtcatcodes,"{",ti,"}")
+-- elseif tp == "function" then
+-- flush(prtcatcodes,s_cldl_argument_f,storefunction(ti),s_cldl_argument_e)
+-- elseif isnode(ti) then
+-- flush(prtcatcodes,s_cldl_argument_b,storenode(ti),s_cldl_argument_e)
-- else
--- return writer(context,t,first,...)
+-- report_context("fatal error: prt %a gets a weird argument %a",command,ti)
-- end
-- end
--- parent[k] = f
--- if first == nil then
--- flush(t)
--- else
--- return writer(context,t,first,...)
--- end
-- end
--- parent[k] = f
--- return f
--- end)
-
- core.cs = setmetatableindex(function(parent,k)
- local t
- local f = function()
- if not t then
- t = toks[k]
- end
- flush(t)
- end
- parent[k] = f
- return f
- end)
-
-else
-
- context.tokenizedcs = false
-
- core = setmetatableindex(function(parent,k)
- local c = "\\" .. k
- local f = function(first,...)
- if first == nil then
- flush(currentcatcodes,c)
- else
- return writer(context,c,first,...)
- end
- end
- parent[k] = f
- return f
- end)
+-- end
- core.cs = setmetatableindex(function(parent,k)
- local c = "\\" .. k -- tostring(k)
- local f = function()
+local core = setmetatableindex(function(parent,k)
+ local c = "\\" .. k -- tostring(k)
+ local f = function(first,...)
+ if first == nil then
flush(currentcatcodes,c)
+ else
+ return writer(context,c,first,...)
end
- parent[k] = f
- return f
- end)
+ end
+ parent[k] = f
+ return f
+end)
-end
+core.cs = setmetatableindex(function(parent,k)
+ local c = "\\" .. k -- tostring(k)
+ local f = function()
+ flush(currentcatcodes,c)
+ end
+ parent[k] = f
+ return f
+end)
local indexer = function(parent,k)
if type(k) == "string" then
@@ -1058,16 +933,8 @@ local caller = function(parent,f,a,...)
end
elseif typ == "function" then
-- ignored: a ...
- f = storefunction(f)
- if tokenflushmode then
- if newtoken then
- flush(currentcatcodes,"{",newtoken(f,lua_expandable_call_token_code),"}")
- else
- flush(currentcatcodes,"{",t_cldl_luafunction,f,"}")
- end
- else
- flush(currentcatcodes,s_cldl_argument_b,f,s_cldl_argument_e) -- todo: ctx|prt|texcatcodes
- end
+ flush(currentcatcodes,"{\\cldl",storefunction(f),"}") -- todo: ctx|prt|texcatcodes
+ -- flush(currentcatcodes,"{",storefunction(f),"}") -- todo: ctx|prt|texcatcodes
elseif typ == "boolean" then
if f then
if a ~= nil then
@@ -1086,55 +953,20 @@ local caller = function(parent,f,a,...)
elseif typ == "thread" then
report_context("coroutines not supported as we cannot yield across boundaries")
elseif isnode(f) then -- slow
- if nodeflushmode then
- local n = tonut(f)
- if n <= maxflushnodeindex then
- flush(f)
- else
- flush(currentcatcodes,s_cldl_option_s,storenode(f)," ")
- end
- else
- flush(currentcatcodes,s_cldl_option_s,storenode(f)," ")
- end
+ -- writenode(f)
+ flush(currentcatcodes,"\\cldl",storenode(f)," ")
+ -- flush(currentcatcodes,"",storenode(f)," ")
else
report_context("error: %a gets a weird argument %a","context",f)
end
--- else
--- local n = isnode(f)
--- if n then
--- if nodeflushmode and n <= maxflushnodeindex then
--- flush(f)
--- else
--- flush(currentcatcodes,s_cldl_option_s,storenode(f)," ")
--- end
--- else
--- report_context("error: %a gets a weird argument %a","context",f)
--- end
--- end
end
end
-context.nodes = { -- todo
+context.nodes = {
store = storenode,
flush = function(n)
- if nodeflushmode and tonut(n) <= maxflushnodeindex then
- flush(n)
- else
- flush(currentcatcodes,d and s_cldl_option_d or s_cldl_option_s,storenode(n)," ")
- end
- end,
-}
-
-context.nuts = { -- todo
- store = function(n)
- return storenode(tonut(n))
- end,
- flush = function(n,d)
- if nodeflushmode and n <= maxflushnodeindex then
- flush(tonode(n))
- else
- flush(currentcatcodes,d and s_cldl_option_d or s_cldl_option_s,storenode(tonode(n))," ")
- end
+ flush(currentcatcodes,"\\cldl",storenode(n)," ")
+ -- flush(currentcatcodes,"",storenode(n)," ")
end,
}
@@ -1180,8 +1012,8 @@ local nofflushes = 0
local tracingpermitted = true
local visualizer = lpeg.replacer {
- { "\n", "<<newline>>" },
- { "\r", "<<par>>" },
+ { "\n","<<newline>>" },
+ { "\r","<<par>>" },
}
statistics.register("traced context", function()
@@ -1194,48 +1026,13 @@ statistics.register("traced context", function()
end
end)
-local function userdata(argument)
- if isnode(argument) then
- return formatters["<< %s node %i>>"](nodes.nodecodes[argument.id],tonut(argument))
- end
- if istoken(argument) then
- local csname = argument.csname
- if csname then
- -- return formatters["<<\\%s>>"](csname)
- return formatters["\\%s"](csname)
- end
- local cmdname = argument.cmdname
- if cmdname == "lua_expandable_call" or cmdname == "lua_call" then
- return "<<function>>" -- argument.mode
- end
- return "<<token>>"
- end
- return "<<userdata>>"
-end
-
-
local tracedwriter = function(parent,...) -- also catcodes ?
nofwriters = nofwriters + 1
local savedflush = flush
local savedflushdirect = flushdirect -- unlikely to be used here
- local t = { "w : - : " }
- local n = 1
+ local t, n = { "w : - : " }, 1
local traced = function(catcodes,...) -- todo: check for catcodes
- local s = type(catcodes) == "number" and { ... } or { catcodes, ... }
- for i=1,#s do
- local argument = s[i]
- local argtype = type(argument)
- if argtype == "string" then
- s[i] = lpegmatch(visualizer,argument)
- elseif argtype == "number" then
- s[i] = argument
- elseif argtype == "userdata" then
- s[i] = userdata(argument)
- else
- s[i] = formatters["<<%S>>"](argument)
- end
- end
- s = concat(s)
+ local s = concat({...})
s = lpegmatch(visualizer,s)
n = n + 1
t[n] = s
@@ -1263,10 +1060,9 @@ end
local traced = function(one,two,...)
if two ~= nil then
-- only catcodes if 'one' is number
- local catcodes = type(one) == "number" and one
+ local catcodes = type(one) == "number" and one
local arguments = catcodes and { two, ... } or { one, two, ... }
- local collapsed = { formatters["f : %s : "](catcodes or '-') }
- local c = 1
+ local collapsed, c = { formatters["f : %s : "](catcodes or '-') }, 1
for i=1,#arguments do
local argument = arguments[i]
local argtype = type(argument)
@@ -1275,8 +1071,6 @@ local traced = function(one,two,...)
collapsed[c] = lpegmatch(visualizer,argument)
elseif argtype == "number" then
collapsed[c] = argument
- elseif argtype == "userdata" then
- collapsed[c] = userdata(argument)
else
collapsed[c] = formatters["<<%S>>"](argument)
end
@@ -1289,8 +1083,6 @@ local traced = function(one,two,...)
currenttrace(formatters["f : - : %s"](lpegmatch(visualizer,one)))
elseif argtype == "number" then
currenttrace(formatters["f : - : %s"](one))
- elseif argtype == "userdata" then
- currenttrace(formatters["F : - : %s"](userdata(one)))
else
currenttrace(formatters["f : - : <<%S>>"](one))
end
@@ -1383,21 +1175,24 @@ do
local sentinel = string.char(26) -- ASCII SUB character : endoffileasciicode : ignorecatcode
local level = 0
- local function collect(c,a,...) -- can be optimized
- if type(c) == "userdata" then
+ local function collect(c,...) -- can be optimized
+ -- snippets
+ for i=1,select("#",...) do
nofcollected = nofcollected + 1
- -- collected[nofcollected] = userdata(c)
- collected[nofcollected] = "\\" .. c.csname
- end
- if a then
- for i=1,select("#",a,...) do
- local c = select(i,a,...)
- nofcollected = nofcollected + 1
- collected[nofcollected] = type(c) == "userdata" and userdata(c) or c
- end
+ collected[nofcollected] = (select(i,...))
end
end
+ -- local function collectdirect(c,...) -- can be optimized
+ -- -- lines
+ -- for i=1,select("#",...) do
+ -- n = n + 1
+ -- t[n] = (select(i,...))
+ -- n = n + 1
+ -- t[n] = "\r"
+ -- end
+ -- end
+
local collectdirect = collect
local permitted = true
@@ -1429,39 +1224,34 @@ do
end
end
- local findtexfile = resolvers.findtexfile
- local findfile = resolvers.findfile
+end
- function context.runfile(filename)
- local foundname = findtexfile(file.addsuffix(filename,"cld")) or ""
- if foundname ~= "" then
- local ok = dofile(foundname)
- if type(ok) == "function" then
- if trace_cld then
- report_context("begin of file %a (function call)",foundname)
- end
- ok()
- if trace_cld then
- report_context("end of file %a (function call)",foundname)
- end
- elseif ok then
- report_context("file %a is processed and returns true",foundname)
- else
- report_context("file %a is processed and returns nothing",foundname)
+--
+
+function context.runfile(filename)
+ local foundname = resolvers.findtexfile(file.addsuffix(filename,"cld")) or ""
+ if foundname ~= "" then
+ local ok = dofile(foundname)
+ if type(ok) == "function" then
+ if trace_cld then
+ report_context("begin of file %a (function call)",foundname)
end
+ ok()
+ if trace_cld then
+ report_context("end of file %a (function call)",foundname)
+ end
+ elseif ok then
+ report_context("file %a is processed and returns true",foundname)
else
- report_context("unknown file %a",filename)
+ report_context("file %a is processed and returns nothing",foundname)
end
+ else
+ report_context("unknown file %a",filename)
end
+end
- function context.loadfile(filename)
- context(stripstring(loaddata(findfile(filename))))
- end
-
- function context.loadviafile(filename)
- viafile(stripstring(loaddata(findfile(filename))))
- end
-
+function context.loadfile(filename)
+ context(stripstring(loaddata(resolvers.findfile(filename))))
end
-- some functions
@@ -1480,7 +1270,7 @@ do
local function indexer(parent,k)
local f = function(...)
- local a = { ... } -- this also freezes ...
+ local a = { ... }
return function()
-- return context[k](unpack(a))
return core[k](unpack(a))
@@ -1505,48 +1295,46 @@ do
end
--- do
---
--- -- context.nested (todo: lines), creates strings
---
--- local nested = { }
---
--- local function indexer(parent,k) -- not ok when traced
--- local f = function(...)
--- local t, savedflush, n = { }, flush, 0
--- flush = function(c,f,s,...) -- catcodes are ignored
--- n = n + 1
--- t[n] = s and concat{f,s,...} or f -- optimized for #args == 1
--- end
--- -- context[k](...)
--- core[k](...)
--- flush = savedflush
--- return concat(t)
--- end
--- parent[k] = f
--- return f
--- end
---
--- local function caller(parent,...)
--- local t, savedflush, n = { }, flush, 0
--- flush = function(c,f,s,...) -- catcodes are ignored
--- n = n + 1
--- t[n] = s and concat{f,s,...} or f -- optimized for #args == 1
--- end
--- -- context(...)
--- defaultcaller(context,...)
--- flush = savedflush
--- return concat(t)
--- end
---
--- setmetatableindex(nested,indexer)
--- setmetatablecall (nested,caller)
---
--- context.nested = nested
---
--- end
+do
+
+ -- context.nested (todo: lines), creates strings
-context.nested = context.delayed
+ local nested = { }
+
+ local function indexer(parent,k) -- not ok when traced
+ local f = function(...)
+ local t, savedflush, n = { }, flush, 0
+ flush = function(c,f,s,...) -- catcodes are ignored
+ n = n + 1
+ t[n] = s and concat{f,s,...} or f -- optimized for #args == 1
+ end
+ -- context[k](...)
+ core[k](...)
+ flush = savedflush
+ return concat(t)
+ end
+ parent[k] = f
+ return f
+ end
+
+ local function caller(parent,...)
+ local t, savedflush, n = { }, flush, 0
+ flush = function(c,f,s,...) -- catcodes are ignored
+ n = n + 1
+ t[n] = s and concat{f,s,...} or f -- optimized for #args == 1
+ end
+ -- context(...)
+ defaultcaller(context,...)
+ flush = savedflush
+ return concat(t)
+ end
+
+ setmetatableindex(nested,indexer)
+ setmetatablecall (nested,caller)
+
+ context.nested = nested
+
+end
-- verbatim
@@ -1572,22 +1360,14 @@ function context.newindexer(catcodes,cmdcodes)
contentcatcodes = savedcatcodes
end
- if tokenflushmode then
-
- handler.cs = core.cs
-
- else
-
- handler.cs = setmetatableindex(function(parent,k)
- local c = "\\" .. k -- tostring(k)
- local f = function()
- flush(cmdcodes,c)
- end
- parent[k] = f
- return f
- end)
-
- end
+ handler.cs = setmetatableindex(function(parent,k)
+ local c = "\\" .. k -- tostring(k)
+ local f = function()
+ flush(cmdcodes,c)
+ end
+ parent[k] = f
+ return f
+ end)
setmetatableindex(handler,indexer)
setmetatablecall (handler,caller)
@@ -1640,51 +1420,21 @@ do
end
end
- local indexer
-
- if tokenflushmode then -- combine them
-
- local toks = tokens.cache
-
- indexer = function(parent,k)
- if type(k) == "string" then
- local t
- local f = function(first,...)
- if not t then
- t = toks[k]
- end
- if first == nil then
- flush(t)
- else
- return formattedflush(parent,t,first,...)
- end
- end
- parent[k] = f
- return f
- else
- return context -- catch
- end
- end
-
- else
-
- indexer = function(parent,k)
- if type(k) == "string" then
- local c = "\\" .. k
- local f = function(first,...)
- if first == nil then
- flush(currentcatcodes,c)
- else
- return formattedflush(parent,c,first,...)
- end
+ local function indexer(parent,k)
+ if type(k) == "string" then
+ local c = "\\" .. k
+ local f = function(first,...)
+ if first == nil then
+ flush(currentcatcodes,c)
+ else
+ return formattedflush(parent,c,first,...)
end
- parent[k] = f
- return f
- else
- return context -- catch
end
+ parent[k] = f
+ return f
+ else
+ return context -- catch
end
-
end
-- formatted([catcodes,]format[,...])
diff --git a/Master/texmf-dist/tex/context/base/mkiv/cldf-ini.mkiv b/Master/texmf-dist/tex/context/base/mkiv/cldf-ini.mkiv
index 29fb15d6883..27ce42aa2d0 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/cldf-ini.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/cldf-ini.mkiv
@@ -13,8 +13,6 @@
\writestatus{loading}{ConTeXt Lua Documents / Initialization}
-\newcount\trialtypesettingstate % gets aliased at the Lua end
-
\registerctxluafile{cldf-ini}{}
%D With each new update of \MKIV\ we can join Within Temptation in
@@ -43,16 +41,14 @@
% \fi
\let\cldl\luafunction
-\let\cldd\lateluafunction
% \catcode`=\activecatcode \let\luafunction % saves 10% on the call
-% \catcodetable\ctxcatcodes \catcode`^=\superscriptcatcode\catcode1=\activecatcode \glet^^A=\cldf
-% \catcodetable\ctxcatcodes \catcode`^=\superscriptcatcode\catcode2=\activecatcode \glet^^B=\cldn
+% \catcodetable\ctxcatcodes \catcode`^=\superscriptcatcode\catcode1=\activecatcode \global\let^^A=\cldf
+% \catcodetable\ctxcatcodes \catcode`^=\superscriptcatcode\catcode2=\activecatcode \global\let^^B=\cldn
\normalprotected\def\cldprocessfile#1{\directlua{context.runfile("#1")}}
\def\cldloadfile #1{\directlua{context.loadfile("#1")}}
- \def\cldloadviafile#1{\directlua{context.loadviafile("#1")}}
\def\cldcontext #1{\directlua{context(#1)}}
\def\cldcommand #1{\directlua{context.#1}}
% \def\cldverbatim #1{\directlua{context.verbatim.#1}} % maybe make verbatim global
diff --git a/Master/texmf-dist/tex/context/base/mkiv/cldf-int.lua b/Master/texmf-dist/tex/context/base/mkiv/cldf-int.lua
index 52cfea8d0ae..a97eadf35ef 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/cldf-int.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/cldf-int.lua
@@ -88,10 +88,9 @@ function interfaces.definecommand(name,specification) -- name is optional
else
-- we could flush immediate but tracing is bad then
stack[name] = { }
- local opt = 0
- local done = false
+ local opt, done = 0, false
local snippets = { } -- we can reuse it
- local mkivdo = "\\mkivdo" .. name -- maybe clddo
+ local mkivdo = "\\mkivdo" .. name -- maybe clddo
snippets[#snippets+1] = "\\def"
snippets[#snippets+1] = mkivdo
for i=1,na do
diff --git a/Master/texmf-dist/tex/context/base/mkiv/cldf-scn.lua b/Master/texmf-dist/tex/context/base/mkiv/cldf-scn.lua
index d0b16e034fa..ccf1f01c6b5 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/cldf-scn.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/cldf-scn.lua
@@ -25,7 +25,6 @@ local scanners = interfaces.scanners
local register = interfaces.registerscanner
local compile = tokens.compile or function() end
-local presets = tokens.presets
local dummy = function() end
@@ -48,10 +47,6 @@ function interfaces.implement(specification)
if name == "" then
name = nil
end
- local p = arguments and presets[arguments]
- if p then
- arguments = p
- end
local scanner
local resetter = onlyonce and name and commands.ctxresetter(name)
if resetter then
@@ -77,7 +72,7 @@ function interfaces.implement(specification)
if scanners[name] and not specification.overload then
report("warning: 'scanners.%s' is redefined",name)
end
- -- scanners[name] = scanner -- we now use:
+-- scanners[name] = scanner
register(name,scanner,specification.protected,specification.public,specification.call)
if private then
return
diff --git a/Master/texmf-dist/tex/context/base/mkiv/cldf-ver.lua b/Master/texmf-dist/tex/context/base/mkiv/cldf-ver.lua
index 7a1c813014b..3710b24159a 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/cldf-ver.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/cldf-ver.lua
@@ -13,69 +13,32 @@ if not modules then modules = { } end modules ['cldf-ver'] = {
local concat, tohandle = table.concat, table.tohandle
local splitlines, strip = string.splitlines, string.strip
local tostring, type = tostring, type
-local assignbuffer = buffers.assign
local context = context
-context.tobuffer = assignbuffer -- (name,str,catcodes)
-
-function context.tolines(str,strip)
- local lines = type(str) == "string" and splitlines(str) or str
- for i=1,#lines do
- if strip then
- context(strip(lines[i]) .. " ")
- else
- context(lines[i] .. " ")
- end
- end
-end
-
--- local function flush(...)
--- context(concat { ..., "\r" }) -- was \n
--- end
---
--- somehow this doesn't work any longer .. i need to figure out why
---
--- local function t_tocontext(t)
--- context.starttyping { "typing" } -- else [1] is intercepted
--- context.pushcatcodes("verbatim")
--- -- tohandle(flush,...)
--- context(table.serialize(t))
--- context.stoptyping()
--- context.popcatcodes()
--- end
---
--- local function s_tocontext(first,second,...) -- we need to catch {\}
--- context.type()
--- context("{")
--- context.pushcatcodes("verbatim")
--- if second then
--- context(concat({ first, second, ... }, " "))
--- else
--- context(first) -- no need to waste a { }
--- end
--- context.popcatcodes()
--- context("}")
--- end
-
-local t_buffer = { "t_o_c_o_n_t_e_x_t" }
-local t_typing = { "typing" }
-local t_type = { "type" }
-
-local function flush(s,inline)
- assignbuffer("t_o_c_o_n_t_e_x_t",s)
- context[inline and "typeinlinebuffer" or "typebuffer"](t_buffer)
- context.resetbuffer(t_buffer)
+local function flush(...)
+ context(concat{...,"\r"}) -- was \n
end
-local function t_tocontext(t)
- local s = table.serialize(t)
- context(function() flush(s,false) end)
+local function t_tocontext(...)
+ context.starttyping { "typing" } -- else [1] is intercepted
+ context.pushcatcodes("verbatim")
+ tohandle(flush,...) -- ok?
+ context.stoptyping()
+ context.popcatcodes()
end
-local function s_tocontext(first,second,...) -- we need to catch {\}
- local s = second and concat({ first, second, ... }, " ") or first
- context(function() flush(s,true) end)
+local function s_tocontext(first,...) -- we need to catch {\}
+ context.type()
+ context("{")
+ context.pushcatcodes("verbatim")
+ if first then
+ context(first) -- no need to waste a { }
+ else
+ context(concat({first,...}," "))
+ end
+ context.popcatcodes()
+ context("}")
end
local function b_tocontext(b)
@@ -111,3 +74,15 @@ end)
context.tocontext = tocontext
+context.tobuffer = buffers.assign -- (name,str,catcodes)
+
+function context.tolines(str,strip)
+ local lines = type(str) == "string" and splitlines(str) or str
+ for i=1,#lines do
+ if strip then
+ context(strip(lines[i]) .. " ")
+ else
+ context(lines[i] .. " ")
+ end
+ end
+end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/colo-imp-crayola.mkiv b/Master/texmf-dist/tex/context/base/mkiv/colo-imp-crayola.mkiv
index ae955ec1c18..dbae02d5a2a 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/colo-imp-crayola.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/colo-imp-crayola.mkiv
@@ -1,9 +1,9 @@
%D \module
-%D [ file=colo-imp-crayola
-%D version=2016.03.21,
-%D title=\CONTEXT\ Color Macros,
-%D subtitle=Crayola,
-%D author=Alan Braslau]
+%D [ file=colo-imp-crayola
+%D version=2016.03.21,
+%D title=\CONTEXT\ Color Macros,
+%D subtitle=Crayola,
+%D author=Alan Braslau]
%C
%C This module is part of the \CONTEXT\ macro||package and is
%C therefore copyrighted by \PRAGMA, See mreadme.pdf for
diff --git a/Master/texmf-dist/tex/context/base/mkiv/colo-imp-svg.mkiv b/Master/texmf-dist/tex/context/base/mkiv/colo-imp-svg.mkiv
deleted file mode 100644
index f39adaa9874..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/colo-imp-svg.mkiv
+++ /dev/null
@@ -1,164 +0,0 @@
-%D \module
-%D [ file=colo-imp-svg,
-%D version=2018.09.17,
-%D title=\CONTEXT\ Color Macros,
-%D subtitle=SVG]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA, See mreadme.pdf for
-%C details.
-
-%D This module was prepared by an user who wants to stay anonymous and is
-%D derived from \url {http://www.december.com/html/spec/colorsvghex.html}.
-
-\startprotectedcolors
-
-\definecolor [black] [h=000000]
-\definecolor [navy] [h=000080]
-\definecolor [darkblue] [h=00008B]
-\definecolor [mediumblue] [h=0000CD]
-\definecolor [blue] [h=0000FF]
-\definecolor [darkgreen] [h=006400]
-\definecolor [green] [h=008000]
-\definecolor [teal] [h=008080]
-\definecolor [darkcyan] [h=008B8B]
-\definecolor [deepskyblue] [h=00BFFF]
-\definecolor [darkturquoise] [h=00CED1]
-\definecolor [mediumspringgreen] [h=00FA9A]
-\definecolor [lime] [h=00FF00]
-\definecolor [springgreen] [h=00FF7F]
-\definecolor [cyan] [h=00FFFF]
-\definecolor [aqua] [h=00FFFF]
-\definecolor [midnightblue] [h=191970]
-\definecolor [dodgerblue] [h=1E90FF]
-\definecolor [lightseagreen] [h=20B2AA]
-\definecolor [forestgreen] [h=228B22]
-\definecolor [seagreen] [h=2E8B57]
-\definecolor [darkslategray] [h=2F4F4F]
-\definecolor [darkslategrey] [h=2F4F4F]
-\definecolor [limegreen] [h=32CD32]
-\definecolor [mediumseagreen] [h=3CB371]
-\definecolor [turquoise] [h=40E0D0]
-\definecolor [royalblue] [h=4169E1]
-\definecolor [steelblue] [h=4682B4]
-\definecolor [darkslateblue] [h=483D8B]
-\definecolor [mediumturquoise] [h=48D1CC]
-\definecolor [indigo] [h=4B0082]
-\definecolor [darkolivegreen] [h=556B2F]
-\definecolor [cadetblue] [h=5F9EA0]
-\definecolor [cornflowerblue] [h=6495ED]
-\definecolor [mediumaquamarine] [h=66CDAA]
-\definecolor [dimgrey] [h=696969]
-\definecolor [dimgray] [h=696969]
-\definecolor [slateblue] [h=6A5ACD]
-\definecolor [olivedrab] [h=6B8E23]
-\definecolor [slategrey] [h=708090]
-\definecolor [slategray] [h=708090]
-\definecolor [lightslategray] [h=778899]
-\definecolor [lightslategrey] [h=778899]
-\definecolor [mediumslateblue] [h=7B68EE]
-\definecolor [lawngreen] [h=7CFC00]
-\definecolor [chartreuse] [h=7FFF00]
-\definecolor [aquamarine] [h=7FFFD4]
-\definecolor [maroon] [h=800000]
-\definecolor [purple] [h=800080]
-\definecolor [olive] [h=808000]
-\definecolor [gray] [h=808080]
-\definecolor [grey] [h=808080]
-\definecolor [skyblue] [h=87CEEB]
-\definecolor [lightskyblue] [h=87CEFA]
-\definecolor [blueviolet] [h=8A2BE2]
-\definecolor [darkred] [h=8B0000]
-\definecolor [darkmagenta] [h=8B008B]
-\definecolor [saddlebrown] [h=8B4513]
-\definecolor [darkseagreen] [h=8FBC8F]
-\definecolor [lightgreen] [h=90EE90]
-\definecolor [mediumpurple] [h=9370DB]
-\definecolor [darkviolet] [h=9400D3]
-\definecolor [palegreen] [h=98FB98]
-\definecolor [darkorchid] [h=9932CC]
-\definecolor [yellowgreen] [h=9ACD32]
-\definecolor [sienna] [h=A0522D]
-\definecolor [brown] [h=A52A2A]
-\definecolor [darkgray] [h=A9A9A9]
-\definecolor [darkgrey] [h=A9A9A9]
-\definecolor [lightblue] [h=ADD8E6]
-\definecolor [greenyellow] [h=ADFF2F]
-\definecolor [paleturquoise] [h=AFEEEE]
-\definecolor [lightsteelblue] [h=B0C4DE]
-\definecolor [powderblue] [h=B0E0E6]
-\definecolor [firebrick] [h=B22222]
-\definecolor [darkgoldenrod] [h=B8860B]
-\definecolor [mediumorchid] [h=BA55D3]
-\definecolor [rosybrown] [h=BC8F8F]
-\definecolor [darkkhaki] [h=BDB76B]
-\definecolor [silver] [h=C0C0C0]
-\definecolor [mediumvioletred] [h=C71585]
-\definecolor [indianred] [h=CD5C5C]
-\definecolor [peru] [h=CD853F]
-\definecolor [chocolate] [h=D2691E]
-\definecolor [tan] [h=D2B48C]
-\definecolor [lightgray] [h=D3D3D3]
-\definecolor [lightgrey] [h=D3D3D3]
-\definecolor [thistle] [h=D8BFD8]
-\definecolor [orchid] [h=DA70D6]
-\definecolor [goldenrod] [h=DAA520]
-\definecolor [palevioletred] [h=DB7093]
-\definecolor [crimson] [h=DC143C]
-\definecolor [gainsboro] [h=DCDCDC]
-\definecolor [plum] [h=DDA0DD]
-\definecolor [burlywood] [h=DEB887]
-\definecolor [lightcyan] [h=E0FFFF]
-\definecolor [lavender] [h=E6E6FA]
-\definecolor [darksalmon] [h=E9967A]
-\definecolor [violet] [h=EE82EE]
-\definecolor [palegoldenrod] [h=EEE8AA]
-\definecolor [lightcoral] [h=F08080]
-\definecolor [khaki] [h=F0E68C]
-\definecolor [aliceblue] [h=F0F8FF]
-\definecolor [honeydew] [h=F0FFF0]
-\definecolor [azure] [h=F0FFFF]
-\definecolor [sandybrown] [h=F4A460]
-\definecolor [wheat] [h=F5DEB3]
-\definecolor [beige] [h=F5F5DC]
-\definecolor [whitesmoke] [h=F5F5F5]
-\definecolor [mintcream] [h=F5FFFA]
-\definecolor [ghostwhite] [h=F8F8FF]
-\definecolor [salmon] [h=FA8072]
-\definecolor [antiquewhite] [h=FAEBD7]
-\definecolor [linen] [h=FAF0E6]
-\definecolor [lightgoldenrodyellow] [h=FAFAD2]
-\definecolor [oldlace] [h=FDF5E6]
-\definecolor [red] [h=FF0000]
-\definecolor [fuchsia] [h=FF00FF]
-\definecolor [magenta] [h=FF00FF]
-\definecolor [deeppink] [h=FF1493]
-\definecolor [orangered] [h=FF4500]
-\definecolor [tomato] [h=FF6347]
-\definecolor [hotpink] [h=FF69B4]
-\definecolor [coral] [h=FF7F50]
-\definecolor [darkorange] [h=FF8C00]
-\definecolor [lightsalmon] [h=FFA07A]
-\definecolor [orange] [h=FFA500]
-\definecolor [lightpink] [h=FFB6C1]
-\definecolor [pink] [h=FFC0CB]
-\definecolor [gold] [h=FFD700]
-\definecolor [peachpuff] [h=FFDAB9]
-\definecolor [navajowhite] [h=FFDEAD]
-\definecolor [moccasin] [h=FFE4B5]
-\definecolor [bisque] [h=FFE4C4]
-\definecolor [mistyrose] [h=FFE4E1]
-\definecolor [blanchedalmond] [h=FFEBCD]
-\definecolor [papayawhip] [h=FFEFD5]
-\definecolor [lavenderblush] [h=FFF0F5]
-\definecolor [seashell] [h=FFF5EE]
-\definecolor [cornsilk] [h=FFF8DC]
-\definecolor [lemonchiffon] [h=FFFACD]
-\definecolor [floralwhite] [h=FFFAF0]
-\definecolor [snow] [h=FFFAFA]
-\definecolor [yellow] [h=FFFF00]
-\definecolor [lightyellow] [h=FFFFE0]
-\definecolor [ivory] [h=FFFFF0]
-\definecolor [white] [h=FFFFFF]
-
-\stopprotectedcolors
diff --git a/Master/texmf-dist/tex/context/base/mkiv/colo-ini.lua b/Master/texmf-dist/tex/context/base/mkiv/colo-ini.lua
index 3c8d23abc09..921612b0fd4 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/colo-ini.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/colo-ini.lua
@@ -43,7 +43,6 @@ local texsetattribute = tex.setattribute
local texgetattribute = tex.getattribute
local texgetcount = tex.getcount
local texgettoks = tex.gettoks
-local texgetmacro = tokens.getters.macro
local a_color = attributes.private('color')
local a_transparency = attributes.private('transparency')
@@ -274,9 +273,7 @@ local function forcedmodel(model) -- delayed till the backend but mp directly
return 2
end
elseif model == 5 then -- spot
- if spot_okay then
- return 5
- elseif cmyk_okay then
+ if cmyk_okay then
return 4
elseif rgb_okay then
return 3
@@ -312,8 +309,7 @@ local function definetransparency(name,n,global)
end
local settings = settings_to_hash_strict(n)
if settings then
- local a = settings.a
- local t = settings.t
+ local a, t = settings.a, settings.t
if a and t then
definetransparent(name, transparencies.register(name,transparent[a] or tonumber(a) or 1,tonumber(t) or 1), global)
else
@@ -444,23 +440,16 @@ local function defineprocesscolor(name,str,global,freeze) -- still inconsistent
else
local settings = settings_to_hash_strict(str)
if settings then
- local r = settings.r
- local g = settings.g
- local b = settings.b
+ local r, g, b = settings.r, settings.g, settings.b
if r or g or b then
-- we can consider a combined rgb cmyk s definition
definecolor(name, register_color(name,'rgb', tonumber(r) or 0, tonumber(g) or 0, tonumber(b) or 0), global)
else
- local c = settings.c
- local m = settings.m
- local y = settings.y
- local k = settings.k
+ local c, m, y, k = settings.c, settings.m, settings.y, settings.k
if c or m or y or k then
definecolor(name, register_color(name,'cmyk',tonumber(c) or 0, tonumber(m) or 0, tonumber(y) or 0, tonumber(k) or 0), global)
else
- local h = settings.h
- local s = settings.s
- local v = settings.v
+ local h, s, v = settings.h, settings.s, settings.v
if v then
r, g, b = colors.hsvtorgb(tonumber(h) or 0, tonumber(s) or 1, tonumber(v) or 1) -- maybe later native
definecolor(name, register_color(name,'rgb',r,g,b), global)
@@ -479,8 +468,7 @@ local function defineprocesscolor(name,str,global,freeze) -- still inconsistent
end
end
end
- local a = settings.a
- local t = settings.t
+ local a, t = settings.a, settings.t
if a and t then
definetransparent(name, transparencies.register(name,transparent[a] or tonumber(a) or 1,tonumber(t) or 1), global)
elseif colors.couple then
@@ -532,8 +520,7 @@ local function definespotcolor(name,parent,str,global)
do_registerspotcolor(parent,cp,t.e,1,"",tp) -- p not really needed, only diagnostics
if name and name ~= "" then
definecolor(name,register_color(name,'spot',parent,1,"",tp),true)
- local ta = t.a
- local tt = t.t
+ local ta, tt = t.a, t.t
if ta and tt then
definetransparent(name, transparencies.register(name,transparent[ta] or tonumber(ta) or 1,tonumber(tt) or 1), global)
elseif colors.couple then
@@ -577,7 +564,7 @@ local function f(i,colors,fraction)
return otf
end
-local function definemixcolor(makecolor,name,fractions,cs,global,freeze)
+local function definemixcolor(makename,name,fractions,cs,global,freeze)
local values = { }
for i=1,#cs do -- do fraction in here
local v = colorvalues[cs[i]]
@@ -605,15 +592,12 @@ local function definemixcolor(makecolor,name,fractions,cs,global,freeze)
end
definecolor(name,ca,global,freeze)
else
- report_colors("invalid specification of components for color %a",makecolor)
+ report_colors("invalid specification of components for color %a",makename)
end
end
local function definemultitonecolor(name,multispec,colorspec,selfspec)
- local dd = { }
- local pp = { }
- local nn = { }
- local max = 0
+ local dd, pp, nn, max = { }, { }, { }, 0
for k,v in gmatch(multispec,"([^=,]+)=([^%,]*)") do -- use settings_to_array
max = max + 1
dd[max] = k
@@ -624,12 +608,12 @@ local function definemultitonecolor(name,multispec,colorspec,selfspec)
nn = concat(nn,'_')
local parent = gsub(lower(nn),"[^%d%a%.]+","_")
if not colorspec or colorspec == "" then
- -- this can happens when we come from metapost
local cc = { }
for i=1,max do
+-- cc[i] = l_color[dd[i]]
cc[i] = resolvedname(dd[i])
end
- definemixcolor(name,parent,pp,cc,true,true)
+ definemixcolor(name,parent,pp,cc,global,freeze) -- can become local
else
if selfspec ~= "" then
colorspec = colorspec .. "," .. selfspec
@@ -661,29 +645,24 @@ colors.definemultitonecolor = definemultitonecolor
-- that we cannot cast .. so we really need to use (s,s,s) for gray in order
-- to be able to map onto 'color'
-local function mpcolor(model,ca,ta,default,name)
+local function mpcolor(model,ca,ta,default)
local cv = colorvalues[ca]
if cv then
local tv = transparencyvalues[ta]
- -- maybe move the 5 logic into the forcedmodel call
- local cm = cv[1]
if model == 1 then
- model = cm
+ model = cv[1]
end
model = forcedmodel(model)
- if cm == 5 and model == 4 then
- model = 5 -- a cheat but ok as spot colors have a representation
- end
if tv then
if model == 2 then
return formatters["transparent(%s,%s,(%s,%s,%s))"](tv[1],tv[2],cv[3],cv[4],cv[5])
elseif model == 3 then
return formatters["transparent(%s,%s,(%s,%s,%s))"](tv[1],tv[2],cv[3],cv[4],cv[5])
elseif model == 4 then
- return formatters["transparent(%s,%s,(%s,%s,%s,%s))"](tv[1],tv[2],cv[6],cv[7],cv[8],cv[9])
+ return formatters["transparent(%s,%s,cmyk(%s,%s,%s,%s))"](tv[1],tv[2],cv[6],cv[7],cv[8],cv[9])
elseif model == 5 then
-- return formatters['transparent(%s,%s,multitonecolor("%s",%s,"%s","%s"))'](tv[1],tv[2],cv[10],cv[11],cv[12],cv[13])
- return formatters['transparent(%s,%s,namedcolor("%s"))'](tv[1],tv[2],name or cv[10])
+ return formatters['transparent(%s,%s,namedcolor("%s"))'](tv[1],tv[2],cv[10])
else -- see ** in meta-ini.mkiv: return formatters["transparent(%s,%s,(%s))"](tv[1],tv[2],cv[2])
return formatters["transparent(%s,%s,(%s,%s,%s))"](tv[1],tv[2],cv[3],cv[4],cv[5])
end
@@ -693,9 +672,10 @@ local function mpcolor(model,ca,ta,default,name)
elseif model == 3 then
return formatters["(%s,%s,%s)"](cv[3],cv[4],cv[5])
elseif model == 4 then
- return formatters["(%s,%s,%s,%s)"](cv[6],cv[7],cv[8],cv[9])
+ return formatters["cmyk(%s,%s,%s,%s)"](cv[6],cv[7],cv[8],cv[9])
elseif model == 5 then
- return formatters['namedcolor("%s")'](name or cv[10])
+ -- return formatters['multitonecolor("%s",%s,"%s","%s")'](cv[10],cv[11],cv[12],cv[13])
+ return formatters['namedcolor("%s")'](cv[10])
else -- see ** in meta-ini.mkiv: return formatters["%s"]((cv[2]))
return formatters["(%s,%s,%s)"](cv[3],cv[4],cv[5])
end
@@ -718,8 +698,7 @@ local paletnamespace = getnamespace("colorpalet")
local function namedcolorattributes(name)
local space = texgetattribute(a_colormodel)
- ----- prefix = texgettoks("t_colo_prefix")
- local prefix = texgetmacro("currentcolorprefix")
+ local prefix = texgettoks("t_colo_prefix")
local color
if prefix ~= "" then
color = valid[prefix..name]
@@ -755,8 +734,7 @@ end
colors.namedcolorattributes = namedcolorattributes -- can be used local
local function mpnamedcolor(name)
- local model, ca, ta = namedcolorattributes(name)
- return mpcolor(model,ca,ta,nil,name)
+ return mpcolor(namedcolorattributes(name))
end
local function mpoptions(model,ca,ta,default) -- will move to mlib-col .. not really needed
@@ -1112,7 +1090,7 @@ implement {
implement {
name = "defineprocesscolordummy",
actions = defineprocesscolor,
- arguments = { "'c_o_l_o_r'", "string", false, false }
+ arguments = { "'d_u_m_m_y'", "string", false, false }
}
implement {
diff --git a/Master/texmf-dist/tex/context/base/mkiv/colo-ini.mkiv b/Master/texmf-dist/tex/context/base/mkiv/colo-ini.mkiv
index 7079322f7a2..daee8ada6a6 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/colo-ini.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/colo-ini.mkiv
@@ -592,22 +592,22 @@
% \the\everysetuppalet
% \colo_helpers_initialize_maintextcolor}
-% \newtoks\t_colo_prefix % used in mp interface
+\newtoks\t_colo_prefix % used in mp interface
\def\colo_palets_setup[#1]%
{\edef\currentcolorpalet{#1}%
\ifx\currentcolorpalet\empty
% seems to be a reset
\let\currentcolorprefix\empty
- %\t_colo_prefix\emptytoks
+ \t_colo_prefix\emptytoks
\else\ifcsname\??paletlist\currentcolorpalet\endcsname
\edef\currentcolorprefix{#1:}%
- %\t_colo_prefix\expandafter{\currentcolorprefix}%
+ \t_colo_prefix\expandafter{\currentcolorprefix}%
\else
\colo_helpers_show_message\m!colors7\currentcolorpalet
\let\currentcolorpalet\empty
\let\currentcolorprefix\empty
- %\t_colo_prefix\emptytoks
+ \t_colo_prefix\emptytoks
\fi\fi
\the\everysetuppalet
\colo_helpers_initialize_maintextcolor}
@@ -782,12 +782,7 @@
% Since we couple definitions, we could stick to one test. Todo. Same for mpcolor.
-\def\v_colo_dummy_name{c_o_l_o_r}
-
-\letvalue{\??colorattribute \v_colo_dummy_name}\empty
-\letvalue{\??transparencyattribute\v_colo_dummy_name}\empty
-\letvalue{\??colorsetter \v_colo_dummy_name}\empty
-\letvalue{\??transparencysetter \v_colo_dummy_name}\empty
+\def\v_colo_dummy_name{d_u_m_m_y}
\letvalue{\??colorsetter -}\empty % used?
\letvalue{\??transparencysetter-}\empty % used?
@@ -947,7 +942,7 @@
\def\colo_basics_defined_and_activated#1%
{\clf_defineprocesscolordummy{#1}% we could pass dummy here too
- \colo_basics_synchronize{\v_colo_dummy_name}%
+ \colo_basics_synchronize{d_u_m_m_y}%
\colo_helpers_activate_dummy}
\def\colo_basics_define_process
@@ -1063,7 +1058,7 @@
%D Here is a more efficient helper for pgf:
%D
-%D \starttyping
+%D \starttying
%D \startluacode
%D function commands.pgfxcolorspec(ca) -- {}{}{colorspace}{list}
%D local cv = attributes.colors.values[ca]
diff --git a/Master/texmf-dist/tex/context/base/mkiv/colo-run.lua b/Master/texmf-dist/tex/context/base/mkiv/colo-run.lua
index 2e7ae08e3a4..2e4cca5ab7c 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/colo-run.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/colo-run.lua
@@ -14,7 +14,7 @@ local commands = commands
local context = context
local colors = attributes.colors
-local private = table.tohash { "c_o_l_o_r", "maintextcolor", "themaintextcolor" }
+local private = table.tohash { "d_u_m_m_y", "maintextcolor", "themaintextcolor" }
function commands.showcolorset(name)
local set = colors.setlist(name)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/cont-log.mkiv b/Master/texmf-dist/tex/context/base/mkiv/cont-log.mkiv
index f9fc6a8f765..8b4660f3a1d 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/cont-log.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/cont-log.mkiv
@@ -133,7 +133,7 @@
\let\logofont\nullfont
-% \loadmapfile[original-base.map] % stil needed? not if we assume afm
+\loadmapfile[original-base.map] % stil needed? not if we assume afm
\unexpanded\def\setMFPfont% more sensitive for low level changes
{\font\logofont=logo%
@@ -205,7 +205,7 @@
\unexpanded\def\Lua {Lua}
\unexpanded\def\luajitTeX{luajit\wordboundary\TeX}
\unexpanded\def\metaTeX {meta\wordboundary\TeX}
-%unexpanded\def\XeTeX {X\lower.5\exheight\hbox{\kern-.15\emwidth\mirror{E}}\kern-.1667\emwidth\TeX}
+\unexpanded\def\XeTeX {X\lower.5\exheight\hbox{\kern-.15\emwidth\mirror{E}}\kern-.1667\emwidth\TeX}
% Adapted from a patch by Mojca:
@@ -237,6 +237,40 @@
\let\LuaTeX \luaTeX
\let\XETEX \XeTeX
+% \unexpanded\def\MkApproved % joke, not used so it might move
+% {\dontleavehmode\rotate
+% [\c!rotation={\ifnum\texengine=\luatexengine\cldcontext{45-45*\the\luatexversion/100}\else0\fi},
+% \c!align=\v!middle,
+% \c!foregroundstyle=\v!type,
+% \c!foregroundcolor=darkred,
+% \c!frame=\v!on,
+% \c!offset=1ex,
+% \c!background=\v!color,
+% \c!backgroundcolor=lightgray,
+% \c!framecolor=darkred,
+% \c!rulethickness=2pt]
+% {Mk\ifnum\texengine=\luatexengine IV\else II\fi\\approved}}
+
+% \unexpanded\def\luaTeX
+% {\dontleavehmode\begingroup
+% Lua%
+% \setbox0\hbox{oT}%
+% \setbox2\hbox{o\kern0ptT}%
+% \ifdim\wd0=\wd2
+% \setbox0\hbox dir TRT{To}%
+% \setbox2\hbox{T\kern0pto}%
+% \hskip\dimexpr\wd0-\wd2\relax
+% \fi
+% \TeX
+% \endgroup}
+%
+% a further iteration from the list, patched again
+
+% \ifx\fontalternative\s!it -\else
+% \ifx\fontalternative\s!sl -\else
+% \ifx\fontalternative\s!bi -\else
+% \ifx\fontalternative\s!bs -\fi\fi\fi\fi
+
\unexpanded\def\LuaTeX
{\dontleavehmode
\begingroup
@@ -283,8 +317,6 @@
\unexpanded\def\MPIV{MpIV}
\unexpanded\def\MPVI{MpVI}
-\unexpanded\def\LMTX{lmtx}
-
\appendtoks
\def\ConTeXt {ConTeXt}%
\def\MetaPost {MetaPost}%
diff --git a/Master/texmf-dist/tex/context/base/mkiv/cont-new.mkiv b/Master/texmf-dist/tex/context/base/mkiv/cont-new.mkiv
index f8abf6fad98..9cb89326039 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/cont-new.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/cont-new.mkiv
@@ -11,27 +11,13 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2019.02.22 19:35}
+\newcontextversion{2018.04.04 00:51}
%D This file is loaded at runtime, thereby providing an excellent place for
%D hacks, patches, extensions and new features.
\unprotect
-\writestatus\m!system{beware: some patches loaded from cont-new.mkiv}
-
-% math-ini.mkiv
-
-\ifdefined\t \else \unexpanded\def\t{\mathortext\text\mathtext} \fi
-\ifdefined\w \else \unexpanded\def\w{\mathortext\word\mathword} \fi
-
-\appendtoks
- \let\t\mathtext
- \let\w\mathword
-\to \everymathematics
-
-% \let\assumelongusagecs\relax % todo: fails on legends-001.tex
-
-% done
+% \writestatus\m!system{beware: some patches loaded from cont-new.mkiv}
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkiv/cont-run.lua b/Master/texmf-dist/tex/context/base/mkiv/cont-run.lua
index 2634654fe77..9bd252e6098 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/cont-run.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/cont-run.lua
@@ -142,7 +142,6 @@ trackers.register("sandbox.tracecalls",sandbox.logcalls)
trackers.register("sandbox.tracefiles",sandbox.logfiles)
local sandboxing = environment.arguments.sandbox
-local debugging = environment.arguments.debug
if sandboxing then
@@ -171,33 +170,15 @@ if sandboxing then
\let\normalprimitive\relax
]]
- debug = {
- traceback = traceback,
- }
-
- package.loaded.debug = debug
-
-elseif debugging then
-
- -- we keep debug
-
-else
-
- debug = {
- traceback = traceback,
- getinfo = getinfo,
- sethook = sethook,
- }
-
- package.loaded.debug = debug
-
end
-local preparejob preparejob = function() -- tricky: we need a hook for this
+local function processjob()
- local arguments = environment.arguments
+ environment.initializefilenames() -- todo: check if we really need to pre-prep the filename
- environment.lmtxmode = CONTEXTLMTXMODE
+ local arguments = environment.arguments
+ local suffix = environment.suffix
+ local filename = environment.filename -- hm, not inputfilename !
if arguments.nosynctex then
luatex.synctex.setup {
@@ -241,24 +222,6 @@ local preparejob preparejob = function() -- tricky: we need a hook for this
-- directives.enable("logs.errors",arguments.errors)
-- end
- preparejob = function() end
-
- job.prepare = preparejob
-
-end
-
-job.prepare = preparejob
-
-local function processjob()
-
- environment.initializefilenames() -- todo: check if we really need to pre-prep the filename
-
- local arguments = environment.arguments
- local suffix = environment.suffix
- local filename = environment.filename -- hm, not inputfilename !
-
- preparejob()
-
if not filename or filename == "" then
-- skip
elseif suffix == "xml" or arguments.forcexml then
@@ -322,6 +285,7 @@ local function processjob()
-- \writestatus{system}{processing as tex}
-- We have a regular tex file so no \starttext yet as we can
-- load fonts.
+
-- context.enabletrackers { "resolvers.*" }
context.input(filename)
-- context.disabletrackers { "resolvers.*" }
diff --git a/Master/texmf-dist/tex/context/base/mkiv/cont-run.mkiv b/Master/texmf-dist/tex/context/base/mkiv/cont-run.mkiv
index f841ce53033..b650be67d93 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/cont-run.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/cont-run.mkiv
@@ -25,29 +25,19 @@
\let\synctexsetfilename \clf_synctexsetfilename
\let\synctexresetfilename\clf_synctexresetfilename
\let\synctexblockfilename\clf_synctexblockfilename
+\let\synctexpause \clf_synctexpause
+\let\synctexresume \clf_synctexresume
-\let\synctexpause \donothing
-\let\synctexresume \donothing
-\let\synctexpushline\donothing
-\let\synctexpopline \donothing
-
-\appendtoks\synctexpause \to\everybeforeoutput
-\appendtoks\synctexresume\to\everyafteroutput
+\appendtoks\clf_synctexpause \to\everybeforeoutput
+\appendtoks\clf_synctexresume\to\everyafteroutput
\unexpanded\def\setupsynctex[#1]%
{\begingroup
\getdummyparameters[\c!state=\v!stop,\c!method=\v!max,#1]%
- \edef\p_state{\dummyparameter\c!state}%
\clf_setupsynctex
- state {\p_state}%
+ state {\dummyparameter\c!state}%
method {\dummyparameter\c!method}%
\relax
- \ifx\p_state\v!start
- \glet\synctexpause \clf_synctexpause
- \glet\synctexresume \clf_synctexresume
- \glet\synctexpushline\clf_synctexpushline
- \glet\synctexpopline \clf_synctexpopline
- \fi
\endgroup}
\unexpanded\def\blocksynctexfile[#1]%
diff --git a/Master/texmf-dist/tex/context/base/mkiv/context.mkiv b/Master/texmf-dist/tex/context/base/mkiv/context.mkiv
index cd01705877f..9a52cfe78b1 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/context.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/context.mkiv
@@ -42,13 +42,9 @@
%D has to match \type {YYYY.MM.DD HH:MM} format.
\edef\contextformat {\jobname}
-\edef\contextversion{2019.02.22 19:35}
+\edef\contextversion{2018.04.04 00:51}
\edef\contextkind {beta}
-%D Kind of special:
-
-\chardef\contextlmtxmode\directlua{tex.print(CONTEXTLMTXMODE or 0)}\relax
-
%D For those who want to use this:
\let\fmtname \contextformat
@@ -81,8 +77,8 @@
%D We just quit if new functionality is expected.
-\ifnum\luatexversion<109 % also change message
- \writestatus{!!!!}{Your luatex binary is too old, you need at least version 1.09!}
+\ifnum\luatexversion<105 % also change message
+ \writestatus{!!!!}{Your luatex binary is too old, you need at least version 1.05!}
\expandafter\end
\fi
@@ -103,7 +99,6 @@
\loadmarkfile{luat-cod}
\loadmarkfile{luat-bas}
\loadmarkfile{luat-lib}
-\loadmarkfile{luat-soc}
\loadmarkfile{catc-ini}
\loadmarkfile{catc-act}
@@ -111,7 +106,6 @@
\loadmarkfile{catc-ctx}
\loadmarkfile{catc-sym}
-\loadmarkfile{toks-ini}
\loadmarkfile{cldf-ini}
% \tracecatcodetables
@@ -120,7 +114,7 @@
% \unexpanded long before etex came around.
\loadmarkfile{luat-ini}
-\loadmarkfile{toks-scn}
+\loadmarkfile{toks-ini}
\loadmarkfile{syst-aux}
\loadmarkfile{syst-lua}
@@ -131,18 +125,13 @@
\loadmarkfile{luat-usr}
+% \loadmarkfile{luat-ini} % moved up
+% \loadmarkfile{toks-ini} % moved up
+
\loadmkvifile{file-ini}
\loadmkvifile{file-res}
\loadmkvifile{file-lib}
-\doifelsefileexists{core-lmt.mkiv} {\loadmarkfile{core-lmt}} {}
-
-% needs more checking for clashes:
-%
-% no need to register, just execute once, slightly faster
-%
-% \doifelsefileexists{l-macro-imp-codes.lua}{\registerctxluafile{l-macro-imp-codes}{}}{}
-
\loadmarkfile{supp-dir}
\loadmarkfile{char-utf} % generic code (i.e. not much tex) ... could become unic-ini
@@ -164,7 +153,6 @@
% \loadmarkfile{luat-ini}
\loadmarkfile{toks-tra}
-\loadmarkfile{toks-aux}
%loadmarkfile{toks-map} % obsolete, never used
\loadmarkfile{attr-ini}
@@ -182,8 +170,6 @@
\loadmarkfile{node-mig}
%loadmarkfile{node-pag}
-\loadmarkfile{driv-ini}
-
\loadmarkfile{back-ini}
\loadmarkfile{attr-col}
@@ -216,7 +202,6 @@
\loadmkvifile{file-syn}
\loadmkvifile{file-mod}
-\loadmarkfile{core-sys}
\loadmarkfile{core-con}
\loadmarkfile{cont-fil}
@@ -289,6 +274,7 @@
\loadmarkfile{spac-lin}
\loadmarkfile{spac-pag}
\loadmarkfile{spac-par}
+%loadmarkfile{spac-adj} % no longer needed
\loadmarkfile{spac-def}
\loadmkvifile{spac-prf}
\loadmarkfile{spac-grd}
@@ -310,7 +296,7 @@
\loadmarkfile{strc-lab}
\loadmarkfile{strc-syn}
-% \loadmarkfile{core-sys}
+\loadmarkfile{core-sys}
\loadmarkfile{page-var}
\loadmkvifile{page-otr}
@@ -333,11 +319,9 @@
\loadmarkfile{page-pst}
\loadmkvifile{page-mbk}
-%loadmarkfile{page-mul} % \usecolumns[old-multicolumns]
-\loadmarkfile{page-mix}
-\loadmarkfile{page-smp}
-%loadmarkfile{page-set} % \usecolumns[old-columnsets]
-\loadmarkfile{page-cst}
+\loadmarkfile{page-mul} % partly overloaded
+\loadmarkfile{page-mix} % new
+\loadmarkfile{page-set}
\loadmarkfile{page-pcl} % new
\loadmarkfile{pack-lyr}
\loadmarkfile{pack-pos}
@@ -523,7 +507,6 @@
\loadmkvifile{strc-not}
\loadmkvifile{strc-lnt}
-\loadmkivfile{strc-usr}
\loadmarkfile{pack-com}
\loadmarkfile{typo-del}
@@ -564,7 +547,7 @@
\loadmarkfile{cont-log}
-% \loadmarkfile{task-ini}
+\loadmarkfile{task-ini}
\loadmarkfile{cldf-ver} % verbatim, this can come late
\loadmarkfile{cldf-com} % commands, this can come late
@@ -582,24 +565,13 @@
\loadmarkfile{back-exp}
\loadmarkfile{back-pdf} % actually, this one should load the next three using document.arguments.backend
-
\loadmarkfile{mlib-pdf}
\loadmarkfile{mlib-pps}
\loadmarkfile{meta-pdf}
-\loadmarkfile{meta-blb}
\loadmarkfile{grph-epd}
-\loadmarkfile{math-inc} % an experiment
-\loadmarkfile{publ-inc} % an experiment
-
-\loadmarkfile{task-ini}
-
-\loadmarkfile{syst-cmp} % compatibility stuff moved here
-
\loadmarkfile{cont-run} % the main runner (used in cont-yes.mkiv)
-\doifelsefileexists{driv-shp.mkiv} {\loadmarkfile{driv-shp}} {}
-
\setupcurrentlanguage[\defaultlanguagetag]
\prependtoks
@@ -610,14 +582,6 @@
\ctxlua{statistics.stoptiming(statistics)}%
\to \everyjob
-% \appendtoks
-% \ctxlua{job.prepare()}%
-% \to \everyjob
-
-% \appendtoks
-% \enabletrackers[*]%
-% \to \everyjob
-
\appendtoks
\ctxlua{statistics.savefmtstatus("\jobname","\contextversion","context.mkiv","\contextkind","\contextbanner")}% can become automatic
\to \everydump
diff --git a/Master/texmf-dist/tex/context/base/mkiv/core-con.lua b/Master/texmf-dist/tex/context/base/mkiv/core-con.lua
index 3829efc9c82..87b4c063eaa 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/core-con.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/core-con.lua
@@ -16,7 +16,7 @@ slower but look nicer this way.</p>
<p>Some code may move to a module in the language namespace.</p>
--ldx]]--
-local floor, osdate, ostime, concat = math.floor, os.date, os.time, table.concat
+local floor, date, time, concat = math.floor, os.date, os.time, table.concat
local lower, upper, rep, match, gsub = string.lower, string.upper, string.rep, string.match, string.gsub
local utfchar, utfbyte = utf.char, utf.byte
local tonumber, tostring, type, rawset = tonumber, tostring, type, rawset
@@ -33,7 +33,6 @@ local setmetatableindex = table.setmetatableindex
local formatters = string.formatters
local variables = interfaces.variables
local constants = interfaces.constants
-local addformatter = utilities.strings.formatters.add
local texset = tex.set
@@ -43,9 +42,6 @@ local converters = converters
languages = languages or { }
local languages = languages
-local helpers = converters.helpers or { }
-converters.helpers = helpers
-
local ctx_labeltext = context.labeltext
local ctx_LABELTEXT = context.LABELTEXT
local ctx_space = context.space
@@ -308,14 +304,14 @@ local function leapyear(year)
end
local function textime()
- return tonumber(osdate("%H")) * 60 + tonumber(osdate("%M"))
+ return tonumber(date("%H")) * 60 + tonumber(date("%M"))
end
-function converters.year () return osdate("%Y") end
-function converters.month () return osdate("%m") end
-function converters.hour () return osdate("%H") end
-function converters.minute() return osdate("%M") end
-function converters.second() return osdate("%S") end
+function converters.year () return date("%Y") end
+function converters.month () return date("%m") end
+function converters.hour () return date("%H") end
+function converters.minute() return date("%M") end
+function converters.second() return date("%S") end
converters.weekday = weekday
converters.isleapyear = isleapyear
@@ -327,11 +323,11 @@ implement { name = "weekday", actions = { weekday, context }, arguments = { "i
implement { name = "leapyear", actions = { leapyear, context }, arguments = { "integer" } }
implement { name = "nofdays", actions = { nofdays, context }, arguments = { "integer", "integer" } }
-implement { name = "year", actions = { osdate, context }, arguments = "'%Y'" }
-implement { name = "month", actions = { osdate, context }, arguments = "'%m'" }
-implement { name = "hour", actions = { osdate, context }, arguments = "'%H'" }
-implement { name = "minute", actions = { osdate, context }, arguments = "'%M'" }
-implement { name = "second", actions = { osdate, context }, arguments = "'%S'" }
+implement { name = "year", actions = { date, context }, arguments = "'%Y'" }
+implement { name = "month", actions = { date, context }, arguments = "'%m'" }
+implement { name = "hour", actions = { date, context }, arguments = "'%H'" }
+implement { name = "minute", actions = { date, context }, arguments = "'%M'" }
+implement { name = "second", actions = { date, context }, arguments = "'%S'" }
implement { name = "textime", actions = { textime, context } }
implement {
@@ -1226,108 +1222,45 @@ setmetatableindex(months, function(t,k) return "unknown" end)
setmetatableindex(days, function(t,k) return "unknown" end)
setmetatableindex(monthmnems, function(t,k) return months[k] .. ":mnem" end)
-do
-
- local function dayname(n)
- ctx_labeltext(days[n])
- end
-
- local function weekdayname(day,month,year)
- ctx_labeltext(days[weekday(day,month,year)])
- end
-
- local function monthname(n)
- ctx_labeltext(months[n])
- end
-
- local function monthmnem(n)
- ctx_labeltext(monthmnems[n])
- end
-
- implement {
- name = "dayname",
- actions = dayname,
- arguments = "integer",
- }
-
- implement {
- name = "weekdayname",
- actions = weekdayname,
- arguments = { "integer", "integer", "integer" }
- }
-
- implement {
- name = "monthname",
- actions = monthname,
- arguments = { "integer" }
- }
-
- implement {
- name = "monthmnem",
- actions = monthmnem,
- arguments = { "integer" }
- }
-
- local f_monthlong = formatters["\\monthlong{%s}"]
- local f_monthshort = formatters["\\monthshort{%s}"]
- local f_weekday = formatters["\\weekday{%s}"]
- local f_dayoftheweek = formatters["\\dayoftheweek{%s}{%s}{%s}"]
-
- local function tomonthlong (m) return f_monthlong (tonumber(m) or 1) end
- local function tomonthshort(m) return f_monthshort(tonumber(m) or 1) end
- local function toweekday (d) return f_weekday (tonumber(d) or 1) end
-
- local function todayoftheweek(d,m,y)
- return f_dayoftheweek(tonumber(d) or 1,tonumber(m) or 1,tonumber(y) or 2000)
- end
-
- addformatter(formatters,"monthlong", [[tomonthlong(%s)]], { tomonthlong = tomonthlong })
- addformatter(formatters,"monthshort", [[tomonthshort(%s)]], { tomonthshort = tomonthshort })
- addformatter(formatters,"weekday", [[toweekday(%s)]], { toweekday = toweekday })
- addformatter(formatters,"dayoftheweek",[[todayoftheweek(%s,%s,%s)]],{ todayoftheweek = todayoftheweek })
-
- -- using %t is slower, even with caching as we seldom use > 3 items per epoch
-
- local function toeyear (e) return osdate("%Y",tonumber(e)) end
- local function toemonth (e) return osdate("%m",tonumber(e)) end
- local function toeday (e) return osdate("%d",tonumber(e)) end
- local function toeminute(e) return osdate("%M",tonumber(e)) end
- local function toesecond(e) return osdate("%S",tonumber(e)) end
-
- local function toemonthlong(e)
- return f_monthlong(tonumber(osdate("%m",tonumber(e))))
- end
-
- local function toemonthshort(e)
- return f_monthshort(tonumber(osdate("%m",tonumber(e))))
- end
+local function dayname(n)
+ return days[n]
+end
- local function toeweek(e) -- we run from 1-7 not 0-6
- return tostring(tonumber(osdate("%w",tonumber(e)))+1)
- end
+local function weekdayname(day,month,year)
+ return days[weekday(day,month,year)]
+end
- local function toeweekday(e)
- return f_weekday(tonumber(osdate("%w",tonumber(e)))+1)
- end
+local function monthname(n)
+ return months[n]
+end
- local function toedate(format,e)
- return osdate(format,tonumber(e))
- end
+local function monthmnem(n)
+ return monthmnems[n]
+end
- addformatter(formatters,"eyear", [[toeyear(%s)]], { toeyear = toeyear })
- addformatter(formatters,"emonth", [[toemonth(%s)]], { toemonth = toemonth })
- addformatter(formatters,"eday", [[toeday(%s)]], { toeday = toeday })
- addformatter(formatters,"eweek", [[toeweek(%s)]], { toeweek = toeweek })
- addformatter(formatters,"eminute", [[toeminute(%s)]], { toeminute = toeminute })
- addformatter(formatters,"esecond", [[toesecond(%s)]], { toesecond = toesecond })
+implement {
+ name = "dayname",
+ actions = { dayname, ctx_labeltext },
+ arguments = "integer",
+}
- addformatter(formatters,"emonthlong", [[toemonthlong(%s)]], { toemonthlong = toemonthlong })
- addformatter(formatters,"emonthshort", [[toemonthshort(%s)]], { toemonthshort = toemonthshort })
- addformatter(formatters,"eweekday", [[toeweekday(%s)]], { toeweekday = toeweekday })
+implement {
+ name = "weekdayname",
+ actions = { weekdayname, ctx_labeltext },
+ arguments = { "integer", "integer", "integer" }
+}
- addformatter(formatters,"edate", [[toedate(%s,%s)]], { toedate = toedate })
+implement {
+ name = "monthname",
+ actions = { monthname, ctx_labeltext },
+ arguments = { "integer" }
+}
-end
+implement {
+ name = "monthmnem",
+ actions = { monthmnem, ctx_labeltext },
+ arguments = { "integer" }
+}
-- a prelude to a function that we can use at the lua end
@@ -1354,146 +1287,125 @@ local variants = {
jalali = setmetatableindex(function(t,k) return months[k] .. ":jalali" end),
}
-do
-
- local function currentdate(str,currentlanguage,year,month,day) -- second argument false : no label
- local list = utilities.parsers.settings_to_array(str)
- local splitlabel = languages.labels.split or string.itself -- we need to get the loading order right
- -- local year = tex.year
- -- local month = tex.month
- -- local day = tex.day
- local auto = true
- if currentlanguage == "" then
- currentlanguage = false
- end
- for i=1,#list do
- local entry = list[i]
- local convert = dateconverters[entry]
- if convert then
- year, month, day = convert(year,month,day)
- else
- local tag, plus = splitlabel(entry)
- local ordinal, mnemonic, whatordinal, highordinal = false, false, nil, false
- if not tag then
- tag = entry
- elseif plus == "+" or plus == "ord" then
- ordinal = true
- elseif plus == "++" or plus == "highord" then
- ordinal = true
- highordinal = true
- -- elseif plus == "mnem" then
- -- mnemonic = true
- elseif plus then -- elseif plus == "mnem" then
- mnemonic = variants[plus]
+local function currentdate(str,currentlanguage) -- second argument false : no label
+ local list = utilities.parsers.settings_to_array(str)
+ local splitlabel = languages.labels.split or string.itself -- we need to get the loading order right
+ local year = tex.year
+ local month = tex.month
+ local day = tex.day
+ local auto = true
+ if currentlanguage == "" then
+ currentlanguage = false
+ end
+ for i=1,#list do
+ local entry = list[i]
+ local convert = dateconverters[entry]
+ if convert then
+ year, month, day = convert(year,month,day)
+ else
+ local tag, plus = splitlabel(entry)
+ local ordinal, mnemonic, whatordinal, highordinal = false, false, nil, false
+ if not tag then
+ tag = entry
+ elseif plus == "+" or plus == "ord" then
+ ordinal = true
+ elseif plus == "++" or plus == "highord" then
+ ordinal = true
+ highordinal = true
+ -- elseif plus == "mnem" then
+ -- mnemonic = true
+ elseif plus then -- elseif plus == "mnem" then
+ mnemonic = variants[plus]
+ end
+ if not auto and spaced[tag] then
+ ctx_space()
+ end
+ auto = false
+ if tag == v_year or tag == "y" or tag == "Y" then
+ context(year)
+ elseif tag == "yy" or tag == "YY" then
+ context("%02i",year % 100)
+ elseif tag == v_month or tag == "m" then
+ if currentlanguage == false then
+ context(Word(months[month]))
+ elseif mnemonic then
+ ctx_labeltext(variables[mnemonic[month]])
+ else
+ ctx_labeltext(variables[months[month]])
end
- if not auto and spaced[tag] then
- ctx_space()
+ elseif tag == v_MONTH then
+ if currentlanguage == false then
+ context(Word(variables[months[month]]))
+ elseif mnemonic then
+ ctx_LABELTEXT(variables[mnemonic[month]])
+ else
+ ctx_LABELTEXT(variables[months[month]])
end
- auto = false
- if tag == v_year or tag == "y" or tag == "Y" then
- context(year)
- elseif tag == "yy" or tag == "YY" then
- context("%02i",year % 100)
- elseif tag == v_month or tag == "m" then
- if currentlanguage == false then
- context(Word(months[month]))
- elseif mnemonic then
- ctx_labeltext(variables[mnemonic[month]])
- else
- ctx_labeltext(variables[months[month]])
- end
- elseif tag == v_MONTH then
- if currentlanguage == false then
- context(Word(variables[months[month]]))
- elseif mnemonic then
- ctx_LABELTEXT(variables[mnemonic[month]])
- else
- ctx_LABELTEXT(variables[months[month]])
- end
- elseif tag == "mm" then
- context("%02i",month)
- elseif tag == "M" then
- context(month)
- elseif tag == v_day or tag == "d" then
- if currentlanguage == false then
- context(day)
- else
- ctx_convertnumber(v_day,day) -- why not direct
- end
- whatordinal = day
- elseif tag == "dd" then
- context("%02i",day)
- whatordinal = day
- elseif tag == "D" then
+ elseif tag == "mm" then
+ context("%02i",month)
+ elseif tag == "M" then
+ context(month)
+ elseif tag == v_day or tag == "d" then
+ if currentlanguage == false then
context(day)
- whatordinal = day
- elseif tag == v_weekday or tag == "w" then
- local wd = weekday(day,month,year)
- if currentlanguage == false then
- context(Word(days[wd]))
- else
- ctx_labeltext(variables[days[wd]])
- end
- elseif tag == v_WEEKDAY then
- local wd = weekday(day,month,year)
- if currentlanguage == false then
- context(Word(days[wd]))
- else
- ctx_LABELTEXT(variables[days[wd]])
- end
- elseif tag == "W" then
- context(weekday(day,month,year))
- elseif tag == v_referral then
- context("%04i%02i%02i",year,month,day)
- elseif tag == v_space or tag == "\\ " then
- ctx_space()
- auto = true
- elseif tag ~= "" then
- context(tag)
- auto = true
+ else
+ ctx_convertnumber(v_day,day) -- why not direct
end
- if ordinal and whatordinal then
- if currentlanguage == false then
- -- ignore
- else
- context[highordinal and "highordinalstr" or "ordinalstr"](converters.ordinal(whatordinal,currentlanguage))
- end
+ whatordinal = day
+ elseif tag == "dd" then
+ context("%02i",day)
+ whatordinal = day
+ elseif tag == "D" then
+ context(day)
+ whatordinal = day
+ elseif tag == v_weekday or tag == "w" then
+ local wd = weekday(day,month,year)
+ if currentlanguage == false then
+ context(Word(days[wd]))
+ else
+ ctx_labeltext(variables[days[wd]])
+ end
+ elseif tag == v_WEEKDAY then
+ local wd = weekday(day,month,year)
+ if currentlanguage == false then
+ context(Word(days[wd]))
+ else
+ ctx_LABELTEXT(variables[days[wd]])
+ end
+ elseif tag == "W" then
+ context(weekday(day,month,year))
+ elseif tag == v_referral then
+ context("%04i%02i%02i",year,month,day)
+ elseif tag == v_space or tag == "\\ " then
+ ctx_space()
+ auto = true
+ elseif tag ~= "" then
+ context(tag)
+ auto = true
+ end
+ if ordinal and whatordinal then
+ if currentlanguage == false then
+ -- ignore
+ else
+ context[highordinal and "highordinalstr" or "ordinalstr"](converters.ordinal(whatordinal,currentlanguage))
end
end
end
end
+end
- implement {
- name = "currentdate",
- arguments = { "string", "string", "string", "integer", "integer", "integer" },
- actions = function(pattern,default,language,year,month,day)
- currentdate(
- pattern == "" and default or pattern,
- language == "" and false or language,
- year, month, day
- )
- end,
- }
-
- local function todate(s,y,m,d)
- if y or m or d then
- return formatters["\\date[y=%s,m=%s,d=%s][%s]\\relax"](y or "",m or "",d or "",s or "")
- else
- return formatters["\\currentdate[%s]\\relax"](s)
- end
- end
-
- addformatter(formatters,"date", [[todate(...)]], { todate = todate })
-
- -- context("one: %4!date!","MONTH",2020,12,11) context.par()
- -- context("one: %4!date!","month",2020,12,11) context.par()
- -- context("one: %4!date!","year,-,mm,-,dd",2020,12,11) context.par()
- -- context("two: %3!date!","MONTH",false,12) context.par()
- -- context("two: %3!date!","month",false,12) context.par()
- -- context("two: %3!date!","year,-,mm,-,dd",false,12) context.par()
-end
+implement {
+ name = "currentdate",
+ arguments = "3 strings",
+ actions = function(pattern,default,language)
+ currentdate(
+ pattern == "" and default or pattern,
+ language == "" and false or language
+ )
+ end,
+}
implement {
name = "unihex",
@@ -1674,4 +1586,3 @@ implement {
}
}
}
-
diff --git a/Master/texmf-dist/tex/context/base/mkiv/core-con.mkiv b/Master/texmf-dist/tex/context/base/mkiv/core-con.mkiv
index 303fb12910f..b4f247fcb28 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/core-con.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/core-con.mkiv
@@ -190,10 +190,10 @@
%D want to use as meaningful commands as possible, and because \TEX\ already
%D uses up some of those, we save the original meanings.
-% \savenormalmeaning\time
-% \savenormalmeaning\year
-% \savenormalmeaning\month
-% \savenormalmeaning\day
+\savenormalmeaning\time
+\savenormalmeaning\year
+\savenormalmeaning\month
+\savenormalmeaning\day
%D \macros
%D {month,MONTH}
@@ -218,7 +218,7 @@
%D \showsetup{month}
%D \showsetup{MONTH}
-\let\month\monthlong
+\let\month \monthlong
\unexpanded\def\MONTH #1{\WORD{\month {#1}}}
\unexpanded\def\MONTHLONG #1{\WORD{\monthlong {#1}}}
@@ -414,43 +414,30 @@
{\dosingleempty\syst_converters_current_date}
\def\syst_converters_current_date[#1]%
- {\dontleavehmode
- \begingroup
+ {\begingroup
\the\everycurrentdate
- \clf_currentdate
- {#1}{\currentdatespecification}{\labellanguage}%
- \normalyear\normalmonth\normalday
+ \clf_currentdate{#1}{\currentdatespecification}{\labellanguage}%
\endgroup}
\unexpanded\def\date
{\dodoubleempty\syst_converters_date}
\def\syst_converters_date[#1][#2]%
- {\dontleavehmode
- \begingroup
- \scratchcounterone \normalyear
- \scratchcountertwo \normalmonth
- \scratchcounterthree\normalday
+ {\begingroup
\iffirstargument
- \letdummyparameter\c!y\empty
- \letdummyparameter\c!m\empty
- \letdummyparameter\c!d\empty
+ \letdummyparameter\c!d\normalday
+ \letdummyparameter\c!m\normalmonth
+ \letdummyparameter\c!y\normalyear
\getdummyparameters[#1]%
- \edef\temp{\dummyparameter\c!y}\ifx\temp\empty\else\scratchcounterone \temp\fi
- \edef\temp{\dummyparameter\c!m}\ifx\temp\empty\else\scratchcountertwo \temp\fi
- \edef\temp{\dummyparameter\c!d}\ifx\temp\empty\else\scratchcounterthree\temp\fi
- \relax
+ \normalday \directdummyparameter\c!d\relax
+ \normalmonth\directdummyparameter\c!m\relax
+ \normalyear \directdummyparameter\c!y\relax
\fi
- \the\everycurrentdate
- \clf_currentdate
- {#2}{\currentdatespecification}{\labellanguage}%
- \scratchcounterone\scratchcountertwo\scratchcounterthree
+ \syst_converters_current_date[#2]%
\endgroup}
\def\rawdate[#1]% expandable and no labels
- {\clf_currentdate
- {#1}{\currentdatespecification}{}%
- \normalyear\normalmonth\normalday}
+ {\clf_currentdate{#1}{\currentdatespecification}{}}
%D \macros
%D {currenttime}
@@ -467,7 +454,7 @@
\let\currentminute\!!plusone
\let\currentsecond\!!plusone
-% \def\currenttimespecification{h,:,m}
+\def\currenttimespecification{h,:,m}
\unexpanded\def\currenttime
{\doifelsenextoptional\syst_converters_current_time_yes\syst_converters_current_time_nop}
@@ -818,119 +805,61 @@
\ifdefined\symbol \else \def\symbol[#1]{#1} \fi % todo
-% \defineconversion
-% [set 0]
-% [{\symbol[bullet]},
-% {\symbol[dash]},
-% {\symbol[star]},
-% {\symbol[triangle]},
-% {\symbol[circle]},
-% {\symbol[medcircle]},
-% {\symbol[bigcircle]},
-% {\symbol[square]},
-% {\symbol[checkmark]}]
-
-% \defineconversion
-% [set 1]
-% [\mathematics{\star},
-% \mathematics{\star\star},
-% \mathematics{\star\star\star},
-% \mathematics{\ddagger},
-% \mathematics{\ddagger\ddagger},
-% \mathematics{\ddagger\ddagger\ddagger},
-% \mathematics{\ast},
-% \mathematics{\ast\ast},
-% \mathematics{\ast\ast\ast}]
-%
-% \defineconversion
-% [set 2]
-% [\mathematics{\ast},
-% \mathematics{\dag},
-% \mathematics{\ddag},
-% \mathematics{\ast\ast},
-% \mathematics{\dag\dag},
-% \mathematics{\ddag\ddag},
-% \mathematics{\ast\ast\ast},
-% \mathematics{\dag\dag\dag},
-% \mathematics{\ddag\ddag\ddag},
-% \mathematics{\ast\ast\ast\ast},
-% \mathematics{\dag\dag\dag\dag},
-% \mathematics{\ddag\ddag\ddag\ddag}]
-%
-% \defineconversion
-% [set 3]
-% [\mathematics{\star},
-% \mathematics{\star\star},
-% \mathematics{\star\star\star},
-% \mathematics{\ddagger},
-% \mathematics{\ddagger\ddagger},
-% \mathematics{\ddagger\ddagger\ddagger},
-% \mathematics{\P},
-% \mathematics{\P\P},
-% \mathematics{\P\P\P},
-% \mathematics{\S},
-% \mathematics{\S\S},
-% \mathematics{\S\S\S},
-% \mathematics{\ast},
-% \mathematics{\ast\ast},
-% \mathematics{\ast\ast\ast}]
-
\defineconversion
[set 0]
- [\symbol{bullet},
- \symbol{dash},
- \symbol{star},
- \symbol{triangle},
- \symbol{circle},
- \symbol{medcircle},
- \symbol{bigcircle},
- \symbol{square},
- \symbol{checkmark}]
+ [{\symbol[bullet]},
+ {\symbol[dash]},
+ {\symbol[star]},
+ {\symbol[triangle]},
+ {\symbol[circle]},
+ {\symbol[medcircle]},
+ {\symbol[bigcircle]},
+ {\symbol[square]}]
\defineconversion
[set 1]
- [\textormathchars{⋆},
- \textormathchars{⋆⋆},
- \textormathchars{⋆⋆⋆},
- \textormathchars{‡},
- \textormathchars{‡‡},
- \textormathchars{‡‡‡},
- \textormathchars{∗},
- \textormathchars{∗∗},
- \textormathchars{∗∗∗}]
+ [\mathematics{\star},
+ \mathematics{\star\star},
+ \mathematics{\star\star\star},
+ \mathematics{\ddagger},
+ \mathematics{\ddagger\ddagger},
+ \mathematics{\ddagger\ddagger\ddagger},
+ \mathematics{\ast},
+ \mathematics{\ast\ast},
+ \mathematics{\ast\ast\ast}]
\defineconversion
[set 2]
- [\textormathchars{∗},
- \textormathchars{†},
- \textormathchars{‡},
- \textormathchars{∗∗},
- \textormathchars{††},
- \textormathchars{‡‡},
- \textormathchars{∗∗∗},
- \textormathchars{†††},
- \textormathchars{‡‡‡},
- \textormathchars{∗∗∗∗},
- \textormathchars{††††},
- \textormathchars{‡‡‡‡}]
+ [\mathematics{*},
+ \mathematics{\dag},
+ \mathematics{\ddag},
+ \mathematics{**},
+ \mathematics{\dag\dag},
+ \mathematics{\ddag\ddag},
+ \mathematics{***},
+ \mathematics{\dag\dag\dag},
+ \mathematics{\ddag\ddag\ddag},
+ \mathematics{****},
+ \mathematics{\dag\dag\dag\dag},
+ \mathematics{\ddag\ddag\ddag\ddag}]
\defineconversion
[set 3]
- [\textormathchars{⋆},
- \textormathchars{⋆⋆},
- \textormathchars{⋆⋆⋆},
- \textormathchars{‡},
- \textormathchars{‡‡},
- \textormathchars{‡‡‡},
- \textormathchars{Âķ},
- \textormathchars{ÂķÂķ},
- \textormathchars{ÂķÂķÂķ},
- \textormathchars{§},
- \textormathchars{§§},
- \textormathchars{§§§},
- \textormathchars{∗},
- \textormathchars{∗∗},
- \textormathchars{∗∗∗}]
+ [\mathematics{\star},
+ \mathematics{\star\star},
+ \mathematics{\star\star\star},
+ \mathematics{\ddagger},
+ \mathematics{\ddagger\ddagger},
+ \mathematics{\ddagger\ddagger\ddagger},
+ \mathematics{\P},
+ \mathematics{\P\P},
+ \mathematics{\P\P\P},
+ \mathematics{\S},
+ \mathematics{\S\S},
+ \mathematics{\S\S\S},
+ \mathematics{\ast},
+ \mathematics{\ast\ast},
+ \mathematics{\ast\ast\ast}]
%D Iteration of suggestion by WS on mailinglist 2010.12.22:
%D
@@ -959,23 +888,4 @@
data {#1}%
\relax}
-%D For those who sart counting at zero:
-%D
-%D \starttyping
-%D \defineconversionset [zero] [n,zero] [n]
-%D
-%D \setuphead [sectionconversionset=zero]
-%D
-%D \starttext
-%D \startchapter [title=Introduction]
-%D \startsection [title=First topic] \stopsection
-%D \startsection [title=Second topic] \stopsection
-%D \stopchapter
-%D \stoptext
-%D \stoptyping
-
-\def\zeronumberconversion#1{\number\numexpr#1-\plusone\relax}
-
-\defineconversion [zero] [\zeronumberconversion]
-
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkiv/core-dat.lua b/Master/texmf-dist/tex/context/base/mkiv/core-dat.lua
index b497501598b..fa4d089d057 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/core-dat.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/core-dat.lua
@@ -15,7 +15,6 @@ local tonumber, tostring, type = tonumber, tostring, type
local context = context
local commands = commands
-local ctx_latelua = context.latelua
local trace_datasets = false trackers.register("job.datasets" , function(v) trace_datasets = v end)
local trace_pagestates = false trackers.register("job.pagestates", function(v) trace_pagestates = v end)
@@ -36,7 +35,6 @@ local v_yes = interfaces.variables.yes
local new_latelua = nodes.pool.latelua
local implement = interfaces.implement
-local getnamespace = interfaces.getnamespace
local collected = allocate()
local tobesaved = allocate()
@@ -108,9 +106,6 @@ end
datasets.setdata = setdata
function datasets.extend(name,tag)
- if type(name) == "table" then
- name, tag = name.name, name.tag
- end
local set = sets[name]
local order = set.order + 1
local realpage = texgetcount("realpageno")
@@ -151,8 +146,10 @@ local function setdataset(settings)
local name, tag = setdata(settings)
if settings.delay ~= v_yes then
--
+ elseif type(tag) == "number" then
+ context(new_latelua(formatters["job.datasets.extend(%q,%i)"](name,tag)))
else
- context(new_latelua { action = job.datasets.extend, name = name, tag = tag })
+ context(new_latelua(formatters["job.datasets.extend(%q,%q)"](name,tag)))
end
end
@@ -245,7 +242,9 @@ local function setstate(settings)
return name, tag, data
end
-local function extend(name,tag)
+pagestates.setstate = setstate
+
+function pagestates.extend(name,tag)
local realpage = texgetcount("realpageno")
if trace_pagestates then
report_pagestate("action %a, name %a, tag %a, preset %a","synchronize",name,tag,realpage)
@@ -253,7 +252,7 @@ local function extend(name,tag)
tobesaved[name][tag] = realpage
end
-local function realpage(name,tag,default)
+function pagestates.realpage(name,tag,default)
local t = collected[name]
if t then
t = t[tag] or t[tonumber(tag)]
@@ -268,36 +267,21 @@ local function realpage(name,tag,default)
return default
end
-local function realpageorder(name,tag)
- local t = collected[name]
- if t then
- local p = t[tag]
- if p then
- local n = 1
- for i=tag-1,1,-1 do
- if t[i] == p then
- n = n +1
- end
- end
- return n
- end
+local function setpagestate(settings)
+ local name, tag, data = setstate(settings)
+ if type(tag) == "number" then
+ context(new_latelua(formatters["job.pagestates.extend(%q,%i)"](name,tag)))
+ else
+ context(new_latelua(formatters["job.pagestates.extend(%q,%q)"](name,tag)))
end
- return 0
end
-pagestates.setstate = setstate
-pagestates.extend = extend
-pagestates.realpage = realpage
-pagestates.realpageorder = realpageorder
-
-function pagestates.countervalue(name)
- return name and texgetcount(getnamespace("pagestatecounter") .. name) or 0
-end
-
-local function setpagestate(settings)
- local name, tag = setstate(settings)
- -- context(new_latelua(function() extend(name,tag) end))
- ctx_latelua(function() extend(name,tag) end)
+local function pagestaterealpage(name,tag)
+ local t = collected[name]
+ t = t and (t[tag] or t[tonumber(tag)])
+ if t then
+ context(t)
+ end
end
local function setpagestaterealpageno(name,tag)
@@ -320,7 +304,7 @@ implement {
implement {
name = "pagestaterealpage",
- actions = { realpage, context },
+ actions = pagestaterealpage,
arguments = "2 strings",
}
@@ -329,9 +313,3 @@ implement {
actions = setpagestaterealpageno,
arguments = "2 strings",
}
-
-implement {
- name = "pagestaterealpageorder",
- actions = { realpageorder, context },
- arguments = { "string", "integer" }
-}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/core-dat.mkiv b/Master/texmf-dist/tex/context/base/mkiv/core-dat.mkiv
index 9f4344b99d4..3bb923af424 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/core-dat.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/core-dat.mkiv
@@ -73,18 +73,9 @@
{\clf_datasetvariable{#1}{#2}{#3}}
\installcorenamespace{pagestate}
-\installcorenamespace{pagestatecounter}
\installcommandhandler \??pagestate {pagestate} \??pagestate
-\def\syst_pagestates_allocate
- {\expandafter\newcount\csname\??pagestatecounter\currentpagestate\endcsname
- \expandafter\let\expandafter\c_syst_pagestate\csname\??pagestatecounter\currentpagestate\endcsname}
-
-\appendtoks
- \syst_pagestates_allocate
-\to \everydefinepagestate
-
\setuppagestate
[\c!delay=\v!yes]
@@ -94,31 +85,17 @@
\def\syst_pagestates_set[#1][#2]%
{\begingroup
\edef\currentpagestate{#1}%
- \ifcsname\??pagestatecounter\currentpagestate\endcsname
- \let\c_syst_pagestate\lastnamedcs
- \else
- \syst_pagestates_allocate
- \fi
- \global\advance\c_syst_pagestate\plusone
- \scratchcounter\lastnamedcs
\clf_setpagestate
name {\currentpagestate}%
- tag {\ifsecondargument#2\else\number\c_syst_pagestate\fi}%
+ tag {#2}%
delay {\pagestateparameter\c!delay}%
\relax
\endgroup}
-\unexpanded\def\autosetpagestate#1%
- {\secondargumentfalse\syst_pagestates_set[#1]}
-
-\def\autopagestatenumber#1{\begincsname\??pagestatecounter#1\endcsname}
-
-\def\pagestaterealpage #1#2{\clf_pagestaterealpage {#1}{#2}}
-\def\setpagestaterealpageno#1#2{\clf_setpagestaterealpageno{#1}{#2}}
-\def\pagestaterealpageorder#1#2{\clf_pagestaterealpageorder{#1}#2\relax}
+\def\pagestaterealpage#1#2%
+ {\clf_pagestaterealpage{#1}{#2}}
-\def\autopagestaterealpage #1{\clf_pagestaterealpage {#1}{\number\autopagestatenumber{#1}}}
-\def\setautopagestaterealpageno#1{\clf_setpagestaterealpageno{#1}{\number\autopagestatenumber{#1}}}
-\def\autopagestaterealpageorder#1{\clf_pagestaterealpageorder{#1}\numexpr\autopagestatenumber{#1}\relax}
+\def\setpagestaterealpageno#1#2%
+ {\clf_setpagestaterealpageno{#1}{#2}}
\protect
diff --git a/Master/texmf-dist/tex/context/base/mkiv/core-def.mkiv b/Master/texmf-dist/tex/context/base/mkiv/core-def.mkiv
index 95f7f2577d0..9dbb16f5cab 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/core-def.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/core-def.mkiv
@@ -39,7 +39,7 @@
% \flushcommentanchors
\flushnotes
\synchronizenotes
- % \OTRSETshowstatus
+ \OTRSETshowstatus
\registerparoptions
% \flushsyncpositions
\flushpostponednodedata
diff --git a/Master/texmf-dist/tex/context/base/mkiv/core-env.lua b/Master/texmf-dist/tex/context/base/mkiv/core-env.lua
index 50759dd1941..0ef37a6d6b2 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/core-env.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/core-env.lua
@@ -26,7 +26,6 @@ local setmetatablenewindex = table.setmetatablenewindex
local setmetatablecall = table.setmetatablecall
local createtoken = token.create
-local isdefined = tokens.isdefined
texmodes = allocate { } tex.modes = texmodes
texsystemmodes = allocate { } tex.systemmodes = texsystemmodes
@@ -41,27 +40,18 @@ local systemmodes = { }
-- we could use the built-in tex.is[count|dimen|skip|toks] here but caching
-- at the lua end is not that bad (and we need more anyway)
-local cache = tokens.cache
+-- undefined: mode == 0 or cmdname = "undefined_cs"
--- we can have a modes cache too
+local cache = setmetatableindex(function(t,k)
+ local v = createtoken(k)
+ t[k] = v
+ return v
+end)
-local iftrue = cache["iftrue"].mode
+-- we can have a modes cache too
-local dimencode = cache["scratchdimen"] .command
-local countcode = cache["scratchcounter"] .command
-local tokencode = cache["scratchtoken"] .command
-local skipcode = cache["scratchskip"] .command
-local muskipcode = cache["scratchmuskip"] .command
------ attributecode = cache["scratchattribute"].command
-
-local types = {
- [dimencode] = "dimen",
- [countcode] = "count",
- [tokencode] = "token",
- [skipcode] = "skip",
- [muskipcode] = "muskip",
- -- [attributecode] = "attribute",
-}
+local iftrue = cache["iftrue"].mode
+local undefined = cache["*undefined*crap*"].mode -- is this ok?
setmetatableindex(texmodes, function(t,k)
local m = modes[k]
@@ -69,17 +59,16 @@ setmetatableindex(texmodes, function(t,k)
return m()
elseif k then
local n = "mode>" .. k
- if isdefined(n) then
+ if cache[n].mode == 0 then
+ return false
+ else
rawset(modes,k, function() return texgetcount(n) == 1 end)
return texgetcount(n) == 1 -- 2 is prevented
- else
- return false
end
else
return false
end
end)
-
setmetatablenewindex(texmodes, function(t,k)
report_mode("you cannot set the %s named %a this way","mode",k)
end)
@@ -90,11 +79,11 @@ setmetatableindex(texsystemmodes, function(t,k)
return m()
else
local n = "mode>*" .. k
- if isdefined(n) then
+ if cache[n].mode == 0 then
+ return false
+ else
rawset(systemmodes,k,function() return texgetcount(n) == 1 end)
return texgetcount(n) == 1 -- 2 is prevented
- else
- return false
end
end
end)
@@ -123,7 +112,31 @@ setmetatablenewindex(texifs, function(t,k)
-- just ignore
end)
-tex.isdefined = isdefined
+setmetatableindex(texisdefined, function(t,k)
+ return k and cache[k].mode ~= 0
+end)
+setmetatablecall(texisdefined, function(t,k)
+ return k and cache[k].mode ~= 0
+end)
+setmetatablenewindex(texisdefined, function(t,k)
+ -- just ignore
+end)
+
+local dimencode = cache["scratchdimen"] .command
+local countcode = cache["scratchcounter"] .command
+local tokencode = cache["scratchtoken"] .command
+local skipcode = cache["scratchskip"] .command
+local muskipcode = cache["scratchmuskip"] .command
+---- attributecode = cache["scratchattribute"].command
+
+local types = {
+ [dimencode] = "dimen",
+ [countcode] = "count",
+ [tokencode] = "token",
+ [skipcode] = "skip",
+ [muskipcode] = "muskip",
+ -- [attributecode] = "attribute",
+}
function tex.isdimen(name)
local hit = cache[name]
diff --git a/Master/texmf-dist/tex/context/base/mkiv/core-env.mkiv b/Master/texmf-dist/tex/context/base/mkiv/core-env.mkiv
index 758ee126d1a..c93350db04f 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/core-env.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/core-env.mkiv
@@ -68,14 +68,6 @@
{\ifcsname\??mode#1\endcsname\else\syst_modes_new{#1}\fi
\lastnamedcs\disabledmode}
-\unexpanded\def\globalsetmode#1%
- {\ifcsname\??mode#1\endcsname\else\syst_modes_new{#1}\fi
- \global\lastnamedcs\enabledmode}
-
-\unexpanded\def\globalresetmode#1%
- {\ifcsname\??mode#1\endcsname\else\syst_modes_new{#1}\fi
- \global\lastnamedcs\disabledmode}
-
\unexpanded\def\newsystemmode#1%
{\ifcsname\??mode\systemmodeprefix#1\endcsname\else\syst_modes_new{\systemmodeprefix#1}\fi}
@@ -87,14 +79,6 @@
{\ifcsname\??mode\systemmodeprefix#1\endcsname\else\syst_modes_new{\systemmodeprefix#1}\fi
\lastnamedcs\disabledmode}
-\unexpanded\def\globalsetsystemmode#1%
- {\ifcsname\??mode\systemmodeprefix#1\endcsname\else\syst_modes_new{\systemmodeprefix#1}\fi
- \global\lastnamedcs\enabledmode}
-
-\unexpanded\def\globalresetsystemmode#1%
- {\ifcsname\??mode\systemmodeprefix#1\endcsname\else\syst_modes_new{\systemmodeprefix#1}\fi
- \global\lastnamedcs\disabledmode}
-
% \def\dosetsystemmode#1%
% {\csname\??mode\systemmodeprefix#1\endcsname\enabledmode}
%
@@ -103,18 +87,16 @@
% demo: trialtypesetting is a systemmode as well as an if
-\newsystemmode{trialtypesetting}
+\newsystemmode{trialtypesetting} % the name of \@@trialtypesetting might change (also at the lua end)
-\expandafter\let\csname\??mode\systemmodeprefix trialtypesetting\endcsname\trialtypesettingstate
+\expandafter\let\expandafter\@@trialtypesetting\csname\??mode\systemmodeprefix trialtypesetting\endcsname % private !
\appendtoks
- \trialtypesettingstate\enabledmode
- \luacopyinputnodes\plusone
+ \@@trialtypesetting\enabledmode
\to \everysettrialtypesetting
\appendtoks
- \trialtypesettingstate\disabledmode
- \luacopyinputnodes\zerocount
+ \@@trialtypesetting\disabledmode
\to \everyresettrialtypesetting
% user ones
@@ -679,24 +661,6 @@
\dodoglobal\undefinevalue{\??setup:#1}%
\fi}
-% \unexpanded\def\resetsetups[#1]% see x-fo for usage
-% {\dodoglobal\expandafter\let\csname\??setup
-% \ifgridsnapping\ifcsname\??setup\v!grid:#1\endcsname\v!grid\fi
-% :#1\endcsname\undefined}
-
-\unexpanded\def\copysetups
- {\dodoubleargument\syst_setups_copy}
-
-% \def\syst_setups_copy[#1][#2]%
-% {\ifcsname\??setup:#2\endcsname
-% \expandafter\let\csname\??setup:#1\expandafter\endcsname\csname\??setup:#2\endcsname
-% \fi}
-
-\def\syst_setups_copy[#1][#2]%
- {\ifcsname\??setup:#2\endcsname
- \expandafter\let\csname\??setup:#1\expandafter\endcsname\lastnamedcs
- \fi}
-
\unexpanded\def\showsetupsdefinition[#1]%
{\showvalue{\??setup:#1}} % temp hack for debugging
@@ -813,7 +777,7 @@
%{\edef\m_syst_string_one{\csname\??variables\ifcsname\??variables#1:#2\endcsname#1:#2\else:\fi\endcsname}%
{\edef\m_syst_string_one{\begincsname\??variables#1:#2\endcsname}%
\ifx\m_syst_string_one\empty
- \expandafter\firstoftwoarguments
+ \expandafter\firstoffourarguments
\else
\expandafter\secondoftwoarguments
\fi}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/core-lmt.lua b/Master/texmf-dist/tex/context/base/mkiv/core-lmt.lua
deleted file mode 100644
index 700ce47211e..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/core-lmt.lua
+++ /dev/null
@@ -1,34 +0,0 @@
-if not modules then modules = { } end modules ['core-lmt'] = {
- version = 1.001,
- comment = "companion to core-lmt.mkiv",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
-local implement = interfaces.implement
-local scankeyword = tokens.scanners.keyword
-
-local settextdir = tex.settextdir
-local setlinedir = tex.setlinedir
-local setpardir = tex.setpardir
-local setboxdir = tex.setboxdir
-
-local function scandir(what)
- if scankeyword("tlt") then
- what(0)
- elseif scankeyword("trt") then
- what(1)
- -- elseif scankeyword("rtt") then
- -- what(2)
- -- elseif scankeyword("ltl") then
- -- what(3)
- else
- what(0)
- end
-end
-
-implement { name = "textdir", public = true, protected = true, actions = function() scandir(settextdir) end }
-implement { name = "linedir", public = true, protected = true, actions = function() scandir(setlinedir) end }
-implement { name = "pardir", public = true, protected = true, actions = function() scandir(setpardir) end }
-implement { name = "boxdir", public = true, protected = true, actions = function() scandir(setboxdir) end }
diff --git a/Master/texmf-dist/tex/context/base/mkiv/core-lmt.mkiv b/Master/texmf-dist/tex/context/base/mkiv/core-lmt.mkiv
deleted file mode 100644
index eda66796918..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/core-lmt.mkiv
+++ /dev/null
@@ -1,32 +0,0 @@
-%D \module
-%D [ file=core-lmt,
-%D version=2010.08.2,
-%D title=\CONTEXT\ System Macros,
-%D subtitle=Primitives,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\ifcase\contextlmtxmode\expandafter\endinput\fi
-
-\writestatus{loading}{ConTeXt System Macros / Primitives}
-
-\ifdefined\textdir \else
- \registerctxluafile{core-lmt}{}
-\fi
-
-\unprotect
-
-% nothing yet
-
-\protect \endinput
-
-% \starttext
-% abc{\textdir TRTdef}ghi
-% abc{\textdir trtdef}ghi
-% \boxdirection0=1
-% \stoptext
diff --git a/Master/texmf-dist/tex/context/base/mkiv/core-sys.lua b/Master/texmf-dist/tex/context/base/mkiv/core-sys.lua
index 4078ab8a8a9..26229235b44 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/core-sys.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/core-sys.lua
@@ -73,13 +73,13 @@ implement { name = "outputfilename", actions = function() context(environme
statistics.register("result saved in file", function()
-- suffix will be fetched from backend
local outputfilename = environment.outputfilename or environment.jobname or tex.jobname or "<unset>"
- -- if (tex.pdfoutput or tex.outputmode) > 0 then
+ if (tex.pdfoutput or tex.outputmode) > 0 then
return format("%s.%s, compresslevel %s, objectcompresslevel %s",outputfilename,"pdf",
lpdf.getcompression()
)
- -- else
- -- return format("%s.%s",outputfilename,"dvi") -- hard to imagine
- -- end
+ else
+ return format("%s.%s",outputfilename,"dvi") -- hard to imagine
+ end
end)
implement {
diff --git a/Master/texmf-dist/tex/context/base/mkiv/core-two.lua b/Master/texmf-dist/tex/context/base/mkiv/core-two.lua
index 3ab2112b9aa..1e59004be6f 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/core-two.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/core-two.lua
@@ -32,7 +32,7 @@ end
job.register('job.passes.collected', tobesaved, initializer, nil)
-local function define(id)
+local function allocate(id)
local p = tobesaved[id]
if not p then
p = { }
@@ -41,8 +41,10 @@ local function define(id)
return p
end
-local function save(id,str,index)
- local jti = define(id)
+jobpasses.define = allocate
+
+function jobpasses.save(id,str,index)
+ local jti = allocate(id)
if index then
jti[index] = str
else
@@ -50,30 +52,30 @@ local function save(id,str,index)
end
end
-local function savetagged(id,tag,str)
- local jti = define(id)
+function jobpasses.savetagged(id,tag,str)
+ local jti = allocate(id)
jti[tag] = str
end
-local function getdata(id,index,default)
+function jobpasses.getdata(id,index,default)
local jti = collected[id]
local value = jti and jti[index]
return value ~= "" and value or default or ""
end
-local function getfield(id,index,tag,default)
+function jobpasses.getfield(id,index,tag,default)
local jti = collected[id]
jti = jti and jti[index]
local value = jti and jti[tag]
return value ~= "" and value or default or ""
end
-local function getcollected(id)
+function jobpasses.getcollected(id)
return collected[id] or { }
end
-local function gettobesaved(id)
- return define(id)
+function jobpasses.gettobesaved(id)
+ return allocate(id)
end
local function get(id)
@@ -85,17 +87,23 @@ end
local function first(id)
local jti = collected[id]
- return jti and jti[1]
+ if jti and #jti > 0 then
+ return jti[1]
+ end
end
local function last(id)
local jti = collected[id]
- return jti and jti[#jti]
+ if jti and #jti > 0 then
+ return jti[#jti]
+ end
end
local function find(id,n)
local jti = collected[id]
- return jti and jti[n] or nil
+ if jti and jti[n] then
+ return jti[n]
+ end
end
local function count(id)
@@ -124,49 +132,44 @@ end
local check = first
-jobpasses.define = define
-jobpasses.save = save
-jobpasses.savetagged = savetagged
-jobpasses.getdata = getdata
-jobpasses.getfield = getfield
-jobpasses.getcollected = getcollected
-jobpasses.gettobesaved = gettobesaved
-jobpasses.get = get
-jobpasses.first = first
-jobpasses.last = last
-jobpasses.find = find
-jobpasses.list = list
-jobpasses.count = count
-jobpasses.check = check
-jobpasses.inlist = inlist
+--
+
+jobpasses.get = get
+jobpasses.first = first
+jobpasses.last = last
+jobpasses.find = find
+jobpasses.list = list
+jobpasses.count = count
+jobpasses.check = check
+jobpasses.inlist = inlist
-- interface
local implement = interfaces.implement
-implement { name = "gettwopassdata", actions = { get, context }, arguments = "string" }
+implement { name = "gettwopassdata", actions = { get , context }, arguments = "string" }
implement { name = "getfirsttwopassdata",actions = { first, context }, arguments = "string" }
-implement { name = "getlasttwopassdata", actions = { last, context }, arguments = "string" }
-implement { name = "findtwopassdata", actions = { find, context }, arguments = "2 strings" }
-implement { name = "gettwopassdatalist", actions = { list, context }, arguments = "string" }
+implement { name = "getlasttwopassdata", actions = { last , context }, arguments = "string" }
+implement { name = "findtwopassdata", actions = { find , context }, arguments = "2 strings" }
+implement { name = "gettwopassdatalist", actions = { list , context }, arguments = "string" }
implement { name = "counttwopassdata", actions = { count, context }, arguments = "string" }
implement { name = "checktwopassdata", actions = { check, context }, arguments = "string" }
implement {
name = "definetwopasslist",
- actions = define,
+ actions = jobpasses.define,
arguments = "string"
}
implement {
name = "savetwopassdata",
- actions = save,
+ actions = jobpasses.save,
arguments = "2 strings",
}
implement {
name = "savetaggedtwopassdata",
- actions = savetagged,
+ actions = jobpasses.savetagged,
arguments = "3 strings",
}
@@ -175,23 +178,3 @@ implement {
actions = { inlist, commands.doifelse },
arguments = "2 strings",
}
-
--- local ctx_latelua = context.latelua
-
--- implement {
--- name = "lazysavetwopassdata",
--- arguments = "3 strings",
--- public = true,
--- actions = function(a,b,c)
--- ctx_latelua(function() save(a,c) end)
--- end,
--- }
-
--- implement {
--- name = "lazysavetaggedtwopassdata",
--- arguments = "3 strings",
--- public = true,
--- actions = function(a,b,c)
--- ctx_latelua(function() savetagged(a,b,c) end)
--- end,
--- }
diff --git a/Master/texmf-dist/tex/context/base/mkiv/core-two.mkiv b/Master/texmf-dist/tex/context/base/mkiv/core-two.mkiv
index aae4902bc9b..f83d630427b 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/core-two.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/core-two.mkiv
@@ -74,10 +74,10 @@
\registerctxluafile{core-two}{}
\def\immediatesavetwopassdata #1#2#3{\normalexpanded{\noexpand\clf_savetwopassdata{#1}{#3}}}
-\def \lazysavetwopassdata #1#2#3{\normalexpanded{\noexpand\ctxlatecommand{savetwopassdata("#1","#3")}}}
-\let \savetwopassdata \lazysavetwopassdata
-\def \savetaggedtwopassdata#1#2#3#4{\normalexpanded{\noexpand\clf_savetaggedtwopassdata{#1}{#3}{#4}}}
-\def\lazysavetaggedtwopassdata#1#2#3#4{\normalexpanded{\noexpand\ctxlatecommand{savetaggedtwopassdata("#1",'#3',"#4")}}}
+\def\savetwopassdata #1#2#3{\normalexpanded{\noexpand\ctxlatecommand{savetwopassdata('#1',"#3")}}}
+\def\lazysavetwopassdata #1#2#3{\normalexpanded{\noexpand\ctxlatecommand{savetwopassdata('#1',"#3")}}}
+\def\savetaggedtwopassdata #1#2#3#4{\normalexpanded{\noexpand\clf_savetaggedtwopassdata{#1}{#3}{#4}}}
+\def\lazysavetaggedtwopassdata#1#2#3#4{\normalexpanded{\noexpand\ctxlatecommand{savetaggedtwopassdata('#1','#3',"#4")}}}
% temp hack: needs a proper \starteverytimeluacode
diff --git a/Master/texmf-dist/tex/context/base/mkiv/core-uti.lua b/Master/texmf-dist/tex/context/base/mkiv/core-uti.lua
index cd867db1bce..b281b81a42f 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/core-uti.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/core-uti.lua
@@ -43,7 +43,7 @@ local report_passes = logs.reporter("job","passes")
job = job or { }
local job = job
-job.version = 1.31
+job.version = 1.30
job.packversion = 1.02
-- some day we will implement loading of other jobs and then we need
@@ -195,7 +195,6 @@ end
local packlist = {
"numbers",
- "ownnumbers",
"metadata",
"sectiondata",
"prefixdata",
@@ -210,7 +209,6 @@ local packlist = {
local skiplist = {
"datasets",
"userdata",
- "positions",
}
-- not ok as we can have arbitrary keys in userdata and dataset so some day we
@@ -400,7 +398,7 @@ function statistics.callbacks()
local c_internal = status.callbacks or 0
local c_file = status.indirect_callbacks or 0
local c_direct = status.direct_callbacks or 0
- local c_late = backends.noflatelua() or 0
+ local c_late = status.late_callbacks or 0
local c_function = status.function_callbacks or 0
local c_total = c_internal + c_file + c_direct + c_late + c_function
local n_pages = texgetcount('realpageno') - 1
@@ -432,7 +430,6 @@ end)
-- local used_wood_factor = watts_per_core * kg_per_watt_per_second / speedup_by_other_engine
-- local used_wood_factor = (50 / 15000000) / 1.2
-
function statistics.formatruntime(runtime)
if not environment.initex then -- else error when testing as not counters yet
-- stoptiming(statistics) -- to be sure
@@ -441,15 +438,19 @@ function statistics.formatruntime(runtime)
if pages > shipped then
pages = shipped
end
- runtime = tonumber(runtime)
if shipped > 0 or pages > 0 then
+ runtime = tonumber(runtime)
local persecond = (runtime > 0) and (shipped/runtime) or pages
- if pages == 0 then
- pages = shipped
- end
- return format("%0.3f seconds, %i processed pages, %i shipped pages, %.3f pages/second",runtime,pages,shipped,persecond)
+ if pages == 0 then pages = shipped end
+ -- if TEXENGINE == "luajittex" then
+ -- local saved = watts_per_core * runtime * kg_per_watt_per_second / speedup_by_other_engine
+ -- local saved = used_wood_factor * runtime
+ -- return format("%s seconds, %i processed pages, %i shipped pages, %.3f pages/second, %f mg tree saved by using luajittex",runtime,pages,shipped,persecond,saved*1000*1000)
+ -- else
+ return format("%s seconds, %i processed pages, %i shipped pages, %.3f pages/second",runtime,pages,shipped,persecond)
+ -- end
else
- return format("%0.3f seconds",runtime)
+ return format("%s seconds",runtime)
end
end
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/data-aux.lua b/Master/texmf-dist/tex/context/base/mkiv/data-aux.lua
index c57f16d2c57..1e020d1e844 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/data-aux.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/data-aux.lua
@@ -50,7 +50,7 @@ function resolvers.updatescript(oldname,newname) -- oldname -> own.name, not per
local newdata = io.loaddata(newscript)
if newdata then
if trace_locating then
- report_scripts("old script content replaced by new content: %s",oldscript)
+ report_scripts("old script content replaced by new content")
end
io.savedata(oldscript,newdata)
break
diff --git a/Master/texmf-dist/tex/context/base/mkiv/data-pre.lua b/Master/texmf-dist/tex/context/base/mkiv/data-pre.lua
index 5e3020b7065..70b2e735455 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/data-pre.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/data-pre.lua
@@ -6,25 +6,6 @@ if not modules then modules = { } end modules ['data-pre'] = {
license = "see context related readme files"
}
--- filename : only the basename, including suffix (file:)
--- pathname : the pathpart (path:)
--- locate : lookup in database (full: kpse: loc:)
--- home : home path
--- jobpath : job path
--- relative : relative path ./ ../ ../.. (rel:)
--- auto : relatove or lookup
--- toppath : topmost path in input stack
--- selfautodir : rather tex specific
--- selfautoloc : rather tex specific
--- selfautoparent : rather tex specific
--- environment : expansion of variable (env:)
---
--- nodename : computer name
--- machine : private, when set
--- sysname : operating system name
--- version : operating system version
--- release : operating system release
-
local resolvers = resolvers
local prefixes = resolvers.prefixes
@@ -159,6 +140,7 @@ resolvers.setdynamic("toppath")
resolvers.setdynamic("jobpath")
-- for a while (obsolete):
---
--- prefixes.jobfile = prefixes.jobpath
--- resolvers.setdynamic("jobfile")
+
+prefixes.jobfile = prefixes.jobpath
+
+resolvers.setdynamic("jobfile")
diff --git a/Master/texmf-dist/tex/context/base/mkiv/data-res.lua b/Master/texmf-dist/tex/context/base/mkiv/data-res.lua
index 0c2735fc274..9fb33f88dce 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/data-res.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/data-res.lua
@@ -9,7 +9,7 @@ if not modules then modules = { } end modules ['data-res'] = {
-- todo: cache:/// home:/// selfautoparent:/// (sometime end 2012)
local gsub, find, lower, upper, match, gmatch = string.gsub, string.find, string.lower, string.upper, string.match, string.gmatch
-local concat, insert, remove = table.concat, table.insert, table.remove
+local concat, insert, remove, sortedkeys, sortedhash = table.concat, table.insert, table.remove, table.sortedkeys, table.sortedhash
local next, type, rawget = next, type, rawget
local os = os
@@ -1875,7 +1875,7 @@ function resolvers.booleanvariable(str,default)
end
function resolvers.dowithfilesintree(pattern,handle,before,after) -- will move, can be a nice iterator instead
- local hashes = instance.hashes
+ local hashes = instance.hashes
for i=1,#hashes do
local hash = hashes[i]
local blobtype = hash.type
@@ -1903,7 +1903,7 @@ function resolvers.dowithfilesintree(pattern,handle,before,after) -- will move,
end
end
if after then
- after(blobtype,blobpath,pattern,checked,done)
+ after(blobtype,blobpath,pattern,total,checked,done)
end
end
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/data-tex.lua b/Master/texmf-dist/tex/context/base/mkiv/data-tex.lua
index 8f978a204f3..2d2c9b24d3a 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/data-tex.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/data-tex.lua
@@ -149,19 +149,19 @@ function helpers.textopener(tag,filename,filehandle,coding)
currentline = currentline + 1
-- self.currentline = currentline
local content = lines[currentline]
- if content == "" then
+ if not content then
+ return nil
+ elseif content == "" then
return ""
-- elseif content == ctrl_d or ctrl_z then
-- return nil -- we need this as \endinput does not work in prints
- elseif content then
+ else
local runner = textlineactions.runner
if runner then
return runner(content,filename,currentline,noflines,coding) or content
else
return content
end
- else
- return nil
end
end
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/data-tre.lua b/Master/texmf-dist/tex/context/base/mkiv/data-tre.lua
index c4d43e3eb20..4388731f98c 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/data-tre.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/data-tre.lua
@@ -100,10 +100,11 @@ end
function resolvers.hashers.tree(specification)
local name = specification.filename
- if trace_locating then
+ -- if trace_locating then
report_trees("analyzing %a",name)
- end
+ -- end
resolvers.methodhandler("hashers",name)
+
resolvers.generators.file(specification)
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/data-use.lua b/Master/texmf-dist/tex/context/base/mkiv/data-use.lua
index 5985a2eac24..ff25c803ac5 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/data-use.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/data-use.lua
@@ -69,11 +69,7 @@ function statistics.savefmtstatus(texname,formatbanner,sourcefile,kind,banner) -
}
io.savedata(luvname,table.serialize(luvdata,true))
lua.registerfinalizer(function()
- if jit then
- logs.report("format banner","%s lua: %s jit",banner,LUAVERSION)
- else
- logs.report("format banner","%s lua: %s",banner,LUAVERSION)
- end
+ logs.report("format banner","%s",banner)
logs.newline()
end)
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/data-zip.lua b/Master/texmf-dist/tex/context/base/mkiv/data-zip.lua
index 6f20b4a9d96..32666bef268 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/data-zip.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/data-zip.lua
@@ -31,11 +31,11 @@ local resolvers = resolvers
zip = zip or { }
local zip = zip
-local archives = zip.archives or { }
-zip.archives = archives
+zip.archives = zip.archives or { }
+local archives = zip.archives
-local registeredfiles = zip.registeredfiles or { }
-zip.registeredfiles = registeredfiles
+zip.registeredfiles = zip.registeredfiles or { }
+local registeredfiles = zip.registeredfiles
local function validzip(str) -- todo: use url splitter
if not find(str,"^zip://") then
@@ -108,7 +108,7 @@ function resolvers.finders.zip(specification)
end
local dfile = zfile:open(queryname)
if dfile then
- dfile:close()
+ dfile = zfile:close()
if trace_locating then
report_zip("finder: file %a found",queryname)
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/driv-ini.lua b/Master/texmf-dist/tex/context/base/mkiv/driv-ini.lua
deleted file mode 100644
index e16327f27d7..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/driv-ini.lua
+++ /dev/null
@@ -1,194 +0,0 @@
-if not modules then modules = { } end modules ['driv-ini'] = {
- version = 1.001,
- comment = "companion to driv-ini.mkiv",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
-local type = type
-local addsuffix = file.addsuffix
-
-local setmetatableindex = table.setmetatableindex
-local formatters = string.formatters
-
-local starttiming = statistics.starttiming
-local stoptiming = statistics.stoptiming
-
-local report = logs.reporter("drivers")
-
-local instances = { }
-local helpers = { }
-local prepared = { }
-local wrappedup = { }
-local currentdriver = "default"
-
-local prepare = nil
-local convert = nil
-local wrapup = nil
-local outputfilename = nil
-
-drivers = drivers or {
- instances = instances,
- helpers = helpers,
- lmtxversion = 0.10,
-}
-
-local dummy = function() end
-
-local defaulthandlers = {
- prepare = dummy,
- initialize = dummy,
- finalize = dummy,
- updatefontstate = dummy,
- wrapup = dummy,
- convert = dummy,
- outputfilename = dummy,
-}
-
-function drivers.install(specification)
- local name = specification.name
- if not name then
- report("missing driver name")
- return
- end
- local actions = specification.actions
- if not actions then
- report("no actions for driver %a",name)
- return
- end
- local flushers = specification.flushers
- if not flushers then
- report("no flushers for driver %a",name)
- return
- end
- setmetatableindex(actions,defaulthandlers)
- instances[name] = specification
-end
-
-function drivers.convert(boxnumber)
- callbacks.functions.start_page_number()
- starttiming(drivers)
- convert(boxnumber)
- stoptiming(drivers)
- callbacks.functions.stop_page_number()
-end
-
-function drivers.outputfilename()
- return outputfilename()
-end
-
-
-luatex.wrapup(function()
- if not wrappedup[currentdriver] then
- starttiming(drivers)
- wrapup()
- stoptiming(drivers)
- wrappedup[currentdriver] = true
- end
-end)
-
-function drivers.enable(name)
- currentdriver = name or "default"
- local actions = instances[currentdriver].actions
- prepare = actions.prepare
- wrapup = actions.wrapup
- convert = actions.convert
- outputfilename = actions.outputfilename
- --
- if prepare and not prepared[currentdriver] then
- starttiming(drivers)
- prepare()
- stoptiming(drivers)
- prepared[currentdriver] = true
- end
-end
-
-statistics.register("driver time",function()
- return statistics.elapsedseconds(drivers)
-end)
-
-interfaces.implement {
- name = "shipoutpage",
- arguments = "integer",
- actions = drivers.convert,
-}
-
-interfaces.implement {
- name = "enabledriver",
- arguments = "string",
- actions = drivers.enable,
-}
-
--- The default driver:
-
-do
-
- local filename = nil
-
- drivers.install {
- name = "default",
- actions = {
- convert = tex.shipout,
- outputfilename = function()
- if not filename then
- filename = addsuffix(tex.jobname,"pdf")
- end
- return filename
- end,
- },
- flushers = {
- -- we always need this entry
- },
- }
-
-end
-
-setmetatableindex(instances,function() return instances.default end)
-
--- for now:
-
-drivers.enable("default")
-
--- helpers
-
-local s_matrix_0 = "1 0 0 1"
-local f_matrix_2 = formatters["%.6F 0 0 %.6F"]
-local f_matrix_4 = formatters["%.6F %.6F %.6F %.6F"]
-
-directives.register("pdf.stripzeros",function()
- f_matrix_2 = formatters["%.6N 0 0 %.6N"]
- f_matrix_4 = formatters["%.6N %.6N %.6N %.6N"]
-end)
-
-function helpers.tomatrix(rx,sx,sy,ry,tx,ty) -- todo: tx ty
- if type(rx) == "string" then
- return rx
- else
- if not rx then
- rx = 1
- elseif rx == 0 then
- rx = 0.0001
- end
- if not ry then
- ry = 1
- elseif ry == 0 then
- ry = 0.0001
- end
- if not sx then
- sx = 0
- end
- if not sy then
- sy = 0
- end
- if sx == 0 and sy == 0 then
- if rx == 1 and ry == 1 then
- return s_matrix_0
- else
- return f_matrix_2(rx,ry)
- end
- else
- return f_matrix_4(rx,sx,sy,ry)
- end
- end
-end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/driv-ini.mkiv b/Master/texmf-dist/tex/context/base/mkiv/driv-ini.mkiv
deleted file mode 100644
index 95b6c88a7b4..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/driv-ini.mkiv
+++ /dev/null
@@ -1,25 +0,0 @@
-%D \module
-%D [ file=driv-ini,
-%D version=2018.07.26,
-%D title=\CONTEXT\ Driver Macros,
-%D subtitle=Initialization,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Driver Macros / Initialization}
-
-\registerctxluafile{driv-ini}{}
-
-\unprotect
-
-\def\page_shipout_box#1%
- {\clf_shipoutpage#1\relax
- \setbox#1\emptybox
- \global\deadcycles\zerocount}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkiv/export-example.css b/Master/texmf-dist/tex/context/base/mkiv/export-example.css
index c39f0bec637..812873afc5b 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/export-example.css
+++ b/Master/texmf-dist/tex/context/base/mkiv/export-example.css
@@ -34,9 +34,8 @@
@namespace context url('http://www.pragma-ade.com/context/export') ;
-/* ignore : mixed */
-/* metadata : display */
-/* extradata: display */
+/* ignore : mixed */
+/* metadata: display */
ignore,
context|div.ignore {
@@ -58,11 +57,6 @@ context|div.xmetavariable {
display : none ;
}
-extradata,
-context|div.extradata {
- display : none ;
-}
-
/* document : display */
document:before,
@@ -685,7 +679,6 @@ context|div.combinationcaption {
/* listcontent : mixed */
/* listdata : mixed */
/* listpage : mixed */
-/* listtext : inline */
list,
context|div.list {
@@ -765,11 +758,6 @@ context|div.listpage {
display : none ;
}
-listtext,
-context|div.listtext {
- display : inline ;
-}
-
/* delimitedblock : display */
/* delimited : inline */
/* delimitedsymbol : inline */
@@ -1036,20 +1024,6 @@ context|div.math-display {
margin : 1ex 0ex 1em 3em ;
}
-/* publication : inline */
-/* pubfld : inline */
-
-publication,
-context|div.publication {
- display : inline ;
-}
-
-pubfld[detail="title"],
-context|div.pubfld.title {
- display : inline ;
- font-weight : italic ;
-}
-
/* quantity : inline */
/* unit : inline */
/* number : inline */
@@ -1123,13 +1097,6 @@ context|div.comment {
font-family : "DejaVu Sans Mono", "Lucida Console", monospace ;
}
-/* blocks */
-
-block,
-context|div.block {
- display : block ;
-}
-
/* special */
c,
diff --git a/Master/texmf-dist/tex/context/base/mkiv/file-job.lua b/Master/texmf-dist/tex/context/base/mkiv/file-job.lua
index 486aee63a72..dbf6da9b4ba 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/file-job.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/file-job.lua
@@ -386,6 +386,7 @@ local function starttext()
if trace_jobfiles then
report_jobfiles("starting text")
end
+ -- registerfileinfo[begin]jobfilename
context.dostarttext()
end
textlevel = textlevel + 1
@@ -405,6 +406,8 @@ local function stoptext()
report_jobfiles("stopping text")
end
context.dostoptext()
+ -- registerfileinfo[end]jobfilename
+ context.finalend()
stopped = true
end
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/file-job.mkvi b/Master/texmf-dist/tex/context/base/mkiv/file-job.mkvi
index a46e519c061..e1ea405c068 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/file-job.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/file-job.mkvi
@@ -312,12 +312,6 @@
{\documentvariable\c!after
\stoptext}
-\unexpanded\def\doifelsedocumentvariable#name{\doifelsesomething{\documentvariable{#name}}}
-\unexpanded\def\doifdocumentvariable #name{\doifsomething {\documentvariable{#name}}}
-\unexpanded\def\doifnotdocumentvariable #name{\doifnot {\documentvariable{#name}}}
-
-\let\doifdocumentvariableelse\doifelsedocumentvariable
-
\def\documentvariable#name%
{\getvariable\s!document{#name}}
@@ -353,15 +347,12 @@
% Bonus:
-% \installcorenamespace{samplefile}
-%
-% \unexpanded\def\samplefile#1%
-% {\ifcsname\??samplefile#1\endcsname \else
-% \setxvalue{\??samplefile#1}{\cldloadfile{#1}}%
-% \fi
-% \lastnamedcs}
+\installcorenamespace{samplefile}
\unexpanded\def\samplefile#1%
- {\clf_samplefile{#1}}
+ {\ifcsname\??samplefile#1\endcsname \else
+ \setxvalue{\??samplefile#1}{\cldloadfile{#1}}%
+ \fi
+ \lastnamedcs}
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkiv/file-mod.mkvi b/Master/texmf-dist/tex/context/base/mkiv/file-mod.mkvi
index a06770e24d1..a2a3b77933e 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/file-mod.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/file-mod.mkvi
@@ -36,9 +36,9 @@
\let\usetexmodule\usemodules
\def\strc_modules_use[#category][#name][#parameters]% category=t|m|x|p|...
- {\push_macro_currentmodule
- \push_macro_currentmodulecategory
- \push_macro_currentmoduleparameters
+ {\pushmacro\currentmodule
+ \pushmacro\currentmodulecategory
+ \pushmacro\currentmoduleparameters
\ifthirdargument
\edef\currentmodulecategory {#category}%
\edef\currentmodule {#name}%
@@ -57,9 +57,9 @@
\let \currentmoduleparameters\empty
\fi\fi
\processcommacommand[\currentmodule]{\strc_modules_use_indeed\currentmodulecategory}%
- \pop_macro_currentmoduleparameters
- \pop_macro_currentmodulecategory
- \pop_macro_currentmodule}
+ \popmacro\currentmoduleparameters
+ \popmacro\currentmodulecategory
+ \popmacro\currentmodule}
\def\strc_modules_use_indeed#category#name%
{\ifx\currentmoduleparameters\empty\else
@@ -70,24 +70,20 @@
\installcorenamespace{module}
-\let\currentmodule \s!unknown
-\let\currentmodulecategory \empty
\let\currentmoduleparameters\empty
+\let\currentmodule \s!unknown
-\installmacrostack\currentmodule
-\installmacrostack\currentmodulecategory
-\installmacrostack\currentmoduleparameters
+\newcount \c_syst_modules_nesting
-\newcount\c_syst_modules_nesting
-\newtoks \everysetupmodule
+\newtoks\everysetupmodule
\unexpanded\def\startmodule
{\doifelsenextoptionalcs\syst_modules_start_yes\syst_modules_start_nop}
\def\syst_modules_start_yes[#name]%
{\global\advance\c_syst_modules_nesting\plusone
- \push_macro_currentmodule
- \push_macro_currentmoduleparameters
+ \pushmacro\currentmodule
+ \pushmacro\currentmoduleparameters
\def\currentmodule{#name}}
\def\syst_modules_start_nop#name %
@@ -97,8 +93,8 @@
{\ifcase\c_syst_modules_nesting
\writestatus\m!system{module wrapping error in '\currentmodule'}%
\else
- \pop_macro_currentmoduleparameters
- \pop_macro_currentmodule
+ \popmacro\currentmoduleparameters
+ \popmacro\currentmodule
\global\advance\c_syst_modules_nesting\minusone
\fi}
@@ -207,7 +203,7 @@
{\ifcsname\??runtimeloaded#2\endcsname
% already loaded
\else
- \glet#1\undefined
+ \global\let#1\undefined
\startreadingfile
\startnointerference % \bgroup
\cleanupfeatures % better \setnormalcatcodes / test first
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-aux.lua b/Master/texmf-dist/tex/context/base/mkiv/font-aux.lua
index 4ac6278cbcf..fcbcd6d32d1 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-aux.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-aux.lua
@@ -185,7 +185,6 @@ end
local getters = { -- maybe better getters[format][...]
kern = {
["type1"] = afm.getkern,
- ["type3"] = afm.getkern,
["opentype"] = otf.getkern,
},
substitution = {
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-cff.lua b/Master/texmf-dist/tex/context/base/mkiv/font-cff.lua
index 46deedb5f93..1d4f010079f 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-cff.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-cff.lua
@@ -26,16 +26,14 @@ if not modules then modules = { } end modules ['font-cff'] = {
-- with merging subroutines and flattening, not so much with calculations.) On
-- the other hand, we can now feed back cff2 stuff.
-local next, type, tonumber, rawget = next, type, tonumber, rawget
+local next, type, tonumber = next, type, tonumber
local byte, char, gmatch = string.byte, string.char, string.gmatch
-local concat, remove, unpack = table.concat, table.remove, table.unpack
+local concat, remove = table.concat, table.remove
local floor, abs, round, ceil, min, max = math.floor, math.abs, math.round, math.ceil, math.min, math.max
local P, C, R, S, C, Cs, Ct = lpeg.P, lpeg.C, lpeg.R, lpeg.S, lpeg.C, lpeg.Cs, lpeg.Ct
local lpegmatch = lpeg.match
local formatters = string.formatters
local bytetable = string.bytetable
-local idiv = number.idiv
-local rshift, band, extract = bit32.rshift, bit32.band, bit32.extract
local readers = fonts.handlers.otf.readers
local streamreader = readers.streamreader
@@ -49,21 +47,6 @@ local setposition = streamreader.setposition
local getposition = streamreader.getposition
local readbytetable = streamreader.readbytetable
-directives.register("fonts.streamreader",function()
-
- streamreader = utilities.streams
-
- readstring = streamreader.readstring
- readbyte = streamreader.readcardinal1
- readushort = streamreader.readcardinal2
- readuint = streamreader.readcardinal3
- readulong = streamreader.readcardinal4
- setposition = streamreader.setposition
- getposition = streamreader.getposition
- readbytetable = streamreader.readbytetable
-
-end)
-
local setmetatableindex = table.setmetatableindex
local trace_charstrings = false trackers.register("fonts.cff.charstrings",function(v) trace_charstrings = v end)
@@ -289,30 +272,12 @@ do
result.fontbbox = { unpack(stack,1,4) }
top = 0
end
- + P("\06") / function()
- result.bluevalues = { unpack(stack,1,top) }
- top = 0
- end
- + P("\07") / function()
- result.otherblues = { unpack(stack,1,top) }
- top = 0
- end
- + P("\08") / function()
- result.familyblues = { unpack(stack,1,top) }
- top = 0
- end
- + P("\09") / function()
- result.familyotherblues = { unpack(stack,1,top) }
- top = 0
- end
- + P("\10") / function()
- result.strhw = stack[top]
- top = 0
- end
- + P("\11") / function()
- result.strvw = stack[top]
- top = 0
- end
+ -- + P("\06") / function() end -- bluevalues
+ -- + P("\07") / function() end -- otherblues
+ -- + P("\08") / function() end -- familyblues
+ -- + P("\09") / function() end -- familyotherblues
+ -- + P("\10") / function() end -- strhw
+ -- + P("\11") / function() end -- stdvw
+ P("\13") / function()
result.uniqueid = stack[top]
top = 0
@@ -406,26 +371,6 @@ do
result.strokewidth = stack[top]
top = 0
end
- + P("\09") / function()
- result.bluescale = stack[top]
- top = 0
- end
- + P("\10") / function()
- result.bluesnap = stack[top]
- top = 0
- end
- + P("\11") / function()
- result.bluefuzz = stack[top]
- top = 0
- end
- + P("\12") / function()
- result.stemsnaph = { unpack(stack,1,top) }
- top = 0
- end
- + P("\13") / function()
- result.stemsnapv = { unpack(stack,1,top) }
- top = 0
- end
+ P("\20") / function()
result.syntheticbase = stack[top]
top = 0
@@ -486,27 +431,52 @@ do
-- the second variant is much faster. Not that it matters much as we don't see
-- such numbers often.
+ local p_last = P("\x0F") / "0" + P("\x1F") / "1" + P("\x2F") / "2" + P("\x3F") / "3"
+ + P("\x4F") / "4" + P("\x5F") / "5" + P("\x6F") / "6" + P("\x7F") / "7"
+ + P("\x8F") / "8" + P("\x9F") / "9" + P("\xAF") / "" + P("\xBF") / ""
+ + P("\xCF") / "" + P("\xDF") / "" + P("\xEF") / "" + R("\xF0\xFF") / ""
+
+ -- local remap = { [0] =
+ -- "00", "01", "02", "03", "04", "05", "06", "07", "08", "09", "0.", "0E", "0E-", "0", "0-", "0",
+ -- "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "0.", "0E", "0E-", "0", "0-", "0",
+ -- "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "0.", "0E", "0E-", "0", "0-", "0",
+ -- "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "0.", "0E", "0E-", "0", "0-", "0",
+ -- "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "0.", "0E", "0E-", "0", "0-", "0",
+ -- "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "0.", "0E", "0E-", "0", "0-", "0",
+ -- "60", "61", "62", "63", "64", "65", "66", "67", "68", "69", "0.", "0E", "0E-", "0", "0-", "0",
+ -- "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", "0.", "0E", "0E-", "0", "0-", "0",
+ -- "80", "81", "82", "83", "84", "85", "86", "87", "88", "89", "0.", "0E", "0E-", "0", "0-", "0",
+ -- "90", "91", "92", "93", "94", "95", "96", "97", "98", "99", "0.", "0E", "0E-", "0", "0-", "0",
+ -- ".0", ".1", ".2", ".3", ".4", ".5", ".6", ".7", ".8", ".9", "..", ".E", ".E-", ".", ".-", ".",
+ -- "E0", "E1", "E2", "E3", "E4", "E5", "E6", "E7", "E8", "E9", "E.", "EE", "EE-", "E", "E-", "E",
+ -- "E-0", "E-1", "E-2", "E-3", "E-4", "E-5", "E-6", "E-7", "E-8", "E-9", "E-.", "E-E", "E-E-", "E-", "E--", "E-",
+ -- "-0", "-1", "-2", "-3", "-4", "-5", "-6", "-7", "-8", "-9", "-.", "-E", "-E-", "-", "--", "-",
+ -- }
+
+ -- local p_nibbles = Cs(((1-p_last)/byte/remap)^0+p_last)
+
+ -- local p = P("\30") * p_nibbles / function(t)
+ -- print(tonumber(t))
+ -- end
+
local remap = {
["\x00"] = "00", ["\x01"] = "01", ["\x02"] = "02", ["\x03"] = "03", ["\x04"] = "04", ["\x05"] = "05", ["\x06"] = "06", ["\x07"] = "07", ["\x08"] = "08", ["\x09"] = "09", ["\x0A"] = "0.", ["\x0B"] = "0E", ["\x0C"] = "0E-", ["\x0D"] = "0", ["\x0E"] = "0-", ["\x0F"] = "0",
- ["\x10"] = "10", ["\x11"] = "11", ["\x12"] = "12", ["\x13"] = "13", ["\x14"] = "14", ["\x15"] = "15", ["\x16"] = "16", ["\x17"] = "17", ["\x18"] = "18", ["\x19"] = "19", ["\x1A"] = "1.", ["\x1B"] = "1E", ["\x1C"] = "1E-", ["\x1D"] = "1", ["\x1E"] = "1-", ["\x1F"] = "1",
- ["\x20"] = "20", ["\x21"] = "21", ["\x22"] = "22", ["\x23"] = "23", ["\x24"] = "24", ["\x25"] = "25", ["\x26"] = "26", ["\x27"] = "27", ["\x28"] = "28", ["\x29"] = "29", ["\x2A"] = "2.", ["\x2B"] = "2E", ["\x2C"] = "2E-", ["\x2D"] = "2", ["\x2E"] = "2-", ["\x2F"] = "2",
- ["\x30"] = "30", ["\x31"] = "31", ["\x32"] = "32", ["\x33"] = "33", ["\x34"] = "34", ["\x35"] = "35", ["\x36"] = "36", ["\x37"] = "37", ["\x38"] = "38", ["\x39"] = "39", ["\x3A"] = "3.", ["\x3B"] = "3E", ["\x3C"] = "3E-", ["\x3D"] = "3", ["\x3E"] = "3-", ["\x3F"] = "3",
- ["\x40"] = "40", ["\x41"] = "41", ["\x42"] = "42", ["\x43"] = "43", ["\x44"] = "44", ["\x45"] = "45", ["\x46"] = "46", ["\x47"] = "47", ["\x48"] = "48", ["\x49"] = "49", ["\x4A"] = "4.", ["\x4B"] = "4E", ["\x4C"] = "4E-", ["\x4D"] = "4", ["\x4E"] = "4-", ["\x4F"] = "4",
- ["\x50"] = "50", ["\x51"] = "51", ["\x52"] = "52", ["\x53"] = "53", ["\x54"] = "54", ["\x55"] = "55", ["\x56"] = "56", ["\x57"] = "57", ["\x58"] = "58", ["\x59"] = "59", ["\x5A"] = "5.", ["\x5B"] = "5E", ["\x5C"] = "5E-", ["\x5D"] = "5", ["\x5E"] = "5-", ["\x5F"] = "5",
- ["\x60"] = "60", ["\x61"] = "61", ["\x62"] = "62", ["\x63"] = "63", ["\x64"] = "64", ["\x65"] = "65", ["\x66"] = "66", ["\x67"] = "67", ["\x68"] = "68", ["\x69"] = "69", ["\x6A"] = "6.", ["\x6B"] = "6E", ["\x6C"] = "6E-", ["\x6D"] = "6", ["\x6E"] = "6-", ["\x6F"] = "6",
- ["\x70"] = "70", ["\x71"] = "71", ["\x72"] = "72", ["\x73"] = "73", ["\x74"] = "74", ["\x75"] = "75", ["\x76"] = "76", ["\x77"] = "77", ["\x78"] = "78", ["\x79"] = "79", ["\x7A"] = "7.", ["\x7B"] = "7E", ["\x7C"] = "7E-", ["\x7D"] = "7", ["\x7E"] = "7-", ["\x7F"] = "7",
- ["\x80"] = "80", ["\x81"] = "81", ["\x82"] = "82", ["\x83"] = "83", ["\x84"] = "84", ["\x85"] = "85", ["\x86"] = "86", ["\x87"] = "87", ["\x88"] = "88", ["\x89"] = "89", ["\x8A"] = "8.", ["\x8B"] = "8E", ["\x8C"] = "8E-", ["\x8D"] = "8", ["\x8E"] = "8-", ["\x8F"] = "8",
- ["\x90"] = "90", ["\x91"] = "91", ["\x92"] = "92", ["\x93"] = "93", ["\x94"] = "94", ["\x95"] = "95", ["\x96"] = "96", ["\x97"] = "97", ["\x98"] = "98", ["\x99"] = "99", ["\x9A"] = "9.", ["\x9B"] = "9E", ["\x9C"] = "9E-", ["\x9D"] = "9", ["\x9E"] = "9-", ["\x9F"] = "9",
+ ["\x10"] = "10", ["\x11"] = "11", ["\x12"] = "12", ["\x13"] = "13", ["\x14"] = "14", ["\x15"] = "15", ["\x16"] = "16", ["\x17"] = "17", ["\x18"] = "18", ["\x19"] = "19", ["\x1A"] = "0.", ["\x1B"] = "0E", ["\x1C"] = "0E-", ["\x1D"] = "0", ["\x1E"] = "0-", ["\x1F"] = "0",
+ ["\x20"] = "20", ["\x21"] = "21", ["\x22"] = "22", ["\x23"] = "23", ["\x24"] = "24", ["\x25"] = "25", ["\x26"] = "26", ["\x27"] = "27", ["\x28"] = "28", ["\x29"] = "29", ["\x2A"] = "0.", ["\x2B"] = "0E", ["\x2C"] = "0E-", ["\x2D"] = "0", ["\x2E"] = "0-", ["\x2F"] = "0",
+ ["\x30"] = "30", ["\x31"] = "31", ["\x32"] = "32", ["\x33"] = "33", ["\x34"] = "34", ["\x35"] = "35", ["\x36"] = "36", ["\x37"] = "37", ["\x38"] = "38", ["\x39"] = "39", ["\x3A"] = "0.", ["\x3B"] = "0E", ["\x3C"] = "0E-", ["\x3D"] = "0", ["\x3E"] = "0-", ["\x3F"] = "0",
+ ["\x40"] = "40", ["\x41"] = "41", ["\x42"] = "42", ["\x43"] = "43", ["\x44"] = "44", ["\x45"] = "45", ["\x46"] = "46", ["\x47"] = "47", ["\x48"] = "48", ["\x49"] = "49", ["\x4A"] = "0.", ["\x4B"] = "0E", ["\x4C"] = "0E-", ["\x4D"] = "0", ["\x4E"] = "0-", ["\x4F"] = "0",
+ ["\x50"] = "50", ["\x51"] = "51", ["\x52"] = "52", ["\x53"] = "53", ["\x54"] = "54", ["\x55"] = "55", ["\x56"] = "56", ["\x57"] = "57", ["\x58"] = "58", ["\x59"] = "59", ["\x5A"] = "0.", ["\x5B"] = "0E", ["\x5C"] = "0E-", ["\x5D"] = "0", ["\x5E"] = "0-", ["\x5F"] = "0",
+ ["\x60"] = "60", ["\x61"] = "61", ["\x62"] = "62", ["\x63"] = "63", ["\x64"] = "64", ["\x65"] = "65", ["\x66"] = "66", ["\x67"] = "67", ["\x68"] = "68", ["\x69"] = "69", ["\x6A"] = "0.", ["\x6B"] = "0E", ["\x6C"] = "0E-", ["\x6D"] = "0", ["\x6E"] = "0-", ["\x6F"] = "0",
+ ["\x70"] = "70", ["\x71"] = "71", ["\x72"] = "72", ["\x73"] = "73", ["\x74"] = "74", ["\x75"] = "75", ["\x76"] = "76", ["\x77"] = "77", ["\x78"] = "78", ["\x79"] = "79", ["\x7A"] = "0.", ["\x7B"] = "0E", ["\x7C"] = "0E-", ["\x7D"] = "0", ["\x7E"] = "0-", ["\x7F"] = "0",
+ ["\x80"] = "80", ["\x81"] = "81", ["\x82"] = "82", ["\x83"] = "83", ["\x84"] = "84", ["\x85"] = "85", ["\x86"] = "86", ["\x87"] = "87", ["\x88"] = "88", ["\x89"] = "89", ["\x8A"] = "0.", ["\x8B"] = "0E", ["\x8C"] = "0E-", ["\x8D"] = "0", ["\x8E"] = "0-", ["\x8F"] = "0",
+ ["\x90"] = "90", ["\x91"] = "91", ["\x92"] = "92", ["\x93"] = "93", ["\x94"] = "94", ["\x95"] = "95", ["\x96"] = "96", ["\x97"] = "97", ["\x98"] = "98", ["\x99"] = "99", ["\x9A"] = "0.", ["\x9B"] = "0E", ["\x9C"] = "0E-", ["\x9D"] = "0", ["\x9E"] = "0-", ["\x9F"] = "0",
["\xA0"] = ".0", ["\xA1"] = ".1", ["\xA2"] = ".2", ["\xA3"] = ".3", ["\xA4"] = ".4", ["\xA5"] = ".5", ["\xA6"] = ".6", ["\xA7"] = ".7", ["\xA8"] = ".8", ["\xA9"] = ".9", ["\xAA"] = "..", ["\xAB"] = ".E", ["\xAC"] = ".E-", ["\xAD"] = ".", ["\xAE"] = ".-", ["\xAF"] = ".",
["\xB0"] = "E0", ["\xB1"] = "E1", ["\xB2"] = "E2", ["\xB3"] = "E3", ["\xB4"] = "E4", ["\xB5"] = "E5", ["\xB6"] = "E6", ["\xB7"] = "E7", ["\xB8"] = "E8", ["\xB9"] = "E9", ["\xBA"] = "E.", ["\xBB"] = "EE", ["\xBC"] = "EE-", ["\xBD"] = "E", ["\xBE"] = "E-", ["\xBF"] = "E",
["\xC0"] = "E-0", ["\xC1"] = "E-1", ["\xC2"] = "E-2", ["\xC3"] = "E-3", ["\xC4"] = "E-4", ["\xC5"] = "E-5", ["\xC6"] = "E-6", ["\xC7"] = "E-7", ["\xC8"] = "E-8", ["\xC9"] = "E-9", ["\xCA"] = "E-.", ["\xCB"] = "E-E", ["\xCC"] = "E-E-", ["\xCD"] = "E-", ["\xCE"] = "E--", ["\xCF"] = "E-",
["\xD0"] = "-0", ["\xD1"] = "-1", ["\xD2"] = "-2", ["\xD3"] = "-3", ["\xD4"] = "-4", ["\xD5"] = "-5", ["\xD6"] = "-6", ["\xD7"] = "-7", ["\xD8"] = "-8", ["\xD9"] = "-9", ["\xDA"] = "-.", ["\xDB"] = "-E", ["\xDC"] = "-E-", ["\xDD"] = "-", ["\xDE"] = "--", ["\xDF"] = "-",
}
- local p_last = S("\x0F\x1F\x2F\x3F\x4F\x5F\x6F\x7F\x8F\x9F\xAF\xBF")
- + R("\xF0\xFF")
-
- local p_nibbles = P("\30") * Cs(((1-p_last)/remap)^0 * (P(1)/remap)) / function(n)
+ local p_nibbles = P("\30") * Cs(((1-p_last)/remap)^0+p_last) / function(n)
-- 0-9=digit a=. b=E c=E- d=reserved e=- f=finish
top = top + 1
stack[top] = tonumber(n) or 0
@@ -1245,7 +1215,7 @@ do
if trace_charstrings then
showstate("stem")
end
- stems = stems + idiv(top,2)
+ stems = stems + top/2
top = 0
end
@@ -1266,15 +1236,14 @@ do
if trace_charstrings then
showstate(operator == 19 and "hintmark" or "cntrmask")
end
- stems = stems + idiv(top,2)
+ stems = stems + top/2
top = 0
if stems == 0 then
-- forget about it
elseif stems <= 8 then
return 1
else
- -- return floor((stems+7)/8)
- return idiv(stems+7,8)
+ return floor((stems+7)/8)
end
end
@@ -1321,9 +1290,8 @@ do
local function hsbw()
if version == 1 then
if trace_charstrings then
- showstate("hsbw")
+ showstate("dotsection")
end
- -- lsb = stack[top-1]
width = stack[top]
end
top = 0
@@ -1545,115 +1513,88 @@ do
[037] = flex1,
}
- local chars = setmetatableindex(function (t,k)
- local v = char(k)
- t[k] = v
- return v
- end)
-
- local c_endchar = chars[14]
+ local c_endchar = char(14)
- -- todo: round in blend
+ local passon do
- local encode = { }
+ -- todo: round in blend
+ -- todo: delay this hash
- -- this eventually can become a helper
+ local rshift = bit32.rshift
+ local band = bit32.band
+ local round = math.round
- setmetatableindex(encode,function(t,i)
- for i=-2048,-1130 do
- t[i] = char(28,band(rshift(i,8),0xFF),band(i,0xFF))
- end
- for i=-1131,-108 do
- local v = 0xFB00 - i - 108
- t[i] = char(band(rshift(v,8),0xFF),band(v,0xFF))
- end
- for i=-107,107 do
- t[i] = chars[i + 139]
- end
- for i=108,1131 do
- local v = 0xF700 + i - 108
--- t[i] = char(band(rshift(v,8),0xFF),band(v,0xFF))
- t[i] = char(extract(v,8,8),extract(v,0,8))
- end
- for i=1132,2048 do
- t[i] = char(28,band(rshift(i,8),0xFF),band(i,0xFF))
- end
- setmetatableindex(encode,function(t,k)
- -- 16.16-bit signed fixed value
- local r = round(k)
- local v = rawget(t,r)
- if v then
- return v
+ local encode = table.setmetatableindex(function(t,i)
+ for i=-2048,-1130 do
+ t[i] = char(28,band(rshift(i,8),0xFF),band(i,0xFF))
+ end
+ for i=-1131,-108 do
+ local v = 0xFB00 - i - 108
+ t[i] = char(band(rshift(v,8),0xFF),band(v,0xFF))
end
- local v1 = floor(k)
- local v2 = floor((k - v1) * 0x10000)
- return char(255,extract(v1,8,8),extract(v1,0,8),extract(v2,8,8),extract(v2,0,8))
+ for i=-107,107 do
+ t[i] = char(i + 139)
+ end
+ for i=108,1131 do
+ local v = 0xF700 + i - 108
+ t[i] = char(band(rshift(v,8),0xFF),band(v,0xFF))
+ end
+ for i=1132,2048 do
+ t[i] = char(28,band(rshift(i,8),0xFF),band(i,0xFF))
+ end
+ return t[i]
end)
- return t[i]
- end)
- readers.cffencoder = encode
-
- local function p_setvsindex()
- local vsindex = stack[top]
- updateregions(vsindex)
- top = top - 1
- end
+ local function setvsindex()
+ local vsindex = stack[top]
+ updateregions(vsindex)
+ top = top - 1
+ end
- local function p_blend()
- -- leaves n values on stack
- local n = stack[top]
- top = top - 1
- if not axis then
- -- fatal error
- elseif n == 1 then
- top = top - nofregions
- local v = stack[top]
- for r=1,nofregions do
- v = v + stack[top+r] * factors[r]
- end
- stack[top] = round(v)
- else
- top = top - nofregions * n
- local d = top
- local k = top - n
- for i=1,n do
- k = k + 1
- local v = stack[k]
+ local function blend()
+ local n = stack[top]
+ top = top - 1
+ if not axis then
+ -- fatal error
+ elseif n == 1 then
+ top = top - nofregions
+ local v = stack[top]
for r=1,nofregions do
- v = v + stack[d+r] * factors[r]
+ v = v + stack[top+r] * factors[r]
+ end
+ stack[top] = round(v)
+ else
+ top = top - nofregions * n
+ local d = top
+ local k = top - n
+ for i=1,n do
+ k = k + 1
+ local v = stack[k]
+ for r=1,nofregions do
+ v = v + stack[d+r] * factors[r]
+ end
+ stack[k] = round(v)
+ d = d + nofregions
end
- stack[k] = round(v)
- d = d + nofregions
end
end
- end
- local function p_getstem()
- local n = 0
- if top % 2 ~= 0 then
- n = 1
- end
- if top > n then
- stems = stems + idiv(top-n,2)
+ passon = function(operation)
+ if operation == 15 then
+ setvsindex()
+ elseif operation == 16 then
+ blend()
+ else
+ for i=1,top do
+ r = r + 1
+ result[r] = encode[stack[i]]
+ end
+ r = r + 1
+ result[r] = char(operation) -- maybe use a hash
+ top = 0
+ end
end
- end
- local function p_getmask()
- local n = 0
- if top % 2 ~= 0 then
- n = 1
- end
- if top > n then
- stems = stems + idiv(top-n,2)
- end
- if stems == 0 then
- return 0
- elseif stems <= 8 then
- return 1
- else
- return idiv(stems+7,8)
- end
end
-- end of experiment
@@ -1686,42 +1627,6 @@ do
local justpass = false
- -- local function decode(str)
- -- local a, b, c, d, e = byte(str,1,5)
- -- if a == 28 then
- -- if c then
- -- local n = 0x100 * b + c
- -- if n >= 0x8000 then
- -- return n - 0x10000
- -- else
- -- return n
- -- end
- -- end
- -- elseif a < 32 then
- -- return false
- -- elseif a <= 246 then
- -- return a - 139
- -- elseif a <= 250 then
- -- if b then
- -- return a*256 - 63124 + b
- -- end
- -- elseif a <= 254 then
- -- if b then
- -- return -a*256 + 64148 - b
- -- end
- -- else
- -- if e then
- -- local n = 0x100 * b + c
- -- if n >= 0x8000 then
- -- return n - 0x10000 + (0x100 * d + e)/0xFFFF
- -- else
- -- return n + (0x100 * d + e)/0xFFFF
- -- end
- -- end
- -- end
- -- return false
- -- end
-
process = function(tab)
local i = 1
local n = #tab
@@ -1746,9 +1651,9 @@ do
stack[top] = -t*256 + 64148 - tab[i+1]
i = i + 2
else
- -- a 16.16 float
local n = 0x100 * tab[i+1] + tab[i+2]
- if n >= 0x8000 then
+ if n >= 0x8000 then
+ -- stack[top] = n - 0xFFFF - 1 + (0x100 * tab[i+3] + tab[i+4])/0xFFFF
stack[top] = n - 0x10000 + (0x100 * tab[i+3] + tab[i+4])/0xFFFF
else
stack[top] = n + (0x100 * tab[i+3] + tab[i+4])/0xFFFF
@@ -1795,94 +1700,19 @@ do
elseif t == 12 then
i = i + 1
local t = tab[i]
- if justpass then
- if t >= 34 or t <= 37 then -- flexes
- for i=1,top do
- r = r + 1 ; result[r] = encode[stack[i]]
- end
- r = r + 1 ; result[r] = chars[12]
- r = r + 1 ; result[r] = chars[t]
- top = 0
- else
- local a = subactions[t]
- if a then
- a(t)
- else
- top = 0
- end
- end
+ local a = subactions[t]
+ if a then
+ a(t)
else
- local a = subactions[t]
- if a then
- a(t)
- else
- if trace_charstrings then
- showvalue("<subaction>",t)
- end
- top = 0
+ if trace_charstrings then
+ showvalue("<subaction>",t)
end
+ top = 0
end
i = i + 1
elseif justpass then
- -- todo: local a = passactions
- if t == 15 then
- p_setvsindex()
- i = i + 1
- elseif t == 16 then
- local s = p_blend() or 0
- i = i + s + 1
- -- cff 1: (when cff2 strip them)
- elseif t == 1 or t == 3 or t == 18 or operation == 23 then
- p_getstem() -- at the start
-if true then
- if top > 0 then
- for i=1,top do
- r = r + 1 ; result[r] = encode[stack[i]]
- end
- top = 0
- end
- r = r + 1 ; result[r] = chars[t]
-else
- top = 0
-end
- i = i + 1
- -- cff 1: (when cff2 strip them)
- elseif t == 19 or t == 20 then
- local s = p_getmask() or 0 -- after the stems
-if true then
- if top > 0 then
- for i=1,top do
- r = r + 1 ; result[r] = encode[stack[i]]
- end
- top = 0
- end
- r = r + 1 ; result[r] = chars[t]
- for j=1,s do
- i = i + 1
- r = r + 1 ; result[r] = chars[tab[i]]
- end
-else
- i = i + s
- top = 0
-end
- i = i + 1
- -- cff 1: closepath
- elseif t == 9 then
- top = 0
- i = i + 1
- elseif t == 13 then
- local s = hsbw() or 0
- i = i + s + 1
- else
- if top > 0 then
- for i=1,top do
- r = r + 1 ; result[r] = encode[stack[i]]
- end
- top = 0
- end
- r = r + 1 ; result[r] = chars[t]
- i = i + 1
- end
+ passon(t)
+ i = i + 1
else
local a = actions[t]
if a then
@@ -1942,33 +1772,20 @@ end
-- end
local function setbias(globals,locals)
--- if version == 1 then -- charstring version, not cff
--- return
--- 0,
--- 0
--- return
--- 1,
--- 1
--- else
- local g = #globals
- local l = #locals
+ if version == 1 then
return
- ((g < 1240 and 107) or (g < 33900 and 1131) or 32768) + 1,
- ((l < 1240 and 107) or (l < 33900 and 1131) or 32768) + 1
--- end
+ false,
+ false
+ else
+ local g, l = #globals, #locals
+ return
+ ((g < 1240 and 107) or (g < 33900 and 1131) or 32768) + 1,
+ ((l < 1240 and 107) or (l < 33900 and 1131) or 32768) + 1
+ end
end
local function processshape(tab,index)
- if not tab then
- glyphs[index] = {
- boundingbox = { 0, 0, 0, 0 },
- width = 0,
- name = charset and charset[index] or nil,
- }
- return
- end
-
tab = bytetable(tab)
x = 0
@@ -1984,6 +1801,7 @@ end
ymin = 0
ymax = 0
checked = false
+
if trace_charstrings then
report("glyph: %i",index)
report("data : % t",tab)
@@ -2103,20 +1921,19 @@ end
globalbias, localbias = setbias(globals,locals)
nominalwidth, defaultwidth = setwidths(dictionary.private)
- if charstrings then
- startparsing(fontdata,data,streams)
- for index=1,#charstrings do
- processshape(charstrings[index],index-1)
--- charstrings[index] = nil -- free memory (what if used more often?)
- end
- stopparsing(fontdata,data)
- else
- report("no charstrings")
+ startparsing(fontdata,data,streams)
+
+ for index=1,#charstrings do
+ processshape(charstrings[index],index-1)
+ charstrings[index] = nil -- free memory (what if used more often?)
end
+
+ stopparsing(fontdata,data)
+
return glyphs
end
- parsecharstring = function(fontdata,data,dictionary,tab,glphs,index,doshapes,tversion,streams)
+ parsecharstring = function(fontdata,data,dictionary,tab,glphs,index,doshapes,tversion)
keepcurve = doshapes
version = tversion
@@ -2127,8 +1944,6 @@ end
vsindex = dictionary.vsindex or 0
glyphs = glphs or { }
- justpass = streams == true
-
globalbias, localbias = setbias(globals,locals)
nominalwidth, defaultwidth = setwidths(dictionary.private)
@@ -2303,7 +2118,7 @@ local function readfdselect(f,fontdata,data,glyphs,doshapes,version,streams)
local format = readbyte(f)
if format == 1 then
for i=0,nofglyphs do -- notdef included (needs checking)
- local index = readbyte(f)
+ local index = readbyte(i)
fdindex[i] = index
if index > maxindex then
maxindex = index
@@ -2334,27 +2149,23 @@ local function readfdselect(f,fontdata,data,glyphs,doshapes,version,streams)
-- hm, always
if maxindex >= 0 then
local cidarray = cid.fdarray
- if cidarray then
- setposition(f,header.offset+cidarray)
- local dictionaries = readlengths(f)
- for i=1,#dictionaries do
- dictionaries[i] = readstring(f,dictionaries[i])
- end
- parsedictionaries(data,dictionaries)
- cid.dictionaries = dictionaries
- readcidprivates(f,data)
- for i=1,#dictionaries do
- readlocals(f,data,dictionaries[i])
- end
- startparsing(fontdata,data,streams)
- for i=1,#charstrings do
- parsecharstring(fontdata,data,dictionaries[fdindex[i]+1],charstrings[i],glyphs,i,doshapes,version,streams)
--- charstrings[i] = nil
- end
- stopparsing(fontdata,data)
- else
- report("no cid array")
+ setposition(f,header.offset+cidarray)
+ local dictionaries = readlengths(f)
+ for i=1,#dictionaries do
+ dictionaries[i] = readstring(f,dictionaries[i])
+ end
+ parsedictionaries(data,dictionaries)
+ cid.dictionaries = dictionaries
+ readcidprivates(f,data)
+ for i=1,#dictionaries do
+ readlocals(f,data,dictionaries[i])
+ end
+ startparsing(fontdata,data,streams)
+ for i=1,#charstrings do
+ parsecharstring(fontdata,data,dictionaries[fdindex[i]+1],charstrings[i],glyphs,i,doshapes,version)
+ charstrings[i] = nil
end
+ stopparsing(fontdata,data)
end
end
@@ -2373,7 +2184,7 @@ local function cleanup(data,dictionaries)
end
function readers.cff(f,fontdata,specification)
- local tableoffset = gotodatatable(f,fontdata,"cff",specification.details or specification.glyphs)
+ local tableoffset = gotodatatable(f,fontdata,"cff",specification.details)
if tableoffset then
local header = readheader(f)
if header.major ~= 1 then
@@ -2396,17 +2207,14 @@ function readers.cff(f,fontdata,specification)
--
local dic = dictionaries[1]
local cid = dic.cid
- --
- local cffinfo = {
- familyname = dic.familyname,
+ fontdata.cffinfo = {
+ familynamename = dic.familyname,
fullname = dic.fullname,
boundingbox = dic.boundingbox,
weight = dic.weight,
italicangle = dic.italicangle,
underlineposition = dic.underlineposition,
underlinethickness = dic.underlinethickness,
- defaultwidth = dic.defaultwidthx,
- nominalwidth = dic.nominalwidthx,
monospaced = dic.monospaced,
}
fontdata.cidinfo = cid and {
@@ -2414,31 +2222,13 @@ function readers.cff(f,fontdata,specification)
ordering = cid.ordering,
supplement = cid.supplement,
}
- fontdata.cffinfo = cffinfo
--
- local all = specification.shapes or specification.streams or false
- if specification.glyphs or all then
+ if specification.glyphs then
+ local all = specification.shapes or false
if cid and cid.fdselect then
- readfdselect(f,fontdata,data,glyphs,all,"cff",specification.streams)
+ readfdselect(f,fontdata,data,glyphs,all,"cff")
else
- readnoselect(f,fontdata,data,glyphs,all,"cff",specification.streams)
- end
- end
- local private = dic.private
- if private then
- local data = private.data
- if type(data) == "table" then
- cffinfo.defaultwidth = data.defaultwidth or cffinfo.defaultwidth
- cffinfo.nominalwidth = data.nominalwidth or cffinfo.nominalwidth
- cffinfo.bluevalues = data.bluevalues
- cffinfo.otherblues = data.otherblues
- cffinfo.familyblues = data.familyblues
- cffinfo.familyotherblues = data.familyotherblues
- cffinfo.bluescale = data.bluescale
- cffinfo.blueshift = data.blueshift
- cffinfo.bluefuzz = data.bluefuzz
- cffinfo.stdhw = data.stdhw
- cffinfo.stdvw = data.stdvw
+ readnoselect(f,fontdata,data,glyphs,all,"cff")
end
end
cleanup(data,dictionaries)
@@ -2477,7 +2267,7 @@ function readers.cff2(f,fontdata,specification)
data.factors = specification.factors
--
local cid = data.dictionaries[1].cid
- local all = specification.shapes or specification.streams or false
+ local all = specification.shapes or false
if cid and cid.fdselect then
readfdselect(f,fontdata,data,glyphs,all,"cff2",specification.streams)
else
@@ -2510,7 +2300,7 @@ function readers.cffcheck(filename)
dictionaries = dictionaries,
strings = strings,
glyphs = glyphs,
- nofglyphs = 0,
+ nofglyphs = 4,
}
--
parsedictionaries(data,dictionaries,"cff")
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-cft.lua b/Master/texmf-dist/tex/context/base/mkiv/font-cft.lua
index 2e1610f1767..83227ca4a5d 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-cft.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-cft.lua
@@ -248,16 +248,6 @@ do
mathitalics = t_boolean,
textitalics = t_boolean,
finalized = t_boolean,
- effect = {
- effect = t_cardinal,
- width = t_float,
- factor = t_float,
- hfactor = t_float,
- vfactor = t_float,
- wdelta = t_float,
- hdelta = t_float,
- ddelta = t_float,
- }
},
parameters = {
mathsize = t_cardinal,
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-chk.lua b/Master/texmf-dist/tex/context/base/mkiv/font-chk.lua
index ab145ce4d8f..3613432c1e0 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-chk.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-chk.lua
@@ -66,12 +66,14 @@ local hpack_node = node.hpack
local nuts = nodes.nuts
local tonut = nuts.tonut
+local tonode = nuts.tonode
-local isglyph = nuts.isglyph
-local setchar = nuts.setchar
+local getfont = nuts.getfont
+local getchar = nuts.getchar
-local nextglyph = nuts.traversers.glyph
+local setchar = nuts.setchar
+local traverse_id = nuts.traverse_id
local remove_node = nuts.remove
local insert_node_after = nuts.insert_after
@@ -140,7 +142,7 @@ local mapping = allocate { -- this is just an experiment to illustrate some prin
table.setmetatableindex(mapping,
function(t,k)
- local v = "placeholder unknown gray"
+ v = "placeholder unknown gray"
t[k] = v
return v
end
@@ -194,10 +196,7 @@ local variants = allocate {
{ tag = "yellow", r = .6, g = .6, b = 0 },
}
--- bah .. low level pdf ... should be a rule or plugged in
-
------ pdf_blob = "pdf: q %.6F 0 0 %.6F 0 0 cm %s %s %s rg %s %s %s RG 10 M 1 j 1 J 0.05 w %s Q"
-local pdf_blob = "q %.6F 0 0 %.6F 0 0 cm %s %s %s rg %s %s %s RG 10 M 1 j 1 J 0.05 w %s Q"
+local pdf_blob = "pdf: q %.6F 0 0 %.6F 0 0 cm %s %s %s rg %s %s %s RG 10 M 1 j 1 J 0.05 w %s Q"
local cache = { } -- saves some tables but not that impressive
@@ -236,8 +235,8 @@ local function addmissingsymbols(tfmdata) -- we can have an alternative with rul
width = size*fake.width,
height = size*fake.height,
depth = size*fake.depth,
- -- commands = { { "special", formatters[pdf_blob](scale,scale,r,g,b,r,g,b,fake.code) } }
- commands = { { "pdf", formatters[pdf_blob](scale,scale,r,g,b,r,g,b,fake.code) } }
+ -- bah .. low level pdf ... should be a rule or plugged in
+ commands = { { "special", formatters[pdf_blob](scale,scale,r,g,b,r,g,b,fake.code) } }
}
cache[hash] = char
end
@@ -279,7 +278,7 @@ end
local function placeholder(font,char)
local tfmdata = fontdata[font]
- local category = chardata[char].category or "unknown"
+ local category = chardata[char].category
local fakechar = mapping[category]
local slot = getprivateslot(font,fakechar)
if not slot then
@@ -293,12 +292,15 @@ checkers.placeholder = placeholder
function checkers.missing(head)
local lastfont, characters, found = nil, nil, nil
- for n, char, font in nextglyph, head do -- faster than while loop so we delay removal
+ head = tonut(head)
+ for n in traverse_id(glyph_code,head) do -- faster than while loop so we delay removal
+ local font = getfont(n)
+ local char = getchar(n)
if font ~= lastfont then
characters = fontcharacters[font]
lastfont = font
end
- if font > 0 and not characters[char] and is_character[chardata[char].category or "unknown"] then
+ if font > 0 and not characters[char] and is_character[chardata[char].category] then
if action == "remove" then
onetimemessage(font,char,"missing (will be deleted)")
elseif action == "replace" then
@@ -322,8 +324,7 @@ function checkers.missing(head)
elseif action == "replace" then
for i=1,#found do
local node = found[i]
- local char, font = isglyph(node)
- local kind, char = placeholder(font,char)
+ local kind, char = placeholder(getfont(node),getchar(node))
if kind == "node" then
insert_node_after(head,node,tonut(char))
head = remove_node(head,node,true)
@@ -336,7 +337,7 @@ function checkers.missing(head)
else
-- maye write a report to the log
end
- return head
+ return tonode(head), false
end
local relevant = {
@@ -361,9 +362,6 @@ local function getmissing(id)
local messages = shared and shared.messages
if messages then
local filename = d.properties.filename
- if not filename then
- filename = tostring(d)
- end
local tf = t[filename] or { }
for i=1,#relevant do
local tm = messages[relevant[i]]
@@ -392,6 +390,7 @@ checkers.getmissing = getmissing
do
local reported = true
+ local tracked = false
callback.register("glyph_not_found",function(font,char)
if font > 0 then
@@ -409,6 +408,7 @@ do
trackers.register("fonts.missing", function(v)
if v then
enableaction("processors","fonts.checkers.missing")
+ tracked = true
else
disableaction("processors","fonts.checkers.missing")
end
@@ -419,25 +419,27 @@ do
end)
logs.registerfinalactions(function()
- local collected, details = getmissing()
- if next(collected) then
- for filename, list in sortedhash(details) do
- logs.startfilelogging(report,"missing characters",filename)
- for u, v in sortedhash(list) do
- report("%4i %U %c %s",v,u,u,chardata[u].description)
- end
- logs.stopfilelogging()
- end
- if logs.loggingerrors() then
+-- if tracked then
+ local collected, details = getmissing()
+ if next(collected) then
for filename, list in sortedhash(details) do
- logs.starterrorlogging(report,"missing characters",filename)
+ logs.startfilelogging(report,"missing characters",filename)
for u, v in sortedhash(list) do
report("%4i %U %c %s",v,u,u,chardata[u].description)
end
- logs.stoperrorlogging()
+ logs.stopfilelogging()
+ end
+ if logs.loggingerrors() then
+ for filename, list in sortedhash(details) do
+ logs.starterrorlogging(report,"missing characters",filename)
+ for u, v in sortedhash(list) do
+ report("%4i %U %c %s",v,u,u,chardata[u].description)
+ end
+ logs.stoperrorlogging()
+ end
end
end
- end
+-- end
end)
end
@@ -505,31 +507,3 @@ local dummies_specification = {
registerotffeature(dummies_specification)
registerafmfeature(dummies_specification)
-
---
-
-local function addvisualspace(tfmdata)
- local spacechar = tfmdata.characters[32]
- if spacechar and not spacechar.commands then
- local w = spacechar.width
- local h = tfmdata.parameters.xheight
- local c = {
- width = w,
- commands = { { "rule", h, w } }
- }
- local u = addprivate(tfmdata, "visualspace", c)
- end
-end
-
-local visualspace_specification = {
- name = "visualspace",
- description = "visual space",
- default = true,
- manipulators = {
- base = addvisualspace,
- node = addvisualspace,
- }
-}
-
-registerotffeature(visualspace_specification)
-registerafmfeature(visualspace_specification)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-col.lua b/Master/texmf-dist/tex/context/base/mkiv/font-col.lua
index d197c7c8583..7bbaf31cb19 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-col.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-col.lua
@@ -19,11 +19,15 @@ local fastcopy = table.fastcopy
local formatters = string.formatters
local nuts = nodes.nuts
+local tonut = nuts.tonut
+
+local getfont = nuts.getfont
+local getchar = nuts.getchar
local setfont = nuts.setfont
------ traverse_char = nuts.traverse_char
-local nextchar = nuts.traversers.char
+local traverse_id = nuts.traverse_id
+local traverse_char = nuts.traverse_char
local settings_to_hash = utilities.parsers.settings_to_hash
@@ -43,38 +47,28 @@ collections.definitions = definitions
local vectors = collections.vectors or { }
collections.vectors = vectors
-local helpers = fonts.helpers
-local charcommand = helpers.commands.char
-local rightcommand = helpers.commands.right
-local addprivate = helpers.addprivate
-local hasprivate = helpers.hasprivate
-local fontpatternhassize = helpers.fontpatternhassize
+local fonthashes = fonts.hashes
+local fonthelpers = fonts.helpers
+
+local fontdata = fonthashes.identifiers
+local fontquads = fonthashes.quads
+local chardata = fonthashes.characters
+local propdata = fonthashes.properties
-local hashes = fonts.hashes
-local fontdata = hashes.identifiers
-local fontquads = hashes.quads
-local chardata = hashes.characters
-local propdata = hashes.properties
-local mathparameters = hashes.mathparameters
+local addprivate = fonthelpers.addprivate
+local hasprivate = fonthelpers.hasprivate
local currentfont = font.current
local addcharacters = font.addcharacters
+local fontpatternhassize = fonts.helpers.fontpatternhassize
+
local implement = interfaces.implement
local list = { }
local current = 0
local enabled = false
-local validvectors = table.setmetatableindex(function(t,k)
- local v = false
- if not mathparameters[k] then
- v = vectors[k]
- end
- t[k] = v
- return v
-end)
-
local function checkenabled()
-- a bit ugly but nicer than a fuzzy state while defining math
if next(vectors) then
@@ -119,23 +113,6 @@ function collections.define(name,font,ranges,details)
end
details = settings_to_hash(details)
-- todo, combine per font start/stop as arrays
- local offset = details.offset
- if type(offset) == "string" then
- offset = characters.getrange(offset,true) or false
- else
- offset = tonumber(offset) or false
- end
- local target = details.target
- if type(target) == "string" then
- target = characters.getrange(target,true) or false
- else
- target = tonumber(target) or false
- end
- local rscale = tonumber (details.rscale) or 1
- local force = toboolean(details.force,true)
- local check = toboolean(details.check,true)
- local factor = tonumber(details.factor)
- local features = details.features
for s in gmatch(ranges,"[^, ]+") do
local start, stop, description, gaps = characters.getrange(s,true)
if start and stop then
@@ -150,19 +127,24 @@ function collections.define(name,font,ranges,details)
end
end
end
+ local offset = details.offset
+ if type(offset) == "string" then
+ local start = characters.getrange(offset,true)
+ offset = start or false
+ else
+ offset = tonumber(offset) or false
+ end
d[#d+1] = {
font = font,
start = start,
stop = stop,
gaps = gaps,
offset = offset,
- target = target,
- rscale = rscale,
- force = force,
- check = check,
- method = details.method,
- factor = factor,
- features = features,
+ rscale = tonumber (details.rscale) or 1,
+ force = toboolean(details.force,true),
+ check = toboolean(details.check,true),
+ factor = tonumber(details.factor),
+ features = details.features,
}
end
end
@@ -181,32 +163,6 @@ end
-- check: when true, only set when present in font
-- force: when false, then not set when already set
-local uccodes = characters.uccodes
-local lccodes = characters.lccodes
-
-local methods = {
- lowercase = function(oldchars,newchars,vector,start,stop,cloneid)
- for k, v in next, oldchars do
- if k >= start and k <= stop then
- local lccode = lccodes[k]
- if k ~= lccode and newchars[lccode] then
- vector[k] = { cloneid, lccode }
- end
- end
- end
- end,
- uppercase = function(oldchars,newchars,vector,start,stop,cloneid)
- for k, v in next, oldchars do
- if k >= start and k <= stop then
- local uccode = uccodes[k]
- if k ~= uccode and newchars[uccode] then
- vector[k] = { cloneid, uccode }
- end
- end
- end
- end,
-}
-
function collections.clonevector(name)
statistics.starttiming(fonts)
if trace_collecting then
@@ -223,9 +179,7 @@ function collections.clonevector(name)
local check = definition.check
local force = definition.force
local offset = definition.offset or start
- local remap = definition.remap -- not used
- local target = definition.target
- local method = definition.method
+ local remap = definition.remap
local cloneid = list[i]
local oldchars = fontdata[current].characters
local newchars = fontdata[cloneid].characters
@@ -234,60 +188,28 @@ function collections.clonevector(name)
vector.factor = factor
end
if trace_collecting then
- if target then
- report_fonts("remapping font %a to %a for range %U - %U, offset %X, target %U",current,cloneid,start,stop,offset,target)
- else
- report_fonts("remapping font %a to %a for range %U - %U, offset %X",current,cloneid,start,stop,offset)
- end
- end
- if method then
- method = methods[method]
+ report_fonts("remapping font %a to %a for range %U - %U",current,cloneid,start,stop)
end
- if method then
- method(oldchars,newchars,vector,start,stop,cloneid)
- elseif check then
- if target then
- for unicode = start, stop do
- local unic = unicode + offset - start
- if not newchars[target] then
- -- not in font
- elseif force or (not vector[unic] and not oldchars[unic]) then
- vector[unic] = { cloneid, target }
- end
- target = target + 1
- end
- elseif remap then
- -- not used
- else
- for unicode = start, stop do
- local unic = unicode + offset - start
- if not newchars[unicode] then
- -- not in font
- elseif force or (not vector[unic] and not oldchars[unic]) then
+ if check then
+ for unicode = start, stop do
+ local unic = unicode + offset - start
+ if not newchars[unicode] then
+ -- not in font
+ elseif force or (not vector[unic] and not oldchars[unic]) then
+ if remap then
+ vector[unic] = { cloneid, remap[unicode] }
+ else
vector[unic] = cloneid
end
end
end
else
- if target then
- for unicode = start, stop do
- local unic = unicode + offset - start
- if force or (not vector[unic] and not oldchars[unic]) then
- vector[unic] = { cloneid, target }
- end
- target = target + 1
- end
- elseif remap then
- for unicode = start, stop do
- local unic = unicode + offset - start
- if force or (not vector[unic] and not oldchars[unic]) then
+ for unicode = start, stop do
+ local unic = unicode + offset - start
+ if force or (not vector[unic] and not oldchars[unic]) then
+ if remap then
vector[unic] = { cloneid, remap[unicode] }
- end
- end
- else
- for unicode = start, stop do
- local unic = unicode + offset - start
- if force or (not vector[unic] and not oldchars[unic]) then
+ else
vector[unic] = cloneid
end
end
@@ -297,11 +219,8 @@ function collections.clonevector(name)
if trace_collecting then
report_fonts("activating collection %a for font %a",name,current)
end
+ checkenabled()
statistics.stoptiming(fonts)
- -- for WS: needs checking
- if validvectors[current] then
- checkenabled()
- end
end
-- we already have this parser
@@ -365,16 +284,13 @@ local function monoslot(font,char,parent,factor)
local width = factor * fontquads[parent]
local character = characters[char]
if character then
- -- runtime patching of the font (can only be new characters)
- -- instead of messing with existing dimensions
local data = {
- -- no features so a simple copy
width = width,
height = character.height,
depth = character.depth,
commands = {
- rightcommand[(width - character.width or 0)/2],
- charcommand[char],
+ { "right", (width - character.width or 0)/2 },
+ { "slot", 0, char }
}
}
local u = addprivate(tfmdata, privatename, data)
@@ -392,9 +308,12 @@ local function monoslot(font,char,parent,factor)
end
function collections.process(head) -- this way we keep feature processing
- for n, char, font in nextchar, head do
- local vector = validvectors[font]
+ local done = false
+ for n in traverse_char(tonut(head)) do
+ local font = getfont(n)
+ local vector = vectors[font]
if vector then
+ local char = getchar(n)
local vect = vector[char]
if not vect then
-- keep it
@@ -407,6 +326,7 @@ function collections.process(head) -- this way we keep feature processing
)
end
setfont(n,newfont,newchar)
+ done = true
else
local fakemono = vector.factor
if trace_collecting then
@@ -419,10 +339,11 @@ function collections.process(head) -- this way we keep feature processing
else
setfont(n,vect)
end
+ done = true
end
end
end
- return head
+ return head, done
end
function collections.found(font,char) -- this way we keep feature processing
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-col.mkvi b/Master/texmf-dist/tex/context/base/mkiv/font-col.mkvi
index 7ba92b526e5..a9c461e44c1 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-col.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-col.mkvi
@@ -23,11 +23,6 @@
% \definefontfallback [whatever] [Slanted] [0x0060-0x007F] [force=yes]
% \definefontfallback [whatever] [Bold] [0x0080-0x00FF,0x00A0-0x00AF] [rscale=1.2]
% \definefontfallback [whatever] [BoldSlanted] [0x00C0-0x00C7] [check=yes,force=yes]
-%
-% \definefontfeature [emboldened] [effect={width=0.1,delta=0.4,factor=0.3}]
-% \definefontsynonym [SansEmboldened] [Sans] [features=emboldened]
-% \definefontfallback[FakeSansCaps] [SansEmboldened] [0x0000-0xFFFF] [rscale=.8,method=uppercase]
-% \definefontsynonym [SansCaps] [file:MyriadPro-Regular.otf] [fallbacks=FakeSansCaps]
\writestatus{loading}{ConTeXt Font Macros / Collections}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-con.lua b/Master/texmf-dist/tex/context/base/mkiv/font-con.lua
index 354fd4ac393..add646da1ba 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-con.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-con.lua
@@ -46,10 +46,9 @@ constructors.namemode = "fullpath" -- will be a function
constructors.version = 1.01
constructors.cache = containers.define("fonts", "constructors", constructors.version, false)
-constructors.privateoffset = fonts.privateoffsets.textbase or 0xF0000
-constructors.cacheintex = true -- so we see the original table in fonts.font
+constructors.privateoffset = 0xF0000 -- 0x10FFFF | context also uses privates: 0xE000-0xEFFF
-constructors.addtounicode = true
+constructors.cacheintex = true -- so we see the original table in fonts.font
-- This might become an interface:
@@ -99,24 +98,6 @@ function constructors.getprivate(tfmdata)
return private
end
-function constructors.setmathparameter(tfmdata,name,value)
- local m = tfmdata.mathparameters
- local c = tfmdata.MathConstants
- if m then
- m[name] = value
- end
- if c and c ~= m then
- c[name] = value
- end
-end
-
-function constructors.getmathparameter(tfmdata,name)
- local p = tfmdata.mathparameters or tfmdata.MathConstants
- if p then
- return p[name]
- end
-end
-
--[[ldx--
<p>Beware, the boundingbox is passed as reference so we may not overwrite it
in the process; numbers are of course copies. Here 65536 equals 1pt. (Due to
@@ -426,10 +407,7 @@ function constructors.scale(tfmdata,specification)
targetparameters.forcedsize = forcedsize -- context specific
targetparameters.extrafactor = extrafactor -- context specific
--
- local addtounicode = constructors.addtounicode
- --
local tounicode = fonts.mappings.tounicode
- local unknowncode = tounicode(0xFFFD)
--
local defaultwidth = resources.defaultwidth or 0
local defaultheight = resources.defaultheight or 0
@@ -477,8 +455,7 @@ function constructors.scale(tfmdata,specification)
local psname = properties.psname or tfmdata.psname
local name = properties.name or tfmdata.name
--
- -- The psname used in pdf file as well as for selecting subfont in ttc although
- -- we don't need that subfont look up here (mapfile stuff).
+ -- the psname used in pdf file as well as for selecting subfont in ttc
--
local psname, psfixed = fixedpsname(psname,fontname or fullname or file.nameonly(filename))
--
@@ -500,28 +477,20 @@ function constructors.scale(tfmdata,specification)
target.shrink = expansion.shrink
target.step = expansion.step
end
- -- slanting
- local slantfactor = parameters.slantfactor or 0
- if slantfactor ~= 0 then
- target.slant = slantfactor * 1000
- else
- target.slant = 0
- end
-- widening
local extendfactor = parameters.extendfactor or 0
if extendfactor ~= 0 and extendfactor ~= 1 then
hdelta = hdelta * extendfactor
- target.extend = extendfactor * 1000
+ target.extend = extendfactor * 1000 -- extent ?
else
target.extend = 1000 -- extent ?
end
- -- squeezing
- local squeezefactor = parameters.squeezefactor or 0
- if squeezefactor ~= 0 and squeezefactor ~= 1 then
- vdelta = vdelta * squeezefactor
- target.squeeze = squeezefactor * 1000
+ -- slanting
+ local slantfactor = parameters.slantfactor or 0
+ if slantfactor ~= 0 then
+ target.slant = slantfactor * 1000
else
- target.squeeze = 1000 -- extent ?
+ target.slant = 0
end
-- effects
local mode = parameters.mode or 0
@@ -530,7 +499,7 @@ function constructors.scale(tfmdata,specification)
end
local width = parameters.width or 0
if width ~= 0 then
- target.width = width * delta * 1000 / 655360
+ target.width = width
end
--
targetparameters.factor = delta
@@ -596,7 +565,6 @@ function constructors.scale(tfmdata,specification)
targetparameters.descender = delta * descender
end
--
--- inspect(targetparameters)
constructors.enhanceparameters(targetparameters) -- official copies for us, now virtual
--
local protrusionfactor = (targetquad ~= 0 and 1000/targetquad) or 0
@@ -740,19 +708,11 @@ function constructors.scale(tfmdata,specification)
end
end
local isunicode = description.unicode
- if addtounicode then
- if isunicode then
- chr.unicode = isunicode
- chr.tounicode = tounicode(isunicode)
- -- in luatex > 0.85 we can do this:
- -- chr.tounicode = isunicode
- else
- chr.tounicode = unknowncode
- end
- else
- if isunicode then
- chr.unicode = isunicode
- end
+ if isunicode then
+ chr.unicode = isunicode
+ chr.tounicode = tounicode(isunicode)
+ -- in luatex > 0.85 we can do this:
+ -- chr.tounicode = isunicode
end
if hasquality then
-- we could move these calculations elsewhere (saves calculations)
@@ -782,15 +742,12 @@ function constructors.scale(tfmdata,specification)
local t = { }
for i=1,#vv do
local vvi = vv[i]
- local s = vvi["start"] or 0
- local e = vvi["end"] or 0
- local a = vvi["advance"] or 0
- t[i] = { -- zero check nicer for 5.3
- ["start"] = s == 0 and 0 or s * vdelta,
- ["end"] = e == 0 and 0 or e * vdelta,
- ["advance"] = a == 0 and 0 or a * vdelta,
- ["extender"] = vvi["extender"],
- ["glyph"] = vvi["glyph"],
+ t[i] = {
+ ["start"] = (vvi["start"] or 0)*vdelta,
+ ["end"] = (vvi["end"] or 0)*vdelta,
+ ["advance"] = (vvi["advance"] or 0)*vdelta,
+ ["extender"] = vvi["extender"],
+ ["glyph"] = vvi["glyph"],
}
end
chr.vert_variants = t
@@ -800,15 +757,12 @@ function constructors.scale(tfmdata,specification)
local t = { }
for i=1,#hv do
local hvi = hv[i]
- local s = hvi["start"] or 0
- local e = hvi["end"] or 0
- local a = hvi["advance"] or 0
- t[i] = { -- zero check nicer for 5.3
- ["start"] = s == 0 and 0 or s * hdelta,
- ["end"] = e == 0 and 0 or e * hdelta,
- ["advance"] = a == 0 and 0 or a * hdelta,
- ["extender"] = hvi["extender"],
- ["glyph"] = hvi["glyph"],
+ t[i] = {
+ ["start"] = (hvi["start"] or 0)*hdelta,
+ ["end"] = (hvi["end"] or 0)*hdelta,
+ ["advance"] = (hvi["advance"] or 0)*hdelta,
+ ["extender"] = hvi["extender"],
+ ["glyph"] = hvi["glyph"],
}
end
chr.horiz_variants = t
@@ -827,10 +781,7 @@ function constructors.scale(tfmdata,specification)
if stackmath then
local mk = character.mathkerns
if mk then
- local tr = mk.topright
- local tl = mk.topleft
- local br = mk.bottomright
- local bl = mk.bottomleft
+ local tr, tl, br, bl = mk.topright, mk.topleft, mk.bottomright, mk.bottomleft
chr.mathkern = { -- singular -> should be patched in luatex !
top_right = tr and mathkerns(tr,vdelta) or nil,
top_left = tl and mathkerns(tl,vdelta) or nil,
@@ -925,7 +876,7 @@ function constructors.scale(tfmdata,specification)
else
chr.commands = vc
end
- -- chr.index = nil
+ chr.index = nil
end
end
targetcharacters[unicode] = chr
@@ -935,14 +886,15 @@ function constructors.scale(tfmdata,specification)
--
constructors.aftercopyingcharacters(target,tfmdata)
--
- constructors.trytosharefont(target,tfmdata)
+ constructors.trytosharefont(target,tfmdata)
--
-- catch inconsistencies
--
local vfonts = target.fonts
- if isvirtual or target.type == "virtual" or properties.virtualized then
+-- if isvirtual then
+if isvirtual or target.type == "virtual" or properties.virtualized then
properties.virtualized = true
- target.type = "virtual"
+target.type = "virtual"
if not vfonts or #vfonts == 0 then
target.fonts = { { id = 0 } }
end
@@ -995,16 +947,12 @@ function constructors.finalize(tfmdata)
parameters.width = 0
end
--
- if not parameters.slantfactor then
- parameters.slantfactor = tfmdata.slant or 0
- end
- --
if not parameters.extendfactor then
parameters.extendfactor = tfmdata.extend or 0
end
--
- if not parameters.squeezefactor then
- parameters.squeezefactor = tfmdata.squeeze or 0
+ if not parameters.slantfactor then
+ parameters.slantfactor = tfmdata.slant or 0
end
--
local designsize = parameters.designsize
@@ -1040,22 +988,24 @@ function constructors.finalize(tfmdata)
properties.virtualized = tfmdata.type == "virtual"
end
--
- properties.fontname = tfmdata.fontname
- properties.filename = tfmdata.filename
- properties.fullname = tfmdata.fullname
- properties.name = tfmdata.name
- properties.psname = tfmdata.psname
- --
- properties.encodingbytes = tfmdata.encodingbytes or 1
- properties.embedding = tfmdata.embedding or "subset"
- properties.tounicode = tfmdata.tounicode or 1
- properties.cidinfo = tfmdata.cidinfo or nil
- properties.format = tfmdata.format or "type1"
- properties.direction = tfmdata.direction or 0
- properties.writingmode = tfmdata.writingmode or "horizontal"
- properties.identity = tfmdata.identity or "horizontal"
- properties.usedbitmap = tfmdata.usedbitmap
- --
+ if not tfmdata.properties then
+ tfmdata.properties = {
+ fontname = tfmdata.fontname,
+ filename = tfmdata.filename,
+ fullname = tfmdata.fullname,
+ name = tfmdata.name,
+ psname = tfmdata.psname,
+ --
+ encodingbytes = tfmdata.encodingbytes or 1,
+ embedding = tfmdata.embedding or "subset",
+ tounicode = tfmdata.tounicode or 1,
+ cidinfo = tfmdata.cidinfo or nil,
+ format = tfmdata.format or "type1",
+ direction = tfmdata.direction or 0,
+ writingmode = tfmdata.writingmode or "horizontal",
+ identity = tfmdata.identity or "horizontal",
+ }
+ end
if not tfmdata.resources then
tfmdata.resources = { }
end
@@ -1093,9 +1043,8 @@ function constructors.finalize(tfmdata)
tfmdata.stretch = nil
tfmdata.shrink = nil
tfmdata.step = nil
- tfmdata.slant = nil
tfmdata.extend = nil
- tfmdata.squeeze = nil
+ tfmdata.slant = nil
tfmdata.mode = nil
tfmdata.width = nil
tfmdata.units = nil
@@ -1148,18 +1097,7 @@ hashmethods.normal = function(list)
-- no need to add to hash (maybe we need a skip list)
else
n = n + 1
- if type(v) == "table" then
- -- table.sequenced
- local t = { }
- local m = 0
- for k, v in next, v do
- m = m + 1
- t[m] = k .. '=' .. tostring(v)
- end
- s[n] = k .. '={' .. concat(t,",") .. "}"
- else
- s[n] = k .. '=' .. tostring(v)
- end
+ s[n] = k .. '=' .. tostring(v)
end
end
if n > 0 then
@@ -1177,9 +1115,7 @@ loose our testcases for <l n='luatex'/>.</p>
--ldx]]--
function constructors.hashinstance(specification,force)
- local hash = specification.hash
- local size = specification.size
- local fallbacks = specification.fallbacks
+ local hash, size, fallbacks = specification.hash, specification.size, specification.fallbacks
if force or not hash then
hash = constructors.hashfeatures(specification)
specification.hash = hash
@@ -1617,8 +1553,7 @@ end
-- while typesetting
function constructors.collectprocessors(what,tfmdata,features,trace,report)
- local processes = { }
- local nofprocesses = 0
+ local processes, nofprocesses = { }, 0
if features and next(features) then
local properties = tfmdata.properties
local whathandler = handlers[what]
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-ctx.lua b/Master/texmf-dist/tex/context/base/mkiv/font-ctx.lua
index 6847a2b8d30..87885f64f70 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-ctx.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-ctx.lua
@@ -12,23 +12,21 @@ if not modules then modules = { } end modules ['font-ctx'] = {
-- Todo: make a proper 'next id' mechanism (register etc) or wait till 'true'
-- in virtual fonts indices is implemented.
-local tostring, next, type, rawget, tonumber = tostring, next, type, rawget, tonumber
+local context, commands = context, commands
local format, gmatch, match, find, lower, upper, gsub, byte, topattern = string.format, string.gmatch, string.match, string.find, string.lower, string.upper, string.gsub, string.byte, string.topattern
local concat, serialize, sort, fastcopy, mergedtable = table.concat, table.serialize, table.sort, table.fastcopy, table.merged
local sortedhash, sortedkeys, sequenced = table.sortedhash, table.sortedkeys, table.sequenced
-local parsers = utilities.parsers
-local settings_to_hash, hash_to_string, settings_to_array = parsers.settings_to_hash, parsers.hash_to_string, parsers.settings_to_array
+local settings_to_hash, hash_to_string, settings_to_array = utilities.parsers.settings_to_hash, utilities.parsers.hash_to_string, utilities.parsers.settings_to_array
local formatcolumns = utilities.formatters.formatcolumns
local mergehashes = utilities.parsers.mergehashes
local formatters = string.formatters
local basename = file.basename
+local tostring, next, type, rawget, tonumber = tostring, next, type, rawget, tonumber
local utfchar, utfbyte = utf.char, utf.byte
local round = math.round
-local context, commands = context, commands
-
local P, S, C, Cc, Cf, Cg, Ct, lpegmatch = lpeg.P, lpeg.S, lpeg.C, lpeg.Cc, lpeg.Cf, lpeg.Cg, lpeg.Ct, lpeg.match
local trace_features = false trackers.register("fonts.features", function(v) trace_features = v end)
@@ -68,8 +66,6 @@ local hashes = fonts.hashes
local currentfont = font.current
local definefont = font.define
-local getprivateslot = helpers.getprivateslot
-
local cleanname = names.cleanname
local encodings = fonts.encodings
@@ -79,12 +75,11 @@ local aglunicodes = nil -- delayed loading
local nuts = nodes.nuts
local tonut = nuts.tonut
-local nextchar = nuts.traversers.char
-
local getattr = nuts.getattr
local setattr = nuts.setattr
local getprop = nuts.getprop
local setprop = nuts.setprop
+local getfont = nuts.getfont
local setsubtype = nuts.setsubtype
local texgetattribute = tex.getattribute
@@ -163,8 +158,17 @@ helpers.name = getfontname
local addformatter = utilities.strings.formatters.add
-addformatter(formatters,"font:name", [["'"..fontname(%s).."'"]], { fontname = helpers.name })
-addformatter(formatters,"font:features",[["'"..sequenced(%s," ",true).."'"]],{ sequenced = table.sequenced })
+if LUAVERSION < 5.2 then
+
+ addformatter(formatters,"font:name", [["'"..fontname(%s).."'"]], "local fontname = fonts.helpers.name")
+ addformatter(formatters,"font:features",[["'"..sequenced(%s," ",true).."'"]],"local sequenced = table.sequenced")
+
+else
+
+ addformatter(formatters,"font:name", [["'"..fontname(%s).."'"]], { fontname = helpers.name })
+ addformatter(formatters,"font:features",[["'"..sequenced(%s," ",true).."'"]],{ sequenced = table.sequenced })
+
+end
-- ... like font-sfm or so
@@ -468,40 +472,36 @@ registerotffeature {
-- },
-- }
-do
-
- local beforecopyingcharacters = sequencers.new {
- name = "beforecopyingcharacters",
- arguments = "target,original",
- }
+local beforecopyingcharacters = sequencers.new {
+ name = "beforecopyingcharacters",
+ arguments = "target,original",
+}
- appendgroup(beforecopyingcharacters,"before") -- user
- appendgroup(beforecopyingcharacters,"system") -- private
- appendgroup(beforecopyingcharacters,"after" ) -- user
+appendgroup(beforecopyingcharacters,"before") -- user
+appendgroup(beforecopyingcharacters,"system") -- private
+appendgroup(beforecopyingcharacters,"after" ) -- user
- function constructors.beforecopyingcharacters(original,target)
- local runner = beforecopyingcharacters.runner
- if runner then
- runner(original,target)
- end
+function constructors.beforecopyingcharacters(original,target)
+ local runner = beforecopyingcharacters.runner
+ if runner then
+ runner(original,target)
end
+end
- local aftercopyingcharacters = sequencers.new {
- name = "aftercopyingcharacters",
- arguments = "target,original",
- }
+local aftercopyingcharacters = sequencers.new {
+ name = "aftercopyingcharacters",
+ arguments = "target,original",
+}
- appendgroup(aftercopyingcharacters,"before") -- user
- appendgroup(aftercopyingcharacters,"system") -- private
- appendgroup(aftercopyingcharacters,"after" ) -- user
+appendgroup(aftercopyingcharacters,"before") -- user
+appendgroup(aftercopyingcharacters,"system") -- private
+appendgroup(aftercopyingcharacters,"after" ) -- user
- function constructors.aftercopyingcharacters(original,target)
- local runner = aftercopyingcharacters.runner
- if runner then
- runner(original,target)
- end
+function constructors.aftercopyingcharacters(original,target)
+ local runner = aftercopyingcharacters.runner
+ if runner then
+ runner(original,target)
end
-
end
--[[ldx--
@@ -566,12 +566,6 @@ local function definecontext(name,t) -- can be shared
return number, t
end
--- {a,b,c} as table (so we don' need to parse again when it gets applied)
--- we will update this ... when we have foo={a,b,c} then we can keep the table
-
--- \definefontfeature[demo][a={b,c}]
--- \definefontfeature[demo][a={b=12,c={34,35}}]
-
local function presetcontext(name,parent,features) -- will go to con and shared
if features == "" and find(parent,"=",1,true) then
features = parent
@@ -581,16 +575,6 @@ local function presetcontext(name,parent,features) -- will go to con and shared
features = { }
elseif type(features) == "string" then
features = normalize_features(settings_to_hash(features))
- -- if type(value) == "string" and find(value,"[=:]") then
- -- local t = settings_to_hash_colon_too(value) -- clashes with foo=file:bar
- for key, value in next, features do
- if type(value) == "string" and find(value,"[=]") then
- local t = settings_to_hash(value)
- if next(t) then
- features[key] = sequenced(normalize_features(t,true),",")
- end
- end
- end
else
features = normalize_features(features)
end
@@ -600,8 +584,8 @@ local function presetcontext(name,parent,features) -- will go to con and shared
local s = setups[p]
if s then
for k, v in next, s do
- -- no, as then we cannot overload: e.g. math,mathextra
- -- reverted, so we only take from parent when not set
+-- no, as then we cannot overload: e.g. math,mathextra
+-- reverted, so we only take from parent when not set
if features[k] == nil then
features[k] = v
end
@@ -793,8 +777,7 @@ end
local function registercontext(fontnumber,extraname,option)
local extra = setups[extraname]
if extra then
- local mergedfeatures = { }
- local mergedname = nil
+ local mergedfeatures, mergedname = { }, nil
if option < 0 then
mergedname = fontnumber .. "-" .. extraname
else
@@ -1014,33 +997,25 @@ definers.registersplit(":",colonized,"direct")
-- define (two steps)
-local sizepattern, splitpattern, specialscale do
-
- ----- space = P(" ")
- ----- spaces = space^0
- local leftparent = (P"(")
- local rightparent = (P")")
- local leftbrace = (P"{")
- local rightbrace = (P"}")
- local withinparents = leftparent * (1-rightparent)^0 * rightparent
- local withinbraces = leftbrace * (1-rightbrace )^0 * rightbrace
- local value = C((withinparents + withinbraces + (1-space))^1)
- local dimension = C((space/"" + P(1))^1)
- local rest = C(P(1)^0)
- local scale_none = Cc(0)
- local scale_at = (P("at") +P("@")) * Cc(1) * spaces * dimension -- dimension
- local scale_sa = P("sa") * Cc(2) * spaces * dimension -- number
- local scale_mo = P("mo") * Cc(3) * spaces * dimension -- number
- local scale_scaled = P("scaled") * Cc(4) * spaces * dimension -- number
- local scale_ht = P("ht") * Cc(5) * spaces * dimension -- dimension
- local scale_cp = P("cp") * Cc(6) * spaces * dimension -- dimension
-
- specialscale = { [5] = "ht", [6] = "cp" }
-
- sizepattern = spaces * (scale_at + scale_sa + scale_mo + scale_ht + scale_cp + scale_scaled + scale_none)
- splitpattern = spaces * value * spaces * rest
-
-end
+----- space = P(" ")
+----- spaces = space^0
+local leftparent = (P"(")
+local rightparent = (P")")
+local value = C((leftparent * (1-rightparent)^0 * rightparent + (1-space))^1)
+local dimension = C((space/"" + P(1))^1)
+local rest = C(P(1)^0)
+local scale_none = Cc(0)
+local scale_at = (P("at") +P("@")) * Cc(1) * spaces * dimension -- dimension
+local scale_sa = P("sa") * Cc(2) * spaces * dimension -- number
+local scale_mo = P("mo") * Cc(3) * spaces * dimension -- number
+local scale_scaled = P("scaled") * Cc(4) * spaces * dimension -- number
+local scale_ht = P("ht") * Cc(5) * spaces * dimension -- dimension
+local scale_cp = P("cp") * Cc(6) * spaces * dimension -- dimension
+
+local specialscale = { [5] = "ht", [6] = "cp" }
+
+local sizepattern = spaces * (scale_at + scale_sa + scale_mo + scale_ht + scale_cp + scale_scaled + scale_none)
+local splitpattern = spaces * value * spaces * rest
function helpers.splitfontpattern(str)
local name, size = lpegmatch(splitpattern,str)
@@ -1324,6 +1299,7 @@ do -- else too many locals
local busy = false
scanners.definefont_two = function()
+
local global = scanboolean() -- \ifx\fontclass\empty\s!false\else\s!true\fi
local cs = scanstring () -- {#csname}%
local str = scanstring () -- \somefontfile
@@ -1435,7 +1411,6 @@ do -- else too many locals
specification.fallbacks = fontfallbacks
end
end
- --
local tfmdata = definers.read(specification,size) -- id not yet known (size in spec?)
--
local lastfontid = 0
@@ -1451,15 +1426,15 @@ do -- else too many locals
-- characters[0x2007] = { width = characters[0x0030] and characters[0x0030].width or parameters.space } -- figure
-- characters[0x2008] = { width = characters[0x002E] and characters[0x002E].width or parameters.space } -- period
--
- local fallbacks = specification.fallbacks or ""
+ local fallbacks = specification.fallbacks
local mathsize = (mathsize == 1 or mathsize == 2 or mathsize == 3) and mathsize or nil -- can be unset so we test 1 2 3
- if fallbacks ~= "" and mathsize and not busy then
+ if fallbacks and fallbacks ~= "" and mathsize and not busy then
busy = true
-- We need this ugly hack in order to resolve fontnames (at the \TEX end). Originally
-- math was done in Lua after loading (plugged into aftercopying).
--
-- After tl 2017 I'll also do text fallbacks this way (although backups there are done
- -- in a completely different way.)
+ -- in a completely different way.
if trace_defining then
report_defining("defining %a, id %a, target %a, features %a / %a, fallbacks %a / %a, step %a",
name,id,nice_cs(cs),classfeatures,fontfeatures,classfallbacks,fontfallbacks,1)
@@ -1850,7 +1825,7 @@ function mappings.loadfile(name)
if trace_mapfiles then
report_mapfiles("loading map file %a",name)
end
- lpdf.setmapfile(name)
+ pdf.mapfile(name)
loaded[name] = true
end
end
@@ -1868,15 +1843,17 @@ function mappings.loadline(how,line)
if trace_mapfiles then
report_mapfiles("processing map line %a",line)
end
- lpdf.setmapline(how)
+ pdf.mapline(how)
loaded[how] = true
end
end
function mappings.reset()
- lpdf.setmapfile("") -- tricky ... backend related
+ pdf.mapfile("")
end
+mappings.reset() -- resets the default file
+
implement {
name = "loadmapfile",
actions = mappings.loadfile,
@@ -1899,36 +1876,19 @@ implement {
-- => commands
-local pattern = P("P")
- * (lpeg.patterns.hexdigit^4 / function(s) return tonumber(s,16) end)
- * P(-1)
-
-local function nametoslot(name) -- also supports PXXXXX (4+ positions)
+local function nametoslot(name)
local t = type(name)
if t == "string" then
- local unic = unicodes[true]
- local slot = unic[name]
- if slot then
- return slot
- end
- --
- local slot = unic[gsub(name,"_"," ")] or unic[gsub(name,"_","-")] or
- unic[gsub(name,"-"," ")] or unic[gsub(name,"-","_")] or
- unic[gsub(name," ","_")] or unic[gsub(name," ","-")]
+ local slot = unicodes[true][name]
if slot then
return slot
end
- --
if not aglunicodes then
aglunicodes = encodings.agl.unicodes
end
local char = characters[true]
local slot = aglunicodes[name]
- if slot and char[slot] then
- return slot
- end
- local slot = lpegmatch(pattern,name)
- if slot and char[slot] then
+ if char[slot] then
return slot
end
-- not in font
@@ -1941,13 +1901,14 @@ local function nametoslot(name) -- also supports PXXXXX (4+ positions)
end
end
+
local found = { }
local function descriptiontoslot(name)
local t = type(name)
if t == "string" then
-- slow
- local list = sortedkeys(chardata) -- can be a cache with weak tables
+ local list = sortedkeys(chardata)
local slot = found[name]
local char = characters[true]
if slot then
@@ -2010,17 +1971,13 @@ local function descriptiontoslot(name)
end
end
-local function indextoslot(font,index)
- if not index then
- index = font
- font = true
- end
- local r = resources[font]
+local function indextoslot(index)
+ local r = resources[true]
if r then
local indices = r.indices
if not indices then
indices = { }
- local c = characters[font]
+ local c = characters[true]
for unicode, data in next, c do
local di = data.index
if di then
@@ -2440,12 +2397,9 @@ do
return f and (f.gpos[n] or f.gsub[n])
end
- local ctx_doifelse = commands.doifelse
- local ctx_doif = commands.doif
-
implement {
name = "doifelsecurrentfonthasfeature",
- actions = { constructors.currentfonthasfeature, ctx_doifelse },
+ actions = { constructors.currentfonthasfeature, commands.doifelse },
arguments = "string"
}
@@ -2489,23 +2443,10 @@ do
implement {
name = "definefontfeature",
arguments = "3 strings",
- actions = presetcontext,
+ actions = presetcontext
}
implement {
- name = "doifelsefontfeature",
- arguments = "string",
- actions = function(name) ctx_doifelse(contextnumber(name) > 1) end,
- }
-
- implement {
- name = "doifunknownfontfeature",
- arguments = "string",
- actions = function(name) ctx_doif(contextnumber(name) == 0) end,
- }
-
-
- implement {
name = "adaptfontfeature",
arguments = "2 strings",
actions = adaptcontext
@@ -2661,6 +2602,8 @@ do
local unsetvalue = attributes.unsetvalue
+ local traverse_char = nuts.traverse_char
+
local a_color = attributes.private('color')
local a_colormodel = attributes.private('colormodel')
local a_state = attributes.private('state')
@@ -2684,14 +2627,11 @@ do
[states.pstf] = "font:5",
}
- -- todo: traversers
- -- todo: check attr_list so that we can use the same .. helper: setcolorattr
-
local function markstates(head)
if head then
head = tonut(head)
local model = getattr(head,a_colormodel) or 1
- for glyph in nextchar, head do
+ for glyph in traverse_char(head) do
local a = getprop(glyph,a_state)
if a then
local name = colornames[a]
@@ -2742,8 +2682,8 @@ do
function methods.nocolor(head,font,attr)
- for n, c, f in nextchar, head do
- if not font or f == font then
+ for n in traverse_char(head) do
+ if not font or getfont(n) == font then
setattr(n,a_color,unsetvalue)
end
end
@@ -2768,13 +2708,9 @@ implement {
arguments = "string",
}
-local sharedstorage = storage.shared
+local list = storage.shared.bodyfontsizes or { }
-local list = sharedstorage.bodyfontsizes or { }
-local unknown = sharedstorage.unknownbodyfontsizes or { }
-
-sharedstorage.bodyfontsizes = list
-sharedstorage.unknownbodyfontsizes = unknown
+storage.shared.bodyfontsizes = list
implement {
name = "registerbodyfontsize",
@@ -2784,17 +2720,6 @@ implement {
end
}
-interfaces.implement {
- name = "registerunknownbodysize",
- arguments = "string",
- actions = function(size)
- if not unknown[size] then
- interfaces.showmessage("fonts",14,size)
- end
- unknown[size] = true
- end,
-}
-
implement {
name = "getbodyfontsizes",
arguments = "string",
@@ -2948,12 +2873,6 @@ end
-- for the font manual
-statistics.register("body font sizes", function()
- if next(unknown) then
- return formatters["defined: % t, undefined: % t"](sortedkeys(list),sortedkeys(unknown))
- end
-end)
-
statistics.register("used fonts",function()
if trace_usage then
local filename = file.nameonly(environment.jobname) .. "-fonts-usage.lua"
@@ -3099,285 +3018,79 @@ end
-- for the moment here (and not in font-con.lua):
-do
-
- local identical = table.identical
- local copy = table.copy
- local fontdata = fonts.hashes.identifiers
- local addcharacters = font.addcharacters
-
- -- This helper is mostly meant to add last-resort (virtual) characters
- -- or runtime generated fonts (so we forget about features and such). It
- -- will probably take a while before it get used.
-
- local trace_adding = false
- local report_adding = logs.reporter("fonts","add characters")
-
- trackers.register("fonts.addcharacters",function(v) trace_adding = v end)
-
- if addcharacters then
-
- function fonts.constructors.addcharacters(id,list)
- local newchar = list.characters
- if newchar then
- local data = fontdata[id]
- local newfont = list.fonts
- local oldchar = data.characters
- local oldfont = data.fonts
- addcharacters(id, {
- characters = newchar,
- fonts = newfont,
- nomath = not data.properties.hasmath,
- })
- -- this is just for tracing, as the assignment only uses the fonts list
- -- and doesn't store it otherwise
- if newfont then
- if oldfont then
- local oldn = #oldfont
- local newn = #newfont
- for n=1,newn do
- local ok = false
- local nf = newfont[n]
- for o=1,oldn do
- if identical(nf,oldfont[o]) then
- ok = true
- break
- end
- end
- if not ok then
- oldn = oldn + 1
- oldfont[oldn] = newfont[i]
+local identical = table.identical
+local copy = table.copy
+local fontdata = fonts.hashes.identifiers
+local addcharacters = font.addcharacters
+
+-- This helper is mostly meant to add last-resort (virtual) characters
+-- or runtime generated fonts (so we forget about features and such). It
+-- will probably take a while before it get used.
+
+local trace_adding = false
+local report_adding = logs.reporter("fonts","add characters")
+
+trackers.register("fonts.addcharacters",function(v) trace_adding = v end)
+
+if addcharacters then
+
+ function fonts.constructors.addcharacters(id,list)
+ local newchar = list.characters
+ if newchar then
+ local data = fontdata[id]
+ local newfont = list.fonts
+ local oldchar = data.characters
+ local oldfont = data.fonts
+ addcharacters(id, {
+ characters = newchar,
+ fonts = newfont,
+ nomath = not data.properties.hasmath,
+ })
+ -- this is just for tracing, as the assignment only uses the fonts list
+ -- and doesn't store it otherwise
+ if newfont then
+ if oldfont then
+ local oldn = #oldfont
+ local newn = #newfont
+ for n=1,newn do
+ local ok = false
+ local nf = newfont[n]
+ for o=1,oldn do
+ if identical(nf,oldfont[o]) then
+ ok = true
+ break
end
end
- else
- data.fonts = newfont
- end
- end
- -- this is because we need to know what goes on and also might
- -- want to access character data
- for u, c in next, newchar do
- if trace_adding then
- report_adding("adding character %U to font %!font:name!",u,id)
+ if not ok then
+ oldn = oldn + 1
+ oldfont[oldn] = newfont[i]
+ end
end
- oldchar[u] = c
- end
- end
- end
-
- else
- function fonts.constructors.addcharacters(id,list)
- report_adding("adding characters to %!font:name! is not yet supported",id)
- end
- end
-
- implement {
- name = "addfontpath",
- arguments = "string",
- actions = function(list)
- names.addruntimepath(settings_to_array(list))
- end
- }
-
-end
-
--- moved here
-
-do
-
- local family_font = node.family_font
- local new_glyph = nodes.pool.glyph
- local fontproperties = fonts.hashes.properties
-
- local function getprivateslot(id,name)
- if not name then
- name = id
- id = currentfont()
- end
- local properties = fontproperties[id]
- local privates = properties and properties.privates
- return privates and privates[name]
- end
-
- local function getprivatenode(tfmdata,name)
- if type(tfmdata) == "number" then
- tfmdata = fontdata[tfmdata]
- end
- local properties = tfmdata.properties
- local font = properties.id
- local slot = getprivateslot(font,name)
- if slot then
- -- todo: set current attribibutes
- local char = tfmdata.characters[slot]
- local tonode = char.tonode
- if tonode then
- return tonode(font,char)
- else
- return new_glyph(font,slot)
- end
- end
- end
-
- local function getprivatecharornode(tfmdata,name)
- if type(tfmdata) == "number" then
- tfmdata = fontdata[tfmdata]
- end
- local properties = tfmdata.properties
- local font = properties.id
- local slot = getprivateslot(font,name)
- if slot then
- -- todo: set current attributes
- local char = tfmdata.characters[slot]
- local tonode = char.tonode
- if tonode then
- return "node", tonode(tfmdata,char)
- else
- return "char", slot
- end
- end
- end
-
- helpers.getprivateslot = getprivateslot
- helpers.getprivatenode = getprivatenode
- helpers.getprivatecharornode = getprivatecharornode
-
- implement {
- name = "getprivatechar",
- arguments = "string",
- actions = function(name)
- local p = getprivateslot(name)
- if p then
- context(utfchar(p))
- end
- end
- }
-
- implement {
- name = "getprivatemathchar",
- arguments = "string",
- actions = function(name)
- local p = getprivateslot(family_font(0),name)
- if p then
- context(utfchar(p))
- end
- end
- }
-
- implement {
- name = "getprivateslot",
- arguments = "string",
- actions = function(name)
- local p = getprivateslot(name)
- if p then
- context(p)
- end
- end
- }
-
-end
-
--- handy, for now here:
-
-function fonts.helpers.collectanchors(tfmdata)
-
- local resources = tfmdata.resources -- todo: use shared
-
- if not resources or resources.anchors then
- return resources.anchors
- end
-
- local anchors = { }
-
- local function set(unicode,target,class,anchor)
- local a = anchors[unicode]
- if not a then
- anchors[unicode] = { [target] = { anchor } }
- return
- end
- local t = a[target]
- if not t then
- a[target] = { anchor }
- return
- end
- local x = anchor[1]
- local y = anchor[2]
- for k, v in next, t do
- if v[1] == x and v[2] == y then
- return
- end
- end
- t[#t+1] = anchor
- end
-
- local function getanchors(steps,target)
- for i=1,#steps do
- local step = steps[i]
- local coverage = step.coverage
- for unicode, data in next, coverage do
- local class = data[1]
- local anchor = data[2]
- if anchor[1] ~= 0 or anchor[2] ~= 0 then
- set(unicode,target,class,anchor)
- end
- end
- end
- end
-
- local function getcursives(steps)
- for i=1,#steps do
- local step = steps[i]
- local coverage = step.coverage
- for unicode, data in next, coverage do
- local class = data[1]
- local en = data[2]
- local ex = data[3]
- if en then
- set(unicode,"entry",class,en)
- end
- if ex then
- set(unicode,"exit", class,ex)
+ else
+ data.fonts = newfont
end
end
- end
- end
-
- local function collect(list)
- if list then
- for i=1,#list do
- local entry = list[i]
- local steps = entry.steps
- local kind = entry.type
- if kind == "gpos_mark2mark" then
- getanchors(steps,"mark")
- elseif kind == "gpos_mark2base" then
- getanchors(steps,"base")
- elseif kind == "gpos_mark2ligature" then
- getanchors(steps,"ligature")
- elseif kind == "gpos_cursive" then
- getcursives(steps)
+ -- this is because we need to know what goes on and also might
+ -- want to access character data
+ for u, c in next, newchar do
+ if trace_adding then
+ report_adding("adding character %U to font %!font:name!",u,id)
end
+ oldchar[u] = c
end
end
end
- collect(resources.sequences)
- collect(resources.sublookups)
-
- local function sorter(a,b)
- if a[1] == b[1] then
- return a[2] < b[2]
- else
- return a[1] < b[1]
- end
+else
+ function fonts.constructors.addcharacters(id,list)
+ report_adding("adding characters to %!font:name! is not yet supported",id)
end
+end
- for unicode, old in next, anchors do
- for target, list in next, old do
- sort(list,sorter)
- end
+implement {
+ name = "addfontpath",
+ arguments = "string",
+ actions = function(list)
+ names.addruntimepath(settings_to_array(list))
end
-
- resources.anchors = anchors
-
- return anchors
-
-end
+}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-def.lua b/Master/texmf-dist/tex/context/base/mkiv/font-def.lua
index f3d0f818718..97d25f18093 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-def.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-def.lua
@@ -80,6 +80,53 @@ and prepares a table that will move along as we proceed.</p>
-- name name(sub) name(sub)*spec name*spec
-- name@spec*oeps
+local splitter, splitspecifiers = nil, "" -- not so nice
+
+local P, C, S, Cc = lpeg.P, lpeg.C, lpeg.S, lpeg.Cc
+
+local left = P("(")
+local right = P(")")
+local colon = P(":")
+local space = P(" ")
+
+definers.defaultlookup = "file"
+
+local prefixpattern = P(false)
+
+local function addspecifier(symbol)
+ splitspecifiers = splitspecifiers .. symbol
+ local method = S(splitspecifiers)
+ local lookup = C(prefixpattern) * colon
+ local sub = left * C(P(1-left-right-method)^1) * right
+ local specification = C(method) * C(P(1)^1)
+ local name = C((1-sub-specification)^1)
+ splitter = P((lookup + Cc("")) * name * (sub + Cc("")) * (specification + Cc("")))
+end
+
+local function addlookup(str,default)
+ prefixpattern = prefixpattern + P(str)
+end
+
+definers.addlookup = addlookup
+
+addlookup("file")
+addlookup("name")
+addlookup("spec")
+
+local function getspecification(str)
+ return lpegmatch(splitter,str or "") -- weird catch
+end
+
+definers.getspecification = getspecification
+
+function definers.registersplit(symbol,action,verbosename)
+ addspecifier(symbol)
+ variants[symbol] = action
+ if verbosename then
+ variants[verbosename] = action
+ end
+end
+
local function makespecification(specification,lookup,name,sub,method,detail,size)
size = size or 655360
if not lookup or lookup == "" then
@@ -104,65 +151,13 @@ local function makespecification(specification,lookup,name,sub,method,detail,siz
return t
end
-definers.makespecification = makespecification
-
-if context then
-
- local splitter, splitspecifiers = nil, "" -- not so nice
- local P, C, S, Cc, Cs = lpeg.P, lpeg.C, lpeg.S, lpeg.Cc, lpeg.Cs
-
- local left = P("(")
- local right = P(")")
- local colon = P(":")
- local space = P(" ")
- local lbrace = P("{")
- local rbrace = P("}")
-
- definers.defaultlookup = "file"
-
- local prefixpattern = P(false)
-
- local function addspecifier(symbol)
- splitspecifiers = splitspecifiers .. symbol
- local method = S(splitspecifiers)
- local lookup = C(prefixpattern) * colon
- local sub = left * C(P(1-left-right-method)^1) * right
- local specification = C(method) * C(P(1)^1)
- local name = Cs((lbrace/"") * (1-rbrace)^1 * (rbrace/"") + (1-sub-specification)^1)
- splitter = P((lookup + Cc("")) * name * (sub + Cc("")) * (specification + Cc("")))
- end
-
- local function addlookup(str)
- prefixpattern = prefixpattern + P(str)
- end
-
- definers.addlookup = addlookup
-
- addlookup("file")
- addlookup("name")
- addlookup("spec")
-
- local function getspecification(str)
- return lpegmatch(splitter,str or "") -- weird catch
- end
-
- definers.getspecification = getspecification
-
- function definers.registersplit(symbol,action,verbosename)
- addspecifier(symbol)
- variants[symbol] = action
- if verbosename then
- variants[verbosename] = action
- end
- end
-
- function definers.analyze(specification, size)
- -- can be optimized with locals
- local lookup, name, sub, method, detail = getspecification(specification or "")
- return makespecification(specification, lookup, name, sub, method, detail, size)
- end
+definers.makespecification = makespecification
+function definers.analyze(specification, size)
+ -- can be optimized with locals
+ local lookup, name, sub, method, detail = getspecification(specification or "")
+ return makespecification(specification, lookup, name, sub, method, detail, size)
end
--[[ldx--
@@ -208,9 +203,9 @@ function resolvers.name(specification)
features.normal = normal
end
normal.instance = instance
- -- if not callbacks.supported.glyph_stream_provider then
- -- normal.variableshapes = true -- for the moment
- -- end
+ if not callbacks.supported.glyph_stream_provider then
+ normal.variableshapes = true -- for the moment
+ end
end
--
local suffix = lower(suffixonly(resolved))
@@ -340,7 +335,7 @@ local function checkfeatures(tfmdata)
for script, languages in next, scripts do
if languages["*"] then
-- ok
- elseif context and not languages[usedlanguage] then
+ elseif not languages[usedlanguage] then
report_defining("font %!font:name!, feature %a, script %a, no language %a",
tfmdata,feature,script,usedlanguage)
end
@@ -360,7 +355,7 @@ local function checkfeatures(tfmdata)
if not languages["*"] then
for i=1,#foundlanguages do
local language = foundlanguages[i]
- if context and not languages[language] then
+ if not languages[language] then
report_defining("font %!font:name!, feature %a, script %a, no language %a",
tfmdata,feature,script,language)
end
@@ -382,7 +377,6 @@ function definers.loadfont(specification)
-- todo: also hash by instance / factors
local tfmdata = loadedfonts[hash] -- hashes by size !
if not tfmdata then
- -- normally context will not end up here often (if so there is an issue somewhere)
local forced = specification.forced or ""
if forced ~= "" then
local reader = readers[lower(forced)] -- normally forced is already lowered
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-dsp.lua b/Master/texmf-dist/tex/context/base/mkiv/font-dsp.lua
index 046ba285057..02e5a7df697 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-dsp.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-dsp.lua
@@ -51,10 +51,7 @@ if not modules then modules = { } end modules ['font-dsp'] = {
-- All this packing in the otf format is somewhat obsessive as nowadays 4K resolution
-- multi-gig videos pass through our networks and storage and memory is abundant.
--- Although we use a few table readers there i sno real gain in there (apart from having
--- less code. After all there are often not that many demanding features.
-
-local next, type, tonumber = next, type, tonumber
+local next, type = next, type
local band = bit32.band
local extract = bit32.extract
local bor = bit32.bor
@@ -71,13 +68,12 @@ local reversed = table.reversed
local sort = table.sort
local insert = table.insert
local round = math.round
+local lpegmatch = lpeg.match
-local settings_to_hash = utilities.parsers.settings_to_hash_colon_too
local setmetatableindex = table.setmetatableindex
local formatters = string.formatters
local sortedkeys = table.sortedkeys
local sortedhash = table.sortedhash
-local sequenced = table.sequenced
local report = logs.reporter("otf reader")
@@ -86,11 +82,10 @@ local streamreader = readers.streamreader
local setposition = streamreader.setposition
local getposition = streamreader.getposition
-local readuinteger = streamreader.readcardinal1
-local readushort = streamreader.readcardinal2
-local readulong = streamreader.readcardinal4
+local readushort = streamreader.readcardinal2 -- 16-bit unsigned integer
+local readulong = streamreader.readcardinal4 -- 24-bit unsigned integer
local readinteger = streamreader.readinteger1
-local readshort = streamreader.readinteger2
+local readshort = streamreader.readinteger2 -- 16-bit signed integer
local readstring = streamreader.readstring
local readtag = streamreader.readtag
local readbytes = streamreader.readbytes
@@ -98,41 +93,9 @@ local readfixed = streamreader.readfixed4
local read2dot14 = streamreader.read2dot14
local skipshort = streamreader.skipshort
local skipbytes = streamreader.skip
+local readfword = readshort
local readbytetable = streamreader.readbytetable
local readbyte = streamreader.readbyte
-local readcardinaltable = streamreader.readcardinaltable
-local readintegertable = streamreader.readintegertable
-local readfword = readshort
-
-local short = 2
-local ushort = 2
-local ulong = 4
-
-directives.register("fonts.streamreader",function()
-
- streamreader = utilities.streams
-
- setposition = streamreader.setposition
- getposition = streamreader.getposition
- readuinteger = streamreader.readcardinal1
- readushort = streamreader.readcardinal2
- readulong = streamreader.readcardinal4
- readinteger = streamreader.readinteger1
- readshort = streamreader.readinteger2
- readstring = streamreader.readstring
- readtag = streamreader.readtag
- readbytes = streamreader.readbytes
- readfixed = streamreader.readfixed4
- read2dot14 = streamreader.read2dot14
- skipshort = streamreader.skipshort
- skipbytes = streamreader.skip
- readbytetable = streamreader.readbytetable
- readbyte = streamreader.readbyte
- readcardinaltable = streamreader.readcardinaltable
- readintegertable = streamreader.readintegertable
- readfword = readshort
-
-end)
local gsubhandlers = { }
local gposhandlers = { }
@@ -233,6 +196,39 @@ local read_integer = {
streamreader.readinteger4,
}
+-- using helpers doesn't make much sense, subtle differences
+--
+-- local function readushortarray(f,n)
+-- local t = { }
+-- for i=1,n do
+-- t[i] = readushort(f)
+-- end
+-- return t
+-- end
+--
+-- local function readulongarray(f,n)
+-- local t = { }
+-- for i=1,n do
+-- t[i] = readulong(f)
+-- end
+-- return t
+-- end
+--
+-- local function readushortarray(f,target,first,size)
+-- if not size then
+-- for i=1,size do
+-- target[i] = readushort(f)
+-- end
+-- else
+-- for i=1,size do
+-- target[first+i] = readushort(f)
+-- end
+-- end
+-- return target
+-- end
+--
+-- so we get some half helper - half non helper mix then
+
-- Traditionally we use these unique names (so that we can flatten the lookup list
-- (we create subsets runtime) but I will adapt the old code to newer names.
@@ -304,16 +300,30 @@ end)
-- wght:400,wdth:100,ital:1
-local function axistofactors(str)
- local t = settings_to_hash(str)
- for k, v in next, t do
- t[k] = tonumber(v) or v -- this also normalizes numbers itself
- end
- return t
-end
+-- local names = table.setmetatableindex ( {
+-- weight = "wght",
+-- width = "wdth",
+-- italic = "ital",
+-- }, "self")
+
+-- todo: spaces in name but not before :
+
+local pattern = lpeg.Cf (
+ lpeg.Ct("") *
+ lpeg.Cg (
+ --(lpeg.R("az")^1/names) * lpeg.S(" :") *
+ lpeg.C((lpeg.R("az","09")+lpeg.P(" "))^1) * lpeg.S(" :=") *
+ (lpeg.patterns.number/tonumber) * lpeg.S(" ,")^0
+ )^1, rawset
+)
local hash = table.setmetatableindex(function(t,k)
- local v = sequenced(axistofactors(k),",")
+ local v = lpegmatch(pattern,k)
+ local t = { }
+ for k, v in sortedhash(v) do
+ t[#t+1] = k .. "=" .. v
+ end
+ v = concat(t,",")
t[k] = v
return v
end)
@@ -330,6 +340,10 @@ function helpers.normalizedaxis(str)
return hash[str] or str
end
+local function axistofactors(str)
+ return lpegmatch(pattern,str)
+end
+
-- contradicting spec ... (signs) so i'll check it and fix it once we have
-- proper fonts
@@ -484,7 +498,10 @@ local function readvariationdata(f,storeoffset,factors) -- store
local format = readushort(f)
local regionoffset = storeoffset + readulong(f)
local nofdeltadata = readushort(f)
- local deltadata = readcardinaltable(f,nofdeltadata,ulong)
+ local deltadata = { }
+ for i=1,nofdeltadata do
+ deltadata[i] = readulong(f)
+ end
-- regions
setposition(f,regionoffset)
local nofaxis = readushort(f)
@@ -515,7 +532,10 @@ local function readvariationdata(f,storeoffset,factors) -- store
end
-- we could test before and save a for
for i=1,nofdeltasets do
- local t = readintegertable(f,nofshorts,short)
+ local t = { } -- newtable
+ for i=1,nofshorts do
+ t[i] = readshort(f)
+ end
for i=nofshorts+1,nofregions do
t[i] = readinteger(f)
end
@@ -540,32 +560,21 @@ helpers.readvariationdata = readvariationdata
local function readcoverage(f,offset,simple)
setposition(f,offset)
local coverageformat = readushort(f)
+ local coverage = { }
if coverageformat == 1 then
local nofcoverage = readushort(f)
if simple then
- -- often 1 or 2
- if nofcoverage == 1 then
- return { readushort(f) }
- elseif nofcoverage == 2 then
- return { readushort(f), readushort(f) }
- else
- return readcardinaltable(f,nofcoverage,ushort)
+ for i=1,nofcoverage do
+ coverage[i] = readushort(f)
end
- elseif nofcoverage == 1 then
- return { [readushort(f)] = 0 }
- elseif nofcoverage == 2 then
- return { [readushort(f)] = 0, [readushort(f)] = 1 }
else
- local coverage = { }
for i=0,nofcoverage-1 do
coverage[readushort(f)] = i -- index in record
end
- return coverage
end
elseif coverageformat == 2 then
local nofranges = readushort(f)
- local coverage = { }
- local n = simple and 1 or 0 -- needs checking
+ local n = simple and 1 or 0 -- needs checking
for i=1,nofranges do
local firstindex = readushort(f)
local lastindex = readushort(f)
@@ -582,11 +591,10 @@ local function readcoverage(f,offset,simple)
end
end
end
- return coverage
else
report("unknown coverage format %a ",coverageformat)
- return { }
end
+ return coverage
end
local function readclassdef(f,offset,preset)
@@ -820,17 +828,23 @@ local function readfirst(f,offset)
return { readushort(f) }
end
--- quite often 0, 1, 2
-
-function readarray(f,offset)
+local function readarray(f,offset,first)
if offset then
setposition(f,offset)
end
local n = readushort(f)
- if n == 1 then
- return { readushort(f) }, 1
+ if first then
+ local t = { first }
+ for i=2,n do
+ t[i] = readushort(f)
+ end
+ return t, n
elseif n > 0 then
- return readcardinaltable(f,n,ushort), n
+ local t = { }
+ for i=1,n do
+ t[i] = readushort(f)
+ end
+ return t, n
end
end
@@ -1009,9 +1023,8 @@ local function unchainedcontext(f,fontdata,lookupid,lookupoffset,offset,glyphs,n
rules = rules,
}
elseif subtype == 3 then
- local nofglyphs = readushort(f)
+ local current = readarray(f)
local noflookups = readushort(f)
- local current = readcardinaltable(f,nofglyphs,ushort)
local lookups = readlookuparray(f,noflookups,#current)
current = readcoveragearray(f,tableoffset,current,true)
return {
@@ -1218,7 +1231,7 @@ function gsubhandlers.single(f,fontdata,lookupid,lookupoffset,offset,glyphs,nofg
local delta = readshort(f) -- can be negative
local coverage = readcoverage(f,tableoffset+coverage) -- not simple as we need to set key/value anyway
for index in next, coverage do
- local newindex = (index + delta) % 65536 -- modulo is new in 1.8.3
+ local newindex = index + delta
if index > nofglyphs or newindex > nofglyphs then
report("invalid index in %s format %i: %i -> %i (max %i)","single",subtype,index,newindex,nofglyphs)
coverage[index] = nil
@@ -1232,7 +1245,10 @@ function gsubhandlers.single(f,fontdata,lookupid,lookupoffset,offset,glyphs,nofg
elseif subtype == 2 then -- in streamreader a seek and fetch is faster than a temp table
local coverage = readushort(f)
local nofreplacements = readushort(f)
- local replacements = readcardinaltable(f,nofreplacements,ushort)
+ local replacements = { }
+ for i=1,nofreplacements do
+ replacements[i] = readushort(f)
+ end
local coverage = readcoverage(f,tableoffset + coverage) -- not simple as we need to set key/value anyway
for index, newindex in next, coverage do
newindex = newindex + 1
@@ -1260,10 +1276,18 @@ local function sethandler(f,fontdata,lookupid,lookupoffset,offset,glyphs,nofglyp
if subtype == 1 then
local coverage = readushort(f)
local nofsequence = readushort(f)
- local sequences = readcardinaltable(f,nofsequence,ushort)
+ local sequences = { }
+ for i=1,nofsequence do
+ sequences[i] = readushort(f)
+ end
for i=1,nofsequence do
setposition(f,tableoffset + sequences[i])
- sequences[i] = readcardinaltable(f,readushort(f),ushort)
+ local n = readushort(f)
+ local s = { }
+ for i=1,n do
+ s[i] = readushort(f)
+ end
+ sequences[i] = s
end
local coverage = readcoverage(f,tableoffset + coverage)
for index, newindex in next, coverage do
@@ -1298,20 +1322,19 @@ function gsubhandlers.ligature(f,fontdata,lookupid,lookupoffset,offset,glyphs,no
if subtype == 1 then
local coverage = readushort(f)
local nofsets = readushort(f)
- local ligatures = readcardinaltable(f,nofsets,ushort)
+ local ligatures = { }
+ for i=1,nofsets do
+ ligatures[i] = readushort(f)
+ end
for i=1,nofsets do
local offset = lookupoffset + offset + ligatures[i]
setposition(f,offset)
local n = readushort(f)
- if n == 1 then
- ligatures[i] = { offset + readushort(f) }
- else
- local l = { }
- for i=1,n do
- l[i] = offset + readushort(f)
- end
- ligatures[i] = l
+ local l = { }
+ for i=1,n do
+ l[i] = offset + readushort(f)
end
+ ligatures[i] = l
end
local coverage = readcoverage(f,tableoffset + coverage)
for index, newindex in next, coverage do
@@ -1959,15 +1982,10 @@ do
local parameters = readushort(f) -- feature.parameters
local noflookups = readushort(f)
if noflookups > 0 then
--- local lookups = { }
--- feature.lookups = lookups
--- for j=1,noflookups do
--- lookups[j] = readushort(f) + 1
--- end
- local lookups = readcardinaltable(f,noflookups,ushort)
+ local lookups = { }
feature.lookups = lookups
for j=1,noflookups do
- lookups[j] = lookups[j] + 1
+ lookups[j] = readushort(f) + 1
end
end
if parameters > 0 then
@@ -1983,8 +2001,11 @@ do
local function readlookups(f,lookupoffset,lookuptypes,featurehash,featureorder)
setposition(f,lookupoffset)
+ local lookups = { }
local noflookups = readushort(f)
- local lookups = readcardinaltable(f,noflookups,ushort)
+ for i=1,noflookups do
+ lookups[i] = readushort(f)
+ end
for lookupid=1,noflookups do
local offset = lookups[lookupid]
setposition(f,lookupoffset+offset)
@@ -2216,7 +2237,7 @@ do
report_issue(i,what,sequence,"no")
elseif not next(rlookups) then
-- can be ok as it aborts a chain sequence
- -- report_issue(i,what,sequence,"empty")
+ report_issue(i,what,sequence,"empty")
rule.lookups = nil
else
-- we can have holes in rlookups flagged false and we can have multiple lookups
@@ -2275,7 +2296,9 @@ do
end
end
end
+-- report("before : % t",rlookups[index])
rlookups[index] = noffound > 0 and found or false
+-- report("after : % t",rlookups[index])
else
rlookups[index] = false
end
@@ -2299,7 +2322,7 @@ do
local function loadvariations(f,fontdata,variationsoffset,lookuptypes,featurehash,featureorder)
setposition(f,variationsoffset)
- local version = readulong(f) -- two times readushort
+ local version = readulong(f)
local nofrecords = readulong(f)
local records = { }
for i=1,nofrecords do
@@ -2315,12 +2338,11 @@ do
record.condition = nil
record.matchtype = "always"
else
- local offset = variationsoffset+offset
- setposition(f,offset)
+ setposition(f,variationsoffset+offset)
local nofconditions = readushort(f)
local conditions = { }
for i=1,nofconditions do
- conditions[i] = offset + readulong(f)
+ conditions[i] = variationsoffset+offset+readulong(f)
end
record.conditions = conditions
record.matchtype = "condition"
@@ -2363,7 +2385,10 @@ do
setposition(f,tableoffset)
local parameters = readulong(f) -- feature parameters
local noflookups = readushort(f)
- local lookups = readcardinaltable(f,noflookups,ushort) -- not sure what to do with these
+ local lookups = { }
+ for i=1,noflookups do
+ lookups[i] = readushort(f) -- not sure what to do with these
+ end
-- todo : resolve to proper lookups
record.substitutions = lookups
end
@@ -2424,7 +2449,7 @@ do
elseif specification.globalkerns then
name = "globalkern"
else
- report("ignoring global kern table, using gpos kern feature")
+ report("ignoring global kern table using gpos kern feature")
return
end
setposition(f,datatable.offset)
@@ -2586,7 +2611,10 @@ function readers.gdef(f,fontdata,specification)
local format = readushort(f)
if format == 1 then
local nofsets = readushort(f)
- local sets = readcardinaltable(f,nofsets,ulong)
+ local sets = { }
+ for i=1,nofsets do
+ sets[i] = readulong(f)
+ end
for i=1,nofsets do
local offset = sets[i]
if offset ~= 0 then
@@ -2823,8 +2851,14 @@ local function readmathvariants(f,fontdata,offset)
local hcoverage = readushort(f)
local vnofglyphs = readushort(f)
local hnofglyphs = readushort(f)
- local vconstruction = readcardinaltable(f,vnofglyphs,ushort)
- local hconstruction = readcardinaltable(f,hnofglyphs,ushort)
+ local vconstruction = { }
+ local hconstruction = { }
+ for i=1,vnofglyphs do
+ vconstruction[i] = readushort(f)
+ end
+ for i=1,hnofglyphs do
+ hconstruction[i] = readushort(f)
+ end
fontdata.mathconstants.MinConnectorOverlap = minoverlap
@@ -2999,7 +3033,10 @@ function readers.cpal(f,fontdata,specification)
local nofcolorrecords = readushort(f)
local firstcoloroffset = readulong(f)
local colorrecords = { }
- local palettes = readcardinaltable(f,nofpalettes,ushort)
+ local palettes = { }
+ for i=1,nofpalettes do
+ palettes[i] = readushort(f)
+ end
if version == 1 then
-- used for guis
local palettettypesoffset = readulong(f)
@@ -3072,324 +3109,183 @@ function readers.sbix(f,fontdata,specification)
for i=1,nofstrikes do
strikes[i] = readulong(f)
end
- local shapes = { }
- local done = 0
- for i=1,nofstrikes do
- local strikeoffset = strikes[i] + tableoffset
- setposition(f,strikeoffset)
- strikes[i] = {
- ppem = readushort(f),
- ppi = readushort(f),
- offset = strikeoffset
- }
- end
- -- highest first
- sort(strikes,function(a,b)
- if b.ppem == a.ppem then
- return b.ppi < a.ppi
- else
- return b.ppem < a.ppem
- end
- end)
- local glyphs = { }
- for i=1,nofstrikes do
- local strike = strikes[i]
- local strikeppem = strike.ppem
- local strikeppi = strike.ppi
- local strikeoffset = strike.offset
- setposition(f,strikeoffset)
- for i=0,nofglyphs do
- glyphs[i] = readulong(f)
- end
- local glyphoffset = glyphs[0]
- for i=0,nofglyphs-1 do
- local nextoffset = glyphs[i+1]
- if not shapes[i] then
- local datasize = nextoffset - glyphoffset
- if datasize > 0 then
- setposition(f,strikeoffset + glyphoffset)
- shapes[i] = {
- x = readshort(f),
- y = readshort(f),
- tag = readtag(f), -- maybe for tracing
- data = readstring(f,datasize-8),
- ppem = strikeppem, -- not used, for tracing
- ppi = strikeppi, -- not used, for tracing
- }
- done = done + 1
- if done == nofglyphs then
- break
- end
- end
- end
- glyphoffset = nextoffset
- end
- end
- fontdata.pngshapes = shapes
- end
-end
-
--- Another bitmap (so not that useful) format. But Luigi found a font that
--- has them , so ...
-
-do
-
- local function getmetrics(f)
- return {
- ascender = readinteger(f),
- descender = readinteger(f),
- widthmax = readuinteger(f),
- caretslopedumerator = readinteger(f),
- caretslopedenominator = readinteger(f),
- caretoffset = readinteger(f),
- minorigin = readinteger(f),
- minadvance = readinteger(f),
- maxbefore = readinteger(f),
- minafter = readinteger(f),
- pad1 = readinteger(f),
- pad2 = readinteger(f),
- }
- end
-
- -- bad names
-
- local function getbigmetrics(f)
- -- bigmetrics, maybe just skip 9 bytes
- return {
- height = readuinteger(f),
- width = readuinteger(f),
- horiBearingX = readinteger(f),
- horiBearingY = readinteger(f),
- horiAdvance = readuinteger(f),
- vertBearingX = readinteger(f),
- vertBearingY = readinteger(f),
- vertAdvance = readuinteger(f),
- }
- end
-
- local function getsmallmetrics(f)
- -- smallmetrics, maybe just skip 5 bytes
- return {
- height = readuinteger(f),
- width = readuinteger(f),
- bearingX = readinteger(f),
- bearingY = readinteger(f),
- advance = readuinteger(f),
- }
- end
-
- function readers.cblc(f,fontdata,specification)
- -- should we delay this ?
- local ctdttableoffset = gotodatatable(f,fontdata,"cbdt",specification.glyphs)
- if not ctdttableoffset then
- return
- end
- local cblctableoffset = gotodatatable(f,fontdata,"cblc",specification.glyphs)
- if cblctableoffset then
- local majorversion = readushort(f)
- local minorversion = readushort(f)
- local nofsizetables = readulong(f)
- local sizetables = { }
- local shapes = { }
- local subtables = { }
- for i=1,nofsizetables do
- sizetables[i] = {
- subtables = readulong(f),
- indexsize = readulong(f),
- nofsubtables = readulong(f),
- colorref = readulong(f),
- hormetrics = getmetrics(f),
- vermetrics = getmetrics(f),
- firstindex = readushort(f),
- lastindex = readushort(f),
- ppemx = readbyte(f),
- ppemy = readbyte(f),
- bitdepth = readbyte(f),
- flags = readbyte(f),
+ -- if true then
+ local shapes = { }
+ local done = 0
+ for i=1,nofstrikes do
+ local strikeoffset = strikes[i] + tableoffset
+ setposition(f,strikeoffset)
+ strikes[i] = {
+ ppem = readushort(f),
+ ppi = readushort(f),
+ offset = strikeoffset
}
end
- sort(sizetables,function(a,b)
- if b.ppemx == a.ppemx then
- return b.bitdepth < a.bitdepth
+ -- highest first
+ sort(strikes,function(a,b)
+ if b.ppem == a.ppem then
+ return b.ppi < a.ppi
else
- return b.ppemx < a.ppemx
+ return b.ppem < a.ppem
end
end)
- for i=1,nofsizetables do
- local s = sizetables[i]
- local d = false
- for j=s.firstindex,s.lastindex do
- if not shapes[j] then
- shapes[j] = i
- d = true
- end
- end
- if d then
- s.used = true
+ local glyphs = { }
+ for i=1,nofstrikes do
+ local strike = strikes[i]
+ local strikeppem = strike.ppem
+ local strikeppi = strike.ppi
+ local strikeoffset = strike.offset
+ setposition(f,strikeoffset)
+ for i=0,nofglyphs do
+ glyphs[i] = readulong(f)
end
- end
- for i=1,nofsizetables do
- local s = sizetables[i]
- if s.used then
- local offset = s.subtables
- setposition(f,cblctableoffset+offset)
- for j=1,s.nofsubtables do
- local firstindex = readushort(f)
- local lastindex = readushort(f)
- local tableoffset = readulong(f) + offset
- for k=firstindex,lastindex do
- if shapes[k] == i then
- local s = subtables[tableoffset]
- if not s then
- s = {
- firstindex = firstindex,
- lastindex = lastindex,
- }
- subtables[tableoffset] = s
- end
- shapes[k] = s
+ local glyphoffset = glyphs[0]
+ for i=0,nofglyphs-1 do
+ local nextoffset = glyphs[i+1]
+ if not shapes[i] then
+ local datasize = nextoffset - glyphoffset
+ if datasize > 0 then
+ setposition(f,strikeoffset + glyphoffset)
+ shapes[i] = {
+ x = readshort(f),
+ y = readshort(f),
+ tag = readtag(f), -- maybe for tracing
+ data = readstring(f,datasize-8),
+ ppem = strikeppem, -- not used, for tracing
+ ppi = strikeppi, -- not used, for tracing
+ }
+ done = done + 1
+ if done == nofglyphs then
+ break
end
end
end
+ glyphoffset = nextoffset
end
end
-
- -- there is no need to sort in string stream but we have a nicer trace
- -- if needed
-
- for offset, subtable in sortedhash(subtables) do
- local tabletype = readushort(f)
- subtable.format = readushort(f)
- local baseoffset = readulong(f) + ctdttableoffset
- local offsets = { }
- local metrics = nil
- if tabletype == 1 then
- -- we have the usual one more to get the size
- for i=subtable.firstindex,subtable.lastindex do
- offsets[i] = readulong(f) + baseoffset
- end
- skipbytes(f,4)
- elseif tabletype == 2 then
- local size = readulong(f)
- local done = baseoffset
- metrics = getbigmetrics(f)
- for i=subtable.firstindex,subtable.lastindex do
- offsets[i] = done
- done = done + size
- end
- elseif tabletype == 3 then
- -- we have the usual one more to get the size
- local n = subtable.lastindex - subtable.firstindex + 2
- for i=subtable.firstindex,subtable.lastindex do
- offsets[i] = readushort(f) + baseoffset
- end
- if math.odd(n) then
- skipbytes(f,4)
- else
- skipbytes(f,2)
- end
- elseif tabletype == 4 then
- for i=1,readulong(f) do
- offsets[readushort(f)] = readushort(f) + baseoffset
- end
- elseif tabletype == 5 then
- local size = readulong(f)
- local done = baseoffset
- metrics = getbigmetrics(f)
- local n = readulong(f)
- for i=1,n do
- offsets[readushort(f)] = done
- done = done + size
- end
- if math.odd(n) then
- skipbytes(f,2)
- end
- else
- return -- unsupported format
- end
- subtable.offsets = offsets
- subtable.metrics = metrics
- end
-
- -- we only support a few sensible types ... there are hardly any fonts so
- -- why are there so many variants ... not the best spec
-
- local default = { width = 0, height = 0 }
- local glyphs = fontdata.glyphs
-
- for index, subtable in sortedhash(shapes) do
- if type(subtable) == "table" then
- local data = nil
- local metrics = default
- local format = subtable.format
- local offset = subtable.offsets[index]
- setposition(f,offset)
- if format == 17 then
- metrics = getsmallmetrics(f)
- data = readstring(f,readulong(f))
- elseif format == 18 then
- metrics = getbigmetrics(f)
- data = readstring(f,readulong(f))
- elseif format == 19 then
- metrics = subtable.metrics
- data = readstring(f,readulong(f))
- else
- -- forget about it
- end
- local x = metrics.width
- local y = metrics.height
- shapes[index] = {
- -- maybe some metrics
- x = x,
- y = y,
- data = data,
- }
- -- I'll look into this in more details when needed
- -- as we can use the bearings to get better boxes.
- local glyph = glyphs[index]
- if not glyph.boundingbox then
- local width = glyph.width
- local height = width * y/x
- glyph.boundingbox = { 0, 0, width, height }
- end
-
- else
- shapes[index] = {
- x = 0,
- y = 0,
- data = "",
- }
- end
- end
-
- fontdata.pngshapes = shapes -- we cheat
- end
- end
-
- function readers.cbdt(f,fontdata,specification)
- -- local tableoffset = gotodatatable(f,fontdata,"ctdt",specification.glyphs)
- -- if tableoffset then
- -- local majorversion = readushort(f)
- -- local minorversion = readushort(f)
+ fontdata.sbixshapes = shapes
+ -- else
+ -- for i=1,nofstrikes do
+ -- local strikeoffset = strikes[i] + tableoffset
+ -- setposition(f,strikeoffset)
+ -- local glyphs = { }
+ -- strikes[i] = {
+ -- ppem = readushort(f),
+ -- ppi = readushort(f),
+ -- glyphs = glyphs,
+ -- }
+ -- for i=0,nofglyphs do
+ -- glyphs[i] = readulong(f)
+ -- end
+ -- local glyphoffset = glyphs[0]
+ -- for i=0,nofglyphs-1 do
+ -- local nextoffset = glyphs[i+1]
+ -- local datasize = nextoffset - glyphoffset
+ -- if datasize > 0 then
+ -- setposition(f,strikeoffset + glyphoffset)
+ -- glyphs[i] = {
+ -- x = readshort(f),
+ -- y = readshort(f),
+ -- tag = readtag(f),
+ -- data = readstring(f,datasize-8)
+ -- }
+ -- glyphoffset = nextoffset
+ -- end
+ -- end
+ -- end
+ -- fontdata.sbixshapes = strikes
-- end
end
+end
- -- function readers.ebdt(f,fontdata,specification)
- -- if specification.glyphs then
- -- end
- -- end
+-- function readers.cblc(f,fontdata,specification)
+-- local tableoffset = gotodatatable(f,fontdata,"cblc",specification.glyphs)
+-- if tableoffset then
+-- end
+-- end
+--
+-- function readers.cbdt(f,fontdata,specification)
+-- local tableoffset = gotodatatable(f,fontdata,"ctdt",specification.glyphs)
+-- if tableoffset then
+--
+-- local function getmetrics(f)
+-- return {
+-- ascender = readinteger(f),
+-- descender = readinteger(f),
+-- widthmax = readcardinal(f),
+-- caretslopedumerator = readinteger(f),
+-- caretslopedenominator = readinteger(f),
+-- caretoffset = readinteger(f),
+-- minorigin = readinteger(f),
+-- minadvance = readinteger(f),
+-- maxbefore = readinteger(f),
+-- minafter = readinteger(f),
+-- pad1 = readinteger(f),
+-- pad2 = readinteger(f),
+-- }
+-- end
+--
+-- local majorversion = readushort(f)
+-- local minorversion = readushort(f)
+-- local nofsizetables = readulong(f)
+-- local sizetable = { }
+-- for i=1,nofsizetables do
+-- sizetable[i] = {
+-- subtables = readulong(f),
+-- indexsize = readulong(f),
+-- nofsubtables = readulong(f),
+-- colorref = readulong(f),
+-- hormetrics = getmetrics(f),
+-- vermetrics = getmetrics(f),
+-- firstindex = readushort(f),
+-- lastindex = readushort(f),
+-- ppemx = readbyte(f),
+-- ppemy = readbyte(f),
+-- bitdepth = readbyte(f),
+-- flags = readbyte(f),
+-- }
+-- end
+--
+-- sort(sizetable,function(a,b)
+-- if b.ppemx == a.ppemx then
+-- return b.bitdepth < a.bitdepth
+-- else
+-- return b.ppemx < a.ppemx
+-- end
+-- end)
+--
+-- local shapes = { }
+--
+-- for i=1,nofsizetables do
+-- local s = sizetables[i]
+-- for j=firstindex,lastindex do
+-- if not shapes[j] then
+-- shapes[j] = {
+-- i
+-- }
+-- end
+-- end
+-- end
+--
+-- inspect(shapes)
+--
+-- end
+-- end
- -- function readers.ebsc(f,fontdata,specification)
- -- if specification.glyphs then
- -- end
- -- end
+-- function readers.ebdt(f,fontdata,specification)
+-- if specification.glyphs then
+-- end
+-- end
- -- function readers.eblc(f,fontdata,specification)
- -- if specification.glyphs then
- -- end
- -- end
+-- function readers.ebsc(f,fontdata,specification)
+-- if specification.glyphs then
+-- end
+-- end
-end
+-- function readers.eblc(f,fontdata,specification)
+-- if specification.glyphs then
+-- end
+-- end
-- + AVAR : optional
-- + CFF2 : otf outlines
@@ -3502,8 +3398,7 @@ function readers.avar(f,fontdata,specification)
local lastfrom = false
local lastto = false
for i=1,nofvalues do
- local f = read2dot14(f)
- local t = read2dot14(f)
+ local f, t = read2dot14(f), read2dot14(f)
if lastfrom and f <= lastfrom then
-- ignore
elseif lastto and t >= lastto then
@@ -3531,10 +3426,11 @@ function readers.avar(f,fontdata,specification)
return false
end
- local version = readulong(f) -- 0x00010000
- local reserved = readushort(f)
- local nofaxis = readushort(f)
- local segments = { }
+ local majorversion = readushort(f) -- 1
+ local minorversion = readushort(f) -- 0
+ local reserved = readushort(f)
+ local nofaxis = readushort(f)
+ local segments = { }
for i=1,nofaxis do
segments[i] = collect()
end
@@ -3545,7 +3441,7 @@ end
function readers.fvar(f,fontdata,specification)
local tableoffset = gotodatatable(f,fontdata,"fvar",true) -- specification.variable or specification.instancenames
if tableoffset then
- local version = readulong(f) -- 0x00010000
+ local version = readulong(f) -- 1.0
local offsettoaxis = tableoffset + readushort(f)
local reserved = skipshort(f)
-- pair 1
@@ -3631,7 +3527,7 @@ function readers.hvar(f,fontdata,specification)
return
end
- local version = readulong(f) -- 0x00010000
+ local version = readulong(f) -- 1.0
local variationoffset = tableoffset + readulong(f) -- the store
local advanceoffset = tableoffset + readulong(f)
local lsboffset = tableoffset + readulong(f)
@@ -3728,7 +3624,7 @@ end
function readers.mvar(f,fontdata,specification)
local tableoffset = gotodatatable(f,fontdata,"mvar",specification.variable)
if tableoffset then
- local version = readulong(f) -- 0x00010000
+ local version = readulong(f) -- 1.0
local reserved = skipshort(f,1)
local recordsize = readushort(f)
local nofrecords = readushort(f)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-emp.mkvi b/Master/texmf-dist/tex/context/base/mkiv/font-emp.mkvi
index b5c09d4c265..1b6d46798ba 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-emp.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-emp.mkvi
@@ -227,22 +227,12 @@
%D their style as good as possible. These macros are obsolete
%D in \MKIV.
-% \unexpanded\def\emphbf{\groupedcommand{\bf\def\emphit{\bi}\def\emphsl{\bs}}{}}
-% \unexpanded\def\emphit{\groupedcommand{\it\def\emphbf{\bi}\def\emphsl{\sl}}{}}
-% \unexpanded\def\emphsl{\groupedcommand{\sl\def\emphbf{\bs}\def\emphit{\it}}{}}
-% \unexpanded\def\emphtf{\groupedcommand{\tf\def\emphbf{\bf}\def\emphit{\it}\def\emphsl{\sl}}{}}
-% \unexpanded\def\emph {\groupedcommand{\em}{}}
-
-\unexpanded\def\font_emphasis_bf{\bf\def\emphit{\bi}\def\emphsl{\bs}}
-\unexpanded\def\font_emphasis_it{\it\def\emphbf{\bi}\def\emphsl{\sl}}
-\unexpanded\def\font_emphasis_sl{\sl\def\emphbf{\bs}\def\emphit{\it}}
-\unexpanded\def\font_emphasis_tf{\tf\def\emphbf{\bf}\def\emphit{\it}\def\emphsl{\sl}}
-
-\unexpanded\def\emphbf{\triggergroupedcommandcs\font_emphasis_bf}
-\unexpanded\def\emphit{\triggergroupedcommandcs\font_emphasis_it}
-\unexpanded\def\emphsl{\triggergroupedcommandcs\font_emphasis_sl}
-\unexpanded\def\emphtf{\triggergroupedcommandcs\font_emphasis_tf}
-\unexpanded\def\emph {\triggergroupedcommandcs\em}
+\unexpanded\def\emphbf{\groupedcommand{\bf\def\emphit{\bi}\def\emphsl{\bs}}{}}
+\unexpanded\def\emphit{\groupedcommand{\it\def\emphbf{\bi}\def\emphsl{\sl}}{}}
+\unexpanded\def\emphsl{\groupedcommand{\sl\def\emphbf{\bs}\def\emphit{\it}}{}}
+\unexpanded\def\emphtf{\groupedcommand{\tf\def\emphbf{\bf}\def\emphit{\it}\def\emphsl{\sl}}{}}
+
+\unexpanded\def\emph {\groupedcommand{\em}{}}
\unexpanded\def\emphasized{\bgroup\em\let\nexttoken}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-enh.lua b/Master/texmf-dist/tex/context/base/mkiv/font-enh.lua
index 9ec116d47f3..b1fcd9be8df 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-enh.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-enh.lua
@@ -115,7 +115,7 @@ local registerotffeature = otffeatures.register
----- tosixteen = fonts.mappings.tounicode16
-local function initialize(tfmdata)
+local function initializeunicoding(tfmdata)
local goodies = tfmdata.goodies
local newcoding = nil
for i=1,#goodies do
@@ -165,14 +165,18 @@ local function initialize(tfmdata)
end
end
-local specification = {
+local unicoding_specification = {
name = "unicoding",
description = "adapt unicode table",
initializers = {
- base = initialize,
- node = initialize,
+ base = initializeunicoding,
+ node = initializeunicoding,
},
+ -- manipulators = {
+ -- base = finalizeunicoding,
+ -- node = finalizeunicoding,
+ -- }
}
-registerotffeature(specification)
-registerafmfeature(specification)
+registerotffeature(unicoding_specification)
+registerafmfeature(unicoding_specification)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-ext.lua b/Master/texmf-dist/tex/context/base/mkiv/font-ext.lua
new file mode 100644
index 00000000000..d873dccd4d3
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-ext.lua
@@ -0,0 +1,1856 @@
+if not modules then modules = { } end modules ['font-ext'] = {
+ version = 1.001,
+ comment = "companion to font-ini.mkiv and hand-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local next, type, tonumber = next, type, tonumber
+local byte, find, formatters = string.byte, string.find, string.formatters
+local utfchar = utf.char
+local sortedhash, sortedkeys, sort = table.sortedhash, table.sortedkeys, table.sort
+
+local context = context
+local fonts = fonts
+local utilities = utilities
+
+local trace_protrusion = false trackers.register("fonts.protrusion", function(v) trace_protrusion = v end)
+local trace_expansion = false trackers.register("fonts.expansion", function(v) trace_expansion = v end)
+
+local report_expansions = logs.reporter("fonts","expansions")
+local report_protrusions = logs.reporter("fonts","protrusions")
+
+--[[ldx--
+<p>When we implement functions that deal with features, most of them
+will depend of the font format. Here we define the few that are kind
+of neutral.</p>
+--ldx]]--
+
+local handlers = fonts.handlers
+local hashes = fonts.hashes
+local otf = handlers.otf
+local afm = handlers.afm
+
+local registerotffeature = otf.features.register
+local registerafmfeature = afm.features.register
+
+local fontdata = hashes.identifiers
+local fontproperties = hashes.properties
+
+local constructors = fonts.constructors
+local getprivate = constructors.getprivate
+
+local allocate = utilities.storage.allocate
+local settings_to_array = utilities.parsers.settings_to_array
+local settings_to_hash = utilities.parsers.settings_to_hash
+local getparameters = utilities.parsers.getparameters
+local gettexdimen = tex.getdimen
+local family_font = node.family_font
+
+local setmetatableindex = table.setmetatableindex
+
+local implement = interfaces.implement
+local variables = interfaces.variables
+
+
+local v_background = variables.background
+local v_frame = variables.frame
+local v_empty = variables.empty
+local v_none = variables.none
+
+-- -- -- -- -- --
+-- shared
+-- -- -- -- -- --
+
+local function get_class_and_vector(tfmdata,value,where) -- "expansions"
+ local g_where = tfmdata.goodies and tfmdata.goodies[where]
+ local f_where = fonts[where]
+ local g_classes = g_where and g_where.classes
+ local f_classes = f_where and f_where.classes
+ local class = (g_classes and g_classes[value]) or (f_classes and f_classes[value])
+ if class then
+ local class_vector = class.vector
+ local g_vectors = g_where and g_where.vectors
+ local f_vectors = f_where and f_where.vectors
+ local vector = (g_vectors and g_vectors[class_vector]) or (f_vectors and f_vectors[class_vector])
+ return class, vector
+ end
+end
+
+-- -- -- -- -- --
+-- expansion (hz)
+-- -- -- -- -- --
+
+local expansions = fonts.expansions or allocate()
+
+fonts.expansions = expansions
+
+local classes = expansions.classes or allocate()
+local vectors = expansions.vectors or allocate()
+
+expansions.classes = classes
+expansions.vectors = vectors
+
+-- beware, pdftex itself uses percentages * 10
+--
+-- todo: get rid of byte() here
+
+classes.preset = { stretch = 2, shrink = 2, step = .5, factor = 1 }
+
+classes['quality'] = {
+ stretch = 2, shrink = 2, step = .5, vector = 'default', factor = 1
+}
+
+vectors['default'] = {
+ [byte('A')] = 0.5, [byte('B')] = 0.7, [byte('C')] = 0.7, [byte('D')] = 0.5, [byte('E')] = 0.7,
+ [byte('F')] = 0.7, [byte('G')] = 0.5, [byte('H')] = 0.7, [byte('K')] = 0.7, [byte('M')] = 0.7,
+ [byte('N')] = 0.7, [byte('O')] = 0.5, [byte('P')] = 0.7, [byte('Q')] = 0.5, [byte('R')] = 0.7,
+ [byte('S')] = 0.7, [byte('U')] = 0.7, [byte('W')] = 0.7, [byte('Z')] = 0.7,
+ [byte('a')] = 0.7, [byte('b')] = 0.7, [byte('c')] = 0.7, [byte('d')] = 0.7, [byte('e')] = 0.7,
+ [byte('g')] = 0.7, [byte('h')] = 0.7, [byte('k')] = 0.7, [byte('m')] = 0.7, [byte('n')] = 0.7,
+ [byte('o')] = 0.7, [byte('p')] = 0.7, [byte('q')] = 0.7, [byte('s')] = 0.7, [byte('u')] = 0.7,
+ [byte('w')] = 0.7, [byte('z')] = 0.7,
+ [byte('2')] = 0.7, [byte('3')] = 0.7, [byte('6')] = 0.7, [byte('8')] = 0.7, [byte('9')] = 0.7,
+}
+
+vectors['quality'] = vectors['default'] -- metatable ?
+
+local function initializeexpansion(tfmdata,value)
+ if value then
+ local class, vector = get_class_and_vector(tfmdata,value,"expansions")
+ if class then
+ if vector then
+ local stretch = class.stretch or 0
+ local shrink = class.shrink or 0
+ local step = class.step or 0
+ local factor = class.factor or 1
+ if trace_expansion then
+ report_expansions("setting class %a, vector %a, factor %a, stretch %a, shrink %a, step %a",
+ value,class.vector,factor,stretch,shrink,step)
+ end
+ tfmdata.parameters.expansion = {
+ stretch = 10 * stretch,
+ shrink = 10 * shrink,
+ step = 10 * step,
+ factor = factor,
+ }
+ local data = characters and characters.data
+ for i, chr in next, tfmdata.characters do
+ local v = vector[i]
+ if data and not v then -- we could move the data test outside (needed for plain)
+ local d = data[i]
+ if d then
+ local s = d.shcode
+ if not s then
+ -- sorry
+ elseif type(s) == "table" then
+ v = ((vector[s[1]] or 0) + (vector[s[#s]] or 0)) / 2
+ else
+ v = vector[s] or 0
+ end
+ end
+ end
+ if v and v ~= 0 then
+ chr.expansion_factor = v*factor
+ else -- can be option
+ chr.expansion_factor = factor
+ end
+ end
+ elseif trace_expansion then
+ report_expansions("unknown vector %a in class %a",class.vector,value)
+ end
+ elseif trace_expansion then
+ report_expansions("unknown class %a",value)
+ end
+ end
+end
+
+local expansion_specification = {
+ name = "expansion",
+ description = "apply hz optimization",
+ initializers = {
+ base = initializeexpansion,
+ node = initializeexpansion,
+ }
+}
+
+registerotffeature(expansion_specification)
+registerafmfeature(expansion_specification)
+
+fonts.goodies.register("expansions", function(...) return fonts.goodies.report("expansions", trace_expansion, ...) end)
+
+implement {
+ name = "setupfontexpansion",
+ arguments = "2 strings",
+ actions = function(class,settings) getparameters(classes,class,'preset',settings) end
+}
+
+-- -- -- -- -- --
+-- protrusion
+-- -- -- -- -- --
+
+fonts.protrusions = allocate()
+local protrusions = fonts.protrusions
+
+protrusions.classes = allocate()
+protrusions.vectors = allocate()
+
+local classes = protrusions.classes
+local vectors = protrusions.vectors
+
+-- the values need to be revisioned
+
+classes.preset = { factor = 1, left = 1, right = 1 }
+
+classes['pure'] = {
+ vector = 'pure', factor = 1
+}
+classes['punctuation'] = {
+ vector = 'punctuation', factor = 1
+}
+classes['alpha'] = {
+ vector = 'alpha', factor = 1
+}
+classes['quality'] = {
+ vector = 'quality', factor = 1
+}
+
+vectors['pure'] = {
+
+ [0x002C] = { 0, 1 }, -- comma
+ [0x002E] = { 0, 1 }, -- period
+ [0x003A] = { 0, 1 }, -- colon
+ [0x003B] = { 0, 1 }, -- semicolon
+ [0x002D] = { 0, 1 }, -- hyphen
+ [0x00AD] = { 0, 1 }, -- also hyphen
+ [0x2013] = { 0, 0.50 }, -- endash
+ [0x2014] = { 0, 0.33 }, -- emdash
+ [0x3001] = { 0, 1 }, -- ideographic comma 、
+ [0x3002] = { 0, 1 }, -- ideographic full stop 。
+ [0x060C] = { 0, 1 }, -- arabic comma ،
+ [0x061B] = { 0, 1 }, -- arabic semicolon ؛
+ [0x06D4] = { 0, 1 }, -- arabic full stop ۔
+
+}
+
+vectors['punctuation'] = {
+
+ [0x003F] = { 0, 0.20 }, -- ?
+ [0x00BF] = { 0, 0.20 }, -- Âŋ
+ [0x0021] = { 0, 0.20 }, -- !
+ [0x00A1] = { 0, 0.20 }, -- ÂĄ
+ [0x0028] = { 0.05, 0 }, -- (
+ [0x0029] = { 0, 0.05 }, -- )
+ [0x005B] = { 0.05, 0 }, -- [
+ [0x005D] = { 0, 0.05 }, -- ]
+ [0x002C] = { 0, 0.70 }, -- comma
+ [0x002E] = { 0, 0.70 }, -- period
+ [0x003A] = { 0, 0.50 }, -- colon
+ [0x003B] = { 0, 0.50 }, -- semicolon
+ [0x002D] = { 0, 0.70 }, -- hyphen
+ [0x00AD] = { 0, 0.70 }, -- also hyphen
+ [0x2013] = { 0, 0.30 }, -- endash
+ [0x2014] = { 0, 0.20 }, -- emdash
+ [0x060C] = { 0, 0.70 }, -- arabic comma
+ [0x061B] = { 0, 0.50 }, -- arabic semicolon
+ [0x06D4] = { 0, 0.70 }, -- arabic full stop
+ [0x061F] = { 0, 0.20 }, -- ؟
+
+ -- todo: left and right quotes: .5 double, .7 single
+
+ [0x2039] = { 0.70, 0.70 }, -- left single guillemet â€đ
+ [0x203A] = { 0.70, 0.70 }, -- right single guillemet ‹
+ [0x00AB] = { 0.50, 0.50 }, -- left guillemet ÂŦ
+ [0x00BB] = { 0.50, 0.50 }, -- right guillemet Âŧ
+
+ [0x2018] = { 0.70, 0.70 }, -- left single quotation mark ‘
+ [0x2019] = { 0, 0.70 }, -- right single quotation mark ’
+ [0x201A] = { 0.70, 0 }, -- single low-9 quotation mark ,
+ [0x201B] = { 0.70, 0 }, -- single high-reversed-9 quotation mark ‛
+ [0x201C] = { 0.50, 0.50 }, -- left double quotation mark “
+ [0x201D] = { 0, 0.50 }, -- right double quotation mark ”
+ [0x201E] = { 0.50, 0 }, -- double low-9 quotation mark „
+ [0x201F] = { 0.50, 0 }, -- double high-reversed-9 quotation mark ‟
+
+}
+
+vectors['alpha'] = {
+
+ [byte("A")] = { .05, .05 },
+ [byte("F")] = { 0, .05 },
+ [byte("J")] = { .05, 0 },
+ [byte("K")] = { 0, .05 },
+ [byte("L")] = { 0, .05 },
+ [byte("T")] = { .05, .05 },
+ [byte("V")] = { .05, .05 },
+ [byte("W")] = { .05, .05 },
+ [byte("X")] = { .05, .05 },
+ [byte("Y")] = { .05, .05 },
+
+ [byte("k")] = { 0, .05 },
+ [byte("r")] = { 0, .05 },
+ [byte("t")] = { 0, .05 },
+ [byte("v")] = { .05, .05 },
+ [byte("w")] = { .05, .05 },
+ [byte("x")] = { .05, .05 },
+ [byte("y")] = { .05, .05 },
+
+}
+
+vectors['quality'] = table.merged(
+ vectors['punctuation'],
+ vectors['alpha']
+)
+
+-- As this is experimental code, users should not depend on it. The implications are still
+-- discussed on the ConTeXt Dev List and we're not sure yet what exactly the spec is (the
+-- next code is tested with a gyre font patched by / fea file made by Khaled Hosny). The
+-- double trick should not be needed it proper hanging punctuation is used in which case
+-- values < 1 can be used.
+--
+-- preferred (in context, usine vectors):
+--
+-- \definefontfeature[whatever][default][mode=node,protrusion=quality]
+--
+-- using lfbd and rtbd, with possibibility to enable only one side :
+--
+-- \definefontfeature[whocares][default][mode=node,protrusion=yes, opbd=yes,script=latn]
+-- \definefontfeature[whocares][default][mode=node,protrusion=right,opbd=yes,script=latn]
+--
+-- idem, using multiplier
+--
+-- \definefontfeature[whocares][default][mode=node,protrusion=2,opbd=yes,script=latn]
+-- \definefontfeature[whocares][default][mode=node,protrusion=double,opbd=yes,script=latn]
+--
+-- idem, using named feature file (less frozen):
+--
+-- \definefontfeature[whocares][default][mode=node,protrusion=2,opbd=yes,script=latn,featurefile=texgyrepagella-regularxx.fea]
+
+classes['double'] = { -- for testing opbd
+ factor = 2, left = 1, right = 1,
+}
+
+local function map_opbd_onto_protrusion(tfmdata,value,opbd)
+ local characters = tfmdata.characters
+ local descriptions = tfmdata.descriptions
+ local properties = tfmdata.properties
+ local resources = tfmdata.resources
+ local rawdata = tfmdata.shared.rawdata
+ local lookuphash = rawdata.lookuphash
+ local lookuptags = resources.lookuptags
+ local script = properties.script
+ local language = properties.language
+ local done, factor, left, right = false, 1, 1, 1
+ local class = classes[value]
+ if class then
+ factor = class.factor or 1
+ left = class.left or 1
+ right = class.right or 1
+ else
+ factor = tonumber(value) or 1
+ end
+ if opbd ~= "right" then
+ local validlookups, lookuplist = otf.collectlookups(rawdata,"lfbd",script,language)
+ if validlookups then
+ for i=1,#lookuplist do
+ local lookup = lookuplist[i]
+ local steps = lookup.steps
+ if steps then
+ if trace_protrusion then
+ report_protrusions("setting left using lfbd")
+ end
+ for i=1,#steps do
+ local step = steps[i]
+ local coverage = step.coverage
+ if coverage then
+ for k, v in next, coverage do
+ -- local p = - v[3] / descriptions[k].width-- or 1 ~= 0 too but the same
+ local p = - (v[1] / 1000) * factor * left
+ characters[k].left_protruding = p
+ if trace_protrusion then
+ report_protrusions("lfbd -> %C -> %p",k,p)
+ end
+ end
+ end
+ end
+ done = true
+ end
+ end
+ end
+ end
+ if opbd ~= "left" then
+ local validlookups, lookuplist = otf.collectlookups(rawdata,"rtbd",script,language)
+ if validlookups then
+ for i=1,#lookuplist do
+ local lookup = lookuplist[i]
+ local steps = lookup.steps
+ if steps then
+ if trace_protrusion then
+ report_protrusions("setting right using rtbd")
+ end
+ for i=1,#steps do
+ local step = steps[i]
+ local coverage = step.coverage
+ if coverage then
+ for k, v in next, coverage do
+ -- local p = v[3] / descriptions[k].width -- or 3
+ local p = (v[1] / 1000) * factor * right
+ characters[k].right_protruding = p
+ if trace_protrusion then
+ report_protrusions("rtbd -> %C -> %p",k,p)
+ end
+ end
+ end
+ end
+ end
+ done = true
+ end
+ end
+ end
+end
+
+-- The opbd test is just there because it was discussed on the context development list. However,
+-- the mentioned fxlbi.otf font only has some kerns for digits. So, consider this feature not supported
+-- till we have a proper test font.
+
+local function initializeprotrusion(tfmdata,value)
+ if value then
+ local opbd = tfmdata.shared.features.opbd
+ if opbd then
+ -- possible values: left right both yes no (experimental)
+ map_opbd_onto_protrusion(tfmdata,value,opbd)
+ else
+ local class, vector = get_class_and_vector(tfmdata,value,"protrusions")
+ if class then
+ if vector then
+ local factor = class.factor or 1
+ local left = class.left or 1
+ local right = class.right or 1
+ if trace_protrusion then
+ report_protrusions("setting class %a, vector %a, factor %a, left %a, right %a",
+ value,class.vector,factor,left,right)
+ end
+ local data = characters.data
+ local emwidth = tfmdata.parameters.quad
+ tfmdata.parameters.protrusion = {
+ factor = factor,
+ left = left,
+ right = right,
+ }
+ for i, chr in next, tfmdata.characters do
+ local v, pl, pr = vector[i], nil, nil
+ if v then
+ pl, pr = v[1], v[2]
+ else
+ local d = data[i]
+ if d then
+ local s = d.shcode
+ if not s then
+ -- sorry
+ elseif type(s) == "table" then
+ local vl, vr = vector[s[1]], vector[s[#s]]
+ if vl then pl = vl[1] end
+ if vr then pr = vr[2] end
+ else
+ v = vector[s]
+ if v then
+ pl, pr = v[1], v[2]
+ end
+ end
+ end
+ end
+ if pl and pl ~= 0 then
+ chr.left_protruding = left *pl*factor
+ end
+ if pr and pr ~= 0 then
+ chr.right_protruding = right*pr*factor
+ end
+ end
+ elseif trace_protrusion then
+ report_protrusions("unknown vector %a in class %a",class.vector,value)
+ end
+ elseif trace_protrusion then
+ report_protrusions("unknown class %a",value)
+ end
+ end
+ end
+end
+
+local protrusion_specification = {
+ name = "protrusion",
+ description = "l/r margin character protrusion",
+ initializers = {
+ base = initializeprotrusion,
+ node = initializeprotrusion,
+ }
+}
+
+registerotffeature(protrusion_specification)
+registerafmfeature(protrusion_specification)
+
+fonts.goodies.register("protrusions", function(...) return fonts.goodies.report("protrusions", trace_protrusion, ...) end)
+
+implement {
+ name = "setupfontprotrusion",
+ arguments = "2 strings",
+ actions = function(class,settings) getparameters(classes,class,'preset',settings) end
+}
+
+-- -- --
+
+local function initializenostackmath(tfmdata,value)
+ tfmdata.properties.nostackmath = value and true
+end
+
+registerotffeature {
+ name = "nostackmath",
+ description = "disable math stacking mechanism",
+ initializers = {
+ base = initializenostackmath,
+ node = initializenostackmath,
+ }
+}
+
+local function initializerealdimensions(tfmdata,value)
+ tfmdata.properties.realdimensions = value and true
+end
+
+registerotffeature {
+ name = "realdimensions",
+ description = "accept negative dimenions",
+ initializers = {
+ base = initializerealdimensions,
+ node = initializerealdimensions,
+ }
+}
+
+local function initializeitlc(tfmdata,value) -- hm, always value
+ if value then
+ -- the magic 40 and it formula come from Dohyun Kim but we might need another guess
+ local parameters = tfmdata.parameters
+ local italicangle = parameters.italicangle
+ if italicangle and italicangle ~= 0 then
+ local properties = tfmdata.properties
+ local factor = tonumber(value) or 1
+ properties.hasitalics = true
+ properties.autoitalicamount = factor * (parameters.uwidth or 40)/2
+ end
+ end
+end
+
+local italic_specification = {
+ name = "itlc",
+ description = "italic correction",
+ initializers = {
+ base = initializeitlc,
+ node = initializeitlc,
+ }
+}
+
+registerotffeature(italic_specification)
+registerafmfeature(italic_specification)
+
+local function initializetextitalics(tfmdata,value) -- yes no delay
+ tfmdata.properties.textitalics = toboolean(value)
+end
+
+local textitalics_specification = {
+ name = "textitalics",
+ description = "use alternative text italic correction",
+ initializers = {
+ base = initializetextitalics,
+ node = initializetextitalics,
+ }
+}
+
+registerotffeature(textitalics_specification)
+registerafmfeature(textitalics_specification)
+
+-- local function initializemathitalics(tfmdata,value) -- yes no delay
+-- tfmdata.properties.mathitalics = toboolean(value)
+-- end
+--
+-- local mathitalics_specification = {
+-- name = "mathitalics",
+-- description = "use alternative math italic correction",
+-- initializers = {
+-- base = initializemathitalics,
+-- node = initializemathitalics,
+-- }
+-- }
+
+-- registerotffeature(mathitalics_specification)
+-- registerafmfeature(mathitalics_specification)
+
+-- slanting
+
+local function initializeslant(tfmdata,value)
+ value = tonumber(value)
+ if not value then
+ value = 0
+ elseif value > 1 then
+ value = 1
+ elseif value < -1 then
+ value = -1
+ end
+ tfmdata.parameters.slantfactor = value
+end
+
+local slant_specification = {
+ name = "slant",
+ description = "slant glyphs",
+ initializers = {
+ base = initializeslant,
+ node = initializeslant,
+ }
+}
+
+registerotffeature(slant_specification)
+registerafmfeature(slant_specification)
+
+local function initializeextend(tfmdata,value)
+ value = tonumber(value)
+ if not value then
+ value = 0
+ elseif value > 10 then
+ value = 10
+ elseif value < -10 then
+ value = -10
+ end
+ tfmdata.parameters.extendfactor = value
+end
+
+local extend_specification = {
+ name = "extend",
+ description = "scale glyphs horizontally",
+ initializers = {
+ base = initializeextend,
+ node = initializeextend,
+ }
+}
+
+registerotffeature(extend_specification)
+registerafmfeature(extend_specification)
+
+-- For Wolfgang Schuster:
+--
+-- \definefontfeature[thisway][default][script=hang,language=zhs,dimensions={2,2,2}]
+-- \definedfont[file:kozminpr6nregular*thisway]
+--
+-- For the moment we don't mess with the descriptions.
+
+local function manipulatedimensions(tfmdata,key,value)
+ if type(value) == "string" and value ~= "" then
+ local characters = tfmdata.characters
+ local parameters = tfmdata.parameters
+ local emwidth = parameters.quad
+ local exheight = parameters.xheight
+ local newwidth = false
+ local newheight = false
+ local newdepth = false
+ if value == "strut" then
+ newheight = gettexdimen("strutht")
+ newdepth = gettexdimen("strutdp")
+ elseif value == "mono" then
+ newwidth = emwidth
+ else
+ local spec = settings_to_array(value)
+ newwidth = tonumber(spec[1])
+ newheight = tonumber(spec[2])
+ newdepth = tonumber(spec[3])
+ if newwidth then newwidth = newwidth * emwidth end
+ if newheight then newheight = newheight * exheight end
+ if newdepth then newdepth = newdepth * exheight end
+ end
+ if newwidth or newheight or newdepth then
+ local additions = { }
+ for unicode, old_c in next, characters do
+ local oldwidth = old_c.width
+ local oldheight = old_c.height
+ local olddepth = old_c.depth
+ local width = newwidth or oldwidth or 0
+ local height = newheight or oldheight or 0
+ local depth = newdepth or olddepth or 0
+ if oldwidth ~= width or oldheight ~= height or olddepth ~= depth then
+ local private = getprivate(tfmdata)
+ local newslot = { "slot", 1, private } -- { "slot", 0, private }
+ local new_c
+ local commands = oldwidth ~= width and {
+ { "right", (width - oldwidth) / 2 },
+ newslot,
+ } or {
+ newslot,
+ }
+ if height > 0 then
+ if depth > 0 then
+ new_c = {
+ width = width,
+ height = height,
+ depth = depth,
+ commands = commands,
+ }
+ else
+ new_c = {
+ width = width,
+ height = height,
+ commands = commands,
+ }
+ end
+ else
+ if depth > 0 then
+ new_c = {
+ width = width,
+ depth = depth,
+ commands = commands,
+ }
+ else
+ new_c = {
+ width = width,
+ commands = commands,
+ }
+ end
+ end
+ setmetatableindex(new_c,old_c)
+ characters[unicode] = new_c
+ additions[private] = old_c
+ end
+ end
+ for k, v in next, additions do
+ characters[k] = v
+ end
+ -- elseif height > 0 and depth > 0 then
+ -- for unicode, old_c in next, characters do
+ -- old_c.height = height
+ -- old_c.depth = depth
+ -- end
+ -- elseif height > 0 then
+ -- for unicode, old_c in next, characters do
+ -- old_c.height = height
+ -- end
+ -- elseif depth > 0 then
+ -- for unicode, old_c in next, characters do
+ -- old_c.depth = depth
+ -- end
+ end
+ end
+end
+
+local dimensions_specification = {
+ name = "dimensions",
+ description = "force dimensions",
+ manipulators = {
+ base = manipulatedimensions,
+ node = manipulatedimensions,
+ }
+}
+
+registerotffeature(dimensions_specification)
+registerafmfeature(dimensions_specification)
+
+--------------------------------------------------------------------------------------------------------------
+
+-- local function fakemonospace(tfmdata)
+-- local resources = tfmdata.resources
+-- local gposfeatures = resources.features.gpos
+-- local characters = tfmdata.characters
+-- local descriptions = tfmdata.descriptions
+-- local sequences = resources.sequences
+-- local coverage = { }
+-- local units = tfmdata.shared.rawdata.metadata.units
+-- for k, v in next, characters do
+-- local w = descriptions[k].width
+-- local d = units - w
+-- coverage[k] = { -d/2, 0, units, 0 }
+-- end
+-- local f = { dflt = { dflt = true } }
+-- local s = #sequences + 1
+-- local t = {
+-- features = { fakemono = f },
+-- flags = { false, false, false, false },
+-- index = s,
+-- name = "p_s_" .. s,
+-- nofsteps = 1,
+-- order = { "fakemono" },
+-- skiphash = false,
+-- type = "gpos_single",
+-- steps = {
+-- {
+-- format = "single",
+-- coverage = coverage,
+-- }
+-- }
+-- }
+-- gposfeatures["fakemono"] = f
+-- sequences[s] = t
+-- end
+--
+-- fonts.constructors.features.otf.register {
+-- name = "fakemono",
+-- description = "fake monospaced",
+-- initializers = {
+-- node = fakemonospace,
+-- },
+-- }
+
+--------------------------------------------------------------------------------------------------------------
+
+-- for zhichu chen (see mailing list archive): we might add a few more variants
+-- in due time
+--
+-- \definefontfeature[boxed][default][boundingbox=yes] % paleblue
+--
+-- maybe:
+--
+-- \definecolor[DummyColor][s=.75,t=.5,a=1] {\DummyColor test} \nopdfcompression
+--
+-- local gray = { "pdf", "origin", "/Tr1 gs .75 g" }
+-- local black = { "pdf", "origin", "/Tr0 gs 0 g" }
+
+
+-- boundingbox={yes|background|frame|empty|<color>}
+
+local push = { "push" }
+local pop = { "pop" }
+
+----- gray = { "pdf", "origin", ".75 g .75 G" }
+----- black = { "pdf", "origin", "0 g 0 G" }
+----- gray = { "pdf", ".75 g" }
+----- black = { "pdf", "0 g" }
+
+-- local bp = number.dimenfactors.bp
+--
+-- local downcache = setmetatableindex(function(t,d)
+-- local v = { "down", d }
+-- t[d] = v
+-- return v
+-- end)
+--
+-- local backcache = setmetatableindex(function(t,h)
+-- local h = h * bp
+-- local v = setmetatableindex(function(t,w)
+-- -- local v = { "rule", h, w }
+-- local v = { "pdf", "origin", formatters["0 0 %.6F %.6F re F"](w*bp,h) }
+-- t[w] = v
+-- return v
+-- end)
+-- t[h] = v
+-- return v
+-- end)
+--
+-- local forecache = setmetatableindex(function(t,h)
+-- local h = h * bp
+-- local v = setmetatableindex(function(t,w)
+-- local v = { "pdf", "origin", formatters["%.6F w 0 0 %.6F %.6F re S"](0.25*65536*bp,w*bp,h) }
+-- t[w] = v
+-- return v
+-- end)
+-- t[h] = v
+-- return v
+-- end)
+
+local bp = number.dimenfactors.bp
+local r = 16384 * bp -- 65536 // 4
+
+local backcache = setmetatableindex(function(t,h)
+ local h = h * bp
+ local v = setmetatableindex(function(t,d)
+ local d = d * bp
+ local v = setmetatableindex(function(t,w)
+ local v = { "pdf", "origin", formatters["%.6F w 0 %.6F %.6F %.6F re f"](r,-d,w*bp,h+d) }
+ t[w] = v
+ return v
+ end)
+ t[d] = v
+ return v
+ end)
+ t[h] = v
+ return v
+end)
+
+local forecache = setmetatableindex(function(t,h)
+ local h = h * bp
+ local v = setmetatableindex(function(t,d)
+ local d = d * bp
+ local v = setmetatableindex(function(t,w)
+ -- the frame goes through the boundingbox
+ -- local v = { "pdf", "origin", formatters["[] 0 d 0 J %.6F w %.6F %.6F %.6F re S"](r,-d,w*bp,h+d) }
+ local v = { "pdf", "origin", formatters["[] 0 d 0 J %.6F w %.6F %.6F %.6F %.6F re S"](r,r/2,-d+r/2,w*bp-r,h+d-r) }
+ t[w] = v
+ return v
+ end)
+ t[d] = v
+ return v
+ end)
+ t[h] = v
+ return v
+end)
+
+local startcolor = nil
+local stopcolor = nil
+
+local function showboundingbox(tfmdata,key,value)
+ if value then
+ if not backcolors then
+ local vfspecials = backends.pdf.tables.vfspecials
+ startcolor = vfspecials.startcolor
+ stopcolor = vfspecials.stopcolor
+ end
+ local characters = tfmdata.characters
+ local additions = { }
+ local rulecache = backcache
+ local showchar = true
+ local color = "palegray"
+ if type(value) == "string" then
+ value = settings_to_array(value)
+ for i=1,#value do
+ local v = value[i]
+ if v == v_frame then
+ rulecache = forecache
+ elseif v == v_background then
+ rulecache = backcache
+ elseif v == v_empty then
+ showchar = false
+ elseif v == v_none then
+ color = nil
+ else
+ color = v
+ end
+ end
+ end
+ local gray = color and startcolor(color) or nil
+ local black = gray and stopcolor or nil
+ for unicode, old_c in next, characters do
+ local private = getprivate(tfmdata)
+ local width = old_c.width or 0
+ local height = old_c.height or 0
+ local depth = old_c.depth or 0
+ local char = showchar and { "slot", 1, private } or nil -- { "slot", 0, private }
+ -- local new_c
+ -- if depth == 0 then
+ -- new_c = {
+ -- width = width,
+ -- height = height,
+ -- commands = {
+ -- push,
+ -- gray,
+ -- rulecache[height][width],
+ -- black,
+ -- pop,
+ -- char,
+ -- }
+ -- }
+ -- else
+ -- new_c = {
+ -- width = width,
+ -- height = height,
+ -- depth = depth,
+ -- commands = {
+ -- push,
+ -- downcache[depth],
+ -- gray,
+ -- rulecache[height+depth][width],
+ -- black,
+ -- pop,
+ -- char,
+ -- }
+ -- }
+ -- end
+ local rule = rulecache[height][depth][width]
+ local new_c = {
+ width = width,
+ height = height,
+ depth = depth,
+ commands = gray and {
+ -- push,
+ gray,
+ rule,
+ black,
+ -- pop,
+ char,
+ } or {
+ rule,
+ char,
+ }
+ }
+ setmetatableindex(new_c,old_c)
+ characters[unicode] = new_c
+ additions[private] = old_c
+ end
+ for k, v in next, additions do
+ characters[k] = v
+ end
+ end
+end
+
+registerotffeature {
+ name = "boundingbox",
+ description = "show boundingbox",
+ manipulators = {
+ base = showboundingbox,
+ node = showboundingbox,
+ }
+}
+
+-- -- for notosans but not general
+--
+-- do
+--
+-- local v_local = interfaces and interfaces.variables and interfaces.variables["local"] or "local"
+--
+-- local utfbyte = utf.byte
+--
+-- local function initialize(tfmdata,key,value)
+-- local characters = tfmdata.characters
+-- local parameters = tfmdata.parameters
+-- local oldchar = 32
+-- local newchar = 32
+-- if value == "locl" or value == v_local then
+-- newchar = fonts.handlers.otf.getsubstitution(tfmdata,oldchar,"locl",true) or oldchar
+-- elseif value == true then
+-- -- use normal space
+-- elseif value then
+-- newchar = utfbyte(value)
+-- else
+-- return
+-- end
+-- local newchar = newchar and characters[newchar]
+-- local newspace = newchar and newchar.width
+-- if newspace > 0 then
+-- parameters.space = newspace
+-- parameters.space_stretch = newspace/2
+-- parameters.space_shrink = newspace/3
+-- parameters.extra_space = parameters.space_shrink
+-- end
+-- end
+--
+-- registerotffeature {
+-- name = 'space', -- true|false|locl|character
+-- description = 'space settings',
+-- manipulators = {
+-- base = initialize,
+-- node = initialize,
+-- }
+-- }
+--
+-- end
+
+do
+
+ local P, lpegpatterns, lpegmatch = lpeg.P, lpeg.patterns, lpeg.match
+
+ local amount, stretch, shrink, extra
+
+ local factor = lpegpatterns.unsigned
+ local space = lpegpatterns.space
+ local pattern = (
+ (factor / function(n) amount = tonumber(n) or amount end)
+ + (P("+") + P("plus" )) * space^0 * (factor / function(n) stretch = tonumber(n) or stretch end)
+ + (P("-") + P("minus")) * space^0 * (factor / function(n) shrink = tonumber(n) or shrink end)
+ + ( P("extra")) * space^0 * (factor / function(n) extra = tonumber(n) or extra end)
+ + space^1
+ )^1
+
+ local function initialize(tfmdata,key,value)
+ local characters = tfmdata.characters
+ local parameters = tfmdata.parameters
+ if type(value) == "string" then
+ local emwidth = parameters.quad
+ amount, stretch, shrink, extra = 0, 0, 0, false
+ lpegmatch(pattern,value)
+ if not extra then
+ if shrink ~= 0 then
+ extra = shrink
+ elseif stretch ~= 0 then
+ extra = stretch
+ else
+ extra = amount
+ end
+ end
+ parameters.space = amount * emwidth
+ parameters.space_stretch = stretch * emwidth
+ parameters.space_shrink = shrink * emwidth
+ parameters.extra_space = extra * emwidth
+ end
+ end
+
+ -- 1.1 + 1.2 - 1.3 minus 1.4 plus 1.1 extra 1.4 -- last one wins
+
+ registerotffeature {
+ name = "spacing",
+ description = "space settings",
+ manipulators = {
+ base = initialize,
+ node = initialize,
+ }
+ }
+
+end
+
+-- -- historic stuff, move from font-ota (handled differently, typo-rep)
+--
+-- local delete_node = nodes.delete
+-- local fontdata = fonts.hashes.identifiers
+--
+-- local nodecodes = nodes.nodecodes
+-- local glyph_code = nodecodes.glyph
+--
+-- local strippables = allocate()
+-- fonts.strippables = strippables
+--
+-- strippables.joiners = table.tohash {
+-- 0x200C, -- zwnj
+-- 0x200D, -- zwj
+-- }
+--
+-- strippables.all = table.tohash {
+-- 0x000AD, 0x017B4, 0x017B5, 0x0200B, 0x0200C, 0x0200D, 0x0200E, 0x0200F, 0x0202A, 0x0202B,
+-- 0x0202C, 0x0202D, 0x0202E, 0x02060, 0x02061, 0x02062, 0x02063, 0x0206A, 0x0206B, 0x0206C,
+-- 0x0206D, 0x0206E, 0x0206F, 0x0FEFF, 0x1D173, 0x1D174, 0x1D175, 0x1D176, 0x1D177, 0x1D178,
+-- 0x1D179, 0x1D17A, 0xE0001, 0xE0020, 0xE0021, 0xE0022, 0xE0023, 0xE0024, 0xE0025, 0xE0026,
+-- 0xE0027, 0xE0028, 0xE0029, 0xE002A, 0xE002B, 0xE002C, 0xE002D, 0xE002E, 0xE002F, 0xE0030,
+-- 0xE0031, 0xE0032, 0xE0033, 0xE0034, 0xE0035, 0xE0036, 0xE0037, 0xE0038, 0xE0039, 0xE003A,
+-- 0xE003B, 0xE003C, 0xE003D, 0xE003E, 0xE003F, 0xE0040, 0xE0041, 0xE0042, 0xE0043, 0xE0044,
+-- 0xE0045, 0xE0046, 0xE0047, 0xE0048, 0xE0049, 0xE004A, 0xE004B, 0xE004C, 0xE004D, 0xE004E,
+-- 0xE004F, 0xE0050, 0xE0051, 0xE0052, 0xE0053, 0xE0054, 0xE0055, 0xE0056, 0xE0057, 0xE0058,
+-- 0xE0059, 0xE005A, 0xE005B, 0xE005C, 0xE005D, 0xE005E, 0xE005F, 0xE0060, 0xE0061, 0xE0062,
+-- 0xE0063, 0xE0064, 0xE0065, 0xE0066, 0xE0067, 0xE0068, 0xE0069, 0xE006A, 0xE006B, 0xE006C,
+-- 0xE006D, 0xE006E, 0xE006F, 0xE0070, 0xE0071, 0xE0072, 0xE0073, 0xE0074, 0xE0075, 0xE0076,
+-- 0xE0077, 0xE0078, 0xE0079, 0xE007A, 0xE007B, 0xE007C, 0xE007D, 0xE007E, 0xE007F,
+-- }
+--
+-- strippables[true] = strippables.joiners
+--
+-- local function processformatters(head,font)
+-- local subset = fontdata[font].shared.features.formatters
+-- local vector = subset and strippables[subset]
+-- if vector then
+-- local current, done = head, false
+-- while current do
+-- if current.id == glyph_code and current.subtype<256 and current.font == font then
+-- local char = current.char
+-- if vector[char] then
+-- head, current = delete_node(head,current)
+-- done = true
+-- else
+-- current = current.next
+-- end
+-- else
+-- current = current.next
+-- end
+-- end
+-- return head, done
+-- else
+-- return head, false
+-- end
+-- end
+--
+-- registerotffeature {
+-- name = "formatters",
+-- description = "hide formatting characters",
+-- methods = {
+-- base = processformatters,
+-- node = processformatters,
+-- }
+-- }
+
+-- not to be used! experimental code, only needed when testing
+
+local is_letter = characters.is_letter
+local always = true
+
+local function collapseitalics(tfmdata,key,value)
+ local threshold = value == true and 100 or tonumber(value)
+ if threshold and threshold > 0 then
+ if threshold > 100 then
+ threshold = 100
+ end
+ for unicode, data in next, tfmdata.characters do
+ if always or is_letter[unicode] or is_letter[data.unicode] then
+ local italic = data.italic
+ if italic and italic ~= 0 then
+ local width = data.width
+ if width and width ~= 0 then
+ local delta = threshold * italic / 100
+ data.width = width + delta
+ data.italic = italic - delta
+ end
+ end
+ end
+ end
+ end
+end
+
+local dimensions_specification = {
+ name = "collapseitalics",
+ description = "collapse italics",
+ manipulators = {
+ base = collapseitalics,
+ node = collapseitalics,
+ }
+}
+
+registerotffeature(dimensions_specification)
+registerafmfeature(dimensions_specification)
+
+-- a handy helper (might change or be moved to another namespace)
+
+local nodepool = nodes.pool
+local new_glyph = nodepool.glyph
+
+local helpers = fonts.helpers
+local currentfont = font.current
+
+local currentprivate = 0xE000
+local maximumprivate = 0xEFFF
+
+-- if we run out of space we can think of another range but by sharing we can
+-- use these privates for mechanisms like alignments-on-character and such
+
+local sharedprivates = setmetatableindex(function(t,k)
+ v = currentprivate
+ if currentprivate < maximumprivate then
+ currentprivate = currentprivate + 1
+ else
+ -- reuse last slot, todo: warning
+ end
+ t[k] = v
+ return v
+end)
+
+function helpers.addprivate(tfmdata,name,characterdata)
+ local properties = tfmdata.properties
+ local characters = tfmdata.characters
+ local privates = properties.privates
+ if not privates then
+ privates = { }
+ properties.privates = privates
+ end
+ if not name then
+ name = formatters["anonymous_private_0x%05X"](currentprivate)
+ end
+ local usedprivate = sharedprivates[name]
+ privates[name] = usedprivate
+ characters[usedprivate] = characterdata
+ return usedprivate
+end
+
+local function getprivateslot(id,name)
+ if not name then
+ name = id
+ id = currentfont()
+ end
+ local properties = fontproperties[id]
+ local privates = properties and properties.privates
+ return privates and privates[name]
+end
+
+local function getprivatenode(tfmdata,name)
+ if type(tfmdata) == "number" then
+ tfmdata = fontdata[tfmdata]
+ end
+ local properties = tfmdata.properties
+ local font = properties.id
+ local slot = getprivateslot(font,name)
+ if slot then
+ -- todo: set current attribibutes
+ local char = tfmdata.characters[slot]
+ local tonode = char.tonode
+ if tonode then
+ return tonode(font,char)
+ else
+ return new_glyph(font,slot)
+ end
+ end
+end
+
+local function getprivatecharornode(tfmdata,name)
+ if type(tfmdata) == "number" then
+ tfmdata = fontdata[tfmdata]
+ end
+ local properties = tfmdata.properties
+ local font = properties.id
+ local slot = getprivateslot(font,name)
+ if slot then
+ -- todo: set current attributes
+ local char = tfmdata.characters[slot]
+ local tonode = char.tonode
+ if tonode then
+ return "node", tonode(tfmdata,char)
+ else
+ return "char", slot
+ end
+ end
+end
+
+helpers.getprivateslot = getprivateslot
+helpers.getprivatenode = getprivatenode
+helpers.getprivatecharornode = getprivatecharornode
+
+function helpers.getprivates(tfmdata)
+ if type(tfmdata) == "number" then
+ tfmdata = fontdata[tfmdata]
+ end
+ local properties = tfmdata.properties
+ return properties and properties.privates
+end
+
+function helpers.hasprivate(tfmdata,name)
+ if type(tfmdata) == "number" then
+ tfmdata = fontdata[tfmdata]
+ end
+ local properties = tfmdata.properties
+ local privates = properties and properties.privates
+ return privates and privates[name] or false
+end
+
+-- relatively new:
+
+do
+
+ local extraprivates = { }
+
+ function fonts.helpers.addextraprivate(name,f)
+ extraprivates[#extraprivates+1] = { name, f }
+ end
+
+ local function addextraprivates(tfmdata)
+ for i=1,#extraprivates do
+ local e = extraprivates[i]
+ local c = e[2](tfmdata)
+ if c then
+ fonts.helpers.addprivate(tfmdata, e[1], c)
+ end
+ end
+ end
+
+ constructors.newfeatures.otf.register {
+ name = "extraprivates",
+ description = "extra privates",
+ default = true,
+ manipulators = {
+ base = addextraprivates,
+ node = addextraprivates,
+ }
+ }
+
+end
+
+implement {
+ name = "getprivatechar",
+ arguments = "string",
+ actions = function(name)
+ local p = getprivateslot(name)
+ if p then
+ context(utfchar(p))
+ end
+ end
+}
+
+implement {
+ name = "getprivatemathchar",
+ arguments = "string",
+ actions = function(name)
+ local p = getprivateslot(family_font(0),name)
+ if p then
+ context(utfchar(p))
+ end
+ end
+}
+
+implement {
+ name = "getprivateslot",
+ arguments = "string",
+ actions = function(name)
+ local p = getprivateslot(name)
+ if p then
+ context(p)
+ end
+ end
+}
+
+-- requested for latex but not supported unless really needed in context:
+--
+-- registerotffeature {
+-- name = "ignoremathconstants",
+-- description = "ignore math constants table",
+-- initializers = {
+-- base = function(tfmdata,value)
+-- if value then
+-- tfmdata.mathparameters = nil
+-- end
+-- end
+-- }
+-- }
+
+-- tfmdata.properties.mathnolimitsmode = tonumber(value) or 0
+
+do
+
+ local splitter = lpeg.splitat(",",tonumber)
+ local lpegmatch = lpeg.match
+
+ local function initialize(tfmdata,value)
+ local mathparameters = tfmdata.mathparameters
+ if mathparameters then
+ local sup, sub
+ if type(value) == "string" then
+ sup, sub = lpegmatch(splitter,value)
+ if not sup then
+ sub, sup = 0, 0
+ elseif not sub then
+ sub, sup = sup, 0
+ end
+ elseif type(value) == "number" then
+ sup, sub = 0, value
+ end
+ mathparameters.NoLimitSupFactor = sup
+ mathparameters.NoLimitSubFactor = sub
+ end
+ end
+
+ registerotffeature {
+ name = "mathnolimitsmode",
+ description = "influence nolimits placement",
+ initializers = {
+ base = initialize,
+ node = initialize,
+ }
+ }
+
+end
+
+do
+
+ local function initialize(tfmdata,value)
+ local properties = tfmdata.properties
+ if properties then
+ properties.identity = value == "vertical" and "vertical" or "horizontal"
+ end
+ end
+
+ registerotffeature {
+ name = "identity",
+ description = "set font identity",
+ initializers = {
+ base = initialize,
+ node = initialize,
+ }
+ }
+
+ local function initialize(tfmdata,value)
+ local properties = tfmdata.properties
+ if properties then
+ properties.writingmode = value == "vertical" and "vertical" or "horizontal"
+ end
+ end
+
+ registerotffeature {
+ name = "writingmode",
+ description = "set font direction",
+ initializers = {
+ base = initialize,
+ node = initialize,
+ }
+ }
+
+end
+
+do -- another hack for a crappy font
+
+ local function additalictowidth(tfmdata,key,value)
+ local characters = tfmdata.characters
+ local additions = { }
+ for unicode, old_c in next, characters do
+ -- maybe check for math
+ local oldwidth = old_c.width
+ local olditalic = old_c.italic
+ if olditalic and olditalic ~= 0 then
+ local private = getprivate(tfmdata)
+ local new_c = {
+ width = oldwidth + olditalic,
+ height = old_c.height,
+ depth = old_c.depth,
+ commands = {
+ -- { "slot", 1, private },
+ -- { "slot", 0, private },
+ { "char", private },
+ { "right", olditalic },
+ },
+ }
+ setmetatableindex(new_c,old_c)
+ characters[unicode] = new_c
+ additions[private] = old_c
+ end
+ end
+ for k, v in next, additions do
+ characters[k] = v
+ end
+ end
+
+ registerotffeature {
+ name = "italicwidths",
+ description = "add italic to width",
+ manipulators = {
+ base = additalictowidth,
+ -- node = additalictowidth, -- only makes sense for math
+ }
+ }
+
+end
+
+do
+
+ local tounicode = fonts.mappings.tounicode
+
+ local function check(tfmdata,key,value)
+ if value == "ligatures" then
+ local private = fonts.constructors and fonts.constructors.privateoffset or 0xF0000
+ local collected = fonts.handlers.otf.readers.getcomponents(tfmdata.shared.rawdata)
+ if collected and next(collected)then
+ for unicode, char in next, tfmdata.characters do
+ if true then -- if unicode >= private or (unicode >= 0xE000 and unicode <= 0xF8FF) then
+ local u = collected[unicode]
+ if u then
+ local n = #u
+ for i=1,n do
+ if u[i] > private then
+ n = 0
+ break
+ end
+ end
+ if n > 0 then
+ if n == 1 then
+ u = u[1]
+ end
+ char.unicode = u
+ char.tounicode = tounicode(u)
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+
+ -- forceunicodes=ligatures : aggressive lig resolving (e.g. for emoji)
+ --
+ -- kind of like: \enabletrackers[fonts.mapping.forceligatures]
+
+ registerotffeature {
+ name = "forceunicodes",
+ description = "forceunicodes",
+ manipulators = {
+ base = check,
+ node = check,
+ }
+ }
+
+end
+
+do
+
+ -- This is a rather special test-only feature that I added for the sake of testing
+ -- Idris's husayni. We wanted to know if uniscribe obeys the order of lookups in a
+ -- font, in spite of what the description of handling arabic suggests. And indeed,
+ -- mixed-in lookups of other features (like all these ss* in husayni) are handled
+ -- the same in context as in uniscribe. If one sets reorderlookups=arab then we sort
+ -- according to the "assumed" order so e.g. the ss* move to after the standard
+ -- features. The observed difference in rendering is an indication that uniscribe is
+ -- quite faithful to the font (while e.g. tests with the hb plugin demonstrate some
+ -- interference, apart from some hard coded init etc expectations). Anyway, it means
+ -- that we're okay with the (generic) node processor. A pitfall is that in context
+ -- we can actually control more, so we can trigger an analyze pass with e.g.
+ -- dflt/dflt while the libraries depend on the script settings for that. Uniscribe
+ -- probably also parses the string and when seeing arabic will follow a different
+ -- code path, although it seems to treat all features equal.
+
+ local trace_reorder = trackers.register("fonts.reorderlookups",function(v) trace_reorder = v end)
+ local report_reorder = logs.reporter("fonts","reorder")
+
+ local vectors = { }
+
+ vectors.arab = {
+ gsub = {
+ ccmp = 1,
+ isol = 2,
+ fina = 3,
+ medi = 4,
+ init = 5,
+ rlig = 6,
+ rclt = 7,
+ calt = 8,
+ liga = 9,
+ dlig = 10,
+ cswh = 11,
+ mset = 12,
+ },
+ gpos = {
+ curs = 1,
+ kern = 2,
+ mark = 3,
+ mkmk = 4,
+ },
+ }
+
+ function otf.reorderlookups(tfmdata,vector)
+ local order = vectors[vector]
+ if not order then
+ return
+ end
+ local oldsequences = tfmdata.resources.sequences
+ if oldsequences then
+ local sequences = { }
+ for i=1,#oldsequences do
+ sequences[i] = oldsequences[i]
+ end
+ for i=1,#sequences do
+ local s = sequences[i]
+ local features = s.features
+ local kind = s.type
+ local index = s.index
+ if features then
+ local when
+ local what
+ for feature in sortedhash(features) do
+ if not what then
+ what = find(kind,"^gsub") and "gsub" or "gpos"
+ end
+ local newwhen = order[what][feature]
+ if not newwhen then
+ -- skip
+ elseif not when then
+ when = newwhen
+ elseif newwhen < when then
+ when = newwhen
+ end
+ end
+ s.ondex = s.index
+ s.index = i
+ s.what = what == "gsub" and 1 or 2
+ s.when = when or 99
+ else
+ s.ondex = s.index
+ s.index = i
+ s.what = 1
+ s.when = 99
+ end
+ end
+ sort(sequences,function(a,b)
+ local what_a = a.what
+ local what_b = b.what
+ if what_a ~= what_b then
+ return a.index < b.index
+ end
+ local when_a = a.when
+ local when_b = b.when
+ if when_a == when_b then
+ return a.index < b.index
+ else
+ return when_a < when_b
+ end
+ end)
+ local swapped = 0
+ for i=1,#sequences do
+ local sequence = sequences[i]
+ local features = sequence.features
+ if features then
+ local index = sequence.index
+ if index ~= i then
+ swapped = swapped + 1
+ end
+ if trace_reorder then
+ if swapped == 1 then
+ report_reorder()
+ report_reorder("start swapping lookups in font %!font:name!",tfmdata)
+ report_reorder()
+ report_reorder("gsub order: % t",table.swapped(order.gsub))
+ report_reorder("gpos order: % t",table.swapped(order.gpos))
+ report_reorder()
+ end
+ report_reorder("%03i : lookup %03i, type %s, sorted %2i, moved %s, % t",
+ i,index,sequence.what == 1 and "gsub" or "gpos",sequence.when or 99,
+ (index > i and "-") or (index < i and "+") or "=",sortedkeys(features))
+ end
+ end
+ sequence.what = nil
+ sequence.when = nil
+ sequence.index = sequence.ondex
+ end
+ if swapped > 0 then
+ if trace_reorder then
+ report_reorder()
+ report_reorder("stop swapping lookups, %i lookups swapped",swapped)
+ report_reorder()
+ end
+-- tfmdata.resources.sequences = sequences
+ tfmdata.shared.reorderedsequences = sequences
+ end
+ end
+ end
+
+ -- maybe delay till ra is filled
+
+ local function reorderlookups(tfmdata,key,value)
+ if value then
+ otf.reorderlookups(tfmdata,value)
+ end
+ end
+
+ registerotffeature {
+ name = "reorderlookups",
+ description = "reorder lookups",
+ manipulators = {
+ base = reorderlookups,
+ node = reorderlookups,
+ }
+ }
+
+end
+
+-- maybe useful
+
+local function initializeoutline(tfmdata,value)
+ value = tonumber(value)
+ if not value then
+ value = 0
+ else
+ value = tonumber(value) or 0
+ end
+ if value then
+ value = value * 1000
+ end
+ tfmdata.parameters.mode = 1
+ tfmdata.parameters.width = value
+end
+
+local outline_specification = {
+ name = "outline",
+ description = "outline glyphs",
+ initializers = {
+ base = initializeoutline,
+ node = initializeoutline,
+ }
+}
+
+registerotffeature(outline_specification)
+registerafmfeature(outline_specification)
+
+-- definitely ugly
+
+local report_effect = logs.reporter("fonts","effect")
+local trace_effect = false
+
+trackers.register("fonts.effect", function(v) trace_effect = v end)
+
+local effects = {
+ inner = 0,
+ normal = 0,
+ outer = 1,
+ outline = 1,
+ both = 2,
+ hidden = 3,
+}
+
+local function initializeeffect(tfmdata,value)
+ local spec
+ if type(value) == "number" then
+ spec = { width = value }
+ else
+ spec = settings_to_hash(value)
+ end
+ local effect = spec.effect or "both"
+ local width = tonumber(spec.width) or 0
+ local mode = effects[effect]
+ if not mode then
+ report_effect("invalid effect %a",effect)
+ elseif width == 0 and mode == 0 then
+ report_effect("invalid width %a for effect %a",width,effect)
+ else
+ local parameters = tfmdata.parameters
+ local properties = tfmdata.properties
+ parameters.mode = mode
+ parameters.width = width * 1000
+ local factor = tonumber(spec.factor) or 0
+ local hfactor = tonumber(spec.vfactor) or factor
+ local vfactor = tonumber(spec.hfactor) or factor
+ local delta = tonumber(spec.delta) or 1
+ local wdelta = tonumber(spec.wdelta) or delta
+ local hdelta = tonumber(spec.hdelta) or delta
+ local ddelta = tonumber(spec.ddelta) or hdelta
+ properties.effect = {
+ effect = effect,
+ width = width,
+ factor = factor,
+ hfactor = hfactor,
+ vfactor = vfactor,
+ wdelta = wdelta,
+ hdelta = hdelta,
+ ddelta = ddelta,
+ }
+ end
+end
+
+local function manipulateeffect(tfmdata)
+ local effect = tfmdata.properties.effect
+ if effect then
+ local characters = tfmdata.characters
+ local parameters = tfmdata.parameters
+ local multiplier = effect.width * 100
+ local wdelta = effect.wdelta * parameters.hfactor * multiplier
+ local hdelta = effect.hdelta * parameters.vfactor * multiplier
+ local ddelta = effect.ddelta * parameters.vfactor * multiplier
+ local hshift = wdelta / 2
+ local factor = (1 + effect.factor) * parameters.factor
+ local hfactor = (1 + effect.hfactor) * parameters.hfactor
+ local vfactor = (1 + effect.vfactor) * parameters.vfactor
+ for unicode, old_c in next, characters do
+ local oldwidth = old_c.width
+ local oldheight = old_c.height
+ local olddepth = old_c.depth
+ if oldwidth and oldwidth > 0 then
+ old_c.width = oldwidth + wdelta
+ old_c.commands = {
+ { "right", hshift },
+ { "char", unicode },
+ }
+ end
+ if oldheight and oldheight > 0 then
+ old_c.height = oldheight + hdelta
+ end
+ if olddepth and olddepth > 0 then
+ old_c.depth = olddepth + ddelta
+ end
+ end
+ parameters.factor = factor
+ parameters.hfactor = hfactor
+ parameters.vfactor = vfactor
+ if trace_effect then
+ report_effect("applying effect")
+ report_effect(" effect : %s", effect.effect)
+ report_effect(" width : %s => %s", effect.width, multiplier)
+ report_effect(" factor : %s => %s", effect.factor, factor )
+ report_effect(" hfactor : %s => %s", effect.hfactor,hfactor)
+ report_effect(" vfactor : %s => %s", effect.vfactor,vfactor)
+ report_effect(" wdelta : %s => %s", effect.wdelta, wdelta)
+ report_effect(" hdelta : %s => %s", effect.hdelta, hdelta)
+ report_effect(" ddelta : %s => %s", effect.ddelta, ddelta)
+ end
+ end
+end
+
+local effect_specification = {
+ name = "effect",
+ description = "apply effects to glyphs",
+ initializers = {
+ base = initializeeffect,
+ node = initializeeffect,
+ },
+ manipulators = {
+ base = manipulateeffect,
+ node = manipulateeffect,
+ },
+}
+
+registerotffeature(effect_specification)
+registerafmfeature(effect_specification)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-fbk.lua b/Master/texmf-dist/tex/context/base/mkiv/font-fbk.lua
index 122e43ddc71..79ebc3f2557 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-fbk.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-fbk.lua
@@ -14,38 +14,38 @@ local next = next
<p>This is very experimental code!</p>
--ldx]]--
-local trace_visualize = false trackers.register("fonts.composing.visualize", function(v) trace_visualize = v end)
-local trace_define = false trackers.register("fonts.composing.define", function(v) trace_define = v end)
+local trace_combining_visualize = false trackers.register("fonts.composing.visualize", function(v) trace_combining_visualize = v end)
+local trace_combining_define = false trackers.register("fonts.composing.define", function(v) trace_combining_define = v end)
-local report = logs.reporter("fonts","combining")
+trackers.register("fonts.combining", "fonts.composing.define") -- for old times sake (and manuals)
+trackers.register("fonts.combining.all", "fonts.composing.*") -- for old times sake (and manuals)
+
+local report_combining = logs.reporter("fonts","combining")
+
+local force_combining = false -- just for demo purposes (see mk)
local allocate = utilities.storage.allocate
local fonts = fonts
local handlers = fonts.handlers
local constructors = fonts.constructors
-local helpers = fonts.helpers
local otf = handlers.otf
local afm = handlers.afm
local registerotffeature = otf.features.register
local registerafmfeature = afm.features.register
-local addotffeature = otf.addfeature
-
local unicodecharacters = characters.data
local unicodefallbacks = characters.fallbacks
-local vfcommands = helpers.commands
-local charcommand = vfcommands.char
-local rightcommand = vfcommands.right
-local downcommand = vfcommands.down
-local upcommand = vfcommands.up
-local push = vfcommands.push
-local pop = vfcommands.pop
+local vf = handlers.vf
+local commands = vf.combiner.commands
+local push = vf.predefined.push
+local pop = vf.predefined.pop
-local force_combining = false -- just for demo purposes (see mk)
-local fraction = 0.15 -- 30 units for lucida
+local force_composed = false
+local cache = { } -- we could make these weak
+local fraction = 0.15 -- 30 units for lucida
-- todo: we also need to update the feature hashes ... i'll do that when i'm in the mood
-- and/or when i need it
@@ -65,15 +65,15 @@ local function composecharacters(tfmdata)
local italicfactor = parameters.italicfactor or 0
local vfspecials = backends.tables.vfspecials --brr
local red, green, blue, black
- if trace_visualize then
+ if trace_combining_visualize then
red = vfspecials.startcolor("red")
green = vfspecials.startcolor("green")
blue = vfspecials.startcolor("blue")
black = vfspecials.stopcolor
end
local compose = fonts.goodies.getcompositions(tfmdata)
- if compose and trace_visualize then
- report("using compose information from goodies file")
+ if compose and trace_combining_visualize then
+ report_combining("using compose information from goodies file")
end
local done = false
for i, c in next, unicodecharacters do -- loop over all characters ... not that efficient but a specials hash takes memory
@@ -105,25 +105,31 @@ local function composecharacters(tfmdata)
acc = unicodefallbacks[acc]
charsacc = acc and characters[acc]
end
- local chr_t = charcommand[chr]
+ local chr_t = cache[chr]
+ if not chr_t then
+ -- chr_t = { "slot", 1, chr }
+ -- chr_t = { "slot", 0, chr }
+ chr_t = { "char", chr }
+ cache[chr] = chr_t
+ end
if charsacc then
- if trace_define then
- report("composed %C, base %C, accent %C",i,chr,acc)
+ if trace_combining_define then
+ report_combining("composed %C, base %C, accent %C",i,chr,acc)
+ end
+ local acc_t = cache[acc]
+ if not acc_t then
+ -- acc_t = { "slot", 1, acc }
+ -- acc_t = { "slot", 0, acc }
+ acc_t = { "char", acc }
+ cache[acc] = acc_t
end
- local acc_t = charcommand[acc]
local cb = descriptions[chr].boundingbox
local ab = descriptions[acc].boundingbox
-- todo: adapt height
if cb and ab then
- local c_llx = scale*cb[1]
- local c_lly = scale*cb[2]
- local c_urx = scale*cb[3]
- local c_ury = scale*cb[4]
- local a_llx = scale*ab[1]
- local a_lly = scale*ab[2]
- local a_urx = scale*ab[3]
- local a_ury = scale*ab[4]
- local done = false
+ local c_llx, c_lly, c_urx, c_ury = scale*cb[1], scale*cb[2], scale*cb[3], scale*cb[4]
+ local a_llx, a_lly, a_urx, a_ury = scale*ab[1], scale*ab[2], scale*ab[3], scale*ab[4]
+ local done = false
if compose then
local i_compose = compose[i]
local i_anchored = i_compose and i_compose.anchored
@@ -142,30 +148,26 @@ local function composecharacters(tfmdata)
local ay = a_anchor.y or 0
local dx = cx - ax
local dy = cy - ay
- if trace_define then
- report("building %C from %C and %C",i,chr,acc)
- report(" boundingbox:")
- report(" chr: %3i %3i %3i %3i",unpack(cb))
- report(" acc: %3i %3i %3i %3i",unpack(ab))
- report(" anchors:")
- report(" chr: %3i %3i",cx,cy)
- report(" acc: %3i %3i",ax,ay)
- report(" delta:")
- report(" %s: %3i %3i",i_anchored,dx,dy)
+ if trace_combining_define then
+ report_combining("building %C from %C and %C",i,chr,acc)
+ report_combining(" boundingbox:")
+ report_combining(" chr: %3i %3i %3i %3i",unpack(cb))
+ report_combining(" acc: %3i %3i %3i %3i",unpack(ab))
+ report_combining(" anchors:")
+ report_combining(" chr: %3i %3i",cx,cy)
+ report_combining(" acc: %3i %3i",ax,ay)
+ report_combining(" delta:")
+ report_combining(" %s: %3i %3i",i_anchored,dx,dy)
end
- local right = rightcommand[scale*dx]
- local down = upcommand[scale*dy]
- if trace_visualize then
- t.commands = {
- push, right, down,
- green, acc_t, black,
- pop, chr_t,
- }
+ if trace_combining_visualize then
+ t.commands = { push, {"right", scale*dx}, {"down",-scale*dy}, green, acc_t, black, pop, chr_t }
+ -- t.commands = {
+ -- push, {"right", scale*cx}, {"down", -scale*cy}, red, {"rule",10000,10000,10000}, pop,
+ -- push, {"right", scale*ax}, {"down", -scale*ay}, blue, {"rule",10000,10000,10000}, pop,
+ -- push, {"right", scale*dx}, {"down", -scale*dy}, green, acc_t, black, pop, chr_t
+ -- }
else
- t.commands = {
- push, right, down,
- acc_t, pop, chr_t,
- }
+ t.commands = { push, {"right", scale*dx}, {"down",-scale*dy}, acc_t, pop, chr_t }
end
done = true
end
@@ -177,17 +179,10 @@ local function composecharacters(tfmdata)
local dx = (c_urx - a_urx - a_llx + c_llx)/2
local dd = (c_urx - c_llx)*italicfactor
if a_ury < 0 then
- local right = rightcommand[dx-dd]
- if trace_visualize then
- t.commands = {
- push, right, red, acc_t,
- black, pop, chr_t,
- }
+ if trace_combining_visualize then
+ t.commands = { push, {"right", dx-dd}, red, acc_t, black, pop, chr_t }
else
- t.commands = {
- push, right, acc_t, pop,
- chr_t,
- }
+ t.commands = { push, {"right", dx-dd}, acc_t, pop, chr_t }
end
elseif c_ury > a_lly then -- messy test
local dy
@@ -219,46 +214,27 @@ local function composecharacters(tfmdata)
else
dy = - deltaxheight + extraxheight
end
- local right = rightcommand[dx+dd]
- local down = downcommand[dy]
- if trace_visualize then
- t.commands = {
- push, right, down, green,
- acc_t, black, pop, chr_t,
- }
+ if trace_combining_visualize then
+ t.commands = { push, { "right", dx+dd }, { "down", dy }, green, acc_t, black, pop, chr_t }
else
- t.commands = {
- push, right, down, acc_t,
- pop, chr_t,
- }
+ t.commands = { push, { "right", dx+dd }, { "down", dy }, acc_t, pop, chr_t }
end
else
- local right = rightcommand[dx+dd]
- if trace_visualize then
- t.commands = {
- push, right, blue, acc_t,
- black, pop, chr_t,
- }
+ if trace_combining_visualize then
+ t.commands = { push, { "right", dx+dd }, blue, acc_t, black, pop, chr_t }
else
- t.commands = {
- push, right, acc_t, pop,
- chr_t,
- }
+ t.commands = { push, { "right", dx+dd }, acc_t, pop, chr_t }
end
end
end
else
- t.commands = {
- chr_t, -- else index mess
- }
+ t.commands = { chr_t } -- else index mess
end
else
- if trace_define then
- report("%C becomes simplified %C",i,chr)
+ if trace_combining_define then
+ report_combining("%C becomes simplified %C",i,chr)
end
- t.commands = {
- chr_t, -- else index mess
- }
+ t.commands = { chr_t } -- else index mess
end
done = true
characters[i] = t
@@ -278,7 +254,7 @@ local function composecharacters(tfmdata)
end
end
-local specification = {
+local compose_specification = {
name = "compose",
description = "additional composed characters",
manipulators = {
@@ -287,71 +263,75 @@ local specification = {
}
}
-registerotffeature(specification)
-registerafmfeature(specification)
+registerotffeature(compose_specification)
+registerafmfeature(compose_specification)
-addotffeature {
- name = "char-ligatures",
- type = "ligature",
- data = characters.splits.char,
- order = { "char-ligatures" },
- prepend = true,
-}
+vf.helpers.composecharacters = composecharacters
-addotffeature {
- name = "compat-ligatures",
- type = "ligature",
- data = characters.splits.compat,
- order = { "compat-ligatures" },
- prepend = true,
-}
+-- This installs the builder into the regular virtual font builder,
+-- which only makes sense as demo.
-registerotffeature {
- name = 'char-ligatures',
- description = 'unicode char specials to ligatures',
-}
+commands["compose.trace.enable"] = function()
+ trace_combining_visualize = true
+end
-registerotffeature {
- name = 'compat-ligatures',
- description = 'unicode compat specials to ligatures',
-}
+commands["compose.trace.disable"] = function()
+ trace_combining_visualize = false
+end
-do
+commands["compose.force.enable"] = function()
+ force_combining = true
+end
- -- This installs the builder into the regular virtual font builder,
- -- which only makes sense as demo.
+commands["compose.force.disable"] = function()
+ force_combining = false
+end
- local vf = handlers.vf
- local commands = vf.combiner.commands
+commands["compose.trace.set"] = function(g,v)
+ if v[2] == nil then
+ trace_combining_visualize = true
+ else
+ trace_combining_visualize = v[2]
+ end
+end
- vf.helpers.composecharacters = composecharacters
+commands["compose.apply"] = function(g,v)
+ composecharacters(g)
+end
- commands["compose.trace.enable"] = function()
- trace_visualize = true
- end
+-- vf builder
- commands["compose.trace.disable"] = function()
- trace_visualize = false
- end
+-- { "pdf", "origin", "q " .. s .. " 0 0 " .. s .. " 0 0 cm" },
+-- { "pdf", "origin", "q 1 0 0 1 " .. -w .. " " .. -h .. " cm" },
+-- { "pdf", "origin", "/Fm\XX\space Do" },
+-- { "pdf", "origin", "Q" },
+-- { "pdf", "origin", "Q" },
- commands["compose.force.enable"] = function()
- force_combining = true
- end
+-- new and experimental
- commands["compose.force.disable"] = function()
- force_combining = false
- end
+local everywhere = { ["*"] = { ["*"] = true } } -- or: { ["*"] = { "*" } }
+local noflags = { }
- commands["compose.trace.set"] = function(g,v)
- if v[2] == nil then
- trace_visualize = true
- else
- trace_visualize = v[2]
- end
- end
+local char_specification = {
+ type = "ligature",
+ features = everywhere,
+ data = characters.splits.char,
+ order = { "char-ligatures" },
+ flags = noflags,
+ prepend = true,
+}
- commands["compose.apply"] = function(g,v)
- composecharacters(g)
- end
+local compat_specification = {
+ type = "ligature",
+ features = everywhere,
+ data = characters.splits.compat,
+ order = { "compat-ligatures" },
+ flags = noflags,
+ prepend = true,
+}
-end
+otf.addfeature("char-ligatures", char_specification) -- xlig (extra)
+otf.addfeature("compat-ligatures",compat_specification) -- plig (pseudo)
+
+registerotffeature { name = 'char-ligatures', description = 'unicode char specials to ligatures' }
+registerotffeature { name = 'compat-ligatures', description = 'unicode compat specials to ligatures' }
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-fea.mkvi b/Master/texmf-dist/tex/context/base/mkiv/font-fea.mkvi
index 4a5356090e9..5f65543ab9e 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-fea.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-fea.mkvi
@@ -368,19 +368,11 @@
% \doifelsecurrentfonthasfeature{crap}{YES}{NO}
% \doifelsecurrentfonthasfeature{kern}{YES}{NO}
-\def\doifelsecurrentfonthasfeature#feature% expandable
+\def\doifelsecurrentfonthasfeature#feature%
{\clf_doifelsecurrentfonthasfeature{#feature}}
\let\doifcurrentfonthasfeatureelse\doifelsecurrentfonthasfeature
-\def\doifelsefontfeature#feature% expandable
- {\clf_doifelsefontfeature{#feature}}
-
-\let\doiffontfeatureelse\doifelsefontfeature
-
-\def\doifunknownfontfeature#feature% expandable
- {\clf_doifunknownfontfeature{#feature}}
-
% new:
\clf_registerlanguagefeatures
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-fil.mkvi b/Master/texmf-dist/tex/context/base/mkiv/font-fil.mkvi
index 16ce57f8ad9..01fa4a3380e 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-fil.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-fil.mkvi
@@ -42,17 +42,19 @@
%
% \setupbodyfont[palatino]
+\let\fontclass\empty
+
\unexpanded\def\startfontclass
{\dosingleempty\font_basics_start_font_class}
\def\font_basics_start_font_class[#class]%
- {\push_macro_fontclass
+ {\pushmacro\fontclass
\doifelse{#class}\v!each
{\let\fontclass\empty}
{\doifsomething{#class}{\def\fontclass{#class}}}}
\unexpanded\def\stopfontclass
- {\pop_macro_fontclass}
+ {\popmacro\fontclass}
\def\classfont#class#name{#class#name} % \definefont[whatever][\classfont{xx}{yy} at 10pt]
@@ -107,14 +109,11 @@
\let\p_designsize\undefined
\expandafter\font_basics_get_font_parameter_yes#specification,]=,}
-% todo: check if we can use \edef but then we need to protect \mathsizesuffix .. in fact that
-% can be default then: \let\mathsizesuffix\relax .. i need to play with it first
-
\def\font_basics_get_font_parameter_nop#key=#value,%
{\if]#key%
\font_basics_get_font_parameter_nop_finish
\else
- \expandafter\normaldef\csname p_#key\endcsname{#value}% % no edef as we need to keep \mathsizesuffix
+ \expandafter\normaldef\csname p_#key\endcsname{#value}%
\expandafter\font_basics_get_font_parameter_nop
\fi}
@@ -122,13 +121,13 @@
{\if]#key%
\font_basics_get_font_parameter_yes_finish
\else
- \expandafter\normaldef\csname p_#key\endcsname{#value}% % no edef as we need to keep \mathsizesuffix
+ \expandafter\normaldef\csname p_#key\endcsname{#value}%
\expandafter\font_basics_get_font_parameter_yes
\fi}
% helpers, some day these will be toks and counts
-% \def\fntsetdefname {\glet\somefontname\defaultfontfile}
+% \def\fntsetdefname {\global\let\somefontname\defaultfontfile}
% \def\fntsetsomename{\gdef\somefontname} % takes argument
% \def\fntsetnopsize {\let\somefontsize\empty}
% \def\fntsetsomesize{\def\somefontsize} % takes argument
@@ -146,10 +145,10 @@
\expandafter\let\csname\??fontfile\m_font_name\s!designsize\endcsname\undefined}
\def\font_basics_define_font_synonym_yes_nil
- {\expandafter\glet\csname\??fontfile\fontclass\m_font_name\s!features \endcsname\undefined
- \expandafter\glet\csname\??fontfile\fontclass\m_font_name\s!fallbacks \endcsname\undefined
- \expandafter\glet\csname\??fontfile\fontclass\m_font_name\s!goodies \endcsname\undefined
- \expandafter\glet\csname\??fontfile\fontclass\m_font_name\s!designsize\endcsname\undefined}
+ {\global\expandafter\let\csname\??fontfile\fontclass\m_font_name\s!features \endcsname\undefined
+ \global\expandafter\let\csname\??fontfile\fontclass\m_font_name\s!fallbacks \endcsname\undefined
+ \global\expandafter\let\csname\??fontfile\fontclass\m_font_name\s!goodies \endcsname\undefined
+ \global\expandafter\let\csname\??fontfile\fontclass\m_font_name\s!designsize\endcsname\undefined}
\def\font_basics_get_font_parameter_nop_finish
{\expandafter\let\csname\??fontfile\m_font_name\s!features \endcsname\p_features
@@ -158,10 +157,10 @@
\expandafter\let\csname\??fontfile\m_font_name\s!designsize\endcsname\p_designsize}
\def\font_basics_get_font_parameter_yes_finish
- {\expandafter\glet\csname\??fontfile\fontclass\m_font_name\s!features \endcsname\p_features
- \expandafter\glet\csname\??fontfile\fontclass\m_font_name\s!fallbacks \endcsname\p_fallbacks
- \expandafter\glet\csname\??fontfile\fontclass\m_font_name\s!goodies \endcsname\p_goodies
- \expandafter\glet\csname\??fontfile\fontclass\m_font_name\s!designsize\endcsname\p_designsize}
+ {\global\expandafter\let\csname\??fontfile\fontclass\m_font_name\s!features \endcsname\p_features
+ \global\expandafter\let\csname\??fontfile\fontclass\m_font_name\s!fallbacks \endcsname\p_fallbacks
+ \global\expandafter\let\csname\??fontfile\fontclass\m_font_name\s!goodies \endcsname\p_goodies
+ \global\expandafter\let\csname\??fontfile\fontclass\m_font_name\s!designsize\endcsname\p_designsize}
%\definefontsynonym [KopFont] [\fontclassname{officina}{SerifBold}]
%
@@ -307,8 +306,6 @@
#2%
\fi\fi}
-\installmacrostack\fontclass
-
%D Files or names can have properties and these need to be consulted
%D at some point. They can inherit them.
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-gbn.lua b/Master/texmf-dist/tex/context/base/mkiv/font-gbn.lua
new file mode 100644
index 00000000000..8f1acac65a5
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-gbn.lua
@@ -0,0 +1,262 @@
+if not modules then modules = { } end modules ['font-gbn'] = {
+ version = 1.001,
+ comment = "companion to luatex-*.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- generic [base|node] mode handler
+
+if context then
+ texio.write_nl("fatal error: this module is not for context")
+ os.exit()
+end
+
+local next = next
+
+local fonts = fonts
+local nodes = nodes
+
+local nuts = nodes.nuts -- context abstraction of direct nodes
+
+local traverse_id = nuts.traverse_id
+local flush_node = nuts.flush_node
+
+local glyph_code = nodes.nodecodes.glyph
+local disc_code = nodes.nodecodes.disc
+
+local tonode = nuts.tonode
+local tonut = nuts.tonut
+
+local getfont = nuts.getfont
+local getchar = nuts.getchar
+local getid = nuts.getid
+local getboth = nuts.getboth
+local getprev = nuts.getprev
+local getnext = nuts.getnext
+local getdisc = nuts.getdisc
+local setchar = nuts.setchar
+local setlink = nuts.setlink
+local setprev = nuts.setprev
+
+-- from now on we apply ligaturing and kerning here because it might interfere with complex
+-- opentype discretionary handling where the base ligature pass expect some weird extra
+-- pointers (which then confuse the tail slider that has some checking built in)
+
+local n_ligaturing = node.ligaturing
+local n_kerning = node.kerning
+
+local ligaturing = nuts.ligaturing
+local kerning = nuts.kerning
+
+local basemodepass = true
+
+local function l_warning() texio.write_nl("warning: node.ligaturing called directly") l_warning = nil end
+local function k_warning() texio.write_nl("warning: node.kerning called directly") k_warning = nil end
+
+function node.ligaturing(...)
+ if basemodepass and l_warning then
+ l_warning()
+ end
+ return n_ligaturing(...)
+end
+
+function node.kerning(...)
+ if basemodepass and k_warning then
+ k_warning()
+ end
+ return n_kerning(...)
+end
+
+function nodes.handlers.setbasemodepass(v)
+ basemodepass = v
+end
+
+-------- nodes.handlers.nodepass(head)
+function nodes.handlers.nodepass(head,groupcode,size,packtype,direction)
+ local fontdata = fonts.hashes.identifiers
+ if fontdata then
+ local nuthead = tonut(head)
+ local usedfonts = { }
+ local basefonts = { }
+ local prevfont = nil
+ local basefont = nil
+ local variants = nil
+ local redundant = nil
+ local nofused = 0
+ for n in traverse_id(glyph_code,nuthead) do
+ local font = getfont(n)
+ if font ~= prevfont then
+ if basefont then
+ basefont[2] = getprev(n)
+ end
+ prevfont = font
+ local used = usedfonts[font]
+ if not used then
+ local tfmdata = fontdata[font] --
+ if tfmdata then
+ local shared = tfmdata.shared -- we need to check shared, only when same features
+ if shared then
+ local processors = shared.processes
+ if processors and #processors > 0 then
+ usedfonts[font] = processors
+ nofused = nofused + 1
+ elseif basemodepass then
+ basefont = { n, nil }
+ basefonts[#basefonts+1] = basefont
+ end
+ end
+ local resources = tfmdata.resources
+ variants = resources and resources.variants
+ variants = variants and next(variants) and variants or false
+ end
+ else
+ local tfmdata = fontdata[prevfont]
+ if tfmdata then
+ local resources = tfmdata.resources
+ variants = resources and resources.variants
+ variants = variants and next(variants) and variants or false
+ end
+ end
+ end
+ if variants then
+ local char = getchar(n)
+ if char >= 0xFE00 and (char <= 0xFE0F or (char >= 0xE0100 and char <= 0xE01EF)) then
+ local hash = variants[char]
+ if hash then
+ local p = getprev(n)
+ if p and getid(p) == glyph_code then
+ local variant = hash[getchar(p)]
+ if variant then
+ setchar(p,variant)
+ end
+ end
+ end
+ -- per generic user request we always remove selectors
+ if not redundant then
+ redundant = { n }
+ else
+ redundant[#redundant+1] = n
+ end
+ end
+ end
+ end
+ local nofbasefonts = #basefonts
+ if redundant then
+ for i=1,#redundant do
+ local r = redundant[i]
+ local p, n = getboth(r)
+ if r == nuthead then
+ nuthead = n
+ setprev(n)
+ else
+ setlink(p,n)
+ end
+ if nofbasefonts > 0 then
+ for i=1,nofbasefonts do
+ local bi = basefonts[i]
+ if r == bi[1] then
+ bi[1] = n
+ end
+ if r == bi[2] then
+ bi[2] = n
+ end
+ end
+ end
+ flush_node(r)
+ end
+ end
+ for d in traverse_id(disc_code,nuthead) do
+ local _, _, r = getdisc(d)
+ if r then
+ for n in traverse_id(glyph_code,r) do
+ local font = getfont(n)
+ if font ~= prevfont then
+ prevfont = font
+ local used = usedfonts[font]
+ if not used then
+ local tfmdata = fontdata[font] --
+ if tfmdata then
+ local shared = tfmdata.shared -- we need to check shared, only when same features
+ if shared then
+ local processors = shared.processes
+ if processors and #processors > 0 then
+ usedfonts[font] = processors
+ nofused = nofused + 1
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ if next(usedfonts) then
+ for font, processors in next, usedfonts do
+ for i=1,#processors do
+ head = processors[i](head,font,0,direction,nofused) or head
+ end
+ end
+ end
+ if basemodepass and nofbasefonts > 0 then
+ for i=1,nofbasefonts do
+ local range = basefonts[i]
+ local start = range[1]
+ local stop = range[2]
+ if start then
+ local front = nuthead == start
+ local prev, next
+ if stop then
+ next = getnext(stop)
+ start, stop = ligaturing(start,stop)
+ start, stop = kerning(start,stop)
+ else
+ prev = getprev(start)
+ start = ligaturing(start)
+ start = kerning(start)
+ end
+ if prev then
+ setlink(prev,start)
+ end
+ if next then
+ setlink(stop,next)
+ end
+ if front and nuthead ~= start then
+ head = tonode(start)
+ end
+ end
+ end
+ end
+ return head, true
+ else
+ return head, false
+ end
+end
+
+function nodes.handlers.basepass(head)
+ if basemodepass then
+ head = n_ligaturing(head)
+ head = n_kerning(head)
+ end
+ return head, true
+end
+
+local nodepass = nodes.handlers.nodepass
+local basepass = nodes.handlers.basepass
+local injectpass = nodes.injections.handler
+local protectpass = nodes.handlers.protectglyphs
+
+function nodes.simple_font_handler(head,groupcode,size,packtype,direction)
+ if head then
+ head = nodepass(head,groupcode,size,packtype,direction)
+ head = injectpass(head)
+ if not basemodepass then
+ head = basepass(head)
+ end
+ protectpass(head)
+ return head, true
+ else
+ return head, false
+ end
+end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-gds.mkvi b/Master/texmf-dist/tex/context/base/mkiv/font-gds.mkvi
index 05cf087903c..549ede46f6c 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-gds.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-gds.mkvi
@@ -62,7 +62,7 @@
%
% \definedfont[husayni*husayni-colored at 36pt]
%
-% \starttext \righttoleft
+% \starttext \pardir TRT \textdir TRT
%
% \setfontcolorscheme[1]
%
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-hsh.lua b/Master/texmf-dist/tex/context/base/mkiv/font-hsh.lua
index 8d1e85145fb..60a27c043b8 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-hsh.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-hsh.lua
@@ -18,50 +18,48 @@ fonts.hashes = hashes
-- todo: autoallocate ... just create on the fly .. use constructors.keys (problem: plurals)
-local identifiers = hashes.identifiers or allocate()
-local characters = hashes.characters or allocate() -- chardata
-local descriptions = hashes.descriptions or allocate()
-local parameters = hashes.parameters or allocate()
-local mathparameters = hashes.mathparameters or allocate()
-local properties = hashes.properties or allocate()
-local resources = hashes.resources or allocate()
-local spacings = hashes.spacings or allocate()
-local spaces = hashes.spaces or allocate()
-local quads = hashes.quads or allocate() -- maybe also spacedata
-local xheights = hashes.xheights or allocate()
-local csnames = hashes.csnames or allocate() -- namedata
-local features = hashes.features or allocate()
-local marks = hashes.marks or allocate()
-local classes = hashes.classes or allocate()
-local italics = hashes.italics or allocate()
-local lastmathids = hashes.lastmathids or allocate()
-local dynamics = hashes.dynamics or allocate()
-local unicodes = hashes.unicodes or allocate()
-local originals = hashes.originals or allocate()
-local modes = hashes.modes or allocate()
-local variants = hashes.variants or allocate()
-
-hashes.characters = characters
-hashes.descriptions = descriptions
-hashes.parameters = parameters
-hashes.mathparameters = mathparameters
-hashes.properties = properties
-hashes.resources = resources
-hashes.spacings = spacings
-hashes.spaces = spaces
-hashes.quads = quads hashes.emwidths = quads
-hashes.xheights = xheights hashes.exheights = xheights
-hashes.csnames = csnames
-hashes.features = features
-hashes.marks = marks
-hashes.classes = classes
-hashes.italics = italics
-hashes.lastmathids = lastmathids
-hashes.dynamics = dynamics
-hashes.unicodes = unicodes
-hashes.originals = originals
-hashes.modes = modes
-hashes.variants = variants
+local identifiers = hashes.identifiers or allocate()
+local characters = hashes.characters or allocate() -- chardata
+local descriptions = hashes.descriptions or allocate()
+local parameters = hashes.parameters or allocate()
+local properties = hashes.properties or allocate()
+local resources = hashes.resources or allocate()
+local spacings = hashes.spacings or allocate()
+local spaces = hashes.spaces or allocate()
+local quads = hashes.quads or allocate() -- maybe also spacedata
+local xheights = hashes.xheights or allocate()
+local csnames = hashes.csnames or allocate() -- namedata
+local features = hashes.features or allocate()
+local marks = hashes.marks or allocate()
+local classes = hashes.classes or allocate()
+local italics = hashes.italics or allocate()
+local lastmathids = hashes.lastmathids or allocate()
+local dynamics = hashes.dynamics or allocate()
+local unicodes = hashes.unicodes or allocate()
+local originals = hashes.originals or allocate()
+local modes = hashes.modes or allocate()
+local variants = hashes.variants or allocate()
+
+hashes.characters = characters
+hashes.descriptions = descriptions
+hashes.parameters = parameters
+hashes.properties = properties
+hashes.resources = resources
+hashes.spacings = spacings
+hashes.spaces = spaces
+hashes.quads = quads hashes.emwidths = quads
+hashes.xheights = xheights hashes.exheights = xheights
+hashes.csnames = csnames
+hashes.features = features
+hashes.marks = marks
+hashes.classes = classes
+hashes.italics = italics
+hashes.lastmathids = lastmathids
+hashes.dynamics = dynamics
+hashes.unicodes = unicodes
+hashes.originals = originals
+hashes.modes = modes
+hashes.variants = variants
local nodepool = nodes and nodes.pool
local dummyglyph = nodepool and nodepool.register(nodepool.glyph())
@@ -70,9 +68,7 @@ local nulldata = allocate {
name = "nullfont",
characters = { },
descriptions = { },
- properties = {
- designsize = 786432,
- },
+ properties = { },
parameters = { -- lmromanregular @ 12pt
slantperpoint = 0,
spacing = {
@@ -91,7 +87,6 @@ local nulldata = allocate {
x_height = 338952, -- 5
quad = 786432, -- 6
extra_space = 85459, -- 7
- size = 786432,
},
}
@@ -153,16 +148,6 @@ setmetatableindex(parameters, function(t,k)
end
end)
-setmetatableindex(mathparameters, function(t,k)
- if k == true then
- return mathparameters[currentfont()]
- else
- local mathparameters = identifiers[k].mathparameters
- t[k] = mathparameters
- return mathparameters
- end
-end)
-
setmetatableindex(properties, function(t,k)
if k == true then
return properties[currentfont()]
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-imp-dimensions.lua b/Master/texmf-dist/tex/context/base/mkiv/font-imp-dimensions.lua
deleted file mode 100644
index a7125625da7..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/font-imp-dimensions.lua
+++ /dev/null
@@ -1,115 +0,0 @@
-if not modules then modules = { } end modules ['font-imp-dimensions'] = {
- version = 1.001,
- comment = "companion to font-ini.mkiv and hand-ini.mkiv",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
-if not context then return end
-
-local next, type, tonumber = next, type, tonumber
-
-local fonts = fonts
-local utilities = utilities
-
-local helpers = fonts.helpers
-local prependcommands = helpers.prependcommands
-local charcommand = helpers.commands.char
-local rightcommand = helpers.commands.right
-
-local handlers = fonts.handlers
-local otf = handlers.otf
-local afm = handlers.afm
-
-local registerotffeature = otf.features.register
-local registerafmfeature = afm.features.register
-
-local settings_to_array = utilities.parsers.settings_to_array
-local gettexdimen = tex.getdimen
-
--- For Wolfgang Schuster:
---
--- \definefontfeature[thisway][default][script=hang,language=zhs,dimensions={2,2,2}]
--- \definedfont[file:kozminpr6nregular*thisway]
-
-local function initialize(tfmdata,key,value)
- if type(value) == "string" and value ~= "" then
- local characters = tfmdata.characters
- local parameters = tfmdata.parameters
- local emwidth = parameters.quad
- local exheight = parameters.xheight
- local newwidth = false
- local newheight = false
- local newdepth = false
- if value == "strut" then
- newheight = gettexdimen("strutht")
- newdepth = gettexdimen("strutdp")
- elseif value == "mono" then
- newwidth = emwidth
- else
- local spec = settings_to_array(value)
- newwidth = tonumber(spec[1])
- newheight = tonumber(spec[2])
- newdepth = tonumber(spec[3])
- if newwidth then newwidth = newwidth * emwidth end
- if newheight then newheight = newheight * exheight end
- if newdepth then newdepth = newdepth * exheight end
- end
- if newwidth or newheight or newdepth then
- for unicode, character in next, characters do
- local oldwidth = character.width
- local oldheight = character.height
- local olddepth = character.depth
- local width = newwidth or oldwidth or 0
- local height = newheight or oldheight or 0
- local depth = newdepth or olddepth or 0
- if oldwidth ~= width or oldheight ~= height or olddepth ~= depth then
- character.width = width
- character.height = height
- character.depth = depth
- if oldwidth ~= width then
- local commands = character.commands
- local hshift = rightcommand[(width - oldwidth) / 2]
- if commands then
- character.commands = prependcommands (
- commands,
- hshift
- )
- else
- character.commands = {
- hshift,
- charcommand[unicode],
- }
- end
- end
- end
- end
- end
- end
-end
-
-local specification = {
- name = "dimensions",
- description = "force dimensions",
- manipulators = {
- base = initialize,
- node = initialize,
- }
-}
-
-registerotffeature(specification)
-registerafmfeature(specification)
-
-local function initialize(tfmdata,value)
- tfmdata.properties.realdimensions = value and true
-end
-
-registerotffeature {
- name = "realdimensions",
- description = "accept negative dimenions",
- initializers = {
- base = initialize,
- node = initialize,
- }
-}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-imp-effects.lua b/Master/texmf-dist/tex/context/base/mkiv/font-imp-effects.lua
deleted file mode 100644
index cc6e4c0bf88..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/font-imp-effects.lua
+++ /dev/null
@@ -1,414 +0,0 @@
-if not modules then modules = { } end modules ['font-imp-effects'] = {
- version = 1.001,
- comment = "companion to font-ini.mkiv",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
--- todo: pickup from goodies: if type(effect) then ...
-
-local next, type, tonumber = next, type, tonumber
-local is_boolean = string.is_boolean
-
-local fonts = fonts
-
-local handlers = fonts.handlers
-local registerotffeature = handlers.otf.features.register
-local registerafmfeature = handlers.afm.features.register
-
-local settings_to_hash = utilities.parsers.settings_to_hash_colon_too
-
-local helpers = fonts.helpers
-local prependcommands = helpers.prependcommands
-local charcommand = helpers.commands.char
-local leftcommand = helpers.commands.left
-local rightcommand = helpers.commands.right
-local upcommand = helpers.commands.up
-local downcommand = helpers.commands.down
-local dummycommand = helpers.commands.dummy
-
------ constructors = fonts.constructors
------ getmathparameter = constructors.getmathparameter
------ setmathparameter = constructors.setmathparameter
-
-local report_effect = logs.reporter("fonts","effect")
-local report_slant = logs.reporter("fonts","slant")
-local report_extend = logs.reporter("fonts","extend")
-local report_squeeze = logs.reporter("fonts","squeeze")
-
-local trace = false
-
-trackers.register("fonts.effect", function(v) trace = v end)
-trackers.register("fonts.slant", function(v) trace = v end)
-trackers.register("fonts.extend", function(v) trace = v end)
-trackers.register("fonts.squeeze",function(v) trace = v end)
-
-local function initializeslant(tfmdata,value)
- value = tonumber(value)
- if not value then
- value = 0
- elseif value > 1 then
- value = 1
- elseif value < -1 then
- value = -1
- end
- if trace then
- report_slant("applying %0.3f",value)
- end
- tfmdata.parameters.slantfactor = value
-end
-
-local specification = {
- name = "slant",
- description = "slant glyphs",
- initializers = {
- base = initializeslant,
- node = initializeslant,
- }
-}
-
-registerotffeature(specification)
-registerafmfeature(specification)
-
-local function initializeextend(tfmdata,value)
- value = tonumber(value)
- if not value then
- value = 0
- elseif value > 10 then
- value = 10
- elseif value < -10 then
- value = -10
- end
- if trace then
- report_extend("applying %0.3f",value)
- end
- tfmdata.parameters.extendfactor = value
-end
-
-local specification = {
- name = "extend",
- description = "scale glyphs horizontally",
- initializers = {
- base = initializeextend,
- node = initializeextend,
- }
-}
-
-registerotffeature(specification)
-registerafmfeature(specification)
-
-local function initializesqueeze(tfmdata,value)
- value = tonumber(value)
- if not value then
- value = 0
- elseif value > 10 then
- value = 10
- elseif value < -10 then
- value = -10
- end
- if trace then
- report_squeeze("applying %0.3f",value)
- end
- tfmdata.parameters.squeezefactor = value
-end
-
-local specification = {
- name = "squeeze",
- description = "scale glyphs vertically",
- initializers = {
- base = initializesqueeze,
- node = initializesqueeze,
- }
-}
-
-registerotffeature(specification)
-registerafmfeature(specification)
-
-local effects = {
- inner = 0,
- normal = 0,
- outer = 1,
- outline = 1,
- both = 2,
- hidden = 3,
-}
-
-local function initializeeffect(tfmdata,value)
- local spec
- if type(value) == "number" then
- spec = { width = value }
- else
- spec = settings_to_hash(value)
- end
- local effect = spec.effect or "both"
- local width = tonumber(spec.width) or 0
- local mode = effects[effect]
- if not mode then
- report_effect("invalid effect %a",effect)
- elseif width == 0 and mode == 0 then
- report_effect("invalid width %a for effect %a",width,effect)
- else
- local parameters = tfmdata.parameters
- local properties = tfmdata.properties
- parameters.mode = mode
- parameters.width = width * 1000
- if is_boolean(spec.auto) == true then
- local squeeze = 1 - width/20
- local average = (1 - squeeze) * width * 100
- spec.squeeze = squeeze
- spec.extend = 1 + width/2
- spec.wdelta = average
- spec.hdelta = average/2
- spec.ddelta = average/2
- spec.vshift = average/2
- end
- local factor = tonumber(spec.factor) or 0
- local hfactor = tonumber(spec.hfactor) or factor
- local vfactor = tonumber(spec.vfactor) or factor
- local delta = tonumber(spec.delta) or 1
- local wdelta = tonumber(spec.wdelta) or delta
- local hdelta = tonumber(spec.hdelta) or delta
- local ddelta = tonumber(spec.ddelta) or hdelta
- local vshift = tonumber(spec.vshift) or 0
- local slant = spec.slant
- local extend = spec.extend
- local squeeze = spec.squeeze
- if slant then
- initializeslant(tfmdata,slant)
- end
- if extend then
- initializeextend(tfmdata,extend)
- end
- if squeeze then
- initializesqueeze(tfmdata,squeeze)
- end
- properties.effect = {
- effect = effect,
- width = width,
- factor = factor,
- hfactor = hfactor,
- vfactor = vfactor,
- wdelta = wdelta,
- hdelta = hdelta,
- ddelta = ddelta,
- vshift = vshift,
- slant = tfmdata.parameters.slantfactor,
- extend = tfmdata.parameters.extendfactor,
- squeeze = tfmdata.parameters.squeezefactor,
- }
- end
-end
-
-local rules = {
- "RadicalRuleThickness",
- "OverbarRuleThickness",
- "FractionRuleThickness",
- "UnderbarRuleThickness",
-}
-
--- local commands = char.commands
--- if commands then
--- local command = commands[1]
--- if command and command[1] == "right" then
--- commands[1] = rightcommand[command[2]-snap]
--- end
--- end
-
-local function setmathparameters(tfmdata,characters,mathparameters,dx,dy,squeeze)
- if delta ~= 0 then
- for i=1,#rules do
- local name = rules[i]
- local value = mathparameters[name]
- if value then
- mathparameters[name] = (squeeze or 1) * (value + dx)
- end
- end
- end
-end
-
-local function setmathcharacters(tfmdata,characters,mathparameters,dx,dy,squeeze,wdelta,hdelta,ddelta)
-
- local function wdpatch(char)
- if wsnap ~= 0 then
- char.width = char.width + wdelta/2
- end
- end
-
- local function htpatch(char)
- if hsnap ~= 0 then
- local height = char.height
- if height then
- char.height = char.height + 2 * dy
- end
- end
- end
-
- local character = characters[0x221A]
-
- if character and character.next then
--- print("base char",0x221A,table.sequenced(character))
- local char = character
- local next = character.next
- wdpatch(char)
- htpatch(char)
- while next do
- char = characters[next]
- wdpatch(char)
- htpatch(char)
--- print("next char",next,table.sequenced(char))
- next = char.next
- end
- if char then
- local v = char.vert_variants
- if v then
- local top = v[#v]
- if top then
- local char = characters[top.glyph]
--- print("top char",top.glyph,table.sequenced(char))
- htpatch(char)
- end
- end
- end
- end
-end
-
--- local show_effect = { "lua", function(f,c)
--- report_effect("font id %i, char %C",f,c)
--- inspect(fonts.hashes.characters[f][c])
--- end }
-
--- local show_effect = { "lua", "print('!')" }
-
-local function manipulateeffect(tfmdata)
- local effect = tfmdata.properties.effect
- if effect then
- local characters = tfmdata.characters
- local parameters = tfmdata.parameters
- local mathparameters = tfmdata.mathparameters
- local multiplier = effect.width * 100
- local factor = parameters.factor
- local hfactor = parameters.hfactor
- local vfactor = parameters.vfactor
- local wdelta = effect.wdelta * hfactor * multiplier
- local hdelta = effect.hdelta * vfactor * multiplier
- local ddelta = effect.ddelta * vfactor * multiplier
- local vshift = effect.vshift * vfactor * multiplier
- local squeeze = effect.squeeze
- local hshift = wdelta / 2
- local dx = multiplier * vfactor
- local dy = vshift
- local factor = (1 + effect.factor) * factor
- local hfactor = (1 + effect.hfactor) * hfactor
- local vfactor = (1 + effect.vfactor) * vfactor
- local vshift = vshift ~= 0 and upcommand[vshift] or false
- for unicode, character in next, characters do
- local oldwidth = character.width
- local oldheight = character.height
- local olddepth = character.depth
- if oldwidth and oldwidth > 0 then
- character.width = oldwidth + wdelta
- local commands = character.commands
- local hshift = rightcommand[hshift]
- if vshift then
- if commands then
- prependcommands ( commands,
--- show_effect,
- hshift,
- vshift
- )
- else
- character.commands = {
--- show_effect,
- hshift,
- vshift,
- charcommand[unicode]
- }
- end
- else
- if commands then
- prependcommands ( commands,
--- show_effect,
- hshift
- )
- else
- character.commands = {
--- show_effect,
- hshift,
- charcommand[unicode]
- }
- end
- end
- end
- if oldheight and oldheight > 0 then
- character.height = oldheight + hdelta
- end
- if olddepth and olddepth > 0 then
- character.depth = olddepth + ddelta
- end
- end
- if mathparameters then
- setmathparameters(tfmdata,characters,mathparameters,dx,dy,squeeze)
- setmathcharacters(tfmdata,characters,mathparameters,dx,dy,squeeze,wdelta,hdelta,ddelta)
- end
- parameters.factor = factor
- parameters.hfactor = hfactor
- parameters.vfactor = vfactor
- if trace then
- report_effect("applying")
- report_effect(" effect : %s", effect.effect)
- report_effect(" width : %s => %s", effect.width, multiplier)
- report_effect(" factor : %s => %s", effect.factor, factor )
- report_effect(" hfactor : %s => %s", effect.hfactor,hfactor)
- report_effect(" vfactor : %s => %s", effect.vfactor,vfactor)
- report_effect(" wdelta : %s => %s", effect.wdelta, wdelta)
- report_effect(" hdelta : %s => %s", effect.hdelta, hdelta)
- report_effect(" ddelta : %s => %s", effect.ddelta, ddelta)
- end
- end
-end
-
-local specification = {
- name = "effect",
- description = "apply effects to glyphs",
- initializers = {
- base = initializeeffect,
- node = initializeeffect,
- },
- manipulators = {
- base = manipulateeffect,
- node = manipulateeffect,
- },
-}
-
-registerotffeature(specification)
-registerafmfeature(specification)
-
-local function initializeoutline(tfmdata,value)
- value = tonumber(value)
- if not value then
- value = 0
- else
- value = tonumber(value) or 0
- end
- local parameters = tfmdata.parameters
- local properties = tfmdata.properties
- parameters.mode = effects.outline
- parameters.width = value * 1000
- properties.effect = {
- effect = effect,
- width = width,
- }
-end
-
-local specification = {
- name = "outline",
- description = "outline glyphs",
- initializers = {
- base = initializeoutline,
- node = initializeoutline,
- }
-}
-
-registerotffeature(specification)
-registerafmfeature(specification)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-imp-italics.lua b/Master/texmf-dist/tex/context/base/mkiv/font-imp-italics.lua
deleted file mode 100644
index 83c785d3876..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/font-imp-italics.lua
+++ /dev/null
@@ -1,147 +0,0 @@
-if not modules then modules = { } end modules ['font-imp-italics'] = {
- version = 1.001,
- comment = "companion to font-ini.mkiv and hand-ini.mkiv",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
-local next = next
-
-local fonts = fonts
-local handlers = fonts.handlers
-local registerotffeature = handlers.otf.features.register
-local registerafmfeature = handlers.afm.features.register
-
-local function initialize(tfmdata,key,value)
- for unicode, character in next, tfmdata.characters do
- local olditalic = character.italic
- if olditalic and olditalic ~= 0 then
- character.width = character.width + olditalic
- character.italic = 0
- end
- end
-end
-
-local specification = {
- name = "italicwidths",
- description = "add italic to width",
- manipulators = {
- base = initialize,
- node = initialize, -- only makes sense for math
- }
-}
-
-registerotffeature(specification)
-registerafmfeature(specification)
-
-local function initialize(tfmdata,value) -- hm, always value
- if value then
- -- the magic 40 and it formula come from Dohyun Kim but we might need another guess
- local parameters = tfmdata.parameters
- local italicangle = parameters.italicangle
- if italicangle and italicangle ~= 0 then
- local properties = tfmdata.properties
- local factor = tonumber(value) or 1
- properties.hasitalics = true
- properties.autoitalicamount = factor * (parameters.uwidth or 40)/2
- end
- end
-end
-
-local specification = {
- name = "itlc",
- description = "italic correction",
- initializers = {
- base = initialize,
- node = initialize,
- }
-}
-
-registerotffeature(specification)
-registerafmfeature(specification)
-
-if context then
-
- local function initialize(tfmdata,value) -- yes no delay
- tfmdata.properties.textitalics = toboolean(value)
- end
-
- local specification = {
- name = "textitalics",
- description = "use alternative text italic correction",
- initializers = {
- base = initialize,
- node = initialize,
- }
- }
-
- registerotffeature(specification)
- registerafmfeature(specification)
-
-end
-
--- no longer used
-
--- if context then
---
--- -- local function initializemathitalics(tfmdata,value) -- yes no delay
--- -- tfmdata.properties.mathitalics = toboolean(value)
--- -- end
--- --
--- -- local specification = {
--- -- name = "mathitalics",
--- -- description = "use alternative math italic correction",
--- -- initializers = {
--- -- base = initializemathitalics,
--- -- node = initializemathitalics,
--- -- }
--- -- }
--- --
--- -- registerotffeature(specification)
--- -- registerafmfeature(specification)
---
--- end
-
--- -- also not used, only when testing
-
-if context then
-
- local letter = characters.is_letter
- local always = true
-
- local function collapseitalics(tfmdata,key,value)
- local threshold = value == true and 100 or tonumber(value)
- if threshold and threshold > 0 then
- if threshold > 100 then
- threshold = 100
- end
- for unicode, data in next, tfmdata.characters do
- if always or letter[unicode] or letter[data.unicode] then
- local italic = data.italic
- if italic and italic ~= 0 then
- local width = data.width
- if width and width ~= 0 then
- local delta = threshold * italic / 100
- data.width = width + delta
- data.italic = italic - delta
- end
- end
- end
- end
- end
- end
-
- local dimensions_specification = {
- name = "collapseitalics",
- description = "collapse italics",
- manipulators = {
- base = collapseitalics,
- node = collapseitalics,
- }
- }
-
- registerotffeature(dimensions_specification)
- registerafmfeature(dimensions_specification)
-
-end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-imp-ligatures.lua b/Master/texmf-dist/tex/context/base/mkiv/font-imp-ligatures.lua
deleted file mode 100644
index 091eb5d4b45..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/font-imp-ligatures.lua
+++ /dev/null
@@ -1,136 +0,0 @@
-if not modules then modules = { } end modules ['font-imp-ligatures'] = {
- version = 1.001,
- comment = "companion to font-ini.mkiv",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
-local lpegmatch = lpeg.match
-local utfsplit = utf.split
-local settings_to_array = utilities.parsers.settings_to_array
-
-local fonts = fonts
-local otf = fonts.handlers.otf
-local registerotffeature = otf.features.register
-local addotffeature = otf.addfeature
-
--- This is a quick and dirty hack.
-
-local lookups = { }
-local protect = { }
-local revert = { }
-local zwjchar = 0x200C
-local zwj = { zwjchar }
-
-addotffeature {
- name = "blockligatures",
- type = "chainsubstitution",
- nocheck = true, -- because there is no 0x200C in the font
- prepend = true, -- make sure we do it early
- future = true, -- avoid nilling due to no steps yet
- lookups = {
- {
- type = "multiple",
- data = lookups,
- },
- },
- data = {
- rules = protect,
- }
-}
-
-addotffeature {
- name = "blockligatures",
- type = "chainsubstitution",
- nocheck = true, -- because there is no 0x200C in the font
- append = true, -- this is done late
- overload = false, -- we don't want to overload the previous definition
- lookups = {
- {
- type = "ligature",
- data = lookups,
- },
- },
- data = {
- rules = revert,
- }
-}
-
-registerotffeature {
- name = 'blockligatures',
- description = 'block certain ligatures',
-}
-
-local splitter = lpeg.splitat(":")
-
-local function blockligatures(str)
-
- local t = settings_to_array(str)
-
- for i=1,#t do
- local ti = t[i]
- local before, current, after = lpegmatch(splitter,ti)
- if current and after then -- before is returned when no match
- -- experimental joke
- if before then
- before = utfsplit(before)
- for i=1,#before do
- before[i] = { before[i] }
- end
- end
- if current then
- current = utfsplit(current)
- end
- if after then
- after = utfsplit(after)
- for i=1,#after do
- after[i] = { after[i] }
- end
- end
- else
- before = nil
- current = utfsplit(ti)
- after = nil
- end
- if #current > 1 then
- local one = current[1]
- local two = current[2]
- lookups[one] = { one, zwjchar }
- local one = { one }
- local two = { two }
- local new = #protect + 1
- protect[new] = {
- before = before,
- current = { one, two },
- after = after,
- lookups = { 1 }, -- not shared !
- }
- revert[new] = {
- -- before = before,
- current = { one, zwj },
- -- after = { two, unpack(after) },
- after = { two },
- lookups = { 1 }, -- not shared !
- }
- end
- end
-end
-
--- blockligatures("\0\0")
-
-otf.helpers.blockligatures = blockligatures
-
--- blockligatures("fi,ff")
--- blockligatures("fl")
--- blockligatures("u:fl:age")
-
-if context then
-
- interfaces.implement {
- name = "blockligatures",
- arguments = "string",
- actions = blockligatures,
- }
-
-end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-imp-math.lua b/Master/texmf-dist/tex/context/base/mkiv/font-imp-math.lua
deleted file mode 100644
index d93ece4059b..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/font-imp-math.lua
+++ /dev/null
@@ -1,81 +0,0 @@
-if not modules then modules = { } end modules ['font-imp-math'] = {
- version = 1.001,
- comment = "companion to font-ini.mkiv and hand-ini.mkiv",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
-if not context then return end
-
-local next, type, tonumber = next, type, tonumber
-
-local fonts = fonts
-local helpers = fonts.helpers
-local registerotffeature = fonts.handlers.otf.features.register
-
-local setmetatableindex = table.setmetatableindex
-
--- requested for latex but not supported unless really needed in context:
---
--- registerotffeature {
--- name = "ignoremathconstants",
--- description = "ignore math constants table",
--- initializers = {
--- base = function(tfmdata,value)
--- if value then
--- tfmdata.mathparameters = nil
--- end
--- end
--- }
--- }
-
--- tfmdata.properties.mathnolimitsmode = tonumber(value) or 0
-
-local splitter = lpeg.splitat(",",tonumber)
-local lpegmatch = lpeg.match
-
-local function initialize(tfmdata,value)
- local mathparameters = tfmdata.mathparameters
- if mathparameters then
- local sup, sub
- if type(value) == "string" then
- sup, sub = lpegmatch(splitter,value)
- if not sup then
- sub, sup = 0, 0
- elseif not sub then
- sub, sup = sup, 0
- end
- elseif type(value) == "number" then
- sup, sub = 0, value
- end
- if sup then
- mathparameters.NoLimitSupFactor = sup
- end
- if sub then
- mathparameters.NoLimitSubFactor = sub
- end
- end
-end
-
-registerotffeature {
- name = "mathnolimitsmode",
- description = "influence nolimits placement",
- initializers = {
- base = initialize,
- node = initialize,
- }
-}
-
-local function initialize(tfmdata,value)
- tfmdata.properties.nostackmath = value and true
-end
-
-registerotffeature {
- name = "nostackmath",
- description = "disable math stacking mechanism",
- initializers = {
- base = initialize,
- node = initialize,
- }
-}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-imp-notused.lua b/Master/texmf-dist/tex/context/base/mkiv/font-imp-notused.lua
deleted file mode 100644
index be36c98988e..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/font-imp-notused.lua
+++ /dev/null
@@ -1,168 +0,0 @@
-if not modules then modules = { } end modules ['font-imp-notused'] = {
- version = 1.001,
- comment = "companion to font-ini.mkiv and hand-ini.mkiv",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
-if not context then return end
-
--- local next = next
--- local utfbyte = utf.byte
---
--- local fonts = fonts
---
--- local handlers = fonts.handlers
--- local otf = handlers.otf
--- local afm = handlers.afm
---
--- local registerotffeature = otf.features.register
--- local registerafmfeature = afm.features.register
-
--- local function initialize(tfmdata)
--- local resources = tfmdata.resources
--- local gposfeatures = resources.features.gpos
--- local characters = tfmdata.characters
--- local descriptions = tfmdata.descriptions
--- local sequences = resources.sequences
--- local coverage = { }
--- local units = tfmdata.shared.rawdata.metadata.units
--- for k, v in next, characters do
--- local w = descriptions[k].width
--- local d = units - w
--- coverage[k] = { -d/2, 0, units, 0 }
--- end
--- local f = { dflt = { dflt = true } }
--- local s = #sequences + 1
--- local t = {
--- features = { fakemono = f },
--- flags = { false, false, false, false },
--- index = s,
--- name = "p_s_" .. s,
--- nofsteps = 1,
--- order = { "fakemono" },
--- skiphash = false,
--- type = "gpos_single",
--- steps = {
--- {
--- format = "single",
--- coverage = coverage,
--- }
--- }
--- }
--- gposfeatures["fakemono"] = f
--- sequences[s] = t
--- end
---
--- registerotffeature {
--- name = "fakemono",
--- description = "fake monospaced",
--- initializers = {
--- node = initialize,
--- },
--- }
-
--- -- for notosans but not general
---
--- local v_local = interfaces and interfaces.variables and interfaces.variables["local"] or "local"
---
--- local function initialize(tfmdata,key,value)
--- local characters = tfmdata.characters
--- local parameters = tfmdata.parameters
--- local oldchar = 32
--- local newchar = 32
--- if value == "locl" or value == v_local then
--- newchar = fonts.handlers.otf.getsubstitution(tfmdata,oldchar,"locl",true) or oldchar
--- elseif value == true then
--- -- use normal space
--- elseif value then
--- newchar = utfbyte(value)
--- else
--- return
--- end
--- local newchar = newchar and characters[newchar]
--- local newspace = newchar and newchar.width
--- if newspace > 0 then
--- parameters.space = newspace
--- parameters.space_stretch = newspace/2
--- parameters.space_shrink = newspace/3
--- parameters.extra_space = parameters.space_shrink
--- end
--- end
---
--- registerotffeature {
--- name = 'space', -- true|false|locl|character
--- description = 'space settings',
--- manipulators = {
--- base = initialize,
--- node = initialize,
--- }
--- }
-
--- -- historic stuff, move from font-ota (handled differently, typo-rep)
---
--- local delete_node = nodes.delete
--- local fontdata = fonts.hashes.identifiers
---
--- local nodecodes = nodes.nodecodes
--- local glyph_code = nodecodes.glyph
---
--- local strippables = allocate()
--- fonts.strippables = strippables
---
--- strippables.joiners = table.tohash {
--- 0x200C, -- zwnj
--- 0x200D, -- zwj
--- }
---
--- strippables.all = table.tohash {
--- 0x000AD, 0x017B4, 0x017B5, 0x0200B, 0x0200C, 0x0200D, 0x0200E, 0x0200F, 0x0202A, 0x0202B,
--- 0x0202C, 0x0202D, 0x0202E, 0x02060, 0x02061, 0x02062, 0x02063, 0x0206A, 0x0206B, 0x0206C,
--- 0x0206D, 0x0206E, 0x0206F, 0x0FEFF, 0x1D173, 0x1D174, 0x1D175, 0x1D176, 0x1D177, 0x1D178,
--- 0x1D179, 0x1D17A, 0xE0001, 0xE0020, 0xE0021, 0xE0022, 0xE0023, 0xE0024, 0xE0025, 0xE0026,
--- 0xE0027, 0xE0028, 0xE0029, 0xE002A, 0xE002B, 0xE002C, 0xE002D, 0xE002E, 0xE002F, 0xE0030,
--- 0xE0031, 0xE0032, 0xE0033, 0xE0034, 0xE0035, 0xE0036, 0xE0037, 0xE0038, 0xE0039, 0xE003A,
--- 0xE003B, 0xE003C, 0xE003D, 0xE003E, 0xE003F, 0xE0040, 0xE0041, 0xE0042, 0xE0043, 0xE0044,
--- 0xE0045, 0xE0046, 0xE0047, 0xE0048, 0xE0049, 0xE004A, 0xE004B, 0xE004C, 0xE004D, 0xE004E,
--- 0xE004F, 0xE0050, 0xE0051, 0xE0052, 0xE0053, 0xE0054, 0xE0055, 0xE0056, 0xE0057, 0xE0058,
--- 0xE0059, 0xE005A, 0xE005B, 0xE005C, 0xE005D, 0xE005E, 0xE005F, 0xE0060, 0xE0061, 0xE0062,
--- 0xE0063, 0xE0064, 0xE0065, 0xE0066, 0xE0067, 0xE0068, 0xE0069, 0xE006A, 0xE006B, 0xE006C,
--- 0xE006D, 0xE006E, 0xE006F, 0xE0070, 0xE0071, 0xE0072, 0xE0073, 0xE0074, 0xE0075, 0xE0076,
--- 0xE0077, 0xE0078, 0xE0079, 0xE007A, 0xE007B, 0xE007C, 0xE007D, 0xE007E, 0xE007F,
--- }
---
--- strippables[true] = strippables.joiners
---
--- local function processformatters(head,font)
--- local subset = fontdata[font].shared.features.formatters
--- local vector = subset and strippables[subset]
--- if vector then
--- local current, done = head, false
--- while current do
--- if current.id == glyph_code and current.subtype<256 and current.font == font then
--- local char = current.char
--- if vector[char] then
--- head, current = delete_node(head,current)
--- done = true
--- else
--- current = current.next
--- end
--- else
--- current = current.next
--- end
--- end
--- return head, done
--- else
--- return head, false
--- end
--- end
---
--- registerotffeature {
--- name = "formatters",
--- description = "hide formatting characters",
--- methods = {
--- base = processformatters,
--- node = processformatters,
--- }
--- }
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-imp-properties.lua b/Master/texmf-dist/tex/context/base/mkiv/font-imp-properties.lua
deleted file mode 100644
index 5805235b780..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/font-imp-properties.lua
+++ /dev/null
@@ -1,130 +0,0 @@
-if not modules then modules = { } end modules ['font-imp-properties'] = {
- version = 1.001,
- comment = "companion to font-ini.mkiv and hand-ini.mkiv",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
-if not context then return end
-
-local next, type, tonumber, select = next, type, tonumber, select
-local byte, find, formatters = string.byte, string.find, string.formatters
-local utfchar = utf.char
-local sortedhash, sortedkeys, sort = table.sortedhash, table.sortedkeys, table.sort
-local insert = table.insert
-
-local context = context
-local fonts = fonts
-local utilities = utilities
-
-local helpers = fonts.helpers
-
-local handlers = fonts.handlers
-local hashes = fonts.hashes
-local otf = handlers.otf
-local afm = handlers.afm
-
-local registerotffeature = otf.features.register
-local registerafmfeature = afm.features.register
-
-local fontdata = hashes.identifiers
-local fontproperties = hashes.properties
-
-local constructors = fonts.constructors
-local getprivate = constructors.getprivate
-
-local allocate = utilities.storage.allocate
-local family_font = node.family_font
-
-local setmetatableindex = table.setmetatableindex
-
-local implement = interfaces.implement
-
-do
-
- local P, lpegpatterns, lpegmatch = lpeg.P, lpeg.patterns, lpeg.match
-
- local amount, stretch, shrink, extra
-
- local factor = lpegpatterns.unsigned
- local space = lpegpatterns.space
- local pattern = (
- (factor / function(n) amount = tonumber(n) or amount end)
- + (P("+") + P("plus" )) * space^0 * (factor / function(n) stretch = tonumber(n) or stretch end)
- + (P("-") + P("minus")) * space^0 * (factor / function(n) shrink = tonumber(n) or shrink end)
- + ( P("extra")) * space^0 * (factor / function(n) extra = tonumber(n) or extra end)
- + space^1
- )^1
-
- local function initialize(tfmdata,key,value)
- local characters = tfmdata.characters
- local parameters = tfmdata.parameters
- if type(value) == "string" then
- local emwidth = parameters.quad
- amount, stretch, shrink, extra = 0, 0, 0, false
- lpegmatch(pattern,value)
- if not extra then
- if shrink ~= 0 then
- extra = shrink
- elseif stretch ~= 0 then
- extra = stretch
- else
- extra = amount
- end
- end
- parameters.space = amount * emwidth
- parameters.space_stretch = stretch * emwidth
- parameters.space_shrink = shrink * emwidth
- parameters.extra_space = extra * emwidth
- end
- end
-
- -- 1.1 + 1.2 - 1.3 minus 1.4 plus 1.1 extra 1.4 -- last one wins
-
- registerotffeature {
- name = "spacing",
- description = "space settings",
- manipulators = {
- base = initialize,
- node = initialize,
- }
- }
-
-end
-
-do
-
- local function initialize(tfmdata,value)
- local properties = tfmdata.properties
- if properties then
- properties.identity = value == "vertical" and "vertical" or "horizontal"
- end
- end
-
- registerotffeature {
- name = "identity",
- description = "set font identity",
- initializers = {
- base = initialize,
- node = initialize,
- }
- }
-
- local function initialize(tfmdata,value)
- local properties = tfmdata.properties
- if properties then
- properties.writingmode = value == "vertical" and "vertical" or "horizontal"
- end
- end
-
- registerotffeature {
- name = "writingmode",
- description = "set font direction",
- initializers = {
- base = initialize,
- node = initialize,
- }
- }
-
-end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-imp-quality.lua b/Master/texmf-dist/tex/context/base/mkiv/font-imp-quality.lua
deleted file mode 100644
index 01f0afe6309..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/font-imp-quality.lua
+++ /dev/null
@@ -1,527 +0,0 @@
-if not modules then modules = { } end modules ['font-imp-quality'] = {
- version = 1.001,
- comment = "companion to font-ini.mkiv and hand-ini.mkiv",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
-if not context then return end
-
-local next, type, tonumber = next, type, tonumber
-local byte = string.byte
-local insert = table.insert
-
-local fonts = fonts
-local utilities = utilities
-
-local handlers = fonts.handlers
-local otf = handlers.otf
-local afm = handlers.afm
-local registerotffeature = otf.features.register
-local registerafmfeature = afm.features.register
-
-local allocate = utilities.storage.allocate
-local getparameters = utilities.parsers.getparameters
-
-local implement = interfaces and interfaces.implement
-
-local trace_protrusion = false trackers.register("fonts.protrusion", function(v) trace_protrusion = v end)
-local trace_expansion = false trackers.register("fonts.expansion", function(v) trace_expansion = v end)
-
-local report_expansions = logs.reporter("fonts","expansions")
-local report_protrusions = logs.reporter("fonts","protrusions")
-
--- -- -- -- -- --
--- shared
--- -- -- -- -- --
-
-local function get_class_and_vector(tfmdata,value,where) -- "expansions"
- local g_where = tfmdata.goodies and tfmdata.goodies[where]
- local f_where = fonts[where]
- local g_classes = g_where and g_where.classes
- local f_classes = f_where and f_where.classes
- local class = (g_classes and g_classes[value]) or (f_classes and f_classes[value])
- if class then
- local class_vector = class.vector
- local g_vectors = g_where and g_where.vectors
- local f_vectors = f_where and f_where.vectors
- local vector = (g_vectors and g_vectors[class_vector]) or (f_vectors and f_vectors[class_vector])
- return class, vector
- end
-end
-
--- -- -- -- -- --
--- expansion (hz)
--- -- -- -- -- --
-
-local expansions = fonts.expansions or allocate()
-
-fonts.expansions = expansions
-
-local classes = expansions.classes or allocate()
-local vectors = expansions.vectors or allocate()
-
-expansions.classes = classes
-expansions.vectors = vectors
-
--- beware, pdftex itself uses percentages * 10
---
--- todo: get rid of byte() here
-
-classes.preset = { stretch = 2, shrink = 2, step = .5, factor = 1 }
-
-classes['quality'] = {
- stretch = 2, shrink = 2, step = .5, vector = 'default', factor = 1
-}
-
-vectors['default'] = {
- [byte('A')] = 0.5, [byte('B')] = 0.7, [byte('C')] = 0.7, [byte('D')] = 0.5, [byte('E')] = 0.7,
- [byte('F')] = 0.7, [byte('G')] = 0.5, [byte('H')] = 0.7, [byte('K')] = 0.7, [byte('M')] = 0.7,
- [byte('N')] = 0.7, [byte('O')] = 0.5, [byte('P')] = 0.7, [byte('Q')] = 0.5, [byte('R')] = 0.7,
- [byte('S')] = 0.7, [byte('U')] = 0.7, [byte('W')] = 0.7, [byte('Z')] = 0.7,
- [byte('a')] = 0.7, [byte('b')] = 0.7, [byte('c')] = 0.7, [byte('d')] = 0.7, [byte('e')] = 0.7,
- [byte('g')] = 0.7, [byte('h')] = 0.7, [byte('k')] = 0.7, [byte('m')] = 0.7, [byte('n')] = 0.7,
- [byte('o')] = 0.7, [byte('p')] = 0.7, [byte('q')] = 0.7, [byte('s')] = 0.7, [byte('u')] = 0.7,
- [byte('w')] = 0.7, [byte('z')] = 0.7,
- [byte('2')] = 0.7, [byte('3')] = 0.7, [byte('6')] = 0.7, [byte('8')] = 0.7, [byte('9')] = 0.7,
-}
-
-vectors['quality'] = vectors['default'] -- metatable ?
-
-local function initialize(tfmdata,value)
- if value then
- local class, vector = get_class_and_vector(tfmdata,value,"expansions")
- if class then
- if vector then
- local stretch = class.stretch or 0
- local shrink = class.shrink or 0
- local step = class.step or 0
- local factor = class.factor or 1
- if trace_expansion then
- report_expansions("setting class %a, vector %a, factor %a, stretch %a, shrink %a, step %a",
- value,class.vector,factor,stretch,shrink,step)
- end
- tfmdata.parameters.expansion = {
- stretch = 10 * stretch,
- shrink = 10 * shrink,
- step = 10 * step,
- factor = factor,
- }
- local data = characters and characters.data
- for i, chr in next, tfmdata.characters do
- local v = vector[i]
- if data and not v then -- we could move the data test outside (needed for plain)
- local d = data[i]
- if d then
- local s = d.shcode
- if not s then
- -- sorry
- elseif type(s) == "table" then
- v = ((vector[s[1]] or 0) + (vector[s[#s]] or 0)) / 2
- else
- v = vector[s] or 0
- end
- end
- end
- if v and v ~= 0 then
- chr.expansion_factor = v*factor
- else -- can be option
- chr.expansion_factor = factor
- end
- end
- elseif trace_expansion then
- report_expansions("unknown vector %a in class %a",class.vector,value)
- end
- elseif trace_expansion then
- report_expansions("unknown class %a",value)
- end
- end
-end
-
-local specification = {
- name = "expansion",
- description = "apply hz optimization",
- initializers = {
- base = initialize,
- node = initialize,
- }
-}
-
-registerotffeature(specification)
-registerafmfeature(specification)
-
-fonts.goodies.register("expansions", function(...) return fonts.goodies.report("expansions", trace_expansion, ...) end)
-
-if context then
-
- implement {
- name = "setupfontexpansion",
- arguments = "2 strings",
- actions = function(class,settings) getparameters(classes,class,'preset',settings) end
- }
-
-end
-
--- -- -- -- -- --
--- protrusion
--- -- -- -- -- --
-
-fonts.protrusions = allocate()
-local protrusions = fonts.protrusions
-
-protrusions.classes = allocate()
-protrusions.vectors = allocate()
-
-local classes = protrusions.classes
-local vectors = protrusions.vectors
-
--- the values need to be revisioned
-
-classes.preset = { factor = 1, left = 1, right = 1 }
-
-classes['pure'] = {
- vector = 'pure', factor = 1
-}
-classes['punctuation'] = {
- vector = 'punctuation', factor = 1
-}
-classes['alpha'] = {
- vector = 'alpha', factor = 1
-}
-classes['quality'] = {
- vector = 'quality', factor = 1
-}
-
-vectors['pure'] = {
-
- [0x002C] = { 0, 1 }, -- comma
- [0x002E] = { 0, 1 }, -- period
- [0x003A] = { 0, 1 }, -- colon
- [0x003B] = { 0, 1 }, -- semicolon
- [0x002D] = { 0, 1 }, -- hyphen
- [0x00AD] = { 0, 1 }, -- also hyphen
- [0x2013] = { 0, 0.50 }, -- endash
- [0x2014] = { 0, 0.33 }, -- emdash
- [0x3001] = { 0, 1 }, -- ideographic comma 、
- [0x3002] = { 0, 1 }, -- ideographic full stop 。
- [0x060C] = { 0, 1 }, -- arabic comma ،
- [0x061B] = { 0, 1 }, -- arabic semicolon ؛
- [0x06D4] = { 0, 1 }, -- arabic full stop ۔
-
-}
-
-vectors['punctuation'] = {
-
- [0x003F] = { 0, 0.20 }, -- ?
- [0x00BF] = { 0.20, 0 }, -- Âŋ
- [0x0021] = { 0, 0.20 }, -- !
- [0x00A1] = { 0.20, 0, }, -- ÂĄ
- [0x0028] = { 0.05, 0 }, -- (
- [0x0029] = { 0, 0.05 }, -- )
- [0x005B] = { 0.05, 0 }, -- [
- [0x005D] = { 0, 0.05 }, -- ]
- [0x002C] = { 0, 0.70 }, -- comma
- [0x002E] = { 0, 0.70 }, -- period
- [0x003A] = { 0, 0.50 }, -- colon
- [0x003B] = { 0, 0.50 }, -- semicolon
- [0x002D] = { 0, 0.70 }, -- hyphen
- [0x00AD] = { 0, 0.70 }, -- also hyphen
- [0x2013] = { 0, 0.30 }, -- endash
- [0x2014] = { 0, 0.20 }, -- emdash
- [0x060C] = { 0, 0.70 }, -- arabic comma
- [0x061B] = { 0, 0.50 }, -- arabic semicolon
- [0x06D4] = { 0, 0.70 }, -- arabic full stop
- [0x061F] = { 0, 0.20 }, -- ؟
-
- -- todo: left and right quotes: .5 double, .7 single
-
- [0x2039] = { 0.70, 0.70 }, -- left single guillemet â€đ
- [0x203A] = { 0.70, 0.70 }, -- right single guillemet ‹
- [0x00AB] = { 0.50, 0.50 }, -- left guillemet ÂŦ
- [0x00BB] = { 0.50, 0.50 }, -- right guillemet Âŧ
-
- [0x2018] = { 0.70, 0.70 }, -- left single quotation mark ‘
- [0x2019] = { 0, 0.70 }, -- right single quotation mark ’
- [0x201A] = { 0.70, 0 }, -- single low-9 quotation mark ,
- [0x201B] = { 0.70, 0 }, -- single high-reversed-9 quotation mark ‛
- [0x201C] = { 0.50, 0.50 }, -- left double quotation mark “
- [0x201D] = { 0, 0.50 }, -- right double quotation mark ”
- [0x201E] = { 0.50, 0 }, -- double low-9 quotation mark „
- [0x201F] = { 0.50, 0 }, -- double high-reversed-9 quotation mark ‟
-
-}
-
-vectors['alpha'] = {
-
- [byte("A")] = { .05, .05 },
- [byte("F")] = { 0, .05 },
- [byte("J")] = { .05, 0 },
- [byte("K")] = { 0, .05 },
- [byte("L")] = { 0, .05 },
- [byte("T")] = { .05, .05 },
- [byte("V")] = { .05, .05 },
- [byte("W")] = { .05, .05 },
- [byte("X")] = { .05, .05 },
- [byte("Y")] = { .05, .05 },
-
- [byte("k")] = { 0, .05 },
- [byte("r")] = { 0, .05 },
- [byte("t")] = { 0, .05 },
- [byte("v")] = { .05, .05 },
- [byte("w")] = { .05, .05 },
- [byte("x")] = { .05, .05 },
- [byte("y")] = { .05, .05 },
-
-}
-
-vectors['quality'] = table.merged(
- vectors['punctuation'],
- vectors['alpha']
-)
-
--- As this is experimental code, users should not depend on it. The implications are still
--- discussed on the ConTeXt Dev List and we're not sure yet what exactly the spec is (the
--- next code is tested with a gyre font patched by / fea file made by Khaled Hosny). The
--- double trick should not be needed it proper hanging punctuation is used in which case
--- values < 1 can be used.
---
--- preferred (in context, usine vectors):
---
--- \definefontfeature[whatever][default][mode=node,protrusion=quality]
---
--- using lfbd and rtbd, with possibibility to enable only one side :
---
--- \definefontfeature[whocares][default][mode=node,protrusion=yes, opbd=yes,script=latn]
--- \definefontfeature[whocares][default][mode=node,protrusion=right,opbd=yes,script=latn]
---
--- idem, using multiplier
---
--- \definefontfeature[whocares][default][mode=node,protrusion=2,opbd=yes,script=latn]
--- \definefontfeature[whocares][default][mode=node,protrusion=double,opbd=yes,script=latn]
---
--- idem, using named feature file (less frozen):
---
--- \definefontfeature[whocares][default][mode=node,protrusion=2,opbd=yes,script=latn,featurefile=texgyrepagella-regularxx.fea]
-
-classes['double'] = { -- for testing opbd
- factor = 2, left = 1, right = 1,
-}
-
-local function map_opbd_onto_protrusion(tfmdata,value,opbd)
- local characters = tfmdata.characters
- local descriptions = tfmdata.descriptions
- local properties = tfmdata.properties
- local parameters = tfmdata.parameters
- local resources = tfmdata.resources
- local rawdata = tfmdata.shared.rawdata
- local lookuphash = rawdata.lookuphash
- local lookuptags = resources.lookuptags
- local script = properties.script
- local language = properties.language
- local units = parameters.units
- local done, factor, left, right = false, 1, 1, 1
- local class = classes[value]
- if class then
- factor = class.factor or 1
- left = class.left or 1
- right = class.right or 1
- else
- factor = tonumber(value) or 1
- end
- local lfactor = left * factor
- local rfactor = right * factor
- if trace_protrusion then
- report_protrusions("left factor %0.3F, right factor %0.3F",lfactor,rfactor)
- end
- tfmdata.parameters.protrusion = {
- factor = factor,
- left = left,
- right = right,
- }
- if opbd ~= "right" then
- local validlookups, lookuplist = otf.collectlookups(rawdata,"lfbd",script,language)
- if validlookups then
- for i=1,#lookuplist do
- local lookup = lookuplist[i]
- local steps = lookup.steps
- if steps then
- if trace_protrusion then
- report_protrusions("setting left using lfbd")
- end
- for i=1,#steps do
- local step = steps[i]
- local coverage = step.coverage
- if coverage then
- for k, v in next, coverage do
- if v == true then
- -- zero
- else
- local w = descriptions[k].width
- local d = - v[1]
- if w == 0 or d == 0 then
- -- ignored
- else
- local p = lfactor * d/units
- characters[k].left_protruding = p
- if trace_protrusion then
- report_protrusions("lfbd -> %0.3F %C",p,k)
- end
- end
- end
- end
- end
- end
- done = true
- end
- end
- end
- end
- if opbd ~= "left" then
- local validlookups, lookuplist = otf.collectlookups(rawdata,"rtbd",script,language)
- if validlookups then
- for i=1,#lookuplist do
- local lookup = lookuplist[i]
- local steps = lookup.steps
- if steps then
- if trace_protrusion then
- report_protrusions("setting right using rtbd")
- end
- for i=1,#steps do
- local step = steps[i]
- local coverage = step.coverage
- if coverage then
- for k, v in next, coverage do
- if v == true then
- -- zero
- else
- local w = descriptions[k].width
- local d = - v[3]
- if w == 0 or d == 0 then
- -- ignored
- else
- local p = rfactor * d/units
- characters[k].right_protruding = p
- if trace_protrusion then
- report_protrusions("rtbd -> %0.3F %C",p,k)
- end
- end
- end
- end
- end
- end
- end
- done = true
- end
- end
- end
-end
-
--- The opbd test is just there because it was discussed on the context development list. However,
--- the mentioned fxlbi.otf font only has some kerns for digits. So, consider this feature not supported
--- till we have a proper test font.
-
-local function initialize(tfmdata,value)
- if value then
- local opbd = tfmdata.shared.features.opbd
- if opbd then
- -- possible values: left right both yes no (experimental)
- map_opbd_onto_protrusion(tfmdata,value,opbd)
- else
- local class, vector = get_class_and_vector(tfmdata,value,"protrusions")
- if class then
- if vector then
- local factor = class.factor or 1
- local left = class.left or 1
- local right = class.right or 1
- if trace_protrusion then
- report_protrusions("setting class %a, vector %a, factor %a, left %a, right %a",
- value,class.vector,factor,left,right)
- end
- local data = characters.data
- local emwidth = tfmdata.parameters.quad
- local lfactor = left * factor
- local rfactor = right * factor
- if trace_protrusion then
- report_protrusions("left factor %0.3F, right factor %0.3F",lfactor,rfactor)
- end
- tfmdata.parameters.protrusion = {
- factor = factor,
- left = left,
- right = right,
- }
- for i, chr in next, tfmdata.characters do
- local v = vector[i]
- local pl = nil
- local pr = nil
- if v then
- pl = v[1]
- pr = v[2]
- else
- local d = data[i]
- if d then
- local s = d.shcode
- if not s then
- -- sorry
- elseif type(s) == "table" then
- local vl = vector[s[1]]
- local vr = vector[s[#s]]
- if vl then pl = vl[1] end
- if vr then pr = vr[2] end
- else
- v = vector[s]
- if v then
- pl = v[1]
- pr = v[2]
- end
- end
- end
- end
- if pl and pl ~= 0 then
- local p = pl * lfactor
- chr.left_protruding = p
- if trace_protrusion then
- report_protrusions("left -> %0.3F %C ",p,i)
- end
- end
- if pr and pr ~= 0 then
- local p = pr * rfactor
- chr.right_protruding = p
- if trace_protrusion then
- report_protrusions("right -> %0.3F %C",p,i)
- end
- end
- end
- elseif trace_protrusion then
- report_protrusions("unknown vector %a in class %a",class.vector,value)
- end
- elseif trace_protrusion then
- report_protrusions("unknown class %a",value)
- end
- end
- end
-end
-
-local specification = {
- name = "protrusion",
- description = "l/r margin character protrusion",
- initializers = {
- base = initialize,
- node = initialize,
- }
-}
-
-registerotffeature(specification)
-registerafmfeature(specification)
-
-fonts.goodies.register("protrusions", function(...) return fonts.goodies.report("protrusions", trace_protrusion, ...) end)
-
-if context then
-
- implement {
- name = "setupfontprotrusion",
- arguments = "2 strings",
- actions = function(class,settings) getparameters(classes,class,'preset',settings) end
- }
-
-end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-imp-reorder.lua b/Master/texmf-dist/tex/context/base/mkiv/font-imp-reorder.lua
deleted file mode 100644
index b2dec781c7d..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/font-imp-reorder.lua
+++ /dev/null
@@ -1,174 +0,0 @@
-if not modules then modules = { } end modules ['font-imp-reorder'] = {
- version = 1.001,
- comment = "companion to font-ini.mkiv and hand-ini.mkiv",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
-if not context then return end
-
-local next = next
-local find = string.find
-local sortedhash, sortedkeys, sort = table.sortedhash, table.sortedkeys, table.sort
-
-local fonts = fonts
-local otf = fonts.handlers.otf
-local registerotffeature = otf.features.register
-
--- This is a rather special test-only feature that I added for the sake of testing
--- Idris's husayni. We wanted to know if uniscribe obeys the order of lookups in a
--- font, in spite of what the description of handling arabic suggests. And indeed,
--- mixed-in lookups of other features (like all these ss* in husayni) are handled
--- the same in context as in uniscribe. If one sets reorderlookups=arab then we sort
--- according to the "assumed" order so e.g. the ss* move to after the standard
--- features. The observed difference in rendering is an indication that uniscribe is
--- quite faithful to the font (while e.g. tests with the hb plugin demonstrate some
--- interference, apart from some hard coded init etc expectations). Anyway, it means
--- that we're okay with the (generic) node processor. A pitfall is that in context
--- we can actually control more, so we can trigger an analyze pass with e.g.
--- dflt/dflt while the libraries depend on the script settings for that. Uniscribe
--- probably also parses the string and when seeing arabic will follow a different
--- code path, although it seems to treat all features equal.
-
-local trace_reorder = trackers.register("fonts.reorderlookups",function(v) trace_reorder = v end)
-local report_reorder = logs.reporter("fonts","reorder")
-
-local vectors = { }
-
-vectors.arab = {
- gsub = {
- ccmp = 1,
- isol = 2,
- fina = 3,
- medi = 4,
- init = 5,
- rlig = 6,
- rclt = 7,
- calt = 8,
- liga = 9,
- dlig = 10,
- cswh = 11,
- mset = 12,
- },
- gpos = {
- curs = 1,
- kern = 2,
- mark = 3,
- mkmk = 4,
- },
-}
-
-local function compare(a,b)
- local what_a = a.what
- local what_b = b.what
- if what_a ~= what_b then
- return a.index < b.index
- end
- local when_a = a.when
- local when_b = b.when
- if when_a == when_b then
- return a.index < b.index
- else
- return when_a < when_b
- end
-end
-
-function otf.reorderlookups(tfmdata,vector)
- local order = vectors[vector]
- if not order then
- return
- end
- local oldsequences = tfmdata.resources.sequences
- if oldsequences then
- local sequences = { }
- for i=1,#oldsequences do
- sequences[i] = oldsequences[i]
- end
- for i=1,#sequences do
- local s = sequences[i]
- local features = s.features
- local kind = s.type
- local index = s.index
- if features then
- local when
- local what
- for feature in sortedhash(features) do
- if not what then
- what = find(kind,"^gsub") and "gsub" or "gpos"
- end
- local newwhen = order[what][feature]
- if not newwhen then
- -- skip
- elseif not when then
- when = newwhen
- elseif newwhen < when then
- when = newwhen
- end
- end
- s.ondex = s.index
- s.index = i
- s.what = what == "gsub" and 1 or 2
- s.when = when or 99
- else
- s.ondex = s.index
- s.index = i
- s.what = 1
- s.when = 99
- end
- end
- sort(sequences,compare)
- local swapped = 0
- for i=1,#sequences do
- local sequence = sequences[i]
- local features = sequence.features
- if features then
- local index = sequence.index
- if index ~= i then
- swapped = swapped + 1
- end
- if trace_reorder then
- if swapped == 1 then
- report_reorder()
- report_reorder("start swapping lookups in font %!font:name!",tfmdata)
- report_reorder()
- report_reorder("gsub order: % t",table.swapped(order.gsub))
- report_reorder("gpos order: % t",table.swapped(order.gpos))
- report_reorder()
- end
- report_reorder("%03i : lookup %03i, type %s, sorted %2i, moved %s, % t",
- i,index,sequence.what == 1 and "gsub" or "gpos",sequence.when or 99,
- (index > i and "-") or (index < i and "+") or "=",sortedkeys(features))
- end
- end
- sequence.what = nil
- sequence.when = nil
- sequence.index = sequence.ondex
- end
- if swapped > 0 then
- if trace_reorder then
- report_reorder()
- report_reorder("stop swapping lookups, %i lookups swapped",swapped)
- report_reorder()
- end
- tfmdata.shared.reorderedsequences = sequences
- end
- end
-end
-
--- maybe delay till ra is filled
-
-local function initialize(tfmdata,key,value)
- if value then
- otf.reorderlookups(tfmdata,value)
- end
-end
-
-registerotffeature {
- name = "reorderlookups",
- description = "reorder lookups",
- manipulators = {
- base = initialize,
- node = initialize,
- }
-}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-imp-tex.lua b/Master/texmf-dist/tex/context/base/mkiv/font-imp-tex.lua
deleted file mode 100644
index b4b9a7b6943..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/font-imp-tex.lua
+++ /dev/null
@@ -1,144 +0,0 @@
-if not modules then modules = { } end modules ['font-imp-tex'] = {
- version = 1.001,
- comment = "companion to font-ini.mkiv",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
-local next = next
-
-local fonts = fonts
-local otf = fonts.handlers.otf
-local registerotffeature = otf.features.register
-local addotffeature = otf.addfeature
-
--- tlig (we need numbers for some fonts so ...)
-
-local specification = {
- type = "ligature",
- order = { "tlig" },
- prepend = true,
- data = {
- -- endash = "hyphen hyphen",
- -- emdash = "hyphen hyphen hyphen",
- [0x2013] = { 0x002D, 0x002D },
- [0x2014] = { 0x002D, 0x002D, 0x002D },
- -- quotedblleft = "quoteleft quoteleft",
- -- quotedblright = "quoteright quoteright",
- -- quotedblleft = "grave grave",
- -- quotedblright = "quotesingle quotesingle",
- -- quotedblbase = "comma comma",
- },
-}
-
-addotffeature("tlig",specification)
-
-registerotffeature {
- -- this makes it a known feature (in tables)
- name = "tlig",
- description = "tex ligatures",
-}
-
--- trep
-
-local specification = {
- type = "substitution",
- order = { "trep" },
- prepend = true,
- data = {
- -- [0x0022] = 0x201D,
- [0x0027] = 0x2019,
- -- [0x0060] = 0x2018,
- },
-}
-
-addotffeature("trep",specification)
-
-registerotffeature {
- -- this makes it a known feature (in tables)
- name = "trep",
- description = "tex replacements",
-}
-
--- some day this will be moved to font-imp-scripts.lua
-
--- anum
-
-local anum_arabic = {
- [0x0030] = 0x0660,
- [0x0031] = 0x0661,
- [0x0032] = 0x0662,
- [0x0033] = 0x0663,
- [0x0034] = 0x0664,
- [0x0035] = 0x0665,
- [0x0036] = 0x0666,
- [0x0037] = 0x0667,
- [0x0038] = 0x0668,
- [0x0039] = 0x0669,
-}
-
-local anum_persian = {
- [0x0030] = 0x06F0,
- [0x0031] = 0x06F1,
- [0x0032] = 0x06F2,
- [0x0033] = 0x06F3,
- [0x0034] = 0x06F4,
- [0x0035] = 0x06F5,
- [0x0036] = 0x06F6,
- [0x0037] = 0x06F7,
- [0x0038] = 0x06F8,
- [0x0039] = 0x06F9,
-}
-
-local function valid(data)
- local features = data.resources.features
- if features then
- for k, v in next, features do
- for k, v in next, v do
- if v.arab then
- return true
- end
- end
- end
- end
-end
-
-local specification = {
- {
- type = "substitution",
- features = { arab = { urd = true, dflt = true } },
- order = { "anum" },
- data = anum_arabic,
- valid = valid,
- },
- {
- type = "substitution",
- features = { arab = { urd = true } },
- order = { "anum" },
- data = anum_persian,
- valid = valid,
- },
-}
-
-addotffeature("anum",specification)
-
-registerotffeature {
- -- this makes it a known feature (in tables)
- name = "anum",
- description = "arabic digits",
-}
-
--- -- example:
---
--- fonts.handlers.otf.addfeature {
--- name = "hangulfix",
--- type = "substitution",
--- features = { ["hang"] = { ["*"] = true } },
--- data = {
--- [0x1160] = 0x119E,
--- },
--- order = { "hangulfix" },
--- flags = { },
--- prepend = true,
--- })
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-imp-tracing.lua b/Master/texmf-dist/tex/context/base/mkiv/font-imp-tracing.lua
deleted file mode 100644
index 6ce44514372..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/font-imp-tracing.lua
+++ /dev/null
@@ -1,281 +0,0 @@
-if not modules then modules = { } end modules ['font-imp-tracing'] = {
- version = 1.001,
- comment = "companion to font-ini.mkiv and hand-ini.mkiv",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
-if not context then return end
-
-local next, type = next, type
-local concat = table.concat
-local formatters = string.formatters
-
-local fonts = fonts
-
-local handlers = fonts.handlers
-local registerotffeature = handlers.otf.features.register
-local registerafmfeature = handlers.afm.features.register
-
-local settings_to_array = utilities.parsers.settings_to_array
-local setmetatableindex = table.setmetatableindex
-
-local helpers = fonts.helpers
-local appendcommandtable = helpers.appendcommandtable
-local prependcommands = helpers.prependcommands
-local charcommand = helpers.commands.char
-
-local variables = interfaces.variables
-
-local v_background = variables.background
-local v_frame = variables.frame
-local v_empty = variables.empty
-local v_none = variables.none
-
--- for zhichu chen (see mailing list archive): we might add a few more variants
--- in due time
---
--- \definefontfeature[boxed][default][boundingbox=yes] % paleblue
---
--- maybe:
---
--- \definecolor[DummyColor][s=.75,t=.5,a=1] {\DummyColor test} \nopdfcompression
---
--- local gray = { "pdf", "origin", "/Tr1 gs .75 g" }
--- local black = { "pdf", "origin", "/Tr0 gs 0 g" }
-
--- boundingbox={yes|background|frame|empty|<color>}
-
-local bp = number.dimenfactors.bp
-local r = 16384 * bp -- 65536 // 4
-local f_1 = formatters["%.6F w 0 %.6F %.6F %.6F re f"]
-local f_2 = formatters["[] 0 d 0 J %.6F w %.6F %.6F %.6F %.6F re S"]
-
--- change this into w h d instead of h d w
-
-local backcache = setmetatableindex(function(t,h)
- local h = h * bp
- local v = setmetatableindex(function(t,d)
- local d = d * bp
- local v = setmetatableindex(function(t,w)
- local v = { "pdf", "origin", f_1(r,-d,w*bp,h+d) }
- t[w] = v
- return v
- end)
- t[d] = v
- return v
- end)
- t[h] = v
- return v
-end)
-
-local forecache = setmetatableindex(function(t,h)
- local h = h * bp
- local v = setmetatableindex(function(t,d)
- local d = d * bp
- local v = setmetatableindex(function(t,w)
- -- the frame goes through the boundingbox
- local v = { "pdf", "origin", f_2(r,r/2,-d+r/2,w*bp-r,h+d-r) }
- t[w] = v
- return v
- end)
- t[d] = v
- return v
- end)
- t[h] = v
- return v
-end)
-
-local startcolor = nil
-local stopcolor = nil
-
-local function initialize(tfmdata,key,value)
- if value then
- if not backcolors then
- local vfspecials = backends.pdf.tables.vfspecials
- startcolor = vfspecials.startcolor
- stopcolor = vfspecials.stopcolor
- end
- local characters = tfmdata.characters
- local rulecache = backcache
- local showchar = true
- local color = "palegray"
- if type(value) == "string" then
- value = settings_to_array(value)
- for i=1,#value do
- local v = value[i]
- if v == v_frame then
- rulecache = forecache
- elseif v == v_background then
- rulecache = backcache
- elseif v == v_empty then
- showchar = false
- elseif v == v_none then
- color = nil
- else
- color = v
- end
- end
- end
- local gray = color and startcolor(color) or nil
- local black = gray and stopcolor or nil
- for unicode, character in next, characters do
- local width = character.width or 0
- local height = character.height or 0
- local depth = character.depth or 0
- local rule = rulecache[height][depth][width]
- if showchar then
- local commands = character.commands
- if commands then
- if gray then
- character.commands = prependcommands (
- commands, gray, rule, black
- )
- else
- character.commands = prependcommands (
- commands, rule
- )
- end
- else
- local char = charcommand[unicode]
- if gray then
- character.commands = {
- gray, rule, black, char
- }
- else
- character.commands = {
- rule, char
- }
- end
- end
- else
- if gray then
- character.commands = {
- gray, rule, black
- }
- else
- character.commands = {
- rule
- }
- end
- end
- end
- end
-end
-
-local specification = {
- name = "boundingbox",
- description = "show boundingbox",
- manipulators = {
- base = initialize,
- node = initialize,
- }
-}
-
-registerotffeature(specification)
-registerafmfeature(specification)
-
-local f_m = formatters["%F %F m"]
-local f_l = formatters["%F %F l"]
-local f_b = formatters["[] 0 d 0 J %.6F w"]
-local f_e = formatters["s"]
-
-local function ladder(list,docolor,nocolor,lst,offset,sign,default)
- local l = lst[1]
- local x1 = bp * (offset + l.kern) * sign
- local y1 = bp * l.height
- local t = { f_b(r,r/2), f_m(x1,y1) }
- local n = 2
- local m = #lst
- if default > 0 then
- default = default * bp + r
- else
- default = default * bp - r
- end
- if m == 1 then
- n = n + 1 t[n] = f_l(x1,default)
- else
- for i=1,m do
- local l = lst[i]
- local x2 = bp * (offset + l.kern) * sign
- local y2 = bp * l.height
- if i > 1 and y2 == 0 then
- y2 = default
- end
- n = n + 1 t[n] = f_l(x2,y1)
- n = n + 1 t[n] = f_l(x2,y2)
- x1, y1 = x2, y2
- end
- end
- n = n + 1 t[n] = f_e()
- list[#list+1] = docolor
- list[#list+1] = { "pdf", "origin", concat(t," ") }
- list[#list+1] = nocolor
-end
-
-local function initialize(tfmdata,key,value)
- if value then
- if not backcolors then
- local vfspecials = backends.pdf.tables.vfspecials
- startcolor = vfspecials.startcolor
- stopcolor = vfspecials.stopcolor
- end
- local characters = tfmdata.characters
- local brcolor = startcolor("darkred")
- local trcolor = startcolor("darkgreen")
- local blcolor = startcolor("darkblue")
- local tlcolor = startcolor("darkyellow")
- local black = stopcolor
- for unicode, character in next, characters do
- local mathkern = character.mathkern
- if mathkern then
- -- more efficient would be co collect more in one pdf
- -- directive but this is hardly used so not worth the
- -- effort
- local width = character.width or 0
- local height = character.height or 0
- local depth = character.depth or 0
- local list = { }
- local br = mathkern.bottom_right
- local tr = mathkern.top_right
- local bl = mathkern.bottom_left
- local tl = mathkern.top_left
- if br then
- ladder(list,brcolor,black,br,width,1,height)
- end
- if tr then
- ladder(list,trcolor,black,tr,width,1,-depth)
- end
- if bl then
- ladder(list,blcolor,black,bl,0,-1,height)
- end
- if tl then
- ladder(list,tlcolor,black,tl,0,-1,-depth)
- end
- if #list > 0 then
- local commands = character.commands
- if commands then
- character.commands = appendcommandtable(commands,list)
- else
- list[#list+1] = charcommand[unicode]
- character.commands = list
- end
- end
- end
- end
- end
-end
-
-local specification = {
- name = "staircase",
- description = "show staircase kerns",
- position=1,
- manipulators = {
- base = initialize,
- node = initialize,
- }
-}
-
-registerotffeature(specification)
-registerafmfeature(specification)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-imp-unicode.lua b/Master/texmf-dist/tex/context/base/mkiv/font-imp-unicode.lua
deleted file mode 100644
index ddb965ec977..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/font-imp-unicode.lua
+++ /dev/null
@@ -1,82 +0,0 @@
-if not modules then modules = { } end modules ['font-imp-unicode'] = {
- version = 1.001,
- comment = "companion to font-ini.mkiv and hand-ini.mkiv",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
-if not context then return end
-
-local next = next
-
-local fonts = fonts
-local helpers = fonts.helpers
-local constructors = fonts.constructors
-local registerotffeature = fonts.handlers.otf.features.register
-
-local extraprivates = helpers.extraprivates
-local addprivate = helpers.addprivate
-
-local function initialize(tfmdata)
- for i=1,#extraprivates do
- local e = extraprivates[i]
- local c = e[2](tfmdata)
- if c then
- addprivate(tfmdata, e[1], c)
- end
- end
-end
-
-constructors.newfeatures.otf.register {
- name = "extraprivates",
- description = "extra privates",
- default = true,
- manipulators = {
- base = initialize,
- node = initialize,
- }
-}
-
-local tounicode = fonts.mappings.tounicode
-
-local function initialize(tfmdata,key,value)
- if value == "ligatures" then
- local private = fonts.constructors and fonts.constructors.privateoffset or 0xF0000
- local collected = fonts.handlers.otf.readers.getcomponents(tfmdata.shared.rawdata)
- if collected and next(collected)then
- for unicode, char in next, tfmdata.characters do
- local u = collected[unicode]
- if u then
- local n = #u
- for i=1,n do
- if u[i] > private then
- n = 0
- break
- end
- end
- if n > 0 then
- if n == 1 then
- u = u[1]
- end
- char.unicode = u
- char.tounicode = tounicode(u)
- end
- end
- end
- end
- end
-end
-
--- forceunicodes=ligatures : aggressive lig resolving (e.g. for emoji)
---
--- kind of like: \enabletrackers[fonts.mapping.forceligatures]
-
-registerotffeature {
- name = "forceunicodes",
- description = "forceunicodes",
- manipulators = {
- base = initialize,
- node = initialize,
- }
-}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-ini.lua b/Master/texmf-dist/tex/context/base/mkiv/font-ini.lua
index 462e30bf909..3d5dd27a2d5 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-ini.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-ini.lua
@@ -10,45 +10,22 @@ if not modules then modules = { } end modules ['font-ini'] = {
<p>Not much is happening here.</p>
--ldx]]--
-local allocate = utilities.storage.allocate
-local sortedhash = table.sortedhash
+local allocate = utilities.storage.allocate
-fonts = fonts or { }
-local fonts = fonts
+fonts = fonts or { }
+local fonts = fonts
-local identifiers = allocate()
+fonts.hashes = fonts.hashes or { identifiers = allocate() }
+fonts.tables = fonts.tables or { }
+fonts.helpers = fonts.helpers or { }
+fonts.tracers = fonts.tracers or { } -- for the moment till we have move to moduledata
+fonts.specifiers = fonts.specifiers or { } -- in format !
-fonts.hashes = fonts.hashes or { identifiers = identifiers }
-fonts.tables = fonts.tables or { }
-fonts.helpers = fonts.helpers or { }
-fonts.tracers = fonts.tracers or { } -- for the moment till we have move to moduledata
-fonts.specifiers = fonts.specifiers or { } -- in format !
-
-fonts.analyzers = { } -- not needed here
-fonts.readers = { }
-fonts.definers = { methods = { } }
-fonts.loggers = { register = function() end }
+fonts.analyzers = { } -- not needed here
+fonts.readers = { }
+fonts.definers = { methods = { } }
+fonts.loggers = { register = function() end }
if context then
-
- font.originaleach = font.each
-
- function font.each()
- return sortedhash(identifiers)
- end
-
fontloader = nil
-
end
-
--- Outside context one can bump textbase to some higher value but only the
--- textbase given here is officially supported (read: bug testing etc will
--- use the values below).
-
-fonts.privateoffsets = {
- textbase = 0xF0000, -- used for hidden (opentype features)
- textextrabase = 0xFD000, -- used for visible by name
- mathextrabase = 0xFE000, -- used for visible by code
- mathbase = 0xFF000, -- used for hidden (virtual math)
- keepnames = false, -- when set to true names are always kept (not for context)
-}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-ini.mkvi b/Master/texmf-dist/tex/context/base/mkiv/font-ini.mkvi
index dd8a5f14834..69318291929 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-ini.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-ini.mkvi
@@ -341,16 +341,12 @@
\the\everybodyfont
\settrue\c_font_synchronize}
-\let\savedfont\empty
-
-\installmacrostack\savedfont
-
\unexpanded\def\savefont
{\edef\savedfont{\the\font}% gives \csname
- \push_macro_savedfont}
+ \pushmacro\savedfont}
\unexpanded\def\restorefont
- {\pop_macro_savedfont
+ {\popmacro\savedfont
\savedfont}
\unexpanded\def\pushcurrentfont
@@ -428,7 +424,7 @@
%
% \def\normalizebodyfontsize_indeed#macro#body%
% {\edef#macro{\ctxcommand{nbfs(\number\dimexpr#body,\number\fontdigits)}}%
-% \expandafter\glet\csname\??fontnormalizedbody\number\fontdigits:\number\dimexpr#body\endcsname#macro}
+% \global\expandafter\let\csname\??fontnormalizedbody\number\fontdigits:\number\dimexpr#body\endcsname#macro}
%
% \def\thenormalizedbodyfontsize#body%
% {\ctxcommand{nbfs(\number\dimexpr#body\relax,\number\fontdigits)}}
@@ -443,7 +439,7 @@
\def\normalizebodyfontsize_indeed#macro#body%
{\edef#macro{\clf_nbfs\dimexpr#body\relax}%
- \expandafter\glet\csname\??fontnormalizedbody\number\dimexpr#body\endcsname#macro}
+ \global\expandafter\let\csname\??fontnormalizedbody\number\dimexpr#body\endcsname#macro}
\def\thenormalizedbodyfontsize#body%
{\clf_nbfs\dimexpr#body\relax}
@@ -587,7 +583,8 @@
\def\font_basics_define_fontstyle[#commands][#style]% style: rm ss tt ...
{\ifcsname\??fontstyleknown#style\endcsname \else % can be delayed till used (cg, hw)
\font_helpers_register_style{#style}%
- \toksapp\t_font_style_commands{\m_font_style_command{#style}}%
+ % todo: apptoks
+ \t_font_style_commands\expandafter{\the\t_font_style_commands\m_font_style_command{#style}}%
\fi
\processcommalist[#commands]{\font_basics_define_fontstyle_indeed{#style}}}
@@ -598,14 +595,17 @@
\unexpanded\def\definefontsize[#size]%
{\ifcsname\??fontsizeknown#size\endcsname \else
\font_helpers_register_size{#size}%
- \toksapp\t_font_size_commands{\m_font_size_command{#size}}%
+ \t_font_size_commands\expandafter{\the\t_font_size_commands
+ \m_font_size_command{#size}}%
\fi
\font_helpers_check_fontname_combinations}
\unexpanded\def\definefontalternative[#alternative]%
{\ifcsname\??fontalternativeknown#alternative\endcsname \else
\font_helpers_register_alternative{#alternative}%
- \toksapp\t_font_alternative_commands{\m_font_alternative_command{#alternative}}%
+ % todo: apptoks
+ \t_font_alternative_commands\expandafter{\the\t_font_alternative_commands
+ \m_font_alternative_command{#alternative}}%
\fi
\font_helpers_check_fontname_combinations}
@@ -775,7 +775,7 @@
\unexpanded\def\font_helpers_low_level_define#specification#csname%
{% we can now set more at the lua end
- \glet\somefontname\defaultfontfile
+ \global\let\somefontname\defaultfontfile
\let\somefontsize\empty
\clf_definefont_one{\detokenize\expandafter{\normalexpanded{#specification}}}% the escapestring catches at \somedimen
% sets \scaledfontmode and \somefontname and \somefontsize
@@ -912,7 +912,7 @@
%D The following macros are used at the \LUA\ end. Watch the \type {\normal}
%D hackery: this makes the mkvi parser happy.
-% \normaldef\fntsetdefname {\glet\somefontname\defaultfontfile} % do before calling
+% \normaldef\fntsetdefname {\global\let\somefontname\defaultfontfile} % do before calling
% \normaldef\fntsetnopsize {\let\somefontsize\empty} % do before calling
% \normaldef\fntsetsomename{\normalgdef\somefontname} % takes argument
% \normaldef\fntsetsomesize{\normaldef\somefontsize} % takes argument
@@ -1038,7 +1038,7 @@
{\begingroup
\font_basics_define_font[#name][#specification][#settings]%
\csname#name\endcsname
- \glet\lastglobalrawfontcall\lastrawfontcall
+ \global\let\lastglobalrawfontcall\lastrawfontcall
\endgroup
\expandafter\let\csname#name\endcsname\lastglobalrawfontcall}
@@ -1377,16 +1377,16 @@
%D settings (just to be sure, as it's not really needed).
\def\font_basics_define_body_font_environment_empty[#body][#settings][#dummy]%
- {\push_macro_fontclass
+ {\pushmacro\fontclass
\let\fontclass\empty
\font_basics_define_body_font_environment_class[][#body][#settings]%
- \pop_macro_fontclass}
+ \popmacro\fontclass}
\def\font_basics_define_body_font_environment_unset[#body][#dummya][#dummyb]%
- {\push_macro_fontclass
+ {\pushmacro\fontclass
\let\fontclass\empty
\font_basics_define_body_font_environment_class[][#body][]%
- \pop_macro_fontclass}
+ \popmacro\fontclass}
%D We don't check too soon as we can refer to later definitions.
@@ -1397,13 +1397,13 @@
\ifcsname\??fontenvironmentknown#class#normalizedbody\endcsname
% environment and size already defined
\else\ifproductionrun
- \push_macro_fontclass
+ \pushmacro\fontclass
\edef\fontclass{#class}%
\font_helpers_register_environment{#class}{#normalizedbody}%
\settrue\c_font_defining_environment_state
\font_helpers_define_unknown_font{#normalizedbody}% current class
\setfalse\c_font_defining_environment_state
- \pop_macro_fontclass
+ \popmacro\fontclass
\fi\fi
\font_helpers_register_fontbody{#normalizedbody}}
@@ -1527,12 +1527,12 @@
\fi}
\def\font_basics_define_body_font_class_given[#1][#2][#3]#4%
- {\push_macro_fontclass
+ {\pushmacro\fontclass
\doifelse{#4}\s!default
{\let\fontclass\empty}
{\def\fontclass{#4}}%
\definebodyfont[#1][#2][#3]%
- \pop_macro_fontclass}
+ \popmacro\fontclass}
\def\font_basics_define_body_font_class_known
{\ifthirdargument
@@ -1644,13 +1644,13 @@
\unexpanded\def\font_basics_define_body_font_yes_xx[#one#two#rest=#value]% global
{\ifcsname\m_font_asked_style#one#two#rest\endcsname\else\font_basics_check_fontname_combination\m_font_asked_style{#one#two}{#rest}\fi
- \expandafter\glet\csname\??fontinstanceclass\fontclass-\m_font_asked_body-\m_font_asked_style-#one#two-#rest-1\endcsname\undefined
+ \global\expandafter\let\csname\??fontinstanceclass\fontclass-\m_font_asked_body-\m_font_asked_style-#one#two-#rest-1\endcsname\undefined
\unexpanded\expandafter\normalxdef\csname\??fontinstanceready\fontclass-\m_font_asked_body-\m_font_asked_style-#one#two-#rest-0\endcsname
{\font_helpers_trigger{\m_font_asked_body-\m_font_asked_style-#one#two#rest-0}{\number\p_font_rscale}{\m_font_asked_body}{\normalunexpanded{#value}}}%
- \expandafter\glet\csname\??fontinstanceclass\fontclass-\m_font_asked_body-\m_font_asked_style-#one#two-#rest-2\endcsname\undefined
+ \global\expandafter\let\csname\??fontinstanceclass\fontclass-\m_font_asked_body-\m_font_asked_style-#one#two-#rest-2\endcsname\undefined
\unexpanded\expandafter\normalxdef\csname\??fontinstanceready\fontclass-\m_font_asked_body-\m_font_asked_style-#one#two-#rest-4\endcsname
{\font_helpers_trigger{\m_font_asked_body-\m_font_asked_style-#one#two#rest-4}{\number\p_font_rscale}{\m_font_asked_body}{\normalunexpanded{#value}}}%
- \expandafter\glet\csname\??fontinstanceclass\fontclass-\m_font_asked_body-\m_font_asked_style-#one#two-#rest-3\endcsname\undefined
+ \global\expandafter\let\csname\??fontinstanceclass\fontclass-\m_font_asked_body-\m_font_asked_style-#one#two-#rest-3\endcsname\undefined
\unexpanded\expandafter\normalxdef\csname\??fontinstanceready\fontclass-\m_font_asked_body-\m_font_asked_style-#one#two-#rest-5\endcsname
{\font_helpers_trigger{\m_font_asked_body-\m_font_asked_style-#one#two#rest-5}{\number\p_font_rscale}{\m_font_asked_body}{\normalunexpanded{#value}}}%
}
@@ -1673,9 +1673,9 @@
\unexpanded\def\font_basics_define_body_font_yes_mm[#one#two#rest=#value]% global
{%\ifcsname\s!mm\endcsname\else\font_basics_check_fontname_combination\s!mm{#one#two}{#rest}\fi
- \expandafter\glet\csname\??fontinstanceclass\fontclass-\m_font_asked_body-\s!mm-#one#two#rest-1\endcsname\undefined
- % \expandafter\glet\csname\??fontinstanceclass\fontclass-\m_font_asked_body-\s!mm-#one#two#rest-2\endcsname\undefined
- % \expandafter\glet\csname\??fontinstanceclass\fontclass-\m_font_asked_body-\s!mm-#one#two#rest-3\endcsname\undefined
+ \global\expandafter\let\csname\??fontinstanceclass\fontclass-\m_font_asked_body-\s!mm-#one#two#rest-1\endcsname\undefined
+ % \global\expandafter\let\csname\??fontinstanceclass\fontclass-\m_font_asked_body-\s!mm-#one#two#rest-2\endcsname\undefined
+ % \global\expandafter\let\csname\??fontinstanceclass\fontclass-\m_font_asked_body-\s!mm-#one#two#rest-3\endcsname\undefined
\unexpanded\expandafter\normalxdef\csname\??fontinstanceready\fontclass-\m_font_asked_body-\s!mm-#one#two#rest\endcsname
{\font_helpers_trigger{\m_font_asked_body-\s!mm-#one#two#rest}{\number\p_font_rscale}{\m_font_asked_body}{\normalunexpanded{#value}}}%
}
@@ -1727,8 +1727,7 @@
\font_helpers_process_style_list{\font_helpers_define_unknown_check_definitions{#body}}%
\ifconditional\c_font_defining_state
\ifconditional\c_font_defining_environment_state\else
- %\showmessage\m!fonts{14}{#body}% main
- \clf_registerunknownbodysize{#body}%
+ \showmessage\m!fonts{14}{#body}% main
\fi
\setfalse\c_font_defining_state
\font_helpers_register_fontbody{#body}%
@@ -1742,6 +1741,13 @@
\fi
\fi}
+% \def\font_helpers_define_unknown_check_sizes#body#relativesize%
+% {\ifcsname\??fontenvironments\s!default#relativesize\endcsname % fontclass ?
+% % how \lastnamedcs here
+% \expandafter\normalizebodyfontsize\csname\??fontenvironments#body#relativesize\endcsname{\csname\??fontenvironments\s!default#relativesize\endcsname\dimexpr#body\relax}%
+% \settrue\c_font_defining_state
+% \fi}
+
\def\font_helpers_define_unknown_check_sizes#body#relativesize%
{\ifcsname\??fontenvironments\s!default#relativesize\endcsname % fontclass ?
\expandafter\normalizebodyfontsize\csname\??fontenvironments#body#relativesize\endcsname{\csname\??fontenvironments\s!default#relativesize\endcsname\dimexpr#body\relax}%
@@ -2357,7 +2363,7 @@
\noexpand\edef\noexpand\xtextface {\currentbodyfontdimension\s!x }%
\noexpand\edef\noexpand\xxtextface {\currentbodyfontdimension\s!xx }%
}%
- \expandafter\glet\csname\??fontbodyfaces\fontbody\endcsname\font_basics_set_faces}
+ \global\expandafter\let\csname\??fontbodyfaces\fontbody\endcsname\font_basics_set_faces}
% \def\currentbodyfontdimension#parameter%
% {\the\dimexpr
@@ -2499,15 +2505,15 @@
%D \stoptyping
% \unexpanded\def\usebodyfont[#1]%
-% {\push_macro_fontclass
+% {\pushmacro\fontclass
% \switchtobodyfont[#1]%
-% \pop_macro_fontclass
+% \popmacro\fontclass
% \ifx\fontclass\empty\else\setupbodyfont\relax\fi}
% \unexpanded\def\usebodyfont[#1]%
-% {\push_macro_fontclass
+% {\pushmacro\fontclass
% \font_helpers_set_font\zerocount{#1}%
-% \pop_macro_fontclass
+% \popmacro\fontclass
% \ifx\fontclass\empty \else
% \font_basics_setupbodyfont_nop
% \fi}
@@ -2710,7 +2716,7 @@
\unexpanded\def\font_basics_predefine#1#2%
{\font_basics_defined_font_yes[#2]%
- \expandafter\glet\csname#1\expandafter\endcsname\csname\v_font_identifier_basic\endcsname}
+ \global\expandafter\let\csname#1\expandafter\endcsname\csname\v_font_identifier_basic\endcsname}
\unexpanded\def\font_basics_predefined#1%
{\font_basics_predefine{\??predefinedfont#1}{#1}}
@@ -2757,26 +2763,7 @@
\expandafter\getprivatechar
\fi}
-%D Some fonts can have color specifiers:
-%D
-%D \starttyping
-%D \definefontfeature[seguiemj-cl][default][colr=yes,ccmp=yes,dist=yes]
-%D \definefontsynonym[emoji][seguiemj*seguiemj-cl]
-%D
-%D \definecolor[emoji-red] [r=.4]
-%D \definecolor[emoji-gray][s=1,t=.5,a=1]
-%D
-%D %definefontcolorpalette [emoji-r] [emoji-red,emoji-gray,textcolor] % bad
-%D \definefontcolorpalette [emoji-r] [emoji-red,emoji-gray] % okay
-%D
-%D \definefontfeature[seguiemj-r][ccmp=yes,dist=yes,colr=emoji-r]
-%D
-%D \definefont[MyEmojiR][seguiemj*seguiemj-r @ 100pt]
-%D
-%D \startTEXpage[offset=10pt]
-%D \MyEmojiR\resolvedemoji{triangular ruler}
-%D \stopTEXpage
-%D \stoptyping
+% new
\unexpanded\def\definefontcolorpalette
{\dodoubleargument\font_define_color_palette}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-lib.mkvi b/Master/texmf-dist/tex/context/base/mkiv/font-lib.mkvi
index 3cff8175161..24ab687817a 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-lib.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-lib.mkvi
@@ -26,27 +26,22 @@
% the otf font loader:
-% helpers
-
-
\registerctxluafile{font-otr}{optimize} % opentype fontloader
\registerctxluafile{font-web}{} % opentype fontloader
\registerctxluafile{font-cff}{optimize} % quadratic outlines
\registerctxluafile{font-ttf}{optimize} % cubic outlines
\registerctxluafile{font-dsp}{optimize} % ... for this one
\registerctxluafile{font-hsh}{} % hashes used by context
-\registerctxluafile{font-vfc}{}
-\registerctxluafile{font-prv}{} % needs hashes
-\registerctxluafile{font-nod}{optimize}
+\registerctxluafile{font-nod}{}
\registerctxluafile{font-oti}{} % otf initialization
\registerctxluafile{font-ott}{} % otf tables (first)
\registerctxluafile{font-otl}{}
\registerctxluafile{font-oto}{}
-\registerctxluafile{font-otj}{optimize}
+\registerctxluafile{font-otj}{}
\registerctxluafile{font-oup}{}
\registerctxluafile{font-ota}{}
-\registerctxluafile{font-ots}{optimize}
-\registerctxluafile{font-otd}{optimize}
+\registerctxluafile{font-ots}{}
+\registerctxluafile{font-otd}{}
\registerctxluafile{font-otc}{}
\registerctxluafile{font-oth}{}
\registerctxluafile{font-osd}{}
@@ -60,12 +55,7 @@
% tfm
-\doifelsefileexists {font-tpk.lua} {
- \registerctxluafile{font-tpk}{optimize}
- \registerctxluafile{font-tfm}{}
-} {
- \registerctxluafile{font-tfm}{}
-}
+\registerctxluafile{font-tfm}{}
% name database
@@ -97,28 +87,7 @@
\registerctxluafile{font-def}{}
\registerctxluafile{font-ctx}{} % after def as it overloads
-% extensions, order matters
-
-\registerctxluafile{font-imp-ligatures}{}
-\registerctxluafile{font-imp-tex}{}
-\registerctxluafile{font-imp-reorder}{}
-\registerctxluafile{font-imp-properties}{}
-\registerctxluafile{font-imp-unicode}{}
-\registerctxluafile{font-imp-math}{}
-\registerctxluafile{font-imp-notused}{}
-\registerctxluafile{font-imp-effects}{}
-\registerctxluafile{font-imp-quality}{}
-\registerctxluafile{font-imp-italics}{}
-\registerctxluafile{font-imp-dimensions}{}
-
-\doifelsefileexists{font-imp-scripts.lua} {
- \registerctxluafile{font-imp-scripts}{}
-} {
- % not yet, lmtx feature
-}
-
-\registerctxluafile{font-imp-tracing}{} % comes last!
-
+\registerctxluafile{font-ext}{}
\registerctxluafile{font-fbk}{}
\registerctxluafile{font-aux}{}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-map.lua b/Master/texmf-dist/tex/context/base/mkiv/font-map.lua
index d931b822e55..66cf2db3996 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-map.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-map.lua
@@ -168,73 +168,44 @@ local function tounicode16sequence(unicodes)
return concat(t)
end
--- local function tounicode(unicode)
--- if type(unicode) == "table" then
--- local t = { }
--- for l=1,#unicode do
--- local u = unicode[l]
--- if u < 0xD7FF or (u > 0xDFFF and u <= 0xFFFF) then
--- t[l] = f_single(u)
--- else
--- u = u - 0x10000
--- t[l] = f_double(rshift(u,10)+0xD800,u%1024+0xDC00)
--- end
--- end
--- return concat(t)
--- else
--- if unicode < 0xD7FF or (unicode > 0xDFFF and unicode <= 0xFFFF) then
--- return f_single(unicode)
--- else
--- unicode = unicode - 0x10000
--- return f_double(rshift(unicode,10)+0xD800,unicode%1024+0xDC00)
--- end
--- end
--- end
+local function tounicode(unicode)
+ if type(unicode) == "table" then
+ local t = { }
+ for l=1,#unicode do
+ local u = unicode[l]
+ if u < 0xD7FF or (u > 0xDFFF and u <= 0xFFFF) then
+ t[l] = f_single(u)
+ else
+ u = u - 0x10000
+ t[l] = f_double(rshift(u,10)+0xD800,u%1024+0xDC00)
+ end
+ end
+ return concat(t)
+ else
+ if unicode < 0xD7FF or (unicode > 0xDFFF and unicode <= 0xFFFF) then
+ return f_single(unicode)
+ else
+ unicode = unicode - 0x10000
+ return f_double(rshift(unicode,10)+0xD800,unicode%1024+0xDC00)
+ end
+ end
+end
-local unknown = f_single(0xFFFD)
+-- no real gain on runs
--- local function tounicode(unicode)
--- if type(unicode) == "table" then
--- local t = { }
--- for l=1,#unicode do
--- t[l] = tounicode(unicode[l])
--- end
--- return concat(t)
--- elseif unicode >= 0x00E000 and unicode <= 0x00F8FF then
--- return unknown
--- elseif unicode >= 0x0F0000 and unicode <= 0x0FFFFF then
--- return unknown
--- elseif unicode >= 0x100000 and unicode <= 0x10FFFF then
--- return unknown
--- elseif unicode < 0xD7FF or (unicode > 0xDFFF and unicode <= 0xFFFF) then
--- return f_single(unicode)
--- else
--- unicode = unicode - 0x10000
--- return f_double(rshift(unicode,10)+0xD800,unicode%1024+0xDC00)
--- end
--- end
-
--- local hash = table.setmetatableindex(function(t,k)
+-- local hash = table.setmetatableindex(function(t,u)
-- local v
--- if k >= 0x00E000 and k <= 0x00F8FF then
--- v = unknown
--- elseif k >= 0x0F0000 and k <= 0x0FFFFF then
--- v = unknown
--- elseif k >= 0x100000 and k <= 0x10FFFF then
--- v = unknown
--- elseif k < 0xD7FF or (k > 0xDFFF and k <= 0xFFFF) then
--- v = f_single(k)
+-- if u < 0xD7FF or (u > 0xDFFF and u <= 0xFFFF) then
+-- v = f_single(u)
-- else
--- local k = k - 0x10000
--- v = f_double(rshift(k,10)+0xD800,k%1024+0xDC00)
+-- u = u - 0x10000
+-- v = f_double(rshift(u,10)+0xD800,u%1024+0xDC00)
-- end
--- t[k] = v
+-- t[u] = v
-- return v
-- end)
--
--- table.makeweak(hash)
---
--- local function tounicode(unicode)
+-- local function tounicode(unicode,name)
-- if type(unicode) == "table" then
-- local t = { }
-- for l=1,#unicode do
@@ -246,69 +217,6 @@ local unknown = f_single(0xFFFD)
-- end
-- end
-local hash = { }
-local conc = { }
-
--- table.makeweak(hash)
-
--- table.setmetatableindex(hash,function(t,k)
--- if type(k) == "table" then
--- local n = #k
--- for l=1,n do
--- conc[l] = hash[k[l]]
--- end
--- return concat(conc,"",1,n)
--- end
--- local v
--- if k >= 0x00E000 and k <= 0x00F8FF then
--- v = unknown
--- elseif k >= 0x0F0000 and k <= 0x0FFFFF then
--- v = unknown
--- elseif k >= 0x100000 and k <= 0x10FFFF then
--- v = unknown
--- elseif k < 0xD7FF or (k > 0xDFFF and k <= 0xFFFF) then
--- v = f_single(k)
--- else
--- local k = k - 0x10000
--- v = f_double(rshift(k,10)+0xD800,k%1024+0xDC00)
--- end
--- t[k] = v
--- return v
--- end)
---
--- local function tounicode(unicode)
--- return hash[unicode]
--- end
-
-table.setmetatableindex(hash,function(t,k)
- if k < 0xD7FF or (k > 0xDFFF and k <= 0xFFFF) then
- v = f_single(k)
- else
- local k = k - 0x10000
- v = f_double(rshift(k,10)+0xD800,k%1024+0xDC00)
- end
- t[k] = v
- return v
-end)
-
-local function tounicode(k)
- if type(k) == "table" then
- local n = #k
- for l=1,n do
- conc[l] = hash[k[l]]
- end
- return concat(conc,"",1,n)
- elseif k >= 0x00E000 and k <= 0x00F8FF then
- return unknown
- elseif k >= 0x0F0000 and k <= 0x0FFFFF then
- return unknown
- elseif k >= 0x100000 and k <= 0x10FFFF then
- return unknown
- else
- return hash[k]
- end
-end
-
local function fromunicode16(str)
if #str == 4 then
return tonumber(str,16)
@@ -523,8 +431,7 @@ function mappings.addtounicode(data,filename,checklookups,forceligatures)
glyph.unicode = unicode
end
else
- local t = { }
- local n = 0
+ local t, n = { }, 0
for l=1,nsplit do
local base = split[l]
local u = unicodes[base] or unicodevector[base] or contextvector[name]
@@ -580,17 +487,12 @@ function mappings.addtounicode(data,filename,checklookups,forceligatures)
missing[du] = true
nofmissing = nofmissing + 1
end
- else
- -- maybe a message or so
end
end
else
local overload = overloads[du]
if overload then
glyph.unicode = overload.unicode
- elseif not glyph.unicode then
- missing[du] = true
- nofmissing = nofmissing + 1
end
end
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-mat.mkvi b/Master/texmf-dist/tex/context/base/mkiv/font-mat.mkvi
index 64810d3272a..0134f3fe616 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-mat.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-mat.mkvi
@@ -263,12 +263,12 @@
\fi}
\def\font_helpers_bidirectional_mathstrategy_nop_changed
- {\textfont \c_font_fam_mr_lr\textfont \c_font_fam_mr
- \scriptfont \c_font_fam_mr_lr\scriptfont \c_font_fam_mr
- \scriptscriptfont\c_font_fam_mr_lr\scriptscriptfont\c_font_fam_mr
- \textfont \c_font_fam_mr_rl\textfont \c_font_fam_mr
+ {\textfont \c_font_fam_mr_rl\textfont \c_font_fam_mr
\scriptfont \c_font_fam_mr_rl\scriptfont \c_font_fam_mr
- \scriptscriptfont\c_font_fam_mr_rl\scriptscriptfont\c_font_fam_mr}
+ \scriptscriptfont\c_font_fam_mr_rl\scriptscriptfont\c_font_fam_mr
+ \textfont \c_font_fam_mr_lr\textfont \c_font_fam_mr
+ \scriptfont \c_font_fam_mr_lr\scriptfont \c_font_fam_mr
+ \scriptscriptfont\c_font_fam_mr_lr\scriptscriptfont\c_font_fam_mr}
\appendtoks
\ifconditional\c_font_bidirectional_mathstrategy
@@ -313,12 +313,12 @@
{\textfont \c_font_fam_mb \textfont \c_font_fam_mr
\scriptfont \c_font_fam_mb \scriptfont \c_font_fam_mr
\scriptscriptfont\c_font_fam_mb \scriptscriptfont\c_font_fam_mr
- \textfont \c_font_fam_mb_lr\textfont \c_font_fam_mr_lr
- \scriptfont \c_font_fam_mb_lr\scriptfont \c_font_fam_mr_lr
- \scriptscriptfont\c_font_fam_mb_lr\scriptscriptfont\c_font_fam_mr_lr
\textfont \c_font_fam_mb_rl\textfont \c_font_fam_mr_rl
\scriptfont \c_font_fam_mb_rl\scriptfont \c_font_fam_mr_rl
- \scriptscriptfont\c_font_fam_mb_rl\scriptscriptfont\c_font_fam_mr_rl}
+ \scriptscriptfont\c_font_fam_mb_rl\scriptscriptfont\c_font_fam_mr_rl
+ \textfont \c_font_fam_mb_lr\textfont \c_font_fam_mr_lr
+ \scriptfont \c_font_fam_mb_lr\scriptfont \c_font_fam_mr_lr
+ \scriptscriptfont\c_font_fam_mb_lr\scriptscriptfont\c_font_fam_mr_lr}
\def\font_helpers_apply_complete_bold_mathstrategy
{\ifconditional\c_font_complete_bold_mathstrategy
@@ -425,16 +425,13 @@
\ifdefined\mathdefault \else \let\mathdefault\relax \fi
-\newconditional\c_math_bold
-
\unexpanded\def\mr % math regular
{\ifmmode
\font_helpers_synchronize_math_family_mr
\else
\font_helpers_set_current_font_alternative\s!mr
\fi
- \mathdefault
- \setfalse\c_math_bold}
+ \mathdefault}
\unexpanded\def\mb % math bold
{\ifmmode
@@ -442,17 +439,12 @@
\else
\font_helpers_set_current_font_alternative\s!mb
\fi
- \mathdefault
- \settrue\c_math_bold}
+ \mathdefault}
\appendtoks
\font_helpers_synchronize_math_family % auto bold
\to \everymathematics
-\appendtoks
- \ifconditional\c_math_bold\mb\fi
-\to \everymathematics
-
%D \macros
%D {bigmath,nobigmath}
%D
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-mis.lua b/Master/texmf-dist/tex/context/base/mkiv/font-mis.lua
index c75b9298454..e1f158c83b7 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-mis.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-mis.lua
@@ -8,20 +8,20 @@ if not modules then modules = { } end modules ['font-mis'] = {
fonts = fonts or { }
-local helpers = fonts.helpers or { }
-fonts.helpers = helpers
+fonts.helpers = fonts.helpers or { }
+local helpers = fonts.helpers
-local handlers = fonts.handlers or { }
-fonts.handlers = handlers
+fonts.handlers = fonts.handlers or { }
+local handlers = fonts.handlers
-local otf = handlers.otf or { }
-handlers.otf = otf
+handlers.otf = handlers.otf or { }
+local otf = handlers.otf
local readers = otf.readers
if readers then
- otf.version = otf.version or 3.107
+ otf.version = otf.version or 3.103
otf.cache = otf.cache or containers.define("fonts", "otl", otf.version, true)
function fonts.helpers.getfeatures(name,save)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-mps.lua b/Master/texmf-dist/tex/context/base/mkiv/font-mps.lua
index 89583595826..cde34f2ae22 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-mps.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-mps.lua
@@ -6,7 +6,6 @@ if not modules then modules = { } end modules ['font-mps'] = {
license = "see context related readme files"
}
-local tostring = tostring
local concat = table.concat
local formatters = string.formatters
@@ -36,17 +35,6 @@ local f_draw = formatters["draw %s;"]
local f_boundingbox = formatters["((%.6F,%.6F)--(%.6F,%.6F)--(%.6F,%.6F)--(%.6F,%.6F)--cycle)"]
local f_vertical = formatters["((%.6F,%.6F)--(%.6F,%.6F))"]
-directives.register("metapost.stripzeros", function()
-
- f_moveto = formatters["(%.6N,%.6N)"]
- f_lineto = formatters["--(%.6N,%.6N)"]
- f_curveto = formatters["..controls(%.6N,%.6N)and(%.6N,%.6N)..(%.6N,%.6N)"]
-
- f_boundingbox = formatters["((%.6N,%.6N)--(%.6N,%.6N)--(%.6N,%.6N)--(%.6N,%.6N)--cycle)"]
- f_vertical = formatters["((%.6N,%.6N)--(%.6N,%.6N))"]
-
-end)
-
function metapost.boundingbox(d,factor)
local bounds = d.boundingbox
local factor = factor or 1
@@ -109,12 +97,9 @@ function metapost.paths(d,xfactor,yfactor)
elseif operator =="q" then -- "quadraticto"
size = size + 1
-- first is always a moveto
- local l_x = xfactor*sequence[i-2]
- local l_y = yfactor*sequence[i-1]
- local m_x = xfactor*sequence[i+1]
- local m_y = yfactor*sequence[i+2]
- local r_x = xfactor*sequence[i+3]
- local r_y = yfactor*sequence[i+4]
+ local l_x, l_y = xfactor*sequence[i-2], yfactor*sequence[i-1]
+ local m_x, m_y = xfactor*sequence[i+1], yfactor*sequence[i+2]
+ local r_x, r_y = xfactor*sequence[i+3], yfactor*sequence[i+4]
path[size] = f_curveto (
l_x + 2/3 * (m_x-l_x),
l_y + 2/3 * (m_y-l_y),
@@ -152,12 +137,9 @@ function metapost.paths(d,xfactor,yfactor)
size = size + 1
-- first is always a moveto
local prev = segments[i-1]
- local l_x = xfactor*prev[#prev-2]
- local l_y = yfactor*prev[#prev-1]
- local m_x = xfactor*segment[1]
- local m_y = yfactor*segment[2]
- local r_x = xfactor*segment[3]
- local r_y = yfactor*segment[4]
+ local l_x, l_y = xfactor*prev[#prev-2], yfactor*prev[#prev-1]
+ local m_x, m_y = xfactor*segment[1], yfactor*segment[2]
+ local r_x, r_y = xfactor*segment[3], yfactor*segment[4]
path[size] = f_curveto (
l_x + 2/3 * (m_x-l_x),
l_y + 2/3 * (m_y-l_y),
@@ -214,10 +196,7 @@ function metapost.maxbounds(data,index,factor)
local boundingbox = glyph.boundingbox
local xmin, ymin, xmax, ymax
if not maxbounds then
- xmin = 0
- ymin = 0
- xmax = 0
- ymax = 0
+ xmin, ymin, xmax, ymax = 0, 0, 0, 0
for i=1,#glyphs do
local d = glyphs[i]
if d then
@@ -261,52 +240,45 @@ end
-- right time. It's probably why I like watching https://www.youtube.com/watch?v=c5FqpddnJmc
-- so much: precisely (and perfectly) timed too.
-local nodecodes = nodes.nodecodes -- no nuts yet
-local rulecodes = nodes.rulecodes
-
-local glyph_code = nodecodes.glyph
-local disc_code = nodecodes.disc
-local kern_code = nodecodes.kern
-local glue_code = nodecodes.glue
-local hlist_code = nodecodes.hlist
-local vlist_code = nodecodes.vlist
-local rule_code = nodecodes.rule
-
-local normalrule_code = rulecodes.normal
-
-local nuts = nodes.nuts
-local getnext = nuts.getnext
-local getid = nuts.getid
-local getlist = nuts.getlist
-local getsubtype = nuts.getsubtype
-local getfield = nuts.getfield
-local getbox = nuts.getbox
-local getwhd = nuts.getwhd
-local getkern = nuts.getkern
-local getshift = nuts.getshift
-local getwidth = nuts.getwidth
-local getheight = nuts.getheight
-local getdepth = nuts.getdepth
-local getexpansion = nuts.getexpansion
-local isglyph = nuts.isglyph
-
-local effective_glue = nuts.effective_glue
-
-local characters = fonts.hashes.characters
-local parameters = fonts.hashes.parameters
-local shapes = fonts.hashes.shapes
-local topaths = metapost.paths
-
-local f_code = formatters["mfun_do_outline_text_flush(%q,%i,%.6F,%.6F,%q)(%,t);"]
-local f_rule = formatters["mfun_do_outline_rule_flush(%q,%.6F,%.6F,%.6F,%.6F);"]
-local f_bounds = formatters["checkbounds(%.6F,%.6F,%.6F,%.6F);"]
-local s_nothing = "(origin scaled 10)"
-
-directives.register("metapost.stripzeros", function()
- f_code = formatters["mfun_do_outline_text_flush(%q,%i,%.6N,%.6N,%q)(%,t);"]
- f_rule = formatters["mfun_do_outline_rule_flush(%q,%.6N,%.6N,%.6N,%.6N);"]
- f_bounds = formatters["checkbounds(%.6N,%.6N,%.6N,%.6N);"]
-end)
+local nodecodes = nodes.nodecodes -- no nuts yet
+
+local glyph_code = nodecodes.glyph
+local disc_code = nodecodes.disc
+local kern_code = nodecodes.kern
+local glue_code = nodecodes.glue
+local hlist_code = nodecodes.hlist
+local vlist_code = nodecodes.vlist
+local rule_code = nodecodes.rule
+
+local normal_rule = nodes.rulecodes.normal
+
+local nuts = nodes.nuts
+local getnext = nuts.getnext
+local getid = nuts.getid
+local getlist = nuts.getlist
+local getchar = nuts.getchar
+local getfont = nuts.getfont
+local getsubtype = nuts.getsubtype
+local getfield = nuts.getfield
+local getbox = nuts.getbox
+local getwhd = nuts.getwhd
+local getkern = nuts.getkern
+local getshift = nuts.getshift
+local getwidth = nuts.getwidth
+local getheight = nuts.getheight
+local getdepth = nuts.getdepth
+
+local effective_glue = nuts.effective_glue
+
+local characters = fonts.hashes.characters
+local parameters = fonts.hashes.parameters
+local shapes = fonts.hashes.shapes
+local topaths = metapost.paths
+
+local f_code = formatters["mfun_do_outline_text_flush(%q,%i,%.6F,%.6F)(%,t);"]
+local f_rule = formatters["mfun_do_outline_rule_flush(%q,%.6F,%.6F,%.6F,%.6F);"]
+local f_bounds = formatters["checkbounds(%.6F,%.6F,%.6F,%.6F);"]
+local s_nothing = "(origin scaled 10)"
local sc = 10
local fc = number.dimenfactors.bp * sc / 10
@@ -330,14 +302,13 @@ function metapost.output(kind,font,char,advance,shift,ex)
local advance = advance or 0
local exfactor = ex or 0
local wfactor = 1
- local detail = kind == "p" and tostring(char) or ""
if exfactor ~= 0 then
wfactor = (1+(ex/units)/1000)
xfactor = xfactor * wfactor
end
local paths = topaths(glyf,xfactor,yfactor)
if paths then
- local code = f_code(kind,#paths,advance,shift,detail,paths)
+ local code = f_code(kind,#paths,advance,shift,paths)
return code, character.width * fc * wfactor
else
return "", 0
@@ -366,9 +337,9 @@ function fonts.metapost.boxtomp(n,kind)
horizontal = function(parent,current,xoffset,yoffset)
local dx = 0
while current do
- local char, id = isglyph(current)
- if char then
- local code, width = metapost.output(kind,id,char,xoffset+dx,yoffset,getexpansion(current))
+ local id = getid(current)
+ if id == glyph_code then
+ local code, width = metapost.output(kind,getfont(current),getchar(current),xoffset+dx,yoffset,getfield(current,"expansion_factor"))
result[#result+1] = code
dx = dx + width
elseif id == disc_code then
@@ -403,7 +374,7 @@ function fonts.metapost.boxtomp(n,kind)
dp = getdepth(parent)
end
local hd = (ht + dp) * fc
- if hd ~= 0 and getsubtype(current) == normalrule_code then
+ if hd ~= 0 and getsubtype(current) == normal_rule then
result[#result+1] = f_rule(kind,xoffset+dx+wd/2,yoffset+hd/2,wd,hd)
end
dx = dx + wd
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-nod.lua b/Master/texmf-dist/tex/context/base/mkiv/font-nod.lua
index a0eb88a252c..2670a924bbf 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-nod.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-nod.lua
@@ -32,10 +32,6 @@ nodes.tasks = tasks
local handlers = nodes.handlers or { }
nodes.handlers = handlers
-local nuts = nodes.nuts
-local tonut = nuts.tonut
-local tonode = nuts.tonode
-
local injections = nodes.injections or { }
nodes.injections = injections
@@ -56,17 +52,23 @@ local kern_code = nodecodes.kern
local dir_code = nodecodes.dir
local localpar_code = nodecodes.localpar
+local nuts = nodes.nuts
+local tonut = nuts.tonut
+local tonode = nuts.tonode
+
local getfield = nuts.getfield
local getnext = nuts.getnext
local getprev = nuts.getprev
local getid = nuts.getid
local getfont = nuts.getfont
local getsubtype = nuts.getsubtype
+local getchar = nuts.getchar
local getlist = nuts.getlist
local getdisc = nuts.getdisc
+local getcomponents = nuts.getcomponents
local isglyph = nuts.isglyph
local getkern = nuts.getkern
-local getdirection = nuts.getdirection
+local getdir = nuts.getdir
local getwidth = nuts.getwidth
local setbox = nuts.setbox
@@ -76,11 +78,10 @@ local setsubtype = nuts.setsubtype
local copy_node_list = nuts.copy_list
local hpack_node_list = nuts.hpack
local flush_node_list = nuts.flush_list
+local traverse_nodes = nuts.traverse
+----- traverse_id = nuts.traverse_id
local protect_glyphs = nuts.protect_glyphs
-local nextnode = nuts.traversers.node
-local nextglyph = nuts.traversers.glyph
-
local nodepool = nuts.pool
local new_glyph = nodepool.glyph
@@ -97,8 +98,11 @@ local fontparameters = hashes.parameters
local properties = nodes.properties.data
+-- direct.set_properties_mode(true,false)
+-- direct.set_properties_mode(true,true) -- default
+
local function freeze(h,where)
- for n in nextnode, h do -- todo: disc but not traced anyway
+ for n in traverse_nodes(tonut(h)) do -- todo: disc but not traced anyway
local p = properties[n]
if p then
local i = p.injections if i then p.injections = fastcopy(i) end
@@ -111,15 +115,15 @@ local function freeze(h,where)
end
function char_tracers.collect(head,list,tag,n)
+ head = tonut(head)
n = n or 0
- local ok = false
- local fn = nil
+ local ok, fn = false, nil
while head do
- local char, id = isglyph(head)
- if char then
- local font = id
- if font ~= fn then
- ok, fn = false, font
+ local c, id = isglyph(head)
+ if c then
+ local f = getfont(head)
+ if f ~= fn then
+ ok, fn = false, f
end
if not ok then
ok = true
@@ -128,23 +132,23 @@ function char_tracers.collect(head,list,tag,n)
list[n][tag] = { }
end
local l = list[n][tag]
- -- l[#l+1] = { char, font, i }
- l[#l+1] = { char, font }
+ -- l[#l+1] = { c, f, i }
+ l[#l+1] = { c, f }
elseif id == disc_code then
-- skip
-- local pre, post, replace = getdisc(head)
-- if replace then
- -- for n in nextglyph, replace do
+ -- for n in traverse_id(glyph_code,replace) do
-- l[#l+1] = { c, f }
-- end
-- end
-- if pre then
- -- for n in nextglyph, pre do
+ -- for n in traverse_id(glyph_code,pre) do
-- l[#l+1] = { c, f }
-- end
-- end
-- if post then
- -- for n in nextglyph, post do
+ -- for n in traverse_id(glyph_code,post) do
-- l[#l+1] = { c, f }
-- end
-- end
@@ -160,8 +164,7 @@ function char_tracers.equal(ta, tb)
return false
else
for i=1,#ta do
- local a = ta[i]
- local b = tb[i]
+ local a, b = ta[i], tb[i]
-- if a[1] ~= b[1] or a[2] ~= b[2] or a[3] ~= b[3] then
if a[1] ~= b[1] or a[2] ~= b[2] then
return false
@@ -218,12 +221,12 @@ function char_tracers.start()
function handlers.characters(head)
local n = #list
char_tracers.collect(head,list,'before',n)
- head = npc(head) -- for the moment tonode
+ local h, d = npc(tonode(head)) -- for the moment tonode
char_tracers.collect(head,list,'after',n)
if #list > n then
list[#list+1] = { }
end
- return head
+ return h, d
end
function char_tracers.stop()
tracers.list['characters'] = list
@@ -294,44 +297,47 @@ end
function step_tracers.features()
-- we cannot use first_glyph here as it only finds characters with subtype < 256
local f = collection[1]
- for n, char, font in nextglyph, f do
- local tfmdata = fontidentifiers[font]
- local features = tfmdata.resources.features
- local result_1 = { }
- local result_2 = { }
- local gpos = features and features.gpos or { }
- local gsub = features and features.gsub or { }
- for feature, value in table.sortedhash(tfmdata.shared.features) do
- if feature == "number" or feature == "features" then
- value = false
- elseif type(value) == "boolean" then
- if value then
- value = "yes"
- else
+ while f do
+ if getid(f) == glyph_code then
+ local tfmdata = fontidentifiers[getfont(f)]
+ local features = tfmdata.resources.features
+ local result_1 = { }
+ local result_2 = { }
+ local gpos = features and features.gpos or { }
+ local gsub = features and features.gsub or { }
+ for feature, value in table.sortedhash(tfmdata.shared.features) do
+ if feature == "number" or feature == "features" then
value = false
+ elseif type(value) == "boolean" then
+ if value then
+ value = "yes"
+ else
+ value = false
+ end
+ else
+ -- use value
end
+ if value then
+ if gpos[feature] or gsub[feature] or feature == "language" or feature == "script" then
+ result_1[#result_1+1] = formatters["%s=%s"](feature,value)
+ else
+ result_2[#result_2+1] = formatters["%s=%s"](feature,value)
+ end
+ end
+ end
+ if #result_1 > 0 then
+ context("{\\bf[basic:} %, t{\\bf]} ",result_1)
else
- -- use value
+ context("{\\bf[}no basic features{\\bf]} ")
end
- if value then
- if gpos[feature] or gsub[feature] or feature == "language" or feature == "script" then
- result_1[#result_1+1] = formatters["%s=%s"](feature,value)
- else
- result_2[#result_2+1] = formatters["%s=%s"](feature,value)
- end
+ if #result_2 > 0 then
+ context("{\\bf[extra:} %, t{\\bf]}",result_2)
+ else
+ context("{\\bf[}no extra features{\\bf]}")
end
+ return
end
- if #result_1 > 0 then
- context("{\\bf[basic:} %, t{\\bf]} ",result_1)
- else
- context("{\\bf[}no basic features{\\bf]} ")
- end
- if #result_2 > 0 then
- context("{\\bf[extra:} %, t{\\bf]}",result_2)
- else
- context("{\\bf[}no extra features{\\bf]}")
- end
- return
+ f = getnext(f)
end
end
@@ -343,15 +349,21 @@ end
function step_tracers.font(command)
local c = collection[1]
- for n, char, font in nextglyph, c do
- local name = file.basename(fontproperties[font].filename or "unknown")
- local size = fontparameters[font].size or 0
- if command then
- context[command](font,name,size) -- size in sp
+ while c do
+ local id = getid(c)
+ if id == glyph_code then
+ local font = getfont(c)
+ local name = file.basename(fontproperties[font].filename or "unknown")
+ local size = fontparameters[font].size or 0
+ if command then
+ context[command](font,name,size) -- size in sp
+ else
+ context("[%s: %s @ %p]",font,name,size)
+ end
+ return
else
- context("[%s: %s @ %p]",font,name,size)
+ c = getnext(c)
end
- return
end
end
@@ -364,7 +376,9 @@ local colors = {
function step_tracers.codes(i,command,space)
local c = collection[i]
- local function showchar(c,f)
+ local function showchar(c)
+ local f = getfont(c)
+ local c = getchar(c)
if command then
local d = fontdescriptions[f]
local d = d and d[c]
@@ -378,10 +392,10 @@ function step_tracers.codes(i,command,space)
if w then
context.startcolor(colors[what])
context("%s:",what)
- for c, id in nextnode, w do
+ for c in traverse_nodes(w) do
+ local id = getid(c)
if id == glyph_code then
- local c, f = isglyph(c)
- showchar(c,f)
+ showchar(c)
else
context("[%s]",nodecodes[id])
end
@@ -392,11 +406,11 @@ function step_tracers.codes(i,command,space)
end
while c do
- local char, id = isglyph(c)
- if char then
- showchar(char,id)
- elseif id == dir_code or (id == localpar_code and getsubtype(c) == 0) then
- context("[%s]",getdirection(c) or "?")
+ local id = getid(c)
+ if id == glyph_code then
+ showchar(c)
+ elseif id == dir_code or id == localpar_code then
+ context("[%s]",getdir(c))
elseif id == disc_code then
local pre, post, replace = getdisc(c)
if pre or post or replace then
@@ -439,12 +453,13 @@ end
function step_tracers.check(head)
if collecting then
step_tracers.reset()
- local n = copy_node_list(head)
+ local h = tonut(head)
+ local n = copy_node_list(h)
freeze(n,"check")
- injections.keepcounts() -- one-time
+ injections.keepcounts(n) -- one-time
local l = injections.handler(n,"trace")
if l then -- hm, can be false
- n = l
+ n = tonut(l)
end
protect_glyphs(n)
collection[1] = n
@@ -455,12 +470,13 @@ function step_tracers.register(head)
if collecting then
local nc = #collection+1
if messages[nc] then
- local n = copy_node_list(head)
+ local h = tonut(head)
+ local n = copy_node_list(h)
freeze(n,"register")
- injections.keepcounts() -- one-time
+ injections.keepcounts(n) -- one-time
local l = injections.handler(n,"trace")
if l then -- hm, can be false
- n = l
+ n = tonut(l)
end
protect_glyphs(n)
collection[nc] = n
@@ -485,11 +501,14 @@ local threshold = 65536 -- 1pt
local function toutf(list,result,nofresult,stopcriterium,nostrip)
if list then
- for n, id in nextnode, tonut(list) do
- if id == glyph_code then
- local c, f = isglyph(n)
- if c > 0 then
- local fc = fontcharacters[f]
+ for n in traverse_nodes(tonut(list)) do
+ local c, id = isglyph(n)
+ if c then
+ local components = getcomponents(n)
+ if components then
+ result, nofresult = toutf(components,result,nofresult,false,true)
+ elseif c > 0 then
+ local fc = fontcharacters[getfont(n)]
if fc then
local fcc = fc[c]
if fcc then
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-ocl.lua b/Master/texmf-dist/tex/context/base/mkiv/font-ocl.lua
index 0976cdb21c0..b17cf991d80 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-ocl.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-ocl.lua
@@ -13,20 +13,13 @@ local round, max = math.round, math.round
local sortedkeys, sortedhash = table.sortedkeys, table.sortedhash
local setmetatableindex = table.setmetatableindex
-local formatters = string.formatters
-local tounicode = fonts.mappings.tounicode
+local formatters = string.formatters
+local tounicode = fonts.mappings.tounicode
-local helpers = fonts.helpers
+local otf = fonts.handlers.otf
-local charcommand = helpers.commands.char
-local rightcommand = helpers.commands.right
-local leftcommand = helpers.commands.left
-local downcommand = helpers.commands.down
-
-local otf = fonts.handlers.otf
-
-local f_color = formatters["%.3f %.3f %.3f rg"]
-local f_gray = formatters["%.3f g"]
+local f_color = formatters["%.3f %.3f %.3f rg"]
+local f_gray = formatters["%.3f g"]
if context then
@@ -63,41 +56,31 @@ end)
if context then
- -- \definefontcolorpalette [emoji-r] [emoji-red,emoji-gray,textcolor] -- looks bad
- -- \definefontcolorpalette [emoji-r] [emoji-red,emoji-gray] -- looks okay
-
local colors = attributes.list[attributes.private('color')] or { }
local transparencies = attributes.list[attributes.private('transparency')] or { }
function otf.registerpalette(name,values)
sharedpalettes[name] = values
- local color = lpdf.color
- local transparency = lpdf.transparency
- local register = colors.register
for i=1,#values do
local v = values[i]
- if v == "textcolor" then
- values[i] = false
+ local c = nil
+ local t = nil
+ if type(v) == "table" then
+ c = colors.register(name,"rgb",
+ max(round((v.r or 0)*255),255)/255,
+ max(round((v.g or 0)*255),255)/255,
+ max(round((v.b or 0)*255),255)/255
+ )
else
- local c = nil
- local t = nil
- if type(v) == "table" then
- c = register(name,"rgb",
- max(round((v.r or 0)*255),255)/255,
- max(round((v.g or 0)*255),255)/255,
- max(round((v.b or 0)*255),255)/255
- )
- else
- c = colors[v]
- t = transparencies[v]
- end
- if c and t then
- values[i] = hash[color(1,c) .. " " .. transparency(t)]
- elseif c then
- values[i] = hash[color(1,c)]
- elseif t then
- values[i] = hash[color(1,t)]
- end
+ c = colors[v]
+ t = transparencies[v]
+ end
+ if c and t then
+ values[i] = hash[lpdf.color(1,c) .. " " .. lpdf.transparency(t)]
+ elseif c then
+ values[i] = hash[lpdf.color(1,c)]
+ elseif t then
+ values[i] = hash[lpdf.color(1,t)]
end
end
end
@@ -108,13 +91,11 @@ else -- for generic
sharedpalettes[name] = values
for i=1,#values do
local v = values[i]
- if v then
- values[i] = hash[f_color(
- max(round((v.r or 0)*255),255)/255,
- max(round((v.g or 0)*255),255)/255,
- max(round((v.b or 0)*255),255)/255
- )]
- end
+ values[i] = hash[f_color(
+ max(round((v.r or 0)*255),255)/255,
+ max(round((v.g or 0)*255),255)/255,
+ max(round((v.b or 0)*255),255)/255
+ )]
end
end
@@ -146,11 +127,16 @@ local start = { "pdf", "mode", "font" } -- force text mode (so get q Q right)
local push = { "pdf", "page", "q" }
local pop = { "pdf", "page", "Q" }
+if not LUATEXFUNCTIONALITY or LUATEXFUNCTIONALITY < 6472 then
+ start = { "nop" }
+ ----- = stop
+end
+
-- -- This one results in color directives inside BT ET but has less q Q pairs. It
-- -- only shows the first glyph in acrobat and nothing more. No problem with other
-- -- renderers.
--
--- local function initialize(tfmdata,kind,value) -- hm, always value
+-- local function initializecolr(tfmdata,kind,value) -- hm, always value
-- if value then
-- local resources = tfmdata.resources
-- local palettes = resources.colorpalettes
@@ -175,6 +161,11 @@ local pop = { "pdf", "page", "Q" }
-- tfmdata.fonts = {
-- { id = 0 }
-- }
+-- local widths = setmetatableindex(function(t,k)
+-- local v = { "right", -k }
+-- t[k] = v
+-- return v
+-- end)
-- --
-- local getactualtext = otf.getactualtext
-- local default = colorvalues[#colorvalues]
@@ -182,6 +173,12 @@ local pop = { "pdf", "page", "Q" }
-- local actualb = { "pdf", "page", b } -- saves tables
-- local actuale = { "pdf", "page", e } -- saves tables
-- --
+-- local cache = setmetatableindex(function(t,k)
+-- local v = { "char", k } -- could he a weak shared hash
+-- t[k] = v
+-- return v
+-- end)
+-- --
-- for unicode, character in next, characters do
-- local description = descriptions[unicode]
-- if description then
@@ -190,7 +187,7 @@ local pop = { "pdf", "page", "Q" }
-- local u = description.unicode or characters[unicode].unicode
-- local w = character.width or 0
-- local s = #colorlist
--- local goback = w ~= 0 and leftcommand[w] or nil -- needs checking: are widths the same
+-- local goback = w ~= 0 and widths[w] or nil -- needs checking: are widths the same
-- local t = {
-- start,
-- not u and actualb or { "pdf", "page", (getactualtext(tounicode(u))) }
@@ -205,7 +202,7 @@ local pop = { "pdf", "page", "Q" }
-- n = n + 1 t[n] = v
-- l = v
-- end
--- n = n + 1 t[n] = charcommand[entry.slot]
+-- n = n + 1 t[n] = cache[entry.slot]
-- if s > 1 and i < s and goback then
-- n = n + 1 t[n] = goback
-- end
@@ -224,7 +221,7 @@ local pop = { "pdf", "page", "Q" }
-- -- Here we have no color change in BT .. ET and more q Q pairs but even then acrobat
-- -- fails displaying the overlays correctly. Other renderers do it right.
-local function initialize(tfmdata,kind,value)
+local function initializecolr(tfmdata,kind,value) -- hm, always value
if value then
local resources = tfmdata.resources
local palettes = resources.colorpalettes
@@ -235,14 +232,8 @@ local function initialize(tfmdata,kind,value)
converted = setmetatableindex(convert)
resources.converted = converted
end
- local colorvalues = sharedpalettes[value]
- local default = false -- so the text color (bad for icon overloads)
- if colorvalues then
- default = colorvalues[#colorvalues]
- else
- colorvalues = converted[palettes[tonumber(value) or 1] or palettes[1]] or { }
- end
- local classes = #colorvalues
+ local colorvalues = sharedpalettes[value] or converted[palettes[tonumber(value) or 1] or palettes[1]] or { }
+ local classes = #colorvalues
if classes == 0 then
return
end
@@ -255,12 +246,24 @@ local function initialize(tfmdata,kind,value)
tfmdata.fonts = {
{ id = 0 }
}
+ local widths = setmetatableindex(function(t,k)
+ local v = { "right", -k }
+ t[k] = v
+ return v
+ end)
--
local getactualtext = otf.getactualtext
+ local default = colorvalues[#colorvalues]
local b, e = getactualtext(tounicode(0xFFFD))
local actualb = { "pdf", "page", b } -- saves tables
local actuale = { "pdf", "page", e } -- saves tables
--
+ local cache = setmetatableindex(function(t,k)
+ local v = { "char", k } -- could he a weak shared hash
+ t[k] = v
+ return v
+ end)
+ --
for unicode, character in next, characters do
local description = descriptions[unicode]
if description then
@@ -269,7 +272,7 @@ local function initialize(tfmdata,kind,value)
local u = description.unicode or characters[unicode].unicode
local w = character.width or 0
local s = #colorlist
- local goback = w ~= 0 and leftcommand[w] or nil -- needs checking: are widths the same
+ local goback = w ~= 0 and widths[w] or nil -- needs checking: are widths the same
local t = {
start, -- really needed
not u and actualb or { "pdf", "page", (getactualtext(tounicode(u))) }
@@ -288,14 +291,8 @@ local function initialize(tfmdata,kind,value)
f = true
n = n + 1 t[n] = v
l = v
- else
- if f then
- n = n + 1 t[n] = pop
- end
- f = false
- l = nil
end
- n = n + 1 t[n] = charcommand[entry.slot]
+ n = n + 1 t[n] = cache[entry.slot]
if s > 1 and i < s and goback then
n = n + 1 t[n] = goback
end
@@ -317,60 +314,80 @@ fonts.handlers.otf.features.register {
name = "colr",
description = "color glyphs",
manipulators = {
- base = initialize,
- node = initialize,
+ base = initializecolr,
+ node = initializecolr,
}
}
do
+ -- local f_setstream = formatters[ [[io.savedata("svg-glyph-%05i",%q)]] ]
+ -- local f_getstream = formatters[ [[svg-glyph-%05i]] ]
+
+ -- function otfsvg.storepdfdata(pdf)
+ -- nofstreams = nofstreams + 1
+ -- storepdfdata = function(pdf)
+ -- nofstreams = nofstreams + 1
+ -- return f_setstream(nofstreams,pdf), f_getstream(nofstreams)
+ -- end
+ -- end
+
local nofstreams = 0
local f_name = formatters[ [[pdf-glyph-%05i]] ]
local f_used = context and formatters[ [[original:///%s]] ] or formatters[ [[%s]] ]
local hashed = { }
local cache = { }
- if epdf then
-
- local openpdf = epdf.openMemStream
-
- function otf.storepdfdata(pdf)
- local done = hashed[pdf]
- if not done then
- nofstreams = nofstreams + 1
- local o, n = openpdf(pdf,#pdf,f_name(nofstreams))
- cache[n] = o -- we need to keep in mem
- done = f_used(n)
- hashed[pdf] = done
- end
- return done
+ function otf.storepdfdata(pdf)
+ local done = hashed[pdf]
+ if not done then
+ nofstreams = nofstreams + 1
+ local o, n = epdf.openMemStream(pdf,#pdf,f_name(nofstreams))
+ cache[n] = o -- we need to keep in mem
+ done = f_used(n)
+ hashed[pdf] = done
end
-
- else
-
- local openpdf = pdfe.new
- ----- prefix = "data:application/pdf,"
-
- function otf.storepdfdata(pdf)
- local done = hashed[pdf]
- if not done then
- nofstreams = nofstreams + 1
- local f = f_name(nofstreams)
- local n = openpdf(pdf,#pdf,f)
- done = f_used(n)
- hashed[pdf] = done
- end
- return done
- end
-
+ return nil, done, nil
end
-end
+ -- maybe more efficient but much slower (and we hash already)
+ --
+ -- if context then
+ --
+ -- local storepdfdata = otf.storepdfdata
+ -- local initialized = false
+ --
+ -- function otf.storepdfdata(pdf)
+ -- if not initialized then
+ -- if resolvers.setmemstream then
+ -- local f_setstream = formatters[ [[resolvers.setmemstream("pdf-glyph-%05i",%q,true)]] ]
+ -- local f_getstream = formatters[ [[memstream:///pdf-glyph-%05i]] ]
+ -- local f_nilstream = formatters[ [[resolvers.resetmemstream("pdf-glyph-%05i",true)]] ]
+ -- storepdfdata = function(pdf)
+ -- local done = hashed[pdf]
+ -- local set = nil
+ -- local reset = nil
+ -- if not done then
+ -- nofstreams = nofstreams + 1
+ -- set = f_setstream(nofstreams,pdf)
+ -- done = f_getstream(nofstreams)
+ -- reset = f_nilstream(nofstreams)
+ -- hashed[pdf] = done
+ -- end
+ -- return set, done, reset
+ -- end
+ -- otf.storepdfdata = storepdfdata
+ -- end
+ -- initialized = true
+ -- end
+ -- return storepdfdata(pdf)
+ -- end
+ --
+ -- end
--- I'll probably make a variant for context as we can do it more efficient there than in
--- generic.
+end
-local function pdftovirtual(tfmdata,pdfshapes,kind) -- kind = png|svg
+local function pdftovirtual(tfmdata,pdfshapes,kind) -- kind = sbix|svg
if not tfmdata or not pdfshapes or not kind then
return
end
@@ -383,7 +400,7 @@ local function pdftovirtual(tfmdata,pdfshapes,kind) -- kind = png|svg
properties.virtualized = true
--
tfmdata.fonts = {
- { id = 0 } -- not really needed
+ { id = 0 }
}
--
local getactualtext = otf.getactualtext
@@ -393,12 +410,6 @@ local function pdftovirtual(tfmdata,pdfshapes,kind) -- kind = png|svg
local actualb = { "pdf", "page", b } -- saves tables
local actuale = { "pdf", "page", e } -- saves tables
--
- local vfimage = lpdf and lpdf.vfimage or function(wd,ht,dp,data,name)
- -- needed for generic (if used there at all)
- local name = storepdfdata(data)
- return { "image", { filename = name, width = wd, height = ht, depth = dp } }
- end
- --
for unicode, character in sortedhash(characters) do -- sort is nicer for svg
local index = character.index
if index then
@@ -417,30 +428,31 @@ local function pdftovirtual(tfmdata,pdfshapes,kind) -- kind = png|svg
dy = 0
end
if data then
- -- We can delay storage by a lua function in commands: but then we need to
- -- be able to provide our own mem stream name (so that we can reserve it).
- -- Anyway, we will do this different in a future version of context.
- local bt = unicode and getactualtext(unicode)
- local wd = character.width or 0
- local ht = character.height or 0
- local dp = character.depth or 0
- -- The down and right will change too (we can move that elsewhere).
- character.commands = {
- not unicode and actualb or { "pdf", "page", (getactualtext(unicode)) },
- downcommand[dp + dy * hfactor],
- rightcommand[dx * hfactor],
- vfimage(wd,ht,dp,data,name),
- actuale,
- }
- character[kind] = true
+ local setcode, name, nilcode = storepdfdata(data)
+ if name then
+ local bt = unicode and getactualtext(unicode)
+ local wd = character.width or 0
+ local ht = character.height or 0
+ local dp = character.depth or 0
+ character.commands = {
+ not unicode and actualb or { "pdf", "page", (getactualtext(unicode)) },
+ { "down", dp + dy * hfactor },
+ { "right", dx * hfactor },
+ -- setcode and { "lua", setcode } or nop,
+ { "image", { filename = name, width = wd, height = ht, depth = dp } },
+ -- nilcode and { "lua", nilcode } or nop,
+ actuale,
+ }
+ character[kind] = true
+ end
end
end
end
end
local otfsvg = otf.svg or { }
-otf.svg = otfsvg
-otf.svgenabled = true
+otf.svg = otfsvg
+otf.svgenabled = true
do
@@ -571,27 +583,27 @@ fonts.handlers.otf.features.register {
-- This can be done differently e.g. with ffi and gm and we can share code anway. Using
-- batchmode in gm is not faster and as it accumulates we would need to flush all
--- individual shapes. But ... in context lmtx (and maybe the backport) we will use
--- a different and more efficient method anyway. I'm still wondering if I should
--- keep color code in generic. Maybe it should be optional.
+-- individual shapes.
-local otfpng = otf.png or { }
-otf.png = otfpng
-otf.pngenabled = true
+local otfsbix = otf.sbix or { }
+otf.sbix = otfsbix
+otf.sbixenabled = true
do
- local report_png = logs.reporter("fonts","png conversion")
+ -- for now png but also other bitmap formats
+
+ local report_sbix = logs.reporter("fonts","sbix conversion")
local loaddata = io.loaddata
local savedata = io.savedata
local remove = os.remove
local runner = sandbox and sandbox.registerrunner {
- name = "otfpng",
+ name = "otfsbix",
program = "gm",
- template = "convert -quality 100 temp-otf-png-shape.png temp-otf-png-shape.pdf > temp-otf-svg-shape.log",
- -- reporter = report_png,
+ template = "convert -quality 100 temp-otf-sbix-shape.sbix temp-otf-sbix-shape.pdf > temp-otf-svg-shape.log",
+ -- reporter = report_sbix,
}
if not runner then
@@ -599,29 +611,29 @@ do
-- poor mans variant for generic:
--
runner = function()
- return os.execute("gm convert -quality 100 temp-otf-png-shape.png temp-otf-png-shape.pdf > temp-otf-svg-shape.log")
+ return os.execute("gm convert -quality 100 temp-otf-sbix-shape.sbix temp-otf-sbix-shape.pdf > temp-otf-svg-shape.log")
end
end
-- Alternatively we can create a single pdf file with -adjoin and then pick up pages from
-- that file but creating thousands of small files is no fun either.
- function otfpng.topdf(pngshapes)
+ function otfsbix.topdf(sbixshapes)
local pdfshapes = { }
- local pngfile = "temp-otf-png-shape.png"
- local pdffile = "temp-otf-png-shape.pdf"
+ local sbixfile = "temp-otf-sbix-shape.sbix"
+ local pdffile = "temp-otf-sbix-shape.pdf"
local nofdone = 0
- local indices = sortedkeys(pngshapes) -- can be sparse
+ local indices = sortedkeys(sbixshapes) -- can be sparse
local nofindices = #indices
- report_png("processing %i png containers",nofindices)
+ report_sbix("processing %i sbix containers",nofindices)
statistics.starttiming()
for i=1,nofindices do
local index = indices[i]
- local entry = pngshapes[index]
- local data = entry.data -- or placeholder
+ local entry = sbixshapes[index]
+ local data = entry.data
local x = entry.x
local y = entry.y
- savedata(pngfile,data)
+ savedata(sbixfile,data)
runner()
pdfshapes[index] = {
x = x ~= 0 and x or nil,
@@ -630,44 +642,43 @@ do
}
nofdone = nofdone + 1
if nofdone % 100 == 0 then
- report_png("%i shapes processed",nofdone)
+ report_sbix("%i shapes processed",nofdone)
end
end
- report_png("processing %i pdf results",nofindices)
- remove(pngfile)
+ report_sbix("processing %i pdf results",nofindices)
+ remove(sbixfile)
remove(pdffile)
statistics.stoptiming()
if statistics.elapsedseconds then
- report_png("png conversion time %s",statistics.elapsedseconds() or "-")
+ report_sbix("sbix conversion time %s",statistics.elapsedseconds() or "-")
end
return pdfshapes
+ -- end
end
end
--- This will change in a future version of context. More direct.
-
-local function initializepng(tfmdata,kind,value) -- hm, always value
- if value and otf.pngenabled then
- local png = tfmdata.properties.png
- local hash = png and png.hash
- local timestamp = png and png.timestamp
+local function initializesbix(tfmdata,kind,value) -- hm, always value
+ if value and otf.sbixenabled then
+ local sbix = tfmdata.properties.sbix
+ local hash = sbix and sbix.hash
+ local timestamp = sbix and sbix.timestamp
if not hash then
return
end
local pdffile = containers.read(otf.pdfcache,hash)
local pdfshapes = pdffile and pdffile.pdfshapes
if not pdfshapes or pdffile.timestamp ~= timestamp then
- local pngfile = containers.read(otf.pngcache,hash)
- local pngshapes = pngfile and pngfile.pngshapes
- pdfshapes = pngshapes and otfpng.topdf(pngshapes) or { }
+ local sbixfile = containers.read(otf.sbixcache,hash)
+ local sbixshapes = sbixfile and sbixfile.sbixshapes
+ pdfshapes = sbixshapes and otfsbix.topdf(sbixshapes) or { }
containers.write(otf.pdfcache, hash, {
pdfshapes = pdfshapes,
timestamp = timestamp,
})
end
--
- pdftovirtual(tfmdata,pdfshapes,"png")
+ pdftovirtual(tfmdata,pdfshapes,"sbix")
end
end
@@ -675,16 +686,8 @@ fonts.handlers.otf.features.register {
name = "sbix",
description = "sbix glyphs",
manipulators = {
- base = initializepng,
- node = initializepng,
+ base = initializesbix,
+ node = initializesbix,
}
}
-fonts.handlers.otf.features.register {
- name = "cblc",
- description = "cblc glyphs",
- manipulators = {
- base = initializepng,
- node = initializepng,
- }
-}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-one.lua b/Master/texmf-dist/tex/context/base/mkiv/font-one.lua
index 18ba5118532..a3dc7b03859 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-one.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-one.lua
@@ -86,16 +86,14 @@ function afm.load(filename)
local name = file.removesuffix(file.basename(filename))
local data = containers.read(afm.cache,name)
local attr = lfs.attributes(filename)
- local size = attr and attr.size or 0
- local time = attr and attr.modification or 0
+ local size, time = attr.size or 0, attr.modification or 0
--
local pfbfile = file.replacesuffix(name,"pfb")
local pfbname = resolvers.findfile(pfbfile,"pfb") or ""
if pfbname == "" then
pfbname = resolvers.findfile(file.basename(pfbfile),"pfb") or ""
end
- local pfbsize = 0
- local pfbtime = 0
+ local pfbsize, pfbtime = 0, 0
if pfbname ~= "" then
local attr = lfs.attributes(pfbname)
pfbsize = attr.size or 0
@@ -108,7 +106,6 @@ function afm.load(filename)
afmenhancers.apply(data,filename)
-- otfreaders.addunicodetable(data) -- only when not done yet
fonts.mappings.addtounicode(data,filename)
- otfreaders.stripredundant(data)
-- otfreaders.extend(data)
otfreaders.pack(data)
data.size = size
@@ -326,8 +323,7 @@ local addthem = function(rawdata,ligatures)
local one = descriptions[unicodes[ligname]]
if one then
for _, pair in next, ligdata do
- local two = unicodes[pair[1]]
- local three = unicodes[pair[2]]
+ local two, three = unicodes[pair[1]], unicodes[pair[2]]
if two and three then
local ol = one.ligatures
if ol then
@@ -395,7 +391,7 @@ local function enhance_add_extra_kerns(rawdata) -- using shcodes is not robust h
if what then
for complex, simple in next, what do
complex = unicodes[complex]
- simple = unicodes[simple]
+ simple = unicodes[simple]
if complex and simple then
local complexdescription = descriptions[complex]
if complexdescription then -- optional
@@ -448,8 +444,7 @@ local function adddimensions(data) -- we need to normalize afm to otf i.e. index
for unicode, description in next, data.descriptions do
local bb = description.boundingbox
if bb then
- local ht = bb[4]
- local dp = -bb[2]
+ local ht, dp = bb[4], -bb[2]
if ht == 0 or ht < 0 then
-- no need to set it and no negative heights, nil == 0
else
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-onr.lua b/Master/texmf-dist/tex/context/base/mkiv/font-onr.lua
index 8523d8729ab..26a782649f4 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-onr.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-onr.lua
@@ -26,7 +26,7 @@ local match, lower, gsub, strip, find = string.match, string.lower, string.gsub,
local char, byte, sub = string.char, string.byte, string.sub
local abs = math.abs
local bxor, rshift = bit32.bxor, bit32.rshift
-local P, S, R, V, Cmt, C, Ct, Cs, Carg, Cf, Cg, Cc = lpeg.P, lpeg.S, lpeg.R, lpeg.V, lpeg.Cmt, lpeg.C, lpeg.Ct, lpeg.Cs, lpeg.Carg, lpeg.Cf, lpeg.Cg, lpeg.Cc
+local P, S, R, Cmt, C, Ct, Cs, Carg, Cf, Cg = lpeg.P, lpeg.S, lpeg.R, lpeg.Cmt, lpeg.C, lpeg.Ct, lpeg.Cs, lpeg.Carg, lpeg.Cf, lpeg.Cg
local lpegmatch, patterns = lpeg.match, lpeg.patterns
local trace_indexing = false trackers.register("afm.indexing", function(v) trace_indexing = v end)
@@ -83,40 +83,31 @@ do
end
- local charstrings = P("/CharStrings")
- local subroutines = P("/Subrs")
- local encoding = P("/Encoding")
- local dup = P("dup")
- local put = P("put")
- local array = P("array")
- local name = P("/") * C((R("az","AZ","09")+S("-_."))^1)
- local digits = R("09")^1
- local cardinal = digits / tonumber
- local spaces = P(" ")^1
- local spacing = patterns.whitespace^0
+ local charstrings = P("/CharStrings")
+ local subroutines = P("/Subrs")
+ local encoding = P("/Encoding")
+ local dup = P("dup")
+ local put = P("put")
+ local array = P("array")
+ local name = P("/") * C((R("az","AZ","09")+S("-_."))^1)
+ local digits = R("09")^1
+ local cardinal = digits / tonumber
+ local spaces = P(" ")^1
+ local spacing = patterns.whitespace^0
local routines, vector, chars, n, m
local initialize = function(str,position,size)
n = 0
- m = size
+ m = size -- % tonumber(size)
return position + 1
end
local setroutine = function(str,position,index,size,filename)
- if routines[index] then
- -- we have passed the end
- return false
- end
- local forward = position + size
+ local forward = position + tonumber(size)
local stream = decrypt(sub(str,position+1,forward),4330,4)
routines[index] = { byte(stream,1,#stream) }
- n = n + 1
- if n >= m then
- -- m should be index now but can we assume ordering?
- return #str
- end
- return forward + 1
+ return forward
end
local setvector = function(str,position,name,size,filename)
@@ -161,7 +152,7 @@ do
local p_filterroutines = -- dup <i> <n> RD or -| <n encrypted bytes> NP or |
(1-subroutines)^0 * subroutines * spaces * Cmt(cardinal,initialize)
- * (Cmt(cardinal * spaces * cardinal * p_rd * Carg(1), setroutine) * p_np + (1-p_nd))^1
+ * (Cmt(cardinal * spaces * cardinal * p_rd * Carg(1), setroutine) * p_np + P(1))^1
local p_filtershapes = -- /foo <n> RD <n encrypted bytes> ND
(1-charstrings)^0 * charstrings * spaces * Cmt(cardinal,initialize)
@@ -184,33 +175,7 @@ do
-- if one of first 4 not 0-9A-F then binary else hex
- local key = spacing * P("/") * R("az","AZ")
- local str = spacing * Cs { (P("(")/"") * ((1 - P("\\(") - P("\\)") - S("()")) + V(1))^0 * (P(")")/"") }
- local num = spacing * (R("09") + S("+-."))^1 / tonumber
- local arr = spacing * Ct (S("[{") * (num)^0 * spacing * S("]}"))
- local boo = spacing * (P("true") * Cc(true) + P("false") * Cc(false))
- local nam = spacing * P("/") * Cs(R("az","AZ")^1)
-
- local p_filtermetadata = (
- P("/") * Carg(1) * ( (
- C("version") * str
- + C("Copyright") * str
- + C("Notice") * str
- + C("FullName") * str
- + C("FamilyName") * str
- + C("Weight") * str
- + C("ItalicAngle") * num
- + C("isFixedPitch") * boo
- + C("UnderlinePosition") * num
- + C("UnderlineThickness") * num
- + C("FontName") * nam
- + C("FontMatrix") * arr
- + C("FontBBox") * arr
- ) ) / function(t,k,v) t[lower(k)] = v end
- + P(1)
- )^0 * Carg(1)
-
- local function loadpfbvector(filename,shapestoo,streams)
+ local function loadpfbvector(filename,shapestoo)
-- for the moment limited to encoding only
local data = io.loaddata(resolvers.findfile(filename))
@@ -235,14 +200,11 @@ do
binary = decrypt(binary,55665,4)
local names = { }
-
local encoding = lpegmatch(p_filterencoding,ascii)
- local metadata = lpegmatch(p_filtermetadata,ascii,1,{})
local glyphs = { }
routines, vector, chars = { }, { }, { }
- if shapestoo or streams then
- -- io.savedata("foo.txt",binary)
+ if shapestoo then
lpegmatch(p_filterroutines,binary,1,filename)
lpegmatch(p_filtershapes,binary,1,filename)
local data = {
@@ -254,8 +216,7 @@ do
}
},
}
- -- only cff 1 in type 1 fonts
- fonts.handlers.otf.readers.parsecharstrings(false,data,glyphs,true,"cff",streams)
+ fonts.handlers.otf.readers.parsecharstrings(false,data,glyphs,true,true)
else
lpegmatch(p_filternames,binary,1,filename)
end
@@ -264,7 +225,7 @@ do
routines, vector, chars = nil, nil, nil
- return names, encoding, glyphs, metadata
+ return names, encoding, glyphs
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-osd.lua b/Master/texmf-dist/tex/context/base/mkiv/font-osd.lua
index 32d791b48e9..9f99fd57f1c 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-osd.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-osd.lua
@@ -6,9 +6,6 @@ if not modules then modules = { } end modules ['font-osd'] = { -- script devanag
license = "see context related readme files"
}
-
--- we need to check nbsphash (context only)
-
-- A few remarks:
--
-- This code is a partial rewrite of the code that deals with devanagari. The data
@@ -99,6 +96,8 @@ local otffeatures = fonts.constructors.features.otf
local registerotffeature = otffeatures.register
local nuts = nodes.nuts
+local tonode = nuts.tonode
+local tonut = nuts.tonut
local getnext = nuts.getnext
local getprev = nuts.getprev
@@ -153,27 +152,47 @@ replace_all_nbsp = function(head) -- delayed definition
return replace_all_nbsp(head)
end
-local processcharacters = nil
+local xprocesscharacters = nil
if context then
- local fontprocesses = fonts.hashes.processes
- function processcharacters(head,font)
- local processors = fontprocesses[font]
- for i=1,#processors do
- head = processors[i](head,font,0)
- end
- return head
+ xprocesscharacters = function(head,font)
+ xprocesscharacters = nodes.handlers.characters
+ return xprocesscharacters(head,font)
end
else
- function processcharacters(head,font)
- local processors = fontdata[font].shared.processes
- for i=1,#processors do
- head = processors[i](head,font,0)
- end
- return head
+ xprocesscharacters = function(head,font)
+ xprocesscharacters = nodes.handlers.nodepass -- generic
+ return xprocesscharacters(head,font)
end
end
+local function processcharacters(head,font)
+ return tonut(xprocesscharacters(tonode(head))) -- can be more efficient in context, just direct call
+end
+
+-- to be tested:
+--
+-- local processcharacters = nil
+--
+-- if context then
+-- local fontprocesses = fonts.hashes.processes
+-- function processcharacters(head,font)
+-- local processors = fontprocesses[font]
+-- for i=1,#processors do
+-- head = processors[i](head,font,0)
+-- end
+-- return head, true
+-- end
+-- else
+-- function processcharacters(head,font)
+-- local processors = fontdata[font].shared.processes
+-- for i=1,#processors do
+-- head = processors[i](head,font,0)
+-- end
+-- return head, true
+-- end
+-- end
+
-- We can assume that script are not mixed in the source but if that is the case
-- we might need to have consonants etc per script and initialize a local table
-- pointing to the right one. But not now.
@@ -274,6 +293,10 @@ if not indicgroups and characters then
characters.indicgroups = indicgroups
+else
+
+ indicgroups = table.setmetatableindex("table")
+
end
local consonant = indicgroups.consonant
@@ -399,19 +422,19 @@ local sequence_remove_joiners = {
-- as it might depends on the font. Not that it's a bottleneck.
local basic_shaping_forms = {
- -- init = true, -- new
- -- abvs = true, -- new
+ init = true, -- new
+ abvs = true, -- new
akhn = true,
blwf = true,
- -- calt = true, -- new
+ calt = true, -- new
cjct = true,
half = true,
- -- haln = true, -- new
+ haln = true, -- new
nukt = true,
pref = true,
- -- pres = true, -- new
+ pres = true, -- new
pstf = true,
- -- psts = true, -- new
+ psts = true, -- new
rkrf = true,
rphf = true,
vatu = true,
@@ -582,7 +605,9 @@ local function initializedevanagi(tfmdata)
end
end
end
- seqsubset[#seqsubset+1] = { kind, coverage, reph }
+if reph then
+ seqsubset[#seqsubset+1] = { kind, coverage, reph }
+end
end
end
end
@@ -666,19 +691,6 @@ registerotffeature {
},
}
-local show_syntax_errors = false
-
-local function inject_syntax_error(head,current,char)
- local signal = copy_node(current)
- copyinjection(signal,current)
- if pre_mark[char] then
- setchar(signal,dotted_circle)
- else
- setchar(current,dotted_circle)
- end
- return insert_node_after(head,current,signal)
-end
-
-- hm, this is applied to one character:
local function initialize_one(font,attr) -- we need a proper hook into the dataset initializer
@@ -781,9 +793,10 @@ local function reorder_one(head,start,stop,font,attr,nbspaces)
setprop(tempcurrent,a_state,unsetvalue)
if getchar(next) == getchar(tempcurrent) then
flush_list(tempcurrent)
- if show_syntax_errors then
- head, current = inject_syntax_error(head,current,char)
- end
+ local n = copy_node(current)
+ copyinjection(n,current) -- KE: necessary? HH: probably not as positioning comes later and we rawget/set
+ setchar(current,dotted_circle)
+ head = insert_node_after(head, current, n)
else
setchar(current,getchar(tempcurrent)) -- we assumes that the result of blwf consists of one node
local freenode = getnext(current)
@@ -1204,7 +1217,7 @@ function handlers.devanagari_reorder_reph(head,start)
while current do
local char = ischar(current,startfont)
if char and getprop(current,a_syllabe) == startattr then
- if not c and mark_above_below_post[char] and not after_subscript[char] then
+ if not c and mark_above_below_post[char] and after_subscript[char] then
c = current
end
current = getnext(current)
@@ -1547,9 +1560,10 @@ local function reorder_two(head,start,stop,font,attr,nbspaces) -- maybe do a pas
setprop(current,a_state,unsetvalue)
if halant[getchar(current)] then
setnext(getnext(current),tmp)
- if show_syntax_errors then
- head, current = inject_syntax_error(head,current,char)
- end
+ local nc = copy_node(current)
+ copyinjection(nc,current)
+ setchar(current,dotted_circle)
+ head = insert_node_after(head,current,nc)
else
setnext(current,tmp) -- assumes that result of pref, blwf, or pstf consists of one node
if changestop then
@@ -2044,10 +2058,24 @@ local function analyze_next_chars_two(c,font)
end
end
+local show_syntax_errors = false
+
+local function inject_syntax_error(head,current,char)
+ local signal = copy_node(current)
+ copyinjection(signal,current)
+ if pre_mark[char] then
+ setchar(signal,dotted_circle)
+ else
+ setchar(current,dotted_circle)
+ end
+ return insert_node_after(head,current,signal)
+end
+
-- It looks like these two analyzers were written independently but they share
-- a lot. Common code has been synced.
local function method_one(head,font,attr)
+ head = tonut(head)
local current = head
local start = true
local done = false
@@ -2242,13 +2270,14 @@ local function method_one(head,font,attr)
head = replace_all_nbsp(head)
end
- return head, done
+ return tonode(head), done
end
-- there is a good change that when we run into one with subtype < 256 that the rest is also done
-- so maybe we can omit this check (it's pretty hard to get glyphs in the stream out of the blue)
local function method_two(head,font,attr)
+ head = tonut(head)
local current = head
local start = true
local done = false
@@ -2337,7 +2366,7 @@ local function method_two(head,font,attr)
head = replace_all_nbsp(head)
end
- return head, done
+ return tonode(head), done
end
for i=1,nofscripts do
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-ota.lua b/Master/texmf-dist/tex/context/base/mkiv/font-ota.lua
index 76c267a8176..de626c120c5 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-ota.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-ota.lua
@@ -37,10 +37,12 @@ local getprev = nuts.getprev
local getprev = nuts.getprev
local getprop = nuts.getprop
local setprop = nuts.setprop
+local getfont = nuts.getfont
local getsubtype = nuts.getsubtype
local getchar = nuts.getchar
local ischar = nuts.is_char
+local traverse_id = nuts.traverse_id
local end_of_math = nuts.end_of_math
local nodecodes = nodes.nodecodes
@@ -110,8 +112,6 @@ analyzers.useunicodemarks = false
-- todo: analyzers per script/lang, cross font, so we need an font id hash -> script
-- e.g. latin -> hyphenate, arab -> 1/2/3 analyze -- its own namespace
--- done can go away as can tonut
-
function analyzers.setstate(head,font)
local useunicodemarks = analyzers.useunicodemarks
local tfmdata = fontdata[font]
@@ -302,9 +302,9 @@ if not classifiers then
end
function methods.arab(head,font,attr)
- local first, last, c_first, c_last
- local current = head
- local done = false
+ local first, last = nil, nil
+ local c_first, c_last = nil, nil
+ local current, done = head, false
current = tonut(current)
while current do
local char, id = ischar(current,font)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-otc.lua b/Master/texmf-dist/tex/context/base/mkiv/font-otc.lua
index a774a81c2c9..2bad62d60f0 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-otc.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-otc.lua
@@ -6,10 +6,11 @@ if not modules then modules = { } end modules ['font-otc'] = {
license = "see context related readme files"
}
-local insert, sortedkeys, sortedhash, tohash = table.insert, table.sortedkeys, table.sortedhash, table.tohash
-local type, next, tonumber = type, next, tonumber
+local format, insert, sortedkeys, tohash = string.format, table.insert, table.sortedkeys, table.tohash
+local type, next = type, next
local lpegmatch = lpeg.match
-local utfbyte, utflen = utf.byte, utf.len
+local utfbyte, utflen, utfsplit = utf.byte, utf.len, utf.split
+local match = string.match
local sortedhash = table.sortedhash
-- we assume that the other otf stuff is loaded already
@@ -174,10 +175,6 @@ local function addfeature(data,feature,specifications)
return
end
- local p = lpeg.P("P")
- * (lpeg.patterns.hexdigit^1/function(s) return tonumber(s,16) end)
- * lpeg.P(-1)
-
local function tounicode(code)
if not code then
return
@@ -187,7 +184,6 @@ local function addfeature(data,feature,specifications)
end
local u = unicodes[code]
if u then
- -- unicodes[code] = u
return u
end
if utflen(code) == 1 then
@@ -196,19 +192,10 @@ local function addfeature(data,feature,specifications)
return u
end
end
- local u = lpegmatch(p,code)
- if u then
- -- unicodes[code] = u
- return u
- end
if not aglunicodes then
aglunicodes = fonts.encodings.agl.unicodes -- delayed
end
- local u = aglunicodes[code]
- if u then
- -- unicodes[code] = u
- return u
- end
+ return aglunicodes[code]
end
local coverup = otf.coverup
@@ -278,8 +265,7 @@ local function addfeature(data,feature,specifications)
if not nocheck and not description then
skip = skip + 1
elseif type(replacement) == "table" then
- local r = { }
- local n = 0
+ local r, n = { }, 0
for i=1,#replacement do
local u = tounicode(replacement[i])
if nocheck or descriptions[u] then
@@ -481,8 +467,6 @@ local function addfeature(data,feature,specifications)
if not subtype then
subtype = lookup.type
end
- elseif v == 0 then
- lookups[k] = { { type = "gsub_remove" } }
else
lookups[k] = false -- { false } -- new
end
@@ -829,6 +813,177 @@ otf.enhancers.enhance = enhance
otf.enhancers.register("check extra features",enhance)
+-- tlig --
+
+local tlig = { -- we need numbers for some fonts so ...
+ -- endash = "hyphen hyphen",
+ -- emdash = "hyphen hyphen hyphen",
+ [0x2013] = { 0x002D, 0x002D },
+ [0x2014] = { 0x002D, 0x002D, 0x002D },
+ -- quotedblleft = "quoteleft quoteleft",
+ -- quotedblright = "quoteright quoteright",
+ -- quotedblleft = "grave grave",
+ -- quotedblright = "quotesingle quotesingle",
+ -- quotedblbase = "comma comma",
+}
+
+local tlig_specification = {
+ type = "ligature",
+ features = everywhere,
+ data = tlig,
+ order = { "tlig" },
+ flags = noflags,
+ prepend = true,
+}
+
+otf.addfeature("tlig",tlig_specification)
+
+registerotffeature {
+ -- this makes it a known feature (in tables)
+ name = 'tlig',
+ description = 'tex ligatures',
+}
+
+-- trep
+
+local trep = {
+ -- [0x0022] = 0x201D,
+ [0x0027] = 0x2019,
+ -- [0x0060] = 0x2018,
+}
+
+local trep_specification = {
+ type = "substitution",
+ features = everywhere,
+ data = trep,
+ order = { "trep" },
+ flags = noflags,
+ prepend = true,
+}
+
+otf.addfeature("trep",trep_specification)
+
+registerotffeature {
+ -- this makes it a known feature (in tables)
+ name = 'trep',
+ description = 'tex replacements',
+}
+
+-- -- tcom (obsolete, was already not set for a while)
+
+-- if characters.combined then
+--
+-- local tcom = { }
+--
+-- local function initialize()
+-- characters.initialize()
+-- for first, seconds in next, characters.combined do
+-- for second, combination in next, seconds do
+-- tcom[combination] = { first, second }
+-- end
+-- end
+-- -- return false
+-- end
+--
+-- local tcom_specification = {
+-- type = "ligature",
+-- features = everywhere,
+-- data = tcom,
+-- order = { "tcom" },
+-- flags = noflags,
+-- initialize = initialize,
+-- }
+--
+-- otf.addfeature("tcom",tcom_specification)
+--
+-- registerotffeature {
+-- name = 'tcom',
+-- description = 'tex combinations',
+-- }
+--
+-- end
+
+-- anum
+
+local anum_arabic = {
+ [0x0030] = 0x0660,
+ [0x0031] = 0x0661,
+ [0x0032] = 0x0662,
+ [0x0033] = 0x0663,
+ [0x0034] = 0x0664,
+ [0x0035] = 0x0665,
+ [0x0036] = 0x0666,
+ [0x0037] = 0x0667,
+ [0x0038] = 0x0668,
+ [0x0039] = 0x0669,
+}
+
+local anum_persian = {
+ [0x0030] = 0x06F0,
+ [0x0031] = 0x06F1,
+ [0x0032] = 0x06F2,
+ [0x0033] = 0x06F3,
+ [0x0034] = 0x06F4,
+ [0x0035] = 0x06F5,
+ [0x0036] = 0x06F6,
+ [0x0037] = 0x06F7,
+ [0x0038] = 0x06F8,
+ [0x0039] = 0x06F9,
+}
+
+local function valid(data)
+ local features = data.resources.features
+ if features then
+ for k, v in next, features do
+ for k, v in next, v do
+ if v.arab then
+ return true
+ end
+ end
+ end
+ end
+end
+
+local anum_specification = {
+ {
+ type = "substitution",
+ features = { arab = { urd = true, dflt = true } },
+ order = { "anum" },
+ data = anum_arabic,
+ flags = noflags, -- { },
+ valid = valid,
+ },
+ {
+ type = "substitution",
+ features = { arab = { urd = true } },
+ order = { "anum" },
+ data = anum_persian,
+ flags = noflags, -- { },
+ valid = valid,
+ },
+}
+
+otf.addfeature("anum",anum_specification) -- todo: only when there is already an arab script feature
+
+registerotffeature {
+ -- this makes it a known feature (in tables)
+ name = 'anum',
+ description = 'arabic digits',
+}
+
+-- maybe:
+
+-- fonts.handlers.otf.addfeature("hangulfix",{
+-- type = "substitution",
+-- features = { ["hang"] = { ["*"] = true } },
+-- data = {
+-- [0x1160] = 0x119E,
+-- },
+-- order = { "hangulfix" },
+-- flags = { },
+-- prepend = true,
+-- })
+
-- fonts.handlers.otf.features.register {
-- name = 'hangulfix',
-- description = 'fixes for hangul',
@@ -873,3 +1028,126 @@ otf.enhancers.register("check extra features",enhance)
-- a = { b = -500 },
-- }
-- }
+
+-- This is a quick and dirty hack.
+
+local lookups = { }
+local protect = { }
+local revert = { }
+local zwjchar = 0x200C
+local zwj = { zwjchar }
+
+otf.addfeature {
+ name = "blockligatures",
+ type = "chainsubstitution",
+ nocheck = true, -- because there is no 0x200C in the font
+ prepend = true, -- make sure we do it early
+ future = true, -- avoid nilling due to no steps yet
+ lookups = {
+ {
+ type = "multiple",
+ data = lookups,
+ },
+ },
+ data = {
+ rules = protect,
+ }
+}
+
+otf.addfeature {
+ name = "blockligatures",
+ type = "chainsubstitution",
+ nocheck = true, -- because there is no 0x200C in the font
+ append = true, -- this is done late
+ overload = false, -- we don't want to overload the previous definition
+ lookups = {
+ {
+ type = "ligature",
+ data = lookups,
+ },
+ },
+ data = {
+ rules = revert,
+ }
+}
+
+registerotffeature {
+ name = 'blockligatures',
+ description = 'block certain ligatures',
+}
+
+local settings_to_array = utilities.parsers and utilities.parsers.settings_to_array
+ or function(s) return string.split(s,",") end -- for generic
+
+local splitter = lpeg.splitat(":")
+
+local function blockligatures(str)
+
+ local t = settings_to_array(str)
+
+ for i=1,#t do
+ local ti = t[i]
+ local before, current, after = lpegmatch(splitter,ti)
+ if current and after then -- before is returned when no match
+ -- experimental joke
+ if before then
+ before = utfsplit(before)
+ for i=1,#before do
+ before[i] = { before[i] }
+ end
+ end
+ if current then
+ current = utfsplit(current)
+ end
+ if after then
+ after = utfsplit(after)
+ for i=1,#after do
+ after[i] = { after[i] }
+ end
+ end
+ else
+ before = nil
+ current = utfsplit(ti)
+ after = nil
+ end
+ if #current > 1 then
+ local one = current[1]
+ local two = current[2]
+ lookups[one] = { one, zwjchar }
+ local one = { one }
+ local two = { two }
+ local new = #protect + 1
+ protect[new] = {
+ before = before,
+ current = { one, two },
+ after = after,
+ lookups = { 1 }, -- not shared !
+ }
+ revert[new] = {
+ -- before = before,
+ current = { one, zwj },
+ -- after = { two, unpack(after) },
+ after = { two },
+ lookups = { 1 }, -- not shared !
+ }
+ end
+ end
+end
+
+-- blockligatures("\0\0")
+
+otf.helpers.blockligatures = blockligatures
+
+-- blockligatures("fi,ff")
+-- blockligatures("fl")
+-- blockligatures("u:fl:age")
+
+if context then
+
+ interfaces.implement {
+ name = "blockligatures",
+ arguments = "string",
+ actions = blockligatures,
+ }
+
+end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-otj.lua b/Master/texmf-dist/tex/context/base/mkiv/font-otj.lua
index bb30389357c..9037939df10 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-otj.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-otj.lua
@@ -97,11 +97,8 @@ local setlink = nuts.setlink
local setwidth = nuts.setwidth
local getwidth = nuts.getwidth
------ traverse_id = nuts.traverse_id
------ traverse_char = nuts.traverse_char
-local nextchar = nuts.traversers.char
-local nextglue = nuts.traversers.glue
-
+local traverse_id = nuts.traverse_id
+local traverse_char = nuts.traverse_char
local insert_node_before = nuts.insert_before
local insert_node_after = nuts.insert_after
@@ -131,10 +128,6 @@ do if not fontkern then -- generic
return n
end
-end end
-
-do if not italickern then -- generic
-
local thekern = nuts.new("kern",3) -- italiccorrection
local setkern = nuts.setkern
local copy_node = nuts.copy_node
@@ -305,10 +298,10 @@ end
-- kind: 0=single 1=first of pair, 2=second of pair
function injections.setposition(kind,current,factor,rlmode,spec,injection)
- local x = factor * (spec[1] or 0)
- local y = factor * (spec[2] or 0)
- local w = factor * (spec[3] or 0)
- local h = factor * (spec[4] or 0)
+ local x = factor*spec[1]
+ local y = factor*spec[2]
+ local w = factor*spec[3]
+ local h = factor*spec[4]
if x ~= 0 or w ~= 0 or y ~= 0 or h ~= 0 then -- okay?
local yoffset = y - h
local leftkern = x -- both kerns are set in a pair kern compared
@@ -456,8 +449,7 @@ function injections.setmove(current,factor,rlmode,x,injection)
end
function injections.setmark(start,base,factor,rlmode,ba,ma,tfmbase,mkmk,checkmark) -- ba=baseanchor, ma=markanchor
- local dx = factor*(ba[1]-ma[1])
- local dy = factor*(ba[2]-ma[2])
+ local dx, dy = factor*(ba[1]-ma[1]), factor*(ba[2]-ma[2])
nofregisteredmarks = nofregisteredmarks + 1
if rlmode >= 0 then
dx = tfmbase.width - dx -- see later commented ox
@@ -470,18 +462,15 @@ function injections.setmark(start,base,factor,rlmode,ba,ma,tfmbase,mkmk,checkmar
if i.markmark then
-- out of order mkmk: yes or no or option
else
- -- if dx ~= 0 then
- -- i.markx = dx
- -- end
- -- if y ~= 0 then
- -- i.marky = dy
- -- end
- -- if rlmode then
- -- i.markdir = rlmode
- -- end
- i.markx = dx
- i.marky = dy
- i.markdir = rlmode or 0
+ if dx ~= 0 then
+ i.markx = dx
+ end
+ if y ~= 0 then
+ i.marky = dy
+ end
+ if rlmode then
+ i.markdir = rlmode
+ end
i.markbase = nofregisteredmarks
i.markbasenode = base
i.markmark = mkmk
@@ -569,7 +558,7 @@ end
local function showsub(n,what,where)
report_injections("begin subrun: %s",where)
- for n in nextchar, n do
+ for n in traverse_char(n) do
showchar(n,where)
show(n,what,where," ")
end
@@ -639,6 +628,7 @@ end
-- +D-replace +D-replace
local function inject_kerns_only(head,where)
+ head = tonut(head)
if trace_injections then
trace(head,"kerns")
end
@@ -694,8 +684,7 @@ local function inject_kerns_only(head,where)
-- glyph|disc|glyph (special case)
local leftkern = i.leftkern
if leftkern and leftkern ~= 0 then
- replace = fontkern(leftkern)
- done = true
+ setfield(prev,"replace",fontkern(leftkern)) -- maybe also leftkern
end
end
end
@@ -715,7 +704,7 @@ local function inject_kerns_only(head,where)
local done = false
if pre then
-- left|pre glyphs|right
- for n in nextchar, pre do
+ for n in traverse_char(pre) do
local p = rawget(properties,n)
if p then
local i = p.injections or p.preinjections
@@ -731,7 +720,7 @@ local function inject_kerns_only(head,where)
end
if post then
-- left|post glyphs|right
- for n in nextchar, post do
+ for n in traverse_char(post) do
local p = rawget(properties,n)
if p then
local i = p.injections or p.postinjections
@@ -747,7 +736,7 @@ local function inject_kerns_only(head,where)
end
if replace then
-- left|replace glyphs|right
- for n in nextchar, replace do
+ for n in traverse_char(replace) do
local p = rawget(properties,n)
if p then
local i = p.injections or p.replaceinjections
@@ -782,10 +771,11 @@ local function inject_kerns_only(head,where)
if trace_injections then
show_result(head)
end
- return head
+ return tonode(head), true
end
local function inject_positions_only(head,where)
+ head = tonut(head)
if trace_injections then
trace(head,"positions")
end
@@ -836,9 +826,7 @@ local function inject_positions_only(head,where)
if replace then
-- error, we expect an empty one
else
---KE setfield(next,"replace",fontkern(rightkern)) -- maybe also leftkern
- replace = fontkern(rightkern) -- maybe also leftkern --KE
- done = true --KE
+ setfield(next,"replace",fontkern(rightkern)) -- maybe also leftkern
end
end
end
@@ -871,8 +859,7 @@ local function inject_positions_only(head,where)
-- new .. okay?
local leftkern = i.leftkern
if leftkern and leftkern ~= 0 then
- replace = fontkern(leftkern)
- done = true
+ setfield(prev,"replace",fontkern(leftkern)) -- maybe also leftkern
end
end
end
@@ -891,7 +878,7 @@ local function inject_positions_only(head,where)
local done = false
if pre then
-- left|pre glyphs|right
- for n in nextchar, pre do
+ for n in traverse_char(pre) do
local p = rawget(properties,n)
if p then
local i = p.injections or p.preinjections
@@ -916,7 +903,7 @@ local function inject_positions_only(head,where)
end
if post then
-- left|post glyphs|right
- for n in nextchar, post do
+ for n in traverse_char(post) do
local p = rawget(properties,n)
if p then
local i = p.injections or p.postinjections
@@ -941,7 +928,7 @@ local function inject_positions_only(head,where)
end
if replace then
-- left|replace glyphs|right
- for n in nextchar, replace do
+ for n in traverse_char(replace) do
local p = rawget(properties,n)
if p then
local i = p.injections or p.replaceinjections
@@ -1015,7 +1002,7 @@ local function inject_positions_only(head,where)
if trace_injections then
show_result(head)
end
- return head
+ return tonode(head), true
end
local function showoffset(n,flag)
@@ -1026,6 +1013,7 @@ local function showoffset(n,flag)
end
local function inject_everything(head,where)
+ head = tonut(head)
if trace_injections then
trace(head,"everything")
end
@@ -1288,8 +1276,7 @@ local function inject_everything(head,where)
if replace then
-- error, we expect an empty one
else
- replace = fontkern(rightkern)
- done = true
+ setfield(next,"replace",fontkern(rightkern)) -- maybe also leftkern
end
end
end
@@ -1322,8 +1309,7 @@ local function inject_everything(head,where)
if i then
local leftkern = i.leftkern
if leftkern and leftkern ~= 0 then
- replace = fontkern(leftkern)
- done = true
+ setfield(prev,"replace",fontkern(leftkern)) -- maybe also leftkern
end
end
end
@@ -1358,7 +1344,7 @@ local function inject_everything(head,where)
local done = false
if pre then
-- left|pre glyphs|right
- for n in nextchar, pre do
+ for n in traverse_char(pre) do
local p = rawget(properties,n)
if p then
local i = p.injections or p.preinjections
@@ -1389,7 +1375,7 @@ local function inject_everything(head,where)
end
if post then
-- left|post glyphs|right
- for n in nextchar, post do
+ for n in traverse_char(post) do
local p = rawget(properties,n)
if p then
local i = p.injections or p.postinjections
@@ -1420,7 +1406,7 @@ local function inject_everything(head,where)
end
if replace then
-- left|replace glyphs|right
- for n in nextchar, replace do
+ for n in traverse_char(replace) do
local p = rawget(properties,n)
if p then
local i = p.injections or p.replaceinjections
@@ -1528,7 +1514,7 @@ local function inject_everything(head,where)
if trace_injections then
show_result(head)
end
- return head
+ return tonode(head), true
end
-- space triggers
@@ -1617,7 +1603,7 @@ end
local function injectspaces(head)
if not triggers then
- return head
+ return head, false
end
local lastfont = nil
local spacekerns = nil
@@ -1627,6 +1613,7 @@ local function injectspaces(head)
local threshold = 0
local leftkern = false
local rightkern = false
+ local nuthead = tonut(head)
local function updatefont(font,trig)
leftkerns = trig.left
@@ -1636,7 +1623,7 @@ local function injectspaces(head)
factor = getthreshold(font)
end
- for n in nextglue, head do
+ for n in traverse_id(glue_code,nuthead) do
local prev, next = getspaceboth(n)
local prevchar = prev and ischar(prev)
local nextchar = next and ischar(next)
@@ -1674,8 +1661,12 @@ local function injectspaces(head)
if trace_spaces then
report_spaces("%C [%p + %p + %p] %C",prevchar,lnew,old,rnew,nextchar)
end
- head = insert_node_before(head,n,italickern(lnew))
- insert_node_after(head,n,italickern(rnew))
+ local h = insert_node_before(nuthead,n,italickern(lnew))
+ if h == nuthead then
+ head = tonode(h)
+ nuthead = h
+ end
+ insert_node_after(nuthead,n,italickern(rnew))
else
local new = old + (leftkern + rightkern) * factor
if trace_spaces then
@@ -1690,7 +1681,7 @@ local function injectspaces(head)
if trace_spaces then
report_spaces("%C [%p + %p]",prevchar,old,new)
end
- insert_node_after(head,n,italickern(new)) -- tricky with traverse but ok
+ insert_node_after(nuthead,n,italickern(new)) -- tricky with traverse but ok
else
local new = old + leftkern * factor
if trace_spaces then
@@ -1709,7 +1700,7 @@ local function injectspaces(head)
if trace_spaces then
report_spaces("%C [%p + %p]",nextchar,old,new)
end
- insert_node_after(head,n,italickern(new))
+ insert_node_after(nuthead,n,italickern(new))
else
local new = old + rightkern * factor
if trace_spaces then
@@ -1723,8 +1714,7 @@ local function injectspaces(head)
end
triggers = false
-
- return head
+ return head, true
end
--
@@ -1750,6 +1740,6 @@ function injections.handler(head,where)
end
return inject_kerns_only(head,where)
else
- return head
+ return head, false
end
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-otl.lua b/Master/texmf-dist/tex/context/base/mkiv/font-otl.lua
index df83dc96825..a71e3ad98ca 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-otl.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-otl.lua
@@ -52,14 +52,14 @@ local report_otf = logs.reporter("fonts","otf loading")
local fonts = fonts
local otf = fonts.handlers.otf
-otf.version = 3.107 -- beware: also sync font-mis.lua and in mtx-fonts
-otf.cache = containers.define("fonts", "otl", otf.version, true)
-otf.svgcache = containers.define("fonts", "svg", otf.version, true)
-otf.pngcache = containers.define("fonts", "png", otf.version, true)
-otf.pdfcache = containers.define("fonts", "pdf", otf.version, true)
+otf.version = 3.103 -- beware: also sync font-mis.lua and in mtx-fonts
+otf.cache = containers.define("fonts", "otl", otf.version, true)
+otf.svgcache = containers.define("fonts", "svg", otf.version, true)
+otf.sbixcache = containers.define("fonts", "sbix", otf.version, true)
+otf.pdfcache = containers.define("fonts", "pdf", otf.version, true)
otf.svgenabled = false
-otf.pngenabled = false
+otf.sbixenabled = false
local otfreaders = otf.readers
@@ -152,17 +152,17 @@ function otf.load(filename,sub,instance)
report_otf("forced reload of %a due to hard coded flag",filename)
reload = true
end
- if reload then
+ if reload then
report_otf("loading %a, hash %a",filename,hash)
--
- starttiming(otfreaders,true)
+ starttiming(otfreaders)
data = otfreaders.loadfont(filename,sub or 1,instance) -- we can pass the number instead (if it comes from a name search)
if data then
-- todo: make this a plugin
- local used = checkmemory()
- local resources = data.resources
- local svgshapes = resources.svgshapes
- local pngshapes = resources.pngshapes
+ local used = checkmemory()
+ local resources = data.resources
+ local svgshapes = resources.svgshapes
+ local sbixshapes = resources.sbixshapes
if cleanup == 0 then
checkmemory(used,threshold,tracememory)
end
@@ -186,16 +186,16 @@ function otf.load(filename,sub,instance)
checkmemory(used,threshold,tracememory)
end
end
- if pngshapes then
- resources.pngshapes = nil
- if otf.pngenabled then
+ if sbixshapes then
+ resources.sbixshapes = nil
+ if otf.sbixenabled then
local timestamp = os.date()
-- work in progress ... a bit boring to do
- containers.write(otf.pngcache,hash, {
- pngshapes = pngshapes,
- timestamp = timestamp,
+ containers.write(otf.sbixcache,hash, {
+ sbixshapes = sbixshapes,
+ timestamp = timestamp,
})
- data.properties.png = {
+ data.properties.sbix = {
hash = hash,
timestamp = timestamp,
}
@@ -242,7 +242,6 @@ function otf.load(filename,sub,instance)
checkmemory(used,threshold,tracememory)
end
else
- stoptiming(otfreaders)
data = nil
report_otf("loading failed due to read error")
end
@@ -406,7 +405,6 @@ local function copytotfm(data,cache_id)
local fontname = metadata.fontname
local fullname = metadata.fullname or fontname
local psname = fontname or fullname
- local subfont = metadata.subfontindex
local units = metadata.units or 1000
--
if units == 0 then -- catch bugs in fonts
@@ -501,7 +499,6 @@ local function copytotfm(data,cache_id)
properties.fullname = fullname
properties.psname = psname
properties.name = filename or fullname
- properties.subfont = subfont
--
-- properties.name = specification.name
-- properties.sub = specification.sub
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-oto.lua b/Master/texmf-dist/tex/context/base/mkiv/font-oto.lua
index 6f6d89d434a..4b986bd3b66 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-oto.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-oto.lua
@@ -49,9 +49,7 @@ local function gref(descriptions,n)
return f_unicode(n)
end
elseif n then
- local num = { }
- local nam = { }
- local j = 0
+ local num, nam, j = { }, { }, 0
for i=1,#n do
local ni = n[i]
if tonumber(ni) then -- first is likely a key
@@ -123,8 +121,8 @@ local basehash, basehashes, applied = { }, 1, { }
local function registerbasehash(tfmdata)
local properties = tfmdata.properties
- local hash = concat(applied," ")
- local base = basehash[hash]
+ local hash = concat(applied," ")
+ local base = basehash[hash]
if not base then
basehashes = basehashes + 1
base = basehashes
@@ -312,16 +310,13 @@ local function preparesubstitutions(tfmdata,feature,value,validlookups,lookuplis
for i=1,nofligatures do
local ligature = ligatures[i]
- local unicode = ligature[1]
- local tree = ligature[2]
+ local unicode, tree = ligature[1], ligature[2]
make_1(present,tree,"ctx_"..unicode)
end
for i=1,nofligatures do
- local ligature = ligatures[i]
- local unicode = ligature[1]
- local tree = ligature[2]
- local lookupname = ligature[3]
+ local ligature = ligatures[i]
+ local unicode, tree, lookupname = ligature[1], ligature[2], ligature[3]
make_2(present,tfmdata,characters,tree,"ctx_"..unicode,unicode,unicode,done,sequence)
end
@@ -420,42 +415,36 @@ local function checkmathreplacements(tfmdata,fullname,fixitalics)
for unicode, replacement in next, changed do
local u = characters[unicode]
local r = characters[replacement]
- if u and r then
- local n = u.next
- local v = u.vert_variants
- local h = u.horiz_variants
- if fixitalics then
- -- quite some warnings on stix ...
- local ui = u.italic
- if ui and not r.italic then
- if trace_preparing then
- report_prepare("using %i units of italic correction from %C for %U",ui,unicode,replacement)
- end
- r.italic = ui -- print(ui,ri)
- end
- end
- if n and not r.next then
+ local n = u.next
+ local v = u.vert_variants
+ local h = u.horiz_variants
+ if fixitalics then
+ -- quite some warnings on stix ...
+ local ui = u.italic
+ if ui and not r.italic then
if trace_preparing then
- report_prepare("forcing %s for %C substituted by %U","incremental step",unicode,replacement)
+ report_prepare("using %i units of italic correction from %C for %U",ui,unicode,replacement)
end
- r.next = n
+ r.italic = ui -- print(ui,ri)
end
- if v and not r.vert_variants then
- if trace_preparing then
- report_prepare("forcing %s for %C substituted by %U","vertical variants",unicode,replacement)
- end
- r.vert_variants = v
+ end
+ if n and not r.next then
+ if trace_preparing then
+ report_prepare("forcing %s for %C substituted by %U","incremental step",unicode,replacement)
end
- if h and not r.horiz_variants then
- if trace_preparing then
- report_prepare("forcing %s for %C substituted by %U","horizontal variants",unicode,replacement)
- end
- r.horiz_variants = h
+ r.next = n
+ end
+ if v and not r.vert_variants then
+ if trace_preparing then
+ report_prepare("forcing %s for %C substituted by %U","vertical variants",unicode,replacement)
end
- else
+ r.vert_variants = v
+ end
+ if h and not r.horiz_variants then
if trace_preparing then
- report_prepare("error replacing %C by %U",unicode,replacement)
+ report_prepare("forcing %s for %C substituted by %U","horizontal variants",unicode,replacement)
end
+ r.horiz_variants = h
end
end
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-otr.lua b/Master/texmf-dist/tex/context/base/mkiv/font-otr.lua
index c7ff6b72689..5bac75052ac 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-otr.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-otr.lua
@@ -25,7 +25,7 @@ if not modules then modules = { } end modules ['font-otr'] = {
-- are just a unicode string but it doesn't save that much. It will be an option
-- some day.
--- Optimizing the widths will be done anyway as it save quite some on a cjk font
+-- Optimizing the widths wil be done anyway as it save quite some on a cjk font
-- and the existing (old) code if okay.
-- todo: more messages (only if really needed)
@@ -67,7 +67,6 @@ if not modules then modules = { } end modules ['font-otr'] = {
local next, type, tonumber = next, type, tonumber
local byte, lower, char, gsub = string.byte, string.lower, string.char, string.gsub
-local fullstrip = string.fullstrip
local floor, round = math.floor, math.round
local P, R, S, C, Cs, Cc, Ct, Carg, Cmt = lpeg.P, lpeg.R, lpeg.S, lpeg.C, lpeg.Cs, lpeg.Cc, lpeg.Ct, lpeg.Carg, lpeg.Cmt
local lpegmatch = lpeg.match
@@ -122,47 +121,11 @@ local read2dot14 = streamreader.read2dot14 -- 16-bit signed fixed num
local readfword = readshort -- 16-bit signed integer that describes a quantity in FUnits
local readufword = readushort -- 16-bit unsigned integer that describes a quantity in FUnits
local readoffset = readushort
-local readcardinaltable = streamreader.readcardinaltable
-local readintegertable = streamreader.readintegertable
function streamreader.readtag(f)
return lower(stripstring(readstring(f,4)))
end
-local short = 2
-local ushort = 2
-local ulong = 4
-
-directives.register("fonts.streamreader",function()
-
- streamreader = utilities.streams
-
- openfile = streamreader.open
- closefile = streamreader.close
- setposition = streamreader.setposition
- skipshort = streamreader.skipshort
- readbytes = streamreader.readbytes
- readstring = streamreader.readstring
- readbyte = streamreader.readcardinal1
- readushort = streamreader.readcardinal2
- readuint = streamreader.readcardinal3
- readulong = streamreader.readcardinal4
- readshort = streamreader.readinteger2
- readlong = streamreader.readinteger4
- readfixed = streamreader.readfixed4
- read2dot14 = streamreader.read2dot14
- readfword = readshort
- readufword = readushort
- readoffset = readushort
- readcardinaltable = streamreader.readcardinaltable
- readintegertable = streamreader.readintegertable
-
- function streamreader.readtag(f)
- return lower(stripstring(readstring(f,4)))
- end
-
-end)
-
-- date represented in number of seconds since 12:00 midnight, January 1, 1904. The value is represented as a
-- signed 64-bit integer
@@ -741,30 +704,20 @@ readers.helpers = helpers
local function gotodatatable(f,fontdata,tag,criterium)
if criterium and f then
- local tables = fontdata.tables
- if tables then
- local datatable = tables[tag]
- if datatable then
- local tableoffset = datatable.offset
- setposition(f,tableoffset)
- return tableoffset
- end
- else
- report("no tables")
+ local datatable = fontdata.tables[tag]
+ if datatable then
+ local tableoffset = datatable.offset
+ setposition(f,tableoffset)
+ return tableoffset
end
end
end
local function reportskippedtable(f,fontdata,tag,criterium)
if criterium and f then
- local tables = fontdata.tables
- if tables then
- local datatable = tables[tag]
- if datatable then
- report("loading of table %a skipped",tag)
- end
- else
- report("no tables")
+ local datatable = fontdata.tables[tag]
+ if datatable then
+ report("loading of table %a skipped",tag)
end
end
end
@@ -796,16 +749,6 @@ local platformnames = {
compatiblefullname = true,
}
-local platformextras = {
- uniqueid = true,
- version = true,
- copyright = true,
- license = true,
- licenseurl = true,
- manufacturer = true,
- vendorurl = true,
-}
-
function readers.name(f,fontdata,specification)
local tableoffset = gotodatatable(f,fontdata,"name",true)
if tableoffset then
@@ -876,18 +819,6 @@ function readers.name(f,fontdata,specification)
-- and extend when we run into it (todo: proper reverse hash) .. we're only
-- interested in english anyway
--
- local function decoded(platform,encoding,content)
- local decoder = decoders[platform]
- if decoder then
- decoder = decoder[encoding]
- end
- if decoder then
- return decoder(content)
- else
- return content
- end
- end
- --
local function filter(platform,e,l)
local namelist = namelists[platform]
for i=1,#namelist do
@@ -899,7 +830,14 @@ function readers.name(f,fontdata,specification)
local language = name.language
if (not e or encoding == e) and (not l or language == l) then
setposition(f,name.offset)
- local content = decoded(platform,encoding,readstring(f,name.length))
+ local content = readstring(f,name.length)
+ local decoder = decoders[platform]
+ if decoder then
+ decoder = decoder[encoding]
+ end
+ if decoder then
+ content = decoder(content)
+ end
if nametag then
names[nametag] = {
content = content,
@@ -926,16 +864,23 @@ function readers.name(f,fontdata,specification)
fontdata.extras = extras
--
if specification.platformnames then
- local collected = { }
- local platformextras = specification.platformextras and platformextras
+ local collected = { }
for platform, namelist in next, namelists do
local filtered = false
for i=1,#namelist do
local entry = namelist[i]
local name = entry.name
- if platformnames[name] or (platformextras and platformextras[name]) then
+ if platformnames[name] then
setposition(f,entry.offset)
- local content = decoded(platform,entry.encoding,readstring(f,entry.length))
+ local content = readstring(f,entry.length)
+ local encoding = entry.encoding
+ local decoder = decoders[platform]
+ if decoder then
+ decoder = decoder[encoding]
+ end
+ if decoder then
+ content = decoder(content)
+ end
if filtered then
filtered[name] = content
else
@@ -978,7 +923,7 @@ readers["os/2"] = function(f,fontdata)
local version = readushort(f)
local windowsmetrics = {
version = version,
- averagewidth = readshort(f), -- ushort?
+ averagewidth = readshort(f),
weightclass = readushort(f),
widthclass = readushort(f),
fstype = readushort(f),
@@ -1008,7 +953,7 @@ readers["os/2"] = function(f,fontdata)
if version >= 1 then
windowsmetrics.codepageranges = { readulong(f), readulong(f) }
end
- if version >= 2 then
+ if version >= 3 then
windowsmetrics.xheight = readshort(f)
windowsmetrics.capheight = readshort(f)
windowsmetrics.defaultchar = readushort(f)
@@ -1035,28 +980,24 @@ end
readers.head = function(f,fontdata)
local tableoffset = gotodatatable(f,fontdata,"head",true)
if tableoffset then
- local version = readulong(f)
- local fontversion = readulong(f)
local fontheader = {
- version = version,
- fontversion = number.to16dot16(fontversion),
- fontversionnumber = fontversion,
- -- checksum = readulong(f),
- checksum = readushort(f) * 0x10000 + readushort(f),
- magic = readulong(f),
- flags = readushort(f),
- units = readushort(f),
- created = readlongdatetime(f),
- modified = readlongdatetime(f),
- xmin = readshort(f),
- ymin = readshort(f),
- xmax = readshort(f),
- ymax = readshort(f),
- macstyle = readushort(f),
- smallpixels = readushort(f),
- directionhint = readshort(f),
- indextolocformat = readshort(f),
- glyphformat = readshort(f),
+ version = readfixed(f),
+ revision = readfixed(f),
+ checksum = readulong(f),
+ magic = readulong(f),
+ flags = readushort(f),
+ units = readushort(f),
+ created = readlongdatetime(f),
+ modified = readlongdatetime(f),
+ xmin = readshort(f),
+ ymin = readshort(f),
+ xmax = readshort(f),
+ ymax = readshort(f),
+ macstyle = readushort(f),
+ smallpixels = readushort(f),
+ directionhint = readshort(f),
+ indextolocformat = readshort(f),
+ glyphformat = readshort(f),
}
fontdata.fontheader = fontheader
else
@@ -1072,7 +1013,7 @@ readers.hhea = function(f,fontdata,specification)
local tableoffset = gotodatatable(f,fontdata,"hhea",specification.details)
if tableoffset then
fontdata.horizontalheader = {
- version = readulong(f),
+ version = readfixed(f), -- two ushorts: major minor
ascender = readfword(f),
descender = readfword(f),
linegap = readfword(f),
@@ -1101,7 +1042,7 @@ readers.vhea = function(f,fontdata,specification)
local tableoffset = gotodatatable(f,fontdata,"vhea",specification.details)
if tableoffset then
fontdata.verticalheader = {
- version = readulong(f),
+ version = readfixed(f),
ascender = readfword(f),
descender = readfword(f),
linegap = readfword(f),
@@ -1134,15 +1075,15 @@ end
readers.maxp = function(f,fontdata,specification)
local tableoffset = gotodatatable(f,fontdata,"maxp",specification.details)
if tableoffset then
- local version = readulong(f)
+ local version = readfixed(f)
local nofglyphs = readushort(f)
fontdata.nofglyphs = nofglyphs
- if version == 0x00005000 then
+ if version == 0.5 then
fontdata.maximumprofile = {
version = version,
nofglyphs = nofglyphs,
}
- elseif version == 0x00010000 then
+ elseif version == 1.0 then
fontdata.maximumprofile = {
version = version,
nofglyphs = nofglyphs,
@@ -1183,14 +1124,15 @@ readers.hmtx = function(f,fontdata,specification)
local leftsidebearing = 0
for i=0,nofmetrics-1 do
local glyph = glyphs[i]
- width = readshort(f) -- readushort
+ width = readshort(f)
leftsidebearing = readshort(f)
if width ~= 0 then
glyph.width = width
end
- -- if leftsidebearing ~= 0 then
- -- glyph.lsb = leftsidebearing
- -- end
+-- for now
+-- if leftsidebearing ~= 0 then
+-- glyph.lsb = leftsidebearing
+-- end
end
-- The next can happen in for instance a monospace font or in a cjk font
-- with fixed widths.
@@ -1203,6 +1145,7 @@ readers.hmtx = function(f,fontdata,specification)
-- glyph.lsb = leftsidebearing
-- end
end
+ -- hm, there can be a lsb here
end
end
@@ -1252,7 +1195,7 @@ end
readers.post = function(f,fontdata,specification)
local tableoffset = gotodatatable(f,fontdata,"post",true)
if tableoffset then
- local version = readulong(f)
+ local version = readfixed(f)
fontdata.postscript = {
version = version,
italicangle = round(1000*readfixed(f))/1000,
@@ -1266,12 +1209,12 @@ readers.post = function(f,fontdata,specification)
}
if not specification.glyphs then
-- enough done
- elseif version == 0x00010000 then
+ elseif version == 1.0 then
-- mac encoding (258 glyphs)
for index=0,#standardromanencoding do
glyphs[index].name = standardromanencoding[index]
end
- elseif version == 0x00020000 then
+ elseif version == 2.0 then
local glyphs = fontdata.glyphs
local nofglyphs = readushort(f)
local indices = { }
@@ -1302,6 +1245,10 @@ readers.post = function(f,fontdata,specification)
end
end
end
+ elseif version == 2.5 then
+ -- depricated, will be done when needed
+ elseif version == 3.0 then
+ -- no ps name information
end
else
fontdata.postscript = { }
@@ -1374,18 +1321,34 @@ formatreaders[4] = function(f,fontdata,offset)
--
skipshort(f,3) -- searchrange entryselector rangeshift
--
+ local endchars = { }
+ local startchars = { }
+ local deltas = { }
+ local offsets = { }
+ local indices = { }
local mapping = fontdata.mapping
local glyphs = fontdata.glyphs
local duplicates = fontdata.duplicates
local nofdone = 0
- local endchars = readcardinaltable(f,nofsegments,ushort)
- local reserved = readushort(f) -- 0
- local startchars = readcardinaltable(f,nofsegments,ushort)
- local deltas = readcardinaltable(f,nofsegments,ushort)
- local offsets = readcardinaltable(f,nofsegments,ushort)
+ --
+ for i=1,nofsegments do
+ endchars[i] = readushort(f)
+ end
+ local reserved = readushort(f) -- 0
+ for i=1,nofsegments do
+ startchars[i] = readushort(f)
+ end
+ for i=1,nofsegments do
+ deltas[i] = readshort(f)
+ end
+ for i=1,nofsegments do
+ offsets[i] = readushort(f)
+ end
-- format length language nofsegments searchrange entryselector rangeshift 4-tables
- local size = (length - 2 * 2 - 5 * 2 - 4 * 2 * nofsegments) / 2
- local indices = readcardinaltable(f,size-1,ushort)
+ local size = (length - 2 * 2 - 5 * 2 - 4 * 2 * nofsegments) / 2
+ for i=1,size-1 do
+ indices[i] = readushort(f)
+ end
--
for segment=1,nofsegments do
local startchar = startchars[segment]
@@ -1964,16 +1927,14 @@ local function getinfo(maindata,sub,platformnames,rawfamilynames,metricstoo,inst
designsize = fontdata.designsize,
minsize = fontdata.minsize,
maxsize = fontdata.maxsize,
- boundingbox = fontheader and { fontheader.xmin or 0, fontheader.ymin or 0, fontheader.xmax or 0, fontheader.ymax or 0 } or nil,
monospaced = (tonumber(postscript.monospaced or 0) > 0) or metrics.panosewidth == "monospaced",
averagewidth = metrics.averagewidth,
- xheight = metrics.xheight, -- can be missing
- capheight = metrics.capheight or fontdata.maxy, -- can be missing
+ xheight = metrics.xheight,
+ capheight = metrics.capheight, -- not always present and probably crap
ascender = metrics.typoascender,
descender = metrics.typodescender,
platformnames = platformnames or nil,
instancenames = instancenames or nil,
- tableoffsets = fontdata.tableoffsets,
}
if metricstoo then
local keys = {
@@ -2035,8 +1996,7 @@ local function loadtables(f,specification,offset)
}
for i=1,fontdata.noftables do
local tag = lower(stripstring(readstring(f,4)))
- -- local checksum = readulong(f) -- not used
- local checksum = readushort(f) * 0x10000 + readushort(f)
+ local checksum = readulong(f) -- not used
local offset = readulong(f)
local length = readulong(f)
if offset + length > filesize then
@@ -2048,14 +2008,13 @@ local function loadtables(f,specification,offset)
length = length,
}
end
--- inspect(tables)
fontdata.foundtables = sortedkeys(tables)
if tables.cff or tables.cff2 then
fontdata.format = "opentype"
else
fontdata.format = "truetype"
end
- return fontdata, tables
+ return fontdata
end
local function prepareglyps(fontdata)
@@ -2084,7 +2043,7 @@ local variablefonts_supported = (context and true) or (logs and logs.application
local function readdata(f,offset,specification)
- local fontdata, tables = loadtables(f,specification,offset)
+ local fontdata = loadtables(f,specification,offset)
if specification.glyphs then
prepareglyps(fontdata)
@@ -2223,20 +2182,10 @@ local function readdata(f,offset,specification)
readtable("math",f,fontdata,specification)
fontdata.locations = nil
+ fontdata.tables = nil
fontdata.cidmaps = nil
fontdata.dictionaries = nil
-- fontdata.cff = nil
-
- if specification.tableoffsets then
- fontdata.tableoffsets = tables
- setmetatableindex(tables, {
- version = fontdata.version,
- noftables = fontdata.noftables,
- searchrange = fontdata.searchrange,
- entryselector = fontdata.entryselector,
- rangeshift = fontdata.rangeshift,
- })
- end
return fontdata
end
@@ -2260,9 +2209,12 @@ local function loadfontdata(specification)
fontdata = readdata(f,0,specification)
elseif version == "ttcf" then
local subfont = tonumber(specification.subfont)
+ local offsets = { }
local ttcversion = readulong(f)
local nofsubfonts = readulong(f)
- local offsets = readcardinaltable(f,nofsubfonts,ulong)
+ for i=1,nofsubfonts do
+ offsets[i] = readulong(f)
+ end
if subfont then -- a number of not
if subfont >= 1 and subfont <= nofsubfonts then
fontdata = readdata(f,offsets[subfont],specification)
@@ -2344,13 +2296,12 @@ local function loadfont(specification,n,instance)
specification.instance = specification.instance or instance
end
local function message(str)
- report("fatal error in file %a: %s\n%s",specification.filename,str,debug and debug.traceback())
+ report("fatal error in file %a: %s\n%s",specification.filename,str,debug.traceback())
end
local ok, result = xpcall(loadfontdata,message,specification)
if ok then
return result
end
--- return loadfontdata(specification)
end
-- we need even less, but we can have a 'detail' variant
@@ -2372,26 +2323,13 @@ function readers.loadshapes(filename,n,instance,streams)
v.math = nil
-- v.name = nil
end
- local names = fontdata.names
- if names then
- for k, v in next, names do
- names[k] = fullstrip(v.content)
- end
- end
end
return fontdata and {
- -- version = 0.123 -- todo
- filename = filename,
- format = fontdata.format,
- glyphs = fontdata.glyphs,
- units = fontdata.fontheader.units,
- cffinfo = fontdata.cffinfo,
- fontheader = fontdata.fontheader,
- horizontalheader = fontdata.horizontalheader,
- verticalheader = fontdata.verticalheader,
- maximumprofile = fontdata.maximumprofile,
- names = fontdata.names,
- postscript = fontdata.postscript,
+ -- version = 0.123 -- todo
+ filename = filename,
+ format = fontdata.format,
+ glyphs = fontdata.glyphs,
+ units = fontdata.fontheader.units,
} or {
filename = filename,
format = "unknown",
@@ -2447,7 +2385,7 @@ function readers.loadfont(filename,n,instance)
mathconstants = fontdata.mathconstants,
colorpalettes = fontdata.colorpalettes,
svgshapes = fontdata.svgshapes,
- pngshapes = fontdata.pngshapes,
+ sbixshapes = fontdata.sbixshapes,
variabledata = fontdata.variabledata,
foundtables = fontdata.foundtables,
},
@@ -2462,12 +2400,10 @@ function readers.getinfo(filename,specification) -- string, nil|number|table
local platformnames = false
local rawfamilynames = false
local instancenames = true
- local tableoffsets = false
if type(specification) == "table" then
subfont = tonumber(specification.subfont)
platformnames = specification.platformnames
rawfamilynames = specification.rawfamilynames
- tableoffsets = specification.tableoffsets
else
subfont = tonumber(specification)
end
@@ -2476,7 +2412,6 @@ function readers.getinfo(filename,specification) -- string, nil|number|table
details = true,
platformnames = platformnames,
instancenames = true,
- tableoffsets = tableoffsets,
-- rawfamilynames = rawfamilynames,
}
if fontdata then
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-ots.lua b/Master/texmf-dist/tex/context/base/mkiv/font-ots.lua
index 563094fc17b..25083dfcef8 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-ots.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-ots.lua
@@ -82,7 +82,7 @@ mechanisms. Both put some constraints on the code here.</p>
-- Todo: check if we copy attributes to disc nodes if needed.
--
-- Todo: it would be nice if we could get rid of components. In other places we can use
--- the unicode properties. We can just keep a lua table.
+-- the unicode properties.
--
-- Remark: We do some disc juggling where we need to keep in mind that the pre, post and
-- replace fields can have prev pointers to a nesting node ... I wonder if that is still
@@ -176,6 +176,8 @@ registertracker("otf.sample", "otf.steps","otf.substitutions","otf.positi
registertracker("otf.sample.silent", "otf.steps=silent","otf.substitutions","otf.positions","otf.analyzing")
local nuts = nodes.nuts
+local tonode = nuts.tonode
+local tonut = nuts.tonut
local getfield = nuts.getfield
local getnext = nuts.getnext
@@ -189,6 +191,7 @@ local getattr = nuts.getattr
local setattr = nuts.setattr
local getprop = nuts.getprop
local setprop = nuts.setprop
+local getfont = nuts.getfont
local getsubtype = nuts.getsubtype
local setsubtype = nuts.setsubtype
local getchar = nuts.getchar
@@ -198,10 +201,10 @@ local setdisc = nuts.setdisc
local setlink = nuts.setlink
local getcomponents = nuts.getcomponents -- the original one, not yet node-aux
local setcomponents = nuts.setcomponents -- the original one, not yet node-aux
+local getdir = nuts.getdir
local getwidth = nuts.getwidth
local ischar = nuts.is_char
-local isglyph = nuts.isglyph
local usesfont = nuts.uses_font
local insert_node_after = nuts.insert_after
@@ -212,12 +215,17 @@ local find_node_tail = nuts.tail
local flush_node_list = nuts.flush_list
local flush_node = nuts.flush_node
local end_of_math = nuts.end_of_math
+local traverse_nodes = nuts.traverse
+----- traverse_id = nuts.traverse_id
+local set_components = nuts.set_components
+local take_components = nuts.take_components
+local count_components = nuts.count_components
+local copy_no_components = nuts.copy_no_components
+local copy_only_glyphs = nuts.copy_only_glyphs
local setmetatable = setmetatable
local setmetatableindex = table.setmetatableindex
-local nextnode = nuts.traversers.node
-
----- zwnj = 0x200C
----- zwj = 0x200D
@@ -232,8 +240,8 @@ local math_code = nodecodes.math
local dir_code = nodecodes.dir
local localpar_code = nodecodes.localpar
-local discretionarydisc_code = disccodes.discretionary
-local ligatureglyph_code = glyphcodes.ligature
+local discretionary_code = disccodes.discretionary
+local ligature_code = glyphcodes.ligature
local a_state = attributes.private('state')
local a_noligature = attributes.private("noligature")
@@ -450,28 +458,26 @@ end
-- start is a mark and we need to keep that one
-local copy_no_components = nuts.copy_no_components
-local copy_only_glyphs = nuts.copy_only_glyphs
-
-local set_components = setcomponents
-local take_components = getcomponents
+local take_components = getcomponents -- we overload here (for now)
+local set_components = setcomponents -- we overload here (for now)
+----- get_components = getcomponents -- we overload here (for now)
local function count_components(start,marks)
- local char = isglyph(start)
- if char then
- if getsubtype(start) == ligatureglyph_code then
- local i = 0
- local components = getcomponents(start)
- while components do
- i = i + count_components(components,marks)
- components = getnext(components)
- end
- return i
- elseif not marks[char] then
- return 1
+ if getid(start) ~= glyph_code then
+ return 0
+ elseif getsubtype(start) == ligature_code then
+ local i = 0
+ local components = getcomponents(start)
+ while components do
+ i = i + count_components(components,marks)
+ components = getnext(components)
end
+ return i
+ elseif not marks[getchar(start)] then
+ return 1
+ else
+ return 0
end
- return 0
end
local function markstoligature(head,start,stop,char)
@@ -488,7 +494,7 @@ local function markstoligature(head,start,stop,char)
end
resetinjection(base)
setchar(base,char)
- setsubtype(base,ligatureglyph_code)
+ setsubtype(base,ligature_code)
set_components(base,start)
setlink(prev,base,next)
return head, base
@@ -524,7 +530,7 @@ local function toligature(head,start,stop,char,dataset,sequence,skiphash,discfou
end
resetinjection(base)
setchar(base,char)
- setsubtype(base,ligatureglyph_code)
+ setsubtype(base,ligature_code)
set_components(base,comp)
setlink(prev,base,next)
if not discfound then
@@ -606,7 +612,7 @@ local function toligature(head,start,stop,char,dataset,sequence,skiphash,discfou
set_components(base,copied)
replace = base
if forcediscretionaries then
- setdisc(discfound,pre,post,replace,discretionarydisc_code)
+ setdisc(discfound,pre,post,replace,discretionary_code)
else
setdisc(discfound,pre,post,replace)
end
@@ -617,7 +623,7 @@ local function toligature(head,start,stop,char,dataset,sequence,skiphash,discfou
return head, base
end
-local function multiple_glyphs(head,start,multiple,skiphash,what,stop) -- what to do with skiphash matches here
+local function multiple_glyphs(head,start,multiple,skiphash,what) -- what to do with skiphash matches here
local nofmultiples = #multiple
if nofmultiples > 0 then
resetinjection(start)
@@ -778,17 +784,23 @@ function handlers.gsub_ligature(head,start,dataset,sequence,ligature,rlmode,skip
-- ok, goto next lookup
end
end
- else
+ else -- is the check for disc still valid here ? and why only replace then
local discfound = false
+ local lastdisc = nil
local hasmarks = marks[startchar]
while current do
local char, id = ischar(current,currentfont)
if char then
if skiphash and skiphash[char] then
current = getnext(current)
- else
- local lg = ligature[char]
+ -- if stop then stop = current end -- ?
+ else -- ligature is a tree
+ local lg = ligature[char] -- can there be multiple in a row? maybe in a bad font
if lg then
+ if not discfound and lastdisc then
+ discfound = lastdisc
+ lastdisc = nil
+ end
if marks[char] then
hasmarks = true
end
@@ -803,76 +815,47 @@ function handlers.gsub_ligature(head,start,dataset,sequence,ligature,rlmode,skip
-- kind of weird
break
elseif id == disc_code then
- discfound = current
- break
- else
- break
- end
- end
- -- of{f-}{}{f}e o{f-}{}{f}fe o{-}{}{ff}e (oe and ff ligature)
- -- we can end up here when we have a start run .. testruns start at a disc but
- -- so here we have the other case: char + disc
- if discfound then
- -- don't assume marks in a disc and we don't run over a disc (for now)
- local pre, post, replace = getdisc(discfound)
- local match
- if replace then
- local char = ischar(replace,currentfont)
- if char and ligature[char] then
- match = true
- end
- end
- if not match and pre then
- local char = ischar(pre,currentfont)
- if char and ligature[char] then
- match = true
- end
- end
- if not match and not pre or not replace then
- local n = getnext(discfound)
- local char = ischar(n,currentfont)
- if char and ligature[char] then
- match = true
- end
- end
- if match then
- -- we force a restart
- local ishead = head == start
- local prev = getprev(start)
- if stop then
- setnext(stop)
- local tail = getprev(stop)
- local copy = copy_node_list(start)
- local liat = find_node_tail(copy)
- if pre then
- setlink(liat,pre)
- end
- if replace then
- setlink(tail,replace)
- end
- pre = copy
- replace = start
- else
- setnext(start)
- local copy = copy_node(start)
- if pre then
- setlink(copy,pre)
- end
- if replace then
- setlink(start,replace)
+ --
+ -- Kai: see chainprocs, we probably could do the same here or was there a reason
+ -- why we kept the replace check here.
+ --
+ -- if not discfound then
+ -- discfound = current
+ -- end
+ -- if current == stop then
+ -- break -- okay? or before the disc
+ -- else
+ -- current = getnext(current)
+ -- end
+ --
+ local replace = getfield(current,"replace") -- hm: pre and post
+ if replace then
+ -- of{f-}{}{f}e o{f-}{}{f}fe o{-}{}{ff}e (oe and ff ligature)
+ -- we can end up here when we have a start run .. testruns start at a disc but
+ -- so here we have the other case: char + disc
+ while replace do
+ local char, id = ischar(replace,currentfont)
+ if char then
+ local lg = ligature[char] -- can there be multiple in a row? maybe in a bad font
+ if lg then
+ if marks[char] then
+ hasmarks = true -- very unlikely
+ end
+ ligature = lg
+ replace = getnext(replace)
+ else
+ return head, start, false, false
+ end
+ else
+ return head, start, false, false
+ end
end
- pre = copy
- replace = start
- end
- setdisc(discfound,pre,post,replace)
- if prev then
- setlink(prev,discfound)
- else
- setprev(discfound)
- head = discfound
+ stop = current
end
- start = discfound
- return head, start, true, true
+ lastdisc = current
+ current = getnext(current)
+ else
+ break
end
end
local lig = ligature.ligature
@@ -880,12 +863,10 @@ function handlers.gsub_ligature(head,start,dataset,sequence,ligature,rlmode,skip
if stop then
if trace_ligatures then
local stopchar = getchar(stop)
- -- head, start = toligature(head,start,stop,lig,dataset,sequence,skiphash,discfound,hasmarks)
- head, start = toligature(head,start,stop,lig,dataset,sequence,skiphash,false,hasmarks)
+ head, start = toligature(head,start,stop,lig,dataset,sequence,skiphash,discfound,hasmarks)
logprocess("%s: replacing %s upto %s by ligature %s case 2",pref(dataset,sequence),gref(startchar),gref(stopchar),gref(lig))
else
- -- head, start = toligature(head,start,stop,lig,dataset,sequence,skiphash,discfound,hasmarks)
- head, start = toligature(head,start,stop,lig,dataset,sequence,skiphash,false,hasmarks)
+ head, start = toligature(head,start,stop,lig,dataset,sequence,skiphash,discfound,hasmarks)
end
else
-- weird but happens (in some arabic font)
@@ -895,12 +876,12 @@ function handlers.gsub_ligature(head,start,dataset,sequence,ligature,rlmode,skip
logprocess("%s: replacing %s by (no real) ligature %s case 3",pref(dataset,sequence),gref(startchar),gref(lig))
end
end
- return head, start, true, false
+ return head, start, true, discfound
else
-- weird but happens, pseudo ligatures ... just the components
end
end
- return head, start, false, false
+ return head, start, false, discfound
end
function handlers.gpos_single(head,start,dataset,sequence,kerns,rlmode,skiphash,step,injection)
@@ -939,8 +920,7 @@ function handlers.gpos_pair(head,start,dataset,sequence,kerns,rlmode,skiphash,st
end
local format = step.format
if format == "pair" then
- local a = krn[1]
- local b = krn[2]
+ local a, b = krn[1], krn[2]
if a == true then
-- zero
elseif a then -- #a > 0
@@ -1290,14 +1270,6 @@ local function getmapping(dataset,sequence,currentlookup)
end
end
-function chainprocs.gsub_remove(head,start,stop,dataset,sequence,currentlookup,rlmode,skiphash,chainindex)
- if trace_chains then
- logprocess("%s: removing character %s",cref(dataset,sequence,chainindex),gref(getchar(start)))
- end
- head, start = remove_node(head,start,true)
- return head, getprev(start), true
-end
-
function chainprocs.gsub_single(head,start,stop,dataset,sequence,currentlookup,rlmode,skiphash,chainindex)
local mapping = currentlookup.mapping
if mapping == nil then
@@ -1408,7 +1380,7 @@ function chainprocs.gsub_multiple(head,start,stop,dataset,sequence,currentlookup
if trace_multiples then
logprocess("%s: replacing %s by multiple characters %s",cref(dataset,sequence),gref(startchar),gref(replacement))
end
- return multiple_glyphs(head,start,replacement,skiphash,dataset[1],stop)
+ return multiple_glyphs(head,start,replacement,skiphash,dataset[1])
end
end
return head, start, false
@@ -1560,8 +1532,7 @@ function chainprocs.gpos_pair(head,start,stop,dataset,sequence,currentlookup,rlm
end
local format = currentlookup.format
if format == "pair" then
- local a = krn[1]
- local b = krn[2]
+ local a, b = krn[1], krn[2]
if a == true then
-- zero
elseif a then
@@ -2015,9 +1986,6 @@ local function chainrun(head,start,last,dataset,sequence,rlmode,skiphash,ck)
logprocess("%s: %s is not yet supported (2)",cref(dataset,sequence),chainkind)
end
end
- else
- -- we skip but we could also delete as option .. what does an empty lookup actually mean
- -- in opentype ... anyway, we could map it onto gsub_remove if needed
end
i = i + 1
if i > size or not start then
@@ -2657,7 +2625,7 @@ local function handle_contextchain(head,start,dataset,sequence,contexts,rlmode,s
end
end
else
- -- notmatchreplace[prev] = true -- not according to Kai
+ notmatchreplace[prev] = true -- new, for Kai to check
end
end
prev = getprev(prev)
@@ -2786,7 +2754,7 @@ local function handle_contextchain(head,start,dataset,sequence,contexts,rlmode,s
end
end
else
- -- notmatchreplace[current] = true -- not according to Kai
+ notmatchreplace[current] = true -- new, for Kai to check
end
current = getnext(current)
elseif id == glue_code then
@@ -2834,9 +2802,6 @@ local function handle_contextchain(head,start,dataset,sequence,contexts,rlmode,s
notmatchpre = { }
notmatchpost = { }
notmatchreplace = { }
- -- notmatchpre = { a = 1, b = 1 } notmatchpre .a = nil notmatchpre .b = nil
- -- notmatchpost = { a = 1, b = 1 } notmatchpost .a = nil notmatchpost .b = nil
- -- notmatchreplace = { a = 1, b = 1 } notmatchreplace.a = nil notmatchreplace.b = nil
end
return head, start, done
end
@@ -3194,7 +3159,7 @@ local function testrun(disc,t_run,c_run,...)
local d = d_replace > d_post and d_replace or d_post
local head = getnext(disc) -- is: next
local tail = head
- for i=2,d do -- must start at 2 according to Kai
+ for i=1,d do
local nx = getnext(tail)
local id = getid(nx)
if id == disc_code then
@@ -3454,7 +3419,7 @@ local function k_run_single(sub,injection,last,font,attr,lookupcache,step,datase
a = getattr(sub,0)
end
if not a or (a == attr) then
- for n in nextnode, sub do -- only gpos
+ for n in traverse_nodes(sub) do -- only gpos
if n == last then
break
end
@@ -3619,7 +3584,7 @@ local function k_run_multiple(sub,injection,last,font,attr,steps,nofsteps,datase
a = getattr(sub,0)
end
if not a or (a == attr) then
- for n in nextnode, sub do -- only gpos
+ for n in traverse_nodes(sub) do -- only gpos
if n == last then
break
end
@@ -3641,57 +3606,129 @@ local function k_run_multiple(sub,injection,last,font,attr,steps,nofsteps,datase
end
end
-local txtdirstate, pardirstate do -- this might change (no need for nxt in pardirstate)
-
- local getdirection = nuts.getdirection
- local lefttoright = 0
- local righttoleft = 1
+-- to be checked, nowadays we probably can assume properly matched directions
+-- so maybe we no longer need a stack
+
+-- local function txtdirstate(start,stack,top,rlparmode)
+-- local dir = getdir(start)
+-- local new = 1
+-- if dir == "+TRT" then
+-- top = top + 1
+-- stack[top] = dir
+-- new = -1
+-- elseif dir == "+TLT" then
+-- top = top + 1
+-- stack[top] = dir
+-- elseif dir == "-TRT" or dir == "-TLT" then
+-- if top == 1 then
+-- top = 0
+-- new = rlparmode
+-- else
+-- top = top - 1
+-- if stack[top] == "+TRT" then
+-- new = -1
+-- end
+-- end
+-- else
+-- new = rlparmode
+-- end
+-- return getnext(start), top, new
+-- end
+--
+-- local function pardirstate(start)
+-- local dir = getdir(start)
+-- local new = 0
+-- if dir == "TLT" then
+-- new = 1
+-- elseif dir == "TRT" then
+-- new = -1
+-- end
+-- return getnext(start), new, new
+-- end
- txtdirstate = function(start,stack,top,rlparmode)
- local dir, pop = getdirection(start)
- if pop then
- if top == 1 then
- return 0, rlparmode
+local function txtdirstate(start,stack,top,rlparmode)
+ local nxt = getnext(start)
+ local dir = getdir(start)
+ if dir == "+TRT" then
+ top = top + 1
+ stack[top] = dir
+ return nxt, top, -1
+ elseif dir == "+TLT" then
+ top = top + 1
+ stack[top] = dir
+ return nxt, top, 1
+ elseif dir == "-TRT" or dir == "-TLT" then
+ if top == 1 then
+ return nxt, 0, rlparmode
+ else
+ top = top - 1
+ if stack[top] == "+TRT" then
+ return nxt, top, -1
else
- top = top - 1
- if stack[top] == righttoleft then
- return top, -1
- else
- return top, 1
- end
+ return nxt, top, 1
end
- elseif dir == lefttoright then
- top = top + 1
- stack[top] = lefttoright
- return top, 1
- elseif dir == righttoleft then
- top = top + 1
- stack[top] = righttoleft
- return top, -1
- else
- return top, rlparmode
end
+ else
+ return nxt, top, rlparmode
end
+end
- pardirstate = function(start)
- local dir = getdirection(start)
- if dir == lefttoright then
- return 1, 1
- elseif dir == righttoleft then
- return -1, -1
- -- for old times sake we we handle strings too
- elseif dir == "TLT" then
- return 1, 1
- elseif dir == "TRT" then
- return -1, -1
- else
- return 0, 0
- end
+local function pardirstate(start)
+ local nxt = getnext(start)
+ local dir = getdir(start)
+ if dir == "TLT" then
+ return nxt, 1, 1
+ elseif dir == "TRT" then
+ return nxt, -1, -1
+ else
+ return nxt, 0, 0
end
-
end
--- These are non public helpers that can change without notice!
+-- -- this will become:
+--
+-- local getdirection = nuts.getdirection
+--
+-- local function txtdirstate1(start,stack,top,rlparmode)
+-- local nxt = getnext(start)
+-- local dir, sub = getdirection(start)
+-- if sub then
+-- if top == 1 then
+-- return nxt, 0, rlparmode
+-- elseif dir < 2 then
+-- top = top - 1
+-- if stack[top] == 1 then
+-- return nxt, top, -1
+-- else
+-- return nxt, top, 1
+-- end
+-- else
+-- return nxt, top, rlparmode
+-- end
+-- elseif dir == 1 then
+-- top = top + 1
+-- stack[top] = 1
+-- return nxt, top, -1
+-- elseif dir == 0 then
+-- top = top + 1
+-- stack[top] = 0
+-- return nxt, top, 1
+-- else
+-- return nxt, top, rlparmode
+-- end
+-- end
+--
+-- local function pardirstate1(start)
+-- local nxt = getnext(start)
+-- local dir = getdirection(start)
+-- if dir == 0 then
+-- return nxt, 1, 1
+-- elseif dir == 1 then
+-- return nxt, -1, -1
+-- else
+-- return nxt, 0, 0
+-- end
+-- end
otf.helpers = otf.helpers or { }
otf.helpers.txtdirstate = txtdirstate
@@ -3795,23 +3832,20 @@ do
-- attr = false
-- end
+ local head = tonut(head)
+
if trace_steps then
checkstep(head)
end
- local initialrl = 0
-
- if getid(head) == localpar_code and getsubtype(head) == 0 then
- initialrl = pardirstate(head)
- elseif direction == 1 or direction == "TRT" then
- initialrl = -1
- end
+ local initialrl = direction == "TRT" and -1 or 0
+ -- local initialrl = (direction == 1 or direction == "TRT") and -1 or 0
- -- local done = false
+ local done = false
+ -- local datasets = otf.dataset(tfmdata,font,attr)
local datasets = otfdataset(tfmdata,font,attr)
- local dirstack = { nil } -- could move outside function but we can have local runs
+ local dirstack = { } -- could move outside function but we can have local runs
sweephead = { }
- -- sweephead = { a = 1, b = 1 } sweephead.a = nil sweephead.b = nil
-- Keeping track of the headnode is needed for devanagari. (I generalized it a bit
-- so that multiple cases are also covered.) We could prepend a temp node.
@@ -3838,9 +3872,9 @@ do
-- are not frozen as we might extend or change this. Is this used at all apart from some
-- experiments?
local h, ok = handler(head,dataset,sequence,initialrl,font,attr) -- less arguments now
- -- if ok then
- -- done = true
- -- end
+ if ok then
+ done = true
+ end
if h and h ~= head then
head = h
end
@@ -3873,7 +3907,7 @@ do
local ok
head, start, ok = handler(head,start,dataset,sequence,lookupmatch,rlmode,skiphash,step)
if ok then
- -- done = true
+ done = true
break
end
end
@@ -3914,14 +3948,12 @@ do
a = true
end
if a then
- local ok, df
- head, start, ok, df = handler(head,start,dataset,sequence,lookupmatch,rlmode,skiphash,step)
- -- if ok then
- -- done = true
- -- end
- if df then
--- print("restart 1",typ)
- elseif start then
+ local ok
+ head, start, ok = handler(head,start,dataset,sequence,lookupmatch,rlmode,skiphash,step)
+ if ok then
+ done = true
+ end
+ if start then
start = getnext(start)
end
else
@@ -3944,20 +3976,18 @@ do
else
start, ok = comprun(start,c_run_single, font,attr,lookupcache,step,dataset,sequence,rlmode,skiphash,handler)
end
- -- if ok then
- -- done = true
- -- end
+ if ok then
+ done = true
+ end
else
start = getnext(start)
end
elseif id == math_code then
start = getnext(end_of_math(start))
elseif id == dir_code then
- topstack, rlmode = txtdirstate(start,dirstack,topstack,rlparmode)
- start = getnext(start)
- -- elseif id == localpar_code then
- -- rlparmode, rlmode = pardirstate(start)
- -- start = getnext(start)
+ start, topstack, rlmode = txtdirstate(start,dirstack,topstack,rlparmode)
+ elseif id == localpar_code then
+ start, rlparmode, rlmode = pardirstate(start)
else
start = getnext(start)
end
@@ -3981,7 +4011,6 @@ do
a = true
end
if a then
- local ok, df
for i=m[1],m[2] do
local step = steps[i]
-- for i=1,#m do
@@ -3990,12 +4019,10 @@ do
local lookupmatch = lookupcache[char]
if lookupmatch then
-- we could move all code inline but that makes things even more unreadable
--- local ok, df
- head, start, ok, df = handler(head,start,dataset,sequence,lookupmatch,rlmode,skiphash,step)
- if df then
- break
- elseif ok then
- -- done = true
+ local ok
+ head, start, ok = handler(head,start,dataset,sequence,lookupmatch,rlmode,skiphash,step)
+ if ok then
+ done = true
break
elseif not start then
-- don't ask why ... shouldn't happen
@@ -4003,9 +4030,7 @@ do
end
end
end
- if df then
--- print("restart 2",typ)
- elseif start then
+ if start then
start = getnext(start)
end
else
@@ -4028,20 +4053,18 @@ do
else
start, ok = comprun(start,c_run_multiple, font,attr,steps,nofsteps,dataset,sequence,rlmode,skiphash,handler)
end
- -- if ok then
- -- done = true
- -- end
+ if ok then
+ done = true
+ end
else
start = getnext(start)
end
elseif id == math_code then
start = getnext(end_of_math(start))
elseif id == dir_code then
- topstack, rlmode = txtdirstate(start,dirstack,topstack,rlparmode)
- start = getnext(start)
- -- elseif id == localpar_code then
- -- rlparmode, rlmode = pardirstate(start)
- -- start = getnext(start)
+ start, topstack, rlmode = txtdirstate(start,dirstack,topstack,rlparmode)
+ elseif id == localpar_code then
+ start, rlparmode, rlmode = pardirstate(start)
else
start = getnext(start)
end
@@ -4056,12 +4079,12 @@ do
end
nesting = nesting - 1
+ head = tonode(head)
- -- return head, done
- return head
+ return head, done
end
- -- This is not an official helper and used for tracing experiments. It can be changed as I like
+ -- This is not an official helpoer and used for tracing experiments. It can be changed as I like
-- at any moment. At some point it might be used in a module that can help font development.
function otf.datasetpositionprocessor(head,font,direction,dataset)
@@ -4095,10 +4118,12 @@ do
local steps = sequence.steps
local nofsteps = sequence.nofsteps
+ local head = tonut(head)
local done = false
- local dirstack = { nil } -- could move outside function but we can have local runs (maybe a few more nils)
+ local dirstack = { } -- could move outside function but we can have local runs
local start = head
- local initialrl = (direction == 1 or direction == "TRT") and -1 or 0
+ local initialrl = direction == "TRT" and -1 or 0
+ -- local initialrl = (direction == 1 or direction == "TRT") and -1 or 0
local rlmode = initialrl
local rlparmode = initialrl
local topstack = 0
@@ -4148,17 +4173,15 @@ do
elseif id == math_code then
start = getnext(end_of_math(start))
elseif id == dir_code then
- topstack, rlmode = txtdirstate(start,dirstack,topstack,rlparmode)
- start = getnext(start)
- -- elseif id == localpar_code then
- -- rlparmode, rlmode = pardirstate(start)
- -- start = getnext(start)
+ start, topstack, rlmode = txtdirstate(start,dirstack,topstack,rlparmode)
+ elseif id == localpar_code then
+ start, rlparmode, rlmode = pardirstate(start)
else
start = getnext(start)
end
end
- return head
+ return tonode(head) -- , matches
end
-- end of experiment
@@ -4170,26 +4193,9 @@ end
local plugins = { }
otf.plugins = plugins
-local report = logs.reporter("fonts")
-
function otf.registerplugin(name,f)
if type(name) == "string" and type(f) == "function" then
plugins[name] = { name, f }
- report()
- report("plugin %a has been loaded, please be aware of possible side effects",name)
- report()
- if logs.pushtarget then
- logs.pushtarget("log")
- end
- report("Plugins are not officially supported unless stated otherwise. This is because")
- report("they bypass the regular font handling and therefore some features in ConTeXt")
- report("(especially those related to fonts) might not work as expected or might not work")
- report("at all. Some plugins are for testing and development only and might change")
- report("whenever we feel the need for it.")
- report()
- if logs.poptarget then
- logs.poptarget()
- end
end
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-ott.lua b/Master/texmf-dist/tex/context/base/mkiv/font-ott.lua
index 10420f6eeb1..59d92f40d84 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-ott.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-ott.lua
@@ -8,8 +8,7 @@ if not modules then modules = { } end modules ["font-ott"] = {
}
local type, next, tonumber, tostring, rawget, rawset = type, next, tonumber, tostring, rawget, rawset
-local gsub, lower, format, match, gmatch, find = string.gsub, string.lower, string.format, string.match, string.gmatch, string.find
-local sequenced = table.sequenced
+local gsub, lower, format, match = string.gsub, string.lower, string.format, string.match
local is_boolean = string.is_boolean
local setmetatableindex = table.setmetatableindex
@@ -390,7 +389,6 @@ local languages = allocate {
["kiu" ] = "kirmanjki",
["kjd" ] = "southern kiwai",
["kjp" ] = "eastern pwo karen",
- ["kjz" ] = "bumthangkha",
["kkn" ] = "kokni",
["klm" ] = "kalmyk",
["kmb" ] = "kamba",
@@ -479,7 +477,6 @@ local languages = allocate {
["mdr" ] = "mandar",
["men" ] = "me'en",
["mer" ] = "meru",
- ["mfa" ] = "pattani malay",
["mfe" ] = "morisyen",
["min" ] = "minangkabau",
["miz" ] = "mizo",
@@ -677,7 +674,6 @@ local languages = allocate {
["tpi" ] = "tok pisin",
["trk" ] = "turkish",
["tsg" ] = "tsonga",
- ["tsj" ] = "tshangla",
["tua" ] = "turoyo aramaic",
["tul" ] = "tulu",
["tuv" ] = "tuvin",
@@ -708,7 +704,6 @@ local languages = allocate {
["xbd" ] = "lÞ",
["xhs" ] = "xhosa",
["xjb" ] = "minjangbal",
- ["xkf" ] = "khengkha",
["xog" ] = "soga",
["xpe" ] = "kpelle (liberia)",
["yak" ] = "sakha",
@@ -992,13 +987,9 @@ setmetatableindex(languages, function(t,k)
return "dflt"
end)
-if setmetatablenewindex then
-
- setmetatablenewindex(languages, "ignore")
- setmetatablenewindex(scripts, "ignore")
- setmetatablenewindex(baselines, "ignore")
-
-end
+setmetatablenewindex(languages, "ignore")
+setmetatablenewindex(baselines, "ignore")
+setmetatablenewindex(baselines, "ignore")
local function resolve(t,k)
if k then
@@ -1038,11 +1029,7 @@ local function assign(t,k,v)
end
end
-if setmetatablenewindex then
-
- setmetatablenewindex(features, assign)
-
-end
+setmetatablenewindex(features, assign)
local checkers = {
rand = function(v)
@@ -1098,7 +1085,7 @@ storage.register("fonts/otf/usedfeatures", usedfeatures, "fonts.handlers.otf.sta
local normalizedaxis = otf.readers.helpers.normalizedaxis or function(s) return s end
-function otffeatures.normalize(features,wrap) -- wrap is for context
+function otffeatures.normalize(features)
if features then
local h = { }
for key, value in next, features do
@@ -1111,9 +1098,9 @@ function otffeatures.normalize(features,wrap) -- wrap is for context
h.script = rawget(verbosescripts,v) or (scripts[v] and v) or "dflt" -- auto adds
elseif k == "axis" then
h[k] = normalizedaxis(value)
- if not callbacks.supported.glyph_stream_provider then
- h.variableshapes = true -- for the moment
- end
+if not callbacks.supported.glyph_stream_provider then
+ h.variableshapes = true -- for the moment
+end
else
local uk = usedfeatures[key]
local uv = uk[value]
@@ -1126,27 +1113,10 @@ function otffeatures.normalize(features,wrap) -- wrap is for context
elseif type(value) == "string" then
local b = is_boolean(value)
if type(b) == "nil" then
- -- we do this elsewhere
- --
- -- if find(value,"=") then
- -- local t = { }
- -- for k, v in gmatch(value,"([^%s,=]+)%s*=%s*([^%s,=]+)") do
- -- t[k] = tonumber(v) or v
- -- end
- -- if next(t) then
- -- value = sequenced(t,",")
- -- end
- -- end
- if wrap and find(value,",") then
- uv = "{"..lower(value).."}"
- else
- uv = lower(value)
- end
+ uv = lower(value)
else
uv = b
end
- elseif type(value) == "table" then
- uv = sequenced(t,",")
else
uv = value
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-oup.lua b/Master/texmf-dist/tex/context/base/mkiv/font-oup.lua
index d1faadbf712..79ac76abee3 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-oup.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-oup.lua
@@ -11,34 +11,27 @@ local P, R, S = lpeg.P, lpeg.R, lpeg.S
local lpegmatch = lpeg.match
local insert, remove, copy, unpack = table.insert, table.remove, table.copy, table.unpack
-local formatters = string.formatters
-local sortedkeys = table.sortedkeys
-local sortedhash = table.sortedhash
-local tohash = table.tohash
-local setmetatableindex = table.setmetatableindex
-
-local report_error = logs.reporter("otf reader","error")
-local report_markwidth = logs.reporter("otf reader","markwidth")
-local report_cleanup = logs.reporter("otf reader","cleanup")
-local report_optimizations = logs.reporter("otf reader","merges")
-local report_unicodes = logs.reporter("otf reader","unicodes")
-
-local trace_markwidth = false trackers.register("otf.markwidth", function(v) trace_markwidth = v end)
-local trace_cleanup = false trackers.register("otf.cleanups", function(v) trace_cleanups = v end)
-local trace_optimizations = false trackers.register("otf.optimizations", function(v) trace_optimizations = v end)
-local trace_unicodes = false trackers.register("otf.unicodes", function(v) trace_unicodes = v end)
-
-local readers = fonts.handlers.otf.readers
-local privateoffset = fonts.constructors and fonts.constructors.privateoffset or 0xF0000 -- 0x10FFFF
-
-local f_private = formatters["P%05X"]
-local f_unicode = formatters["U%05X"]
-local f_index = formatters["I%05X"]
-local f_character_y = formatters["%C"]
-local f_character_n = formatters["[ %C ]"]
-
-local check_duplicates = true -- can become an option (pseudo feature) / aways needed anyway
-local check_soft_hyphen = true -- can become an option (pseudo feature) / needed for tagging
+local formatters = string.formatters
+local sortedkeys = table.sortedkeys
+local sortedhash = table.sortedhash
+local tohash = table.tohash
+local setmetatableindex = table.setmetatableindex
+
+local report = logs.reporter("otf reader")
+
+local trace_markwidth = false trackers.register("otf.markwidth",function(v) trace_markwidth = v end)
+
+local readers = fonts.handlers.otf.readers
+local privateoffset = fonts.constructors and fonts.constructors.privateoffset or 0xF0000 -- 0x10FFFF
+
+local f_private = formatters["P%05X"]
+local f_unicode = formatters["U%05X"]
+local f_index = formatters["I%05X"]
+local f_character_y = formatters["%C"]
+local f_character_n = formatters["[ %C ]"]
+
+local check_duplicates = true -- can become an option (pseudo feature) / aways needed anyway
+local check_soft_hyphen = true -- can become an option (pseudo feature) / needed for tagging
directives.register("otf.checksofthyphen",function(v)
check_soft_hyphen = v
@@ -74,8 +67,6 @@ local function unifyresources(fontdata,indices)
return
end
--
- local nofindices = #indices
- --
local variants = fontdata.resources.variants
if variants then
for selector, unicodes in next, variants do
@@ -92,8 +83,8 @@ local function unifyresources(fontdata,indices)
local u = indices[k]
if u then
newmarks[u] = v
- elseif trace_optimizations then
- report_optimizations("discarding mark %i",k)
+ else
+ report("discarding mark %i",k)
end
end
return newmarks
@@ -132,12 +123,7 @@ local function unifyresources(fontdata,indices)
if not done[c] then
local t = { }
for k, v in next, c do
- local ug = indices[k]
- if ug then
- t[ug] = v
- else
- report_error("case %i, bad index in unifying %s: %s of %s",1,"coverage",k,nofindices)
- end
+ t[indices[k]] = v
end
cover[i] = t
done[c] = d
@@ -145,16 +131,11 @@ local function unifyresources(fontdata,indices)
end
end
--
- local function recursed(c,kind) -- ligs are not packed
+ local function recursed(c) -- ligs are not packed
local t = { }
for g, d in next, c do
if type(d) == "table" then
- local ug = indices[g]
- if ug then
- t[ug] = recursed(d,kind)
- else
- report_error("case %i, bad index in unifying %s: %s of %s",1,kind,g,nofindices)
- end
+ t[indices[g]] = recursed(d)
else
t[g] = indices[d] -- ligature
end
@@ -186,31 +167,19 @@ local function unifyresources(fontdata,indices)
if duplicates then
for g1, d1 in next, c do
local ug1 = indices[g1]
- if ug1 then
- local ud1 = indices[d1]
- if ud1 then
- t1[ug1] = ud1
- local dg1 = duplicates[ug1]
- if dg1 then
- for u in next, dg1 do
- t1[u] = ud1
- end
- end
- else
- report_error("case %i, bad index in unifying %s: %s of %s",3,kind,d1,nofindices)
+ local ud1 = indices[d1]
+ t1[ug1] = ud1
+ --
+ local dg1 = duplicates[ug1]
+ if dg1 then
+ for u in next, dg1 do
+ t1[u] = ud1
end
- else
- report_error("case %i, bad index in unifying %s: %s of %s",1,kind,g1,nofindices)
end
end
else
for g1, d1 in next, c do
- local ug1 = indices[g1]
- if ug1 then
- t1[ug1] = indices[d1]
- else
- report_error("fuzzy case %i in unifying %s: %i",2,kind,g1)
- end
+ t1[indices[g1]] = indices[d1]
end
end
done[c] = t1
@@ -224,25 +193,15 @@ local function unifyresources(fontdata,indices)
if not t1 then
t1 = { }
for g1, d1 in next, c do
- local ug1 = indices[g1]
- if ug1 then
- local t2 = done[d1]
- if not t2 then
- t2 = { }
- for g2, d2 in next, d1 do
- local ug2 = indices[g2]
- if ug2 then
- t2[ug2] = d2
- else
- report_error("case %i, bad index in unifying %s: %s of %s",1,kind,g2,nofindices,nofindices)
- end
- end
- done[d1] = t2
+ local t2 = done[d1]
+ if not t2 then
+ t2 = { }
+ for g2, d2 in next, d1 do
+ t2[indices[g2]] = d2
end
- t1[ug1] = t2
- else
- report_error("case %i, bad index in unifying %s: %s of %s",2,kind,g1,nofindices)
+ done[d1] = t2
end
+ t1[indices[g1]] = t2
end
done[c] = t1
end
@@ -251,7 +210,7 @@ local function unifyresources(fontdata,indices)
elseif kind == "gsub_ligature" then
local c = step.coverage
if c then
- step.coverage = recursed(c,kind)
+ step.coverage = recursed(c)
end
elseif kind == "gsub_alternate" or kind == "gsub_multiple" then
local c = step.coverage
@@ -262,37 +221,22 @@ local function unifyresources(fontdata,indices)
if duplicates then
for g1, d1 in next, c do
for i=1,#d1 do
- local d1i = d1[i]
- local d1u = indices[d1i]
- if d1u then
- d1[i] = d1u
- else
- report_error("case %i, bad index in unifying %s: %s of %s",1,kind,i,d1i,nofindices)
- end
+ d1[i] = indices[d1[i]]
end
local ug1 = indices[g1]
- if ug1 then
- t1[ug1] = d1
- local dg1 = duplicates[ug1]
- if dg1 then
- for u in next, dg1 do
- t1[u] = copy(d1)
- end
+ t1[ug1] = d1
+ --
+ local dg1 = duplicates[ug1]
+ if dg1 then
+ for u in next, dg1 do
+ t1[u] = copy(d1)
end
- else
- report_error("case %i, bad index in unifying %s: %s of %s",2,kind,g1,nofindices)
end
end
else
for g1, d1 in next, c do
for i=1,#d1 do
- local d1i = d1[i]
- local d1u = indices[d1i]
- if d1u then
- d1[i] = d1u
- else
- report_error("case %i, bad index in unifying %s: %s of %s",2,kind,d1i,nofindices)
- end
+ d1[i] = indices[d1[i]]
end
t1[indices[g1]] = d1
end
@@ -301,41 +245,6 @@ local function unifyresources(fontdata,indices)
end
step.coverage = t1
end
- elseif kind == "gpos_single" then
- local c = step.coverage
- if c then
- local t1 = done[c]
- if not t1 then
- t1 = { }
- if duplicates then
- for g1, d1 in next, c do
- local ug1 = indices[g1]
- if ug1 then
- t1[ug1] = d1
- local dg1 = duplicates[ug1]
- if dg1 then
- for u in next, dg1 do
- t1[u] = d1
- end
- end
- else
- report_error("case %i, bad index in unifying %s: %s of %s",1,kind,g1,nofindices)
- end
- end
- else
- for g1, d1 in next, c do
- local ug1 = indices[g1]
- if ug1 then
- t1[ug1] = d1
- else
- report_error("case %i, bad index in unifying %s: %s of %s",2,kind,g1,nofindices)
- end
- end
- end
- done[c] = t1
- end
- step.coverage = t1
- end
elseif kind == "gpos_mark2base" or kind == "gpos_mark2mark" or kind == "gpos_mark2ligature" then
local c = step.coverage
if c then
@@ -343,12 +252,7 @@ local function unifyresources(fontdata,indices)
if not t1 then
t1 = { }
for g1, d1 in next, c do
- local ug1 = indices[g1]
- if ug1 then
- t1[ug1] = d1
- else
- report_error("case %i, bad index in unifying %s: %s of %s",1,kind,g1,nofindices)
- end
+ t1[indices[g1]] = d1
end
done[c] = t1
end
@@ -363,12 +267,7 @@ local function unifyresources(fontdata,indices)
if not t2 then
t2 = { }
for g2, d2 in next, d1 do
- local ug2 = indices[g2]
- if ug2 then
- t2[ug2] = d2
- else
- report_error("case %i, bad index in unifying %s: %s of %s",2,kind,g2,nofindices)
- end
+ t2[indices[g2]] = d2
end
done[d1] = t2
end
@@ -377,7 +276,7 @@ local function unifyresources(fontdata,indices)
done[c] = c
end
end
- elseif kind == "gpos_cursive" then
+ elseif kind == "gpos_single" then
local c = step.coverage
if c then
local t1 = done[c]
@@ -386,29 +285,47 @@ local function unifyresources(fontdata,indices)
if duplicates then
for g1, d1 in next, c do
local ug1 = indices[g1]
- if ug1 then
- t1[ug1] = d1
- --
- local dg1 = duplicates[ug1]
- if dg1 then
- -- probably needs a bit more
- for u in next, dg1 do
- t1[u] = copy(d1)
- end
+ t1[ug1] = d1
+ --
+ local dg1 = duplicates[ug1]
+ if dg1 then
+ for u in next, dg1 do
+ t1[u] = d1
end
- else
- report_error("case %i, bad index in unifying %s: %s of %s",1,kind,g1,nofindices)
end
end
else
for g1, d1 in next, c do
+ t1[indices[g1]] = d1
+ end
+ end
+ done[c] = t1
+ end
+ step.coverage = t1
+ end
+ elseif kind == "gpos_cursive" then
+ local c = step.coverage
+ if c then
+ local t1 = done[c]
+ if not t1 then
+ t1 = { }
+ if duplicates then
+ for g1, d1 in next, c do
local ug1 = indices[g1]
- if ug1 then
- t1[ug1] = d1
- else
- report_error("case %i, bad index in unifying %s: %s of %s",2,kind,g1,nofindices)
+ t1[ug1] = d1
+ --
+ local dg1 = duplicates[ug1]
+ if dg1 then
+ -- probably needs a bit more
+ for u in next, dg1 do
+ t1[u] = copy(d1)
+ end
end
end
+ else
+ for g1, d1 in next, c do
+ t1[indices[g1]] = d1
+ end
end
done[c] = t1
end
@@ -459,13 +376,9 @@ local function copyduplicates(fontdata)
if not ds or ds.width == 0 then
if ds then
descriptions[0xAD] = nil
- if trace_unicodes then
- report_unicodes("patching soft hyphen")
- end
+ report("patching soft hyphen")
else
- if trace_unicodes then
- report_unicodes("adding soft hyphen")
- end
+ report("adding soft hyphen")
end
if not duplicates then
duplicates = { }
@@ -501,12 +414,10 @@ local function copyduplicates(fontdata)
end
n = n + 1
end
- if trace_unicodes then
- if n <= m then
- report_unicodes("%i : % t",n,t)
- else
- report_unicodes("%i : % t ...",n,t)
- end
+ if n <= m then
+ report("duplicates: %i : % t",n,t)
+ else
+ report("duplicates: %i : % t ...",n,t)
end
else
-- what a mess
@@ -546,6 +457,7 @@ local function checklookups(fontdata,missing,nofmissing)
end
end
end
+
local function collectthem(sequences)
if not sequences then
return
@@ -637,9 +549,7 @@ local function checklookups(fontdata,missing,nofmissing)
end
end
if nofmissing <= 0 then
- if trace_unicodes then
- report_unicodes("all missings done in %s loops",loops)
- end
+ report("all done in %s loops",loops)
return
elseif old == nofmissing then
break
@@ -691,9 +601,7 @@ local function checklookups(fontdata,missing,nofmissing)
recursed(ligatures[i])
end
if nofmissing <= 0 then
- if trace_unicodes then
- report_unicodes("all missings done in %s loops",loops)
- end
+ report("all done in %s loops",loops)
return
elseif old == nofmissing then
break
@@ -703,7 +611,7 @@ local function checklookups(fontdata,missing,nofmissing)
n = 0
end
- if trace_unicodes and nofmissing > 0 then
+ if nofmissing > 0 then
local done = { }
for i, r in next, missing do
if r then
@@ -715,7 +623,7 @@ local function checklookups(fontdata,missing,nofmissing)
end
end
if next(done) then
- report_unicodes("not unicoded: % t",sortedkeys(done))
+ report("not unicoded: % t",sortedkeys(done))
end
end
end
@@ -740,10 +648,6 @@ local function unifymissing(fontdata)
resources.unicodes = nil
end
-local firstprivate = fonts.privateoffsets and fonts.privateoffsets.textbase or 0xF0000
-local puafirst = 0xE000
-local pualast = 0xF8FF
-
local function unifyglyphs(fontdata,usenames)
local private = fontdata.private or privateoffset
local glyphs = fontdata.glyphs
@@ -767,107 +671,44 @@ local function unifyglyphs(fontdata,usenames)
indices[0] = zerocode
end
--
- if names then
- -- seldom uses, we don't issue message ... this branch might even go away
- for index=1,#glyphs do
- local glyph = glyphs[index]
- local unicode = glyph.unicode -- this is the primary one
- if not unicode then
- unicode = private
- local name = glyph.name or f_private(unicode)
- indices[index] = name
- names[name] = unicode
- private = private + 1
- elseif unicode >= firstprivate then
- unicode = private
- local name = glyph.name or f_private(unicode)
- indices[index] = name
- names[name] = unicode
- private = private + 1
- elseif unicode >= puafirst and unicode <= pualast then
+ for index=1,#glyphs do
+ local glyph = glyphs[index]
+ local unicode = glyph.unicode -- this is the primary one
+ if not unicode then
+ -- report("assigning private unicode %U to glyph indexed %05X (%s)",private,index,"unset")
+ unicode = private
+ -- glyph.unicode = -1
+ if names then
local name = glyph.name or f_private(unicode)
indices[index] = name
names[name] = unicode
- elseif descriptions[unicode] then
- unicode = private
+ else
+ indices[index] = unicode
+ end
+ private = private + 1
+ elseif descriptions[unicode] then
+ -- real weird
+ report("assigning private unicode %U to glyph indexed %05X (%C)",private,index,unicode)
+ unicode = private
+ -- glyph.unicode = -1
+ if names then
local name = glyph.name or f_private(unicode)
indices[index] = name
names[name] = unicode
- private = private + 1
else
+ indices[index] = unicode
+ end
+ private = private + 1
+ else
+ if names then
local name = glyph.name or f_unicode(unicode)
indices[index] = name
names[name] = unicode
- end
- descriptions[unicode] = glyph
- end
- elseif trace_unicodes then
- for index=1,#glyphs do
- local glyph = glyphs[index]
- local unicode = glyph.unicode -- this is the primary one
- if not unicode then
- unicode = private
- indices[index] = unicode
- private = private + 1
- elseif unicode >= firstprivate then
- local name = glyph.name
- if name then
- report_unicodes("moving glyph %a indexed %05X from private %U to %U ",name,index,unicode,private)
- else
- report_unicodes("moving glyph indexed %05X from private %U to %U ",index,unicode,private)
- end
- unicode = private
- indices[index] = unicode
- private = private + 1
- elseif unicode >= puafirst and unicode <= pualast then
- local name = glyph.name
- if name then
- report_unicodes("keeping private unicode %U for glyph %a indexed %05X",unicode,name,index)
- else
- report_unicodes("keeping private unicode %U for glyph indexed %05X",unicode,index)
- end
- indices[index] = unicode
- elseif descriptions[unicode] then
- local name = glyph.name
- if name then
- report_unicodes("assigning duplicate unicode %U to %U for glyph %a indexed %05X ",unicode,private,name,index)
- else
- report_unicodes("assigning duplicate unicode %U to %U for glyph indexed %05X ",unicode,private,index)
- end
- unicode = private
- indices[index] = unicode
- private = private + 1
else
indices[index] = unicode
end
- descriptions[unicode] = glyph
- end
- else
- for index=1,#glyphs do
- local glyph = glyphs[index]
- local unicode = glyph.unicode -- this is the primary one
- if not unicode then
- unicode = private
- indices[index] = unicode
- private = private + 1
- elseif unicode >= firstprivate then
- local name = glyph.name
- unicode = private
- indices[index] = unicode
- private = private + 1
- elseif unicode >= puafirst and unicode <= pualast then
- local name = glyph.name
- indices[index] = unicode
- elseif descriptions[unicode] then
- local name = glyph.name
- unicode = private
- indices[index] = unicode
- private = private + 1
- else
- indices[index] = unicode
- end
- descriptions[unicode] = glyph
end
+ descriptions[unicode] = glyph
end
--
for index=1,#glyphs do
@@ -916,93 +757,37 @@ local function unifyglyphs(fontdata,usenames)
return indices, names
end
-local p_crappyname do
-
- local p_hex = R("af","AF","09")
- local p_digit = R("09")
- local p_done = S("._-")^0 + P(-1)
- local p_alpha = R("az","AZ")
- local p_ALPHA = R("AZ")
-
- p_crappyname = (
- -- (P("uni") + P("UNI") + P("Uni") + P("U") + P("u"))
- lpeg.utfchartabletopattern({ "uni", "u" },true)
- * S("Xx_")^0
- * p_hex^1
- -- + (P("identity") + P("Identity") + P("IDENTITY") + P("glyph") + P("jamo"))
- + lpeg.utfchartabletopattern({ "identity", "glyph", "jamo" },true)
- * p_hex^1
- -- + (P("index") + P("Index") + P("INDEX")+ P("afii"))
- + lpeg.utfchartabletopattern({ "index", "afii" }, true)
- * p_digit^1
- -- also happens l
- + p_digit
- * p_hex^3
- + p_alpha
- * p_digit^1
- -- sort of special
- + P("aj")
- * p_digit^1
- + P("eh_")
- * (p_digit^1 + p_ALPHA * p_digit^1)
- + (1-P("_"))^1
- * P("_uni")
- * p_hex^1
- + P("_")
- * P(1)^1
- ) * p_done
-
-end
-
--- In context we only keep glyph names because of tracing and access by name
--- so weird names make no sense.
-
-local forcekeep = false -- only for testing something
-
-directives.register("otf.keepnames",function(v)
- report_cleanup("keeping weird glyph names, expect larger files and more memory usage")
- forcekeep = v
-end)
+local p_bogusname = (
+ (P("uni") + P("UNI") + P("Uni") + P("U") + P("u")) * S("Xx")^0 * R("09","AF")^1
+ + (P("identity") + P("Identity") + P("IDENTITY")) * R("09","AF")^1
+ + (P("index") + P("Index") + P("INDEX")) * R("09")^1
+) * P(-1)
local function stripredundant(fontdata)
local descriptions = fontdata.descriptions
if descriptions then
local n = 0
local c = 0
- -- in context we always strip
- if (not context and fonts.privateoffsets.keepnames) or forcekeep then
- for unicode, d in next, descriptions do
- if d.class == "base" then
- d.class = nil
- c = c + 1
- end
+ for unicode, d in next, descriptions do
+ local name = d.name
+ if name and lpegmatch(p_bogusname,name) then
+ d.name = nil
+ n = n + 1
end
- else
- for unicode, d in next, descriptions do
- local name = d.name
- if name and lpegmatch(p_crappyname,name) then
- d.name = nil
- n = n + 1
- end
- if d.class == "base" then
- d.class = nil
- c = c + 1
- end
+ if d.class == "base" then
+ d.class = nil
+ c = c + 1
end
end
- if trace_cleanup then
- if n > 0 then
- report_cleanup("%s bogus names removed (verbose unicode)",n)
- end
- if c > 0 then
- report_cleanup("%s base class tags removed (default is base)",c)
- end
+ if n > 0 then
+ report("%s bogus names removed (verbose unicode)",n)
+ end
+ if c > 0 then
+ report("%s base class tags removed (default is base)",c)
end
end
end
-readers.stripredundant = stripredundant
-
function readers.getcomponents(fontdata) -- handy for resolving ligatures when names are missing
local resources = fontdata.resources
if resources then
@@ -1028,9 +813,9 @@ function readers.getcomponents(fontdata) -- handy for resolving ligatures when n
end
for i=1,#steps do
-- we actually had/have this in base mode
- local c = steps[i].coverage
- if c then
- for k, v in next, c do
+ local coverage = steps[i].coverage
+ if coverage then
+ for k, v in next, coverage do
traverse(k,k,v)
end
end
@@ -1466,9 +1251,7 @@ function readers.pack(data)
end
return false
elseif nt >= threshold then
- local one = 0
- local two = 0
- local rest = 0
+ local one, two, rest = 0, 0, 0
if pass == 1 then
for k,v in next, c do
if v == 1 then
@@ -2342,24 +2125,17 @@ local function mergesteps_1(lookup,strict)
local f = first.format
for i=2,nofsteps do
if steps[i].format ~= f then
- if trace_optimizations then
- report_optimizations("not merging %a steps of %a lookup %a, different formats",nofsteps,lookup.type,lookup.name)
- end
+ report("not merging %a steps of %a lookup %a, different formats",nofsteps,lookup.type,lookup.name)
return 0
end
end
end
- if trace_optimizations then
- report_optimizations("merging %a steps of %a lookup %a",nofsteps,lookup.type,lookup.name)
- end
+ report("merging %a steps of %a lookup %a",nofsteps,lookup.type,lookup.name)
local target = first.coverage
for i=2,nofsteps do
- local c = steps[i].coverage
- if c then
- for k, v in next, c do
- if not target[k] then
- target[k] = v
- end
+ for k, v in next, steps[i].coverage do
+ if not target[k] then
+ target[k] = v
end
end
end
@@ -2380,31 +2156,24 @@ local function mergesteps_2(lookup) -- pairs
local f = first.format
for i=2,nofsteps do
if steps[i].format ~= f then
- if trace_optimizations then
- report_optimizations("not merging %a steps of %a lookup %a, different formats",nofsteps,lookup.type,lookup.name)
- end
+ report("not merging %a steps of %a lookup %a, different formats",nofsteps,lookup.type,lookup.name)
return 0
end
end
end
- if trace_optimizations then
- report_optimizations("merging %a steps of %a lookup %a",nofsteps,lookup.type,lookup.name)
- end
+ report("merging %a steps of %a lookup %a",nofsteps,lookup.type,lookup.name)
local target = first.coverage
for i=2,nofsteps do
- local c = steps[i].coverage
- if c then
- for k, v in next, c do
- local tk = target[k]
- if tk then
- for kk, vv in next, v do
- if tk[kk] == nil then
- tk[kk] = vv
- end
+ for k, v in next, steps[i].coverage do
+ local tk = target[k]
+ if tk then
+ for kk, vv in next, v do
+ if tk[kk] == nil then
+ tk[kk] = vv
end
- else
- target[k] = v
end
+ else
+ target[k] = v
end
end
end
@@ -2420,24 +2189,17 @@ end
local function mergesteps_3(lookup,strict) -- marks
local steps = lookup.steps
local nofsteps = lookup.nofsteps
- if trace_optimizations then
- report_optimizations("merging %a steps of %a lookup %a",nofsteps,lookup.type,lookup.name)
- end
+ report("merging %a steps of %a lookup %a",nofsteps,lookup.type,lookup.name)
-- check first
local coverage = { }
for i=1,nofsteps do
- local c = steps[i].coverage
- if c then
- for k, v in next, c do
- local tk = coverage[k] -- { class, { x, y } }
- if tk then
- if trace_optimizations then
- report_optimizations("quitting merge due to multiple checks")
- end
- return nofsteps
- else
- coverage[k] = v
- end
+ for k, v in next, steps[i].coverage do
+ local tk = coverage[k] -- { class, { x, y } }
+ if tk then
+ report("quitting merge due to multiple checks")
+ return nofsteps
+ else
+ coverage[k] = v
end
end
end
@@ -2483,20 +2245,15 @@ local function mergesteps_4(lookup) -- ligatures
local steps = lookup.steps
local nofsteps = lookup.nofsteps
local first = steps[1]
- if trace_optimizations then
- report_optimizations("merging %a steps of %a lookup %a",nofsteps,lookup.type,lookup.name)
- end
+ report("merging %a steps of %a lookup %a",nofsteps,lookup.type,lookup.name)
local target = first.coverage
for i=2,nofsteps do
- local c = steps[i].coverage
- if c then
- for k, v in next, c do
- local tk = target[k]
- if tk then
- nested(v,tk)
- else
- target[k] = v
- end
+ for k, v in next, steps[i].coverage do
+ local tk = target[k]
+ if tk then
+ nested(v,tk)
+ else
+ target[k] = v
end
end
end
@@ -2513,9 +2270,7 @@ local function mergesteps_5(lookup) -- cursive
local steps = lookup.steps
local nofsteps = lookup.nofsteps
local first = steps[1]
- if trace_optimizations then
- report_optimizations("merging %a steps of %a lookup %a",nofsteps,lookup.type,lookup.name)
- end
+ report("merging %a steps of %a lookup %a",nofsteps,lookup.type,lookup.name)
local target = first.coverage
local hash = nil
for k, v in next, target do
@@ -2523,21 +2278,18 @@ local function mergesteps_5(lookup) -- cursive
break
end
for i=2,nofsteps do
- local c = steps[i].coverage
- if c then
- for k, v in next, c do
- local tk = target[k]
- if tk then
- if not tk[2] then
- tk[2] = v[2]
- end
- if not tk[3] then
- tk[3] = v[3]
- end
- else
- target[k] = v
- v[1] = hash
+ for k, v in next, steps[i].coverage do
+ local tk = target[k]
+ if tk then
+ if not tk[2] then
+ tk[2] = v[2]
end
+ if not tk[3] then
+ tk[3] = v[3]
+ end
+ else
+ target[k] = v
+ v[1] = hash
end
end
end
@@ -2567,9 +2319,7 @@ local function checkkerns(lookup)
end
end
if kerns then
- if trace_optimizations then
- report_optimizations("turning pairs of step %a of %a lookup %a into kerns",i,lookup.type,lookup.name)
- end
+ report("turning pairs of step %a of %a lookup %a into kerns",i,lookup.type,lookup.name)
local c = { }
for g1, d1 in next, coverage do
if d1 and d1 ~= true then
@@ -2629,9 +2379,7 @@ local function checkpairs(lookup)
if step.format == "pair" then
local coverage = onlykerns(step)
if coverage then
- if trace_optimizations then
- report_optimizations("turning pairs of step %a of %a lookup %a into kerns",i,lookup.type,lookup.name)
- end
+ report("turning pairs of step %a of %a lookup %a into kerns",i,lookup.type,lookup.name)
for g1, d1 in next, coverage do
local d = { }
for g2, d2 in next, d1 do
@@ -2754,19 +2502,17 @@ function readers.compact(data)
end
end
end
- elseif trace_optimizations then
- report_optimizations("no lookups in %a",what)
+ else
+ report("no lookups in %a",what)
end
end
compact("sequences")
compact("sublookups")
- if trace_optimizations then
- if merged > 0 then
- report_optimizations("%i steps of %i removed due to merging",merged,allsteps)
- end
- if kerned > 0 then
- report_optimizations("%i steps of %i steps turned from pairs into kerns",kerned,allsteps)
- end
+ if merged > 0 then
+ report("%i steps of %i removed due to merging",merged,allsteps)
+ end
+ if kerned > 0 then
+ report("%i steps of %i steps turned from pairs into kerns",kerned,allsteps)
end
end
@@ -2866,7 +2612,7 @@ function readers.expand(data)
-- or bb?
d.width = defaultwidth
elseif trace_markwidth and wd ~= 0 and d.class == "mark" then
- report_markwidth("mark %a with width %b found in %a",d.name or "<noname>",wd,basename)
+ report("mark %a with width %b found in %a",d.name or "<noname>",wd,basename)
end
if bb then
local ht = bb[4]
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-pre.mkiv b/Master/texmf-dist/tex/context/base/mkiv/font-pre.mkiv
index c1c24b8544f..b49bc560ee2 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-pre.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-pre.mkiv
@@ -53,7 +53,10 @@
script=auto, % on speed; 'base' just doesn't play well with dynamics; some day we can even
autoscript=position,
autolanguage=position,
+% ccmp=yes,
kern=yes, % consider skipping the base passes when no base mode is used
+% palt=yes,
+% pwid=yes,
mark=yes,
mkmk=yes,
curs=yes]
@@ -320,22 +323,6 @@
\definefontfeature [tamil-two] [tamil-one] [script=tml2]
\definefontfeature [telugu-two] [telugu-one] [script=tel2]
-% tibetan
-
-\definefontfeature
- [tibetan]
- [always]
- [script=tibt,
- language=dflt,
- locl=yes,
- ccmp=yes,
- abvs=yes,
- blws=yes,
- calt=yes,
- liga=yes,
- abvm=yes,
- blwm=yes]
-
% cjk
\definefontfeature
@@ -465,37 +452,9 @@
[slanted]
[slant=.2]
-% \definefontfeature
-% [boldened]
-% [extend=1.2]
-
-%D Neat:
-
-% By eye:
-%
-% \definefontfeature[boldened-10][effect={width=0.10,delta=1.0,hdelta=0.500,ddelta=0.150,vshift=0.125,extend=1.025,squeeze=0.99250}]
-% \definefontfeature[boldened-15][effect={width=0.15,delta=1.0,hdelta=0.500,ddelta=0.150,vshift=0.250,extend=1.050,squeeze=0.98750}]
-% \definefontfeature[boldened-20][effect={width=0.20,delta=1.0,hdelta=0.500,ddelta=0.150,vshift=0.375,extend=1.075,squeeze=0.98125}]
-% \definefontfeature[boldened-30][effect={width=0.30,delta=1.0,hdelta=0.500,ddelta=0.150,vshift=0.500,extend=1.100,squeeze=0.97500}]
-%
-% By calculation:
-%
-% \definefontfeature[boldened-10][effect={width=0.10,delta=1.0,hdelta=0.02500,ddelta=0.02500,vshift=0.02500,extend=1.050,squeeze=0.99500}]
-% \definefontfeature[boldened-15][effect={width=0.15,delta=1.0,hdelta=0.05625,ddelta=0.05625,vshift=0.05625,extend=1.075,squeeze=0.99250}]
-% \definefontfeature[boldened-20][effect={width=0.20,delta=1.0,hdelta=0.10000,ddelta=0.10000,vshift=0.10000,extend=1.100,squeeze=0.99000}]
-% \definefontfeature[boldened-30][effect={width=0.30,delta=1.0,hdelta=0.22500,ddelta=0.22500,vshift=0.22500,extend=1.150,squeeze=0.98500}]
-%
-% So we can do this:
-
-\definefontfeature[boldened-10][effect={width=0.10,auto=yes}]
-\definefontfeature[boldened-15][effect={width=0.15,auto=yes}]
-\definefontfeature[boldened-20][effect={width=0.20,auto=yes}]
-\definefontfeature[boldened-25][effect={width=0.25,auto=yes}]
-\definefontfeature[boldened-30][effect={width=0.30,auto=yes}]
-
\definefontfeature
[boldened]
- [boldened-30]
+ [extend=1.2]
%D Emoji:
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-prv.lua b/Master/texmf-dist/tex/context/base/mkiv/font-prv.lua
deleted file mode 100644
index 20c06d2e54e..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/font-prv.lua
+++ /dev/null
@@ -1,78 +0,0 @@
-if not modules then modules = { } end modules ['font-prv'] = {
- version = 1.001,
- comment = "companion to font-ini.mkiv and hand-ini.mkiv",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
-local type = type
-local formatters = string.formatters
-
-local fonts = fonts
-local helpers = fonts.helpers
-local fontdata = fonts.hashes.identifiers
-
-local setmetatableindex = table.setmetatableindex
-
-local currentprivate = fonts.privateoffsets.textextrabase
-local maximumprivate = currentprivate + 0xFFF
-
-local extraprivates = { }
-helpers.extraprivates = extraprivates
-
-function fonts.helpers.addextraprivate(name,f)
- extraprivates[#extraprivates+1] = { name, f }
-end
-
--- if we run out of space we can think of another range but by sharing we can
--- use these privates for mechanisms like alignments-on-character and such
-
-local sharedprivates = setmetatableindex(function(t,k)
- local v = currentprivate
- if currentprivate < maximumprivate then
- currentprivate = currentprivate + 1
- else
- -- reuse last slot, todo: warning
- end
- t[k] = v
- return v
-end)
-
-function helpers.addprivate(tfmdata,name,characterdata)
- local properties = tfmdata.properties
- local characters = tfmdata.characters
- local privates = properties.privates
- if not privates then
- privates = { }
- properties.privates = privates
- end
- if not name then
- name = formatters["anonymous_private_0x%05X"](currentprivate)
- end
- local usedprivate = sharedprivates[name]
- privates[name] = usedprivate
- characters[usedprivate] = characterdata
- return usedprivate
-end
-
-function helpers.getprivates(tfmdata)
- if type(tfmdata) == "number" then
- tfmdata = fontdata[tfmdata]
- end
- local properties = tfmdata.properties
- return properties and properties.privates
-end
-
-function helpers.hasprivate(tfmdata,name)
- if type(tfmdata) == "number" then
- tfmdata = fontdata[tfmdata]
- end
- local properties = tfmdata.properties
- local privates = properties and properties.privates
- return privates and privates[name] or false
-end
-
-function helpers.privateslot(name)
- return rawget(sharedprivates,name)
-end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-sel.lua b/Master/texmf-dist/tex/context/base/mkiv/font-sel.lua
index 15d3838f6d0..e7f56047b6e 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-sel.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-sel.lua
@@ -232,6 +232,52 @@ local m_alternative = {
["sc"] = "smallcaps"
}
+--~ methods["style"] = function(data,alternative,style)
+--~ local family = data.metadata.family
+--~ local style = m_alternative[style] or style
+--~ if trace_alternatives then
+--~ report_selectfont("Alternative '%s': Using method 'style' with argument '%s'",alternative,style)
+--~ end
+--~ local fontweight = m_name[style] and m_name[style]["weight"] or "regular"
+--~ local fontstyle = m_name[style] and m_name[style]["style"] or "normal"
+--~ local fontwidth = m_name[style] and m_name[style]["width"] or "normal"
+--~ local pattern = getlookups{
+--~ familyname = cleanname(family),
+--~ pfmweight = m_weight[fontweight],
+--~ style = fontstyle
+--~ }
+--~ if #pattern == 1 then
+--~ selectfont_savefile(data,alternative,0,"default",pattern[1])
+--~ elseif #pattern > 1 then
+--~ local bodyfontsize, minsize, maxsize, width = nil, nil, nil, nil
+--~ for patternindex, patternentry in next, pattern do
+--~ minsize = patternentry["minsize"]
+--~ maxsize = patternentry["maxsize"]
+--~ width = patternentry["pfmwidth"]
+--~ if minsize and maxsize then
+--~ for fontsize, fontstate in next, bodyfontsizes do
+--~ bodyfontsize, _ = number.splitdimen(fontsize)
+--~ bodyfontsize = bodyfontsize * 10
+--~ if minsize < bodyfontsize and bodyfontsize < maxsize then
+--~ if bodyfontsize == 100 then
+--~ selectfont_savefile(data,alternative,0,"default",patternentry)
+--~ end
+--~ selectfont_savefile(data,alternative,bodyfontsize,fontsize,patternentry)
+--~ end
+--~ end
+--~ else
+--~ if width == m_width[fontwidth] then
+--~ selectfont_savefile(data,alternative,0,"default",patternentry)
+--~ end
+--~ end
+--~ end
+--~ else
+--~ if trace_alternatives then
+--~ report_selectfont("Alternative '%s': No font was found for the requested style '%s' from '%s'",alternative,style,family)
+--~ end
+--~ end
+--~ end
+
local function m_style_family(family)
local askedname = cleanname(family)
local familyname = getlookups{ familyname = askedname }
@@ -302,7 +348,7 @@ local function m_style_style(entries,style)
if style == "italic" and entry["angle"] and entry["angle"] ~= 0 then
t[#t+1] = entry
elseif style == "normal" and entry["angle"] and entry["angle"] ~= 0 then
- -- Fix needed for fonts with wrong value for the style field
+ --~ Fix needed for fonts with wrong value for the style field
elseif entry["style"] == style then
t[#t+1] = entry
end
@@ -402,10 +448,10 @@ methods[v_default] = function(data,alternative)
report_selectfont("Alternative '%s': The family '%s' contains only one font",alternative,family)
end
selectfont_savefile(data,alternative,0,"default",result[1])
- -- if trace_alternatives then
- -- report_selectfont("Alternative '%s': Changing method 'default' to method 'style'",alternative)
- -- end
- -- methods["file"](data,alternative,result[1]["filename"])
+ --~ if trace_alternatives then
+ --~ report_selectfont("Alternative '%s': Changing method 'default' to method 'style'",alternative)
+ --~ end
+ --~ methods["file"](data,alternative,result[1]["filename"])
else
if trace_alternatives then
report_selectfont("Alternative '%s': Changing method 'default' to method 'style'",alternative)
@@ -453,6 +499,38 @@ function selectfont.userdata(index)
end
end
+--~ function selectfont.registerfiles(index)
+--~ local data = data[index]
+--~ local colon = splitat(":",true)
+--~ for alternative, _ in next, alternatives do
+--~ local arguments = data.alternatives[alternative]
+--~ if arguments ~= "" then
+--~ local entries = settings_to_array(arguments)
+--~ local setmethod = false
+--~ for index, entry in next, entries do
+--~ method, argument = lpegmatch(colon,entry)
+--~ if not argument then
+--~ argument = method
+--~ method = "name"
+--~ end
+--~ if extras[method] then
+--~ extras[method](data,alternative,argument)
+--~ elseif methods[method] then
+--~ if not setmethod then
+--~ setmethod = true
+--~ methods[method](data,alternative,argument)
+--~ end
+--~ end
+--~ end
+--~ if not setmethod then
+--~ methods[v_default](data,alternative)
+--~ end
+--~ else
+--~ methods[v_default](data,alternative)
+--~ end
+--~ end
+--~ end
+
function selectfont.registerfiles(index)
local data = data[index]
local colon = splitat(":",true)
@@ -584,8 +662,8 @@ function selectfont.fontsynonym(data,class,style,alternative,index)
local fontsizes = sortedkeys(fontfiles)
local fallback = index ~= 0
local fontclass = lower(class)
- --local fontfeature = data.features and data.features[alternative] or data.options.features
- --local fontgoodie = data.goodies and data.goodies [alternative] or data.options.goodies
+ --~ local fontfeature = data.features and data.features[alternative] or data.options.features
+ --~ local fontgoodie = data.goodies and data.goodies [alternative] or data.options.goodies
local fontfeature = selectfont.features(data,style,alternative)
local fontgoodie = selectfont.goodies (data,style,alternative)
local synonym = m_synonym[style] and m_synonym[style][alternative]
@@ -597,25 +675,25 @@ function selectfont.fontsynonym(data,class,style,alternative,index)
end
local fontfallback = formatters["fallback-%s-%s-%s"](fontclass,style,alternative)
for _, fontsize in next, fontsizes do
- -- if trace_typescript then
- -- report_typescript("Synonym: '%s', Size: '%s', File: '%s'",fontfile,fontfiles[fontsize][1],fontfiles[fontsize][2])
- -- end
+ --~ if trace_typescript then
+ --~ report_typescript("Synonym: '%s', Size: '%s', File: '%s'",fontfile,fontfiles[fontsize][1],fontfiles[fontsize][2])
+ --~ end
registerdesignsizes(fontfile,fontfiles[fontsize][1],fontfiles[fontsize][2])
end
if fallback then
- -- if trace_typescript then
- -- report_typescript("Synonym: '%s', File: '%s', Features: '%s'",fontsynonym,fontfile,fontfeature)
- -- end
+ --~ if trace_typescript then
+ --~ report_typescript("Synonym: '%s', File: '%s', Features: '%s'",fontsynonym,fontfile,fontfeature)
+ --~ end
ctx_definefontsynonym( { fontsynonym }, { fontfile }, { features = fontfeature } )
else
- -- if trace_typescript then
- -- report_typescript("Synonym: '%s', File: '%s', Features: '%s', Goodies: '%s', Fallbacks: '%s'",fontsynonym,fontfile,fontfeature,fontgoodie,fontfallback)
- -- end
+ --~ if trace_typescript then
+ --~ report_typescript("Synonym: '%s', File: '%s', Features: '%s', Goodies: '%s', Fallbacks: '%s'",fontsynonym,fontfile,fontfeature,fontgoodie,fontfallback)
+ --~ end
ctx_definefontsynonym( { fontsynonym }, { fontfile }, { features = fontfeature, goodies = fontgoodie, fallbacks = fontfallback } )
if synonym then
- -- if trace_typescript then
- -- report_typescript("Synonym: '%s', File: '%s'",synonym,fontsynonym)
- -- end
+ --~ if trace_typescript then
+ --~ report_typescript("Synonym: '%s', File: '%s'",synonym,fontsynonym)
+ --~ end
ctx_definefontsynonym( { synonym }, { fontsynonym } )
end
end
@@ -633,9 +711,9 @@ function selectfont.fontfallback(data,class,style,alternative,index)
if index == 1 then
ctx_resetfontfallback( { fontfallback } )
end
- -- if trace_typescript then
- -- report_typescript("Fallback: '%s', Synonym: '%s', Range: '%s', Scale: '%s', Check: '%s', Force: '%s'",fontfallback,fontsynonym,range,scale,check,force)
- -- end
+ --~ if trace_typescript then
+ --~ report_typescript("Fallback: '%s', Synonym: '%s', Range: '%s', Scale: '%s', Check: '%s', Force: '%s'",fontfallback,fontsynonym,range,scale,check,force)
+ --~ end
ctx_definefontfallback( { fontfallback }, { fontsynonym }, { range }, { rscale = scale, check = check, force = force } )
end
@@ -652,9 +730,9 @@ function selectfont.filefallback(data,class,style,alternative,index)
if index == 1 then
ctx_resetfontfallback( { fontfallback } )
end
- -- if trace_typescript then
- -- report_typescript("Fallback: '%s', File: '%s', Features: '%s', Range: '%s', Scale: '%s', Check: '%s', Force: '%s', Offset: '%s'",fontfallback,fontfile[2],fontfeature,range,scale,check,force,offset)
- -- end
+ --~ if trace_typescript then
+ --~ report_typescript("Fallback: '%s', File: '%s', Features: '%s', Range: '%s', Scale: '%s', Check: '%s', Force: '%s', Offset: '%s'",fontfallback,fontfile[2],fontfeature,range,scale,check,force,offset)
+ --~ end
ctx_definefontfallback( { fontfallback }, { formatters["file:%s*%s"](fontfile[2],fontfeature) }, { range }, { rscale = scale, check = check, force = force, offset = offset } )
end
@@ -685,9 +763,9 @@ function selectfont.fallback(data)
local fallbacks = fallbacks[fontclass] and fallbacks[fontclass][fontstyle]
if fallbacks then
for index, entry in next, fallbacks do
- -- I need different fallback routines for math and text because
- -- font synonyms can’t be used with math fonts and I have to apply
- -- feature settings with the \definefontfallback command.
+ --~ I need different fallback routines for math and text because
+ --~ font synonyms can’t be used with math fonts and I have to apply
+ --~ feature settings with the \definefontfallback command.
if fontstyle == "mm" then
selectfont.mathfallback(index,entry,fontclass,fontstyle)
else
@@ -714,8 +792,7 @@ function selectfont.typescript(data)
end
end
for alternative, _ in next, alternatives do
- if style == "mm" then
- -- Set math fonts only for upright and bold alternatives
+ if style == "mm" then -- Set math fonts only for upright and bold alternatives
if alternative == "tf" or alternative == "bf" then
selectfont.fontsynonym (data,class,style,alternative,0)
end
@@ -736,9 +813,9 @@ function selectfont.bodyfont(data)
for alternative, _ in next, alternatives do
fontsynonym = formatters["synonym-%s-%s-%s"](fontclass,fontstyle,alternative)
fontlist[#fontlist+1] = formatters["%s=%s sa 1"] (alternative,fontsynonym)
- -- if trace_typescript then
- -- report_typescript("Alternative '%s': Synonym '%s'",alternative,fontsynonym)
- -- end
+ --~ if trace_typescript then
+ --~ report_typescript("Alternative '%s': Synonym '%s'",alternative,fontsynonym)
+ --~ end
end
fontlist = concat(fontlist,",")
ctx_definebodyfont( { class }, { fontsizes }, { fontstyle }, { fontlist } )
@@ -759,9 +836,9 @@ function selectfont.typeface(data)
local style = m_style[fontstyle]
local size = data.options.designsize ~= "" and data.options.designsize or "default"
local scale = data.options.rscale ~= "" and data.options.rscale or 1
- -- if trace_typescript then
- -- report_typescript("Class: '%s', Style: '%s', Size: '%s', Scale: '%s'",fontclass,fontstyle,size,scale)
- -- end
+ --~ if trace_typescript then
+ --~ report_typescript("Class: '%s', Style: '%s', Size: '%s', Scale: '%s'",fontclass,fontstyle,size,scale)
+ --~ end
ctx_definetypeface( { fontclass }, { fontstyle }, { style }, { "" }, { "default" }, { designsize = size, rscale = scale } )
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-set.mkvi b/Master/texmf-dist/tex/context/base/mkiv/font-set.mkvi
index aac83e1aa5f..2c6d065d86c 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-set.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-set.mkvi
@@ -46,7 +46,7 @@
% \def\font_preloads_reset_nullfont % this is needed because some macro packages (tikz) misuse \nullfont
% {\dorecurse\plusseven{\fontdimen\recurselevel\nullfont\zeropoint}% keep en eye on this as:
% \clf_resetnullfont % in luatex 0.70 this will also do the previous
-% \glet\font_preloads_reset_nullfont\relax}
+% \globallet\font_preloads_reset_nullfont\relax}
\def\font_preload_check_mode
{\doifelsemode{lmmath}
@@ -122,14 +122,14 @@
\font_preloads_reset
\else
\font_preloads_reset
- \push_macro_fontstyle
+ \pushmacro\fontstyle
\ifcsname\??fontclass\fontclass\s!mm\s!features\endcsname \else
\font_preload_default_fonts_mm
\fi
\ifcsname\??fontclass\fontclass\s!tt\s!features\endcsname \else
\font_preload_default_fonts_tt
\fi
- \pop_macro_fontstyle
+ \popmacro\fontstyle
\font_preloads_reset_checked % reset third, mm and tt
\setupbodyfont[\fontstyle]%
\fi}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-shp.lua b/Master/texmf-dist/tex/context/base/mkiv/font-shp.lua
index d5c194c858e..75a12ac821c 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-shp.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-shp.lua
@@ -12,7 +12,6 @@ local formatters = string.formatters
local otf = fonts.handlers.otf
local afm = fonts.handlers.afm
-local pfb = fonts.handlers.pfb
local hashes = fonts.hashes
local identifiers = hashes.identifiers
@@ -40,8 +39,7 @@ local function packoutlines(data,makesequence)
return
end
if makesequence then
--- for index=1,#glyphs do
- for index=0,#glyphs-1 do
+ for index=1,#glyphs do
local glyph = glyphs[index]
local segments = glyph.segments
if segments then
@@ -50,7 +48,6 @@ local function packoutlines(data,makesequence)
for i=1,#segments do
local segment = segments[i]
local nofsegment = #segment
- -- why last first ... needs documenting
nofsequence = nofsequence + 1
sequence[nofsequence] = segment[nofsegment]
for i=1,nofsegment-1 do
@@ -67,8 +64,7 @@ local function packoutlines(data,makesequence)
local common = { }
local reverse = { }
local last = 0
--- for index=1,#glyphs do
- for index=0,#glyphs-1 do
+ for index=1,#glyphs do
local segments = glyphs[index].segments
if segments then
for i=1,#segments do
@@ -77,8 +73,7 @@ local function packoutlines(data,makesequence)
end
end
end
--- for index=1,#glyphs do
- for index=0,#glyphs-1 do
+ for index=1,#glyphs do
local segments = glyphs[index].segments
if segments then
for i=1,#segments do
@@ -119,8 +114,7 @@ local function unpackoutlines(data)
if not glyphs then
return
end
--- for index=1,#glyphs do
- for index=0,#glyphs-1 do
+ for index=1,#glyphs do
local segments = glyphs[index].segments
if segments then
for i=1,#segments do
@@ -137,7 +131,7 @@ end
-- todo: loaders per format
local readers = otf.readers
-local cleanname = otf.readers.helpers.cleanname
+local cleanname = readers.helpers.cleanname
local function makehash(filename,sub,instance)
local name = cleanname(file.basename(filename))
@@ -163,7 +157,7 @@ local function loadoutlines(cache,filename,sub,instance)
local hash = makehash(filename,sub,instance)
data = containers.read(cache,hash)
if not data or data.time ~= time or data.size ~= size then
- data = otf.readers.loadshapes(filename,sub,instance)
+ data = readers.loadshapes(filename,sub,instance)
if data then
data.size = size
data.format = data.format or (kind == "otf" and "opentype") or "truetype"
@@ -210,16 +204,19 @@ local function loadstreams(cache,filename,sub,instance)
local size = attr and attr.size or 0
local time = attr and attr.modification or 0
local sub = tonumber(sub)
+
+ -- fonts.formats
+
if size > 0 and (kind == "otf" or kind == "ttf" or kind == "tcc") then
local hash = makehash(filename,sub,instance)
data = containers.read(cache,hash)
if not data or data.time ~= time or data.size ~= size then
- data = otf.readers.loadshapes(filename,sub,instance,true)
+ data = readers.loadshapes(filename,sub,instance,true)
if data then
local glyphs = data.glyphs
local streams = { }
if glyphs then
- for i=0,#glyphs-1 do
+ for i=0,#glyphs do
streams[i] = glyphs[i].stream or ""
end
end
@@ -232,68 +229,13 @@ local function loadstreams(cache,filename,sub,instance)
data = containers.read(cache,hash) -- frees old mem
end
end
- elseif size > 0 and (kind == "pfb") then
- local hash = makehash(filename,sub,instance)
- data = containers.read(cache,hash)
- if not data or data.time ~= time or data.size ~= size then
- local names, encoding, streams, metadata = pfb.loadvector(filename,false,true)
- if streams then
- local fontbbox = metadata.fontbbox or { 0, 0, 0, 0 }
- for i=0,#streams do
- streams[i] = streams[i].stream or "\14"
- end
- data = {
- filename = filename,
- size = size,
- time = time,
- format = "type1",
- streams = streams,
- fontheader = {
- fontversion = metadata.version,
- units = 1000, -- can this be different?
- xmin = fontbbox[1],
- ymin = fontbbox[2],
- xmax = fontbbox[3],
- ymax = fontbbox[4],
- },
- horizontalheader = {
- ascender = 0,
- descender = 0,
- },
- maximumprofile = {
- nofglyphs = #streams + 1,
- },
- names = {
- copyright = metadata.copyright,
- family = metadata.familyname,
- fullname = metadata.fullname,
- fontname = metadata.fontname,
- subfamily = metadata.subfamilyname,
- trademark = metadata.trademark,
- notice = metadata.notice,
- version = metadata.version,
- },
- cffinfo = {
- familyname = metadata.familyname,
- fullname = metadata.fullname,
- italicangle = metadata.italicangle,
- monospaced = metadata.isfixedpitch and true or false,
- underlineposition = metadata.underlineposition,
- underlinethickness = metadata.underlinethickness,
- weight = metadata.weight,
- },
- }
- containers.write(cache,hash,data)
- data = containers.read(cache,hash) -- frees old mem
- end
- end
else
data = {
filename = filename,
size = 0,
time = time,
format = "unknown",
- streams = { }
+ glyphs = { }
}
end
return data
@@ -323,15 +265,7 @@ hashes.shapes = table.setmetatableindex(function(t,k)
end
end)
-local function getstreamhash(fontid)
- local fontdata = identifiers[fontid]
- if fontdata then
- local properties = fontdata.properties
- return makehash(properties.filename,fontdata.subindex,properties.instance)
- end
-end
-
-local function loadstreamdata(fontdata)
+local function loadstreamdata(fontdata,streams)
local properties = fontdata.properties
local filename = properties.filename
local subindex = fontdata.subindex
@@ -355,19 +289,12 @@ end)
otf.loadoutlinedata = loadoutlinedata -- not public
otf.loadstreamdata = loadstreamdata -- not public
otf.loadshapes = loadshapes
-otf.getstreamhash = getstreamhash -- not public, might move to other namespace
--- experimental code, for me only ... unsupported (todo: use %N)
+-- experimental code, for me only ... unsupported
-local f_c = formatters["%F %F %F %F %F %F c"]
-local f_l = formatters["%F %F l"]
-local f_m = formatters["%F %F m"]
-
-directives.register("pdf.stripzeros",function()
- f_c = formatters["%N %N %N %N %N %N c"]
- f_l = formatters["%N %N l"]
- f_m = formatters["%N %N m"]
-end)
+local f_c = string.formatters["%F %F %F %F %F %F c"]
+local f_l = string.formatters["%F %F l"]
+local f_m = string.formatters["%F %F m"]
local function segmentstopdf(segments,factor,bt,et)
local t = { }
@@ -389,12 +316,9 @@ local function segmentstopdf(segments,factor,bt,et)
elseif w == "q" then
local p = segments[i-1]
local n = #p
- local l_x = factor*p[n-2]
- local l_y = factor*p[n-1]
- local m_x = factor*s[1]
- local m_y = factor*s[2]
- local r_x = factor*s[3]
- local r_y = factor*s[4]
+ local l_x, l_y = factor*p[n-2], factor*p[n-1]
+ local m_x, m_y = factor*s[1], factor*s[2]
+ local r_x, r_y = factor*s[3], factor*s[4]
m = m + 1
t[m] = f_c (
l_x + 2/3 * (m_x-l_x), l_y + 2/3 * (m_y-l_y),
@@ -414,7 +338,7 @@ local function segmentstopdf(segments,factor,bt,et)
end
end
-local function initialize(tfmdata,key,value)
+local function addvariableshapes(tfmdata,key,value)
if value then
local shapes = otf.loadoutlinedata(tfmdata)
if not shapes then
@@ -430,9 +354,7 @@ local function initialize(tfmdata,key,value)
local factor = hfactor / 65536
local getactualtext = otf.getactualtext
for unicode, char in next, characters do
- if char.commands then
- -- can't happen as we're doing this before other messing around
- else
+ if not char.commands then
local shape = glyphs[char.index]
if shape then
local segments = shape.segments
@@ -453,12 +375,12 @@ otf.features.register {
name = "variableshapes", -- enforced for now
description = "variable shapes",
manipulators = {
- base = initialize,
- node = initialize,
+ base = addvariableshapes,
+ node = addvariableshapes,
}
}
--- In the end it is easier to just provide the new charstring (cff) and points (ttf). First
+-- In the end it is easier to just provide the new charstring (cff) and points (ttdf). First
-- of all we already have the right information so there is no need to patch the already complex
-- backend code (we only need to make sure the cff is valid). Also, I prototyped support for
-- these fonts using (converted to) normal postscript shapes, a functionality that was already
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-sol.lua b/Master/texmf-dist/tex/context/base/mkiv/font-sol.lua
index 002f9df131f..8967d88e60b 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-sol.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-sol.lua
@@ -54,6 +54,8 @@ local settings_to_hash = utilities.parsers.settings_to_hash
local tasks = nodes.tasks
local nuts = nodes.nuts
+local tonut = nuts.tonut
+local tonode = nuts.tonode
local getfield = nuts.getfield
local getnext = nuts.getnext
@@ -63,10 +65,8 @@ local getattr = nuts.getattr
local getfont = nuts.getfont
local getsubtype = nuts.getsubtype
local getlist = nuts.getlist
-local getdirection = nuts.getdirection
+local getdir = nuts.getdir
local getwidth = nuts.getwidth
-local getdata = nuts.getdata
-
local getboxglue = nuts.getboxglue
local setattr = nuts.setattr
@@ -78,15 +78,13 @@ local find_node_tail = nuts.tail
local flush_node = nuts.flush_node
local flush_node_list = nuts.flush_list
local copy_node_list = nuts.copy_list
+local traverse_nodes = nuts.traverse
+local traverse_ids = nuts.traverse_id
local hpack_nodes = nuts.hpack
local insert_node_before = nuts.insert_before
local insert_node_after = nuts.insert_after
local protect_glyphs = nuts.protect_glyphs
-local nextnode = nuts.traversers.next
-local nexthlist = nuts.traversers.hlist
-local nextwhatsit = nuts.traversers.whatsit
-
local repack_hlist = nuts.repackhlist
local nodes_to_utf = nodes.listtoutf
@@ -110,15 +108,13 @@ local whatsit_code = nodecodes.whatsit
local fontkern_code = kerncodes.fontkern
-local userdefinedwhatsit_code = whatsitcodes.userdefined
-
-local nodeproperties = nodes.properties.data
+local userdefined_code = whatsitcodes.userdefined
local nodepool = nuts.pool
local usernodeids = nodepool.userids
-local new_direction = nodepool.direction
-local new_usernode = nodepool.usernode
+local new_textdir = nodepool.textdir
+local new_usernumber = nodepool.usernumber
local new_glue = nodepool.glue
local new_leftskip = nodepool.leftskip
@@ -241,6 +237,7 @@ local function convert(featuresets,name,list)
fs = contextsetups[feature]
fn = fs and fs.number
end
+-- inspect(fs)
if fn then
nofnumbers = nofnumbers + 1
numbers[nofnumbers] = fn
@@ -347,23 +344,20 @@ directives.register("builders.paragraphs.solutions.splitters.encapsulate", funct
encapsulate = v
end)
-function splitters.split(head) -- best also pass the direction
- local current = head
- local r2l = false
- local start = nil
- local stop = nil
- local attribute = 0
- cache = { }
- max_less = 0
- max_more = 0
+function splitters.split(head)
+ -- quite fast
+ head = tonut(head)
+ local current, done, rlmode, start, stop, attribute = head, false, false, nil, nil, 0
+ cache, max_less, max_more = { }, 0, 0
local function flush() -- we can move this
local font = getfont(start)
local last = getnext(stop)
- local list = last and copy_node_list(start,last) or copy_node_list(start)
- local n = #cache + 1
+-- local list = last and copy_node_list(start,last) or copy_node_list(start)
+ local list = last and copy_node_list(start,stop) or copy_node_list(start)
+ local n = #cache + 1
if encapsulate then
- local user_one = new_usernode(splitter_one,n)
- local user_two = new_usernode(splitter_two,n)
+ local user_one = new_usernumber(splitter_one,n)
+ local user_two = new_usernumber(splitter_two,n)
head, start = insert_node_before(head,start,user_one)
insert_node_after(head,stop,user_two)
else
@@ -377,8 +371,9 @@ function splitters.split(head) -- best also pass the direction
end
end
end
+ local r2l = rlmode == "TRT" or rlmode == "+TRT"
if r2l then
- local dirnode = new_direction(righttoleft) -- brrr, we don't pop ... to be done (when used at all)
+ local dirnode = new_textdir("+TRT")
setlink(dirnode,list)
list = dirnode
end
@@ -398,7 +393,7 @@ function splitters.split(head) -- best also pass the direction
local m = #solution.more
if l > max_less then max_less = l end
if m > max_more then max_more = m end
- start, stop = nil, nil
+ start, stop, done = nil, nil, true
end
while current do -- also ischar
local next = getnext(current)
@@ -427,19 +422,11 @@ function splitters.split(head) -- best also pass the direction
else
start, stop = nil, nil
end
- elseif id == dir_code then
- -- not tested (to be done by idris when font is ready)
+ elseif id == dir_code or id == localpar_code then
if start then
flush()
end
- local direction, pop = getdirection(current)
- r2l = not pop and direction == righttoleft
- elseif id == localpar_code and getsubtype(current) == 0 then
- if start then
- flush() -- very unlikely as this starts a paragraph
- end
- local direction = getdirection(current)
- r2l = direction == righttoleft or direction == "TRT" -- for old times sake
+ rlmode = getdir(current)
else
if start then
flush()
@@ -451,37 +438,31 @@ function splitters.split(head) -- best also pass the direction
flush()
end
nofparagraphs = nofparagraphs + 1
- nofwords = nofwords + #cache
- return head
+ nofwords = nofwords + #cache
+ return tonode(head), done
end
local function collect_words(list) -- can be made faster for attributes
- local words = { }
- local w = 0
- local word = nil
+ local words, w, word = { }, 0, nil
if encapsulate then
- for current, subtype in nextwhatsit, list do
- if subtype == userdefinedwhatsit_code then -- hm
- local p = nodeproperties[current]
- if p then
- local user_id = p.id
- if user_id == splitter_one then
- word = { p.data, current, current }
- w = w + 1
- words[w] = word
- elseif user_id == splitter_two then
- if word then
- word[3] = current
- else
- -- something is wrong
- end
+ for current in traverse_ids(whatsit_code,list) do
+ if getsubtype(current) == userdefined_code then -- hm
+ local user_id = getfield(current,"user_id")
+ if user_id == splitter_one then
+ word = { getfield(current,"value"), current, current }
+ w = w + 1
+ words[w] = word
+ elseif user_id == splitter_two then
+ if word then
+ word[3] = current
+ else
+ -- something is wrong
end
end
end
end
else
- local first, last, index
- local current = list
+ local current, first, last, index = list, nil, nil, nil
while current do
-- todo: disc and kern
local id = getid(current)
@@ -546,9 +527,7 @@ local function collect_words(list) -- can be made faster for attributes
if trace_split then
for i=1,#words do
local w = words[i]
- local n = w[1]
- local f = w[2]
- local l = w[3]
+ local n, f, l = w[1], w[2], w[3]
local c = cache[n]
if c then
report_splitters("found %4i: word %a, cached %a",n,nodes_to_utf(f,true,true,l),nodes_to_utf(c.original,true))
@@ -605,20 +584,21 @@ local function doit(word,list,best,width,badness,line,set,listdir)
noftries = noftries + 1
local first = copy_node_list(original)
if not trace_colors then
- for n in nextnode, first do -- maybe fast force so no attr needed
+ for n in traverse_nodes(first) do -- maybe fast force so no attr needed
setattr(n,0,featurenumber) -- this forces dynamics
end
elseif set == "less" then
- for n in nextnode, first do
+ for n in traverse_nodes(first) do
setnodecolor(n,"font:isol") -- yellow
setattr(n,0,featurenumber)
end
else
- for n in nextnode, first do
+ for n in traverse_nodes(first) do
setnodecolor(n,"font:medi") -- green
setattr(n,0,featurenumber)
end
end
+first = tonode(first)
local font = found.font
local setdynamics = setfontdynamics[font]
if setdynamics then
@@ -630,6 +610,7 @@ local function doit(word,list,best,width,badness,line,set,listdir)
report_solutions("fatal error, no dynamics for font %a",font)
end
first = inject_kerns(first)
+first = tonut(first)
if getid(first) == whatsit_code then
local temp = first
first = getnext(first)
@@ -772,19 +753,19 @@ function splitters.optimize(head)
if trace_optimize then
report_optimizers("preroll %a, variant %a, criterium %a, cache size %a",preroll,variant,criterium,nc)
end
- for current in nexthlist, head do
+ for current in traverse_ids(hlist_code,tonut(head)) do
line = line + 1
- local sign = getfield(current,"glue_sign")
- local direction = getdirection(current)
- local width = getwidth(current)
- local list = getlist(current)
+ local sign = getfield(current,"glue_sign")
+ local dir = getdir(current)
+ local width = getwidth(current)
+ local list = getlist(current)
if not encapsulate and getid(list) == glyph_code then
-- nasty .. we always assume a prev being there .. future luatex will always have a leftskip set
-- is this assignment ok ? .. needs checking
list = insert_node_before(list,list,new_leftskip(0)) -- new_glue(0)
setlist(current,list)
end
- local temp, badness = repack_hlist(list,width,"exactly",direction) -- it would be nice if the badness was stored in the node
+ local temp, badness = repack_hlist(list,width,'exactly',dir) -- it would be nice if the badness was stored in the node
if badness > 0 then
if sign == 0 then
if trace_optimize then
@@ -804,8 +785,7 @@ function splitters.optimize(head)
set, max = "less", max_less
end
-- we can keep the best variants
- local lastbest = nil
- local lastbadness = badness
+ local lastbest, lastbadness = nil, badness
if preroll then
local bb, base
for i=1,max do
@@ -878,7 +858,7 @@ statistics.register("optimizer statistics", function()
if nofwords > 0 then
local elapsed = statistics.elapsedtime(splitters)
local average = noftries/elapsed
- return format("%s words identified in %s paragraphs, %s words retried, %s lines tried, %s seconds used, %s adapted, %0.1f lines per second",
+ return format("%s words identified in %s paragraphs, %s words retried, %s lines tried, %0.3f seconds used, %s adapted, %0.1f lines per second",
nofwords,nofparagraphs,noftries,nofadapted+nofkept,elapsed,nofadapted,average)
end
end)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-sty.mkvi b/Master/texmf-dist/tex/context/base/mkiv/font-sty.mkvi
index 8200aa95748..2d00c5ec814 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-sty.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-sty.mkvi
@@ -59,17 +59,17 @@
\newconstant\c_fonts_basics_alternative_style_method
\def\font_basics_define_alternative_style_indeed#variantone#varianttwo#command%
- {\setuvalue{\??alternativestyle#command}{\font_helpers_apply_alternative_style{#variantone}{#varianttwo}}%
+ {\setvalue{\??alternativestyle#command}{\font_helpers_apply_alternative_style{#variantone}{#varianttwo}}%
\ifcsname#command\endcsname
% no redefinition
\else\ifnum\c_fonts_basics_alternative_style_method=\plusone
\ifthirdargument
- \setuevalue{#command}{\triggergroupedcommandcs\begincsname\??alternativestyle#command\endcsname}%
+ \setuevalue{#command}{\groupedcommand{\expandafter\noexpand\begincsname\??alternativestyle#command\endcsname}{}}%
\else
- \setuvalue{#command}{\triggergroupedcommand{#variantone}}%
+ \setuvalue{#command}{\groupedcommand{#variantone}{}}%
\fi
\else
- \setuvalue{#command}{\triggergroupedcommand{#variantone}}%
+ \setuvalue{#command}{\groupedcommand{#variantone}{}}%
\fi\fi}
\def\font_helpers_apply_alternative_style
@@ -279,26 +279,17 @@
\fi\fi
\endcsname{#name}}
-% \setvalue{\??styleargument1}#name%
-% {\groupedcommand{\begincsname#name\endcsname}{}}
-
\setvalue{\??styleargument1}#name%
- {\expandafter\triggergroupedcommandcs\begincsname#name\endcsname}
-
-% \setvalue{\??styleargument2}#name%
-% {\groupedcommand{\font_styles_use_defined{#name}}{}} % or {\font_styles_apply_grouped{#name}}
+ {\groupedcommand{\csname#name\endcsname}{}}
\setvalue{\??styleargument2}#name%
- {\triggergroupedcommand{\font_styles_use_defined{#name}}} % or {\font_styles_apply_grouped{#name}}
+ {\groupedcommand{\font_styles_use_defined{#name}}{}} % or {\font_styles_apply_grouped{#name}}
\setvalue{\??styleargument3}#specification%
{\doifelseassignment{#specification}\font_styles_assignment\font_styles_direct{#specification}}
-% \def\font_styles_assignment#specification{\groupedcommand{\font_styles_use_generic{#specification}}{}}
-% \def\font_styles_direct #specification{\groupedcommand{\definedfont[#specification]}{}}
-
-\def\font_styles_assignment#specification{\triggergroupedcommand{\font_styles_use_generic{#specification}}}
-\def\font_styles_direct #specification{\triggergroupedcommand{\definedfont[#specification]}}
+\def\font_styles_assignment#specification{\groupedcommand{\font_styles_use_generic{#specification}}{}}
+\def\font_styles_direct #specification{\groupedcommand{\definedfont[#specification]}{}}
% environments
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-sym.mkvi b/Master/texmf-dist/tex/context/base/mkiv/font-sym.mkvi
index 3ff85fb4a84..0e709f161a7 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-sym.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-sym.mkvi
@@ -167,7 +167,7 @@
\def\font_basics_define_symbolic_font
{\definefont[currentsymbolfont][\askedsymbolfont]%
\currentsymbolfont
- \expandafter\glet\csname\??symbolfont\askedsymbolfont\endcsname\lastrawfontcall}
+ \global\expandafter\let\csname\??symbolfont\askedsymbolfont\endcsname\lastrawfontcall}
\unexpanded\def\getnamedglyphstyled#fontname#character{{\setstyledsymbolicfont{#fontname}\clf_fontchar{#character}}}
\unexpanded\def\getnamedglyphdirect#fontname#character{{\setdirectsymbolicfont{#fontname}\clf_fontchar{#character}}}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-syn.lua b/Master/texmf-dist/tex/context/base/mkiv/font-syn.lua
index dfe32b57b26..52f425db3bf 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-syn.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-syn.lua
@@ -1172,7 +1172,7 @@ local function analyzefiles(olddata)
report_names("scanning path %a for %s files",blobpath,suffix)
end, function(blobtype,blobpath,pattern,total,checked,done)
blobpath = resolveprefix(blobpath) -- no shortcut
- report_names("%s %s files checked, %s okay",checked,suffix,done)
+ report_names("%s entries found, %s %s files checked, %s okay",total,checked,suffix,done)
end)
end
@@ -2009,8 +2009,7 @@ local lastlookups, lastpattern = { }, ""
local function look_them_up(lookups,specification)
for key, value in sortedhash(specification) do
- local t = { }
- local n = 0
+ local t, n = { }, 0
if find(value,"*",1,true) then
value = topattern(value)
for i=1,#lookups do
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-tfm.lua b/Master/texmf-dist/tex/context/base/mkiv/font-tfm.lua
index 6e4f8698052..0059e6296cc 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-tfm.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-tfm.lua
@@ -9,7 +9,6 @@ if not modules then modules = { } end modules ['font-tfm'] = {
local next, type = next, type
local match, format = string.match, string.format
local concat, sortedhash = table.concat, table.sortedhash
-local idiv = number.idiv
local trace_defining = false trackers.register("fonts.defining", function(v) trace_defining = v end)
local trace_features = false trackers.register("tfm.features", function(v) trace_features = v end)
@@ -22,7 +21,6 @@ local setmetatableindex = table.setmetatableindex
local fonts = fonts
local handlers = fonts.handlers
-local helpers = fonts.helpers
local readers = fonts.readers
local constructors = fonts.constructors
local encodings = fonts.encodings
@@ -41,8 +39,6 @@ local registertfmfeature = tfmfeatures.register
local tfmenhancers = constructors.enhancers.tfm
local registertfmenhancer = tfmenhancers.register
-local charcommand = helpers.commands.char
-
constructors.resolvevirtualtoo = false -- wil be set in font-ctx.lua
fonts.formats.tfm = "type1" -- we need to have at least a value here
@@ -118,266 +114,219 @@ local depth = { } -- table.setmetatableindex("number")
--
-- So "czechdqcheat=yes" is then a valid feature. And yes, it's a cheat.
-local read_from_tfm, check_tfm do
- local tfmreaders = context and tfm.readers
- local loadtfmvf = tfmreaders and tfmreaders.loadtfmvf
- local loadtfm = font.read_tfm
- local loadvf = font.read_vf
+local function read_from_tfm(specification)
+ local filename = specification.filename
+ local size = specification.size
+ depth[filename] = (depth[filename] or 0) + 1
+ if trace_defining then
+ report_defining("loading tfm file %a at size %s",filename,size)
+ end
+ local tfmdata = font.read_tfm(filename,size) -- not cached, fast enough
+ if tfmdata then
- directives.register("fonts.tfm.builtin",function(v)
- loadtfmvf = tfmreaders and tfmreaders.loadtfmvf
- if v and loadtfm then
- loadtfmvf = false
- end
- end)
+ local features = specification.features and specification.features.normal or { }
+ local features = constructors.checkedfeatures("tfm",features)
+ specification.features.normal = features
- read_from_tfm = function(specification)
- local filename = specification.filename
- local size = specification.size
- depth[filename] = (depth[filename] or 0) + 1
- if trace_defining then
- report_defining("loading tfm file %a at size %s",filename,size)
- end
- local tfmdata -- not cached, fast enough
- if loadtfmvf then
- tfmdata = loadtfmvf(filename,size)
- else
- tfmdata = loadtfm(filename,size)
- end
- if tfmdata then
+ -- If reencode returns a new table, we assume that we're doing something
+ -- special. An 'auto' reencode pickt up its vector from the pfb file.
- local features = specification.features and specification.features.normal or { }
- local features = constructors.checkedfeatures("tfm",features)
- specification.features.normal = features
-
- -- If reencode returns a new table, we assume that we're doing something
- -- special. An 'auto' reencode picks up its vector from the pfb file.
+ local newtfmdata = (depth[filename] == 1) and tfm.reencode(tfmdata,specification)
+ if newtfmdata then
+ tfmdata = newtfmdata
+ end
- local newtfmdata = (depth[filename] == 1) and tfm.reencode(tfmdata,specification)
- if newtfmdata then
- tfmdata = newtfmdata
+ local resources = tfmdata.resources or { }
+ local properties = tfmdata.properties or { }
+ local parameters = tfmdata.parameters or { }
+ local shared = tfmdata.shared or { }
+ --
+ shared.features = features
+ shared.resources = resources
+ --
+ properties.name = tfmdata.name -- todo: fallback
+ properties.fontname = tfmdata.fontname -- todo: fallback
+ properties.psname = tfmdata.psname -- todo: fallback
+ properties.fullname = tfmdata.fullname -- todo: fallback
+ properties.filename = specification.filename -- todo: fallback
+ properties.format = fonts.formats.tfm -- better than nothing
+ --
+ tfmdata.properties = properties
+ tfmdata.resources = resources
+ tfmdata.parameters = parameters
+ tfmdata.shared = shared
+ --
+ shared.rawdata = { resources = resources }
+ shared.features = features
+ --
+ -- The next branch is only entered when we have a proper encoded file i.e.
+ -- unicodes and such. It really nakes no sense to do feature juggling when
+ -- we have no names and unicodes.
+ --
+ if newtfmdata then
+ --
+ -- Some opentype processing assumes these to be present:
+ --
+ if not resources.marks then
+ resources.marks = { }
+ end
+ if not resources.sequences then
+ resources.sequences = { }
+ end
+ if not resources.features then
+ resources.features = {
+ gsub = { },
+ gpos = { },
+ }
+ end
+ if not tfmdata.changed then
+ tfmdata.changed = { }
+ end
+ if not tfmdata.descriptions then
+ tfmdata.descriptions = tfmdata.characters
end
-
- local resources = tfmdata.resources or { }
- local properties = tfmdata.properties or { }
- local parameters = tfmdata.parameters or { }
- local shared = tfmdata.shared or { }
--
- shared.features = features
- shared.resources = resources
+ -- It might be handy to have this:
--
- properties.name = tfmdata.name -- todo: fallback
- properties.fontname = tfmdata.fontname -- todo: fallback
- properties.psname = tfmdata.psname -- todo: fallback
- properties.fullname = tfmdata.fullname -- todo: fallback
- properties.filename = specification.filename -- todo: fallback
- properties.format = tfmdata.format or fonts.formats.tfm -- better than nothing
- properties.usedbitmap = tfmdata.usedbitmap
+ otf.readers.addunicodetable(tfmdata)
--
- tfmdata.properties = properties
- tfmdata.resources = resources
- tfmdata.parameters = parameters
- tfmdata.shared = shared
+ -- We make a pseudo opentype font, e.g. kerns and ligatures etc:
--
- shared.rawdata = { resources = resources }
- shared.features = features
+ tfmenhancers.apply(tfmdata,filename)
--
- -- The next branch is only entered when we have a proper encoded file i.e.
- -- unicodes and such. It really nakes no sense to do feature juggling when
- -- we have no names and unicodes.
+ -- Now user stuff can kick in.
--
- if newtfmdata then
- --
- -- Some opentype processing assumes these to be present:
- --
- if not resources.marks then
- resources.marks = { }
- end
- if not resources.sequences then
- resources.sequences = { }
- end
- if not resources.features then
- resources.features = {
- gsub = { },
- gpos = { },
- }
- end
- if not tfmdata.changed then
- tfmdata.changed = { }
- end
- if not tfmdata.descriptions then
- tfmdata.descriptions = tfmdata.characters
- end
- --
- -- It might be handy to have this:
- --
- otf.readers.addunicodetable(tfmdata)
- --
- -- We make a pseudo opentype font, e.g. kerns and ligatures etc:
- --
- tfmenhancers.apply(tfmdata,filename)
- --
- -- Now user stuff can kick in.
- --
- constructors.applymanipulators("tfm",tfmdata,features,trace_features,report_tfm)
- --
- -- As that can also mess with names and such, we are now ready for finalizing
- -- the unicode information. This is a different order that for instance type one
- -- (afm) files. First we try to deduce unicodes from already present information.
- --
- otf.readers.unifymissing(tfmdata)
- --
- -- Next we fill in the gaps, based on names from teh agl. Probably not much will
- -- happen here.
- --
- fonts.mappings.addtounicode(tfmdata,filename)
- --
- -- The tounicode data is passed to the backend that constructs the vectors for us.
- --
- tfmdata.tounicode = 1
- local tounicode = fonts.mappings.tounicode
- for unicode, v in next, tfmdata.characters do
- local u = v.unicode
- if u then
- v.tounicode = tounicode(u)
- end
- end
- --
- -- However, when we use a bitmap font those vectors can't be constructed because
- -- that information is not carried with those fonts (there is no name info, nor
- -- proper index info, nor unicodes at that end). So, we provide it ourselves.
- --
- if tfmdata.usedbitmap then
- tfm.addtounicode(tfmdata)
+ constructors.applymanipulators("tfm",tfmdata,features,trace_features,report_tfm)
+ --
+ -- As that can also mess with names and such, we are now ready for finalizing
+ -- the unicode information. This is a different order that for instance type one
+ -- (afm) files. First we try to deduce unicodes from already present information.
+ --
+ otf.readers.unifymissing(tfmdata)
+ --
+ -- Next we fill in the gaps, based on names from teh agl. Probably not much will
+ -- happen here.
+ --
+ fonts.mappings.addtounicode(tfmdata,filename)
+ --
+ -- The tounicode data is passed to the backend that constructs the vectors for us.
+ --
+ tfmdata.tounicode = 1
+ local tounicode = fonts.mappings.tounicode
+ for unicode, v in next, tfmdata.characters do
+ local u = v.unicode
+ if u then
+ v.tounicode = tounicode(u)
end
end
--
- shared.processes = next(features) and tfm.setfeatures(tfmdata,features) or nil
+ -- However, when we use a bitmap font those vectors can't be constructed because
+ -- that information is not carried with those fonts (there is no name info, nor
+ -- proper index info, nor unicodes at that end). So, we provide it ourselves.
--
- if size < 0 then
- size = idiv(65536 * -size,100)
+ if tfmdata.usedbitmap then
+ tfm.addtounicode(tfmdata)
end
- parameters.factor = 1 -- already scaled
- parameters.units = 1000 -- just in case
- parameters.size = size
- parameters.slant = parameters.slant or parameters[1] or 0
- parameters.space = parameters.space or parameters[2] or 0
- parameters.space_stretch = parameters.space_stretch or parameters[3] or 0
- parameters.space_shrink = parameters.space_shrink or parameters[4] or 0
- parameters.x_height = parameters.x_height or parameters[5] or 0
- parameters.quad = parameters.quad or parameters[6] or 0
- parameters.extra_space = parameters.extra_space or parameters[7] or 0
- --
- constructors.enhanceparameters(parameters) -- official copies for us
+ end
+ --
+ shared.processes = next(features) and tfm.setfeatures(tfmdata,features) or nil
+ --
+ parameters.factor = 1 -- already scaled
+ parameters.size = size
+ parameters.slant = parameters.slant or parameters[1] or 0
+ parameters.space = parameters.space or parameters[2] or 0
+ parameters.space_stretch = parameters.space_stretch or parameters[3] or 0
+ parameters.space_shrink = parameters.space_shrink or parameters[4] or 0
+ parameters.x_height = parameters.x_height or parameters[5] or 0
+ parameters.quad = parameters.quad or parameters[6] or 0
+ parameters.extra_space = parameters.extra_space or parameters[7] or 0
+ --
+ constructors.enhanceparameters(parameters) -- official copies for us
+ --
+ properties.private = properties.private or tfmdata.private or privateoffset
+ --
+ if newtfmdata then
--
- properties.private = properties.private or tfmdata.private or privateoffset
+ -- We do nothing as we assume flat tfm files. It would become real messy
+ -- otherwise and I don't have something for testing on my system anyway.
--
- if newtfmdata then
- --
- -- We do nothing as we assume flat tfm files. It would become real messy
- -- otherwise and I don't have something for testing on my system anyway.
- --
- elseif loadtfmvf then
- -- already loaded
- local fonts = tfmdata.fonts
- if fonts then
- for i=1,#fonts do
- local font = fonts[i]
- local id = font.id
- if not id then
- local name = font.name
- local size = font.size
- if name and size then
- local data, id = constructors.readanddefine(name,size)
- if id then
- font.id = id
- font.name = nil
- font.size = nil
- end
- end
- end
+ elseif constructors.resolvevirtualtoo then
+ fonts.loggers.register(tfmdata,file.suffix(filename),specification) -- strange, why here
+ local vfname = findbinfile(specification.name, 'ovf')
+ if vfname and vfname ~= "" then
+ local vfdata = font.read_vf(vfname,size) -- not cached, fast enough
+ if vfdata then
+ local chars = tfmdata.characters
+ for k,v in next, vfdata.characters do
+ chars[k].commands = v.commands
end
- end
- elseif constructors.resolvevirtualtoo then
- fonts.loggers.register(tfmdata,file.suffix(filename),specification) -- strange, why here
- local vfname = findbinfile(specification.name, 'ovf')
- if vfname and vfname ~= "" then
- local vfdata = loadvf(vfname,size)
- if vfdata then
- local chars = tfmdata.characters
- for k,v in next, vfdata.characters do
- chars[k].commands = v.commands
- end
- properties.virtualized = true
- tfmdata.fonts = vfdata.fonts
- tfmdata.type = "virtual" -- else nested calls with cummulative scaling
- local fontlist = vfdata.fonts
- local name = file.nameonly(filename)
- for i=1,#fontlist do
- local n = fontlist[i].name
- local s = fontlist[i].size
- local d = depth[filename]
- s = constructors.scaled(s,vfdata.designsize)
- if d > tfm.maxnestingdepth then
- report_defining("too deeply nested virtual font %a with size %a, max nesting depth %s",n,s,tfm.maxnestingdepth)
- fontlist[i] = { id = 0 }
- elseif (d > 1) and (s > tfm.maxnestingsize) then
- report_defining("virtual font %a exceeds size %s",n,s)
- fontlist[i] = { id = 0 }
- else
- local t, id = constructors.readanddefine(n,s)
- fontlist[i] = { id = id }
- end
+ properties.virtualized = true
+ tfmdata.fonts = vfdata.fonts
+ tfmdata.type = "virtual" -- else nested calls with cummulative scaling
+ local fontlist = vfdata.fonts
+ local name = file.nameonly(filename)
+ for i=1,#fontlist do
+ local n = fontlist[i].name
+ local s = fontlist[i].size
+ local d = depth[filename]
+ s = constructors.scaled(s,vfdata.designsize)
+ if d > tfm.maxnestingdepth then
+ report_defining("too deeply nested virtual font %a with size %a, max nesting depth %s",n,s,tfm.maxnestingdepth)
+ fontlist[i] = { id = 0 }
+ elseif (d > 1) and (s > tfm.maxnestingsize) then
+ report_defining("virtual font %a exceeds size %s",n,s)
+ fontlist[i] = { id = 0 }
+ else
+ local t, id = fonts.constructors.readanddefine(n,s)
+ fontlist[i] = { id = id }
end
end
end
end
- --
- -- This is for old times sake (and context specific) so we comment it. It has
- -- to do with encoding prefixes (a context naming that was later adopted by
- -- the lm/gyre project)
- --
- -- if not features.encoding then
- -- local encoding, filename = match(properties.filename,"^(.-)%-(.*)$")
- -- if filename and encoding and encodings.known and encodings.known[encoding] then
- -- features.encoding = encoding
- -- end
- -- end
- --
- -- Some afterthoughts:
- --
- properties.haskerns = true
- properties.hasligatures = true
- properties.hasitalics = true
- resources.unicodes = { }
- resources.lookuptags = { }
- --
- depth[filename] = depth[filename] - 1
- --
- return tfmdata
- else
- depth[filename] = depth[filename] - 1
end
+ --
+ -- This is for old times sake (and context specific) so we comment it. It has
+ -- to do with encoding prefixes (a context naming that was later adopted by
+ -- the lm/gyre project)
+ --
+ -- if not features.encoding then
+ -- local encoding, filename = match(properties.filename,"^(.-)%-(.*)$")
+ -- if filename and encoding and encodings.known and encodings.known[encoding] then
+ -- features.encoding = encoding
+ -- end
+ -- end
+ --
+ -- Some afterthoughts:
+ --
+ properties.haskerns = true
+ properties.hasligatures = true
+ resources.unicodes = { }
+ resources.lookuptags = { }
+ --
+ depth[filename] = depth[filename] - 1
+ --
+ return tfmdata
+ else
+ depth[filename] = depth[filename] - 1
end
+end
- check_tfm = function(specification,fullname) -- we could split up like afm/otf
- local foundname = findbinfile(fullname, 'tfm') or ""
- if foundname == "" then
- foundname = findbinfile(fullname, 'ofm') or "" -- not needed in context
- end
- if foundname == "" then
- foundname = fonts.names.getfilename(fullname,"tfm") or ""
- end
- if foundname ~= "" then
- specification.filename = foundname
- specification.format = "ofm"
- return read_from_tfm(specification)
- elseif trace_defining then
- report_defining("loading tfm with name %a fails",specification.name)
- end
+local function check_tfm(specification,fullname) -- we could split up like afm/otf
+ local foundname = findbinfile(fullname, 'tfm') or ""
+ if foundname == "" then
+ foundname = findbinfile(fullname, 'ofm') or "" -- not needed in context
+ end
+ if foundname == "" then
+ foundname = fonts.names.getfilename(fullname,"tfm") or ""
+ end
+ if foundname ~= "" then
+ specification.filename = foundname
+ specification.format = "ofm"
+ return read_from_tfm(specification)
+ elseif trace_defining then
+ report_defining("loading tfm with name %a fails",specification.name)
end
-
end
readers.check_tfm = check_tfm
@@ -460,7 +409,7 @@ do
local vector = false
if type(pfbfile) == "string" then
- local pfb = constructors.handlers.pfb
+ local pfb = fonts.constructors.handlers.pfb
if pfb and pfb.loadvector then
local v, e = pfb.loadvector(pfbfile)
if v then
@@ -489,7 +438,7 @@ do
local originals = tfmdata.characters
local indices = { }
local parentfont = { "font", 1 }
- local private = tfmdata.privateoffset or constructors.privateoffset
+ local private = tfmdata or fonts.constructors.privateoffset
local reported = encdone[tfmfile][encfile]
-- create characters table
@@ -514,9 +463,9 @@ do
indices[index] = unicode
original.name = name -- so one can lookup weird names
if backmap then
- original.index = backmap[name]
+ original.index = backmap[name]
else -- probably bitmap
- original.commands = { parentfont, charcommand[index] } -- or "slot"
+ original.commands = { parentfont, { "char", index } }
original.oindex = index
end
done[name] = true
@@ -563,7 +512,6 @@ do
tfmdata.psname = file.nameonly(pfbfile or tfmdata.name)
tfmdata.filename = pfbfile
tfmdata.encodingbytes = 2
- -- tfmdata.format = bitmap and "type3" or "type1"
tfmdata.format = "type1"
tfmdata.tounicode = 1
tfmdata.embedding = "subset"
@@ -600,18 +548,24 @@ end
end
]]
- local flushstreamobject = lpdf and lpdf.flushstreamobject -- context
- local setfontattributes = lpdf and lpdf.setfontattributes -- context
+ local flushstreamobject = lpdf and lpdf.flushstreamobject
+ local setfontattributes = pdf.setfontattributes
- if not flushstreamobject then
+ if flushstreamobject then
+ -- we're in context
+ else
flushstreamobject = function(data)
- return pdf.obj { immediate = true, type = "stream", string = data } -- generic
+ return pdf.obj {
+ immediate = true,
+ type = "stream",
+ string = data,
+ }
end
end
if not setfontattributes then
setfontattributes = function(id,data)
- return pdf.setfontattributes(id,data) -- generic
+ print(format("your luatex is too old so no tounicode bitmap font%i",id))
end
end
@@ -639,7 +593,7 @@ end
-- Now we implement the regular features handlers. We need to convert the
-- tfm specific structures to opentype structures. In basemode they are
--- converted back so that is a bit of a waste but it's fast enough.
+-- converted back so that is a bti of a waste but it's fast enough.
do
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-tra.mkiv b/Master/texmf-dist/tex/context/base/mkiv/font-tra.mkiv
index 205ca5ca02d..c51ba78fc23 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-tra.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-tra.mkiv
@@ -188,7 +188,7 @@
% \showotfstepmessages\recurselevel
% \blank
% \startlinecorrection
-% \dontleavehmode\bgroup\resetallattributes\lefttoright\tttf\recurselevel: \showotfstepchars\recurselevel\egroup
+% \dontleavehmode\bgroup\resetallattributes\pardir TLT\textdir TLT\relax\tttf\recurselevel: \showotfstepchars\recurselevel\egroup
% \stoplinecorrection
% \blank
% \startlinecorrection
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-ttf.lua b/Master/texmf-dist/tex/context/base/mkiv/font-ttf.lua
index d2fe0917c53..df08787f9a8 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-ttf.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-ttf.lua
@@ -35,53 +35,26 @@ if not modules then modules = { } end modules ['font-ttf'] = {
local next, type, unpack = next, type, unpack
local band, rshift = bit32.band, bit32.rshift
local sqrt, round = math.sqrt, math.round
-local char, rep = string.char, string.rep
+local char = string.char
local concat = table.concat
-local idiv = number.idiv
-local setmetatableindex = table.setmetatableindex
-local report = logs.reporter("otf reader","ttf")
+local report = logs.reporter("otf reader","ttf")
-local trace_deltas = false
+local trace_deltas = false
-local readers = fonts.handlers.otf.readers
-local streamreader = readers.streamreader
+local readers = fonts.handlers.otf.readers
+local streamreader = readers.streamreader
-local setposition = streamreader.setposition
-local getposition = streamreader.getposition
-local skipbytes = streamreader.skip
-local readbyte = streamreader.readcardinal1 -- 8-bit unsigned integer
-local readushort = streamreader.readcardinal2 -- 16-bit unsigned integer
-local readulong = streamreader.readcardinal4 -- 24-bit unsigned integer
-local readchar = streamreader.readinteger1 -- 8-bit signed integer
-local readshort = streamreader.readinteger2 -- 16-bit signed integer
-local read2dot14 = streamreader.read2dot14 -- 16-bit signed fixed number with the low 14 bits of fraction (2.14) (F2DOT14)
-local readinteger = streamreader.readinteger1
-local readcardinaltable = streamreader.readcardinaltable
-local readintegertable = streamreader.readintegertable
-
-directives.register("fonts.streamreader",function()
-
- streamreader = utilities.streams
-
- setposition = streamreader.setposition
- getposition = streamreader.getposition
- skipbytes = streamreader.skip
- readbyte = streamreader.readcardinal1
- readushort = streamreader.readcardinal2
- readulong = streamreader.readcardinal4
- readchar = streamreader.readinteger1
- readshort = streamreader.readinteger2
- read2dot14 = streamreader.read2dot14
- readinteger = streamreader.readinteger1
- readcardinaltable = streamreader.readcardinaltable
- readintegertable = streamreader.readintegertable
-
-end)
-
-local short = 2
-local ushort = 2
-local ulong = 4
+local setposition = streamreader.setposition
+local getposition = streamreader.getposition
+local skipbytes = streamreader.skip
+local readbyte = streamreader.readcardinal1 -- 8-bit unsigned integer
+local readushort = streamreader.readcardinal2 -- 16-bit unsigned integer
+local readulong = streamreader.readcardinal4 -- 24-bit unsigned integer
+local readchar = streamreader.readinteger1 -- 8-bit signed integer
+local readshort = streamreader.readinteger2 -- 16-bit signed integer
+local read2dot14 = streamreader.read2dot14 -- 16-bit signed fixed number with the low 14 bits of fraction (2.14) (F2DOT14)
+local readinteger = streamreader.readinteger1
local helpers = readers.helpers
local gotodatatable = helpers.gotodatatable
@@ -117,41 +90,22 @@ local function mergecomposites(glyphs,shapes)
local yscale = matrix[4]
local xoffset = matrix[5]
local yoffset = matrix[6]
- local count = #subpoints
- if xscale == 1 and yscale == 1 and xrotate == 0 and yrotate == 0 then
- for i=1,count do
- local p = subpoints[i]
- nofpoints = nofpoints + 1
- points[nofpoints] = {
- p[1] + xoffset,
- p[2] + yoffset,
- p[3]
- }
- end
- else
- for i=1,count do
- local p = subpoints[i]
- local x = p[1]
- local y = p[2]
- nofpoints = nofpoints + 1
- points[nofpoints] = {
- xscale * x + xrotate * y + xoffset,
- yscale * y + yrotate * x + yoffset,
- p[3]
- }
- end
+ for i=1,#subpoints do
+ local p = subpoints[i]
+ local x = p[1]
+ local y = p[2]
+ nofpoints = nofpoints + 1
+ points[nofpoints] = {
+ xscale * x + xrotate * y + xoffset,
+ yscale * y + yrotate * x + yoffset,
+ p[3]
+ }
end
- local subcount = #subcontours
- if subcount == 1 then
+ for i=1,#subcontours do
nofcontours = nofcontours + 1
- contours[nofcontours] = offset + subcontours[1]
- else
- for i=1,#subcontours do
- nofcontours = nofcontours + 1
- contours[nofcontours] = offset + subcontours[i]
- end
+ contours[nofcontours] = offset + subcontours[i]
end
- offset = offset + count
+ offset = offset + #subpoints
else
report("missing contours composite %s, component %s of %s, glyph %s",index,i,#components,subindex)
end
@@ -162,8 +116,7 @@ local function mergecomposites(glyphs,shapes)
return contours, points
end
--- for index=1,#glyphs do
- for index=0,#glyphs-1 do
+ for index=1,#glyphs do
local shape = shapes[index]
if shape then
local components = shape.components
@@ -175,7 +128,7 @@ local function mergecomposites(glyphs,shapes)
end
-local function readnothing(f)
+local function readnothing(f,nofcontours)
return {
type = "nothing",
}
@@ -306,8 +259,7 @@ end
local quadratic = false
local function contours2outlines_normal(glyphs,shapes) -- maybe accept the bbox overhead
--- for index=1,#glyphs do
- for index=0,#glyphs-1 do
+ for index=1,#glyphs do
local shape = shapes[index]
if shape then
local glyph = glyphs[index]
@@ -319,8 +271,7 @@ local function contours2outlines_normal(glyphs,shapes) -- maybe accept the bbox
local nofsegments = 0
glyph.segments = segments
if nofcontours > 0 then
- local px = 0
- local py = 0
+ local px, py = 0, 0 -- we could use these in calculations which saves a copy
local first = 1
for i=1,nofcontours do
local last = contours[i]
@@ -348,20 +299,15 @@ local function contours2outlines_normal(glyphs,shapes) -- maybe accept the bbox
end
control_pt = first_pt
end
- local x = first_pt[1]
- local y = first_pt[2]
+ local x, y = first_pt[1], first_pt[2]
if not done then
- xmin = x
- ymin = y
- xmax = x
- ymax = y
+ xmin, ymin, xmax, ymax = x, y, x, y
done = true
end
nofsegments = nofsegments + 1
segments[nofsegments] = { x, y, "m" } -- "moveto"
if not quadratic then
- px = x
- py = y
+ px, py = x, y
end
local previous_pt = first_pt
for i=first,last do
@@ -381,10 +327,8 @@ local function contours2outlines_normal(glyphs,shapes) -- maybe accept the bbox
control_pt = current_pt
end
elseif current_on then
- local x1 = control_pt[1]
- local y1 = control_pt[2]
- local x2 = current_pt[1]
- local y2 = current_pt[2]
+ local x1, y1 = control_pt[1], control_pt[2]
+ local x2, y2 = current_pt[1], current_pt[2]
nofsegments = nofsegments + 1
if quadratic then
segments[nofsegments] = { x1, y1, x2, y2, "q" } -- "quadraticto"
@@ -394,10 +338,8 @@ local function contours2outlines_normal(glyphs,shapes) -- maybe accept the bbox
end
control_pt = false
else
- local x2 = (previous_pt[1]+current_pt[1])/2
- local y2 = (previous_pt[2]+current_pt[2])/2
- local x1 = control_pt[1]
- local y1 = control_pt[2]
+ local x2, y2 = (previous_pt[1]+current_pt[1])/2, (previous_pt[2]+current_pt[2])/2
+ local x1, y1 = control_pt[1], control_pt[2]
nofsegments = nofsegments + 1
if quadratic then
segments[nofsegments] = { x1, y1, x2, y2, "q" } -- "quadraticto"
@@ -413,17 +355,14 @@ local function contours2outlines_normal(glyphs,shapes) -- maybe accept the bbox
-- we're already done, probably a simple curve
else
nofsegments = nofsegments + 1
- local x2 = first_pt[1]
- local y2 = first_pt[2]
+ local x2, y2 = first_pt[1], first_pt[2]
if not control_pt then
segments[nofsegments] = { x2, y2, "l" } -- "lineto"
elseif quadratic then
- local x1 = control_pt[1]
- local y1 = control_pt[2]
+ local x1, y1 = control_pt[1], control_pt[2]
segments[nofsegments] = { x1, y1, x2, y2, "q" } -- "quadraticto"
else
- local x1 = control_pt[1]
- local y1 = control_pt[2]
+ local x1, y1 = control_pt[1], control_pt[2]
x1, y1, x2, y2, px, py = curveto(x1, y1, px, py, x2, y2)
segments[nofsegments] = { x1, y1, x2, y2, px, py, "c" } -- "curveto"
-- px, py = x2, y2
@@ -440,8 +379,7 @@ local function contours2outlines_normal(glyphs,shapes) -- maybe accept the bbox
end
local function contours2outlines_shaped(glyphs,shapes,keepcurve)
--- for index=1,#glyphs do
- for index=0,#glyphs-1 do
+ for index=1,#glyphs do
local shape = shapes[index]
if shape then
local glyph = glyphs[index]
@@ -487,8 +425,7 @@ local function contours2outlines_shaped(glyphs,shapes,keepcurve)
end
control_pt = first_pt
end
- local x = first_pt[1]
- local y = first_pt[2]
+ local x, y = first_pt[1], first_pt[2]
if not done then
xmin, ymin, xmax, ymax = x, y, x, y
done = true
@@ -501,8 +438,7 @@ local function contours2outlines_shaped(glyphs,shapes,keepcurve)
segments[nofsegments] = { x, y, "m" } -- "moveto"
end
if not quadratic then
- px = x
- py = y
+ px, py = x, y
end
local previous_pt = first_pt
for i=first,last do
@@ -512,8 +448,7 @@ local function contours2outlines_shaped(glyphs,shapes,keepcurve)
if previous_on then
if current_on then
-- both normal points
- local x = current_pt[1]
- local y = current_pt[2]
+ local x, y = current_pt[1], current_pt[2]
if x < xmin then xmin = x elseif x > xmax then xmax = x end
if y < ymin then ymin = y elseif y > ymax then ymax = y end
if keepcurve then
@@ -521,17 +456,14 @@ local function contours2outlines_shaped(glyphs,shapes,keepcurve)
segments[nofsegments] = { x, y, "l" } -- "lineto"
end
if not quadratic then
- px = x
- py = y
+ px, py = x, y
end
else
control_pt = current_pt
end
elseif current_on then
- local x1 = control_pt[1]
- local y1 = control_pt[2]
- local x2 = current_pt[1]
- local y2 = current_pt[2]
+ local x1, y1 = control_pt[1], control_pt[2]
+ local x2, y2 = current_pt[1], current_pt[2]
if quadratic then
if x1 < xmin then xmin = x1 elseif x1 > xmax then xmax = x1 end
if y1 < ymin then ymin = y1 elseif y1 > ymax then ymax = y1 end
@@ -554,10 +486,8 @@ local function contours2outlines_shaped(glyphs,shapes,keepcurve)
end
control_pt = false
else
- local x2 = (previous_pt[1]+current_pt[1])/2
- local y2 = (previous_pt[2]+current_pt[2])/2
- local x1 = control_pt[1]
- local y1 = control_pt[2]
+ local x2, y2 = (previous_pt[1]+current_pt[1])/2, (previous_pt[2]+current_pt[2])/2
+ local x1, y1 = control_pt[1], control_pt[2]
if quadratic then
if x1 < xmin then xmin = x1 elseif x1 > xmax then xmax = x1 end
if y1 < ymin then ymin = y1 elseif y1 > ymax then ymax = y1 end
@@ -590,10 +520,8 @@ local function contours2outlines_shaped(glyphs,shapes,keepcurve)
segments[nofsegments] = { first_pt[1], first_pt[2], "l" } -- "lineto"
end
else
- local x1 = control_pt[1]
- local y1 = control_pt[2]
- local x2 = first_pt[1]
- local y2 = first_pt[2]
+ local x1, y1 = control_pt[1], control_pt[2]
+ local x2, y2 = first_pt[1], first_pt[2]
if x1 < xmin then xmin = x1 elseif x1 > xmax then xmax = x1 end
if y1 < ymin then ymin = y1 elseif y1 > ymax then ymax = y1 end
if quadratic then
@@ -630,13 +558,8 @@ end
local c_zero = char(0)
local s_zero = char(0,0)
--- local shorthash = setmetatableindex(function(t,k)
--- t[k] = char(band(rshift(k,8),0xFF),band(k,0xFF)) return t[k]
--- end)
-
local function toushort(n)
return char(band(rshift(n,8),0xFF),band(n,0xFF))
- -- return shorthash[n]
end
local function toshort(n)
@@ -644,152 +567,125 @@ local function toshort(n)
n = n + 0x10000
end
return char(band(rshift(n,8),0xFF),band(n,0xFF))
- -- return shorthash[n]
end
-- todo: we can reuse result, xpoints and ypoints
-local chars = setmetatableindex(function(t,k)
- for i=0,255 do local v = char(i) t[i] = v end return t[k]
-end)
-
local function repackpoints(glyphs,shapes)
local noboundingbox = { 0, 0, 0, 0 }
local result = { } -- reused
- local xpoints = { } -- reused
- local ypoints = { } -- reused
- for index=0,#glyphs-1 do
+ for index=1,#glyphs do
local shape = shapes[index]
if shape then
local r = 0
local glyph = glyphs[index]
- local contours = shape.contours
- local nofcontours = contours and #contours or 0
- local boundingbox = glyph.boundingbox or noboundingbox
- r = r + 1 result[r] = toshort(nofcontours)
- r = r + 1 result[r] = toshort(boundingbox[1]) -- xmin
- r = r + 1 result[r] = toshort(boundingbox[2]) -- ymin
- r = r + 1 result[r] = toshort(boundingbox[3]) -- xmax
- r = r + 1 result[r] = toshort(boundingbox[4]) -- ymax
- if nofcontours > 0 then
- for i=1,nofcontours do
- r = r + 1 result[r] = toshort(contours[i]-1)
- end
- r = r + 1 result[r] = s_zero -- no instructions
- local points = shape.points
- local currentx = 0
- local currenty = 0
- -- local xpoints = { }
- -- local ypoints = { }
- local x = 0
- local y = 0
- local lastflag = nil
- local nofflags = 0
- for i=1,#points do
- local pt = points[i]
- local px = pt[1]
- local py = pt[2]
- local fl = pt[3] and 0x01 or 0x00
- if px == currentx then
- fl = fl + 0x10
- else
- local dx = round(px - currentx)
- x = x + 1
- if dx < -255 or dx > 255 then
- xpoints[x] = toshort(dx)
- elseif dx < 0 then
- fl = fl + 0x02
- -- xpoints[x] = char(-dx)
- xpoints[x] = chars[-dx]
- elseif dx > 0 then
- fl = fl + 0x12
- -- xpoints[x] = char(dx)
- xpoints[x] = chars[dx]
+ if false then -- shape.type == "composite"
+ -- we merged them
+ else
+ local contours = shape.contours
+ local nofcontours = contours and #contours or 0
+ local boundingbox = glyph.boundingbox or noboundingbox
+ r = r + 1 result[r] = toshort(nofcontours)
+ r = r + 1 result[r] = toshort(boundingbox[1]) -- xmin
+ r = r + 1 result[r] = toshort(boundingbox[2]) -- ymin
+ r = r + 1 result[r] = toshort(boundingbox[3]) -- xmax
+ r = r + 1 result[r] = toshort(boundingbox[4]) -- ymax
+ if nofcontours > 0 then
+ for i=1,nofcontours do
+ r = r + 1 result[r] = toshort(contours[i]-1)
+ end
+ r = r + 1 result[r] = s_zero -- no instructions
+ local points = shape.points
+ local currentx = 0
+ local currenty = 0
+ local xpoints = { }
+ local ypoints = { }
+ local x = 0
+ local y = 0
+ local lastflag = nil
+ local nofflags = 0
+ for i=1,#points do
+ local pt = points[i]
+ local px = pt[1]
+ local py = pt[2]
+ local fl = pt[3] and 0x01 or 0x00
+ if px == currentx then
+ fl = fl + 0x10
else
- fl = fl + 0x02
- xpoints[x] = c_zero
+ local dx = round(px - currentx)
+ if dx < -255 or dx > 255 then
+ x = x + 1 xpoints[x] = toshort(dx)
+ elseif dx < 0 then
+ fl = fl + 0x02
+ x = x + 1 xpoints[x] = char(-dx)
+ elseif dx > 0 then
+ fl = fl + 0x12
+ x = x + 1 xpoints[x] = char(dx)
+ else
+ fl = fl + 0x02
+ x = x + 1 xpoints[x] = c_zero
+ end
end
- end
- if py == currenty then
- fl = fl + 0x20
- else
- local dy = round(py - currenty)
- y = y + 1
- if dy < -255 or dy > 255 then
- ypoints[y] = toshort(dy)
- elseif dy < 0 then
- fl = fl + 0x04
- -- ypoints[y] = char(-dy)
- ypoints[y] = chars[-dy]
- elseif dy > 0 then
- fl = fl + 0x24
- -- ypoints[y] = char(dy)
- ypoints[y] = chars[dy]
+ if py == currenty then
+ fl = fl + 0x20
else
- fl = fl + 0x04
- ypoints[y] = c_zero
+ local dy = round(py - currenty)
+ if dy < -255 or dy > 255 then
+ y = y + 1 ypoints[y] = toshort(dy)
+ elseif dy < 0 then
+ fl = fl + 0x04
+ y = y + 1 ypoints[y] = char(-dy)
+ elseif dy > 0 then
+ fl = fl + 0x24
+ y = y + 1 ypoints[y] = char(dy)
+ else
+ fl = fl + 0x04
+ y = y + 1 ypoints[y] = c_zero
+ end
end
- end
- currentx = px
- currenty = py
- if lastflag == fl then
- nofflags = nofflags + 1
- else -- if > 255
- if nofflags == 1 then
- -- r = r + 1 result[r] = char(lastflag)
- r = r + 1 result[r] = chars[lastflag]
- elseif nofflags == 2 then
- r = r + 1 result[r] = char(lastflag,lastflag)
- elseif nofflags > 2 then
- lastflag = lastflag + 0x08
- r = r + 1 result[r] = char(lastflag,nofflags-1)
+ currentx = px
+ currenty = py
+ if lastflag == fl then
+ nofflags = nofflags + 1
+ else -- if > 255
+ if nofflags == 1 then
+ r = r + 1 result[r] = char(lastflag)
+ elseif nofflags == 2 then
+ r = r + 1 result[r] = char(lastflag,lastflag)
+ elseif nofflags > 2 then
+ lastflag = lastflag + 0x08
+ r = r + 1 result[r] = char(lastflag,nofflags-1)
+ end
+ nofflags = 1
+ lastflag = fl
end
- nofflags = 1
- lastflag = fl
end
+ if nofflags == 1 then
+ r = r + 1 result[r] = char(lastflag)
+ elseif nofflags == 2 then
+ r = r + 1 result[r] = char(lastflag,lastflag)
+ elseif nofflags > 2 then
+ lastflag = lastflag + 0x08
+ r = r + 1 result[r] = char(lastflag,nofflags-1)
+ end
+ r = r + 1 result[r] = concat(xpoints)
+ r = r + 1 result[r] = concat(ypoints)
end
- if nofflags == 1 then
- -- r = r + 1 result[r] = char(lastflag)
- r = r + 1 result[r] = chars[lastflag]
- elseif nofflags == 2 then
- r = r + 1 result[r] = char(lastflag,lastflag)
- elseif nofflags > 2 then
- lastflag = lastflag + 0x08
- r = r + 1 result[r] = char(lastflag,nofflags-1)
- end
- -- r = r + 1 result[r] = concat(xpoints)
- -- r = r + 1 result[r] = concat(ypoints)
- r = r + 1 result[r] = concat(xpoints,"",1,x)
- r = r + 1 result[r] = concat(ypoints,"",1,y)
- end
- -- can be helper or delegated to user
- local stream = concat(result,"",1,r)
- local length = #stream
- local padding = idiv(length+3,4) * 4 - length
- if padding > 0 then
- -- stream = stream .. rep("\0",padding) -- can be a repeater
- if padding == 1 then
- padding = "\0"
- elseif padding == 2 then
- padding = "\0\0"
- else
- padding = "\0\0\0"
- end
- padding = stream .. padding
end
- glyph.stream = stream
+ glyph.stream = concat(result,"",1,r)
+ else
+ -- fatal
end
end
end
-- end of converter
-local flags = { }
-
local function readglyph(f,nofcontours) -- read deltas here, saves space
- local points = { }
- -- local instructions = { }
- local contours = { } -- readintegertable(f,nofcontours,short)
+ local points = { }
+ local contours = { }
+ local instructions = { }
+ local flags = { }
for i=1,nofcontours do
contours[i] = readshort(f) + 1
end
@@ -803,15 +699,9 @@ local function readglyph(f,nofcontours) -- read deltas here, saves space
local flag = readbyte(f)
flags[i] = flag
if band(flag,0x08) ~= 0 then
- local n = readbyte(f)
- if n == 1 then
+ for j=1,readbyte(f) do
i = i + 1
flags[i] = flag
- else
- for j=1,n do
- i = i + 1
- flags[i] = flag
- end
end
end
i = i + 1
@@ -820,16 +710,16 @@ local function readglyph(f,nofcontours) -- read deltas here, saves space
-- can be repeated
local x = 0
for i=1,nofpoints do
- local flag = flags[i]
- -- local short = band(flag,0x04) ~= 0
- -- local same = band(flag,0x20) ~= 0
- if band(flag,0x02) ~= 0 then
- if band(flag,0x10) ~= 0 then
+ local flag = flags[i]
+ local short = band(flag,0x02) ~= 0
+ local same = band(flag,0x10) ~= 0
+ if short then
+ if same then
x = x + readbyte(f)
else
x = x - readbyte(f)
end
- elseif band(flag,0x10) ~= 0 then
+ elseif same then
-- copy
else
x = x + readshort(f)
@@ -838,16 +728,16 @@ local function readglyph(f,nofcontours) -- read deltas here, saves space
end
local y = 0
for i=1,nofpoints do
- local flag = flags[i]
- -- local short = band(flag,0x04) ~= 0
- -- local same = band(flag,0x20) ~= 0
- if band(flag,0x04) ~= 0 then
- if band(flag,0x20) ~= 0 then
+ local flag = flags[i]
+ local short = band(flag,0x04) ~= 0
+ local same = band(flag,0x20) ~= 0
+ if short then
+ if same then
y = y + readbyte(f)
else
y = y - readbyte(f)
end
- elseif band(flag,0x20) ~= 0 then
+ elseif same then
-- copy
else
y = y + readshort(f)
@@ -943,7 +833,7 @@ local function readcomposite(f)
if band(flags,0x0100) ~= 0 then
instructions = true
end
- if band(flags,0x0020) == 0 then -- f_more
+ if not band(flags,0x0020) ~= 0 then -- f_more
break
end
end
@@ -968,27 +858,21 @@ function readers.loca(f,fontdata,specification)
-- locations are relative to the glypdata table (glyf)
local offset = fontdata.tables.glyf.offset
local format = fontdata.fontheader.indextolocformat
- local profile = fontdata.maximumprofile
- local nofglyphs = profile and profile.nofglyphs
local locations = { }
setposition(f,datatable.offset)
if format == 1 then
- if not nofglyphs then
- nofglyphs = idiv(datatable.length,4) - 1
- end
+ local nofglyphs = datatable.length/4 - 2
for i=0,nofglyphs do
locations[i] = offset + readulong(f)
end
fontdata.nofglyphs = nofglyphs
else
- if not nofglyphs then
- nofglyphs = idiv(datatable.length,2) - 1
- end
+ local nofglyphs = datatable.length/2 - 2
for i=0,nofglyphs do
locations[i] = offset + readushort(f) * 2
end
+ fontdata.nofglyphs = nofglyphs
end
- fontdata.nofglyphs = nofglyphs
fontdata.locations = locations
end
end
@@ -1004,16 +888,15 @@ function readers.glyf(f,fontdata,specification) -- part goes to cff module
local filesize = fontdata.filesize
local nothing = { 0, 0, 0, 0 }
local shapes = { }
- local loadshapes = specification.shapes or specification.instance or specification.streams
- for index=0,nofglyphs-1 do
+ local loadshapes = specification.shapes or specification.instance
+ for index=0,nofglyphs do
local location = locations[index]
- local length = locations[index+1] - location
if location >= filesize then
report("discarding %s glyphs due to glyph location bug",nofglyphs-index+1)
fontdata.nofglyphs = index - 1
fontdata.badfont = true
break
- elseif length > 0 then
+ elseif location > 0 then
setposition(f,location)
local nofcontours = readshort(f)
glyphs[index].boundingbox = {
@@ -1025,7 +908,7 @@ function readers.glyf(f,fontdata,specification) -- part goes to cff module
if not loadshapes then
-- save space
elseif nofcontours == 0 then
- shapes[index] = readnothing(f)
+ shapes[index] = readnothing(f,nofcontours)
elseif nofcontours > 0 then
shapes[index] = readglyph(f,nofcontours)
else
@@ -1033,7 +916,7 @@ function readers.glyf(f,fontdata,specification) -- part goes to cff module
end
else
if loadshapes then
- shapes[index] = readnothing(f)
+ shapes[index] = { }
end
glyphs[index].boundingbox = nothing
end
@@ -1050,13 +933,7 @@ function readers.glyf(f,fontdata,specification) -- part goes to cff module
contours2outlines_shaped(glyphs,shapes,specification.shapes)
end
elseif specification.shapes then
- if specification.streams then
- repackpoints(glyphs,shapes)
- else
- contours2outlines_normal(glyphs,shapes)
- end
- elseif specification.streams then
- repackpoints(glyphs,shapes)
+ contours2outlines_normal(glyphs,shapes)
end
end
end
@@ -1357,6 +1234,10 @@ function readers.gvar(f,fontdata,specification,glyphdata,shapedata)
end
end
if shape.type == "glyph" then
+-- if glyph.name == "u1f31d" then
+-- if glyph.unicode == 127773 then
+-- inspect(deltas)
+-- end
applyaxis(glyph,shape,deltas,dowidth)
else
-- todo: args_are_xy_values mess .. i have to be really bored
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-var.mkvi b/Master/texmf-dist/tex/context/base/mkiv/font-var.mkvi
index 8520a5c32c9..fb60b711cef 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-var.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-var.mkvi
@@ -50,8 +50,6 @@
\let\fontsize \defaultfontsize
\let\fontface \!!zerocount
-\installmacrostack\fontstyle
-
% we can use an indirect mapping for fontclasses (map string onto numbers) and indeed this
% is somewhat more efficient but also makes the code messy ... maybe some day ...
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-vfc.lua b/Master/texmf-dist/tex/context/base/mkiv/font-vfc.lua
deleted file mode 100644
index dfe6b3afc46..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/font-vfc.lua
+++ /dev/null
@@ -1,123 +0,0 @@
-if not modules then modules = { } end modules ['font-vfc'] = {
- version = 1.001,
- comment = "companion to font-ini.mkiv and hand-ini.mkiv",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
-local select, type = select, type
-local insert = table.insert
-
-local fonts = fonts
-local helpers = fonts.helpers
-
-local setmetatableindex = table.setmetatableindex
-local makeweak = table.makeweak
-
--- Helpers dealing with virtual fonts: beware, these are final values so
--- don't change the content of tables gotten this way!
-
-local push = { "push" }
-local pop = { "pop" }
-local dummy = { "comment" }
-
-function helpers.prependcommands(commands,...)
- insert(commands,1,push)
- for i=select("#",...),1,-1 do
- local s = (select(i,...))
- if s then
- insert(commands,1,s)
- end
- end
- insert(commands,pop)
- return commands
-end
-
-function helpers.appendcommands(commands,...)
- insert(commands,1,push)
- insert(commands,pop)
- for i=1,select("#",...) do
- local s = (select(i,...))
- if s then
- insert(commands,s)
- end
- end
- return commands
-end
-
-function helpers.prependcommandtable(commands,t)
- insert(commands,1,push)
- for i=#t,1,-1 do
- local s = t[i]
- if s then
- insert(commands,1,s)
- end
- end
- insert(commands,pop)
- return commands
-end
-
-function helpers.appendcommandtable(commands,t)
- insert(commands,1,push)
- insert(commands,pop)
- for i=1,#t do
- local s = t[i]
- if s then
- insert(commands,s)
- end
- end
- return commands
-end
-
--- todo: maybe weak
--- todo: maybe indirect so that we can't change them
-
-local char = setmetatableindex(function(t,k)
- -- local v = { "char", k }
- local v = { "slot", 0, k }
- t[k] = v
- return v
-end)
-
-local right = setmetatableindex(function(t,k)
- local v = { "right", k }
- t[k] = v
- return v
-end)
-
-local left = setmetatableindex(function(t,k)
- local v = { "right", -k }
- t[k] = v
- return v
-end)
-
-local down = setmetatableindex(function(t,k)
- local v = { "down", k }
- t[k] = v
- return v
-end)
-
-local up = setmetatableindex(function(t,k)
- local v = { "down", -k }
- t[k] = v
- return v
-end)
-
--- makeweak(char)
--- makeweak(right)
--- makeweak(left)
--- makeweak(up)
--- makeweak(down)
-
-helpers.commands = utilities.storage.allocate {
- char = char,
- right = right,
- left = left,
- down = down,
- up = up,
- push = push,
- pop = pop,
- dummy = dummy,
-}
-
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-vir.lua b/Master/texmf-dist/tex/context/base/mkiv/font-vir.lua
index c3071cac0b6..03ad7fc8551 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-vir.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-vir.lua
@@ -14,7 +14,7 @@ if not modules then modules = { } end modules ['font-vir'] = {
--
-- vf.rule vf.special vf.right vf.push vf.down vf.char vf.node vf.fontid vf.pop vf.image vf.nop
-local next, setmetatable, getmetatable = next, setmetatable, getmetatable
+local next = next
local allocate = utilities.storage.allocate
local setmetatableindex = table.setmetatableindex
@@ -66,7 +66,11 @@ local combinations = { }
local combiner = { }
local whatever = allocate()
local helpers = allocate()
-local predefined = fonts.helpers.commands
+local predefined = allocate {
+ dummy = { "comment" },
+ push = { "push" },
+ pop = { "pop" },
+}
methods.variants = variants -- todo .. wrong namespace
vf.combinations = combinations
@@ -106,10 +110,8 @@ local function combine_assign(g, name, from, to, start, force)
if not from then from, to = 0, 0xFF00 end
if not to then to = from end
if not start then start = from end
- local fc = f.characters
- local gc = g.characters
- local fd = f.descriptions
- local gd = g.descriptions
+ local fc, gc = f.characters, g.characters
+ local fd, gd = f.descriptions, g.descriptions
local hn = #g.fonts+1
g.fonts[hn] = { id = id } -- no need to be sparse
for i=from,to do
@@ -135,10 +137,8 @@ end
local function combine_names(g,name,force)
local f, id = constructors.readanddefine(name,g.specification.size)
if f and id then
- local fc = f.characters
- local gc = g.characters
- local fd = f.descriptions
- local gd = g.descriptions
+ local fc, gc = f.characters, g.characters
+ local fd, gd = f.descriptions, g.descriptions
g.fonts[#g.fonts+1] = { id = id } -- no need to be sparse
local hn = #g.fonts
for k, v in next, fc do
@@ -153,8 +153,7 @@ local function combine_names(g,name,force)
end
local combine_feature = function(g,v)
- local key = v[2]
- local value = v[3]
+ local key, value = v[2], v[3]
if key then
if value == nil then
value = true
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-web.lua b/Master/texmf-dist/tex/context/base/mkiv/font-web.lua
index 376b036f2dd..452a8f59b67 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-web.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-web.lua
@@ -23,29 +23,17 @@ local streamwriter = readers and readers.streamwriter or utilities.files
local readstring = streamreader.readstring
local readcardinal2 = streamreader.readcardinal2
local readcardinal4 = streamreader.readcardinal4
-local getsize = streamreader.getsize
-local setposition = streamreader.setposition
-local getposition = streamreader.getposition
local writestring = streamwriter.writestring
local writecardinal4 = streamwriter.writecardinal4
local writecardinal2 = streamwriter.writecardinal2
local writebyte = streamwriter.writebyte
-local decompress = zlib.decompress
-
-directives.register("fonts.streamreader",function()
-
- streamreader = utilities.streams
-
- readstring = streamreader.readstring
- readcardinal2 = streamreader.readcardinal2
- readcardinal4 = streamreader.readcardinal4
- getsize = streamreader.getsize
- setposition = streamreader.setposition
- getposition = streamreader.getposition
+local getsize = streamreader.getsize
+local setposition = streamreader.setposition
+local getposition = streamreader.getposition
-end)
+local decompress = zlib.decompress
local infotags = {
["os/2"] = true,
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-xtx.lua b/Master/texmf-dist/tex/context/base/mkiv/font-xtx.lua
new file mode 100644
index 00000000000..494ac00a928
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-xtx.lua
@@ -0,0 +1,97 @@
+if not modules then modules = { } end modules ['luatex-fonts-def'] = {
+ version = 1.001,
+ comment = "companion to luatex-*.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+if context then
+ texio.write_nl("fatal error: this module is not for context")
+ os.exit()
+end
+
+local fonts = fonts
+
+-- A bit of tuning for definitions.
+
+fonts.constructors.namemode = "specification" -- somehow latex needs this (changed name!) => will change into an overload
+
+-- tricky: we sort of bypass the parser and directly feed all into
+-- the sub parser
+
+function fonts.definers.getspecification(str)
+ return "", str, "", ":", str
+end
+
+-- the generic name parser (different from context!)
+
+local list = { }
+
+local function issome () list.lookup = 'name' end -- xetex mode prefers name (not in context!)
+local function isfile () list.lookup = 'file' end
+local function isname () list.lookup = 'name' end
+local function thename(s) list.name = s end
+local function issub (v) list.sub = v end
+local function iscrap (s) list.crap = string.lower(s) end
+local function iskey (k,v) list[k] = v end
+local function istrue (s) list[s] = true end
+local function isfalse(s) list[s] = false end
+
+local P, S, R, C = lpeg.P, lpeg.S, lpeg.R, lpeg.C
+
+local spaces = P(" ")^0
+local namespec = (1-S("/:("))^0 -- was: (1-S("/: ("))^0
+local crapspec = spaces * P("/") * (((1-P(":"))^0)/iscrap) * spaces
+local filename_1 = P("file:")/isfile * (namespec/thename)
+local filename_2 = P("[") * P(true)/isname * (((1-P("]"))^0)/thename) * P("]")
+local fontname_1 = P("name:")/isname * (namespec/thename)
+local fontname_2 = P(true)/issome * (namespec/thename)
+local sometext = (R("az","AZ","09") + S("+-.{}"))^1
+local truevalue = P("+") * spaces * (sometext/istrue)
+local falsevalue = P("-") * spaces * (sometext/isfalse)
+local keyvalue = (C(sometext) * spaces * P("=") * spaces * C(sometext))/iskey
+local somevalue = sometext/istrue
+local subvalue = P("(") * (C(P(1-S("()"))^1)/issub) * P(")") -- for Kim
+local option = spaces * (keyvalue + falsevalue + truevalue + somevalue) * spaces
+local options = P(":") * spaces * (P(";")^0 * option)^0
+
+local pattern = (filename_1 + filename_2 + fontname_1 + fontname_2) * subvalue^0 * crapspec^0 * options^0
+
+local function colonized(specification) -- xetex mode
+ list = { }
+ lpeg.match(pattern,specification.specification)
+ list.crap = nil -- style not supported, maybe some day
+ if list.name then
+ specification.name = list.name
+ list.name = nil
+ end
+ if list.lookup then
+ specification.lookup = list.lookup
+ list.lookup = nil
+ end
+ if list.sub then
+ specification.sub = list.sub
+ list.sub = nil
+ end
+ specification.features.normal = fonts.handlers.otf.features.normalize(list)
+ return specification
+end
+
+fonts.definers.registersplit(":",colonized,"cryptic")
+fonts.definers.registersplit("", colonized,"more cryptic") -- catches \font\text=[names]
+
+function fonts.definers.applypostprocessors(tfmdata)
+ local postprocessors = tfmdata.postprocessors
+ if postprocessors then
+ for i=1,#postprocessors do
+ local extrahash = postprocessors[i](tfmdata) -- after scaling etc
+ if type(extrahash) == "string" and extrahash ~= "" then
+ -- e.g. a reencoding needs this
+ extrahash = string.gsub(lower(extrahash),"[^a-z]","-")
+ tfmdata.properties.fullname = format("%s-%s",tfmdata.properties.fullname,extrahash)
+ end
+ end
+ end
+ return tfmdata
+end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/good-ctx.lua b/Master/texmf-dist/tex/context/base/mkiv/good-ctx.lua
index 82ef25e29de..00e4ed78d89 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/good-ctx.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/good-ctx.lua
@@ -29,10 +29,14 @@ local registerotffeature = fonts.handlers.otf.features.register
local fontgoodies = fonts.goodies or { }
+local glyph_code = nodes.nodecodes.glyph
+
local nuts = nodes.nuts
local tonut = nuts.tonut
+local getfont = nuts.getfont
+local getchar = nuts.getchar
local getattr = nuts.getattr
-local nextglyph = nuts.traversers.glyph
+local traverse_id = nuts.traverse_id
-- colorschemes
@@ -96,10 +100,10 @@ local function setcolorscheme(tfmdata,scheme)
end
end
if privatestoo then
- local privateoffset = fonts.constructors.privateoffset
- local descriptions = tfmdata.descriptions
+ local private = fonts.constructors.privateoffset
+ local descriptions = tfmdata.descriptions
for unicode, data in next, characters do
- if unicode >= privateoffset then
+ if unicode >= private then
if not reverse[unicode] then
local d = descriptions[unicode]
if d then
@@ -124,9 +128,68 @@ local function setcolorscheme(tfmdata,scheme)
end
local fontproperties = fonts.hashes.properties
+
local a_colorscheme = attributes.private('colorscheme')
local setnodecolor = nodes.tracers.colors.set
-local cache = { } -- this could be a weak table
+
+-- function colorschemes.coloring(head)
+-- local lastfont, lastscheme
+-- local done = false
+-- for n in traverse_id(glyph_code,tonut(head)) do
+-- local a = getattr(n,a_colorscheme)
+-- if a then
+-- local f = getfont(n)
+-- if f ~= lastfont then
+-- lastscheme = fontproperties[f].colorscheme
+-- lastfont = f
+-- end
+-- if lastscheme then
+-- local sc = lastscheme[getchar(n)]
+-- if sc then
+-- done = true
+-- setnodecolor(n,"colorscheme:"..a..":"..sc) -- slow
+-- end
+-- end
+-- end
+-- end
+-- return head, done
+-- end
+
+-- seldom used, mostly in manuals, so non critical .. anyhow, somewhat faster:
+
+-- function colorschemes.coloring(head)
+-- local lastfont = nil
+-- local lastattr = nil
+-- local lastscheme = nil
+-- local lastprefix = nil
+-- local done = nil
+-- for n in traverse_id(glyph_code,tonut(head)) do
+-- local a = getattr(n,a_colorscheme)
+-- if a then
+-- if a ~= lastattr then
+-- lastattr = a
+-- lastprefix = "colorscheme:" .. a .. ":"
+-- end
+-- local f = getfont(n)
+-- if f ~= lastfont then
+-- lastfont = f
+-- lastscheme = fontproperties[f].colorscheme
+-- end
+-- if lastscheme then
+-- local sc = lastscheme[getchar(n)]
+-- if sc then
+-- setnodecolor(n,lastprefix .. sc) -- slow
+-- done = true
+-- end
+-- end
+-- end
+-- end
+-- return head, done
+-- end
+
+-- ok, in case we have hundreds of pages colored:
+
+local cache = { } -- this could be a weak table
setmetatableindex(cache,function(t,a)
local v = { }
@@ -144,9 +207,11 @@ function colorschemes.coloring(head)
local lastattr = nil
local lastcache = nil
local lastscheme = nil
- for n, char, f in nextglyph, head do
+ local done = nil
+ for n in traverse_id(glyph_code,tonut(head)) do
local a = getattr(n,a_colorscheme)
if a then
+ local f = getfont(n)
if f ~= lastfont then
lastfont = f
lastscheme = fontproperties[f].colorscheme
@@ -156,18 +221,19 @@ function colorschemes.coloring(head)
lastcache = cache[a]
end
if lastscheme then
- local sc = lastscheme[char]
+ local sc = lastscheme[getchar(n)]
if sc then
setnodecolor(n,lastcache[sc]) -- we could inline this one
+ done = true
end
end
end
end
- return head
+ return head, done
end
function colorschemes.enable()
- nodes.tasks.enableaction("processors","fonts.goodies.colorschemes.coloring")
+ nodes.tasks.appendaction("processors","fonts","fonts.goodies.colorschemes.coloring")
function colorschemes.enable() end
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/grph-epd.lua b/Master/texmf-dist/tex/context/base/mkiv/grph-epd.lua
index f8fa62953dc..7855ce891e0 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/grph-epd.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/grph-epd.lua
@@ -8,26 +8,25 @@ if not modules then modules = { } end modules ['grph-epd'] = {
local variables = interfaces.variables
local settings_to_hash = utilities.parsers.settings_to_hash
-local codeinjections = backends.pdf.codeinjections
-local trace = false trackers.register("figures.merging", function(v) trace = v end)
+-- todo: page, name, file, url
-local report = logs.reporter("backend","merging")
+-- I have some experimental code for including comments and fields but it's
+-- unfinished and not included as it was just a proof of concept to get some idea
+-- about what is needed and possible. But the placeholders are here already.
+
+local codeinjections = backends.codeinjections
local function mergegoodies(optionlist)
local options = settings_to_hash(optionlist)
- local yes = options[variables.yes]
- local all = options[variables.all]
- if next(options) then
- report("% t",table.sortedkeys(options))
- end
- if all or yes or options[variables.reference] then
+ local all = options[variables.all] or options[variables.yes]
+ if all or options[variables.reference] then
codeinjections.mergereferences()
end
if all or options[variables.comment] then
codeinjections.mergecomments()
end
- if all or yes or options[variables.bookmark] then
+ if all or options[variables.bookmark] then
codeinjections.mergebookmarks()
end
if all or options[variables.field] then
@@ -40,7 +39,6 @@ local function mergegoodies(optionlist)
end
function figures.mergegoodies(optionlist)
- -- todo: we can use runtoks instead
context.stepwise(function()
-- we use stepwise because we might need to define symbols
-- for stamps that have no default appearance
diff --git a/Master/texmf-dist/tex/context/base/mkiv/grph-inc.lua b/Master/texmf-dist/tex/context/base/mkiv/grph-inc.lua
index 1e5c30d446c..f2d7847eb9b 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/grph-inc.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/grph-inc.lua
@@ -6,11 +6,6 @@ if not modules then modules = { } end modules ['grph-inc'] = {
license = "see context related readme files"
}
--- todo: in pdfe: pdfe.copyappearance(document,objnum)
---
--- local im = createimage { filename = fullname }
--- local on = images.flushobject(im,document.__xrefs__[AP])
-
-- todo: files are sometimes located twice
-- todo: empty filename or only suffix always false (not found)
-- lowercase types
@@ -45,16 +40,17 @@ run TeX code from within Lua. Some more functionality will move to Lua.
-- todo: store loaded pages per pdf file someplace
-local tonumber, tostring, next, unpack = tonumber, tostring, next, unpack
+local tonumber, tostring, next = tonumber, tostring, next
local format, lower, find, match, gsub = string.format, string.lower, string.find, string.match, string.gsub
local longtostring = string.longtostring
local contains = table.contains
-local sortedhash, sortedkeys = table.sortedhash, table.sortedkeys
+local sortedhash = table.sortedhash
local concat, insert, remove = table.concat, table.insert, table.remove
local todimen = string.todimen
local collapsepath = file.collapsepath
local formatters = string.formatters
-local odd = math.odd
+local formatcolumns = utilities.formatters.formatcolumns
+local max, odd = math.max, math.odd
local P, R, S, Cc, C, Cs, Ct, lpegmatch = lpeg.P, lpeg.R, lpeg.S, lpeg.Cc, lpeg.C, lpeg.Cs, lpeg.Ct, lpeg.match
@@ -64,10 +60,7 @@ local allocate = utilities.storage.allocate
local setmetatableindex = table.setmetatableindex
local replacetemplate = utilities.templates.replace
-local bpfactor = number.dimenfactors.bp
-
-images = images or { }
-local images = images
+local images = img
local hasscheme = url.hasscheme
local urlhashed = url.hashed
@@ -111,7 +104,7 @@ local v_local = variables["local"]
local v_default = variables.default
local v_auto = variables.auto
-local maxdimen = tex.magicconstants.maxdimen -- 0x3FFFFFFF -- 2^30-1
+local maxdimen = 0x3FFFFFFF -- 2^30-1
local ctx_doscalefigure = context.doscalefigure
local ctx_relocateexternalfigure = context.relocateexternalfigure
@@ -127,11 +120,11 @@ function checkimage(figure)
local width = figure.width
local height = figure.height
if width <= 0 or height <= 0 then
- report_inclusion("image %a has bad dimensions (%p,%p), discarding",figure.filename or "?",width,height)
+ report_inclusion("image %a has bad dimensions (%p,%p), discarding",figure.filename,width,height)
return false, "bad dimensions"
end
- -- local xres = figure.xres
- -- local yres = figure.yres
+ local xres = figure.xres
+ local yres = figure.yres
local changes = false
if height > width then
if height > maxdimen then
@@ -157,117 +150,14 @@ function checkimage(figure)
end
end
---- begin of mapping / this will become graphics & code|nodeinjections but not this year
-
-local __img__ = type(img) == "table" and img or { }
-images.__img__ =__img__
-
-local imgnew = __img__.new
-local imgscan = __img__.scan
-local imgcopy = __img__.copy
-local imgwrap = __img__.node
-local imgembed = __img__.immediatewrite
-
-if imgnew then
- -- catch (actually we should be less picky in img)
- local __img__new__ = img_new
- imgnew = function(t)
- t.kind = nil
- return __img__new__(t)
- end
-end
-
-updaters.register("backend.update",function()
- local img = images.__img__
- imgnew = img.new
- imgscan = img.scan
- imgcopy = img.copy
- imgwrap = img.wrap
- imgembed = img.embed
-end)
-
-local imagekeys = { -- only relevant ones
- "width", "height", "depth", "bbox",
- "colordepth", "colorspace",
- "filename", "filepath", "visiblefilename",
- "imagetype", "stream",
- "index", "objnum",
- "pagebox", "page", "pages",
- "rotation", "transform",
- "xsize", "ysize", "xres", "yres",
-}
-
-local imagesizes = {
- art = true, bleed = true, crop = true,
- media = true, none = true, trim = true,
-}
-
-local imagetypes = { [0] =
- "none",
- "pdf", "png", "jpg", "jp2", "jbig2",
- "stream", "memstream",
-}
-
-imagetypes = table.swapped(imagetypes,imagetypes)
-
-images.keys = imagekeys
-images.types = imagetypes
-images.sizes = imagesizes
-
--- new interface
-
-local function createimage(specification)
- return imgnew(specification)
-end
-
-local function copyimage(specification)
- return imgcopy(specification)
-end
-
-local function scanimage(specification)
- return imgscan(specification)
-end
-
-local function embedimage(specification)
- -- write the image to file
- return imgembed(specification)
-end
-
-local function wrapimage(specification)
- -- create an image rule
- return imgwrap(specification)
-end
-
-images.create = createimage
-images.scan = scanimage
-images.copy = copyimage
-images.wrap = wrapimage
-images.embed = embedimage
-
--- now we reimplement img:
-
-img = {
- new = createimage,
- scan = scanimage,
- copy = copyimage,
- node = wrapimage,
- write = function(specification) context(wrapimage(specification)) end,
- immediatewrite = embedimage,
- immediatewriteobject = function() end, -- not upported, experimental anyway
- boxes = function() return sortedkeys(imagesizes) end,
- fields = function() return imagekeys end,
- types = function() return { unpack(imagetypes,0,#imagetypes) } end,
-}
+--- some extra img functions --- can become luat-img.lua
--- end of copies / mapping
+local allimagekeys = images.keys()
local function imagetotable(imgtable)
- if type(imgtable) == "table" then
- return copy(imgtable)
- end
local result = { }
- for k=1,#imagekeys do
- local key = imagekeys[k]
+ for k=1,#allimagekeys do
+ local key = allimagekeys[k]
result[key] = imgtable[key]
end
return result
@@ -281,24 +171,41 @@ function images.print(i,...)
return table.print(imagetotable(i),...)
end
+function images.clone(i,data)
+ i.width = data.width or i.width
+ i.height = data.height or i.height
+ -- attr etc
+ return i
+end
+
+local validsizes = table.tohash(images.boxes())
+local validtypes = table.tohash(images.types())
+
local function checkimagesize(size)
if size then
size = gsub(size,"box","")
- return imagesizes[size] and size or "crop"
+ return validsizes[size] and size or "crop"
else
return "crop"
end
end
-images.check = checkimage
-images.checksize = checkimagesize
-images.totable = imagetotable
+local newimage = images.new
+local scanimage = images.scan
+local copyimage = images.copy
+local cloneimage = images.clone
+local imagetonode = images.node
--- local indexed = { }
---
--- function images.ofindex(n)
--- return indexed[n]
--- end
+images.check = checkimage
+images.checksize = checkimagesize
+images.tonode = imagetonode
+images.totable = imagetotable
+
+local indexed = { }
+
+function images.ofindex(n)
+ return indexed[n]
+end
--- we can consider an grph-ini file
@@ -465,30 +372,22 @@ function figures.setorder(list) -- can be table or string
end
end
-local function guessfromstring(str)
- if str then
- for i=1,#figures_magics do
- local pattern = figures_magics[i]
- if lpegmatch(pattern.pattern,str) then
- local format = pattern.format
- if trace_figures then
- report_inclusion("file %a has format %a",filename,format)
- end
- return format
- end
- end
- end
-end
-
-figures.guessfromstring = guessfromstring
-
function figures.guess(filename)
local f = io.open(filename,'rb')
if f then
local str = f:read(100)
f:close()
if str then
- return guessfromstring(str)
+ for i=1,#figures_magics do
+ local pattern = figures_magics[i]
+ if lpegmatch(pattern.pattern,str) then
+ local format = pattern.format
+ if trace_figures then
+ report_inclusion("file %a has format %a",filename,format)
+ end
+ return format
+ end
+ end
end
end
end
@@ -672,7 +571,6 @@ function figures.initialize(request)
request.cache = request.cache ~= "" and request.cache
request.prefix = request.prefix ~= "" and request.prefix
request.format = request.format ~= "" and request.format
- request.compact = request.compact == v_yes
table.merge(figuredata.request,request)
end
return figuredata
@@ -920,7 +818,7 @@ local function register(askedname,specification)
end
elseif io.exists(oldname) then
report_inclusion("file %a is bugged",oldname)
- if format and imagetypes[format] then
+ if format and validtypes[format] then
specification.fullname = oldname
end
specification.converted = false
@@ -929,13 +827,13 @@ local function register(askedname,specification)
end
end
if format then
- local found = figures_suffixes[format]
+ local found = figures_suffixes[format] -- validtypes[format]
if not found then
specification.found = false
if trace_figures then
report_inclusion("format %a is not supported",format)
end
- elseif imagetypes[format] then
+ elseif validtypes[format] then
specification.found = true
if trace_figures then
report_inclusion("format %a natively supported by backend",format)
@@ -1464,18 +1362,15 @@ end
local pagecount = { }
function checkers.generic(data)
- local dr, du, ds = data.request, data.used, data.status
- local name = du.fullname or "unknown generic"
- local page = du.page or dr.page
- local size = dr.size or "crop"
- local color = dr.color or "natural"
- local mask = dr.mask or "none"
- local conversion = dr.conversion
- local resolution = dr.resolution
- local arguments = dr.arguments
- local scanimage = dr.scanimage or scanimage
- local userpassword = dr.userpassword
- local ownerpassword = dr.ownerpassword
+ local dr, du, ds = data.request, data.used, data.status
+ local name = du.fullname or "unknown generic"
+ local page = du.page or dr.page
+ local size = dr.size or "crop"
+ local color = dr.color or "natural"
+ local mask = dr.mask or "none"
+ local conversion = dr.conversion
+ local resolution = dr.resolution
+ local arguments = dr.arguments
if not conversion or conversion == "" then
conversion = "default"
end
@@ -1495,29 +1390,22 @@ function checkers.generic(data)
resolution,
arguments
)
- --
local figure = figures_loaded[hash]
if figure == nil then
- figure = createimage {
+ figure = newimage {
filename = name,
page = page,
pagebox = dr.size,
keepopen = dr.keepopen or false,
- userpassword = userpassword,
- ownerpassword = ownerpassword,
-- visiblefilename = "", -- this prohibits the full filename ending up in the file
}
codeinjections.setfigurecolorspace(data,figure)
codeinjections.setfiguremask(data,figure)
if figure then
- -- new, bonus check (a bogus check in lmtx)
+ -- new, bonus check
if page and page > 1 then
- local f = scanimage {
- filename = name,
- userpassword = userpassword,
- ownerpassword = ownerpassword,
- }
- if f and f.page and f.pages < page then
+ local f = scanimage{ filename = name }
+ if f.page and f.pages < page then
report_inclusion("no page %i in %a, using page 1",page,name)
page = 1
figure.page = page
@@ -1530,10 +1418,6 @@ function checkers.generic(data)
ds.found = false
ds.error = true
end
- if figure.attr and not f.attr then
- -- tricky as img doesn't allow it
- f.attr = figure.attr
- end
figure = f
end
local f, d = codeinjections.setfigurealternative(data,figure)
@@ -1575,11 +1459,6 @@ function figures.getrealpage(index)
return pofimages[index] or 0
end
-local function updatepage(specification)
- local n = specification.n
- pofimages[n] = pofimages[n] or tex.count.realpageno -- so when reused we register the first one only
-end
-
function includers.generic(data)
local dr, du, ds = data.request, data.used, data.status
-- here we set the 'natural dimensions'
@@ -1593,13 +1472,10 @@ function includers.generic(data)
-- height = dr.height,
-- }
if figure == nil then
- figure = ds.private -- the img object
+ figure = ds.private
if figure then
- figure = (dr.copyimage or copyimage)(figure)
- if figure then
- figure.width = dr.width or figure.width
- figure.height = dr.height or figure.height
- end
+ figure = copyimage(figure)
+ figure = figure and cloneimage(figure,data.request) or false
end
figures_used[hash] = figure
end
@@ -1607,15 +1483,16 @@ function includers.generic(data)
local nr = figures.boxnumber
nofimages = nofimages + 1
ds.pageindex = nofimages
- local image = wrapimage(figure)
- local pager = new_latelua { action = updatepage, n = nofimages }
+ local image = imagetonode(figure)
+ local pager = new_latelua(function()
+ pofimages[nofimages] = pofimages[nofimages] or tex.count.realpageno -- so when reused we register the first one only
+ end)
image.next = pager
pager.prev = image
- local box = hpack(image)
- -- indexed[figure.index] = figure
- box.width = figure.width
- box.height = figure.height
- box.depth = 0
+ local box = hpack(image) -- imagetonode(figure) not longer valid
+
+ indexed[figure.index] = figure
+ box.width, box.height, box.depth = figure.width, figure.height, 0 -- new, hm, tricky, we need to do that in tex (yet)
texsetbox(nr,box)
ds.objectnumber = figure.objnum
ctx_relocateexternalfigure()
@@ -1669,7 +1546,7 @@ function checkers.mov(data)
nodeinjections.insertmovie {
width = width,
height = height,
- factor = bpfactor,
+ factor = number.dimenfactors.bp,
["repeat"] = dr["repeat"],
controls = dr.controls,
preview = dr.preview,
@@ -2039,10 +1916,8 @@ function figures.getinfo(name,page)
end
if name.name then
local data = figures.push(name)
- data = figures.identify(data)
- if data.status and data.status.status > 0 then
- data = figures.check(data)
- end
+ figures.identify()
+ figures.check()
figures.pop()
return data
end
@@ -2086,11 +1961,8 @@ implement {
{ "arguments" },
{ "repeat" },
{ "transform" },
- { "compact" },
{ "width", "dimen" },
{ "height", "dimen" },
- { "userpassword" },
- { "ownerpassword" },
}
}
}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/grph-inc.mkiv b/Master/texmf-dist/tex/context/base/mkiv/grph-inc.mkiv
index 20e7c11a61b..677883fbb59 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/grph-inc.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/grph-inc.mkiv
@@ -20,15 +20,7 @@
\writestatus{loading}{ConTeXt Graphic Macros / Figure Inclusion}
-\ifcase\contextlmtxmode
- \registerctxluafile{grph-inc}{}
-\else
- \registerctxluafile{grph-img}{}
- \registerctxluafile{grph-inc}{}
- \registerctxluafile{grph-bmp}{}
- \registerctxluafile{grph-chk}{}
-\fi
-
+\registerctxluafile{grph-inc}{}
\registerctxluafile{grph-con}{}
\registerctxluafile{grph-fil}{}
\registerctxluafile{grph-mem}{}
@@ -40,7 +32,7 @@
%D Including graphics is complicated by the fact that we need to locate them first,
%D optionally manipulate them and scale then next. Lookups are to be done as efficient
%D as possible and inclusion of the data might happens only once. In \MKIV\ much of this
-%D is delegated to the \LUA\ end. There is not so much less code as in \MKII\ but it's
+%D is delegated to the \LUA\ end. There is nor so much less code as in \MKII\ but it's
%D more powerful, flexible, pluggable and some of the extended functionality has been
%D moved from modules to the core. The overall functionality is rather stable and has
%D not changed much over the years.
@@ -113,9 +105,6 @@
\c!align =\v!none, % New, for Tacos extremely large graphics.
\c!crossreference =\v!no,
\c!transform =\v!auto,
- \c!userpassword =,
- \c!ownerpassword =,
- \c!compact =,
]
%D Defining figures.
@@ -212,7 +201,7 @@
{\grph_include_use_indeed{#1}{#2}{#3}{#4}}}}}
\def\grph_include_use_indeed#1#2#3#4%
- {\dodoglobal\setvalue{\??externalfigureinstance#1}{\grph_include_setup{#2}{#3}{#4}}%
+ {\setvalue{\??externalfigureinstance#1}{\grph_include_setup{#2}{#3}{#4}}%
\grph_include_analyze_collection[#2][#4]}
% inclusion
@@ -328,30 +317,27 @@
%
\dostarttagged\t!image\empty
\clf_figure_push {
- name {\p_grph_include_name}%
- label {\ifx\p_label\empty\p_grph_include_label\else\p_label\fi}%
- page {\externalfigureparameter\c!page}%
- file {\externalfigureparameter\c!file}%
- size {\externalfigureparameter\c!size}%
- object {\externalfigureparameter\c!object}%
- prefix {\externalfigureparameter\c!prefix}%
- cache {\externalfigureparameter\c!cache}%
- format {\externalfigureparameter\c!method}%
- preset {\externalfigureparameter\c!prefix}%
- controls {\externalfigureparameter\c!controls}%
- resources {\externalfigureparameter\c!resources}%
- preview {\externalfigureparameter\c!preview}%
- display {\externalfigureparameter\c!display}%
- mask {\externalfigureparameter\c!mask}%
- conversion {\externalfigureparameter\c!conversion}%
- resolution {\externalfigureparameter\c!resolution}%
- color {\externalfigureparameter\c!color}% unprocessed raw key
- arguments {\externalfigureparameter\c!arguments}% used for converters
- repeat {\externalfigureparameter\c!repeat}%
- transform {\externalfigureparameter\c!transform}%
- compact {\externalfigureparameter\c!compact}% experiment, share fonts
- userpassword {\externalfigureparameter\c!userpassword}%
- ownerpassword{\externalfigureparameter\c!ownerpassword}%
+ name {\p_grph_include_name}%
+ label {\ifx\p_label\empty\p_grph_include_label\else\p_label\fi}%
+ page {\externalfigureparameter\c!page}%
+ file {\externalfigureparameter\c!file}%
+ size {\externalfigureparameter\c!size}%
+ object {\externalfigureparameter\c!object}%
+ prefix {\externalfigureparameter\c!prefix}%
+ cache {\externalfigureparameter\c!cache}%
+ format {\externalfigureparameter\c!method}%
+ preset {\externalfigureparameter\c!prefix}%
+ controls {\externalfigureparameter\c!controls}%
+ resources {\externalfigureparameter\c!resources}%
+ preview {\externalfigureparameter\c!preview}%
+ display {\externalfigureparameter\c!display}%
+ mask {\externalfigureparameter\c!mask}%
+ conversion {\externalfigureparameter\c!conversion}%
+ resolution {\externalfigureparameter\c!resolution}%
+ color {\externalfigureparameter\c!color}% unprocessed raw key
+ arguments {\externalfigureparameter\c!arguments}% used for converters
+ repeat {\externalfigureparameter\c!repeat}%
+ transform {\externalfigureparameter\c!transform}%
\ifx\p_width\empty \else
width \dimexpr\p_width\relax
\fi
@@ -603,9 +589,9 @@
\def\grph_include_set_mode
{\ifcase\figurestatus
- \globalresetsystemmode\v!figure % todo, also: \v!resource
+ \global\resetsystemmode\v!figure % todo, also: \v!resource
\else
- \globalsetsystemmode \v!figure % todo, also: \v!resource
+ \global\setsystemmode \v!figure % todo, also: \v!resource
\fi}
\appendtoks
@@ -655,41 +641,10 @@
\unexpanded\def\docheckfiguremps #1{\global\setbox\foundexternalfigure\vpack{\convertMPtoPDF{#1}11}}
\unexpanded\def\docheckfiguremprun #1#2{\global\setbox\foundexternalfigure\vpack{\useMPrun{#1}{#2}}}
-% \unexpanded\def\relocateexternalfigure % easier here than in lua
-% {\global\setbox\foundexternalfigure\vpack to \ht\foundexternalfigure\bgroup
-% \vss
-% \ht\foundexternalfigure\zeropoint
-% \hpack to \wd\foundexternalfigure\bgroup
-% \box\foundexternalfigure
-% \hss
-% \egroup
-% \egroup}
-
-\unexpanded\def\relocateexternalfigure
+\unexpanded\def\relocateexternalfigure % easier here than in lua
{\global\setbox\foundexternalfigure\vpack to \ht\foundexternalfigure\bgroup
- %
- % The \vss can (!) introduce 1 sp excess visible in xform which in itself
- % is not that important but some don't like these cosmetic side effects, for
- % instance we can get:
- %
- % vss : \vbox(845.1575+0.0)x597.23125, glue set 845.15747fil, direction TLT
- % vskip : \vbox(845.1575+0.0)x597.23125, direction TLT
- %
- % or
- %
- % 1 0 0 1 0 0.00003 cm
- % 1 0 0 1 0 0 cm
- %
- % This is a known property of using glue and can even depend on the architecture
- % (float implementation). Anyway, let's for now use a skip. Of course this can
- % shift the issue elsewhere, as vss is used a lot elsewhere.
- %
- % \vss
- \vkern\ht\foundexternalfigure
- %
- % \parfillskip\zeropoint
+ \vss
\ht\foundexternalfigure\zeropoint
- \dp\foundexternalfigure\zeropoint
\hpack to \wd\foundexternalfigure\bgroup
\box\foundexternalfigure
\hss
diff --git a/Master/texmf-dist/tex/context/base/mkiv/grph-mem.lua b/Master/texmf-dist/tex/context/base/mkiv/grph-mem.lua
index ff35483505a..bb48ae8d554 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/grph-mem.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/grph-mem.lua
@@ -20,143 +20,67 @@ local gsub = string.gsub
local report = logs.reporter("memstream")
local trace = false trackers.register ("graphics.memstreams", function(v) trace = v end)
local data = { }
+local opened = { }
-if pdfe then
-
- local function setmemstream(name,stream,once)
- if once and data[name] then
- if trace then
- report("not overloading %a",name) --
- end
- return data[name]
- end
- local kind = figures.guessfromstring(stream)
- local identifier = false
- if kind == "pdf" then
- identifier = pdfe.new(stream,#stream,name)
- if not identifier then
- report("no valid pdf stream %a",name)
- elseif trace then
- report("setting %a with identifier %a",name,identifier)
- end
- else
- identifier = "m_k_i_v_memstream_" .. name .. "." .. kind
- io.savedata(identifier,stream)
- end
- if not identifier then
- identifier = "invalid-memstream"
- end
- data[name] = identifier
- return identifier
- end
-
- resolvers.setmemstream = setmemstream
-
- function resolvers.finders.memstream(specification)
- local name = specification.path
- local identifier = data[name]
- if identifier then
- if trace then
- report("reusing %a with identifier %a",name,identifier)
- end
- return identifier
- end
- local stream = io.loaddata(name)
- if stream and stream ~= "" then
- return setmemstream(name,stream)
- end
+local function setmemstream(name,stream,once)
+ if once and data[name] then
if trace then
- report("no valid memstream %a",name)
+ report("not overloading %a",name) --
end
- return resolvers.finders.notfound()
+ return data[name]
end
-
- local flush = { }
-
- function resolvers.resetmemstream(name,afterpage)
- if afterpage then
- flush[#flush+1] = name
- end
+ local memstream, identifier = epdf.openMemStream(stream,#stream,name)
+ if not identifier then
+ report("no valid stream %a",name)
+ identifier = "invalid-memstream"
+ elseif trace then
+ report("setting %a with identifier %a",name,identifier)
end
+ data [name] = identifier
+ opened[name] = memstream
+ return identifier
+end
- luatex.registerpageactions(function()
- if #flush > 0 then
- for i=1,#flush do
- local identifier = data[name]
- if identifier then
- os.remove(identifier)
- data[name] = nil
- end
- end
- flush = { }
- end
- end)
-
-else
-
- local opened = { }
+resolvers.setmemstream = setmemstream
- local function setmemstream(name,stream,once)
- if once and data[name] then
- if trace then
- report("not overloading %a",name) --
- end
- return data[name]
- end
- local memstream, identifier = epdf.openMemStream(stream,#stream,name)
- if not identifier then
- report("no valid stream %a",name)
- identifier = "invalid-memstream"
- elseif trace then
- report("setting %a with identifier %a",name,identifier)
+function resolvers.finders.memstream(specification)
+ local name = specification.path
+ local identifier = data[name]
+ if identifier then
+ if trace then
+ report("reusing %a with identifier %a",name,identifier)
end
- data [name] = identifier
- opened[name] = memstream
return identifier
end
-
- resolvers.setmemstream = setmemstream
-
- function resolvers.finders.memstream(specification)
- local name = specification.path
- local identifier = data[name]
- if identifier then
- if trace then
- report("reusing %a with identifier %a",name,identifier)
- end
- return identifier
- end
- local stream = io.loaddata(name)
- if not stream or stream == "" then
- if trace then
- report("no valid file %a",name)
- end
- return resolvers.finders.notfound()
- else
- return setmemstream(name,stream)
+ local stream = io.loaddata(name)
+ if not stream or stream == "" then
+ if trace then
+ report("no valid file %a",name)
end
+ return resolvers.finders.notfound()
+ else
+ return setmemstream(name,stream)
end
+end
- local flush = { }
+local flush = { }
- function resolvers.resetmemstream(name,afterpage)
- if afterpage then
- flush[#flush+1] = name
- else
- opened[name] = nil
- end
+function resolvers.resetmemstream(name,afterpage)
+ if afterpage then
+ flush[#flush+1] = name
+ else
+ opened[name] = nil
end
+end
- luatex.registerpageactions(function()
- if #flush > 0 then
- for i=1,#flush do
- opened[flush[i]] = nil -- we keep of course data[name] because of reuse
- end
- flush = { }
+luatex.registerpageactions(function()
+ if #flush > 0 then
+ for i=1,#flush do
+ opened[flush[i]] = nil -- we keep of course data[name] because of reuse
end
- end)
-
-end
+ flush = { }
+ end
+end)
figures.identifiers.list[#figures.identifiers.list+1] = function(specification)
local name = specification.request.name
diff --git a/Master/texmf-dist/tex/context/base/mkiv/grph-pat.lua b/Master/texmf-dist/tex/context/base/mkiv/grph-pat.lua
index e38a9a674d6..89b29906d39 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/grph-pat.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/grph-pat.lua
@@ -15,7 +15,7 @@ local texsetbox = tex.setbox
local texgetbox = tex.getbox
local nodepool = nodes.pool
-local new_literal = nodepool.originliteral -- really ?
+local new_literal = nodepool.pdforiginliteral -- really ?
local new_hlist = nodepool.hlist
local names = { }
@@ -37,7 +37,7 @@ interfaces.implement {
if not name or name == "" then
return
end
- nodes.handlers.finalizebox(number)
+ nodes.handlers.finalize(box,"object")
names[name] = lpdf.registerpattern {
number = number,
width = specification.width or box.width,
diff --git a/Master/texmf-dist/tex/context/base/mkiv/grph-rul.lua b/Master/texmf-dist/tex/context/base/mkiv/grph-rul.lua
index 08edade1fe4..03f678973f0 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/grph-rul.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/grph-rul.lua
@@ -8,48 +8,33 @@ if not modules then modules = { } end modules ['grph-rul'] = {
local tonumber, next, type = tonumber, next, type
-local attributes = attributes
-local nodes = nodes
-local context = context
+local attributes = attributes
+local nodes = nodes
+local context = context
-local bpfactor = number.dimenfactors.bp
+local ruleactions = nodes.rules.ruleactions
+local userrule = nodes.rules.userrule
+local bpfactor = number.dimenfactors.bp
+local pdfprint = pdf.print
-local nuts = nodes.nuts
-local userrule = nuts.rules.userrule
-local outlinerule = nuts.pool.outlinerule
-local ruleactions = nuts.rules.ruleactions
+local current_attr = nodes.current_attr
+local setfield = nodes.setfield
-local setattrlist = nuts.setattrlist
-local setattr = nuts.setattr
-local tonode = nuts.tonode
+local getattribute = tex.getattribute
-local getattribute = tex.getattribute
+local a_color = attributes.private('color')
+local a_transparency = attributes.private('transparency')
+local a_colormodel = attributes.private('colormodel')
-local lefttoright_code = nodes.dirvalues.lefttoright
+local mpcolor = attributes.colors.mpcolor
-local a_color = attributes.private('color')
-local a_transparency = attributes.private('transparency')
-local a_colormodel = attributes.private('colormodel')
+local trace_mp = false trackers.register("rules.mp", function(v) trace_mp = v end)
-local mpcolor = attributes.colors.mpcolor
+local report_mp = logs.reporter("rules","mp")
-local trace_mp = false trackers.register("rules.mp", function(v) trace_mp = v end)
-
-local report_mp = logs.reporter("rules","mp")
-
-local floor = math.floor
-local getrandom = utilities.randomizer.get
-local formatters = string.formatters
-
--- This is very pdf specific. Maybe move some to lpdf-rul.lua some day.
-
-local pdfprint
-
-pdfprint = function(...) pdfprint = lpdf.print return pdfprint(...) end
-
-updaters.register("backend.update",function()
- pdfprint = lpdf.print
-end)
+local floor = math.floor
+local getrandom = utilities.randomizer.get
+local formatters = string.formatters
do
@@ -112,18 +97,19 @@ def RuleColor = %color% enddef ;
ruleactions.mp = function(p,h,v,i,n)
local name = p.name or "fake:rest"
local code = (predefined[name] or predefined["fake:rest"]) {
- data = p.data or "",
- width = p.width * bpfactor,
- height = p.height * bpfactor,
- depth = p.depth * bpfactor,
- factor = (p.factor or 0) * bpfactor, -- needs checking
- offset = p.offset or 0,
- line = (p.line or 65536) * bpfactor,
- color = mpcolor(p.ma,p.ca,p.ta),
- option = p.option or "",
- direction = p.direction or lefttoright_code,
- h = h * bpfactor,
- v = v * bpfactor,
+ data = p.data or "",
+ width = p.width * bpfactor,
+ height = p.height * bpfactor,
+ depth = p.depth * bpfactor,
+ factor = (p.factor or 0) * bpfactor, -- needs checking
+ offset = p.offset or 0,
+ line = (p.line or 65536) * bpfactor,
+ color = mpcolor(p.ma,p.ca,p.ta),
+ option = p.option or "",
+ direction = p.direction or "TLT",
+ h = h * bpfactor,
+ v = v * bpfactor,
+
}
if not initialized then
initialized = true
@@ -148,28 +134,14 @@ do
local f_rectangle = formatters["%.6F w %.6F %.6F %.6F %.6F re %s"]
local f_baselined = formatters["%.6F w %.6F %.6F %.6F %.6F re s %.6F %.6F m %.6F %.6F l s"]
local f_dashlined = formatters["%.6F w %.6F %.6F %.6F %.6F re s [%.6F %.6F] 2 d %.6F %.6F m %.6F %.6F l s"]
- local f_radtangle = formatters[
- [[%.6F w %.6F %.6F m
-%.6F %.6F l %.6F %.6F %.6F %.6F y
-%.6F %.6F l %.6F %.6F %.6F %.6F y
-%.6F %.6F l %.6F %.6F %.6F %.6F y
-%.6F %.6F l %.6F %.6F %.6F %.6F y
-h %s]]
- ]
-
- directives.register("metapost.stripzeros",function() -- confusing name but ok
- f_rectangle = formatters["%.6N w %.6N %.6N %.6N %.6N re %s"]
- f_baselined = formatters["%.6N w %.6N %.6N %.6N %.6N re s %.6N %.6N m %.6N %.6N l s"]
- f_dashlined = formatters["%.6N w %.6N %.6N %.6N %.6N re s [%.6N %.6N] 2 d %.6N %.6N m %.6N %.6N l s"]
- f_radtangle = formatters[
-[[%.6N w %.6N %.6N m
-%.6N %.6N l %.6N %.6N %.6N %.6N y
-%.6N %.6N l %.6N %.6N %.6N %.6N y
-%.6N %.6N l %.6N %.6N %.6N %.6N y
-%.6N %.6N l %.6N %.6N %.6N %.6N y
-h %s]]
- ]
- end)
+ local f_radtangle = formatters[ [[
+ %.6F w %.6F %.6F m
+ %.6F %.6F l %.6F %.6F %.6F %.6F y
+ %.6F %.6F l %.6F %.6F %.6F %.6F y
+ %.6F %.6F l %.6F %.6F %.6F %.6F y
+ %.6F %.6F l %.6F %.6F %.6F %.6F y
+ h %s
+ ]] ]
ruleactions.fill = function(p,h,v,i,n)
local l = (p.line or 65536)*bpfactor
@@ -238,44 +210,17 @@ interfaces.implement {
local ma = getattribute(a_colormodel) or 1
local ca = getattribute(a_color)
local ta = getattribute(a_transparency)
- setattrlist(rule,true)
+ setfield(rule,"attr",current_attr())
if t.type == "mp" then
t.ma = ma
t.ca = ca
t.ta = ta
else
- setattr(rule,a_colormodel,ma)
- setattr(rule,a_color,ca)
- setattr(rule,a_transparency,ta)
+ rule[a_colormodel] = ma
+ rule[a_color] = ca
+ rule[a_transparency] = ta
end
- context(tonode(rule)) -- will become context.nodes.flush
- end
-}
-
-interfaces.implement {
- name = "outlinerule",
- public = true,
- protected = true,
- arguments = { {
- { "width", "dimension" },
- { "height", "dimension" },
- { "depth", "dimension" },
- { "line", "dimension" },
- } } ,
- actions = function(t)
- local rule = outlinerule(t.width,t.height,t.depth,t.line)
- setattrlist(rule,true)
- context(tonode(rule)) -- will become context.nodes.flush
- end
-}
-
-interfaces.implement {
- name = "framedoutline",
- arguments = { "dimension", "dimension", "dimension", "dimension" },
- actions = function(w,h,d,l)
- local rule = outlinerule(w,h,d,l)
- setattrlist(rule,true)
- context(tonode(rule)) -- will become context.nodes.flush
+ context(rule)
end
}
@@ -302,8 +247,8 @@ interfaces.implement {
type = "mp",
name = t.name,
}
- setattrlist(rule,true)
- context(tonode(rule))
+ setfield(rule,"attr",current_attr())
+ context(rule)
end
}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/grph-swf.lua b/Master/texmf-dist/tex/context/base/mkiv/grph-swf.lua
index a9297d48ddb..30089cdc43c 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/grph-swf.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/grph-swf.lua
@@ -37,10 +37,9 @@ local function getheader(name)
buffer = f:read(20) -- ('*a')
end
f:close()
- -- can be done better now that we have stream readers
buffer = { match(buffer,"(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)") }
for i=1,9 do
- buffer[i] = tobitstring(byte(buffer[i]),8,8)
+ buffer[i] = tobitstring(byte(buffer[i]))
end
local framebits = concat(buffer,"",1,9)
local n = tonumber(sub(framebits,1,5),2)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/grph-trf.mkiv b/Master/texmf-dist/tex/context/base/mkiv/grph-trf.mkiv
index 35e812b3edb..6bd0e65ccec 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/grph-trf.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/grph-trf.mkiv
@@ -146,10 +146,10 @@
\d_grph_scale_ht\ht\nextbox
\d_grph_scale_dp\dp\nextbox
%
- \glet\finalscaleboxxscale \!!plusone
- \glet\finalscaleboxyscale \!!plusone
- \xdef\finalscaleboxwidth {\the\d_grph_scale_wd}%
- \xdef\finalscaleboxheight{\the\d_grph_scale_ht}%
+ \global\let\finalscaleboxxscale \!!plusone
+ \global\let\finalscaleboxyscale \!!plusone
+ \xdef \finalscaleboxwidth {\the\d_grph_scale_wd}%
+ \xdef \finalscaleboxheight{\the\d_grph_scale_ht}%
%
\forgetall
\dontcomplain
@@ -164,38 +164,11 @@
\box\nextbox
\egroup}
-% \def\grph_scale_apply
-% {\d_grph_scale_wd\finalscaleboxxscale\d_grph_scale_wd
-% \d_grph_scale_ht\finalscaleboxyscale\d_grph_scale_ht
-% \d_grph_scale_dp\finalscaleboxyscale\d_grph_scale_dp
-% \setbox\nextbox\hpack
-% {\dostartscaling \finalscaleboxxscale \finalscaleboxyscale
-% \smashedbox\nextbox
-% \dostopscaling}%
-% \wd\nextbox\d_grph_scale_wd
-% \ht\nextbox\d_grph_scale_ht
-% \dp\nextbox\d_grph_scale_dp}
-
\def\grph_scale_apply
{\d_grph_scale_wd\finalscaleboxxscale\d_grph_scale_wd
\d_grph_scale_ht\finalscaleboxyscale\d_grph_scale_ht
\d_grph_scale_dp\finalscaleboxyscale\d_grph_scale_dp
- \ifdim\d_grph_scale_wd=\wd\nextbox
- \ifdim\d_grph_scale_ht=\ht\nextbox
- \ifdim\d_grph_scale_dp=\dp\nextbox
- % \grph_scale_apply_nop
- \else
- \grph_scale_apply_yes
- \fi
- \else
- \grph_scale_apply_yes
- \fi
- \else
- \grph_scale_apply_yes
- \fi}
-
-\def\grph_scale_apply_yes
- {\setbox\nextbox\hpack
+ \setbox\nextbox\hpack
{\dostartscaling \finalscaleboxxscale \finalscaleboxyscale
\smashedbox\nextbox
\dostopscaling}%
@@ -898,7 +871,7 @@
\egroup}
\def\grph_rotate_finish_indeed
- {\hpack\bgroup
+ {\hbox\bgroup
\ifx\p_rotation_rotation\empty
\grph_rotate_finish_nop
\else
diff --git a/Master/texmf-dist/tex/context/base/mkiv/java-imp-example.mkiv b/Master/texmf-dist/tex/context/base/mkiv/java-imp-exa.mkiv
index 82d5b0cb0d7..584ee13512d 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/java-imp-example.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/java-imp-exa.mkiv
@@ -1,5 +1,5 @@
%D \module
-%D [ file=java-imp-example, % was: java-exa
+%D [ file=java-exa,
%D version=2002.??.??,
%D title=\CONTEXT\ JavaScript Macros,
%D subtitle=Example Support,
@@ -11,9 +11,6 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-%D This code is just kept as an example of dealign with forms and submitting data to
-%D a server. We used this to create stepwise growing student test forms and such.
-
% XFDF versus HTML
% localhost versus remote versus set
diff --git a/Master/texmf-dist/tex/context/base/mkiv/java-imp-print.mkiv b/Master/texmf-dist/tex/context/base/mkiv/java-imp-fil.mkiv
index 3d5325ff057..808950f2807 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/java-imp-print.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/java-imp-fil.mkiv
@@ -1,5 +1,5 @@
%D \module
-%D [ file=java-imp-print, % was: java-fil
+%D [ file=java-fil,
%D version=1998.06.01,
%D title=\CONTEXT\ JavaScript Macros,
%D subtitle=Filing and Printing,
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\startJSpreamble auxiliary used now
+\startJSpreamble Auxiliary used now
function DocumentFileName() {
var Paths = this.path.split("/") ;
diff --git a/Master/texmf-dist/tex/context/base/mkiv/java-imp-fields.mkiv b/Master/texmf-dist/tex/context/base/mkiv/java-imp-fld.mkiv
index 5801c321636..cbd53fffb4a 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/java-imp-fields.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/java-imp-fld.mkiv
@@ -1,5 +1,5 @@
%D \module
-%D [ file=java-imp-fields, % was java-fld
+%D [ file=java-fld,
%D version=1998.05.20,
%D title=\CONTEXT\ JavaScript Macros,
%D subtitle=Field Support,
@@ -26,9 +26,9 @@
%D Probably a \UNICODE\ issue. Beware, in \MKIV\ we have a
%D different escaping of \type {\\}.
%D
-%D Watch out: cf. the latest pdf specification we've changed On into Yes. Also,
-%D we've changed the test for the on value into !Off as we dÃģn't know what value it
-%D gets in the reader.
+%D Watch out: cf. the latest pdf specification we've changed
+%D On into Yes. Also, we've changed the test for the on value
+%D into !Off as we dÃģn't know what value it gets in the reader.
% Is this still okay? We can have unicode now, can't we? Anyway it's kind of
% messy and unneeded in these unicode times.
@@ -262,28 +262,9 @@ function Forget_Changes() {
function ForgetChanges() {
this.dirty = false ;
}
-
-function Step_Fields (Name, First, Last) {
- for (var i = Number(First) ; i <= Number(Last) ; i++) {
- var s = Name + ":" + i ;
- var v = this.getField(s) ;
- if (v) {
- ++visible_fields ;
- visible_field[visible_fields] = s ;
- if (v.hidden) {
- v.hidden = false ;
- this.dirty = false ;
- return ;
- }
- }
- }
-}
\stopJSpreamble
-\definereference[VideFields] [JS(Vide_Fields)]
-\definereference[HideFields] [JS(Hide_Fields)]
\definereference[ForgetChanges][JS(Forget_Changes)]
-\definereference[StepFields] [JS(Step_Fields)]
% This can be done more efficient, by keeping track of the
% current top of the stack.
@@ -297,7 +278,7 @@ function Field_Name(FieldSet,i) {
function Reset_Fields(FieldSet) {
var i = 1 ;
while (true) {
- var v = Field_Name(FieldSet,i) ;
+ v = Field_Name(FieldSet,i) ;
if (!v) {
break ;
} else {
@@ -311,7 +292,7 @@ function Reset_Fields(FieldSet) {
function Set_Fields(FieldSet) {
var i = 1 ;
while (true) {
- var v = Field_Name(FieldSet,i) ;
+ v = Field_Name(FieldSet,i) ;
if (!v) {
break ;
} else {
@@ -324,7 +305,7 @@ function Set_Fields(FieldSet) {
function Set_Field(FieldSet, FieldName) {
Reset_Fields(FieldSet) ;
- var v = Field_Name(FieldSet,FieldName) ;
+ v = Field_Name(FieldSet,FieldName) ;
if (v) {
v.value = "Yes" ;
this.dirty = false ;
@@ -333,7 +314,7 @@ function Set_Field(FieldSet, FieldName) {
function Reset_Field(FieldSet, FieldName) {
Set_Fields(FieldSet) ;
- var v = Field_Name(FieldSet,FieldName) ;
+ v = Field_Name(FieldSet,FieldName) ;
if (v) {
v.value = "Off" ;
this.dirty = false ;
@@ -342,16 +323,16 @@ function Reset_Field(FieldSet, FieldName) {
function Walk_Field(FieldSet) {
var i = 1 ;
- this.syncAnnotScan();
while (true) {
- var v = Field_Name(FieldSet,i) ;
+ v = Field_Name(FieldSet,i) ;
if (v) {
if (v.value != "Off") {
v.value = "Off" ;
- v = Field_Name(FieldSet,i + 1) ;
+ var ii = i ;
+ ii++ ;
+ v = Field_Name(FieldSet,ii) ;
if (! v) {
v = Field_Name(FieldSet,1) ;
- } else {
}
if (v) {
v.value = "Yes" ;
@@ -360,10 +341,6 @@ function Walk_Field(FieldSet) {
}
i++ ;
} else {
- v = Field_Name(FieldSet,1) ;
- if (v) {
- v.value = "Yes" ;
- }
break ;
}
}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/java-imp-highlight.mkiv b/Master/texmf-dist/tex/context/base/mkiv/java-imp-rhh.mkiv
index b55628f4b70..5f057f55070 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/java-imp-highlight.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/java-imp-rhh.mkiv
@@ -1,5 +1,5 @@
%D \module
-%D [ file=java-imp-highlightm, % was: java-rhh
+%D [ file=java-rhh,
%D version=2010.02.01,
%D title=\CONTEXT\ JavaScript Macros,
%D subtitle=Runtime Highlight Hack,
diff --git a/Master/texmf-dist/tex/context/base/mkiv/java-imp-steps.mkiv b/Master/texmf-dist/tex/context/base/mkiv/java-imp-stp.mkiv
index 3990e4d7ac4..8ac5d58b8b4 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/java-imp-steps.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/java-imp-stp.mkiv
@@ -1,5 +1,5 @@
%D \module
-%D [ file=java-imp-steps, % was: java-stp
+%D [ file=java-stp,
%D version=2004.03.15,
%D title=\CONTEXT\ JavaScript Macros,
%D subtitle=Stepping,
diff --git a/Master/texmf-dist/tex/context/base/mkiv/java-imp-videoplayer.mkiv b/Master/texmf-dist/tex/context/base/mkiv/java-imp-videoplayer.mkiv
deleted file mode 100644
index beda499a7f7..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/java-imp-videoplayer.mkiv
+++ /dev/null
@@ -1,82 +0,0 @@
-%D \module
-%D [ file=java-imp-videoplayer,
-%D version=2009.12.31,
-%D title=\CONTEXT\ JavaScript Macros,
-%D subtitle=Shockwave Support,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D As part of the interaction manual writing this code was moved here. It's
-%D kind of obsolete as shockwave is obsolete.
-
-% using videoplayer.swf from adobe or strobemediaplayback.swf from sourceforge:
-
-\startluaparameterset[shockwave:display]
- toolbar = true,
- -- preview = "somefile",
- open = "click",
- close = "focus",
-\stopluaparameterset
-
-\startJSpreamble shockwave used now
-
- function StartShockwave(label) {
- var rm = this.getAnnotsRichMedia(this.pageNum,label)[0] ;
- if (rm.activated) {
- rm.callAS("multimedia_play") ;
- } else {
- rm.activated = true ;
- }
- }
-
- function StopShockwave(label) {
- var rm = this.getAnnotsRichMedia(this.pageNum,label)[0] ;
- if (rm.activated) {
- rm.callAS("multimedia_pause") ;
- rm.callAS("multimedia_rewind") ;
- }
- }
-
- function RewindShockwave(label) {
- var rm = this.getAnnotsRichMedia(this.pageNum,label)[0] ;
- if (rm.activated) {
- rm.callAS("multimedia_rewind") ;
- }
- }
-
- function PauseShockwave(label) {
- var rm = this.getAnnotsRichMedia(this.pageNum,label)[0] ;
- if (rm.activated) {
- rm.callAS("multimedia_pause") ;
- }
- }
-
-\stopJSpreamble
-
-\definereference[StartShockwave] [JS(StartShockwave)]
-\definereference[StopShockwave] [JS(StopShockwave)]
-\definereference[RewindShockwave][JS(RewindShockwave)]
-\definereference[PauseShockwave] [JS(PauseShockwave)]
-
-\unprotect
-
-\doglobal \useexternalfigure
- [shockwave]
- [videoplayer.swf]
- [\c!arguments=\luaparameterset{shockwave:arguments}{source="\externalfigureparameter\v!file"},
- \c!resources=\luaparameterset{shockwave:resources}{files={"\externalfigureparameter\v!file"}},
- \c!display=shockwave:display]
-
-% \doglobal \useexternalfigure
-% [shockwave]
-% [strobemediaplayback.swf]
-% [arguments=\luaparameterset{shockwave:arguments}{src="\externalfigureparameter\v!file"},
-% resources=\luaparameterset{shockwave:resources}{files={"\externalfigureparameter\v!file"}},
-% display=shockwave:display]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkiv/java-imp-vplayer.mkiv b/Master/texmf-dist/tex/context/base/mkiv/java-imp-vplayer.mkiv
deleted file mode 100644
index 4ed08cad60f..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/java-imp-vplayer.mkiv
+++ /dev/null
@@ -1,105 +0,0 @@
-%D \module
-%D [ file=java-imp-vplayer,
-%D version=2009.12.31,
-%D title=\CONTEXT\ JavaScript Macros,
-%D subtitle=Shockwave Support,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D As part of the interaction manual writing this code was moved here. It's
-%D kind of obsolete as shockwave is obsolete. Anywaym, here's how it works.
-%D One can actually set all kind of properties but let's not waste time on
-%D that. Maybe some day \PDF\ will have proper native video support.
-%D
-%D \starttyping
-%D \starttext
-%D
-%D \useJSscripts[vplayer]
-%D
-%D \setupinteraction
-%D [state=start]
-%D
-%D \externalfigure
-%D [shockwave]
-%D [frame=on,
-%D width=480pt,
-%D height=270pt,
-%D %file=mathematics.mp4, % Hollie McNish, Martin Pyper & Jules Buckley (Metropole Orchestra)
-%D file=bathtub.mp4, % Jacob Collier & Becca Stevens
-%D label=foo]
-%D
-%D \goto{START} [JS(StartShockwave{foo})]
-%D \goto{REWIND}[JS(RewindShockwave{foo})]
-%D \goto{PAUSE} [JS(PauseShockwave{foo})]
-%D \goto{STOP} [JS(StopShockwave{foo})]
-%D
-%D \stoptext
-%D \stoptyping
-
-% using vplayer9.swf from ctan:
-
-\startluaparameterset[shockwave:display]
- toolbar = true,
- -- preview = "somefile",
- open = "click",
- close = "focus",
-\stopluaparameterset
-
-\startJSpreamble shockwave used now
-
- function StartShockwave(label) {
- var rm = this.getAnnotsRichMedia(this.pageNum,label)[0] ;
- if (rm.activated) {
- // ok
- } else {
- rm.activated = true ;
- }
- rm.callAS("rewind") ;
- rm.callAS("playPause") ;
- }
-
- function StopShockwave(label) {
- var rm = this.getAnnotsRichMedia(this.pageNum,label)[0] ;
- if (rm.activated) {
- rm.callAS("pause") ;
- rm.callAS("rewind") ;
- }
- }
-
- function RewindShockwave(label) {
- var rm = this.getAnnotsRichMedia(this.pageNum,label)[0] ;
- if (rm.activated) {
- rm.callAS("rewind") ;
- }
- }
-
- function PauseShockwave(label) {
- var rm = this.getAnnotsRichMedia(this.pageNum,label)[0] ;
- if (rm.activated) {
- rm.callAS("playPause") ;
- }
- }
-
-\stopJSpreamble
-
-\definereference[StartShockwave] [JS(StartShockwave)]
-\definereference[StopShockwave] [JS(StopShockwave)]
-\definereference[RewindShockwave][JS(RewindShockwave)]
-\definereference[PauseShockwave] [JS(PauseShockwave)]
-
-\unprotect
-
-\doglobal \useexternalfigure
- [shockwave]
- [vplayer9.swf]
- %[arguments=\luaparameterset{shockwave:arguments}{src="\externalfigureparameter\v!file",source="\externalfigureparameter\v!file"},
- [\c!arguments=\luaparameterset{shockwave:arguments}{source="\externalfigureparameter\v!file",autoPlay=true},
- \c!resources=\luaparameterset{shockwave:resources}{files={"\externalfigureparameter\v!file"}},
- \c!display=shockwave:display]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkiv/java-ini.lua b/Master/texmf-dist/tex/context/base/mkiv/java-ini.lua
index b41b065e89d..61ab15e7a9c 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/java-ini.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/java-ini.lua
@@ -8,7 +8,7 @@ if not modules then modules = { } end modules ['java-ini'] = {
-- todo: don't flush scripts if no JS key
-local format, gsub, find = string.format, string.gsub, string.find
+local format = string.format
local concat = table.concat
local lpegmatch, P, S, C, Carg, Cc = lpeg.match, lpeg.P, lpeg.S, lpeg.C, lpeg.Carg, lpeg.Cc
@@ -69,7 +69,6 @@ local parsefunctions = (fname + any)^0
function javascripts.storecode(str)
local name, uses, script = lpegmatch(parsecode,str)
if name and name ~= "" then
- script = gsub(script,"%s*([^\n\r]+)%s*[\n\r]+$","%1")
codes[name] = { uses, script }
end
end
@@ -124,9 +123,8 @@ function javascripts.usepreamblenow(name) -- now later
local names = settings_to_array(name)
for i=1,#names do
local somename = names[i]
- local preamble = preambled[somename]
- if preamble then
- preambles[preamble][2] = "now"
+ if not preambled[somename] then
+ preambles[preambled[somename]][2] = "now"
if trace_javascript then
report_javascripts("used preamble %a, state %a, order %a",somename,"now","auto")
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/java-ini.mkiv b/Master/texmf-dist/tex/context/base/mkiv/java-ini.mkiv
index 95c9c522005..25b8ba60009 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/java-ini.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/java-ini.mkiv
@@ -38,6 +38,7 @@
%D \goto{calculate total}[Sum(1.5,2.3)]
%D \stoptyping
+
%D \macros
%D {startJScode}
%D
@@ -54,7 +55,7 @@
%D actually include the preamble needed.
%D
%D \starttyping
-%D \startJScode{uses} used {later}
+%D \startJScode{uses} uses {later}
%D uses = 6 ;
%D \stopJScode
%D \stoptyping
@@ -155,18 +156,4 @@
{\clf_usejavascriptscripts {#1}% two steps as this one calls tex code
\clf_usejavascriptpreamble{#2}}% so this one comes later
-\unexpanded\def\useJSpreamble
- {\dosingleempty\java_use_preamble}
-
-\def\java_use_preamble[#1]%
- {\clf_usejavascriptpreamble{#1}}% so this one comes later
-
-%D Here:
-
-\definefilesynonym[java-imp-fld.mkiv] [java-imp-fields.mkiv]
-\definefilesynonym[java-imp-stp.mkiv] [java-imp-steps.mkiv]
-\definefilesynonym[java-imp-fil.mkiv] [java-imp-print.mkiv]
-\definefilesynonym[java-imp-rhh.mkiv] [java-imp-highlight.mkiv]
-\definefilesynonym[java-imp-exa.mkiv] [java-imp-example.mkiv]
-
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkiv/l-bit32.lua b/Master/texmf-dist/tex/context/base/mkiv/l-bit32.lua
index 25716e0a8ad..5f35b8feecd 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/l-bit32.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/l-bit32.lua
@@ -20,7 +20,7 @@ elseif utf8 then
-- lua 5.3: bitwise.lua, v 1.24 2014/12/26 17:20:53 roberto
- load ( [[
+ bit32 = load ( [[
local select = select -- instead of: arg = { ... }
bit32 = {
@@ -105,13 +105,13 @@ bit32 = {
return ((a & ~(mask << f)) | ((v & mask) << f)) & 0xFFFFFFFF
end,
}
- ]] ) ()
+ ]] )
elseif bit then
-- luajit (for now)
- load ( [[
+ bit32 = load ( [[
local band, bnot, rshift, lshift = bit.band, bit.bnot, bit.rshift, bit.lshift
bit32 = {
@@ -135,7 +135,7 @@ bit32 = {
rrotate = bit.ror,
rshift = rshift,
}
- ]] ) ()
+ ]] )
else
@@ -146,3 +146,5 @@ else
xpcall(function() local _, t = require("bit32") if t then bit32 = t end return end,function() end)
end
+
+return bit32 or false
diff --git a/Master/texmf-dist/tex/context/base/mkiv/l-dir.lua b/Master/texmf-dist/tex/context/base/mkiv/l-dir.lua
index b0b2c52836a..bc691d53635 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/l-dir.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/l-dir.lua
@@ -75,8 +75,7 @@ function dir.current()
return (gsub(currentdir(),"\\","/"))
end
--- The next one is somewhat optimized but still slow but it's a pitty that the iterator
--- doesn't return a mode too.
+-- somewhat optimized
local function glob_pattern_function(path,patt,recurse,action)
if isdir(path) then
@@ -90,7 +89,6 @@ local function glob_pattern_function(path,patt,recurse,action)
usedpath = path
end
local dirs
- local nofdirs = 0
for name in walkdir(usedpath) do
if name ~= "." and name ~= ".." then
local full = path .. name
@@ -100,18 +98,16 @@ local function glob_pattern_function(path,patt,recurse,action)
action(full)
end
elseif recurse and mode == "directory" then
- if dirs then
- nofdirs = nofdirs + 1
- dirs[nofdirs] = full
+ if not dirs then
+ dirs = { full }
else
- nofdirs = 1
- dirs = { full }
+ dirs[#dirs+1] = full
end
end
end
end
if dirs then
- for i=1,nofdirs do
+ for i=1,#dirs do
glob_pattern_function(dirs[i],patt,recurse,action)
end
end
@@ -122,41 +118,38 @@ local function glob_pattern_table(path,patt,recurse,result)
if not result then
result = { }
end
- local usedpath
- if path == "/" then
- usedpath = "/."
- elseif not find(path,"/$") then
- usedpath = path .. "/."
- path = path .. "/"
- else
- usedpath = path
- end
- local dirs
- local nofdirs = 0
- local noffiles = #result
- for name, a in walkdir(usedpath) do
- if name ~= "." and name ~= ".." then
- local full = path .. name
- local mode = attributes(full,'mode')
- if mode == 'file' then
- if not patt or find(full,patt) then
- noffiles = noffiles + 1
- result[noffiles] = full
- end
- elseif recurse and mode == "directory" then
- if dirs then
- nofdirs = nofdirs + 1
- dirs[nofdirs] = full
- else
- nofdirs = 1
- dirs = { full }
+ if isdir(path) then
+ local usedpath
+ if path == "/" then
+ usedpath = "/."
+ elseif not find(path,"/$") then
+ usedpath = path .. "/."
+ path = path .. "/"
+ else
+ usedpath = path
+ end
+ local dirs
+ for name in walkdir(usedpath) do
+ if name ~= "." and name ~= ".." then
+ local full = path .. name
+ local mode = attributes(full,'mode')
+ if mode == 'file' then
+ if not patt or find(full,patt) then
+ result[#result+1] = full
+ end
+ elseif recurse and mode == "directory" then
+ if not dirs then
+ dirs = { full }
+ else
+ dirs[#dirs+1] = full
+ end
end
end
end
- end
- if dirs then
- for i=1,nofdirs do
- glob_pattern_table(dirs[i],patt,recurse,result)
+ if dirs then
+ for i=1,#dirs do
+ glob_pattern_table(dirs[i],patt,recurse,result)
+ end
end
end
return result
@@ -167,13 +160,12 @@ local function globpattern(path,patt,recurse,method)
if patt and sub(patt,1,-3) == path then
patt = false
end
- local okay = isdir(path)
if kind == "function" then
- return okay and glob_pattern_function(path,patt,recurse,method) or { }
+ return glob_pattern_function(path,patt,recurse,method)
elseif kind == "table" then
- return okay and glob_pattern_table(path,patt,recurse,method) or method
+ return glob_pattern_table(path,patt,recurse,method)
else
- return okay and glob_pattern_table(path,patt,recurse,{ }) or { }
+ return glob_pattern_table(path,patt,recurse,{ })
end
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/l-file.lua b/Master/texmf-dist/tex/context/base/mkiv/l-file.lua
index 46b6847d331..5fec0040fb1 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/l-file.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/l-file.lua
@@ -69,34 +69,35 @@ local lpegmatch = lpeg.match
local getcurrentdir, attributes = lfs.currentdir, lfs.attributes
local checkedsplit = string.checkedsplit
+-- local patterns = file.patterns or { }
+-- file.patterns = patterns
+
local P, R, S, C, Cs, Cp, Cc, Ct = lpeg.P, lpeg.R, lpeg.S, lpeg.C, lpeg.Cs, lpeg.Cp, lpeg.Cc, lpeg.Ct
-- better this way:
------ tricky = S("/\\") * P(-1)
+local tricky = S("/\\") * P(-1)
local attributes = lfs.attributes
+if sandbox then
+ sandbox.redefine(lfs.isfile,"lfs.isfile")
+ sandbox.redefine(lfs.isdir, "lfs.isdir")
+end
+
function lfs.isdir(name)
- -- if not lpegmatch(tricky,name) then
- -- name = name .. "/."
- -- end
- return attributes(name,"mode") == "directory"
+ if lpegmatch(tricky,name) then
+ return attributes(name,"mode") == "directory"
+ else
+ return attributes(name.."/.","mode") == "directory"
+ end
end
function lfs.isfile(name)
- local a = attributes(name,"mode")
- return a == "file" or a == "link" or nil
+ return attributes(name,"mode") == "file"
end
function lfs.isfound(name)
- local a = attributes(name,"mode")
- return (a == "file" or a == "link") and name or nil
-end
-
-if sandbox then
- sandbox.redefine(lfs.isfile,"lfs.isfile")
- sandbox.redefine(lfs.isdir, "lfs.isdir")
- sandbox.redefine(lfs.isfound, "lfs.isfound")
+ return attributes(name,"mode") == "file" and name or nil
end
local colon = P(":")
@@ -724,10 +725,3 @@ function file.withinbase(path) -- don't go beyond root
return true
end
--- not used in context but was in luatex once:
-
-local symlinkattributes = lfs.symlinkattributes
-
-function lfs.readlink(name)
- return symlinkattributes(name,"target") or nil
-end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/l-lpeg.lua b/Master/texmf-dist/tex/context/base/mkiv/l-lpeg.lua
index 51bc1d3df30..a7ebd567d79 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/l-lpeg.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/l-lpeg.lua
@@ -202,13 +202,13 @@ local fullstripper = whitespace^0 * C((whitespace^0 * nonwhitespace^1)^0)
local collapser = Cs(spacer^0/"" * nonspacer^0 * ((spacer^0/" " * nonspacer^1)^0))
local nospacer = Cs((whitespace^1/"" + nonwhitespace^1)^0)
-local b_collapser = Cs( whitespace^0 /"" * (nonwhitespace^1 + whitespace^1/" ")^0)
-local e_collapser = Cs((whitespace^1 * endofstring/"" + nonwhitespace^1 + whitespace^1/" ")^0)
-local m_collapser = Cs( (nonwhitespace^1 + whitespace^1/" ")^0)
+local b_collapser = Cs( whitespace^0 /"" * (nonwhitespace^1 + whitespace^1/" ")^0)
+local e_collapser = Cs((whitespace^1 * P(-1)/"" + nonwhitespace^1 + whitespace^1/" ")^0)
+local m_collapser = Cs( (nonwhitespace^1 + whitespace^1/" ")^0)
-local b_stripper = Cs( spacer^0 /"" * (nonspacer^1 + spacer^1/" ")^0)
-local e_stripper = Cs((spacer^1 * endofstring/"" + nonspacer^1 + spacer^1/" ")^0)
-local m_stripper = Cs( (nonspacer^1 + spacer^1/" ")^0)
+local b_stripper = Cs( spacer^0 /"" * (nonspacer^1 + spacer^1/" ")^0)
+local e_stripper = Cs((spacer^1 * P(-1)/"" + nonspacer^1 + spacer^1/" ")^0)
+local m_stripper = Cs( (nonspacer^1 + spacer^1/" ")^0)
patterns.stripper = stripper
patterns.fullstripper = fullstripper
@@ -270,7 +270,7 @@ patterns.cpfloat = sign^-1 * patterns.cpunsigned
patterns.number = patterns.float + patterns.integer
patterns.cnumber = patterns.cfloat + patterns.integer
patterns.cpnumber = patterns.cpfloat + patterns.integer
-patterns.oct = zero * octdigits -- hm is this ok
+patterns.oct = zero * octdigits
patterns.octal = patterns.oct
patterns.HEX = zero * P("X") * (digit+uppercase)^1
patterns.hex = zero * P("x") * (digit+lowercase)^1
@@ -289,14 +289,10 @@ patterns.propername = (uppercase + lowercase + underscore) * (uppercase + low
patterns.somecontent = (anything - newline - space)^1 -- (utf8char - newline - space)^1
patterns.beginline = #(1-newline)
-patterns.longtostring = Cs(whitespace^0/"" * ((patterns.quoted + nonwhitespace^1 + whitespace^1/"" * (endofstring + Cc(" ")))^0))
+patterns.longtostring = Cs(whitespace^0/"" * ((patterns.quoted + nonwhitespace^1 + whitespace^1/"" * (P(-1) + Cc(" ")))^0))
--- local function anywhere(pattern) -- slightly adapted from website
--- return P { P(pattern) + 1 * V(1) }
--- end
-
-function anywhere(pattern) -- faster
- return (1-P(pattern))^0 * P(pattern)
+local function anywhere(pattern) --slightly adapted from website
+ return P { P(pattern) + 1 * V(1) }
end
lpeg.anywhere = anywhere
@@ -308,28 +304,12 @@ function lpeg.instringchecker(p)
end
end
--- function lpeg.splitter(pattern, action)
--- return (((1-P(pattern))^1)/action+1)^0
--- end
-
--- function lpeg.tsplitter(pattern, action)
--- return Ct((((1-P(pattern))^1)/action+1)^0)
--- end
-
function lpeg.splitter(pattern, action)
- if action then
- return (((1-P(pattern))^1)/action+1)^0
- else
- return (Cs((1-P(pattern))^1)+1)^0
- end
+ return (((1-P(pattern))^1)/action+1)^0
end
function lpeg.tsplitter(pattern, action)
- if action then
- return Ct((((1-P(pattern))^1)/action+1)^0)
- else
- return Ct((Cs((1-P(pattern))^1)+1)^0)
- end
+ return Ct((((1-P(pattern))^1)/action+1)^0)
end
-- probleem: separator can be lpeg and that does not hash too well, but
@@ -657,6 +637,82 @@ function lpeg.counter(pattern,action)
end
end
+-- utf extensies
+
+utf = utf or (unicode and unicode.utf8) or { }
+
+local utfcharacters = utf and utf.characters or string.utfcharacters
+local utfgmatch = utf and utf.gmatch
+local utfchar = utf and utf.char
+
+lpeg.UP = lpeg.P
+
+if utfcharacters then
+
+ function lpeg.US(str)
+ local p = P(false)
+ for uc in utfcharacters(str) do
+ p = p + P(uc)
+ end
+ return p
+ end
+
+
+elseif utfgmatch then
+
+ function lpeg.US(str)
+ local p = P(false)
+ for uc in utfgmatch(str,".") do
+ p = p + P(uc)
+ end
+ return p
+ end
+
+else
+
+ function lpeg.US(str)
+ local p = P(false)
+ local f = function(uc)
+ p = p + P(uc)
+ end
+ lpegmatch((utf8char/f)^0,str)
+ return p
+ end
+
+end
+
+local range = utf8byte * utf8byte + Cc(false) -- utf8byte is already a capture
+
+function lpeg.UR(str,more)
+ local first, last
+ if type(str) == "number" then
+ first = str
+ last = more or first
+ else
+ first, last = lpegmatch(range,str)
+ if not last then
+ return P(str)
+ end
+ end
+ if first == last then
+ return P(str)
+ elseif utfchar and (last - first < 8) then -- a somewhat arbitrary criterium
+ local p = P(false)
+ for i=first,last do
+ p = p + P(utfchar(i))
+ end
+ return p -- nil when invalid range
+ else
+ local f = function(b)
+ return b >= first and b <= last
+ end
+ -- tricky, these nested captures
+ return utf8byte / f -- nil when invalid range
+ end
+end
+
+-- print(lpeg.match(lpeg.Cs((C(lpeg.UR("ÎąÏ‰"))/{ ["χ"] = "OEPS" })^0),"ÎąÏ‰Ï‡ÎąÏ‰"))
+
-- lpeg.print(lpeg.R("ab","cd","gh"))
-- lpeg.print(lpeg.P("a","b","c"))
-- lpeg.print(lpeg.S("a","b","c"))
@@ -888,7 +944,7 @@ local function make2(t,rest) -- only ascii
return p
end
-local function utfchartabletopattern(list,insensitive) -- goes to util-lpg
+function lpeg.utfchartabletopattern(list,insensitive) -- goes to util-lpg
local tree = { }
local n = #list
if n == 0 then
@@ -966,15 +1022,6 @@ local function utfchartabletopattern(list,insensitive) -- goes to util-lpg
return (insensitive and make2 or make1)(tree)
end
-lpeg.utfchartabletopattern = utfchartabletopattern
-
-function lpeg.utfreplacer(list,insensitive)
- local pattern = Cs((utfchartabletopattern(list,insensitive)/list + utf8character)^0)
- return function(str)
- return lpegmatch(pattern,str) or str
- end
-end
-
-- local t = { "start", "stoep", "staart", "paard" }
-- local p = lpeg.Cs((lpeg.utfchartabletopattern(t)/string.upper + 1)^1)
@@ -1072,38 +1119,25 @@ end
-- moved here (before util-str)
-do
-
- local trailingzeros = zero^0 * -digit -- suggested by Roberto
- local stripper = Cs((
- digits * (
- period * trailingzeros / ""
- + period * (digit - trailingzeros)^1 * (trailingzeros / "")
- ) + 1
- )^0)
+----- digit = R("09")
+----- period = P(".")
+----- zero = P("0")
+local trailingzeros = zero^0 * -digit -- suggested by Roberto R
+local case_1 = period * trailingzeros / ""
+local case_2 = period * (digit - trailingzeros)^1 * (trailingzeros / "")
+local number = digits * (case_1 + case_2)
+local stripper = Cs((number + 1)^0)
- lpeg.patterns.stripzeros = stripper -- multiple in string
+lpeg.patterns.stripzeros = stripper
- local nonzero = digit - zero
- local trailingzeros = zero^1 * endofstring
- local stripper = Cs( (1-period)^0 * (
- period * trailingzeros/""
- + period * (nonzero^1 + (trailingzeros/"") + zero^1)^0
- + endofstring
- ))
-
- lpeg.patterns.stripzero = stripper -- slightly more efficient but expects a float !
-
- -- local sample = "bla 11.00 bla 11 bla 0.1100 bla 1.00100 bla 0.00 bla 0.001 bla 1.1100 bla 0.100100100 bla 0.00100100100"
- -- collectgarbage("collect")
- -- str = string.rep(sample,10000)
- -- local ts = os.clock()
- -- lpegmatch(stripper,str)
- -- print(#str, os.clock()-ts, lpegmatch(stripper,sample))
-
-end
+-- local sample = "bla 11.00 bla 11 bla 0.1100 bla 1.00100 bla 0.00 bla 0.001 bla 1.1100 bla 0.100100100 bla 0.00100100100"
+-- collectgarbage("collect")
+-- str = string.rep(sample,10000)
+-- local ts = os.clock()
+-- lpegmatch(stripper,str)
+-- print(#str, os.clock()-ts, lpegmatch(stripper,sample))
--- for practical reasons we keep this here:
+-- for practical reasone we keep this here:
local byte_to_HEX = { }
local byte_to_hex = { }
@@ -1175,22 +1209,3 @@ end
-- local h = "ADFE0345"
-- local b = lpegmatch(patterns.hextobytes,h)
-- print(h,b,string.tohex(b),string.toHEX(b))
-
-local patterns = { } -- can be made weak
-
-local function containsws(what)
- local p = patterns[what]
- if not p then
- local p1 = P(what) * (whitespace + endofstring) * Cc(true)
- local p2 = whitespace * P(p1)
- p = P(p1) + P(1-p2)^0 * p2 + Cc(false)
- patterns[what] = p
- end
- return p
-end
-
-lpeg.containsws = containsws
-
-function string.containsws(str,what)
- return lpegmatch(patterns[what] or containsws(what),str)
-end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/l-lua.lua b/Master/texmf-dist/tex/context/base/mkiv/l-lua.lua
index d8989364ed5..426706f06d6 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/l-lua.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/l-lua.lua
@@ -35,6 +35,8 @@ if LUAVERSION < 5.2 and jit then
LUAVERSION = 5.2
end
+_LUAVERSION = LUAVERSION -- for old times sake, will go away
+
-- lpeg
if not lpeg then
@@ -228,27 +230,23 @@ elseif not ffi.number then
ffi.number = tonumber
end
--- if not bit32 then -- and utf8 then
--- -- bit32 = load ( [[ -- replacement code with 5.3 syntax so that 5.2 doesn't bark on it ]] )
--- bit32 = require("l-bit32")
--- end
+if not bit32 then -- and utf8 then
+ -- bit32 = load ( [[ -- replacement code with 5.3 syntax so that 5.2 doesn't bark on it ]] )
+ bit32 = require("l-bit32")
+end
-- We need this due a bug in luatex socket loading:
--- local loaded = package.loaded
---
--- if not loaded["socket"] then loaded["socket"] = loaded["socket.core"] end
--- if not loaded["mime"] then loaded["mime"] = loaded["mime.core"] end
---
--- if not socket.mime then socket.mime = package.loaded["mime"] end
---
--- if not loaded["socket.mime"] then loaded["socket.mime"] = socket.mime end
--- if not loaded["socket.http"] then loaded["socket.http"] = socket.http end
--- if not loaded["socket.ftp"] then loaded["socket.ftp"] = socket.ftp end
--- if not loaded["socket.smtp"] then loaded["socket.smtp"] = socket.smtp end
--- if not loaded["socket.tp"] then loaded["socket.tp"] = socket.tp end
--- if not loaded["socket.url"] then loaded["socket.url"] = socket.url end
-
-if LUAVERSION > 5.3 then
- collectgarbage("generational")
-end
+local loaded = package.loaded
+
+if not loaded["socket"] then loaded["socket"] = loaded["socket.core"] end
+if not loaded["mime"] then loaded["mime"] = loaded["mime.core"] end
+
+if not socket.mime then socket.mime = package.loaded["mime"] end
+
+if not loaded["socket.mime"] then loaded["socket.mime"] = socket.mime end
+if not loaded["socket.http"] then loaded["socket.http"] = socket.http end
+if not loaded["socket.ftp"] then loaded["socket.ftp"] = socket.ftp end
+if not loaded["socket.smtp"] then loaded["socket.smtp"] = socket.smtp end
+if not loaded["socket.tp"] then loaded["socket.tp"] = socket.tp end
+if not loaded["socket.url"] then loaded["socket.url"] = socket.url end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/l-macro-imp-optimize.lua b/Master/texmf-dist/tex/context/base/mkiv/l-macro-imp-optimize.lua
index 7d7fafefde2..e04b37eab3c 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/l-macro-imp-optimize.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/l-macro-imp-optimize.lua
@@ -46,22 +46,17 @@ if LUAVERSION >= 5.3 and lua.macros then
-- #define rshift(a,b) ((a >> b) & 0xFFFFFFFF)
-- ]]
-lua.macros.resolvestring [[
-#define band(a,b) ((a)&(b))
-#define bnot(a) (~(a)&0xFFFFFFFF)
-#define bor(a,b) (((a)|(b))&0xFFFFFFFF)
-#define btest(a,b) (((a)&(b))~=0)
-#define bxor(a,b) (((a)~(b))&0xFFFFFFFF)
-#define rshift(a,b) (((a)&(b))~=0)
-#define extract(a,b,c) (((a)>>(b))&~(-1<<(c)))
-#define extract(a,b) (((a)>>(b))&0x1)
-#define extract1(a,b) ((a >> b) & 0x01)
-#define extract2(a,b) ((a >> b) & 0x03)
-#define extract4(a,b) ((a >> b) & 0x0F)
-#define lshift(a,b) (((a)<<(b))&0xFFFFFFFF)
-#define rshift(a,b) (((a)>>(b))&0xFFFFFFFF)
-#define intdiv(a,b) ((a)//(b))
-#define idiv(a,b) ((a)//(b))
-]]
+ lua.macros.resolvestring [[
+ #define band(a,b) (a&b)
+ #define bnot(a) (~a&0xFFFFFFFF)
+ #define bor(a,b) ((a|b)&0xFFFFFFFF)
+ #define btest(a,b) ((a&b)~=0)
+ #define bxor(a,b) ((a~b)&0xFFFFFFFF)
+ #define rshift(a,b) ((a&b)~=0)
+ #define extract(a,b,c) ((a>>b)&~(-1<<c))
+ #define extract(a,b) ((a>>b)&0x1))
+ #define lshift(a,b) ((a<<b)&0xFFFFFFFF)
+ #define rshift(a,b) ((a>>b)&0xFFFFFFFF)
+ ]]
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/l-macro.lua b/Master/texmf-dist/tex/context/base/mkiv/l-macro.lua
index 24a3d07bc23..30c7cbec618 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/l-macro.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/l-macro.lua
@@ -14,16 +14,14 @@ if not modules then modules = { } end modules ['l-macros'] = {
local S, P, R, V, C, Cs, Cc, Ct, Carg = lpeg.S, lpeg.P, lpeg.R, lpeg.V, lpeg.C, lpeg.Cs, lpeg.Cc, lpeg.Ct, lpeg.Carg
local lpegmatch = lpeg.match
local concat = table.concat
-local format, sub, match = string.format, string.sub, string.match
+local format, sub = string.format, string.sub
local next, load, type = next, load, type
local newline = S("\n\r")^1
local continue = P("\\") * newline
-local whitespace = S(" \t\n\r")
local spaces = S(" \t") + continue
-local nametoken = R("az","AZ","__","09")
-local name = nametoken^1
-local body = ((continue/"" + 1) - newline)^1
+local name = R("az","AZ","__","09")^1
+local body = ((1+continue/"")-newline)^1
local lparent = P("(")
local rparent = P(")")
local noparent = 1 - (lparent + rparent)
@@ -55,9 +53,7 @@ end
-- todo: zero case
-local safeguard = P("local") * whitespace^1 * name * (whitespace + P("="))
-
-resolve = safeguard + C(C(name) * (arguments^-1)) / function(raw,s,a)
+resolve = C(C(name) * arguments^-1) / function(raw,s,a)
local d = definitions[s]
if d then
if a then
@@ -89,7 +85,7 @@ subparser = Cs((resolve + P(1))^1)
local enddefine = P("#enddefine") / ""
-local beginregister = (C(name) * (arguments + Cc(false)) * C((1-enddefine)^1) * enddefine) / function(k,a,v)
+local beginregister = (C(name) * spaces^0 * (arguments + Cc(false)) * C((1-enddefine)^1) * enddefine) / function(k,a,v)
local n = 0
if a then
n = #a
@@ -107,14 +103,14 @@ local beginregister = (C(name) * (arguments + Cc(false)) * C((1-enddefine)^1) *
end
local d = definitions[k]
if not d then
- d = { a = a, [0] = false, false, false, false, false, false, false, false, false }
+ d = { [0] = false, false, false, false, false, false, false, false, false }
definitions[k] = d
end
d[n] = lpegmatch(subparser,v) or v
return ""
end
-local register = (Cs(name) * (arguments + Cc(false)) * spaces^0 * Cs(body)) / function(k,a,v)
+local register = (C(name) * spaces^0 * (arguments + Cc(false)) * spaces^0 * C(body)) / function(k,a,v)
local n = 0
if a then
n = #a
@@ -132,7 +128,7 @@ local register = (Cs(name) * (arguments + Cc(false)) * spaces^0 * Cs(body)) / fu
end
local d = definitions[k]
if not d then
- d = { a = a, [0] = false, false, false, false, false, false, false, false, false }
+ d = { [0] = false, false, false, false, false, false, false, false, false }
definitions[k] = d
end
d[n] = lpegmatch(subparser,v) or v
@@ -166,25 +162,6 @@ function macros.reset()
patterns = { }
end
-function macros.showdefinitions()
- -- no helpers loaded but not called early
- for name, list in table.sortedhash(definitions) do
- local arguments = list.a
- if arguments then
- arguments = "(" .. concat(arguments,",") .. ")"
- else
- arguments = ""
- end
- print("macro: " .. name .. arguments)
- for i=0,#list do
- local l = list[i]
- if l then
- print(" " .. l)
- end
- end
- end
-end
-
function macros.resolvestring(str)
return lpegmatch(parser,str) or str
end
@@ -193,51 +170,6 @@ function macros.resolving()
return next(patterns)
end
-local function reload(path,name,data)
- local only = match(name,".-([^/]+)%.lua")
- if only and only ~= "" then
- local name = path .. "/" .. only
- local f = io.open(name,"wb")
- f:write(data)
- f:close()
- local f = loadfile(name)
- os.remove(name)
- return f
- end
-end
-
--- local function reload(path,name,data)
--- if path and path ~= "" then
--- local only = file.nameonly(name) .. "-macro.lua"
--- local name = file.join(path,only)
--- io.savedata(name,data)
--- local l = loadfile(name)
--- os.remove(name)
--- return l
--- end
--- return load(data,name)
--- end
---
--- assumes no helpers
-
-local function reload(path,name,data)
- if path and path ~= "" then
- local only = string.match(name,".-([^/]+)%.lua")
- if only and only ~= "" then
- local name = path .. "/" .. only .. "-macro.lua"
- local f = io.open(name,"wb")
- if f then
- f:write(data)
- f:close()
- local l = loadfile(name)
- os.remove(name)
- return l
- end
- end
- end
- return load(data,name)
-end
-
local function loaded(name,trace,detail)
-- local c = io.loaddata(fullname) -- not yet available
local f = io.open(name,"rb")
@@ -262,11 +194,12 @@ local function loaded(name,trace,detail)
report_lua("no macros expanded in '%s'",name)
end
end
- -- if #name > 30 then
- -- name = sub(name,-30)
- -- end
- -- n = "--[[" .. name .. "]]\n" .. n
- return reload(lfs and lfs.currentdir(),name,n)
+ if #name > 30 then
+ n = "--[[" .. sub(name,-30) .. "]] " .. n
+ else
+ n = "--[[" .. name .. "]] " .. n
+ end
+ return load(n)
end
macros.loaded = loaded
diff --git a/Master/texmf-dist/tex/context/base/mkiv/l-number.lua b/Master/texmf-dist/tex/context/base/mkiv/l-number.lua
index 9fd2f82f785..a83e8f8f94a 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/l-number.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/l-number.lua
@@ -81,14 +81,13 @@ if bit32 then
"0", "0", "0", "0", "0", "0", "0", "0",
}
- function number.tobitstring(b,m,w)
- if not w then
- w = 32
- end
- local n = w
- for i=0,w-1 do
+ function number.tobitstring(b,m)
+ -- if really needed we can speed this one up
+ -- because small numbers need less extraction
+ local n = 32
+ for i=0,31 do
local v = bextract(b,i)
- local k = w - i
+ local k = 32 - i
if v == 1 then
n = k
t[k] = "1"
@@ -96,14 +95,12 @@ if bit32 then
t[k] = "0"
end
end
- if w then
- return concat(t,"",1,w)
- elseif m then
+ if m then
m = 33 - m * 8
if m < 1 then
m = 1
end
- return concat(t,"",1,m)
+ return concat(t,"",m)
elseif n < 8 then
return concat(t)
elseif n < 16 then
@@ -235,7 +232,3 @@ function number.decimaltobyte(d)
return b
end
end
-
-function number.idiv(i,d)
- return floor(i/d) -- i//d in 5.3
-end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/l-os.lua b/Master/texmf-dist/tex/context/base/mkiv/l-os.lua
index cf469f79d32..9b54c9840c4 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/l-os.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/l-os.lua
@@ -32,78 +32,11 @@ local concat = table.concat
local random, ceil, randomseed = math.random, math.ceil, math.randomseed
local rawget, rawset, type, getmetatable, setmetatable, tonumber, tostring = rawget, rawset, type, getmetatable, setmetatable, tonumber, tostring
--- This check needs to happen real early on. Todo: we can pick it up from the commandline
--- if we pass --binpath= (which is useful anyway)
-
-do
- local selfdir = os.selfdir
- if selfdir == "" then
- selfdir = nil
- end
- if not selfdir then
- -- We need a fallback plan so let's see what we get.
- if arg then
- -- passed by mtx-context ... saves network access
- for i=1,#arg do
- local a = arg[i]
- if find(a,"^%-%-[c:]*texmfbinpath=") then
- selfdir = gsub(a,"^.-=","")
- break
- end
- end
- end
- if not selfdir then
- selfdir = os.selfbin or "luatex"
- if find(selfdir,"[/\\]") then
- selfdir = gsub(selfdir,"[/\\][^/\\]*$","")
- elseif os.getenv then
- local path = os.getenv("PATH")
- local name = gsub(selfdir,"^.*[/\\][^/\\]","")
- local patt = "[^:]+"
- if os.type == "windows" then
- patt = "[^;]+"
- name = name .. ".exe"
- end
- local isfile
- if lfs then
- -- we're okay as lfs is assumed present
- local attributes = lfs.attributes
- isfile = function(name)
- local a = attributes(name,"mode")
- return a == "file" or a == "link" or nil
- end
- else
- -- we're not okay and much will not work as we miss lfs
- local open = io.open
- isfile = function(name)
- local f = open(name)
- if f then
- f:close()
- return true
- end
- end
- end
- for p in gmatch(path,patt) do
- -- possible speedup: there must be tex in 'p'
- if isfile(p .. "/" .. name) then
- selfdir = p
- break
- end
- end
- end
- end
- -- let's hope we're okay now
- os.selfdir = selfdir or "."
- end
-end
--- print(os.selfdir) os.exit()
-
--- The following code permits traversing the environment table, at least in luatex. Internally all
--- environment names are uppercase.
+-- The following code permits traversing the environment table, at least
+-- in luatex. Internally all environment names are uppercase.
-- The randomseed in Lua is not that random, although this depends on the operating system as well
--- as the binary (Luatex is normally okay). But to be sure we set the seed anyway. It will be better
--- in Lua 5.4 (according to the announcements.)
+-- as the binary (Luatex is normally okay). But to be sure we set the seed anyway.
math.initialseed = tonumber(string.sub(string.reverse(tostring(ceil(socket and socket.gettime()*10000 or time()))),1,6))
@@ -223,7 +156,7 @@ end
local launchers = {
windows = "start %s",
macosx = "open %s",
- unix = "xdg-open %s &> /dev/null &",
+ unix = "$BROWSER %s &> /dev/null &",
}
function os.launch(str)
@@ -290,13 +223,6 @@ local name, platform = os.name or "linux", os.getenv("MTX_PLATFORM") or ""
-- os.bits = 32 | 64
--- os.uname()
--- sysname
--- machine
--- release
--- version
--- nodename
-
if platform ~= "" then
os.platform = platform
@@ -308,12 +234,10 @@ elseif os.type == "windows" then
-- PROCESSOR_ARCHITECTURE : binary platform
-- PROCESSOR_ARCHITEW6432 : OS platform
- -- mswin-64 is now win64
-
function resolvers.platform(t,k)
- local architecture = os.getenv("PROCESSOR_ARCHITECTURE") or ""
- local platform = ""
+ local platform, architecture = "", os.getenv("PROCESSOR_ARCHITECTURE") or ""
if find(architecture,"AMD64",1,true) then
+ -- platform = "mswin-64"
platform = "win64"
else
platform = "mswin"
@@ -327,17 +251,13 @@ elseif name == "linux" then
function resolvers.platform(t,k)
-- we sometimes have HOSTTYPE set so let's check that first
- local architecture = os.getenv("HOSTTYPE") or resultof("uname -m") or ""
- local platform = os.getenv("MTX_PLATFORM") or ""
- local musl = find(os.selfdir or "","linuxmusl")
- if platform ~= "" then
- -- we're done
- elseif find(architecture,"x86_64",1,true) then
- platform = musl and "linuxmusl" or "linux-64"
+ local platform, architecture = "", os.getenv("HOSTTYPE") or resultof("uname -m") or ""
+ if find(architecture,"x86_64",1,true) then
+ platform = "linux-64"
elseif find(architecture,"ppc",1,true) then
platform = "linux-ppc"
else
- platform = musl and "linuxmusl" or "linux"
+ platform = "linux"
end
os.setenv("MTX_PLATFORM",platform)
os.platform = platform
@@ -357,13 +277,11 @@ elseif name == "macosx" then
]]--
function resolvers.platform(t,k)
- -- local platform = ""
- -- local architecture = os.getenv("HOSTTYPE") or ""
+ -- local platform, architecture = "", os.getenv("HOSTTYPE") or ""
-- if architecture == "" then
-- architecture = resultof("echo $HOSTTYPE") or ""
-- end
- local architecture = resultof("echo $HOSTTYPE") or ""
- local platform = ""
+ local platform, architecture = "", resultof("echo $HOSTTYPE") or ""
if architecture == "" then
-- print("\nI have no clue what kind of OSX you're running so let's assume an 32 bit intel.\n")
platform = "osx-intel"
@@ -382,8 +300,7 @@ elseif name == "macosx" then
elseif name == "sunos" then
function resolvers.platform(t,k)
- local architecture = resultof("uname -m") or ""
- local platform = ""
+ local platform, architecture = "", resultof("uname -m") or ""
if find(architecture,"sparc",1,true) then
platform = "solaris-sparc"
else -- if architecture == 'i86pc'
@@ -397,8 +314,7 @@ elseif name == "sunos" then
elseif name == "freebsd" then
function resolvers.platform(t,k)
- local architecture = resultof("uname -m") or ""
- local platform = ""
+ local platform, architecture = "", resultof("uname -m") or ""
if find(architecture,"amd64",1,true) then
platform = "freebsd-amd64"
else
@@ -413,8 +329,7 @@ elseif name == "kfreebsd" then
function resolvers.platform(t,k)
-- we sometimes have HOSTTYPE set so let's check that first
- local architecture = os.getenv("HOSTTYPE") or resultof("uname -m") or ""
- local platform = ""
+ local platform, architecture = "", os.getenv("HOSTTYPE") or resultof("uname -m") or ""
if find(architecture,"x86_64",1,true) then
platform = "kfreebsd-amd64"
else
@@ -649,20 +564,3 @@ function os.validdate(year,month,day)
end
return year, month, day
end
-
-local osexit = os.exit
-local exitcode = nil
-
-function os.setexitcode(code)
- exitcode = code
-end
-
-function os.exit(c)
- if exitcode ~= nil then
- return osexit(exitcode)
- end
- if c ~= nil then
- return osexit(c)
- end
- return osexit()
-end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/l-package.lua b/Master/texmf-dist/tex/context/base/mkiv/l-package.lua
index 0dd71e5eca8..4faee76bfbf 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/l-package.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/l-package.lua
@@ -394,7 +394,3 @@ end
-- front ..
table.insert(searchers,1,helpers.loaded)
-
-if context then
- package.path = ""
-end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/l-sandbox.lua b/Master/texmf-dist/tex/context/base/mkiv/l-sandbox.lua
index c2e1753d3ab..2ecec0023fd 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/l-sandbox.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/l-sandbox.lua
@@ -190,9 +190,6 @@ end
function sandbox.enable()
if not sandboxed then
- debug = {
- traceback = debug.traceback,
- }
for i=1,#initializers do
initializers[i].action()
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/l-sha.lua b/Master/texmf-dist/tex/context/base/mkiv/l-sha.lua
deleted file mode 100644
index 8481f7f45e8..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/l-sha.lua
+++ /dev/null
@@ -1,27 +0,0 @@
-if not modules then modules = { } end modules ['l-sha'] = {
- version = 1.001,
- comment = "companion to luat-lib.mkiv",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
-if sha2 then
-
- local lpegmatch = lpeg.match
- local lpegpatterns = lpeg.patterns
- local bytestohex = lpegpatterns.bytestohex
- local bytestoHEX = lpegpatterns.bytestoHEX
-
- local digest256 = sha2.digest256
- local digest384 = sha2.digest384
- local digest512 = sha2.digest512
-
- sha2.hash256 = function(str) return lpegmatch(bytestohex,digest256(str)) end
- sha2.hash384 = function(str) return lpegmatch(bytestohex,digest384(str)) end
- sha2.hash512 = function(str) return lpegmatch(bytestohex,digest512(str)) end
- sha2.HASH256 = function(str) return lpegmatch(bytestoHEX,digest256(str)) end
- sha2.HASH384 = function(str) return lpegmatch(bytestoHEX,digest384(str)) end
- sha2.HASH512 = function(str) return lpegmatch(bytestoHEX,digest512(str)) end
-
-end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/l-table.lua b/Master/texmf-dist/tex/context/base/mkiv/l-table.lua
index 57130a50d82..5cd65dd679f 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/l-table.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/l-table.lua
@@ -8,9 +8,10 @@ if not modules then modules = { } end modules ['l-table'] = {
local type, next, tostring, tonumber, select = type, next, tostring, tonumber, select
local table, string = table, string
-local concat, sort = table.concat, table.sort
+local concat, sort, insert, remove = table.concat, table.sort, table.insert, table.remove
local format, lower, dump = string.format, string.lower, string.dump
local getmetatable, setmetatable = getmetatable, setmetatable
+local getinfo = debug.getinfo
local lpegmatch, patterns = lpeg.match, lpeg.patterns
local floor = math.floor
@@ -26,8 +27,7 @@ function table.getn(t)
end
function table.strip(tab)
- local lst = { }
- local l = 0
+ local lst, l = { }, 0
for i=1,#tab do
local s = lpegmatch(stripper,tab[i]) or ""
if s == "" then
@@ -42,8 +42,7 @@ end
function table.keys(t)
if t then
- local keys = { }
- local k = 0
+ local keys, k = { }, 0
for key in next, t do
k = k + 1
keys[k] = key
@@ -147,9 +146,7 @@ end
local function sortedkeys(tab)
if tab then
- local srt = { }
- local category = 0 -- 0=unknown 1=string, 2=number 3=mixed
- local s = 0
+ local srt, category, s = { }, 0, 0 -- 0=unknown 1=string, 2=number 3=mixed
for key in next, tab do
s = s + 1
srt[s] = key
@@ -189,8 +186,7 @@ end
local function sortedhashonly(tab)
if tab then
- local srt = { }
- local s = 0
+ local srt, s = { }, 0
for key in next, tab do
if type(key) == "string" then
s = s + 1
@@ -208,8 +204,7 @@ end
local function sortedindexonly(tab)
if tab then
- local srt = { }
- local s = 0
+ local srt, s = { }, 0
for key in next, tab do
if type(key) == "number" then
s = s + 1
@@ -227,8 +222,7 @@ end
local function sortedhashkeys(tab,cmp) -- fast one
if tab then
- local srt = { }
- local s = 0
+ local srt, s = { }, 0
for key in next, tab do
if key then
s= s + 1
@@ -324,9 +318,7 @@ end
-- end
function table.merge(t, ...) -- first one is target
- if not t then
- t = { }
- end
+ t = t or { }
for i=1,select("#",...) do
for k, v in next, (select(i,...)) do
t[k] = v
@@ -392,8 +384,7 @@ end
-- end
function table.imerged(...)
- local tmp = { }
- local ntmp = 0
+ local tmp, ntmp = { }, 0
for i=1,select("#",...) do
local nst = select(i,...)
for j=1,#nst do
@@ -430,9 +421,7 @@ end
-- todo : copy without metatable
local function copy(t,tables) -- taken from lua wiki, slightly adapted
- if not tables then
- tables = { }
- end
+ tables = tables or { }
local tcopy = { }
if not tables[t] then
tables[t] = tcopy
@@ -483,8 +472,7 @@ function table.tohash(t,value)
end
function table.fromhash(t)
- local hsh = { }
- local h = 0
+ local hsh, h = { }, 0
for k, v in next, t do
if v then
h = h + 1
@@ -682,8 +670,7 @@ local function do_serialize(root,name,depth,level,indexed)
end
-- we could check for k (index) being number (cardinal)
if root and next(root) ~= nil then
- local first = nil
- local last = 0
+ local first, last = nil, 0
if compact then
last = #root
for k=1,last do
@@ -843,25 +830,22 @@ local function do_serialize(root,name,depth,level,indexed)
end
elseif tv == "function" then
if functions then
- local getinfo = debug and debug.getinfo
- if getinfo then
- local f = getinfo(v).what == "C" and dump(dummy) or dump(v) -- maybe strip
- -- local f = getinfo(v).what == "C" and dump(function(...) return v(...) end) or dump(v) -- maybe strip
- if tk == "number" then
- if hexify then
- handle(format("%s [0x%X]=load(%q),",depth,k,f))
- else
- handle(format("%s [%s]=load(%q),",depth,k,f))
- end
- elseif tk == "boolean" then
- handle(format("%s [%s]=load(%q),",depth,k and "true" or "false",f))
- elseif tk ~= "string" then
- -- ignore
- elseif noquotes and not reserved[k] and lpegmatch(propername,k) then
- handle(format("%s %s=load(%q),",depth,k,f))
+ local f = getinfo(v).what == "C" and dump(dummy) or dump(v) -- maybe strip
+ -- local f = getinfo(v).what == "C" and dump(function(...) return v(...) end) or dump(v) -- maybe strip
+ if tk == "number" then
+ if hexify then
+ handle(format("%s [0x%X]=load(%q),",depth,k,f))
else
- handle(format("%s [%q]=load(%q),",depth,k,f))
+ handle(format("%s [%s]=load(%q),",depth,k,f))
end
+ elseif tk == "boolean" then
+ handle(format("%s [%s]=load(%q),",depth,k and "true" or "false",f))
+ elseif tk ~= "string" then
+ -- ignore
+ elseif noquotes and not reserved[k] and lpegmatch(propername,k) then
+ handle(format("%s %s=load(%q),",depth,k,f))
+ else
+ handle(format("%s [%q]=load(%q),",depth,k,f))
end
end
else
@@ -974,8 +958,7 @@ end
-- number : [number] = { }
function table.serialize(root,name,specification)
- local t = { }
- local n = 0
+ local t, n = { }, 0
local function flush(s)
n = n + 1
t[n] = s
@@ -999,15 +982,13 @@ function table.tofile(filename,root,name,specification)
local f = io.open(filename,'w')
if f then
if maxtab > 1 then
- local t = { }
- local n = 0
+ local t, n = { }, 0
local function flush(s)
n = n + 1
t[n] = s
if n > maxtab then
f:write(concat(t,"\n"),"\n") -- hm, write(sometable) should be nice
- t = { } -- we could recycle t if needed
- n = 0
+ t, n = { }, 0 -- we could recycle t if needed
end
end
serialize(flush,root,name,specification)
@@ -1025,12 +1006,12 @@ end
local function flattened(t,f,depth) -- also handles { nil, 1, nil, 2 }
if f == nil then
- f = { }
+ f = { }
depth = 0xFFFF
elseif tonumber(f) then
-- assume that only two arguments are given
depth = f
- f = { }
+ f = { }
elseif not depth then
depth = 0xFFFF
end
@@ -1118,12 +1099,8 @@ local function are_equal(a,b,n,m) -- indexed
if a == b then
return true
elseif a and b and #a == #b then
- if not n then
- n = 1
- end
- if not m then
- m = #a
- end
+ n = n or 1
+ m = m or #a
for i=n,m do
local ai, bi = a[i], b[i]
if ai==bi then
@@ -1236,8 +1213,7 @@ end
function table.reversed(t)
if t then
- local tt = { }
- local tn = #t
+ local tt, tn = { }, #t
if tn > 0 then
local ttn = 0
for i=tn,1,-1 do
@@ -1252,32 +1228,24 @@ end
function table.reverse(t) -- check with 5.3 ?
if t then
local n = #t
- local m = n + 1
for i=1,floor(n/2) do -- maybe just n//2
- local j = m - i
+ local j = n - i + 1
t[i], t[j] = t[j], t[i]
end
return t
end
end
-local function sequenced(t,sep,simple)
+function table.sequenced(t,sep,simple) -- hash only
if not t then
return ""
- elseif type(t) == "string" then
- return t -- handy fallback
end
local n = #t
local s = { }
if n > 0 then
-- indexed
for i=1,n do
- local v = t[i]
- if type(v) == "table" then
- s[i] = "{" .. sequenced(v,sep,simple) .. "}"
- else
- s[i] = tostring(t[i])
- end
+ s[i] = tostring(t[i])
end
else
-- hashed
@@ -1289,27 +1257,17 @@ local function sequenced(t,sep,simple)
s[n] = k
elseif v and v~= "" then
n = n + 1
- if type(v) == "table" then
- s[n] = k .. "={" .. sequenced(v,sep,simple) .. "}"
- else
- s[n] = k .. "=" .. tostring(v)
- end
+ s[n] = k .. "=" .. tostring(v)
end
else
n = n + 1
- if type(v) == "table" then
- s[n] = k .. "={" .. sequenced(v,sep,simple) .. "}"
- else
- s[n] = k .. "=" .. tostring(v)
- end
+ s[n] = k .. "=" .. tostring(v)
end
end
end
return concat(s,sep or " | ")
end
-table.sequenced = sequenced
-
function table.print(t,...)
if type(t) ~= "table" then
print(tostring(t))
@@ -1354,8 +1312,8 @@ end
function table.unique(old)
local hash = { }
- local new = { }
- local n = 0
+ local new = { }
+ local n = 0
for i=1,#old do
local oi = old[i]
if not hash[oi] then
@@ -1376,14 +1334,12 @@ end
function table.values(t,s) -- optional sort flag
if t then
- local values = { }
- local keys = { }
- local v = 0
+ local values, keys, v = { }, { }, 0
for key, value in next, t do
if not keys[value] then
v = v + 1
values[v] = value
- keys[k] = key
+ keys[k] = key
end
end
if s then
diff --git a/Master/texmf-dist/tex/context/base/mkiv/l-unicode.lua b/Master/texmf-dist/tex/context/base/mkiv/l-unicode.lua
index 13e0a3fa1c1..b5f52d3127c 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/l-unicode.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/l-unicode.lua
@@ -21,33 +21,13 @@ if not modules then modules = { } end modules ['l-unicode'] = {
-- todo: utf.sub replacement (used in syst-aux)
-- we put these in the utf namespace:
--- used : byte char len lower sub upper
--- not used : dump find format gmatch gfind gsub match rep reverse
+-- used : byte char gmatch len lower sub upper
+-- not used : dump find format gfind gsub match rep reverse
--- utf = utf or (unicode and unicode.utf8) or { }
-
--- not supported:
---
--- dump, find, format, gfind, gmatch, gsub, lower, match, rep, reverse, upper
-
-utf = utf or { }
-unicode = nil
-
-if not string.utfcharacters then
-
- -- New: this gmatch hack is taken from the Lua 5.2 book. It's about two times slower
- -- than the built-in string.utfcharacters.
-
- local gmatch = string.gmatch
-
- function string.characters(str)
- return gmatch(str,".[\128-\191]*")
- end
+utf = utf or (unicode and unicode.utf8) or { }
-
-end
-
-utf.characters = string.utfcharacters
+utf.characters = utf.characters or string.utfcharacters
+utf.values = utf.values or string.utfvalues
-- string.utfvalues
-- string.utfcharacters
@@ -73,19 +53,23 @@ local bytepairs = string.bytepairs
local finder = lpeg.finder
local replacer = lpeg.replacer
+local utfvalues = utf.values
+local utfgmatch = utf.gmatch -- not always present
+
local p_utftype = patterns.utftype
local p_utfstricttype = patterns.utfstricttype
local p_utfoffset = patterns.utfoffset
-local p_utf8character = patterns.utf8character
-local p_utf8char = patterns.utf8char
+local p_utf8char = patterns.utf8character
local p_utf8byte = patterns.utf8byte
local p_utfbom = patterns.utfbom
local p_newline = patterns.newline
local p_whitespace = patterns.whitespace
--- if not unicode then
--- unicode = { utf = utf } -- for a while
--- end
+if not unicode then
+
+ unicode = { utf = utf } -- for a while
+
+end
if not utf.char then
@@ -180,8 +164,10 @@ if not utf.byte then
if not utf.byte then
+ local utf8byte = patterns.utf8byte
+
function utf.byte(c)
- return lpegmatch(p_utf8byte,c)
+ return lpegmatch(utf8byte,c)
end
end
@@ -295,7 +281,7 @@ if not utf.len then
-- -- alternative 1: 0.77
--
- -- local utfcharcounter = utfbom^-1 * Cs((p_utf8character/'!')^0)
+ -- local utfcharcounter = utfbom^-1 * Cs((p_utf8char/'!')^0)
--
-- function utf.len(str)
-- return #lpegmatch(utfcharcounter,str or "")
@@ -305,7 +291,7 @@ if not utf.len then
--
-- local n = 0
--
- -- local utfcharcounter = utfbom^-1 * (p_utf8character/function() n = n + 1 end)^0 -- slow
+ -- local utfcharcounter = utfbom^-1 * (p_utf8char/function() n = n + 1 end)^0 -- slow
--
-- function utf.length(str)
-- n = 0
@@ -382,7 +368,7 @@ if not utf.sub then
-- inefficient as lpeg just copies ^n
-- local function sub(str,start,stop)
- -- local pattern = p_utf8character^-(start-1) * C(p_utf8character^-(stop-start+1))
+ -- local pattern = p_utf8char^-(start-1) * C(p_utf8char^-(stop-start+1))
-- inspect(pattern)
-- return lpegmatch(pattern,str) or ""
-- end
@@ -405,7 +391,7 @@ if not utf.sub then
-- end
-- end
--
- -- local pattern = Cmt(p_utf8character,slide)^0
+ -- local pattern = Cmt(p_utf8char,slide)^0
--
-- function utf.sub(str,start,stop) -- todo: from the end
-- if not start then
@@ -460,11 +446,11 @@ if not utf.sub then
end
end
- local pattern_zero = Cmt(p_utf8character,slide_zero)^0
- local pattern_one = Cmt(p_utf8character,slide_one )^0
- local pattern_two = Cmt(p_utf8character,slide_two )^0
+ local pattern_zero = Cmt(p_utf8char,slide_zero)^0
+ local pattern_one = Cmt(p_utf8char,slide_one )^0
+ local pattern_two = Cmt(p_utf8char,slide_two )^0
- local pattern_first = C(p_utf8character)
+ local pattern_first = C(patterns.utf8character)
function utf.sub(str,start,stop)
if not start then
@@ -560,7 +546,7 @@ end
-- a replacement for simple gsubs:
-- function utf.remapper(mapping)
--- local pattern = Cs((p_utf8character/mapping)^0)
+-- local pattern = Cs((p_utf8char/mapping)^0)
-- return function(str)
-- if not str or str == "" then
-- return ""
@@ -582,16 +568,16 @@ function utf.remapper(mapping,option,action) -- static also returns a pattern
return ""
else
if not pattern then
- pattern = Cs((tabletopattern(mapping)/action + p_utf8character)^0)
+ pattern = Cs((tabletopattern(mapping)/action + p_utf8char)^0)
end
return lpegmatch(pattern,str)
end
end
elseif option == "pattern" then
- return Cs((tabletopattern(mapping)/action + p_utf8character)^0)
+ return Cs((tabletopattern(mapping)/action + p_utf8char)^0)
-- elseif option == "static" then
else
- local pattern = Cs((tabletopattern(mapping)/action + p_utf8character)^0)
+ local pattern = Cs((tabletopattern(mapping)/action + p_utf8char)^0)
return function(str)
if not str or str == "" then
return ""
@@ -602,9 +588,9 @@ function utf.remapper(mapping,option,action) -- static also returns a pattern
end
elseif variant == "function" then
if option == "pattern" then
- return Cs((p_utf8character/mapping + p_utf8character)^0)
+ return Cs((p_utf8char/mapping + p_utf8char)^0)
else
- local pattern = Cs((p_utf8character/mapping + p_utf8character)^0)
+ local pattern = Cs((p_utf8char/mapping + p_utf8char)^0)
return function(str)
if not str or str == "" then
return ""
@@ -651,9 +637,9 @@ end
-- inspect(utf.split("a b c d",true))
local utflinesplitter = p_utfbom^-1 * lpeg.tsplitat(p_newline)
-local utfcharsplitter_ows = p_utfbom^-1 * Ct(C(p_utf8character)^0)
-local utfcharsplitter_iws = p_utfbom^-1 * Ct((p_whitespace^1 + C(p_utf8character))^0)
-local utfcharsplitter_raw = Ct(C(p_utf8character)^0)
+local utfcharsplitter_ows = p_utfbom^-1 * Ct(C(p_utf8char)^0)
+local utfcharsplitter_iws = p_utfbom^-1 * Ct((p_whitespace^1 + C(p_utf8char))^0)
+local utfcharsplitter_raw = Ct(C(p_utf8char)^0)
patterns.utflinesplitter = utflinesplitter
@@ -789,7 +775,7 @@ local utf_32_le_linesplitter = utf_32_le_getbom * lpeg.tsplitat(patterns.utf_32_
-- if right then
-- local now = 256*left + right
-- if more > 0 then
--- now = (more-0xD800)*0x400 + (now-0xDC00) + 0x10000
+-- now = (more-0xD800)*0x400 + (now-0xDC00) + 0x10000 -- the 0x10000 smells wrong
-- more = 0
-- r = r + 1
-- result[r] = utfchar(now)
@@ -818,7 +804,7 @@ local utf_32_le_linesplitter = utf_32_le_getbom * lpeg.tsplitat(patterns.utf_32_
-- if right then
-- local now = 256*right + left
-- if more > 0 then
--- now = (more-0xD800)*0x400 + (now-0xDC00) + 0x10000
+-- now = (more-0xD800)*0x400 + (now-0xDC00) + 0x10000 -- the 0x10000 smells wrong
-- more = 0
-- r = r + 1
-- result[r] = utfchar(now)
@@ -848,7 +834,7 @@ local utf_32_le_linesplitter = utf_32_le_getbom * lpeg.tsplitat(patterns.utf_32_
-- if right then
-- local now = 256*right + left
-- if more > 0 then
--- now = (more-0xD800)*0x400 + (now-0xDC00) + 0x10000
+-- now = (more-0xD800)*0x400 + (now-0xDC00) + 0x10000 -- the 0x10000 smells wrong
-- more = 0
-- r = r + 1
-- result[r] = utfchar(now)
@@ -925,7 +911,7 @@ local more = 0
local p_utf16_to_utf8_be = C(1) * C(1) /function(left,right)
local now = 256*byte(left) + byte(right)
if more > 0 then
- now = (more-0xD800)*0x400 + (now-0xDC00) + 0x10000
+ now = (more-0xD800)*0x400 + (now-0xDC00) + 0x10000 -- the 0x10000 smells wrong
more = 0
return utfchar(now)
elseif now >= 0xD800 and now <= 0xDBFF then
@@ -939,7 +925,7 @@ end
local p_utf16_to_utf8_le = C(1) * C(1) /function(right,left)
local now = 256*byte(left) + byte(right)
if more > 0 then
- now = (more-0xD800)*0x400 + (now-0xDC00) + 0x10000
+ now = (more-0xD800)*0x400 + (now-0xDC00) + 0x10000 -- the 0x10000 smells wrong
more = 0
return utfchar(now)
elseif now >= 0xD800 and now <= 0xDBFF then
@@ -1133,6 +1119,15 @@ function utf.utf8_to_utf16(str,littleendian,nobom)
end
end
+-- function utf.tocodes(str,separator) -- can be sped up with an lpeg
+-- local t, n = { }, 0
+-- for u in utfvalues(str) do
+-- n = n + 1
+-- t[n] = format("0x%04X",u)
+-- end
+-- return concat(t,separator or " ")
+-- end
+
local pattern = Cs (
(p_utf8byte / function(unicode ) return format( "0x%04X", unicode) end) *
(p_utf8byte * Carg(1) / function(unicode,separator) return format("%s0x%04X",separator,unicode) end)^0
@@ -1168,10 +1163,25 @@ end
--
-do
+local p_nany = p_utf8char / ""
+
+if utfgmatch then
+
+ function utf.count(str,what)
+ if type(what) == "string" then
+ local n = 0
+ for _ in utfgmatch(str,what) do
+ n = n + 1
+ end
+ return n
+ else -- 4 times slower but still faster than / function
+ return #lpegmatch(Cs((P(what)/" " + p_nany)^0),str)
+ end
+ end
+
+else
- local p_nany = p_utf8character / ""
- local cache = { }
+ local cache = { }
function utf.count(str,what)
if type(what) == "string" then
@@ -1188,7 +1198,23 @@ do
end
-if not string.utfvalues then
+-- maybe also register as string.utf*
+
+
+if not utf.characters then
+
+ -- New: this gmatch hack is taken from the Lua 5.2 book. It's about two times slower
+ -- than the built-in string.utfcharacters.
+
+ function utf.characters(str)
+ return gmatch(str,".[\128-\191]*")
+ end
+
+ string.utfcharacters = utf.characters
+
+end
+
+if not utf.values then
-- So, a logical next step is to check for the values variant. It over five times
-- slower than the built-in string.utfvalues. I optimized it a bit for n=0,1.
@@ -1200,7 +1226,7 @@ if not string.utfvalues then
-- we share this one
end
- -- function string.utfvalues(str)
+ -- function utf.values(str)
-- local n = #str
-- if n == 0 then
-- return wrap(dummy)
@@ -1215,7 +1241,7 @@ if not string.utfvalues then
--
-- faster:
- function string.utfvalues(str)
+ function utf.values(str)
local n = #str
if n == 0 then
return dummy
@@ -1238,11 +1264,11 @@ if not string.utfvalues then
-- slower:
--
- -- local pattern = C(p_utf8character) * Cp()
- -- ----- pattern = p_utf8character/utfbyte * Cp()
- -- ----- pattern = p_utf8byte * Cp()
+ -- local pattern = C(patterns.utf8character) * Cp()
+ -- ----- pattern = patterns.utf8character/utfbyte * Cp()
+ -- ----- pattern = patterns.utf8byte * Cp()
--
- -- function string.utfvalues(str) -- one of the cases where a find is faster than an lpeg
+ -- function utf.values(str) -- one of the cases where a find is faster than an lpeg
-- local n = #str
-- if n == 0 then
-- return dummy
@@ -1261,9 +1287,9 @@ if not string.utfvalues then
-- end
-- end
-end
+ string.utfvalues = utf.values
-utf.values = string.utfvalues
+end
function utf.chrlen(u) -- u is number
return
@@ -1284,7 +1310,7 @@ if bit32 then
local extract = bit32.extract
local char = string.char
- function utf.toutf32string(n)
+ function unicode.toutf32string(n)
if n <= 0xFF then
return
char(n) ..
@@ -1333,73 +1359,3 @@ function string.utfpadd(s,n)
end
return s
end
-
--- goodies
-
-do
-
- local utfcharacters = utf.characters or string.utfcharacters
- local utfchar = utf.char or string.utfcharacter
-
- lpeg.UP = P
-
- if utfcharacters then
-
- function lpeg.US(str)
- local p = P(false)
- for uc in utfcharacters(str) do
- p = p + P(uc)
- end
- return p
- end
-
- else
-
- function lpeg.US(str)
- local p = P(false)
- local f = function(uc)
- p = p + P(uc)
- end
- lpegmatch((p_utf8char/f)^0,str)
- return p
- end
-
- end
-
- local range = p_utf8byte * p_utf8byte + Cc(false) -- utf8byte is already a capture
-
- function lpeg.UR(str,more)
- local first, last
- if type(str) == "number" then
- first = str
- last = more or first
- else
- first, last = lpegmatch(range,str)
- if not last then
- return P(str)
- end
- end
- if first == last then
- return P(str)
- end
- if not utfchar then
- utfchar = utf.char -- maybe delayed
- end
- if utfchar and (last - first < 8) then -- a somewhat arbitrary criterium
- local p = P(false)
- for i=first,last do
- p = p + P(utfchar(i))
- end
- return p -- nil when invalid range
- else
- local f = function(b)
- return b >= first and b <= last
- end
- -- tricky, these nested captures
- return p_utf8byte / f -- nil when invalid range
- end
- end
-
- -- print(lpeg.match(lpeg.Cs((C(lpeg.UR("ÎąÏ‰"))/{ ["χ"] = "OEPS" })^0),"ÎąÏ‰Ï‡ÎąÏ‰"))
-
-end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lang-def.lua b/Master/texmf-dist/tex/context/base/mkiv/lang-def.lua
index 3f04bed0d82..c0c3981f7df 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lang-def.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lang-def.lua
@@ -225,15 +225,6 @@ local specifications = allocate {
["variant"] = "fi",
},
{
- ["description"] = "Estonian",
- ["script"] = "latn",
- ["bibliographical"] = "est",
- ["terminological"] = "est",
- ["context"] = "et",
- ["opentype"] = "est",
- ["variant"] = "et",
- },
- {
["description"] = "French",
["script"] = "latn",
["bibliographical"] = "fre",
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lang-def.mkiv b/Master/texmf-dist/tex/context/base/mkiv/lang-def.mkiv
index 7f3e85f0812..28245e591fe 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lang-def.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/lang-def.mkiv
@@ -22,33 +22,33 @@
% Frisian, Plattdeutsch
\installlanguage
- [\s!en]
- [\c!spacing=\v!broad,
+ [\s!nl]
+ [\c!spacing=\v!packed,
\c!leftsentence=\emdash,
\c!rightsentence=\emdash,
\c!leftsubsentence=\emdash,
\c!rightsubsentence=\emdash,
- \c!leftquote=\upperleftsinglesixquote,
+ \c!leftquote=\lowerleftsingleninequote,
\c!rightquote=\upperrightsingleninequote,
- \c!leftquotation=\upperleftdoublesixquote,
+ \c!leftquotation=\lowerleftdoubleninequote,
\c!rightquotation=\upperrightdoubleninequote,
- \c!date={\v!month,\space,\v!day,{,\space},\v!year},
- \s!patterns=\s!us,
- \s!lefthyphenmin=2,
- \s!righthyphenmin=3]
+ \c!date={\v!day,\space,\v!month,\space,\v!year}]
\installlanguage
- [\s!nl]
- [\c!spacing=\v!packed,
+ [\s!en]
+ [\c!spacing=\v!broad,
\c!leftsentence=\emdash,
\c!rightsentence=\emdash,
\c!leftsubsentence=\emdash,
\c!rightsubsentence=\emdash,
- \c!leftquote=\lowerleftsingleninequote,
+ \c!leftquote=\upperleftsinglesixquote,
\c!rightquote=\upperrightsingleninequote,
- \c!leftquotation=\lowerleftdoubleninequote,
+ \c!leftquotation=\upperleftdoublesixquote,
\c!rightquotation=\upperrightdoubleninequote,
- \c!date={\v!day,\space,\v!month,\space,\v!year}]
+ \c!date={\v!month,\space,\v!day,{,\space},\v!year},
+ \s!patterns=\s!us,
+ \s!lefthyphenmin=2,
+ \s!righthyphenmin=3]
\installlanguage
[\s!de]
@@ -328,22 +328,6 @@
\c!date={\v!year,\space,\v!month,\space,\v!day}]
\installlanguage
- [\s!et]
- [\c!default=\s!en,
- \c!spacing=\v!packed,
- \c!leftsentence=\emdash,
- \c!rightsentence=\emdash,
- \c!leftsubsentence=\emdash,
- \c!rightsubsentence=\emdash,
- \c!leftquote=\leftguillemot,
- \c!rightquote=\rightguillemot,
- \c!leftquotation=\lowerrightdoubleninequote,
- \c!rightquotation=\upperrightdoublesixquote,
- \c!time={h,{.},m},
- \c!date={\v!day,.,\space,\v!month,\space,\v!year},
- \s!patterns=\s!et]
-
-\installlanguage
[\s!hu]
[\c!spacing=\v!packed,
\c!leftsentence=\emdash,
@@ -357,7 +341,6 @@
\c!date={\v!year,.,\space,\v!month,\space,\v!day,.}]
\installlanguage [\s!finnish] [\s!fi]
-\installlanguage [\s!estonian] [\s!et]
\installlanguage [\s!hungarian] [\s!hu]
% Altaic Languages: Uigur, Uzbek, Azeri/Azerbaijani, Chuvash,
@@ -597,7 +580,6 @@
\c!rightquote=\rightguillemot,
\c!leftquotation=\leftguillemot,
\c!rightquotation=\rightguillemot,
- \c!time={h,{\Uchar104 },m},% we need to cheat in order to get the h
\c!date={\v!day:mnem,\v!space,\v!month,\v!space,\v!year}]
\installlanguage
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lang-dis.lua b/Master/texmf-dist/tex/context/base/mkiv/lang-dis.lua
index 5603d119342..65a53a702fb 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lang-dis.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lang-dis.lua
@@ -17,10 +17,14 @@ local nuts = nodes.nuts
local enableaction = tasks.enableaction
local setaction = tasks.setaction
+local tonode = nuts.tonode
+local tonut = nuts.tonut
+
local setfield = nuts.setfield
local getnext = nuts.getnext
local getprev = nuts.getprev
local getid = nuts.getid
+local getfont = nuts.getfont
local getattr = nuts.getattr
local getsubtype = nuts.getsubtype
local setsubtype = nuts.setsubtype
@@ -36,11 +40,10 @@ local isglyph = nuts.isglyph
local copy_node = nuts.copy
local remove_node = nuts.remove
+local traverse_id = nuts.traverse_id
local flush_list = nuts.flush_list
local flush_node = nuts.flush_node
-local nextdisc = nuts.traversers.disc
-
local new_disc = nuts.pool.disc
local nodecodes = nodes.nodecodes
@@ -49,7 +52,10 @@ local disccodes = nodes.disccodes
local disc_code = nodecodes.disc
local glyph_code = nodecodes.glyph
-local explicitdisc_code = disccodes.explicit
+local discretionary_code = disccodes.discretionary
+local explicit_code = disccodes.explicit
+local automatic_code = disccodes.automatic
+local regular_code = disccodes.regular
local a_visualize = attributes.private("visualizediscretionary")
local setattribute = tex.setattribute
@@ -63,7 +69,7 @@ local check_regular = true
local setlistcolor = nodes.tracers.colors.setlist
function languages.visualizediscretionaries(head)
- for d in nextdisc, head do
+ for d in traverse_id(disc_code,tonut(head)) do
if getattr(d,a_visualize) then
local pre, post, replace = getdisc(d)
if pre then
@@ -77,7 +83,6 @@ function languages.visualizediscretionaries(head)
end
end
end
- return head
end
local enabled = false
@@ -124,9 +129,13 @@ end
local wiped = 0
-local flatten_discretionaries = nuts.flatten_discretionaries -- todo in nodes
+local flatten_discretionaries = node.flatten_discretionaries -- todo in nodes
--- if flatten_discretionaries then
+if flatten_discretionaries then
+
+ -- This is not that much faster than the lua variant simply because there is
+ -- seldom a replace list but it fits in the picture. See luatex-todo.w for the
+ -- code.
function languages.flatten(head)
local h, n = flatten_discretionaries(head)
@@ -134,50 +143,51 @@ local flatten_discretionaries = nuts.flatten_discretionaries -- todo in nodes
return h, n > 0
end
--- else
---
--- local function wipe(head,delayed)
--- local p, n = getboth(delayed)
--- local _, _, h, _, _, t = getdisc(delayed,true)
--- if p or n then
--- if h then
--- setlink(p,h)
--- setlink(t,n)
--- setfield(delayed,"replace")
--- else
--- setlink(p,n)
--- end
--- end
--- if head == delayed then
--- head = h
--- end
--- wiped = wiped + 1
--- flush_node(delayed)
--- return head
--- end
---
--- function languages.flatten(head)
--- local delayed = nil
--- for d in nextdisc, head do
--- if delayed then
--- head = wipe(head,delayed)
--- end
--- delayed = d
--- end
--- if delayed then
--- return wipe(head,delayed), true
--- else
--- return head, false
--- end
--- end
---
--- end
+else
+
+ local function wipe(head,delayed)
+ local p, n = getboth(delayed)
+ local _, _, h, _, _, t = getdisc(delayed,true)
+ if p or n then
+ if h then
+ setlink(p,h)
+ setlink(t,n)
+ setfield(delayed,"replace")
+ else
+ setlink(p,n)
+ end
+ end
+ if head == delayed then
+ head = h
+ end
+ wiped = wiped + 1
+ flush_node(delayed)
+ return head
+ end
+
+ function languages.flatten(head)
+ local nuthead = tonut(head)
+ local delayed = nil
+ for d in traverse_id(disc_code,nuthead) do
+ if delayed then
+ nuthead = wipe(nuthead,delayed)
+ end
+ delayed = d
+ end
+ if delayed then
+ return tonode(wipe(nuthead,delayed)), true
+ else
+ return head, false
+ end
+ end
+
+end
function languages.nofflattened()
return wiped -- handy for testing
end
--- experiment: for now not in not in export mode!
+-- experiment
local flatten = languages.flatten
local getlist = nodes.getlist
@@ -188,11 +198,10 @@ function nodes.handlers.flatten(head,where)
if head and (where == "box" or where == "adjusted_hbox") then
return flatten(head)
end
- return head
+ return true
end
directives.register("hyphenator.flatten",function(v)
- -- use with care
setaction("processors","nodes.handlers.flatten",v)
setaction("contributers","nodes.handlers.flattenline",v)
end)
@@ -218,6 +227,6 @@ function languages.explicithyphen(template)
end
end
end
- setdisc(disc,pre,post,nil,explicitdisc_code,tex.exhyphenpenalty)
+ setdisc(disc,pre,post,nil,explicit_code,tex.exhyphenpenalty)
return disc
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lang-exp.lua b/Master/texmf-dist/tex/context/base/mkiv/lang-exp.lua
index 254961ee6f9..70fad48b0fe 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lang-exp.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lang-exp.lua
@@ -31,8 +31,6 @@ local expanders -- this will go away
if LUATEXVERSION < 1.005 then -- not loaded any more
- -- some shortcuts go here
-
expanders = {
[discretionary_code] = function(d,template)
-- \discretionary
@@ -174,23 +172,23 @@ languages.expanders = expanders
----- expand_explicit = expanders and expanders[explicit_code]
----- expand_automatic = expanders and expanders[automatic_code]
--- if LUATEXVERSION < 1.005 then -- not loaded any more
---
--- expanded = function(head)
--- local done = hyphenate(head)
--- if done then
--- for d in traverse_id(disc_code,head) do
--- local s = getsubtype(d)
--- if s ~= discretionary_code then
--- expanders[s](d,template)
--- done = true
--- end
--- end
--- end
--- return head, done
--- end
---
--- end
+if LUATEXVERSION < 1.005 then -- not loaded any more
+
+ expanded = function(head)
+ local done = hyphenate(head)
+ if done then
+ for d in traverse_id(disc_code,tonut(head)) do
+ local s = getsubtype(d)
+ if s ~= discretionary_code then
+ expanders[s](d,template)
+ done = true
+ end
+ end
+ end
+ return head, done
+ end
+
+end
-- if id == disc_code then
-- if expanded then
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lang-hyp.lua b/Master/texmf-dist/tex/context/base/mkiv/lang-hyp.lua
index 92b400d4f53..e29446b65ac 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lang-hyp.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lang-hyp.lua
@@ -626,10 +626,13 @@ if context then
local math_code = nodecodes.math
local hlist_code = nodecodes.hlist
- local automaticdisc_code = disccodes.automatic
- local regulardisc_code = disccodes.regular
+ local discretionary_code = disccodes.discretionary
+ local explicit_code = disccodes.explicit
+ local automatic_code = disccodes.automatic
+ local regular_code = disccodes.regular
local nuts = nodes.nuts
+ local tonut = nodes.tonut
local tonode = nodes.tonode
local nodepool = nuts.pool
@@ -663,9 +666,7 @@ if context then
local remove_node = nuts.remove
local end_of_math = nuts.end_of_math
local node_tail = nuts.tail
-
- local nexthlist = nuts.traversers.hlist
- local nextdisc = nuts.traversers.disc
+ local traverse_id = nuts.traverse_id
local setcolor = nodes.tracers.colors.set
@@ -1027,7 +1028,9 @@ featureset.hyphenonly = hyphenonly == v_yes
function traditional.hyphenate(head)
- local first = head
+ local first = tonut(head)
+
+
local tail = nil
local last = nil
local current = first
@@ -1286,7 +1289,7 @@ featureset.hyphenonly = hyphenonly == v_yes
if leftchar then
post = serialize(true,leftchar)
end
- setdisc(disc,pre,post,nil,regulardisc_code,hyphenpenalty)
+ setdisc(disc,pre,post,nil,regular_code,hyphenpenalty)
if attrnode then
setattrlist(disc,attrnode)
end
@@ -1321,7 +1324,7 @@ featureset.hyphenonly = hyphenonly == v_yes
end
end
-- maybe regular code
- setdisc(disc,pre,post,replace,regulardisc_code,hyphenpenalty)
+ setdisc(disc,pre,post,replace,regular_code,hyphenpenalty)
if attrnode then
setattrlist(disc,attrnode)
end
@@ -1361,7 +1364,7 @@ featureset.hyphenonly = hyphenonly == v_yes
end
pre = copy_node(glyph)
setchar(pre,rightchar and rightchar > 0 and rightchar or code)
- setdisc(disc,pre,post,replace,automaticdisc_code,hyphenpenalty) -- ex ?
+ setdisc(disc,pre,post,replace,automatic_code,hyphenpenalty) -- ex ?
if attrnode then
setattrlist(disc,attrnode)
end
@@ -1383,7 +1386,7 @@ featureset.hyphenonly = hyphenonly == v_yes
local pre = copy_list(start)
local post = nil
local replace = start
- setdisc(disc,pre,post,replace,automaticdisc_code,hyphenpenalty) -- ex ?
+ setdisc(disc,pre,post,replace,automatic_code,hyphenpenalty) -- ex ?
if attrnode then
setattrlist(disc,attrnode)
end
@@ -1582,7 +1585,7 @@ featureset.hyphenonly = hyphenonly == v_yes
stoptiming(traditional)
- return head
+ return head, true
end
statistics.register("hyphenation",function()
@@ -1610,31 +1613,15 @@ featureset.hyphenonly = hyphenonly == v_yes
-- local replaceaction = nodes.tasks.replaceaction -- no longer overload this way (too many local switches)
- local hyphenate = lang.hyphenate
- local hyphenating = nuts.hyphenating
- local methods = { }
- local usedmethod = false
- local stack = { }
-
- local original = hyphenating and
- function(head)
- return (hyphenating(head))
- end
- or
- function(head)
- hyphenate(tonode(head))
- return head -- a nut
- end
+ local hyphenate = lang.hyphenate
+ local methods = { }
+ local usedmethod = false
+ local stack = { }
- -- local has_language = lang.has_language
- --
- -- local function original(head) -- kernel.hyphenation(head)
- -- local h = tonode(head)
- -- if has_language(h) then
- -- hyphenate(h)
- -- end
- -- return head
- -- end
+ local function original(head)
+ local done = hyphenate(head)
+ return head, done
+ end
local getcount = tex.getcount
@@ -1650,13 +1637,13 @@ featureset.hyphenonly = hyphenonly == v_yes
forced = false
return usedmethod(head)
else
- return head
+ return head, false
end
else
return usedmethod(head)
end
else
- return head
+ return head, false
end
end
@@ -1742,12 +1729,13 @@ featureset.hyphenonly = hyphenonly == v_yes
}
function nodes.stripdiscretionaries(head)
- for l in nexthlist, head do
- for d in nextdisc, getlist(l) do
+ local h = tonut(head)
+ for l in traverse_id(hlist_code,h) do
+ for d in traverse_id(disc_code,getlist(l)) do
remove_node(h,false,true)
end
end
- return head
+ return tonode(h)
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lang-hyp.mkiv b/Master/texmf-dist/tex/context/base/mkiv/lang-hyp.mkiv
index 9301fd1d873..feec82659b5 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lang-hyp.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/lang-hyp.mkiv
@@ -48,11 +48,10 @@
\automatichyphenmode \plusone
\hyphenpenaltymode \plusfour
-\hyphenpenalty 50 % hyphenator
-\automatichyphenpenalty 50 % -
-\explicithyphenpenalty 50 % \-
-\compoundhyphenpenalty 50
-\exceptionpenalty 1000
+\hyphenpenalty 50 % hyphenator
+\automatichyphenpenalty 50 % -
+\explicithyphenpenalty 50 % \-
+\compoundhyphenpenalty 50
%D This command can change! At some point we will keep the setting with the
%D paragraph and then the \type {\par} can go.
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lang-ini.mkiv b/Master/texmf-dist/tex/context/base/mkiv/lang-ini.mkiv
index 296cf7f1c86..7c83ae38fb8 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lang-ini.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/lang-ini.mkiv
@@ -15,10 +15,10 @@
% \cldcontext{languages.numbers[tex.count.mainlanguagenumber]}
-%D This module implements multi||language support of \CONTEXT, which should not be
-%D confused with the multi||lingual interface. This support will be extended when
-%D needed. Properties of languages are defined in \TEX\ files as well as \LUA\
-%D files.
+%D This module implements the (for the moment still simple)
+%D multi||language support of \CONTEXT, which should not be
+%D confused with the multi||lingual interface. This support
+%D will be extended when needed.
\writestatus{loading}{ConTeXt Language Macros / Initialization}
@@ -28,27 +28,41 @@
\unprotect
+% \def\testlanguage[#1]%
+% {\start
+% \language[#1]
+% \number\normallanguage/\the\lefthyphenmin/\the\righthyphenmin:
+% \input tufte
+% \hyphenatedword{effetestenofditwerkt}
+% \par
+% \stop}
+%
+% \testlanguage[de] \testlanguage[de-de] \testlanguage[de-at] \testlanguage[de-ch] \page
+% \testlanguage[en] \testlanguage[us] \testlanguage[en-us] \testlanguage[uk] \testlanguage[en-gb] \page
+
\ifdefined\nonfrenchspacing\else \let\nonfrenchspacing\relax \fi
\ifdefined\frenchspacing \else \let\frenchspacing \relax \fi
-%D When loading hyphenation patterns, \TEX\ assign a number to each loaded table,
-%D starting with~0. Switching to a specific table is done by assigning the relevant
-%D number to the predefined \COUNTER\ \type {\language}. However, in \MKIV\ a lot
-%D of management is delegated to \LUA.
+%D When loading hyphenation patterns, \TEX\ assign a number to
+%D each loaded table, starting with~0. Switching to a specific
+%D table is done by assigning the relevant number to the
+%D predefined \COUNTER\ \type{\language}.
-%D We keep track of the last loaded patterns by means of a pseudo \COUNTER. This
-%D just one of those situations in which we don't want to spent a real one. Language
-%D zero has no patterns, first of all because I like to start numbering at one. It
-%D may come in handy for special purposes as well.
+%D We keep track of the last loaded patterns by means of a
+%D pseudo \COUNTER. This just one of those situations in which
+%D we don't want to spent a real one. Language zero has no
+%D patterns, first of all because I like to start numbering
+%D at one. It may come in handy for special purposes as well.
\normallanguage\zerocount \def\loadedlanguage{1}
%D \macros
%D {currentlanguage, setupcurrentlanguage}
%D
-%D Instead of numbers,we are going to use symbolic names for the languages. The
-%D current langage is saved in the macro \type {\currentlanguage}. The setup macro
-%D is mainly used for cosmetic purposes.
+%D Instead of numbers,we are going to use symbolic names for
+%D the languages. The current langage is saved in the macro
+%D \type {\currentlanguage}. The setup macro is mainly used
+%D for cosmetic purposes.
%D
%D \starttyping
%D \dorecurse{3}
@@ -65,9 +79,10 @@
%D \macros
%D {defaultlanguage,languageparameter,specificlanguageparameter}
-%D
-%D We don't use the commandhandler here (yet) because we have a rather special
-%D fallback mechanism so quite some compatibility testing is needed.
+
+%D We don't use the commandhandler here (yet) because we have
+%D a rather special fallback mechanism so quite some compatibility
+%D testing is needed.
\installcorenamespace{language}
\installcorenamespace{languagelinked}
@@ -81,6 +96,33 @@
#1%
\fi}
+% \def\languageparameter#1%
+% {\ifcsname\??language\currentlanguage#1\endcsname
+% \csname\??language\currentlanguage#1\endcsname
+% \else\ifcsname\??language\currentlanguage\s!default\endcsname
+% \expandafter\specificlanguageparameter\csname\??language\currentlanguage\s!default\endcsname{#1}%
+% \else\ifcsname\??language\s!default#1\endcsname
+% \csname\??language\s!default#1\endcsname
+% \fi\fi\fi}
+%
+% \def\specificlanguageparameter#1#2%
+% {\ifcsname\??language#1#2\endcsname
+% \csname\??language#1#2\endcsname
+% \else\ifcsname\??language#1\s!default\endcsname
+% \expandafter\specificlanguageparameter\csname\??language#1\s!default\endcsname{#2}%
+% \else\ifcsname\??language\s!default#2\endcsname
+% \csname\??language\s!default#2\endcsname
+% \fi\fi\fi}
+%
+% \def\mainlanguageparameter#1%
+% {\ifcsname\??language\currentmainlanguage#1\endcsname
+% \csname\??language\currentmainlanguage#1\endcsname
+% \else\ifcsname\??language\currentmainlanguage\s!default\endcsname
+% \expandafter\specificlanguageparameter\csname\??language\currentmainlanguage\s!default\endcsname{#1}%
+% \else\ifcsname\??language\s!default#1\endcsname
+% \csname\??language\s!default#1\endcsname
+% \fi\fi\fi}
+
\def\languageparameter#1%
{\ifcsname\??language\currentlanguage#1\endcsname
\lastnamedcs
@@ -110,6 +152,15 @@
\let\usedlanguageparameter\languageparameter
+% \def\askedlanguageparameter#1% assumes \currentusedlanguage being set
+% {\ifcsname\??language\currentusedlanguage#1\endcsname
+% \csname\??language\currentusedlanguage#1\endcsname
+% \else\ifcsname\??language\currentusedlanguage\s!default\endcsname
+% \expandafter\specificlanguageparameter\csname\??language\currentusedlanguage\s!default\endcsname{#1}%
+% \else\ifcsname\??language\s!default#1\endcsname
+% \csname\??language\s!default#1\endcsname
+% \fi\fi\fi}
+
\def\askedlanguageparameter#1% assumes \currentusedlanguage being set
{\ifcsname\??language\currentusedlanguage#1\endcsname
\lastnamedcs
@@ -120,6 +171,7 @@
\fi\fi\fi}
\unexpanded\def\setusedlanguage#1%
+% {\edef\currentusedlanguage{\reallanguagetag{#1\c!language}}%
{\edef\currentusedlanguage{\reallanguagetag{#1}}%
\ifx\currentusedlanguage\empty
\let\currentusedlanguage \currentlanguage
@@ -156,23 +208,43 @@
%D \macros
%D {installlanguage}
%D
-%D Hyphenation patterns can only be loaded when the format file is prepared. The
-%D next macro takes care of this loading. A language is specified with
+%D Hyphenation patterns can only be loaded when the format file
+%D is prepared. The next macro takes care of this loading. A
+%D language is specified with
%D
%D \showsetup{installlanguage}
%D
-%D When \type {state} equals \type {start}, both patterns and additional hyphenation
-%D specifications are loaded. These files are seached for in the patterns path
-%D have names like \type {lang-nl.lua}.
+%D When \type {state} equals \type {start}, both patterns
+%D and additional hyphenation specifications are loaded. These
+%D files are seached for on the system path and are to be
+%D named:
+%D
+%D \starttyping
+%D lang-identifier.\f!patternsextension
+%D lang-identifier.\f!hyhensextension
+%D \stoptyping
%D
-%D The \type {spacing} variable specifies how the spaces after punctuation has to be
-%D handled. English is by tradition more tolerant to inter||sentence spacing than
-%D other languages.
+%D The \type{spacing} variable specifies how the spaces after
+%D punctuation has to be handled. English is by tradition more
+%D tolerant to inter||sentence spacing than other languages.
+%D
+%D This macro also defines \type {\identifier} as a shortcut
+%D switch to the language. Furthermore the command defined as
+%D being language specific, are executed. With
+%D \type {default} we can default to another language
+%D (patterns) at format generation time. This default language
+%D is overruled when the appropriate patterns are loaded (some
+%D implementations support run time addition of patterns to a
+%D preloaded format).
+
+%D \macros
+%D {preloadlanguages}
%D
-%D This macro also defines \type {\identifier} as a shortcut switch to the language.
-%D Furthermore the command defined as being language specific, are executed. With
-%D \type {default} we can default to another language (patterns) at format
-%D generation time. Patterns are loaded at runtime.
+%D We first try to load the files defined as file synonym
+%D for \type {lang-*.pat} and \type {lang-*.hyp}. After that we
+%D fall back on those files. The macro \type {\preloadpatterns}
+%D reports which patterns are loaded and what hyphenmin
+%D values are set.
\newtoks \everysetuplanguage
@@ -188,6 +260,7 @@
\let\doiflanguageelse\doifelselanguage
\def\reallanguagetag#1%
+ %{\ifcsname\??languagelinked#1\endcsname\csname\??languagelinked#1\endcsname\else#1\fi}
{\ifcsname\??languagelinked#1\endcsname\lastnamedcs\else#1\fi}
% \language[#1] gave unwanted side effect of loading language specifics
@@ -212,9 +285,10 @@
\def\lang_basics_install_indeed#1#2%
{\ifcsname#1\endcsname\else\setuvalue{#1}{\lang_basics_set_current[#2]}\fi}
-%D When the second argument is a language identifier, a synonym is created. This
-%D feature is present because we used dutch mnemonics in the dutch version, but
-%D nowadays conform a standard.
+%D When the second argument is a language identifier, a
+%D synonym is created. This feature is present because we
+%D used dutch mnemonics in the dutch version, but nowadays
+%D conform a standard.
\unexpanded\def\doifelsepatterns#1%
{\begingroup % will change
@@ -243,15 +317,13 @@
\let\lang_basics_synchronize\relax % be nice for setups till we have one
\fi
-\installmacrostack\currentlanguage
-
\def\lang_basics_setup[#1][#2]%
{\ifsecondargument
- \push_macro_currentlanguage % can be default
+ \pushmacro\currentlanguage % can be default
\edef\currentsetuplanguage{\reallanguagetag{#1}}%
\getparameters[\??language\currentsetuplanguage][#2]%
\the\everysetuplanguage
- \pop_macro_currentlanguage
+ \popmacro\currentlanguage
%\doif\currentsetuplanguage\currentlanguage we can have influenced inheritance (default)
\else
\let\currentsetuplanguage\currentlanguage
@@ -292,7 +364,6 @@
\c!middlespeech=,
\c!rightspeech=\languageparameter\c!rightquotation,
\c!limittext=\unknown,
- \c!time={h,:,m},
\c!date={\v!year,\ ,\v!month,\ ,\v!day},
\c!text=Ag,
\s!font=] % \v!auto : experimental !
@@ -303,21 +374,26 @@
% [\s!default]
% [\c!righthyphenchar="AD]
-%D The values \type {leftsentence} and \type {rightsentence} can be (and are) used
-%D to implement automatic subsentence boundary glyphs, like in {\fr |<|french
-%D guillemots|>|} or {\de |<|german guillemots|>|} or {\nl |<|dutch dashes|>|} like
-%D situations. Furthermore \type {leftquotation} and \type {leftquote} come into
-%D view \quotation {when we quote} or \quote {quote} something.
+%D The values \type {leftsentence} and \type
+%D {rightsentence} can be (and are) used to implement
+%D automatic subsentence boundary glyphs, like in {\fr
+%D |<|french guillemots|>|} or {\de |<|german guillemots|>|} or
+%D {\nl |<|dutch dashes|>|} like situations. Furthermore \type
+%D {leftquotation} and \type {leftquote} come into view
+%D \quotation {when we quote} or \quote {quote} something.
%D \macros
-%D {currentdatespecification, currenttimespecification}
+%D {currentdatespecification}
%D
-%D Just to make things easy we can ask for the current date specification by saying:
+%D Just to make things easy we can ask for the current date
+%D specification by saying:
\def\currentdatespecification{\languageparameter\c!date}
-\def\currenttimespecification{\languageparameter\c!time}
-%D Carefull reading of these macros shows that it's legal to say
+%D This command is not meant for users.
+
+%D Carefull reading of these macros shows that it's legal to
+%D say
%D
%D \starttyping
%D \installlanguage [du] [de]
@@ -326,39 +402,54 @@
%D \macros
%D {language,mainlanguage}
%D
-%D Switching to another language (actually another hyphenation pattern) is done
-%D with:
+%D Switching to another language (actually another hyphenation
+%D pattern) is done with:
%D
%D \starttyping
%D \language[identifier]
%D \stoptyping
%D
-%D or with \type {\identifier}. Just to be compatible with \PLAIN\ \TEX, we still
-%D support the original meaning, so
+%D or with \type{\identifier}. Just to be compatible with
+%D \PLAIN\ \TEX, we still support the original meaning, so
%D
%D \starttyping
%D \language=1
%D \stoptyping
%D
-%D is a valid operation, where the relation between number and language depends on
-%D the order in installing languages.
+%D is a valid operation, where the relation between number
+%D and language depends on the order in installing languages.
%D
%D \showsetup{language}
%D \showsetup{mainlanguage}
%D
-%D Both commands take a predefined language identifier as argument. We can use \type
-%D {\mainlanguage[identifier]} for setting the (indeed) main language. This is the
-%D language used for translating labels like {\em figure} and {\em table}. The main
-%D language defaults to the current language.
+%D Both commands take a predefined language identifier as
+%D argument. We can use \type{\mainlanguage[identifier]} for
+%D setting the (indeed) main language. This is the language
+%D used for translating labels like {\em figure} and {\em
+%D table}. The main language defaults to the current language.
+%D
+%D We take care of local as well as standardized language
+%D switching (fr and fa, de and du, but nl and nl).
\newtoks \everylanguage
+% \def\lang_basics_synchronize% assumes that \currentlanguage is set % % % use different name as complex
+% {\normallanguage\ctxcommand{languagenumber(%
+% "\currentlanguage",%
+% "\defaultlanguage\currentlanguage",%
+% "\languageparameter\s!patterns"%
+% )}\relax
+% \the\everylanguage\relax}
+
+% (some 20%) faster but code jungle (the publication code can have excessive
+% switching
+
\installcorenamespace{languagenumbers}
\appendtoks
% we need to reassign the number because new patterns can be defined later on
% so let's hope not that many \setups happen during a run
- \expandafter\glet\csname\??languagenumbers\currentlanguage\endcsname\undefined
+ \global\expandafter\let\csname\??languagenumbers\currentlanguage\endcsname\undefined
\to \everysetuplanguage
\def\lang_basics_synchronize_yes
@@ -380,7 +471,7 @@
\letvalue{\??languagenumbers}\lang_basics_synchronize_yes % runtime
\to \everydump
-\def\lang_basics_synchronize
+\def\lang_basics_synchronize% assumes that \currentlanguage is set % % % use different name as complex
{\normallanguage\csname\??languagenumbers
\ifcsname\??languagenumbers\currentlanguage\endcsname
\currentlanguage
@@ -390,7 +481,12 @@
\the\everylanguage
\relax}
+% experimental
+
\newcount\hyphenstate
+
+% so far
+
\newcount\hyphenminoffset
\unexpanded\def\lesshyphens
@@ -434,7 +530,7 @@
% \setups[\languageparameter\c!setups]%
% \to \everylanguage
-%D You can setup the default language to reset settings.
+%D You can setup the 'default' language to reset settings.
\appendtoks
\edef\currentlanguagesetups{\languageparameter\c!setups}%
@@ -452,12 +548,7 @@
% this will move to core-spa !
\appendtoks
- \edef\p_spacing{\languageparameter\c!spacing}%
- \ifx\p_spacing\v!broad
- \nonfrenchspacing
- \else
- \frenchspacing
- \fi
+ \doifelse{\languageparameter\c!spacing}\v!broad\nonfrenchspacing\frenchspacing
\to \everylanguage
% \mainlanguage[nl] \setuplanguage[nl][lefthyphen=,righthyphen=?]
@@ -485,6 +576,11 @@
\fi
\to \everylanguage
+% The following may be a solution for the fact that one cannot
+% change catcodes of characters like : and ; inside an environment.
+
+% we will also permit access by the other names
+
%D Fast switcher
\def\lang_basics_switch_asked
@@ -517,13 +613,23 @@
\newcount\mainlanguagenumber
-%D Beware: you might need to use \type {\dontleavehmode} outside and|/|or \type {\par}
-%D inside the group!
-
-\unexpanded\def\startlanguage
- {\begingroup\language}
-
-\let\stoplanguage\endgroup
+% \unexpanded\def\mainlanguage[#1]%
+% {\edef\askedlanguage{#1}%
+% \ifx\askedlanguage\empty \else
+% \ifcsname\??languagelinked\askedlanguage\endcsname
+% \edef\askedlanguage{\csname\??languagelinked\askedlanguage\endcsname}%
+% \ifx\currentlanguage\askedlanguage
+% \ifx\currentmainlanguage\askedlanguage \else
+% \setcurrentlanguage\askedlanguage\askedlanguage
+% \lang_basics_synchronize
+% \fi
+% \else
+% \setcurrentlanguage\askedlanguage\askedlanguage
+% \lang_basics_synchronize
+% \fi
+% \fi
+% \fi
+% \mainlanguagenumber\normallanguage}
\unexpanded\def\mainlanguage[#1]%
{\edef\askedlanguage{#1}%
@@ -556,8 +662,9 @@
\def\splitsymbol#1%
{\splitsequence{#1}{\languageparameter\c!limittext}}
-%D Just like with subsentence boundary symbols, quotes placement depends on the
-%D current language, therefore we show the defaults here.
+%D Just like with subsentence boundary symbols, quotes
+%D placement depends on the current language, therefore we show
+%D the defaults here.
%D
%D \def\ShowLanguageValues [#1] [#2] #3 #4
%D {\blank
@@ -579,7 +686,6 @@
%D \ShowLanguageValues [da] [danish] deense ...
%D \ShowLanguageValues [de] [german] duitse degelijkheid
%D \ShowLanguageValues [en] [english] engelse humor
-%D \ShowLanguageValues [et] [estonian] ...
%D \ShowLanguageValues [fi] [finnish] finse ...
%D \ShowLanguageValues [fr] [french] franse slag
%D \ShowLanguageValues [it] [italian] italiaanse ...
@@ -593,9 +699,10 @@
%D \ShowLanguageValues [sv] [swedish] zweedse ...
%D \ShowLanguageValues [tr] [turkish] turks fruit
-%D We support a lot of languages. These are specified and loaded in separate files,
-%D according to their roots. Here we only take care of (postponed) setting of the
-%D current language.
+%D We support a lot of languages. These are specified and
+%D loaded in separate files, according to their roots. Here
+%D we only take care of (postponed) setting of the current
+%D language.
%D
%D \unprotect
%D \placetable{The germanic languages (\type{lang-ger})}
@@ -666,8 +773,9 @@
\unexpanded\def\nopatterns{\normallanguage\minusone}
-%D We default to the language belonging to the interface. This is one of the few
-%D places outside the interface modules where \type {\startinterface} is used.
+%D We default to the language belonging to the interface. This
+%D is one of the few places outside the interface modules where
+%D \type{\startinterface} is used.
\setupcurrentlanguage[\s!en]
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lang-lab.mkiv b/Master/texmf-dist/tex/context/base/mkiv/lang-lab.mkiv
index 9d73d96e589..73637753d64 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lang-lab.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/lang-lab.mkiv
@@ -277,16 +277,10 @@
\def\lang_labels_text_prefix_copy_pair[#1=#2]%
{\lang_labels_text_prefix_copy_pair_indeed{#1}[#2,,]}
-% \def\lang_labels_text_prefix_copy_pair_indeed#1[#2,#3]%
-% {\expandafter\let
-% \csname\??label\currenttextprefixclass:\currenttextprefixtag:#1\expandafter\endcsname
-% \csname\??label\currenttextprefixclass:\currenttextprefixtag:#2\endcsname}
-%
-% this delays the aliasing so that we can switch maillanguage in between
-
\def\lang_labels_text_prefix_copy_pair_indeed#1[#2,#3]%
- {\expandafter\edef\csname\??label\currenttextprefixclass:#1\endcsname
- {{\noexpand\csname\??label\currenttextprefixclass:\noexpand\reallanguagetag\noexpand\currentmainlanguage:#2\endcsname}{}}}
+ {\expandafter\let
+ \csname\??label\currenttextprefixclass:\currenttextprefixtag:#1\expandafter\endcsname
+ \csname\??label\currenttextprefixclass:\currenttextprefixtag:#2\endcsname}
\definelabelclass [head] [0] % titles
\definelabelclass [label] [0] % texts
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lang-mis.mkiv b/Master/texmf-dist/tex/context/base/mkiv/lang-mis.mkiv
index 3ec29a782f8..eb7dc7d808b 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lang-mis.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/lang-mis.mkiv
@@ -145,11 +145,7 @@
%D modules these can be tuned by a setup command. Watch the (maybe) better looking
%D compound hyphen.
-% hm why ex
-
-\ifx\compoundhyphen \undefined
- \unexpanded\def\compoundhyphen {\hbox{-\kern-.10775\emwidth-}} % .25\exheight
-\fi
+\ifx\compoundhyphen \undefined \unexpanded\def\compoundhyphen {\hbox{-\kern-.25ex-}} \fi
%D The last two variables are needed for subsentences |<|like this one|>| which we
%D did not yet mention. We want to enable breaking but at the same time don't want
@@ -160,8 +156,7 @@
\ifx\postwordbreak\undefined \unexpanded\def\postwordbreak {\penalty\zerocount \hskip\zeropoint\relax} \fi
\ifx\hspaceamount \undefined \def\hspaceamount#1#2{.16667\emwidth} \fi % language specific
-%unexpanded\def\permithyphenation{\ifhmode\prewordbreak\fi} % doesn't remove spaces
-\unexpanded\def\permithyphenation{\ifhmode\wordboundary\fi} % doesn't remove spaces
+\unexpanded\def\permithyphenation{\ifhmode\prewordbreak\fi} % doesn't remove spaces
%D \macros
%D {beginofsubsentence,endofsubsentence,
@@ -207,21 +202,22 @@
\setnewconstant\discretionarymode\plusone
-\unexpanded\def\ignorediscretionaries{\discretionarymode\zerocount}
-\unexpanded\def\obeydiscretionaries {\discretionarymode\plusone}
+\unexpanded\def\ignorediscretionaries
+ {\discretionarymode\zerocount}
\def\lang_discretionaries_command
{% if direct if, we need \relax for lookahead in math mode
\csname\??discretionarymode
\ifcase\discretionarymode
- n%
+ n% \csstring\lang_discretionaries_process_none
\else\ifmmode
- m%
+ m% \csstring\lang_discretionaries_process_math
\else
- t%
+ t% \csstring\lang_discretionaries_process_text
\fi\fi
\endcsname}
+% \def\lang_discretionaries_process_none#1%
\setvalue{\??discretionarymode n}#1%
{\detokenize{#1}}
@@ -234,22 +230,19 @@
\newconditional\punctafterdiscretionary
\newconditional\spaceafterdiscretionary
-\def\lang_discretionaries_check_before %i sused grouped
+\def\lang_discretionaries_check_before
{\ifvmode
\dontleavehmode
\fi
\ifhmode
- %\begingroup
- %\setbox\scratchbox\lastbox
- %\ifzeropt\wd\scratchbox
- % \box\scratchbox\relax
- % \endgroup
- % \let\postwordbreak\prewordbreak
- %\else
- % \box\scratchbox\relax
- % \endgroup
- %\fi
- \fi}
+ \begingroup
+ \setbox\scratchbox\lastbox
+ \ifzeropt\wd\scratchbox
+ \let\postwordbreak\prewordbreak
+ \fi
+ \box\scratchbox\relax
+ \endgroup
+ \fi}
\def\lang_discretionaries_check_after
{\setfalse\punctafterdiscretionary
@@ -261,8 +254,10 @@
\ifx :\nextnext \settrue \punctafterdiscretionary \else
\ifx ;\nextnext \settrue \punctafterdiscretionary \fi\fi\fi\fi\fi\fi}
+%let\lang_discretionaries_process_math\handlemathmodediscretionary
\letvalue{\??discretionarymode m}\handlemathmodediscretionary
+% \def\lang_discretionaries_process_text#1% grouped !
\setvalue{\??discretionarymode t}#1%
{\bgroup
\let\nextnextnext\egroup
@@ -283,47 +278,39 @@
\ifcsname\??discretionaryaction\string#1\endcsname
\lastnamedcs
\else\ifconditional\spaceafterdiscretionary
- %\prewordbreak\hbox{\string#1}\relax
- \wordboundary\hbox{\string#1}\relax
+ \prewordbreak\hbox{\string#1}\relax
\else\ifconditional\punctafterdiscretionary
- %\prewordbreak\hbox{\string#1}\relax
- \wordboundary\hbox{\string#1}\wordboundary
+ \prewordbreak\hbox{\string#1}\relax
\else
- %\prewordbreak\hbox{\string#1}\prewordbreak
- \wordboundary\hbox{\string#1}\wordboundary
+ \prewordbreak\hbox{\string#1}\prewordbreak
\fi\fi\fi
\def\nextnextnext{\afterassignment\egroup\let\next=}%
\else
\lang_discretionaries_check_before
% the next line has been changed (20050203)
- % \prewordbreak\hbox{\textmodediscretionary\nextnext}\postwordbreak
+ % \prewordbreak\hbox{\textmodediscretionary\nextnext}\allowbreak\postwordbreak
% but an hbox blocks a possible \discretionary
\ifcsname\??discretionaryaction\endcsname
\lastnamedcs
\else\ifconditional\spaceafterdiscretionary
- %\prewordbreak\textmodediscretionary\relax
- \wordboundary\textmodediscretionary\relax
+ \prewordbreak\textmodediscretionary\relax
\else\ifconditional\punctafterdiscretionary
- %\prewordbreak\textmodediscretionary\relax
- \wordboundary\textmodediscretionary\relax
+ \prewordbreak\textmodediscretionary\relax
\else
- %\prewordbreak\textmodediscretionary\prewordbreak
- \wordboundary\textmodediscretionary\wordboundary
+ \prewordbreak\textmodediscretionary\prewordbreak
\fi\fi\fi
+ % \prewordbreak\textmodediscretionary\nextnext\allowbreak\postwordbreak
\fi
\else\ifcsname\??discretionaryaction\discretionarytoken\endcsname
\lastnamedcs
\else
\lang_discretionaries_check_before
\ifconditional\spaceafterdiscretionary
- %\prewordbreak\hbox{#2}\relax
- \wordboundary\hbox{#2}\relax
+ \prewordbreak\hbox{#2}\relax
\else\ifconditional\punctafterdiscretionary
- %\prewordbreak\hbox{#2}\relax
- \wordboundary\hbox{#2}\relax
+ \prewordbreak\hbox{#2}\relax
\else
- %\prewordbreak\discretionary{\hbox{#2}}{}{\hbox{#2}}\postwordbreak
- \wordboundary\discretionary{\hbox{#2}}{}{\hbox{#2}}\wordboundary
+ \prewordbreak\discretionary{\hbox{#2}}{}{\hbox{#2}}\allowbreak\postwordbreak
\fi\fi
\fi\fi
\nextnextnext}
@@ -337,33 +324,35 @@
\unexpanded\def\directdiscretionary
{\csname\??discretionarymode
\ifcase\discretionarymode
- n%
+ n% \csstring\lang_discretionaries_process_none
\else
- d%
+ d% \csstring\lang_discretionaries_process_direct
\fi
\endcsname}
\unexpanded\def\indirectdiscretionary
{\csname\??discretionarymode
\ifcase\discretionarymode
- n%
+ n% \csstring\lang_discretionaries_process_none
\else
- i%
+ i% \csstring\lang_discretionaries_process_indirect
\fi
\endcsname}
+% \unexpanded\def\lang_discretionaries_process_direct#1%
\setuvalue{\??discretionarymode d}#1%
{\edef\discretionarytoken{\detokenize{#1}}%
\let\textmodediscretionary\compoundhyphen
+ %\executeifdefined{\??discretionaryaction\discretionarytoken}{\indirectdiscretionary{#1}}}
\ifcsname\??discretionaryaction\discretionarytoken\endcsname
\expandafter\lastnamedcs
\else
\expandafter\indirectdiscretionary
\fi{#1}}
+% \unexpanded\unexpanded\def\lang_discretionaries_process_indirect#1%
\setuvalue{\??discretionarymode i}#1%
- %{\prewordbreak\discretionary{\hbox{#1}}{}{\hbox{#1}}\postwordbreak}
- {\wordboundary\discretionary{\hbox{#1}}{}{\hbox{#1}}\wordboundary}
+ {\prewordbreak\discretionary{\hbox{#1}}{}{\hbox{#1}}\allowbreak\postwordbreak}
\unexpanded\def\definetextmodediscretionary #1
{\setvalue{\??discretionaryaction\detokenize{#1}}}
@@ -387,14 +376,11 @@
\def\lang_discretionaries_hyphen_like#1#2%
{\ifconditional\spaceafterdiscretionary
- %prewordbreak\hbox{#1}\relax
- \wordboundary\hbox{#1}\relax
+ \prewordbreak\hbox{#1}\relax
\else\ifconditional\punctafterdiscretionary
- %prewordbreak\hbox{#1}\relax
- \wordboundary\hbox{#1}\relax
+ \prewordbreak\hbox{#1}\relax
\else
- %\prewordbreak#2\postwordbreak % was prewordbreak
- \wordboundary#2\wordboundary
+ \prewordbreak#2\postwordbreak % was prewordbreak
\fi\fi}
\definetextmodediscretionary {}
@@ -411,65 +397,59 @@
\definetextmodediscretionary (
{\ifdim\lastskip>\zeropoint
- %(\prewordbreak
- (\wordboundary
+ (\prewordbreak
\else
- %\prewordbreak\discretionary{}{(-}{(}\prewordbreak
- \wordboundary\discretionary{}{(-}{(}\wordboundary
+ \prewordbreak\discretionary{}{(-}{(}\prewordbreak
\fi}
\definetextmodediscretionary ~
- %{\prewordbreak\discretionary{-}{}{\thinspace}\postwordbreak}
- {\wordboundary\discretionary{-}{}{\thinspace}\wordboundary}
+ {\prewordbreak\discretionary{-}{}{\thinspace}\postwordbreak}
\definetextmodediscretionary '
- %{\prewordbreak\discretionary{-}{}{'}\postwordbreak}
- {\wordboundary\discretionary{-}{}{'}\wordboundary}
+ {\prewordbreak\discretionary{-}{}{'}\postwordbreak}
\definetextmodediscretionary ^
- %{\prewordbreak\discretionary{\hbox{\normalstartimath|\normalstopimath}}{}{\hbox{\normalstartimath|\normalstopimath}}%
- % \postwordbreak} % bugged
- {\wordboundary\discretionary{\hbox{\normalstartimath|\normalstopimath}}{}{\hbox{\normalstartimath|\normalstopimath}}%
- \wordboundary} % bugged
+ {\prewordbreak\discretionary{\hbox{\normalstartimath|\normalstopimath}}{}{\hbox{\normalstartimath|\normalstopimath}}%
+ \allowbreak\postwordbreak} % bugged
+
+% \definetextmodediscretionary <
+% {\beginofsubsentence\prewordbreak\beginofsubsentencespacing}
+%
+% \definetextmodediscretionary >
+% {\endofsubsentencespacing\prewordbreak\endofsubsentence}
+%
+% \definetextmodediscretionary =
+% {\prewordbreak\midsentence\prewordbreak}
\definetextmodediscretionary <
- %{\beginofsubsentence\prewordbreak\beginofsubsentencespacing
- {\beginofsubsentence\wordboundary\beginofsubsentencespacing
+ {\beginofsubsentence\prewordbreak\beginofsubsentencespacing
\aftergroup\ignorespaces} % tricky, we need to go over the \nextnextnext
\definetextmodediscretionary >
{\removeunwantedspaces
- %\endofsubsentencespacing\prewordbreak\endofsubsentence}
- \endofsubsentencespacing\wordboundary\endofsubsentence}
+ \endofsubsentencespacing\prewordbreak\endofsubsentence}
\definetextmodediscretionary =
{\removeunwantedspaces
- %\prewordbreak\midsentence\prewordbreak
- \wordboundary\midsentence\wordboundary
+ \prewordbreak\midsentence\prewordbreak
\aftergroup\ignorespaces}
% french
-%definetextmodediscretionary : {\removeunwantedspaces\prewordbreak\kern\hspaceamount\empty{:}:}
-%definetextmodediscretionary ; {\removeunwantedspaces\prewordbreak\kern\hspaceamount\empty{;};}
-%definetextmodediscretionary ? {\removeunwantedspaces\prewordbreak\kern\hspaceamount\empty{?}?}
-%definetextmodediscretionary ! {\removeunwantedspaces\prewordbreak\kern\hspaceamount\empty{!}!}
-
-\definetextmodediscretionary : {\removeunwantedspaces\wordboundary\kern\hspaceamount\empty{:}:}
-\definetextmodediscretionary ; {\removeunwantedspaces\wordboundary\kern\hspaceamount\empty{;};}
-\definetextmodediscretionary ? {\removeunwantedspaces\wordboundary\kern\hspaceamount\empty{?}?}
-\definetextmodediscretionary ! {\removeunwantedspaces\wordboundary\kern\hspaceamount\empty{!}!}
+\definetextmodediscretionary : {\removeunwantedspaces\prewordbreak\kern\hspaceamount\empty{:}:}
+\definetextmodediscretionary ; {\removeunwantedspaces\prewordbreak\kern\hspaceamount\empty{;};}
+\definetextmodediscretionary ? {\removeunwantedspaces\prewordbreak\kern\hspaceamount\empty{?}?}
+\definetextmodediscretionary ! {\removeunwantedspaces\prewordbreak\kern\hspaceamount\empty{!}!}
-%definetextmodediscretionary * {\prewordbreak\discretionary{-}{}{\kern.05\emwidth}\prewordbreak}
-\definetextmodediscretionary * {\wordboundary\discretionary{-}{}{\kern.05\emwidth}\wordboundary}
+\definetextmodediscretionary *
+ {\prewordbreak\discretionary{-}{}{\kern.05em}\prewordbreak}
% spanish
-%definetextmodediscretionary ?? {\prewordbreak\questiondown}
-%definetextmodediscretionary !! {\prewordbreak\exclamdown}
+\definetextmodediscretionary ?? {\prewordbreak\questiondown}
+\definetextmodediscretionary !! {\prewordbreak\exclamdown}
-\definetextmodediscretionary ?? {\wordboundary\questiondown}
-\definetextmodediscretionary !! {\wordboundary\exclamdown}
+% \ifx\normalcompound\undefined \let\normalcompound=| \fi
%D \installdiscretionary | +
%D \installdiscretionary + =
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lang-rep.lua b/Master/texmf-dist/tex/context/base/mkiv/lang-rep.lua
index 93509d82a3e..a5c4d97c826 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lang-rep.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lang-rep.lua
@@ -42,6 +42,8 @@ local report_replacement = logs.reporter("languages","replacements")
local glyph_code = nodes.nodecodes.glyph
local nuts = nodes.nuts
+local tonut = nuts.tonut
+local tonode = nuts.tonode
local getnext = nuts.getnext
local getprev = nuts.getprev
@@ -215,7 +217,9 @@ local function tonodes(list,template)
end
function replacements.handler(head)
+ head = tonut(head)
local current = head
+ local done = false
local overload = attributes.applyoverloads
while current do
if getid(current) == glyph_code then
@@ -323,13 +327,14 @@ function replacements.handler(head)
if overload then
overload(final,getnext(precurrent),getprev(current))
end
+ done = true
end
end
end
-- we're one ahead now but we need to because we handle words
current = getnext(current)
end
- return head
+ return tonode(head), done
end
local enabled = false
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lang-spa.mkiv b/Master/texmf-dist/tex/context/base/mkiv/lang-spa.mkiv
index 7109ad0511a..e7cb0025fd6 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lang-spa.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/lang-spa.mkiv
@@ -41,15 +41,17 @@
%D Alternative discretionary handlers:
-%definetextmodediscretionary : {\removeunwantedspaces\prewordbreak\kern\hspaceamount\currentlanguage{:}:}
-%definetextmodediscretionary ; {\removeunwantedspaces\prewordbreak\kern\hspaceamount\currentlanguage{;};}
-%definetextmodediscretionary ? {\removeunwantedspaces\prewordbreak\kern\hspaceamount\currentlanguage{?}?}
-%definetextmodediscretionary ! {\removeunwantedspaces\prewordbreak\kern\hspaceamount\currentlanguage{!}!}
+\definetextmodediscretionary :
+ {\removeunwantedspaces\prewordbreak\kern\hspaceamount\currentlanguage{:}:}
-\definetextmodediscretionary : {\removeunwantedspaces\wordboundary\kern\hspaceamount\currentlanguage{:}:}
-\definetextmodediscretionary ; {\removeunwantedspaces\wordboundary\kern\hspaceamount\currentlanguage{;};}
-\definetextmodediscretionary ? {\removeunwantedspaces\wordboundary\kern\hspaceamount\currentlanguage{?}?}
-\definetextmodediscretionary ! {\removeunwantedspaces\wordboundary\kern\hspaceamount\currentlanguage{!}!}
+\definetextmodediscretionary ;
+ {\removeunwantedspaces\prewordbreak\kern\hspaceamount\currentlanguage{;};}
+
+\definetextmodediscretionary ?
+ {\removeunwantedspaces\prewordbreak\kern\hspaceamount\currentlanguage{?}?}
+
+\definetextmodediscretionary !
+ {\removeunwantedspaces\prewordbreak\kern\hspaceamount\currentlanguage{!}!}
%D \startbuffer
%D \mainlanguage[en] \quotation{test \quotation{test} test}\par
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lang-txt.lua b/Master/texmf-dist/tex/context/base/mkiv/lang-txt.lua
index d287f7e6d6c..b1f50bc804e 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lang-txt.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lang-txt.lua
@@ -25,7 +25,6 @@ if not modules then modules = { } end modules ['lang-txt'] = {
-- de German Tobias Burnus, ...
-- en English Hans Hagen, ...
-- es Spanish AndrÃĐs Montoya, ...
--- et Estonian Clyde Johnston
-- fi Finish ...
-- fr French Daniel Flipo, Arthur Reutenauer
-- gr Greek Apostolos Syropoulos, Thomas Schmitz
@@ -87,7 +86,6 @@ data.labels={
["labels"]={
["de"]="Band",
["en"]="Volume",
- ["et"]="KÃķide",
["nl"]="Deel",
["pe"]="ØŽŲ„ØŊ",
},
@@ -97,7 +95,6 @@ data.labels={
["de"]="und",
["en"]="and",
["es"]="y",
- ["et"]="ja",
["fr"]="et",
["it"]="e",
["nl"]="en",
@@ -109,7 +106,6 @@ data.labels={
["de"]="Auflage",
["en"]="edition",
["es"]="ediciÃģn",
- ["et"]="vÃĪljaanne",
["fr"]="ÃĐdition",
["it"]="edizione",
["nl"]="editie",
@@ -120,7 +116,6 @@ data.labels={
["labels"]={
["de"]="Herausgeber",
["en"]="editor",
- ["et"]="toimetaja",
["fr"]="ÃĐditeur",
["it"]="a cura di",
["pe"]="ŲˆÛŒØąØ§ØģØŠØ§Øą",
@@ -131,7 +126,6 @@ data.labels={
["de"]="Herausgeber",
["en"]="editors",
["es"]="editores",
- ["et"]="toimetajad",
["fr"]="ÃĐditeurs",
["it"]="a cura di",
},
@@ -149,7 +143,6 @@ data.labels={
["de"]="Masterarbeit",
["en"]="Master's thesis",
["es"]="Tesis de maestría",
- ["et"]="magistritÃķÃķ",
["fr"]="ThÃĻse de master (DEA, DESS, master)",
["it"]="Tesi di laurea",
["nl"]="Masterproef",
@@ -176,14 +169,12 @@ data.labels={
["others"]={
["labels"]={
["en"]="et al.",
- ["et"]="jt",
},
},
["p"]={
["labels"]={
["de"]="S.",
["en"]="p.",
- ["et"]="lk",
["pe"]="Øĩ",
},
},
@@ -191,7 +182,6 @@ data.labels={
["labels"]={
["de"]="Seiten",
["en"]="pages",
- ["et"]="lehekÞljed",
["nl"]="paginas",
["pe"]="ØĩŲØ­Ø§ØŠ",
},
@@ -201,7 +191,6 @@ data.labels={
["de"]="Patent",
["en"]="Patent",
["es"]="Patente",
- ["et"]="Patent",
["fr"]="Brevet",
["it"]="Brevetto",
["nl"]="Octrooi",
@@ -212,7 +201,6 @@ data.labels={
["de"]="Dissertation",
["en"]="PhD thesis",
["es"]="Tesis doctoral",
- ["et"]="doktoritÃķÃķ",
["fr"]="ThÃĻse de doctorat",
["it"]="Tesi di dottorato",
["nl"]="Proefschrift",
@@ -223,7 +211,6 @@ data.labels={
["labels"]={
["de"]="S.",
["en"]="pp.",
- ["et"]="lk-d",
["pe"]="ØĩØĩ",
},
},
@@ -232,7 +219,6 @@ data.labels={
["de"]="Technischer Bericht",
["en"]="Technical report",
["es"]="Informe tÃĐcnico",
- ["et"]="tehniline raport",
["fr"]="Rapport technique",
["it"]="Relazione tecnica",
["nl"]="Technisch rapport",
@@ -243,7 +229,6 @@ data.labels={
["labels"]={
["de"]="Band",
["en"]="volume",
- ["et"]="kÃķide",
["nl"]="deel",
["pe"]="ØŽŲ„ØŊ",
},
@@ -253,7 +238,6 @@ data.labels={
["de"]="mit",
["en"]="with",
["es"]="con",
- ["et"]="koos",
["fr"]="avec",
["it"]="con",
["nl"]="met",
@@ -631,29 +615,28 @@ data.labels={
["labels"]={
["af"]="",
["ca"]="",
- ["cs"]=" a ",
+ ["cs"]="a",
["da"]="",
- ["de"]=" und ",
- ["en"]=" and ",
- ["es"]=" y ",
- ["et"]=" ja ",
+ ["de"]="und",
+ ["en"]="and",
+ ["es"]="y",
["fi"]="",
["fr"]="",
["gr"]="",
- ["hr"]=" i ",
- ["hu"]=" ÃĐs ",
+ ["hr"]="i",
+ ["hu"]="ÃĐs",
["it"]="",
["la"]="",
["lt"]="",
["nb"]="",
- ["nl"]=" en ",
+ ["nl"]="en",
["nn"]="",
- ["pe"]=" Ųˆ ",
- ["pl"]=" i ",
+ ["pe"]="Ųˆ",
+ ["pl"]="i",
["pt"]="",
["ro"]="",
["ru"]="",
- ["sk"]=" a ",
+ ["sk"]="a",
["sl"]="",
["sv"]="",
["tk"]="",
@@ -674,7 +657,6 @@ data.labels={
["de"]="Anhang ",
["en"]="Appendix ",
["es"]="ApÃĐndice ",
- ["et"]="Lisa ",
["fi"]="",
["fr"]="Annexe ",
["gr"]="Î ÎąÏÎŽÏÏ„Î·ÎžÎą",
@@ -715,7 +697,6 @@ data.labels={
["de"]="April",
["en"]="April",
["es"]="abril",
- ["et"]="aprill",
["fi"]="huhtikuu",
["fr"]="avril",
["gr"]="ΑπρÎŊÎŧÎđÎŋς",
@@ -758,7 +739,6 @@ data.labels={
["de"]="",
["en"]="apr",
["es"]="abr.",
- ["et"]="apr",
["fi"]="",
["fr"]="",
["gr"]="",
@@ -793,7 +773,6 @@ data.labels={
["de"]="auf Seite ",
["en"]="at page ",
["es"]="en la pÃĄgina ",
- ["et"]="lehekÞljel ",
["fi"]="",
["fr"]="à la page ",
["gr"]="",
@@ -833,7 +812,6 @@ data.labels={
["de"]="August",
["en"]="August",
["es"]="agosto",
- ["et"]="august",
["fi"]="elokuu",
["fr"]="aoÃŧt",
["gr"]="ΑύÎģÎŋυστÎŋς",
@@ -876,7 +854,6 @@ data.labels={
["de"]="",
["en"]="aug",
["es"]="ago.",
- ["et"]="aug",
["fi"]="",
["fr"]="",
["gr"]="",
@@ -913,7 +890,6 @@ data.labels={
["de"]="Kapitel ",
["en"]="Chapter ",
["es"]="Capítulo ",
- ["et"]="PeatÞkk ",
["fi"]="",
["fr"]="Chapitre ",
["gr"]="ΚÎĩφΎÎŧÎąÎđÎŋ",
@@ -950,7 +926,6 @@ data.labels={
["de"]="",
["en"]=" (continued)",
["es"]=" (continÚa)",
- ["et"]=" (jÃĪtkub)",
["fi"]="",
["fr"]="",
["gr"]="",
@@ -979,7 +954,6 @@ data.labels={
["day"]={
["labels"]={
["en"]="day",
- ["et"]="pÃĪev",
["kr"]="ėž",
["nl"]="dag",
["pe"]="ØąŲˆØē",
@@ -998,7 +972,6 @@ data.labels={
["de"]="Dezember",
["en"]="December",
["es"]="diciembre",
- ["et"]="detsember",
["fi"]="joulukuu",
["fr"]="dÃĐcembre",
["gr"]="ΔÎĩΚέΞÎēρÎđÎŋς",
@@ -1041,7 +1014,6 @@ data.labels={
["de"]="",
["en"]="dec",
["es"]="dic.",
- ["et"]="dets",
["fi"]="",
["fr"]="",
["gr"]="",
@@ -1079,7 +1051,6 @@ data.labels={
["de"]="Februar",
["en"]="February",
["es"]="febrero",
- ["et"]="veebruar",
["fi"]="helmikuu",
["fr"]="fÃĐvrier",
["gr"]="ÎĶÎĩÎēρÎŋυΎρÎđÎŋς",
@@ -1122,7 +1093,6 @@ data.labels={
["de"]="",
["en"]="feb",
["es"]="feb.",
- ["et"]="veebr",
["fi"]="",
["fr"]="",
["gr"]="",
@@ -1158,7 +1128,6 @@ data.labels={
["de"]="Abbildung ",
["en"]="Figure ",
["es"]="Figura ",
- ["et"]="Joonis ",
["fi"]="Kuva ",
["fr"]="Figure ",
["gr"]="ÎĢχÎŪΞι",
@@ -1189,7 +1158,6 @@ data.labels={
["followingpage"]={
["labels"]={
["en"]="on a following page",
- ["et"]="jÃĪrgmisel lehekÞljel",
["nl"]="op een volgende bladzijde",
["pe"]="ØŊØą ØĩŲØ­Ø§ØŠ ØĒیŲ†ØŊŲ‡",
},
@@ -1205,7 +1173,6 @@ data.labels={
["de"]="Freitag",
["en"]="Friday",
["es"]="viernes",
- ["et"]="reede",
["fi"]="perjantai",
["fr"]="vendredi",
["gr"]="Î ÎąÏÎąÏƒÎšÎĩυÎŪ",
@@ -1244,7 +1211,6 @@ data.labels={
["de"]="Graphik ",
["en"]="Graphic ",
["es"]="GrÃĄfico ",
- ["et"]="Pilt ",
["fi"]="Grafiikka ",
["fr"]="Illustration ",
["gr"]="Î“ÏÎąÏ†ÎđΚό",
@@ -1281,7 +1247,6 @@ data.labels={
["de"]="siehe oben",
["en"]="as we show above",
["es"]="como se muestra arriba",
- ["et"]="nii nagu Þleval nÃĪidatud",
["fi"]="",
["fr"]="ci-dessus",
["gr"]="",
@@ -1318,7 +1283,6 @@ data.labels={
["de"]="siehe unten",
["en"]="as we show below",
["es"]="como se muestra abajo",
- ["et"]="nii nagu all nÃĪidatud",
["fi"]="",
["fr"]="ci-dessous",
["gr"]="",
@@ -1356,7 +1320,6 @@ data.labels={
["de"]="Intermezzo ",
["en"]="Intermezzo ",
["es"]="Intermedio ",
- ["et"]="VahemÃĪng ",
["fi"]="Intermezzo ",
["fr"]="IntermÃĻde ",
["gr"]="Î ÎąÏÏƒÎ·",
@@ -1396,7 +1359,6 @@ data.labels={
["de"]="Januar",
["en"]="January",
["es"]="enero",
- ["et"]="jaanuar",
["fi"]="tammikuu",
["fr"]="janvier",
["gr"]="Î™ÎąÎ―ÎŋυΎρÎđÎŋς",
@@ -1439,7 +1401,6 @@ data.labels={
["de"]="",
["en"]="jan",
["es"]="ene.",
- ["et"]="jaan",
["fi"]="",
["fr"]="",
["gr"]="",
@@ -1478,7 +1439,6 @@ data.labels={
["de"]="Juli",
["en"]="July",
["es"]="julio",
- ["et"]="juuli",
["fi"]="heinÃĪkuu",
["fr"]="juillet",
["gr"]="ΙÎŋύÎŧÎđÎŋς",
@@ -1521,7 +1481,6 @@ data.labels={
["de"]="",
["en"]="jul",
["es"]="jul.",
- ["et"]="juuli",
["fi"]="",
["fr"]="",
["gr"]="",
@@ -1559,7 +1518,6 @@ data.labels={
["de"]="Juni",
["en"]="June",
["es"]="junio",
- ["et"]="juuni",
["fi"]="kesÃĪkuu",
["fr"]="juin",
["gr"]="ΙÎŋÏÎ―ÎđÎŋς",
@@ -1602,7 +1560,6 @@ data.labels={
["de"]="",
["en"]="jun",
["es"]="jun.",
- ["et"]="juuni",
["fi"]="",
["fr"]="",
["gr"]="",
@@ -1638,7 +1595,6 @@ data.labels={
["de"]="Zeile ",
["en"]="line ",
["es"]="línea ",
- ["et"]="joon ",
["fi"]="rivi ",
["fr"]="ligne ",
["gr"]="Î“ÏÎąÎžÎžÎŪ",
@@ -1677,7 +1633,6 @@ data.labels={
["de"]="Zeilen ",
["en"]="lines ",
["es"]="líneas ",
- ["et"]="jooned ",
["fi"]="rivie ",
["fr"]="lignes ",
["gr"]="Î“ÏÎąÎžÎžÎ­Ï‚",
@@ -1717,7 +1672,6 @@ data.labels={
["de"]="MÃĪrz",
["en"]="March",
["es"]="marzo",
- ["et"]="mÃĪrts",
["fi"]="maaliskuu",
["fr"]="mars",
["gr"]="ΜΎρτÎđÎŋς",
@@ -1760,7 +1714,6 @@ data.labels={
["de"]="",
["en"]="mar",
["es"]="mar.",
- ["et"]="mÃĪrts",
["fi"]="",
["fr"]="",
["gr"]="",
@@ -1799,7 +1752,6 @@ data.labels={
["de"]="Mai",
["en"]="May",
["es"]="mayo",
- ["et"]="mai",
["fi"]="toukokuu",
["fr"]="mai",
["gr"]="ΜήÎđÎŋς",
@@ -1842,7 +1794,6 @@ data.labels={
["de"]="",
["en"]="may",
["es"]="may.",
- ["et"]="mai",
["fi"]="",
["fr"]="",
["gr"]="",
@@ -1878,7 +1829,6 @@ data.labels={
["de"]="Montag",
["en"]="Monday",
["es"]="lunes",
- ["et"]="esmaspÃĪev",
["fi"]="maanantai",
["fr"]="lundi",
["gr"]="ΔÎĩÏ…Ï„Î­ÏÎą",
@@ -1909,7 +1859,6 @@ data.labels={
["month"]={
["labels"]={
["en"]="month",
- ["et"]="kuu",
["kr"]="ė›”",
["nl"]="maand",
["pe"]="Ų…اŲ‡",
@@ -1928,7 +1877,6 @@ data.labels={
["de"]="November",
["en"]="November",
["es"]="noviembre",
- ["et"]="november",
["fi"]="marraskuu",
["fr"]="novembre",
["gr"]="ΝÎŋέΞÎēρÎđÎŋς",
@@ -1971,7 +1919,6 @@ data.labels={
["de"]="",
["en"]="nov",
["es"]="nov.",
- ["et"]="nov",
["fi"]="",
["fr"]="",
["gr"]="",
@@ -2008,7 +1955,6 @@ data.labels={
["de"]="Oktober",
["en"]="October",
["es"]="octubre",
- ["et"]="oktoober",
["fi"]="lokakuu",
["fr"]="octobre",
["gr"]="ΟΚτώÎēρÎđÎŋς",
@@ -2051,7 +1997,6 @@ data.labels={
["de"]="",
["en"]="oct",
["es"]="oct.",
- ["et"]="okt",
["fi"]="",
["fr"]="",
["gr"]="",
@@ -2086,7 +2031,6 @@ data.labels={
["de"]="Seite ",
["en"]="page ",
["es"]="pÃĄgina ",
- ["et"]="lehekÞlg ",
["fi"]="",
["fr"]="page ",
["gr"]="",
@@ -2124,7 +2068,6 @@ data.labels={
["de"]="Teil ",
["en"]="Part ",
["es"]="Parte ",
- ["et"]="Osa ",
["fi"]="Osa ",
["fr"]="Partie ",
["gr"]="ΜέρÎŋς",
@@ -2155,7 +2098,6 @@ data.labels={
["precedingpage"]={
["labels"]={
["en"]="on a preceding page",
- ["et"]="eelmisel lehel",
["nl"]="op een voorgaande bladzijde",
["pe"]="ØŊØą ØĩŲØ­Ø§ØŠ ÚŊØ°ØīØŠŲ‡",
},
@@ -2171,7 +2113,6 @@ data.labels={
["de"]="Samstag",
["en"]="Saturday",
["es"]="sÃĄbado",
- ["et"]="laupÃĪev",
["fi"]="lauantai",
["fr"]="samedi",
["gr"]="ÎĢÎŽÎēÎēÎąÏ„Îŋ",
@@ -2211,7 +2152,6 @@ data.labels={
["de"]="",
["en"]="",
["es"]="SecciÃģn ",
- ["et"]="jaos ",
["fi"]="",
["fr"]="Section ",
["gr"]="Î•Î―ÏŒÏ„Î·Ï„Îą",
@@ -2249,7 +2189,6 @@ data.labels={
["de"]="siehe ",
["en"]="see ",
["es"]="ver: ",
- ["et"]="vaadake ",
["fi"]="",
["fr"]="cf. ",
["gr"]="",
@@ -2289,7 +2228,6 @@ data.labels={
["de"]="September",
["en"]="September",
["es"]="septiembre",
- ["et"]="september",
["fi"]="syyskuu",
["fr"]="septembre",
["gr"]="ÎĢÎĩπτέΞÎēρÎđÎŋς",
@@ -2332,7 +2270,6 @@ data.labels={
["de"]="",
["en"]="sep",
["es"]="sep.",
- ["et"]="sept",
["fi"]="",
["fr"]="",
["gr"]="",
@@ -2369,7 +2306,6 @@ data.labels={
["de"]="",
["en"]="",
["es"]="SubsecciÃģn ",
- ["et"]="alajaotis ",
["fi"]="",
["fr"]="Soussection ",
["gr"]="ÎĨπόÎĩÎ―ÏŒÏ„Î·Ï„Îą",
@@ -2408,7 +2344,6 @@ data.labels={
["de"]="",
["en"]="",
["es"]="SubsubsecciÃģn ",
- ["et"]="alamjaotis ",
["fi"]="",
["fr"]="Soussoussection ",
["gr"]="",
@@ -2447,7 +2382,6 @@ data.labels={
["de"]="",
["en"]="",
["es"]="SubsubsubsecciÃģn ",
- ["et"]="",
["fi"]="",
["fr"]="Soussoussoussection ",
["gr"]="",
@@ -2485,7 +2419,6 @@ data.labels={
["de"]="Sonntag",
["en"]="Sunday",
["es"]="domingo",
- ["et"]="pÞhapÃĪev",
["fi"]="sunnuntai",
["fr"]="dimanche",
["gr"]="ΚυρÎđιΚÎŪ",
@@ -2524,7 +2457,6 @@ data.labels={
["de"]="Tabelle ",
["en"]="Table ",
["es"]="Tabla ",
- ["et"]="Tabel ",
["fi"]="Taulukko ",
["fr"]="Tableau ",
["gr"]="ΠÎŊÎ―ÎąÎšÎąÏ‚",
@@ -2563,7 +2495,6 @@ data.labels={
["de"]="Donnerstag",
["en"]="Thursday",
["es"]="jueves",
- ["et"]="neljapÃĪev",
["fi"]="torstai",
["fr"]="jeudi",
["gr"]="ΠέΞπτη",
@@ -2602,7 +2533,6 @@ data.labels={
["de"]="Dienstag",
["en"]="Tuesday",
["es"]="martes",
- ["et"]="teisipÃĪev",
["fi"]="tiistai",
["fr"]="mardi",
["gr"]="ÎĪρÎŊτη",
@@ -2641,7 +2571,6 @@ data.labels={
["de"]="Mittwoch",
["en"]="Wednesday",
["es"]="miÃĐrcoles",
- ["et"]="kolmapÃĪev",
["fi"]="keskiviikko",
["fr"]="mercredi",
["gr"]="ÎĪÎĩτΎρτη",
@@ -2672,7 +2601,6 @@ data.labels={
["year"]={
["labels"]={
["en"]="year",
- ["et"]="aasta",
["kr"]="년",
["nl"]="jaar",
["pe"]="ØģاŲ„",
@@ -2691,7 +2619,6 @@ data.labels={
["de"]="AbkÞrzungen",
["en"]="Abbreviations",
["es"]="Abreviaturas",
- ["et"]="LÞhend",
["fi"]="Lyhennyksi",
["fr"]="AbrÃĐviations",
["gr"]="ÎĢÏ…Î―Ï„ÎŋΞÎŋÎģÏÎąÏ†ÎŊÎĩς",
@@ -2730,7 +2657,6 @@ data.labels={
["de"]="Inhalt",
["en"]="Contents",
["es"]="Contenido",
- ["et"]="Sisu",
["fi"]="SisÃĪllys",
["fr"]="Table des matiÃĻres",
["gr"]="ΠÎĩρÎđÎĩχόΞÎĩÎ―Îą",
@@ -2769,7 +2695,6 @@ data.labels={
["de"]="Abbildungen",
["en"]="Figures",
["es"]="Figuras",
- ["et"]="Arvandmed",
["fi"]="Kuvi",
["fr"]="Figures",
["gr"]="ÎĢχÎŪÎžÎąÏ„Îą",
@@ -2808,7 +2733,6 @@ data.labels={
["de"]="Graphiken",
["en"]="Graphics",
["es"]="GrÃĄficos",
- ["et"]="Graafika",
["fi"]="Grafiikkaoi",
["fr"]="Graphiques",
["gr"]="Î“ÏÎąÏ†ÎđΚΎ",
@@ -2847,7 +2771,6 @@ data.labels={
["de"]="Index",
["en"]="Index",
["es"]="Índice",
- ["et"]="Indeks",
["fi"]="Indeksiluku",
["fr"]="Index",
["gr"]="ΕυρÎĩτÎŪρÎđÎŋ",
@@ -2886,7 +2809,6 @@ data.labels={
["de"]="Intermezzi",
["en"]="Intermezzos",
["es"]="Intermedios",
- ["et"]="VahemÃĪngud",
["fi"]="Intermezzos",
["fr"]="IntermÃĻdes",
["gr"]="Î ÎąÏÏƒÎĩÎđς",
@@ -2924,7 +2846,6 @@ data.labels={
["de"]="Logos",
["en"]="Logos",
["es"]="Logotipos",
- ["et"]="Logos",
["fi"]="Vertauskuva",
["fr"]="Logos",
["gr"]="ΛÎŋÎģÏŒÏ„Ï…Ï€Îą",
@@ -2961,7 +2882,6 @@ data.labels={
["de"]="Literatur",
["en"]="References",
["es"]="Bibliografía",
- ["et"]="Viited",
["fi"]="",
["fr"]="Bibliographie",
["gr"]="",
@@ -2999,7 +2919,6 @@ data.labels={
["de"]="Tabellen",
["en"]="Tables",
["es"]="Tablas",
- ["et"]="Tabelid",
["fi"]="Taulukkoj",
["fr"]="Tableaux",
["gr"]="ΠÎŊÎ―ÎąÎšÎĩς",
@@ -3038,7 +2957,6 @@ data.labels={
["de"]="Einheiten",
["en"]="Units",
["es"]="Unidades",
- ["et"]="Ühikud",
["fi"]="YksikÃķt",
["fr"]="UnitÃĐs",
["gr"]="ΜÎŋÎ―ÎŽÎīÎĩς",
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lang-url.lua b/Master/texmf-dist/tex/context/base/mkiv/lang-url.lua
index 17ad15cd890..95d9592067d 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lang-url.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lang-url.lua
@@ -8,6 +8,7 @@ if not modules then modules = { } end modules ['lang-url'] = {
local utfcharacters, utfvalues, utfbyte, utfchar = utf.characters, utf.values, utf.byte, utf.char
local min, max = math.min, math.max
+local concat = table.concat
local context = context
@@ -76,10 +77,9 @@ urls.righthyphenmin = 3
urls.discretionary = nil
urls.packslashes = false
-directives.register("hyphenators.urls.packslashes",function(v) urls.packslashes = v end)
-
-local trace = false trackers.register("hyphenators.urls",function(v) trace = v end)
-local report = logs.reporter("hyphenators","urls")
+directives.register("hyphenators.urls.packslashes",function(v)
+ urls.packslashes = v
+end)
-- local ctx_a = context.a
-- local ctx_b = context.b
@@ -153,10 +153,8 @@ local function action(hyphenatedurl,str,left,right,disc)
local pack = urls.packslashes
local length = 0
local list = utf.split(str)
- local size = #list
- local prev = nil
- for i=1,size do
+ for i=1,#list do
local what = nil
local dodi = false
local char = list[i]
@@ -164,7 +162,7 @@ local function action(hyphenatedurl,str,left,right,disc)
char = mapping[char] or char
if char == disc then
dodi = true
- elseif pack and char == "/" and (list[i+1] == "/" or prev == "/") then
+ elseif pack and char == "/" and list[i+1] == "/" then
what = "c"
else
local how = characters[char]
@@ -194,13 +192,9 @@ local function action(hyphenatedurl,str,left,right,disc)
else
list[i] = "\\" .. what .. "{" .. utfbyte(char) .. "}"
end
- prev = char
- end
- if trace then
- report("old : %s",str)
- report("new : %t",list)
end
- context("%t",list)
+ list = concat(list)
+ context(list)
end
-- urls.action = function(_,...) action(...) end -- sort of obsolete
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lang-wrd.lua b/Master/texmf-dist/tex/context/base/mkiv/lang-wrd.lua
index 9fbced2ce95..7363dbb3168 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lang-wrd.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lang-wrd.lua
@@ -31,6 +31,7 @@ local numbers = languages.numbers
local registered = languages.registered
local nuts = nodes.nuts
+local tonut = nuts.tonut
----- getfield = nuts.getfield
local getnext = nuts.getnext
@@ -42,8 +43,8 @@ local setattr = nuts.setattr
local getlang = nuts.getlang
local ischar = nuts.ischar
-local nextnode = nuts.traversers.node
------ nextglyph = nuts.traversers.glyph
+local traverse_nodes = nuts.traverse
+----- traverse_ids = nuts.traverse_id
local wordsdata = words.data
local chardata = characters.data
@@ -144,13 +145,14 @@ end
-- there is an n=1 problem somewhere in nested boxes
local function mark_words(head,whenfound) -- can be optimized and shared
- local current, language = head, nil, nil, 0
+ local current, language, done = tonut(head), nil, nil, 0, false
local str, s, nds, n = { }, 0, { }, 0 -- n could also be a table, saves calls
local function action()
if s > 0 then
local word = concat(str,"",1,s)
local mark = whenfound(language,word)
if mark then
+ done = true
for i=1,n do
mark(nds[i])
end
@@ -196,7 +198,7 @@ local function mark_words(head,whenfound) -- can be optimized and shared
-- n = n + 1
-- nds[n] = current
-- --
- -- for current in nextglyph, r do
+ -- for current in traverse_ids(glyph_code,r) do
-- local code = getchar(current)
-- n = n + 1
-- nds[n] = current
@@ -215,7 +217,7 @@ local function mark_words(head,whenfound) -- can be optimized and shared
if s > 0 then
action()
end
- return head
+ return head, done
end
local methods = { }
@@ -283,7 +285,7 @@ local function sweep(language,str)
end
methods[1] = function(head)
- for n in nextnode, head do
+ for n in traverse_nodes(head) do
setattr(n,a_color,unsetvalue) -- hm, not that selective (reset color)
end
return mark_words(head,sweep)
@@ -378,7 +380,7 @@ local function sweep(language,str)
end
methods[3] = function(head)
- for n in nextnode, head do
+ for n in traverse_nodes(head) do
setattr(n,a_color,unsetvalue)
end
return mark_words(head,sweep)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lpdf-ano.lua b/Master/texmf-dist/tex/context/base/mkiv/lpdf-ano.lua
index 49bf973c9f8..01f015b7284 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lpdf-ano.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lpdf-ano.lua
@@ -18,7 +18,6 @@ local rep, format, find = string.rep, string.format, string.find
local min = math.min
local lpegmatch = lpeg.match
local formatters = string.formatters
-local sortedkeys = table.sortedkeys
local backends, lpdf = backends, lpdf
@@ -49,6 +48,10 @@ local nodeinjections = backends.pdf.nodeinjections
local codeinjections = backends.pdf.codeinjections
local registrations = backends.pdf.registrations
+local getpos = codeinjections.getpos
+local gethpos = codeinjections.gethpos
+local getvpos = codeinjections.getvpos
+
local javascriptcode = interactions.javascripts.code
local references = structures.references
@@ -65,15 +68,12 @@ local executers = references.executers
local nodepool = nodes.pool
+----- pdfannotation_node = nodepool.pdfannotation
+----- pdfdestination_node = nodepool.pdfdestination
local new_latelua = nodepool.latelua
local texgetcount = tex.getcount
-local jobpositions = job.positions
-local getpos = jobpositions.getpos
-local gethpos = jobpositions.gethpos
-local getvpos = jobpositions.getvpos
-
local pdfdictionary = lpdf.dictionary
local pdfarray = lpdf.array
local pdfreference = lpdf.reference
@@ -106,32 +106,6 @@ local pdf_fit = pdfconstant("Fit")
local pdf_named = pdfconstant("Named")
local autoprefix = "#"
-local usedautoprefixes = { }
-
-local function registerautoprefix(name)
- local internal = autoprefix .. name
- if usedautoprefixes[internal] == nil then
- usedautoprefixes[internal] = false
- end
- return internal
-end
-
-local function useautoprefix(name)
- local internal = autoprefix .. name
- usedautoprefixes[internal] = true
- return internal
-end
-
-local function checkautoprefixes(destinations)
- for k, v in next, usedautoprefixes do
- if not v then
- if trace_destinations then
- report_destinations("flushing unused autoprefix %a",k)
- end
- destinations[k] = nil
- end
- end
-end
-- Bah, I hate this kind of features .. anyway, as we have delayed resolving we
-- only support a document-wide setup and it has to be set before the first one
@@ -139,9 +113,9 @@ end
-- thin without dashing lines. This is as far as I'm prepared to go. This way
-- it can also be used as a debug feature.
-local pdf_border_style = pdfarray { 0, 0, 0 } -- radius radius linewidth
-local pdf_border_color = nil
-local set_border = false
+local pdf_border_style = pdfarray { 0, 0, 0 } -- radius radius linewidth
+local pdf_border_color = nil
+local set_border = false
local function pdfborder()
set_border = true
@@ -157,9 +131,7 @@ directives.register("references.border",function(v)
local c = m and m[v]
local v = c and attributes.colors.value(c)
if v then
- local r = v[3]
- local g = v[4]
- local b = v[5]
+ local r, g, b = v[3], v[4], v[5]
-- if r == g and g == b then
-- pdf_border_color = pdfarray { r } -- reduced, not not ... bugged viewers
-- else
@@ -220,16 +192,12 @@ local defaultdestination = pdfarray { 0, pdf_fit }
-- fit is default (see lpdf-nod)
-local destinations = { }
-local reported = setmetatableindex("table")
+local destinations = { } -- to be used soon
local function pdfregisterdestination(name,reference)
local d = destinations[name]
if d then
- if not reported[name][reference] then
- report_destinations("ignoring duplicate destination %a with reference %a",name,reference)
- reported[name][reference] = true
- end
+ report_destinations("ignoring duplicate destination %a with reference %a",name,reference)
else
destinations[name] = reference
end
@@ -254,11 +222,7 @@ end)
local function pdfnametree(destinations)
local slices = { }
- checkautoprefixes(destinations)
- if not next(destinations) then
- return
- end
- local sorted = sortedkeys(destinations)
+ local sorted = table.sortedkeys(destinations)
local size = #sorted
if size <= 1.5*maxslice then
@@ -268,12 +232,11 @@ local function pdfnametree(destinations)
for i=1,size,maxslice do
local amount = min(i+maxslice-1,size)
local names = pdfarray { }
- local n = 0
for j=i,amount do
local destination = sorted[j]
local pagenumber = destinations[destination]
- n = n + 1 ; names[n] = tostring(destination) -- tostring is a safeguard
- n = n + 1 ; names[n] = pdfreference(pagenumber)
+ names[#names+1] = tostring(destination) -- tostring is a safeguard
+ names[#names+1] = pdfreference(pagenumber)
end
local first = sorted[i]
local last = sorted[amount]
@@ -291,23 +254,18 @@ local function pdfnametree(destinations)
}
end
local function collectkids(slices,first,last)
- local f = slices[first]
- local l = slices[last]
- if f and l then
- local k = pdfarray()
- local n = 0
- local d = pdfdictionary {
- Kids = k,
- Limits = pdfarray {
- f.limits[1],
- l.limits[2],
- },
- }
- for i=first,last do
- n = n + 1 ; k[n] = slices[i].reference
- end
- return d
+ local k = pdfarray()
+ local d = pdfdictionary {
+ Kids = k,
+ Limits = pdfarray {
+ slices[first].limits[1],
+ slices[last ].limits[2],
+ },
+ }
+ for i=first,last do
+ k[#k+1] = slices[i].reference
end
+ return d
end
if #slices == 1 then
return slices[1].reference
@@ -318,24 +276,14 @@ local function pdfnametree(destinations)
local size = #slices
for i=1,size,maxslice do
local kids = collectkids(slices,i,min(i+maxslice-1,size))
- if kids then
- temp[#temp+1] = {
- reference = pdfreference(pdfflushobject(kids)),
- limits = kids.Limits,
- }
- else
- -- error
- end
+ temp[#temp+1] = {
+ reference = pdfreference(pdfflushobject(kids)),
+ limits = kids.Limits,
+ }
end
slices = temp
else
- local kids = collectkids(slices,1,#slices)
- if kids then
- return pdfreference(pdfflushobject(kids))
- else
- -- error
- return
- end
+ return pdfreference(pdfflushobject(collectkids(slices,1,#slices)))
end
end
end
@@ -344,9 +292,8 @@ end
local function pdfdestinationspecification()
if next(destinations) then -- safeguard
local r = pdfnametree(destinations)
- if r then
- pdfaddtonames("Dests",r)
- end
+ -- pdfaddtocatalog("Dests",r)
+ pdfaddtonames("Dests",r)
if not log_destinations then
destinations = nil
end
@@ -362,25 +309,14 @@ lpdf.registerdocumentfinalizer(pdfdestinationspecification,"collect destinations
local destinations = { }
-local f_xyz = formatters["<< /D [ %i 0 R /XYZ %.6F %.6F null ] >>"]
+local f_xyz = formatters["<< /D [ %i 0 R /XYZ %0.3F %0.3F null ] >>"]
local f_fit = formatters["<< /D [ %i 0 R /Fit ] >>"]
local f_fitb = formatters["<< /D [ %i 0 R /FitB ] >>"]
-local f_fith = formatters["<< /D [ %i 0 R /FitH %.6F ] >>"]
-local f_fitv = formatters["<< /D [ %i 0 R /FitV %.6F ] >>"]
-local f_fitbh = formatters["<< /D [ %i 0 R /FitBH %.6F ] >>"]
-local f_fitbv = formatters["<< /D [ %i 0 R /FitBV %.6F ] >>"]
-local f_fitr = formatters["<< /D [ %i 0 R /FitR %.6F %.6F %.6F %.6F ] >>"]
-
-directives.register("pdf.stripzeros",function()
- f_xyz = formatters["<< /D [ %i 0 R /XYZ %.6N %.6N null ] >>"]
- f_fit = formatters["<< /D [ %i 0 R /Fit ] >>"]
- f_fitb = formatters["<< /D [ %i 0 R /FitB ] >>"]
- f_fith = formatters["<< /D [ %i 0 R /FitH %.6N ] >>"]
- f_fitv = formatters["<< /D [ %i 0 R /FitV %.6N ] >>"]
- f_fitbh = formatters["<< /D [ %i 0 R /FitBH %.6N ] >>"]
- f_fitbv = formatters["<< /D [ %i 0 R /FitBV %.6N ] >>"]
- f_fitr = formatters["<< /D [ %i 0 R /FitR %.6N %.6N %.6N %.6N ] >>"]
-end)
+local f_fith = formatters["<< /D [ %i 0 R /FitH %0.3F ] >>"]
+local f_fitv = formatters["<< /D [ %i 0 R /FitV %0.3F ] >>"]
+local f_fitbh = formatters["<< /D [ %i 0 R /FitBH %0.3F ] >>"]
+local f_fitbv = formatters["<< /D [ %i 0 R /FitBV %0.3F ] >>"]
+local f_fitr = formatters["<< /D [ %i 0 R /FitR %0.3F %0.3F %0.3F %0.3F ] >>"]
local v_standard = variables.standard
local v_frame = variables.frame
@@ -468,15 +404,13 @@ local pagedestinations = setmetatableindex(function(t,k) -- not the same as the
return v
end)
-local function flushdestination(specification)
- local names = specification.names
- local view = specification.view
- local r = pdfpagereference(texgetcount("realpageno"))
+local function flushdestination(width,height,depth,names,view)
+ local r = pdfpagereference(texgetcount("realpageno"))
if (references.innermethod ~= v_name) and (view == defaultview or not view or view == "") then
r = pagedestinations[r]
else
local action = view and destinationactions[view] or defaultaction
- r = pdfdelayedobject(action(r,specification.width,specification.height,specification.depth,offset))
+ r = pdfdelayedobject(action(r,width,height,depth,offset))
end
for n=1,#names do
local name = names[n]
@@ -525,7 +459,7 @@ function nodeinjections.destination(width,height,depth,names,view)
elseif type(name) == "number" then
local used = usedinternals[name]
usedviews[name] = view
- names[n] = registerautoprefix(name)
+ names[n] = autoprefix .. name
doview = true
else
usedviews[name] = view
@@ -545,9 +479,10 @@ function nodeinjections.destination(width,height,depth,names,view)
local used = usedinternals[name]
if used and used ~= defaultview then
usedviews[name] = view
- names[n] = registerautoprefix(name)
+ names[n] = autoprefix .. name
doview = true
else
+ -- names[n] = autoprefix .. name
names[n] = false
end
end
@@ -558,14 +493,7 @@ function nodeinjections.destination(width,height,depth,names,view)
end
end
if doview then
- return new_latelua {
- action = flushdestination,
- width = width,
- height = height,
- depth = depth,
- names = names,
- view = view,
- }
+ return new_latelua(function() flushdestination(width,height,depth,names,view) end)
end
end
@@ -576,7 +504,7 @@ local function pdflinkpage(page)
end
local function pdflinkinternal(internal,page)
- -- local method = references.innermethod
+ local method = references.innermethod
if internal then
flaginternals[internal] = true -- for bookmarks and so
local used = usedinternals[internal]
@@ -584,7 +512,7 @@ local function pdflinkinternal(internal,page)
return pagereferences[page]
else
if type(internal) ~= "string" then
- internal = useautoprefix(internal)
+ internal = autoprefix .. internal
end
return pdfdictionary {
S = pdf_goto,
@@ -631,7 +559,7 @@ local function pdffilelink(filename,destination,page,actions)
end
filename = file.addsuffix(filename,"pdf")
if (not destination or destination == "") or (references.outermethod == v_page) then
- destination = pdfarray { (page or 1) - 1, pdf_fit }
+ destination = pdfarray { (page or 0) - 1, pdf_fit }
end
return pdfdictionary {
S = pdf_gotor, -- can also be pdf_launch
@@ -707,7 +635,7 @@ local function pdfaction(actions)
return nil
end
end
- return first, actions.n or #actions
+ return first, actions.n
end
end
end
@@ -758,15 +686,9 @@ local nofused = 0
local nofspecial = 0
local share = true
-local f_annot = formatters["<< /Type /Annot %s /Rect [ %0.6F %0.6F %0.6F %0.6F ] >>"]
+local f_annot = formatters["<< /Type /Annot %s /Rect [ %0.3F %0.3F %0.3F %0.3F ] >>"]
-directives.register("pdf.stripzeros",function()
- f_annot = formatters["<< /Type /Annot %s /Rect [ %0.6N %0.6N %0.6N %0.6N ] >>"]
-end)
-
-directives.register("references.sharelinks", function(v)
- share = v
-end)
+directives.register("references.sharelinks", function(v) share = v end)
setmetatableindex(hashed,function(t,k)
local v = pdfdelayedobject(k)
@@ -777,26 +699,24 @@ setmetatableindex(hashed,function(t,k)
return v
end)
-local function finishreference(specification) -- %0.2f looks okay enough (no scaling anyway)
- local annot = hashed[f_annot(specification.prerolled,pdfrectangle(specification.width,specification.height,specification.depth))]
+local function finishreference(width,height,depth,prerolled) -- %0.2f looks okay enough (no scaling anyway)
+ local annot = hashed[f_annot(prerolled,pdfrectangle(width,height,depth))]
nofused = nofused + 1
return pdfregisterannotation(annot)
end
-local function finishannotation(specification)
- local prerolled = specification.prerolled
- local objref = specification.objref
+local function finishannotation(width,height,depth,prerolled,r)
if type(prerolled) == "function" then
prerolled = prerolled()
end
- local annot = f_annot(prerolled,pdfrectangle(specification.width,specification.height,specification.depth))
- if objref then
- pdfdelayedobject(annot,objref)
+ local annot = f_annot(prerolled,pdfrectangle(width,height,depth))
+ if r then
+ pdfdelayedobject(annot,r)
else
- objref = pdfdelayedobject(annot)
+ r = pdfdelayedobject(annot)
end
nofspecial = nofspecial + 1
- return pdfregisterannotation(objref)
+ return pdfregisterannotation(r)
end
function nodeinjections.reference(width,height,depth,prerolled)
@@ -804,30 +724,17 @@ function nodeinjections.reference(width,height,depth,prerolled)
if trace_references then
report_references("link: width %p, height %p, depth %p, prerolled %a",width,height,depth,prerolled)
end
- return new_latelua {
- action = finishreference,
- width = width,
- height = height,
- depth = depth,
- prerolled = prerolled,
- }
+ return new_latelua(function() finishreference(width,height,depth,prerolled) end)
end
end
-function nodeinjections.annotation(width,height,depth,prerolled,objref)
+function nodeinjections.annotation(width,height,depth,prerolled,r)
if prerolled then
if trace_references then
report_references("special: width %p, height %p, depth %p, prerolled %a",width,height,depth,
type(prerolled) == "string" and prerolled or "-")
end
- return new_latelua {
- action = finishannotation,
- width = width,
- height = height,
- depth = depth,
- prerolled = prerolled,
- objref = objref or false,
- }
+ return new_latelua(function() finishannotation(width,height,depth,prerolled,r or false) end)
end
end
@@ -850,9 +757,7 @@ pdfregisterannotation = lpdf.registerannotation
function lpdf.annotationspecification()
if annotations then
local r = pdfdelayedobject(tostring(annotations)) -- delayed so okay in latelua
- if r then
- pdfaddtopageattributes("Annots",pdfreference(r))
- end
+ pdfaddtopageattributes("Annots",pdfreference(r))
annotations = nil
end
end
@@ -967,21 +872,16 @@ end
runners["special operation"] = runners["special"]
runners["special operation with arguments"] = runners["special"]
-local reported = { }
-
function specials.internal(var,actions) -- better resolve in strc-ref
- local o = var.operation
- local i = o and tonumber(o)
+ local i = tonumber(var.operation)
local v = i and references.internals[i]
- if v then
- flaginternals[i] = true -- also done in pdflinkinternal
+ if not v then
+ -- error
+ report_references("no internal reference %a",i or "<unset>")
+ else
+ flaginternals[i] = true
return pdflinkinternal(i,v.references.realpage)
end
- local v = i or o or "<unset>"
- if not reported[v] then
- report_references("no internal reference %a",v)
- reported[v] = true
- end
end
-- realpage already resolved
@@ -1046,18 +946,19 @@ end
-- sections
-function specials.section(var,actions)
- -- a bit duplicate
- local sectionname = var.arguments
- local destination = var.operation
- local internal = structures.sections.internalreference(sectionname,destination)
- if internal then
- var.special = "internal"
- var.operation = internal
- var.arguments = nil
- return specials.internal(var,actions)
- end
-end
+-- function specials.section(var,actions)
+-- local sectionname = var.operation
+-- local destination = var.arguments
+-- local internal = structures.sections.internalreference(sectionname,destination)
+-- if internal then
+-- var.special = "internal"
+-- var.operation = internal
+-- var.arguments = nil
+-- specials.internal(var,actions)
+-- end
+-- end
+
+specials.section = specials.internal -- specials.section just need to have a value as it's checked
-- todo, do this in references namespace ordered instead (this is an experiment)
@@ -1228,8 +1129,7 @@ end
local function build(levels,start,parent,method,nested)
local startlevel = levels[start].level
local noflevels = #levels
- local i = start
- local n = 0
+ local i, n = start, 0
local child, entry, m, prev, first, last, f, l
while i and i <= noflevels do
local current = levels[i]
@@ -1246,12 +1146,11 @@ local function build(levels,start,parent,method,nested)
local variant = "unknown"
if reftype == "table" then
-- we're okay
- variant = "list"
- block = reference.block
- realpage = reference.realpage
+ variant = "list"
+ block = reference.block
elseif reftype == "string" then
local resolved = references.identify("",reference)
- realpage = resolved and structures.references.setreferencerealpage(resolved) or 0
+ local realpage = resolved and structures.references.setreferencerealpage(resolved) or 0
if realpage > 0 then
variant = "realpage"
realpage = realpage
@@ -1352,6 +1251,7 @@ end
function codeinjections.addbookmarks(levels,method)
if levels and #levels > 0 then
+-- inspect(levels)
local parent = pdfreserveobject()
local _, m, first, last = build(levels,1,pdfreference(parent),method or "internal",false)
local dict = pdfdictionary {
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lpdf-aux.lua b/Master/texmf-dist/tex/context/base/mkiv/lpdf-aux.lua
deleted file mode 100644
index 0d7cecbb853..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/lpdf-aux.lua
+++ /dev/null
@@ -1,152 +0,0 @@
-if not modules then modules = { } end modules ['lpdf-aux'] = {
- version = 1.001,
- comment = "companion to lpdf-ini.mkiv",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
-local tonumber = tonumber
-local format, concat = string.format, table.concat
-local utfchar, utfbyte, char = utf.char, utf.byte, string.char
-local lpegmatch, lpegpatterns = lpeg.match, lpeg.patterns
-local P, C, R, S, Cc, Cs, V = lpeg.P, lpeg.C, lpeg.R, lpeg.S, lpeg.Cc, lpeg.Cs, lpeg.V
-local rshift = bit32.rshift
-
-lpdf = lpdf or { }
-
--- tosixteen --
-
-local cache = table.setmetatableindex(function(t,k) -- can be made weak
- local v = utfbyte(k)
- if v < 0x10000 then
- v = format("%04x",v)
- else
- v = format("%04x%04x",rshift(v,10),v%1024+0xDC00)
- end
- t[k] = v
- return v
-end)
-
-local unified = Cs(Cc("<feff") * (lpegpatterns.utf8character/cache)^1 * Cc(">"))
-
-function lpdf.tosixteen(str) -- an lpeg might be faster (no table)
- if not str or str == "" then
- return "<feff>" -- not () as we want an indication that it's unicode
- else
- return lpegmatch(unified,str)
- end
-end
-
--- fromsixteen --
-
--- local zero = S(" \n\r\t") + P("\\ ")
--- local one = C(4)
--- local two = P("d") * R("89","af") * C(2) * C(4)
---
--- local pattern = P { "start",
--- start = V("wrapped") + V("unwrapped") + V("original"),
--- original = Cs(P(1)^0),
--- wrapped = P("<") * V("unwrapped") * P(">") * P(-1),
--- unwrapped = P("feff")
--- * Cs( (
--- zero / ""
--- + two / function(a,b)
--- a = (tonumber(a,16) - 0xD800) * 1024
--- b = (tonumber(b,16) - 0xDC00)
--- return utfchar(a+b)
--- end
--- + one / function(a)
--- return utfchar(tonumber(a,16))
--- end
--- )^1 ) * P(-1)
--- }
---
--- function lpdf.fromsixteen(s)
--- return lpegmatch(pattern,s) or s
--- end
-
-local more = 0
-
-local pattern = C(4) / function(s) -- needs checking !
- local now = tonumber(s,16)
- if more > 0 then
- now = (more-0xD800)*0x400 + (now-0xDC00) + 0x10000 -- the 0x10000 smells wrong
- more = 0
- return utfchar(now)
- elseif now >= 0xD800 and now <= 0xDBFF then
- more = now
- return "" -- else the c's end up in the stream
- else
- return utfchar(now)
- end
-end
-
-local pattern = P(true) / function() more = 0 end * Cs(pattern^0)
-
-function lpdf.fromsixteen(str)
- if not str or str == "" then
- return ""
- else
- return lpegmatch(pattern,str)
- end
-end
-
--- frombytes --
-
-local b_pattern = Cs((P("\\")/"" * (
- S("()")
- + S("nrtbf")/ { n = "\n", r = "\r", t = "\t", b = "\b", f = "\f" }
- + lpegpatterns.octdigit^-3 / function(s) return char(tonumber(s,8)) end)
-+ P(1))^0)
-
-local u_pattern = lpegpatterns.utfbom_16_be * lpegpatterns.utf16_to_utf8_be -- official
- + lpegpatterns.utfbom_16_le * lpegpatterns.utf16_to_utf8_le -- we've seen these
-
-local h_pattern = lpegpatterns.hextobytes
-
-local zero = S(" \n\r\t") + P("\\ ")
-local one = C(4)
-local two = P("d") * R("89","af") * C(2) * C(4)
-
-local x_pattern = P { "start",
- start = V("wrapped") + V("unwrapped") + V("original"),
- original = Cs(P(1)^0),
- wrapped = P("<") * V("unwrapped") * P(">") * P(-1),
- unwrapped = P("feff")
- * Cs( (
- zero / ""
- + two / function(a,b)
- a = (tonumber(a,16) - 0xD800) * 1024
- b = (tonumber(b,16) - 0xDC00)
- return utfchar(a+b)
- end
- + one / function(a)
- return utfchar(tonumber(a,16))
- end
- )^1 ) * P(-1)
-}
-
-function lpdf.frombytes(s,hex)
- if not s or s == "" then
- return ""
- end
- if hex then
- local x = lpegmatch(x_pattern,s)
- if x then
- return x
- end
- local h = lpegmatch(h_pattern,s)
- if h then
- return h
- end
- else
- local u = lpegmatch(u_pattern,s)
- if u then
- return u
- end
- end
- return lpegmatch(b_pattern,s)
-end
-
--- done --
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lpdf-col.lua b/Master/texmf-dist/tex/context/base/mkiv/lpdf-col.lua
index b697dc4816a..d1a1af97dcf 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lpdf-col.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lpdf-col.lua
@@ -23,7 +23,7 @@ local registrations = backends.pdf.registrations
local nodepool = nodes.nuts.pool
local register = nodepool.register
-local pageliteral = nodepool.pageliteral
+local pdfpageliteral = nodepool.pdfpageliteral
local pdfconstant = lpdf.constant
local pdfdictionary = lpdf.dictionary
@@ -64,20 +64,13 @@ local f_cmyk = formatters["%.3F %.3F %.3F %.3F k %.3F %.3F %.3F %.3F K"]
local f_spot = formatters["/%s cs /%s CS %s SCN %s scn"]
local f_tr = formatters["Tr%s"]
local f_cm = formatters["q %.6F %.6F %.6F %.6F %.6F %.6F cm"]
-local f_effect = formatters["%s Tc %s w %s Tr"] -- %.3F ?
+local f_effect = formatters["%s Tc %s w %s Tr"]
local f_tr_gs = formatters["/Tr%s gs"]
local f_num_1 = tostring
local f_num_2 = formatters["%s %s"]
local f_num_3 = formatters["%s %s %s"]
local f_num_4 = formatters["%s %s %s %s"]
-directives.register("pdf.stripzeros",function()
- f_gray = formatters["%.3N g %.3N G"]
- f_rgb = formatters["%.3N %.3N %.3N rg %.3N %.3N %.3N RG"]
- f_cmyk = formatters["%.3N %.3N %.3N %.3N k %.3N %.3N %.3N %.3N K"]
- f_cm = formatters["q %.6N %.6N %.6N %.6N %.6N %.6N cm"]
-end)
-
local report_color = logs.reporter("colors","backend")
-- page groups (might move to lpdf-ini.lua)
@@ -129,26 +122,26 @@ lpdf.registerpagefinalizer(addpagegroup,3,"pagegroup")
-- color injection
function nodeinjections.rgbcolor(r,g,b)
- return register(pageliteral(f_rgb(r,g,b,r,g,b)))
+ return register(pdfpageliteral(f_rgb(r,g,b,r,g,b)))
end
function nodeinjections.cmykcolor(c,m,y,k)
- return register(pageliteral(f_cmyk(c,m,y,k,c,m,y,k)))
+ return register(pdfpageliteral(f_cmyk(c,m,y,k,c,m,y,k)))
end
function nodeinjections.graycolor(s) -- caching 0/1 does not pay off
- return register(pageliteral(f_gray(s,s)))
+ return register(pdfpageliteral(f_gray(s,s)))
end
function nodeinjections.spotcolor(n,f,d,p)
if type(p) == "string" then
p = gsub(p,","," ") -- brr misuse of spot
end
- return register(pageliteral(f_spot(n,n,p,p)))
+ return register(pdfpageliteral(f_spot(n,n,p,p)))
end
function nodeinjections.transparency(n)
- return register(pageliteral(f_tr_gs(n)))
+ return register(pdfpageliteral(f_tr_gs(n)))
end
-- a bit weird but let's keep it here for a while
@@ -167,7 +160,7 @@ function nodeinjections.effect(effect,stretch,rulethickness)
-- always, no zero test (removed)
rulethickness = bp * rulethickness
effect = effects[effect] or effects['normal']
- return register(pageliteral(f_effect(stretch,rulethickness,effect))) -- watch order
+ return register(pdfpageliteral(f_effect(stretch,rulethickness,effect))) -- watch order
end
-- spot- and indexcolors
@@ -342,9 +335,7 @@ local function registersomeindexcolor(name,noffractions,names,p,colorspace,range
colorspace,
pdfreference(n),
}
- local vector = { }
- local set = { }
- local n = #values
+ local vector, set, n = { }, { }, #values
for i=255,0,-1 do
for j=1,n do
set[j] = format("%02X",round(values[j]*i))
@@ -521,21 +512,13 @@ local function lpdfcolor(model,ca,default) -- todo: use gray when no color
local s = cv[2]
return f_gray(s,s)
elseif model == 3 then
- local r = cv[3]
- local g = cv[4]
- local b = cv[5]
+ local r, g, b = cv[3], cv[4], cv[5]
return f_rgb(r,g,b,r,g,b)
elseif model == 4 then
- local c = cv[6]
- local m = cv[7]
- local y = cv[8]
- local k = cv[9]
+ local c, m, y, k = cv[6],cv[7],cv[8],cv[9]
return f_cmyk(c,m,y,k,c,m,y,k)
else
- local n = cv[10]
- local f = cv[11]
- local d = cv[12]
- local p = cv[13]
+ local n,f,d,p = cv[10],cv[11],cv[12],cv[13]
if type(p) == "string" then
p = gsub(p,","," ") -- brr misuse of spot
end
@@ -634,7 +617,7 @@ function lpdf.colorvalues(model,ca,default)
return cv[3], cv[4], cv[5]
elseif model == 4 then
return cv[6], cv[7], cv[8], cv[9]
- elseif model == 5 then
+ elseif model == 4 then
return cv[13]
end
else
@@ -734,10 +717,6 @@ do
local f_slant = formatters["q 1 0 %.6F 1 0 0 cm"]
- directives.register("pdf.stripzeros",function()
- f_slant = formatters["q 1 0 %.6N 1 0 0 cm"]
- end)
-
-- local fillcolors = {
-- red = { "pdf", "origin", "1 0 0 rg" },
-- green = { "pdf", "origin", "0 1 0 rg" },
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lpdf-epa.lua b/Master/texmf-dist/tex/context/base/mkiv/lpdf-epa.lua
index 570d738817f..89b2c6e0e59 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lpdf-epa.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lpdf-epa.lua
@@ -6,79 +6,49 @@ if not modules then modules = { } end modules ['lpdf-epa'] = {
license = "see context related readme files"
}
--- Links can also have quadpoint
+-- This is a rather experimental feature and the code will probably change.
--- embedded files ... not bound to a page
-
-local type, tonumber, next = type, tonumber, next
-local format, gsub, lower, find = string.format, string.gsub, string.lower, string.find
+local type, tonumber = type, tonumber
+local format, gsub, lower = string.format, string.gsub, string.lower
local formatters = string.formatters
-local concat, merged = table.concat, table.merged
local abs = math.abs
local expandname = file.expandname
local allocate = utilities.storage.allocate
-local bor, band = bit32.bor, bit32.band
local isfile = lfs.isfile
-local trace_links = false trackers.register("figures.links", function(v) trace_links = v end)
-local trace_comments = false trackers.register("figures.comments", function(v) trace_comments = v end)
-local trace_fields = false trackers.register("figures.fields", function(v) trace_fields = v end)
-local trace_outlines = false trackers.register("figures.outlines", function(v) trace_outlines = v end)
-
-local report_link = logs.reporter("backend","link")
-local report_comment = logs.reporter("backend","comment")
-local report_field = logs.reporter("backend","field")
-local report_outline = logs.reporter("backend","outline")
-
-local lpdf = lpdf
-local epdf = epdf
-local backends = backends
-local context = context
-
-local nodeinjections = backends.pdf.nodeinjections
-
-local pdfarray = lpdf.array
-local pdfdictionary = lpdf.dictionary
-local pdfconstant = lpdf.constant
-local pdfreserveobject = lpdf.reserveobject
-local pdfreference = lpdf.reference
+----- lpegmatch, lpegpatterns = lpeg.match, lpeg.patterns
-local pdfcopyboolean = lpdf.copyboolean
-local pdfcopyunicode = lpdf.copyunicode
-local pdfcopyarray = lpdf.copyarray
-local pdfcopydictionary = lpdf.copydictionary
-local pdfcopynumber = lpdf.copynumber
-local pdfcopyinteger = lpdf.copyinteger
-local pdfcopystring = lpdf.copystring
-local pdfcopyconstant = lpdf.copyconstant
+local trace_links = false trackers.register("figures.links", function(v) trace_links = v end)
+local trace_outlines = false trackers.register("figures.outliness", function(v) trace_outlines = v end)
-local createimage = images.create
-local embedimage = images.embed
+local report_link = logs.reporter("backend","link")
+local report_comment = logs.reporter("backend","comment")
+local report_field = logs.reporter("backend","field")
+local report_outline = logs.reporter("backend","outline")
-local hpack_node = nodes.hpack
+local epdf = epdf
+local backends = backends
+local lpdf = lpdf
+local context = context
-local loadpdffile = lpdf.epdf.load
+local loadpdffile = lpdf.epdf.load
-local nameonly = file.nameonly
+local nameonly = file.nameonly
-local variables = interfaces.variables
-local codeinjections = backends.pdf.codeinjections
------ urlescaper = lpegpatterns.urlescaper
------ utftohigh = lpegpatterns.utftohigh
-local escapetex = characters.filters.utf.private.escape
+local variables = interfaces.variables
+local codeinjections = backends.pdf.codeinjections
+----- urlescaper = lpegpatterns.urlescaper
+----- utftohigh = lpegpatterns.utftohigh
+local escapetex = characters.filters.utf.private.escape
-local bookmarks = structures.bookmarks
+local bookmarks = structures.bookmarks
-local maxdimen = 0x3FFFFFFF -- 2^30-1
-
-local bpfactor = number.dimenfactors.bp
+local maxdimen = 0x3FFFFFFF -- 2^30-1
local layerspec = { -- predefining saves time
- "epdfcontent"
+ "epdflinks"
}
-local getpos = function() getpos = backends.codeinjections.getpos return getpos () end
-
local collected = allocate()
local tobesaved = allocate()
@@ -96,68 +66,6 @@ end
job.register('job.embedded.collected',tobesaved,initializer)
-local function validdocument(specification)
- if figures and not specification then
- specification = figures and figures.current()
- specification = specification and specification.status
- end
- if specification then
- local fullname = specification.fullname
- local expanded = lower(expandname(fullname))
- -- we could add a check for duplicate page insertion
- tobesaved[expanded] = true
- --- but that is messy anyway so we forget about it
- return specification, fullname, loadpdffile(fullname) -- costs time
- end
-end
-
-local function getmediasize(specification,pagedata)
- local xscale = specification.xscale or 1
- local yscale = specification.yscale or 1
- ----- size = specification.size or "crop" -- todo
- local mediabox = pagedata.MediaBox
- local llx = mediabox[1]
- local lly = mediabox[2]
- local urx = mediabox[3]
- local ury = mediabox[4]
- local width = xscale * (urx - llx) -- \\overlaywidth, \\overlayheight
- local height = yscale * (ury - lly) -- \\overlaywidth, \\overlayheight
- return llx, lly, urx, ury, width, height, xscale, yscale
-end
-
-local function getdimensions(annotation,llx,lly,xscale,yscale,width,height,report)
- local rectangle = annotation.Rect
- local a_llx = rectangle[1]
- local a_lly = rectangle[2]
- local a_urx = rectangle[3]
- local a_ury = rectangle[4]
- local x = xscale * (a_llx - llx)
- local y = yscale * (a_lly - lly)
- local w = xscale * (a_urx - a_llx)
- local h = yscale * (a_ury - a_lly)
- if w > width or h > height or w < 0 or h < 0 or abs(x) > (maxdimen/2) or abs(y) > (maxdimen/2) then
- report("broken rectangle [%.6F %.6F %.6F %.6F] (max: %.6F)",a_llx,a_lly,a_urx,a_ury,maxdimen/2)
- return
- end
- return x, y, w, h, a_llx, a_lly, a_urx, a_ury
-end
-
-local layerused = false
-
-local function initializelayer(height,width)
- if not layerused then
- context.definelayer(layerspec, { height = height .. "bp", width = width .. "bp" })
- layerused = true
- end
-end
-
-function codeinjections.flushmergelayer()
- if layerused then
- context.flushlayer(layerspec)
- layerused = false
- end
-end
-
local f_namespace = formatters["lpdf-epa-%s-"]
local function makenamespace(filename)
@@ -274,51 +182,82 @@ local function link_file(x,y,w,h,document,annotation)
end
end
--- maybe handler per subtype and then one loop but then what about order ...
-
function codeinjections.mergereferences(specification)
- local specification, fullname, document = validdocument(specification)
+ if figures and not specification then
+ specification = figures and figures.current()
+ specification = specification and specification.status
+ end
+ if not specification then
+ return ""
+ end
+ local fullname = specification.fullname
+ local expanded = lower(expandname(fullname))
+ -- we could add a check for duplicate page insertion
+ tobesaved[expanded] = true
+ --- but that is messy anyway so we forget about it
+ local document = loadpdffile(fullname) -- costs time
if not document then
return ""
end
- local pagenumber = specification.page or 1
+ local pagenumber = specification.page or 1
+ local xscale = specification.yscale or 1
+ local yscale = specification.yscale or 1
+ local size = specification.size or "crop" -- todo
local pagedata = document.pages[pagenumber]
local annotations = pagedata and pagedata.Annots
local namespace = makenamespace(fullname)
local reference = namespace .. pagenumber
- if annotations and #annotations > 0 then
- local llx, lly, urx, ury, width, height, xscale, yscale = getmediasize(specification,pagedata,xscale,yscale)
- initializelayer(height,width)
- for i=1,#annotations do
+ if annotations and annotations.n > 0 then
+ local mediabox = pagedata.MediaBox
+ local llx = mediabox[1]
+ local lly = mediabox[2]
+ local urx = mediabox[3]
+ local ury = mediabox[4]
+ local width = xscale * (urx - llx) -- \\overlaywidth, \\overlayheight
+ local height = yscale * (ury - lly) -- \\overlaywidth, \\overlayheight
+ context.definelayer( { "epdflinks" }, { height = height.."bp" , width = width.."bp" })
+ for i=1,annotations.n do
local annotation = annotations[i]
if annotation then
- if annotation.Subtype == "Link" then
+ local subtype = annotation.Subtype
+ local rectangle = annotation.Rect
+ local a_llx = rectangle[1]
+ local a_lly = rectangle[2]
+ local a_urx = rectangle[3]
+ local a_ury = rectangle[4]
+ local x = xscale * (a_llx - llx)
+ local y = yscale * (a_lly - lly)
+ local w = xscale * (a_urx - a_llx)
+ local h = yscale * (a_ury - a_lly)
+ if subtype == "Link" then
local a = annotation.A
if not a then
report_link("missing link annotation")
+ elseif w > width or h > height or w < 0 or h < 0 or abs(x) > (maxdimen/2) or abs(y) > (maxdimen/2) then
+ report_link("broken link rectangle [%.6F %.6F %.6F %.6F] (max: %.6F)",a_llx,a_lly,a_urx,a_ury,maxdimen/2)
else
- local x, y, w, h = getdimensions(annotation,llx,lly,xscale,yscale,width,height,report_link)
- if x then
- local linktype = a.S
- if linktype == "GoTo" then
- link_goto(x,y,w,h,document,annotation,pagedata,namespace)
- elseif linktype == "GoToR" then
- link_file(x,y,w,h,document,annotation)
- elseif linktype == "URI" then
- link_uri(x,y,w,h,document,annotation)
- elseif trace_links then
- report_link("unsupported link annotation %a",linktype)
- end
+ local linktype = a.S
+ if linktype == "GoTo" then
+ link_goto(x,y,w,h,document,annotation,pagedata,namespace)
+ elseif linktype == "GoToR" then
+ link_file(x,y,w,h,document,annotation)
+ elseif linktype == "URI" then
+ link_uri(x,y,w,h,document,annotation)
+ elseif trace_links then
+ report_link("unsupported link annotation %a",linktype)
end
end
+ elseif trace_links then
+ report_link("unsupported annotation %a",subtype)
end
elseif trace_links then
report_link("broken annotation, index %a",i)
end
end
+ context.flushlayer { "epdflinks" }
end
-- moved outside previous test
- context.setgvalue("figurereference",reference) -- global, todo: setmacro
+ context.setgvalue("figurereference",reference) -- global
if trace_links then
report_link("setting figure reference to %a",reference)
end
@@ -331,527 +270,43 @@ function codeinjections.mergeviewerlayers(specification)
if true then
return
end
- local specification, fullname, document = validdocument(specification)
- if not document then
- return ""
- end
- local namespace = makenamespace(fullname)
- local layers = document.layers
- if layers then
- for i=1,#layers do
- local layer = layers[i]
- if layer then
- local tag = namespace .. gsub(layer," ",":")
- local title = tag
- if trace_links then
- report_link("using layer %a",tag)
- end
- attributes.viewerlayers.define { -- also does some cleaning
- tag = tag, -- todo: #3A or so
- title = title,
- visible = variables.start,
- editable = variables.yes,
- printable = variables.yes,
- }
- codeinjections.useviewerlayer(tag)
- elseif trace_links then
- report_link("broken layer, index %a",i)
- end
- end
- end
-end
-
--- It took a bit of puzzling and playing around to come to the following
--- implementation. In the end it looks simple but as usual it takes a while
--- to see what the specification (and implementation) boils down to. Lots of
--- shared properties and such. The scaling took some trial and error as
--- viewers differ. I had to extend some low level helpers to make it more
--- comfortable. Hm, the specification is somewhat incomplete as some fields
--- are permitted even if not mentioned so in the end we can share more code.
---
--- If all works ok, we can get rid of some copies which saves time and space.
-
-local commentlike = {
- Text = "text",
- FreeText = "freetext",
- Line = "line",
- Square = "shape",
- Circle = "shape",
- Polygon = "poly",
- PolyLine = "poly",
- Highlight = "markup",
- Underline = "markup",
- Squiggly = "markup",
- StrikeOut = "markup",
- Caret = "text",
- Stamp = "stamp",
- Ink = "ink",
- Popup = "popup",
-}
-
-local function copyBS(v) -- dict can be shared
- if v then
- -- return pdfdictionary {
- -- Type = copypdfconstant(V.Type),
- -- W = copypdfnumber (V.W),
- -- S = copypdfstring (V.S),
- -- D = copypdfarray (V.D),
- -- }
- return copypdfdictionary(v)
- end
-end
-
-local function copyBE(v) -- dict can be shared
- if v then
- -- return pdfdictionary {
- -- S = copypdfstring(V.S),
- -- I = copypdfnumber(V.I),
- -- }
- return copypdfdictionary(v)
- end
-end
-
-local function copyBorder(v) -- dict can be shared
- if v then
- -- todo
- return copypdfarray(v)
- end
-end
-
-local function copyPopup(v,references)
- if v then
- local p = references[v]
- if p then
- return pdfreference(p)
- end
- end
-end
-
-local function copyParent(v,references)
- if v then
- local p = references[v]
- if p then
- return pdfreference(p)
- end
- end
-end
-
-local function copyIRT(v,references)
- if v then
- local p = references[v]
- if p then
- return pdfreference(p)
- end
- end
-end
-
-local function copyC(v)
- if v then
- -- todo: check color space
- return pdfcopyarray(v)
- end
-end
-
-local function finalizer(d,xscale,yscale,a_llx,a_ury)
- local q = d.QuadPoints or d.Vertices or d.CL
- if q then
- return function()
- local h, v = pdfgetpos() -- already scaled
- for i=1,#q,2 do
- q[i] = xscale * q[i] + (h*bpfactor - xscale * a_llx)
- q[i+1] = yscale * q[i+1] + (v*bpfactor - yscale * a_ury)
- end
- return d()
- end
- end
- q = d.InkList or d.Path
- if q then
- return function()
- local h, v = pdfgetpos() -- already scaled
- for i=1,#q do
- local q = q[i]
- for i=1,#q,2 do
- q[i] = xscale * q[i] + (h*bpfactor - xscale * a_llx)
- q[i+1] = yscale * q[i+1] + (v*bpfactor - yscale * a_ury)
- end
- end
- return d()
- end
- end
- return d()
-end
-
-local validstamps = {
- Approved = true,
- Experimental = true,
- NotApproved = true,
- AsIs = true,
- Expired = true,
- NotForPublicRelease = true,
- Confidential = true,
- Final = true,
- Sold = true,
- Departmental = true,
- ForComment = true,
- TopSecret = true,
- Draft = true,
- ForPublicRelease = true,
-}
-
--- todo: we can use runtoks instead of steps
-
-local function validStamp(v)
- local name = "Stamped" -- fallback
- if v then
- local ok = validstamps[v]
- if ok then
- name = ok
- else
- for k in next, validstamps do
- if find(v,k.."$") then
- name = k
- validstamps[v] = k
- break
- end
- end
- end
- end
- -- we temporary return to \TEX:
- context.predefinesymbol { name }
- context.step()
- -- beware, an error is not reported
- return pdfconstant(name), codeinjections.analyzenormalsymbol(name)
-end
-
-local annotationflags = lpdf.flags.annotations
-
-local function copyF(v,lock) -- todo: bxor 24
- if lock then
- v = bor(v or 0,annotationflags.ReadOnly + annotationflags.Locked + annotationflags.LockedContents)
- end
- if v then
- return pdfcopyinteger(v)
- end
-end
-
--- Speed is not really an issue so we don't optimize this code too much. In the end (after
--- testing we end up with less code that we started with.
-
-function codeinjections.mergecomments(specification)
- local specification, fullname, document = validdocument(specification)
- if not document then
- return ""
+ if not specification then
+ specification = figures and figures.current()
+ specification = specification and specification.status
end
- local pagenumber = specification.page or 1
- local pagedata = document.pages[pagenumber]
- local annotations = pagedata and pagedata.Annots
- if annotations and #annotations > 0 then
- local llx, lly, urx, ury, width, height, xscale, yscale = getmediasize(specification,pagedata,xscale,yscale)
- initializelayer(height,width)
- --
- local lockflags = specification.lock -- todo: proper parameter
- local references = { }
- local usedpopups = { }
- for i=1,#annotations do
- local annotation = annotations[i]
- if annotation then
- local subtype = annotation.Subtype
- if commentlike[subtype] then
- references[annotation] = pdfreserveobject()
- local p = annotation.Popup
- if p then
- usedpopups[p] = true
- end
- end
- end
- end
- --
- for i=1,#annotations do
- -- we keep the order
- local annotation = annotations[i]
- if annotation then
- local reference = references[annotation]
- if reference then
- local subtype = annotation.Subtype
- local kind = commentlike[subtype]
- if kind ~= "popup" or usedpopups[annotation] then
- local x, y, w, h, a_llx, a_lly, a_urx, a_ury = getdimensions(annotation,llx,lly,xscale,yscale,width,height,report_comment)
- if x then
- local voffset = h
- local dictionary = pdfdictionary {
- Subtype = pdfconstant (subtype),
- -- common (skipped: P AP AS OC AF BM StructParent)
- Contents = pdfcopyunicode(annotation.Contents),
- NM = pdfcopystring (annotation.NM),
- M = pdfcopystring (annotation.M),
- F = copyF (annotation.F,lockflags),
- C = copyC (annotation.C),
- ca = pdfcopynumber (annotation.ca),
- CA = pdfcopynumber (annotation.CA),
- Lang = pdfcopystring (annotation.Lang),
- -- also common
- CreationDate = pdfcopystring (annotation.CreationDate),
- T = pdfcopyunicode(annotation.T),
- Subj = pdfcopyunicode(annotation.Subj),
- -- border
- Border = pdfcopyarray (annotation.Border),
- BS = copyBS (annotation.BS),
- BE = copyBE (annotation.BE),
- -- sort of common
- Popup = copyPopup (annotation.Popup,references),
- RC = pdfcopyunicode(annotation.RC) -- string or stream
- }
- if kind == "markup" then
- dictionary.IRT = copyIRT (annotation.IRT,references)
- dictionary.RT = pdfconstant (annotation.RT)
- dictionary.IT = pdfcopyconstant (annotation.IT)
- dictionary.QuadPoints = pdfcopyarray (annotation.QuadPoints)
- -- dictionary.RD = pdfcopyarray (annotation.RD)
- elseif kind == "text" then
- -- somehow F fails to view : /F 24 : bit4=nozoom bit5=norotate
- dictionary.F = nil
- dictionary.Open = pdfcopyboolean (annotation.Open)
- dictionary.Name = pdfcopyunicode (annotation.Name)
- dictionary.State = pdfcopystring (annotation.State)
- dictionary.StateModel = pdfcopystring (annotation.StateModel)
- dictionary.IT = pdfcopyconstant (annotation.IT)
- dictionary.QuadPoints = pdfcopyarray (annotation.QuadPoints)
- dictionary.RD = pdfcopyarray (annotation.RD) -- caret
- dictionary.Sy = pdfcopyconstant (annotation.Sy) -- caret
- voffset = 0
- elseif kind == "freetext" then
- dictionary.DA = pdfcopystring (annotation.DA)
- dictionary.Q = pdfcopyinteger (annotation.Q)
- dictionary.DS = pdfcopystring (annotation.DS)
- dictionary.CL = pdfcopyarray (annotation.CL)
- dictionary.IT = pdfcopyconstant (annotation.IT)
- dictionary.LE = pdfcopyconstant (annotation.LE)
- -- dictionary.RC = pdfcopystring (annotation.RC)
- elseif kind == "line" then
- dictionary.LE = pdfcopyarray (annotation.LE)
- dictionary.IC = pdfcopyarray (annotation.IC)
- dictionary.LL = pdfcopynumber (annotation.LL)
- dictionary.LLE = pdfcopynumber (annotation.LLE)
- dictionary.Cap = pdfcopyboolean (annotation.Cap)
- dictionary.IT = pdfcopyconstant (annotation.IT)
- dictionary.LLO = pdfcopynumber (annotation.LLO)
- dictionary.CP = pdfcopyconstant (annotation.CP)
- dictionary.Measure = pdfcopydictionary(annotation.Measure) -- names
- dictionary.CO = pdfcopyarray (annotation.CO)
- voffset = 0
- elseif kind == "shape" then
- dictionary.IC = pdfcopyarray (annotation.IC)
- -- dictionary.RD = pdfcopyarray (annotation.RD)
- voffset = 0
- elseif kind == "stamp" then
- local name, appearance = validStamp(annotation.Name)
- dictionary.Name = name
- dictionary.AP = appearance
- voffset = 0
- elseif kind == "ink" then
- dictionary.InkList = pdfcopyarray (annotation.InkList)
- elseif kind == "poly" then
- dictionary.Vertices = pdfcopyarray (annotation.Vertices)
- -- dictionary.LE = pdfcopyarray (annotation.LE) -- todo: names in array
- dictionary.IC = pdfcopyarray (annotation.IC)
- dictionary.IT = pdfcopyconstant (annotation.IT)
- dictionary.Measure = pdfcopydictionary(annotation.Measure)
- dictionary.Path = pdfcopyarray (annotation.Path)
- -- dictionary.RD = pdfcopyarray (annotation.RD)
- elseif kind == "popup" then
- dictionary.Open = pdfcopyboolean (annotation.Open)
- dictionary.Parent = copyParent (annotation.Parent,references)
- voffset = 0
- end
- if dictionary then
- local locationspec = {
- x = x .. "bp",
- y = y .. "bp",
- voffset = voffset .. "bp",
- preset = "leftbottom",
- }
- local finalize = finalizer(dictionary,xscale,yscale,a_llx,a_ury)
- context.setlayer(layerspec,locationspec,function()
- context(hpack_node(nodeinjections.annotation(w/bpfactor,h/bpfactor,0,finalize,reference)))
- end)
- end
+ if specification then
+ local fullname = specification.fullname
+ local document = loadpdffile(fullname)
+ if document then
+ local namespace = makenamespace(fullname)
+ local layers = document.layers
+ if layers then
+ for i=1,layers.n do
+ local layer = layers[i]
+ if layer then
+ local tag = namespace .. gsub(layer," ",":")
+ local title = tag
+ if trace_links then
+ report_link("using layer %a",tag)
end
- else
- -- report_comment("skipping annotation, index %a",i)
+ attributes.viewerlayers.define { -- also does some cleaning
+ tag = tag, -- todo: #3A or so
+ title = title,
+ visible = variables.start,
+ editable = variables.yes,
+ printable = variables.yes,
+ }
+ codeinjections.useviewerlayer(tag)
+ elseif trace_links then
+ report_link("broken layer, index %a",i)
end
end
- elseif trace_comments then
- report_comment("broken annotation, index %a",i)
end
end
end
- return namespace
end
-local widgetflags = lpdf.flags.widgets
-
-local function flagstoset(flag,flags)
- local t = { }
- if flags then
- for k, v in next, flags do
- if band(flag,v) ~= 0 then
- t[k] = true
- end
- end
- end
- return t
-end
-
--- BS : border style dict
--- R : rotation 0 90 180 270
--- BG : background array
--- CA : caption string
--- RC : roll over caption
--- AC : down caption
--- I/RI/IX : icon streams
--- IF : fit dictionary
--- TP : text position number
-
--- Opt : array of texts
--- TI : top index
-
--- V : value
--- DV : default value
--- DS : default string
--- RV : rich
--- Q : quadding (0=left 1=middle 2=right)
-
-function codeinjections.mergefields(specification)
- local specification, fullname, document = validdocument(specification)
- if not document then
- return ""
- end
- local pagenumber = specification.page or 1
- local pagedata = document.pages[pagenumber]
- local annotations = pagedata and pagedata.Annots
- if annotations and #annotations > 0 then
- local llx, lly, urx, ury, width, height, xscale, yscale = getmediasize(specification,pagedata,xscale,yscale)
- initializelayer(height,width)
- --
- for i=1,#annotations do
- -- we keep the order
- local annotation = annotations[i]
- if annotation then
- local subtype = annotation.Subtype
- if subtype == "Widget" then
- local parent = annotation.Parent or { }
- local name = annotation.T or parent.T
- local what = annotation.FT or parent.FT
- if name and what then
- local x, y, w, h, a_llx, a_lly, a_urx, a_ury = getdimensions(annotation,llx,lly,xscale,yscale,width,height,report_field)
- if x then
- x = x .. "bp"
- y = y .. "bp"
- local W, H = w, h
- w = w .. "bp"
- h = h .. "bp"
- if trace_fields then
- report_field("field %a, type %a, dx %s, dy %s, wd %s, ht %s",name,what,x,y,w,h)
- end
- local locationspec = {
- x = x,
- y = y,
- preset = "leftbottom",
- }
- --
- local aflags = flagstoset(annotation.F or parent.F, annotationflags)
- local wflags = flagstoset(annotation.Ff or parent.Ff, widgetflags)
- if what == "Tx" then
- -- DA DV F FT MaxLen MK Q T V | AA OC
- if wflags.MultiLine then
- wflags.MultiLine = nil
- what = "text"
- else
- what = "line"
- end
- -- via context
- local fieldspec = {
- width = w,
- height = h,
- offset = variables.overlay,
- frame = trace_links and variables.on or variables.off,
- n = annotation.MaxLen or (parent and parent.MaxLen),
- type = what,
- option = concat(merged(aflags,wflags),","),
- }
- context.setlayer (layerspec,locationspec,function()
- context.definefieldbody ( { name } , fieldspec )
- context.fieldbody ( { name } )
- end)
- --
- elseif what == "Btn" then
- if wflags.Radio or wflags.RadiosInUnison then
- -- AP AS DA F Ff FT H MK T V | AA OC
- wflags.Radio = nil
- wflags.RadiosInUnison = nil
- what = "radio"
- elseif wflags.PushButton then
- -- AP DA F Ff FT H MK T | AA OC
- --
- -- Push buttons only have an appearance and some associated
- -- actions so they are not worth copying.
- --
- wflags.PushButton = nil
- what = "push"
- else
- -- AP AS DA F Ff FT H MK T V | OC AA
- what = "check"
- -- direct
- local AP = annotation.AP or (parent and parent.AP)
- if AP then
- local a = document.__xrefs__[AP]
- if a and pdfe.copyappearance then
- local o = pdfe.copyappearance(document,a)
- if o then
- AP = pdfreference(o)
- end
- end
- end
- local dictionary = pdfdictionary {
- Subtype = pdfconstant("Widget"),
- FT = pdfconstant("Btn"),
- T = pdfcopyunicode(annotation.T or parent.T),
- F = pdfcopyinteger(annotation.F or parent.F),
- Ff = pdfcopyinteger(annotation.Ff or parent.Ff),
- AS = pdfcopyconstant(annotation.AS or (parent and parent.AS)),
- AP = AP and pdfreference(AP),
- }
- local finalize = dictionary()
- context.setlayer(layerspec,locationspec,function()
- context(hpack_node(nodeinjections.annotation(W/bpfactor,H/bpfactor,0,finalize)))
- end)
- --
- end
- elseif what == "Ch" then
- -- F Ff FT Opt T | AA OC (rest follows)
- if wflags.PopUp then
- wflags.PopUp = nil
- if wflags.Edit then
- wflags.Edit = nil
- what = "combo"
- else
- what = "popup"
- end
- else
- what = "choice"
- end
- elseif what == "Sig" then
- what = "signature"
- else
- what = nil
- end
- end
- end
- end
- end
- end
- end
-end
+-- new: for taco
-- Beware, bookmarks can be in pdfdoc encoding or in unicode. However, in mkiv we
-- write out the strings in unicode (hex). When we read them in, we check for a bom
@@ -882,7 +337,7 @@ function codeinjections.getbookmarks(filename)
local outlines = document.Catalog.Outlines
local pages = document.pages
- local nofpages = document.nofpages
+ local nofpages = pages.n -- we need to access once in order to initialize
local destinations = document.destinations
-- I need to check this destination analyzer with the one in annotations .. best share
@@ -904,7 +359,7 @@ function codeinjections.getbookmarks(filename)
entry.realpage = pagedata.number
end
elseif kind == "table" then
- local pageref = #destination
+ local pageref = destination.n
if pageref then
local pagedata = pages[pageref]
if pagedata then
@@ -912,8 +367,8 @@ function codeinjections.getbookmarks(filename)
end
end
end
- -- elseif subtype then
- -- report("unsupported bookmark action %a",subtype)
+ else
+ -- maybe
end
else
local destination = current.Dest
@@ -928,8 +383,6 @@ function codeinjections.getbookmarks(filename)
local pagedata = destination and destination[1]
if pagedata and pagedata.Type == "Page" then
entry.realpage = pagedata.number
- -- else
- -- report("unsupported bookmark destination (no page)")
end
end
end
@@ -1018,6 +471,16 @@ function codeinjections.mergebookmarks(specification)
end
end
+-- placeholders:
+
+function codeinjections.mergecomments(specification)
+ report_comment("unfinished experimental code, not used yet")
+end
+
+function codeinjections.mergefields(specification)
+ report_field("unfinished experimental code, not used yet")
+end
+
-- A bit more than a placeholder but in the same perspective as
-- inclusion of comments and fields:
--
@@ -1038,7 +501,7 @@ function codeinjections.getinfo(specification)
local catalog = pdffile.Catalog
local info = pdffile.Info
local pages = pdffile.pages
- local nofpages = pdffile.nofpages
+ local nofpages = pages.n
if metadata then
local m = catalog.Metadata
if m then
@@ -1062,8 +525,10 @@ function codeinjections.getinfo(specification)
local media = nobox
local page = pages[pagenumber]
if page then
- crop = page.CropBox or nobox
- media = page.MediaBox or crop or nobox
+ crop = page.CropBox or nobox
+ media = page.MediaBox or crop or nobox
+ crop.n = nil -- nicer
+ media.n = nil -- nicer
end
local bbox = crop or media or nobox
return {
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lpdf-epd.lua b/Master/texmf-dist/tex/context/base/mkiv/lpdf-epd.lua
index 86aa6f29445..cf02b5a227d 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lpdf-epd.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lpdf-epd.lua
@@ -32,7 +32,7 @@ if not modules then modules = { } end modules ['lpdf-epd'] = {
-- already was unicode).
local setmetatable, rawset, rawget, type, next = setmetatable, rawset, rawget, type, next
-local tostring, tonumber, unpack = tostring, tonumber, unpack
+local tostring, tonumber = tostring, tonumber
local lower, match, char, byte, find = string.lower, string.match, string.char, string.byte, string.find
local abs = math.abs
local concat = table.concat
@@ -67,27 +67,13 @@ local xref = registry["epdf.XRef"]
local catalog = registry["epdf.Catalog"]
local pdfdoc = registry["epdf.PDFDoc"]
-if not (object and dictionary and array and xref and catalog and pdfdoc) then
- logs.report("fatal error","invalid pdf inclusion library (%s)",1)
- os.exit()
-end
-
local openPDF = epdf.open
-local getMajorVersion = pdfdoc.getPDFMajorVersion
-local getMinorVersion = pdfdoc.getPDFMinorVersion
-local getXRef = pdfdoc.getXRef
-local getRawCatalog = pdfdoc.getCatalog
-
-if not (openPDF and getMajorVersion and getMinorVersion and getXRef and getRawCatalog) then
- logs.report("fatal error","invalid pdf inclusion library (%s)",2)
- os.exit()
-end
-
local getDict = object.getDict
local getArray = object.getArray
local getReal = object.getReal
local getInt = object.getInt
+local getNum = object.getNum
local getString = object.getString
local getBool = object.getBool
local getName = object.getName
@@ -95,81 +81,59 @@ local getRef = object.getRef
local getRefNum = object.getRefNum
local getType = object.getType
-
-if not (getDict and getArray and getReal and getInt and getString and getBool and getName and getRef and getRefNum and getType) then
- logs.report("fatal error","invalid pdf inclusion library (%s)",3)
- os.exit()
-end
+local getTypeName = object.getTypeName
local streamReset = object.streamReset
local streamGetDict = object.streamGetDict
local streamGetChar = object.streamGetChar
-local streamGetAll = object.streamGetAll
-
-if not (streamReset and streamGetDict and streamGetChar) then
- logs.report("fatal error","invalid pdf inclusion library (%s)",3)
- os.exit()
-end
local dictGetLength = dictionary.getLength
local dictGetVal = dictionary.getVal
local dictGetValNF = dictionary.getValNF
local dictGetKey = dictionary.getKey
-if not (dictGetLength and dictGetVal and dictGetValNF and dictGetKey) then
- logs.report("fatal error","invalid pdf inclusion library (%s)",4)
- os.exit()
-end
-
local arrayGetLength = array.getLength
local arrayGetNF = array.getNF
local arrayGet = array.get
-if not (arrayGetLength and arrayGetNF and arrayGet) then
- logs.report("fatal error","invalid pdf inclusion library (%s)",5)
- os.exit()
-end
-
-- these are kind of weird as they can't be accessed by (root) object
local getNumPages = catalog.getNumPages
local getPageRef = catalog.getPageRef
+local getXRef = pdfdoc.getXRef
+local getRawCatalog = pdfdoc.getCatalog
+
local fetch = xref.fetch
local getCatalog = xref.getCatalog
local getDocInfo = xref.getDocInfo
-if not (getNumPages and getPageRef and fetch and getCatalog and getDocInfo) then
- logs.report("fatal error","invalid pdf inclusion library (%s)",6)
- os.exit()
-end
-
-- we're done with library shortcuts
-local typenames = { [0] =
- "boolean",
- "integer",
- "real",
- "string",
- "name",
- "null",
- "array",
- "dictionary",
- "stream",
- "ref",
- "cmd",
- "error",
- "eof",
- "none",
- "integer64",
+local report_epdf = logs.reporter("epdf")
+
+local typenames = { [0] =
+ "boolean",
+ "integer",
+ "real",
+ "string",
+ "name",
+ "null",
+ "array",
+ "dictionary",
+ "stream",
+ "ref",
+ "cmd",
+ "error",
+ "eof",
+ "none",
+ "integer64",
}
-local typenumbers = table.swapped(typenames)
-
-local null_object_code = typenumbers.null
-local ref_object_code = typenumbers.ref
+local typenumbers = table.swapped(typenames)
-local report_epdf = logs.reporter("epdf")
+local null_code = typenumbers.null
+local ref_code = typenumbers.ref
local function fatal_error(...)
report_epdf(...)
@@ -242,30 +206,32 @@ local function prepare(document,d,t,n,k,mt,flags)
if v then
local r = dictGetValNF(d,i)
local kind = getType(v)
- if kind == null_object_code then
+ if kind == null_code then
-- ignore
- elseif kind then
+ else
local key = dictGetKey(d,i)
- if r and getType(r) == ref_object_code then
- local objnum = getRefNum(r)
- local cached = document.__cache__[objnum]
- if not cached then
- cached = checked_access[kind](v,document,objnum,mt)
- if cached then
- document.__cache__[objnum] = cached
- document.__xrefs__[cached] = objnum
+ if kind then
+ if r and getType(r) == ref_code then
+ local objnum = getRefNum(r)
+ local cached = document.__cache__[objnum]
+ if not cached then
+ cached = checked_access[kind](v,document,objnum,mt)
+ if cached then
+ document.__cache__[objnum] = cached
+ document.__xrefs__[cached] = objnum
+ end
+ end
+ t[key] = cached
+ else
+ local v, flag = checked_access[kind](v,document)
+ t[key] = v
+ if flag and flags then
+ flags[key] = flag -- flags
end
end
- t[key] = cached
else
- local v, flag = checked_access[kind](v,document)
- t[key] = v
- if flag and flags then
- flags[key] = flag -- flags
- end
+ report_epdf("warning: nil value for key %a in dictionary",key)
end
- else
- report_epdf("warning: nil value for key %a in dictionary",key)
end
else
fatal_error("error: invalid value at index %a in dictionary of %a",i,document.filename)
@@ -279,42 +245,6 @@ local function prepare(document,d,t,n,k,mt,flags)
return t[k]
end
--- local function prepare(document,d,t,n,k,mt,flags)
--- for i=1,n do
--- local v = dictGetValNF(d,i)
--- if v then
--- local key = dictGetKey(d,i)
--- local kind = getType(v)
--- if kind == ref_object_code then
--- local objnum = getRefNum(v)
--- local cached = document.__cache__[objnum]
--- if not cached then
--- local v = dictGetVal(d,i)
--- local kind = getType(v)
--- cached = checked_access[kind](v,document,objnum,mt)
--- if cached then
--- document.__cache__[objnum] = cached
--- document.__xrefs__[cached] = objnum
--- end
--- end
--- t[key] = cached
--- else
--- local v, flag = checked_access[kind](v,document)
--- t[key] = v
--- if flag and flags then
--- flags[key] = flag -- flags
--- end
--- end
--- end
--- end
--- if mt then
--- setmetatable(t,mt)
--- else
--- getmetatable(t).__index = nil
--- end
--- return t[k]
--- end
-
local function some_dictionary(d,document)
local n = d and dictGetLength(d) or 0
if n > 0 then
@@ -363,11 +293,11 @@ local function prepare(document,a,t,n,k)
local v = arrayGet(a,i)
if v then
local kind = getType(v)
- if kind == null_object_code then
+ if kind == null_code then
-- ignore
elseif kind then
local r = arrayGetNF(a,i)
- if r and getType(r) == ref_object_code then
+ if r and getType(r) == ref_code then
local objnum = getRefNum(r)
local cached = document.__cache__[objnum]
if not cached then
@@ -396,37 +326,6 @@ local function prepare(document,a,t,n,k)
end
end
--- local function prepare(document,a,t,n,k)
--- for i=1,n do
--- local v = arrayGetNF(a,i)
--- if v then
--- local kind = getType(v)
--- if kind == ref_object_code then
--- local objnum = getRefNum(v)
--- local cached = document.__cache__[objnum]
--- if not cached then
--- local v = arrayGet(a,i)
--- local kind = getType(v)
--- cached = checked_access[kind](v,document,objnum)
--- document.__cache__[objnum] = cached
--- document.__xrefs__[cached] = objnum
--- end
--- t[i] = cached
--- else
--- t[i] = checked_access[kind](v,document)
--- end
--- end
--- end
--- local m = getmetatable(t)
--- if m then
--- m.__index = nil
--- m.__len = nil
--- end
--- if k then
--- return t[k]
--- end
--- end
-
local function some_array(a,document)
local n = a and arrayGetLength(a) or 0
if n > 0 then
@@ -477,53 +376,23 @@ end
-- todo: collect chunks
--- local function streamaccess(s,_,what)
--- if not what or what == "all" or what == "*all" then
--- local t, n = { }, 0
--- streamReset(s)
--- while true do
--- local c = streamGetChar(s)
--- if c < 0 then
--- break
--- else
--- n = n + 1
--- t[n] = char(c)
--- end
--- end
--- return concat(t,"",1,n)
--- end
--- end
-
-local function getstream(s)
- streamReset(s)
- if streamGetAll then
- return streamGetAll(s)
- else
- local t, b, n = { }, { }, 0
+local function streamaccess(s,_,what)
+ if not what or what == "all" or what == "*all" then
+ local t, n = { }, 0
+ streamReset(s)
while true do
local c = streamGetChar(s)
if c < 0 then
break
else
n = n + 1
- b[n] = c
- end
- if n == 2000 then
- t[#t+1] = char(unpack(b,1,n))
- n = 1
+ t[n] = char(c)
end
end
- t[#t+1] = char(unpack(b,1,n))
return concat(t)
end
end
-local function streamaccess(s,_,what)
- if not what or what == "all" or what == "*all" then
- return getstream(s)
- end
-end
-
local function get_stream(d,document)
if d then
streamReset(d)
@@ -693,19 +562,16 @@ end
-- with but it won't win a beauty contest.
local function getpages(document,Catalog)
- local __data__ = document.__data__
- local __xrefs__ = document.__xrefs__
- local __cache__ = document.__cache__
- local __xref__ = document.__xref__
- --
- local rawcatalog = getRawCatalog(__data__)
- local nofpages = getNumPages(rawcatalog)
+ local __data__ = document.__data__
+ local __xrefs__ = document.__xrefs__
+ local __cache__ = document.__cache__
+ local __xref__ = document.__xref__
--
- local majorversion = getMajorVersion(__data__)
- local minorversion = getMinorVersion(__data__)
+ local rawcatalog = getRawCatalog(__data__)
+ local nofpages = getNumPages(rawcatalog)
--
- local pages = { }
- local metatable = { __index = Catalog.Pages } -- somewhat empty
+ local pages = { }
+ local metatable = { __index = Catalog.Pages } -- somewhat empty
--
for pagenumber=1,nofpages do
local pagereference = getPageRef(rawcatalog,pagenumber).num
@@ -714,7 +580,6 @@ local function getpages(document,Catalog)
if pagedata then
-- rawset(pagedata,"number",pagenumber)
pagedata.number = pagenumber
- pagedata.object = pageobject
pages[pagenumber] = pagedata
__xrefs__[pagedata] = pagereference
__cache__[pagereference] = pagedata
@@ -725,10 +590,7 @@ local function getpages(document,Catalog)
--
pages.n = nofpages
--
- document.pages = pages
- document.majorversion = majorversion
- document.minorversion = minorversion
- --
+ document.pages = pages
return pages
end
@@ -775,8 +637,6 @@ function lpdf_epdf.load(filename)
document.Catalog = some_dictionary(getDict(getCatalog(__xref__)),document)
document.Info = some_dictionary(getDict(getDocInfo(__xref__)),document)
setmetatableindex(document,resolve)
- --
- document.nofpages = getNumPages(getRawCatalog(__data__))
else
document = false
end
@@ -875,14 +735,14 @@ local fromunicode = (
P(1)
)^1 * Carg(1)
-local function analyzefonts(document,resources) -- unfinished, see mtx-pdf for better code
+local function analyzefonts(document,resources) -- unfinished
local fonts = document.__fonts__
if resources then
local fontlist = resources.Font
if fontlist then
for id, data in expanded(fontlist) do
if not fonts[id] then
- -- a quick hack ... I will look into it more detail if I find a real
+ -- a quck hack ... I will look into it more detail if I find a real
-- -application for it
local tounicode = data.ToUnicode()
if tounicode then
@@ -976,7 +836,7 @@ function lpdf_epdf.getpagecontent(document,pagenumber)
end
--- This is also an experiment. When I really need it I can improve it, for instance
+-- This is also an experiment. When I really neet it I can improve it, fo rinstance
-- with proper position calculating. It might be usefull for some search or so.
local softhyphen = utfchar(0xAD) .. "$"
@@ -1065,249 +925,3 @@ end
-- local destination = document.__data__:findDest(name)
-- return destination and destination.number
-- end
-
--- This is experimental code that we need for testing the transition from
--- poppler to a new lightweight library. Don't rely on this code to remain
--- as it is now. Interesting is that performance of this variant is the same
--- as the natural page includer.
-
-if img then do
-
- local copydictionary = nil
- local copyarray = nil
-
- local ref_object_code = typenumbers.ref
- local boolean_object_code = typenumbers.boolean
- local integer_object_code = typenumbers.integer
- local real_object_code = typenumbers.real
- local string_object_code = typenumbers.string
- local name_object_code = typenumbers.name
- local null_object_code = typenumbers.null
- local array_object_code = typenumbers.array
- local dictionary_object_code = typenumbers.dictionary
- local stream_object_code = typenumbers.stream
- local cmd_object_code = typenumbers.cmd
-
- local pdfreserveobject = lpdf.reserveobject
- local pdfflushobject = lpdf.flushobject
- local pdfflushstreamobject = lpdf.flushstreamobject
- local pdfreference = lpdf.reference
- local pdfconstant = lpdf.constant
- local pdfarray = lpdf.array
- local pdfdictionary = lpdf.dictionary
- local pdfunicode = lpdf.unicode
- local pdfstring = lpdf.string
- local pdfnull = lpdf.null
-
- local report = logs.reporter("backend","xobjects")
-
- local factor = 65536 / (7200/7227) -- 1/number.dimenfactors.bp
-
- local createimage = images.create
-
- local function scaledbbox(b)
- return { b[1]*factor, b[2]*factor, b[3]*factor, b[4]*factor }
- end
-
- local function copyobject(xref,copied,kind,r,v)
- if kind == null_object_code then
- return pdfnull()
- elseif r and getType(r) == ref_object_code then
- local objnum = getRefNum(r)
- local r = copied[objnum]
- if r then
- -- report("%s object %i is reused",kind,objnum)
- else
- local o
- r = pdfreserveobject()
- copied[objnum] = r
- if kind == array_object_code then
- local a = copyarray(xref,copied,fetch(xref,objnum,0))
- pdfflushobject(r,tostring(a))
- elseif kind == dictionary_object_code then
- local d = copydictionary(xref,copied,fetch(xref,objnum,0))
- pdfflushobject(r,tostring(d))
- elseif kind == stream_object_code then
- local f = fetch(xref,objnum,0)
- local d = copydictionary(xref,copied,false,streamGetDict(f))
- local s = getstream(f)
- --
- d.Filter = nil
- d.Length = nil
- d.DecodeParms = nil
- d.DL = nil
- --
- pdfflushstreamobject(s,d,true,r)
- else
- report("reference not done: %s", kind)
- end
- end
- return pdfreference(r)
- elseif kind == array_object_code then
- return copyarray(xref,copied,v)
- elseif kind == dictionary_object_code then
- return copydictionary(xref,copied,v)
- elseif kind == integer_object_code then
- return getInt(v)
- elseif kind == real_object_code then
- return getReal(v)
- elseif kind == name_object_code then
- return pdfconstant(getName(v))
- elseif kind == string_object_code then
- local s = getString(v)
- if not s or s == "" then
- return ""
- end
- local u = lpegmatch(u_pattern,s)
- if u then
- return pdfunicode(s)
- end
- return pdfstring(s)
- elseif kind == boolean_object_code then
- return getBool(v)
- elseif kind == stream_object_code then
- -- hm ...
- return getStream(v)
- else
- report("object not done: %s", kind)
- end
- end
-
- copyarray = function (xref,copied,object)
- local a = getArray(object)
- local n = a and arrayGetLength(a) or 0
- if n > 0 then
- local target = pdfarray()
- for i=1,n do
- local v = arrayGet(a,i)
- if v then
- local kind = getType(v)
- local r = arrayGetNF(a,i)
- target[i] = copyobject(xref,copied,kind,r,v)
- end
- end
- return target
- end
- end
-
- copydictionary = function (xref,copied,object,d)
- local d = d or getDict(object)
- local n = d and dictGetLength(d) or 0
- if n > 0 then
- local target = pdfdictionary()
- for i=1,n do
- local v = dictGetVal(d,i)
- if v then
- local kind = getType(v)
- local key = dictGetKey(d,i)
- local r = dictGetValNF(d,i)
- target[key] = copyobject(xref,copied,kind,r,v)
- end
- end
- return target
- end
- end
-
- local function copy_resources(pdfdoc,xref,copied,pagedata)
- local object = pagedata.object
- if object then
- local d = getDict(object)
- local n = d and dictGetLength(d) or 0
- for i=1,n do
- local k = dictGetKey(d,i)
- if v and k == "Resources" then
- local v = dictGetVal(d,i)
- local kind = getType(v)
- local r = dictGetValNF(d,i)
- return copyobject(xref,copied,kind,r,v)
- end
- end
- end
- end
-
- local function openpdf(filename)
- local pdfdoc = lpdf_epdf.load(filename)
- if pdfdoc then
- pdfdoc.__copied__ = pdfdoc.__copied__ or { }
- pdfdoc.filename = filename
- return pdfdoc
- end
- end
-
- local function closepdf(pdfdoc)
- if pdfdoc then
- lpdf_epdf.unload(pdfdoc.filename)
- end
- end
-
- local function querypdf(pdfdoc,pagenumber)
- if pdfdoc then
- if not pagenumber then
- pagenumber = 1
- end
- local root = pdfdoc.Catalog
- local page = pdfdoc.pages[pagenumber]
- if page then
- local mediabox = page.MediaBox or { 0, 0, 0, 0 }
- local cropbox = page.CropBox or mediabox
- return {
- filename = pdfdoc.filename,
- pagenumber = pagenumber,
- nofpages = pdfdoc.nofpages,
- boundingbox = scaledbbox(cropbox),
- cropbox = cropbox,
- mediabox = mediabox,
- bleedbox = page.BleedBox or cropbox,
- trimbox = page.TrimBox or cropbox,
- artbox = page.ArtBox or cropbox,
- }
- end
- end
- end
-
- local function copypage(pdfdoc,pagenumber,attributes)
- if pdfdoc then
- local root = pdfdoc.Catalog
- local page = pdfdoc.pages[pagenumber or 1]
- local pageinfo = querypdf(pdfdoc,pagenumber)
- local contents = page.Contents
- local xref = pdfdoc.__xref__
- local copied = pdfdoc.__copied__
- --
- local xobject = pdfdictionary {
- Type = pdfconstant("XObject"),
- Subtype = pdfconstant("Form"),
- -- image attributes
- FormType = 1,
- BBox = pageinfo.cropbox,
- -- Metadata = copy(xref,copied,root,"Metadata"),
- -- Group = copy(xref,copied,page,"Group"),
- -- LastModified = copy(xref,copied,page,"LastModified"),
- -- Metadata = copy(xref,copied,page,"Metadata"),
- -- PieceInfo = copy(xref,copied,page,"PieceInfo"),
- Resources = copy_resources(pdfdoc,xref,copied,page),
- -- SeparationInfo = copy(xref,copied,page,"SeparationInfo"),
- }
- if attributes then
- for k, v in next, expand(attributes) do
- page[k] = v -- maybe nested
- end
- end
- return createimage {
- bbox = pageinfo.boundingbox,
- stream = contents(),
- attr = xobject(),
- }
- end
- end
-
- -- todo: codeinjections
-
- lpdf_epdf.image = {
- open = openpdf,
- close = closepdf,
- query = querypdf,
- copy = copypage,
- }
-
-end end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lpdf-fld.lua b/Master/texmf-dist/tex/context/base/mkiv/lpdf-fld.lua
index 983be508f2c..73de5eaf60d 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lpdf-fld.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lpdf-fld.lua
@@ -103,7 +103,7 @@ local pdf_tx = pdfconstant("Tx")
local pdf_sig = pdfconstant("Sig")
local pdf_ch = pdfconstant("Ch")
local pdf_btn = pdfconstant("Btn")
-local pdf_yes = pdfconstant("Yes")
+----- pdf_yes = pdfconstant("Yes")
local pdf_off = pdfconstant("Off")
local pdf_p = pdfconstant("P") -- None Invert Outline Push
local pdf_n = pdfconstant("N") -- None Invert Outline Push
@@ -341,10 +341,10 @@ local function fieldsurrounding(specification)
alternative, a = "tf", s.tf
end
local tag = fontstyle .. fontalternative
- fontsize = todimen(fontsize)
- fontsize = fontsize and (bpfactor * fontsize) or 12
+ fontsize = todimen(fontsize)
+ fontsize = fontsize and (bpfactor * fontsize) or 12
fontraise = 0.1 * fontsize -- todo: figure out what the natural one is and compensate for strutdp
- local fontcode = formatters["%0.4F Tf %0.4F Ts"](fontsize,fontraise)
+ local fontcode = formatters["%0.4f Tf %0.4f Ts"](fontsize,fontraise)
-- we could test for colorvalue being 1 (black) and omit it then
local colorcode = pdfcolor(3,colorvalue) -- we force an rgb color space
if trace_fields then
@@ -360,16 +360,14 @@ local function fieldsurrounding(specification)
return tostring(stream)
end
--- Can we use any font?
-
codeinjections.fieldsurrounding = fieldsurrounding
local function registerfonts()
if next(usedfonts) then
checkpdfdocencoding() -- already done
- local pdffontlist = pdfdictionary()
- local pdffonttype = pdfconstant("Font")
- local pdffontsubtype = pdfconstant("Type1")
+ local d = pdfdictionary()
+ local pdffonttype, pdffontsubtype = pdfconstant("Font"), pdfconstant("Type1")
+ -- for tag, name in next, usedfonts do
for tag, name in sortedhash(usedfonts) do
local f = pdfdictionary {
Type = pdffonttype,
@@ -378,9 +376,9 @@ local function registerfonts()
BaseFont = pdfconstant(name),
Encoding = pdfdocencodingvector,
}
- pdffontlist[tag] = pdfreference(pdfflushobject(f))
+ d[tag] = pdfreference(pdfflushobject(f))
end
- return pdffontlist
+ return d
end
end
@@ -388,7 +386,7 @@ end
local function fieldappearances(specification)
-- todo: caching
- local values = specification.values
+ local values = specification.values
local default = specification.default -- todo
if not values then
-- error
@@ -404,51 +402,22 @@ local function fieldappearances(specification)
n, r, d = v[1], v[2], v[3]
end
local appearance = pdfdictionary {
- N = registeredsymbol(n),
- R = registeredsymbol(r),
- D = registeredsymbol(d),
+ N = registeredsymbol(n), R = registeredsymbol(r), D = registeredsymbol(d),
}
return pdfshareobjectreference(appearance)
-- return pdfreference(pdfflushobject(appearance))
end
--- The rendering part of form support has always been crappy and didn't really
--- improve over time. Did bugs become features? Who knows. Why provide for instance
--- control over appearance and then ignore it when the mouse clicks someplace else.
--- Strangely enough a lot of effort went into JavaScript support while basic
--- appearance control of checkboxes stayed poor. I found this link when googling for
--- conformation after the n^th time looking into this behaviour:
---
--- https://stackoverflow.com/questions/15479855/pdf-appearance-streams-checkbox-not-shown-correctly-after-focus-lost
---
--- ... "In particular check boxes, therefore, whenever not interacting with the user, shall
--- be displayed using their normal captions, not their appearances."
+local YesorOn = "Yes" -- somehow On is not always working out well any longer (why o why this change)
+
+-- beware ... maybe we should have unique /Yes1 ... we will probably
+-- change this one too.
--
--- So: don't use check boxes. In fact, even radio buttons can have these funny "flash some
--- funny symbol" side effect when clocking on them. I tried all combinations if /H and /AP
--- and /AS and ... Because (afaiks) the acrobat interface assumes that one uses dingbats no
--- one really cared about getting custom appeances done well. This erratic behaviour might
--- as well be the reason why no open source viewer ever bothered implementing forms. It's
--- probably also why most forms out there look kind of bad.
-
-local function fieldstates_precheck(specification)
- local values = specification.values
- local default = specification.default
- if not values or values == "" then
- return
- end
- local yes = settings_to_array(values)[1]
- local yesshown, yesvalue = lpegmatch(splitter,yes)
- if not (yesshown and yesvalue) then
- yesshown = yes
- end
- return default == settings_to_array(yesshown)[1] and pdf_yes or pdf_off
-end
+-- TODO: the same as radio .. play safe and use different names.
-local function fieldstates_check(specification)
+local function fieldstates_check(specification,forceyes,values,default,yesdefault)
-- we don't use Opt here (too messy for radio buttons)
- local values = specification.values
- local default = specification.default
+ local values, default = values or specification.values, default or specification.default
if not values or values == "" then
-- error
return
@@ -490,27 +459,28 @@ local function fieldstates_check(specification)
if not offvalue then
offvalue = offn
end
+ if forceyes == true then
+ forceyes = YesorOn -- spec likes Yes more but we've used On for ages now
+ else
+ -- false or string
+ end
if default == yesn then
- default = pdf_yes
- yesvalue = yesvalue == yesn and "Yes" or "Off"
+ default = pdfconstant(forceyes or yesn)
else
- default = pdf_off
- yesvalue = "Off"
+ default = pdf_off
end
local appearance
- -- if false then
- if true then
- -- needs testing
+ if false then -- needs testing
appearance = pdfdictionary { -- maybe also cache components
- N = pdfshareobjectreference(pdfdictionary { Yes = registeredsymbol(yesn), Off = registeredsymbol(offn) }),
- R = pdfshareobjectreference(pdfdictionary { Yes = registeredsymbol(yesr), Off = registeredsymbol(offr) }),
- D = pdfshareobjectreference(pdfdictionary { Yes = registeredsymbol(yesd), Off = registeredsymbol(offd) }),
+ N = pdfshareobjectreference(pdfdictionary { [forceyes or yesn] = registeredsymbol(yesn), Off = registeredsymbol(offn) }),
+ R = pdfshareobjectreference(pdfdictionary { [forceyes or yesr] = registeredsymbol(yesr), Off = registeredsymbol(offr) }),
+ D = pdfshareobjectreference(pdfdictionary { [forceyes or yesd] = registeredsymbol(yesd), Off = registeredsymbol(offd) }),
}
else
appearance = pdfdictionary { -- maybe also cache components
- N = pdfdictionary { Yes = registeredsymbol(yesn), Off = registeredsymbol(offn) },
- R = pdfdictionary { Yes = registeredsymbol(yesr), Off = registeredsymbol(offr) },
- D = pdfdictionary { Yes = registeredsymbol(yesd), Off = registeredsymbol(offd) }
+ N = pdfdictionary { [forceyes or yesn] = registeredsymbol(yesn), Off = registeredsymbol(offn) },
+ R = pdfdictionary { [forceyes or yesr] = registeredsymbol(yesr), Off = registeredsymbol(offr) },
+ D = pdfdictionary { [forceyes or yesd] = registeredsymbol(yesd), Off = registeredsymbol(offd) }
}
end
local appearanceref = pdfshareobjectreference(appearance)
@@ -518,11 +488,12 @@ local function fieldstates_check(specification)
return appearanceref, default, yesvalue
end
--- It looks like there is always a (MK related) symbol used and that the appearances
--- are only used as ornaments behind a symbol. So, contrary to what we did when
--- widgets showed up, we now limit ourself to more dumb definitions. Especially when
--- highlighting is enabled weird interferences happen. So, we play safe (some nice
--- code has been removed that worked well till recently).
+-- It looks like there is always a (MK related) symbol used and that
+-- the appearances are only used as ornaments behind a symbol. So,
+-- contrary to what we did when widgets showed up, we now limit
+-- ourself to more dumb definitions. Especially when highlighting is
+-- enabled weird interferences happen. So, we play safe (some nice code
+-- has been removed that worked well till recently).
local function fieldstates_radio(specification,name,parent)
local values = values or specification.values
@@ -601,7 +572,7 @@ local function fieldstates_radio(specification,name,parent)
return appearanceref, default, yesvalue
end
-local function fielddefault(field,pdf_yes)
+local function fielddefault(field)
local default = field.default
if not default or default == "" then
local values = settings_to_array(field.values)
@@ -610,12 +581,12 @@ local function fielddefault(field,pdf_yes)
if not default or default == "" then
return pdf_off
else
- return pdf_yes or pdfconstant(default)
+ return pdfconstant(default)
end
end
local function fieldoptions(specification)
- local values = specification.values
+ local values = specification.values
local default = specification.default
if values then
local v = settings_to_array(values)
@@ -819,9 +790,7 @@ function codeinjections.definefield(specification)
end
function codeinjections.clonefield(specification) -- obsolete
- local p = specification.parent
- local c = specification.children
- local v = specification.alternative
+ local p, c, v = specification.parent, specification.children, specification.alternative
if not p or not c then
if trace_fields then
report_fields("invalid clone, children %a, parent %a, alternative %a",c,p,v)
@@ -905,8 +874,7 @@ local function enhance(specification,option)
return specification
end
--- finish (if we also collect parents we can inline the kids which is
--- more efficient ... but hardly anyone used widgets so ...)
+-- finish
local collected = pdfarray()
local forceencoding = false
@@ -981,14 +949,14 @@ end
local function save_parent(field,specification,d,hasopt)
local kidsnum = pdfreserveobject()
- d.Kids = pdfreference(kidsnum)
+ d.Kids = pdfreference(kidsnum)
field.kidsnum = kidsnum
- field.kids = pdfarray()
+ field.kids = pdfarray()
if hasopt then
local optnum = pdfreserveobject()
- d.Opt = pdfreference(optnum)
+ d.Opt = pdfreference(optnum)
field.optnum = optnum
- field.opt = pdfarray()
+ field.opt = pdfarray()
end
local pnum = pdfflushobject(d)
field.pobj = pnum
@@ -1004,21 +972,16 @@ local function save_kid(field,specification,d,optname)
opt[#opt+1] = optname
end
end
- local width = specification.width or 0
- local height = specification.height or 0
- local depth = specification.depth or 0
+ local width, height, depth = specification.width or 0, specification.height or 0, specification.depth
local box = hpack_node(nodeinjections.annotation(width,height,depth,d(),kn))
- -- redundant
- box.width = width
- box.height = height
- box.depth = depth
+ box.width, box.height, box.depth = width, height, depth -- redundant
return box
end
local function makelineparent(field,specification)
- local text = pdfunicode(field.default)
+ local text = pdfunicode(field.default)
local length = tonumber(specification.length or 0) or 0
- local d = pdfdictionary {
+ local d = pdfdictionary {
Subtype = pdf_widget,
T = pdfunicode(specification.title),
F = fieldplus(specification),
@@ -1036,8 +999,7 @@ local function makelineparent(field,specification)
end
local function makelinechild(name,specification)
- local field = clones[name]
- local parent = nil
+ local field, parent = clones[name], nil
if field then
parent = fields[field.parent]
if not parent.pobj then
@@ -1048,7 +1010,7 @@ local function makelinechild(name,specification)
end
else
parent = fields[name]
- field = parent
+ field = parent
if not parent.pobj then
if trace_fields then
report_fields("using parent text %a",name)
@@ -1085,9 +1047,9 @@ end
-- copy of line ... probably also needs a /Lock
local function makesignatureparent(field,specification)
- local text = pdfunicode(field.default)
+ local text = pdfunicode(field.default)
local length = tonumber(specification.length or 0) or 0
- local d = pdfdictionary {
+ local d = pdfdictionary {
Subtype = pdf_widget,
T = pdfunicode(specification.title),
F = fieldplus(specification),
@@ -1105,8 +1067,7 @@ local function makesignatureparent(field,specification)
end
local function makesignaturechild(name,specification)
- local field = clones[name]
- local parent = nil
+ local field, parent = clones[name], nil
if field then
parent = fields[field.parent]
if not parent.pobj then
@@ -1117,7 +1078,7 @@ local function makesignaturechild(name,specification)
end
else
parent = fields[name]
- field = parent
+ field = parent
if not parent.pobj then
if trace_fields then
report_fields("using parent text %a",name)
@@ -1163,8 +1124,7 @@ local function makechoiceparent(field,specification)
end
local function makechoicechild(name,specification)
- local field = clones[name]
- local parent = nil
+ local field, parent = clones[name], nil
if field then
parent = fields[field.parent]
if not parent.pobj then
@@ -1175,7 +1135,7 @@ local function makechoicechild(name,specification)
end
else
parent = fields[name]
- field = parent
+ field = parent
if not parent.pobj then
if trace_fields then
report_fields("using parent choice %a",name)
@@ -1209,22 +1169,20 @@ function methods.combo(name,specification)
end
local function makecheckparent(field,specification)
- local default = fieldstates_precheck(field)
local d = pdfdictionary {
T = pdfunicode(specification.title), -- todo: when tracing use a string
F = fieldplus(specification),
Ff = fieldflag(specification),
OC = fieldlayer(specification),
- AA = fieldactions(specification), -- can be shared
+ AA = fieldactions(specification),
FT = pdf_btn,
- V = fielddefault(field,default),
+ V = fielddefault(field),
}
save_parent(field,specification,d,true)
end
local function makecheckchild(name,specification)
- local field = clones[name]
- local parent = nil
+ local field, parent = clones[name], nil
if field then
parent = fields[field.parent]
if not parent.pobj then
@@ -1235,7 +1193,7 @@ local function makecheckchild(name,specification)
end
else
parent = fields[name]
- field = parent
+ field = parent
if not parent.pobj then
if trace_fields then
report_fields("using parent check %a",name)
@@ -1251,7 +1209,7 @@ local function makecheckchild(name,specification)
Parent = pdfreference(parent.pobj),
F = fieldplus(specification),
OC = fieldlayer(specification),
- AA = fieldactions(specification), -- can be shared
+ AA = fieldactions(specification),
H = pdf_n,
}
local fontsymbol = specification.fontsymbol
@@ -1263,10 +1221,10 @@ local function makecheckchild(name,specification)
d.MK = fieldrendering(specification)
return save_kid(parent,specification,d)
else
- local appearance, default, value = fieldstates_check(field)
+ local appearance, default, value = fieldstates_check(field,true)
d.AS = default
d.AP = appearance
- return save_kid(parent,specification,d)
+ return save_kid(parent,specification,d,value)
end
end
@@ -1281,7 +1239,7 @@ local function makepushparent(field,specification) -- check if we can share with
F = fieldplus(specification),
Ff = fieldflag(specification),
OC = fieldlayer(specification),
- AA = fieldactions(specification), -- can be shared
+ AA = fieldactions(specification),
FT = pdf_btn,
AP = fieldappearances(field),
H = pdf_p,
@@ -1318,7 +1276,7 @@ local function makepushchild(name,specification)
Parent = pdfreference(field.pobj),
F = fieldplus(specification),
OC = fieldlayer(specification),
- AA = fieldactions(specification), -- can be shared
+ AA = fieldactions(specification),
H = pdf_p,
}
if fontsymbol and fontsymbol ~= "" then
@@ -1353,7 +1311,7 @@ end
local function makeradiochild(name,specification)
local field, parent = clones[name], nil
if field then
- field = radios[field.parent]
+ field = radios[field.parent]
parent = fields[field.parent]
if not parent.pobj then
if trace_fields then
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lpdf-fmt.lua b/Master/texmf-dist/tex/context/base/mkiv/lpdf-fmt.lua
index 25a72fa49bc..0830d2d8d82 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lpdf-fmt.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lpdf-fmt.lua
@@ -116,7 +116,6 @@ local formats = utilities.storage.allocate {
jbig2_compression = true, -- todo: block at lua level
jpeg2000_compression = true, -- todo: block at lua level
include_cidsets = true,
- include_charsets = true,
inject_metadata = function()
-- nothing
end
@@ -132,7 +131,6 @@ local formats = utilities.storage.allocate {
spot_colors = true,
internal_icc_profiles = true,
include_cidsets = true,
- include_charsets = true,
inject_metadata = function()
addtoinfo("GTS_PDFXVersion","PDF/X-1a:2001")
injectxmpinfo("xml://rdf:RDF","<rdf:Description rdf:about='' xmlns:pdfxid='http://www.npes.org/pdfx/ns/id/'><pdfxid:GTS_PDFXVersion>PDF/X-1a:2001</pdfxid:GTS_PDFXVersion></rdf:Description>",false)
@@ -148,7 +146,6 @@ local formats = utilities.storage.allocate {
spot_colors = true,
internal_icc_profiles = true,
include_cidsets = true,
- include_charsets = true,
inject_metadata = function()
addtoinfo("GTS_PDFXVersion","PDF/X-1a:2003")
injectxmpinfo("xml://rdf:RDF","<rdf:Description rdf:about='' xmlns:pdfxid='http://www.npes.org/pdfx/ns/id/'><pdfxid:GTS_PDFXVersion>PDF/X-1a:2003</pdfxid:GTS_PDFXVersion></rdf:Description>",false)
@@ -168,7 +165,6 @@ local formats = utilities.storage.allocate {
internal_icc_profiles = true,
include_intents = true,
include_cidsets = true,
- include_charsets = true,
inject_metadata = function()
addtoinfo("GTS_PDFXVersion","PDF/X-3:2002")
end
@@ -188,7 +184,6 @@ local formats = utilities.storage.allocate {
include_intents = true,
jbig2_compression = true,
include_cidsets = true,
- include_charsets = true,
inject_metadata = function()
addtoinfo("GTS_PDFXVersion","PDF/X-3:2003")
end
@@ -212,7 +207,6 @@ local formats = utilities.storage.allocate {
jpeg2000_compression = true,
object_compression = true,
include_cidsets = true,
- include_charsets = true,
inject_metadata = function()
injectxmpinfo("xml://rdf:RDF","<rdf:Description rdf:about='' xmlns:pdfxid='http://www.npes.org/pdfx/ns/id/'><pdfxid:GTS_PDFXVersion>PDF/X-4</pdfxid:GTS_PDFXVersion></rdf:Description>",false)
insertxmpinfo("xml://rdf:Description/xmpMM:InstanceID","<xmpMM:VersionID>1</xmpMM:VersionID>",false)
@@ -239,7 +233,6 @@ local formats = utilities.storage.allocate {
jpeg2000_compression = true,
object_compression = true,
include_cidsets = true,
- include_charsets = true,
inject_metadata = function()
injectxmpinfo("xml://rdf:RDF","<rdf:Description rdf:about='' xmlns:pdfxid='http://www.npes.org/pdfx/ns/id/'><pdfxid:GTS_PDFXVersion>PDF/X-4p</pdfxid:GTS_PDFXVersion></rdf:Description>",false)
insertxmpinfo("xml://rdf:Description/xmpMM:InstanceID","<xmpMM:VersionID>1</xmpMM:VersionID>",false)
@@ -266,7 +259,6 @@ local formats = utilities.storage.allocate {
jpeg2000_compression = true,
object_compression = true,
include_cidsets = true,
- include_charsets = true,
inject_metadata = function()
-- todo
end
@@ -292,7 +284,6 @@ local formats = utilities.storage.allocate {
jpeg2000_compression = true,
object_compression = true,
include_cidsets = true,
- include_charsets = true,
inject_metadata = function()
-- todo
end
@@ -317,7 +308,6 @@ local formats = utilities.storage.allocate {
nchannel_colorspace = true,
object_compression = true,
include_cidsets = true,
- include_charsets = true,
inject_metadata = function()
-- todo
end
@@ -338,7 +328,6 @@ local formats = utilities.storage.allocate {
tagging = true, -- NEW; the only difference to PDF/A-1b
internal_icc_profiles = true,
include_cidsets = true,
- include_charsets = true,
inject_metadata = function()
injectxmpinfo("xml://rdf:RDF","<rdf:Description rdf:about='' xmlns:pdfaid='http://www.aiim.org/pdfa/ns/id/'><pdfaid:part>1</pdfaid:part><pdfaid:conformance>A</pdfaid:conformance></rdf:Description>",false)
end
@@ -358,7 +347,6 @@ local formats = utilities.storage.allocate {
forms = true,
internal_icc_profiles = true,
include_cidsets = true,
- include_charsets = true,
inject_metadata = function()
injectxmpinfo("xml://rdf:RDF","<rdf:Description rdf:about='' xmlns:pdfaid='http://www.aiim.org/pdfa/ns/id/'><pdfaid:part>1</pdfaid:part><pdfaid:conformance>B</pdfaid:conformance></rdf:Description>",false)
end
@@ -383,7 +371,6 @@ local formats = utilities.storage.allocate {
jpeg2000_compression = true, -- NEW
object_compression = true,
include_cidsets = false,
- include_charsets = false,
inject_metadata = function()
injectxmpinfo("xml://rdf:RDF","<rdf:Description rdf:about='' xmlns:pdfaid='http://www.aiim.org/pdfa/ns/id/'><pdfaid:part>2</pdfaid:part><pdfaid:conformance>A</pdfaid:conformance></rdf:Description>",false)
end
@@ -408,7 +395,6 @@ local formats = utilities.storage.allocate {
jpeg2000_compression = true,
object_compression = true,
include_cidsets = false,
- include_charsets = false,
inject_metadata = function()
injectxmpinfo("xml://rdf:RDF","<rdf:Description rdf:about='' xmlns:pdfaid='http://www.aiim.org/pdfa/ns/id/'><pdfaid:part>3</pdfaid:part><pdfaid:conformance>A</pdfaid:conformance></rdf:Description>",false)
end
@@ -432,7 +418,6 @@ local formats = utilities.storage.allocate {
jpeg2000_compression = true,
object_compression = true,
include_cidsets = true,
- include_charsets = true, --- really ?
inject_metadata = function()
injectxmpinfo("xml://rdf:RDF","<rdf:Description rdf:about='' xmlns:pdfaid='http://www.aiim.org/pdfa/ns/id/'><pdfaid:part>3</pdfaid:part><pdfaid:conformance>A</pdfaid:conformance></rdf:Description>",false)
injectxmpinfo("xml://rdf:RDF","<rdf:Description rdf:about='' xmlns:pdfuaid='http://www.aiim.org/pdfua/ns/id/'><pdfuaid:part>1</pdfuaid:part></rdf:Description>",false)
@@ -768,11 +753,7 @@ function codeinjections.setformat(s)
majorversion,minorversion)
end
--
- -- cid sets can always omitted now, but those validators still complain so let's
- -- for a while keep it (for luigi):
- --
- lpdf.setomitcidset (formatspecification.include_cidsets == false and 1 or 0)
- lpdf.setomitcharset(formatspecification.include_charsets == false and 1 or 0)
+ pdf.setomitcidset(formatspecification.include_cidsets == false and 1 or 0)
--
-- context.setupcolors { -- not this way
-- cmyk = spec.cmyk_colors and variables.yes or variables.no,
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lpdf-fnt.lua b/Master/texmf-dist/tex/context/base/mkiv/lpdf-fnt.lua
deleted file mode 100644
index 1caa2f93c98..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/lpdf-fnt.lua
+++ /dev/null
@@ -1,202 +0,0 @@
-if not modules then modules = { } end modules ['lpdf-fnt'] = {
- version = 1.001,
- comment = "companion to lpdf-ini.mkiv",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
--- This is experimental code.
-
-local match, gmatch = string.match, string.gmatch
-local tonumber = tonumber
-
-local pdfreserveobject = lpdf.reserveobject
-local pdfincludechar = lpdf.includechar
-local pdfincludefont = lpdf.includefont
-local pdfreference = lpdf.reference
-
-local pdfe = lpdf.epdf
-
-local tobemerged = { }
-local trace_merge = false trackers.register("graphics.fonts",function(v) trace_merge = v end)
-local report_merge = logs.reporter("graphics","fonts")
-
-local function register(usedname,cleanname)
- local cleanname = cleanname or fonts.names.cleanname(usedname)
- local fontid = fonts.definers.internal { name = cleanname }
- if fontid then
- local objref = pdfreserveobject()
- pdfincludefont(fontid)
- if trace_merge then
- report_merge("registering %a with name %a, id %a and object %a",usedname,cleanname,fontid,objref)
- end
- return {
- id = fontid,
- reference = objref,
- indices = { },
- cleanname = cleanname,
- }
- end
- return false
-end
-
-function lpdf.registerfont(usedname,cleanname)
- local v = register(usedname,cleanname)
- tobemerged[usedname] = v
- return v
-end
-
-table.setmetatableindex(tobemerged,function(t,k)
- return lpdf.registerfont(k)
-end)
-
-local function finalizefont(v)
- local indextoslot = fonts.helpers.indextoslot
- if v then
- local id = v.id
- local n = 0
- for i in next, v.indices do
- local u = indextoslot(id,i)
- -- pdfincludechar(id,u)
- n = n + 1
- end
- v.n = n
- end
-end
-
-statistics.register("merged fonts", function()
- if next(tobemerged) then
- local t = { }
- for k, v in table.sortedhash(tobemerged) do
- t[#t+1] = string.formatters["%s (+%i)"](k,v.n)
- end
- return table.concat(t," ")
- end
-end)
-
-function lpdf.finalizefonts()
- for k, v in next, tobemerged do
- finalizefont(v)
- end
-end
-
-callback.register("font_descriptor_objnum_provider",function(name)
- local m = rawget(tobemerged,name)
- if m then
- -- finalizefont(m)
- local r = m.reference or 0
- if trace_merge then
- report_merge("using object %a for font descriptor of %a",r,name)
- end
- return r
- end
- return 0
-end)
-
-local function getunicodes1(str,indices)
- for s in gmatch(str,"beginbfrange%s*(.-)%s*endbfrange") do
- for first, last, offset in gmatch(s,"<([^>]+)>%s+<([^>]+)>%s+<([^>]+)>") do
- for i=tonumber(first,16),tonumber(last,16) do
- indices[i] = true
- end
- end
- end
- for s in gmatch(str,"beginbfchar%s*(.-)%s*endbfchar") do
- for old, new in gmatch(s,"<([^>]+)>%s+<([^>]+)>") do
- indices[tonumber(old,16)] = true
- end
- end
-end
-
-local function getunicodes2(widths,indices)
- for i=1,#widths,2 do
- local start = widths[i]
- local count = #widths[i+1]
- if start and count then
- for i=start,start+count-1 do
- indices[i] = true
- end
- end
- end
-end
-
-local function checkedfonts(pdfdoc,xref,copied,page)
- local list = page.Resources.Font
- local done = { }
- for k, somefont in pdfe.expanded(list) do
- if somefont.Subtype == "Type0" and somefont.Encoding == "Identity-H" then
- local descendants = somefont.DescendantFonts
- if descendants then
- for i=1,#descendants do
- local d = descendants[i]
- if d then
- local subtype = d.Subtype
- if subtype == "CIDFontType0" or subtype == "CIDFontType2" then
- local basefont = somefont.BaseFont
- if basefont then
- local fontname = match(basefont,"^[A-Z]+%+(.+)$")
- local fontdata = tobemerged[fontname]
- if fontdata then
- local descriptor = d.FontDescriptor
- if descriptor then
- local okay = false
- local widths = d.W
- if widths then
- getunicodes2(widths,fontdata.indices)
- okay = true
- else
- local tounicode = somefont.ToUnicode
- if tounicode then
- getunicodes1(tounicode(),fontdata.indices)
- okay = true
- end
- end
- if okay then
- local r = xref[descriptor]
- done[r] = fontdata.reference
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
- return next(done) and done
-end
-
-if pdfincludefont then
-
- function lpdf.epdf.plugin(pdfdoc,xref,copied,page)
- local done = checkedfonts(pdfdoc,xref,copied,page)
- if done then
- return {
- FontDescriptor = function(xref,copied,object,key,value,copyobject)
- local r = value[3]
- local d = done[r]
- if d then
- return pdfreference(d)
- else
- return copyobject(xref,copied,object,key,value)
- end
- end
- }
- end
- end
-
-else
-
- function lpdf.epdf.plugin() end
-
-end
-
-lpdf.registerdocumentfinalizer(lpdf.finalizefonts)
-
--- already defined in font-ocl but the context variatn will go here
---
--- function lpdf.vfimage(wd,ht,dp,data,name)
--- return { "image", { filename = name, width = wd, height = ht, depth = dp } }
--- end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lpdf-grp.lua b/Master/texmf-dist/tex/context/base/mkiv/lpdf-grp.lua
index 49cc7687111..34925fddd98 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lpdf-grp.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lpdf-grp.lua
@@ -29,10 +29,6 @@ local pdfboolean = lpdf.boolean
local pdfreference = lpdf.reference
local pdfflushobject = lpdf.flushobject
-local createimage = images.create
-local wrapimage = images.wrap
-local embedimage = images.embed
-
-- can also be done indirectly:
--
-- 12 : << /AntiAlias false /ColorSpace 8 0 R /Coords [ 0.0 0.0 1.0 0.0 ] /Domain [ 0.0 1.0 ] /Extend [ true true ] /Function 22 0 R /ShadingType 2 >>
@@ -157,18 +153,13 @@ function nodeinjections.injectbitmap(t)
elseif height == 0 then
height = width * yresolution / xresolution
end
- local a = pdfdictionary {
- BBox = pdfarray { 0, 0, urx * basepoints, ury * basepoints }
- }
- local image = createimage {
+ local image = img.new {
stream = formatters[template](d(),t.data),
width = width,
height = height,
bbox = { 0, 0, urx, ury },
- attr = a(),
- nobbox = true,
}
- return wrapimage(image)
+ return img.node(image)
end
-- general graphic helpers
@@ -190,7 +181,7 @@ function codeinjections.setfigurealternative(data,figure)
local displayfigure = figures.check()
if displayfigure then
-- figure.aform = true
- embedimage(figure)
+ img.immediatewrite(figure)
local a = pdfarray {
pdfdictionary {
Image = pdfreference(figure.objnum),
@@ -224,14 +215,14 @@ function codeinjections.getpreviewfigure(request)
end
local image = figure.status.private
if image then
- embedimage(image)
+ img.immediatewrite(image)
end
return figure
end
function codeinjections.setfiguremask(data,figure) -- mark
local request = data.request
- local mask = request.mask
+ local mask = request.mask
if mask and mask ~= "" then
figures.push {
name = mask,
@@ -242,16 +233,15 @@ function codeinjections.setfiguremask(data,figure) -- mark
width = request.width,
height = request.height,
}
- mask = figures.identify()
- mask = figures.check(mask)
- if mask then
- local image = mask.status.private
+ figures.identify()
+ local maskfigure = figures.check()
+ if maskfigure then
+ local image = maskfigure.status.private
if image then
- figures.include(mask)
- embedimage(image)
+ img.immediatewrite(image)
local d = pdfdictionary {
Interpolate = false,
- SMask = pdfreference(mask.status.objectnumber),
+ SMask = pdfreference(image.objnum),
}
figure.attr = d()
end
@@ -260,16 +250,39 @@ function codeinjections.setfiguremask(data,figure) -- mark
end
end
--- experimental (q Q is not really needed)
+-- temp hack
-local f_pattern = formatters["q /Pattern cs /%s scn 0 0 %.6F %.6F re f Q"]
+function img.package(image) -- see lpdf-u3d **
+ local boundingbox = image.bbox
+ local imagetag = "Im" .. image.index
+ local resources = pdfdictionary {
+ ProcSet = pdfarray {
+ pdfconstant("PDF"),
+ pdfconstant("ImageC")
+ },
+ Resources = pdfdictionary {
+ XObject = pdfdictionary {
+ [imagetag] = pdfreference(image.objnum)
+ }
+ }
+ }
+ local width = boundingbox[3]
+ local height = boundingbox[4]
+ local xform = img.scan {
+ attr = resources(),
+ stream = formatters["%.6F 0 0 %.6F 0 0 cm /%s Do"](width,height,imagetag),
+ bbox = { 0, 0, width/basepoints, height/basepoints },
+ }
+ img.immediatewrite(xform)
+ return xform
+end
-directives.register("pdf.stripzeros",function()
- f_pattern = formatters["q /Pattern cs /%s scn 0 0 %.6N %.6N re f Q"]
-end)
+-- experimental
-local saveboxresource = tex.boxresources.save
-local nofpatterns = 0
+local nofpatterns = 0
+local f_pattern = formatters["q /Pattern cs /%s scn 0 0 %.6F %.6F re f Q"] -- q Q is not really needed
+
+local texsavebox = tex.saveboxresource
function lpdf.registerpattern(specification)
nofpatterns = nofpatterns + 1
@@ -286,11 +299,10 @@ function lpdf.registerpattern(specification)
(specification.voffset or 0) * basepoints,
},
}
-
local resources = lpdf.collectedresources{ patterns = false }
local attributes = d()
local onlybounds = 1
- local patternobj = saveboxresource(specification.number,attributes,resources,true,onlybounds)
+ local patternobj = texsavebox(specification.number,attributes,resources,true,onlybounds)
lpdf.adddocumentpattern("Pt" .. nofpatterns,lpdf.reference(patternobj ))
return nofpatterns
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lpdf-ini.lua b/Master/texmf-dist/tex/context/base/mkiv/lpdf-ini.lua
index ec837449f7e..8af1fb40965 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lpdf-ini.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lpdf-ini.lua
@@ -13,8 +13,7 @@ local char, byte, format, gsub, concat, match, sub, gmatch = string.char, string
local utfchar, utfbyte, utfvalues = utf.char, utf.byte, utf.values
local sind, cosd, max, min = math.sind, math.cosd, math.max, math.min
local sort = table.sort
-local P, C, R, S, Cc, Cs, V = lpeg.P, lpeg.C, lpeg.R, lpeg.S, lpeg.Cc, lpeg.Cs, lpeg.V
-local lpegmatch, lpegpatterns = lpeg.match, lpeg.patterns
+local lpegmatch, P, C, R, S, Cc, Cs = lpeg.match, lpeg.P, lpeg.C, lpeg.R, lpeg.S, lpeg.Cc, lpeg.Cs
local formatters = string.formatters
local isboolean = string.is_boolean
local rshift = bit32.rshift
@@ -32,234 +31,217 @@ local context = context
-- encoded utf16 string type between <>. We could probably save some bytes by using
-- strings between () but then we end up with escaped ()\ too.
-pdf = type(pdf) == "table" and pdf or { }
-local factor = number.dimenfactors.bp
+-- gethpos : used
+-- getpos : used
+-- getvpos : used
+--
+-- getmatrix : used
+-- hasmatrix : used
+--
+-- mapfile : used in font-ctx.lua
+-- mapline : used in font-ctx.lua
+--
+-- maxobjnum : not used
+-- obj : used
+-- immediateobj : used
+-- objtype : not used
+-- pageref : used
+-- print : can be used
+-- refobj : used
+-- registerannot : not to be used
+-- reserveobj : used
+
+-- pdf.catalog : used
+-- pdf.info : used
+-- pdf.trailer : used
+-- pdf.names : not to be used
+
+-- pdf.setinfo : used
+-- pdf.setcatalog : used
+-- pdf.setnames : not to be used
+-- pdf.settrailer : used
+
+-- pdf.getinfo : used
+-- pdf.getcatalog : used
+-- pdf.getnames : not to be used
+-- pdf.gettrailer : used
+
+local pdf = pdf
+local factor = number.dimenfactors.bp
+
+local pdfsetinfo = pdf.setinfo
+local pdfsetcatalog = pdf.setcatalog
+----- pdfsettrailerid = pdf.settrailerid
+----- pdfsetnames = pdf.setnames
+----- pdfsettrailer = pdf.settrailer
+
+local pdfsetpageresources = pdf.setpageresources
+local pdfsetpageattributes = pdf.setpageattributes
+local pdfsetpagesattributes = pdf.setpagesattributes
+
+local pdfgetpos = pdf.getpos
+local pdfgethpos = pdf.gethpos
+local pdfgetvpos = pdf.getvpos
+local pdfgetmatrix = pdf.getmatrix
+local pdfhasmatrix = pdf.hasmatrix
+
+local pdfreserveobject = pdf.reserveobj
+local pdfimmediateobject = pdf.immediateobj
+local pdfdeferredobject = pdf.obj
+local pdfreferenceobject = pdf.refobj
+
+local function pdfdisablecommand(command)
+ pdf[command] = function() report_blocked("'pdf.%s' is not supported",command) end
+end
-local codeinjections = { }
-local nodeinjections = { }
+pdfdisablecommand("setinfo")
+pdfdisablecommand("setcatalog")
+pdfdisablecommand("setnames")
+pdfdisablecommand("settrailer")
+pdfdisablecommand("setpageresources")
+pdfdisablecommand("setpageattributes")
+pdfdisablecommand("setpagesattributes")
+pdfdisablecommand("registerannot")
-local backends = backends
+pdf.disablecommand = pdfdisablecommand
-local pdfbackend = {
+local trace_finalizers = false trackers.register("backend.finalizers", function(v) trace_finalizers = v end)
+local trace_resources = false trackers.register("backend.resources", function(v) trace_resources = v end)
+local trace_objects = false trackers.register("backend.objects", function(v) trace_objects = v end)
+local trace_detail = false trackers.register("backend.detail", function(v) trace_detail = v end)
+
+local backends = backends
+local pdfbackend = {
comment = "backend for directly generating pdf output",
- nodeinjections = nodeinjections,
- codeinjections = codeinjections,
+ nodeinjections = { },
+ codeinjections = { },
registrations = { },
tables = { },
}
+backends.pdf = pdfbackend
+lpdf = lpdf or { }
+local lpdf = lpdf
-backends.pdf = pdfbackend
-
-lpdf = lpdf or { }
-local lpdf = lpdf
-lpdf.flags = lpdf.flags or { } -- will be filled later
-
-local trace_finalizers = false trackers.register("backend.finalizers", function(v) trace_finalizers = v end)
-local trace_resources = false trackers.register("backend.resources", function(v) trace_resources = v end)
-local trace_objects = false trackers.register("backend.objects", function(v) trace_objects = v end)
-local trace_detail = false trackers.register("backend.detail", function(v) trace_detail = v end)
+lpdf.flags = lpdf.flags or { } -- will be filled later
do
- local pdfsetmajorversion, pdfsetminorversion, pdfgetmajorversion, pdfgetminorversion
- local pdfsetcompresslevel, pdfsetobjectcompresslevel, pdfgetcompresslevel, pdfgetobjectcompresslevel
- local pdfsetsuppressoptionalinfo, pdfsetomitcidset, pdfsetomitcharset
+ local setmajorversion = pdf.setmajorversion
+ local setminorversion = pdf.setminorversion
+ local getmajorversion = pdf.getmajorversion
+ local getminorversion = pdf.getminorversion
- updaters.register("backend.update.lpdf",function()
- pdfsetmajorversion = pdf.setmajorversion
- pdfsetminorversion = pdf.setminorversion
- pdfgetmajorversion = pdf.getmajorversion
- pdfgetminorversion = pdf.getminorversion
+ if not setmajorversion then
- pdfsetcompresslevel = pdf.setcompresslevel
- pdfsetobjectcompresslevel = pdf.setobjcompresslevel
- pdfgetcompresslevel = pdf.getcompresslevel
- pdfgetobjectcompresslevel = pdf.getobjcompresslevel
+ setmajorversion = function() end
+ getmajorversion = function() return 1 end
- pdfsetsuppressoptionalinfo = pdf.setsuppressoptionalinfo
- pdfsetomitcidset = pdf.setomitcidset
- pdfsetomitcharset = pdf.setomitcharset
- end)
+ pdf.setmajorversion = setmajorversion
+ pdf.getmajorversion = getmajorversion
+
+ end
function lpdf.setversion(major,minor)
- pdfsetmajorversion(major or 1)
- pdfsetminorversion(minor or 7)
+ setmajorversion(major or 1)
+ setminorversion(minor or 7)
end
function lpdf.getversion(major,minor)
- return pdfgetmajorversion(), pdfgetminorversion()
+ return getmajorversion(), getminorversion()
end
- function lpdf.majorversion() return pdfgetmajorversion() end
- function lpdf.minorversion() return pdfgetminorversion() end
+ lpdf.majorversion = getmajorversion
+ lpdf.minorversion = getminorversion
+
+end
+
+do
+
+ local setcompresslevel = pdf.setcompresslevel
+ local setobjectcompresslevel = pdf.setobjcompresslevel
+ local getcompresslevel = pdf.getcompresslevel
+ local getobjectcompresslevel = pdf.getobjcompresslevel
local frozen = false
- local clevel = 3
- local olevel = 1
function lpdf.setcompression(level,objectlevel,freeze)
if not frozen then
- if pdfsetcompresslevel then
- pdfsetcompresslevel(level or 3)
- pdfsetobjectcompresslevel(objectlevel or level or 3)
- else
- clevel = level
- olevel = objectlevel
- end
+ setcompresslevel(level or 3)
+ setobjectcompresslevel(objectlevel or level or 3)
frozen = freeze
end
end
function lpdf.getcompression()
- if pdfgetcompresslevel then
- return pdfgetcompresslevel(), pdfgetobjectcompresslevel()
- else
- return clevel, olevel
- end
- end
-
- function lpdf.compresslevel()
- if pdfgetcompresslevel then
- return pdfgetcompresslevel()
- else
- return clevel
- end
+ return getcompresslevel(), getobjectcompresslevel()
end
- function lpdf.objectcompresslevel()
- if pdfgetobjectcompresslevel then
- return pdfgetobjectcompresslevel()
- else
- return olevel
- end
- end
-
- function lpdf.setsuppressoptionalinfo(n)
- if pdfsetsuppressoptionalinfo then
- pdfsetsuppressoptionalinfo(n) -- todo
- end
- end
-
- function lpdf.setomitcidset(v)
- return pdfsetomitcidset(v)
- end
-
- function lpdf.setomitcharset(v)
- return pdfsetomitcharset(v)
- end
+ lpdf.compresslevel = getcompresslevel
+ lpdf.objectcompresslevel = getobjectcompresslevel
end
-do
-
- local pdfgetxformname, pdfincludeimage
-
- updaters.register("backend.update.lpdf",function()
- pdfgetxformname = pdf.getxformname
- pdfincludeimage = pdf.includeimage
- end)
-
- function lpdf.getxformname(id) return pdfgetxformname(id) end
- function lpdf.includeimage(id) return pdfincludeimage(id) end
+local codeinjections = pdfbackend.codeinjections
+local nodeinjections = pdfbackend.nodeinjections
+
+codeinjections.getpos = pdfgetpos lpdf.getpos = pdfgetpos
+codeinjections.gethpos = pdfgethpos lpdf.gethpos = pdfgethpos
+codeinjections.getvpos = pdfgetvpos lpdf.getvpos = pdfgetvpos
+codeinjections.hasmatrix = pdfhasmatrix lpdf.hasmatrix = pdfhasmatrix
+codeinjections.getmatrix = pdfgetmatrix lpdf.getmatrix = pdfgetmatrix
+
+-- local function transform(llx,lly,urx,ury,rx,sx,sy,ry)
+-- local x1 = llx * rx + lly * sy
+-- local y1 = llx * sx + lly * ry
+-- local x2 = llx * rx + ury * sy
+-- local y2 = llx * sx + ury * ry
+-- local x3 = urx * rx + lly * sy
+-- local y3 = urx * sx + lly * ry
+-- local x4 = urx * rx + ury * sy
+-- local y4 = urx * sx + ury * ry
+-- llx = min(x1,x2,x3,x4);
+-- lly = min(y1,y2,y3,y4);
+-- urx = max(x1,x2,x3,x4);
+-- ury = max(y1,y2,y3,y4);
+-- return llx, lly, urx, ury
+-- end
+function lpdf.transform(llx,lly,urx,ury) -- not yet used so unchecked
+ if pdfhasmatrix() then
+ local sx, rx, ry, sy = pdfgetmatrix()
+ local w, h = urx - llx, ury - lly
+ return llx, lly, llx + sy*w - ry*h, lly + sx*h - rx*w
+ -- return transform(llx,lly,urx,ury,sx,rx,ry,sy)
+ else
+ return llx, lly, urx, ury
+ end
end
- local pdfsetpageresources, pdfsetpageattributes, pdfsetpagesattributes
- local pdfreserveobject, pdfimmediateobject, pdfdeferredobject, pdfreferenceobject
- local pdfgetpagereference
-
- updaters.register("backend.update.lpdf",function()
- pdfreserveobject = pdf.reserveobj
- pdfimmediateobject = pdf.immediateobj
- pdfdeferredobject = pdf.obj
- pdfreferenceobject = pdf.refobj
-
- pdfgetpagereference = pdf.getpageref
-
- pdfsetpageresources = pdf.setpageresources
- pdfsetpageattributes = pdf.setpageattributes
- pdfsetpagesattributes = pdf.setpagesattributes
- end)
-
-local jobpositions = job.positions
-local getpos = jobpositions.getpos
-
-jobpositions.registerhandlers {
- getpos = pdf.getpos,
- gethpos = pdf.gethpos,
- getvpos = pdf.getvpos,
-}
-
-do
-
- local pdfgetmatrix, pdfhasmatrix, pdfprint
-
- updaters.register("backend.update.lpdf",function()
- pdfgetmatrix = pdf.getmatrix
- pdfhasmatrix = pdf.hasmatrix
- pdfprint = pdf.print
- end)
-
- function lpdf.print(...)
- return pdfprint(...)
- end
-
- pdfbackend.codeinjections.print = lpdf.print -- will go
-
- -- local function transform(llx,lly,urx,ury,rx,sx,sy,ry)
- -- local x1 = llx * rx + lly * sy
- -- local y1 = llx * sx + lly * ry
- -- local x2 = llx * rx + ury * sy
- -- local y2 = llx * sx + ury * ry
- -- local x3 = urx * rx + lly * sy
- -- local y3 = urx * sx + lly * ry
- -- local x4 = urx * rx + ury * sy
- -- local y4 = urx * sx + ury * ry
- -- llx = min(x1,x2,x3,x4);
- -- lly = min(y1,y2,y3,y4);
- -- urx = max(x1,x2,x3,x4);
- -- ury = max(y1,y2,y3,y4);
- -- return llx, lly, urx, ury
- -- end
- --
- -- function lpdf.transform(llx,lly,urx,ury) -- not yet used so unchecked
- -- if pdfhasmatrix() then
- -- local sx, rx, ry, sy = pdfgetmatrix()
- -- local w, h = urx - llx, ury - lly
- -- return llx, lly, llx + sy*w - ry*h, lly + sx*h - rx*w
- -- -- return transform(llx,lly,urx,ury,sx,rx,ry,sy)
- -- else
- -- return llx, lly, urx, ury
- -- end
- -- end
-
- -- funny values for tx and ty
-
- function lpdf.rectangle(width,height,depth,offset)
- local tx, ty = getpos()
- if offset then
- tx = tx - offset
- ty = ty + offset
- width = width + 2*offset
- height = height + offset
- depth = depth + offset
- end
- if pdfhasmatrix() then
- local rx, sx, sy, ry = pdfgetmatrix()
- return
- factor * tx,
- factor * (ty - ry*depth + sx*width),
- factor * (tx + rx*width - sy*height),
- factor * (ty + ry*height - sx*width)
- else
- return
- factor * tx,
- factor * (ty - depth),
- factor * (tx + width),
- factor * (ty + height)
- end
+-- funny values for tx and ty
+
+function lpdf.rectangle(width,height,depth,offset)
+ local tx, ty = pdfgetpos()
+ if offset then
+ tx = tx - offset
+ ty = ty + offset
+ width = width + 2*offset
+ height = height + offset
+ depth = depth + offset
+ end
+ if pdfhasmatrix() then
+ local rx, sx, sy, ry = pdfgetmatrix()
+ return
+ factor * tx,
+ factor * (ty - ry*depth + sx*width),
+ factor * (tx + rx*width - sy*height),
+ factor * (ty + ry*height - sx*width)
+ else
+ return
+ factor * tx,
+ factor * (ty - depth),
+ factor * (tx + width),
+ factor * (ty + height)
end
-
end
-- we could use a hash of predefined unicodes
@@ -283,290 +265,204 @@ end
-- end
-- end
-local tosixteen, fromsixteen, topdfdoc, frompdfdoc, toeight, fromeight
-
-do
-
- local escaped = Cs(Cc("(") * (S("\\()\n\r\t\b\f")/"\\%0" + P(1))^0 * Cc(")"))
-
- local cache = table.setmetatableindex(function(t,k) -- can be made weak
- local v = utfbyte(k)
- if v < 0x10000 then
- v = format("%04x",v)
- else
- v = format("%04x%04x",rshift(v,10),v%1024+0xDC00)
- end
- t[k] = v
- return v
- end)
-
- local unified = Cs(Cc("<feff") * (lpeg.patterns.utf8character/cache)^1 * Cc(">"))
-
- tosixteen = function(str) -- an lpeg might be faster (no table)
- if not str or str == "" then
- return "<feff>" -- not () as we want an indication that it's unicode
- else
- return lpegmatch(unified,str)
- end
+local cache = table.setmetatableindex(function(t,k) -- can be made weak
+ local v = utfbyte(k)
+ if v < 0x10000 then
+ v = format("%04x",v)
+ else
+ v = format("%04x%04x",rshift(v,10),v%1024+0xDC00)
end
+ t[k] = v
+ return v
+end)
- local more = 0
+local escaped = Cs(Cc("(") * (S("\\()")/"\\%0" + P(1))^0 * Cc(")"))
+local unified = Cs(Cc("<feff") * (lpeg.patterns.utf8character/cache)^1 * Cc(">"))
- local pattern = C(4) / function(s) -- needs checking !
- local now = tonumber(s,16)
- if more > 0 then
- now = (more-0xD800)*0x400 + (now-0xDC00) + 0x10000 -- the 0x10000 smells wrong
- more = 0
- return utfchar(now)
- elseif now >= 0xD800 and now <= 0xDBFF then
- more = now
- return "" -- else the c's end up in the stream
- else
- return utfchar(now)
- end
+local function tosixteen(str) -- an lpeg might be faster (no table)
+ if not str or str == "" then
+ return "<feff>" -- not () as we want an indication that it's unicode
+ else
+ return lpegmatch(unified,str)
end
+end
- local pattern = P(true) / function() more = 0 end * Cs(pattern^0)
-
- fromsixteen = function(str)
- if not str or str == "" then
- return ""
- else
- return lpegmatch(pattern,str)
- end
+local more = 0
+
+local pattern = C(4) / function(s) -- needs checking !
+ local now = tonumber(s,16)
+ if more > 0 then
+ now = (more-0xD800)*0x400 + (now-0xDC00) + 0x10000 -- the 0x10000 smells wrong
+ more = 0
+ return utfchar(now)
+ elseif now >= 0xD800 and now <= 0xDBFF then
+ more = now
+ return "" -- else the c's end up in the stream
+ else
+ return utfchar(now)
end
+end
- local toregime = regimes.toregime
- local fromregime = regimes.fromregime
+local pattern = P(true) / function() more = 0 end * Cs(pattern^0)
- topdfdoc = function(str,default)
- if not str or str == "" then
- return ""
- else
- return lpegmatch(escaped,toregime("pdfdoc",str,default)) -- could be combined if needed
- end
- end
-
- frompdfdoc = function(str)
- if not str or str == "" then
- return ""
- else
- return fromregime("pdfdoc",str)
- end
+local function fromsixteen(str)
+ if not str or str == "" then
+ return ""
+ else
+ return lpegmatch(pattern,str)
end
+end
- if not toregime then topdfdoc = function(s) return s end end
- if not fromregime then frompdfdoc = function(s) return s end end
+local toregime = regimes.toregime
+local fromregime = regimes.fromregime
- toeight = function(str)
- if not str or str == "" then
- return "()"
- else
- return lpegmatch(escaped,str)
- end
+local function topdfdoc(str,default)
+ if not str or str == "" then
+ return ""
+ else
+ return lpegmatch(escaped,toregime("pdfdoc",str,default)) -- could be combined if needed
end
+end
- local b_pattern = Cs((P("\\")/"" * (
- S("()")
- + S("nrtbf") / { n = "\n", r = "\r", t = "\t", b = "\b", f = "\f" }
- + lpegpatterns.octdigit^-3 / function(s) return char(tonumber(s,8)) end)
- + P(1))^0)
-
- fromeight = function(str)
- if not str or str == "" then
- return ""
- else
- return lpegmatch(unescape,str)
- end
+local function frompdfdoc(str)
+ if not str or str == "" then
+ return ""
+ else
+ return fromregime("pdfdoc",str)
end
+end
- local u_pattern = lpegpatterns.utfbom_16_be * lpegpatterns.utf16_to_utf8_be -- official
- + lpegpatterns.utfbom_16_le * lpegpatterns.utf16_to_utf8_le -- we've seen these
-
- local h_pattern = lpegpatterns.hextobytes
-
- local zero = S(" \n\r\t") + P("\\ ")
- local one = C(4)
- local two = P("d") * R("89","af") * C(2) * C(4)
-
- local x_pattern = P { "start",
- start = V("wrapped") + V("unwrapped") + V("original"),
- original = Cs(P(1)^0),
- wrapped = P("<") * V("unwrapped") * P(">") * P(-1),
- unwrapped = P("feff")
- * Cs( (
- zero / ""
- + two / function(a,b)
- a = (tonumber(a,16) - 0xD800) * 1024
- b = (tonumber(b,16) - 0xDC00)
- return utfchar(a+b)
- end
- + one / function(a)
- return utfchar(tonumber(a,16))
- end
- )^1 ) * P(-1)
- }
+if not toregime then topdfdoc = function(s) return s end end
+if not fromregime then frompdfdoc = function(s) return s end end
- function lpdf.frombytes(s,hex)
- if not s or s == "" then
- return ""
- end
- if hex then
- local x = lpegmatch(x_pattern,s)
- if x then
- return x
- end
- local h = lpegmatch(h_pattern,s)
- if h then
- return h
- end
- else
- local u = lpegmatch(u_pattern,s)
- if u then
- return u
- end
- end
- return lpegmatch(b_pattern,s)
+local function toeight(str)
+ if not str or str == "" then
+ return "()"
+ else
+ return lpegmatch(escaped,str)
end
+end
- lpdf.tosixteen = tosixteen
- lpdf.toeight = toeight
- lpdf.topdfdoc = topdfdoc
- lpdf.fromsixteen = fromsixteen
- lpdf.fromeight = fromeight
- lpdf.frompdfdoc = frompdfdoc
-
+lpdf.tosixteen = tosixteen
+lpdf.toeight = toeight
+lpdf.topdfdoc = topdfdoc
+lpdf.fromsixteen = fromsixteen
+lpdf.frompdfdoc = frompdfdoc
+
+local function merge_t(a,b)
+ local t = { }
+ for k,v in next, a do t[k] = v end
+ for k,v in next, b do t[k] = v end
+ return setmetatable(t,getmetatable(a))
end
-local tostring_a, tostring_d
+local f_key_null = formatters["/%s null"]
+local f_key_value = formatters["/%s %s"]
+local f_key_dictionary = formatters["/%s << % t >>"]
+local f_dictionary = formatters["<< % t >>"]
+local f_key_array = formatters["/%s [ % t ]"]
+local f_array = formatters["[ % t ]"]
+local f_key_number = formatters["/%s %F"]
+local f_tonumber = formatters["%F"]
-do
+local tostring_a, tostring_d
- local f_key_null = formatters["/%s null"]
- local f_key_value = formatters["/%s %s"]
- local f_key_dictionary = formatters["/%s << % t >>"]
- local f_dictionary = formatters["<< % t >>"]
- local f_key_array = formatters["/%s [ % t ]"]
- local f_array = formatters["[ % t ]"]
- local f_key_number = formatters["/%s %N"] -- always with max 9 digits and integer is possible
- local f_tonumber = formatters["%N"] -- always with max 9 digits and integer is possible
-
- tostring_d = function(t,contentonly,key)
- if next(t) then
- local r = { }
- local n = 0
- local e
- for k, v in next, t do
- if k == "__extra__" then
- e = v
- elseif k == "__stream__" then
- -- do nothing (yet)
- else
- n = n + 1
- r[n] = k
- end
- end
- if n > 1 then
- sort(r)
- end
- for i=1,n do
- local k = r[i]
- local v = t[k]
- local tv = type(v)
- -- mostly tables
- if tv == "table" then
- -- local mv = getmetatable(v)
- -- if mv and mv.__lpdftype then
- if v.__lpdftype__ then
- -- if v == t then
- -- report_objects("ignoring circular reference in dirctionary")
- -- r[i] = f_key_null(k)
- -- else
- r[i] = f_key_value(k,tostring(v))
- -- end
- elseif v[1] then
- r[i] = f_key_value(k,tostring_a(v))
- else
- r[i] = f_key_value(k,tostring_d(v))
- end
- elseif tv == "string" then
- r[i] = f_key_value(k,toeight(v))
- elseif tv == "number" then
- r[i] = f_key_number(k,v)
+tostring_d = function(t,contentonly,key)
+ if next(t) then
+ local r, n = { }, 0
+ for k in next, t do
+ n = n + 1
+ r[n] = k
+ end
+ sort(r)
+ for i=1,n do
+ local k = r[i]
+ local v = t[k]
+ local tv = type(v)
+ if tv == "string" then
+ r[i] = f_key_value(k,toeight(v))
+ elseif tv == "number" then
+ r[i] = f_key_number(k,v)
+ -- elseif tv == "unicode" then -- can't happen
+ -- r[i] = f_key_value(k,tosixteen(v))
+ elseif tv == "table" then
+ local mv = getmetatable(v)
+ if mv and mv.__lpdftype then
+ -- if v == t then
+ -- report_objects("ignoring circular reference in dirctionary")
+ -- r[i] = f_key_null(k)
+ -- else
+ r[i] = f_key_value(k,tostring(v))
+ -- end
+ elseif v[1] then
+ r[i] = f_key_value(k,tostring_a(v))
else
- r[i] = f_key_value(k,tostring(v))
+ r[i] = f_key_value(k,tostring_d(v))
end
- end
- if e then
- r[n+1] = e
- end
- if contentonly then
- return concat(r," ")
- elseif key then
- return f_key_dictionary(key,r)
else
- return f_dictionary(r)
+ r[i] = f_key_value(k,tostring(v))
end
- elseif contentonly then
- return ""
+ end
+ if contentonly then
+ return concat(r," ")
+ elseif key then
+ return f_key_dictionary(key,r)
else
- return "<< >>"
+ return f_dictionary(r)
end
+ elseif contentonly then
+ return ""
+ else
+ return "<< >>"
end
+end
- tostring_a = function(t,contentonly,key)
- local tn = #t
- if tn ~= 0 then
- local r = { }
- for k=1,tn do
- local v = t[k]
- local tv = type(v)
- -- mostly numbers and tables
- if tv == "number" then
- r[k] = f_tonumber(v)
- elseif tv == "table" then
- -- local mv = getmetatable(v)
- -- if mv and mv.__lpdftype then
- if v.__lpdftype__ then
- -- if v == t then
- -- report_objects("ignoring circular reference in array")
- -- r[k] = "null"
- -- else
- r[k] = tostring(v)
- -- end
- elseif v[1] then
- r[k] = tostring_a(v)
- else
- r[k] = tostring_d(v)
- end
- elseif tv == "string" then
- r[k] = toeight(v)
+tostring_a = function(t,contentonly,key)
+ local tn = #t
+ if tn ~= 0 then
+ local r = { }
+ for k=1,tn do
+ local v = t[k]
+ local tv = type(v)
+ if tv == "string" then
+ r[k] = toeight(v)
+ elseif tv == "number" then
+ r[k] = f_tonumber(v)
+ -- elseif tv == "unicode" then
+ -- r[k] = tosixteen(v)
+ elseif tv == "table" then
+ local mv = getmetatable(v)
+ local mt = mv and mv.__lpdftype
+ if mt then
+ -- if v == t then
+ -- report_objects("ignoring circular reference in array")
+ -- r[k] = "null"
+ -- else
+ r[k] = tostring(v)
+ -- end
+ elseif v[1] then
+ r[k] = tostring_a(v)
else
- r[k] = tostring(v)
+ r[k] = tostring_d(v)
end
- end
- local e = t.__extra__
- if e then
- r[tn+1] = e
- end
- if contentonly then
- return concat(r, " ")
- elseif key then
- return f_key_array(key,r)
else
- return f_array(r)
+ r[k] = tostring(v)
end
- elseif contentonly then
- return ""
+ end
+ if contentonly then
+ return concat(r, " ")
+ elseif key then
+ return f_key_array(key,r)
else
- return "[ ]"
+ return f_array(r)
end
+ elseif contentonly then
+ return ""
+ else
+ return "[ ]"
end
-
end
-local f_tonumber = formatters["%N"]
-
local tostring_x = function(t) return concat(t," ") end
local tostring_s = function(t) return toeight(t[1]) end
local tostring_p = function(t) return topdfdoc(t[1],t[2]) end
@@ -588,17 +484,6 @@ local tostring_v = function(t)
end
end
-local tostring_l = function(t)
- local s = t[1]
- if not s or s == "" then
- return "()"
- elseif t[2] then
- return "<" .. s .. ">"
- else
- return "(" .. s .. ")"
- end
-end
-
local function value_x(t) return t end
local function value_s(t) return t[1] end
local function value_p(t) return t[1] end
@@ -610,75 +495,24 @@ local function value_a(t) return tostring_a(t,true) end
local function value_z() return nil end
local function value_t(t) return t.value or true end
local function value_f(t) return t.value or false end
-local function value_r(t) return t[1] or 0 end -- null
-local function value_v(t) return t[1] end
-local function value_l(t) return t[1] end
-
-local function add_to_d(t,v)
- local k = type(v)
- if k == "string" then
- if t.__extra__ then
- t.__extra__ = t.__extra__ .. " " .. v
- else
- t.__extra__ = v
- end
- elseif k == "table" then
- for k, v in next, v do
- t[k] = v
- end
- end
- return t
-end
-
-local function add_to_a(t,v)
- local k = type(v)
- if k == "string" then
- if t.__extra__ then
- t.__extra__ = t.__extra__ .. " " .. v
- else
- t.__extra__ = v
- end
- elseif k == "table" then
- local n = #t
- for i=1,#v do
- n = n + 1
- t[n] = v[i]
- end
- end
- return t
-end
+local function value_r() return t[1] or 0 end -- null
+local function value_v() return t[1] end
local function add_x(t,k,v) rawset(t,k,tostring(v)) end
--- local mt_x = { __index = { __lpdftype__ = "stream" }, __lpdftype = "stream", __tostring = tostring_x, __call = value_x, __newindex = add_x }
--- local mt_d = { __index = { __lpdftype__ = "dictionary" }, __lpdftype = "dictionary", __tostring = tostring_d, __call = value_d, __add = add_to_d }
--- local mt_a = { __index = { __lpdftype__ = "array" }, __lpdftype = "array", __tostring = tostring_a, __call = value_a, __add = add_to_a }
--- local mt_u = { __index = { __lpdftype__ = "unicode" }, __lpdftype = "unicode", __tostring = tostring_u, __call = value_u }
--- local mt_s = { __index = { __lpdftype__ = "string" }, __lpdftype = "string", __tostring = tostring_s, __call = value_s }
--- local mt_p = { __index = { __lpdftype__ = "docstring" }, __lpdftype = "docstring", __tostring = tostring_p, __call = value_p }
--- local mt_n = { __index = { __lpdftype__ = "number" }, __lpdftype = "number", __tostring = tostring_n, __call = value_n }
--- local mt_c = { __index = { __lpdftype__ = "constant" }, __lpdftype = "constant", __tostring = tostring_c, __call = value_c }
--- local mt_z = { __index = { __lpdftype__ = "null" }, __lpdftype = "null", __tostring = tostring_z, __call = value_z }
--- local mt_t = { __index = { __lpdftype__ = "true" }, __lpdftype = "true", __tostring = tostring_t, __call = value_t }
--- local mt_f = { __index = { __lpdftype__ = "false" }, __lpdftype = "false", __tostring = tostring_f, __call = value_f }
--- local mt_r = { __index = { __lpdftype__ = "reference" }, __lpdftype = "reference", __tostring = tostring_r, __call = value_r }
--- local mt_v = { __index = { __lpdftype__ = "verbose" }, __lpdftype = "verbose", __tostring = tostring_v, __call = value_v }
--- local mt_l = { __index = { __lpdftype__ = "literal" }, __lpdftype = "literal", __tostring = tostring_l, __call = value_l }
-
-local mt_x = { __index = { __lpdftype__ = "stream" }, __tostring = tostring_x, __call = value_x, __newindex = add_x }
-local mt_d = { __index = { __lpdftype__ = "dictionary" }, __tostring = tostring_d, __call = value_d, __add = add_to_d }
-local mt_a = { __index = { __lpdftype__ = "array" }, __tostring = tostring_a, __call = value_a, __add = add_to_a }
-local mt_u = { __index = { __lpdftype__ = "unicode" }, __tostring = tostring_u, __call = value_u }
-local mt_s = { __index = { __lpdftype__ = "string" }, __tostring = tostring_s, __call = value_s }
-local mt_p = { __index = { __lpdftype__ = "docstring" }, __tostring = tostring_p, __call = value_p }
-local mt_n = { __index = { __lpdftype__ = "number" }, __tostring = tostring_n, __call = value_n }
-local mt_c = { __index = { __lpdftype__ = "constant" }, __tostring = tostring_c, __call = value_c }
-local mt_z = { __index = { __lpdftype__ = "null" }, __tostring = tostring_z, __call = value_z }
-local mt_t = { __index = { __lpdftype__ = "true" }, __tostring = tostring_t, __call = value_t }
-local mt_f = { __index = { __lpdftype__ = "false" }, __tostring = tostring_f, __call = value_f }
-local mt_r = { __index = { __lpdftype__ = "reference" }, __tostring = tostring_r, __call = value_r }
-local mt_v = { __index = { __lpdftype__ = "verbose" }, __tostring = tostring_v, __call = value_v }
-local mt_l = { __index = { __lpdftype__ = "literal" }, __tostring = tostring_l, __call = value_l }
+local mt_x = { __lpdftype = "stream", __tostring = tostring_x, __call = value_x, __newindex = add_x }
+local mt_d = { __lpdftype = "dictionary", __tostring = tostring_d, __call = value_d }
+local mt_a = { __lpdftype = "array", __tostring = tostring_a, __call = value_a }
+local mt_u = { __lpdftype = "unicode", __tostring = tostring_u, __call = value_u }
+local mt_s = { __lpdftype = "string", __tostring = tostring_s, __call = value_s }
+local mt_p = { __lpdftype = "docstring", __tostring = tostring_p, __call = value_p }
+local mt_n = { __lpdftype = "number", __tostring = tostring_n, __call = value_n }
+local mt_c = { __lpdftype = "constant", __tostring = tostring_c, __call = value_c }
+local mt_z = { __lpdftype = "null", __tostring = tostring_z, __call = value_z }
+local mt_t = { __lpdftype = "true", __tostring = tostring_t, __call = value_t }
+local mt_f = { __lpdftype = "false", __tostring = tostring_f, __call = value_f }
+local mt_r = { __lpdftype = "reference", __tostring = tostring_r, __call = value_r }
+local mt_v = { __lpdftype = "verbose", __tostring = tostring_v, __call = value_v }
local function pdfstream(t) -- we need to add attributes
if t then
@@ -688,9 +522,9 @@ local function pdfstream(t) -- we need to add attributes
t[i] = tostring(t[i])
end
elseif tt == "string" then
- t = { t }
+ t= { t }
else
- t = { tostring(t) }
+ t= { tostring(t) }
end
end
return setmetatable(t or { },mt_x)
@@ -720,70 +554,46 @@ local function pdfunicode(str,default)
return setmetatable({ str or default or "" },mt_u) -- could be a string
end
-local function pdfliteral(str,hex) -- can also produce a hex <> instead of () literal
- return setmetatable({ str, hex },mt_l)
+local cache = { } -- can be weak
+
+local function pdfnumber(n,default) -- 0-10
+ n = n or default
+ local c = cache[n]
+ if not c then
+ c = setmetatable({ n },mt_n)
+ -- cache[n] = c -- too many numbers
+ end
+ return c
end
-local pdfnumber, pdfconstant
+for i=-1,9 do cache[i] = pdfnumber(i) end
-do
+local cache = { } -- can be weak
- local cache = { } -- can be weak
+local forbidden, replacements = "\0\t\n\r\f ()[]{}/%%#\\", { } -- table faster than function
- pdfnumber = function(n,default) -- 0-10
- if not n then
- n = default
- end
- local c = cache[n]
- if not c then
- c = setmetatable({ n },mt_n)
- -- cache[n] = c -- too many numbers
- end
- return c
- end
-
- for i=-1,9 do cache[i] = pdfnumber(i) end
-
- local replacer = S("\0\t\n\r\f ()[]{}/%%#\\") / {
- ["\00"]="#00",
- ["\09"]="#09",
- ["\10"]="#0a",
- ["\12"]="#0c",
- ["\13"]="#0d",
- [ " " ]="#20",
- [ "#" ]="#23",
- [ "%" ]="#25",
- [ "(" ]="#28",
- [ ")" ]="#29",
- [ "/" ]="#2f",
- [ "[" ]="#5b",
- [ "\\"]="#5c",
- [ "]" ]="#5d",
- [ "{" ]="#7b",
- [ "}" ]="#7d",
- } + P(1)
-
- local escaped = Cs(Cc("/") * replacer^0)
-
- local cache = table.setmetatableindex(function(t,k)
- local v = setmetatable({ lpegmatch(escaped,k) }, mt_c)
- t[k] = v
- return v
- end)
-
- pdfconstant = function(str,default)
- if not str then
- str = default or "none"
- end
- return cache[str]
- end
+for s in gmatch(forbidden,".") do
+ replacements[s] = format("#%02x",byte(s))
+end
- local escaped = Cs(replacer^0)
+local escaped = Cs(Cc("/") * (S(forbidden)/replacements + P(1))^0)
- function lpdf.escaped(str)
- return lpegmatch(escaped,str) or str
+local function pdfconstant(str,default)
+ str = str or default or ""
+ local c = cache[str]
+ if not c then
+ -- c = setmetatable({ "/" .. str },mt_c)
+ c = setmetatable({ lpegmatch(escaped,str) },mt_c)
+ cache[str] = c
end
+ return c
+end
+local escaped = Cs((S(forbidden)/replacements + P(1))^0)
+----- escaped = Cs((1-forbidden)^0 * S(forbidden)/replacements * ((S(forbidden)/replacements + P(1))^0)
+
+function lpdf.escaped(str)
+ return lpegmatch(escaped,str) or str
end
local pdfnull, pdfboolean, pdfreference, pdfverbose
@@ -847,7 +657,6 @@ lpdf.null = pdfnull
lpdf.boolean = pdfboolean
lpdf.reference = pdfreference
lpdf.verbose = pdfverbose
-lpdf.literal = pdfliteral
local names, cache = { }, { }
@@ -864,7 +673,13 @@ function lpdf.reserveobject(name)
return r
end
-local nofpages = 0
+-- lpdf.reserveobject = pdfreserveobject
+-- lpdf.immediateobject = pdfimmediateobject
+-- lpdf.deferredobject = pdfdeferredobject
+-- lpdf.referenceobject = pdfreferenceobject
+
+local pagereference = pdf.pageref -- tex.pdfpageref is obsolete
+local nofpages = 0
function lpdf.pagereference(n)
if nofpages == 0 then
@@ -874,24 +689,12 @@ function lpdf.pagereference(n)
end
end
if n > nofpages then
- return pdfgetpagereference(nofpages) -- or 1, could be configureable
+ return pagereference(nofpages) -- or 1, could be configureable
else
- return pdfgetpagereference(n)
+ return pagereference(n)
end
end
-function lpdf.nofpages()
- return structures.pages.nofpages
-end
-
-function lpdf.obj(...)
- pdfdeferredobject(...)
-end
-
-function lpdf.immediateobj(...)
- pdfimmediateobject(...)
-end
-
function lpdf.delayedobject(data,n)
if n then
pdfdeferredobject(n,data)
@@ -930,22 +733,14 @@ function lpdf.flushobject(name,data)
end
end
-function lpdf.flushstreamobject(data,dict,compressed,objnum) -- default compressed
+
+function lpdf.flushstreamobject(data,dict,compressed) -- default compressed
if trace_objects then
report_objects("flushing stream object of %s bytes",#data)
end
- local dtype = type(dict)
- local kind = compressed == "raw" and "raw" or "stream"
- local nolength = nil
- if compressed == "raw" then
- compressed = nil
- nolength = true
- -- data = string.formatters["<< %s >>stream\n%s\nendstream"](attr,data)
- end
+ local dtype = type(dict)
return pdfdeferredobject {
- objnum = objnum,
immediate = true,
- nolength = nolength,
compresslevel = compressed == false and 0 or nil,
type = "stream",
string = data,
@@ -953,13 +748,12 @@ function lpdf.flushstreamobject(data,dict,compressed,objnum) -- default compress
}
end
-function lpdf.flushstreamfileobject(filename,dict,compressed,objnum) -- default compressed
+function lpdf.flushstreamfileobject(filename,dict,compressed) -- default compressed
if trace_objects then
report_objects("flushing stream file object %a",filename)
end
local dtype = type(dict)
return pdfdeferredobject {
- objnum = objnum,
immediate = true,
compresslevel = compressed == false and 0 or nil,
type = "stream",
@@ -1016,14 +810,6 @@ local function resetpageproperties()
pagesattributes = pdfdictionary()
end
-function lpdf.getpageproperties()
- return {
- pageresources = pageresources,
- pageattributes = pageattributes,
- pagesattributes = pagesattributes,
- }
-end
-
resetpageproperties()
local function setpageproperties()
@@ -1096,29 +882,38 @@ function lpdf.finalizedocument()
if not environment.initex then
run(documentfinalizers,"document")
function lpdf.finalizedocument()
- -- report_finalizing("serious error: the document is finalized multiple times")
+ report_finalizing("serious error: the document is finalized multiple times")
function lpdf.finalizedocument() end
end
end
end
-callbacks.register("finish_pdfpage", lpdf.finalizepage)
-callbacks.register("finish_pdffile", lpdf.finalizedocument)
-
-do
+-- codeinjections.finalizepage = lpdf.finalizepage -- no longer triggered at the tex end
- local pdfsetinfo, pdfsetcatalog, pdfsettrailerid -- pdfsetnames pdfsettrailer
+if not callbacks.register("finish_pdfpage", lpdf.finalizepage) then
- updaters.register("backend.update.lpdf",function()
- pdfsetinfo = pdf.setinfo
- pdfsetcatalog = pdf.setcatalog
- pdfsettrailerid = pdf.settrailerid
- end)
+ local find_tail = nodes.tail
+ local latelua_node = nodes.pool.latelua
- function lpdf.settrailerid(id)
- pdfsettrailerid(id)
+ function nodeinjections.finalizepage(head)
+ local t = find_tail(head.list)
+ if t then
+ local n = latelua_node("lpdf.finalizepage(true)") -- last in the shipout
+ t.next = n
+ n.prev = t
+ end
+ return head, true
end
+ nodes.tasks.appendaction("shipouts","normalizers","backends.pdf.nodeinjections.finalizepage")
+
+end
+
+callbacks.register("finish_pdffile", lpdf.finalizedocument)
+
+
+do
+
-- some minimal tracing, handy for checking the order
local function trace_set(what,key)
@@ -1139,16 +934,18 @@ do
local info = pdfdictionary { Type = pdfconstant("Info") } -- nicer, but when we assign we nil the Type
----- names = pdfdictionary { Type = pdfconstant("Names") } -- nicer, but when we assign we nil the Type
- local function checkcatalog()
+ local function flushcatalog()
if not environment.initex then
trace_flush("catalog")
- return true
+ catalog.Type = nil
+ pdfsetcatalog(catalog())
end
end
- local function checkinfo()
+ local function flushinfo()
if not environment.initex then
trace_flush("info")
+ info.Type = nil
if lpdf.majorversion() > 1 then
for k, v in next, info do
if k == "CreationDate" or k == "ModDate" then
@@ -1158,36 +955,17 @@ do
end
end
end
- return true
- end
- end
-
- local function flushcatalog()
- if checkcatalog() then
- catalog.Type = nil
- pdfsetcatalog(catalog())
- end
- end
-
- local function flushinfo()
- if checkinfo() then
- info.Type = nil
pdfsetinfo(info())
end
end
- function lpdf.getcatalog()
- if checkcatalog() then
- catalog.Type = pdfconstant("Catalog")
- return pdfreference(pdfimmediateobject(tostring(catalog)))
- end
- end
-
- function lpdf.getinfo()
- if checkinfo() then
- return pdfreference(pdfimmediateobject(tostring(info)))
- end
- end
+ -- local function flushnames()
+ -- if not environment.initex then
+ -- trace_flush("names")
+ -- names.Type = nil
+ -- pdfsetnames(names())
+ -- end
+ -- end
function lpdf.addtocatalog(k,v)
if not (lpdf.protectresources and catalog[k]) then
@@ -1229,19 +1007,20 @@ do
end
end
- local r_extgstates, r_colorspaces, r_patterns, r_shades
- local d_extgstates, d_colorspaces, d_patterns, d_shades
- local p_extgstates, p_colorspaces, p_patterns, p_shades
+ local r_extgstates, d_extgstates = pdfreserveobject(), pdfdictionary() local p_extgstates = pdfreference(r_extgstates)
+ local r_colorspaces, d_colorspaces = pdfreserveobject(), pdfdictionary() local p_colorspaces = pdfreference(r_colorspaces)
+ local r_patterns, d_patterns = pdfreserveobject(), pdfdictionary() local p_patterns = pdfreference(r_patterns)
+ local r_shades, d_shades = pdfreserveobject(), pdfdictionary() local p_shades = pdfreference(r_shades)
- local function checkextgstates () if d_extgstates then addtopageresources("ExtGState", p_extgstates ) end end
- local function checkcolorspaces() if d_colorspaces then addtopageresources("ColorSpace",p_colorspaces) end end
- local function checkpatterns () if d_patterns then addtopageresources("Pattern", p_patterns ) end end
- local function checkshades () if d_shades then addtopageresources("Shading", p_shades ) end end
+ local function checkextgstates () if next(d_extgstates ) then addtopageresources("ExtGState", p_extgstates ) end end
+ local function checkcolorspaces() if next(d_colorspaces) then addtopageresources("ColorSpace",p_colorspaces) end end
+ local function checkpatterns () if next(d_patterns ) then addtopageresources("Pattern", p_patterns ) end end
+ local function checkshades () if next(d_shades ) then addtopageresources("Shading", p_shades ) end end
- local function flushextgstates () if d_extgstates then trace_flush("extgstates") pdfimmediateobject(r_extgstates, tostring(d_extgstates )) end end
- local function flushcolorspaces() if d_colorspaces then trace_flush("colorspaces") pdfimmediateobject(r_colorspaces,tostring(d_colorspaces)) end end
- local function flushpatterns () if d_patterns then trace_flush("patterns") pdfimmediateobject(r_patterns, tostring(d_patterns )) end end
- local function flushshades () if d_shades then trace_flush("shades") pdfimmediateobject(r_shades, tostring(d_shades )) end end
+ local function flushextgstates () if next(d_extgstates ) then trace_flush("extgstates") pdfimmediateobject(r_extgstates, tostring(d_extgstates )) end end
+ local function flushcolorspaces() if next(d_colorspaces) then trace_flush("colorspaces") pdfimmediateobject(r_colorspaces,tostring(d_colorspaces)) end end
+ local function flushpatterns () if next(d_patterns ) then trace_flush("patterns") pdfimmediateobject(r_patterns, tostring(d_patterns )) end end
+ local function flushshades () if next(d_shades ) then trace_flush("shades") pdfimmediateobject(r_shades, tostring(d_shades )) end end
-- patterns are special as they need resources to so we can get recursive references and in that case
-- acrobat doesn't show anything (other viewers handle it well)
@@ -1250,10 +1029,10 @@ do
-- todo: force when not yet set
function lpdf.collectedresources(options)
- local ExtGState = d_extgstates and next(d_extgstates ) and p_extgstates
- local ColorSpace = d_colorspaces and next(d_colorspaces) and p_colorspaces
- local Pattern = d_patterns and next(d_patterns ) and p_patterns
- local Shading = d_shades and next(d_shades ) and p_shades
+ local ExtGState = next(d_extgstates ) and p_extgstates
+ local ColorSpace = next(d_colorspaces) and p_colorspaces
+ local Pattern = next(d_patterns ) and p_patterns
+ local Shading = next(d_shades ) and p_shades
if options and options.patterns == false then
Pattern = nil
end
@@ -1263,56 +1042,18 @@ do
ColorSpace = ColorSpace,
Pattern = Pattern,
Shading = Shading,
+ -- ProcSet = pdfarray { pdfconstant("PDF") },
}
- if options and options.serialize == false then
- return collected
- else
- return collected()
- end
+ return collected()
else
- if options and options.serialize == false then
- return pdfdictionary { }
- else
- return ""
- end
- end
- end
-
- function lpdf.adddocumentextgstate (k,v)
- if not d_extgstates then
- r_extgstates = pdfreserveobject()
- d_extgstates = pdfdictionary()
- p_extgstates = pdfreference(r_extgstates)
- end
- d_extgstates[k] = v
- end
-
- function lpdf.adddocumentcolorspace(k,v)
- if not d_colorspaces then
- r_colorspaces = pdfreserveobject()
- d_colorspaces = pdfdictionary()
- p_colorspaces = pdfreference(r_colorspaces)
+ return ""
end
- d_colorspaces[k] = v
end
- function lpdf.adddocumentpattern(k,v)
- if not d_patterns then
- r_patterns = pdfreserveobject()
- d_patterns = pdfdictionary()
- p_patterns = pdfreference(r_patterns)
- end
- d_patterns[k] = v
- end
-
- function lpdf.adddocumentshade(k,v)
- if not d_shades then
- r_shades = pdfreserveobject()
- d_shades = pdfdictionary()
- p_shades = pdfreference(r_shades)
- end
- d_shades[k] = v
- end
+ function lpdf.adddocumentextgstate (k,v) d_extgstates [k] = v end
+ function lpdf.adddocumentcolorspace(k,v) d_colorspaces[k] = v end
+ function lpdf.adddocumentpattern (k,v) d_patterns [k] = v end
+ function lpdf.adddocumentshade (k,v) d_shades [k] = v end
registerdocumentfinalizer(flushextgstates,3,"extended graphic states")
registerdocumentfinalizer(flushcolorspaces,3,"color spaces")
@@ -1333,8 +1074,7 @@ end
-- in strc-bkm: lpdf.registerdocumentfinalizer(function() structures.bookmarks.place() end,1)
function lpdf.rotationcm(a)
- local s = sind(a)
- local c = cosd(a)
+ local s, c = sind(a), cosd(a)
return format("%.6F %.6F %.6F %.6F 0 0 cm",c,s,-s,c)
end
@@ -1387,12 +1127,12 @@ do
return Y and format("D:%s%s%s%s%s%s%s%s'%s'",Y,M,D,h,m,s,Zs,Zh,Zm)
end
- function lpdf.id(date)
+ function lpdf.id(nodate)
local banner = environment.jobname or tex.jobname or "unknown"
- if not date then
+ if nodate then
return banner
else
- return format("%s | %s",banner,timestamp)
+ return format("%s.%s",banner,timestamp)
end
end
@@ -1450,6 +1190,7 @@ function lpdf.checkedvalue(value,variant) -- code not shared
end
end
end
+ -- return nil
end
function lpdf.limited(n,min,max,default)
@@ -1469,6 +1210,61 @@ function lpdf.limited(n,min,max,default)
end
end
+-- if not pdfreferenceobject then
+--
+-- local delayed = { }
+--
+-- local function flush()
+-- local n = 0
+-- for k,v in next, delayed do
+-- pdfimmediateobject(k,v)
+-- n = n + 1
+-- end
+-- if trace_objects then
+-- report_objects("%s objects flushed",n)
+-- end
+-- delayed = { }
+-- end
+--
+-- lpdf.registerdocumentfinalizer(flush,3,"objects") -- so we need a final flush too
+-- lpdf.registerpagefinalizer (flush,3,"objects") -- somehow this lags behind .. I need to look into that some day
+--
+-- function lpdf.delayedobject(data)
+-- local n = pdfreserveobject()
+-- delayed[n] = data
+-- return n
+-- end
+--
+-- end
+
+-- setmetatable(pdf, {
+-- __index = function(t,k)
+-- if k == "info" then return pdf.getinfo()
+-- elseif k == "catalog" then return pdf.getcatalog()
+-- elseif k == "names" then return pdf.getnames()
+-- elseif k == "trailer" then return pdf.gettrailer()
+-- elseif k == "pageattribute" then return pdf.getpageattribute()
+-- elseif k == "pageattributes" then return pdf.getpageattributes()
+-- elseif k == "pageresources" then return pdf.getpageresources()
+-- elseif
+-- return nil
+-- end
+-- end,
+-- __newindex = function(t,k,v)
+-- if k == "info" then return pdf.setinfo(v)
+-- elseif k == "catalog" then return pdf.setcatalog(v)
+-- elseif k == "names" then return pdf.setnames(v)
+-- elseif k == "trailer" then return pdf.settrailer(v)
+-- elseif k == "pageattribute" then return pdf.setpageattribute(v)
+-- elseif k == "pageattributes" then return pdf.setpageattributes(v)
+-- elseif k == "pageresources" then return pdf.setpageresources(v)
+-- else
+-- rawset(t,k,v)
+-- end
+-- end,
+-- })
+
+
-- The next variant of ActualText is what Taco and I could come up with
-- eventually. As of September 2013 Acrobat copies okay, Sumatra copies a
-- question mark, pdftotext injects an extra space and Okular adds a
@@ -1491,7 +1287,7 @@ do
local f_actual_text = formatters["/Span <</ActualText %s >> BDC"]
local context = context
- local pdfdirect = nodes.pool.directliteral -- we can use nuts.write deep down
+ local pdfdirect = nodes.pool.pdfdirectliteral
-- todo: use tounicode from the font mapper
@@ -1587,9 +1383,11 @@ end
function lpdf.copyarray(a)
if a then
local t = pdfarray()
+ local k = a.__kind
for i=1,#a do
t[i] = a(i)
end
+-- inspect(t)
return t
end
end
@@ -1600,6 +1398,7 @@ function lpdf.copydictionary(d)
for k, v in next, d do
t[k] = d(k)
end
+-- inspect(t)
return t
end
end
@@ -1621,73 +1420,3 @@ function lpdf.copystring(v)
return pdfstring(v)
end
end
-
-do
-
- local pdfincludechar, pdfincludecharlist, pdfincludefont
- local pdfgetfontname, pdfgetfontobjnum
- local pdfsetmapfile, pdfsetmapline
-
- updaters.register("backend.update.lpdf",function()
- pdfincludechar = pdf.includechar
- pdfincludefont = pdf.includefont
- pdfincludecharlist = pdf.includecharlist
- pdfgetfontname = pdf.getfontname
- pdfgetfontobjnum = pdf.getfontobjnum
- pdfsetmapfile = pdf.mapfile
- pdfsetmapline = pdf.mapline
- end)
-
- function lpdf.includechar(f,c) pdfincludechar(f,c) end
- function lpdf.includefont(...) pdfincludefont(...) end
-
- function lpdf.includecharlist(f,c) pdfincludecharlist(f,c) end -- can be disabled
-
- function lpdf.getfontname (id) return pdfgetfontname (id) end
- function lpdf.getfontobjnumber(id) return pdfgetfontobjnum(id) end
-
- function lpdf.setmapfile(...) pdfsetmapfile(...) end
- function lpdf.setmapline(...) pdfsetmapline(...) end
-
-end
-
-do
-
- -- This is obsolete but old viewers might still use it as directive
- -- for what to send to a postscript printer.
-
- local a_procset, d_procset
-
- function lpdf.procset(dict)
- if not a_procset then
- a_procset = pdfarray {
- pdfconstant("PDF"),
- pdfconstant("Text"),
- pdfconstant("ImageB"),
- pdfconstant("ImageC"),
- pdfconstant("ImageI"),
- }
- a_procset = pdfreference(pdfimmediateobject(tostring(a_procset)))
- end
- if dict then
- if not d_procset then
- d_procset = pdfdictionary {
- ProcSet = a_procset
- }
- d_procset = pdfreference(pdfimmediateobject(tostring(d_procset)))
- end
- return d_procset
- else
- return a_procset
- end
- end
-
-end
-
--- a left-over
-
-if environment.arguments.nocompression then
- lpdf.setcompression(0,0,true)
-end
-
-
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lpdf-mis.lua b/Master/texmf-dist/tex/context/base/mkiv/lpdf-mis.lua
index 77f11918b46..6d1b09ca000 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lpdf-mis.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lpdf-mis.lua
@@ -18,6 +18,7 @@ if not modules then modules = { } end modules ['lpdf-mis'] = {
local next, tostring, type = next, tostring, type
local format, gsub, formatters = string.format, string.gsub, string.formatters
local flattened = table.flattened
+local texset, texget = tex.set, tex.get
local backends, lpdf, nodes = backends, lpdf, nodes
@@ -29,7 +30,7 @@ local nuts = nodes.nuts
local copy_node = nuts.copy
local nodepool = nuts.pool
-local pageliteral = nodepool.pageliteral
+local pdfpageliteral = nodepool.pdfpageliteral
local register = nodepool.register
local pdfdictionary = lpdf.dictionary
@@ -53,8 +54,6 @@ local addtonames = lpdf.addtonames
local pdfgetmetadata = lpdf.getmetadata
-local texset = tex.set
-
local variables = interfaces.variables
local v_stop = variables.stop
@@ -73,18 +72,11 @@ local v_page = variables.page
local v_paper = variables.paper
local v_attachment = variables.attachment
local v_layer = variables.layer
-local v_lefttoright = variables.lefttoright
-local v_righttoleft = variables.righttoleft
-local v_title = variables.title
-
-local positive = register(pageliteral("/GSpositive gs"))
-local negative = register(pageliteral("/GSnegative gs"))
-local overprint = register(pageliteral("/GSoverprint gs"))
-local knockout = register(pageliteral("/GSknockout gs"))
-
-local omitextraboxes = false
-directives.register("backend.omitextraboxes", function(v) omitextraboxes = v end)
+local positive = register(pdfpageliteral("/GSpositive gs"))
+local negative = register(pdfpageliteral("/GSnegative gs"))
+local overprint = register(pdfpageliteral("/GSoverprint gs"))
+local knockout = register(pdfpageliteral("/GSknockout gs"))
local function initializenegative()
local a = pdfarray { 0, 1 }
@@ -94,7 +86,7 @@ local function initializenegative()
Range = a,
Domain = a,
}
- local negative = pdfdictionary { Type = g, TR = pdfreference(pdfflushstreamobject("{ 1 exch sub }",d)) } -- can be shared
+ local negative = pdfdictionary { Type = g, TR = pdfreference(pdfflushstreamobject("{ 1 exch sub }",d)) }
local positive = pdfdictionary { Type = g, TR = pdfconstant("Identity") }
adddocumentextgstate("GSnegative", pdfreference(pdfflushobject(negative)))
adddocumentextgstate("GSpositive", pdfreference(pdfflushobject(positive)))
@@ -238,12 +230,6 @@ local function setupidentity()
addtoinfo("ID", pdfstring(id), id) -- needed for pdf/x
--
addtoinfo("ConTeXt.Version",version)
- --
- local lmtx = codeinjections.lmtxmode()
- if lmtx then
- addtoinfo("ConTeXt.LMTX",formatters["%0.2f"](lmtx))
- end
- --
addtoinfo("ConTeXt.Time",os.date("%Y-%m-%d %H:%M"))
addtoinfo("ConTeXt.Jobname",jobname)
addtoinfo("ConTeXt.Url","www.pragma-ade.com")
@@ -268,9 +254,7 @@ local function flushjavascripts()
local a = pdfarray()
local pdf_javascript = pdfconstant("JavaScript")
for i=1,#t do
- local ti = t[i]
- local name = ti[1]
- local script = ti[2]
+ local name, script = t[i][1], t[i][2]
local j = pdfdictionary {
S = pdf_javascript,
JS = pdfreference(pdfflushstreamobject(script)),
@@ -320,26 +304,14 @@ local plusspecs = {
[v_paper] = {
paper = true,
},
- [v_title] ={
- title = true,
- },
- [v_lefttoright] ={
- direction = "L2R",
- },
- [v_righttoleft] ={
- direction = "R2R",
- },
}
local pagespecs = {
--
- [v_max] = plusspecs[v_max],
- [v_bookmark] = plusspecs[v_bookmark],
- [v_attachment] = plusspecs[v_attachment],
- [v_layer] = plusspecs[v_layer],
- [v_lefttoright] = plusspecs[v_lefttoright],
- [v_righttoleft] = plusspecs[v_righttoleft],
- [v_title] = plusspecs[v_title],
+ [v_max] = plusspecs[v_max],
+ [v_bookmark] = plusspecs[v_bookmark],
+ [v_attachment] = plusspecs[v_attachment],
+ [v_layer] = plusspecs[v_layer],
--
[v_none] = {
},
@@ -400,23 +372,21 @@ local cropoffset, bleedoffset, trimoffset, artoffset = 0, 0, 0, 0
local marked = false
local copies = false
-local getpagedimensions getpagedimensions = function()
- getpagedimensions = backends.codeinjections.getpagedimensions
- return getpagedimensions()
-end
-
function codeinjections.setupcanvas(specification)
local paperheight = specification.paperheight
local paperwidth = specification.paperwidth
local paperdouble = specification.doublesided
- --
- paperwidth, paperheight = codeinjections.setpagedimensions(paperwidth,paperheight)
- --
+ if paperheight then
+ texset('global','pageheight',paperheight)
+ end
+ if paperwidth then
+ texset('global','pagewidth',paperwidth)
+ end
pagespec = specification.mode or pagespec
topoffset = specification.topoffset or 0
leftoffset = specification.leftoffset or 0
- height = specification.height or paperheight
- width = specification.width or paperwidth
+ height = specification.height or texget("pageheight")
+ width = specification.width or texget("pagewidth")
marked = specification.print
--
copies = specification.copies
@@ -463,15 +433,13 @@ local function documentspecification()
end
end
end
- -- maybe interfaces.variables
- local layout = spec.layout
- local mode = spec.mode
- local fit = spec.fit
- local fixed = spec.fixed
- local duplex = spec.duplex
- local paper = spec.paper
- local title = spec.title
- local direction = spec.direction
+ --
+ local layout = spec.layout
+ local mode = spec.mode
+ local fit = spec.fit
+ local fixed = spec.fixed
+ local duplex = spec.duplex
+ local paper = spec.paper
if layout then
addtocatalog("PageLayout",pdfconstant(layout))
end
@@ -490,42 +458,34 @@ local function documentspecification()
prints = pdfarray(flattened(pages.toranges(marked)))
end
end
- if fit or fixed or duplex or copies or paper or prints or title or direction then
+ if fit or fixed or duplex or copies or paper or prints then
addtocatalog("ViewerPreferences",pdfdictionary {
- FitWindow = fit and true or nil,
- PrintScaling = fixed and pdfconstant("None") or nil,
- Duplex = duplex and pdfconstant(duplex) or nil,
- NumCopies = copies and copies or nil,
- PickTrayByPDFSize = paper and true or nil,
- PrintPageRange = prints or nil,
- DisplayDocTitle = title and true or nil,
- Direction = direction and pdfconstant(direction) or nil,
+ FitWindow = fit and true or nil,
+ PrintScaling = fixed and pdfconstant("None") or nil,
+ Duplex = duplex and pdfconstant(duplex) or nil,
+ NumCopies = copies and copies or nil,
+ PickTrayByPDFSize = paper and true or nil,
+ PrintPageRange = prints or nil,
})
end
addtoinfo ("Trapped", pdfconstant("False")) -- '/Trapped' in /Info, 'Trapped' in XMP
addtocatalog("Version", pdfconstant(format("1.%s",pdfminorversion())))
- addtocatalog("Lang", pdfstring(tokens.getters.macro("currentmainlanguage")))
end
-- temp hack: the mediabox is not under our control and has a precision of 5 digits
local factor = number.dimenfactors.bp
-local f_value = formatters["%.6F"]
-
-directives.register("pdf.stripzeros",function()
- local f_value = formatters["%.6N"]
-end)
+local f_value = formatters["%0.6F"]
local function boxvalue(n) -- we could share them
return pdfverbose(f_value(factor * n))
end
local function pagespecification()
- local paperwidth, paperheight = codeinjections.getpagedimensions()
local llx = leftoffset
- local lly = paperheight + topoffset - height
+ local lly = texget("pageheight") + topoffset - height
local urx = width - leftoffset
- local ury = paperheight - topoffset
+ local ury = texget("pageheight") - topoffset
-- boxes can be cached
local function extrabox(WhatBox,offset,always)
if offset ~= 0 or always then
@@ -537,14 +497,10 @@ local function pagespecification()
})
end
end
- if omitextraboxes then
- -- only useful for testing / comparing
- else
- extrabox("CropBox",cropoffset,true) -- mandate for rendering
- extrabox("TrimBox",trimoffset,true) -- mandate for pdf/x
- extrabox("BleedBox",bleedoffset) -- optional
- -- extrabox("ArtBox",artoffset) -- optional .. unclear what this is meant to do
- end
+ extrabox("CropBox",cropoffset,true) -- mandate for rendering
+ extrabox("TrimBox",trimoffset,true) -- mandate for pdf/x
+ extrabox("BleedBox",bleedoffset) -- optional
+ -- extrabox("ArtBox",artoffset) -- optional .. unclear what this is meant to do
end
lpdf.registerpagefinalizer(pagespecification,"page specification")
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lpdf-nod.lua b/Master/texmf-dist/tex/context/base/mkiv/lpdf-nod.lua
index 8bcf18c62ae..e3c1778f27f 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lpdf-nod.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lpdf-nod.lua
@@ -6,84 +6,178 @@ if not modules then modules = { } end modules ['lpdf-nod'] = {
license = "see context related readme files"
}
-if CONTEXTLMTXMODE > 1 then
- return
-end
-
-local nodecodes = nodes.nodecodes
-local whatsitcodes = nodes.whatsitcodes
+local type = type
-local nodeinjections = backends.nodeinjections
+local formatters = string.formatters
-local nuts = nodes.nuts
+local whatsitcodes = nodes.whatsitcodes
+local nodeinjections = backends.nodeinjections
-local setfield = nuts.setfield
-local setdata = nuts.setdata
+local nuts = nodes.nuts
+local tonut = nuts.tonut
-local copy_node = nuts.copy
-local new_node = nuts.new
+local setfield = nuts.setfield
-local nodepool = nuts.pool
-local register = nodepool.register
+local copy_node = nuts.copy
+local new_node = nuts.new
-local whatsit_code = nodecodes.whatsit
+local nodepool = nuts.pool
+local register = nodepool.register
-local savewhatsit_code = whatsitcodes.save
-local restorewhatsit_code = whatsitcodes.restore
-local setmatrixwhatsit_code = whatsitcodes.setmatrix
-local literalwhatsit_code = whatsitcodes.literal
+local literalvalues = nodes.literalvalues
-local literalvalues = nodes.literalvalues
-local originliteral_code = literalvalues.origin
-local pageliteral_code = literalvalues.page
-local directliteral_code = literalvalues.direct
-local rawliteral_code = literalvalues.raw
+local pdforiginliteral = register(new_node("whatsit", whatsitcodes.pdfliteral)) setfield(pdforiginliteral,"mode",literalvalues.origin)
+local pdfpageliteral = register(new_node("whatsit", whatsitcodes.pdfliteral)) setfield(pdfpageliteral, "mode",literalvalues.page)
+local pdfdirectliteral = register(new_node("whatsit", whatsitcodes.pdfliteral)) setfield(pdfdirectliteral,"mode",literalvalues.direct)
+local pdfrawliteral = register(new_node("whatsit", whatsitcodes.pdfliteral)) setfield(pdfrawliteral, "mode",literalvalues.raw)
-local tomatrix = drivers.helpers.tomatrix
+local pdfsave = register(new_node("whatsit", whatsitcodes.pdfsave))
+local pdfrestore = register(new_node("whatsit", whatsitcodes.pdfrestore))
+local pdfsetmatrix = register(new_node("whatsit", whatsitcodes.pdfsetmatrix))
+----- pdfdest = register(new_node("whatsit", whatsitcodes.pdfdest)) setfield(pdfdest,"named_id",1) -- xyz_zoom untouched
+----- pdfannot = register(new_node("whatsit", whatsitcodes.pdfannot))
-local originliteralnode = register(new_node(whatsit_code, literalwhatsit_code)) setfield(originliteralnode,"mode",originliteral_code)
-local pageliteralnode = register(new_node(whatsit_code, literalwhatsit_code)) setfield(pageliteralnode, "mode",pageliteral_code)
-local directliteralnode = register(new_node(whatsit_code, literalwhatsit_code)) setfield(directliteralnode,"mode",directliteral_code)
-local rawliteralnode = register(new_node(whatsit_code, literalwhatsit_code)) setfield(rawliteralnode, "mode",rawliteral_code)
+local variables = interfaces.variables
-function nodepool.originliteral(str) local t = copy_node(originliteralnode) setdata(t,str) return t end
-function nodepool.pageliteral (str) local t = copy_node(pageliteralnode ) setdata(t,str) return t end
-function nodepool.directliteral(str) local t = copy_node(directliteralnode) setdata(t,str) return t end
-function nodepool.rawliteral (str) local t = copy_node(rawliteralnode ) setdata(t,str) return t end
+function nodepool.pdforiginliteral(str) local t = copy_node(pdforiginliteral) setfield(t,"data",str) return t end
+function nodepool.pdfpageliteral (str) local t = copy_node(pdfpageliteral ) setfield(t,"data",str) return t end
+function nodepool.pdfdirectliteral(str) local t = copy_node(pdfdirectliteral) setfield(t,"data",str) return t end
+function nodepool.pdfrawliteral (str) local t = copy_node(pdfrawliteral ) setfield(t,"data",str) return t end
-local literals = {
- [originliteral_code] = originliteralnode, [literalvalues[originliteral_code]] = originliteralnode,
- [pageliteral_code] = pageliteralnode, [literalvalues[pageliteral_code]] = pageliteralnode,
- [directliteral_code] = directliteralnode, [literalvalues[directliteral_code]] = directliteralnode,
- [rawliteral_code] = rawliteralnode, [literalvalues[rawliteral_code]] = rawliteralnode,
-}
+nodepool.pdfliteral = nodepool.pdfpageliteral -- best is to use a specific one: origin | page | direct | raw
-function nodepool.literal(mode,str)
- if str then
- local t = copy_node(literals[mode] or pageliteralnode)
- setdata(t,str)
- return t
- else
- local t = copy_node(pageliteralnode)
- setdata(t,mode)
- return t
- end
+function nodepool.pdfsave()
+ return copy_node(pdfsave)
end
-local savenode = register(new_node(whatsit_code, savewhatsit_code))
-local restorenode = register(new_node(whatsit_code, restorewhatsit_code))
-local setmatrixnode = register(new_node(whatsit_code, setmatrixwhatsit_code))
+function nodepool.pdfrestore()
+ return copy_node(pdfrestore)
+end
-function nodepool.save()
- return copy_node(savenode)
+function nodepool.pdfsetmatrix(rx,sx,sy,ry,tx,ty) -- todo: tx ty
+ local t = copy_node(pdfsetmatrix)
+ if type(rx) == "string" then
+ setfield(t,"data",rx)
+ else
+ if not rx then
+ rx = 1
+ elseif rx == 0 then
+ rx = 0.0001
+ end
+ if not ry then
+ ry = 1
+ elseif ry == 0 then
+ ry = 0.0001
+ end
+ if not sx then
+ sx = 0
+ end
+ if not sy then
+ sy = 0
+ end
+ if sx == 0 and sy == 0 then
+ if rx == 1 and ry == 1 then
+ setfield(t,"data","1 0 0 1")
+ else
+ setfield(t,"data",formatters["%0.6F 0 0 %0.6F"](rx,ry))
+ end
+ else
+ setfield(t,"data",formatters["%0.6F %0.6F %0.6F %0.6F"](rx,sx,sy,ry))
+ end
+ end
+ return t
end
-function nodepool.restore()
- return copy_node(restorenode)
+nodeinjections.save = nodepool.pdfsave
+nodeinjections.restore = nodepool.pdfrestore
+nodeinjections.transform = nodepool.pdfsetmatrix
+
+-- the next one is implemented differently, using latelua
+
+function nodepool.pdfannotation(w,h,d,data,n)
+ report("don't use node based annotations!")
+ os.exit()
+ -- local t = copy_node(pdfannot)
+ -- if w and w ~= 0 then
+ -- setfield(t,"width",w)
+ -- end
+ -- if h and h ~= 0 then
+ -- setfield(t,"height",h)
+ -- end
+ -- if d and d ~= 0 then
+ -- setfield(t,"depth",d)
+ -- end
+ -- if n then
+ -- setfield(t,"objnum",n)
+ -- end
+ -- if data and data ~= "" then
+ -- setfield(t,"data",data)
+ -- end
+ -- return t
end
-function nodepool.setmatrix(rx,sx,sy,ry,tx,ty)
- local t = copy_node(setmatrixnode)
- setdata(t,tomatrix(rx,sx,sy,ry,tx,ty))
- return t
+-- (!) The next code in pdfdest.w is wrong:
+--
+-- case pdf_dest_xyz:
+-- if (matrixused()) {
+-- set_rect_dimens(pdf, p, parent_box, cur, alt_rule, pdf_dest_margin) ;
+-- } else {
+-- pdf_ann_left(p) = pos.h ;
+-- pdf_ann_top (p) = pos.v ;
+-- }
+-- break ;
+--
+-- so we need to force a matrix.
+
+-- local views = { -- beware, we do support the pdf keys but this is *not* official
+-- xyz = 0, [variables.standard] = 0,
+-- fit = 1, [variables.fit] = 1,
+-- fith = 2, [variables.width] = 2,
+-- fitv = 3, [variables.height] = 3,
+-- fitb = 4,
+-- fitbh = 5, [variables.minwidth] = 5,
+-- fitbv = 6, [variables.minheight] = 6,
+-- fitr = 7,
+-- }
+
+function nodepool.pdfdestination(w,h,d,name,view,n)
+ report("don't use node based destinations!")
+ os.exit()
+ -- local t = copy_node(pdfdest)
+ -- local hasdimensions = false
+ -- if w and w ~= 0 then
+ -- setfield(t,"width",w)
+ -- hasdimensions = true
+ -- end
+ -- if h and h ~= 0 then
+ -- setfield(t,"height",h)
+ -- hasdimensions = true
+ -- end
+ -- if d and d ~= 0 then
+ -- setfield(t,"depth",d)
+ -- hasdimensions = true
+ -- end
+ -- if n then
+ -- setfield(t,"objnum",n)
+ -- end
+ -- view = views[view] or view or 1 -- fit is default
+ -- setfield(t,"dest_id",name)
+ -- setfield(t,"dest_type",view)
+ -- if hasdimensions and view == 0 then -- xyz
+ -- -- see (!) s -> m -> t -> r
+ -- -- linked
+ -- local s = copy_node(pdfsave)
+ -- local m = copy_node(pdfsetmatrix)
+ -- local r = copy_node(pdfrestore)
+ -- setfield(m,"data","1 0 0 1")
+ -- setfield(s,"next",m)
+ -- setfield(m,"next",t)
+ -- setfield(t,"next",r)
+ -- setfield(m,"prev",s)
+ -- setfield(t,"prev",m)
+ -- setfield(r,"prev",t)
+ -- return s -- a list
+ -- else
+ -- return t
+ -- end
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lpdf-pda.xml b/Master/texmf-dist/tex/context/base/mkiv/lpdf-pda.xml
index 2f07fed2def..efdfc4d7d43 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lpdf-pda.xml
+++ b/Master/texmf-dist/tex/context/base/mkiv/lpdf-pda.xml
@@ -30,7 +30,6 @@
<pdfx:ConTeXt.Url/>
<pdfx:ConTeXt.Support/>
<pdfx:ConTeXt.Version/>
- <pdfx:ConTeXt.LMTX/>
<pdfx:TeX.Support/>
<pdfx:LuaTeX.Version/>
<pdfx:LuaTeX.Functionality/>
@@ -101,76 +100,40 @@
<pdfaSchema:property>
<rdf:Seq>
<rdf:li rdf:parseType="Resource">
- <pdfaProperty:category>external</pdfaProperty:category>
- <pdfaProperty:description>Name of the ConTeXt job</pdfaProperty:description>
- <pdfaProperty:name>ConTeXt.Jobname</pdfaProperty:name>
- <pdfaProperty:valueType>Text</pdfaProperty:valueType>
- </rdf:li>
- <rdf:li rdf:parseType="Resource">
- <pdfaProperty:category>external</pdfaProperty:category>
- <pdfaProperty:description>Time stamp of ConTeXt version</pdfaProperty:description>
- <pdfaProperty:name>ConTeXt.Time</pdfaProperty:name>
- <pdfaProperty:valueType>Text</pdfaProperty:valueType>
- </rdf:li>
- <rdf:li rdf:parseType="Resource">
- <pdfaProperty:category>external</pdfaProperty:category>
- <pdfaProperty:description>ConTeXt website</pdfaProperty:description>
- <pdfaProperty:name>ConTeXt.Url</pdfaProperty:name>
- <pdfaProperty:valueType>Text</pdfaProperty:valueType>
- </rdf:li>
- <rdf:li rdf:parseType="Resource">
- <pdfaProperty:category>external</pdfaProperty:category>
- <pdfaProperty:description>ConTeXt support</pdfaProperty:description>
- <pdfaProperty:name>ConTeXt.Support</pdfaProperty:name>
- <pdfaProperty:valueType>Text</pdfaProperty:valueType>
- </rdf:li>
- <rdf:li rdf:parseType="Resource">
- <pdfaProperty:category>external</pdfaProperty:category>
- <pdfaProperty:description>ConTeXt version</pdfaProperty:description>
- <pdfaProperty:name>ConTeXt.Version</pdfaProperty:name>
- <pdfaProperty:valueType>Text</pdfaProperty:valueType>
- </rdf:li>
- <rdf:li rdf:parseType="Resource">
- <pdfaProperty:category>external</pdfaProperty:category>
- <pdfaProperty:description>ConTeXt LMTX version</pdfaProperty:description>
- <pdfaProperty:name>ConTeXt.LMTX</pdfaProperty:name>
- <pdfaProperty:valueType>Text</pdfaProperty:valueType>
- </rdf:li>
- <rdf:li rdf:parseType="Resource">
- <pdfaProperty:category>external</pdfaProperty:category>
- <pdfaProperty:description>TeX support</pdfaProperty:description>
- <pdfaProperty:name>TeX.Support</pdfaProperty:name>
- <pdfaProperty:valueType>Text</pdfaProperty:valueType>
+ <pdfaProperty:category>external</pdfaProperty:category>
+ <pdfaProperty:description>Name of the ConTeXt job</pdfaProperty:description>
+ <pdfaProperty:name>ConTeXt.Jobname</pdfaProperty:name>
+ <pdfaProperty:valueType>Text</pdfaProperty:valueType>
</rdf:li>
<rdf:li rdf:parseType="Resource">
- <pdfaProperty:category>external</pdfaProperty:category>
- <pdfaProperty:description>LuaTeX version</pdfaProperty:description>
- <pdfaProperty:name>LuaTeX.Version</pdfaProperty:name>
- <pdfaProperty:valueType>Text</pdfaProperty:valueType>
+ <pdfaProperty:category>external</pdfaProperty:category>
+ <pdfaProperty:description>Time stamp of ConTeXt version</pdfaProperty:description>
+ <pdfaProperty:name>ConTeXt.Time</pdfaProperty:name>
+ <pdfaProperty:valueType>Text</pdfaProperty:valueType>
</rdf:li>
<rdf:li rdf:parseType="Resource">
- <pdfaProperty:category>external</pdfaProperty:category>
- <pdfaProperty:description>LuaTeX functionality</pdfaProperty:description>
- <pdfaProperty:name>LuaTeX.Functionality</pdfaProperty:name>
- <pdfaProperty:valueType>Text</pdfaProperty:valueType>
+ <pdfaProperty:category>external</pdfaProperty:category>
+ <pdfaProperty:description>ConTeXt website</pdfaProperty:description>
+ <pdfaProperty:name>ConTeXt.Url</pdfaProperty:name>
+ <pdfaProperty:valueType>Text</pdfaProperty:valueType>
</rdf:li>
<rdf:li rdf:parseType="Resource">
- <pdfaProperty:category>external</pdfaProperty:category>
- <pdfaProperty:description>LuaTeX Lua version</pdfaProperty:description>
- <pdfaProperty:name>LuaTeX.LuaVersion</pdfaProperty:name>
- <pdfaProperty:valueType>Text</pdfaProperty:valueType>
+ <pdfaProperty:category>external</pdfaProperty:category>
+ <pdfaProperty:description>ConTeXt version</pdfaProperty:description>
+ <pdfaProperty:name>ConTeXt.Version</pdfaProperty:name>
+ <pdfaProperty:valueType>Text</pdfaProperty:valueType>
</rdf:li>
<rdf:li rdf:parseType="Resource">
- <pdfaProperty:category>external</pdfaProperty:category>
- <pdfaProperty:description>LuaTeX platform</pdfaProperty:description>
- <pdfaProperty:name>LuaTeX.Platform</pdfaProperty:name>
- <pdfaProperty:valueType>Text</pdfaProperty:valueType>
+ <pdfaProperty:category>external</pdfaProperty:category>
+ <pdfaProperty:description>Banner of pdftex or one of its successors</pdfaProperty:description>
+ <pdfaProperty:name>PTEX.Fullbanner</pdfaProperty:name>
+ <pdfaProperty:valueType>Text</pdfaProperty:valueType>
</rdf:li>
<rdf:li rdf:parseType="Resource">
- <pdfaProperty:category>external</pdfaProperty:category>
- <pdfaProperty:description>Document identifier</pdfaProperty:description>
- <pdfaProperty:name>ID</pdfaProperty:name>
- <pdfaProperty:valueType>Text</pdfaProperty:valueType>
+ <pdfaProperty:category>external</pdfaProperty:category>
+ <pdfaProperty:description>Document identifier</pdfaProperty:description>
+ <pdfaProperty:name>ID</pdfaProperty:name>
+ <pdfaProperty:valueType>Text</pdfaProperty:valueType>
</rdf:li>
</rdf:Seq>
</pdfaSchema:property>
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lpdf-pde.lua b/Master/texmf-dist/tex/context/base/mkiv/lpdf-pde.lua
deleted file mode 100644
index 9d14f8f5e82..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/lpdf-pde.lua
+++ /dev/null
@@ -1,1157 +0,0 @@
-if not modules then modules = { } end modules ['lpdf-epd'] = {
- version = 1.001,
- comment = "companion to lpdf-epa.mkiv",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files",
- history = "this one replaces the poppler/pdfe binding",
-}
-
--- \enabledirectives[graphics.pdf.uselua]
--- \enabledirectives[graphics.pdf.recompress]
--- \enabledirectives[graphics.pdf.stripmarked]
-
--- maximum integer : +2^32
--- maximum real : +2^15
--- minimum real : 1/(2^16)
-
--- get_flagged : does that still work
-
--- ppdoc_permissions (ppdoc *pdf);
-
--- PPSTRING_ENCODED 1 << 0
--- PPSTRING_DECODED 1 << 1
--- PPSTRING_EXEC 1 << 2 postscript only
--- PPSTRING_PLAIN 0
--- PPSTRING_BASE16 1 << 3
--- PPSTRING_BASE85 1 << 4
--- PPSTRING_UTF16BE 1 << 5
--- PPSTRING_UTF16LE 1 << 6
-
--- PPDOC_ALLOW_PRINT 1 << 2 printing
--- PPDOC_ALLOW_MODIFY 1 << 3 filling form fields, signing, creating template pages
--- PPDOC_ALLOW_COPY 1 << 4 copying, copying for accessibility
--- PPDOC_ALLOW_ANNOTS 1 << 5 filling form fields, copying, signing
--- PPDOC_ALLOW_EXTRACT 1 << 9 contents copying for accessibility
--- PPDOC_ALLOW_ASSEMBLY 1 << 10 no effect
--- PPDOC_ALLOW_PRINT_HIRES 1 << 11 no effect
-
--- PPCRYPT_NONE 0 no encryption, go ahead
--- PPCRYPT_DONE 1 encryption present but password succeeded, go ahead
--- PPCRYPT_PASS -1 encryption present, need non-empty password
--- PPCRYPT_FAIL -2 invalid or unsupported encryption (eg. undocumented in pdf spec)
-
-local setmetatable, rawset, rawget, type, next = setmetatable, rawset, rawget, type, next
-local tostring, tonumber, unpack = tostring, tonumber, unpack
-local char, byte, find = string.char, string.byte, string.find
-local abs = math.abs
-local concat, swapped, sortedhash, sortedkeys = table.concat, table.swapped, table.sortedhash, table.sortedkeys
-local utfchar = string.char
-local setmetatableindex = table.setmetatableindex
-
-local lpegmatch, lpegpatterns = lpeg.match, lpeg.patterns
-local P, C, S, R, Ct, Cc, V, Carg, Cs, Cf, Cg = lpeg.P, lpeg.C, lpeg.S, lpeg.R, lpeg.Ct, lpeg.Cc, lpeg.V, lpeg.Carg, lpeg.Cs, lpeg.Cf, lpeg.Cg
-
-if not lpdf then
- require("lpdf-aux")
-end
-
-if not (number and number.dimenfactors) then
- require("util-dim")
-end
-
-local epdf = pdfe
- lpdf = lpdf or { }
-local lpdf = lpdf
-local lpdf_epdf = { }
-lpdf.epdf = lpdf_epdf
-
-local openPDF = epdf.open
-local newPDF = epdf.new
-local closePDF = epdf.close
-
-local getcatalog = epdf.getcatalog
-local getinfo = epdf.getinfo
-local gettrailer = epdf.gettrailer
-local getnofpages = epdf.getnofpages
-local getversion = epdf.getversion
-local getbox = epdf.getbox
-local getstatus = epdf.getstatus
-local unencrypt = epdf.unencrypt
-
-local dictionarytotable = epdf.dictionarytotable
-local arraytotable = epdf.arraytotable
-local pagestotable = epdf.pagestotable
-local readwholestream = epdf.readwholestream
-
-local getfromreference = pdfe.getfromreference
-
-local report_epdf = logs.reporter("epdf")
-
-local allocate = utilities.storage.allocate
-
-local bpfactor = number.dimenfactors.bp
-
-local objectcodes = { [0] =
- "none",
- "null",
- "bool",
- "integer",
- "number",
- "name",
- "string",
- "array",
- "dictionary",
- "stream",
- "reference",
-}
-
-local encryptioncodes = {
- [0] = "notencrypted",
- [1] = "unencrypted",
- [-1] = "protected",
- [-2] = "failure",
-}
-
-objectcodes = allocate(swapped(objectcodes,objectcodes))
-encryptioncodes = allocate(swapped(encryptioncodes,encryptioncodes))
-
-pdfe.objectcodes = objectcodes
-pdfe.encryptioncodes = encryptioncodes
-
-local null_object_code = objectcodes.null
-local reference_object_code = objectcodes.reference
-
-local none_object_code = objectcodes.none
-local null_object_code = objectcodes.null
-local bool_object_code = objectcodes.bool
-local integer_object_code = objectcodes.integer
-local number_object_code = objectcodes.number
-local name_object_code = objectcodes.name
-local string_object_code = objectcodes.string
-local array_object_code = objectcodes.array
-local dictionary_object_code = objectcodes.dictionary
-local stream_object_code = objectcodes.stream
-local reference_object_code = objectcodes.reference
-
-local checked_access
-local get_flagged -- from pdfe -> lpdf
-
-if lpdf.dictionary then
-
- -- we're in context
-
- local pdfdictionary = lpdf.dictionary
- local pdfarray = lpdf.array
- local pdfconstant = lpdf.constant
- local pdfstring = lpdf.string
- local pdfunicode = lpdf.unicode
-
- get_flagged = function(t,f,k)
- local tk = t[k] -- triggers resolve
- local fk = f[k]
- if not fk then
- return tk
- elseif fk == "name" then
- return pdfconstant(tk)
- elseif fk == "array" then
- return pdfarray(tk)
- elseif fk == "dictionary" then
- return pdfarray(tk)
- elseif fk == "rawtext" then
- return pdfstring(tk)
- elseif fk == "unicode" then
- return pdfunicode(tk)
- else
- return tk
- end
- end
-
-else
-
- get_flagged = function(t,f,k)
- return t[k]
- end
-
-end
-
--- We need to convert the string from utf16 although there is no way to
--- check if we have a regular string starting with a bom. So, we have
--- na dilemma here: a pdf doc encoded string can be invalid utf.
-
--- <hex encoded> : implicit 0 appended if odd
--- (byte encoded) : \( \) \\ escaped
---
--- <FE><FF> : utf16be
---
--- \r \r \t \b \f \( \) \\ \NNN and \<newline> : append next line
---
--- the getString function gives back bytes so we don't need to worry about
--- the hex aspect.
-
-local some_dictionary
-local some_array
-local some_stream
-local some_reference
-
-local some_string = lpdf.frombytes
-
-local function get_value(document,t,key)
- if not key then
- return
- end
- local value = t[key]
- if not value then
- return
- end
- if type(value) ~= "table" then
- return value
- end
- -- we can assume names to be simple and strings to be tables
- local kind = value[1]
- if kind == name_object_code then
- return value[2]
- elseif kind == string_object_code then
- return some_string(value[2],value[3])
- elseif kind == array_object_code then
- return some_array(value[2],document)
- elseif kind == dictionary_object_code then
- return some_dictionary(value[2],document)
- elseif kind == stream_object_code then
- return some_stream(value,document)
- elseif kind == reference_object_code then
- return some_reference(value,document)
- end
- return value
-end
-
-some_dictionary = function (d,document)
- local f = dictionarytotable(d,true)
- local t = setmetatable({ __raw__ = f, __type__ = dictionary_object_code }, {
- __index = function(t,k)
- return get_value(document,f,k)
- end,
- __call = function(t,k)
- return get_flagged(t,f,k)
- end,
- } )
- return t, "dictionary"
-end
-
-some_array = function (a,document)
- local f = arraytotable(a,true)
- local n = #f
- local t = setmetatable({ __raw__ = f, __type__ = array_object_code, n = n }, {
- __index = function(t,k)
- return get_value(document,f,k)
- end,
- __call = function(t,k)
- return get_flagged(t,f,k)
- end,
- __len = function(t,k)
- return n
- end,
- } )
- return t, "array"
-end
-
-some_stream = function(s,d,document)
- local f = dictionarytotable(d,true)
- local t = setmetatable({ __raw__ = f, __type__ = stream_object_code }, {
- __index = function(t,k)
- return get_value(document,f,k)
- end,
- __call = function(t,raw)
- if raw == false then
- return readwholestream(s,false) -- original
- else
- return readwholestream(s,true) -- uncompressed
- end
- end,
- } )
- return t, "stream"
-end
-
-some_reference = function(r,document)
- local objnum = r[3]
- local cached = document.__cache__[objnum]
- if not cached then
- local kind, object, b, c = getfromreference(r[2])
- if kind == dictionary_object_code then
- cached = some_dictionary(object,document)
- elseif kind == array_object_code then
- cached = some_array(object,document)
- elseif kind == stream_object_code then
- cached = some_stream(object,b,document)
- else
- cached = { kind, object, b, c }
- -- really cache this?
- end
- document.__cache__[objnum] = cached
- document.__xrefs__[cached] = objnum
- end
- return cached
-end
-
-local resolvers = { }
-lpdf_epdf.resolvers = resolvers
-
-local function resolve(document,k)
- local resolver = resolvers[k]
- if resolver then
- local entry = resolver(document)
- document[k] = entry
- return entry
- end
-end
-
-local function getnames(document,n,target) -- direct
- if n then
- local Names = n.Names
- if Names then
- if not target then
- target = { }
- end
- for i=1,#Names,2 do
- target[Names[i]] = Names[i+1]
- end
- else
- local Kids = n.Kids
- if Kids then
- for i=1,#Kids do
- target = getnames(document,Kids[i],target)
- end
- end
- end
- return target
- end
-end
-
-local function getkids(document,n,target) -- direct
- if n then
- local Kids = n.Kids
- if Kids then
- for i=1,#Kids do
- target = getkids(document,Kids[i],target)
- end
- elseif target then
- target[#target+1] = n
- else
- target = { n }
- end
- return target
- end
-end
-
-function resolvers.destinations(document)
- local Names = document.Catalog.Names
- return getnames(document,Names and Names.Dests)
-end
-
-function resolvers.javascripts(document)
- local Names = document.Catalog.Names
- return getnames(document,Names and Names.JavaScript)
-end
-
-function resolvers.widgets(document)
- local Names = document.Catalog.AcroForm
- return Names and Names.Fields
-end
-
-function resolvers.embeddedfiles(document)
- local Names = document.Catalog.Names
- return getnames(document,Names and Names.EmbeddedFiles)
-end
-
--- /OCProperties <<
--- /OCGs [ 15 0 R 17 0 R 19 0 R 21 0 R 23 0 R 25 0 R 27 0 R ]
--- /D <<
--- /Order [ 15 0 R 17 0 R 19 0 R 21 0 R 23 0 R 25 0 R 27 0 R ]
--- /ON [ 15 0 R 17 0 R 19 0 R 21 0 R 23 0 R 25 0 R 27 0 R ]
--- /OFF [ ]
--- >>
--- >>
-
-function resolvers.layers(document)
- local properties = document.Catalog.OCProperties
- if properties then
- local layers = properties.OCGs
- if layers then
- local t = { }
- for i=1,#layers do
- local layer = layers[i]
- t[i] = layer.Name
- end
- -- t.n = n
- return t
- end
- end
-end
-
-function resolvers.structure(document)
- -- this might become a tree
- return document.Catalog.StructTreeRoot
-end
-
-function resolvers.pages(document)
- local __data__ = document.__data__
- local __xrefs__ = document.__xrefs__
- local __cache__ = document.__cache__
- --
- local nofpages = document.nofpages
- local pages = { }
- local rawpages = pagestotable(__data__)
- document.pages = pages
- --
- for pagenumber=1,nofpages do
- local rawpagedata = rawpages[pagenumber]
- local pagereference = rawpagedata[3]
- local pageobject = rawpagedata[1]
- local pagedata = some_dictionary(pageobject,document)
- if pagedata and pageobject then
- pagedata.number = pagenumber
- pagedata.MediaBox = getbox(pageobject,"MediaBox")
- pagedata.CropBox = getbox(pageobject,"CropBox")
- pagedata.BleedBox = getbox(pageobject,"BleedBox")
- pagedata.ArtBox = getbox(pageobject,"ArtBox")
- pagedata.TrimBox = getbox(pageobject,"TrimBox")
- pages[pagenumber] = pagedata
- __xrefs__[pagedata] = pagereference
- __cache__[pagereference] = pagedata
- else
- report_epdf("missing pagedata for page %i",i)
- end
- end
- --
- -- pages.n = nofpages
- --
- return pages
-end
-
-local loaded = { }
-local nofloaded = 0
-
-function lpdf_epdf.load(filename,userpassword,ownerpassword,fromstring)
- local document = loaded[filename]
- if not document then
- statistics.starttiming(lpdf_epdf)
- local __data__
- if fromstring then
- __data__ = newPDF(filename,#filename)
- else
- __data__ = openPDF(filename)
- end
- if __data__ then
- if userpassword and getstatus(__data__) < 0 then
- unencrypt(__data__,userpassword,nil)
- end
- if ownerpassword and getstatus(__data__) < 0 then
- unencrypt(__data__,nil,ownerpassword)
- end
- if getstatus(__data__) < 0 then
- report_epdf("the document is encrypted, provide proper passwords",getstatus(__data__))
- __data__ = false
- end
- if __data__ then
- document = {
- filename = filename,
- __cache__ = { },
- __xrefs__ = { },
- __fonts__ = { },
- __copied__ = { },
- __data__ = __data__,
- }
- document.Catalog = some_dictionary(getcatalog(__data__),document)
- document.Info = some_dictionary(getinfo(__data__),document)
- document.Trailer = some_dictionary(gettrailer(__data__),document)
- --
- setmetatableindex(document,resolve)
- --
- document.majorversion, document.minorversion = getversion(__data__)
- --
- document.nofpages = getnofpages(__data__)
- else
- document = false
- end
- else
- document = false
- end
- loaded[filename] = document
- loaded[document] = document
- statistics.stoptiming(lpdf_epdf)
- -- print(statistics.elapsedtime(lpdf_epdf))
- end
- return document or nil
-end
-
-function lpdf_epdf.unload(filename)
- if type(filename) == "table" then
- filename = filename.filename
- end
- if type(filename) == "string" then
- local document = loaded[filename]
- if document then
--- report_epdf("%04i closed: %s",nofloaded,filename)
--- nofloaded = nofloaded - 1
- loaded[document] = nil
- loaded[filename] = nil
- end
- end
-end
-
--- for k, v in expanded(t) do
-
-local function expanded(t)
- local function iterator(raw,k)
- local k, v = next(raw,k)
- if v then
- return k, t[k]
- end
- end
- return iterator, t.__raw__, nil
-end
-
----------.expand = expand
-lpdf_epdf.expanded = expanded
-
--- we could resolve the text stream in one pass if we directly handle the
--- font but why should we complicate things
-
-local spaces = lpegpatterns.whitespace^1
-local optspaces = lpegpatterns.whitespace^0
-local numchar = P("\\")/"" * (R("09")^3/function(s) return char(tonumber(s,8)) end)
- + P("\\") * P(1)
-local key = P("/") * C(R("AZ","az","09","__")^1)
-local number = Ct(Cc("number") * (lpegpatterns.number/tonumber))
-local keyword = Ct(Cc("name") * key)
-local operator = C((R("AZ","az")+P("*")+P("'")+P('"'))^1)
-
-local grammar = P { "start",
- start = (keyword + number + V("dictionary") + V("array") + V("hexstring") + V("decstring") + spaces)^1,
- keyvalue = key * optspaces * V("start"),
- array = Ct(Cc("array") * P("[") * Ct(V("start")^1) * P("]")),
- dictionary = Ct(Cc("dict") * P("<<") * Ct(V("keyvalue")^1) * P(">>")),
- hexstring = Ct(Cc("hex") * P("<") * Cs(( 1-P(">"))^1) * P(">")),
- decstring = Ct(Cc("dec") * P("(") * Cs((numchar+1-(P")"))^1) * P(")")), -- untested
-}
-
-local operation = Ct(grammar^1 * operator)
-local parser = Ct((operation + P(1))^1)
-
--- todo: speed this one up
-
-local numchar = P("\\") * (R("09")^3 + P(1))
-local number = lpegpatterns.number
-local keyword = P("/") * R("AZ","az","09","__")^1
-local operator = (R("AZ","az")+P("*")+P("'")+P('"'))^1
-
-local skipstart = P("BDC") + P("BMC") + P("DP") + P("MP")
-local skipstop = P("EMC")
-local skipkeep = P("/ActualText")
-
-local grammar = P { "skip",
- start = keyword + number + V("dictionary") + V("array") + V("hexstring") + V("decstring") + spaces,
- keyvalue = optspaces * (keyword * optspaces * V("start") * optspaces)^1,
- xeyvalue = optspaces * ((keyword - skipkeep) * optspaces * V("start") * optspaces)^1,
- array = P("[") * V("start")^0 * P("]"),
- dictionary = P("<<") * V("keyvalue")^0 * P(">>"),
- xictionary = P("<<") * V("xeyvalue")^0 * P(">>"),
- hexstring = P("<") * ( 1-P(">"))^0 * P(">"),
- decstring = P("(") * (numchar+1-(P")"))^0 * P(")"),
- skip = (optspaces * ( keyword * optspaces * V("xictionary") * optspaces * skipstart + skipstop) / "")
- + V("start")
- + operator
-}
-
-local stripper = Cs((grammar + P(1))^1)
-
-function lpdf_epdf.parsecontent(str)
- return lpegmatch(parser,str)
-end
-
-function lpdf_epdf.stripcontent(str)
- if find(str,"EMC") then
- return lpegmatch(stripper,str)
- else
- return str
- end
-end
-
--- beginbfrange : <start> <stop> <firstcode>
--- <start> <stop> [ <firstsequence> <firstsequence> <firstsequence> ]
--- beginbfchar : <code> <newcodes>
-
-local fromsixteen = lpdf.fromsixteen -- maybe inline the lpeg ... but not worth it
-
-local function f_bfchar(t,a,b)
- t[tonumber(a,16)] = fromsixteen(b)
-end
-
-local function f_bfrange_1(t,a,b,c)
- print("todo 1",a,b,c)
- -- c is string
- -- todo t[tonumber(a,16)] = fromsixteen(b)
-end
-
-local function f_bfrange_2(t,a,b,c)
- print("todo 2",a,b,c)
- -- c is table
- -- todo t[tonumber(a,16)] = fromsixteen(b)
-end
-
-local optionals = spaces^0
-local hexstring = optionals * P("<") * C((1-P(">"))^1) * P(">")
-local bfchar = Carg(1) * hexstring * hexstring / f_bfchar
-local bfrange = Carg(1) * hexstring * hexstring * hexstring / f_bfrange_1
- + Carg(1) * hexstring * hexstring * optionals * P("[") * Ct(hexstring^1) * optionals * P("]") / f_bfrange_2
-local fromunicode = (
- P("beginbfchar" ) * bfchar ^1 * optionals * P("endbfchar" ) +
- P("beginbfrange") * bfrange^1 * optionals * P("endbfrange") +
- spaces +
- P(1)
-)^1 * Carg(1)
-
-local function analyzefonts(document,resources) -- unfinished, see mtx-pdf for better code
- local fonts = document.__fonts__
- if resources then
- local fontlist = resources.Font
- if fontlist then
- for id, data in expanded(fontlist) do
- if not fonts[id] then
- -- a quick hack ... I will look into it more detail if I find a real
- -- -application for it
- local tounicode = data.ToUnicode()
- if tounicode then
- tounicode = lpegmatch(fromunicode,tounicode,1,{})
- end
- fonts[id] = {
- tounicode = type(tounicode) == "table" and tounicode or { }
- }
- setmetatableindex(fonts[id],"self")
- end
- end
- end
- end
- return fonts
-end
-
-local more = 0
-local unic = nil -- cheaper than passing each time as Carg(1)
-
-local p_hex_to_utf = C(4) / function(s) -- needs checking !
- local now = tonumber(s,16)
- if more > 0 then
- now = (more-0xD800)*0x400 + (now-0xDC00) + 0x10000 -- the 0x10000 smells wrong
- more = 0
- return unic[now] or utfchar(now)
- elseif now >= 0xD800 and now <= 0xDBFF then
- more = now
- -- return ""
- else
- return unic[now] or utfchar(now)
- end
-end
-
-local p_dec_to_utf = C(1) / function(s) -- needs checking !
- local now = byte(s)
- return unic[now] or utfchar(now)
-end
-
-local p_hex_to_utf = P(true) / function() more = 0 end * Cs(p_hex_to_utf^1)
-local p_dec_to_utf = P(true) / function() more = 0 end * Cs(p_dec_to_utf^1)
-
-function lpdf_epdf.getpagecontent(document,pagenumber)
-
- local page = document.pages[pagenumber]
-
- if not page then
- return
- end
-
- local fonts = analyzefonts(document,page.Resources)
-
- local content = page.Contents() or ""
- local list = lpegmatch(parser,content)
- local font = nil
- -- local unic = nil
-
- for i=1,#list do
- local entry = list[i]
- local size = #entry
- local operator = entry[size]
- if operator == "Tf" then
- font = fonts[entry[1]]
- unic = font.tounicode
- elseif operator == "TJ" then -- { array, TJ }
- local list = entry[1]
- for i=1,#list do
- local li = list[i]
- if type(li) == "table" then
- if li[1] == "hex" then
- list[i] = lpegmatch(p_hex_to_utf,li[2])
- else
- list[i] = lpegmatch(p_dec_to_utf,li[2])
- end
- else
- -- kern
- end
- end
- elseif operator == "Tj" or operator == "'" or operator == '"' then -- { string, Tj } { string, ' } { n, m, string, " }
- local list = entry[size-1]
- if list[1] == "hex" then
- list[2] = lpegmatch(p_hex_to_utf,li[2])
- else
- list[2] = lpegmatch(p_dec_to_utf,li[2])
- end
- end
- end
-
- unic = nil -- can be collected
-
- return list
-
-end
-
--- This is also an experiment. When I really need it I can improve it, for instance
--- with proper position calculating. It might be usefull for some search or so.
-
-local softhyphen = utfchar(0xAD) .. "$"
-local linefactor = 1.3
-
-function lpdf_epdf.contenttotext(document,list) -- maybe signal fonts
- local last_y = 0
- local last_f = 0
- local text = { }
- local last = 0
-
- for i=1,#list do
- local entry = list[i]
- local size = #entry
- local operator = entry[size]
- if operator == "Tf" then
- last_f = entry[2]
- elseif operator == "TJ" then
- local list = entry[1]
- for i=1,#list do
- local li = list[i]
- if type(li) == "string" then
- last = last + 1
- text[last] = li
- elseif li < -50 then
- last = last + 1
- text[last] = " "
- end
- end
- line = concat(list)
- elseif operator == "Tj" then
- last = last + 1
- text[last] = entry[size-1]
- elseif operator == "cm" or operator == "Tm" then
- local ty = entry[6]
- local dy = abs(last_y - ty)
- if dy > linefactor*last_f then
- if last > 0 then
- if find(text[last],softhyphen,1,true) then
- -- ignore
- else
- last = last + 1
- text[last] = "\n"
- end
- end
- end
- last_y = ty
- end
- end
-
- return concat(text)
-end
-
-function lpdf_epdf.getstructure(document,list) -- just a test
- local depth = 0
- for i=1,#list do
- local entry = list[i]
- local size = #entry
- local operator = entry[size]
- if operator == "BDC" then
- report_epdf("%w%s : %s",depth,entry[1] or "?",entry[2] and entry[2].MCID or "?")
- depth = depth + 1
- elseif operator == "EMC" then
- depth = depth - 1
- elseif operator == "TJ" then
- local list = entry[1]
- for i=1,#list do
- local li = list[i]
- if type(li) == "string" then
- report_epdf("%w > %s",depth,li)
- elseif li < -50 then
- report_epdf("%w >",depth,li)
- end
- end
- elseif operator == "Tj" then
- report_epdf("%w > %s",depth,entry[size-1])
- end
- end
-end
-
-if img then do
-
- -- This can be made a bit faster (just get raw data and pass it) but I will
- -- do that later. In the end the benefit is probably neglectable.
-
- local recompress = false
- local stripmarked = false
-
- local copydictionary = nil
- local copyarray = nil
-
- local pdfreserveobject = lpdf.reserveobject
- local shareobjectreference = lpdf.shareobjectreference
- local pdfflushobject = lpdf.flushobject
- local pdfflushstreamobject = lpdf.flushstreamobject
- local pdfreference = lpdf.reference
- local pdfconstant = lpdf.constant
- local pdfarray = lpdf.array
- local pdfdictionary = lpdf.dictionary
- local pdfnull = lpdf.null
- local pdfliteral = lpdf.literal
-
- local report = logs.reporter("backend","xobjects")
-
- local factor = 65536 / (7200/7227) -- 1/number.dimenfactors.bp
-
- local createimage = images.create
-
- directives.register("graphics.pdf.recompress", function(v) recompress = v end)
- directives.register("graphics.pdf.stripmarked", function(v) stripmarked = v end)
-
- local function scaledbbox(b)
- return { b[1]*factor, b[2]*factor, b[3]*factor, b[4]*factor }
- end
-
- local codecs = {
- ASCIIHexDecode = true,
- ASCII85Decode = true,
- RunLengthDecode = true,
- FlateDecode = true,
- LZWDecode = true,
- }
-
- local function deepcopyobject(xref,copied,value)
- -- no need for tables, just nested loop with obj
- local objnum = xref[value]
- if objnum then
- local usednum = copied[objnum]
- if usednum then
- -- report("%s object %i is reused",kind,objnum)
- else
- usednum = pdfreserveobject()
- copied[objnum] = usednum
- local entry = value
- local kind = entry.__type__
- if kind == array_object_code then
- local a = copyarray(xref,copied,entry)
- pdfflushobject(usednum,tostring(a))
- elseif kind == dictionary_object_code then
- local d = copydictionary(xref,copied,entry)
- pdfflushobject(usednum,tostring(d))
- elseif kind == stream_object_code then
- local d = copydictionary(xref,copied,entry)
- local filter = d.Filter
- if filter and codecs[filter] and recompress then
- -- recompress
- d.Filter = nil
- d.Length = nil
- d.DecodeParms = nil -- relates to filter
- d.DL = nil -- needed?
- local s = entry() -- get uncompressed stream
- pdfflushstreamobject(s,d,true,usednum) -- compress stream
- else
- -- keep as-is, even Length which indicates the
- -- decompressed length
- local s = entry(false) -- get compressed stream
- -- pdfflushstreamobject(s,d,false,usednum,true) -- don't compress stream
- pdfflushstreamobject(s,d,"raw",usednum) -- don't compress stream
- end
- else
- local t = type(value)
- if t == "string" then
- value = pdfconstant(value)
- elseif t == "table" then
- local kind = value[1]
- local entry = value[2]
- if kind == name_object_code then
- value = pdfconstant(entry)
- elseif kind == string_object_code then
- value = pdfliteral(entry,value[3])
- elseif kind == null_object_code then
- value = pdfnull()
- elseif kind == reference_object_code then
- value = deepcopyobject(xref,copied,entry)
- else
- value = tostring(entry)
- end
- end
- pdfflushobject(usednum,value)
- end
- end
- return pdfreference(usednum)
- elseif kind == stream_object_code then
- report("stream not done: %s", objectcodes[kind] or "?")
- else
- report("object not done: %s", objectcodes[kind] or "?")
- end
- end
-
- local function copyobject(xref,copied,object,key,value)
- if not value then
- value = object.__raw__[key]
- end
- local t = type(value)
- if t == "string" then
- return pdfconstant(value)
- elseif t ~= "table" then
- return value
- end
- local kind = value[1]
- if kind == name_object_code then
- return pdfconstant(value[2])
- elseif kind == string_object_code then
- return pdfliteral(value[2],value[3])
- elseif kind == array_object_code then
- return copyarray(xref,copied,object[key])
- elseif kind == dictionary_object_code then
- return copydictionary(xref,copied,object[key])
- elseif kind == null_object_code then
- return pdfnull()
- elseif kind == reference_object_code then
- -- expand
- return deepcopyobject(xref,copied,object[key])
- else
- report("weird: %s", objecttypes[kind] or "?")
- end
- end
-
- copyarray = function (xref,copied,object)
- local target = pdfarray()
- local source = object.__raw__
- for i=1,#source do
- target[i] = copyobject(xref,copied,object,i,source[i])
- end
- return target
- end
-
- local plugins = nil
-
- -- Sorting the hash slows down upto 5% bit but it is still as fast as the C
- -- code. We could loop over the index instead but sorting might be nicer in
- -- the end.
-
- copydictionary = function (xref,copied,object)
- local target = pdfdictionary()
- local source = object.__raw__
- -- for key, value in next, source do
- for key, value in sortedhash(source) do
- if plugins then
- local p = plugins[key]
- if p then
- target[key] = p(xref,copied,object,key,value,copyobject) -- maybe a table of methods
- else
- target[key] = copyobject(xref,copied,object,key,value)
- end
- else
- target[key] = copyobject(xref,copied,object,key,value)
- end
- end
- return target
- end
-
- -- local function copyresources(pdfdoc,xref,copied,pagedata)
- -- local Resources = pagedata.Resources
- -- if Resources then
- -- local r = pdfreserveobject()
- -- local d = copydictionary(xref,copied,Resources)
- -- pdfflushobject(r,tostring(d))
- -- return pdfreference(r)
- -- end
- -- end
-
- local function copyresources(pdfdoc,xref,copied,pagedata)
- local Resources = pagedata.Resources
- --
- -- -- This needs testing:
- --
- -- if not Resources then
- -- local Parent = page.Parent
- -- while (Parent and (Parent.__type__ == dictionary_object_code or Parent.__type__ == reference_object_code) do
- -- Resources = Parent.Resources
- -- if Resources then
- -- break
- -- end
- -- Parent = Parent.Parent
- -- end
- -- end
- if Resources then
- local d = copydictionary(xref,copied,Resources)
- return shareobjectreference(d)
- end
- end
-
- local openpdf = lpdf_epdf.load
- local closepdf = lpdf_epdf.unload
-
- local function newpdf(str,userpassword,ownerpassword)
- return openpdf(str,userpassword,ownerpassword,true)
- end
-
- local function querypdf(pdfdoc,pagenumber)
- if pdfdoc then
- if not pagenumber then
- pagenumber = 1
- end
- local root = pdfdoc.Catalog
- local page = pdfdoc.pages[pagenumber]
- if page then
- -- todo
- local mediabox = page.MediaBox or { 0, 0, 0, 0 }
- local cropbox = page.CropBox or mediabox
- return {
- filename = pdfdoc.filename,
- pagenumber = pagenumber,
- nofpages = pdfdoc.nofpages,
- boundingbox = scaledbbox(cropbox),
- cropbox = cropbox,
- mediabox = mediabox,
- bleedbox = page.BleedBox or cropbox,
- trimbox = page.TrimBox or cropbox,
- artbox = page.ArtBox or cropbox,
- rotation = page.Rotate or 0,
- xsize = cropbox[3] - cropbox[1],
- ysize = cropbox[4] - cropbox[2],
- }
- end
- end
- end
-
- local function copypage(pdfdoc,pagenumber,attributes,compact,width,height,attr)
- if pdfdoc then
- local root = pdfdoc.Catalog
- local page = pdfdoc.pages[pagenumber or 1]
- local pageinfo = querypdf(pdfdoc,pagenumber)
- local contents = page.Contents
- local xref = pdfdoc.__xrefs__
- local copied = pdfdoc.__copied__
- if compact and lpdf_epdf.plugin then
- plugins = lpdf_epdf.plugin(pdfdoc,xref,copied,page)
- end
- local xobject = pdfdictionary {
- Type = pdfconstant("XObject"),
- Subtype = pdfconstant("Form"),
- FormType = 1,
- Group = copyobject(xref,copied,page,"Group"),
- LastModified = copyobject(xref,copied,page,"LastModified"),
- Metadata = copyobject(xref,copied,page,"Metadata"),
- PieceInfo = copyobject(xref,copied,page,"PieceInfo"),
- Resources = copyresources(pdfdoc,xref,copied,page),
- SeparationInfo = copyobject(xref,copied,page,"SeparationInfo"),
- } + attr
- if attributes then
- for k, v in expanded(attributes) do
- page[k] = v -- maybe nested
- end
- end
- local content = ""
- local nolength = nil
- local ctype = contents.__type__
- -- we always recompress because image object streams can not be
- -- influenced (yet)
- if ctype == stream_object_code then
- if stripmarked then
- content = contents() -- uncompressed
- local stripped = lpdf_epdf.stripcontent(content)
- if stripped ~= content then
- -- report("%i bytes stripped on page %i",#content-#stripped,pagenumber or 1)
- content = stripped
- end
- elseif recompress then
- content = contents() -- uncompressed
- else
- local Filter = copyobject(xref,copied,contents,"Filter")
- local Length = copyobject(xref,copied,contents,"Length")
- if Length and Filter then
- nolength = true
- xobject.Length = Length
- xobject.Filter = Filter
- content = contents(false) -- uncompressed
- else
- content = contents() -- uncompressed
- end
- end
- elseif ctype == array_object_code then
- content = { }
- for i=1,#contents do
- content[i] = contents[i]() -- uncompressed
- end
- content = concat(content," ")
- end
- -- still not nice: we double wrap now
- plugins = nil
- local rotation = pageinfo.rotation
- local boundingbox = pageinfo.boundingbox
- local transform = nil
- if rotation == 90 then
- transform = 3
- elseif rotation == 180 then
- transform = 2
- elseif rotation == 270 then
- transform = 1
- elseif rotation > 1 and rotation < 4 then
- transform = rotation
- end
- xobject.BBox = pdfarray {
- boundingbox[1] * bpfactor,
- boundingbox[2] * bpfactor,
- boundingbox[3] * bpfactor,
- boundingbox[4] * bpfactor,
- }
- -- maybe like bitmaps
- return createimage { -- beware: can be a img.new or a dummy
- bbox = boundingbox,
- transform = transform,
- nolength = nolength,
- nobbox = true,
- notype = true,
- stream = content, -- todo: no compress, pass directly also length, filter etc
- attr = xobject(),
- kind = images.types.stream,
- }
- end
- end
-
- lpdf_epdf.image = {
- open = openpdf,
- close = closepdf,
- new = newpdf,
- query = querypdf,
- copy = copypage,
- }
-
--- lpdf.injectors.pdf = function(specification)
--- local d = lpdf_epdf.load(specification.filename)
--- print(d)
--- end
-
-
-end end
-
--- local d = lpdf_epdf.load("e:/tmp/oeps.pdf")
--- inspect(d)
--- inspect(d.Catalog.Lang)
--- inspect(d.Catalog.OCProperties.D.AS[1].Event)
--- inspect(d.Catalog.Metadata())
--- inspect(d.Catalog.Pages.Kids[1])
--- inspect(d.layers)
--- inspect(d.pages)
--- inspect(d.destinations)
--- inspect(lpdf_epdf.getpagecontent(d,1))
--- inspect(lpdf_epdf.contenttotext(document,lpdf_epdf.getpagecontent(d,1)))
--- inspect(lpdf_epdf.getstructure(document,lpdf_epdf.getpagecontent(d,1)))
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lpdf-pdx.xml b/Master/texmf-dist/tex/context/base/mkiv/lpdf-pdx.xml
index 35726a5c051..889862c76f7 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lpdf-pdx.xml
+++ b/Master/texmf-dist/tex/context/base/mkiv/lpdf-pdx.xml
@@ -29,7 +29,6 @@
<pdfx:ConTeXt.Url/>
<pdfx:ConTeXt.Support/>
<pdfx:ConTeXt.Version/>
- <pdfx:ConTeXt.LMTX/>
<pdfx:TeX.Support/>
<pdfx:LuaTeX.Version/>
<pdfx:LuaTeX.Functionality/>
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lpdf-pua.xml b/Master/texmf-dist/tex/context/base/mkiv/lpdf-pua.xml
index f717762b6e6..f985b54d334 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lpdf-pua.xml
+++ b/Master/texmf-dist/tex/context/base/mkiv/lpdf-pua.xml
@@ -29,7 +29,6 @@
<pdfx:ConTeXt.Url/>
<pdfx:ConTeXt.Support/>
<pdfx:ConTeXt.Version/>
- <pdfx:ConTeXt.LMTX/>
<pdfx:TeX.Support/>
<pdfx:LuaTeX.Version/>
<pdfx:LuaTeX.Functionality/>
@@ -113,50 +112,14 @@
</rdf:li>
<rdf:li rdf:parseType="Resource">
<pdfaProperty:category>external</pdfaProperty:category>
- <pdfaProperty:description>ConTeXt support</pdfaProperty:description>
- <pdfaProperty:name>ConTeXt.Support</pdfaProperty:name>
- <pdfaProperty:valueType>Text</pdfaProperty:valueType>
- </rdf:li>
- <rdf:li rdf:parseType="Resource">
- <pdfaProperty:category>external</pdfaProperty:category>
<pdfaProperty:description>ConTeXt version</pdfaProperty:description>
<pdfaProperty:name>ConTeXt.Version</pdfaProperty:name>
<pdfaProperty:valueType>Text</pdfaProperty:valueType>
</rdf:li>
<rdf:li rdf:parseType="Resource">
<pdfaProperty:category>external</pdfaProperty:category>
- <pdfaProperty:description>ConTeXt LMTX version</pdfaProperty:description>
- <pdfaProperty:name>ConTeXt.LMTX</pdfaProperty:name>
- <pdfaProperty:valueType>Text</pdfaProperty:valueType>
- </rdf:li>
- <rdf:li rdf:parseType="Resource">
- <pdfaProperty:category>external</pdfaProperty:category>
- <pdfaProperty:description>TeX support</pdfaProperty:description>
- <pdfaProperty:name>TeX.Support</pdfaProperty:name>
- <pdfaProperty:valueType>Text</pdfaProperty:valueType>
- </rdf:li>
- <rdf:li rdf:parseType="Resource">
- <pdfaProperty:category>external</pdfaProperty:category>
- <pdfaProperty:description>LuaTeX version</pdfaProperty:description>
- <pdfaProperty:name>LuaTeX.Version</pdfaProperty:name>
- <pdfaProperty:valueType>Text</pdfaProperty:valueType>
- </rdf:li>
- <rdf:li rdf:parseType="Resource">
- <pdfaProperty:category>external</pdfaProperty:category>
- <pdfaProperty:description>LuaTeX functionality</pdfaProperty:description>
- <pdfaProperty:name>LuaTeX.Functionality</pdfaProperty:name>
- <pdfaProperty:valueType>Text</pdfaProperty:valueType>
- </rdf:li>
- <rdf:li rdf:parseType="Resource">
- <pdfaProperty:category>external</pdfaProperty:category>
- <pdfaProperty:description>LuaTeX Lua version</pdfaProperty:description>
- <pdfaProperty:name>LuaTeX.LuaVersion</pdfaProperty:name>
- <pdfaProperty:valueType>Text</pdfaProperty:valueType>
- </rdf:li>
- <rdf:li rdf:parseType="Resource">
- <pdfaProperty:category>external</pdfaProperty:category>
- <pdfaProperty:description>LuaTeX platform</pdfaProperty:description>
- <pdfaProperty:name>LuaTeX.Platform</pdfaProperty:name>
+ <pdfaProperty:description>Banner of pdftex or one of its successors</pdfaProperty:description>
+ <pdfaProperty:name>PTEX.Fullbanner</pdfaProperty:name>
<pdfaProperty:valueType>Text</pdfaProperty:valueType>
</rdf:li>
<rdf:li rdf:parseType="Resource">
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lpdf-ren.lua b/Master/texmf-dist/tex/context/base/mkiv/lpdf-ren.lua
index d6e95e66a22..e9b22f38299 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lpdf-ren.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lpdf-ren.lua
@@ -54,7 +54,7 @@ local copy_node = nuts.copy
local nodepool = nuts.pool
local register = nodepool.register
-local pageliteral = nodepool.pageliteral
+local pdfpageliteral = nodepool.pdfpageliteral
local pdf_ocg = pdfconstant("OCG")
local pdf_ocmd = pdfconstant("OCMD")
@@ -261,7 +261,7 @@ function nodeinjections.startlayer(name)
local c = cache[name]
if not c then
useviewerlayer(name)
- c = register(pageliteral(f_bdc(escapednames[name])))
+ c = register(pdfpageliteral(f_bdc(escapednames[name])))
cache[name] = c
end
return copy_node(c)
@@ -269,7 +269,7 @@ end
function nodeinjections.stoplayer()
if not stop then
- stop = register(pageliteral(s_emc))
+ stop = register(pdfpageliteral(s_emc))
end
return copy_node(stop)
end
@@ -286,7 +286,7 @@ function nodeinjections.startstackedlayer(s,t,first,last)
r[#r+1] = startlayer(values[t[i]])
end
r = concat(r," ")
- return pageliteral(r)
+ return pdfpageliteral(r)
end
function nodeinjections.stopstackedlayer(s,t,first,last)
@@ -295,7 +295,7 @@ function nodeinjections.stopstackedlayer(s,t,first,last)
r[#r+1] = stoplayer()
end
r = concat(r," ")
- return pageliteral(r)
+ return pdfpageliteral(r)
end
function nodeinjections.changestackedlayer(s,t1,first1,last1,t2,first2,last2)
@@ -307,7 +307,7 @@ function nodeinjections.changestackedlayer(s,t1,first1,last1,t2,first2,last2)
r[#r+1] = startlayer(values[t2[i]])
end
r = concat(r," ")
- return pageliteral(r)
+ return pdfpageliteral(r)
end
-- transitions
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lpdf-res.lua b/Master/texmf-dist/tex/context/base/mkiv/lpdf-res.lua
index d3c591343fc..8b00835ef84 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lpdf-res.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lpdf-res.lua
@@ -6,25 +6,23 @@ if not modules then modules = { } end modules ['lpdf-res'] = {
license = "see context related readme files"
}
-local codeinjections = backends.codeinjections
+local codeinjections = backends.codeinjections
+local implement = interfaces.implement
-local nuts = nodes.nuts
-local tonut = nodes.tonut
+local nuts = nodes.nuts
+local tonut = nodes.tonut
-local setwhd = nuts.setwhd
-local setlist = nuts.setlist
+local setwhd = nuts.setwhd
+local setlist = nuts.setlist
-local new_hlist = nuts.pool.hlist
+local new_hlist = nuts.pool.hlist
-local boxresources = tex.boxresources
-local saveboxresource = boxresources.save
-local useboxresource = boxresources.use
-local getboxresourcedimensions = boxresources.getdimensions
-
-local pdfcollectedresources = lpdf.collectedresources
+local saveboxresource = tex.saveboxresource
+local useboxresource = tex.useboxresource
+local getboxresource = tex.getboxresourcedimensions
function codeinjections.registerboxresource(n,offset)
- local r = saveboxresource(n,nil,pdfcollectedresources(),true,0,offset or 0) -- direct, todo: accept functions as attr/resources
+ local r = saveboxresource(n,nil,lpdf.collectedresources(),true,0,offset or 0) -- direct, todo: accept functions as attr/resources
return r
end
@@ -37,5 +35,5 @@ function codeinjections.restoreboxresource(index)
end
function codeinjections.boxresourcedimensions(index)
- return getboxresourcedimensions(index)
+ return getboxresource(index)
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lpdf-swf.lua b/Master/texmf-dist/tex/context/base/mkiv/lpdf-swf.lua
index 44e42dc5f8d..0ac107f8b5e 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lpdf-swf.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lpdf-swf.lua
@@ -11,7 +11,6 @@ if not modules then modules = { } end modules ['lpdf-swf'] = {
local format, gsub = string.format, string.gsub
local concat = table.concat
-local formatters = string.formatters
local backends = backends
local lpdf = lpdf
@@ -34,43 +33,6 @@ local trace_swf = false trackers.register("backend.swf", function(v) trace_swf
local report_swf = logs.reporter("backend","swf")
---------------------------------------------------------------------------------------
-
-local createimage = images.create
-local embedimage = images.embed
-
-local basepoints = number.dimenfactors.bp
-
-local f_image = formatters["%.6F 0 0 %.6F 0 0 cm /%s Do"]
-
-directives.register("pdf.stripzeros",function()
- f_image = formatters["%.6N 0 0 %.6N 0 0 cm /%s Do"]
-end)
-
-local function package(image) -- see lpdf-u3d **
- local boundingbox = image.bbox
- local imagetag = "Im" .. image.index -- this is not ok
- local resources = pdfdictionary {
- ProcSet = lpdf.procset(),
- Resources = pdfdictionary {
- XObject = pdfdictionary {
- [imagetag] = pdfreference(image.objnum)
- }
- }
- }
- local width = boundingbox[3]
- local height = boundingbox[4]
- local xform = createimage {
- attr = resources(),
- stream = f_image(width,height,imagetag),
- bbox = { 0, 0, width/basepoints, height/basepoints },
- }
- embedimage(xform)
- return xform
-end
-
---------------------------------------------------------------------------------------
-
local activations = {
click = "XA",
page = "PO",
@@ -103,10 +65,7 @@ local function insertswf(spec)
local preview = checkedkey(display,"preview","string")
local toolbar = checkedkey(display,"toolbar","boolean")
- local embeddedreference = codeinjections.embedfile {
- file = filename,
- compress = false,
- }
+ local embeddedreference = codeinjections.embedfile { file = filename }
local flash = pdfdictionary {
Subtype = pdfconstant("RichMediaConfiguration"),
@@ -163,7 +122,6 @@ local function insertswf(spec)
file = fullname,
usedname = usedname,
keepdir = true,
- compress = false,
}
names[#names+1] = pdfstring(filename)
names[#names+1] = embeddedreference
@@ -317,7 +275,7 @@ local function insertswf(spec)
end
end
if figure then
- local image = package(figure.status.private)
+ local image = img.package(figure.status.private)
appearance = pdfdictionary { N = pdfreference(image.objnum) }
if trace_swf then
report_swf("using preview %s",preview)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lpdf-tag.lua b/Master/texmf-dist/tex/context/base/mkiv/lpdf-tag.lua
index 0a2fe679ea8..f4ecfc8a601 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lpdf-tag.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lpdf-tag.lua
@@ -13,8 +13,7 @@ local settings_to_hash = utilities.parsers.settings_to_hash
local sortedhash = table.sortedhash
local formatters = string.formatters
-local trace_tags = false trackers.register("structures.tags", function(v) trace_tags = v end)
-local trace_info = false trackers.register("structures.tags.info", function(v) trace_info = v end)
+local trace_tags = false trackers.register("structures.tags", function(v) trace_tags = v end)
local report_tags = logs.reporter("backend","tags")
@@ -52,9 +51,11 @@ local a_tagged = attributes.private('tagged')
local a_image = attributes.private('image')
local nuts = nodes.nuts
+local tonut = nuts.tonut
+local tonode = nuts.tonode
local nodepool = nuts.pool
-local pageliteral = nodepool.pageliteral
+local pdfpageliteral = nodepool.pdfpageliteral
local register = nodepool.register
local getid = nuts.getid
@@ -67,17 +68,17 @@ local setlink = nuts.setlink
local setlist = nuts.setlist
local copy_node = nuts.copy
+local traverse_nodes = nuts.traverse
local tosequence = nuts.tosequence
-local nextnode = nuts.traversers.node
-
-local structure_kids -- delayed
-local structure_ref -- delayed
-local parent_ref -- delayed
-local root -- delayed
-local names -- delayed
+local structure_stack = { }
+local structure_kids = pdfarray()
+local structure_ref = pdfreserveobject()
+local parent_ref = pdfreserveobject()
+local root = { pref = pdfreference(structure_ref), kids = structure_kids }
local tree = { }
local elements = { }
+local names = pdfarray()
local structurestags = structures.tags
local taglist = structurestags.taglist
@@ -111,7 +112,7 @@ local usedmapping = { }
-- end
local function finishstructure()
- if root and #structure_kids > 0 then
+ if #structure_kids > 0 then
local nums, n = pdfarray(), 0
for i=1,#tree do
n = n + 1 ; nums[n] = i - 1
@@ -170,7 +171,6 @@ local index, pageref, pagenum, list = 0, nil, 0, nil
local pdf_mcr = pdfconstant("MCR")
local pdf_struct_element = pdfconstant("StructElem")
-local pdf_s = pdfconstant("S")
local function initializepage()
index = 0
@@ -183,8 +183,6 @@ end
local function finishpage()
-- flush what can be flushed
addtopageattributes("StructParents",pagenum-1)
- -- there might be more
- addtopageattributes("Tabs",s)
end
-- here we can flush and free elements that are finished
@@ -257,10 +255,9 @@ local function makeelement(fulltag,parent)
AF = af,
}
local s = pdfreference(pdfflushobject(d))
- if id and names then
- local size = #names
- names[size+1] = id
- names[size+2] = s
+ if id then
+ names[#names+1] = id
+ names[#names+1] = s
end
local kids = parent.kids
kids[#kids+1] = s
@@ -317,35 +314,27 @@ end
-- no need to adapt head, as we always operate on lists
local EMCliteral = nil
-local visualize = nil
function nodeinjections.addtags(head)
if not EMCliteral then
- EMCliteral = register(pageliteral("EMC"))
+ EMCliteral = register(pdfpageliteral("EMC"))
end
local last = nil
local ranges = { }
local range = nil
-
- if not root then
- structure_kids = pdfarray()
- structure_ref = pdfreserveobject()
- parent_ref = pdfreserveobject()
- root = { pref = pdfreference(structure_ref), kids = structure_kids }
- names = pdfarray()
- end
+ local head = tonut(head)
local function collectranges(head,list)
- for n, id in nextnode, head do
+ for n in traverse_nodes(head) do
+ local id = getid(n)
if id == glyph_code then
-- maybe also disc
- local at = getattr(n,a_tagged) or false -- false: pagebody or so, so artifact
- -- if not at then
- -- range = nil
- -- elseif ...
- if last ~= at then
+ local at = getattr(n,a_tagged)
+ if not at then
+ range = nil
+ elseif last ~= at then
range = { at, "glyph", n, n, list } -- attr id start stop list
ranges[#ranges+1] = range
last = at
@@ -355,12 +344,12 @@ function nodeinjections.addtags(head)
elseif id == hlist_code or id == vlist_code then
local at = getattr(n,a_image)
if at then
- local at = getattr(n,a_tagged) or false -- false: pagebody or so, so artifact
- -- if not at then
- -- range = nil
- -- else
+ local at = getattr(n,a_tagged)
+ if not at then
+ range = nil
+ else
ranges[#ranges+1] = { at, "image", n, n, list } -- attr id start stop list
- -- end
+ end
last = nil
else
collectranges(getlist(n),n)
@@ -390,117 +379,89 @@ function nodeinjections.addtags(head)
local top = nil
local noftop = 0
-
- local function inject(start,stop,list,literal,left,right)
- local prev = getprev(start)
- if prev then
- setlink(prev,literal)
- end
- if left then
- setlink(literal,left,start)
- else
- setlink(literal,start)
- end
- if list and getlist(list) == start then
- setlist(list,literal)
- end
- local literal = copy_node(EMCliteral)
- -- use insert instead:
- local next = getnext(stop)
- if next then
- setlink(literal,next)
- end
- if right then
- setlink(stop,right,literal)
- else
- setlink(stop,literal)
- end
- end
-
for i=1,#ranges do
-
- local range = ranges[i]
- local attr = range[1]
- local id = range[2]
- local start = range[3]
- local stop = range[4]
- local list = range[5]
-
- if attr then
-
- local specification = taglist[attr]
- local taglist = specification.taglist
- local noftags = #taglist
- local common = 0
- local literal = nil
- local ignore = false
-
- if top then
- for i=1,noftags >= noftop and noftop or noftags do
- if top[i] == taglist[i] then
- common = i
- else
- break
- end
- end
- end
-
- local prev = common > 0 and elements[taglist[common]] or root
-
- for j=common+1,noftags do
- local tag = taglist[j]
- local prv = elements[tag] or makeelement(tag,prev)
- if prv == false then
- -- ignore this one
- prev = false
- ignore = true
- break
- elseif prv == true then
- -- skip this one
+ local range = ranges[i]
+ local attr = range[1]
+ local id = range[2]
+ local start = range[3]
+ local stop = range[4]
+ local list = range[5]
+ local specification = taglist[attr]
+ local taglist = specification.taglist
+ local noftags = #taglist
+ local common = 0
+ if top then
+ for i=1,noftags >= noftop and noftop or noftags do
+ if top[i] == taglist[i] then
+ common = i
else
- prev = prv
+ break
end
end
+ end
- if prev then
- literal = pageliteral(makecontent(prev,id,specification))
- elseif ignore then
- literal = pageliteral(makeignore(specification))
+ local prev = common > 0 and elements[taglist[common]] or root
+ local ignore = false
+ local literal = nil
+
+ for j=common+1,noftags do
+ local tag = taglist[j]
+ local prv = elements[tag] or makeelement(tag,prev)
+ if prv == false then
+ -- ignore this one
+ prev = false
+ ignore = true
+ break
+ elseif prv == true then
+ -- skip this one
else
- -- maybe also ignore or maybe better: comment or so
+ prev = prv
end
+ end
+ if prev then
+ literal = pdfpageliteral(makecontent(prev,id,specification))
+ elseif ignore then
+ literal = pdfpageliteral(makeignore(specification))
+ end
- if literal then
- local left,right
- if trace_info then
- local name = specification.tagname
- if name then
- if not visualize then
- visualize = nodes.visualizers.register("tags")
- end
- left = visualize(name)
- right = visualize()
- end
- end
- inject(start,stop,list,literal,left,right)
+ if literal then
+ local prev = getprev(start)
+ if prev then
+ setlink(prev,literal)
end
-
- top = taglist
- noftop = noftags
-
- else
-
- local literal = pageliteral(makeignore(specification))
-
- inject(start,stop,list,literal)
-
+ setlink(literal,start)
+ if list and getlist(list) == start then
+ setlist(list,literal)
+ end
+ local literal = copy_node(EMCliteral)
+ -- use insert instead:
+ local next = getnext(stop)
+ if next then
+ setlink(literal,next)
+ end
+ setlink(stop,literal)
end
+-- if literal then
+-- if list and getlist(list) == start then
+-- setlink(literal,start)
+-- setlist(list,literal)
+-- else
+-- setlink(getprev(start),literal,start)
+-- end
+-- -- use insert instead:
+-- local literal = copy_node(EMCliteral)
+-- setlink(stop,literal,getnext(stop))
+-- end
+
+ top = taglist
+ noftop = noftags
end
finishpage()
- return head
+ head = tonode(head)
+ return head, true
end
@@ -511,7 +472,8 @@ end
-- local last, ranges, range = nil, { }, nil
--
-- local function collectranges(head,list)
--- for n, id in nextnode, head do
+-- for n in traverse_nodes(head) do
+-- local id = getid(n) -- 14: image, 8: literal (mp)
-- if id == glyph_code then
-- local at = getattr(n,a_tagged)
-- if not at then
@@ -543,6 +505,7 @@ end
--
-- initializepage()
--
+-- head = tonut(head)
-- collectranges(head)
--
-- if trace_tags then
@@ -614,9 +577,9 @@ end
-- end
--
-- if r > 0 then
--- local literal = pageliteral(concat(result,"\n"))
+-- local literal = pdfpageliteral(concat(result,"\n"))
-- -- use insert instead:
--- local literal = pageliteral(result)
+-- local literal = pdfpageliteral(result)
-- local prev = getprev(start)
-- if prev then
-- setlink(prev,literal)
@@ -638,7 +601,7 @@ end
-- for i=1,noftop do
-- result[i] = "EMC"
-- end
--- local literal = pageliteral(concat(result,"\n"))
+-- local literal = pdfpageliteral(concat(result,"\n"))
-- -- use insert instead:
-- local next = getnext(last)
-- if next then
@@ -649,7 +612,8 @@ end
--
-- finishpage()
--
--- return head
+-- head = tonode(head)
+-- return head, true
--
-- end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lpdf-u3d.lua b/Master/texmf-dist/tex/context/base/mkiv/lpdf-u3d.lua
index f6897e92d20..dfd4c1b0686 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lpdf-u3d.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lpdf-u3d.lua
@@ -27,6 +27,7 @@ local nodeinjections = backends.pdf.nodeinjections
local pdfconstant = lpdf.constant
local pdfboolean = lpdf.boolean
+local pdfnumber = lpdf.number
local pdfunicode = lpdf.unicode
local pdfdictionary = lpdf.dictionary
local pdfarray = lpdf.array
@@ -38,8 +39,6 @@ local pdfflushstreamfileobject = lpdf.flushstreamfileobject
local checkedkey = lpdf.checkedkey
local limited = lpdf.limited
-local embedimage = images.embed
-
local schemes = table.tohash {
"Artwork", "None", "White", "Day", "Night", "Hard",
"Primary", "Blue", "Red", "Cube", "CAD", "Headlamp",
@@ -348,12 +347,6 @@ end
local stored_js, stored_3d, stored_pr, streams = { }, { }, { }, { }
-local f_image = formatters["q /GS gs %.6F 0 0 %.6F 0 0 cm /IM Do Q"]
-
-directives.register("pdf.stripzeros",function()
- f_image = formatters["q /GS gs %.6N 0 0 %.6N 0 0 cm /IM Do Q"]
-end)
-
local function insert3d(spec) -- width, height, factor, display, controls, label, foundname
local width, height, factor = spec.width, spec.height, spec.factor or number.dimenfactors.bp
@@ -438,7 +431,7 @@ local function insert3d(spec) -- width, height, factor, display, controls, label
local tag = formatters["%s:%s:%s"](label,stream,preview)
local ref = stored_pr[tag]
if not ref then
- local figure = embedimage {
+ local figure = img.immediatewrite {
filename = preview,
width = width,
height = height
@@ -447,13 +440,13 @@ local function insert3d(spec) -- width, height, factor, display, controls, label
stored_pr[tag] = ref
end
if ref then -- see back-pdf ** .. here we have a local /IM !
+ local zero, one = pdfnumber(0), pdfnumber(1) -- not really needed
local pw = pdfdictionary {
Type = pdfconstant("XObject"),
Subtype = pdfconstant("Form"),
- FormType = 1,
- BBox = pdfarray { 0, 0, pdfnumber(factor*width), pdfnumber(factor*height) },
- Matrix = pdfarray { 1, 0, 0, 1, 0, 0 },
- ProcSet = lpdf.procset(),
+ FormType = one,
+ BBox = pdfarray { zero, zero, pdfnumber(factor*width), pdfnumber(factor*height) },
+ Matrix = pdfarray { one, zero, zero, one, zero, zero },
Resources = pdfdictionary {
XObject = pdfdictionary {
IM = pdfreference(ref)
@@ -462,12 +455,13 @@ local function insert3d(spec) -- width, height, factor, display, controls, label
ExtGState = pdfdictionary {
GS = pdfdictionary {
Type = pdfconstant("ExtGState"),
- CA = 1,
- ca = 1,
+ CA = one,
+ ca = one,
}
},
+ ProcSet = pdfarray { pdfconstant("PDF"), pdfconstant("ImageC") },
}
- local pwd = pdfflushstreamobject(f_image(factor*width,factor*height),pw)
+ local pwd = pdfflushstreamobject(formatters["q /GS gs %.6F 0 0 %.6F 0 0 cm /IM Do Q"](factor*width,factor*height),pw)
annot.AP = pdfdictionary {
N = pdfreference(pwd)
}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lpdf-wid.lua b/Master/texmf-dist/tex/context/base/mkiv/lpdf-wid.lua
index a929ed2ceb9..03febbf01e2 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lpdf-wid.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lpdf-wid.lua
@@ -11,11 +11,11 @@ if not modules then modules = { } end modules ['lpdf-wid'] = {
-- had renditions but they turned out to be unreliable from the start and look
-- obsolete too or at least they are bound to the (obsolete) flash technology for
-- rendering. They were already complex constructs. Now we have rich media which
--- instead of providing a robust future proof framework for general media types
+-- instead of providing a robust future proof framework fo rgeneral media types
-- again seems to depend on viewers built in (yes, also kind of obsolete) flash
-- technology, and we cannot expect this non-open technology to show up in open
-- browsers. So, in the end we can best just use links to external resources to be
--- future proof. Just look at the viewer preferences pane to see how fragile support
+-- future proof. Just look at the viewer prferences pane to see how fragile support
-- is. Interestingly u3d support is kind of built in, while e.g. mp4 support relies
-- on wrapping in swf. We used to stay ahead of the pack with support of the fancy
-- pdf features but it backfires and is not worth the trouble. And yes, for control
@@ -29,7 +29,7 @@ local gmatch, gsub, find, lower = string.gmatch, string.gsub, string.find, strin
local stripstring = string.strip
local settings_to_array = utilities.parsers.settings_to_array
local settings_to_hash = utilities.parsers.settings_to_hash
-local sortedhash, sortedkeys = table.sortedhash, table.sortedkeys
+local sortedhash = table.sortedhash
local report_media = logs.reporter("backend","media")
local report_attachment = logs.reporter("backend","attachment")
@@ -141,10 +141,6 @@ local attachment_symbols = {
attachment_symbols.PushPin = attachment_symbols.Pushpin
attachment_symbols.Default = attachment_symbols.Pushpin
-function lpdf.attachmentsymbols()
- return sortedkeys(comment_symbols)
-end
-
local comment_symbols = {
Comment = pdfconstant("Comment"),
Help = pdfconstant("Help"),
@@ -158,10 +154,6 @@ local comment_symbols = {
comment_symbols.NewParagraph = Newparagraph
comment_symbols.Default = Note
-function lpdf.commentsymbols()
- return sortedkeys(comment_symbols)
-end
-
local function analyzesymbol(symbol,collection)
if not symbol or symbol == "" then
return collection and collection.Default, nil
@@ -247,12 +239,10 @@ local function flushembeddedfiles()
e[#e+1] = pdfstring(tag)
e[#e+1] = reference -- already a reference
else
- -- -- messy spec ... when annot not in named else twice in menu list acrobat
+ -- messy spec ... when annot not in named else twice in menu list acrobat
end
end
- if #e > 0 then
- lpdf.addtonames("EmbeddedFiles",pdfreference(pdfflushobject(pdfdictionary{ Names = e })))
- end
+ lpdf.addtonames("EmbeddedFiles",pdfreference(pdfflushobject(pdfdictionary{ Names = e })))
end
end
@@ -267,13 +257,9 @@ function codeinjections.embedfile(specification)
local keepdir = specification.keepdir -- can change
local usedname = specification.usedname
local filetype = specification.filetype
- local compress = specification.compress
if filename == "" then
filename = nil
end
- if compress == nil then
- compress = true
- end
if data then
local r = filestreams[hash]
if r == false then
@@ -328,7 +314,7 @@ function codeinjections.embedfile(specification)
specification.data = true -- signal that still data but already flushed
else
local foundname = specification.foundname or filename
- f = pdfflushstreamfileobject(foundname,a,compress)
+ f = pdfflushstreamfileobject(foundname,a)
end
local d = pdfdictionary {
Type = pdfconstant("Filespec"),
@@ -431,8 +417,7 @@ function codeinjections.attachmentid(filename) -- not used in context
return filestreams[filename]
end
-local nofcomments = 0
-local usepopupcomments = false
+local nofcomments, usepopupcomments = 0, false
local defaultattributes = {
["xmlns"] = "http://www.w3.org/1999/xhtml",
@@ -627,8 +612,7 @@ local function insertrendering(specification)
local option = settings_to_hash(specification.option)
if not mf[label] then
local filename = specification.filename
- local isurl = find(filename,"://",1,true)
- local mimetype = specification.mimetype or specification.mime
+ local isurl = find(filename,"://",1,true)
-- local start = pdfdictionary {
-- Type = pdfconstant("MediaOffset"),
-- S = pdfconstant("T"), -- time
@@ -664,17 +648,13 @@ local function insertrendering(specification)
if isurl then
descriptor.FS = pdfconstant("URL")
elseif option[v_embed] then
- descriptor.EF = codeinjections.embedfile {
- file = filename,
- mimetype = mimetype, -- yes or no
- compress = false,
- }
+ descriptor.EF = codeinjections.embedfile { file = filename }
end
local clip = pdfdictionary {
Type = pdfconstant("MediaClip"),
S = pdfconstant("MCD"),
N = label,
- CT = mimetype,
+ CT = specification.mime,
Alt = pdfarray { "", "file not found" }, -- language id + message
D = pdfreference(pdfflushobject(descriptor)),
-- P = pdfreference(pdfflushobject(parameters)),
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lpdf-xmp.lua b/Master/texmf-dist/tex/context/base/mkiv/lpdf-xmp.lua
index 508bb19976d..eb15a358287 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lpdf-xmp.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lpdf-xmp.lua
@@ -11,7 +11,6 @@ local tostring, type = tostring, type
local format, gsub = string.format, string.gsub
local utfchar = utf.char
local xmlfillin = xml.fillin
-local md5HEX = md5.HEX
local trace_xmp = false trackers.register("backend.xmp", function(v) trace_xmp = v end)
local trace_info = false trackers.register("backend.info", function(v) trace_info = v end)
@@ -34,7 +33,7 @@ local pdfgetmetadata = lpdf.getmetadata
-- XMP-Toolkit-SDK-CC201607.zip. So we hardcode the id.
local xpacket = format ( [[
-<?xpacket begin="%s" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<?xpacket begin="ïŧŋ%s" id="W5M0MpCehiHzreSzNTczkc9d"?>
%%s
@@ -47,8 +46,7 @@ local mapping = {
["ConTeXt.Url"] = { "context", "rdf:Description/pdfx:ConTeXt.Url" },
["ConTeXt.Support"] = { "context", "rdf:Description/pdfx:ConTeXt.Support" },
["ConTeXt.Version"] = { "context", "rdf:Description/pdfx:ConTeXt.Version" },
- ["ConTeXt.LMTX"] = { "context", "rdf:Description/pdfx:ConTeXt.LMTX" },
- ["TeX.Support"] = { "metadata","rdf:Description/pdfx:TeX.Support" },
+ ["TeX.Support"] = { "metadata", "rdf:Description/pdfx:TeX.Support" },
["LuaTeX.Version"] = { "metadata","rdf:Description/pdfx:LuaTeX.Version" },
["LuaTeX.Functionality"] = { "metadata","rdf:Description/pdfx:LuaTeX.Functionality" },
["LuaTeX.LuaVersion"] = { "metadata","rdf:Description/pdfx:LuaTeX.LuaVersion" },
@@ -91,7 +89,7 @@ local mapping = {
["CaptionWriter"] = { "metadata", "rdf:Description/photoshop:CaptionWriter" },
}
-lpdf.setsuppressoptionalinfo (
+pdf.setsuppressoptionalinfo(
0 --
+ 1 -- pdfnofullbanner
+ 2 -- pdfnofilename
@@ -106,62 +104,59 @@ lpdf.setsuppressoptionalinfo (
)
local included = backends.included
-local lpdfid = lpdf.id
+
+local pdfsettrailerid = pdf.settrailerid
+
+local lpdfid = lpdf.id
function lpdf.id() -- overload of ini
return lpdfid(included.date)
end
-local settrailerid = lpdf.settrailerid -- this is the wrapped one
-
-local trailerid = nil
-local dates = nil
+pdf.disablecommand("settrailerid")
-local function update()
- if trailer_id then
- local b = toboolean(trailer_id) or trailer_id == ""
+function lpdf.settrailerid(v)
+ if v then
+ local b = toboolean(v) or v == ""
if b then
- trailer_id = "This file is processed by ConTeXt and LuaTeX."
+ v = "This file is processed by ConTeXt and LuaTeX."
else
- trailer_id = tostring(trailer_id)
+ v = tostring(v)
end
- local h = md5HEX(trailer_id)
+ local h = md5.HEX(v)
if b then
report_info("using frozen trailer id")
else
- report_info("using hashed trailer id %a (%a)",trailer_id,h)
+ report_info("using hashed trailer id %a (%a)",v,h)
end
- settrailerid(format("[<%s> <%s>]",h,h))
+ pdfsettrailerid(format("[<%s> <%s>]",h,h))
end
- --
- local t = type(dates)
+end
+
+function lpdf.setdates(v)
+ local t = type(v)
if t == "number" or t == "string" then
- local d = converters.totime(dates)
- if d then
+ t = converters.totime(v)
+ if t then
included.date = true
included.id = "fake"
- report_info("forced date/time information %a will be used",lpdf.settime(d))
- settrailerid(false)
+ report_info("forced date/time information %a will be used",lpdf.settime(t))
+ lpdf.settrailerid(false)
return
end
- if t == "string" then
- dates = toboolean(dates)
- included.date = dates
- if dates ~= false then
- included.id = true
- else
- report_info("no date/time but fake id information will be added")
- settrailerid(true)
- included.id = "fake"
- end
- end
+ end
+ v = toboolean(v)
+ included.date = v
+ if v then
+ included.id = true
+ else
+ report_info("no date/time but fake id information will be added")
+ lpdf.settrailerid(true)
+ included.id = "fake"
+ -- maybe: lpdf.settime(231631200) -- 1975-05-05 % first entry of knuth about tex mentioned in DT
end
end
-function lpdf.settrailerid(v) trailerid = v end
-function lpdf.setdates (v) dates = v end
-
-lpdf.registerdocumentfinalizer(update,"trailer id and dates",1)
directives.register("backend.trailerid", lpdf.settrailerid)
directives.register("backend.date", lpdf.setdates)
@@ -318,7 +313,7 @@ local function flushxmpinfo()
commands.poprandomseed() -- hack
end
--- this will be enabled when we can inhibit compression for a stream at the lua end
+-- his will be enabled when we can inhibit compression for a stream at the lua end
lpdf.registerdocumentfinalizer(flushxmpinfo,1,"metadata")
diff --git a/Master/texmf-dist/tex/context/base/mkiv/luat-bas.mkiv b/Master/texmf-dist/tex/context/base/mkiv/luat-bas.mkiv
index 0add4ce6926..b1af4da3ee9 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/luat-bas.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/luat-bas.mkiv
@@ -13,7 +13,6 @@
\writestatus{loading}{ConTeXt Lua Macros / Basic Lua Libraries}
-\registerctxluafile{l-bit32} {} % before sandbox
\registerctxluafile{l-lua} {} % before sandbox
\registerctxluafile{l-macro} {}
\registerctxluafile{l-sandbox} {}
@@ -31,7 +30,6 @@
\registerctxluafile{l-file} {}
\registerctxluafile{l-gzip} {}
\registerctxluafile{l-md5} {}
-\registerctxluafile{l-sha} {}
\registerctxluafile{l-dir} {}
\registerctxluafile{l-unicode} {optimize}
%registerctxluafile{l-utils} {}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/luat-cbk.lua b/Master/texmf-dist/tex/context/base/mkiv/luat-cbk.lua
index d3184e1af77..6fcfdc7f2ee 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/luat-cbk.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/luat-cbk.lua
@@ -121,12 +121,6 @@ if trace_calls then
end
--- temporary, not public:
-
-callbacks.functions = { }
-
--- till here
-
local reported = { }
local function register_usercall(what,name,func)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/luat-cnf.lua b/Master/texmf-dist/tex/context/base/mkiv/luat-cnf.lua
index 0670d168418..b6ee15083da 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/luat-cnf.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/luat-cnf.lua
@@ -154,8 +154,6 @@ function texconfig.init()
end
-CONTEXTLMTXMODE = %s
-
-- we provide a qualified path
callback.register('find_format_file',function(name)
@@ -214,7 +212,7 @@ local function makestub()
t[#t+1] = format("texconfig.%s=%s",v,tv)
end
end
- io.savedata(name,format("%s\n\n%s",concat(t,"\n"),format(stub,firsttable,tostring(CONTEXTLMTXMODE) or 0)))
+ io.savedata(name,format("%s\n\n%s",concat(t,"\n"),format(stub,firsttable)))
logs.newline()
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/luat-cod.lua b/Master/texmf-dist/tex/context/base/mkiv/luat-cod.lua
index dcb16c0dd72..91bb7c2e168 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/luat-cod.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/luat-cod.lua
@@ -11,10 +11,6 @@ local match, gsub, find, format, gmatch = string.match, string.gsub, string.find
local texconfig, lua = texconfig, lua
--- maybe pick up from commandline:
---
--- texconfig.interaction: 0=batchmode 1=nonstopmode 2=scrollmode 3=errornonstopmode 4=normal
-
-- some basic housekeeping
texconfig.kpse_init = false
@@ -42,7 +38,7 @@ lua.bytedata = bytedata
lua.bytedone = bytedone
local setbytecode = lua.setbytecode
------ getbytecode = lua.getbytecode
+local getbytecode = lua.getbytecode
lua.firstbytecode = 501
lua.lastbytecode = lua.lastbytecode or (lua.firstbytecode - 1) -- as we load ourselves again ... maybe return earlier
@@ -53,13 +49,9 @@ end
-- no file.* and utilities.parsers.* functions yet
-local strip = false if arg then for i=-1,#arg do if arg[i] == "--c:strip" then strip = true break end end end
-
function lua.registercode(filename,options)
local barename = gsub(filename,"%.[%a%d]+$","")
- if barename == filename then
- filename = filename .. ".lua"
- end
+ if barename == filename then filename = filename .. ".lua" end
local basename = match(barename,"^.+[/\\](.-)$") or barename
if not bytedone[basename] then
local opts = { }
@@ -74,11 +66,7 @@ function lua.registercode(filename,options)
if environment.initex then
local n = lua.lastbytecode + 1
bytedata[n] = { name = barename, options = opts }
- if strip or opts.strip then
- setbytecode(n,code,true)
- else
- setbytecode(n,code)
- end
+ setbytecode(n,code)
lua.lastbytecode = n
end
elseif environment.initex then
@@ -141,18 +129,6 @@ if LUATEXVERION == nil then
+ (tonumber(LUATEXVERSION) or (string.byte(LUATEXVERSION)-string.byte("a")+10))/1000
end
-if CONTEXTLMTXMODE == nil then
- if status.obj_ptr == nil then
- CONTEXTLMTXMODE = 2
- else
- CONTEXTLMTXMODE = 0
- for i=1,#arg do if arg[i] == "--c:lmtx" then
- CONTEXTLMTXMODE, pdf, img = 1, nil, nil
- break
- end end
- end
-end
-
if LUATEXFUNCTIONALITY == nil then
LUATEXFUNCTIONALITY = status.development_id or 6346
end
@@ -167,7 +143,7 @@ end
environment.luatexengine = LUATEXENGINE
environment.luatexversion = LUATEXVERSION
-environment.luatexfunctionality = LUATEXFUNCTIONALITY
+environment.luatexfuncitonality = LUATEXFUNCTIONALITY
environment.jitsupported = JITSUPPORTED
environment.initex = INITEXMODE
environment.initexmode = INITEXMODE
@@ -175,14 +151,12 @@ environment.initexmode = INITEXMODE
if not environment.luafilechunk then
function environment.luafilechunk(filename)
- local fullname = filename
if sourcepath ~= "" then
- fullname = sourcepath .. "/" .. filename
+ filename = sourcepath .. "/" .. filename
end
- local data = loadfile(fullname)
- texio.write("term and log","<",data and "+ " or "- ",fullname,">")
+ local data = loadfile(filename)
+ texio.write("term and log","<",data and "+ " or "- ",filename,">")
if data then
--- package.loaded[gsub(filename,"%..-$"] =
data()
end
return data
@@ -213,21 +187,6 @@ end
-- a kpse error when disabled. This is an engine issue that will
-- be sorted out in due time.
-if not lfs.isfile then
-
- local attributes = lfs.attributes
-
- function lfs.isdir(name)
- return attributes(name,"mode") == "directory"
- end
-
- function lfs.isfile(name)
- local a = attributes(name,"mode")
- return a == "file" or a == "link" or nil
- end
-
-end
-
local isfile = lfs.isfile
local function source_file(name)
@@ -270,15 +229,6 @@ local function open_read_file(name)
}
end
-local function find_data_file(name)
- return source_file(name)
-end
-
-local open_data_file = open_read_file
-
callback.register('find_read_file' , find_read_file )
callback.register('open_read_file' , open_read_file )
callback.register('find_write_file', find_write_file)
-
-callback.register('find_data_file' , find_data_file )
-callback.register('open_data_file' , open_data_file )
diff --git a/Master/texmf-dist/tex/context/base/mkiv/luat-env.lua b/Master/texmf-dist/tex/context/base/mkiv/luat-env.lua
index e0c69d2079b..5b46b403622 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/luat-env.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/luat-env.lua
@@ -11,8 +11,7 @@
-- sense. Much of this evolved before bytecode arrays were available and so a lot of
-- code has disappeared already.
-local rawset, rawget, loadfile = rawset, rawget, loadfile
-local gsub = string.gsub
+local rawset, rawget, loadfile, assert = rawset, rawget, loadfile, assert
local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end)
@@ -124,7 +123,7 @@ function environment.loadluafile(filename, version)
luaname = file.addsuffix(basename,luasuffixes.lua)
lucname = file.addsuffix(basename,luasuffixes.luc)
else
- luaname = filename -- forced suffix
+ luaname = basename -- forced suffix
lucname = nil
end
-- when not overloaded by explicit suffix we look for a luc file first
@@ -137,7 +136,7 @@ function environment.loadluafile(filename, version)
chunk = loadfile(fullname) -- this way we don't need a file exists check
end
if chunk then
- chunk()
+ assert(chunk)()
if version then
-- we check of the version number of this chunk matches
local v = version -- can be nil
@@ -169,24 +168,9 @@ function environment.loadluafile(filename, version)
report_lua("unknown file %a",filename)
end
else
- chunk()
+ assert(chunk)()
return true
end
end
return false
end
-
-environment.filenames = setmetatable( { }, {
- __index = function(t,k)
- local v = environment.files[k]
- if v then
- return (gsub(v,"%.+$",""))
- end
- end,
- __newindex = function(t,k)
- -- nothing
- end,
- __len = function(t)
- return #environment.files
- end,
-} )
diff --git a/Master/texmf-dist/tex/context/base/mkiv/luat-fio.lua b/Master/texmf-dist/tex/context/base/mkiv/luat-fio.lua
index 2996ae66ab0..806caefe621 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/luat-fio.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/luat-fio.lua
@@ -70,16 +70,12 @@ if not resolvers.initialized() then
return okay or ""
end
- resolvers.findpk = findpk
-
-- register('process_jobname' , function(name) return name end, true)
register('find_read_file' , function(id,name) return findtexfile(name) end, true)
register('open_read_file' , function( name) return opentexfile(name) end, true)
register('find_data_file' , function(name) return findbinfile(name,"tex") end, true)
- register('open_data_file' , function(name) return opentexfile(name) end, true)
-
register('find_enc_file' , function(name) return findbinfile(name,"enc") end, true)
register('find_font_file' , function(name) return findbinfile(name,"tfm") end, true)
-- register('find_format_file' , function(name) return findbinfile(name,"fmt") end, true)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/luat-fmt.lua b/Master/texmf-dist/tex/context/base/mkiv/luat-fmt.lua
index 1c9222d95d1..30c55eeccfd 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/luat-fmt.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/luat-fmt.lua
@@ -19,9 +19,9 @@ local function primaryflags()
if arguments.silent then
flags[#flags+1] = "--interaction=batchmode"
end
- -- if arguments.jit then
- -- flags[#flags+1] = "--jiton"
- -- end
+ if arguments.jit then
+ flags[#flags+1] = "--jiton"
+ end
return concat(flags," ")
end
@@ -48,16 +48,10 @@ local function secondaryflags()
if arguments.ansi then
flags[#flags+1] = "--c:ansi"
end
- if arguments.strip then
- flags[#flags+1] = "--c:strip"
- end
- if arguments.lmtx then
- flags[#flags+1] = "--c:lmtx"
- end
return concat(flags," ")
end
--- The silent option is for Taco. It's a bit of a hack because we cannot yet mess
+-- The silent option is Taco. It's a bit of a hack because we cannot yet mess
-- with directives. In fact, I could probably clean up the maker a bit by now.
local template = [[--ini %primaryflags% --lua=%luafile% %texfile% %secondaryflags% %dump% %redirect%]]
diff --git a/Master/texmf-dist/tex/context/base/mkiv/luat-ini.lua b/Master/texmf-dist/tex/context/base/mkiv/luat-ini.lua
index ffd402c7752..de725492200 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/luat-ini.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/luat-ini.lua
@@ -25,19 +25,15 @@ if not global then
global = _G
end
-LUATEXVERSION = status.luatex_version/100
- + tonumber(status.luatex_revision)/1000
+LUATEXVERSION = status.luatex_version/100
+ + tonumber(status.luatex_revision)/1000
-LUATEXENGINE = status.luatex_engine and string.lower(status.luatex_engine)
- or (string.find(status.banner,"LuajitTeX",1,true) and "luajittex" or "luatex")
+LUATEXENGINE = status.luatex_engine and string.lower(status.luatex_engine)
+ or (string.find(status.banner,"LuajitTeX",1,true) and "luajittex" or "luatex")
-LUATEXFUNCTIONALITY = status.development_id or 6346
+JITSUPPORTED = LUATEXENGINE == "luajittex" or jit
-JITSUPPORTED = LUATEXENGINE == "luajittex" or jit
-
-INITEXMODE = status.ini_version
-
-CONTEXTLMTXMODE = CONTEXTLMTXMODE or (status.obj_ptr == nil and 2 or 1)
+INITEXMODE = status.ini_version
function os.setlocale()
-- no need for a message
diff --git a/Master/texmf-dist/tex/context/base/mkiv/luat-ini.mkiv b/Master/texmf-dist/tex/context/base/mkiv/luat-ini.mkiv
index da5a3a3109f..872d27e7726 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/luat-ini.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/luat-ini.mkiv
@@ -265,84 +265,55 @@
% \def\syst_helpers_checked_stripped_csname#1%
% {\if\noexpand#1\letterbackslash\else#1\fi}
-\ifdefined\normalluadef
-
- \normalprotected\def\installctxfunction#1#2% expandable
- {\edef\m_syst_name{\csstring#1}%
- \global\expandafter\normalluadef\csname\m_syst_name\endcsname\ctxcommand{ctxfunction("#2",true)}\relax}
-
- \normalprotected\def\installctxscanner#1#2% expandable
- {\edef\m_syst_name{\csstring#1}%
- \global\expandafter\normalluadef\csname\m_syst_name\endcsname\ctxcommand{ctxscanner("\m_syst_name","#2",true)}\relax}
-
- \normalprotected\def\installprotectedctxfunction#1#2% protected
- {\edef\m_syst_name{\csstring#1}%
- \global\normalprotected\expandafter\normalluadef\csname\m_syst_name\endcsname\ctxcommand{ctxfunction("#2",true)}\relax}
-
- \normalprotected\def\installprotectedctxscanner#1#2% protected
- {\edef\m_syst_name{\csstring#1}%
- \global\normalprotected\expandafter\normalluadef\csname\m_syst_name\endcsname\ctxcommand{ctxscanner("\m_syst_name","#2",true)}\relax}
-
- \normalprotected\def\resetctxscanner#1%
- {\edef\m_syst_name{\csstring#1}%
- \expandafter\glet\csname\m_syst_name\endcsname\relax}
-
- % \let\installctxfunctioncall \installctxfunction
- % \let\installctxscannercall \installctxscanner
- % \let\installprotectedctxfunctioncall\installprotectedctxfunction
- % \let\installprotectedctxscannercall \installprotectedctxscanner
-
-\else
-
- \ifdefined\luafunctioncall \else
- \normalprotected\def\luafunctioncall{\luafunction}
- \fi
-
- \normalprotected\def\installctxfunction#1#2% expandable
- {\edef\m_syst_name{\csstring#1}%
- \global\expandafter\chardef\csname\??luafunction\m_syst_name\endcsname\ctxcommand{ctxfunction("#2",true)}\relax
- \expandafter\xdef\csname\m_syst_name\endcsname{\noexpand\luafunction\csname\??luafunction\m_syst_name\endcsname}}
-
- \normalprotected\def\installctxscanner#1#2% expandable
- {\edef\m_syst_name{\csstring#1}%
- \global\expandafter\chardef\csname\??luafunction\m_syst_name\endcsname\ctxcommand{ctxscanner("\m_syst_name","#2",true)}\relax
- \expandafter\xdef\csname\m_syst_name\endcsname{\noexpand\luafunction\csname\??luafunction\m_syst_name\endcsname}}
-
- \normalprotected\def\installprotectedctxfunction#1#2% protected
- {\edef\m_syst_name{\csstring#1}%
- \global\expandafter\chardef\csname\??luafunction\m_syst_name\endcsname\ctxcommand{ctxfunction("#2",true)}\relax
- \expandafter\xdef\csname\m_syst_name\endcsname{\noexpand\luafunctioncall\csname\??luafunction\m_syst_name\endcsname}}
-
- \normalprotected\def\installprotectedctxscanner#1#2% protected
- {\edef\m_syst_name{\csstring#1}%
- \global\expandafter\chardef\csname\??luafunction\m_syst_name\endcsname\ctxcommand{ctxscanner("\m_syst_name","#2",true)}\relax
- \expandafter\xdef\csname\m_syst_name\endcsname{\noexpand\luafunctioncall\csname\??luafunction\m_syst_name\endcsname}}
-
- \normalprotected\def\resetctxscanner#1%
- {\edef\m_syst_name{\csstring#1}%
- \global\expandafter\chardef\csname\??luafunction\m_syst_name\endcsname\zerocount
- \expandafter\glet\csname\m_syst_name\endcsname\relax}
-
- % \normalprotected\def\installctxfunctioncall#1#2%
- % {\edef\m_syst_name{\csstring#1}%
- % \global\expandafter\chardef\csname\??luafunction\m_syst_name\endcsname\ctxcommand{ctxfunction("#2",true)}\relax
- % \expandafter\xdef\csname\m_syst_name\endcsname{\luafunctioncall\csname\??luafunction\m_syst_name\endcsname}}
- %
- % \normalprotected\def\installctxscannercall#1#2%
- % {\edef\m_syst_name{\csstring#1}%
- % \global\expandafter\chardef\csname\??luafunction\m_syst_name\endcsname\ctxcommand{ctxscanner("\m_syst_name","#2",true)}\relax
- % \expandafter\xdef\csname\m_syst_name\endcsname{\luafunctioncall\csname\??luafunction\m_syst_name\endcsname}}
- %
- % \normalprotected\def\installprotectedctxfunctioncall#1#2%
- % {\edef\m_syst_name{\csstring#1}%
- % \global\expandafter\chardef\csname\??luafunction\m_syst_name\endcsname\ctxcommand{ctxfunction("#2",true)}\relax
- % \normalprotected\expandafter\xdef\csname\m_syst_name\endcsname{\luafunctioncall\csname\??luafunction\m_syst_name\endcsname}}
- %
- % \normalprotected\def\installprotectedctxscannercall#1#2%
- % {\edef\m_syst_name{\csstring#1}%
- % \global\expandafter\chardef\csname\??luafunction\m_syst_name\endcsname\ctxcommand{ctxscanner("\m_syst_name","#2",true)}\relax
- % \normalprotected\expandafter\xdef\csname\m_syst_name\endcsname{\luafunctioncall\csname\??luafunction\m_syst_name\endcsname}}
-
+\normalprotected\def\installctxfunction#1#2% expandable
+ {\edef\m_syst_name{\csstring#1}%
+ \global\expandafter\chardef\csname\??luafunction\m_syst_name\endcsname\ctxcommand{ctxfunction("#2",true)}\relax
+ \expandafter\xdef\csname\m_syst_name\endcsname{\noexpand\luafunction\csname\??luafunction\m_syst_name\endcsname}}
+
+\normalprotected\def\installctxscanner#1#2% expandable
+ {\edef\m_syst_name{\csstring#1}%
+ \global\expandafter\chardef\csname\??luafunction\m_syst_name\endcsname\ctxcommand{ctxscanner("\m_syst_name","#2",true)}\relax
+ \expandafter\xdef\csname\m_syst_name\endcsname{\noexpand\luafunction\csname\??luafunction\m_syst_name\endcsname}}
+
+\normalprotected\def\installprotectedctxfunction#1#2% protected
+ {\edef\m_syst_name{\csstring#1}%
+ \global\expandafter\chardef\csname\??luafunction\m_syst_name\endcsname\ctxcommand{ctxfunction("#2",true)}\relax
+ \expandafter\xdef\csname\m_syst_name\endcsname{\noexpand\luafunction\csname\??luafunction\m_syst_name\endcsname}}
+
+\normalprotected\def\installprotectedctxscanner#1#2% protected
+ {\edef\m_syst_name{\csstring#1}%
+ \global\expandafter\chardef\csname\??luafunction\m_syst_name\endcsname\ctxcommand{ctxscanner("\m_syst_name","#2",true)}\relax
+ \expandafter\xdef\csname\m_syst_name\endcsname{\noexpand\luafunction\csname\??luafunction\m_syst_name\endcsname}}
+
+% not yet used
+
+\ifdefined\luafunctioncall \else
+ \protected\def\luafunctioncall{\luafunctioncall}
\fi
+\normalprotected\def\installctxfunctioncall#1#2%
+ {\edef\m_syst_name{\csstring#1}%
+ \global\expandafter\chardef\csname\??luafunction\m_syst_name\endcsname\ctxcommand{ctxfunction("#2",true)}\relax
+ \expandafter\xdef\csname\m_syst_name\endcsname{\luafunctioncall\csname\??luafunction\m_syst_name\endcsname}}
+
+\normalprotected\def\installctxscannercall#1#2%
+ {\edef\m_syst_name{\csstring#1}%
+ \global\expandafter\chardef\csname\??luafunction\m_syst_name\endcsname\ctxcommand{ctxscanner("\m_syst_name","#2",true)}\relax
+ \expandafter\xdef\csname\m_syst_name\endcsname{\luafunctioncall\csname\??luafunction\m_syst_name\endcsname}}
+
+\normalprotected\def\installprotectedctxfunctioncall#1#2%
+ {\edef\m_syst_name{\csstring#1}%
+ \global\expandafter\chardef\csname\??luafunction\m_syst_name\endcsname\ctxcommand{ctxfunction("#2",true)}\relax
+ \normalprotected\expandafter\xdef\csname\m_syst_name\endcsname{\luafunctioncall\csname\??luafunction\m_syst_name\endcsname}}
+
+\normalprotected\def\installprotectedctxscannercall#1#2%
+ {\edef\m_syst_name{\csstring#1}%
+ \global\expandafter\chardef\csname\??luafunction\m_syst_name\endcsname\ctxcommand{ctxscanner("\m_syst_name","#2",true)}\relax
+ \normalprotected\expandafter\xdef\csname\m_syst_name\endcsname{\luafunctioncall\csname\??luafunction\m_syst_name\endcsname}}
+
+\normalprotected\def\resetctxscanner#1%
+ {\edef\m_syst_name{\csstring#1}%
+ \global\expandafter\chardef\csname\??luafunction\m_syst_name\endcsname\zerocount
+ \global\expandafter\let\csname\m_syst_name\endcsname\relax}
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkiv/luat-lib.mkiv b/Master/texmf-dist/tex/context/base/mkiv/luat-lib.mkiv
index d5f6099ca79..0df31a4e54e 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/luat-lib.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/luat-lib.mkiv
@@ -19,7 +19,7 @@
\registerctxluafile{util-sac}{optimize}
\registerctxluafile{util-sto}{} % could also be done in trac-deb.mkiv
\registerctxluafile{util-pck}{}
-% \registerctxluafile{util-seq}{}
+\registerctxluafile{util-seq}{}
%registerctxluafile{util-mrg}{} % not needed in context itself, only mtxrun
%registerctxluafile{util-lua}{} % moved
\registerctxluafile{util-prs}{}
@@ -35,25 +35,11 @@
\registerctxluafile{util-deb}{} % could also be done in trac-deb.mkiv
\registerctxluafile{util-tpl}{} % needs tracker
-\registerctxluafile{util-seq}{}
\registerctxluafile{util-sta}{}
\registerctxluafile{util-sbx}{} % needs tracker and templates
-\registerctxluafile{util-soc-imp-reset} {}
-\registerctxluafile{util-soc-imp-socket} {}
-%registerctxluafile{util-soc-imp-copas} {}
-\registerctxluafile{util-soc-imp-ltn12} {}
-%registerctxluafile{util-soc-imp-mbox} {}
-\registerctxluafile{util-soc-imp-mime} {}
-\registerctxluafile{util-soc-imp-url} {}
-\registerctxluafile{util-soc-imp-headers}{}
-\registerctxluafile{util-soc-imp-http} {}
-\registerctxluafile{util-soc-imp-tp} {}
-%registerctxluafile{util-soc-imp-ftp} {}
-%registerctxluafile{util-soc-imp-smtp} {}
-
\registerctxluafile{data-ini}{}
\registerctxluafile{data-exp}{}
\registerctxluafile{data-env}{}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/luat-run.lua b/Master/texmf-dist/tex/context/base/mkiv/luat-run.lua
index 98f98177705..59fb0b9371a 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/luat-run.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/luat-run.lua
@@ -115,29 +115,6 @@ local function wrapup_synctex()
synctex.wrapup()
end
--- For Taco ...
-
-local sequencers = utilities.sequencers
-local appendgroup = sequencers.appendgroup
-local appendaction = sequencers.appendaction
-local wrapupactions = sequencers.new { }
-
-appendgroup(wrapupactions,"system")
-appendgroup(wrapupactions,"user")
-
-local function wrapup_run()
- local runner = wrapupactions.runner
- if runner then
- runner()
- end
-end
-
-function luatex.wrapup(action)
- appendaction(wrapupactions,"user",action)
-end
-
-appendaction(wrapupactions,"system",synctex.wrapup)
-
-- this can be done later
callbacks.register('start_run', start_run, "actions performed at the beginning of a run")
@@ -149,26 +126,20 @@ callbacks.register('stop_run', stop_run, "actions perf
callbacks.register('report_output_pages', report_output_pages, "actions performed when reporting pages")
callbacks.register('report_output_log', report_output_log, "actions performed when reporting log file")
----------.register('start_page_number', start_shipout_page, "actions performed at the beginning of a shipout")
----------.register('stop_page_number', stop_shipout_page, "actions performed at the end of a shipout")
-
-callbacks.register('start_page_number', function() end, "actions performed at the beginning of a shipout")
-callbacks.register('stop_page_number', function() end, "actions performed at the end of a shipout")
+callbacks.register('start_page_number', start_shipout_page, "actions performed at the beginning of a shipout")
+callbacks.register('stop_page_number', stop_shipout_page, "actions performed at the end of a shipout")
callbacks.register('process_input_buffer', false, "actions performed when reading data")
callbacks.register('process_output_buffer', false, "actions performed when writing data")
callbacks.register("pre_dump", pre_dump_actions, "lua related finalizers called before we dump the format") -- comes after \everydump
--- finish_synctex might go away (move to wrapup_run)
-
-callbacks.register("finish_synctex", wrapup_synctex, "rename temporary synctex file")
-callbacks.register('wrapup_run', wrapup_run, "actions performed after closing files")
-
--- temp hack for testing:
-
-callbacks.functions.start_page_number = start_shipout_page
-callbacks.functions.stop_page_number = stop_shipout_page
+if LUATEXFUNCTIONALITY and LUATEXFUNCTIONALITY > 6505 then
+ callbacks.register("finish_synctex", wrapup_synctex, "rename temporary synctex file")
+ callbacks.register('wrapup_run', false, "actions performed after closing files")
+else
+ callbacks.register("finish_synctex_callback", wrapup_synctex, "rename temporary synctex file")
+end
-- an example:
@@ -205,6 +176,14 @@ luatex.registerstopactions(luatex.cleanuptempfiles)
-- filenames
+local types = {
+ "data",
+ "font map",
+ "image",
+ "font subset",
+ "full font",
+}
+
local report_open = logs.reporter("open source")
local report_close = logs.reporter("close source")
local report_load = logs.reporter("load resource")
@@ -220,8 +199,15 @@ function luatex.currentfile()
return stack[#stack] or tex.jobname
end
-local function report_start(name)
- if find(name,"virtual://",1,true) then
+local function report_start(left,name)
+ if not left then
+ -- skip
+ elseif left ~= 1 then
+ if all then
+ -- report_load("%s > %s",types[left],name or "?")
+ report_load("type %a, name %a",types[left],name or "?")
+ end
+ elseif find(name,"virtual://",1,true) then
insert(stack,false)
else
insert(stack,name)
@@ -233,47 +219,16 @@ local function report_start(name)
end
end
-local function report_stop()
- local name = remove(stack)
- if name then
- -- report_close("%i > %i > %s",level,total,name or "?")
- report_close("level %i, order %i, name %a",level,total,name or "?")
- level = level - 1
- synctex.setfilename(stack[#stack] or tex.jobname)
- end
-end
-
-if CONTEXTLMTXMODE < 2 then
-
- local types = {
- "data",
- "font map",
- "image",
- "font subset",
- "full font",
- }
-
- local do_report_start = report_start
- local do_report_stop = report_stop
-
- report_start = function(left,name)
- if not left then
- -- skip
- elseif left ~= 1 then
- if all then
- report_load("type %a, name %a",types[left],name or "?")
- end
- else
- do_report_start(name)
- end
- end
-
- report_stop = function(right)
- if level == 1 or not right or right == 1 then
- do_report_stop()
+local function report_stop(right)
+ if level == 1 or not right or right == 1 then
+ local name = remove(stack)
+ if name then
+ -- report_close("%i > %i > %s",level,total,name or "?")
+ report_close("level %i, order %i, name %a",level,total,name or "?")
+ level = level - 1
+ synctex.setfilename(stack[#stack] or tex.jobname)
end
end
-
end
local function report_none()
diff --git a/Master/texmf-dist/tex/context/base/mkiv/luat-soc.lua b/Master/texmf-dist/tex/context/base/mkiv/luat-soc.lua
new file mode 100644
index 00000000000..9342a4b3375
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkiv/luat-soc.lua
@@ -0,0 +1,11 @@
+-- This is just a loader. The package handler knows about the TEX tree.
+
+-- require "luatex/lua/socket.lua"
+-- require "luatex/lua/ltn12.lua"
+-- require "luatex/lua/mime.lua"
+-- require "luatex/lua/socket/http.lua"
+-- require "luatex/lua/socket/url.lua"
+-- require "luatex/lua/socket/tp.lua"
+-- require "luatex/lua/socket/ftp.lua"
+
+-- "luatex/lua/socket/smtp.lua"
diff --git a/Master/texmf-dist/tex/context/base/mkiv/luat-soc.mkiv b/Master/texmf-dist/tex/context/base/mkiv/luat-soc.mkiv
deleted file mode 100644
index b2ce7048395..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/luat-soc.mkiv
+++ /dev/null
@@ -1,52 +0,0 @@
-%D \module
-%D [ file=luat-soc,
-%D version=2018.08.05,
-%D title=\CONTEXT\ Lua Macros,
-%D subtitle=Socket Libraries,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Lua Macros / Socket Libraries}
-
-%D In \LUATEX\ we provide the socket library that is more or less the standard one
-%D for \LUA. It has been around for a while and seems to be pretty stable. The
-%D binary module is copmpiled into \LUATEX\ and the accompanying .lua files are
-%D preloaded. These files are mostly written by Diego Nehab, Andre Carregal, Javier
-%D Guerra, and Fabio Mascarenhas with contributions from Diego Nehab, Mike Pall,
-%D David Burgess, Leonardo Godinho, Thomas Harning Jr., and Gary NG. The originals
-%D are part of and copyrighted by the Kepler project.
-%D
-%D Here we reload a slightly reworked version of these \type {.lua} files. We keep
-%D the same (documented) interface but streamlined some fo the code. No more
-%D modules, no more pre 5.2 \LUA, etc. Also, as it loads into the \CONTEXT
-%D ecosystem, we plug in some logging. (and maybe tracing in the future). As we
-%D don't support serial ports in \LUATEX, related code has been dropped.
-%D
-%D The files are reformatted so that we can more easilly add additional features
-%D and|/|or tracing options. Any error introduced there is our fault! The url module
-%D might be replaced by the one in \CONTEXT. When we need mbox a suitable variant
-%D will be provided.
-
-%D Currently we preload the related \LUA\ code in \LUATEX, but that might change at
-%D some point. We're prepared for that.
-
-% \registerctxluafile{util-soc-imp-reset} {}
-%
-% \registerctxluafile{util-soc-imp-socket} {}
-% % registerctxluafile{util-soc-imp-copas} {}
-% \registerctxluafile{util-soc-imp-ltn12} {}
-% % registerctxluafile{util-soc-imp-mbox} {}
-% \registerctxluafile{util-soc-imp-mime} {}
-% \registerctxluafile{util-soc-imp-url} {}
-% \registerctxluafile{util-soc-imp-headers}{}
-% \registerctxluafile{util-soc-imp-http} {}
-% \registerctxluafile{util-soc-imp-tp} {}
-% % registerctxluafile{util-soc-imp-ftp} {}
-% % registerctxluafile{util-soc-imp-smtp} {}
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkiv/luat-sto.lua b/Master/texmf-dist/tex/context/base/mkiv/luat-sto.lua
index ce891765aa9..e67830b0db4 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/luat-sto.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/luat-sto.lua
@@ -78,7 +78,7 @@ if environment.initex then
dumped = concat({ definition, comment, dumped },"\n")
local code = nil
local name = formatters["slot %s (%s)"](max,name)
- if LUAVERSION >= 5.3 then
+ if LUAVERSION >= 5.3 and LUATEXFUNCTIONALITY >= 6454 then
local code = loadstring(dumped,name)
setbytecode(max,code,strip)
else
diff --git a/Master/texmf-dist/tex/context/base/mkiv/luat-usr.lua b/Master/texmf-dist/tex/context/base/mkiv/luat-usr.lua
index b49379bbf05..ebcb0f0e82a 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/luat-usr.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/luat-usr.lua
@@ -26,6 +26,8 @@ local io = io
local os = os
local lpeg = lpeg
+local luanames = lua.name -- luatex itself
+
local setmetatableindex = table.setmetatableindex
local load = load
local xpcall = xpcall
@@ -133,6 +135,7 @@ local function registername(name,message)
messages[lnn] = message
numbers[name] = lnn
end
+ luanames[lnn] = instance_banner(message)
local report = reporter("lua instance",message)
local proxy = {
-- we can access all via:
diff --git a/Master/texmf-dist/tex/context/base/mkiv/luat-usr.mkiv b/Master/texmf-dist/tex/context/base/mkiv/luat-usr.mkiv
index f3868ccf4bc..760de9f213f 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/luat-usr.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/luat-usr.mkiv
@@ -69,7 +69,7 @@
\obeyluatokens
\csname\??luacode#1\endcsname}%
%
- \expandafter\glet\csname\s!stop#1\s!code\endcsname\relax
+ \global\expandafter\let\csname\s!stop#1\s!code\endcsname\relax
%
\normalexpanded{\xdef\csname\??luacode#1\endcsname##1\csname\s!stop#1\s!code\endcsname}%
{\noexpand\expandafter\endgroup
@@ -77,7 +77,7 @@
\expandafter\noexpand\csname clf_\fullname\endcsname
\noexpand\expandafter{\noexpand\normalexpanded{##1}}}%
%
- \expandafter\glet\csname#1\s!code\expandafter\endcsname\csname clf_\fullname\endcsname
+ \global\expandafter\let\csname#1\s!code\expandafter\endcsname\csname clf_\fullname\endcsname
\fi
\fi
\egroup}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lxml-aux.lua b/Master/texmf-dist/tex/context/base/mkiv/lxml-aux.lua
index ed0f03fd8c7..78cf1d6bd58 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lxml-aux.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lxml-aux.lua
@@ -134,12 +134,10 @@ end
function xml.collect_tags(root, pattern, nonamespace)
local collected = xmlapplylpath(root,pattern)
if collected then
- local t = { }
- local n = 0
+ local t, n = { }, 0
for c=1,#collected do
- local e = collected[c]
- local ns = e.ns
- local tg = e.tg
+ local e = collected[c]
+ local ns, tg = e.ns, e.tg
n = n + 1
if nonamespace then
t[n] = tg
@@ -228,7 +226,7 @@ function xml.delete(root,pattern)
if trace_manipulations then
report('deleting',pattern,c,e)
end
- local d = p.dt
+ local d = p.dt
local ni = e.ni
if ni <= #d then
if false then
@@ -315,10 +313,8 @@ local function inject_element(root,pattern,whatever,prepend)
local element = root and xmltoelement(whatever,root)
local collected = element and xmlapplylpath(root,pattern)
local function inject_e(e)
- local r = e.__p__
- local d = r.dt
- local k = e.ni
- local rri = r.ri
+ local r = e.__p__
+ local d, k, rri = r.dt, e.ni, r.ri
local edt = (rri and d[rri].dt) or (d and d[k] and d[k].dt)
if edt then
local be, af
@@ -358,8 +354,7 @@ local function insert_element(root,pattern,whatever,before) -- todo: element als
local collected = element and xmlapplylpath(root,pattern)
local function insert_e(e)
local r = e.__p__
- local d = r.dt
- local k = e.ni
+ local d, k = r.dt, e.ni
if not before then
k = k + 1
end
@@ -865,10 +860,8 @@ function xml.separate(x,pattern)
report_xml("warning: xml.separate changes root")
x = d
end
- local t = { "\n" }
- local n = 1
- local i = 1
- local nd = #d
+ local t, n = { "\n" }, 1
+ local i, nd = 1, #d
while i <= nd do
while i <= nd do
local di = d[i]
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lxml-css.lua b/Master/texmf-dist/tex/context/base/mkiv/lxml-css.lua
index b0f5c9b72f6..1787c53df18 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lxml-css.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lxml-css.lua
@@ -6,7 +6,7 @@ if not modules then modules = { } end modules ['lxml-css'] = {
license = "see context related readme files"
}
-local tonumber, rawset, type, select = tonumber, rawset, type, select
+local tonumber, rawset, type = tonumber, rawset, type
local lower, format, find, gmatch = string.lower, string.format, string.find, string.gmatch
local topattern, is_empty = string.topattern, string.is_empty
local P, S, C, R, Cb, Cg, Carg, Ct, Cc, Cf, Cs = lpeg.P, lpeg.S, lpeg.C, lpeg.R, lpeg.Cb, lpeg.Cg, lpeg.Carg, lpeg.Ct, lpeg.Cc, lpeg.Cf, lpeg.Cs
@@ -118,33 +118,24 @@ css.padding = padding
-- print(padding("0",pixel,hsize,exheight,emwidth))
-local context = context
-
-if context then
-
- local currentfont = font.current
- local texget = tex.get
- local hashes = fonts.hashes
- local quads = hashes.quads
- local xheights = hashes.xheights
-
- local function todimension(str)
- local font = currentfont()
- local exheight = xheights[font]
- local emwidth = quads[font]
- local hsize = texget("hsize")/100
- local pixel = emwidth/100
- return dimension(str,pixel,hsize,exheight,emwidth)
- end
-
- css.todimension = todimension
-
- function context.cssdimension(str)
- -- context("%ssp",todimension(str))
- context(todimension(str) .. "sp")
- end
-
-end
+-- local currentfont = font.current
+-- local texget = tex.get
+-- local hashes = fonts.hashes
+-- local quads = hashes.quads
+-- local xheights = hashes.xheights
+--
+-- local function padding(str)
+-- local font = currentfont()
+-- local exheight = xheights[font]
+-- local emwidth = quads[font]
+-- local hsize = texget("hsize")/100
+-- local pixel = emwidth/100
+-- return padding(str,pixel,hsize,exheight,emwidth)
+-- end
+--
+-- function css.simplepadding(str)
+-- context("%ssp",padding(str,pixel,hsize,exheight,emwidth))
+-- end
local pattern = Cf( Ct("") * (
Cg(
@@ -958,7 +949,7 @@ local someaction = skipspace * colon * skipspace * (somevalue/ctx_sprint)
-- -- cache patterns (2.13):
-local patterns = setmetatableindex(function(t,k)
+local patterns= setmetatableindex(function(t,k)
local v = P(k * someaction + 1)^0
t[k] = v
return v
@@ -1002,91 +993,3 @@ interfaces.implement {
actions = css.mappedstylevalue,
arguments = "3 strings",
}
-
--- more (for mm)
-
-local containsws = string.containsws
-local classsplitter = lpeg.tsplitat(whitespace^1)
-
-function xml.functions.classes(e,class) -- cache
- if class then
- local at = e.at
- local data = at[class] or at.class
- if data then
- return lpegmatch(classsplitter,data) or { }
- end
- end
- return { }
-end
-
--- function xml.functions.hasclass(e,class,name)
--- if class then
--- local at = e.at
--- local data = at[class] or at.class
--- if data then
--- return data == name or containsws(data,name)
--- end
--- end
--- return false
--- end
---
--- function xml.expressions.hasclass(attribute,name)
--- if attribute then
--- return attribute == name or containsws(attribute,name)
--- end
--- return false
--- end
-
-function xml.functions.hasclass(e,class,name,more,...)
- if class and name then
- local at = e.at
- local data = at[class] or at.class
- if not data or data == "" then
- return false
- end
- if data == name or data == more then
- return true
- end
- if containsws(data,name) then
- return true
- end
- if not more then
- return false
- end
- if containsws(data,more) then
- return true
- end
- for i=1,select("#",...) do
- if containsws(data,select(i,...)) then
- return true
- end
- end
- end
- return false
-end
-
-function xml.expressions.hasclass(data,name,more,...)
- if data then
- if not data or data == "" then
- return false
- end
- if data == name or data == more then
- return true
- end
- if containsws(data,name) then
- return true
- end
- if not more then
- return false
- end
- if containsws(data,more) then
- return true
- end
- for i=1,select("#",...) do
- if containsws(data,select(i,...)) then
- return true
- end
- end
- end
- return false
-end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lxml-inf.lua b/Master/texmf-dist/tex/context/base/mkiv/lxml-inf.lua
index 6fb64c0fef6..8d99d627031 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lxml-inf.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lxml-inf.lua
@@ -17,8 +17,7 @@ local getid = lxml.getid
local status, stack
local function get(e,d)
- local ns = e.ns
- local tg = e.tg
+ local ns, tg = e.ns, e.tg
local name = tg
if ns ~= "" then name = ns .. ":" .. tg end
stack[d] = name
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lxml-ini.mkiv b/Master/texmf-dist/tex/context/base/mkiv/lxml-ini.mkiv
index 5cb4bb22d65..7c97ffb2c77 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lxml-ini.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/lxml-ini.mkiv
@@ -36,11 +36,11 @@
% for now indirect
-\def\xmlconcat #1#2#3{\clf_xmlconcat {#1}{#2}{\detokenize{#3}}}
-\def\xmlconcatrange #1#2#3#4#5{\clf_xmlconcatrange{#1}{#2}{#3}{#4}{\detokenize{#5}}}
-\def\xmlload #1#2{\clf_xmlload {#1}{#2}{\directxmlparameter\c!compress}}
-\def\xmlloadbuffer #1#2{\clf_xmlloadbuffer {#1}{#2}{\directxmlparameter\c!compress}}
-\def\xmlloaddata #1#2{\clf_xmlloaddata {#1}{#2}{\directxmlparameter\c!compress}}
+\def\xmlconcat #1#2#3{\clf_xmlconcat {#1}{#2}{\detokenize{#3}}}
+\def\xmlconcatrange #1#2#3#4#5{\clf_xmlconcatrange {#1}{#2}{#3}{#4}{\detokenize{#5}}}
+\def\xmlload #1#2{\clf_xmlload {#1}{#2}{\directxmlparameter\c!compress}}
+\def\xmlloadbuffer #1#2{\clf_xmlloadbuffer {#1}{#2}{\directxmlparameter\c!compress}}
+\def\xmlloaddata #1#2{\clf_xmlloaddata {#1}{#2}{\directxmlparameter\c!compress}}
% aliased
@@ -231,7 +231,6 @@
\unexpanded\def\xmlremovedocumentsetup #1#2{\clf_xmlremovesetup {#1}{#2}}
\unexpanded\def\xmlresetdocumentsetups #1{\clf_xmlresetsetups {#1}}
-\unexpanded\def\xmlflushsetups #1{\clf_xmlflushsetups {#1}{*}{}} % #1 == id where to apply *
\unexpanded\def\xmlflushdocumentsetups #1#2{\clf_xmlflushsetups {#1}{*}{#2}} % #1 == id where to apply * and #2
\let\xmlregistersetup \xmlappendsetup
@@ -241,7 +240,7 @@
\unexpanded\def\xmlregisteredsetups
{\xmlstarttiming
- \xmlflushsetups\xmldocument
+ \xmlflushsetups
\xmldefaulttotext\xmldocument % after include
\xmlstoptiming}
@@ -261,8 +260,8 @@
%xmlpushdocument{#3}%
#2{#3}{#4}%
\setcatcodetable\notcatcodes
- \doifelsenothing{#5}%
- {\xmlsetup{#3}{xml:process}}%
+ \doifelsenothing{#5}
+ {\xmlsetup{#3}{xml:process}}
{\xmlsetup{#3}{#5}}%
%xmlpopdocument
\endgroup}
@@ -327,7 +326,7 @@
\fi
\unexpanded\def\stopxmldisplayverbatim
{\endofverbatimlines
- \stoppacked}%
+ \stoppacked}
\doinitializeverbatim
\beginofverbatimlines}
@@ -405,7 +404,7 @@
\c!entities=\v!no] % load big entity file
\appendtoks
- \doif{\directxmlparameter\c!entities}\v!yes\clf_xmlloadentities
+ \doif{\directxmlparameter\c!entities}\clf_xmlloadentities
\to \everysetupxml
\def\xmlmapvalue #1#2#3{\setvalue{\??xmlmapvalue#1:#2}{#3}} % keep #3 to grab spaces
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lxml-lpt.lua b/Master/texmf-dist/tex/context/base/mkiv/lxml-lpt.lua
index 392c1a4014e..bb6fb456816 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lxml-lpt.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lxml-lpt.lua
@@ -157,47 +157,32 @@ apply_axis['root'] = function(list)
end
apply_axis['self'] = function(list)
- -- local collected = { }
- -- for l=1,#list do
- -- collected[l] = list[l]
- -- end
- -- return collected
+--~ local collected = { }
+--~ for l=1,#list do
+--~ collected[l] = list[l]
+--~ end
+--~ return collected
return list
end
apply_axis['child'] = function(list)
- local collected = { }
- local c = 0
+ local collected, c = { }, 0
for l=1,#list do
local ll = list[l]
local dt = ll.dt
if dt then -- weird that this is needed
- local n = #dt
- if n == 0 then
- ll.en = 0
- elseif n == 1 then
- local dk = dt[1]
+ local en = 0
+ for k=1,#dt do
+ local dk = dt[k]
if dk.tg then
c = c + 1
collected[c] = dk
- dk.ni = 1 -- refresh
- dk.ei = 1
- ll.en = 1
- end
- else
- local en = 0
- for k=1,#dt do
- local dk = dt[k]
- if dk.tg then
- c = c + 1
- en = en + 1
- collected[c] = dk
- dk.ni = k -- refresh
- dk.ei = en
- end
+ dk.ni = k -- refresh
+ en = en + 1
+ dk.ei = en
end
- ll.en = en
end
+ ll.en = en
end
end
return collected
@@ -206,43 +191,25 @@ end
local function collect(list,collected,c)
local dt = list.dt
if dt then
- local n = #dt
- if n == 0 then
- list.en = 0
- elseif n == 1 then
- local dk = dt[1]
+ local en = 0
+ for k=1,#dt do
+ local dk = dt[k]
if dk.tg then
c = c + 1
collected[c] = dk
- dk.ni = 1 -- refresh
- dk.ei = 1
+ dk.ni = k -- refresh
+ en = en + 1
+ dk.ei = en
c = collect(dk,collected,c)
- list.en = 1
- else
- list.en = 0
end
- else
- local en = 0
- for k=1,n do
- local dk = dt[k]
- if dk.tg then
- c = c + 1
- en = en + 1
- collected[c] = dk
- dk.ni = k -- refresh
- dk.ei = en
- c = collect(dk,collected,c)
- end
- end
- list.en = en
end
+ list.en = en
end
return c
end
apply_axis['descendant'] = function(list)
- local collected = { }
- local c = 0
+ local collected, c = { }, 0
for l=1,#list do
c = collect(list[l],collected,c)
end
@@ -252,41 +219,24 @@ end
local function collect(list,collected,c)
local dt = list.dt
if dt then
- local n = #dt
- if n == 0 then
- list.en = 0
- elseif n == 1 then
- local dk = dt[1]
+ local en = 0
+ for k=1,#dt do
+ local dk = dt[k]
if dk.tg then
c = c + 1
collected[c] = dk
- dk.ni = 1 -- refresh
- dk.ei = 1
+ dk.ni = k -- refresh
+ en = en + 1
+ dk.ei = en
c = collect(dk,collected,c)
- list.en = 1
end
- else
- local en = 0
- for k=1,#dt do
- local dk = dt[k]
- if dk.tg then
- c = c + 1
- en = en + 1
- collected[c] = dk
- dk.ni = k -- refresh
- dk.ei = en
- c = collect(dk,collected,c)
- end
- end
- list.en = en
end
+ list.en = en
end
return c
end
-
apply_axis['descendant-or-self'] = function(list)
- local collected = { }
- local c = 0
+ local collected, c = { }, 0
for l=1,#list do
local ll = list[l]
if ll.special ~= true then -- catch double root
@@ -299,8 +249,7 @@ apply_axis['descendant-or-self'] = function(list)
end
apply_axis['ancestor'] = function(list)
- local collected = { }
- local c = 0
+ local collected, c = { }, 0
for l=1,#list do
local ll = list[l]
while ll do
@@ -315,8 +264,7 @@ apply_axis['ancestor'] = function(list)
end
apply_axis['ancestor-or-self'] = function(list)
- local collected = { }
- local c = 0
+ local collected, c = { }, 0
for l=1,#list do
local ll = list[l]
c = c + 1
@@ -333,8 +281,7 @@ apply_axis['ancestor-or-self'] = function(list)
end
apply_axis['parent'] = function(list)
- local collected = { }
- local c = 0
+ local collected, c = { }, 0
for l=1,#list do
local pl = list[l].__p__
if pl then
@@ -354,47 +301,45 @@ apply_axis['namespace'] = function(list)
end
apply_axis['following'] = function(list) -- incomplete
- -- local collected, c = { }, 0
- -- for l=1,#list do
- -- local ll = list[l]
- -- local p = ll.__p__
- -- local d = p.dt
- -- for i=ll.ni+1,#d do
- -- local di = d[i]
- -- if type(di) == "table" then
- -- c = c + 1
- -- collected[c] = di
- -- break
- -- end
- -- end
- -- end
- -- return collected
+--~ local collected, c = { }, 0
+--~ for l=1,#list do
+--~ local ll = list[l]
+--~ local p = ll.__p__
+--~ local d = p.dt
+--~ for i=ll.ni+1,#d do
+--~ local di = d[i]
+--~ if type(di) == "table" then
+--~ c = c + 1
+--~ collected[c] = di
+--~ break
+--~ end
+--~ end
+--~ end
+--~ return collected
return { }
end
apply_axis['preceding'] = function(list) -- incomplete
- -- local collected = { }
- -- local c = 0
- -- for l=1,#list do
- -- local ll = list[l]
- -- local p = ll.__p__
- -- local d = p.dt
- -- for i=ll.ni-1,1,-1 do
- -- local di = d[i]
- -- if type(di) == "table" then
- -- c = c + 1
- -- collected[c] = di
- -- break
- -- end
- -- end
- -- end
- -- return collected
+--~ local collected, c = { }, 0
+--~ for l=1,#list do
+--~ local ll = list[l]
+--~ local p = ll.__p__
+--~ local d = p.dt
+--~ for i=ll.ni-1,1,-1 do
+--~ local di = d[i]
+--~ if type(di) == "table" then
+--~ c = c + 1
+--~ collected[c] = di
+--~ break
+--~ end
+--~ end
+--~ end
+--~ return collected
return { }
end
apply_axis['following-sibling'] = function(list)
- local collected = { }
- local c = 0
+ local collected, c = { }, 0
for l=1,#list do
local ll = list[l]
local p = ll.__p__
@@ -411,8 +356,7 @@ apply_axis['following-sibling'] = function(list)
end
apply_axis['preceding-sibling'] = function(list)
- local collected = { }
- local c = 0
+ local collected, c = { }, 0
for l=1,#list do
local ll = list[l]
local p = ll.__p__
@@ -429,8 +373,7 @@ apply_axis['preceding-sibling'] = function(list)
end
apply_axis['reverse-sibling'] = function(list) -- reverse preceding
- local collected = { }
- local c = 0
+ local collected, c = { }, 0
for l=1,#list do
local ll = list[l]
local p = ll.__p__
@@ -457,8 +400,7 @@ local function apply_nodes(list,directive,nodes)
-- ... currently ignored
local maxn = #nodes
if maxn == 3 then --optimized loop
- local nns = nodes[2]
- local ntg = nodes[3]
+ local nns, ntg = nodes[2], nodes[3]
if not nns and not ntg then -- wildcard
if directive then
return list
@@ -466,47 +408,40 @@ local function apply_nodes(list,directive,nodes)
return { }
end
else
- local collected = { }
- local c = 0
- local m = 0
- local p = nil
+ local collected, c, m, p = { }, 0, 0, nil
if not nns then -- only check tag
for l=1,#list do
- local ll = list[l]
+ local ll = list[l]
local ltg = ll.tg
if ltg then
if directive then
if ntg == ltg then
- local llp = ll.__p__ ; if llp ~= p then p = llp ; m = 1 else m = m + 1 end
+ local llp = ll.__p__ ; if llp ~= p then p, m = llp, 1 else m = m + 1 end
c = c + 1
- collected[c] = ll
- ll.mi = m
+ collected[c], ll.mi = ll, m
end
elseif ntg ~= ltg then
- local llp = ll.__p__ ; if llp ~= p then p = llp ; m = 1 else m = m + 1 end
+ local llp = ll.__p__ ; if llp ~= p then p, m = llp, 1 else m = m + 1 end
c = c + 1
- collected[c] = ll
- ll.mi = m
+ collected[c], ll.mi = ll, m
end
end
end
elseif not ntg then -- only check namespace
for l=1,#list do
- local ll = list[l]
+ local ll = list[l]
local lns = ll.rn or ll.ns
if lns then
if directive then
if lns == nns then
- local llp = ll.__p__ ; if llp ~= p then p = llp ; m = 1 else m = m + 1 end
+ local llp = ll.__p__ ; if llp ~= p then p, m = llp, 1 else m = m + 1 end
c = c + 1
- collected[c] = ll
- ll.mi = m
+ collected[c], ll.mi = ll, m
end
elseif lns ~= nns then
- local llp = ll.__p__ ; if llp ~= p then p = llp ; m = 1 else m = m + 1 end
+ local llp = ll.__p__ ; if llp ~= p then p, m = llp, 1 else m = m + 1 end
c = c + 1
- collected[c] = ll
- ll.mi = m
+ collected[c], ll.mi = ll, m
end
end
end
@@ -519,16 +454,14 @@ local function apply_nodes(list,directive,nodes)
local ok = ltg == ntg and lns == nns
if directive then
if ok then
- local llp = ll.__p__ ; if llp ~= p then p = llp ; m = 1 else m = m + 1 end
+ local llp = ll.__p__ ; if llp ~= p then p, m = llp, 1 else m = m + 1 end
c = c + 1
- collected[c] = ll
- ll.mi = m
+ collected[c], ll.mi = ll, m
end
elseif not ok then
- local llp = ll.__p__ ; if llp ~= p then p = llp ; m = 1 else m = m + 1 end
+ local llp = ll.__p__ ; if llp ~= p then p, m = llp, 1 else m = m + 1 end
c = c + 1
- collected[c] = ll
- ll.mi = m
+ collected[c], ll.mi = ll, m
end
end
end
@@ -536,19 +469,15 @@ local function apply_nodes(list,directive,nodes)
return collected
end
else
- local collected = { }
- local c = 0
- local m = 0
- local p = nil
+ local collected, c, m, p = { }, 0, 0, nil
for l=1,#list do
- local ll = list[l]
+ local ll = list[l]
local ltg = ll.tg
if ltg then
local lns = ll.rn or ll.ns
- local ok = false
+ local ok = false
for n=1,maxn,3 do
- local nns = nodes[n+1]
- local ntg = nodes[n+2]
+ local nns, ntg = nodes[n+1], nodes[n+2]
ok = (not ntg or ltg == ntg) and (not nns or lns == nns)
if ok then
break
@@ -556,16 +485,14 @@ local function apply_nodes(list,directive,nodes)
end
if directive then
if ok then
- local llp = ll.__p__ ; if llp ~= p then p = llp ; m = 1 else m = m + 1 end
+ local llp = ll.__p__ ; if llp ~= p then p, m = llp, 1 else m = m + 1 end
c = c + 1
- collected[c] = ll
- ll.mi = m
+ collected[c], ll.mi = ll, m
end
elseif not ok then
- local llp = ll.__p__ ; if llp ~= p then p = llp ; m = 1 else m = m + 1 end
+ local llp = ll.__p__ ; if llp ~= p then p, m = llp, 1 else m = m + 1 end
c = c + 1
- collected[c] = ll
- ll.mi = m
+ collected[c], ll.mi = ll, m
end
end
end
@@ -576,8 +503,7 @@ end
local quit_expression = false
local function apply_expression(list,expression,order)
- local collected = { }
- local c = 0
+ local collected, c = { }, 0
quit_expression = false
for l=1,#list do
local ll = list[l]
@@ -974,8 +900,7 @@ local function tagstostring(list)
local t = { }
for i=1, #list do
local li = list[i]
- local ns = li.ns
- local tg = li.tg
+ local ns, tg = li.ns, li.tg
if not ns or ns == "" then ns = "*" end
if not tg or tg == "" then tg = "*" end
t[i] = (tg == "@rt@" and "[root]") or format("%s:%s",ns,tg)
@@ -1440,8 +1365,7 @@ expressions.name = function(e,n) -- ns + tg
if n == 0 then
found = type(e) == "table" and e
elseif n < 0 then
- local d = e.__p__.dt
- local k = e.ni
+ local d, k = e.__p__.dt, e.ni
for i=k-1,1,-1 do
local di = d[i]
if type(di) == "table" then
@@ -1454,8 +1378,7 @@ expressions.name = function(e,n) -- ns + tg
end
end
else
- local d = e.__p__.dt
- local k = e.ni
+ local d, k = e.__p__.dt, e.ni
for i=k+1,#d,1 do
local di = d[i]
if type(di) == "table" then
@@ -1469,8 +1392,7 @@ expressions.name = function(e,n) -- ns + tg
end
end
if found then
- local ns = found.rn or found.ns or ""
- local tg = found.tg
+ local ns, tg = found.rn or found.ns or "", found.tg
if ns ~= "" then
return ns .. ":" .. tg
else
@@ -1490,8 +1412,7 @@ expressions.tag = function(e,n) -- only tg
if n == 0 then
found = (type(e) == "table") and e -- seems to fail
elseif n < 0 then
- local d = e.__p__.dt
- local k = e.ni
+ local d, k = e.__p__.dt, e.ni
for i=k-1,1,-1 do
local di = d[i]
if type(di) == "table" then
@@ -1504,8 +1425,7 @@ expressions.tag = function(e,n) -- only tg
end
end
else
- local d = e.__p__.dt
- local k = e.ni
+ local d, k = e.__p__.dt, e.ni
for i=k+1,#d,1 do
local di = d[i]
if type(di) == "table" then
@@ -1672,8 +1592,8 @@ end
-- local w = lpeg.patterns.whitespace
-- local p = w^0 * lpeg.Cf(lpeg.Ct("") * lpeg.Cg(lpeg.C((1-w)^1) * lpeg.Cc(true) * w^0)^1,rawset)
--- function xml.functions.classes(e,class) -- cache
--- class = class and e.at[class] or e.at.class
+-- function xml.functions.classes(e) -- cache
+-- local class = e.at.class
-- if class then
-- return lpegmatch(p,class)
-- else
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lxml-tex.lua b/Master/texmf-dist/tex/context/base/mkiv/lxml-tex.lua
index ae3edba5613..b8280ba9c63 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lxml-tex.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lxml-tex.lua
@@ -92,8 +92,6 @@ local forceraw = false
local p_texescape = patterns.texescape
-local tokenizedcs = context.tokenizedcs
-
directives.enable("xml.path.keeplastmatch")
-- tex entities
@@ -501,29 +499,13 @@ function lxml.checkindex(name)
return root and root.index or 0
end
-if tokenizedcs then
-
- function lxml.withindex(name,n,command) -- will change as name is always there now
- local i, p = lpegmatch(splitter,n)
- local w = tokenizedcs.xmlw
- if p then
- contextsprint(ctxcatcodes,w,"{",command,"}{",n,"}")
- else
- contextsprint(ctxcatcodes,w,"{",command,"}{",name,"::",n,"}")
- end
- end
-
-else
-
- function lxml.withindex(name,n,command) -- will change as name is always there now
- local i, p = lpegmatch(splitter,n)
- if p then
- contextsprint(ctxcatcodes,"\\xmlw{",command,"}{",n,"}")
- else
- contextsprint(ctxcatcodes,"\\xmlw{",command,"}{",name,"::",n,"}")
- end
+function lxml.withindex(name,n,command) -- will change as name is always there now
+ local i, p = lpegmatch(splitter,n)
+ if p then
+ contextsprint(ctxcatcodes,"\\xmlw{",command,"}{",n,"}")
+ else
+ contextsprint(ctxcatcodes,"\\xmlw{",command,"}{",name,"::",n,"}")
end
-
end
function lxml.getindex(name,n) -- will change as name is always there now
@@ -746,6 +728,21 @@ end
local default_element_handler = xml.gethandlers("verbose").functions["@el@"]
+-- local xmlw = setmetatableindex(function(t,k)
+-- local v = setmetatableindex(function(t,kk)
+-- local v
+-- if kk == false then
+-- v = "\\xmlw{" .. k .. "}{"
+-- else
+-- v = "\\xmlw{" .. k .. "}{" .. kk .. "::"
+-- end
+-- t[kk] = v
+-- return v
+-- end)
+-- t[k]= v
+-- return v
+-- end)
+
local setfilename = false
local trace_name = false
local report_name = logs.reporter("lxml")
@@ -768,80 +765,39 @@ trackers.register("system.synctex.xml",function(v)
trace_name = v
end)
-local tex_element
-
-if tokenizedcs then
-
- tex_element = function(e,handlers)
- if setfilename then
- syncfilename(e,"element")
- end
- local command = e.command
- if command == nil then
- default_element_handler(e,handlers)
- elseif command == true then
- -- text (no <self></self>) / so, no mkii fallback then
- handlers.serialize(e.dt,handlers)
- elseif command == false then
- -- ignore
- else
- local tc = type(command)
- if tc == "string" then
- local rootname, ix = e.name, e.ix
- local w = tokenizedcs.xmlw
- if rootname then
- if not ix then
- addindex(rootname,false,true)
- ix = e.ix
- end
- contextsprint(ctxcatcodes,w,"{",command,"}{",rootname,"::",ix,"}")
- else
- report_lxml("fatal error: no index for %a",command)
- contextsprint(ctxcatcodes,w,"{",command,"}{",ix or 0,"}")
- end
- elseif tc == "function" then
- command(e)
- end
- end
- end
-
-else
-
- tex_element = function(e,handlers)
- if setfilename then
- syncfilename(e,"element")
- end
- local command = e.command
- if command == nil then
- default_element_handler(e,handlers)
- elseif command == true then
- -- text (no <self></self>) / so, no mkii fallback then
- handlers.serialize(e.dt,handlers)
- elseif command == false then
- -- ignore
- else
- local tc = type(command)
- if tc == "string" then
- local rootname, ix = e.name, e.ix
- if rootname then
- if not ix then
- addindex(rootname,false,true)
- ix = e.ix
- end
- -- faster than context.xmlw
- contextsprint(ctxcatcodes,"\\xmlw{",command,"}{",rootname,"::",ix,"}")
- -- contextsprint(ctxcatcodes,xmlw[command][rootname],ix,"}")
- else
- report_lxml("fatal error: no index for %a",command)
- contextsprint(ctxcatcodes,"\\xmlw{",command,"}{",ix or 0,"}")
- -- contextsprint(ctxcatcodes,xmlw[command][false],ix or 0,"}")
+local function tex_element(e,handlers)
+ if setfilename then
+ syncfilename(e,"element")
+ end
+ local command = e.command
+ if command == nil then
+ default_element_handler(e,handlers)
+ elseif command == true then
+ -- text (no <self></self>) / so, no mkii fallback then
+ handlers.serialize(e.dt,handlers)
+ elseif command == false then
+ -- ignore
+ else
+ local tc = type(command)
+ if tc == "string" then
+ local rootname, ix = e.name, e.ix
+ if rootname then
+ if not ix then
+ addindex(rootname,false,true)
+ ix = e.ix
end
- elseif tc == "function" then
- command(e)
+ -- faster than context.xmlw
+ contextsprint(ctxcatcodes,"\\xmlw{",command,"}{",rootname,"::",ix,"}")
+ -- contextsprint(ctxcatcodes,xmlw[command][rootname],ix,"}")
+ else
+ report_lxml("fatal error: no index for %a",command)
+ contextsprint(ctxcatcodes,"\\xmlw{",command,"}{",ix or 0,"}")
+ -- contextsprint(ctxcatcodes,xmlw[command][false],ix or 0,"}")
end
+ elseif tc == "function" then
+ command(e)
end
end
-
end
-- <?context-directive foo ... ?>
@@ -1224,7 +1180,7 @@ function lxml.flushsetups(id,...)
local sd = setups[document]
if sd then
for k=1,#sd do
- local v = sd[k]
+ local v= sd[k]
if not done[v] then
if trace_loading then
report_lxml("applying setup %02i : %a to %a",k,v,document)
@@ -1486,63 +1442,29 @@ end
-- the number of commands is often relative small but there can be many calls
-- to this finalizer
-local command
-
-if tokenizedcs then
-
- command = function(collected,cmd,otherwise)
- local n = collected and #collected
- local w = tokenizedcs.xmlw
- if n and n > 0 then
- local wildcard = find(cmd,"*",1,true)
- for c=1,n do -- maybe optimize for n=1
- local e = collected[c]
- local ix = e.ix
- local name = e.name
- if name and not ix then
- addindex(name,false,true)
- ix = e.ix
- end
- if not ix or not name then
- report_lxml("no valid node index for element %a using command %s",name or "?",cmd)
- elseif wildcard then
- contextsprint(ctxcatcodes,w,"{",(gsub(cmd,"%*",e.tg)),"}{",name,"::",ix,"}")
- else
- contextsprint(ctxcatcodes,w,"{",cmd,"}{",name,"::",ix,"}")
- end
- end
- elseif otherwise then
- contextsprint(ctxcatcodes,w,"{",otherwise,"}{#1}")
- end
- end
-
-else
-
- command = function(collected,cmd,otherwise)
- local n = collected and #collected
- if n and n > 0 then
- local wildcard = find(cmd,"*",1,true)
- for c=1,n do -- maybe optimize for n=1
- local e = collected[c]
- local ix = e.ix
- local name = e.name
- if name and not ix then
- addindex(name,false,true)
- ix = e.ix
- end
- if not ix or not name then
- report_lxml("no valid node index for element %a using command %s",name or "?",cmd)
- elseif wildcard then
- contextsprint(ctxcatcodes,"\\xmlw{",(gsub(cmd,"%*",e.tg)),"}{",name,"::",ix,"}")
- else
- contextsprint(ctxcatcodes,"\\xmlw{",cmd,"}{",name,"::",ix,"}")
- end
+local function command(collected,cmd,otherwise)
+ local n = collected and #collected
+ if n and n > 0 then
+ local wildcard = find(cmd,"*",1,true)
+ for c=1,n do -- maybe optimize for n=1
+ local e = collected[c]
+ local ix = e.ix
+ local name = e.name
+ if name and not ix then
+ addindex(name,false,true)
+ ix = e.ix
+ end
+ if not ix or not name then
+ report_lxml("no valid node index for element %a using command %s",name or "?",cmd)
+ elseif wildcard then
+ contextsprint(ctxcatcodes,"\\xmlw{",(gsub(cmd,"%*",e.tg)),"}{",name,"::",ix,"}")
+ else
+ contextsprint(ctxcatcodes,"\\xmlw{",cmd,"}{",name,"::",ix,"}")
end
- elseif otherwise then
- contextsprint(ctxcatcodes,"\\xmlw{",otherwise,"}{#1}")
end
+ elseif otherwise then
+ contextsprint(ctxcatcodes,"\\xmlw{",otherwise,"}{#1}")
end
-
end
-- local wildcards = setmetatableindex(function(t,k)
@@ -1753,7 +1675,7 @@ local function concatrange(collected,start,stop,separator,lastseparator,textonly
end
end
-local function concatlist(collected,separator,lastseparator,textonly) -- test this on mml
+local function concat(collected,separator,lastseparator,textonly) -- test this on mml
concatrange(collected,false,false,separator,lastseparator,textonly)
end
@@ -1775,12 +1697,14 @@ texfinalizers.context = ctxtext
texfinalizers.position = position
texfinalizers.match = match
texfinalizers.index = index
-texfinalizers.concat = concatlist
+texfinalizers.concat = concat
texfinalizers.concatrange = concatrange
texfinalizers.chainattribute = chainattribute
texfinalizers.chainpath = chainpath
texfinalizers.default = all -- !!
+local concat = table.concat
+
function texfinalizers.tag(collected,n)
if collected then
local nc = #collected
@@ -2073,7 +1997,7 @@ do
implement {
name = "xmldoifatt",
arguments = "3 strings",
- actions = function(id,k,v)
+ actions = function(id,l,v)
local e = getid(id)
ctx_doif(e and e.at[k] == v or false)
end
@@ -2082,7 +2006,7 @@ do
implement {
name = "xmldoifnotatt",
arguments = "3 strings",
- actions = function(id,k,v)
+ actions = function(id,l,v)
local e = getid(id)
ctx_doifnot(e and e.at[k] == v or false)
end
@@ -2091,7 +2015,7 @@ do
implement {
name = "xmldoifelseatt",
arguments = "3 strings",
- actions = function(id,k,v)
+ actions = function(id,l,v)
local e = getid(id)
ctx_doifelse(e and e.at[k] == v or false)
end
@@ -2215,51 +2139,24 @@ function lxml.direct(id)
end
end
-if tokenizedcs then
-
- function lxml.command(id,pattern,cmd)
- local i, p = getid(id,true)
- local collected = xmlapplylpath(getid(i),pattern)
- if collected then
- local nc = #collected
- if nc > 0 then
- local rootname = p or i.name
- local w = tokenizedcs.xmlw
- for c=1,nc do
- local e = collected[c]
- local ix = e.ix
- if not ix then
- addindex(rootname,false,true)
- ix = e.ix
- end
- contextsprint(ctxcatcodes,w,"{",cmd,"}{",rootname,"::",ix,"}")
- end
- end
- end
- end
-
-else
-
- function lxml.command(id,pattern,cmd)
- local i, p = getid(id,true)
- local collected = xmlapplylpath(getid(i),pattern)
- if collected then
- local nc = #collected
- if nc > 0 then
- local rootname = p or i.name
- for c=1,nc do
- local e = collected[c]
- local ix = e.ix
- if not ix then
- addindex(rootname,false,true)
- ix = e.ix
- end
- contextsprint(ctxcatcodes,"\\xmlw{",cmd,"}{",rootname,"::",ix,"}")
+function lxml.command(id,pattern,cmd)
+ local i, p = getid(id,true)
+ local collected = xmlapplylpath(getid(i),pattern)
+ if collected then
+ local nc = #collected
+ if nc > 0 then
+ local rootname = p or i.name
+ for c=1,nc do
+ local e = collected[c]
+ local ix = e.ix
+ if not ix then
+ addindex(rootname,false,true)
+ ix = e.ix
end
+ contextsprint(ctxcatcodes,"\\xmlw{",cmd,"}{",rootname,"::",ix,"}")
end
end
end
-
end
-- loops
@@ -2395,13 +2292,13 @@ function texfinalizers.lettered(collected)
end
end
--- function texfinalizers.apply(collected,what) -- to be tested
--- if collected then
--- for c=1,#collected do
--- contextsprint(ctxcatcodes,what(collected[c].dt[1]))
--- end
--- end
--- end
+--~ function texfinalizers.apply(collected,what) -- to be tested
+--~ if collected then
+--~ for c=1,#collected do
+--~ contextsprint(ctxcatcodes,what(collected[c].dt[1]))
+--~ end
+--~ end
+--~ end
function lxml.toparameters(id)
local e = getid(id)
@@ -2460,57 +2357,50 @@ end
-- parameters
-do
-
- local function setatt(id,name,value)
- local e = getid(id)
- if e then
- local a = e.at
- if a then
- a[name] = value
- else
- e.at = { [name] = value }
- end
+function lxml.setatt(id,name,value)
+ local e = getid(id)
+ if e then
+ local a = e.at
+ if a then
+ a[name] = value
+ else
+ e.at = { [name] = value }
end
end
+end
- local function setpar(id,name,value)
- local e = getid(id)
- if e then
- local p = e.pa
- if p then
- p[name] = value
- else
- e.pa = { [name] = value }
- end
+function lxml.setpar(id,name,value)
+ local e = getid(id)
+ if e then
+ local p = e.pa
+ if p then
+ p[name] = value
+ else
+ e.pa = { [name] = value }
end
end
+end
- lxml.setatt = setatt
- lxml.setpar = setpar
-
- function lxml.setattribute(id,pattern,name,value)
- local collected = xmlapplylpath(getid(id),pattern)
- if collected then
- for i=1,#collected do
- setatt(collected[i],name,value)
- end
+function lxml.setattribute(id,pattern,name,value)
+ local collected = xmlapplylpath(getid(id),pattern)
+ if collected then
+ for i=1,#collected do
+ setatt(collected[i],name,value)
end
end
+end
- function lxml.setparameter(id,pattern,name,value)
- local collected = xmlapplylpath(getid(id),pattern)
- if collected then
- for i=1,#collected do
- setpar(collected[i],name,value)
- end
+function lxml.setparameter(id,pattern,name,value)
+ local collected = xmlapplylpath(getid(id),pattern)
+ if collected then
+ for i=1,#collected do
+ setpar(collected[i],name,value)
end
end
-
- lxml.setparam = lxml.setparameter
-
end
+lxml.setparam = lxml.setparameter
+
-- relatively new:
do
@@ -2739,59 +2629,3 @@ function texfinalizers.xml(collected,name,setup)
buffers.assign(name,strip(xmltostring(root)))
context.xmlprocessbuffer(name,name,setup or (name..":setup"))
end
-
--- experiment
-
-do
-
- local xmltoelement = xml.toelement
- local xmlreindex = xml.reindex
-
- function lxml.replace(root,pattern,whatever)
- if type(root) == "string" then
- root = lxml.getid(root)
- end
- local collected = xmlapplylpath(root,pattern)
- if collected then
- local isstring = type(whatever) == "string"
- for c=1,#collected do
- local e = collected[c]
- local p = e.__p__
- if p then
- local d = p.dt
- local n = e.ni
- local w = isstring and whatever or whatever(e)
- if w then
- local t = xmltoelement(w,root).dt
- if t then
- t.__p__ = p
- if type(t) == "table" then
- local t1 = t[1]
- d[n] = t1
- t1.at.type = e.at.type or t1.at.type
- for i=2,#t do
- n = n + 1
- insert(d,n,t[i])
- end
- else
- d[n] = t
- end
- xmlreindex(d) -- probably not needed
- end
- end
- end
- end
- end
- end
-
- -- function document.mess_around(root)
- -- lxml.replace(
- -- root,
- -- "p[@variant='foo']",
- -- function(c)
- -- return (string.gsub(tostring(c),"foo","<bar>%1</bar>"))
- -- end
- -- )
- -- end
-
-end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/m-fonts-plugins.mkiv b/Master/texmf-dist/tex/context/base/mkiv/m-fonts-plugins.mkiv
index 154e4780427..b74b8c3d0d3 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/m-fonts-plugins.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/m-fonts-plugins.mkiv
@@ -186,7 +186,6 @@
\definefontfeature
[arabic-node]
[arabic]
- [salt=yes] % seems to be needed for husayni
\definefontfeature
[arabic-native]
@@ -225,7 +224,7 @@
\getbuffer[#5-definitions]
\showfontkerns
\showmakeup[discretionary]
- % \enabletrackers[fonts.plugins.hb.colors]%
+ \enabletrackers[fonts.plugins.hb.colors]%
\testfeatureonce{1}{
\getbuffer[#5-text]
}
@@ -264,7 +263,7 @@
\title{#1 #3 #4}
\start
\getbuffer[#5-definitions]
- % \enabletrackers[fonts.plugins.hb.colors]%
+ \enabletrackers[fonts.plugins.hb.colors]%
\testfeatureonce{1}{
\setupalign[flushleft] % easier to compare
\getbuffer[#5-text]
diff --git a/Master/texmf-dist/tex/context/base/mkiv/math-act.lua b/Master/texmf-dist/tex/context/base/mkiv/math-act.lua
index 07ef32746a4..77a355b225f 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/math-act.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/math-act.lua
@@ -23,12 +23,6 @@ local mathematics = mathematics
local texsetdimen = tex.setdimen
local abs = math.abs
-local helpers = fonts.helpers
-local upcommand = helpers.commands.up
-local rightcommand = helpers.commands.right
-local charcommand = helpers.commands.char
-local prependcommands = helpers.prependcommands
-
local sequencers = utilities.sequencers
local appendgroup = sequencers.appendgroup
local appendaction = sequencers.appendaction
@@ -243,6 +237,7 @@ function mathematics.overloaddimensions(target,original,set)
local factor = parameters.factor
local hfactor = parameters.hfactor
local vfactor = parameters.vfactor
+ local addprivate = fonts.helpers.addprivate
-- to be sure
target.type = "virtual"
target.properties.virtualized = true
@@ -262,8 +257,7 @@ function mathematics.overloaddimensions(target,original,set)
local height = data.height
local depth = data.depth
if trace_defining and (width or height or depth) then
- report_math("overloading dimensions of %C, width %p, height %p, depth %p",
- unicode,width or 0,height or 0,depth or 0)
+ report_math("overloading dimensions of %C, width %a, height %a, depth %a",unicode,width,height,depth)
end
if width then character.width = width * hfactor end
if height then character.height = height * vfactor end
@@ -276,26 +270,25 @@ function mathematics.overloaddimensions(target,original,set)
if d then
xoffset = - d.boundingbox[1] * hfactor
character.width = character.width + xoffset
- xoffset = rightcommand[xoffset]
- else
- xoffset = nil
+ xoffset = { "right", xoffset }
end
- elseif xoffset and xoffset ~= 0 then
- xoffset = rightcommand[xoffset * hfactor]
- else
- xoffset = nil
+ elseif xoffset then
+ xoffset = { "right", xoffset * hfactor }
end
- if yoffset and yoffset ~= 0 then
- yoffset = upcommand[yoffset * vfactor]
- else
- yoffset = nil
+ if yoffset then
+ yoffset = { "down", -yoffset * vfactor }
end
if xoffset or yoffset then
- local commands = characters.commands
- if commands then
- prependcommands(commands,yoffset,xoffset)
+ if character.commands then
+ if yoffset then
+ insert(character.commands,1,yoffset)
+ end
+ if xoffset then
+ insert(character.commands,1,xoffset)
+ end
else
- local slot = charcommand[unicode]
+ -- local slot = { "slot", 1, addprivate(target,nil,fastcopy(character)) }
+ local slot = { "slot", 0, addprivate(target,nil,fastcopy(character)) }
if xoffset and yoffset then
character.commands = { xoffset, yoffset, slot }
elseif xoffset then
@@ -304,6 +297,7 @@ function mathematics.overloaddimensions(target,original,set)
character.commands = { yoffset, slot }
end
end
+ character.index = nil
end
elseif trace_defining then
report_math("no overloading dimensions of %C, not in font",unicode)
@@ -738,9 +732,9 @@ function mathematics.finishfallbacks(target,specification,fallbacks)
done[unic] = true
end
end
- local step = offset - start
for unicode = start, stop do
- remap(unicode + step,unicode,false)
+ local unic = unicode + offset - start
+ remap(unic,unicode,false)
end
if gaps then
for unic, unicode in next, gaps do
diff --git a/Master/texmf-dist/tex/context/base/mkiv/math-ali.mkiv b/Master/texmf-dist/tex/context/base/mkiv/math-ali.mkiv
index ecfac68870f..083fb764540 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/math-ali.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/math-ali.mkiv
@@ -321,18 +321,11 @@
\def\math_alignment_EQ
{\NC=}
-\installmacrostack\NC % maybe more to shared table definitions
-\installmacrostack\NN % maybe more to shared table definitions
-\installmacrostack\EQ % maybe more to shared table definitions
-\installmacrostack\NR % maybe more to shared table definitions
-\installmacrostack\BC % maybe more to shared table definitions
-\installmacrostack\EC % maybe more to shared table definitions
-
\appendtoks
- \push_macro_NC
- \push_macro_NN
- \push_macro_EQ
- \push_macro_NR
+ \pushmacro\NC
+ \pushmacro\NN
+ \pushmacro\EQ
+ \pushmacro\NR
\let\NC\math_alignment_NC
\let\NN\math_alignment_NN
\let\EQ\math_alignment_EQ
@@ -341,10 +334,10 @@
\to \everymathalignment
\appendtoks
- \pop_macro_NR
- \pop_macro_EQ
- \pop_macro_NN
- \pop_macro_NC
+ \popmacro\NR
+ \popmacro\EQ
+ \popmacro\NN
+ \popmacro\NC
\to \everymathalignmentdone
\let\math_alignment_snap_start\relax
@@ -701,11 +694,11 @@
{\unskip
\math_cases_end_math
\aligntab
- \glet\math_cases_NC\math_cases_NC_first
+ \global\let\math_cases_NC\math_cases_NC_first
\dodirectdoubleempty\math_cases_NR}
\def\math_cases_NC_first
- {\glet\math_cases_NC\math_cases_NC_second}
+ {\global\let\math_cases_NC\math_cases_NC_second}
\def\math_cases_NC_second
{\math_cases_end_math\aligntab}
@@ -729,7 +722,7 @@
\let\NC\math_cases_NC_zero
\let\MC\math_cases_MC_zero
\let\NR\math_cases_NR_zero
- \glet\math_cases_NC\math_cases_NC_first
+ \global\let\math_cases_NC\math_cases_NC_first
\normalbaselines
\mathsurround\zeropoint
\everycr\emptytoks
diff --git a/Master/texmf-dist/tex/context/base/mkiv/math-arr.mkiv b/Master/texmf-dist/tex/context/base/mkiv/math-arr.mkiv
index 2edb91465ff..a0dda66b9b7 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/math-arr.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/math-arr.mkiv
@@ -67,46 +67,39 @@
\def\math_arrows_construct#1#2#3#4#5% hm, looks like we do a double mathrel (a bit cleaned up .. needs checking)
{\begingroup
- \let\m_math_arrows_factor\!!plusone
- \let\m_math_arrows_extra \!!zerocount
+ \def\m_math_arrows_factor{1}%
+ \def\m_math_arrows_extra {0}%
\edef\p_math_spacing{#1}%
\csname\??matharrowsettings
\ifcsname\??matharrowsettings\p_math_spacing\endcsname\p_math_spacing\else\s!unknown\fi
\endcsname
\mathsurround\zeropoint
- \scratchmuskipone\muexpr\m_math_arrows_factor\muexpr\thirdoffourarguments #2\onemuskip\relax+\m_math_arrows_extra\onemuskip+\firstoffourarguments #2\onemuskip\relax
- \scratchmuskiptwo\muexpr\m_math_arrows_factor\muexpr\fourthoffourarguments#2\onemuskip\relax+\m_math_arrows_extra\onemuskip+\secondoffourarguments#2\onemuskip\relax
- \setbox\scratchboxone\hbox
- {\normalstartimath
- \scriptstyle
- \mkern\scratchmuskipone\relax
- #5\relax
- \mkern\scratchmuskiptwo\relax
- \normalstopimath}%
- \setbox\scratchboxtwo\hbox
- {\normalstartimath
- \scriptstyle
- \mkern\scratchmuskipone\relax
- #4\relax
- \mkern\scratchmuskiptwo\relax
- \normalstopimath}%
- \setbox\scratchboxthree\hbox{#3\displaystyle}%
- \scratchdimenone\wd\scratchboxone\relax
- \ifdim\wd\scratchboxtwo>\scratchdimenone
- \scratchdimenone\wd\scratchboxtwo\relax
+ \muskip0=\muexpr\m_math_arrows_factor\muexpr\thirdoffourarguments #2\onemuskip\relax+\m_math_arrows_extra\onemuskip+\firstoffourarguments #2\onemuskip\relax
+ \muskip2=\muexpr\m_math_arrows_factor\muexpr\fourthoffourarguments#2\onemuskip\relax+\m_math_arrows_extra\onemuskip+\secondoffourarguments#2\onemuskip\relax
+ \setbox0\hbox{\normalstartimath
+ \scriptstyle
+ \mkern\muskip0\relax
+ #5\relax
+ \mkern\muskip2\relax
+ \normalstopimath}%
+ \setbox2\hbox{\normalstartimath
+ \scriptstyle
+ \mkern\muskip0\relax
+ #4\relax
+ \mkern\muskip2\relax
+ \normalstopimath}%
+ \setbox4\hbox{#3\displaystyle}%
+ \dimen0\wd0\relax
+ \ifdim\wd2>\dimen0
+ \dimen0\wd2\relax
\fi
- \ifdim\wd\scratchboxthree>\scratchdimenone
- \scratchdimenone\wd\scratchboxthree\relax
+ \ifdim\wd4>\dimen0
+ \dimen0\wd4\relax
\fi
- \ifdim\wd\scratchboxthree=\scratchdimenone\else
- \setbox\scratchboxthree\hbox to \scratchdimenone{#3\displaystyle}%
+ \ifdim\wd4=\dimen0\else
+ \setbox4\hbox to \dimen0{#3\displaystyle}%
\fi
- \mathrel
- {\mathop
- {\hpack to \scratchdimenone{\hss\box\scratchboxthree\hss}}% pack ? copy ?
- \limits
- \normalsuperscript{\box\scratchboxone}%
- \normalsubscript {\box\scratchboxtwo}}%
+ \mathrel{\mathop{\hbox to \dimen0{\hss\copy4\hss}}\limits\normalsuperscript{\box0}\normalsubscript{\box2}}% pack ?
\endgroup}
\let\math_arrows_construct_single\math_arrows_construct
diff --git a/Master/texmf-dist/tex/context/base/mkiv/math-dim.lua b/Master/texmf-dist/tex/context/base/mkiv/math-dim.lua
index eb7adb53f97..72b9d7e5037 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/math-dim.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/math-dim.lua
@@ -157,8 +157,7 @@ function mathematics.dimensions(dimens) -- beware, dimens get spoiled
for variable, styles in next, defaults do
local tt = { }
for style, default in next, styles do
- local one = default[1]
- local two = default[2]
+ local one, two = default[1], default[2]
local value = dimens[one]
if value then
tt[style] = value
diff --git a/Master/texmf-dist/tex/context/base/mkiv/math-dir.lua b/Master/texmf-dist/tex/context/base/mkiv/math-dir.lua
index 38aa44358e2..759f1e79715 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/math-dir.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/math-dir.lua
@@ -48,9 +48,7 @@ local vlist_code = nodecodes.vlist
local nodepool = nuts.pool
-local new_direction = nodepool.direction
-
-local lefttoright_code = nodes.dirvalues.lefttoright
+local new_textdir = nodepool.textdir
local chardirections = characters.directions
local charmirrors = characters.mirrors
@@ -62,14 +60,16 @@ local a_mathbidi = attributes.private('mathbidi')
local function processmath(head)
local current = head
+ local done = false
local start = nil
local stop = nil
local function capsulate()
- head = insert_node_before(head,start,new_direction(lefttoright_code))
- insert_node_after(head,stop,new_direction(lefttoright_code,true))
+ head = insert_node_before(head,start,new_textdir("+TLT"))
+ insert_node_after(head,stop,new_textdir("-TLT"))
if trace_directions then
report_directions("reversed: %s",nodes.listtoutf(start,false,false,stop))
end
+ done = true
start = false
stop = nil
end
@@ -100,6 +100,7 @@ local function processmath(head)
if trace_directions then
report_directions("mirrored: %C to %C",char,mirror)
end
+ done = true
end
end
end
@@ -107,8 +108,11 @@ local function processmath(head)
elseif not start then
-- nothing
if id == hlist_code or id == vlist_code then
- local list = processmath(getlist(current))
+ local list, d = processmath(getlist(current))
setlist(current,list)
+ if d then
+ done = true
+ end
end
elseif start == stop then
start = nil
@@ -117,8 +121,11 @@ local function processmath(head)
-- math can pack things into hlists .. we need to make sure we don't process
-- too often: needs checking
if id == hlist_code or id == vlist_code then
- local list = processmath(getlist(current))
+ local list, d = processmath(getlist(current))
setlist(current,list)
+ if d then
+ done = true
+ end
end
end
current = getnext(current)
@@ -130,18 +137,21 @@ local function processmath(head)
else
capsulate()
end
- return head
+ return head, done
end
local enabled = false
function directions.processmath(head) -- style, penalties
if enabled then
- local a = getattr(head,a_mathbidi)
+ local h = tonut(head)
+ local a = getattr(h,a_mathbidi)
if a and a > 0 then
- return processmath(head)
+ local head, done = processmath(h)
+ return tonode(head), done
end
end
+ return head, false
end
function directions.setmath(n)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/math-ext.lua b/Master/texmf-dist/tex/context/base/mkiv/math-ext.lua
index b923853f4a6..a4b8657136c 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/math-ext.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/math-ext.lua
@@ -7,30 +7,29 @@ if not modules then modules = { } end modules ['math-ext'] = {
}
local rawget = rawget
-local basename = file.basename
-local sortedhash = table.sortedhash
-local mathematics = mathematics
-local extras = mathematics.extras or { }
-mathematics.extras = extras
+local trace_virtual = false trackers.register("math.virtual", function(v) trace_virtual = v end)
+
+local basename = file.basename
-local characters = characters
-local chardata = characters.data
-local mathpairs = characters.mathpairs
+local mathematics = mathematics
+local characters = characters
-local trace_virtual = false
-local report_math = logs.reporter("mathematics")
+local report_math = logs.reporter("mathematics")
-trackers.register("math.virtual", function(v) trace_virtual = v end)
+mathematics.extras = mathematics.extras or { }
+local extras = mathematics.extras
-local mathplus = { }
+local mathplus = { }
+local chardata = characters.data
+local mathpairs = characters.mathpairs
-- todo: store them and skip storage if already stored
-- todo: make a char-ctx.lua (or is this already side effect of save in format)
local function addextra(unicode)
local min = mathematics.extrabase
- local max = min + 0xFFF
+ local max = mathematics.privatebase - 1
if unicode >= min and unicode <= max then
if chardata[unicode] then
mathplus[unicode] = true
@@ -48,7 +47,7 @@ function extras.copy(target,original)
local characters = target.characters
local properties = target.properties
local parameters = target.parameters
- for unicode in sortedhash(mathplus) do
+ for unicode in table.sortedhash(mathplus) do
local extradesc = chardata[unicode]
local nextinsize = extradesc.nextinsize
if nextinsize then
diff --git a/Master/texmf-dist/tex/context/base/mkiv/math-fbk.lua b/Master/texmf-dist/tex/context/base/mkiv/math-fbk.lua
index 963461de5cf..7aa8c437fa1 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/math-fbk.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/math-fbk.lua
@@ -20,22 +20,10 @@ local sortedhash = table.sortedhash
local fallbacks = { }
mathematics.fallbacks = fallbacks
-local helpers = fonts.helpers
-local prependcommands = helpers.prependcommands
-local charcommand = helpers.commands.char
-local leftcommand = helpers.commands.left
-local rightcommand = helpers.commands.right
-local upcommand = helpers.commands.up
-local downcommand = helpers.commands.down
-local dummycommand = helpers.commands.dummy
-local popcommand = helpers.commands.pop
-local pushcommand = helpers.commands.push
-
local virtualcharacters = { }
-local hashes = fonts.hashes
-local identifiers = hashes.identifiers
-local lastmathids = hashes.lastmathids
+local identifiers = fonts.hashes.identifiers
+local lastmathids = fonts.hashes.lastmathids
-- we need a trick (todo): if we define scriptscript, script and text in
-- that order we could use their id's .. i.e. we could always add a font
@@ -127,8 +115,6 @@ function fallbacks.apply(target,original)
}
target.mathrelation = data
--
- local fullname = trace_fallbacks and target.properties.fullname
- --
for k, v in sortedhash(virtualcharacters) do
if not characters[k] then
local tv = type(v)
@@ -146,7 +132,7 @@ function fallbacks.apply(target,original)
-- something else
end
if trace_fallbacks and characters[k] then
- report_fallbacks("extending math font %a with %U",fullname,k)
+ report_fallbacks("extending math font %a with %U",target.properties.fullname,k)
end
end
end
@@ -165,21 +151,22 @@ local function reference(index,char)
if index then
return { "slot", index, char }
else
- return charcommand[char]
+ return { "char", char }
end
end
-local function raised(data,replacement,down)
- local character = data.scriptdata.characters[replacement]
+local function raised(data,down)
+ local replacement = data.replacement
+ local character = data.scriptdata.characters[replacement]
if character then
- local size = data.size
return {
width = character.width,
height = character.height,
depth = character.depth,
commands = {
- down and downcommand[size/4] or upcommand[size/2],
+ { "down", down and data.size/4 or -data.size/2 }, -- maybe exheight
reference(data.scriptindex,replacement)
+ -- { "slot", data.scriptindex or 0, char } -- hm, data.mathrelation.scriptindex
}
}
end
@@ -190,18 +177,33 @@ end
-- virtualcharacters[0x208A] = 0x2212
-- virtualcharacters[0x208B] = 0x002B
-virtualcharacters[0x207A] = function(data) return raised(data,0x002B) end
-virtualcharacters[0x207B] = function(data) return raised(data,0x2212) end
-virtualcharacters[0x208A] = function(data) return raised(data,0x002B,true) end
-virtualcharacters[0x208B] = function(data) return raised(data,0x2212,true) end
+virtualcharacters[0x207A] = function(data)
+ data.replacement = 0x002B
+ return raised(data)
+end
+
+virtualcharacters[0x207B] = function(data)
+ data.replacement = 0x2212
+ return raised(data)
+end
+
+virtualcharacters[0x208A] = function(data)
+ data.replacement = 0x002B
+ return raised(data,true)
+end
+
+virtualcharacters[0x208B] = function(data)
+ data.replacement = 0x2212
+ return raised(data,true)
+end
-- local function repeated(data,char,n,fraction)
-- local character = data.characters[char]
-- if character then
-- local width = character.width
-- local delta = width - character.italic -- width * fraction
--- local c = charcommand[char]
--- local r = rightcommand[right]
+-- local c = { "char", char }
+-- local r = { "right", right }
-- local commands = { }
-- for i=1,n-1 do
-- width = width + delta
@@ -232,9 +234,14 @@ addextra(0xFE350) -- MATHEMATICAL DOUBLE ARROW LEFT END
addextra(0xFE351) -- MATHEMATICAL DOUBLE ARROW MIDDLE PART
addextra(0xFE352) -- MATHEMATICAL DOUBLE ARROW RIGHT END
-local leftarrow = charcommand[0x2190]
-local relbar = charcommand[0x2212]
-local rightarrow = charcommand[0x2192]
+local push = { "push" }
+local pop = { "pop" }
+local leftarrow = { "char", 0x2190 }
+local relbar = { "char", 0x2212 }
+local rightarrow = { "char", 0x2192 }
+-- local leftarrow = { "slot", 0, 0x2190 }
+-- local relbar = { "slot", 0, 0x2212 }
+-- local rightarrow = { "slot", 0, 0x2192 }
virtualcharacters[0xFE350] = function(data)
-- return combined(data,0x2190,0x2212) -- leftarrow relbar
@@ -247,11 +254,11 @@ virtualcharacters[0xFE350] = function(data)
height = size,
depth = size,
commands = {
- pushcommand,
- downcommand[size/2],
+ push,
+ { "down", size/2 },
leftarrow,
- popcommand,
- upcommand[size/2],
+ pop,
+ { "down", -size/2 },
relbar,
}
}
@@ -268,11 +275,11 @@ virtualcharacters[0xFE351] = function(data)
height = size,
depth = size,
commands = {
- pushcommand,
- downcommand[size/2],
+ push,
+ { "down", size/2 },
relbar,
- popcommand,
- upcommand[size/2],
+ pop,
+ { "down", -size/2 },
relbar,
}
}
@@ -290,12 +297,12 @@ virtualcharacters[0xFE352] = function(data)
height = size,
depth = size,
commands = {
- pushcommand,
- downcommand[size/2],
+ push,
+ { "down", size/2 },
relbar,
- popcommand,
- rightcommand[chartwo.width - charone.width],
- upcommand[size/2],
+ pop,
+ { "right", chartwo.width - charone.width },
+ { "down", -size/2 },
rightarrow,
}
}
@@ -318,12 +325,10 @@ local function accent_to_extensible(target,newchr,original,oldchr,height,depth,s
height = height or 0
depth = depth or 0
end
- local oldheight = olddata.height or 0
- local correction = swap and
- downcommand[oldheight - height]
- or downcommand[oldheight + (offset or 0)]
+ local correction = swap and { "down", (olddata.height or 0) - height } or { "down", olddata.height + (offset or 0)}
local newdata = {
- commands = { correction, charcommand[oldchr] },
+ commands = { correction, { "slot", 1, oldchr } },
+ -- commands = { correction, { "slot", 0, oldchr } },
width = olddata.width,
height = height,
depth = depth,
@@ -335,12 +340,14 @@ local function accent_to_extensible(target,newchr,original,oldchr,height,depth,s
local oldnextdata = characters[nextglyph]
if oldnextdata then
local newnextdata = {
- commands = { correction, charcommand[nextglyph] },
+ commands = { correction, { "slot", 1, nextglyph } },
+ -- commands = { correction, { "slot", 0, nextglyph } },
width = oldnextdata.width,
height = height,
depth = depth,
}
- local newnextglyph = addprivate(target,formatters["M-N-%H"](nextglyph),newnextdata)
+-- local newnextglyph = addprivate(target,formatters["M-N-%H"](nextglyph),newnextdata)
+ local newnextglyph = addprivate(target,nil,newnextdata)
newdata.next = newnextglyph
local nextnextglyph = oldnextdata.next
if nextnextglyph == nextglyph then
@@ -365,12 +372,14 @@ local function accent_to_extensible(target,newchr,original,oldchr,height,depth,s
local olddata = characters[oldglyph]
if olddata then
local newdata = {
- commands = { correction, charcommand[oldglyph] },
+ commands = { correction, { "slot", 1, oldglyph } },
+ -- commands = { correction, { "slot", 0, oldglyph } },
width = olddata.width,
height = height,
depth = depth,
}
- hvi.glyph = addprivate(target,formatters["M-H-%H"](oldglyph),newdata)
+-- hvi.glyph = addprivate(target,formatters["M-H-%H"](oldglyph),newdata)
+ hvi.glyph = addprivate(target,nil,newdata)
else
report_fallbacks("error in fallback: no valid horiz_variants, slot %X, index %i",oldglyph,i)
end
@@ -384,16 +393,15 @@ end
virtualcharacters[0x203E] = function(data)
local target = data.target
- local height = 0
- local depth = 0
- -- local mathparameters = target.mathparameters
- -- if mathparameters then
- -- height = mathparameters.OverbarVerticalGap
- -- depth = mathparameters.UnderbarVerticalGap
- -- else
+ local height, depth = 0, 0
+-- local mathparameters = target.mathparameters
+-- if mathparameters then
+-- height = mathparameters.OverbarVerticalGap
+-- depth = mathparameters.UnderbarVerticalGap
+-- else
height = target.parameters.xheight/4
depth = height
- -- end
+-- end
return accent_to_extensible(target,0x203E,data.original,0x0305,height,depth,nil,nil,0x203E)
end
@@ -423,7 +431,7 @@ local function spacefraction(data,fraction)
local width = fraction * data.target.parameters.space
return {
width = width,
- commands = { rightcommand[width] }
+ commands = { { "right", width } }
}
end
@@ -431,7 +439,7 @@ local function charfraction(data,char)
local width = data.target.characters[char].width
return {
width = width,
- commands = { rightcommand[width] }
+ commands = { { "right", width } }
}
end
@@ -439,7 +447,7 @@ local function quadfraction(data,fraction)
local width = fraction * data.target.parameters.quad
return {
width = width,
- commands = { rightcommand[width] }
+ commands = { { "right", width } }
}
end
@@ -519,8 +527,9 @@ local function smashed(data,unicode,optional)
local shift = oldchar.height - height
local newchar = {
commands = {
- downcommand[shift],
- charcommand[unicode],
+ { "down", shift },
+ { "slot", 0, unicode },
+-- { "char", unicode },
},
height = height,
width = oldchar.width,
@@ -598,11 +607,11 @@ local function actuarian(data)
width = basewidth + 4 * linewidth,
unicode = 0x20E7,
commands = {
- rightcommand[2 * linewidth],
- downcommand[- baseheight - 3 * linewidth],
+ { "right", 2 * linewidth },
+ { "down", - baseheight - 3 * linewidth },
{ "rule", linewidth, basewidth + 4 * linewidth },
- leftcommand[linewidth],
- downcommand[baseheight + 4 * linewidth],
+ { "right", -linewidth },
+ { "down", baseheight + 4 * linewidth },
{ "rule", baseheight + 5 * linewidth, linewidth },
},
}
@@ -620,11 +629,11 @@ local function equals(data,unicode,snippet,advance,n) -- mathpair needs them
unicode = unicode,
width = n*basechar.width + (n-1)*advance,
commands = {
- charcommand[snippet],
- rightcommand[advance],
- charcommand[snippet],
- n > 2 and rightcommand[advance] or nil,
- n > 2 and charcommand[snippet] or nil,
+ { "char", snippet },
+ { "right", advance },
+ { "char", snippet },
+ n > 2 and { "right", advance } or nil,
+ n > 2 and { "char", snippet } or nil,
},
}
end
@@ -648,43 +657,11 @@ virtualcharacters[0x2980] = function(data) return equals(data,0x2980,0x007C,-1/8
-- height = height, -- we cheat (no time now)
-- depth = depth, -- we cheat (no time now)
-- commands = {
--- upcommand[height/2], -- sort of works
--- charcommand[0x003D],
--- leftcommand[width],
--- downcommand[height], -- sort of works
--- charcommand[0x003D],
+-- { "down", - height/2 }, -- sort of works
+-- { "char", 0x003D },
+-- { "right", -width },
+-- { "down", height }, -- sort of works
+-- { "char", 0x003D },
-- },
-- }
-- end
-
--- lucida needs this
-
-virtualcharacters[0x305] = function(data)
- local target = data.target
- local height = target.parameters.xheight/8
- local width = target.parameters.emwidth/2
- local depth = height
- local used = 0.8 * width
- return {
- width = width,
- height = height,
- depth = depth,
- commands = { { "rule", height, width } },
- horiz_variants = {
- {
- advance = width,
- ["end"] = used,
- glyph = 0x305,
- start = 0,
- },
- {
- advance = width,
- ["end"] = 0,
- extender = 1,
- glyph = 0x305,
- start = used,
- },
- }
- }
-end
-
diff --git a/Master/texmf-dist/tex/context/base/mkiv/math-fen.mkiv b/Master/texmf-dist/tex/context/base/mkiv/math-fen.mkiv
index 6c6724bf52e..a32ea410e74 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/math-fen.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/math-fen.mkiv
@@ -65,19 +65,14 @@
% we need the direct use of \Udelimiter because of { etc
-\newconditional\c_math_fenced_mirror \settrue \c_math_fenced_mirror
-\newconditional\c_math_fenced_sized \setfalse\c_math_fenced_sized
+\newconditional\c_math_fenced_mirror \settrue\c_math_fenced_mirror
\unexpanded\def\math_fenced_inject#1#2#3#4%
{\ifx#1\empty
#2.%
\else
\edef\p_mathclass{\mathfenceparameter\c!mathclass}%
- \ifconditional\c_math_fenced_sized
- \let\p_factor\v!fixed
- \else
- \edef\p_factor{\mathfenceparameter\c!factor}%
- \fi
+ \edef\p_factor{\mathfenceparameter\c!factor}%
\ifx\p_factor\empty
\ifx\p_mathclass\empty
#2%
@@ -102,11 +97,7 @@
\s!axis
% #2%
\else
- \ifx\p_factor\v!fixed
- \scratchdimen\scaledpoint
- \else
- \scratchdimen\dimexpr\p_factor\bodyfontsize/2\relax
- \fi
+ \scratchdimen\dimexpr\p_factor\bodyfontsize/2\relax
#3%
\s!height\scratchdimen
\s!depth\scratchdimen
@@ -130,14 +121,16 @@
\mathfenceparameter\c!left
\fi}%
\math_fenced_color_push
+ % \normalleft\ifx\p_left\empty.\else\Udelimiter\plusfour\fam\p_left\relax\fi
\math_fenced_inject\p_left\normalleft\Uleft\plusfour
\math_fenced_color_pop}
\def\math_fenced_middle
{\edef\p_middle
- {\mathfenceparameter\c!middle}%
+ {\mathfenceparameter\c!middle}%
\mskip\thinmuskip
\math_fenced_color_push
+ % \normalmiddle\ifx\p_middle\empty.\else\Udelimiter\plusfour\fam\p_middle\relax\fi
\math_fenced_inject\p_middle\normalmiddle\Umiddle\plusfour
\math_fenced_color_pop
\mskip\thinmuskip}
@@ -154,6 +147,7 @@
\mathfenceparameter\c!right
\fi}%
\math_fenced_color_push
+ % \normalright \ifx\p_right\empty.\else\Udelimiter\plusfive\fam\p_right\relax\fi
\math_fenced_inject\p_right\normalright\Uright\plusfive
\math_fenced_color_pop}
@@ -200,59 +194,15 @@
\edef\currentmathfence{#1}%
\dosingleempty\math_fenced_fenced_indeed}
-\def\math_fenced_force_size#1#2%
- {\attribute\mathsizeattribute\numexpr#1*\plushundred+#2\relax}
-
-% \unexpanded\def\math_fenced_fenced_indeed[#1]#2%
-% {\iffirstargument\setupcurrentmathfence[#1]\fi
-% \math_fenced_fenced_common
-% \edef\p_size{\mathfenceparameter\c!size}%
-% \ifx\p_size\empty
-% \setfalse\c_math_fenced_sized
-% \else
-% \settrue\c_math_fenced_sized
-% \math_fenced_force_size\bigmathdelimitervariant\p_size
-% \fi
-% \math_fenced_left
-% #2%
-% \math_fenced_right
-% \stopusemathstyleparameter
-% \endgroup
-% \advance\c_math_fenced_nesting\minusone}
-
-\unexpanded\def\math_fenced_fenced_indeed[#1]%
+\unexpanded\def\math_fenced_fenced_indeed[#1]#2%
{\iffirstargument\setupcurrentmathfence[#1]\fi
\math_fenced_fenced_common
- \edef\p_size{\mathfenceparameter\c!size}%
- \ifx\p_size\empty
- \expandafter\math_fenced_fenced_indeed_adapt
- \else
- \expandafter\math_fenced_fenced_indeed_fixed
- \fi}
-
-\unexpanded\def\math_fenced_fenced_indeed_finish
- {\stopusemathstyleparameter
- \endgroup
- \advance\c_math_fenced_nesting\minusone}
-
-\unexpanded\def\math_fenced_fenced_indeed_fixed#1%
- {\math_fenced_force_size\bigmathdelimitervariant\p_size
- \settrue\c_math_fenced_sized
\math_fenced_left
- \setfalse\c_math_fenced_sized
- #1%
- \settrue\c_math_fenced_sized
+ #2%
\math_fenced_right
- \setfalse\c_math_fenced_sized
- \math_fenced_fenced_indeed_finish}
-
-\unexpanded\def\math_fenced_fenced_indeed_adapt#1%
- {\setfalse\c_math_fenced_sized
- \math_fenced_left
- #1%
- \setfalse\c_math_fenced_sized
- \math_fenced_right
- \math_fenced_fenced_indeed_finish}
+ \stopusemathstyleparameter
+ \endgroup
+ \advance\c_math_fenced_nesting\minusone}
\appendtoks
\let\fenced\math_fenced_fenced
@@ -490,31 +440,31 @@
\installmathfencepair \letteropenbrace \Lbrace \letterclosebrace \Rbrace % as we escape in mp textexts
-\installmathfencepair . \Lnothing . \Rnothing
-\installmathfencepair . \Rnothingmirrored . \Lnothingmirrored
+\installmathfencepair . \Lnothing . \Rnothing
+\installmathfencepair . \Rnothingmirrored . \Lnothingmirrored
-\installmathfencepair [ \Lbracket ] \Rbracket
-\installmathfencepair ] \Rbracketmirrored [ \Lbracketmirrored
+\installmathfencepair [ \Lbracket ] \Rbracket
+\installmathfencepair ] \Rbracketmirrored [ \Lbracketmirrored
-\installmathfencepair ( \Lparenthesis ) \Rparenthesis
-\installmathfencepair ) \Rparenthesismirrored ( \Lparenthesismirrored
+\installmathfencepair ( \Lparenthesis ) \Rparenthesis
+\installmathfencepair ) \Rparentmirrored ( \Lparentmirrored
-\installmathfencepair < \Langle > \Rangle
-\installmathfencepair > \Ranglemirrored < \Langlemirrored
+\installmathfencepair < \Langle > \Rangle
+\installmathfencepair > \Ranglemirrored < \Langlemirrored
-\installmathfencepair / \Lsolidus / \Rsolidus
-%installmathfencepair / \Rsolidusmirrored / \Lsolidusmirrored
+\installmathfencepair / \Lsolidus / \Rsolidus
+%installmathfencepair / \Rsolidusmirrored / \Lsolidusmirrored
-\installmathfencepair | \Lbar | \Rbar
-%installmathfencepair | \Rbarmirrored | \Lbarmirrored
+\installmathfencepair | \Lbar | \Rbar
+%installmathfencepair | \Rbarmirrored | \Lbarmirrored
-\installmathfencepair ⌊ \Lfloor ⌋ \Rfloor
-\installmathfencepair ⌋ \Rfloormirrored ⌊ \Lfloormirrored
-\installmathfencepair ⌈ \Lceiling ⌉ \Rceiling
-\installmathfencepair ⌉ \Rceilingmirrored ⌈ \Lceilingmirrored
+\installmathfencepair ⌊ \Lfloor ⌋ \Rfloor
+\installmathfencepair ⌋ \Rfloormirrored ⌊ \Lfloormirrored
+\installmathfencepair ⌈ \Lceiling ⌉ \Rceiling
+\installmathfencepair ⌉ \Rceilingmirrored ⌈ \Lceilingmirrored
-\installmathfencepair âŸĻ \Langle âŸĐ \Rangle
-\installmathfencepair âŸĐ \Ranglemirrored âŸĻ \Langlemirrored
+\installmathfencepair âŸĻ \Langle âŸĐ \Rangle
+\installmathfencepair âŸĐ \Ranglemirrored âŸĻ \Langlemirrored
\installmathfencepair ⟩ \Ldoubleangle âŸŦ \Rdoubleangle
\installmathfencepair âŸŦ \Rdoubleanglemirrored ⟩ \Ldoubleanglemirrored
@@ -525,10 +475,10 @@
\installmathfencepair âĶ€ \Ltriplebar âĶ€ \Rtriplebar
%installmathfencepair âĶ€ \Rtriplebarmirrored âĶ€ \Ltriplebarmirrored
-% \installmathfencepair { \Lbrace } \Rbrace
-% \installmathfencepair } \Rbracemirrored { \Lbracemirrored
+% \installmathfencepair { \Lbrace } \Rbrace
+% \installmathfencepair } \Rbracemirrored { \Lbracemirrored
-\installmathfencepair âĶ— \Linterval âĶ˜ \Rinterval
+\installmathfencepair âĶ— \Linterv âĶ˜ \Rinterv
\appendtoks
\ignorediscretionaries % so $\mtext{a|b}$ works, this is ok because it's an \hbox
@@ -641,7 +591,7 @@
\ifcase\bigmathdelimitermethod
\math_fenced_step#2\relax
\or
- \math_fenced_force_size\bigmathdelimitervariant{#1}\relax
+ \attribute\mathsizeattribute\numexpr\bigmathdelimitervariant*\plushundred+#1\relax
\math_fenced_step#2\relax
\else
\math_fenced_step#2{\vpack to\csname\??mathbig\number#1\endcsname\bodyfontsize{}}%
@@ -671,7 +621,7 @@
\unexpanded\def\mathdelimiterstep#1#2%
{\begingroup
- \math_fenced_force_size\plusone{#1}%
+ \attribute\mathsizeattribute\numexpr\plushundred+#1\relax
\math_fenced_step#2\relax
\endgroup}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/math-frc.lua b/Master/texmf-dist/tex/context/base/mkiv/math-frc.lua
index 190c364101d..5c4879527d7 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/math-frc.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/math-frc.lua
@@ -28,8 +28,8 @@ end)
local ctx_normalatop = context.normalatop
local ctx_normalover = context.normalover
-local function mathfraction(how,left,right,width)
- if how == v_no then
+local function mathfraction(how,left,right,width) -- of course we could use the scanners directly here which
+ if how == v_no then -- is faster but also less abstract ... maybe some day
if left == 0x002E and right == 0x002E then
ctx_normalatop()
else
diff --git a/Master/texmf-dist/tex/context/base/mkiv/math-frc.mkiv b/Master/texmf-dist/tex/context/base/mkiv/math-frc.mkiv
index 97107a6bf91..9a5ce62b05d 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/math-frc.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/math-frc.mkiv
@@ -611,46 +611,6 @@
% \unexpanded\def\ShowMathFractions#1#2%
% {\mathematics{x+\tfrac{#1}{#2}+1+\frac{#1}{#2}+2+\sfrac{#1}{#2}+g}}
-%D More fracking (for Alan):
-
-\def\s!vfrac{vfrac}
-
-\unexpanded\def\math_frac_colored_vulgar#1#2%
- {\savecolor
- \colo_helpers_activate\p_math_fractions_color
- {\restorecolor#1}\Uskewed/{\restorecolor#2}}
-
-\unexpanded\def\math_frac_normal_vulgar#1#2%
- {{#1}\Uskewed/{#2}}
-
-\unexpanded\def\vfrac#1#2%
- {\bgroup
- \edef\p_math_fractions_color{\namedmathfractionparameter\s!vfrac\c!color}%
- \ifx\p_math_fractions_color\empty
- \expandafter\math_frac_normal_vulgar
- \else
- \expandafter\math_frac_colored_vulgar
- \fi
- {#1}%
- {#2}%
- \egroup}
-
-\appendtoks
- \edef\p_hfactor{\namedmathfractionparameter\s!vfrac\c!hfactor}%
- \edef\p_vfactor{\namedmathfractionparameter\s!vfrac\c!vfactor}%
- \Umathskewedfractionhgap\textstyle \p_hfactor\fontemwidth \mathstylefont\textstyle
- \Umathskewedfractionhgap\scriptstyle \p_hfactor\fontemwidth \mathstylefont\scriptstyle
- \Umathskewedfractionhgap\scriptscriptstyle\p_hfactor\fontemwidth \mathstylefont\scriptscriptstyle
- \Umathskewedfractionvgap\textstyle \p_vfactor\fontexheight\mathstylefont\textstyle
- \Umathskewedfractionvgap\scriptstyle \p_vfactor\fontexheight\mathstylefont\scriptstyle
- \Umathskewedfractionvgap\scriptscriptstyle\p_vfactor\fontexheight\mathstylefont\scriptscriptstyle
-\to \everysetupmathfraction
-
-\setupmathfraction
- [\s!vfrac]
- [\c!hfactor=.2,
- \c!vfactor=.1]
-
\protect \endinput
% I have no clue what \mthfrac and \mthsqrt are supposed to do but
@@ -700,7 +660,7 @@
% \unexpanded\def\mthfrac#1#2#3{[mthfrac: #1 #2 #3]}
% \unexpanded\def\mthsqrt#1#2#3{[mthsqrt: #1 #2 #3]}
-% used for prototyping \Uskewed
+% used for prototypine \Uskewed
%
% \unexpanded\def\skewedfractiona#1#2{%
% \raise
diff --git a/Master/texmf-dist/tex/context/base/mkiv/math-inc.lua b/Master/texmf-dist/tex/context/base/mkiv/math-inc.lua
deleted file mode 100644
index 010d29a359a..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/math-inc.lua
+++ /dev/null
@@ -1,87 +0,0 @@
-if not modules then modules = { } end modules ['back-inc'] = {
- version = 1.001,
- comment = "companion to back-exp.mkiv",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
--- This is an experiment. If it's really useful then I'll make a more efficient
--- local export facility.
-
-local tonumber, next = tonumber, next
-local utfbyte, utfchar, utfsplit = utf.byte, utf.char, utf.split
-local match, gsub = string.match, string.gsub
-local nspaces = string.nspaces
-local concat = table.concat
-local xmltext = xml.text
-local undent = buffers.undent
-
-local f_entity = string.formatters["&x%X;"]
-local f_blob = string.formatters['<?xml version="2.0"?>\n\n<!-- formula %i -->\n\n%s']
-
-local all = nil
-local back = nil
-
-local function unmath(s)
- local t = utfsplit(s)
- for i=1,#t do
- local ti = t[i]
- local bi = utfbyte(ti)
- if bi > 0xFFFF then
- local ch = back[bi]
- t[i] = ch and utfchar(ch) or f_entity(bi)
- end
- end
- s = concat(t)
- return s
-end
-
-local function beautify(s)
- local b = match(s,"^( *)<m:math")
- local e = match(s,"( *)</m:math>%s*$")
- if b and e then
- b = #b
- e = #e
- if e > b then
- s = undent(nspaces[e-b] .. s)
- elseif e < b then
- s = undent((gsub(s,"^( *)",nspaces[b-e])))
- end
- end
- return s
-end
-
-local function getblob(n)
- if all == nil then
- local name = file.nameonly(tex.jobname)
- local full = name .. "-export/" .. name .. "-raw.xml"
- if lfs.isfile(full) then
- all = { }
- back = { }
- local root = xml.load(full)
- for c in xml.collected(root,"formulacontent") do
- local index = tonumber(c.at.n)
- all[index] = f_blob(index,beautify(xmltext(c,"math") or ""))
- end
- local it = mathematics.alphabets.regular.it
- for k, v in next, it.digits do back[v] = k end
- for k, v in next, it.ucletters do back[v] = k end
- for k, v in next, it.lcletters do back[v] = k end
- else
- all = false
- end
- end
- if all == false then
- return ""
- end
- return unmath(all[n] or "")
-end
-
-interfaces.implement {
- name = "xmlformulatobuffer",
- arguments = { "integer", "string" },
- actions = function(n,target)
- buffers.assign(target,getblob(n))
- end
-}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/math-inc.mkiv b/Master/texmf-dist/tex/context/base/mkiv/math-inc.mkiv
deleted file mode 100644
index 2821580cbf1..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/math-inc.mkiv
+++ /dev/null
@@ -1,69 +0,0 @@
-%D \module
-%D [ file=math-inc,
-%D version=2018.06.23,
-%D title=\CONTEXT\ Math Macros,
-%D subtitle=XML inclusion,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Math Macros / XML inclusion}
-
-\registerctxluafile{math-inc}{}
-
-%D I had some doubt about including this in \CONTEXT\ but it might serve some users
-%D anyway. It's always the question to what extent one can be really roundtrip. I
-%D might improve it when I need it.
-
-% Talking about creating from a source ... June Lee's transcription of
-% Close to You by Jacob Collier is an amazing example:
-%
-% https://www.youtube.com/watch?v=hdBVN-HMuqI
-
-\unprotect
-
-\definesymbol[mmlattachment][{\infofont\darkred mml}]
-\definesymbol[mmlcomment] [{\infofont\darkblue mml}]
-
-\unexpanded\def\lxml_add_mml_blob#1#2%
- {\relax
- \clf_xmlformulatobuffer\number\c_strc_formulas_n{temp-xml-export}%
- #2%
- [\c!symbol=#1,%
- \c!space=\v!yes,%
- \c!buffer=temp-xml-export,%
- \c!name={formula-\number\c_strc_formulas_n.xml}]%
- \relax}
-
-\unexpanded\def\xmlattachmml
- {\iftrialtypesetting \else \ifexporting \iflocation
- \dostarttagged\t!ignore\empty
- \lxml_add_mml_blob{mmlattachment}\attachment
- \dostoptagged
- \fi \fi \fi}
-
-\unexpanded\def\xmlcommentmml
- {\iftrialtypesetting \else \ifexporting \iflocation
- \dostarttagged\t!ignore\empty
- \lxml_add_mml_blob{mmlcomment}\comment
- \dostoptagged
- \fi \fi \fi}
-
-%D This kind of feature creep is not yet configurable, nor documented.
-
-\unexpanded\def\xmladdmmlsource
- {\iftrialtypesetting \else \ifexporting \iflocation
- \dostarttagged\t!ignore\empty
- \inleftmargin{%
- \lxml_add_mml_blob{mmlattachment}\attachment
- \quad
- \lxml_add_mml_blob{mmlcomment}\comment
- }%
- \dostoptagged
- \fi \fi \fi}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkiv/math-ini.lua b/Master/texmf-dist/tex/context/base/mkiv/math-ini.lua
index 7a841970209..b79ef8c8cf4 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/math-ini.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/math-ini.lua
@@ -36,8 +36,8 @@ local report_math = logs.reporter("mathematics","initializing")
mathematics = mathematics or { }
local mathematics = mathematics
-mathematics.extrabase = fonts.privateoffsets.mathextrabase -- here we push some virtuals
-mathematics.privatebase = fonts.privateoffsets.mathbase -- here we push the ex
+mathematics.extrabase = 0xFE000 -- here we push some virtuals
+mathematics.privatebase = 0xFF000 -- here we push the ex
local unsetvalue = attributes.unsetvalue
local allocate = utilities.storage.allocate
@@ -289,8 +289,7 @@ function mathematics.define(family)
local data = characters.data
for unicode, character in sortedhash(data) do
local symbol = character.mathsymbol
- local mset = true
- local dset = true
+ local mset, dset = true, true
if symbol then
local other = data[symbol]
local class = other.mathclass
@@ -642,7 +641,7 @@ function mathematics.big(tfmdata,unicode,n,method)
end
end
end
- elseif method == 3 then
+ else
local size = 1.33^n
if method == 4 then
size = tfmdata.parameters.size * size
diff --git a/Master/texmf-dist/tex/context/base/mkiv/math-ini.mkiv b/Master/texmf-dist/tex/context/base/mkiv/math-ini.mkiv
index 50da1a400c8..17d900d74f2 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/math-ini.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/math-ini.mkiv
@@ -123,12 +123,9 @@
\definesystemattribute[mathbidi] [public]
\definesystemattribute[mathdomain] [public]
\definesystemattribute[mathcollapsing] [public]
-\definesystemattribute[mathunstack] [public]
\definesystemattribute[displaymath] [public]
-\mathflattenmode 31
-
\appendtoks
\attribute\mathmodeattribute\plusone
\to \everydisplay
@@ -220,20 +217,18 @@
\unexpanded\def\startmathematics % no grouping, if ever then also an optional second
{\doifelsenextoptionalcs\math_mathematics_start_yes\math_mathematics_start_nop}
-\installmacrostack\currentmathematics
-
\unexpanded\def\math_mathematics_start_yes[#1]%
- {\push_macro_currentmathematics
+ {\pushmacro\currentmathematics
\edef\currentmathematics{#1}% check for valid
\the\everyswitchmathematics}
\unexpanded\def\math_mathematics_start_nop
- {\push_macro_currentmathematics
+ {\pushmacro\currentmathematics
\let\currentmathematics\empty
\the\everyswitchmathematics}
\unexpanded\def\stopmathematics
- {\pop_macro_currentmathematics
+ {\popmacro\currentmathematics
\the\everyswitchmathematics}
\definemathematics[\v!default] % not needed, but nicer when nesting back to normal
@@ -739,6 +734,7 @@
%
% \def\math_op{\ifx\nexttoken\bgroup\else\nexttoken\egroup\fi}
+
% this one too: \letvalue{\??mathcodecommand op}\mathop ?
\unexpanded\def\normalmbox
@@ -754,15 +750,17 @@
{\ifmmode\normalmbox\else\normalhbox\fi}
\unexpanded\def\enablembox
- {\toksapp\everymathematics{\math_enable_mbox}}
+ {\appendtoks\math_enable_mbox\to \everymathematics}
+ {\everymathematics\expandafter{\the\everymathematics\math_enable_mbox}}
\def\math_enable_mbox
- {\let\hbox\mbox}
+ {\ifdefined\normalhbox\else\let\normalhbox\hbox\fi % ?
+ \let\hbox\mbox}
\unexpanded\def\snappedmath#1% sort of \struttedbox
{\dontleavehmode
\begingroup
- \setbox\scratchbox\normalhbox\bgroup
+ \setbox\scratchbox\hbox\bgroup
\startimath#1\stopimath
\egroup
\ht\scratchbox\strutht
@@ -1079,8 +1077,8 @@
% most math fonts have messed up primes, just test this: $\prime^{\prime^{\prime}}$
-{ \catcode\circumflexasciicode\othercatcode \glet\othercircumflextoken ^ }
-{ \catcode\circumflexasciicode\superscriptcatcode \glet\superscriptcircumflextoken^ }
+{ \catcode\circumflexasciicode\othercatcode \global\let\othercircumflextoken ^ }
+{ \catcode\circumflexasciicode\superscriptcatcode \global\let\superscriptcircumflextoken^ }
\ifdefined \prime \else
\Umathchardef\prime "0 "0 "2032
@@ -1275,13 +1273,9 @@
%D Memory saver:
-\def\math_basics_check_compact
- {\doifelse{\mathematicsparameter\c!compact}\v!yes
- \enabledirectives\disabledirectives[math.virtual.optional]}
-
\appendtoks
\ifx\currentmathematics\empty
- \math_basics_check_compact % less tracing
+ \doifelse{\mathematicsparameter\c!compact}\v!yes\enabledirectives\disabledirectives[math.virtual.optional]%
\fi
\to \everysetupmathematics
@@ -1317,31 +1311,18 @@
%D \HL
%D \stoptabulate
-% We will use proper constants when we go numbers instead of XXX.
-
\newconditional\c_math_right_to_left
-\installcorenamespace{mathaligndirection}
-
-\setvalue{\??mathaligndirection r2l}{\settrue\c_math_right_to_left}
-\setvalue{\??mathaligndirection\v!righttoleft}{\settrue\c_math_right_to_left}
-
\appendtoks
- \ifcsname\??mathaligndirection\mathematicsparameter\c!align\endcsname
- \lastnamedcs
- \else
- \setfalse\c_math_right_to_left
- \fi
+ \doifelse{\mathematicsparameter\c!align}{r2l}\settrue\setfalse\c_math_right_to_left
\to \everyswitchmathematics
\unexpanded\def\math_basics_synchronize_direction
- {\mathdirection\ifconditional\c_math_right_to_left\directionrighttoleft\else\directionlefttoright\fi}
-
-% Not \everymathematics as it comes too late and I'm not in the mood for a mixed mode
-% kludge now (should be a property of beginmath nodes and passed to callbacks).
+ {\mathdir T\ifconditional\c_math_right_to_left R\else L\fi T}
\appendtoks
\math_basics_synchronize_direction
+%to \everymathematics % comes too late and I'm not in the mood for a mixed mode kludge now (should be a property of beginmath nodes and passed to callbacks)
\to \everyswitchmathematics
% experimental (needed for an article)
@@ -1356,6 +1337,11 @@
\letvalue{\??mathbidi\v!yes}\math_bidi_enable
\letvalue{\??mathbidi\v!no }\math_bidi_disable
+% \appendtoks
+% \edef\p_bidi{\mathematicsparameter\c!bidi}%
+% \csname\??mathbidi\ifcsname\??mathbidi\p_bidi\endcsname\p_bidi\else\v!no\fi\endcsname
+% \to \everysetupmathematics
+
\appendtoks
\edef\p_bidi{\mathematicsparameter\c!bidi}% still needed ?
\ifcsname\??mathbidi\p_bidi\endcsname\lastnamedcs\else\math_bidi_disable\fi
@@ -1448,7 +1434,7 @@
\def\math_collapsing_initialize
{\ifnum\c_math_collapsing_attribute=\attributeunsetvalue \else
\clf_initializemathcollapsing % one time
- \glet\math_collapsing_initialize\relax
+ \global\let\math_collapsing_initialize\relax
\fi}
\appendtoks
@@ -1485,7 +1471,7 @@
\def\math_italics_initialize
{\ifnum\c_math_italics_attribute=\attributeunsetvalue \else
\clf_initializemathitalics % one time
- \glet\math_italics_initialize\relax
+ \global\let\math_italics_initialize\relax
\fi}
\appendtoks
@@ -1525,7 +1511,7 @@
\def\math_kernpairs_initialize
{\ifnum\c_math_kernpairs_attribute=\attributeunsetvalue \else
\clf_initializemathkernpairs % one time
- \glet\math_kernpairs_initialize\relax
+ \global\let\math_kernpairs_initialize\relax
\fi}
\appendtoks
@@ -2357,7 +2343,7 @@
% \c_math_styles_state_cramped\zerocount
% \c_math_styles_state_size \zerocount
% \rawprocesscommacommand[\m_math_style_asked]\math_style_collect
-% \expandafter\glet\csname\??mathstylecache\m_math_style_asked\normalexpanded{\endcsname\math_style_add_to_cache_choice}%
+% \global\expandafter\let\csname\??mathstylecache\m_math_style_asked\normalexpanded{\endcsname\math_style_add_to_cache_choice}%
% \csname\??mathstylecache\m_math_style_asked\endcsname}
\def\math_style_set_indeed
@@ -2379,7 +2365,7 @@
\c_math_styles_state_cramped\zerocount
\c_math_styles_state_size \zerocount
\rawprocesscommacommand[\m_math_style_asked]\math_style_collect
- \expandafter\glet\csname\??mathstylecache\m_math_style_asked\normalexpanded{\endcsname\math_style_add_to_cache_choice}%
+ \global\expandafter\let\csname\??mathstylecache\m_math_style_asked\normalexpanded{\endcsname\math_style_add_to_cache_choice}%
\csname\??mathstylecache\m_math_style_asked\endcsname}
\letvalue{\??mathstyle \??mathstyle }\math_style_set_mathstyle_mathstyle % still needed?
@@ -2482,12 +2468,10 @@
% I need to decide:
%
-%mathscriptboxmode \zerocount % no kerning
-%mathscriptboxmode \plusone % lists
-\mathscriptboxmode \plustwo % lists and boxes
-\mathscriptcharmode \plusone % lists and boxes
-%mathscriptboxmode \plusthree % lists and boxes with \boundary=1 (also for testing and demo)
-\mathrulethicknessmode\plusone % adaptive
+%mathscriptboxmode\zerocount % no kerning
+%mathscriptboxmode\plusone % lists
+\mathscriptboxmode\plustwo % lists and boxes
+%mathscriptboxmode\plusthree % lists and boxes with \boundary=1 (also for testing and demo)
\unexpanded\def\mathtext {\mathortext{\math_text_choice_font\relax}\hbox}
\unexpanded\def\mathword {\mathortext{\math_text_choice_word\relax}\hbox}
@@ -2545,7 +2529,7 @@
% this can become an option:
\unexpanded\def\math_display_align_hack % I don't like the global, maybe we should push and pop
- {\glet\math_display_align_hack_indeed\math_display_align_hack_remove_skip
+ {\global\let\math_display_align_hack_indeed\math_display_align_hack_remove_skip
\math_openup\displayopenupvalue % was \math_openup\jot
\everycr{\noalign{\math_display_align_hack_indeed}}}
@@ -2553,7 +2537,7 @@
{\ifdim\prevdepth>-\thousandpoint
\vskip\dimexpr-\lineskiplimit+\normallineskiplimit\relax
\fi
- \glet\math_display_align_hack_indeed\math_display_align_hack_insert_penalty}
+ \global\let\math_display_align_hack_indeed\math_display_align_hack_insert_penalty}
\def\math_display_align_hack_insert_penalty
{\penalty\interdisplaylinepenalty}
@@ -2783,7 +2767,7 @@
\def\math_domain_initialize
{\ifnum\c_math_domain_attribute=\attributeunsetvalue \else
\clf_initializemathdomain % one time
- \glet\math_domain_initialize\relax
+ \global\let\math_domain_initialize\relax
\fi}
\appendtoks
@@ -2807,7 +2791,7 @@
\installcorenamespace{mathrules}
-\unexpanded\def\enablemathrules{\letgvalue{\??mathrules\fontclass}\plusone}
+\unexpanded\def\enablemathrules{\global\letvalue{\??mathrules\fontclass}\plusone}
\appendtoks
\mathrulesmode\ifcsname\??mathrules\fontclass\endcsname
@@ -2818,70 +2802,6 @@
\mathrulesfam\zerocount
\to \everymathematics
-%D Maybe:
-
-% \starttabulate[|||c|c|]
-% \BC positive \BC negative \BC text \BC math \NC \NR
-% \NC \tex {f1} \tex {hairspace} \tex{,} \NC \tex {b1} \tex {neghairspace} \NC {\darkred\vl}\f1{\darkblue\vl} \NC ${\darkred\vl}\f1{\darkblue\vl}$ \NC \NR
-% \NC \tex {f2} \tex {thinspace} \tex{:} \NC \tex {b2} \tex {negthinspace} \tex{!} \NC {\darkred\vl}\f2{\darkblue\vl} \NC ${\darkred\vl}\f2{\darkblue\vl}$ \NC \NR
-% \NC \tex {f3} \tex {medspace} \tex{;} \NC \tex {b3} \tex {negmedspace} \NC {\darkred\vl}\f3{\darkblue\vl} \NC ${\darkred\vl}\f3{\darkblue\vl}$ \NC \NR
-% \NC \tex {f4} \tex {thickspace} \NC \tex {b4} \tex {negthickspace} \NC {\darkred\vl}\f4{\darkblue\vl} \NC ${\darkred\vl}\f4{\darkblue\vl}$ \NC \NR
-% \NC \tex {f5} \tex {enspace} \NC \tex {b5} \NC {\darkred\vl}\f5{\darkblue\vl} \NC ${\darkred\vl}\f5{\darkblue\vl}$ \NC \NR
-% \NC \tex {f6} \tex {emspace} \NC \tex {b6} \NC {\darkred\vl}\f6{\darkblue\vl} \NC ${\darkred\vl}\f6{\darkblue\vl}$ \NC \NR
-% \stoptabulate
-
-% \unexpanded\def\negenspace{\kern-.5\emwidth}
-% \unexpanded\def\negemspace{\kern- \emwidth}
-%
-% \unexpanded\def\math_f#1%
-% {\ifcase#1\or
-% \hairspace
-% \or
-% \thinspace
-% \or
-% \medspace
-% \or
-% \thickspace
-% \or
-% \enspace
-% \or
-% \emspace
-% \fi}
-%
-% \unexpanded\def\math_b#1%
-% {\ifcase#1\or
-% \neghairspace
-% \or
-% \negthinspace
-% \or
-% \negmedspace
-% \or
-% \negthickspace
-% \or
-% \negenspace
-% \or
-% \negemspace
-% \fi}
-%
-% \appendtoks
-% \let\f\math_f
-% \let\b\math_b
-% \to \everymathematics
-
-%D Experiment
-
-\unexpanded\def\math_scripts_stack
- {\attribute\mathunstackattribute\attributeunsetvalue}
-
-\unexpanded\def\math_scripts_unstack
- {\clf_enablescriptunstacking
- \attribute\mathunstackattribute\plusone}
-
-\appendtoks
- \let\stackscripts \math_scripts_stack
- \let\unstackscripts\math_scripts_unstack
-\to \everymathematics
-
\protect \endinput
% % not used (yet)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/math-noa.lua b/Master/texmf-dist/tex/context/base/mkiv/math-noa.lua
index ea758358754..529837cfaa6 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/math-noa.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/math-noa.lua
@@ -19,7 +19,7 @@ if not modules then modules = { } end modules ['math-noa'] = {
-- 20D6 -> 2190
-- 20D7 -> 2192
--- todo: most is mathchar_code so we can have simple dedicated loops
+-- todo: most is math_char so we can have simple dedicated loops
-- nota bene: uunderdelimiter uoverdelimiter etc are radicals (we have 5 types)
@@ -31,184 +31,177 @@ local insert, remove = table.insert, table.remove
local div = math.div
local bor, band = bit32.bor, bit32.band
-local fonts = fonts
-local nodes = nodes
-local node = node
-local mathematics = mathematics
-local context = context
-
-local otf = fonts.handlers.otf
-local otffeatures = fonts.constructors.features.otf
-local registerotffeature = otffeatures.register
-
-local privateattribute = attributes.private
-local registertracker = trackers.register
-local registerdirective = directives.register
-local logreporter = logs.reporter
-local setmetatableindex = table.setmetatableindex
-
-local colortracers = nodes.tracers.colors
-
-local trace_remapping = false registertracker("math.remapping", function(v) trace_remapping = v end)
-local trace_processing = false registertracker("math.processing", function(v) trace_processing = v end)
-local trace_analyzing = false registertracker("math.analyzing", function(v) trace_analyzing = v end)
-local trace_normalizing = false registertracker("math.normalizing", function(v) trace_normalizing = v end)
-local trace_collapsing = false registertracker("math.collapsing", function(v) trace_collapsing = v end)
-local trace_fixing = false registertracker("math.fixing", function(v) trace_foxing = v end)
-local trace_patching = false registertracker("math.patching", function(v) trace_patching = v end)
-local trace_goodies = false registertracker("math.goodies", function(v) trace_goodies = v end)
-local trace_variants = false registertracker("math.variants", function(v) trace_variants = v end)
-local trace_alternates = false registertracker("math.alternates", function(v) trace_alternates = v end)
-local trace_italics = false registertracker("math.italics", function(v) trace_italics = v end)
-local trace_kernpairs = false registertracker("math.kernpairs", function(v) trace_kernpairs = v end)
-local trace_domains = false registertracker("math.domains", function(v) trace_domains = v end)
-local trace_families = false registertracker("math.families", function(v) trace_families = v end)
-local trace_fences = false registertracker("math.fences", function(v) trace_fences = v end)
-local trace_unstacking = false registertracker("math.unstack", function(v) trace_unstacking = v end)
-
-local check_coverage = true registerdirective("math.checkcoverage", function(v) check_coverage = v end)
-
-local report_processing = logreporter("mathematics","processing")
-local report_remapping = logreporter("mathematics","remapping")
-local report_normalizing = logreporter("mathematics","normalizing")
-local report_collapsing = logreporter("mathematics","collapsing")
-local report_fixing = logreporter("mathematics","fixing")
-local report_patching = logreporter("mathematics","patching")
-local report_goodies = logreporter("mathematics","goodies")
-local report_variants = logreporter("mathematics","variants")
-local report_alternates = logreporter("mathematics","alternates")
-local report_italics = logreporter("mathematics","italics")
-local report_kernpairs = logreporter("mathematics","kernpairs")
-local report_domains = logreporter("mathematics","domains")
-local report_families = logreporter("mathematics","families")
-local report_fences = logreporter("mathematics","fences")
-local report_unstacking = logreporter("mathematics","unstack")
-
-local a_mathrendering = privateattribute("mathrendering")
-local a_exportstatus = privateattribute("exportstatus")
-
-local nuts = nodes.nuts
-local nodepool = nuts.pool
-local tonut = nuts.tonut
-local nutstring = nuts.tostring
-
-local setfield = nuts.setfield
-local setlink = nuts.setlink
-local setlist = nuts.setlist
-local setnext = nuts.setnext
-local setprev = nuts.setprev
-local setchar = nuts.setchar
-local setfam = nuts.setfam
-local setsubtype = nuts.setsubtype
-local setattr = nuts.setattr
-local setattrlist = nuts.setattrlist
-local setwidth = nuts.setwidth
-local setheight = nuts.setheight
-local setdepth = nuts.setdepth
-
-local getfield = nuts.getfield
-local getnext = nuts.getnext
-local getprev = nuts.getprev
-local getboth = nuts.getboth
-local getid = nuts.getid
-local getsubtype = nuts.getsubtype
-local getchar = nuts.getchar
-local getfont = nuts.getfont
-local getfam = nuts.getfam
-local getattr = nuts.getattr
-local getlist = nuts.getlist
-local getwidth = nuts.getwidth
-local getheight = nuts.getheight
-local getdepth = nuts.getdepth
-
-local getnucleus = nuts.getnucleus
-local getsub = nuts.getsub
-local getsup = nuts.getsup
-
-local setnucleus = nuts.setnucleus
-local setsub = nuts.setsub
-local setsup = nuts.setsup
-
-local flush_node = nuts.flush
-local copy_node = nuts.copy
-local slide_nodes = nuts.slide
-local set_visual = nuts.setvisual
-
-local mlist_to_hlist = nuts.mlist_to_hlist
-
-local font_of_family = node.family_font
-
-local new_kern = nodepool.kern
-local new_submlist = nodepool.submlist
-local new_noad = nodepool.noad
-local new_delimiter = nodepool.delimiter
-local new_fence = nodepool.fence
-
-local fonthashes = fonts.hashes
-local fontdata = fonthashes.identifiers
-local fontcharacters = fonthashes.characters
-local fontitalics = fonthashes.italics
-
-local variables = interfaces.variables
-local texsetattribute = tex.setattribute
-local texgetattribute = tex.getattribute
-local unsetvalue = attributes.unsetvalue
-local implement = interfaces.implement
-
-local v_reset = variables.reset
-
-local chardata = characters.data
-
-noads = noads or { } -- todo: only here
-local noads = noads
-
-noads.processors = noads.processors or { }
-local processors = noads.processors
-
-noads.handlers = noads.handlers or { }
-local handlers = noads.handlers
-
-local tasks = nodes.tasks
-local enableaction = tasks.enableaction
-local setaction = tasks.setaction
-
-local nodecodes = nodes.nodecodes
-local noadcodes = nodes.noadcodes
-local fencecodes = nodes.fencecodes
-
-local ordnoad_code = noadcodes.ord
-local relnode_code = noadcodes.rel
-local binnoad_code = noadcodes.bin
-local opennoad_code = noadcodes.open
-local closenoad_code = noadcodes.close
-local punctnoad_code = noadcodes.punct
-local opdisplaylimitsnoad_code = noadcodes.opdisplaylimits
-local oplimitsnoad_code = noadcodes.oplimits
-local opnolimitsnoad_code = noadcodes.opnolimits
-local innernoad_code = noadcodes.inner
-
-local noad_code = nodecodes.noad -- attr nucleus sub sup
-local accent_code = nodecodes.accent -- attr nucleus sub sup accent
-local radical_code = nodecodes.radical -- attr nucleus sub sup left degree
-local fraction_code = nodecodes.fraction -- attr nucleus sub sup left right
-local subbox_code = nodecodes.subbox -- attr list
-local submlist_code = nodecodes.submlist -- attr list
-local mathchar_code = nodecodes.mathchar -- attr fam char
-local mathtextchar_code = nodecodes.mathtextchar -- attr fam char
-local delim_code = nodecodes.delim -- attr small_fam small_char large_fam large_char
------ style_code = nodecodes.style -- attr style
-local math_choice = nodecodes.choice -- attr display text script scriptscript
-local fence_code = nodecodes.fence -- attr subtype
-
-local leftfence_code = fencecodes.left
-local middlefence_code = fencecodes.middle
-local rightfence_code = fencecodes.right
+local fonts = fonts
+local nodes = nodes
+local node = node
+local mathematics = mathematics
+local context = context
+
+local otf = fonts.handlers.otf
+local otffeatures = fonts.constructors.features.otf
+local registerotffeature = otffeatures.register
+
+local privateattribute = attributes.private
+local registertracker = trackers.register
+local registerdirective = directives.register
+local logreporter = logs.reporter
+local setmetatableindex = table.setmetatableindex
+
+local colortracers = nodes.tracers.colors
+
+local trace_remapping = false registertracker("math.remapping", function(v) trace_remapping = v end)
+local trace_processing = false registertracker("math.processing", function(v) trace_processing = v end)
+local trace_analyzing = false registertracker("math.analyzing", function(v) trace_analyzing = v end)
+local trace_normalizing = false registertracker("math.normalizing", function(v) trace_normalizing = v end)
+local trace_collapsing = false registertracker("math.collapsing", function(v) trace_collapsing = v end)
+local trace_fixing = false registertracker("math.fixing", function(v) trace_foxing = v end)
+local trace_patching = false registertracker("math.patching", function(v) trace_patching = v end)
+local trace_goodies = false registertracker("math.goodies", function(v) trace_goodies = v end)
+local trace_variants = false registertracker("math.variants", function(v) trace_variants = v end)
+local trace_alternates = false registertracker("math.alternates", function(v) trace_alternates = v end)
+local trace_italics = false registertracker("math.italics", function(v) trace_italics = v end)
+local trace_kernpairs = false registertracker("math.kernpairs", function(v) trace_kernpairs = v end)
+local trace_domains = false registertracker("math.domains", function(v) trace_domains = v end)
+local trace_families = false registertracker("math.families", function(v) trace_families = v end)
+local trace_fences = false registertracker("math.fences", function(v) trace_fences = v end)
+
+local check_coverage = true registerdirective("math.checkcoverage", function(v) check_coverage = v end)
+
+local report_processing = logreporter("mathematics","processing")
+local report_remapping = logreporter("mathematics","remapping")
+local report_normalizing = logreporter("mathematics","normalizing")
+local report_collapsing = logreporter("mathematics","collapsing")
+local report_fixing = logreporter("mathematics","fixing")
+local report_patching = logreporter("mathematics","patching")
+local report_goodies = logreporter("mathematics","goodies")
+local report_variants = logreporter("mathematics","variants")
+local report_alternates = logreporter("mathematics","alternates")
+local report_italics = logreporter("mathematics","italics")
+local report_kernpairs = logreporter("mathematics","kernpairs")
+local report_domains = logreporter("mathematics","domains")
+local report_families = logreporter("mathematics","families")
+local report_fences = logreporter("mathematics","fences")
+
+local a_mathrendering = privateattribute("mathrendering")
+local a_exportstatus = privateattribute("exportstatus")
+
+local nuts = nodes.nuts
+local nodepool = nuts.pool
+local tonut = nuts.tonut
+local tonode = nuts.tonode
+local nutstring = nuts.tostring
+
+local setfield = nuts.setfield
+local setlink = nuts.setlink
+local setlist = nuts.setlist
+local setnext = nuts.setnext
+local setprev = nuts.setprev
+local setchar = nuts.setchar
+local setfam = nuts.setfam
+local setsubtype = nuts.setsubtype
+local setattr = nuts.setattr
+local setattrlist = nuts.setattrlist
+
+local getfield = nuts.getfield
+local getnext = nuts.getnext
+local getprev = nuts.getprev
+local getboth = nuts.getboth
+local getid = nuts.getid
+local getsubtype = nuts.getsubtype
+local getchar = nuts.getchar
+local getfont = nuts.getfont
+local getfam = nuts.getfam
+local getattr = nuts.getattr
+local getlist = nuts.getlist
+
+local getnucleus = nuts.getnucleus
+local getsub = nuts.getsub
+local getsup = nuts.getsup
+
+local setnucleus = nuts.setnucleus
+local setsub = nuts.setsub
+local setsup = nuts.setsup
+
+local flush_node = nuts.flush
+local copy_node = nuts.copy
+local slide_nodes = nuts.slide
+local set_visual = nuts.setvisual
+
+local mlist_to_hlist = nodes.mlist_to_hlist
+
+local font_of_family = node.family_font
+
+local new_kern = nodepool.kern
+local new_submlist = nodepool.submlist
+local new_noad = nodepool.noad
+local new_delimiter = nodepool.delimiter
+local new_fence = nodepool.fence
+
+local fonthashes = fonts.hashes
+local fontdata = fonthashes.identifiers
+local fontcharacters = fonthashes.characters
+local fontitalics = fonthashes.italics
+
+local variables = interfaces.variables
+local texsetattribute = tex.setattribute
+local texgetattribute = tex.getattribute
+local unsetvalue = attributes.unsetvalue
+local implement = interfaces.implement
+
+local v_reset = variables.reset
+
+local chardata = characters.data
+
+noads = noads or { } -- todo: only here
+local noads = noads
+
+noads.processors = noads.processors or { }
+local processors = noads.processors
+
+noads.handlers = noads.handlers or { }
+local handlers = noads.handlers
+
+local tasks = nodes.tasks
+local enableaction = tasks.enableaction
+local setaction = tasks.setaction
+
+local nodecodes = nodes.nodecodes
+local noadcodes = nodes.noadcodes
+local fencecodes = nodes.fencecodes
+
+local noad_ord = noadcodes.ord
+local noad_rel = noadcodes.rel
+local noad_bin = noadcodes.bin
+local noad_open = noadcodes.open
+local noad_close = noadcodes.close
+local noad_punct = noadcodes.punct
+local noad_opdisplaylimits = noadcodes.opdisplaylimits
+local noad_oplimits = noadcodes.oplimits
+local noad_opnolimits = noadcodes.opnolimits
+local noad_inner = noadcodes.inner
+
+local math_noad = nodecodes.noad -- attr nucleus sub sup
+local math_accent = nodecodes.accent -- attr nucleus sub sup accent
+local math_radical = nodecodes.radical -- attr nucleus sub sup left degree
+local math_fraction = nodecodes.fraction -- attr nucleus sub sup left right
+local math_subbox = nodecodes.subbox -- attr list
+local math_submlist = nodecodes.submlist -- attr list
+local math_char = nodecodes.mathchar -- attr fam char
+local math_textchar = nodecodes.mathtextchar -- attr fam char
+local math_delim = nodecodes.delim -- attr small_fam small_char large_fam large_char
+----- math_style = nodecodes.style -- attr style
+local math_choice = nodecodes.choice -- attr display text script scriptscript
+local math_fence = nodecodes.fence -- attr subtype
+
+local left_fence_code = fencecodes.left
+local middle_fence_code = fencecodes.middle
+local right_fence_code = fencecodes.right
-- local mathclasses = mathematics.classes
-- local fenceclasses = {
--- [leftfence_code] = mathclasses.open,
--- [middlefence_code] = mathclasses.middle,
--- [rightfence_code] = mathclasses.close,
+-- [left_fence_code] = mathclasses.open,
+-- [middle_fence_code] = mathclasses.middle,
+-- [right_fence_code] = mathclasses.close,
-- }
-- this initial stuff is tricky as we can have removed and new nodes with the same address
@@ -218,7 +211,6 @@ local rightfence_code = fencecodes.right
-- local sf = setfield local st = setmetatableindex("number") setfield = function(n,f,v) st[f] = st[f] + 1 sf(n,f,v) end mathematics.SETFIELD = st
local function process(start,what,n,parent)
-
if n then
n = n + 1
else
@@ -232,9 +224,9 @@ local function process(start,what,n,parent)
while start do
local id = getid(start)
if trace_processing then
- if id == noad_code then
+ if id == math_noad then
report_processing("%w%S, class %a",n*2,nutstring(start),noadcodes[getsubtype(start)])
- elseif id == mathchar_code then
+ elseif id == math_char then
local char = getchar(start)
local font = getfont(start)
local fam = getfam(start)
@@ -264,16 +256,16 @@ local function process(start,what,n,parent)
-- report_processing("stop processing")
end
end
- elseif id == noad_code then
+ elseif id == math_noad then
-- single characters are like this
local noad = getnucleus(start) if noad then process(noad,what,n,start) end -- list
noad = getsup (start) if noad then process(noad,what,n,start) end -- list
noad = getsub (start) if noad then process(noad,what,n,start) end -- list
- elseif id == mathchar_code or id == mathtextchar_code or id == delim_code then
+ elseif id == math_char or id == math_textchar or id == math_delim then
break
- elseif id == subbox_code or id == submlist_code then
+ elseif id == math_subbox or id == math_submlist then
local noad = getlist(start) if noad then process(noad,what,n,start) end -- list (not getlist !)
- elseif id == fraction_code then
+ elseif id == math_fraction then
local noad = getfield(start,"num") if noad then process(noad,what,n,start) end -- list
noad = getfield(start,"denom") if noad then process(noad,what,n,start) end -- list
noad = getfield(start,"left") if noad then process(noad,what,n,start) end -- delimiter
@@ -283,21 +275,21 @@ local function process(start,what,n,parent)
noad = getfield(start,"text") if noad then process(noad,what,n,start) end -- list
noad = getfield(start,"script") if noad then process(noad,what,n,start) end -- list
noad = getfield(start,"scriptscript") if noad then process(noad,what,n,start) end -- list
- elseif id == fence_code then
+ elseif id == math_fence then
local noad = getfield(start,"delim") if noad then process(noad,what,n,start) end -- delimiter
- elseif id == radical_code then
+ elseif id == math_radical then
local noad = getnucleus(start) if noad then process(noad,what,n,start) end -- list
noad = getsup (start) if noad then process(noad,what,n,start) end -- list
noad = getsub (start) if noad then process(noad,what,n,start) end -- list
noad = getfield(start,"left") if noad then process(noad,what,n,start) end -- delimiter
noad = getfield(start,"degree") if noad then process(noad,what,n,start) end -- list
- elseif id == accent_code then
+ elseif id == math_accent then
local noad = getnucleus(start) if noad then process(noad,what,n,start) end -- list
noad = getsup (start) if noad then process(noad,what,n,start) end -- list
noad = getsub (start) if noad then process(noad,what,n,start) end -- list
noad = getfield(start,"accent") if noad then process(noad,what,n,start) end -- list
noad = getfield(start,"bot_accent") if noad then process(noad,what,n,start) end -- list
- -- elseif id == style_code then
+ -- elseif id == math_style then
-- -- has a next
-- else
-- -- glue, penalty, etc
@@ -305,20 +297,20 @@ local function process(start,what,n,parent)
start = getnext(start)
end
if not parent then
- return initial -- only first level -- for now
+ return initial, true -- only first level -- for now
end
end
local function processnested(current,what,n)
local noad = nil
local id = getid(current)
- if id == noad_code then
+ if id == math_noad then
noad = getnucleus(current) if noad then process(noad,what,n,current) end -- list
noad = getsup (current) if noad then process(noad,what,n,current) end -- list
noad = getsub (current) if noad then process(noad,what,n,current) end -- list
- elseif id == subbox_code or id == submlist_code then
+ elseif id == math_subbox or id == math_submlist then
noad = getlist(current) if noad then process(noad,what,n,current) end -- list (not getlist !)
- elseif id == fraction_code then
+ elseif id == math_fraction then
noad = getfield(current,"num") if noad then process(noad,what,n,current) end -- list
noad = getfield(current,"denom") if noad then process(noad,what,n,current) end -- list
noad = getfield(current,"left") if noad then process(noad,what,n,current) end -- delimiter
@@ -328,15 +320,15 @@ local function processnested(current,what,n)
noad = getfield(current,"text") if noad then process(noad,what,n,current) end -- list
noad = getfield(current,"script") if noad then process(noad,what,n,current) end -- list
noad = getfield(current,"scriptscript") if noad then process(noad,what,n,current) end -- list
- elseif id == fence_code then
+ elseif id == math_fence then
noad = getfield(current,"delim") if noad then process(noad,what,n,current) end -- delimiter
- elseif id == radical_code then
+ elseif id == math_radical then
noad = getnucleus(current) if noad then process(noad,what,n,current) end -- list
noad = getsup (current) if noad then process(noad,what,n,current) end -- list
noad = getsub (current) if noad then process(noad,what,n,current) end -- list
noad = getfield(current,"left") if noad then process(noad,what,n,current) end -- delimiter
noad = getfield(current,"degree") if noad then process(noad,what,n,current) end -- list
- elseif id == accent_code then
+ elseif id == math_accent then
noad = getnucleus(current) if noad then process(noad,what,n,current) end -- list
noad = getsup (current) if noad then process(noad,what,n,current) end -- list
noad = getsub (current) if noad then process(noad,what,n,current) end -- list
@@ -348,13 +340,13 @@ end
local function processstep(current,process,n,id)
local noad = nil
local id = id or getid(current)
- if id == noad_code then
+ if id == math_noad then
noad = getnucleus(current) if noad then process(noad,n,current) end -- list
noad = getsup (current) if noad then process(noad,n,current) end -- list
noad = getsub (current) if noad then process(noad,n,current) end -- list
- elseif id == subbox_code or id == submlist_code then
+ elseif id == math_subbox or id == math_submlist then
noad = getlist(current) if noad then process(noad,n,current) end -- list (not getlist !)
- elseif id == fraction_code then
+ elseif id == math_fraction then
noad = getfield(current,"num") if noad then process(noad,n,current) end -- list
noad = getfield(current,"denom") if noad then process(noad,n,current) end -- list
noad = getfield(current,"left") if noad then process(noad,n,current) end -- delimiter
@@ -364,15 +356,15 @@ local function processstep(current,process,n,id)
noad = getfield(current,"text") if noad then process(noad,n,current) end -- list
noad = getfield(current,"script") if noad then process(noad,n,current) end -- list
noad = getfield(current,"scriptscript") if noad then process(noad,n,current) end -- list
- elseif id == fence_code then
+ elseif id == math_fence then
noad = getfield(current,"delim") if noad then process(noad,n,current) end -- delimiter
- elseif id == radical_code then
+ elseif id == math_radical then
noad = getnucleus(current) if noad then process(noad,n,current) end -- list
noad = getsup (current) if noad then process(noad,n,current) end -- list
noad = getsub (current) if noad then process(noad,n,current) end -- list
noad = getfield(current,"left") if noad then process(noad,n,current) end -- delimiter
noad = getfield(current,"degree") if noad then process(noad,n,current) end -- list
- elseif id == accent_code then
+ elseif id == math_accent then
noad = getnucleus(current) if noad then process(noad,n,current) end -- list
noad = getsup (current) if noad then process(noad,n,current) end -- list
noad = getsub (current) if noad then process(noad,n,current) end -- list
@@ -382,14 +374,15 @@ local function processstep(current,process,n,id)
end
local function processnoads(head,actions,banner)
+ local h, d
if trace_processing then
report_processing("start %a",banner)
- head = process(head,actions)
+ h, d = process(tonut(head),actions)
report_processing("stop %a",banner)
else
- head = process(head,actions)
+ h, d = process(tonut(head),actions)
end
- return head
+ return h and tonode(h) or head, d == nil and true or d
end
noads.process = processnoads
@@ -463,35 +456,7 @@ do
"pseudobold",
}
- families[fraction_code] = function(pointer,what,n,parent)
- local a = getattr(pointer,a_mathfamily)
- if a and a >= 0 then
- if a > 0 then
- setattr(pointer,a_mathfamily,0)
- if a > 5 then
- a = a - 3
- end
- end
- setfam(pointer,a)
- end
- processnested(pointer,families,n+1)
- end
-
- families[noad_code] = function(pointer,what,n,parent)
- local a = getattr(pointer,a_mathfamily)
- if a and a >= 0 then
- if a > 0 then
- setattr(pointer,a_mathfamily,0)
- if a > 5 then
- a = a - 3
- end
- end
- setfam(pointer,a)
- end
- processnested(pointer,families,n+1)
- end
-
- families[mathchar_code] = function(pointer)
+ families[math_char] = function(pointer)
if getfam(pointer) == 0 then
local a = getattr(pointer,a_mathfamily)
if a and a > 0 then
@@ -536,7 +501,8 @@ do
end
end
end
- families[delim_code] = function(pointer)
+
+ families[math_delim] = function(pointer)
if getfield(pointer,"small_fam") == 0 then
local a = getattr(pointer,a_mathfamily)
if a and a > 0 then
@@ -568,7 +534,7 @@ do
-- will become:
- -- families[delim_code] = function(pointer)
+ -- families[math_delim] = function(pointer)
-- if getfam(pointer) == 0 then
-- local a = getattr(pointer,a_mathfamily)
-- if a and a > 0 then
@@ -590,11 +556,11 @@ do
-- end
-- end
- families[mathtextchar_code] = families[mathchar_code]
+ families[math_textchar] = families[math_char]
function handlers.families(head,style,penalties)
processnoads(head,families,"families")
- return true -- not needed
+ return true
end
end
@@ -638,7 +604,7 @@ do
end
end
- relocate[mathchar_code] = function(pointer)
+ relocate[math_char] = function(pointer)
local g = getattr(pointer,a_mathgreek) or 0
local a = getattr(pointer,a_mathalphabet) or 0
local char = getchar(pointer)
@@ -705,13 +671,13 @@ do
end
end
- relocate[mathtextchar_code] = function(pointer)
+ relocate[math_textchar] = function(pointer)
if trace_analyzing then
setnodecolor(pointer,"font:init")
end
end
- relocate[delim_code] = function(pointer)
+ relocate[math_delim] = function(pointer)
if trace_analyzing then
setnodecolor(pointer,"font:fina")
end
@@ -719,7 +685,7 @@ do
function handlers.relocate(head,style,penalties)
processnoads(head,relocate,"relocate")
- return true -- not needed
+ return true
end
end
@@ -732,7 +698,7 @@ do
local rendersets = mathematics.renderings.numbers or { } -- store
- render[mathchar_code] = function(pointer)
+ render[math_char] = function(pointer)
local attr = getattr(pointer,a_mathrendering)
if attr and attr > 0 then
local char = getchar(pointer)
@@ -753,7 +719,7 @@ do
function handlers.render(head,style,penalties)
processnoads(head,render,"render")
- return true -- not needed
+ return true
end
end
@@ -773,46 +739,51 @@ do
local a_mathsize = privateattribute("mathsize") -- this might move into other fence code
local resize = { }
- resize[fence_code] = function(pointer)
+ resize[math_fence] = function(pointer)
local subtype = getsubtype(pointer)
- if subtype == leftfence_code or subtype == rightfence_code then
+ if subtype == left_fence_code or subtype == right_fence_code then
local a = getattr(pointer,a_mathsize)
if a and a > 0 then
- local method = div(a,100)
- local size = a % 100
+ local method, size = div(a,100), a % 100
setattr(pointer,a_mathsize,0)
local delimiter = getfield(pointer,"delim")
- local chr = getchar(delimiter)
+ local chr = getfield(delimiter,"small_char")
if chr > 0 then
- local fam = getfam(delimiter)
+ local fam = getfield(delimiter,"small_fam")
local id = font_of_family(fam)
if id > 0 then
- local data = fontdata[id]
- local char = mathematics.big(data,chr,size,method)
- local ht = getheight(pointer)
- local dp = getdepth(pointer)
- if ht == 1 or dp == 1 then -- 1 scaled point is a signal
- local chardata = data.characters[char]
- if ht == 1 then
- setheight(pointer,chardata.height)
- end
- if dp == 1 then
- setdepth(pointer,chardata.depth)
- end
- end
- if trace_fences then
- report_fences("replacing %C by %C using method %a and size %a",chr,char,method,size)
- end
- setchar(delimiter,char)
+ setfield(delimiter,"small_char",mathematics.big(fontdata[id],chr,size,method))
end
end
end
end
end
+ -- will become:
+
+ -- resize[math_fence] = function(pointer)
+ -- local subtype = getsubtype(pointer)
+ -- if subtype == left_fence_code or subtype == right_fence_code then
+ -- local a = getattr(pointer,a_mathsize)
+ -- if a and a > 0 then
+ -- local method, size = div(a,100), a % 100
+ -- setattr(pointer,a_mathsize,0)
+ -- local delimiter = getfield(pointer,"delim")
+ -- local chr = getchar(delimiter)
+ -- if chr > 0 then
+ -- local fam = getfam(delimiter)
+ -- local id = font_of_family(fam)
+ -- if id > 0 then
+ -- setchar(delimiter,mathematics.big(fontdata[id],chr,size,method))
+ -- end
+ -- end
+ -- end
+ -- end
+ -- end
+
function handlers.resize(head,style,penalties)
processnoads(head,resize,"resize")
- return true -- not needed
+ return true
end
end
@@ -826,8 +797,8 @@ do
local dummyfencechar = 0x2E
local function makefence(what,char)
- local d = new_delimiter() -- todo: attr
- local f = new_fence() -- todo: attr
+ local d = new_delimiter()
+ local f = new_fence()
if char then
local sym = getnucleus(char)
local chr = getchar(sym)
@@ -850,8 +821,8 @@ do
-- will become
-- local function makefence(what,char)
- -- local d = new_delimiter() -- todo: attr
- -- local f = new_fence() -- todo: attr
+ -- local d = new_delimiter()
+ -- local f = new_fence()
-- if char then
-- local sym = getnucleus(char)
-- local chr = getchar(sym)
@@ -872,7 +843,7 @@ do
local function makelist(noad,f_o,o_next,c_prev,f_c,middle)
local list = new_submlist()
setlist(list,f_o)
- setsubtype(noad,innernoad_code)
+ setsubtype(noad,noad_inner)
setnucleus(noad,list)
setlink(f_o,o_next)
setlink(c_prev,f_c)
@@ -883,7 +854,7 @@ do
local m = middle[current]
if m then
local next = getnext(current)
- local fence = makefence(middlefence_code,current)
+ local fence = makefence(middle_fence_code,current)
setnucleus(current)
flush_node(current)
middle[current] = nil
@@ -905,8 +876,8 @@ do
if o_next == close then
return close
else
- local f_o = makefence(leftfence_code,open)
- local f_c = makefence(rightfence_code,close)
+ local f_o = makefence(left_fence_code,open)
+ local f_c = makefence(right_fence_code,close)
makelist(open,f_o,o_next,c_prev,f_c,middle)
setnucleus(close)
flush_node(close)
@@ -919,8 +890,8 @@ do
end
local function convert_open(open,last,middle)
- local f_o = makefence(leftfence_code,open)
- local f_c = makefence(rightfence_code)
+ local f_o = makefence(left_fence_code,open)
+ local f_c = makefence(right_fence_code)
local o_prev, o_next = getboth(open)
local l_prev, l_next = getboth(last)
makelist(open,f_o,o_next,last,f_c,middle)
@@ -932,8 +903,8 @@ do
end
local function convert_close(close,first,middle)
- local f_o = makefence(leftfence_code)
- local f_c = makefence(rightfence_code,close)
+ local f_o = makefence(left_fence_code)
+ local f_c = makefence(right_fence_code,close)
local c_prev = getprev(close)
makelist(close,f_o,first,c_prev,f_c,middle)
return close
@@ -951,7 +922,7 @@ do
local middle = nil -- todo: use properties
while current do
local id = getid(current)
- if id == noad_code then
+ if id == math_noad then
local a = getattr(current,a_autofence)
if a and a > 0 then
local stack = stacks[n]
@@ -1038,7 +1009,7 @@ do
function handlers.autofences(head,style,penalties)
if enabled then -- tex.modes.c_math_fences_auto
-- inspect(nodes.totree(head))
- processfences(head,1)
+ processfences(tonut(head),1)
-- inspect(nodes.totree(head))
end
end
@@ -1060,9 +1031,9 @@ do
local next = getnext(pointer)
local start_super, stop_super, start_sub, stop_sub
local mode = "unset"
- while next and getid(next) == noad_code do
+ while next and getid(next) == math_noad do
local nextnucleus = getnucleus(next)
- if nextnucleus and getid(nextnucleus) == mathchar_code and not getsub(next) and not getsup(next) then
+ if nextnucleus and getid(nextnucleus) == math_char and not getsub(next) and not getsup(next) then
local char = getchar(nextnucleus)
local s = superscripts[char]
if s then
@@ -1117,18 +1088,6 @@ do
setnext(stop_super)
end
if start_sub then
-
--- if mode == "sub" then
--- local sup = getsup(pointer)
--- if sup and not getsub(pointer) then
--- local nxt = getnext(pointer)
--- local new = new_noad(pointer)
--- setnucleus(new,new_submlist())
--- setlink(pointer,new,nxt)
--- pointer = new
--- end
--- end
-
if start_sub == stop_sub then
setsub(pointer,getnucleus(start_sub))
else
@@ -1144,59 +1103,18 @@ do
-- we could return stop
end
- unscript[mathchar_code] = replace -- not noads as we need to recurse
+ unscript[math_char] = replace -- not noads as we need to recurse
function handlers.unscript(head,style,penalties)
processnoads(head,unscript,"unscript")
- return true -- not needed
+ -- processnoads(head,checkers,"checkers")
+ return true
end
end
do
- local unstack = { } noads.processors.unstack = unstack
- local enabled = false
- local a_unstack = privateattribute("mathunstack")
-
- unstack[noad_code] = function(pointer)
- if getattr(pointer,a_unstack) then
- local sup = getsup(pointer)
- local sub = getsub(pointer)
- if sup and sub then
- -- if trace_unstacking then
- -- report_unstacking() -- todo ... what to show ...
- -- end
- local nxt = getnext(pointer)
- local new = new_noad(pointer)
- setnucleus(new,new_submlist())
- setsub(pointer)
- setsub(new,sub)
- setlink(pointer,new,nxt)
- end
- end
- end
-
- function handlers.unstack(head,style,penalties)
- if enabled then
- processnoads(head,unstack,"unstack")
- return true -- not needed
- end
- end
-
- implement {
- name = "enablescriptunstacking",
- onlyonce = true,
- actions = function()
- enableaction("math","noads.handlers.unstack")
- enabled = true
- end
- }
-
-end
-
-do
-
local function collected(list)
if list and next(list) then
local n, t = 0, { }
@@ -1388,7 +1306,7 @@ do
arguments = { "integer", "string" }
}
- alternate[mathchar_code] = function(pointer) -- slow
+ alternate[math_char] = function(pointer) -- slow
local a = getattr(pointer,a_mathalternate)
if a and a > 0 then
setattr(pointer,a_mathalternate,0)
@@ -1429,7 +1347,7 @@ do
function handlers.alternates(head,style,penalties)
processnoads(head,alternate,"alternate")
- return true -- not needed
+ return true
end
end
@@ -1447,7 +1365,7 @@ end
-- in opentype the italic correction of a limop is added to the width and luatex does
-- some juggling that we want to avoid but we need to do something here (in fact, we could
--- better fix the width of the character)
+-- better fix the width of the character
do
@@ -1464,8 +1382,8 @@ do
local c_negative_d = "trace:dr"
local function insert_kern(current,kern)
- local sub = new_submlist() -- todo: attr
- local noad = new_noad() -- todo: attr
+ local sub = new_submlist()
+ local noad = new_noad()
setlist(sub,kern)
setnext(kern,noad)
setnucleus(noad,current)
@@ -1475,7 +1393,7 @@ do
registertracker("math.italics.visualize", function(v)
if v then
italic_kern = function(k)
- local n = new_kern(k) -- todo: attr
+ local n = new_kern(k)
set_visual(n,"italic")
return n
end
@@ -1536,7 +1454,7 @@ do
end
- italics[mathchar_code] = function(pointer,what,n,parent)
+ italics[math_char] = function(pointer,what,n,parent)
local method = getattr(pointer,a_mathitalics)
if method and method > 0 and method < 100 then
local char = getchar(pointer)
@@ -1567,7 +1485,7 @@ do
function handlers.italics(head,style,penalties)
processnoads(head,italics,"italics")
- return true -- not needed
+ return true
end
local enable = function()
@@ -1664,7 +1582,7 @@ do
-- no correction after prime because that moved to a superscript
- kernpairs[mathchar_code] = function(pointer,what,n,parent)
+ kernpairs[math_char] = function(pointer,what,n,parent)
if getattr(pointer,a_kernpairs) == 1 then
local font = getfont(pointer)
local list = hash[font]
@@ -1673,7 +1591,7 @@ do
local found = list[first]
if found then
local next = getnext(parent)
- if next and getid(next) == noad_code then
+ if next and getid(next) == math_noad then
pointer = getnucleus(next)
if pointer then
if getfont(pointer) == font then
@@ -1684,7 +1602,7 @@ do
if trace_kernpairs then
report_kernpairs("adding %p kerning between %C and %C",kern,first,second)
end
- setlink(parent,new_kern(kern),getnext(parent)) -- todo: attr
+ setlink(parent,new_kern(kern),getnext(parent))
end
end
end
@@ -1696,7 +1614,7 @@ do
function handlers.kernpairs(head,style,penalties)
processnoads(head,kernpairs,"kernpairs")
- return true -- not needed
+ return true
end
end
@@ -1711,20 +1629,20 @@ do
local collapse = { }
local mathlists = characters.mathlists
local validpair = {
- [ordnoad_code] = true,
- [relnode_code] = true,
- [binnoad_code] = true, -- new
- [opennoad_code] = true, -- new
- [closenoad_code] = true, -- new
- [punctnoad_code] = true, -- new
- [opdisplaylimitsnoad_code] = true,
- [oplimitsnoad_code] = true,
- [opnolimitsnoad_code] = true,
+ [noad_ord] = true,
+ [noad_rel] = true,
+ [noad_bin] = true, -- new
+ [noad_open] = true, -- new
+ [noad_close] = true, -- new
+ [noad_punct] = true, -- new
+ [noad_opdisplaylimits] = true,
+ [noad_oplimits] = true,
+ [noad_opnolimits] = true,
}
local reported = setmetatableindex("table")
- collapse[mathchar_code] = function(pointer,what,n,parent)
+ collapse[math_char] = function(pointer,what,n,parent)
if parent and mathlists[getchar(pointer)] then
local found, last, lucleus, lsup, lsub, category
@@ -1809,7 +1727,7 @@ do
function noads.handlers.collapse(head,style,penalties)
processnoads(head,collapse,"collapse")
- return true -- not needed
+ return true
end
local enable = function()
@@ -1866,7 +1784,7 @@ do
-- local function movesubscript(parent,current_nucleus,oldchar,newchar)
-- local prev = getprev(parent)
- -- if prev and getid(prev) == noad_code then
+ -- if prev and getid(prev) == math_noad then
-- local psup = getsup(prev)
-- local psub = getsub(prev)
-- if not psup and not psub then
@@ -1909,7 +1827,7 @@ do
setnucleus(parent,dummy)
end
- fixscripts[mathchar_code] = function(pointer,what,n,parent,nested) -- todo: switch to turn in on and off
+ fixscripts[math_char] = function(pointer,what,n,parent,nested) -- todo: switch to turn in on and off
if parent then
local oldchar = getchar(pointer)
local newchar = movesub[oldchar]
@@ -1928,7 +1846,7 @@ do
-- print("[char] --- sup")
else
local prev = getprev(parent)
- if prev and getid(prev) == noad_code then
+ if prev and getid(prev) == math_noad then
local psub = getsub(prev)
local psup = getsup(prev)
if psub then
@@ -1957,7 +1875,7 @@ do
function noads.handlers.fixscripts(head,style,penalties)
processnoads(head,fixscripts,"fixscripts")
- return true -- not needed
+ return true
end
end
@@ -1983,14 +1901,14 @@ do
[0x2ACB] = 0xFE00, [0x2ACC] = 0xFE00,
}
- variants[mathchar_code] = function(pointer,what,n,parent) -- also set export value
+ variants[math_char] = function(pointer,what,n,parent) -- also set export value
local char = getchar(pointer)
local selector = validvariants[char]
if selector then
local next = getnext(parent)
- if next and getid(next) == noad_code then
+ if next and getid(next) == math_noad then
local nucleus = getnucleus(next)
- if nucleus and getid(nucleus) == mathchar_code and getchar(nucleus) == selector then
+ if nucleus and getid(nucleus) == math_char and getchar(nucleus) == selector then
local variant
local tfmdata = fontdata[getfont(pointer)]
local mathvariants = tfmdata.resources.variants -- and variantdata
@@ -2021,7 +1939,7 @@ do
function handlers.variants(head,style,penalties)
processnoads(head,variants,"unicode variant")
- return true -- not needed
+ return true
end
end
@@ -2032,25 +1950,25 @@ do
local classes = { }
local colors = {
- [relnode_code] = "trace:dr",
- [ordnoad_code] = "trace:db",
- [binnoad_code] = "trace:dg",
- [opennoad_code] = "trace:dm",
- [closenoad_code] = "trace:dm",
- [punctnoad_code] = "trace:dc",
- -- [opdisplaylimitsnoad_code] = "",
- -- [oplimitsnoad_code] = "",
- -- [opnolimitsnoad_code] = "",
- -- [innernoad_code = "",
- -- [undernoad_code] = "",
- -- [overnoad_code] = "",
- -- [vcenternoad_code] = "",
+ [noad_rel] = "trace:dr",
+ [noad_ord] = "trace:db",
+ [noad_bin] = "trace:dg",
+ [noad_open] = "trace:dm",
+ [noad_close] = "trace:dm",
+ [noad_punct] = "trace:dc",
+ -- [noad_opdisplaylimits] = "",
+ -- [noad_oplimits] = "",
+ -- [noad_opnolimits] = "",
+ -- [noad_inner = "",
+ -- [noad_under = "",
+ -- [noad_over = "",
+ -- [noad_vcenter = "",
}
local setcolor = colortracers.set
local resetcolor = colortracers.reset
- classes[mathchar_code] = function(pointer,what,n,parent)
+ classes[math_char] = function(pointer,what,n,parent)
local color = colors[getsubtype(parent)]
if color then
setcolor(pointer,color)
@@ -2061,7 +1979,7 @@ do
function handlers.classes(head,style,penalties)
processnoads(head,classes,"classes")
- return true -- not needed
+ return true
end
registertracker("math.classes",function(v)
@@ -2088,11 +2006,11 @@ do
local a_mathdomain = privateattribute("mathdomain")
mathematics.domains = categories
local permitted = {
- ordinary = ordnoad_code,
- binary = binnoad_code,
- relation = relnode_code,
- punctuation = punctnoad_code,
- inner = innernoad_code,
+ ordinary = noad_ord,
+ binary = noad_bin,
+ relation = noad_rel,
+ punctuation = noad_punct,
+ inner = noad_inner,
}
function mathematics.registerdomain(data)
@@ -2195,7 +2113,7 @@ do
return hash
end
- domains[mathchar_code] = function(pointer,what,n,parent)
+ domains[math_char] = function(pointer,what,n,parent)
local attr = getattr(pointer,a_mathdomain)
if attr then
local domain = numbers[attr]
@@ -2222,7 +2140,7 @@ do
function handlers.domains(head,style,penalties)
processnoads(head,domains,"domains")
- return true -- not needed
+ return true
end
end
@@ -2230,7 +2148,7 @@ end
-- just for me
function handlers.showtree(head,style,penalties)
- inspect(nodes.totree(tonut(head)))
+ inspect(nodes.totree(head))
end
registertracker("math.showtree",function(v)
@@ -2245,7 +2163,7 @@ do
local visual = false
function handlers.makeup(head)
- applyvisuals(head,visual)
+ applyvisuals(tonut(head),visual)
end
registertracker("math.makeup",function(v)
@@ -2266,15 +2184,9 @@ do
-- end)
function builders.kernel.mlist_to_hlist(head,style,penalties)
- return mlist_to_hlist(head,style,force_penalties or penalties)
+ return mlist_to_hlist(head,style,force_penalties or penalties), true
end
- -- function builders.kernel.mlist_to_hlist(head,style,penalties)
- -- local h = mlist_to_hlist(head,style,force_penalties or penalties)
- -- inspect(nodes.totree(h,true,true,true))
- -- return h
- -- end
-
implement {
name = "setmathpenalties",
arguments = "integer",
@@ -2285,15 +2197,41 @@ do
end
+-- function builders.kernel.mlist_to_hlist(head,style,penalties)
+-- print("!!!!!!! BEFORE",penalties)
+-- for n in node.traverse(head) do print(n) end
+-- print("!!!!!!!")
+-- head = mlist_to_hlist(head,style,penalties)
+-- print("!!!!!!! AFTER")
+-- for n in node.traverse(head) do print(n) end
+-- print("!!!!!!!")
+-- return head, true
+-- end
+
+tasks.new {
+ name = "math",
+ arguments = 2,
+ processor = utilities.sequencers.nodeprocessor,
+ sequence = {
+ "before",
+ "normalizers",
+ "builders",
+ "after",
+ },
+}
+
+tasks.freezegroup("math", "normalizers") -- experimental
+tasks.freezegroup("math", "builders") -- experimental
+
local actions = tasks.actions("math") -- head, style, penalties
local starttiming, stoptiming = statistics.starttiming, statistics.stoptiming
function processors.mlist_to_hlist(head,style,penalties)
starttiming(noads)
- head = actions(head,style,penalties)
+ local head, done = actions(head,style,penalties)
stoptiming(noads)
- return head
+ return head, done
end
callbacks.register('mlist_to_hlist',processors.mlist_to_hlist,"preprocessing math list")
diff --git a/Master/texmf-dist/tex/context/base/mkiv/math-pln.mkiv b/Master/texmf-dist/tex/context/base/mkiv/math-pln.mkiv
index 1003444b86b..d0e7e377d12 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/math-pln.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/math-pln.mkiv
@@ -171,7 +171,7 @@
\crcr
\noalign\bgroup
\kern\scratchdimentwo
- \glet\cr\endline
+ \global\let\cr\endline
\egroup
}%
\ialign{%
diff --git a/Master/texmf-dist/tex/context/base/mkiv/math-spa.lua b/Master/texmf-dist/tex/context/base/mkiv/math-spa.lua
index 33d9501d818..92ee662b9a6 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/math-spa.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/math-spa.lua
@@ -8,23 +8,24 @@ if not modules then modules = { } end modules ['math-spa'] = {
-- for the moment (when testing) we use a penalty 1
-local penalty_code = nodes.nodecodes.penalty
-local glue_code = nodes.nodecodes.glue
+local penalty_code = nodes.nodecodes.penalty
+local glue_code = nodes.nodecodes.glue
-local nuts = nodes.nuts
-local tonut = nodes.tonut
-local tonode = nodes.tonode
+local nuts = nodes.nuts
+local tonut = nodes.tonut
+local tonode = nodes.tonode
+local getid = nuts.getid
+local getnext = nuts.getnext
+local getwidth = nuts.getwidth
+local setglue = nuts.setglue
+local getpenalty = nuts.getpenalty
+local setpenalty = nuts.setpenalty
-local getid = nuts.getid
-local getnext = nuts.getnext
-local getwidth = nuts.getwidth
-local setglue = nuts.setglue
-local getpenalty = nuts.getpenalty
-local setpenalty = nuts.setpenalty
-local getdimensions = nuts.dimensions
-local nextglue = nuts.traversers.glue
+local traverse_id = nuts.traverse_id
+local get_dimensions = nuts.dimensions
-local texsetdimen = tex.setdimen
+
+local texsetdimen = tex.setdimen
local v_none = interfaces.variables.none
local v_auto = interfaces.variables.auto
@@ -32,8 +33,9 @@ local v_auto = interfaces.variables.auto
local method = v_none
local distance = 0
-function noads.handlers.align(h)
+function noads.handlers.align(l)
if method ~= v_none then
+ local h = tonut(l)
if method == v_auto then
local s = h
while s do
@@ -45,7 +47,7 @@ function noads.handlers.align(h)
s = n
n = getnext(s)
end
- local w = getdimensions(h,n) + distance
+ local w = get_dimensions(h,n) + distance
texsetdimen("global","d_strc_math_indent",w)
break
end
@@ -54,12 +56,13 @@ function noads.handlers.align(h)
else
texsetdimen("global","d_strc_math_indent",distance)
end
- for n in nextglue, h do
+ for n in traverse_id(glue_code,h) do
setglue(n,getwidth(n),0,0)
end
else
-- texsetdimen("global","d_strc_math_indent",0)
end
+ return l, true
end
interfaces.implement {
diff --git a/Master/texmf-dist/tex/context/base/mkiv/math-stc.mkvi b/Master/texmf-dist/tex/context/base/mkiv/math-stc.mkvi
index 92325d0afd0..c9d469d617c 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/math-stc.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/math-stc.mkvi
@@ -413,13 +413,13 @@
\fi
%
\ifdim\wd\scratchboxone<\scratchwidth
- \setbox\scratchboxone\hpack to \scratchwidth{\hss\unhbox\scratchboxone\hss}% unhboxing makes leaders work
+ \setbox\scratchboxone\hbox to \scratchwidth{\hss\unhbox\scratchboxone\hss}% unhboxing makes leaders work
\fi
\ifdim\wd\scratchboxtwo<\scratchwidth
- \setbox\scratchboxtwo\hpack to \scratchwidth{\hss\unhbox\scratchboxtwo\hss}%
+ \setbox\scratchboxtwo\hbox to \scratchwidth{\hss\unhbox\scratchboxtwo\hss}%
\fi
\ifdim\wd\scratchboxthree<\scratchwidth
- \setbox\scratchboxthree\hpack to \scratchwidth{\hss\unhbox\scratchboxthree\hss}%
+ \setbox\scratchboxthree\hbox to \scratchwidth{\hss\unhbox\scratchboxthree\hss}%
\fi
%
\ifcsname\??mathstackerslocation\p_location\endcsname
@@ -448,7 +448,7 @@
\fi
%
\ifzeropt\scratchdistance\else
- \setbox\scratchboxthree\hpack{\lower\scratchdistance\box\scratchboxthree}%
+ \setbox\scratchboxthree\hbox{\lower\scratchdistance\box\scratchboxthree}%
\fi
%
\math_stackers_normalize_three
@@ -603,7 +603,7 @@
\advance\scratchwidth2\scratchhoffset
%
\setbox\scratchboxtwo\csname\??mathstackersalternative\p_alternative\endcsname
- \setbox\scratchboxthree\hpack to \scratchwidth{\hss\box\scratchboxthree\hss}%
+ \setbox\scratchboxthree\hbox to \scratchwidth{\hss\box\scratchboxthree\hss}%
%
\scratchunicode#codeextra\relax
\ifcase\scratchunicode\else
@@ -803,10 +803,10 @@
\advance\scratchwidth2\scratchhoffset
%
\ifdim\wd\scratchboxone<\scratchwidth
- \setbox\scratchboxone\hpack to \scratchwidth{\hss\unhbox\scratchboxone\hss}%
+ \setbox\scratchboxone\hbox to \scratchwidth{\hss\unhbox\scratchboxone\hss}%
\fi
\ifdim\wd\scratchboxthree<\scratchwidth
- \setbox\scratchboxthree\hpack to \scratchwidth{\hss\unhbox\scratchboxthree\hss}%
+ \setbox\scratchboxthree\hbox to \scratchwidth{\hss\unhbox\scratchboxthree\hss}%
\fi
%
\math_stackers_normalize_three
diff --git a/Master/texmf-dist/tex/context/base/mkiv/math-tag.lua b/Master/texmf-dist/tex/context/base/mkiv/math-tag.lua
index 03f9e70bbbb..d1ed90d389b 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/math-tag.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/math-tag.lua
@@ -14,92 +14,90 @@ if not modules then modules = { } end modules ['math-tag'] = {
local find, match = string.find, string.match
local insert, remove, concat = table.insert, table.remove, table.concat
-local attributes = attributes
-local nodes = nodes
-
-local nuts = nodes.nuts
-local tonut = nuts.tonut
-
-local getnext = nuts.getnext
-local getid = nuts.getid
-local getchar = nuts.getchar
-local getfont = nuts.getfont
-local getlist = nuts.getlist
-local getfield = nuts.getfield
-local getdisc = nuts.getdisc
-local getsubtype = nuts.getsubtype
-local getattr = nuts.getattr
-local getattrlist = nuts.getattrlist
-local setattr = nuts.setattr
-local getcomponents = nuts.getcomponents -- not really needed
-local getwidth = nuts.getwidth
-
-local getnucleus = nuts.getnucleus
-local getsub = nuts.getsub
-local getsup = nuts.getsup
-
-local set_attributes = nuts.setattributes
-
-local nextnode = nuts.traversers.node
-
-local nodecodes = nodes.nodecodes
-
-local noad_code = nodecodes.noad -- attr nucleus sub sup
-local accent_code = nodecodes.accent -- attr nucleus sub sup accent
-local radical_code = nodecodes.radical -- attr nucleus sub sup left degree
-local fraction_code = nodecodes.fraction -- attr nucleus sub sup left right
-local subbox_code = nodecodes.subbox -- attr list
-local submlist_code = nodecodes.submlist -- attr list
-local mathchar_code = nodecodes.mathchar -- attr fam char
-local mathtextchar_code = nodecodes.mathtextchar -- attr fam char
-local delim_code = nodecodes.delim -- attr small_fam small_char large_fam large_char
-local style_code = nodecodes.style -- attr style
-local choice_code = nodecodes.choice -- attr display text script scriptscript
-local fence_code = nodecodes.fence -- attr subtype
-
-local accentcodes = nodes.accentcodes
-
-local fixedtopaccent_code = accentcodes.fixedtop
-local fixedbottomaccent_code = accentcodes.fixedbottom
-local fixedbothaccent_code = accentcodes.fixedboth
-
-local kerncodes = nodes.kerncodes
-
-local fontkern_code = kerncodes.fontkern
-local italickern_code = kerncodes.italickern
-
-local hlist_code = nodecodes.hlist
-local vlist_code = nodecodes.vlist
-local glyph_code = nodecodes.glyph
-local disc_code = nodecodes.disc
-local glue_code = nodecodes.glue
-local kern_code = nodecodes.kern
-local math_code = nodecodes.math
-
-local processnoads = noads.process
-
-local a_tagged = attributes.private('tagged')
-local a_mathcategory = attributes.private('mathcategory')
-local a_mathmode = attributes.private('mathmode')
-
-local tags = structures.tags
-
-local start_tagged = tags.start
-local restart_tagged = tags.restart
-local stop_tagged = tags.stop
-local taglist = tags.taglist
-
-local chardata = characters.data
-
-local getmathcodes = tex.getmathcodes
-local mathcodes = mathematics.codes
-local ordinary_mathcode = mathcodes.ordinary
-local variable_mathcode = mathcodes.variable
-
-local fromunicode16 = fonts.mappings.fromunicode16
-local fontcharacters = fonts.hashes.characters
-
-local report_tags = logs.reporter("structure","tags")
+local attributes = attributes
+local nodes = nodes
+
+local nuts = nodes.nuts
+local tonut = nuts.tonut
+
+local getnext = nuts.getnext
+local getid = nuts.getid
+local getchar = nuts.getchar
+local getfont = nuts.getfont
+local getlist = nuts.getlist
+local getfield = nuts.getfield
+local getdisc = nuts.getdisc
+local getsubtype = nuts.getsubtype
+local getattr = nuts.getattr
+local setattr = nuts.setattr
+local getcomponents = nuts.getcomponents
+local getwidth = nuts.getwidth
+
+local getnucleus = nuts.getnucleus
+local getsub = nuts.getsub
+local getsup = nuts.getsup
+
+local set_attributes = nuts.setattributes
+local traverse_nodes = nuts.traverse
+
+local nodecodes = nodes.nodecodes
+
+local math_noad_code = nodecodes.noad -- attr nucleus sub sup
+local math_accent_code = nodecodes.accent -- attr nucleus sub sup accent
+local math_radical_code = nodecodes.radical -- attr nucleus sub sup left degree
+local math_fraction_code = nodecodes.fraction -- attr nucleus sub sup left right
+local math_box_code = nodecodes.subbox -- attr list
+local math_sub_code = nodecodes.submlist -- attr list
+local math_char_code = nodecodes.mathchar -- attr fam char
+local math_textchar_code = nodecodes.mathtextchar -- attr fam char
+local math_delim_code = nodecodes.delim -- attr small_fam small_char large_fam large_char
+local math_style_code = nodecodes.style -- attr style
+local math_choice_code = nodecodes.choice -- attr display text script scriptscript
+local math_fence_code = nodecodes.fence -- attr subtype
+
+local accentcodes = nodes.accentcodes
+
+local math_fixed_top = accentcodes.fixedtop
+local math_fixed_bottom = accentcodes.fixedbottom
+local math_fixed_both = accentcodes.fixedboth
+
+local kerncodes = nodes.kerncodes
+
+local fontkern_code = kerncodes.fontkern
+local italickern_code = kerncodes.italickern
+
+local hlist_code = nodecodes.hlist
+local vlist_code = nodecodes.vlist
+local glyph_code = nodecodes.glyph
+local disc_code = nodecodes.disc
+local glue_code = nodecodes.glue
+local kern_code = nodecodes.kern
+local math_code = nodecodes.math
+
+local processnoads = noads.process
+
+local a_tagged = attributes.private('tagged')
+local a_mathcategory = attributes.private('mathcategory')
+local a_mathmode = attributes.private('mathmode')
+
+local tags = structures.tags
+
+local start_tagged = tags.start
+local restart_tagged = tags.restart
+local stop_tagged = tags.stop
+local taglist = tags.taglist
+
+local chardata = characters.data
+
+local getmathcodes = tex.getmathcodes
+local mathcodes = mathematics.codes
+local ordinary_code = mathcodes.ordinary
+local variable_code = mathcodes.variable
+
+local fromunicode16 = fonts.mappings.fromunicode16
+local fontcharacters = fonts.hashes.characters
+
+local report_tags = logs.reporter("structure","tags")
local process
@@ -156,19 +154,12 @@ local fencesstack = { }
-- glyph nodes and such can happen in under and over stuff
--- local function getunicode(n) -- instead of getchar
--- local char = getchar(n)
--- -- local font = font_of_family(getfield(n,"fam")) -- font_of_family
--- local font = getfont(n)
--- local data = fontcharacters[font][char]
--- return data.unicode or char
--- end
-
local function getunicode(n) -- instead of getchar
- -- local char, font = isglyph(n) -- no, we have a mathchar
- local char, font = getchar(n), getfont(n)
+ local char = getchar(n)
+ -- local font = font_of_family(getfield(n,"fam")) -- font_of_family
+ local font = getfont(n)
local data = fontcharacters[font][char]
- return data.unicode or char -- can be a table but unlikely for math characters
+ return data.unicode or char
end
-------------------
@@ -176,7 +167,7 @@ end
local content = { }
local found = false
-content[mathchar_code] = function() found = true end
+content[math_char_code] = function() found = true end
local function hascontent(head)
found = false
@@ -186,25 +177,18 @@ end
--------------------
--- todo: use properties
-
--- local function showtag(n,id,old)
--- local attr = getattr(n,a_tagged)
--- local curr = tags.current()
--- report_tags("%s, node %s, attr %s:%s (%s), top %s (%s)",
--- old and "before" or "after ",
--- nodecodes[id],
--- getattrlist(n),
--- attr or "?",attr and taglist[attr].tagname or "?",
--- curr or "?",curr and taglist[curr].tagname or "?"
--- )
--- end
+local function showtag(n,id)
+ local attr = getattr(n,a_tagged)
+ report_tags("%s = %s",nodecodes[id or getid(n)],attr and taglist[attr].tagname or "?")
+end
process = function(start) -- we cannot use the processor as we have no finalizers (yet)
local mtexttag = nil
while start do
local id = getid(start)
- -- showtag(start,id,true)
+
+-- showtag(start,id)
+
if id == glyph_code or id == disc_code then
if not mtexttag then
mtexttag = start_tagged("mtext")
@@ -217,11 +201,11 @@ process = function(start) -- we cannot use the processor as we have no finalizer
stop_tagged()
mtexttag = nil
end
- if id == mathchar_code then
+ if id == math_char_code then
local char = getchar(start)
local code = getmathcodes(char)
local tag
- if code == ordinary_mathcode or code == variable_mathcode then
+ if code == ordinary_code or code == variable_code then
local ch = chardata[char]
local mc = ch and ch.mathclass
if mc == "number" then
@@ -241,9 +225,8 @@ process = function(start) -- we cannot use the processor as we have no finalizer
setattr(start,a_tagged,start_tagged(tag)) -- todo: a_mathcategory
end
stop_tagged()
- -- showtag(start,id,false)
break -- okay?
- elseif id == mathtextchar_code then -- or id == glyph_code
+ elseif id == math_textchar_code then -- or id == glyph_code
-- check for code
local a = getattr(start,a_mathcategory)
if a then
@@ -252,127 +235,116 @@ process = function(start) -- we cannot use the processor as we have no finalizer
setattr(start,a_tagged,start_tagged("ms")) -- mtext
end
stop_tagged()
- -- showtag(start,id,false)
break
- elseif id == delim_code then
+ elseif id == math_delim_code then
-- check for code
setattr(start,a_tagged,start_tagged("mo"))
stop_tagged()
- -- showtag(start,id,false)
break
- elseif id == style_code then
+ elseif id == math_style_code then
-- has a next
- elseif id == noad_code then
- -- setattr(start,a_tagged,tags.current())
+ elseif id == math_noad_code then
processsubsup(start)
- elseif id == dubbox_code or id == hlist_code or id == vlist_code then
- -- keep an eye on subbox_code and see what ends up in there
+ elseif id == math_box_code or id == hlist_code or id == vlist_code then
+ -- keep an eye on math_box_code and see what ends up in there
local attr = getattr(start,a_tagged)
- if not attr then
- -- just skip
- else
- local specification = taglist[attr]
- if specification then
- local tag = specification.tagname
- if tag == "formulacaption" then
- -- skip
- elseif tag == "mstacker" then
- local list = getlist(start)
- if list then
- process(list)
- end
+if not attr then
+ -- just skip
+else
+ local specification = taglist[attr]
+ if specification then
+ local tag = specification.tagname
+ if tag == "formulacaption" then
+ -- skip
+ elseif tag == "mstacker" then
+ local list = getlist(start)
+ if list then
+ process(list)
+ end
+ else
+ if tag ~= "mstackertop" and tag ~= "mstackermid" and tag ~= "mstackerbot" then
+ tag = "mtext"
+ end
+ local text = start_tagged(tag)
+ setattr(start,a_tagged,text)
+ local list = getlist(start)
+ if not list then
+ -- empty list
+ elseif not attr then
+ -- box comes from strange place
+ set_attributes(list,a_tagged,text) -- only the first node ?
else
- if tag ~= "mstackertop" and tag ~= "mstackermid" and tag ~= "mstackerbot" then
- tag = "mtext"
- end
- local text = start_tagged(tag)
- setattr(start,a_tagged,text)
- local list = getlist(start)
- if not list then
- -- empty list
- elseif not attr then
- -- box comes from strange place
- set_attributes(list,a_tagged,text) -- only the first node ?
- else
- -- Beware, the first node in list is the actual list so we definitely
- -- need to nest. This approach is a hack, maybe I'll make a proper
- -- nesting feature to deal with this at another level. Here we just
- -- fake structure by enforcing the inner one.
- --
- -- todo: have a local list with local tags that then get appended
- --
- local tagdata = specification.taglist
- local common = #tagdata + 1
- local function runner(list,depth) -- quite inefficient
- local cache = { } -- we can have nested unboxed mess so best local to runner
- local keep = nil
- -- local keep = { } -- win case we might need to move keep outside
- for n, id, subtype in nextnode, list do
- local mth = id == math_code and subtype
- if mth == 0 then -- hm left_code
- -- insert(keep,text)
- keep = text
- text = start_tagged("mrow")
- common = common + 1
- end
- local aa = getattr(n,a_tagged)
- if aa then
- local ac = cache[aa]
- if not ac then
- local tagdata = taglist[aa].taglist
- local extra = #tagdata
- if common <= extra then
- for i=common,extra do
- ac = restart_tagged(tagdata[i]) -- can be made faster
- end
- for i=common,extra do
- stop_tagged() -- can be made faster
- end
- else
- ac = text
+ -- Beware, the first node in list is the actual list so we definitely
+ -- need to nest. This approach is a hack, maybe I'll make a proper
+ -- nesting feature to deal with this at another level. Here we just
+ -- fake structure by enforcing the inner one.
+ --
+ -- todo: have a local list with local tags that then get appended
+ --
+ local tagdata = specification.taglist
+ local common = #tagdata + 1
+ local function runner(list,depth) -- quite inefficient
+ local cache = { } -- we can have nested unboxed mess so best local to runner
+ local keep = nil
+ -- local keep = { } -- win case we might need to move keep outside
+ for n in traverse_nodes(list) do
+ local id = getid(n)
+ local mth = id == math_code and getsubtype(n)
+ if mth == 0 then
+ -- insert(keep,text)
+ keep = text
+ text = start_tagged("mrow")
+ common = common + 1
+ end
+ local aa = getattr(n,a_tagged)
+ if aa then
+ local ac = cache[aa]
+ if not ac then
+ local tagdata = taglist[aa].taglist
+ local extra = #tagdata
+ if common <= extra then
+ for i=common,extra do
+ ac = restart_tagged(tagdata[i]) -- can be made faster
end
- cache[aa] = ac
- end
- setattr(n,a_tagged,ac)
- else
- setattr(n,a_tagged,text)
- end
- if id == hlist_code or id == vlist_code then
- runner(getlist(n),depth+1)
- elseif id == glyph_code then
- -- this should not be needed
- local components = getcomponents(n) -- unlikely set
- if components then
- runner(getcomponent,depth+1)
- end
- elseif id == disc_code then
- -- this should not be needed
- local pre, post, replace = getdisc(n)
- if pre then
- runner(pre,depth+1)
- end
- if post then
- runner(post,depth+1)
- end
- if replace then
- runner(replace,depth+1)
+ for i=common,extra do
+ stop_tagged() -- can be made faster
+ end
+ else
+ ac = text
end
+ cache[aa] = ac
end
- if mth == 1 then
- stop_tagged()
- -- text = remove(keep)
- text = keep
- common = common - 1
- end
+ setattr(n,a_tagged,ac)
+ else
+ setattr(n,a_tagged,text)
+ end
+
+ if id == hlist_code or id == vlist_code then
+ runner(getlist(n),depth+1)
+ elseif id == glyph_code then
+ -- this should not be needed (todo: use tounicode info)
+ runner(getcomponents(n),depth+1)
+ elseif id == disc_code then
+ local pre, post, replace = getdisc(n)
+ runner(pre,depth+1) -- idem
+ runner(post,depth+1) -- idem
+ runner(replace,depth+1) -- idem
+ end
+ if mth == 1 then
+ stop_tagged()
+ -- text = remove(keep)
+ text = keep
+ common = common - 1
end
end
- runner(list,0)
end
- stop_tagged()
+ runner(list,0)
end
+ stop_tagged()
end
end
- elseif id == submlistcode then -- normally a hbox
+end
+ elseif id == math_sub_code then -- normally a hbox
local list = getlist(start)
if list then
local attr = getattr(start,a_tagged)
@@ -398,7 +370,7 @@ process = function(start) -- we cannot use the processor as we have no finalizer
end
elseif tag == "mstacker" then -- or tag == "mstackertop" or tag == "mstackermid" or tag == "mstackerbot" then
-- looks like it gets processed twice
- -- do we still end up here ?
+-- do we still end up here ?
setattr(start,a_tagged,restart_tagged(attr)) -- so we just reuse the attribute
process(list)
stop_tagged()
@@ -413,7 +385,7 @@ process = function(start) -- we cannot use the processor as we have no finalizer
stop_tagged()
end
end
- elseif id == fraction_code then
+ elseif id == math_fraction_code then
local num = getfield(start,"num")
local denom = getfield(start,"denom")
local left = getfield(start,"left")
@@ -432,7 +404,7 @@ process = function(start) -- we cannot use the processor as we have no finalizer
process(right)
stop_tagged()
end
- elseif id == choice_code then
+ elseif id == math_choice_code then
local display = getfield(start,"display")
local text = getfield(start,"text")
local script = getfield(start,"script")
@@ -449,7 +421,7 @@ process = function(start) -- we cannot use the processor as we have no finalizer
if scriptscript then
process(scriptscript)
end
- elseif id == fence_code then
+ elseif id == math_fence_code then
local delim = getfield(start,"delim")
local subtype = getfield(start,"subtype")
if subtype == 1 then
@@ -506,7 +478,7 @@ process = function(start) -- we cannot use the processor as we have no finalizer
else
-- can't happen
end
- elseif id == radical_code then
+ elseif id == math_radical_code then
local left = getfield(start,"left")
local degree = getfield(start,"degree")
if left then
@@ -524,7 +496,7 @@ process = function(start) -- we cannot use the processor as we have no finalizer
processsubsup(start)
stop_tagged()
end
- elseif id == accent_code then
+ elseif id == math_accent_code then
local accent = getfield(start,"accent")
local bot_accent = getfield(start,"bot_accent")
local subtype = getsubtype(start)
@@ -534,8 +506,8 @@ process = function(start) -- we cannot use the processor as we have no finalizer
accent = true,
top = getunicode(accent),
bottom = getunicode(bot_accent),
- topfixed = subtype == fixedtopaccent_code or subtype == fixedbothaccent_code,
- bottomfixed = subtype == fixedbottomaccent_code or subtype == fixedbothaccent_code,
+ topfixed = subtype == math_fixed_top or subtype == math_fixed_both,
+ bottomfixed = subtype == math_fixed_bottom or subtype == math_fixed_both,
}))
processsubsup(start)
process(bot_accent)
@@ -545,7 +517,7 @@ process = function(start) -- we cannot use the processor as we have no finalizer
setattr(start,a_tagged,start_tagged("munder", {
accent = true,
bottom = getunicode(bot_accent),
- bottomfixed = subtype == fixedbottomaccent_code or subtype == fixedbothaccent_code,
+ bottomfixed = subtype == math_fixed_bottom or subtype == math_fixed_both,
}))
processsubsup(start)
process(bot_accent)
@@ -555,7 +527,7 @@ process = function(start) -- we cannot use the processor as we have no finalizer
setattr(start,a_tagged,start_tagged("mover", {
accent = true,
top = getunicode(accent),
- topfixed = subtype == fixedtopaccent_code or subtype == fixedbothaccent_code,
+ topfixed = subtype == math_fixed_top or subtype == math_fixed_both,
}))
processsubsup(start)
process(accent)
@@ -572,7 +544,6 @@ process = function(start) -- we cannot use the processor as we have no finalizer
stop_tagged()
end
end
--- showtag(start,id,false)
start = getnext(start)
end
if mtexttag then
@@ -581,10 +552,12 @@ process = function(start) -- we cannot use the processor as we have no finalizer
end
function noads.handlers.tags(head,style,penalties)
- start_tagged("math", { mode = (getattr(head,a_mathmode) == 1) and "display" or "inline" })
--- start_tagged("mrow")
+ head = tonut(head)
+ local v_mode = getattr(head,a_mathmode)
+ local v_math = start_tagged("math", { mode = v_mode == 1 and "display" or "inline" })
setattr(head,a_tagged,start_tagged("mrow"))
process(head)
stop_tagged()
stop_tagged()
+ return true
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/math-vfu.lua b/Master/texmf-dist/tex/context/base/mkiv/math-vfu.lua
index ed6f69f41d9..4767ffa90f6 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/math-vfu.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/math-vfu.lua
@@ -46,18 +46,9 @@ fonts.encodings.math = mathencodings -- better is then: fonts.encodings.vecto
local vfmath = allocate()
fonts.handlers.vf.math = vfmath
-local helpers = fonts.helpers
-local vfcommands = helpers.commands
-local rightcommand = vfcommands.right
-local leftcommand = vfcommands.left
-local downcommand = vfcommands.down
-local upcommand = vfcommands.up
-local push = vfcommands.push
-local pop = vfcommands.pop
-
local shared = { }
--- local back = { "slot", 1, 0x2215 }
+-- local push, pop, back = { "push" }, { "pop" }, { "slot", 1, 0x2215 }
--
-- local function negate(main,characters,id,size,unicode,basecode)
-- if not characters[unicode] then
@@ -73,8 +64,8 @@ local shared = { }
-- commands = {
-- { "slot", 1, basecode },
-- push,
--- downcommand[ht/5],
--- leftcommand[wd/2],
+-- { "down", ht/5},
+-- { "right", - wd/2},
-- back,
-- push,
-- }
@@ -148,96 +139,107 @@ local function parent(main,characters,id,size,unicode,first,rule,last)
end
end
-local step = 0.2 -- 0.1 is nicer but gives larger files
+local push, pop, step = { "push" }, { "pop" }, 0.2 -- 0.1 is nicer but gives larger files
local function make(main,characters,id,size,n,m)
local old = 0xFF000 + n
- local c = characters[old]
+ local c = characters[old]
if c then
- local upslot = 0xFF100 + n
- local dnslot = 0xFF200 + n
- local uprule = 0xFF300 + m
- local dnrule = 0xFF400 + m
- local xu = main.parameters.x_height + 0.3*size
- local xd = 0.3*size
- local w = c.width or 0
- local h = c.height or 0
- local d = c.depth or 0
+ local upslot, dnslot, uprule, dnrule = 0xFF100 + n, 0xFF200 + n, 0xFF300 + m, 0xFF400 + m
+ local xu = main.parameters.x_height + 0.3*size
+ local xd = 0.3*size
+ local w, h, d = c.width, c.height, c.depth
local thickness = h - d
local rulewidth = step*size -- we could use an overlap
- local slot = { "slot", id, old }
- local rule = { "rule", thickness, rulewidth }
- local up = upcommand[xu]
- local dn = downcommand[xd]
- local ht = xu + 3*thickness
- local dp = 0
+ local slot = { "slot", id, old }
+ local rule = { "rule", thickness, rulewidth }
+ local up = { "down", -xu }
+ local dn = { "down", xd }
+ local ht, dp = xu + 3*thickness, 0
if not characters[uprule] then
- characters[uprule] = {
- width = rulewidth,
- height = ht,
- depth = dp,
- commands = { push, up, rule, pop },
- }
+ characters[uprule] = { width = rulewidth, height = ht, depth = dp, commands = { push, up, rule, pop } }
end
- characters[upslot] = {
- width = w,
- height = ht,
- depth = dp,
- commands = { push, up, slot, pop },
- }
- local ht = 0
- local dp = xd + 3*thickness
+ characters[upslot] = { width = w, height = ht, depth = dp, commands = { push, up, slot, pop } }
+ local ht, dp = 0, xd + 3*thickness
if not characters[dnrule] then
- characters[dnrule] = {
- width = rulewidth,
- height = ht,
- depth = dp,
- commands = { push, dn, rule, pop }
- }
+ characters[dnrule] = { width = rulewidth, height = ht, depth = dp, commands = { push, dn, rule, pop } }
end
- characters[dnslot] = {
- width = w,
- height = ht,
- depth = dp,
- commands = { push, dn, slot, pop },
- }
+ characters[dnslot] = { width = w, height = ht, depth = dp, commands = { push, dn, slot, pop } }
end
end
local function clipped(main,characters,id,size,unicode,original) -- push/pop needed?
local minus = characters[original]
if minus then
- local mu = size/18
- local step = 3*mu
+ local mu = size/18
+ local step = 3*mu
local width = minus.width
if width > step then
width = width - step
- step = step / 2
+ step = step / 2
else
width = width / 2
- step = width
+ step = width
end
characters[unicode] = {
width = width,
height = minus.height,
depth = minus.depth,
- commands = {
- push,
- leftcommand[step],
- { "slot", id, original },
- pop,
- }
+ commands = { push, { "right", -step }, { "slot", id, original }, pop }
}
end
end
+-- fails: pdf:page: pdf:direct: ... some funny displacement
+
+-- this does not yet work ... { "scale", 2, 0, 0, 3 } .. commented code
+--
+-- this does not work ... no interpretation going on here
+--
+-- local nodeinjections = backends.nodeinjections
+-- { "node", nodeinjections.save() },
+-- { "node", nodeinjections.transform(.7,0,0,.7) },
+-- commands[#commands+1] = { "node", nodeinjections.restore() }
+
+-- local done = { }
+--
+-- local function raise(main,characters,id,size,unicode,private,n,id_of_smaller) -- this is a real fake mess
+-- local raised = characters[private]
+-- if raised then
+-- if not done[unicode] then
+-- report_virtual("temporary too large %U due to issues in luatex backend",unicode)
+-- done[unicode] = true
+-- end
+-- local up = 0.85 * main.parameters.x_height
+-- local slot = { "slot", id, private }
+-- local commands = {
+-- push,
+-- { "down", - up },
+-- -- { "scale", .7, 0, 0, .7 },
+-- slot,
+-- }
+-- for i=2,n do
+-- commands[#commands+1] = slot
+-- end
+-- commands[#commands+1] = pop
+-- characters[unicode] = {
+-- width = .7 * n * raised.width,
+-- height = .7 * (raised.height + up),
+-- depth = .7 * (raised.depth - up),
+-- commands = commands,
+-- }
+-- end
+-- end
+
local function raise(main,characters,id,size,unicode,private,n,id_of_smaller) -- this is a real fake mess
local raised = fonts.hashes.characters[main.fonts[id_of_smaller].id][private] -- characters[private]
if raised then
- local up = 0.85 * main.parameters.x_height
+ local up = 0.85 * main.parameters.x_height
local slot = { "slot", id_of_smaller, private }
local commands = {
- push, upcommand[up], slot,
+ push,
+ { "down", - up },
+ slot,
}
for i=2,n do
commands[#commands+1] = slot
@@ -256,85 +258,65 @@ end
local function dots(main,characters,id,size,unicode)
local c = characters[0x002E]
if c then
- local w = c.width
- local h = c.height
- local d = c.depth
- local mu = size/18
- local right3mu = rightcommand[3*mu]
- local right1mu = rightcommand[1*mu]
- local up1size = upcommand[.1*size]
- local up4size = upcommand[.4*size]
- local up7size = upcommand[.7*size]
- local right2muw = rightcommand[2*mu + w]
- local slot = { "slot", id, 0x002E }
+ local w, h, d = c.width, c.height, c.depth
+ local mu = size/18
+ local right3mu = { "right", 3*mu }
+ local right1mu = { "right", 1*mu }
+ local up1size = { "down", -.1*size }
+ local up4size = { "down", -.4*size }
+ local up7size = { "down", -.7*size }
+ local right2muw = { "right", 2*mu + w }
+ local slot = { "slot", id, 0x002E }
if unicode == 0x22EF then
local c = characters[0x022C5]
if c then
- local width = c.width
- local height = c.height
- local depth = c.depth
- local slot = { "slot", id, 0x022C5 }
+ local w, h, d = c.width, c.height, c.depth
+ local slot = { "slot", id, 0x022C5 }
characters[unicode] = {
- width = 3*width + 2*3*mu,
- height = height,
- depth = depth,
- commands = {
- push, slot, right3mu, slot, right3mu, slot, pop,
- }
+ width = 3*w + 2*3*mu, height = h, depth = d,
+ commands = { push, slot, right3mu, slot, right3mu, slot, pop }
}
end
elseif unicode == 0x22EE then
-- weird height !
characters[unicode] = {
- width = w,
- height = h+(1.4)*size,
- depth = 0,
- commands = {
- push, push, slot, pop, up4size, push, slot, pop, up4size, slot, pop,
- }
+ width = w, height = h+(1.4)*size, depth = 0,
+ commands = { push, push, slot, pop, up4size, push, slot, pop, up4size, slot, pop }
}
elseif unicode == 0x22F1 then
characters[unicode] = {
- width = 3*w + 6*size/18,
- height = 1.5*size,
- depth = 0,
+ width = 3*w + 6*size/18, height = 1.5*size, depth = 0,
commands = {
push,
- right1mu,
- push, up7size, slot, pop,
- right2muw,
- push, up4size, slot, pop,
- right2muw,
- push, up1size, slot, pop,
- right1mu,
+ right1mu,
+ push, up7size, slot, pop,
+ right2muw,
+ push, up4size, slot, pop,
+ right2muw,
+ push, up1size, slot, pop,
+ right1mu,
pop
}
}
elseif unicode == 0x22F0 then
characters[unicode] = {
- width = 3*w + 6*size/18,
- height = 1.5*size,
- depth = 0,
+ width = 3*w + 6*size/18, height = 1.5*size, depth = 0,
commands = {
push,
- right1mu,
- push, up1size, slot, pop,
- right2muw,
- push, up4size, slot, pop,
- right2muw,
- push, up7size, slot, pop,
- right1mu,
+ right1mu,
+ push, up1size, slot, pop,
+ right2muw,
+ push, up4size, slot, pop,
+ right2muw,
+ push, up7size, slot, pop,
+ right1mu,
pop
}
}
else
characters[unicode] = {
- width = 3*w + 2*3*mu,
- height = h,
- depth = d,
- commands = {
- push, slot, right3mu, slot, right3mu, slot, pop,
- }
+ width = 3*w + 2*3*mu, height = h, depth = d,
+ commands = { push, slot, right3mu, slot, right3mu, slot, pop }
}
end
end
@@ -349,23 +331,21 @@ local function vertbar(main,characters,id,size,parent,scale,unicode)
width = cp.width,
height = cp.height + sc,
depth = cp.depth + sc,
- next = cp.next, -- can be extensible
commands = {
- push, upcommand [sc], pc, pop,
- push, downcommand[sc], pc, pop,
+ push, { "down", -sc }, pc, pop,
+ push, { "down", sc }, pc, pop,
pc,
},
+ next = cp.next -- can be extensible
}
cp.next = unicode
end
end
local function jointwo(main,characters,id,size,unicode,u1,d12,u2,what)
- local c1 = characters[u1]
- local c2 = characters[u2]
+ local c1, c2 = characters[u1], characters[u2]
if c1 and c2 then
- local w1 = c1.width
- local w2 = c2.width
+ local w1, w2 = c1.width, c2.width
local mu = size/18
characters[unicode] = {
width = w1 + w2 - d12 * mu,
@@ -373,7 +353,7 @@ local function jointwo(main,characters,id,size,unicode,u1,d12,u2,what)
depth = max(c1.depth or 0, c2.depth or 0),
commands = {
{ "slot", id, u1 },
- leftcommand[d12*mu],
+ { "right", -d12*mu } ,
{ "slot", id, u2 },
},
}
@@ -381,23 +361,19 @@ local function jointwo(main,characters,id,size,unicode,u1,d12,u2,what)
end
local function jointhree(main,characters,id,size,unicode,u1,d12,u2,d23,u3)
- local c1 = characters[u1]
- local c2 = characters[u2]
- local c3 = characters[u3]
+ local c1, c2, c3 = characters[u1], characters[u2], characters[u3]
if c1 and c2 and c3 then
- local w1 = c1.width
- local w2 = c2.width
- local w3 = c3.width
+ local w1, w2, w3 = c1.width, c2.width, c3.width
local mu = size/18
characters[unicode] = {
width = w1 + w2 + w3 - d12*mu - d23*mu,
height = max(c1.height or 0, c2.height or 0, c3.height or 0),
- depth = max(c1.depth or 0, c2.depth or 0, c3.depth or 0),
+ depth = max(c1.depth or 0, c2.depth or 0, c3.depth or 0),
commands = {
{ "slot", id, u1 },
- leftcommand[d12*mu],
+ { "right", - d12*mu } ,
{ "slot", id, u2 },
- leftcommand[d23*mu],
+ { "right", - d23*mu },
{ "slot", id, u3 },
}
}
@@ -405,32 +381,24 @@ local function jointhree(main,characters,id,size,unicode,u1,d12,u2,d23,u3)
end
local function stack(main,characters,id,size,unicode,u1,d12,u2)
- local c1 = characters[u1]
- if not c1 then
- return
- end
- local c2 = characters[u2]
- if not c2 then
- return
- end
- local w1 = c1.width or 0
- local h1 = c1.height or 0
- local d1 = c1.depth or 0
- local w2 = c2.width or 0
- local h2 = c2.height or 0
- local d2 = c2.depth or 0
- local mu = size/18
- characters[unicode] = {
- width = w1,
- height = h1 + h2 + d12,
- depth = d1,
- commands = {
- { "slot", id, u1 },
- leftcommand[w1/2 + w2/2],
- downcommand[-h1 + d2 -d12*mu],
- { "slot", id, u2 },
+ local c1, c2 = characters[u1], characters[u2]
+ if c1 and c2 then
+ local w1, w2 = c1.width, c2.width
+ local h1, h2 = c1.height, c2.height
+ local d1, d2 = c1.depth, c2.depth
+ local mu = size/18
+ characters[unicode] = {
+ width = w1,
+ height = h1 + h2 + d12,
+ depth = d1,
+ commands = {
+ { "slot", id, u1 },
+ { "right", - w1/2 - w2/2 } ,
+ { "down", -h1 + d2 -d12*mu } ,
+ { "slot", id, u2 },
+ }
}
- }
+ end
end
local function repeated(main,characters,id,size,unicode,u,n,private,fraction) -- math-fbk.lua
@@ -438,14 +406,16 @@ local function repeated(main,characters,id,size,unicode,u,n,private,fraction) --
if c then
local width = c.width
local italic = fraction*width -- c.italic or 0 -- larger ones have funny italics
- local tc = { "slot", id, u }
- local tr = leftcommand[italic] -- see hack elsewhere
+ local tc = { "slot", id, u }
+ local tr = { "right", -italic } -- see hack elsewhere
local commands = { }
for i=1,n-1 do
commands[#commands+1] = tc
commands[#commands+1] = tr
end
commands[#commands+1] = tc
+-- inspect(c)
+-- inspect(commands)
local next = c.next
if next then
repeated(main,characters,id,size,private,next,n,private+1,fraction)
@@ -619,8 +589,7 @@ setmetatableindex(reverse, function(t,name)
if trace_virtual then
report_virtual("initializing math vector %a",name)
end
- local m = mathencodings[name]
- local r = { }
+ local m, r = mathencodings[name], { }
for u, i in next, m do
r[i] = u
end
@@ -628,10 +597,6 @@ setmetatableindex(reverse, function(t,name)
return r
end)
--- use char and font hash
---
--- commands = { { "font", slot }, { "char", unicode } },
-
local function copy_glyph(main,target,original,unicode,slot)
local addprivate = fonts.helpers.addprivate
local olddata = original[unicode]
@@ -658,6 +623,7 @@ local function copy_glyph(main,target,original,unicode,slot)
}
local newnextglyph = addprivate(main,formatters["M-N-%H"](nextglyph),newnextdata)
newdata.next = newnextglyph
+-- report_virtual("copied next: %X",newdata.next)
local nextnextglyph = oldnextdata.next
if nextnextglyph == nextglyph then
break
@@ -683,6 +649,7 @@ local function copy_glyph(main,target,original,unicode,slot)
commands = { { "slot", slot, oldglyph } },
}
hvi.glyph = addprivate(main,formatters["M-H-%H"](oldglyph),newdata)
+-- report_virtual("copied h variant: %X at index %i",hvi.glyph,i)
end
end
local vv = olddata.vert_variants
@@ -701,6 +668,7 @@ local function copy_glyph(main,target,original,unicode,slot)
commands = { { "slot", slot, oldglyph } },
}
vvi.glyph = addprivate(main,formatters["M-V-%H"](oldglyph),newdata)
+-- report_virtual("copied v variant: %X at index %i",vvi.glyph,i)
end
end
return newdata
@@ -710,17 +678,13 @@ end
vfmath.copy_glyph = copy_glyph
function vfmath.define(specification,set,goodies)
- local name = specification.name -- symbolic name
- local size = specification.size -- given size
- local loaded = { }
- local fontlist = { }
- local names = { }
- local main = nil
- local start = (trace_virtual or trace_timings) and os.clock()
- local okset = { }
- local n = 0
+ local name = specification.name -- symbolic name
+ local size = specification.size -- given size
+ local loaded, fontlist, names, main = { }, { }, { }, nil
+ local start = (trace_virtual or trace_timings) and os.clock()
+ local okset, n = { }, 0
for s=1,#set do
- local ss = set[s]
+ local ss = set[s]
local ssname = ss.name
if add_optional and ss.optional then
if trace_virtual then
@@ -864,11 +828,11 @@ function vfmath.define(specification,set,goodies)
elseif add_optional and ss.optional then
-- skip, redundant
else
- local newparameters = fs.parameters
+ local newparameters = fs.parameters
local newmathparameters = fs.mathparameters
if newmathparameters then
if not parameters_done or ss.parameters then
- mathparameters = newmathparameters
+ mathparameters = newmathparameters
parameters_done = true
end
elseif not newparameters then
@@ -903,7 +867,7 @@ function vfmath.define(specification,set,goodies)
-- report_virtual("loading and virtualizing font %a at size %p, setting sy parameters",name,size)
end
if ss.overlay then
- local fc = fs.characters
+ local fc = fs.characters
local first = ss.first
if first then
local last = ss.last or first
@@ -918,14 +882,12 @@ function vfmath.define(specification,set,goodies)
else
local vectorname = ss.vector
if vectorname then
- local offset = 0xFF000
- local vector = mathencodings[vectorname]
- local rotcev = reverse[vectorname]
+ local offset = 0xFF000
+ local vector = mathencodings[vectorname]
+ local rotcev = reverse[vectorname]
local isextension = ss.extension
if vector and rotcev then
- local fc = fs.characters
- local fd = fs.descriptions
- local si = shared[s]
+ local fc, fd, si = fs.characters, fs.descriptions, shared[s]
local skewchar = ss.skewchar
for unicode, index in next, vector do
local fci = fc[index]
@@ -951,8 +913,8 @@ function vfmath.define(specification,set,goodies)
ref = { { 'slot', s, index } }
si[index] = ref
end
- local kerns = fci.kerns
- local width = fci.width
+ local kerns = fci.kerns
+ local width = fci.width
local italic = fci.italic
if italic and italic > 0 then
-- int_a^b
diff --git a/Master/texmf-dist/tex/context/base/mkiv/meta-blb.lua b/Master/texmf-dist/tex/context/base/mkiv/meta-blb.lua
deleted file mode 100644
index e1c0de74f37..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/meta-blb.lua
+++ /dev/null
@@ -1,322 +0,0 @@
-if not modules then modules = { } end modules ['meta-blb'] = {
- version = 1.001,
- comment = "companion to mlib-ctx.mkiv",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files",
-}
-
--- This could be integrated in other modules but for me it also serves
--- as an example of usign the plugin mechanism.
-
-local tonumber = tonumber
-
-local setmetatableindex = table.setmetatableindex
-local insert, remove = table.insert, table.remove
-local formatters = string.formatters
-
-local topoints = number.topoints
-local mpprint = mp.print
-local mpinteger = mp.integer
-local mppoints = mp.points
-local mptriplet = mp.triplet
-local mptripletpoints = mp.tripletpoints
-
-local nuts = nodes.nuts
-local hpack = nuts.hpack
-local setbox = nuts.setbox
-local getwhd = nuts.getwhd
-local getwidth = nuts.getwidth
-local toutf = nuts.toutf
-
-local trace = false
-local report = logs.reporter("metapost","blobs")
-
-trackers.register("metapost.blobs", function(v) trace = v end)
-
-local allblobs = { }
-
-local function newcategory(t,k)
- if trace then
- report("new category %a",k)
- end
- local v = {
- name = k,
- text = "",
- blobs = { },
- }
- t[k] = v
- return v
-end
-
-local texblobs = setmetatableindex(newcategory)
-
-local function blob_raw_reset(category)
- -- we need to keep the allblobs
- if category then
- if trace then
- report("reset category %a",category)
- end
- texblobs[category] = nil
- else
- if trace then
- report("reset all")
- end
- texblobs = setmetatableindex(newcategory)
- end
-end
-
-local function blob_raw_dimensions(i)
- local blob = allblobs[i]
- if blob then
- return getwhd(blob)
- else
- return 0, 0, 0
- end
-end
-
-local function blob_raw_content(i)
- return allblobs[i]
-end
-
-local function blob_raw_toutf(i)
- return toutf(allblobs[i])
-end
-
-local function blob_raw_wipe(i)
- allblobs[i] = false
-end
-
-mp.mf_blob_raw_dimensions = blob_raw_dimensions
-mp.mf_blob_raw_content = blob_raw_content
-mp.mf_blob_raw_reset = blob_raw_reset
-mp.mf_blob_raw_wipe = blob_raw_wipe
-mp.mf_blob_raw_toutf = blob_raw_toutf
-
-function mp.mf_blob_new(category,text)
- if trace then
- report("category %a, text %a",category,text)
- end
- texblobs[category].text = text
-end
-
-function mp.mf_blob_add(category,blob)
- local tb = texblobs[category].blobs
- local tn = #allblobs + 1
- blob = hpack(blob)
- allblobs[tn] = blob
- tb[#tb+1] = tn
- if trace then
- report("category %a, blob %a set, content %a",category,tn,blob_raw_toutf(tn))
- end
-end
-
-function mp.mf_blob_width(category,i)
- local index = texblobs[category].blobs[i]
- local blob = allblobs[index]
- if blob then
- mppoints(getwidth(blob) or 0)
- else
- mpinteger(0)
- end
-end
-
-function mp.mf_blob_size(category,i)
- mpprint(#texblobs[category].blobs or 0)
-end
-
-function mp.mf_blob_index(category,i)
- mpprint(texblobs[category].blobs[i] or 0)
-end
-
-function mp.mf_blob_dimensions(category,i)
- local index = texblobs[category].blobs[i]
- local blob = allblobs[index]
- if blob then
- mptripletpoints(getwhd(blob))
- else
- mptriplet(0,0,0)
- end
-end
-
-local sxsy = metapost.sxsy
-local cm = metapost.cm
-
-local f_f = formatters["%.6F"]
-
-directives.register("pdf.stripzeros",function()
- f_f = formatters["%.6N"]
-end)
-
-local function injectblob(object,blob)
- local sx, rx, ry, sy, tx, ty = cm(object)
- local wd, ht, dp = blob_raw_dimensions(blob)
- if wd then
- object.path = false
- object.color = false
- object.grouped = true
- object.istext = true
- return function()
- if trace then
- report("injecting blob %a, width %p, heigth %p, depth %p, text %a",blob,wd,ht,dp,blob_raw_toutf(blob))
- end
- context.MPLIBgetblobscaledcm(blob,
- f_f(sx), f_f(rx), f_f(ry),
- f_f(sy), f_f(tx), f_f(ty),
- sxsy(wd,ht,dp))
- end
- end
-end
-
--- mp.mf_blob_inject = injectblob
-
-local function getblob(box,blob)
- setbox(box,blob_raw_content(blob))
- blob_raw_wipe(blob)
-end
-
-interfaces.implement {
- name = "mpgetblob",
- actions = getblob,
- arguments = { "integer", "integer" },
-}
-
--- the plug:
-
-
-local function reset()
- blob_raw_reset()
-end
-
-local function process(object,prescript,before,after)
--- if prescript.tb_stage == "inject" then
- local tb_blob = tonumber(prescript.tb_blob)
- if tb_blob then
- before[#before+1] = injectblob(object,tb_blob)
- end
--- end
-end
-
-metapost.installplugin {
- name = "texblob",
- reset = reset,
- process = process,
-}
-
--- Here follows an example of usage of the above: a more modern
--- version of followokens (in meta-imp-txt.mkiv).
-
-local nodecodes = nodes.nodecodes
-local kerncodes = nodes.kerncodes
-
-local glue_code = nodecodes.glue
-local kern_code = nodecodes.kern
-
-local fontkern_code = kerncodes.fontkern
-local italickern_code = kerncodes.italickern
-
-local a_fontkern = attributes.private("fontkern")
-
-local nuts = nodes.nuts
-local takebox = nuts.takebox
-local getlist = nuts.getlist
-local getid = nuts.getid
-local getsubtype = nuts.getsubtype
-local setlink = nuts.setlink
-local setlist = nuts.setlist
-local getnext = nuts.getnext
-local flatten_list = nuts.flatten_discretionaries
-local remove_node = nuts.remove
-local flush_node = nuts.flush
-
-local addblob = mp.mf_blob_add
-local newblob = mp.mf_blob_new
-
-local visible_codes = {
- [nodecodes.glyph] = true,
- [nodecodes.glue] = true,
- [nodecodes.hlist] = true,
- [nodecodes.vlist] = true,
- [nodecodes.rule] = true,
-}
-
-local function initialize(category,box)
- local wrap = takebox(box)
- if wrap then
- local head = getlist(wrap)
- local tail = nil
- local temp = nil
- if head then
- local n = { }
- local s = 0
- head = flatten_list(head)
- local current = head
- while current do
- local id = getid(current)
- if visible_codes[id] then
- head, current, tail = remove_node(head,current)
- s = s + 1
- n[s] = tail
- elseif id == kern_code then
- local subtype = getsubtype(current)
- if subtype == fontkern_code or subtype == italickern_code then -- or current[a_fontkern]
- head, current, temp = remove_node(head,current)
- setlink(tail,temp)
- else
- head, current, temp = remove_node(head,current)
- s = s + 1
- n[s] = temp
- end
- elseif id == glue_code then
- head, current, temp = remove_node(head,current)
- s = s + 1
- n[s] = temp
- else
- current = getnext(current)
- end
- end
- for i=1,s do
- n[i] = addblob(category,n[i])
- end
- setlist(wrap,head)
- end
- flush_node(wrap)
- end
-end
-
-interfaces.implement {
- name = "MPLIBconvertfollowtext",
- arguments = { "integer","integer" },
- actions = initialize,
-}
-
-local mp_category = 0
-local mp_str = ""
-
-function mp.mf_inject_blob(category,str)
- newblob(category,str) -- only for tracing
- mp_category = category
- mp_str = str
- tex.runtoks("mpblobtext")
-end
-
-interfaces.implement {
- name = "mpblobtext",
- actions = function()
- context.MPLIBfollowtext(mp_category,mp_str)
- end
-}
-
-local process = function(object,prescript,before,after)
- if prescript.ft_category then
- object.path = false
- object.color = false
- object.grouped = true
- object.istext = true
- end
-end
-
-metapost.installplugin {
- name = "followtext",
- process = process,
-}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/meta-blb.mkiv b/Master/texmf-dist/tex/context/base/mkiv/meta-blb.mkiv
deleted file mode 100644
index 4a5381dfc43..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/meta-blb.mkiv
+++ /dev/null
@@ -1,56 +0,0 @@
-%D \module
-%D [ file=meta-blb,
-%D version=2018.04.12,
-%D title=\METAPOST\ Graphics,
-%D subtitle=Blobs,
-%D author=Hans Hagen,
-%D date=\ currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{MetaPost Graphics / Blobs}
-
-\registerctxluafile{meta-blb}{}
-
-\unprotect
-
-\unexpanded\def\MPLIBgetblobscaledcm#1#2#3#4#5#6#7#8#9%
- {\clf_mpgetblob\MPtextbox#1\relax
- \setbox\MPbox\hpack\bgroup
- \dotransformnextbox{#2}{#3}{#4}{#5}{#6}{#7}%
- \vpack to \zeropoint\bgroup
- \vss
- \hpack to \zeropoint \bgroup
- % \fastsxsy{#8}{#9}{\raise\dp\MPtextbox\box\MPtextbox}%
- \fastsxsy{#8}{#9}{\box\MPtextbox}%
- \hss
- \egroup
- \egroup
- \egroup
- \smashbox\MPbox
- \box\MPbox}
-
-%D An example of usage:
-
-\definefontfeature[followtext][liga=no]
-
-\unexpanded\def\MPLIBfollowtext#1#2%
- {\begingroup
- \scratchcounter#1\relax
- \setbox\scratchbox\hbox{\addff{followtext}#2}%
- \clf_MPLIBconvertfollowtext\scratchcounter\scratchbox
- \endgroup}
-
-% \def\reversedtext#1%
-% {\cldcontext{table.concat(table.reverse(utf.totable(\!!bs#1\!!es)))}}
-
-%D New:
-
-\newtoks\mpblobtext
-
-\mpblobtext{\global\setbox\mptextbox\vbox{\clf_mpblobtext}}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkiv/meta-fnt.lua b/Master/texmf-dist/tex/context/base/mkiv/meta-fnt.lua
index 69212d08c79..d061c926a57 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/meta-fnt.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/meta-fnt.lua
@@ -108,17 +108,19 @@ local function process(mpxformat,name,instances,scalefactor)
for i=1,instances do
characters = { }
descriptions = { }
- metapost.process {
- mpx = mpxformat,
- flusher = flusher,
- askedfig = "all",
- -- incontext = false,
- data = {
+ metapost.process(
+ mpxformat,
+ {
formatters["randomseed := %s ;"](i*10),
formatters["charscale := %s ;"](scalefactor),
data,
},
- }
+ false,
+ flusher,
+ false,
+ false,
+ "all"
+ )
lists[i] = {
characters = characters,
descriptions = descriptions,
@@ -189,9 +191,9 @@ statistics.register("metapost font generation", function()
if total > 0 then
local time = statistics.elapsedtime(flusher)
if total > 0 then
- return format("%i glyphs, %s seconds runtime, %.1f glyphs/second", total, time, total/tonumber(time))
+ return format("%i glyphs, %.3f seconds runtime, %.1f glyphs/second", total, time, total/time)
else
- return format("%i glyphs, %s seconds runtime", total, time)
+ return format("%i glyphs, %.3f seconds runtime", total, time)
end
end
end)
@@ -200,9 +202,9 @@ statistics.register("metapost font loading",function()
if variants > 0 then
local time = statistics.elapsedtime(metapost.fonts)
if variants > 0 then
- return format("%s seconds, %i instances, %.3f instances/second", time, variants, variants/tonumber(time))
+ return format("%.3f seconds, %i instances, %.3f instances/second", time, variants, variants/time)
else
- return format("%s seconds, %i instances", time, variants)
+ return format("%.3f seconds, %i instances", time, variants)
end
end
end)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/meta-imp-dum.mkiv b/Master/texmf-dist/tex/context/base/mkiv/meta-imp-dum.mkiv
index 481afe82a54..e6ccc234c6d 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/meta-imp-dum.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/meta-imp-dum.mkiv
@@ -59,7 +59,7 @@
% clip currentpicture to p ;
% \stopuseMPgraphic
-\startuseMPgraphic{minifun::figure:placeholder}{width,height,reduction,color}
+\startuseMPgraphic{figure:placeholder}{width,height,reduction,color}
begingroup ;
save w, h, d, r, p, c, b ;
numeric w, h, d, r ; path p ;
@@ -88,7 +88,7 @@
\defineoverlay
[figure:placeholder:graphic]
[\useMPgraphic
- {minifun::figure:placeholder}%
+ {figure:placeholder}%
{width=\figurewidth,%
height=\figureheight,%
reduction=\externalfigureparameter\c!reduction,%
diff --git a/Master/texmf-dist/tex/context/base/mkiv/meta-imp-mat.mkiv b/Master/texmf-dist/tex/context/base/mkiv/meta-imp-mat.mkiv
index 495864a9eeb..19a5ba38539 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/meta-imp-mat.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/meta-imp-mat.mkiv
@@ -15,16 +15,8 @@
%
% / for cambria
-%D We need this for Alan, who nests math in \METAPOST:
-
-\unprotect
-
-\setupmathstackers
- [\c!mp=minifun::math:stacker:\number\scratchunicode]
-
-\protect
-
\startMPextensions
+
vardef math_stacker_bracket_shape(expr delta, rotate) =
image (
draw
@@ -137,55 +129,55 @@
enddef ;
\stopMPextensions
-\startuniqueMPgraphic{minifun::math:stacker:\number"FE3B4}{axis,ex,em}
+\startuniqueMPgraphic{math:stacker:\number"FE3B4}{axis,ex,em}
math_stacker_draw_accent(math_stacker_bracket_shape(OverlayHeight,false)) ;
\stopuniqueMPgraphic
-\startuniqueMPgraphic{minifun::math:stacker:\number"FE3B5}{axis,ex,em}
+\startuniqueMPgraphic{math:stacker:\number"FE3B5}{axis,ex,em}
math_stacker_draw_accent(math_stacker_bracket_shape(OverlayDepth,true)) ;
\stopuniqueMPgraphic
-\startuniqueMPgraphic{minifun::math:stacker:\number"FE3DC}{axis,ex,em}
+\startuniqueMPgraphic{math:stacker:\number"FE3DC}{axis,ex,em}
math_stacker_draw_accent(math_stacker_parent_shape(OverlayHeight,false)) ;
\stopuniqueMPgraphic
-\startuniqueMPgraphic{minifun::math:stacker:\number"FE3DD}{axis,ex,em}
+\startuniqueMPgraphic{math:stacker:\number"FE3DD}{axis,ex,em}
math_stacker_draw_accent(math_stacker_parent_shape(OverlayDepth,true)) ;
\stopuniqueMPgraphic
-\startuniqueMPgraphic{minifun::math:stacker:\number"FE3DE}{axis,ex,em}
+\startuniqueMPgraphic{math:stacker:\number"FE3DE}{axis,ex,em}
math_stacker_draw_accent(math_stacker_brace_shape(OverlayHeight,false)) ;
\stopuniqueMPgraphic
-\startuniqueMPgraphic{minifun::math:stacker:\number"FE3DF}{axis,ex,em}
+\startuniqueMPgraphic{math:stacker:\number"FE3DF}{axis,ex,em}
math_stacker_draw_accent(math_stacker_brace_shape(OverlayDepth,true)) ;
\stopuniqueMPgraphic
-\startuniqueMPgraphic{minifun::math:stacker:\number"FE33E}{axis,ex,em}
+\startuniqueMPgraphic{math:stacker:\number"FE33E}{axis,ex,em}
math_stacker_draw_accent(math_stacker_bar_shape(false)) ;
\stopuniqueMPgraphic
-\startuniqueMPgraphic{minifun::math:stacker:\number"FE33F}{axis,ex,em}
+\startuniqueMPgraphic{math:stacker:\number"FE33F}{axis,ex,em}
math_stacker_draw_accent(math_stacker_bar_shape(true)) ;
\stopuniqueMPgraphic
-\startuniqueMPgraphic{minifun::math:stacker:\number"2190}{axis,ex,em}
+\startuniqueMPgraphic{math:stacker:\number"2190}{axis,ex,em}
math_stacker_draw_arrow(math_stacker_arrow_shape(\MPvar{axis},\MPvar{ex},\MPvar{em},false)) ;
\stopuniqueMPgraphic
-\startuniqueMPgraphic{minifun::math:stacker:\number"2192}{axis,ex,em}
+\startuniqueMPgraphic{math:stacker:\number"2192}{axis,ex,em}
math_stacker_draw_arrow(math_stacker_arrow_shape(\MPvar{axis},\MPvar{ex},\MPvar{em},true)) ;
\stopuniqueMPgraphic
-\startuniqueMPgraphic{minifun::math:stacker:\number"2194}{axis,ex,em}
+\startuniqueMPgraphic{math:stacker:\number"2194}{axis,ex,em}
math_stacker_draw_arrow(math_stacker_leftrightarrow_shape(\MPvar{axis},\MPvar{ex},\MPvar{em},false)) ;
\stopuniqueMPgraphic
-\startuniqueMPgraphic{minifun::math:stacker:\number"27F7}{axis,ex,em}
+\startuniqueMPgraphic{math:stacker:\number"27F7}{axis,ex,em}
math_stacker_draw_arrow(math_stacker_leftrightarrow_shape(\MPvar{axis},\MPvar{ex},\MPvar{em},false)) ;
\stopuniqueMPgraphic
-\startuniqueMPgraphic{minifun::math:stacker:\number"21C4}{axis,ex,em}
+\startuniqueMPgraphic{math:stacker:\number"21C4}{axis,ex,em}
math_stacker_draw_arrow(math_stacker_rightoverleftarrow_shape(\MPvar{axis},\MPvar{ex},\MPvar{em},false)) ;
\stopuniqueMPgraphic
@@ -201,7 +193,7 @@
enddef ;
\stopMPextensions
-\startuniqueMPgraphic{minifun::math:radical:default}{axis,ex,em}
+\startuniqueMPgraphic{math:radical:default}{axis,ex,em}
draw
math_radical_simple(OverlayWidth,OverlayHeight,OverlayDepth,OverlayOffset)
withpen pencircle xscaled (2OverlayLineWidth) yscaled (3OverlayLineWidth/4) rotated 30
diff --git a/Master/texmf-dist/tex/context/base/mkiv/meta-imp-txt.mkiv b/Master/texmf-dist/tex/context/base/mkiv/meta-imp-txt.mkiv
index d4329cd6ffd..e9660b3a7e2 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/meta-imp-txt.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/meta-imp-txt.mkiv
@@ -202,10 +202,7 @@
\stopMPdefinitions
\startluacode
- local context = context
-
local nodecodes = nodes.nodecodes
- local kerncodes = nodes.kerncodes
local visible_code = {
[nodecodes.glyph] = true,
@@ -215,66 +212,72 @@
[nodecodes.rule] = true,
}
- local kern_code = nodecodes.kern
- local c_userkern = kerncodes.userkern
- local a_fontkern = attributes.private("fontkern")
-
- local copynode = nodes.copy
- local freenode = nodes.free
+ local disc_code = nodecodes.disc
+ local kern_code = nodecodes.kern
- local topoints = number.topoints
- local mpprint = mp.print
+ local c_userkern = nodes.kerncodes.userkern
+ local a_fontkern = attributes.private("fontkern")
local n = nil
local s = 0
function mp.follow_reset()
- for i=1,#n do
- freenode(n[i])
- end
- n = nil
+ r = nil
s = 0
end
function mp.follow_initialize(b)
- if not n then
- local head = tex.takebox(b).list
- if head then
- n = { }
- s = 0
- head = node.flatten_discretionaries(head)
- local current = head
- while current do
- local id = current.id
- if visible_code[id] then
- s = s + 1
- head, current, n[s] = nodes.remove(head,current)
- elseif id == kern_code and current.subtype == c_userkern and not current[a_fontkern] then
+ if not r then
+ local l = tex.takebox(b).list
+ n = { }
+ s = 0
+ while l do
+ local c = l
+ l = l.next
+ local id = c.id
+ if visible_code[id] then
+ s = s + 1
+ n[s] = c
+ c.prev = nil
+ c.next = nil
+ elseif id == kern_code then
+ if c.subtype == c_userkern and not c[a_fontkern] then
s = s + 1
- head, current, n[s] = nodes.remove(head,current)
+ n[s] = c
+ c.prev = nil
else
- current = current.next
+ n[s].next = c
+ c.prev = n[s]
+ end
+ c.next = nil
+ elseif id == disc_code then
+ local r = c.replace
+ while r do
+ s = s + 1
+ n[s] = r
+ r = r.next
+ r.prev = nil
+ r.next = nil
end
end
- nodes.flush_list(head)
end
end
end
function mp.follow_size()
- mpprint(s)
+ mp.print(s)
end
function mp.follow_slot(i)
- mpprint('textext("\\getfollowtoken{' .. i .. '}")')
+ mp.print('textext("\\getfollowtoken{' .. i .. '}")')
end
function mp.follow_text(s)
- context(copynode(n[s]))
+ context(n[s])
end
function mp.follow_width(i)
- mpprint(topoints(n[i].width))
+ mp.print(number.topoints(n[i].width))
end
\stopluacode
@@ -370,8 +373,9 @@
[medium]
\startuniqueMPgraphic{EnglishRule}{height,width,color}
+ height = \MPvar{height} ;
x1 = 0 ; x3 = \MPvar{width} ; x2 = x4 = .5x3 ;
- y1 = y3 = 0 ; y2 = -y4 = \MPvar{height}/2 ;
+ y1 = y3 = 0 ; y2 = -y4 = height/2 ;
fill z1..z2..z3 & z3..z4..z1 & cycle withcolor \MPvar{color} ;
\stopuniqueMPgraphic
diff --git a/Master/texmf-dist/tex/context/base/mkiv/meta-ini.lua b/Master/texmf-dist/tex/context/base/mkiv/meta-ini.lua
index f320efe2046..6c4768671f1 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/meta-ini.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/meta-ini.lua
@@ -117,23 +117,23 @@ do
local data = false
- function mp.mf_start_saving_data(n)
+ function mp.start_saving_data(n)
data = { }
end
- function mp.mf_stop_saving_data()
+ function mp.stop_saving_data()
if data then
-- nothing
end
end
- function mp.mf_finish_saving_data()
+ function mp.finish_saving_data()
if data then
-- nothing
end
end
- function mp.mf_save_data(str)
+ function mp.save_data(str)
if data then
data[#data+1] = str
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/meta-ini.mkiv b/Master/texmf-dist/tex/context/base/mkiv/meta-ini.mkiv
index 89c7699deb5..61e3523e667 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/meta-ini.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/meta-ini.mkiv
@@ -97,7 +97,7 @@
\ifx\currentMPinstance\empty
\let\currentMPinstance\defaultMPinstance
\fi
- \gtoksapp\t_meta_definitions{#2}%
+ \global\t_meta_definitions\expandafter{\the\t_meta_definitions#2}%
\let\currentMPinstance\m_meta_saved_instance}
\let\stopMPdefinitions\relax
@@ -111,7 +111,7 @@
\let\stopMPextensions\relax
\unexpanded\def\startMPinitializations#1\stopMPinitializations % for all instances, when enabled
- {\gtoksapp\t_meta_initializations{#1}}
+ {\global\t_meta_initializations\expandafter{\the\t_meta_initializations#1}}
\let\stopMPinitializations\relax
@@ -131,7 +131,7 @@
\ifx\m_meta_option\!!plustoken \else
\global\t_meta_inclusions\emptytoks
\fi
- \gtoksapp\t_meta_inclusions{#2}%
+ \global\t_meta_inclusions\expandafter{\the\t_meta_inclusions#2}%
\let\currentMPinstance\m_meta_saved_instance}
\let\stopMPinclusions\relax
@@ -152,7 +152,7 @@
\ifx\m_meta_option\!!plustoken \else
\global\t_meta_inclusions\emptytoks
\fi
- \gtoksapp\t_meta_inclusions{#2}%
+ \global\t_meta_inclusions\expandafter{\the\t_meta_inclusions#2}%
\let\currentMPinstance\m_meta_saved_instance}
\installcommandhandler \??mpinstance {MPinstance} \??mpinstance
@@ -211,7 +211,6 @@
\def\currentMPformat {\currentMPinstance}
\defineMPinstance[metafun] [\s!format=metafun,\s!extensions=\v!yes,\s!initializations=\v!yes]
-\defineMPinstance[minifun] [\s!format=minifun,\s!extensions=\v!yes,\s!initializations=\v!yes]
\defineMPinstance[extrafun] [\s!format=metafun,\s!extensions=\v!yes,\s!initializations=\v!yes]
\defineMPinstance[lessfun] [\s!format=metafun]
\defineMPinstance[doublefun] [\s!format=metafun,\s!extensions=\v!yes,\s!initializations=\v!yes,\c!method=\s!double]
@@ -276,13 +275,11 @@
\endgroup}
\def\meta_process_graphic_start
- {\pushMPboundingbox
- \setbox\b_meta_graphic\hpack\bgroup}
+ {\setbox\b_meta_graphic\hpack\bgroup}
\def\meta_process_graphic_stop
{\egroup
- \meta_place_graphic
- \popMPboundingbox}
+ \meta_place_graphic}
\unexpanded\def\meta_process_graphic_instance#1%
{\edef\currentMPinstance{#1}%
@@ -368,12 +365,12 @@
\let\MPdrawingdata\empty
\unexpanded\def\resetMPdrawing
- {\glet\MPdrawingdata\empty
+ {\global\let\MPdrawingdata\empty
\global\MPdrawingdonefalse}
\unexpanded\def\pushMPdrawing
{\globalpushmacro\MPdrawingdata
- \glet\MPdrawingdata\empty}
+ \global\let\MPdrawingdata\empty}
\unexpanded\def\popMPdrawing
{\globalpopmacro\MPdrawingdata}
@@ -731,7 +728,7 @@
% \def\meta_start_use_graphic#1#2#3\stopuseMPgraphic
% %{\setgvalue{\??mpgraphic#1}{\meta_handle_use_graphic{#1}{#2}{#3}}}
% %{\setxvalue{\??mpgraphic#1}{\noexpand\meta_handle_use_graphic{#1}{\normalunexpanded{#2}}{\normalunexpanded{#3}}}}
-% {\expandafter\gdef\csname\??mpgraphic#1\expandafter\endcsname\expandafter{\expandafter\meta_handle_use_graphic\expandafter{\normalexpanded{#1}}{#2}{#3}}}
+% {\global\expandafter\gdef\csname\??mpgraphic#1\expandafter\endcsname\expandafter{\expandafter\meta_handle_use_graphic\expandafter{\normalexpanded{#1}}{#2}{#3}}}
%
% cleaner:
@@ -788,28 +785,11 @@
\unexpanded\def\useMPgraphic
{\dodoublegroupempty\meta_use_graphic}
-% \def\meta_use_graphic#1#2%
-% {\meta_begin_graphic_group{#1}%
-% %\doifsomething{#2}{\setupMPvariables[\currentMPgraphicname][#2]}%
-% \doifsomething{#2}{\setupMPvariables[#1][#2]}%
-% \csname\??mpgraphic#1\endcsname\empty
-% \meta_end_graphic_group}
-
\def\meta_use_graphic#1#2%
{\meta_begin_graphic_group{#1}%
- \ifcsname\??mpgraphic#1\endcsname
- \edef\usedMPgraphicname{#1}%
- \else\ifcsname\??mpgraphic\currentMPgraphicname\endcsname
- \let\usedMPgraphicname\currentMPgraphicname
- \else
- \let\usedMPgraphicname\empty
- \fi\fi
- \ifx\usedMPgraphicname\empty
- % message
- \else
- \doifsomething{#2}{\setupMPvariables[\usedMPgraphicname][#2]}%
- \csname\??mpgraphic\usedMPgraphicname\endcsname
- \fi
+% \doifsomething{#2}{\setupMPvariables[\currentMPgraphicname][#2]}%
+ \doifsomething{#2}{\setupMPvariables[#1][#2]}%
+ \csname\??mpgraphic#1\endcsname\empty
\meta_end_graphic_group}
\let\reuseMPgraphic \useMPgraphic % we can save a setup here if needed
@@ -881,6 +861,19 @@
{\meta_prepare_instance_variable{#1}%
\edef\overlaystamp{\overlaystamp:\MPvariable{#1}}}
+%D \macros
+%D {MPdatafile}
+%D
+%D We redefine a macro from \type {supp-mps.tex}:
+
+% This will change ...
+
+\def\MPdataMPYfile{\jobname-mpgraph.mpy}
+
+\startMPextensions
+ def data_mpy_file = "\noexpand\MPdataMPYfile" enddef ;
+\stopMPextensions
+
\unexpanded\def\getMPdata {\clf_getMPdata}
\let\rawMPdata \clf_getMPdata
diff --git a/Master/texmf-dist/tex/context/base/mkiv/meta-nod.lua b/Master/texmf-dist/tex/context/base/mkiv/meta-nod.lua
deleted file mode 100644
index 422b4ee14d2..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/meta-nod.lua
+++ /dev/null
@@ -1,81 +0,0 @@
-if not modules then modules = { } end modules ['meta-nod'] = {
- version = 1.001,
- comment = "companion to meta-nod.mkiv",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
-local tonumber = tonumber
-local P, R, Cs, lpegmatch = lpeg.P, lpeg.R, lpeg.Cs, lpeg.match
-
-local references = { }
-local trace = false
-local report = logs.reporter("metapost","nodes")
-
-local context = context
-local implement = interfaces.implement
-
-trackers.register("metapost.nodes", function(v) trace = v end)
-
-local word = R("AZ","az","__")^1
-
-local pattern = Cs (
- (
- word / function(s) return references[s] or s end
- + P("{") / "["
- + P("}") / "]"
- + P(1)
- )^1
-)
-
-implement {
- name = "grph_nodes_initialize",
- actions = function()
- references = { }
- end
-}
-
-implement {
- name = "grph_nodes_reset",
- actions = function()
- references = { }
- end
-}
-
-implement {
- name = "grph_nodes_register",
- arguments = { "string", "integer" },
- actions = function(s,r)
- if not tonumber(s) then
- if trace then
- report("register %i as %a",t,s)
- end
- references[s] = r
- end
- end
-}
-
-implement {
- name = "grph_nodes_resolve",
- arguments = "string",
- actions = function(s)
- local r = references[s]
- if r then
- if trace then
- report("resolve %a to %i",s,r)
- end
- context(r)
- return
- end
- local n = lpegmatch(pattern,s)
- if s ~= n then
- if trace then
- report("resolve '%s' to %s",s,n)
- end
- context(n)
- return
- end
- context(s)
- end
-}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/meta-nod.mkiv b/Master/texmf-dist/tex/context/base/mkiv/meta-nod.mkiv
index 9f966349c15..5c7b3d503dd 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/meta-nod.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/meta-nod.mkiv
@@ -11,8 +11,6 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\registerctxluafile{meta-nod}{}
-
\unprotect
\defineMPinstance
@@ -107,11 +105,6 @@
\let\stopnodes\relax
-%D Hm, we started out simple but it now quickly becomes the usual mess of
-%D \TEX, \METAPOST\ and \LUA. Hard to understand.
-
-\newcount\c_meta_nodes_n
-
\unexpanded\def\startnodes
{\dosingleempty\meta_nodes_start}
@@ -123,12 +116,10 @@
\edef\p_meta_option{\metanodesparameter\c!option}%
\edef\p_meta_alternative{\metanodesparameter\c!alternative}%
\the\t_every_meta_nodes
- \c_meta_nodes_n\zerocount
\t_meta_nodes\emptytoks
#2\removeunwantedspaces
% for alan, will be commented:
\writestatus{metanodes}{\detokenize\expandafter{\the\t_meta_nodes}}%
- \clf_grph_nodes_initialize
\startMPcode
mfun_node_init(%
\the\dimexpr\metanodesparameter\c!dx\relax,%
@@ -138,9 +129,11 @@
\the\t_meta_nodes ;
mfun_node_flush ;
\stopMPcode
- \clf_grph_nodes_reset
\egroup}
+% \unexpanded\def\grph_nodes_node[#1,#2]#3%
+% {\etoksapp\t_meta_nodes{mfun_node_make(\number#1,\number#2,"\metanodesparameter\c!command{#3}");}}
+
\unexpanded\def\grph_nodes_node
{\dodoubleempty\grph_nodes_node_two}
@@ -153,20 +146,13 @@
\setupcurrentmetanodes[#3]%
\fi
\edef\p_label{#4}%
- \edef\p_reference{\metanodesparameter\c!reference}%
- \ifx\p_reference\empty\else
- \clf_grph_nodes_register{\p_reference}\c_meta_nodes_n\relax
- \fi
\normalexpanded{\endgroup\noexpand\etoksapp\t_meta_nodes{%
mfun_node_make(\number#1,\number#2%
- \ifx\p_label\empty
- ,""%
- \else
+ \ifx\p_label\empty \else
,"\metanodesparameter\c!command{\p_label}"%
\fi
);%
- }}%
- \advance\c_meta_nodes_n\plusone}
+ }}}
\appendtoks
\let\placenode\grph_nodes_node
@@ -213,11 +199,8 @@
\space
mfun_nodes_fromto\begincsname\??metanodesposition\metanodesparameter\c!position\endcsname(%
\metanodesparameter\c!offset,%
- % \number#1,\number#2%
- \clf_grph_nodes_resolve{#1},\clf_grph_nodes_resolve{#2}%
- \ifx\p_label\empty
- ,""%
- \else
+ \number#1,\number#2%
+ \ifx\p_label\empty \else
,"\ifx\p_command\empty\p_label\else\p_command{\p_label}\fi"%
\fi
)%
diff --git a/Master/texmf-dist/tex/context/base/mkiv/meta-pdf.lua b/Master/texmf-dist/tex/context/base/mkiv/meta-pdf.lua
index 5bcd161c02f..4a185cebd4d 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/meta-pdf.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/meta-pdf.lua
@@ -6,9 +6,6 @@ if not modules then modules = { } end modules ['meta-pdf'] = {
license = "see context related readme files"
}
--- This module is not used in practice but we keep it around for historic
--- reasons.
-
-- Finally we used an optimized version. The test code can be found in
-- meta-pdh.lua but since we no longer want to overload functione we use
-- more locals now. This module keeps changing as it is also a testbed.
@@ -38,24 +35,20 @@ local pdfgraycode = lpdf.graycode
local pdfspotcode = lpdf.spotcode
local pdftransparencycode = lpdf.transparencycode
local pdffinishtransparencycode = lpdf.finishtransparencycode
+----- pdfpageliteral = nodes.pool.pdfpageliteral
metapost.mptopdf = metapost.mptopdf or { }
local mptopdf = metapost.mptopdf
mptopdf.nofconverted = 0
-local f_translate = formatters["1 0 0 0 1 %.6F %.6F cm"]
-local f_concat = formatters["%.6F %.6F %.6F %.6F %.6F %.6F cm"]
-
-directives.register("pdf.stripzeros",function()
- f_translate = formatters["1 0 0 0 1 %.6N %.6N cm"]
- f_concat = formatters["%.6N %.6N %.6N %.6N %.6N %.6N cm"]
-end)
+local f_translate = formatters["1 0 0 0 1 %F %F cm"] -- no %s due to 1e-035 issues
+local f_concat = formatters["%F %F %F %F %F %F cm"] -- no %s due to 1e-035 issues
local m_path, m_stack, m_texts, m_version, m_date, m_shortcuts = { }, { }, { }, 0, 0, false
local m_stack_close, m_stack_path, m_stack_concat = false, { }, nil
-local extra_path_data, ignore_path = nil, false
+local extra_path_code, ignore_path = nil, false
local specials = { }
local function resetpath()
@@ -64,21 +57,28 @@ end
local function resetall()
m_path, m_stack, m_texts, m_version, m_shortcuts = { }, { }, { }, 0, false
- extra_path_data, ignore_path = nil, false
+ extra_path_code, ignore_path = nil, false
specials = { }
resetpath()
end
resetall()
+-- -- this does not work as expected (displacement of text) beware, needs another
+-- -- comment hack
+--
+-- local function pdfcode(str)
+-- context(pdfpageliteral(str))
+-- end
+
local pdfcode = context.pdfliteral
local function mpscode(str)
if ignore_path then
pdfcode("h W n")
- if extra_path_data then
- pdfcode(extra_path_data)
- extra_path_data = nil
+ if extra_path_code then
+ pdfcode(extra_path_code)
+ extra_path_code = nil
end
ignore_path = false
else
@@ -99,28 +99,16 @@ local function flushpath(cmd)
if #m_stack_path > 0 then
local path = { }
if m_stack_concat then
- local sx = m_stack_concat[1]
- local sy = m_stack_concat[4]
- local rx = m_stack_concat[2]
- local ry = m_stack_concat[3]
- local tx = m_stack_concat[5]
- local ty = m_stack_concat[6]
+ local sx, sy = m_stack_concat[1], m_stack_concat[4]
+ local rx, ry = m_stack_concat[2], m_stack_concat[3]
+ local tx, ty = m_stack_concat[5], m_stack_concat[6]
local d = (sx*sy) - (rx*ry)
for k=1,#m_stack_path do
- local v = m_stack_path[k]
- local px = v[1]
- local py = v[2]
- v[1] = (sy*(px-tx)-ry*(py-ty))/d
- v[2] = (sx*(py-ty)-rx*(px-tx))/d
+ local v = m_stack_path[k]
+ local px, py = v[1], v[2] ; v[1], v[2] = (sy*(px-tx)-ry*(py-ty))/d, (sx*(py-ty)-rx*(px-tx))/d -- mpconcat(v[1],v[2])
if #v == 7 then
- px = v[3]
- py = v[4]
- v[3] = (sy*(px-tx)-ry*(py-ty))/d
- v[4] = (sx*(py-ty)-rx*(px-tx))/d
- px = v[5]
- py = v[6]
- v[5] = (sy*(px-tx)-ry*(py-ty))/d
- v[6] = (sx*(py-ty)-rx*(px-tx))/d
+ local px, py = v[3], v[4] ; v[3], v[4] = (sy*(px-tx)-ry*(py-ty))/d, (sx*(py-ty)-rx*(px-tx))/d -- mpconcat(v[3],v[4])
+ local px, py = v[5], v[6] ; v[5], v[6] = (sy*(px-tx)-ry*(py-ty))/d, (sx*(py-ty)-rx*(px-tx))/d -- mpconcat(v[5],v[6])
end
path[k] = concat(v," ")
end
@@ -173,8 +161,7 @@ function mps.lineto(x,y)
end
function mps.rlineto(x,y)
- local dx = 0
- local dy = 0
+ local dx, dy = 0, 0
local topofstack = #m_stack_path
if topofstack > 0 then
local msp = m_stack_path[topofstack]
@@ -251,8 +238,7 @@ function mps.clip()
end
function mps.textext(font, scale, str) -- old parser
- local dx = 0
- local dy = 0
+ local dx, dy = 0, 0
if #m_stack_path > 0 then
dx, dy = m_stack_path[1][1], m_stack_path[1][2]
end
@@ -293,7 +279,7 @@ local function linearshade(colorspace,domain,ca,cb,coordinates)
nofshades = nofshades + 1
local name = formatters["MpsSh%s"](nofshades)
lpdf.linearshade(name,domain,ca,cb,1,colorspace,coordinates)
- extra_path_data, ignore_path = formatters["/%s sh Q"](name), true
+ extra_path_code, ignore_path = formatters["/%s sh Q"](name), true
pdfcode("q /Pattern cs")
end
@@ -302,7 +288,7 @@ local function circularshade(colorspace,domain,ca,cb,coordinates)
nofshades = nofshades + 1
local name = formatters["MpsSh%s"](nofshades)
lpdf.circularshade(name,domain,ca,cb,1,colorspace,coordinates)
- extra_path_data, ignore_path = formatters["/%s sh Q"](name), true
+ extra_path_code, ignore_path = formatters["/%s sh Q"](name), true
pdfcode("q /Pattern cs")
end
@@ -347,12 +333,9 @@ handlers[50] = function() report_mptopdf("skipping special %s",50) end
--end of not supported
function mps.setrgbcolor(r,g,b) -- extra check
- r = tonumber(r) -- needed when we use lpeg
- g = tonumber(g) -- needed when we use lpeg
- b = tonumber(b) -- needed when we use lpeg
+ r, g, b = tonumber(r), tonumber(g), tonumber(b) -- needed when we use lpeg
if r == 0.0123 and g < 0.1 then
- g = round(g*10000)
- b = round(b*10000)
+ g, b = round(g*10000), round(b*10000)
local s = specials[b]
local h = round(s[#s])
local handler = handlers[h]
@@ -362,8 +345,7 @@ function mps.setrgbcolor(r,g,b) -- extra check
report_mptopdf("unknown special handler %s (1)",h)
end
elseif r == 0.123 and g < 0.1 then
- g = round(g*1000)
- b = round(b*1000)
+ g, b = round(g*1000), round(b*1000)
local s = specials[b]
local h = round(s[#s])
local handler = handlers[h]
diff --git a/Master/texmf-dist/tex/context/base/mkiv/meta-pdh.mkiv b/Master/texmf-dist/tex/context/base/mkiv/meta-pdh.mkiv
index e4ac92fb404..f9eff73caaa 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/meta-pdh.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/meta-pdh.mkiv
@@ -92,15 +92,15 @@
{\ifx\objectoffset\undefined\zeropoint\else\objectoffset\fi}
\def\resetMPvariables#1#2#3%
- {\glet\MPwidth \!!zeropoint
- \glet\MPheight \!!zeropoint
- \glet\MPllx \!!zerocount
- \glet\MPlly \!!zerocount
- \glet\MPurx \!!zerocount
- \glet\MPury \!!zerocount
- \xdef\MPxscale {#2}\ifx\MPxscale\empty\let\MPxscale\!!plusone\fi
- \xdef\MPyscale {#3}\ifx\MPyscale\empty\let\MPyscale\!!plusone\fi
- \xdef\MPfilename {#1}}
+ {\global\let\MPwidth \!!zeropoint
+ \global\let\MPheight\!!zeropoint
+ \global\let\MPllx \!!zerocount
+ \global\let\MPlly \!!zerocount
+ \global\let\MPurx \!!zerocount
+ \global\let\MPury \!!zerocount
+ \xdef\MPxscale {#2}\ifx\MPxscale\empty\let\MPxscale\!!plusone\fi
+ \xdef\MPyscale {#3}\ifx\MPyscale\empty\let\MPyscale\!!plusone\fi
+ \xdef\MPfilename {#1}}
%D The main macro:
@@ -164,7 +164,7 @@
\else
\getMPPDFobject
\fi
- \glet\currentPDFresources\empty
+ \global\let\currentPDFresources\empty
\else
\box#1%
\fi}
@@ -250,12 +250,12 @@
%D Some day we may consider collecting local resources.
\appendtoks
- \glet\currentPDFresources\empty % kind of redundant
+ \global\let\currentPDFresources\empty % kind of redundant
\to \MPstartresources
% \appendtoks
% \collectPDFresources
-% \glet\currentPDFresources\collectedPDFresources
+% \global\let\currentPDFresources\collectedPDFresources
% \to \MPstopresources
\appendtoksonce
diff --git a/Master/texmf-dist/tex/context/base/mkiv/meta-tex.lua b/Master/texmf-dist/tex/context/base/mkiv/meta-tex.lua
index c2f72bcf3c7..fdf11842428 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/meta-tex.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/meta-tex.lua
@@ -126,7 +126,11 @@ do
arguments = "2 strings",
}
- utilities.strings.formatters.add(formatters,"texexp", [[texexp(...)]], { texexp = metapost.texexp })
+ if LUAVERSION < 5.2 then
+ utilities.strings.formatters.add(formatters,"texexp", [[texexp(...)]], "local texexp = metapost.texexp")
+ else
+ utilities.strings.formatters.add(formatters,"texexp", [[texexp(...)]], { texexp = metapost.texexp })
+ end
local f_textext = formatters[ [[textext("%s")]] ]
local f_mthtext = formatters[ [[textext("\mathematics{%s}")]] ]
diff --git a/Master/texmf-dist/tex/context/base/mkiv/metatex.tex b/Master/texmf-dist/tex/context/base/mkiv/metatex.tex
new file mode 100644
index 00000000000..7c8a7ff0104
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkiv/metatex.tex
@@ -0,0 +1,30 @@
+%D \module
+%D [ file=metatex,
+%D version=2008.10.10,
+%D title=\METATEX,
+%D subtitle=\METATEX\ Format Generation,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D We can experiment here with runtime loading, i.e. no longer
+%D use a format. However, we still need a stub then but it could
+%D as well be luatools (mtxrun) itself then.
+
+%D This format is just a minimal layer on top of the \LUATEX\
+%D engine and will not provide high level functionality. It can
+%D be used as basis for dedicated (specialized) macro packages.
+%D
+%D A format is generated with the command;
+%D
+%D \starttyping
+%D mtxrun --script metatex --make
+%D \stoptyping
+%D
+%D For the moment this is a placeholder. Maybe some day ... the old
+%D file history/metatex/metatex.tex so I can pick up from there if
+%D needed.
diff --git a/Master/texmf-dist/tex/context/base/mkiv/mlib-ctx.lua b/Master/texmf-dist/tex/context/base/mkiv/mlib-ctx.lua
index 89f2fa0eeb1..c568b92a3f1 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/mlib-ctx.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/mlib-ctx.lua
@@ -11,29 +11,46 @@ local format, concat = string.format, table.concat
local settings_to_hash = utilities.parsers.settings_to_hash
local formatters = string.formatters
-local report_metapost = logs.reporter ("metapost")
-local status_metapost = logs.messenger("metapost")
+local report_metapost = logs.reporter("metapost")
-local starttiming = statistics.starttiming
-local stoptiming = statistics.stoptiming
+local starttiming = statistics.starttiming
+local stoptiming = statistics.stoptiming
-local trace_graphic = false
+local mplib = mplib
-trackers.register("metapost.graphics",
- function(v) trace_graphic = v end
-);
+metapost = metapost or { }
+local metapost = metapost
+local context = context
-local mplib = mplib
+local setters = tokens.setters
+local setmacro = setters.macro
+local implement = interfaces.implement
-metapost = metapost or { }
-local metapost = metapost
-local context = context
+local v_no = interfaces.variables.no
-local setters = tokens.setters
-local setmacro = setters.macro
-local implement = interfaces.implement
+metapost.defaultformat = "metafun"
+metapost.defaultinstance = "metafun"
+metapost.defaultmethod = "default"
-local v_no = interfaces.variables.no
+local function setmpsformat(specification)
+ local instance = specification.instance
+ local format = specification.format
+ local method = specification.method
+ if not instance or instance == "" then
+ instance = metapost.defaultinstance
+ specification.instance = instance
+ end
+ if not format or format == "" then
+ format = metapost.defaultformat
+ specification.format = format
+ end
+ if not method or method == "" then
+ method = metapost.defaultmethod
+ specification.method = method
+ end
+ specification.mpx = metapost.format(instance,format,method)
+ return specification
+end
local extensiondata = metapost.extensiondata or storage.allocate { }
metapost.extensiondata = extensiondata
@@ -79,6 +96,9 @@ implement {
arguments = "string"
}
+local report_metapost = logs.reporter ("metapost")
+local status_metapost = logs.messenger("metapost")
+
local patterns = {
"meta-imp-%s.mkiv",
"meta-imp-%s.tex",
@@ -172,9 +192,7 @@ implement {
-- or just move the scanners to pps
function metapost.graphic(specification)
- metapost.pushformat(specification)
- metapost.graphic_base_pass(specification)
- metapost.popformat()
+ metapost.graphic_base_pass(setmpsformat(specification))
end
function metapost.startgraphic(t)
@@ -190,6 +208,9 @@ function metapost.startgraphic(t)
if not t.method then
t.method = metapost.defaultmethod
end
+ if not t.definitions then
+ t.definitions = ""
+ end
t.data = { }
return t
end
@@ -197,10 +218,8 @@ end
function metapost.stopgraphic(t)
if t then
t.data = concat(t.data or { },"\n")
- if trace_graphic then
- report_metapost("\n"..t.data.."\n")
- end
metapost.graphic(t)
+ t.data = ""
end
end
@@ -246,7 +265,8 @@ implement {
}
function metapost.getclippath(specification) -- why not a special instance for this
- local mpx = metapost.pushformat(specification)
+ setmpsformat(specification)
+ local mpx = specification.mpx
local data = specification.data or ""
if mpx and data ~= "" then
starttiming(metapost)
@@ -265,10 +285,7 @@ function metapost.getclippath(specification) -- why not a special instance for t
result = metapost.filterclippath(result)
end
stoptiming(metapost)
- metapost.pushformat()
return result
- else
- metapost.pushformat()
end
end
@@ -320,17 +337,23 @@ implement {
}
}
-statistics.register("metapost", function()
+statistics.register("metapost processing time", function()
local n = metapost.n
if n and n > 0 then
+ local nofconverted = metapost.makempy.nofconverted
local elapsedtime = statistics.elapsedtime
- local elapsed = statistics.elapsed
- local instances,
- memory = metapost.getstatistics(true)
- return format("%s seconds, loading: %s, execution: %s, n: %s, average: %s, instances: %i, luacalls: %i, memory: %0.3f M",
+ local elapsed = statistics.elapsed
+ local instances, memory = metapost.getstatistics(true)
+ local str = format("%s seconds, loading: %s, execution: %s, n: %s, average: %s, instances: %i, memory: %0.3f M",
elapsedtime(metapost), elapsedtime(mplib), elapsedtime(metapost.exectime), n,
elapsedtime((elapsed(metapost) + elapsed(mplib) + elapsed(metapost.exectime)) / n),
- instances, metapost.nofscriptruns(),memory/(1024*1024))
+ instances, memory/(1024*1024))
+ if nofconverted > 0 then
+ return format("%s, external: %s (%s calls)",
+ str, elapsedtime(metapost.makempy), nofconverted)
+ else
+ return str
+ end
else
return nil
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/mlib-int.lua b/Master/texmf-dist/tex/context/base/mkiv/mlib-int.lua
index 63e7278dae7..bd3ba213f86 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/mlib-int.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/mlib-int.lua
@@ -7,14 +7,11 @@ if not modules then modules = { } end modules ['mlib-int'] = {
}
local factor = number.dimenfactors.bp
------ mpprint = mp.print
-local mpnumeric = mp.numeric
-local mpboolean = mp.boolean
-local mpstring = mp.string
-local mpquoted = mp.quoted
+local mpprint = mp.print
+----- mpboolean = mp.boolean
+----- mpquoted = mp.quoted
local getdimen = tex.getdimen
local getcount = tex.getcount
-local getmacro = tokens.getters.macro
local get = tex.get
local mpcolor = attributes.colors.mpcolor
local emwidths = fonts.hashes.emwidths
@@ -22,90 +19,90 @@ local exheights = fonts.hashes.exheights
local mpgetdimen = mp.getdimen
-function mp.PaperHeight () mpnumeric(getdimen("paperheight") *factor) end
-function mp.PaperWidth () mpnumeric(getdimen("paperwidth") *factor) end
-function mp.PrintPaperHeight () mpnumeric(getdimen("printpaperheight") *factor) end
-function mp.PrintPaperWidth () mpnumeric(getdimen("printpaperwidth") *factor) end
-function mp.TopSpace () mpnumeric(getdimen("topspace") *factor) end
-function mp.BottomSpace () mpnumeric(getdimen("bottomspace") *factor) end
-function mp.BackSpace () mpnumeric(getdimen("backspace") *factor) end
-function mp.CutSpace () mpnumeric(getdimen("cutspace") *factor) end
-function mp.MakeupHeight () mpnumeric(getdimen("makeupheight") *factor) end
-function mp.MakeupWidth () mpnumeric(getdimen("makeupwidth") *factor) end
-function mp.TopHeight () mpnumeric(getdimen("topheight") *factor) end
-function mp.TopDistance () mpnumeric(getdimen("topdistance") *factor) end
-function mp.HeaderHeight () mpnumeric(getdimen("headerheight") *factor) end
-function mp.HeaderDistance () mpnumeric(getdimen("headerdistance") *factor) end
-function mp.TextHeight () mpnumeric(getdimen("textheight") *factor) end
-function mp.FooterDistance () mpnumeric(getdimen("footerdistance") *factor) end
-function mp.FooterHeight () mpnumeric(getdimen("footerheight") *factor) end
-function mp.BottomDistance () mpnumeric(getdimen("bottomdistance") *factor) end
-function mp.BottomHeight () mpnumeric(getdimen("bottomheight") *factor) end
-function mp.LeftEdgeWidth () mpnumeric(getdimen("leftedgewidth") *factor) end
-function mp.LeftEdgeDistance () mpnumeric(getdimen("leftedgedistance") *factor) end
-function mp.LeftMarginWidth () mpnumeric(getdimen("leftmarginwidth") *factor) end
-function mp.LeftMarginDistance () mpnumeric(getdimen("leftmargindistance") *factor) end
-function mp.TextWidth () mpnumeric(getdimen("textwidth") *factor) end
-function mp.RightMarginDistance () mpnumeric(getdimen("rightmargindistance") *factor) end
-function mp.RightMarginWidth () mpnumeric(getdimen("rightmarginwidth") *factor) end
-function mp.RightEdgeDistance () mpnumeric(getdimen("rightedgedistance") *factor) end
-function mp.RightEdgeWidth () mpnumeric(getdimen("rightedgewidth") *factor) end
-function mp.InnerMarginDistance () mpnumeric(getdimen("innermargindistance") *factor) end
-function mp.InnerMarginWidth () mpnumeric(getdimen("innermarginwidth") *factor) end
-function mp.OuterMarginDistance () mpnumeric(getdimen("outermargindistance") *factor) end
-function mp.OuterMarginWidth () mpnumeric(getdimen("outermarginwidth") *factor) end
-function mp.InnerEdgeDistance () mpnumeric(getdimen("inneredgedistance") *factor) end
-function mp.InnerEdgeWidth () mpnumeric(getdimen("inneredgewidth") *factor) end
-function mp.OuterEdgeDistance () mpnumeric(getdimen("outeredgedistance") *factor) end
-function mp.OuterEdgeWidth () mpnumeric(getdimen("outeredgewidth") *factor) end
-function mp.PageOffset () mpnumeric(getdimen("pagebackgroundoffset")*factor) end
-function mp.PageDepth () mpnumeric(getdimen("pagebackgrounddepth") *factor) end
-function mp.LayoutColumns () mpnumeric(getcount("layoutcolumns")) end
-function mp.LayoutColumnDistance() mpnumeric(getdimen("layoutcolumndistance")*factor) end
-function mp.LayoutColumnWidth () mpnumeric(getdimen("layoutcolumnwidth") *factor) end
-function mp.SpineWidth () mpnumeric(getdimen("spinewidth") *factor) end
-function mp.PaperBleed () mpnumeric(getdimen("paperbleed") *factor) end
-
-function mp.RealPageNumber () mpnumeric(getcount("realpageno")) end
-function mp.LastPageNumber () mpnumeric(getcount("lastpageno")) end
-
-function mp.PageNumber () mpnumeric(getcount("pageno")) end
-function mp.NOfPages () mpnumeric(getcount("lastpageno")) end
-
-function mp.SubPageNumber () mpnumeric(getcount("subpageno")) end
-function mp.NOfSubPages () mpnumeric(getcount("lastsubpageno")) end
-
-function mp.CurrentColumn () mpnumeric(getcount("mofcolumns")) end
-function mp.NOfColumns () mpnumeric(getcount("nofcolumns")) end
-
-function mp.BaseLineSkip () mpnumeric(get ("baselineskip",true) *factor) end
-function mp.LineHeight () mpnumeric(getdimen("lineheight") *factor) end
-function mp.BodyFontSize () mpnumeric(getdimen("bodyfontsize") *factor) end
-
-function mp.TopSkip () mpnumeric(get ("topskip",true) *factor) end
-function mp.StrutHeight () mpnumeric(getdimen("strutht") *factor) end
-function mp.StrutDepth () mpnumeric(getdimen("strutdp") *factor) end
-
-function mp.PageNumber () mpnumeric(getcount("pageno")) end
-function mp.RealPageNumber () mpnumeric(getcount("realpageno")) end
-function mp.NOfPages () mpnumeric(getcount("lastpageno")) end
-
-function mp.CurrentWidth () mpnumeric(get ("hsize") *factor) end
-function mp.CurrentHeight () mpnumeric(get ("vsize") *factor) end
-
-function mp.EmWidth () mpnumeric(emwidths [false]*factor) end
-function mp.ExHeight () mpnumeric(exheights[false]*factor) end
+function mp.PaperHeight () mpprint(getdimen("paperheight") *factor) end
+function mp.PaperWidth () mpprint(getdimen("paperwidth") *factor) end
+function mp.PrintPaperHeight () mpprint(getdimen("printpaperheight") *factor) end
+function mp.PrintPaperWidth () mpprint(getdimen("printpaperwidth") *factor) end
+function mp.TopSpace () mpprint(getdimen("topspace") *factor) end
+function mp.BottomSpace () mpprint(getdimen("bottomspace") *factor) end
+function mp.BackSpace () mpprint(getdimen("backspace") *factor) end
+function mp.CutSpace () mpprint(getdimen("cutspace") *factor) end
+function mp.MakeupHeight () mpprint(getdimen("makeupheight") *factor) end
+function mp.MakeupWidth () mpprint(getdimen("makeupwidth") *factor) end
+function mp.TopHeight () mpprint(getdimen("topheight") *factor) end
+function mp.TopDistance () mpprint(getdimen("topdistance") *factor) end
+function mp.HeaderHeight () mpprint(getdimen("headerheight") *factor) end
+function mp.HeaderDistance () mpprint(getdimen("headerdistance") *factor) end
+function mp.TextHeight () mpprint(getdimen("textheight") *factor) end
+function mp.FooterDistance () mpprint(getdimen("footerdistance") *factor) end
+function mp.FooterHeight () mpprint(getdimen("footerheight") *factor) end
+function mp.BottomDistance () mpprint(getdimen("bottomdistance") *factor) end
+function mp.BottomHeight () mpprint(getdimen("bottomheight") *factor) end
+function mp.LeftEdgeWidth () mpprint(getdimen("leftedgewidth") *factor) end
+function mp.LeftEdgeDistance () mpprint(getdimen("leftedgedistance") *factor) end
+function mp.LeftMarginWidth () mpprint(getdimen("leftmarginwidth") *factor) end
+function mp.LeftMarginDistance () mpprint(getdimen("leftmargindistance") *factor) end
+function mp.TextWidth () mpprint(getdimen("textwidth") *factor) end
+function mp.RightMarginDistance () mpprint(getdimen("rightmargindistance") *factor) end
+function mp.RightMarginWidth () mpprint(getdimen("rightmarginwidth") *factor) end
+function mp.RightEdgeDistance () mpprint(getdimen("rightedgedistance") *factor) end
+function mp.RightEdgeWidth () mpprint(getdimen("rightedgewidth") *factor) end
+function mp.InnerMarginDistance () mpprint(getdimen("innermargindistance") *factor) end
+function mp.InnerMarginWidth () mpprint(getdimen("innermarginwidth") *factor) end
+function mp.OuterMarginDistance () mpprint(getdimen("outermargindistance") *factor) end
+function mp.OuterMarginWidth () mpprint(getdimen("outermarginwidth") *factor) end
+function mp.InnerEdgeDistance () mpprint(getdimen("inneredgedistance") *factor) end
+function mp.InnerEdgeWidth () mpprint(getdimen("inneredgewidth") *factor) end
+function mp.OuterEdgeDistance () mpprint(getdimen("outeredgedistance") *factor) end
+function mp.OuterEdgeWidth () mpprint(getdimen("outeredgewidth") *factor) end
+function mp.PageOffset () mpprint(getdimen("pagebackgroundoffset")*factor) end
+function mp.PageDepth () mpprint(getdimen("pagebackgrounddepth") *factor) end
+function mp.LayoutColumns () mpprint(getcount("layoutcolumns")) end
+function mp.LayoutColumnDistance() mpprint(getdimen("layoutcolumndistance")*factor) end
+function mp.LayoutColumnWidth () mpprint(getdimen("layoutcolumnwidth") *factor) end
+function mp.SpineWidth () mpprint(getdimen("spinewidth") *factor) end
+function mp.PaperBleed () mpprint(getdimen("paperbleed") *factor) end
+
+function mp.RealPageNumber () mpprint(getcount("realpageno")) end
+function mp.LastPageNumber () mpprint(getcount("lastpageno")) end
+
+function mp.PageNumber () mpprint(getcount("pageno")) end
+function mp.NOfPages () mpprint(getcount("lastpageno")) end
+
+function mp.SubPageNumber () mpprint(getcount("subpageno")) end
+function mp.NOfSubPages () mpprint(getcount("lastsubpageno")) end
+
+function mp.CurrentColumn () mpprint(getcount("mofcolumns")) end
+function mp.NOfColumns () mpprint(getcount("nofcolumns")) end
+
+function mp.BaseLineSkip () mpprint(get ("baselineskip",true) *factor) end
+function mp.LineHeight () mpprint(getdimen("lineheight") *factor) end
+function mp.BodyFontSize () mpprint(getdimen("bodyfontsize") *factor) end
+
+function mp.TopSkip () mpprint(get ("topskip",true) *factor) end
+function mp.StrutHeight () mpprint(getdimen("strutht") *factor) end
+function mp.StrutDepth () mpprint(getdimen("strutdp") *factor) end
+
+function mp.PageNumber () mpprint(getcount("pageno")) end
+function mp.RealPageNumber () mpprint(getcount("realpageno")) end
+function mp.NOfPages () mpprint(getcount("lastpageno")) end
+
+function mp.CurrentWidth () mpprint(get ("hsize") *factor) end
+function mp.CurrentHeight () mpprint(get ("vsize") *factor) end
+
+function mp.EmWidth () mpprint(emwidths [false]*factor) end
+function mp.ExHeight () mpprint(exheights[false]*factor) end
mp.HSize = mp.CurrentWidth
mp.VSize = mp.CurrentHeight
mp.LastPageNumber = mp.NOfPages
-function mp.PageFraction()
+function mp.PageFraction ()
local lastpage = getcount("lastpageno")
if lastpage > 1 then
- mpnumeric((getcount("realpageno")-1)/(lastpage-1))
+ mpprint((getcount("realpageno")-1)/(lastpage-1))
else
- mpnumeric(1)
+ mpprint(1)
end
end
@@ -115,22 +112,30 @@ local on_right = structures.pages.on_right
local is_odd = structures.pages.is_odd
local in_body = structures.pages.in_body
-mp.OnRightPage = function() mpboolean(on_right()) end -- needs checking
-mp.OnOddPage = function() mpboolean(is_odd ()) end -- needs checking
-mp.InPageBody = function() mpboolean(in_body ()) end -- needs checking
+mp.OnRightPage = function() mpprint(on_right()) end -- needs checking
+mp.OnOddPage = function() mpprint(is_odd ()) end -- needs checking
+mp.InPageBody = function() mpprint(in_body ()) end -- needs checking
-- mp.CurrentLayout : \currentlayout
-function mp.OverlayWidth () mpnumeric(getdimen("d_overlay_width") * factor) end
-function mp.OverlayHeight () mpnumeric(getdimen("d_overlay_height") * factor) end
-function mp.OverlayDepth () mpnumeric(getdimen("d_overlay_depth") * factor) end
-function mp.OverlayLineWidth() mpnumeric(getdimen("d_overlay_linewidth") * factor) end
-function mp.OverlayOffset () mpnumeric(getdimen("d_overlay_offset") * factor) end
-function mp.OverlayRegion () mpstring(getmacro("m_overlay_region")) end
+function mp.OverlayWidth () mpprint(getdimen("d_overlay_width") *factor) end
+function mp.OverlayHeight () mpprint(getdimen("d_overlay_height") *factor) end
+function mp.OverlayDepth () mpprint(getdimen("d_overlay_depth") *factor) end
+function mp.OverlayLineWidth () mpprint(getdimen("d_overlay_linewidth")*factor) end
+function mp.OverlayOffset () mpprint(getdimen("d_overlay_offset") *factor) end
-function mp.mf_default_color_model()
+function mp.defaultcolormodel()
local colormethod = getcount("MPcolormethod")
- return mpnumeric((colormethod == 0 or colormethod == 1) and 1 or 3)
+ -- if colormethod == 0 then
+ -- return 1
+ -- elseif colormethod == 1 then
+ -- return 1
+ -- elseif colormethod == 2 then
+ -- return 3
+ -- else
+ -- return 3
+ -- end
+ return (colormethod == 0 or colormethod == 1) and 1 or 3
end
-- not much difference (10000 calls in a graphic neither as expansion seems to win
diff --git a/Master/texmf-dist/tex/context/base/mkiv/mlib-lua.lua b/Master/texmf-dist/tex/context/base/mkiv/mlib-lua.lua
index d7c2a0fc3f2..19e731b8569 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/mlib-lua.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/mlib-lua.lua
@@ -10,11 +10,11 @@ if not modules then modules = { } end modules ['mlib-lua'] = {
-- maybe we need mplib.model, but how with instances
-local type, tostring, tonumber, select, loadstring = type, tostring, tonumber, select, loadstring
+local type, tostring, select, loadstring = type, tostring, select, loadstring
local find, match, gsub, gmatch = string.find, string.match, string.gsub, string.gmatch
-local concat, insert, remove = table.concat, table.insert, table.remove
local formatters = string.formatters
+local concat = table.concat
local lpegmatch = lpeg.match
local lpegpatterns = lpeg.patterns
@@ -26,18 +26,105 @@ local report_message = logs.reporter("metapost")
local trace_luarun = false trackers.register("metapost.lua",function(v) trace_luarun = v end)
local trace_enabled = true
-local be_tolerant = true directives.register("metapost.lua.tolerant", function(v) be_tolerant = v end)
+local be_tolerant = true directives.register("metapost.lua.tolerant",function(v) be_tolerant = v end)
-local get, set, aux = { }, { }, { }
+mp = mp or { } -- system namespace
+MP = MP or { } -- user namespace
-mp = mp or { -- system namespace
- set = set,
- get = get,
- aux = aux,
-}
+local buffer, n, max = { }, 0, 10 -- we reuse upto max
-MP = MP or { -- user namespace
-}
+function mp._f_()
+ if trace_enabled and trace_luarun then
+ local result = concat(buffer," ",1,n)
+ if n > max then
+ buffer = { }
+ end
+ n = 0
+ report_luarun("data: %s",result)
+ return result
+ else
+ if n == 0 then
+ return ""
+ end
+ local result
+ if n == 1 then
+ result = buffer[1]
+ else
+ result = concat(buffer," ",1,n)
+ end
+ if n > max then
+ buffer = { }
+ end
+ n = 0
+ return result
+ end
+end
+
+local f_code = formatters["%s return mp._f_()"]
+
+local f_numeric = formatters["%.16f"]
+local f_integer = formatters["%i"]
+local f_pair = formatters["(%.16f,%.16f)"]
+local f_triplet = formatters["(%.16f,%.16f,%.16f)"]
+local f_quadruple = formatters["(%.16f,%.16f,%.16f,%.16f)"]
+
+local function mpprint(...) -- we can optimize for n=1
+ for i=1,select("#",...) do
+ local value = select(i,...)
+ if value ~= nil then
+ n = n + 1
+ local t = type(value)
+ if t == "number" then
+ buffer[n] = f_numeric(value)
+ elseif t == "string" then
+ buffer[n] = value
+ elseif t == "table" then
+ buffer[n] = "(" .. concat(value,",") .. ")"
+ else -- boolean or whatever
+ buffer[n] = tostring(value)
+ end
+ end
+ end
+end
+
+local r = P('%') / "percent"
+ + P('"') / "dquote"
+ + P('\n') / "crlf"
+ -- + P(' ') / "space"
+local a = Cc("&")
+local q = Cc('"')
+local p = Cs(q * (r * a)^-1 * (a * r * (P(-1) + a) + P(1))^0 * q)
+
+local function mpvprint(...) -- variable print
+ for i=1,select("#",...) do
+ local value = select(i,...)
+ if value ~= nil then
+ n = n + 1
+ local t = type(value)
+ if t == "number" then
+ buffer[n] = f_numeric(value)
+ elseif t == "string" then
+ buffer[n] = lpegmatch(p,value)
+ elseif t == "table" then
+ local m = #t
+ if m == 2 then
+ buffer[n] = f_pair(unpack(t))
+ elseif m == 3 then
+ buffer[n] = f_triplet(unpack(t))
+ elseif m == 4 then
+ buffer[n] = f_quadruple(unpack(t))
+ else -- error
+ buffer[n] = ""
+ end
+ else -- boolean or whatever
+ buffer[n] = tostring(value)
+ end
+ end
+ end
+end
+
+mp.print = mpprint
+mp.vprint = mpvprint
-- We had this:
--
@@ -52,540 +139,150 @@ MP = MP or { -- user namespace
-- lua.mp("somedefdname","foo")
table.setmetatablecall(mp,function(t,k,...) return t[k](...) end)
-table.setmetatablecall(MP,function(t,k,...) return t[k](...) end)
-
-do
-
- local currentmpx = nil
- local stack = { }
-
- local get_numeric = mplib.get_numeric
- local get_string = mplib.get_string
- local get_boolean = mplib.get_boolean
- local get_path = mplib.get_path
- local set_path = mplib.set_path
-
- get.numeric = function(s) return get_numeric(currentmpx,s) end
- get.string = function(s) return get_string (currentmpx,s) end
- get.boolean = function(s) return get_boolean(currentmpx,s) end
- get.path = function(s) return get_path (currentmpx,s) end
- get.number = function(s) return get_numeric(currentmpx,s) end
-
- set.path = function(s,t) return set_path(currentmpx,s,t) end -- not working yet
-
- function metapost.pushscriptrunner(mpx)
- insert(stack,mpx)
- currentmpx = mpx
- end
- function metapost.popscriptrunner()
- currentmpx = remove(stack,mpx)
- end
+function mp.boolean(b)
+ n = n + 1
+ buffer[n] = b and "true" or "false"
+end
+function mp.numeric(f)
+ n = n + 1
+ buffer[n] = f and f_numeric(f) or "0"
end
-do
+function mp.integer(i)
+ n = n + 1
+ -- buffer[n] = i and f_integer(i) or "0"
+ buffer[n] = i or "0"
+end
- local buffer = { }
- local n = 0
- local max = 20 -- we reuse upto max
- local nesting = 0
- local runs = 0
-
- local function _f_()
- if trace_enabled and trace_luarun then
- local result = concat(buffer," ",1,n)
- if n > max then
- buffer = { }
- end
- n = 0
- report_luarun("%i: data: %s",nesting,result)
- return result
- else
- if n == 0 then
- return ""
- end
- local result
- if n == 1 then
- result = buffer[1]
- else
- result = concat(buffer," ",1,n)
- end
- if n > max then
- buffer = { }
- end
- n = 0
- return result
- end
+function mp.pair(x,y)
+ n = n + 1
+ if type(x) == "table" then
+ buffer[n] = f_pair(x[1],x[2])
+ else
+ buffer[n] = f_pair(x,y)
end
+end
- mp._f_ = _f_ -- convenient to have it in a top module
- aux.flush = _f_
-
- ----- f_code = formatters["%s return mp._f_()"]
-
- local f_integer = formatters["%i"]
-
- local f_numeric = formatters["%n"] -- maybe %N
- local f_pair = formatters["(%n,%n)"]
- local f_ctrl = formatters["(%n,%n) .. controls (%n,%n) and (%n,%n)"]
- local f_triplet = formatters["(%n,%n,%n)"]
- local f_quadruple = formatters["(%n,%n,%n,%n)"]
-
- local f_points = formatters["%p"]
- local f_pair_pt = formatters["(%p,%p)"]
- local f_ctrl_pt = formatters["(%p,%p) .. controls (%p,%p) and (%p,%p)"]
- local f_triplet_pt = formatters["(%p,%p,%p)"]
- local f_quadruple_pt = formatters["(%p,%p,%p,%p)"]
-
- local r = P('%') / "percent"
- + P('"') / "dquote"
- + P('\n') / "crlf"
- -- + P(' ') / "space"
- local a = Cc("&")
- local q = Cc('"')
- local p = Cs(q * (r * a)^-1 * (a * r * (P(-1) + a) + P(1))^0 * q)
-
- mp.cleaned = function(s) return lpegmatch(p,s) or s end
-
- -- local function mpprint(...) -- we can optimize for n=1
- -- for i=1,select("#",...) do
- -- local value = (select(i,...))
- -- if value ~= nil then
- -- n = n + 1
- -- local t = type(value)
- -- if t == "number" then
- -- buffer[n] = f_numeric(value)
- -- elseif t == "string" then
- -- buffer[n] = value
- -- elseif t == "table" then
- -- buffer[n] = "(" .. concat(value,",") .. ")"
- -- else -- boolean or whatever
- -- buffer[n] = tostring(value)
- -- end
- -- end
- -- end
- -- end
-
- local function mpp(value)
- n = n + 1
- local t = type(value)
- if t == "number" then
- buffer[n] = f_numeric(value)
- elseif t == "string" then
- buffer[n] = value
- elseif t == "table" then
- buffer[n] = "(" .. concat(value,",") .. ")"
- else -- boolean or whatever
- buffer[n] = tostring(value)
- end
+function mp.triplet(x,y,z)
+ n = n + 1
+ if type(x) == "table" then
+ buffer[n] = f_triplet(x[1],x[2],x[3])
+ else
+ buffer[n] = f_triplet(x,y,z)
end
+end
- local function mpprint(first,second,...)
- if second == nil then
- if first ~= nil then
- mpp(first)
- end
- else
- for i=1,select("#",first,second,...) do
- local value = (select(i,first,second,...))
- if value ~= nil then
- mpp(value)
- end
- end
- end
+function mp.quadruple(w,x,y,z)
+ n = n + 1
+ if type(w) == "table" then
+ buffer[n] = f_quadruple(w[1],w[2],w[3],w[4])
+ else
+ buffer[n] = f_quadruple(w,x,y,z)
end
+end
- local function mpp(value)
- n = n + 1
- local t = type(value)
- if t == "number" then
- buffer[n] = f_numeric(value)
- elseif t == "string" then
- buffer[n] = lpegmatch(p,value)
- elseif t == "table" then
- if #t > 4 then
- buffer[n] = ""
- else
- buffer[n] = "(" .. concat(value,",") .. ")"
+function mp.path(t,connector,cycle)
+ if type(t) == "table" then
+ local tn = #t
+ if tn > 0 then
+ if connector == true then
+ connector = "--"
+ cycle = true
+ elseif not connector then
+ connector = "--"
end
- else -- boolean or whatever
- buffer[n] = tostring(value)
- end
- end
-
- local function mpvprint(first,second,...) -- variable print
- if second == nil then
- if first ~= nil then
- mpp(first)
+ local ti = t[1]
+ n = n + 1 ; buffer[n] = f_pair(ti[1],ti[2])
+ for i=2,tn do
+ local ti = t[i]
+ n = n + 1 ; buffer[n] = connector
+ n = n + 1 ; buffer[n] = f_pair(ti[1],ti[2])
end
- else
- for i=1,select("#",first,second,...) do
- local value = (select(i,first,second,...))
- if value ~= nil then
- mpp(value)
- end
+ if cycle then
+ n = n + 1 ; buffer[n] = connector
+ n = n + 1 ; buffer[n] = "cycle"
end
end
end
+end
- local function mpstring(value)
- n = n + 1
- buffer[n] = lpegmatch(p,value)
- end
-
- local function mpboolean(b)
- n = n + 1
- buffer[n] = b and "true" or "false"
- end
-
- local function mpnumeric(f)
- n = n + 1
- if not f or f == 0 then
- buffer[n] = "0"
- else
- buffer[n] = f_numeric(f)
- end
- end
-
- local function mpinteger(i)
- n = n + 1
- -- buffer[n] = i and f_integer(i) or "0"
- buffer[n] = i or "0"
- end
-
- local function mppoints(i)
- n = n + 1
- if not i or i == 0 then
- buffer[n] = "0pt"
- else
- buffer[n] = f_points(i)
- end
- end
-
- local function mppair(x,y)
- n = n + 1
- if type(x) == "table" then
- buffer[n] = f_pair(x[1],x[2])
- else
- buffer[n] = f_pair(x,y)
- end
- end
-
- local function mppairpoints(x,y)
- n = n + 1
- if type(x) == "table" then
- buffer[n] = f_pair_pt(x[1],x[2])
- else
- buffer[n] = f_pair_pt(x,y)
- end
- end
+function mp.size(t)
+ n = n + 1
+ buffer[n] = type(t) == "table" and f_numeric(#t) or "0"
+end
- local function mptriplet(x,y,z)
- n = n + 1
- if type(x) == "table" then
- buffer[n] = f_triplet(x[1],x[2],x[3])
- else
- buffer[n] = f_triplet(x,y,z)
- end
- end
+local mpnamedcolor = attributes.colors.mpnamedcolor
- local function mptripletpoints(x,y,z)
- n = n + 1
- if type(x) == "table" then
- buffer[n] = f_triplet_pt(x[1],x[2],x[3])
- else
- buffer[n] = f_triplet_pt(x,y,z)
- end
- end
+mp.NamedColor = function(str)
+ mpprint(mpnamedcolor(str))
+end
- local function mpquadruple(w,x,y,z)
- n = n + 1
- if type(w) == "table" then
- buffer[n] = f_quadruple(w[1],w[2],w[3],w[4])
- else
- buffer[n] = f_quadruple(w,x,y,z)
- end
- end
+-- experiment: names can change
- local function mpquadruplepoints(w,x,y,z)
- n = n + 1
- if type(w) == "table" then
- buffer[n] = f_quadruple_pt(w[1],w[2],w[3],w[4])
- else
- buffer[n] = f_quadruple_pt(w,x,y,z)
- end
- end
+local datasets = { }
+mp.datasets = datasets
- -- we have three kind of connectors:
- --
- -- .. ... -- (true)
-
- local function mp_path(f2,f6,t,connector,cycle)
- if type(t) == "table" then
- local tn = #t
- if tn == 1 then
- local t1 = t[1]
- n = n + 1 ; buffer[n] = f2(t1[1],t1[2])
- elseif tn > 0 then
- if connector == true or connector == nil then
- connector = ".."
- elseif connector == false then
- connector = "--"
- end
- if cycle == nil then
- cycle = t.cycle
- if cycle == nil then
- cycle = true
- end
- end
- local six = connector == ".." -- otherwise we use whatever gets asked for
- local controls = connector -- whatever
- local a = t[1]
- local b = t[2]
- n = n + 1
- if six and #a == 6 and #b == 6 then
- buffer[n] = f6(a[1],a[2],a[5],a[6],b[3],b[4])
- controls = ".."
- else
- buffer[n] = f2(a[1],a[2])
- controls = connector
- end
- for i=2,tn-1 do
- a = b
- b = t[i+1]
- n = n + 1
- buffer[n] = connector
- n = n + 1
- if six and #a == 6 and #b == 6 then
- buffer[n] = f6(a[1],a[2],a[5],a[6],b[3],b[4])
- controls = ".."
- else
- buffer[n] = f2(a[1],a[2])
- controls = connector
- end
- end
- n = n + 1
- buffer[n] = connector
- a = b
- b = t[1]
- n = n + 1
- if cycle then
- if six and #a == 6 and #b == 6 then
- buffer[n] = f6(a[1],a[2],a[5],a[6],b[3],b[4])
- controls = ".."
- else
- buffer[n] = f2(a[1],a[2])
- controls = connector
- end
- n = n + 1
- buffer[n] = connector
- n = n + 1
- buffer[n] = "cycle"
- else
- buffer[n] = f2(a[1],a[2])
- end
- end
- end
+function datasets.load(tag,filename)
+ if not filename then
+ tag, filename = file.basename(tag), tag
end
+ local data = mp.dataset(io.loaddata(filename) or "")
+ datasets[tag] = {
+ Data = data,
+ Line = function(n) mp.path(data[n or 1]) end,
+ Size = function() mp.size(data) end,
+ }
+end
- local function mppath(...)
- mp_path(f_pair,f_ctrl,...)
- end
+--
- local function mppathpoints(...)
- mp_path(f_pair_pt,f_ctrl_pt,...)
- end
+local replacer = lpeg.replacer("@","%%")
- local function mpsize(t)
- n = n + 1
- buffer[n] = type(t) == "table" and f_numeric(#t) or "0"
+function mp.fprint(fmt,...)
+ n = n + 1
+ if not find(fmt,"%",1,true) then
+ fmt = lpegmatch(replacer,fmt)
end
+ buffer[n] = formatters[fmt](...)
+end
- local replacer = lpeg.replacer("@","%%")
-
- local function mpfprint(fmt,...)
- n = n + 1
+local function mpquoted(fmt,s,...)
+ n = n + 1
+ if s then
if not find(fmt,"%",1,true) then
fmt = lpegmatch(replacer,fmt)
end
- buffer[n] = formatters[fmt](...)
+ -- buffer[n] = '"' .. formatters[fmt](s,...) .. '"'
+ buffer[n] = lpegmatch(p,formatters[fmt](s,...))
+ elseif fmt then
+ -- buffer[n] = '"' .. fmt .. '"'
+ buffer[n] = lpegmatch(p,fmt)
+ else
+ -- something is wrong
end
-
- local function mpquoted(fmt,s,...)
- if s then
- n = n + 1
- if not find(fmt,"%",1,true) then
- fmt = lpegmatch(replacer,fmt)
- end
- -- buffer[n] = '"' .. formatters[fmt](s,...) .. '"'
- buffer[n] = lpegmatch(p,formatters[fmt](s,...))
- elseif fmt then
- n = n + 1
- -- buffer[n] = '"' .. fmt .. '"'
- buffer[n] = lpegmatch(p,fmt)
- else
- -- something is wrong
- end
- end
-
- aux.print = mpprint
- aux.vprint = mpvprint
- aux.boolean = mpboolean
- aux.string = mpstring
- aux.numeric = mpnumeric
- aux.number = mpnumeric
- aux.integer = mpinteger
- aux.points = mppoints
- aux.pair = mppair
- aux.pairpoints = mppairpoints
- aux.triplet = mptriplet
- aux.tripletpoints = mptripletpoints
- aux.quadruple = mpquadruple
- aux.quadruplepoints = mpquadruplepoints
- aux.path = mppath
- aux.pathpoints = mppathpoints
- aux.size = mpsize
- aux.fprint = mpfprint
- aux.quoted = mpquoted
-
- -- we need access to the variables
-
- function metapost.nofscriptruns()
- return runs
- end
-
- -- sometimes we gain (e.g. .5 sec on the sync test)
-
- local cache = table.makeweak()
-
- function metapost.runscript(code)
- nesting = nesting + 1
- local trace = trace_enabled and trace_luarun
- if trace then
- report_luarun("%i: code: %s",nesting,code)
- end
- runs = runs + 1
- local f = cache[code]
- if not f then
- f = loadstring(code .. " return mp._f_()")
- if f then
- cache[code] = f
- elseif be_tolerant then
- f = loadstring(code)
- if f then
- cache[code] = f
- end
- end
- end
- if f then
- local _buffer_ = buffer
- local _n_ = n
- buffer = { }
- n = 0
- local result = f()
- if result then
- local t = type(result)
- if t == "number" then
- result = f_numeric(result)
- elseif t ~= "string" then
- result = tostring(result)
- end
- if trace then
- if #result == 0 then
- report_luarun("%i: no result",nesting)
- else
- report_luarun("%i: result: %s",nesting,result)
- end
- end
- buffer = _buffer_
- n = _n_
- nesting = nesting - 1
- return result
- elseif trace then
- report_luarun("%i: no result",nesting)
- end
- buffer, n = _buffer_, _n_
- else
- report_luarun("%i: no result, invalid code: %s",nesting,code)
- end
- nesting = nesting - 1
- return ""
- end
-
- -- for the moment
-
- for k, v in next, aux do mp[k] = v end
-
end
-do
-
- local mpnamedcolor = attributes.colors.mpnamedcolor
- local mpprint = aux.print
+mp.quoted = mpquoted
- mp.mf_named_color = function(str)
- mpprint(mpnamedcolor(str))
- end
-
-end
-
-function mp.n(t) -- used ?
+function mp.n(t)
return type(t) == "table" and #t or 0
end
-do
-
- -- experiment: names can change
-
- local mppath = aux.path
- local mpsize = aux.size
-
- local whitespace = lpegpatterns.whitespace
- local newline = lpegpatterns.newline
- local setsep = newline^2
- local comment = (S("#%") + P("--")) * (1-newline)^0 * (whitespace - setsep)^0
- local value = (1-whitespace)^1 / tonumber
- local entry = Ct( value * whitespace * value)
- local set = Ct((entry * (whitespace-setsep)^0 * comment^0)^1)
- local series = Ct((set * whitespace^0)^1)
-
- local pattern = whitespace^0 * series
+local whitespace = lpegpatterns.whitespace
+local newline = lpegpatterns.newline
+local setsep = newline^2
+local comment = (S("#%") + P("--")) * (1-newline)^0 * (whitespace - setsep)^0
+local value = (1-whitespace)^1 / tonumber
+local entry = Ct( value * whitespace * value)
+local set = Ct((entry * (whitespace-setsep)^0 * comment^0)^1)
+local series = Ct((set * whitespace^0)^1)
- local datasets = { }
- mp.datasets = datasets
-
- function mp.dataset(str)
- return lpegmatch(pattern,str)
- end
-
- function datasets.load(tag,filename)
- if not filename then
- tag, filename = file.basename(tag), tag
- end
- local data = lpegmatch(pattern,io.loaddata(filename) or "")
- datasets[tag] = {
- data = data,
- line = function(n) mppath(data[n or 1]) end,
- size = function() mpsize(data) end,
- }
- end
-
- table.setmetatablecall(datasets,function(t,k,f,...)
- local d = datasets[k]
- local t = type(d)
- if t == "table" then
- d = d[f]
- if type(d) == "function" then
- d(...)
- else
- mpvprint(...)
- end
- elseif t == "function" then
- d(f,...)
- end
- end)
+local pattern = whitespace^0 * series
+function mp.dataset(str)
+ return lpegmatch(pattern,str)
end
-- \startluacode
@@ -617,157 +314,255 @@ end
-- endfor ;
-- \stopMPpage
--- texts:
-
-do
-
- local mptriplet = mp.triplet
-
- local bpfactor = number.dimenfactors.bp
- local textexts = nil
- local mptriplet = mp.triplet
- local nbdimensions = nodes.boxes.dimensions
+local cache, n = { }, 0 -- todo: when > n then reset cache or make weak
- function mp.mf_tt_initialize(tt)
- textexts = tt
+function metapost.runscript(code)
+ local trace = trace_enabled and trace_luarun
+ if trace then
+ report_luarun("code: %s",code)
end
-
- function mp.mf_tt_dimensions(n)
- local box = textexts and textexts[n]
- if box then
- -- could be made faster with nuts but not critical
- mptriplet(box.width*bpfactor,box.height*bpfactor,box.depth*bpfactor)
- else
- mptriplet(0,0,0)
+ local f
+ if n > 100 then
+ cache = nil -- forget about caching
+ f = loadstring(f_code(code))
+ if not f and be_tolerant then
+ f = loadstring(code)
+ end
+ else
+ f = cache[code]
+ if not f then
+ f = loadstring(f_code(code))
+ if f then
+ n = n + 1
+ cache[code] = f
+ elseif be_tolerant then
+ f = loadstring(code)
+ if f then
+ n = n + 1
+ cache[code] = f
+ end
+ end
end
end
-
- function mp.mf_tb_dimensions(category,name)
- local w, h, d = nbdimensions(category,name)
- mptriplet(w*bpfactor,h*bpfactor,d*bpfactor)
- end
-
- function mp.report(a,b,c,...)
- if c then
- report_message("%s : %s",a,formatters[(gsub(b,"@","%%"))](c,...))
- elseif b then
- report_message("%s : %s",a,b)
- elseif a then
- report_message("%s : %s","message",a)
+ if f then
+ local result = f()
+ if result then
+ local t = type(result)
+ if t == "number" then
+ result = f_numeric(result)
+ elseif t ~= "string" then
+ result = tostring(result)
+ end
+ if trace then
+ report_luarun("result: %s",result)
+ end
+ return result
+ elseif trace then
+ report_luarun("no result")
end
+ else
+ report_luarun("no result, invalid code: %s",code)
end
+ return ""
+end
+-- function metapost.initializescriptrunner(mpx)
+-- mp.numeric = function(s) return mpx:get_numeric(s) end
+-- mp.string = function(s) return mpx:get_string (s) end
+-- mp.boolean = function(s) return mpx:get_boolean(s) end
+-- mp.number = mp.numeric
+-- end
+
+local get_numeric = mplib.get_numeric
+local get_string = mplib.get_string
+local get_boolean = mplib.get_boolean
+local get_number = get_numeric
+
+-- function metapost.initializescriptrunner(mpx)
+-- mp.numeric = function(s) return get_numeric(mpx,s) end
+-- mp.string = function(s) return get_string (mpx,s) end
+-- mp.boolean = function(s) return get_boolean(mpx,s) end
+-- mp.number = mp.numeric
+-- end
+
+local currentmpx = nil
+
+local get = { }
+mp.get = get
+
+get.numeric = function(s) return get_numeric(currentmpx,s) end
+get.string = function(s) return get_string (currentmpx,s) end
+get.boolean = function(s) return get_boolean(currentmpx,s) end
+get.number = mp.numeric
+
+function metapost.initializescriptrunner(mpx,trialrun)
+ currentmpx = mpx
+ if trace_luarun then
+ report_luarun("type of run: %s", trialrun and "trial" or "final")
+ end
+ -- trace_enabled = not trialrun blocks too much
end
-do
+-- texts:
- local mpprint = aux.print
- local modes = tex.modes
- local systemmodes = tex.systemmodes
+local factor = 65536*(7227/7200)
+local textexts = nil
+local mptriplet = mp.triplet
+local nbdimensions = nodes.boxes.dimensions
- function mp.mode(s)
- mpprint(modes[s] and true or false)
- end
+function mp.tt_initialize(tt)
+ textexts = tt
+end
- function mp.systemmode(s)
- mpprint(systemmodes[s] and true or false)
+-- function mp.tt_wd(n)
+-- local box = textexts and textexts[n]
+-- mpprint(box and box.width/factor or 0)
+-- end
+-- function mp.tt_ht(n)
+-- local box = textexts and textexts[n]
+-- mpprint(box and box.height/factor or 0)
+-- end
+-- function mp.tt_dp(n)
+-- local box = textexts and textexts[n]
+-- mpprint(box and box.depth/factor or 0)
+-- end
+
+function mp.tt_dimensions(n)
+ local box = textexts and textexts[n]
+ if box then
+ -- could be made faster with nuts but not critical
+ mptriplet(box.width/factor,box.height/factor,box.depth/factor)
+ else
+ mptriplet(0,0,0)
end
+end
- mp.processingmode = mp.mode
-
+function mp.tb_dimensions(category,name)
+ local w, h, d = nbdimensions(category,name)
+ mptriplet(w/factor,h/factor,d/factor)
end
--- for alan's nodes:
+function mp.report(a,b)
+ if b then
+ report_message("%s : %s",a,b)
+ elseif a then
+ report_message("%s : %s","message",a)
+ end
+end
-do
+--
- local mpprint = aux.print
- local mpquoted = aux.quoted
+local hashes = { }
- function mp.isarray(str)
- mpprint(find(str,"%d") and true or false)
+function mp.newhash()
+ for i=1,#hashes+1 do
+ if not hashes[i] then
+ hashes[i] = { }
+ mpprint(i)
+ return
+ end
end
+end
+
+function mp.disposehash(n)
+ hashes[n] = nil
+end
+
+function mp.inhash(n,key)
+ local h = hashes[n]
+ mpprint(h and h[key] and true or false)
+end
- function mp.prefix(str)
- mpquoted(match(str,"^(.-)[%d%[]") or str)
+function mp.tohash(n,key)
+ local h = hashes[n]
+ if h then
+ h[key] = true
end
+end
- -- function mp.dimension(str)
- -- local n = 0
- -- for s in gmatch(str,"%[?%-?%d+%]?") do --todo: lpeg
- -- n = n + 1
- -- end
- -- mpprint(n)
- -- end
-
- mp.dimension = lpeg.counter(P("[") * lpegpatterns.integer * P("]") + lpegpatterns.integer,mpprint)
-
- -- faster and okay as we don't have many variables but probably only
- -- basename makes sense and even then it's not called that often
-
- -- local hash = table.setmetatableindex(function(t,k)
- -- local v = find(k,"%d") and true or false
- -- t[k] = v
- -- return v
- -- end)
- --
- -- function mp.isarray(str)
- -- mpprint(hash[str])
- -- end
- --
- -- local hash = table.setmetatableindex(function(t,k)
- -- local v = '"' .. (match(k,"^(.-)%d") or k) .. '"'
- -- t[k] = v
- -- return v
- -- end)
- --
- -- function mp.prefix(str)
- -- mpprint(hash[str])
- -- end
+local modes = tex.modes
+local systemmodes = tex.systemmodes
+function mp.mode(s)
+ mpprint(modes[s] and true or false)
end
-do
+function mp.systemmode(s)
+ mpprint(systemmodes[s] and true or false)
+end
+
+-- for alan's nodes:
+
+function mp.isarray(str)
+ mpprint(find(str,"%d") and true or false)
+end
+
+function mp.prefix(str)
+ mpquoted(match(str,"^(.-)[%d%[]") or str)
+end
- local getmacro = tex.getmacro
- local getdimen = tex.getdimen
- local getcount = tex.getcount
- local gettoks = tex.gettoks
- local setmacro = tex.setmacro
- local setdimen = tex.setdimen
- local setcount = tex.setcount
- local settoks = tex.settoks
+-- function mp.dimension(str)
+-- local n = 0
+-- for s in gmatch(str,"%[?%-?%d+%]?") do --todo: lpeg
+-- n = n + 1
+-- end
+-- mpprint(n)
+-- end
- local mpprint = mp.print
- local mpquoted = mp.quoted
+mp.dimension = lpeg.counter(P("[") * lpegpatterns.integer * P("]") + lpegpatterns.integer,mpprint)
- local bpfactor = number.dimenfactors.bp
+-- faster and okay as we don't have many variables but probably only
+-- basename makes sense and even then it's not called that often
- -- more helpers
+-- local hash = table.setmetatableindex(function(t,k)
+-- local v = find(k,"%d") and true or false
+-- t[k] = v
+-- return v
+-- end)
+--
+-- function mp.isarray(str)
+-- mpprint(hash[str])
+-- end
+--
+-- local hash = table.setmetatableindex(function(t,k)
+-- local v = '"' .. (match(k,"^(.-)%d") or k) .. '"'
+-- t[k] = v
+-- return v
+-- end)
+--
+-- function mp.prefix(str)
+-- mpprint(hash[str])
+-- end
- local function getmacro(k) mpprint (getmacro(k)) end
- local function getdimen(k) mpprint (getdimen(k)*bpfactor) end
- local function getcount(k) mpprint (getcount(k)) end
- local function gettoks (k) mpquoted(gettoks (k)) end
+local getdimen = tex.getdimen
+local getcount = tex.getcount
+local gettoks = tex.gettoks
+local setdimen = tex.setdimen
+local setcount = tex.setcount
+local settoks = tex.settoks
- local function setmacro(k,v) setmacro(k,v) end
- local function setdimen(k,v) setdimen(k,v/bpfactor) end
- local function setcount(k,v) setcount(k,v) end
- local function settoks (k,v) settoks (k,v) end
+local mpprint = mp.print
+local mpquoted = mp.quoted
- -- def foo = lua.mp.foo ... enddef ; % loops due to foo in suffix
+local factor = number.dimenfactors.bp
- mp._get_macro_ = getmacro mp.getmacro = getmacro
- mp._get_dimen_ = getdimen mp.getdimen = getdimen
- mp._get_count_ = getcount mp.getcount = getcount
- mp._get_toks_ = gettoks mp.gettoks = gettoks
+-- more helpers
- mp._set_macro_ = setmacro mp.setmacro = setmacro
- mp._set_dimen_ = setdimen mp.setdimen = setdimen
- mp._set_count_ = setcount mp.setcount = setcount
- mp._set_toks_ = settoks mp.settoks = settoks
+function mp.getdimen(k) mpprint (getdimen(k)*factor) end
+function mp.getcount(k) mpprint (getcount(k)) end
+function mp.gettoks (k) mpquoted(gettoks (k)) end
+function mp.setdimen(k,v) setdimen(k,v/factor) end
+function mp.setcount(k,v) setcount(k,v) end
+function mp.settoks (k,v) settoks (k,v) end
-end
+-- def foo = lua.mp.foo ... enddef ; % loops due to foo in suffix
+
+mp._get_dimen_ = mp.getdimen
+mp._get_count_ = mp.getcount
+mp._get_toks_ = mp.gettoks
+mp._set_dimen_ = mp.setdimen
+mp._set_count_ = mp.setcount
+mp._set_toks_ = mp.settoks
-- position fun
@@ -863,21 +658,6 @@ end
do
- local mppair = mp.pair
-
- function mp.textextanchor(s)
- local x, y = match(s,"tx_anchor=(%S+) (%S+)") -- todo: make an lpeg
- if x and y then
- x = tonumber(x)
- y = tonumber(y)
- end
- mppair(x or 0,y or 0)
- end
-
-end
-
-do
-
local mprint = mp.print
local qprint = mp.quoted
local getmacro = tokens.getters.macro
@@ -894,65 +674,31 @@ end
do
- local mpprint = aux.print
- local mpvprint = aux.vprint
+ local mpvprint = mp.vprint
- local hashes = { }
+ local stores = { }
- function mp.newhash(name)
- if name then
- hashes[name] = { }
- else
- for i=1,#hashes+1 do
- if not hashes[i] then
- hashes[i] = { }
- mpvprint(i)
- return
- end
- end
- end
+ function mp.newstore(name)
+ stores[name] = { }
end
- function mp.disposehash(n)
- if tonumber(n) then
- hashes[n] = false
- else
- hashes[n] = nil
- end
+ function mp.disposestore(name)
+ stores[name] = nil
end
- function mp.inhash(n,key)
- local h = hashes[n]
- mpvprint(h and h[key] and true or false)
+ function mp.tostore(name,key,value)
+ stores[name][key] = value
end
- function mp.tohash(n,key,value)
- local h = hashes[n]
- if h then
- if value == nil then
- h[key] = true
- else
- h[key] = value
- end
- end
- end
-
- function mp.fromhash(n,key)
- local h = hashes[n]
- mpvprint(h and h[key] or false)
+ function mp.fromstore(name,key)
+ mpvprint(stores[name][key]) -- type specific
end
interfaces.implement {
- name = "MPfromhash",
+ name = "getMPstored",
arguments = "2 strings",
actions = function(name,key)
- local h = hashes[name] or hashes[tonumber(name)]
- if h then
- local v = h[key] or h[tonumber(key)]
- if v then
- context(v)
- end
- end
+ context(stores[name][key])
end
}
@@ -960,70 +706,11 @@ end
do
- -- a bit overkill: just a find(str,"mf_object=") can be enough
+ local mpprint = mp.print
+ local texmodes = tex.modes
- local mpboolean = aux.boolean
-
- local p1 = P("mf_object=")
- local p2 = lpegpatterns.eol * p1
- local pattern = (1-p2)^0 * p2 + p1
-
- function mp.isobject(str)
- mpboolean(pattern and str ~= "" and lpegmatch(pattern,str))
+ function mp.processingmode(s)
+ mpprint(tostring(texmodes[s]))
end
end
-
-do
-
- local mpnumeric = aux.numeric
- local mppair = aux.pair
- local mpgetpath = get.path
-
- local p = nil
- local n = 0
-
- local function mf_path_length(name)
- p = mpgetpath(name)
- n = p and #p or 0
- mpnumeric(n)
- end
-
- local function mf_path_point(i)
- if i > 0 and i <= n then
- local pi = p[i]
- mppair(pi[1],pi[2])
- end
- end
-
- local function mf_path_left(i)
- if i > 0 and i <= n then
- local pi = p[i]
- mppair(pi[5],pi[6])
- end
- end
-
- local function mf_path_right(i)
- if i > 0 and i <= n then
- local pn
- if i == 1 then
- pn = p[2] or p[1]
- else
- pn = p[i+1] or p[1]
- end
- mppair(pn[3],pn[4])
- end
- end
-
- local function mf_path_reset()
- p = nil
- n = 0
- end
-
- mp.mf_path_length = mf_path_length mp.pathlength = mf_path_length
- mp.mf_path_point = mf_path_point mp.pathpoint = mf_path_point
- mp.mf_path_left = mf_path_left mp.pathleft = mf_path_left
- mp.mf_path_right = mf_path_right mp.pathright = mf_path_right
- mp.mf_path_reset = mf_path_reset mp.pathreset = mf_path_reset
-
-end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/mlib-pdf.lua b/Master/texmf-dist/tex/context/base/mkiv/mlib-pdf.lua
index 92fde5e1369..75f810fb33b 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/mlib-pdf.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/mlib-pdf.lua
@@ -6,8 +6,9 @@ if not modules then modules = { } end modules ['mlib-pdf'] = {
license = "see context related readme files",
}
-local gsub = string.gsub
-local concat, insert, remove = table.concat, table.insert, table.remove
+-- maybe %s is better than %f
+
+local format, concat, gsub = string.format, table.concat, string.gsub
local abs, sqrt, round = math.abs, math.sqrt, math.round
local setmetatable, rawset, tostring, tonumber, type = setmetatable, rawset, tostring, tonumber, type
local P, S, C, Ct, Cc, Cg, Cf, Carg = lpeg.P, lpeg.S, lpeg.C, lpeg.Ct, lpeg.Cc, lpeg.Cg, lpeg.Cf, lpeg.Carg
@@ -40,34 +41,23 @@ local pdfflusher = { }
metapost.flushers.pdf = pdfflusher
metapost.n = 0
+metapost.optimize = true -- false
local experiment = true -- uses context(node) that already does delayed nodes
local savedliterals = nil -- needs checking
-local mpsliteral = nodes.pool.originliteral
-
-local f_f = formatters["%.6F"]
-local f_m = formatters["%.6F %.6F m"]
-local f_c = formatters["%.6F %.6F %.6F %.6F %.6F %.6F c"]
-local f_l = formatters["%.6F %.6F l"]
-local f_cm = formatters["%.6F %.6F %.6F %.6F %.6F %.6F cm"]
-local f_M = formatters["%.6F M"]
+local mpsliteral = nodes.pool.register(node.new("whatsit",nodes.whatsitcodes.pdfliteral)) -- pdfliteral.mode = 1
+
+local f_f = formatters["%F"]
+
+local f_m = formatters["%F %F m"]
+local f_c = formatters["%F %F %F %F %F %F c"]
+local f_l = formatters["%F %F l"]
+local f_cm = formatters["%F %F %F %F %F %F cm"]
+local f_M = formatters["%F M"]
local f_j = formatters["%i j"]
local f_J = formatters["%i J"]
-local f_d = formatters["[%s] %.6F d"]
-local f_w = formatters["%.3F w"]
-
-directives.register("metapost.stripzeros",function()
- f_f = formatters["%.6N"]
- f_m = formatters["%.6N %.6N m"]
- f_c = formatters["%.6N %.6N %.6N %.6N %.6N %.6N c"]
- f_l = formatters["%.6N %.6N l"]
- f_cm = formatters["%.6N %.6N %.6N %.6N %.6N %.6N cm"]
- f_M = formatters["%.6N M"]
- f_j = formatters["%i j"]
- f_J = formatters["%i J"]
- f_d = formatters["[%s] %.6N d"]
- f_w = formatters["%.3N w"]
-end)
+local f_d = formatters["[%s] %F d"]
+local f_w = formatters["%F w"]
directives.register("metapost.savetable",function(v)
if type(v) == "string" then
@@ -83,28 +73,60 @@ trackers.register("metapost.forcestroke",function(v)
force_stroke = v
end)
+local pdfliteral = function(pdfcode)
+ local literal = copy_node(mpsliteral)
+ literal.data = pdfcode
+ return literal
+end
+
-- Because in MKiV we always have two passes, we save the objects. When an extra
-- mp run is done (due to for instance texts identifier in the parse pass), we
-- get a new result table and the stored objects are forgotten. Otherwise they
-- are reused.
local function getobjects(result,figure,index)
- return figure:objects()
+ if metapost.optimize then
+ local robjects = result.objects
+ if not robjects then
+ robjects = { }
+ result.objects = robjects
+ end
+ local fobjects = robjects[index or 1]
+ if not fobjects then
+ fobjects = figure:objects()
+ robjects[index] = fobjects
+ end
+ return fobjects
+ else
+ return figure:objects()
+ end
end
-function metapost.convert(specification,result)
- local flusher = specification.flusher
- local askedfig = specification.askedfig
- if save_table then
- table.save(save_table,metapost.totable(result,1)) -- direct
+function metapost.convert(result, trialrun, flusher, multipass, askedfig)
+ if trialrun then
+ local multipassindeed = metapost.parse(result,askedfig)
+ if multipass and not multipassindeed and metapost.optimize then
+ if save_table then
+ table.save(save_table,metapost.totable(result,1)) -- direct
+ end
+ metapost.flush(result,flusher,askedfig) -- saves a run
+ else
+ return false
+ end
+ else
+ if save_table then
+ table.save(save_table,metapost.totable(result,1)) -- direct
+ end
+ metapost.flush(result,flusher,askedfig)
end
- metapost.flush(specification,result)
return true -- done
end
function metapost.flushliteral(d)
if savedliterals then
- write_node(mpsliteral(savedliterals[d]))
+ local literal = copy_node(mpsliteral)
+ literal.data = savedliterals[d]
+ write_node(literal)
else
report_metapost("problem flushing literal %a",d)
end
@@ -118,7 +140,7 @@ function pdfflusher.comment(message)
if message then
message = formatters["%% mps graphic %s: %s"](metapost.n,message)
if experiment then
- context(mpsliteral(message))
+ context(pdfliteral(message))
elseif savedliterals then
local last = #savedliterals + 1
savedliterals[last] = message
@@ -147,7 +169,7 @@ function pdfflusher.flushfigure(pdfliterals) -- table
if #pdfliterals > 0 then
pdfliterals = concat(pdfliterals,"\n")
if experiment then
- context(mpsliteral(pdfliterals))
+ context(pdfliteral(pdfliterals))
else
if savedliterals then
local last = #savedliterals + 1
@@ -298,6 +320,15 @@ local p_boolean = P("false") * Cc(false) + P("true") * Cc(true)
local p_set = Ct(number^1)
local p_path = Ct(Ct(number * number^-5)^1)
+-- local variable =
+-- P("1:") * key * p_number
+-- + P("2:") * key * p_string
+-- + P("3:") * key * p_boolean
+-- + S("4568") * P(":") * key * p_set
+-- + P("7:") * key * p_path
+--
+-- local pattern_key = Cf ( Carg(1) * (Cg(variable * newline^0)^0), rawset)
+
local variable =
P("1:") * p_number
+ P("2:") * p_string
@@ -343,9 +374,7 @@ function metapost.processspecial(str)
end
end
-local stack = { }
-
-local function pushproperties(figure)
+local function setproperties(figure)
local boundingbox = figure:boundingbox()
local properties = {
llx = boundingbox[1],
@@ -359,321 +388,313 @@ local function pushproperties(figure)
italic = figure:italcorr(),
number = figure:charcode() or 0,
}
- insert(stack,properties)
metapost.properties = properties
return properties
end
-local function popproperties()
- metapost.properties = remove(stack)
-end
-
local function nocomment() end
metapost.comment = nocomment
-function metapost.flush(specification,result)
+function metapost.flush(result,flusher,askedfig)
if result then
- local flusher = specification.flusher
- local askedfig = specification.askedfig
- local incontext = specification.incontext
- local figures = result.fig
+ local figures = result.fig
if figures then
flusher = flusher or pdfflusher
- local resetplugins = metapost.resetplugins or ignore -- before figure
- local processplugins = metapost.processplugins or ignore -- each object
+ local resetplugins = metapost.resetplugins or ignore -- before figure
+ local processplugins = metapost.processplugins or ignore -- each object
local synchronizeplugins = metapost.synchronizeplugins or ignore
- local pluginactions = metapost.pluginactions or ignore -- before / after
- local startfigure = flusher.startfigure
- local stopfigure = flusher.stopfigure
- local flushfigure = flusher.flushfigure
- local textfigure = flusher.textfigure
- local processspecial = flusher.processspecial or metapost.processspecial
- metapost.comment = flusher.comment or nocomment
+ local pluginactions = metapost.pluginactions or ignore -- before / after
+ local startfigure = flusher.startfigure
+ local stopfigure = flusher.stopfigure
+ local flushfigure = flusher.flushfigure
+ local textfigure = flusher.textfigure
+ local processspecial = flusher.processspecial or metapost.processspecial
+ metapost.comment = flusher.comment or nocomment
for index=1,#figures do
- local figure = figures[index]
- local properties = pushproperties(figure)
+ local figure = figures[index]
+ local properties = setproperties(figure)
if askedfig == "direct" or askedfig == "all" or askedfig == properties.number then
- local objects = getobjects(result,figure,index)
- local result = { }
- local miterlimit = -1
- local linecap = -1
- local linejoin = -1
- local dashed = false
- local llx = properties.llx
- local lly = properties.lly
- local urx = properties.urx
- local ury = properties.ury
+ local objects = getobjects(result,figure,index)
+ local result = { }
+ local miterlimit, linecap, linejoin, dashed = -1, -1, -1, false
+ local llx = properties.llx
+ local lly = properties.lly
+ local urx = properties.urx
+ local ury = properties.ury
if urx < llx then
-- invalid
startfigure(properties.number,0,0,0,0,"invalid",figure)
stopfigure()
else
-
- -- we need to be indirect if we want the one-pass solution
-
- local function processfigure()
- result[#result+1] = "q"
- if objects then
- -- resetplugins(result) -- we should move the colorinitializer here
- local savedpath = nil
- local savedhtap = nil
- for o=1,#objects do
- local object = objects[o]
- local objecttype = object.type
- if objecttype == "text" then
- result[#result+1] = "q"
- local ot = object.transform -- 3,4,5,6,1,2
- result[#result+1] = f_cm(ot[3],ot[4],ot[5],ot[6],ot[1],ot[2])
- flushfigure(result) -- flush accumulated literals
- result = { }
- textfigure(object.font,object.dsize,object.text,object.width,object.height,object.depth)
- result[#result+1] = "Q"
- elseif objecttype == "special" then
- if processspecial then
- processspecial(object.prescript)
+ startfigure(properties.number,llx,lly,urx,ury,"begin",figure)
+ result[#result+1] = "q"
+ if objects then
+ resetplugins(result) -- we should move the colorinitializer here
+ local savedpath = nil
+ local savedhtap = nil
+ for o=1,#objects do
+ local object = objects[o]
+ local objecttype = object.type
+ if objecttype == "text" then
+ result[#result+1] = "q"
+ local ot = object.transform -- 3,4,5,6,1,2
+ result[#result+1] = f_cm(ot[3],ot[4],ot[5],ot[6],ot[1],ot[2]) -- TH: formatters["%F %F m %F %F %F %F 0 0 cm"](unpack(ot))
+ flushfigure(result) -- flush accumulated literals
+ result = { }
+ textfigure(object.font,object.dsize,object.text,object.width,object.height,object.depth)
+ result[#result+1] = "Q"
+ elseif objecttype == "special" then
+ if processspecial then
+ processspecial(object.prescript)
+ end
+ elseif objecttype == "start_clip" then
+ local evenodd = not object.istext and object.postscript == "evenodd"
+ result[#result+1] = "q"
+ flushnormalpath(object.path,result,false)
+ result[#result+1] = evenodd and "W* n" or "W n"
+ elseif objecttype == "stop_clip" then
+ result[#result+1] = "Q"
+ miterlimit, linecap, linejoin, dashed = -1, -1, -1, "" -- was false
+ elseif objecttype == "start_bounds" or objecttype == "stop_bounds" then
+ -- skip
+ else
+ -- we use an indirect table as we want to overload
+ -- entries but this is not possible in userdata
+ --
+ -- can be optimized if no path
+ --
+ local original = object
+ local object = { }
+ setmetatable(object, {
+ __index = original
+ })
+ -- first we analyze
+ local before, after = processplugins(object)
+ local evenodd, collect, both = false, false, false
+ local postscript = object.postscript
+ if not object.istext then
+ if postscript == "evenodd" then
+ evenodd = true
+ elseif postscript == "collect" then
+ collect = true
+ elseif postscript == "both" then
+ both = true
+ elseif postscript == "eoboth" then
+ evenodd = true
+ both = true
+ end
+ end
+ --
+ if collect then
+ if not savedpath then
+ savedpath = { object.path or false }
+ savedhtap = { object.htap or false }
+ else
+ savedpath[#savedpath+1] = object.path or false
+ savedhtap[#savedhtap+1] = object.htap or false
end
- elseif objecttype == "start_clip" then
- local evenodd = not object.istext and object.postscript == "evenodd"
- result[#result+1] = "q"
- flushnormalpath(object.path,result,false)
- result[#result+1] = evenodd and "W* n" or "W n"
- elseif objecttype == "stop_clip" then
- result[#result+1] = "Q"
- miterlimit, linecap, linejoin, dashed = -1, -1, -1, "" -- was false
- elseif objecttype == "start_bounds" or objecttype == "stop_bounds" then
- -- skip
else
- -- we use an indirect table as we want to overload
- -- entries but this is not possible in userdata
- --
- -- can be optimized if no path
- --
- local original = object
- local object = { }
- setmetatable(object, {
- __index = original
- })
- local before,
- after = processplugins(object)
- local evenodd = false
- local collect = false
- local both = false
- local postscript = object.postscript
- if not object.istext then
- if postscript == "evenodd" then
- evenodd = true
- elseif postscript == "collect" then
- collect = true
- elseif postscript == "both" then
- both = true
- elseif postscript == "eoboth" then
- evenodd = true
- both = true
- end
+ local objecttype = object.type -- can have changed
+ if before then
+ result = pluginactions(before,result,flushfigure)
end
- --
- if collect then
- if not savedpath then
- savedpath = { object.path or false }
- savedhtap = { object.htap or false }
- else
- savedpath[#savedpath+1] = object.path or false
- savedhtap[#savedhtap+1] = object.htap or false
+ local ml = object.miterlimit
+ if ml and ml ~= miterlimit then
+ miterlimit = ml
+ result[#result+1] = f_M(ml)
+ end
+ local lj = object.linejoin
+ if lj and lj ~= linejoin then
+ linejoin = lj
+ result[#result+1] = f_j(lj)
+ end
+ local lc = object.linecap
+ if lc and lc ~= linecap then
+ linecap = lc
+ result[#result+1] = f_J(lc)
+ end
+ if both then
+ if dashed ~= false then -- was just dashed test
+ result[#result+1] = "[] 0 d"
+ dashed = false
end
else
- local objecttype = object.type -- can have changed
- if before then
- result = pluginactions(before,result,flushfigure)
- end
- local ml = object.miterlimit
- if ml and ml ~= miterlimit then
- miterlimit = ml
- result[#result+1] = f_M(ml)
- end
- local lj = object.linejoin
- if lj and lj ~= linejoin then
- linejoin = lj
- result[#result+1] = f_j(lj)
- end
- local lc = object.linecap
- if lc and lc ~= linecap then
- linecap = lc
- result[#result+1] = f_J(lc)
+ local dl = object.dash
+ if dl then
+ local d = f_d(concat(dl.dashes or {}," "),dl.offset)
+ if d ~= dashed then
+ dashed = d
+ result[#result+1] = d
+ end
+ elseif dashed ~= false then -- was just dashed test
+ result[#result+1] = "[] 0 d"
+ dashed = false
end
- if both then
- if dashed ~= false then -- was just dashed test
- result[#result+1] = "[] 0 d"
- dashed = false
+ end
+ local path = object.path -- newpath
+ local transformed, penwidth = false, 1
+ local open = path and path[1].left_type and path[#path].right_type -- at this moment only "end_point"
+ local pen = object.pen
+ if pen then
+ if pen.type == 'elliptical' then
+ transformed, penwidth = pen_characteristics(original) -- boolean, value
+ result[#result+1] = f_w(penwidth) -- todo: only if changed
+ if objecttype == 'fill' then
+ objecttype = 'both'
end
- else
- local dl = object.dash
- if dl then
- local d = f_d(concat(dl.dashes or {}," "),dl.offset)
- if d ~= dashed then
- dashed = d
- result[#result+1] = d
+ else -- calculated by mplib itself
+ objecttype = 'fill'
+ end
+ end
+ if transformed then
+ result[#result+1] = "q"
+ end
+ if path then
+ if savedpath then
+ for i=1,#savedpath do
+ local path = savedpath[i]
+ if transformed then
+ flushconcatpath(path,result,open)
+ else
+ flushnormalpath(path,result,open)
end
- elseif dashed ~= false then -- was just dashed test
- result[#result+1] = "[] 0 d"
- dashed = false
end
- end
- local path = object.path -- newpath
- local transformed = false
- local penwidth = 1
- local open = path and path[1].left_type and path[#path].right_type -- at this moment only "end_point"
- local pen = object.pen
- if pen then
- if pen.type == "elliptical" then
- transformed, penwidth = pen_characteristics(original) -- boolean, value
- result[#result+1] = f_w(penwidth) -- todo: only if changed
- if objecttype == "fill" then
- objecttype = "both"
- end
- else -- calculated by mplib itself
- objecttype = "fill"
- end
+ savedpath = nil
end
if transformed then
- result[#result+1] = "q"
+ flushconcatpath(path,result,open)
+ else
+ flushnormalpath(path,result,open)
end
- if path then
- if savedpath then
- for i=1,#savedpath do
- local path = savedpath[i]
- if transformed then
- flushconcatpath(path,result,open)
- else
- flushnormalpath(path,result,open)
- end
- end
- savedpath = nil
- end
- if transformed then
- flushconcatpath(path,result,open)
+ if force_stroke then
+ result[#result+1] = open and "S" or "h S"
+ elseif objecttype == "fill" then
+ result[#result+1] = evenodd and "h f*" or "h f" -- f* = eo
+ elseif objecttype == "outline" then
+ if both then
+ result[#result+1] = evenodd and "h B*" or "h B" -- B* = eo
else
- flushnormalpath(path,result,open)
- end
- if force_stroke then
result[#result+1] = open and "S" or "h S"
- elseif objecttype == "fill" then
- result[#result+1] = evenodd and "h f*" or "h f" -- f* = eo
- elseif objecttype == "outline" then
- if both then
- result[#result+1] = evenodd and "h B*" or "h B" -- B* = eo
- else
- result[#result+1] = open and "S" or "h S"
- end
- elseif objecttype == "both" then
- result[#result+1] = evenodd and "h B*" or "h B" -- B* = eo -- b includes closepath
end
+ elseif objecttype == "both" then
+ result[#result+1] = evenodd and "h B*" or "h B" -- B* = eo -- b includes closepath
end
+ end
+ if transformed then
+ result[#result+1] = "Q"
+ end
+ local path = object.htap
+ if path then
if transformed then
- result[#result+1] = "Q"
+ result[#result+1] = "q"
end
- local path = object.htap
- if path then
- if transformed then
- result[#result+1] = "q"
- end
- if savedhtap then
- for i=1,#savedhtap do
- local path = savedhtap[i]
- if transformed then
- flushconcatpath(path,result,open)
- else
- flushnormalpath(path,result,open)
- end
+ if savedhtap then
+ for i=1,#savedhtap do
+ local path = savedhtap[i]
+ if transformed then
+ flushconcatpath(path,result,open)
+ else
+ flushnormalpath(path,result,open)
end
- savedhtap = nil
- evenodd = true
- end
- if transformed then
- flushconcatpath(path,result,open)
- else
- flushnormalpath(path,result,open)
- end
- if force_stroke then
- result[#result+1] = open and "S" or "h S"
- elseif objecttype == "fill" then
- result[#result+1] = evenodd and "h f*" or "h f" -- f* = eo
- elseif objecttype == "outline" then
- result[#result+1] = open and "S" or "h S"
- elseif objecttype == "both" then
- result[#result+1] = evenodd and "h B*" or "h B" -- B* = eo -- b includes closepath
- end
- if transformed then
- result[#result+1] = "Q"
end
+ savedhtap = nil
+ evenodd = true
+ end
+ if transformed then
+ flushconcatpath(path,result,open)
+ else
+ flushnormalpath(path,result,open)
end
- if after then
- result = pluginactions(after,result,flushfigure)
+ if force_stroke then
+ result[#result+1] = open and "S" or "h S"
+ elseif objecttype == "fill" then
+ result[#result+1] = evenodd and "h f*" or "h f" -- f* = eo
+ elseif objecttype == "outline" then
+ result[#result+1] = open and "S" or "h S"
+ elseif objecttype == "both" then
+ result[#result+1] = evenodd and "h B*" or "h B" -- B* = eo -- b includes closepath
+ end
+ if transformed then
+ result[#result+1] = "Q"
end
end
- if object.grouped then
- -- can be qQ'd so changes can end up in groups
- miterlimit, linecap, linejoin, dashed = -1, -1, -1, "" -- was false
+ if after then
+ result = pluginactions(after,result,flushfigure)
end
end
+ if object.grouped then
+ -- can be qQ'd so changes can end up in groups
+ miterlimit, linecap, linejoin, dashed = -1, -1, -1, "" -- was false
+ end
end
end
- result[#result+1] = "Q"
- flushfigure(result)
- end
- startfigure(properties.number,llx,lly,urx,ury,"begin",figure)
- if incontext then
- context(function() processfigure() end)
- else
- processfigure()
end
+ result[#result+1] = "Q"
+ flushfigure(result)
stopfigure("end")
-
end
if askedfig ~= "all" then
break
end
end
- popproperties()
end
metapost.comment = nocomment
- resetplugins(result) -- we should move the colorinitializer here
end
end
end
--- tracing:
-
-do
-
- local result = { }
-
- local flusher = {
- startfigure = function()
- result = { }
- context.startnointerference()
- end,
- flushfigure = function(literals)
- local n = #result
- for i=1,#literals do
- result[n+i] = literals[i]
+function metapost.parse(result,askedfig)
+ if result then
+ local figures = result.fig
+ if figures then
+ local multipass = false
+ local analyzeplugins = metapost.analyzeplugins -- each object
+ for index=1,#figures do
+ local figure = figures[index]
+ local properties = setproperties(figure)
+ if askedfig == "direct" or askedfig == "all" or askedfig == properties.number then
+ local objects = getobjects(result,figure,index)
+ if objects then
+ for o=1,#objects do
+ if analyzeplugins(objects[o]) then
+ multipass = true
+ end
+ end
+ end
+ if askedfig ~= "all" then
+ break
+ end
+ end
end
- end,
- stopfigure = function()
- context.stopnointerference()
+ return multipass
end
- }
+ end
+end
- local specification = {
- flusher = flusher,
- -- incontext = true,
- }
+-- tracing:
- function metapost.pdfliterals(result)
- metapost.flush(specification,result)
- return result
+local result = { }
+
+local flusher = {
+ startfigure = function()
+ result = { }
+ context.startnointerference()
+ end,
+ flushfigure = function(literals)
+ local n = #result
+ for i=1,#literals do
+ result[n+i] = literals[i]
+ end
+ end,
+ stopfigure = function()
+ context.stopnointerference()
end
+}
+function metapost.pdfliterals(result)
+ metapost.flush(result,flusher)
+ return result
end
function metapost.totable(result,askedfig)
@@ -681,6 +702,7 @@ function metapost.totable(result,askedfig)
local figure = result and result.fig and result.fig[1]
if figure then
local results = { }
+ -- local objects = figure:objects()
local objects = getobjects(result,figure,askedfig)
for o=1,#objects do
local object = objects[o]
diff --git a/Master/texmf-dist/tex/context/base/mkiv/mlib-pdf.mkiv b/Master/texmf-dist/tex/context/base/mkiv/mlib-pdf.mkiv
index 6dc73a15352..147b67f743c 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/mlib-pdf.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/mlib-pdf.mkiv
@@ -47,18 +47,6 @@
\global\MPurx \zeropoint
\global\MPury \zeropoint}
-\let\popMPboundingbox\relax
-
-\unexpanded\def\pushMPboundingbox
- {\edef\popMPboundingbox
- {\global\MPwidth \the\MPwidth
- \global\MPheight\the\MPheight
- \global\MPllx \the\MPllx
- \global\MPlly \the\MPlly
- \global\MPurx \the\MPurx
- \global\MPury \the\MPury
- \relax}}
-
\unexpanded\def\repositionMPboxindeed
{\setbox\MPbox\hpack\bgroup
\kern-\MPllx
@@ -88,15 +76,15 @@
\wd\MPbox\MPwidth
\ht\MPbox\MPheight}
-% \unexpanded\def\MPtextext#1#2#3#4#5% beware: we use a different method now (see mlib-pps)
-% {\begingroup
-% \setbox\MPbox\hbox{\font\temp=#1\space at #2\onebasepoint \let\c\char \temp #3}% text
-% \MPllx-#4\onebasepoint
-% \MPlly-#5\onebasepoint
-% \repositionMPbox
-% \smashbox\MPbox
-% \box\MPbox
-% \endgroup}
+\unexpanded\def\MPtextext#1#2#3#4#5% beware: we use a different method now (see mlib-pps)
+ {\begingroup
+ \setbox\MPbox\hbox{\font\temp=#1\space at #2\onebasepoint \let\c\char \temp #3}% text
+ \MPllx-#4\onebasepoint
+ \MPlly-#5\onebasepoint
+ \repositionMPbox
+ \smashbox\MPbox
+ \box\MPbox
+ \endgroup}
% MPLIB specific:
diff --git a/Master/texmf-dist/tex/context/base/mkiv/mlib-pps.lua b/Master/texmf-dist/tex/context/base/mkiv/mlib-pps.lua
index 5708577fea6..bb5ce31e5e5 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/mlib-pps.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/mlib-pps.lua
@@ -6,8 +6,8 @@ if not modules then modules = { } end modules ['mlib-pps'] = {
license = "see context related readme files",
}
-local format, gmatch, match, split, gsub = string.format, string.gmatch, string.match, string.split, string.gsub
-local tonumber, type, unpack, next, select = tonumber, type, unpack, next, select
+local format, gmatch, match, split = string.format, string.gmatch, string.match, string.split
+local tonumber, type, unpack, next = tonumber, type, unpack, next
local round, sqrt, min, max = math.round, math.sqrt, math.min, math.max
local insert, remove, concat = table.insert, table.remove, table.concat
local Cs, Cf, C, Cg, Ct, P, S, V, Carg = lpeg.Cs, lpeg.Cf, lpeg.C, lpeg.Cg, lpeg.Ct, lpeg.P, lpeg.S, lpeg.V, lpeg.Carg
@@ -23,6 +23,7 @@ local context = context
local implement = interfaces.implement
local setmacro = interfaces.setmacro
+----- texgetbox = tex.getbox
local texsetbox = tex.setbox
local textakebox = tex.takebox -- or: nodes.takebox
local copy_list = node.copy_list
@@ -36,7 +37,6 @@ local stoptiming = statistics.stoptiming
local trace_runs = false trackers.register("metapost.runs", function(v) trace_runs = v end)
local trace_textexts = false trackers.register("metapost.textexts", function(v) trace_textexts = v end)
local trace_scripts = false trackers.register("metapost.scripts", function(v) trace_scripts = v end)
-local trace_btexetex = false trackers.register("metapost.btexetex", function(v) trace_btexetex = v end)
local report_metapost = logs.reporter("metapost")
local report_textexts = logs.reporter("metapost","textexts")
@@ -57,6 +57,9 @@ local cmyktorgb = colors.cmyktorgb -- or function() return 0,0,0 e
local rgbtogray = colors.rgbtogray -- or function() return 0 end
local cmyktogray = colors.cmyktogray -- or function() return 0 end
+metapost.makempy = metapost.makempy or { nofconverted = 0 }
+local makempy = metapost.makempy
+
local nooutercolor = "0 g 0 G"
local nooutertransparency = "/Tr0 gs" -- only when set
local outercolormode = 0
@@ -94,25 +97,14 @@ end
local f_f = formatters["%F"]
local f_f3 = formatters["%.3F"]
+
local f_gray = formatters["%.3F g %.3F G"]
local f_rgb = formatters["%.3F %.3F %.3F rg %.3F %.3F %.3F RG"]
local f_cmyk = formatters["%.3F %.3F %.3F %.3F k %.3F %.3F %.3F %.3F K"]
-local f_cm_b = formatters["q %.6F %.6F %.6F %.6F %.6F %.6F cm"]
-local f_scn = formatters["%.3F"]
-
+local f_cm = formatters["q %F %F %F %F %F %F cm"]
local f_shade = formatters["MpSh%s"]
+
local f_spot = formatters["/%s cs /%s CS %s SCN %s scn"]
-local s_cm_e = "Q"
-
-directives.register("metapost.stripzeros",function()
- f_f = formatters["%N"]
- f_f3 = formatters["%.3N"]
- f_gray = formatters["%.3N g %.3N G"]
- f_rgb = formatters["%.3N %.3N %.3N rg %.3N %.3N %.3N RG"]
- f_cmyk = formatters["%.3N %.3N %.3N %.3N k %.3N %.3N %.3N %.3N K"]
- f_cm_b = formatters["q %.6N %.6N %.6N %.6N %.6N %.6N cm"]
- f_scn = formatters["%.3N"]
-end)
local function checked_color_pair(color,...)
if not color then
@@ -202,8 +194,7 @@ local function checkandconvert(ca,cb,model)
ca = { cmyktorgb(ca[1],ca[2],ca[3],ca[4]) }
cb = { cmyktorgb(cb[1],cb[2],cb[3],cb[4]) }
elseif #ca == 1 then
- local a = 1 - ca[1]
- local b = 1 - cb[1]
+ local a, b = 1-ca[1], 1-cb[1]
ca = { a, a, a }
cb = { b, b, b }
end
@@ -253,18 +244,16 @@ local function preset(t,k)
return v
end
-local function startjob(plugmode,kind)
- insert(stack,top)
+local function startjob(plugmode)
top = {
- textexts = { }, -- all boxes, optionally with a different color
- texstrings = { },
- texlast = 0,
- texdata = setmetatableindex({},preset), -- references to textexts in order or usage
- plugmode = plugmode, -- some day we can then skip all pre/postscripts
+ textexts = { }, -- all boxes, optionally with a different color
+ texlast = 0,
+ texdata = setmetatableindex({},preset), -- references to textexts in order or usage
+ plugmode = plugmode, -- some day we can then skip all pre/postscripts
}
+ insert(stack,top)
if trace_runs then
- report_metapost("starting %s run at level %i in %s mode",
- kind,#stack+1,plugmode and "plug" or "normal")
+ report_metapost("starting run at level %i",#stack)
end
return top
end
@@ -272,17 +261,16 @@ end
local function stopjob()
if top then
for slot, content in next, top.textexts do
- if content then
- flush_list(content)
- if trace_textexts then
- report_textexts("freeing text %s",slot)
- end
+ flush_list(content)
+ if trace_textexts then
+ report_textexts("freeing text %s",slot)
end
end
if trace_runs then
- report_metapost("stopping run at level %i",#stack+1)
+ report_metapost("stopping run at level %i",#stack)
end
- top = remove(stack)
+ remove(stack)
+ top = stack[#stack]
return top
end
end
@@ -293,7 +281,7 @@ end
-- end of new
-local settext = function(box,slot,str)
+local function settext(box,slot)
if top then
-- if trace_textexts then
-- report_textexts("getting text %s from box %s",slot,box)
@@ -302,10 +290,10 @@ local settext = function(box,slot,str)
end
end
-local gettext = function(box,slot)
+local function gettext(box,slot)
if top then
- texsetbox(box,top.textexts[slot])
- top.textexts[slot] = false
+ -- maybe check how often referenced
+ texsetbox(box,copy_list(top.textexts[slot]))
-- if trace_textexts then
-- report_textexts("putting text %s in box %s",slot,box)
-- end
@@ -335,19 +323,14 @@ function models.all(cr)
local s = cr[1]
return checked_color_pair(f_gray,s,s)
elseif n == 3 then
- local r = cr[1]
- local g = cr[2]
- local b = cr[3]
+ local r, g, b = cr[1], cr[2], cr[3]
if r == g and g == b then
return checked_color_pair(f_gray,r,r)
else
return checked_color_pair(f_rgb,r,g,b,r,g,b)
end
else
- local c = cr[1]
- local m = cr[2]
- local y = cr[3]
- local k = cr[4]
+ local c, m, y, k = cr[1], cr[2], cr[3], cr[4]
if c == m and m == y and y == 0 then
k = 1 - k
return checked_color_pair(f_gray,k,k)
@@ -359,15 +342,10 @@ function models.all(cr)
local s = cr[1]
return checked_color_pair(f_gray,s,s)
elseif n == 3 then
- local r = cr[1]
- local g = cr[2]
- local b = cr[3]
+ local r, g, b = cr[1], cr[2], cr[3]
return checked_color_pair(f_rgb,r,g,b,r,g,b)
else
- local c = cr[1]
- local m = cr[2]
- local y = cr[3]
- local k = cr[4]
+ local c, m, y, k = cr[1], cr[2], cr[3], cr[4]
return checked_color_pair(f_cmyk,c,m,y,k,c,m,y,k)
end
end
@@ -381,19 +359,14 @@ function models.rgb(cr)
local s = cr[1]
checked_color_pair(f_gray,s,s)
elseif n == 3 then
- local r = cr[1]
- local g = cr[2]
- local b = cr[3]
+ local r, g, b = cr[1], cr[2], cr[3]
if r == g and g == b then
return checked_color_pair(f_gray,r,r)
else
return checked_color_pair(f_rgb,r,g,b,r,g,b)
end
else
- local c = cr[1]
- local m = cr[2]
- local y = cr[3]
- local k = cr[4]
+ local c, m, y, k = cr[1], cr[2], cr[3], cr[4]
if c == m and m == y and y == 0 then
k = 1 - k
return checked_color_pair(f_gray,k,k)
@@ -406,12 +379,11 @@ function models.rgb(cr)
local s = cr[1]
return checked_color_pair(f_gray,s,s)
else
- local r = cr[1]
- local g = cr[2]
- local b = cr[3]
local r, g, b
if n == 3 then
- r, g, b = cmyktorgb(r,g,b,cr[4])
+ r, g, b = cmyktorgb(cr[1],cr[2],cr[3],cr[4])
+ else
+ r, g, b = cr[1], cr[2], cr[3]
end
return checked_color_pair(f_rgb,r,g,b,r,g,b)
end
@@ -426,9 +398,7 @@ function models.cmyk(cr)
local s = cr[1]
return checked_color_pair(f_gray,s,s)
elseif n == 3 then
- local r = cr[1]
- local g = cr[2]
- local b = cr[3]
+ local r, g, b = cr[1], cr[2], cr[3]
if r == g and g == b then
return checked_color_pair(f_gray,r,r)
else
@@ -436,10 +406,7 @@ function models.cmyk(cr)
return checked_color_pair(f_cmyk,c,m,y,k,c,m,y,k)
end
else
- local c = cr[1]
- local m = cr[2]
- local y = cr[3]
- local k = cr[4]
+ local c, m, y, k = cr[1], cr[2], cr[3], cr[4]
if c == m and m == y and y == 0 then
k = k - 1
return checked_color_pair(f_gray,k,k)
@@ -451,20 +418,18 @@ function models.cmyk(cr)
local s = cr[1]
return checked_color_pair(f_gray,s,s)
else
- local c = cr[1]
- local m = cr[2]
- local y = cr[3]
- local k = cr[4]
+ local c, m, y, k
if n == 3 then
- c, m, y, k = rgbtocmyk(c,m,y)
+ c, m, y, k = rgbtocmyk(cr[1],cr[2],cr[3])
+ else
+ c, m, y, k = cr[1], cr[2], cr[3], cr[4]
end
return checked_color_pair(f_cmyk,c,m,y,k,c,m,y,k)
end
end
function models.gray(cr)
- local n = #cr
- local s = 0
+ local n, s = #cr, 0
if n == 0 then
return checked_color_pair()
elseif n == 4 then
@@ -489,9 +454,76 @@ setmetatableindex(models, function(t,k)
end)
local function colorconverter(cs)
+ -- return models[colors.currentmodel()](cs)
return models[outercolormodel](cs)
end
+local btex = P("btex")
+local etex = P(" etex")
+local vtex = P("verbatimtex")
+local ttex = P("textext")
+local gtex = P("graphictext")
+local multipass = P("forcemultipass")
+local spacing = S(" \n\r\t\v")^0
+local dquote = P('"')
+
+local found, forced = false, false
+
+local function convert(str)
+ found = true
+ return "rawtextext(\"" .. str .. "\")" -- centered
+end
+local function ditto(str)
+ return "\" & ditto & \""
+end
+local function register()
+ found = true
+end
+local function force()
+ forced = true
+end
+
+local texmess = (dquote/ditto + (1 - etex))^0
+
+local function ignore(s)
+ report_metapost("ignoring verbatim tex: %s",s)
+ return ""
+end
+
+-- local parser = P {
+-- [1] = Cs((V(2)/register + V(4)/ignore + V(3)/convert + V(5)/force + 1)^0),
+-- [2] = ttex + gtex,
+-- [3] = btex * spacing * Cs(texmess) * etex,
+-- [4] = vtex * spacing * Cs(texmess) * etex,
+-- [5] = multipass, -- experimental, only for testing
+-- }
+
+-- currently a a one-liner produces less code
+
+-- textext.*(".*") can have "'s but tricky parsing as we can have concatenated strings
+-- so this is something for a boring plane or train trip and we might assume proper mp
+-- input anyway
+
+local parser = Cs((
+ (ttex + gtex)/register
+ + (btex * spacing * Cs(texmess) * etex)/convert
+ + (vtex * spacing * Cs(texmess) * etex)/ignore
+ + 1
+)^0)
+
+local checking_enabled = false directives.register("metapost.checktexts",function(v) checking_enabled = v end)
+
+local function checktexts(str)
+ if checking_enabled then
+ found, forced = false, false
+ return lpegmatch(parser,str), found, forced
+ else
+ return str
+ end
+end
+
+metapost.checktexts = checktexts
+
local factor = 65536*(7227/7200)
implement {
@@ -509,15 +541,42 @@ local function sxsy(wd,ht,dp) -- helper for text
return (wd ~= 0 and factor/wd) or 0, (hd ~= 0 and factor/hd) or 0
end
-metapost.sxsy = sxsy
-
-- for stock mp we need to declare the booleans first
+local no_first_run = "boolean mfun_first_run ; mfun_first_run := false ;"
+local do_first_run = "boolean mfun_first_run ; mfun_first_run := true ;"
+local no_trial_run = "boolean mfun_trial_run ; mfun_trial_run := false ;"
+local do_trial_run = "boolean mfun_trial_run ; mfun_trial_run := true ;"
local do_begin_fig = "; beginfig(1) ; "
local do_end_fig = "; endfig ;"
local do_safeguard = ";"
-function metapost.preparetextextsdata()
+-- local f_text_data = formatters["mfun_tt_w[%i] := %f ; mfun_tt_h[%i] := %f ; mfun_tt_d[%i] := %f ;"]
+--
+-- function metapost.textextsdata()
+-- local textexts = top.textexts
+-- local collected = { }
+-- local nofcollected = 0
+-- for k, data in sortedhash(top.texdata) do -- sort is nicer in trace
+-- local texorder = data.texorder
+-- for n=1,#texorder do
+-- local box = textexts[texorder[n]]
+-- if box then
+-- local wd, ht, dp = box.width/factor, box.height/factor, box.depth/factor
+-- if trace_textexts then
+-- report_textexts("passed data item %s:%s > (%p,%p,%p)",k,n,wd,ht,dp)
+-- end
+-- nofcollected = nofcollected + 1
+-- collected[nofcollected] = f_text_data(n,wd,n,ht,n,dp)
+-- else
+-- break
+-- end
+-- end
+-- end
+-- return collected
+-- end
+
+function metapost.textextsdata()
local textexts = top.textexts
local collected = { }
for k, data in sortedhash(top.texdata) do -- sort is nicer in trace
@@ -531,10 +590,18 @@ function metapost.preparetextextsdata()
end
end
end
- mp.mf_tt_initialize(collected)
+ mp.tt_initialize(collected)
end
-local runmetapost = metapost.run
+
+metapost.intermediate = metapost.intermediate or { }
+metapost.intermediate.actions = metapost.intermediate.actions or { }
+
+metapost.method = 1 -- 1:dumb 2:clever
+
+-- maybe we can latelua the texts some day
+
+local processmetapost = metapost.process
local function checkaskedfig(askedfig) -- return askedfig, wrappit
if not askedfig then
@@ -557,98 +624,231 @@ local function extrapass()
if trace_runs then
report_metapost("second run of job %s, asked figure %a",top.nofruns,top.askedfig)
end
- metapost.preparetextextsdata()
- runmetapost {
- mpx = top.mpx,
- askedfig = top.askedfig,
- incontext = true,
- data = {
- top.wrappit and do_begin_fig or "",
- no_trial_run,
- top.initializations,
- do_safeguard,
- top.data,
- top.wrappit and do_end_fig or "",
- },
- }
+ local textexts = metapost.textextsdata()
+ processmetapost(top.mpx, {
+ top.wrappit and do_begin_fig or "",
+ no_trial_run,
+ textexts and concat(textexts," ;\n") or "",
+ top.initializations,
+ do_safeguard,
+ top.data,
+ top.wrappit and do_end_fig or "",
+ }, false, nil, false, true, top.askedfig)
end
--- This one is called from the \TEX\ end so the specification is different
--- from the specification to metapost,run cum suis! The definitions and
--- extension used to be handled here but are now delegated to the format
--- initializers because we need to accumulate them for nested instances (a
--- side effect of going single pass).
-
-function metapost.graphic_base_pass(specification)
- local top = startjob(true,"base")
+function metapost.graphic_base_pass(specification) -- name will change (see mlib-ctx.lua)
+ local top = startjob(true)
+ --
local mpx = specification.mpx -- mandate
local data = specification.data or ""
+ local definitions = specification.definitions or ""
+ -- local extensions = metapost.getextensions(specification.instance,specification.useextensions)
+ local extensions = specification.extensions or ""
local inclusions = specification.inclusions or ""
local initializations = specification.initializations or ""
- local askedfig,
- wrappit = checkaskedfig(specification.figure)
- nofruns = nofruns + 1
- top.askedfig = askedfig
- top.wrappit = wrappit
- top.nofruns = nofruns
+ local askedfig = specification.figure -- no default else no wrapper
metapost.namespace = specification.namespace or ""
- top.mpx = mpx
- top.data = data
- top.initializations = initializations
+ --
+ local askedfig, wrappit = checkaskedfig(askedfig)
+ --
+ nofruns = nofruns + 1
+ --
+ top.askedfig = askedfig
+ top.wrappit = wrappit
+ top.nofruns = nofruns
+ --
+ local done_1, done_2, done_3, forced_1, forced_2, forced_3
+ if checking_enabled then
+ data, done_1, forced_1 = checktexts(data)
+ if extensions == "" then
+ extensions, done_2, forced_2 = "", false, false
+ else
+ extensions, done_2, forced_2 = checktexts(extensions)
+ end
+ if inclusions == "" then
+ inclusions, done_3, forced_3 = "", false, false
+ else
+ inclusions, done_3, forced_3 = checktexts(inclusions)
+ end
+ end
+ top.intermediate = false
+ top.multipass = false -- no needed here
+ top.mpx = mpx
+ top.data = data
+ top.initializations = initializations
+ local method = metapost.method
if trace_runs then
- report_metapost("running job %s, asked figure %a",nofruns,askedfig)
+ if method == 1 then
+ report_metapost("forcing two runs due to library configuration")
+ elseif method ~= 2 then
+ report_metapost("ignoring run due to library configuration")
+ elseif not (done_1 or done_2 or done_3) then
+ report_metapost("forcing one run only due to analysis")
+ elseif done_1 then
+ report_metapost("forcing at max two runs due to main code")
+ elseif done_2 then
+ report_metapost("forcing at max two runs due to extensions")
+ else
+ report_metapost("forcing at max two runs due to inclusions")
+ end
end
- runmetapost {
- mpx = mpx,
- askedfig = askedfig,
- incontext = true,
- data = {
+ if method == 1 or (method == 2 and (done_1 or done_2 or done_3)) then
+ if trace_runs then
+ report_metapost("first run of job %s, asked figure %a",nofruns,askedfig)
+ end
+ -- first true means: trialrun, second true means: avoid extra run if no multipass
+ local flushed = processmetapost(mpx, {
+ definitions,
+ extensions,
inclusions,
wrappit and do_begin_fig or "",
+ do_first_run,
+ do_trial_run,
initializations,
do_safeguard,
data,
wrappit and do_end_fig or "",
- },
- }
+ }, true, nil, not (forced_1 or forced_2 or forced_3), false, askedfig)
+ if top.intermediate then
+ for _, action in next, metapost.intermediate.actions do
+ action()
+ end
+ end
+ if not flushed or not metapost.optimize then
+ -- tricky, we can only ask once for objects and therefore
+ -- we really need a second run when not optimized
+ -- context.MPLIBextrapass(askedfig)
+ context(extrapass)
+ end
+ else
+ if trace_runs then
+ report_metapost("running job %s, asked figure %a",nofruns,askedfig)
+ end
+ processmetapost(mpx, {
+ definitions,
+ extensions,
+ inclusions,
+ wrappit and do_begin_fig or "",
+ do_first_run,
+ no_trial_run,
+ initializations,
+ do_safeguard,
+ data,
+ wrappit and do_end_fig or "",
+ }, false, nil, false, false, askedfig)
+ end
context(stopjob)
end
-local function oldschool(mpx, data, trial_run, flusher, was_multi_pass, is_extra_pass, askedfig, incontext)
- metapost.process {
- mpx = mpx,
- flusher = flusher,
- askedfig = askedfig,
- useplugins = incontext,
- incontext = incontext,
- data = data,
- }
+-- we overload metapost.process here
+
+function metapost.process(mpx, data, trialrun, flusher, multipass, isextrapass, askedfig, plugmode) -- overloads
+ startjob(plugmode)
+ processmetapost(mpx, data, trialrun, flusher, multipass, isextrapass, askedfig)
+ stopjob()
end
-function metapost.process(specification,...)
- if type(specification) ~= "table" then
- oldschool(specification,...)
- else
- startjob(specification.incontext or specification.useplugins,"process")
- runmetapost(specification)
- stopjob()
+local start = [[\starttext]]
+local preamble = [[\def\MPLIBgraphictext#1{\startTEXpage[scale=10000]#1\stopTEXpage}]]
+local stop = [[\stoptext]]
+
+local mpyfilename = nil
+
+function makempy.registerfile(filename)
+ mpyfilename = filename
+end
+
+implement {
+ name = "registermpyfile",
+ actions = makempy.registerfile,
+ arguments = "string"
+}
+
+local pdftompy = sandbox.registerrunner {
+ name = "mpy:pstoedit",
+ program = "pstoedit",
+ template = "-ssp -dt -f mpost %pdffile% %mpyfile%",
+ checkers = {
+ pdffile = "writable",
+ mpyfile = "readable",
+ },
+ reporter = report_metapost,
+}
+
+local textopdf = sandbox.registerrunner {
+ name = "mpy:context",
+ program = "context",
+ template = "--once %runmode% %texfile%",
+ checkers = {
+ runmode = "string",
+ texfile = "readable",
+ },
+ reporter = report_metapost,
+}
+
+function makempy.processgraphics(graphics)
+ if #graphics == 0 then
+ return
+ end
+ if mpyfilename and exists(mpyfilename) then
+ report_metapost("using file: %s",mpyfilename)
+ return
+ end
+ makempy.nofconverted = makempy.nofconverted + 1
+ starttiming(makempy)
+ local mpofile = tex.jobname .. "-mpgraph"
+ local mpyfile = file.replacesuffix(mpofile,"mpy")
+ local pdffile = file.replacesuffix(mpofile,"pdf")
+ local texfile = file.replacesuffix(mpofile,"tex")
+ savedata(texfile, { start, preamble, metapost.tex.get(), concat(graphics,"\n"), stop }, "\n")
+ textopdf {
+ runmode = tex.interactionmode == 0 and "--batchmode" or "",
+ texfile = texfile,
+ }
+ if exists(pdffile) then
+ pdftompy {
+ pdffile = pdffile,
+ mpyfile = mpyfile,
+ }
+ if exists(mpyfile) then
+ local result, r = { }, 0
+ local data = io.loaddata(mpyfile)
+ if data and #data > 0 then
+ for figure in gmatch(data,"beginfig(.-)endfig") do
+ r = r + 1
+ result[r] = formatters["begingraphictextfig%sendgraphictextfig ;\n"](figure)
+ end
+ savedata(mpyfile,concat(result,""))
+ end
+ end
end
+ stoptiming(makempy)
end
-- -- the new plugin handler -- --
-local sequencers = utilities.sequencers
-local appendgroup = sequencers.appendgroup
-local appendaction = sequencers.appendaction
+local sequencers = utilities.sequencers
+local appendgroup = sequencers.appendgroup
+local appendaction = sequencers.appendaction
-local resetteractions = sequencers.new { arguments = "t" }
-local processoractions = sequencers.new { arguments = "object,prescript,before,after" }
+local resetter = nil
+local analyzer = nil
+local processor = nil
+
+local resetteractions = sequencers.new { arguments = "t" }
+local analyzeractions = sequencers.new { arguments = "object,prescript" }
+local processoractions = sequencers.new { arguments = "object,prescript,before,after" }
appendgroup(resetteractions, "system")
+appendgroup(analyzeractions, "system")
appendgroup(processoractions,"system")
-- later entries come first
+--~ local scriptsplitter = Cf(Ct("") * (
+--~ Cg(C((1-S("= "))^1) * S("= ")^1 * C((1-S("\n\r"))^0) * S("\n\r")^0)
+--~ )^0, rawset)
+
local scriptsplitter = Ct ( Ct (
C((1-S("= "))^1) * S("= ")^1 * C((1-S("\n\r"))^0) * S("\n\r")^0
)^0 )
@@ -657,24 +857,22 @@ local function splitprescript(script)
local hash = lpegmatch(scriptsplitter,script)
for i=#hash,1,-1 do
local h = hash[i]
- if h == "reset" then
- for k, v in next, hash do
- if type(k) ~= "number" then
- hash[k] = nil
- end
- end
- else
- hash[h[1]] = h[2]
+if h == "reset" then
+ for k, v in next, hash do
+ if type(k) ~= "number" then
+ hash[k] = nil
end
end
+else
+ hash[h[1]] = h[2]
+end
+ end
if trace_scripts then
report_scripts(table.serialize(hash,"prescript"))
end
return hash
end
-metapost.splitprescript = splitprescript
-
-- -- not used:
--
-- local function splitpostscript(script)
@@ -708,9 +906,27 @@ end
function metapost.resetplugins(t) -- intialize plugins, before figure
if top.plugmode then
+
outercolormodel = colors.currentmodel() -- currently overloads the one set at the tex end
- resetteractions.runner(t)
+
+ -- plugins can have been added
+ resetter = resetteractions.runner
+ analyzer = analyzeractions.runner
+ processor = processoractions.runner
+ -- let's apply one runner
+ resetter(t)
+ end
+end
+
+function metapost.analyzeplugins(object) -- each object (first pass)
+ if top.plugmode then
+ local prescript = object.prescript -- specifications
+ if prescript and #prescript > 0 then
+ analyzer(object,splitprescript(prescript) or {})
+ return top.multipass
+ end
end
+ return false
end
function metapost.processplugins(object) -- each object (second pass)
@@ -719,7 +935,7 @@ function metapost.processplugins(object) -- each object (second pass)
if prescript and #prescript > 0 then
local before = { }
local after = { }
- processoractions.runner(object,splitprescript(prescript) or {},before,after)
+ processor(object,splitprescript(prescript) or {},before,after)
return #before > 0 and before, #after > 0 and after
else
local c = object.color
@@ -738,16 +954,11 @@ local basepoints = number.dimenfactors["bp"]
local function cm(object)
local op = object.path
if op then
- local first = op[1]
- local second = op[2]
- local fourth = op[4]
+ local first, second, fourth = op[1], op[2], op[4]
if fourth then
- local tx = first.x_coord
- local ty = first.y_coord
- local sx = second.x_coord - tx
- local sy = fourth.y_coord - ty
- local rx = second.y_coord - ty
- local ry = fourth.x_coord - tx
+ local tx, ty = first.x_coord , first.y_coord
+ local sx, sy = second.x_coord - tx, fourth.y_coord - ty
+ local rx, ry = second.y_coord - ty, fourth.x_coord - tx
if sx == 0 then sx = 0.00001 end
if sy == 0 then sy = 0.00001 end
return sx, rx, ry, sy, tx, ty
@@ -756,8 +967,6 @@ local function cm(object)
return 1, 0, 0, 1, 0, 0 -- weird case
end
-metapost.cm = cm
-
-- color
local function cl_reset(t)
@@ -766,195 +975,157 @@ end
-- text
-local tx_reset, tx_process do
-
- local eol = S("\n\r")^1
- local cleaner = Cs((P("@@")/"@" + P("@")/"%%" + P(1))^0)
- local splitter = Ct(
- ( (
- P("s:") * C((1-eol)^1)
- + P("n:") * ((1-eol)^1/tonumber)
- + P("b:") * ((1-eol)^1/toboolean)
- ) * eol^0 )^0)
-
- local function applyformat(s)
- local t = lpegmatch(splitter,s)
- if #t == 1 then
- return s
- else
- local f = lpegmatch(cleaner,t[1])
- return formatters[f](unpack(t,2))
- end
+local function tx_reset()
+ if top then
+ -- why ?
+ top.texhash = { }
+ top.texlast = 0
end
+end
- local fmt = formatters["%s %s %s % t"]
- ----- pat = tsplitat(":")
- local pat = lpeg.tsplitter(":",tonumber) -- so that %F can do its work
-
- local f_gray_yes = formatters["s=%.3F,a=%i,t=%.3F"]
- local f_gray_nop = formatters["s=%.3F"]
- local f_rgb_yes = formatters["r=%.3F,g=%.3F,b=%.3F,a=%.3F,t=%.3F"]
- local f_rgb_nop = formatters["r=%.3F,g=%.3F,b=%.3F"]
- local f_cmyk_yes = formatters["c=%.3F,m=%.3F,y=%.3F,k=%.3F,a=%.3F,t=%.3F"]
- local f_cmyk_nop = formatters["c=%.3F,m=%.3F,y=%.3F,k=%.3F"]
-
- directives.register("metapost.stripzeros",function()
- f_gray_yes = formatters["s=%.3N,a=%i,t=%.3N"]
- f_gray_nop = formatters["s=%.3N"]
- f_rgb_yes = formatters["r=%.3N,g=%.3N,b=%.3N,a=%.3N,t=%.3N"]
- f_rgb_nop = formatters["r=%.3N,g=%.3N,b=%.3N"]
- f_cmyk_yes = formatters["c=%.3N,m=%.3N,y=%.3N,k=%.3N,a=%.3N,t=%.3N"]
- f_cmyk_nop = formatters["c=%.3N,m=%.3N,y=%.3N,k=%.3N"]
- end)
-
- local ctx_MPLIBsetNtext = context.MPLIBsetNtextX
- local ctx_MPLIBsetCtext = context.MPLIBsetCtextX
- local ctx_MPLIBsettext = context.MPLIBsettextX
-
- local bp = number.dimenfactors.bp
-
- local mp_index = 0
- local mp_target = 0
- local mp_c = nil
- local mp_a = nil
- local mp_t = nil
-
- local function processtext()
- local mp_text = top.texstrings[mp_index]
- if not mp_text then
- report_textexts("missing text for index %a",mp_index)
- elseif not mp_c then
- ctx_MPLIBsetNtext(mp_target,mp_text)
- elseif #mp_c == 1 then
- if mp_a and mp_t then
- ctx_MPLIBsetCtext(mp_target,f_gray_yes(mp_c[1],mp_a,mp_t),mp_text)
- else
- ctx_MPLIBsetCtext(mp_target,f_gray_nop(mp_c[1]),mp_text)
+local fmt = formatters["%s %s %s % t"]
+----- pat = tsplitat(":")
+local pat = lpeg.tsplitter(":",tonumber) -- so that %F can do its work
+
+local f_gray_yes = formatters["s=%F,a=%F,t=%F"]
+local f_gray_nop = formatters["s=%F"]
+local f_rgb_yes = formatters["r=%F,g=%F,b=%F,a=%F,t=%F"]
+local f_rgb_nop = formatters["r=%F,g=%F,b=%F"]
+local f_cmyk_yes = formatters["c=%F,m=%F,y=%F,k=%F,a=%F,t=%F"]
+local f_cmyk_nop = formatters["c=%F,m=%F,y=%F,k=%F"]
+
+local ctx_MPLIBsetNtext = context.MPLIBsetNtext
+local ctx_MPLIBsetCtext = context.MPLIBsetCtext
+local ctx_MPLIBsettext = context.MPLIBsettext
+
+-- we reuse content when possible
+-- we always create at least one instance (for dimensions)
+-- we make sure we don't do that when we use one (else counter issues with e.g. \definelabel)
+
+local eol = S("\n\r")^1
+local cleaner = Cs((P("@@")/"@" + P("@")/"%%" + P(1))^0)
+local splitter = Ct(
+ ( (
+ P("s:") * C((1-eol)^1)
+ + P("n:") * ((1-eol)^1/tonumber)
+ + P("b:") * ((1-eol)^1/toboolean)
+ ) * eol^0 )^0)
+
+local function applyformat(s)
+ local t = lpegmatch(splitter,s)
+ if #t == 1 then
+ return s
+ else
+ local f = lpegmatch(cleaner,t[1])
+ return formatters[f](unpack(t,2))
+ end
+end
+
+local function tx_analyze(object,prescript)
+ local data = top.texdata[metapost.properties.number]
+ local tx_stage = prescript.tx_stage
+ if tx_stage == "trial" then
+ local tx_trial = data.textrial + 1
+ data.textrial = tx_trial
+ local tx_number = tonumber(prescript.tx_number)
+ local s = object.postscript or ""
+ local c = object.color -- only simple ones, no transparency
+ if #c == 0 then
+ local txc = prescript.tx_color
+ if txc then
+ c = lpegmatch(pat,txc)
end
- elseif #mp_c == 3 then
- if mp_a and mp_t then
- ctx_MPLIBsetCtext(mp_target,f_rgb_nop(mp_c[1],mp_c[2],mp_c[3],mp_a,mp_t),mp_text)
- else
- ctx_MPLIBsetCtext(mp_target,f_rgb_nop(mp_c[1],mp_c[2],mp_c[3]),mp_text)
+ end
+ if prescript.tx_type == "format" then
+ s = applyformat(s)
+ end
+ local a = tonumber(prescript.tr_alternative)
+ local t = tonumber(prescript.tr_transparency)
+ local h = fmt(tx_number,a or "-",t or "-",c or "-")
+ local n = data.texhash[h] -- todo: hashed variant with s (nicer for similar labels)
+ if n then
+ data.texslots[tx_trial] = n
+ if trace_textexts then
+ report_textexts("stage %a, usage %a, number %a, %s %a, hash %a, text %a",tx_stage,tx_trial,tx_number,"old",n,h,s)
end
- elseif #mp_c == 4 then
- if mp_a and mp_t then
- ctx_MPLIBsetCtext(mp_target,f_cmyk_yes(mp_c[1],mp_c[2],mp_c[3],mp_c[4],mp_a,mp_t),mp_text)
- else
- ctx_MPLIBsetCtext(mp_target,f_cmyk_nop(mp_c[1],mp_c[2],mp_c[3],mp_c[4]),mp_text)
+ elseif prescript.tx_global == "yes" and data.texorder[tx_number] then
+ -- we already have one flush and don't want it redone .. this needs checking
+ if trace_textexts then
+ report_textexts("stage %a, usage %a, number %a, %s %a, hash %a, text %a",tx_stage,tx_trial,tx_number,"ignored",tx_last,h,s)
end
else
- -- can't happen
- ctx_MPLIBsetNtext(mp_target,mp_text)
- end
- end
-
- function mp.mf_some_text(index,str)
- mp_target = index
- mp_index = index
- mp_c = nil
- mp_a = nil
- mp_t = nil
- top.texstrings[mp_index] = str
- tex.runtoks("mptexttoks")
- local box = textakebox("mptextbox")
- top.textexts[mp_target] = box
- mp.triplet(bp*box.width,bp*box.height,bp*box.depth)
- madetext = nil
- end
-
- local madetext = nil
-
- function mp.mf_made_text(index)
- mp.mf_some_text(index,madetext)
- end
-
- function metapost.maketext(s,mode)
- if mode and mode == 1 then
- if trace_btexetex then
- report_metapost("ignoring verbatimtex: [[%s]]",s)
+ local tx_last = top.texlast + 1
+ top.texlast = tx_last
+ -- report_textexts("tex string: %s",s)
+ if not c then
+ ctx_MPLIBsetNtext(tx_last,s)
+ elseif #c == 1 then
+ if a and t then
+ ctx_MPLIBsetCtext(tx_last,f_gray_yes(c[1],a,t),s)
+ else
+ ctx_MPLIBsetCtext(tx_last,f_gray_nop(c[1]),s)
+ end
+ elseif #c == 3 then
+ if a and t then
+ ctx_MPLIBsetCtext(tx_last,f_rgb_nop(c[1],c[2],c[3],a,t),s)
+ else
+ ctx_MPLIBsetCtext(tx_last,f_rgb_nop(c[1],c[2],c[3]),s)
+ end
+ elseif #c == 4 then
+ if a and t then
+ ctx_MPLIBsetCtext(tx_last,f_cmyk_yes(c[1],c[2],c[3],c[4],a,t),s)
+ else
+ ctx_MPLIBsetCtext(tx_last,f_cmyk_nop(c[1],c[2],c[3],c[4]),s)
+ end
+ else
+ ctx_MPLIBsetNtext(tx_last,s)
end
- else
- if trace_btexetex then
- report_metapost("handling btex ... etex: [[%s]]",s)
+ top.multipass = true
+ data.texhash [h] = tx_last
+ -- data.texhash [tx_number] = tx_last
+ data.texslots[tx_trial] = tx_last
+ data.texorder[tx_number] = tx_last
+ if trace_textexts then
+ report_textexts("stage %a, usage %a, number %a, %s %a, hash %a, text %a",tx_stage,tx_trial,tx_number,"new",tx_last,h,s)
end
- -- madetext = utilities.strings.collapse(s)
- madetext = s
- return "rawmadetext"
end
- end
-
- function mp.mf_formatted_text(index,fmt,...)
- local t = { }
- for i=1,select("#",...) do
- local ti = select(i,...)
- if type(ti) ~= "table" then
- t[#t+1] = ti
+ elseif tx_stage == "extra" then
+ local tx_trial = data.textrial + 1
+ data.textrial = tx_trial
+ local tx_number = tonumber(prescript.tx_number)
+ if not data.texorder[tx_number] then
+ local s = object.postscript or ""
+ local tx_last = top.texlast + 1
+ top.texlast = tx_last
+ ctx_MPLIBsettext(tx_last,s)
+ top.multipass = true
+ data.texslots[tx_trial] = tx_last
+ data.texorder[tx_number] = tx_last
+ if trace_textexts then
+ report_textexts("stage %a, usage %a, number %a, extra %a, text %a",tx_stage,tx_trial,tx_number,tx_last,s)
end
end
- local f = lpegmatch(cleaner,fmt)
- local s = formatters[f](unpack(t)) or ""
- mp.mf_some_text(index,s)
- end
-
- interfaces.implement {
- name = "mptexttoks",
- actions = processtext,
- }
-
- tx_reset = function()
- if top then
- top.texhash = { }
- top.texlast = 0
- end
end
+end
- tx_process = function(object,prescript,before,after)
- local data = top.texdata[metapost.properties.number]
- local index = tonumber(prescript.tx_index)
- if index then
+local function tx_process(object,prescript,before,after)
+ local data = top.texdata[metapost.properties.number]
+ local tx_number = tonumber(prescript.tx_number)
+ if tx_number then
+ local tx_stage = prescript.tx_stage
+ if tx_stage == "final" then
+ local tx_final = data.texfinal + 1
+ data.texfinal = tx_final
+ local n = data.texslots[tx_final]
if trace_textexts then
- report_textexts("using index %a",index)
- end
- --
- mp_c = object.color
- if #mp_c == 0 then
- local txc = prescript.tx_color
- if txc then
- mp_c = lpegmatch(pat,txc)
- end
- end
- mp_a = tonumber(prescript.tr_alternative)
- mp_t = tonumber(prescript.tr_transparency)
- --
- mp_index = index
- mp_target = top.texlast - 1
- top.texlast = mp_target
- --
- local mp_text = top.texstrings[mp_index]
- local box
- if prescript.tx_cache == "no" then
- tex.runtoks("mptexttoks")
- box = textakebox("mptextbox")
- else
- local hash = fmt(mp_text,mp_a or "-",mp_t or "-",mp_c or "-")
- box = data.texhash[hash]
- if box then
- box = copy_list(box)
- else
- tex.runtoks("mptexttoks")
- box = textakebox("mptextbox")
- data.texhash[hash] = box
- end
+ report_textexts("stage %a, usage %a, number %a, use %a",tx_stage,tx_final,tx_number,n)
end
- top.textexts[mp_target] = box
- --
+ local sx, rx, ry, sy, tx, ty = cm(object) -- needs to be frozen outside the function
+ local box = top.textexts[n]
if box then
- -- we need to freeze the variables outside the function
- local sx, rx, ry, sy, tx, ty = cm(object)
- local target = mp_target
before[#before+1] = function()
- context.MPLIBgettextscaledcm(target,
+ -- flush always happens, we can have a special flush function injected before
+ context.MPLIBgettextscaledcm(n,
f_f(sx), -- bah ... %s no longer checks
f_f(rx), -- bah ... %s no longer checks
f_f(ry), -- bah ... %s no longer checks
@@ -965,7 +1136,7 @@ local tx_reset, tx_process do
end
else
before[#before+1] = function()
- report_textexts("unknown %s",index)
+ report_textexts("unknown %s",tx_number)
end
end
if not trace_textexts then
@@ -976,7 +1147,6 @@ local tx_reset, tx_process do
object.istext = true
end
end
-
end
-- we could probably redo normal textexts in the next way but as it's rather optimized
@@ -1012,32 +1182,31 @@ end
-- graphics (we use the given index because pictures can be reused)
+local graphics = { }
-local gt_reset, gt_process do
-
- local graphics = { }
-
-
- local mp_index = 0
- local mp_str = ""
-
- function mp.mf_graphic_text(index,str)
- if not graphics[index] then
- mp_index = index
- mp_str = str
- tex.runtoks("mpgraphictexttoks")
- end
+function metapost.intermediate.actions.makempy()
+ if #graphics > 0 then
+ makempy.processgraphics(graphics)
+ graphics = { } -- ? could be gt_reset
end
+end
- interfaces.implement {
- name = "mpgraphictexttoks",
- actions = function()
- context.MPLIBgraphictext(mp_index,mp_str)
- end,
- }
-
+local function gt_analyze(object,prescript)
+ local gt_stage = prescript.gt_stage
+ local gt_index = tonumber(prescript.gt_index)
+ if gt_stage == "trial" and not graphics[gt_index] then
+ graphics[gt_index] = formatters["\\MPLIBgraphictext{%s}"](object.postscript or "")
+ top.intermediate = true
+ top.multipass = true
+ end
end
+-- local function gt_process(object,prescript,before,after)
+-- local gt_stage = prescript.gt_stage
+-- if gt_stage == "final" then
+-- end
+-- end
+
-- shades
local function sh_process(object,prescript,before,after)
@@ -1173,7 +1342,7 @@ end
local function bm_process(object,prescript,before,after)
local bm_xresolution = prescript.bm_xresolution
if bm_xresolution then
- before[#before+1] = f_cm_b(cm(object))
+ before[#before+1] = f_cm(cm(object))
before[#before+1] = function()
figures.bitmapimage {
xresolution = tonumber(bm_xresolution),
@@ -1183,7 +1352,7 @@ local function bm_process(object,prescript,before,after)
data = object.postscript
}
end
- before[#before+1] = s_cm_e
+ before[#before+1] = "Q"
object.path = false
object.color = false
object.grouped = true
@@ -1195,13 +1364,10 @@ end
local function ps_process(object,prescript,before,after)
local ps_label = prescript.ps_label
if ps_label then
- local op = object.path
- local first = op[1]
- local third = op[3]
- local x = first.x_coord
- local y = first.y_coord
- local w = third.x_coord - x
- local h = third.y_coord - y
+ local op = object.path
+ local first, third = op[1], op[3]
+ local x, y = first.x_coord, first.y_coord
+ local w, h = third.x_coord - x, third.y_coord - y
local properties = metapost.properties
x = x - properties.llx
y = properties.ury - y
@@ -1214,33 +1380,14 @@ end
-- figures
--- local sx, rx, ry, sy, tx, ty = cm(object)
--- sxsy(box.width,box.height,box.depth))
-
-function mp.mf_external_figure(filename)
- local f = figures.getinfo(filename)
- local w = 0
- local h = 0
- if f then
- local u = f.used
- if u and u.fullname then
- w = u.width or 0
- h = u.height or 0
- end
- else
- report_metapost("external figure %a not found",filename)
- end
- mp.triplet(w/65536,h/65536,0)
-end
-
local function fg_process(object,prescript,before,after)
local fg_name = prescript.fg_name
if fg_name then
- before[#before+1] = f_cm_b(cm(object)) -- beware: does not use the cm stack
+ before[#before+1] = f_cm(cm(object)) -- beware: does not use the cm stack
before[#before+1] = function()
context.MPLIBfigure(fg_name,prescript.fg_mask or "")
end
- before[#before+1] = s_cm_e
+ before[#before+1] = "Q"
object.path = false
object.grouped = true
end
@@ -1264,27 +1411,14 @@ local remappers = {
[4] = formatters["c=%s,m=%s,y=%s,k=%s"],
}
-local processlast = 0
-local processhash = setmetatableindex(function(t,k)
- processlast = processlast + 1
- local v = formatters["mp_%s"](processlast)
- defineprocesscolor(v,k,true,true)
- t[k] = v
- return v
-end)
-
-local function checked_transparency(alternative,transparency,before,after)
- alternative = tonumber(alternative) or 1
- transparency = tonumber(transparency) or 0
- before[#before+1] = formatters["/Tr%s gs"](registertransparency(nil,alternative,transparency,true))
- after [#after +1] = "/Tr0 gs" -- outertransparency
-end
-
local function tr_process(object,prescript,before,after)
-- before can be shortcut to t
local tr_alternative = prescript.tr_alternative
if tr_alternative then
- checked_transparency(tr_alternative,prescript.tr_transparency,before,after)
+ tr_alternative = tonumber(tr_alternative)
+ local tr_transparency = tonumber(prescript.tr_transparency)
+ before[#before+1] = formatters["/Tr%s gs"](registertransparency(nil,tr_alternative,tr_transparency,true))
+ after[#after+1] = "/Tr0 gs" -- outertransparency
end
local cs = object.color
if cs and #cs > 0 then
@@ -1295,35 +1429,29 @@ local function tr_process(object,prescript,before,after)
else
local sp_name = prescript.sp_name or "black"
if sp_type == "spot" then
- local sp_value = prescript.sp_value or "1"
- local components = split(sp_value,":")
- local specification = remappers[#components]
- if specification then
- specification = specification(unpack(components))
- else
- specification = "s=0"
- end
- local sp_spec = processhash[specification]
- definespotcolor(sp_name,sp_spec,"p=1",true)
+ local sp_value = prescript.sp_value or "s:1"
+ local sp_temp = formatters["mp:%s"](sp_value)
+ local s = split(sp_value,":")
+ local r = remappers[#s]
+ defineprocesscolor(sp_temp,r and r(unpack(s)) or "s=0",true,true)
+ definespotcolor(sp_name,sp_temp,"p=1",true)
sp_type = "named"
elseif sp_type == "multitone" then -- (fractions of a multitone) don't work well in mupdf
- local sp_value = prescript.sp_value or "1"
- local sp_specs = { }
+ local sp_value = prescript.sp_value or "s:1"
+ local sp_spec = { }
local sp_list = split(sp_value," ")
for i=1,#sp_list do
- local sp_value = sp_list[i]
- local components = split(sp_value,":")
- local specification = remappers[#components]
- if specification then
- specification = specification(unpack(components))
- else
- specification = "s=0"
- end
- local sp_spec = processhash[specification]
- sp_specs[i] = formatters["%s=1"](sp_spec)
+ local v = sp_list[i]
+ local t = formatters["mp:%s"](v)
+ local s = split(v,":")
+ local r = remappers[#s]
+ defineprocesscolor(t,r and r(unpack(s)) or "s=0",true,true)
+ local tt = formatters["ms:%s"](v)
+ definespotcolor(tt,t,"p=1",true)
+ sp_spec[#sp_spec+1] = formatters["%s=1"](t)
end
- sp_specs = concat(sp_specs,",")
- definemultitonecolor(sp_name,sp_specs,"","")
+ sp_spec = concat(sp_spec,",")
+ definemultitonecolor(sp_name,sp_spec,"","",true)
sp_type = "named"
end
if sp_type == "named" then
@@ -1335,7 +1463,8 @@ local function tr_process(object,prescript,before,after)
local t = t_list[sp_name] -- string or attribute
local v = t and transparencyvalue(t)
if v then
- checked_transparency(v[1],v[2],before,after)
+ before[#before+1] = formatters["/Tr%s gs"](registertransparency(nil,v[1],v[2],true))
+ after[#after+1] = "/Tr0 gs" -- outertransparency
end
end
local c = c_list[sp_name] -- string or attribute
@@ -1343,34 +1472,29 @@ local function tr_process(object,prescript,before,after)
if v then
-- all=1 gray=2 rgb=3 cmyk=4
local colorspace = v[1]
- local factor = cs[1]
+ local f = cs[1]
if colorspace == 2 then
- local s = factor * v[2]
+ local s = f*v[2]
c_b, c_a = checked_color_pair(f_gray,s,s)
elseif colorspace == 3 then
- local r = factor * v[3]
- local g = factor * v[4]
- local b = factor * v[5]
+ local r, g, b = f*v[3], f*v[4], f*v[5]
c_b, c_a = checked_color_pair(f_rgb,r,g,b,r,g,b)
elseif colorspace == 4 or colorspace == 1 then
- local c = factor * v[6]
- local m = factor * v[7]
- local y = factor * v[8]
- local k = factor * v[9]
+ local c, m, y, k = f*v[6], f*v[7], f*v[8], f*v[9]
c_b, c_a = checked_color_pair(f_cmyk,c,m,y,k,c,m,y,k)
elseif colorspace == 5 then
-- not all viewers show the fractions ok
local name = v[10]
local value = split(v[13],",")
- if factor ~= 1 then
+ if f ~= 1 then
for i=1,#value do
- value[i] = f_scn(factor * (tonumber(value[i]) or 1))
+ value[i] = f * (tonumber(value[i]) or 1)
end
end
value = concat(value," ")
c_b, c_a = checked_color_pair(f_spot,name,name,value,value)
else
- local s = factor *v[2]
+ local s = f*v[2]
c_b, c_a = checked_color_pair(f_gray,s,s)
end
end
@@ -1395,6 +1519,10 @@ end
-- groups
+local types = {
+ isolated
+}
+
local function gr_process(object,prescript,before,after)
local gr_state = prescript.gr_state
if not gr_state then
@@ -1402,10 +1530,7 @@ local function gr_process(object,prescript,before,after)
elseif gr_state == "start" then
local gr_type = utilities.parsers.settings_to_set(prescript.gr_type)
local path = object.path
- local p1 = path[1]
- local p2 = path[2]
- local p3 = path[3]
- local p4 = path[4]
+ local p1, p2, p3, p4 = path[1], path[2], path[3], path[4]
local llx = min(p1.x_coord,p2.x_coord,p3.x_coord,p4.x_coord)
local lly = min(p1.y_coord,p2.y_coord,p3.y_coord,p4.y_coord)
local urx = max(p1.x_coord,p2.x_coord,p3.x_coord,p4.x_coord)
@@ -1429,88 +1554,82 @@ end
-- outlines
-local ot_reset, ot_process do
+local outlinetexts = { }
- local outlinetexts = { } -- also in top data
+local function ot_reset()
+ outlinetexts = { }
+end
- ot_reset = function ()
- outlinetexts = { }
+local function ot_analyze(object,prescript)
+ local ot_stage = prescript.ot_stage
+ local ot_index = tonumber(prescript.ot_index)
+ if ot_index and ot_stage == "trial" and not outlinetexts[ot_index] then
+ local ot_kind = prescript.ot_kind or ""
+ top.intermediate = true
+ top.multipass = true
+ context.MPLIBoutlinetext(ot_index,ot_kind,object.postscript)
end
+end
- local mp_index = 0
- local mp_kind = ""
- local mp_str = ""
+local function ot_process(object,prescript,before,after)
+end
- function mp.mf_outline_text(index,str,kind)
- if not outlinetexts[index] then
- mp_index = index
- mp_kind = kind
- mp_str = str
- tex.runtoks("mpoutlinetoks")
+implement {
+ name = "MPLIBconvertoutlinetext",
+ arguments = { "integer", "string", "integer" },
+ actions = function(index,kind,box)
+ local boxtomp = fonts.metapost.boxtomp
+ if boxtomp then
+ outlinetexts[index] = boxtomp(box,kind)
+ else
+ outlinetexts[index] = ""
end
end
+}
- interfaces.implement {
- name = "mpoutlinetoks",
- actions = function()
- context.MPLIBoutlinetext(mp_index,mp_kind,mp_str)
- end,
- }
+function mp.get_outline_text(index) -- maybe we need a more private namespace
+ mp.print(outlinetexts[index] or "draw origin;")
+end
- implement {
- name = "MPLIBconvertoutlinetext",
- arguments = { "integer", "string", "integer" },
- actions = function(index,kind,box)
- local boxtomp = fonts.metapost.boxtomp
- if boxtomp then
- outlinetexts[index] = boxtomp(box,kind)
- else
- outlinetexts[index] = ""
- end
- end
- }
- function mp.mf_get_outline_text(index) -- maybe we need a more private namespace
- mp.print(outlinetexts[index] or "draw origin;")
- end
+-- definitions
-end
+appendaction(resetteractions, "system",ot_reset)
+appendaction(resetteractions, "system",cl_reset)
+appendaction(resetteractions, "system",tx_reset)
--- mf_object=<string>
+appendaction(processoractions,"system",ot_process)
+appendaction(processoractions,"system",gr_process)
-local p1 = P("mf_object=")
-local p2 = lpeg.patterns.eol * p1
-local pattern = (1-p2)^0 * p2 + p1
+appendaction(analyzeractions, "system",ot_analyze)
+appendaction(analyzeractions, "system",tx_analyze)
+appendaction(analyzeractions, "system",gt_analyze)
-function metapost.isobject(str)
- return pattern and str ~= "" and lpegmatch(p,str) and true or false
-end
+appendaction(processoractions,"system",sh_process)
+-- (processoractions,"system",gt_process)
+appendaction(processoractions,"system",bm_process)
+appendaction(processoractions,"system",tx_process)
+appendaction(processoractions,"system",bx_process)
+appendaction(processoractions,"system",ps_process)
+appendaction(processoractions,"system",fg_process)
+appendaction(processoractions,"system",tr_process) -- last, as color can be reset
-local function installplugin(specification)
- local reset = specification.reset
- local process = specification.process
- local object = specification.object
- if reset then
- appendaction(resetteractions,"system",reset)
- end
- if process then
- appendaction(processoractions,"system",process)
- end
-end
+appendaction(processoractions,"system",la_process)
-metapost.installplugin = installplugin
+-- function metapost.installplugin(reset,analyze,process)
+-- if reset then
+-- appendaction(resetteractions,"system",reset)
+-- end
+-- if analyze then
+-- appendaction(analyzeractions,"system",analyze)
+-- end
+-- if process then
+-- appendaction(processoractions,"system",process)
+-- end
+-- end
--- definitions
+-- we're nice and set them already
-installplugin { name = "outline", reset = ot_reset, process = ot_process }
-installplugin { name = "color", reset = cl_reset, process = cl_process }
-installplugin { name = "text", reset = tx_reset, process = tx_process }
-installplugin { name = "group", reset = gr_reset, process = gr_process }
-installplugin { name = "graphictext", reset = gt_reset, process = gt_process }
-installplugin { name = "shade", reset = sh_reset, process = sh_process }
-installplugin { name = "bitmap", reset = bm_reset, process = bm_process }
-installplugin { name = "box", reset = bx_reset, process = bx_process }
-installplugin { name = "position", reset = ps_reset, process = ps_process }
-installplugin { name = "figure", reset = fg_reset, process = fg_process }
-installplugin { name = "layer", reset = la_reset, process = la_process }
-installplugin { name = "transparency", reset = tr_reset, process = tr_process }
+resetter = resetteractions .runner
+analyzer = analyzeractions .runner
+processor = processoractions.runner
diff --git a/Master/texmf-dist/tex/context/base/mkiv/mlib-pps.mkiv b/Master/texmf-dist/tex/context/base/mkiv/mlib-pps.mkiv
index 05113058511..c9d181bf976 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/mlib-pps.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/mlib-pps.mkiv
@@ -57,36 +57,14 @@
\let\MPLIBsettext\MPLIBsetNtext
-\unexpanded\def\MPLIBsetNtextX#1% #2% box text
- {\MPLIBflushenvironment
- \hbox\bgroup % text
- \meta_set_current_color
- \let\MPLIBflushenvironment\doMPLIBflushenvironment
- \let\next}
-
-\unexpanded\def\MPLIBsetCtextX#1#2% #3% box colorspec text
- {\MPLIBflushenvironment
- \hbox\bgroup % text
- \directcolored[#2]%
- \meta_set_current_color % so, textcolor wins !
- \let\MPLIBflushenvironment\doMPLIBflushenvironment
- \let\next}
-
-\let\MPLIBsettextX\MPLIBsetNtextX
-
\unexpanded\def\MPLIBgettextscaled#1#2#3% why a copy .. can be used more often
{\clf_mpgettext\MPtextbox #1%
\vpack to \zeropoint{\vss\hpack to \zeropoint{\scale[\c!sx=#2,\c!sy=#3]{\raise\dp\MPtextbox\box\MPtextbox}\forcecolorhack\hss}}}
-% \unexpanded\def\MPLIBfigure#1#2%
-% {\setbox\scratchbox\hpack{\externalfigure[#1][\c!mask=#2]}%
-% \clf_mpsetsxsy\wd\scratchbox\ht\scratchbox\zeropoint
-% \vpack to \zeropoint{\vss\hpack to \zeropoint{\scale[\c!sx=\sx,\c!sy=\sy]{\box\scratchbox}\hss}}}
-
\unexpanded\def\MPLIBfigure#1#2%
{\setbox\scratchbox\hpack{\externalfigure[#1][\c!mask=#2]}%
\clf_mpsetsxsy\wd\scratchbox\ht\scratchbox\zeropoint
- \vpack to \zeropoint{\vss\hpack to \zeropoint{\fastsxsy{\sx}{\sy}{\box\scratchbox}\hss}}}
+ \vpack to \zeropoint{\vss\hpack to \zeropoint{\scale[\c!sx=\sx,\c!sy=\sy]{\box\scratchbox}\hss}}}
% horrible (we could inline scale and matrix code):
@@ -207,15 +185,4 @@
\setbox\scratchbox\hpack\bgroup
\unexpanded\def\MPLIBstopgroup{\doMPLIBstopgroup{#1}{#2}{#3}{#4}{#5}{#6}}}
-% For now here ... will be cleaned up:
-
-\newtoks\mptexttoks
-\newbox \mptextbox
-\newtoks\mpoutlinetoks
-\newtoks\mpgraphictexttoks
-
-\mptexttoks {\global\setbox\mptextbox\hbox{\clf_mptexttoks}}
-\mpoutlinetoks {\global\setbox\mptextbox\vbox{\clf_mpoutlinetoks}}
-\mpgraphictexttoks{\global\setbox\mptextbox\vbox{\clf_mpgraphictexttoks}}
-
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkiv/mlib-run.lua b/Master/texmf-dist/tex/context/base/mkiv/mlib-run.lua
index 670c0e16b35..18bc7e4da11 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/mlib-run.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/mlib-run.lua
@@ -6,8 +6,6 @@ if not modules then modules = { } end modules ['mlib-run'] = {
license = "see context related readme files",
}
--- todo mpx :execute -> mlib.execute(mpx,)
-
-- cmyk -> done, native
-- spot -> done, but needs reworking (simpler)
-- multitone ->
@@ -32,6 +30,7 @@ nears zero.</p>
--ldx]]--
local type, tostring, tonumber, next = type, tostring, tonumber, next
+local gsub, match, find = string.gsub, string.match, string.find
local striplines = utilities.strings.striplines
local concat, insert, remove = table.concat, table.insert, table.remove
@@ -71,6 +70,20 @@ end
----- mpbasepath = lpeg.instringchecker(lpeg.append { "/metapost/context/", "/metapost/base/" })
local mpbasepath = lpeg.instringchecker(P("/metapost/") * (P("context") + P("base")) * P("/"))
+-- local function i_finder(askedname,mode,ftype) -- fake message for mpost.map and metafun.mpvi
+-- local foundname = file.is_qualified_path(askedname) and askedname or resolvers.findfile(askedname,ftype)
+-- if not mpbasepath(foundname) then
+-- -- we could use the via file but we don't have a complete io interface yet
+-- local data, found, forced = metapost.checktexts(io.loaddata(foundname) or "")
+-- if found then
+-- local tempname = luatex.registertempfile(foundname,true)
+-- io.savedata(tempname,data)
+-- foundname = tempname
+-- end
+-- end
+-- return foundname
+-- end
+
-- mplib has no real io interface so we have a different mechanism than
-- tex (as soon as we have more control, we will use the normal code)
--
@@ -84,6 +97,21 @@ do
local new_instance = mplib.new
+ local function preprocessed(name)
+ if not mpbasepath(name) then
+ -- we could use the via file but we don't have a complete io interface yet
+ local data, found, forced = metapost.checktexts(io.loaddata(name) or "")
+ if found then
+ local temp = luatex.registertempfile(name,true)
+ io.savedata(temp,data)
+ return temp
+ end
+ end
+ return name
+ end
+
+ mplib.preprocessed = preprocessed -- helper
+
local function validftype(ftype)
if ftype == "" then
-- whatever
@@ -95,13 +123,14 @@ do
end
finders.file = function(specification,name,mode,ftype)
- return resolvers.findfile(name,validftype(ftype))
+ return preprocessed(resolvers.findfile(name,validftype(ftype)))
end
local function i_finder(name,mode,ftype) -- fake message for mpost.map and metafun.mpvi
local specification = url.hashed(name)
local finder = finders[specification.scheme] or finders.file
local found = finder(specification,name,mode,validftype(ftype))
+ -- print(found)
return found
end
@@ -131,9 +160,7 @@ function metapost.reporterror(result)
if not result then
report_metapost("error: no result object returned")
elseif result.status > 0 then
- local t = result.term
- local e = result.error
- local l = result.log
+ local t, e, l = result.term, result.error, result.log
local report = metapost.texerrors and texerrormessage or report_metapost
if t and t ~= "" then
report("mp error: %s",striplines(t))
@@ -166,8 +193,7 @@ local f_preamble = formatters [ [[
local methods = {
double = "double",
scaled = "scaled",
- -- binary = "binary",
- binary = "double",
+ binary = "binary",
decimal = "decimal",
default = "scaled",
}
@@ -182,6 +208,18 @@ end
-- todo: random_seed
+local f_textext = formatters[ [[rawtextext("%s")]] ]
+
+function metapost.maketext(s,mode)
+ if mode and mode == 1 then
+ -- report_metapost("ignoring verbatimtex: %s",s)
+ else
+ -- report_metapost("handling btex ... etex: %s",s)
+ s = gsub(s,'"','"&ditto&"')
+ return f_textext(s)
+ end
+end
+
local seed = nil
function metapost.load(name,method)
@@ -253,103 +291,24 @@ function metapost.unload(mpx)
stoptiming(mplib)
end
--- The flatten hack is needed because the library currently barks on \n\n and the
--- collapse because mp cannot handle snippets due to grouping issues.
-
-local function flatten(source,target)
- for i=1,#source do
- local d = source[i]
- if type(d) == "table" then
- flatten(d,target)
- elseif d and d ~= "" then
- target[#target+1] = d
- end
- end
- return target
-end
-
-local function prepareddata(data,collapse)
- if data and data ~= "" then
- if type(data) == "table" then
- data = flatten(data,{ })
- if collapse then
- data = #data > 1 and concat(data,"\n") or data[1]
- end
- end
- return data
- end
-end
-
-metapost.defaultformat = "metafun"
-metapost.defaultinstance = "metafun"
-metapost.defaultmethod = "default"
+local mpxformats = { }
-local mpxformats = { }
-local nofformats = 0
-local mpxpreambles = { }
-
-function metapost.pushformat(specification,f,m) -- was: instance, name, method
- if type(specification) ~= "table" then
- specification = {
- instance = specification,
- format = f,
- method = m,
- }
- end
- local instance = specification.instance
- local format = specification.format
- local method = specification.method
- local definitions = specification.definitions
- local extensions = specification.extensions
- local preamble = nil
+function metapost.format(instance,name,method)
if not instance or instance == "" then
- instance = metapost.defaultinstance
- specification.instance = instance
- end
- if not format or format == "" then
- format = metapost.defaultformat
- specification.format = format
- end
- if not method or method == "" then
- method = metapost.defaultmethod
- specification.method = method
- end
- if definitions and definitions ~= "" then
- preamble = definitions
- end
- if extensions and extensions ~= "" then
- if preamble then
- preamble = preamble .. "\n" .. extensions
- else
- preamble = extensions
- end
- end
- nofformats = nofformats + 1
- local usedinstance = instance .. ":" .. nofformats
- local mpx = mpxformats[usedinstance]
- local mpp = mpxpreambles[instance] or ""
- if preamble then
- preamble = prepareddata(preamble,true)
- mpp = mpp .. "\n" .. preamble
- mpxpreambles[instance] = mpp
+ instance = "metafun" -- brrr
end
+ name = name or instance
+ local mpx = mpxformats[instance]
if not mpx then
- report_metapost("initializing instance %a using format %a and method %a",usedinstance,format,method)
- mpx = metapost.checkformat(format,method)
- mpxformats[usedinstance] = mpx
- if mpp ~= "" then
- preamble = mpp
- end
- end
- if preamble then
- mpx:execute(preamble)
+ report_metapost("initializing instance %a using format %a",instance,name)
+ mpx = metapost.checkformat(name,method)
+ mpxformats[instance] = mpx
end
- specification.mpx = mpx
return mpx
end
-function metapost.popformat()
- nofformats = nofformats - 1
+function metapost.instance(instance)
+ return mpxformats[instance]
end
function metapost.reset(mpx)
@@ -376,6 +335,10 @@ local mp_tag = 0
-- key/values
+if not metapost.initializescriptrunner then
+ function metapost.initializescriptrunner() end
+end
+
do
local stack, top = { }, nil
@@ -416,47 +379,16 @@ do
end
-
-if not metapost.process then
-
- function metapost.process(specification)
- metapost.run(specification)
- end
-
-end
-
--- run, process, convert and flush all work with a specification with the
--- following (often optional) fields
---
--- mpx string or mp object
--- data string or table of strings
--- flusher table with flush methods
--- askedfig string ("all" etc) or number
--- incontext boolean
--- plugmode boolean
-
-local function makebeginbanner(specification)
- return formatters["%% begin graphic: n=%s\n\n"](metapost.n)
-end
-
-local function makeendbanner(specification)
- return "\n% end graphic\n\n"
-end
-
-function metapost.run(specification)
- local mpx = specification.mpx
- local data = specification.data
- local converted = false
- local result = { }
- local mpxdone = type(mpx) == "string"
- if mpxdone then
- mpx = metapost.pushformat { instance = mpx, format = mpx }
+function metapost.process(mpx, data, trialrun, flusher, multipass, isextrapass, askedfig)
+ local converted, result = false, { }
+ if type(mpx) == "string" then
+ mpx = metapost.format(mpx) -- goody
end
if mpx and data then
local tra = nil
starttiming(metapost)
- metapost.variables = { } -- todo also push / pop
- metapost.pushscriptrunner(mpx)
+ metapost.variables = { }
+ metapost.initializescriptrunner(mpx,trialrun)
if trace_graphics then
tra = mp_tra[mpx]
if not tra then
@@ -468,12 +400,39 @@ function metapost.run(specification)
}
mp_tra[mpx] = tra
end
- local banner = makebeginbanner(specification)
+ local banner = formatters["%% begin graphic: n=%s, trialrun=%s, multipass=%s, isextrapass=%s\n\n"](
+ metapost.n, tostring(trialrun), tostring(multipass), tostring(isextrapass))
tra.inp:write(banner)
tra.log:write(banner)
end
- local data = prepareddata(data,metapost.collapse)
+ if type(data) == "table" then
+ -- this hack is needed because the library currently barks on \n\n
+ -- eventually we can text for "" in the next loop
+ local n = 0
+ local nofsnippets = #data
+ for i=1,nofsnippets do
+ local d = data[i]
+ if d ~= "" then
+ n = n + 1
+ data[n] = d
+ end
+ end
+ for i=nofsnippets,n+1,-1 do
+ data[i] = nil
+ end
+ -- and this one because mp cannot handle snippets due to grouping issues
+ if metapost.collapse then
+ if #data > 1 then
+ data = concat(data,"\n")
+ else
+ data = data[1]
+ end
+ end
+ -- end of hacks
+ end
+
local function process(d,i)
+ -- d = string.gsub(d,"\r","")
if d then
if trace_graphics then
if i then
@@ -485,7 +444,7 @@ function metapost.run(specification)
end
end
starttiming(metapost.exectime)
- result = mpx:execute(d)
+ result = mpx:execute(d) -- some day we wil use a coroutine with textexts
stoptiming(metapost.exectime)
if trace_graphics and result then
local str = result.log or result.error
@@ -502,7 +461,7 @@ function metapost.run(specification)
end
end
if result.fig then
- converted = metapost.convert(specification,result)
+ converted = metapost.convert(result, trialrun, flusher, multipass, askedfig)
end
end
elseif i then
@@ -516,6 +475,7 @@ function metapost.run(specification)
if trace_tracingall then
mpx:execute("tracingall;")
end
+ -- table.insert(data,2,"")
for i=1,#data do
process(data[i],i)
end
@@ -526,25 +486,17 @@ function metapost.run(specification)
process(data)
end
if trace_graphics then
- local banner = makeendbanner(specification)
+ local banner = "\n% end graphic\n\n"
tra.inp:write(banner)
tra.log:write(banner)
end
stoptiming(metapost)
- metapost.popscriptrunner(mpx)
- end
- if mpxdone then
- metapost.popformat()
end
return converted, result
end
-if not metapost.convert then
-
- function metapost.convert()
- report_metapost('warning: no converter set')
- end
-
+function metapost.convert()
+ report_metapost('warning: no converter set')
end
-- handy
@@ -612,7 +564,7 @@ end
-- goodie
-function metapost.quickanddirty(mpxformat,data,incontext)
+function metapost.quickanddirty(mpxformat,data,plugmode)
if not data then
mpxformat = "metafun"
data = mpxformat
@@ -632,14 +584,7 @@ function metapost.quickanddirty(mpxformat,data,incontext)
end
}
local data = formatters["; beginfig(1) ;\n %s\n ; endfig ;"](data)
- metapost.process {
- mpx = mpxformat,
- flusher = flusher,
- askedfig = "all",
- useplugins = incontext,
- incontext = incontext,
- data = { data },
- }
+ metapost.process(mpxformat, { data }, false, flusher, false, false, "all", plugmode)
if code then
return {
bbox = bbox or { 0, 0, 0, 0 },
@@ -674,6 +619,7 @@ do
local width = 0
local height = 0
local depth = 0
+ local mpx = false
local flusher = {
startfigure = function(n,llx,lly,urx,ury)
@@ -691,18 +637,13 @@ do
end
}
- function metapost.simple(format,code) -- even less than metapost.quickcanddirty
- local mpx = metapost.pushformat { } -- takes defaults
+ function metapost.simple(format,code) -- even less than metapost.quickcanddirty
+ local mpx = metapost.format(format or "metafun","metafun")
-- metapost.setoutercolor(2)
- metapost.process {
- mpx = mpx,
- flusher = flusher,
- askedfig = 1,
- useplugins = false,
- incontext = false,
- data = { "beginfig(1);", code, "endfig;" },
- }
- metapost.popformat()
+ metapost.process(mpx,
+ { "beginfig(1);", code, "endfig;" },
+ false, flusher, false, false, 1, true -- last true is plugmode !
+ )
if result then
local stream = concat(result," ")
result = nil -- cleanup
diff --git a/Master/texmf-dist/tex/context/base/mkiv/mtx-context-domotica.tex b/Master/texmf-dist/tex/context/base/mkiv/mtx-context-domotica.tex
index 5a162893be3..83562ee30cf 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/mtx-context-domotica.tex
+++ b/Master/texmf-dist/tex/context/base/mkiv/mtx-context-domotica.tex
@@ -29,9 +29,7 @@
%
% example: context --extra=domotica --openzwave ./config/fibaro/fgms.xml ./open-zwave-master/config/aeotec/zw100.xml
% example: context --extra=domotica --openzwave --pattern="./open-zwave-master/config/**.xml"
-% example: context --extra=domotica --hue hue-pragma-tasks.lua
-% example: context --extra=domotica --hue pragma-youless-gas.lua --year=2018 --month=8
-% example: context --extra=domotica --hue pragma-youless-electricity.lua
+% example: context --extra=domotica --hue hue-pragma-tasks.lua
%
% end help
@@ -163,11 +161,8 @@
\stopmode
-
\startmode[hue]
- \usemodule[youless]
-
\starttext
\setupheadertexts
@@ -176,22 +171,10 @@
local arguments = document.arguments
local files = document.files
- local filename = files[1]
local pattern = arguments.pattern
- local year = arguments.year
- local month = arguments.month
-
- local action = (arguments.tasks and "task")
- or (arguments.graphics and "graphics")
- or (string.find(filename,"tasks") and "tasks")
- or (string.find(filename,"electricity") and "graphics")
- or (string.find(filename,"pulse") and "graphics")
- or (string.find(filename,"gas") and "graphics")
-
- if not filename or filename == "" then
- logs.report("youless","provide filename")
- context("no files given")
- elseif action == "tasks" then
+ local filename = files[1]
+
+ if filename then
context.starttitle { title = "Hue: " .. file.nameonly(filename) }
filename = file.addsuffix(filename,"lua")
if lfs.isfile(filename) then
@@ -200,11 +183,9 @@
context("unknown file %a",filename)
end
context.stoptitle()
- elseif action == "graphics" then
- moduledata.youless.graphics { year = year, month = month, filename = filename }
else
- logs.report("youless","provide --status or --graphics")
- context("no action given")
+ context("no files given")
+ context.stoptitle()
end
\stopluacode
diff --git a/Master/texmf-dist/tex/context/base/mkiv/mtx-context-fonts.tex b/Master/texmf-dist/tex/context/base/mkiv/mtx-context-fonts.tex
deleted file mode 100644
index f1f74c9e9ae..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/mtx-context-fonts.tex
+++ /dev/null
@@ -1,98 +0,0 @@
-%D \module
-%D [ file=mtx-context-fonts,
-%D version=2018.10.10,
-%D title=\CONTEXT\ Extra Trickry,
-%D subtitle=Show Font Info,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% begin help
-%
-% usage: context --extra=fonts [options] name
-%
-% --topspace=dimension : distance above first line
-% --backspace=dimension : distance before left margin
-% --paperformat=spec : paper*print or paperxprint
-% --compact : small margins, 8pt font
-% --verycompact : small margins, 7pt font
-%
-% example: context --extra=fonts --name=dejavu-serif
-% end help
-
-\input mtx-context-common.tex
-
-\usemodule[fonts-charts]
-\usemodule[fonts-tables]
-
-\input mtx-context-common.tex
-
-\doifdocumentargument {compact} {
- \setdocumentargument{topspace} {5mm}
- \setdocumentargument{backspace}{5mm}
- \setdocumentargument{bodyfont} {8pt}
-}
-
-\doifdocumentargument {verycompact} {
- \setdocumentargument{topspace} {5mm}
- \setdocumentargument{backspace}{5mm}
- \setdocumentargument{bodyfont} {7pt}
-}
-
-\setupbodyfont
- [dejavu,9pt,tt,\getdocumentargument{bodyfont}] % dejavu is more complete
-
-\setuplayout
- [header=0cm,
- footer=1.5cm,
- topspace=\getdocumentargumentdefault{topspace}{1.5cm},
- backspace=\getdocumentargumentdefault{backspace}{1.5cm},
- width=middle,
- height=middle]
-
-\setuppapersize
- [\getdocumentargument{paperformat_paper}]
- [\getdocumentargument{paperformat_print}]
-
-\starttexdefinition unexpanded showfontdetails [#1]
- \starttitle[title=#1]
- \startsubject[title=Properties]
- \showfontproperties[#1]
- \stopsubject
- \startsubject[title=Parameters]
- \showfontparameters[#1]
- \stopsubject
- \startsubject[title=Positionings]
- \showfontpositionings[#1]
- \stopsubject
- \startsubject[title=Substitutions]
- \showfontsubstitutions[#1]
- \stopsubject
- \startsubject[title=Unicodevariants]
- \showfontunicodevariants[#1]
- \stopsubject
- \startsubject[title=Ligatures]
- \showfontligatures[#1]
- \stopsubject
- \showfontchart[#1,page=yes]
- \stoptitle
-\stoptexdefinition
-
-\starttext
-
- \startluacode
- local files = document.files
- if #files > 0 then
- for i=1,#files do
- context.showfontdetails { name = files[i] .. "*default" }
- end
- else
- context("No font name(s) given.")
- end
- \stopluacode
-
-\stoptext
diff --git a/Master/texmf-dist/tex/context/base/mkiv/mtx-context-listing.tex b/Master/texmf-dist/tex/context/base/mkiv/mtx-context-listing.tex
index 1053e80b9c3..f7c3d28680c 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/mtx-context-listing.tex
+++ b/Master/texmf-dist/tex/context/base/mkiv/mtx-context-listing.tex
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-%D This is a \TEXEXEC\ feature that has been moved to \MKIV.
+%D This is a \TEXEXEC\ features that has been moved to \MKIV.
% begin help
%
@@ -44,7 +44,7 @@
}
\setupbodyfont
- [dejavu,9pt,tt,\getdocumentargument{bodyfont}] % dejavu is more complete
+ [dejavu,11pt,tt,\getdocumentargument{bodyfont}] % dejavu is more complete
\setuptyping
[lines=yes]
diff --git a/Master/texmf-dist/tex/context/base/mkiv/mtx-context-xml.tex b/Master/texmf-dist/tex/context/base/mkiv/mtx-context-xml.tex
index 875f02da696..f8bfeef3a6e 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/mtx-context-xml.tex
+++ b/Master/texmf-dist/tex/context/base/mkiv/mtx-context-xml.tex
@@ -76,11 +76,6 @@
if template then
moduledata.xml.analyzers.allsetups(files,type(template) == "string" and template or nil)
end
- context.page()
- for i=1,#files do
- context.type(files[i])
- context.par()
- end
else
context("no action given")
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/mult-aux.mkiv b/Master/texmf-dist/tex/context/base/mkiv/mult-aux.mkiv
index 5e7de227096..a1aecc35464 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/mult-aux.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/mult-aux.mkiv
@@ -180,10 +180,6 @@
\def\mult_check_for_assignment_indeed#1=#2#3\_end_
{\if#2@\assignmentfalse\else\assignmenttrue\fi}
-\def\mult_check_for_assignment_indeed_begin_#1=#2#3\_end_
- {\if#2@}
-
-
\def\mult_check_for_assignment#1%
{\expandafter\mult_check_for_assignment_indeed\detokenize{#1}=@@\_end_}
@@ -227,8 +223,7 @@
{\ifx#2\relax\let#2\empty\fi % it is hardly faster but produces less expansion tracing
\def#3##1{\csname\ifcsname#1#2:##1\endcsname#1#2:##1\else\expandafter#5\csname#1#2:\s!parent\endcsname{##1}\fi\endcsname}%
\def#4##1##2{\ifcsname##1:##2\endcsname##1:##2\else\expandafter#5\csname##1:\s!parent\endcsname{##2}\fi}%
- %\def#5##1##2{\ifx##1\relax\??empty\else#4{##1}{##2}\fi}% is {} needed around ##1 ?
- \def#5##1##2{\ifx##1\relax\??empty\else#4##1{##2}\fi}% is {} needed around ##1 ?
+ \def#5##1##2{\ifx##1\relax\??empty\else#4{##1}{##2}\fi}% is {} needed around ##1 ?
\def#6##1##2{\csname\ifcsname#1##1:##2\endcsname#1##1:##2\else\expandafter#5\csname#1##1:\s!parent\endcsname{##2}\fi\endcsname}%
\def#7##1{\detokenize\expandafter\expandafter\expandafter{\csname#1#2:##1\endcsname}}% always root, no backtrack
\def#8##1{\begincsname#1#2:##1\endcsname}}
@@ -260,8 +255,7 @@
{\ifx#2\relax\let#2\empty\fi
\def#3##1{#1#4{#1#2}{##1}:}% leading #1 was missing .. is this one used?
\def#4##1##2{\ifcsname##1:##2\endcsname##1\else\expandafter#5\csname##1:\s!parent\endcsname{##2}\fi}%
- %\def#5##1##2{\ifx##1\relax\else#4{##1}{##2}\fi}%
- \def#5##1##2{\ifx##1\relax\else#4##1{##2}\fi}%
+ \def#5##1##2{\ifx##1\relax\else#4{##1}{##2}\fi}%
\def#6{#1#2:}%
\def#7##1{#1##1:}%
\def#8{\ifx#2\empty\else\ifcsname#1#2:\s!parent\endcsname\else\expandafter\let\csname#1#2:\s!parent\endcsname#1\fi\fi}%
@@ -395,43 +389,6 @@
\the#7%
\let#4#9}}
-% \unexpanded\def\mult_interfaces_install_define_handler#1#2#3#4#5#6#7#8#9% why is \expanded still needed in clones
-% {\ifx#4\relax\let#4\empty\fi % see \defineregister
-% \unexpanded\def#2{\dotripleempty#5}%
-% \newtoks#6%
-% \newtoks#7%
-% \unexpanded\def#5[##1][##2][##3]% [child][parent][settings] | [child][settings] | [child][parent] | [child]
-% {\let#9#4%
-% \edef#4{##1}%
-% \ifthirdargument
-% \the#6% predefine
-% \edef#8{##2}%
-% \mult_check_for_parent{#1}{#3}#4#8%
-% \expandafter\edef\csname#1#4:\s!chain\endcsname{\mult_interfaces_chain#1{##2}##1}%
-% \expandafter\edef\csname#1#4:\s!parent\endcsname{#1##2}%
-% \mult_interfaces_get_parameters{#1#4:}[##3]%
-% \else\ifsecondargument
-% \the#6% predefine
-% \ifcondition\expandafter\mult_check_for_assignment_indeed_begin_\detokenize{##2}=@@\_end_
-% \edef#8{##2}%
-% \mult_check_for_parent{#1}{#3}#4#8%
-% \expandafter\edef\csname#1#4:\s!chain\endcsname{\mult_interfaces_chain#1{##2}##1}%
-% \expandafter\edef\csname#1#4:\s!parent\endcsname{#1##2}%
-% \else
-% \let#8\empty
-% \expandafter\edef\csname#1#4:\s!chain\endcsname{##1}%
-% \expandafter\edef\csname#1#4:\s!parent\endcsname{#3}%
-% \mult_interfaces_get_parameters{#1#4:}[##2]%
-% \fi
-% \else
-% \the#6% predefine
-% \let#8\empty
-% \expandafter\edef\csname#1#4:\s!chain\endcsname{##1}%
-% \expandafter\edef\csname#1#4:\s!parent\endcsname{#3}%
-% \fi\fi
-% \the#7%
-% \let#4#9}}
-
\unexpanded\def\installdefinehandler#1#2#3%
{\normalexpanded
{\mult_interfaces_install_define_handler
@@ -509,7 +466,7 @@
\let#3#7%
\else\iffirstargument
% \mult_check_for_assignment{##1}%
- \expandafter\mult_check_for_assignment_indeed\detokenize{##1}=@@\_end_
+ \expandafter\mult_check_for_assignment_indeed\detokenize{##1}=@@\_end_
\ifassignment
% \setuplayout[key=value]
\let#7#3%
@@ -539,54 +496,6 @@
#2\zerocount % mode is always zero at the end
\the#9}}
-% \unexpanded\def\mult_interfaces_install_switch_setup_handler_b#1#2#3#4#5#6#7#8#9%
-% {\newtoks#5%
-% \newconstant#2%
-% \newtoks#8%
-% \newtoks#9%
-% \ifx#6\relax\let#6\empty\fi
-% \unexpanded\def#4[##1][##2]% maybe helper
-% {\ifsecondargument % no commalist here
-% % \setuplayout[whatever][key=value]
-% \let#7#3%
-% \let#6#3%
-% \edef#3{##1}%
-% #2\doingrootsetupnamed
-% \mult_interfaces_get_parameters{#1#3:}[##2]%
-% \the#5%
-% \ifx#3#6\the#8\fi % only switchsetups if previous == current
-% \let#3#7%
-% \else\iffirstargument
-% % \mult_check_for_assignment{##1}%
-% \ifcondition\expandafter\mult_check_for_assignment_indeed_begin_\detokenize{##1}=@@\_end_
-% % \setuplayout[whatever]
-% \let#6#3% % previous becomes current
-% \edef#3{##1}% this will catch reset so one needs to test for it
-% #2\doingrootsetnamed
-% \the#5% % we can check for previous vs current
-% \the#8% switchsetups
-% \else
-% % \setuplayout[key=value]
-% \let#7#3%
-% \let#6#3%
-% \let#3\empty
-% #2\doingrootsetuproot
-% \mult_interfaces_get_parameters{#1:}[##1]%
-% \the#5%
-% \the#8% switchsetups
-% \let#3#7%
-% \fi
-% \else
-% % \setuplayout
-% \let#6#3% % previous becomes current
-% \let#3\empty % current becomes empty
-% #2\doingrootsetroot
-% \the#5%
-% \the#8% switchsetups
-% \fi\fi
-% #2\zerocount % mode is always zero at the end
-% \the#9}}
-
\unexpanded\def\installswitchsetuphandler#1#2%
{\normalexpanded
{\mult_interfaces_install_switch_setup_handler_a
@@ -1057,176 +966,176 @@
\def\s!double{double}
\def\s!triple{triple}
-% \unexpanded\def\syst_helpers_double_empty#1#2#3%
-% {\syst_helpers_argument_reset
-% \doifelsenextoptional
-% {\syst_helpers_double_empty_one_yes_mult#2#3}%
-% {\syst_helpers_double_empty_one_nop_mult#1}}
-%
-% \def\syst_helpers_double_empty_one_yes_mult#1#2[#3]%
-% {\firstargumenttrue
-% \doifelsenextoptional
-% {\secondargumenttrue#2[{#3}]}%
-% {\syst_helpers_double_empty_two_nop_mult#1{#3}}}
-%
-% \def\syst_helpers_double_empty_one_nop_mult% #1%
-% {\firstargumentfalse
-% \secondargumentfalse
-% }% #1}
-%
-% \def\syst_helpers_double_empty_two_nop_mult
-% {\secondargumentfalse
-% \if_next_blank_space_token
-% \expandafter\syst_helpers_double_empty_one_spaced_mult
-% \else
-% \expandafter\syst_helpers_double_empty_one_normal_mult
-% \fi}
-%
-% \def\syst_helpers_double_empty_one_spaced_mult#1#2{#1[{#2}] }
-% \def\syst_helpers_double_empty_one_normal_mult#1#2{#1[{#2}]}
-%
-% \unexpanded\def\mult_interfaces_install_setup_handler#1#2#3#4#5#6#7#8%
-% {\ifx#3\relax\let#3\empty\fi
-% \unexpanded\def#5{\mult_interfaces_get_parameters{#1#3:}}% no every ! don't change it
-% \newtoks#4%
-% \newtoks#7%
-% \edef\m_mult_interface_setup{\csstring#2_}%
-% \unexpanded\edef#2{\syst_helpers_double_empty
-% \csname\m_mult_interface_setup\s!simple\endcsname
-% \csname\m_mult_interface_setup\s!single\endcsname
-% \csname\m_mult_interface_setup\s!double\endcsname}%
-% \unexpanded\expandafter\def\csname\m_mult_interface_setup\s!double\endcsname[##1][##2]%
-% {\let#6#3%
-% \def#8####1% we will have a simple one as well
-% {\edef#3{####1}%
-% \mult_interfaces_get_parameters{#1#3:}[##2]%
-% \the#4}%
-% \processcommalist[##1]#8%
-% \let#3#6%
-% \the#7}%
-% \unexpanded\expandafter\def\csname\m_mult_interface_setup\s!single\endcsname[##1]%
-% {\let#6#3%
-% \let#3\empty
-% \mult_interfaces_get_parameters{#1:}[##1]%
-% \the#4%
-% \let#3#6%
-% \the#7}%
-% \unexpanded\expandafter\def\csname\m_mult_interface_setup\s!simple\endcsname%
-% {\let#6#3%
-% \let#3\empty
-% \the#4%
-% \let#3#6%
-% \the#7}}
-
-% \unexpanded\def\installsetuphandler#1#2%
-% {\normalexpanded
-% {\mult_interfaces_install_setup_handler
-% {\noexpand#1}% \??aa
-% \expandafter\noexpand\csname setup#2\endcsname
-% \expandafter\noexpand\csname current#2\endcsname
-% \expandafter\noexpand\csname everysetup#2\endcsname
-% \expandafter\noexpand\csname setupcurrent#2\endcsname
-% \expandafter\noexpand\csname saved_setup_current#2\endcsname
-% \expandafter\noexpand\csname everysetup#2root\endcsname
-% \expandafter\noexpand\csname nested_setup_current#2\endcsname}}
-%
-% \unexpanded\def\syst_helpers_triple_empty#1#2#3#4%
-% {\syst_helpers_argument_reset
-% \doifelsenextoptional
-% {\syst_helpers_triple_empty_one_yes_mult#2#3#4}%
-% {\syst_helpers_triple_empty_one_nop_mult#1}}
-%
-% \def\syst_helpers_triple_empty_one_yes_mult#1#2#3[#4]%
-% {\firstargumenttrue
-% \doifelsenextoptional
-% {\syst_helpers_triple_empty_two_yes_mult#2#3{#4}}%
-% {\syst_helpers_triple_empty_two_nop_mult#1{#4}}}
-%
-% \def\syst_helpers_triple_empty_two_yes_mult#1#2#3[#4]%
-% {\secondargumenttrue
-% \doifelsenextoptional
-% {\thirdargumenttrue#2[{#3}][{#4}]}%
-% {\syst_helpers_triple_empty_three_nop_mult#1{#3}{#4}}}
-%
-% \def\syst_helpers_triple_empty_one_nop_mult % #1%
-% {\firstargumentfalse
-% \secondargumentfalse
-% \thirdargumentfalse
-% } % #1
-%
-% \def\syst_helpers_triple_empty_two_nop_mult
-% {\secondargumentfalse
-% \thirdargumentfalse
-% \if_next_blank_space_token
-% \expandafter\syst_helpers_triple_empty_two_spaced_mult
-% \else
-% \expandafter\syst_helpers_triple_empty_two_normal_mult
-% \fi}
-%
-% \def\syst_helpers_triple_empty_three_nop_mult
-% {\thirdargumentfalse
-% \if_next_blank_space_token
-% \expandafter\syst_helpers_triple_empty_three_spaced_mult
-% \else
-% \expandafter\syst_helpers_triple_empty_three_normal_mult
-% \fi}
-%
-% \def\syst_helpers_triple_empty_two_spaced_mult #1#2{#1[{#2}] }
-% \def\syst_helpers_triple_empty_two_normal_mult #1#2{#1[{#2}]}
-% \def\syst_helpers_triple_empty_three_spaced_mult#1#2#3{#1[{#2}][{#3}] }
-% \def\syst_helpers_triple_empty_three_normal_mult#1#2#3{#1[{#2}][{#3}]}
-%
-% \unexpanded\def\mult_interfaces_install_auto_setup_handler#1#2#3#4#5#6#7#8%
-% {\ifx#3\relax\let#3\empty\fi
-% \unexpanded\def#5{\mult_interfaces_get_parameters{#1#3:}}%
-% \newtoks#4%
-% \edef\m_mult_interface_setup{\csstring#2_}%
-% \unexpanded\edef#2{\syst_helpers_triple_empty
-% \csname\m_mult_interface_setup\s!simple\endcsname
-% \csname\m_mult_interface_setup\s!single\endcsname
-% \csname\m_mult_interface_setup\s!double\endcsname
-% \csname\m_mult_interface_setup\s!triple\endcsname}%
-% \unexpanded\expandafter\def\csname\m_mult_interface_setup\s!triple\endcsname[##1][##2][##3]%
-% {\let#7#3%
-% \def#8####1%
-% {\edef#3{####1}%
-% \expandafter\def\csname#1#3:\s!parent\endcsname{#1##2}%
-% \mult_interfaces_get_parameters{#1#3:}[##3]% always sets parent
-% \the#4}%
-% \processcommalist[##1]#8%
-% \let#3#7}%
-% \unexpanded\expandafter\def\csname\m_mult_interface_setup\s!double\endcsname[##1][##2]%
-% {\let#7#3%
-% \def#8####1%
-% {\edef#3{####1}%
-% #6% checks parent and sets if needed
-% \mult_interfaces_get_parameters{#1#3:}[##2]%
-% \the#4}%
-% \processcommalist[##1]#8%
-% \let#3#7}%
-% \unexpanded\expandafter\def\csname\m_mult_interface_setup\s!single\endcsname[##1]%
-% {\let#7#3%
-% \let#3\empty
-% \mult_interfaces_get_parameters{#1:}[##1]%
-% \the#4%
-% \let#3#7}%
-% \unexpanded\expandafter\def\csname\m_mult_interface_setup\s!simple\endcsname%
-% {\let#7#3%
-% \let#3\empty
-% \the#4%
-% \let#3#7}}
-%
-% \unexpanded\def\installautosetuphandler#1#2%
-% {\normalexpanded
-% {\mult_interfaces_install_auto_setup_handler
-% {\noexpand#1}% \??aa
-% \expandafter\noexpand\csname setup#2\endcsname
-% \expandafter\noexpand\csname current#2\endcsname
-% \expandafter\noexpand\csname everysetup#2\endcsname
-% \expandafter\noexpand\csname setupcurrent#2\endcsname
-% \expandafter\noexpand\csname check#2parent\endcsname
-% \expandafter\noexpand\csname saved_setup_current#2\endcsname
-% \expandafter\noexpand\csname nested_setup_current#2\endcsname}}
+\unexpanded\def\syst_helpers_double_empty#1#2#3%
+ {\syst_helpers_argument_reset
+ \doifelsenextoptional
+ {\syst_helpers_double_empty_one_yes_mult#2#3}%
+ {\syst_helpers_double_empty_one_nop_mult#1}}
+
+\def\syst_helpers_double_empty_one_yes_mult#1#2[#3]%
+ {\firstargumenttrue
+ \doifelsenextoptional
+ {\secondargumenttrue#2[{#3}]}%
+ {\syst_helpers_double_empty_two_nop_mult#1{#3}}}
+
+\def\syst_helpers_double_empty_one_nop_mult% #1%
+ {\firstargumentfalse
+ \secondargumentfalse
+ }% #1}
+
+\def\syst_helpers_double_empty_two_nop_mult
+ {\secondargumentfalse
+ \if_next_blank_space_token
+ \expandafter\syst_helpers_double_empty_one_spaced_mult
+ \else
+ \expandafter\syst_helpers_double_empty_one_normal_mult
+ \fi}
+
+\def\syst_helpers_double_empty_one_spaced_mult#1#2{#1[{#2}] }
+\def\syst_helpers_double_empty_one_normal_mult#1#2{#1[{#2}]}
+
+\unexpanded\def\mult_interfaces_install_setup_handler#1#2#3#4#5#6#7#8%
+ {\ifx#3\relax\let#3\empty\fi
+ \unexpanded\def#5{\mult_interfaces_get_parameters{#1#3:}}% no every ! don't change it
+ \newtoks#4%
+ \newtoks#7%
+ \edef\m_mult_interface_setup{\csstring#2_}%
+ \unexpanded\edef#2{\syst_helpers_double_empty
+ \csname\m_mult_interface_setup\s!simple\endcsname
+ \csname\m_mult_interface_setup\s!single\endcsname
+ \csname\m_mult_interface_setup\s!double\endcsname}%
+ \unexpanded\expandafter\def\csname\m_mult_interface_setup\s!double\endcsname[##1][##2]%
+ {\let#6#3%
+ \def#8####1% we will have a simple one as well
+ {\edef#3{####1}%
+ \mult_interfaces_get_parameters{#1#3:}[##2]%
+ \the#4}%
+ \processcommalist[##1]#8%
+ \let#3#6%
+ \the#7}%
+ \unexpanded\expandafter\def\csname\m_mult_interface_setup\s!single\endcsname[##1]%
+ {\let#6#3%
+ \let#3\empty
+ \mult_interfaces_get_parameters{#1:}[##1]%
+ \the#4%
+ \let#3#6%
+ \the#7}%
+ \unexpanded\expandafter\def\csname\m_mult_interface_setup\s!simple\endcsname%
+ {\let#6#3%
+ \let#3\empty
+ \the#4%
+ \let#3#6%
+ \the#7}}
+
+\unexpanded\def\installsetuphandler#1#2%
+ {\normalexpanded
+ {\mult_interfaces_install_setup_handler
+ {\noexpand#1}% \??aa
+ \expandafter\noexpand\csname setup#2\endcsname
+ \expandafter\noexpand\csname current#2\endcsname
+ \expandafter\noexpand\csname everysetup#2\endcsname
+ \expandafter\noexpand\csname setupcurrent#2\endcsname
+ \expandafter\noexpand\csname saved_setup_current#2\endcsname
+ \expandafter\noexpand\csname everysetup#2root\endcsname
+ \expandafter\noexpand\csname nested_setup_current#2\endcsname}}
+
+\unexpanded\def\syst_helpers_triple_empty#1#2#3#4%
+ {\syst_helpers_argument_reset
+ \doifelsenextoptional
+ {\syst_helpers_triple_empty_one_yes_mult#2#3#4}%
+ {\syst_helpers_triple_empty_one_nop_mult#1}}
+
+\def\syst_helpers_triple_empty_one_yes_mult#1#2#3[#4]%
+ {\firstargumenttrue
+ \doifelsenextoptional
+ {\syst_helpers_triple_empty_two_yes_mult#2#3{#4}}%
+ {\syst_helpers_triple_empty_two_nop_mult#1{#4}}}
+
+\def\syst_helpers_triple_empty_two_yes_mult#1#2#3[#4]%
+ {\secondargumenttrue
+ \doifelsenextoptional
+ {\thirdargumenttrue#2[{#3}][{#4}]}%
+ {\syst_helpers_triple_empty_three_nop_mult#1{#3}{#4}}}
+
+\def\syst_helpers_triple_empty_one_nop_mult % #1%
+ {\firstargumentfalse
+ \secondargumentfalse
+ \thirdargumentfalse
+ } % #1
+
+\def\syst_helpers_triple_empty_two_nop_mult
+ {\secondargumentfalse
+ \thirdargumentfalse
+ \if_next_blank_space_token
+ \expandafter\syst_helpers_triple_empty_two_spaced_mult
+ \else
+ \expandafter\syst_helpers_triple_empty_two_normal_mult
+ \fi}
+
+\def\syst_helpers_triple_empty_three_nop_mult
+ {\thirdargumentfalse
+ \if_next_blank_space_token
+ \expandafter\syst_helpers_triple_empty_three_spaced_mult
+ \else
+ \expandafter\syst_helpers_triple_empty_three_normal_mult
+ \fi}
+
+\def\syst_helpers_triple_empty_two_spaced_mult #1#2{#1[{#2}] }
+\def\syst_helpers_triple_empty_two_normal_mult #1#2{#1[{#2}]}
+\def\syst_helpers_triple_empty_three_spaced_mult#1#2#3{#1[{#2}][{#3}] }
+\def\syst_helpers_triple_empty_three_normal_mult#1#2#3{#1[{#2}][{#3}]}
+
+\unexpanded\def\mult_interfaces_install_auto_setup_handler#1#2#3#4#5#6#7#8%
+ {\ifx#3\relax\let#3\empty\fi
+ \unexpanded\def#5{\mult_interfaces_get_parameters{#1#3:}}%
+ \newtoks#4%
+ \edef\m_mult_interface_setup{\csstring#2_}%
+ \unexpanded\edef#2{\syst_helpers_triple_empty
+ \csname\m_mult_interface_setup\s!simple\endcsname
+ \csname\m_mult_interface_setup\s!single\endcsname
+ \csname\m_mult_interface_setup\s!double\endcsname
+ \csname\m_mult_interface_setup\s!triple\endcsname}%
+ \unexpanded\expandafter\def\csname\m_mult_interface_setup\s!triple\endcsname[##1][##2][##3]%
+ {\let#7#3%
+ \def#8####1%
+ {\edef#3{####1}%
+ \expandafter\def\csname#1#3:\s!parent\endcsname{#1##2}%
+ \mult_interfaces_get_parameters{#1#3:}[##3]% always sets parent
+ \the#4}%
+ \processcommalist[##1]#8%
+ \let#3#7}%
+ \unexpanded\expandafter\def\csname\m_mult_interface_setup\s!double\endcsname[##1][##2]%
+ {\let#7#3%
+ \def#8####1%
+ {\edef#3{####1}%
+ #6% checks parent and sets if needed
+ \mult_interfaces_get_parameters{#1#3:}[##2]%
+ \the#4}%
+ \processcommalist[##1]#8%
+ \let#3#7}%
+ \unexpanded\expandafter\def\csname\m_mult_interface_setup\s!single\endcsname[##1]%
+ {\let#7#3%
+ \let#3\empty
+ \mult_interfaces_get_parameters{#1:}[##1]%
+ \the#4%
+ \let#3#7}%
+ \unexpanded\expandafter\def\csname\m_mult_interface_setup\s!simple\endcsname%
+ {\let#7#3%
+ \let#3\empty
+ \the#4%
+ \let#3#7}}
+
+\unexpanded\def\installautosetuphandler#1#2%
+ {\normalexpanded
+ {\mult_interfaces_install_auto_setup_handler
+ {\noexpand#1}% \??aa
+ \expandafter\noexpand\csname setup#2\endcsname
+ \expandafter\noexpand\csname current#2\endcsname
+ \expandafter\noexpand\csname everysetup#2\endcsname
+ \expandafter\noexpand\csname setupcurrent#2\endcsname
+ \expandafter\noexpand\csname check#2parent\endcsname
+ \expandafter\noexpand\csname saved_setup_current#2\endcsname
+ \expandafter\noexpand\csname nested_setup_current#2\endcsname}}
% okay, we can also get rid of the #9, but this code looks pretty bad, while the previous is
% still okay given that we can also use #6 as setup (so in fact we can save some cs again and
@@ -1288,11 +1197,9 @@
{\dodoubleempty#7}%
\unexpanded\def#7[##1][##2]%
{\ifsecondargument
- %#3\c_mult_set\expandafter{\the\c_mult_set#9[##1][##2]}%
- #3\toksapp\c_mult_set{#9[##1][##2]}%
+ #3\c_mult_set\expandafter{\the\c_mult_set#9[##1][##2]}%
\else\iffirstargument
- %#3\c_mult_set\expandafter{\the\c_mult_set#8[##1]}%
- #3\toksapp\c_mult_set{#8[##1]}%
+ #3\c_mult_set\expandafter{\the\c_mult_set#8[##1]}%
\fi\fi}}
\unexpanded\def\installdefinitionsetmember#1#2#3#4%
@@ -1323,30 +1230,9 @@
\expandafter\noexpand\csname current#2parent\endcsname
\expandafter\noexpand\csname inject#2parent\endcsname}}
-% Faster but not used that much to make a dent in performance. But, because it's
-% cleaner anyway and also gives less tracing, we apply it a few times.
-
-\unexpanded\def\syst_helpers_install_macro_stack#1#2#3%
- {\xdef\m_syst_helpers_push_macro{\csstring#1}%
- \expandafter\newcount\csname#3\m_syst_helpers_push_macro\endcsname
- \expandafter\edef\csname push_macro_\m_syst_helpers_push_macro\endcsname
- {\noexpand\expandafter\glet
- \noexpand\csname\m_syst_helpers_push_macro\noexpand\the\csname#3\m_syst_helpers_push_macro\endcsname\endcsname
- \noexpand#1%
- \global\advance\csname#3\m_syst_helpers_push_macro\endcsname\plusone}%
- \expandafter\edef\csname pop_macro_\m_syst_helpers_push_macro\endcsname
- {\global\advance\csname#3\m_syst_helpers_push_macro\endcsname\minusone
- \noexpand\expandafter#2%
- \noexpand\expandafter\noexpand#1%
- \noexpand\csname\m_syst_helpers_push_macro\noexpand\the\csname#3\m_syst_helpers_push_macro\endcsname\endcsname}}
-
-\unexpanded\def\installmacrostack #1{\syst_helpers_install_macro_stack#1\let \??localpushedmacro }
-\unexpanded\def\installglobalmacrostack#1{\syst_helpers_install_macro_stack#1\glet\??globalpushedmacro}
-
\protect
-% \unprotect
-%
+%\unprotect
% \installcorenamespace {test} \installcommandhandler \??test {test} \??test
% \unexpanded\def\TestMeA[#1]%
% {\edef\currenttest{#1}
@@ -1361,92 +1247,12 @@
% \unexpanded\def\TestMeD[#1]%
% {\edef\currenttest{#1}
% \doubleexpandafter\ifx\testparameter\c!before\empty \relax \else \relax \fi}
+% \protect
%
-% \protect
-%
-% \starttext
-% \definetest[foo] \definetest[bar][foo] \setuptest[bar][before=indeed]
-% \resettimer \dorecurse{100000}{\TestMeA[bar]} A:\elapsedtime \par % 0.502
-% \resettimer \dorecurse{100000}{\TestMeB[bar]} B:\elapsedtime \par % 0.530
-% \resettimer \dorecurse{100000}{\TestMeC[bar]} C:\elapsedtime \par % 0.487
-% \resettimer \dorecurse{100000}{\TestMeD[bar]} D:\elapsedtime \par % 0.493
-% \stoptext
-
-% There is no real demand for this ... even if this is twice as fast we only gain
-% a few milliseconds:
-%
-% \unexpanded\def\foo#1{[foo:#1]}
-%
-% \installcommalistprocessor {foo} \foo
-% \installcommalistprocessorcommand \processfoolist {foo} \foo
-%
-% \commalistprocessor{foo}[a,b,c,d]
-% \processfoolist [a, b, c, d]
-%
-% \testfeatureonce{30000}{} \elapsedtime\par % 0.01 -> 0.00
-% \testfeatureonce{30000}{\processfoolist [fixed,middle]} \elapsedtime\par % 0.07 -> 0.06
-% \testfeatureonce{30000}{\commalistprocessor{foo}[fixed,middle]} \elapsedtime\par % 0.09 -> 0.08
-% \testfeatureonce{30000}{\processcommalist [fixed,middle]\foo} \elapsedtime\par % 0.13 -> 0.12
-%
-% For instance the luatex manual only has some 3000 calls. But I keep this around as one
-% never knows when we might need it.
-%
-% \installcorenamespace{commalistprocessor}
-% \installcorenamespace{commalistprocessorcheck}
-% \installcorenamespace{commalistprocessorwrap}
-% \installcorenamespace{commalistprocessorfirst}
-% \installcorenamespace{commalistprocessorcheckspace}
-% \installcorenamespace{commalistprocessorcheckfinish}
-% \installcorenamespace{commalistprocessoraction}
-% \installcorenamespace{commalistprocessorgobblespace}
-%
-% \unexpanded\def\installcommalistprocessor#1#2% 7 macro names overhead
-% {\let\nexttoken\relax
-% %
-% \unexpanded\expandafter\edef\csname\??commalistprocessor#1\endcsname[%
-% {\futurelet\nexttoken\csname\??commalistprocessorcheck#1\endcsname}%
-% %
-% \unexpanded\expandafter\edef\csname\??commalistprocessorcheck#1\endcsname
-% {\noexpand\ifx\nexttoken]%
-% \noexpand\expandafter\noexpand\gobblethreearguments
-% \noexpand\else
-% \noexpand\expandafter\csname\??commalistprocessorwrap#1\endcsname
-% \noexpand\fi
-% \relax}% this one preserved the next {}
-% %
-% \unexpanded\expandafter\edef\csname\??commalistprocessorwrap#1\endcsname##1]%
-% {\csname\??commalistprocessorfirst#1\endcsname##1,]\relax}%
-% %
-% \unexpanded\expandafter\edef\csname\??commalistprocessorfirst#1\endcsname##1% picks up \relax
-% {\csname\??commalistprocessorcheckspace#1\endcsname}%
-% %
-% \unexpanded\expandafter\edef\csname\??commalistprocessorcheckspace#1\endcsname
-% {\noexpand\ifx\nexttoken\noexpand\blankspace
-% \noexpand\expandafter\csname\??commalistprocessorgobblespace#1\endcsname
-% \noexpand\else
-% \noexpand\expandafter\csname\??commalistprocessorcheckfinish#1\endcsname
-% \noexpand\fi}%
-% %
-% \unexpanded\expandafter\edef\csname\??commalistprocessorcheckfinish#1\endcsname
-% {\noexpand\ifx\nexttoken]%
-% \noexpand\expandafter\noexpand\gobbleoneargument
-% \noexpand\else
-% \noexpand\expandafter\csname\??commalistprocessoraction#1\endcsname
-% \noexpand\fi}%
-% %
-% \unexpanded\expandafter\edef\csname\??commalistprocessoraction#1\endcsname##1,%
-% {\noexpand#2{##1}%
-% \futurelet\nexttoken\csname\??commalistprocessorcheckspace#1\endcsname}%
-% %
-% \let\next\:%
-% \unexpanded\edef \:{\csname\??commalistprocessorgobblespace#1\endcsname}%
-% \unexpanded\expandafter\edef\: {\futurelet\nexttoken\csname\??commalistprocessorcheckspace#1\endcsname}%
-% \let\:\next
-% %
-% }
-%
-% \unexpanded\def\installcommalistprocessorcommand#1#2#3%
-% {\installcommalistprocessor{#2}{#3}%
-% \expandafter\let\expandafter#1\csname\??commalistprocessor#2\endcsname}
-%
-% \unexpanded\def\commalistprocessor#1{\csname\??commalistprocessor#1\endcsname}
+% \starttext
+% \definetest[foo] \definetest[bar][foo] \setuptest[bar][before=indeed]
+% \resettimer \dorecurse{100000}{\TestMeA[bar]} A:\elapsedtime \par % 0.502
+% \resettimer \dorecurse{100000}{\TestMeB[bar]} B:\elapsedtime \par % 0.530
+% \resettimer \dorecurse{100000}{\TestMeC[bar]} C:\elapsedtime \par % 0.487
+% \resettimer \dorecurse{100000}{\TestMeD[bar]} D:\elapsedtime \par % 0.493
+% \stoptext
diff --git a/Master/texmf-dist/tex/context/base/mkiv/mult-def.lua b/Master/texmf-dist/tex/context/base/mkiv/mult-def.lua
index e03a82a765f..925c22cd223 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/mult-def.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/mult-def.lua
@@ -7503,10 +7503,6 @@ return {
["pe"]="ØŠØ§ØąÛŒØŪ",
["ro"]="data",
},
- ["time"]={
- ["en"]="time",
- ["nl"]="tijd",
- },
["deepnumbercommand"]={
["cs"]="deepnumbercommand",
["de"]="deepnumbercommand",
@@ -8282,7 +8278,7 @@ return {
["ro"]="inaltime",
},
["hfactor"]={
- ["cs"]="hfaktor",
+ ["cs"]="vfaktor",
["de"]="hfaktor",
["en"]="hfactor",
["fr"]="facteurhauteur",
@@ -8291,14 +8287,6 @@ return {
["pe"]="ØđاŲ…Ų„â€ŒØ§ØąØŠŲØ§Øđ",
["ro"]="hfactor",
},
- ["vfactor"]={
- ["cs"]="vfaktor",
- ["de"]="vfaktor",
- ["en"]="vfactor",
- ["it"]="vfactor",
- ["nl"]="vfactor",
- ["ro"]="vfactor",
- },
["hfil"]={
["cs"]="hfil",
["de"]="hfil",
@@ -11556,12 +11544,6 @@ return {
["pe"]="ÚŊاŲ…‌ŲˆØ§ÛŒ",
["ro"]="ystep",
},
- ["ownerpassword"]={
- ["en"]="ownerpassword",
- },
- ["userpassword"]={
- ["en"]="userpassword",
- },
},
["elements"]={
["answerlines"]={
@@ -13038,10 +13020,6 @@ return {
["cite"]={
["en"]="cite",
},
- ["closed"]={
- ["en"]="closed",
- ["nl"]="gesloten",
- },
["color"]={
["cs"]="barevne",
["de"]="farbe",
@@ -15560,7 +15538,7 @@ return {
["ro"]="postscript",
},
["precedingpage"]={
- ["en"]="precedingpage",
+ ["en"]="followingpage",
["nl"]="voorafgaandepagina",
},
["preference"]={
@@ -17075,9 +17053,6 @@ return {
["unframed"]={
["en"]="unframed",
},
- ["unicode"]={
- ["en"]="unicode",
- },
["unit"]={
["cs"]="jednotka",
["de"]="einheit",
@@ -17840,8 +17815,8 @@ return {
["cd:brackets-l"] = { en = "[...,...]", lua = "{..., ...}" },
["cd:parenthesis-s"] = { en = "(...)" },
["cd:parenthesis-l"] = { en = "(...,...)" },
- ["cd:index-s"] = { en = "{...}" },
- ["cd:index-l"] = { en = "{..+...+..}" },
+ ["cd:index-s"] = { en = "[...]" },
+ ["cd:index-l"] = { en = "[..+...+..]" },
["cd:math-s"] = { en = "$...$" },
["cd:math-l"] = { en = "$...$" },
["cd:inlinemath-s"] = { en = "$...$" },
diff --git a/Master/texmf-dist/tex/context/base/mkiv/mult-fun.lua b/Master/texmf-dist/tex/context/base/mkiv/mult-fun.lua
index 0776f36b4b2..9b7062605b7 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/mult-fun.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/mult-fun.lua
@@ -3,7 +3,7 @@ return {
--
"nocolormodel", "greycolormodel", "graycolormodel", "rgbcolormodel", "cmykcolormodel",
"shadefactor",
- "textextoffset", "textextanchor",
+ "textextoffset",
"normaltransparent", "multiplytransparent", "screentransparent", "overlaytransparent",
"softlighttransparent", "hardlighttransparent", "colordodgetransparent", "colorburntransparent",
"darkentransparent", "lightentransparent", "differencetransparent", "exclusiontransparent",
@@ -53,19 +53,17 @@ return {
"shadedinto", "withshadecolors",
"withshadedomain", "withshademethod", "withshadefactor", "withshadevector",
"withshadecenter", "withshadedirection", "withshaderadius", "withshadetransform",
- "withshadestep", "withshadefraction", "withshadeorigin", "shownshadevector", "shownshadeorigin",
+ "withshadestep", "withshadefraction",
"cmyk", "spotcolor", "multitonecolor", "namedcolor",
"drawfill", "undrawfill",
"inverted", "uncolored", "softened", "grayed", "greyed",
"onlayer",
"along",
- "graphictext", "loadfigure", "externalfigure", "figure", "register",
- "outlinetext", "filloutlinetext", "drawoutlinetext", "outlinetexttopath",
+ "graphictext", "loadfigure", "externalfigure", "figure", "register", "outlinetext", -- "lua",
"checkedbounds", "checkbounds", "strut", "rule",
"withmask", "bitmapimage",
"colordecimals", "ddecimal", "dddecimal", "ddddecimal", "colordecimalslist",
"textext", "thetextext", "rawtextext", "textextoffset", "texbox", "thetexbox", "rawtexbox", "istextext",
- "notcached",
"verbatim",
"thelabel", "label",
"autoalign",
@@ -146,31 +144,5 @@ return {
"sortlist", "copylist", "shapedlist", "listtocurves", "listtolines", "listsize", "listlast", "uniquelist",
--
"circularpath", "squarepath", "linearpath",
- --
- "theoffset",
- --
- "texmode", "systemmode",
- "texvar", "texstr",
- "isarray", "prefix", "dimension",
- "getmacro", "getdimen", "getcount", "gettoks",
- "setmacro", "setdimen", "setcount", "settoks",
- --
- "positionpath", "positioncurve", "positionxy", "positionpxy",
- "positionwhd", "positionpage", "positionregion", "positionbox",
- "positionanchor", "positioninregion", "positionatanchor",
- --
- "wdpart", "htpart", "dppart",
- --
- "texvar", "texstr",
- --
- "inpath", "pointof", "leftof", "rightof",
- --
- "newhash", "disposehash", "inhash", "tohash",
- --
- "isarray", "prefix", "isobject",
- --
- "comment", "report", "lua", "mp", "MP", "luacall",
- --
- "mirrored", "mirroredabout",
},
}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/mult-ini.lua b/Master/texmf-dist/tex/context/base/mkiv/mult-ini.lua
index 0c8581281d1..3f320bf7fdf 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/mult-ini.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/mult-ini.lua
@@ -105,22 +105,6 @@ function interfaces.getnamespace(n)
return usednamespaces[n] .. ">"
end
-if documentdata then
-
- local prefix, getmacro
-
- function documentdata.variable(name)
- if not prefix then
- prefix = usednamespaces.variables .. ">document:"
- end
- if not getmacro then
- getmacro = tokens.getters.macro
- end
- return getmacro(prefix..name)
- end
-
-end
-
local function resolve(t,k)
local v = logs.reporter(k)
t[k] = v
diff --git a/Master/texmf-dist/tex/context/base/mkiv/mult-ini.mkiv b/Master/texmf-dist/tex/context/base/mkiv/mult-ini.mkiv
index 634e2c1d827..d66749d145e 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/mult-ini.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/mult-ini.mkiv
@@ -111,8 +111,6 @@
\def\s!spread{spread} \let\!!spread\s!spread % obsolete
\def\s!plus {plus} \let\!!plus \s!plus % obsolete
\def\s!minus {minus} \let\!!minus \s!minus % obsolete
-\def\s!left {left}
-\def\s!right {right}
\def\s!fil {fil}
\def\s!fill {fill} \let\!!fill \s!fill % obsolete
\def\s!filll {filll}
@@ -124,6 +122,11 @@
\def\s!top {top}
\def\s!both {both}
+%D Kind of special:
+
+\edef\!!TLT{\detokenize{TLT}}
+\edef\!!TRT{\detokenize{TRT}}
+
%D \macros
%D {defineinterfaceconstant,
%D defineinterfacevariable,
@@ -338,17 +341,17 @@
%D These will become obsolete:
\unexpanded\def\startmessages #1 library: #2 %
- {\begingroup
+ {\bgroup
\ifcsname\m!prefix!#2\endcsname\else\setgvalue{\m!prefix!#2}{#2}\fi
- \catcode\endoflineasciicode\othercatcode
+ \catcode\endoflineasciicode\activecatcode
\doifelseinset{#1}{\currentresponses,all}\mult_messages_start_yes\mult_messages_start_nop{#2}}
\def\mult_messages_start_yes#1#2\stopmessages
{\clf_setinterfacemessages{#1}{#2}%
- \endgroup}
+ \egroup}
\def\mult_messages_start_nop#1#2\stopmessages
- {\endgroup}
+ {\egroup}
\let\stopmessages\relax
diff --git a/Master/texmf-dist/tex/context/base/mkiv/mult-low.lua b/Master/texmf-dist/tex/context/base/mkiv/mult-low.lua
index 75c048c92de..0acba3b87b1 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/mult-low.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/mult-low.lua
@@ -12,8 +12,7 @@ return {
["constants"] = {
--
"zerocount", "minusone", "minustwo", "plusone", "plustwo", "plusthree", "plusfour", "plusfive",
- "plussix", "plusseven", "pluseight", "plusnine", "plusten", "plussixteen",
- "plusfifty", "plushundred", "plusonehundred", "plustwohundred", "plusfivehundred",
+ "plussix", "plusseven", "pluseight", "plusnine", "plusten", "plussixteen", "plushundred", "plustwohundred",
"plusthousand", "plustenthousand", "plustwentythousand", "medcard", "maxcard", "maxcardminusone",
"zeropoint", "onepoint", "halfapoint", "onebasepoint", "maxcount", "maxdimen", "scaledpoint", "thousandpoint",
"points", "halfpoint",
@@ -21,9 +20,7 @@ return {
"zeromuskip", "onemuskip",
"pluscxxvii", "pluscxxviii", "pluscclv", "pluscclvi",
"normalpagebox",
- --
- "directionlefttoright", "directionrighttoleft",
- --
+ -- --
"endoflinetoken", "outputnewlinechar",
--
"emptytoks", "empty", "undefined",
@@ -34,7 +31,9 @@ return {
--
"fmtname", "fmtversion", "texengine", "texenginename", "texengineversion", "texenginefunctionality",
"luatexengine", "pdftexengine", "xetexengine", "unknownengine",
- "contextformat", "contextversion", "contextkind", "contextlmtxmode", "contextmark", "mksuffix",
+ -- "etexversion",
+ -- "pdftexversion", "pdftexrevision",
+ -- "xetexversion", "xetexrevision",
--
"activecatcode",
--
@@ -60,7 +59,6 @@ return {
"spaceasciicode", "hashasciicode", "dollarasciicode", "commentasciicode", "ampersandasciicode",
"colonasciicode", "backslashasciicode", "circumflexasciicode", "underscoreasciicode",
"leftbraceasciicode", "barasciicode", "rightbraceasciicode", "tildeasciicode", "delasciicode",
- "leftparentasciicode", "rightparentasciicode",
"lessthanasciicode", "morethanasciicode", "doublecommentsignal",
"atsignasciicode", "exclamationmarkasciicode", "questionmarkasciicode",
"doublequoteasciicode", "singlequoteasciicode", "forwardslashasciicode",
@@ -103,9 +101,7 @@ return {
"startcomponent", "stopcomponent", "component",
"startproduct", "stopproduct", "product",
"startproject", "stopproject", "project",
- "starttext", "stoptext", "startnotext", "stopnotext",
- "startdocument", "stopdocument", "documentvariable", "unexpandeddocumentvariable", "setupdocument", "presetdocument",
- "doifelsedocumentvariable", "doifdocumentvariableelse", "doifdocumentvariable", "doifnotdocumentvariable",
+ "starttext", "stoptext", "startnotext", "stopnotext","startdocument", "stopdocument", "documentvariable", "unexpandeddocumentvariable", "setupdocument", "presetdocument",
"startmodule", "stopmodule", "usemodule", "usetexmodule", "useluamodule","setupmodule","currentmoduleparameter","moduleparameter",
"everystarttext", "everystoptext",
--
@@ -157,12 +153,10 @@ return {
"texdefinition",
--
"doifelsesetups", "doifsetupselse", "doifsetups", "doifnotsetups", "setup", "setups", "texsetup", "xmlsetup", "luasetup", "directsetup", "fastsetup",
- "copysetups", "resetsetups",
"doifelsecommandhandler", "doifcommandhandlerelse", "doifnotcommandhandler", "doifcommandhandler",
--
"newmode", "setmode", "resetmode",
"newsystemmode", "setsystemmode", "resetsystemmode", "pushsystemmode", "popsystemmode",
- "globalsetmode", "globalresetmode", "globalsetsystemmode", "globalresetsystemmode",
"booleanmodevalue",
--
"newcount", "newdimen", "newskip", "newmuskip", "newbox", "newtoks", "newread", "newwrite", "newmarks", "newinsert", "newattribute", "newif",
@@ -171,19 +165,14 @@ return {
"then",
"begcsname",
--
- "autorule",
- --
"strippedcsname","checkedstrippedcsname",
--
"firstargumentfalse", "firstargumenttrue",
"secondargumentfalse", "secondargumenttrue",
"thirdargumentfalse", "thirdargumenttrue",
"fourthargumentfalse", "fourthargumenttrue",
- "fifthargumentfalse", "fifthargumenttrue",
- "sixthargumentfalse", "sixthargumenttrue",
- "seventhargumentfalse", "seventhargumenttrue",
- --
- "vkern", "hkern",
+ "fifthargumentfalse", "fifthsargumenttrue",
+ "sixthargumentfalse", "sixtsargumenttrue",
--
"doglobal", "dodoglobal", "redoglobal", "resetglobal",
--
@@ -208,8 +197,8 @@ return {
--
"hglue", "vglue", "hfillneg", "vfillneg", "hfilllneg", "vfilllneg",
--
- "ruledhss", "ruledhfil", "ruledhfill", "ruledhfilll", "ruledhfilneg", "ruledhfillneg", "normalhfillneg", "normalhfilllneg",
- "ruledvss", "ruledvfil", "ruledvfill", "ruledvfilll", "ruledvfilneg", "ruledvfillneg", "normalvfillneg", "normalvfilllneg",
+ "ruledhss", "ruledhfil", "ruledhfill", "ruledhfilneg", "ruledhfillneg", "normalhfillneg",
+ "ruledvss", "ruledvfil", "ruledvfill", "ruledvfilneg", "ruledvfillneg", "normalvfillneg",
"ruledhbox", "ruledvbox", "ruledvtop", "ruledvcenter", "ruledmbox",
"ruledhpack", "ruledvpack", "ruledtpack",
"ruledhskip", "ruledvskip", "ruledkern", "ruledmskip", "ruledmkern",
@@ -225,20 +214,11 @@ return {
"scratchtoks", "globalscratchtoks", "privatescratchtoks",
"scratchbox", "globalscratchbox", "privatescratchbox",
--
- "globalscratchcounterone", "globalscratchcountertwo", "globalscratchcounterthree",
- --
- "groupedcommand", "groupedcommandcs",
- "triggergroupedcommand", "triggergroupedcommandcs",
- "simplegroupedcommand", "pickupgroupedcommand",
- --
"normalbaselineskip", "normallineskip", "normallineskiplimit",
--
"availablehsize", "localhsize", "setlocalhsize", "distributedhsize", "hsizefraction",
--
- "next", "nexttoken",
- --
"nextbox", "dowithnextbox", "dowithnextboxcs", "dowithnextboxcontent", "dowithnextboxcontentcs", "flushnextbox",
- "boxisempty",
--
"scratchwidth", "scratchheight", "scratchdepth", "scratchoffset", "scratchdistance",
"scratchhsize", "scratchvsize",
@@ -259,7 +239,6 @@ return {
"scratchleftskip", "scratchrightskip", "scratchtopskip", "scratchbottomskip",
--
"doif", "doifnot", "doifelse",
- "firstinset",
"doifinset", "doifnotinset",
"doifelseinset", "doifinsetelse",
"doifelsenextchar", "doifnextcharelse",
@@ -283,7 +262,7 @@ return {
"doifelsenumber", "doifnumberelse", "doifnumber", "doifnotnumber",
"doifelsecommon", "doifcommonelse", "doifcommon", "doifnotcommon",
"doifinstring", "doifnotinstring", "doifelseinstring", "doifinstringelse",
- "doifelseassignment", "doifassignmentelse", "docheckassignment", "doifelseassignmentcs", "doifassignmentelsecs",
+ "doifelseassignment", "doifassignmentelse", "docheckassignment",
"doiftext", "doifelsetext", "doiftextelse", "doifnottext",
--
"tracingall", "tracingnone", "loggingall",
@@ -299,7 +278,7 @@ return {
"singleexpandafter", "doubleexpandafter", "tripleexpandafter",
--
"dontleavehmode", "removelastspace", "removeunwantedspaces", "keepunwantedspaces",
- "removepunctuation", "ignoreparskip", "forcestrutdepth", "onlynonbreakablespace",
+ "removepunctuation", "ignoreparskip", "forcestrutdepth",
--
"wait", "writestatus", "define", "defineexpandable", "redefine",
--
@@ -350,7 +329,7 @@ return {
"dosinglegroupempty", "dodoublegroupempty", "dotriplegroupempty", "doquadruplegroupempty", "doquintuplegroupempty",
"permitspacesbetweengroups", "dontpermitspacesbetweengroups",
--
- "nopdfcompression", "maximumpdfcompression", "normalpdfcompression", "onlypdfobjectcompression", "nopdfobjectcompression",
+ "nopdfcompression", "maximumpdfcompression", "normalpdfcompression",
--
"modulonumber", "dividenumber",
--
@@ -424,8 +403,12 @@ return {
"startluacode", "stopluacode", "startlua", "stoplua",
"startctxfunction","stopctxfunction","ctxfunction",
"startctxfunctiondefinition","stopctxfunctiondefinition",
- "installctxfunction", "installprotectedctxfunction", "installprotectedctxscanner", "installctxscanner", "resetctxscanner",
- "cldprocessfile", "cldloadfile", "cldloadviafile", "cldcontext", "cldcommand",
+ "installctxfunction", "installctxfunctioncall",
+ "installprotectedctxfunction", "installprotectedctxfunctioncall",
+ "installctxscanner", "installctxscannercall",
+ "resetctxscanner",
+ "installprotectedctxscanner", "installprotectedctxscannercall",
+ "cldprocessfile", "cldloadfile", "cldcontext", "cldcommand",
--
"carryoverpar",
"lastlinewidth",
@@ -450,8 +433,7 @@ return {
--
"nospace", "nospacing", "dospacing",
--
- "naturalhbox", "naturalvbox", "naturalvtop", "naturalhpack", "naturalvpack", "naturaltpack",
- "reversehbox", "reversevbox", "reversevtop", "reversehpack", "reversevpack", "reversetpack",
+ "naturalhbox", "naturalvbox", "naturalvtop", "naturalhpack", "naturalvpack",
--
"frule",
--
diff --git a/Master/texmf-dist/tex/context/base/mkiv/mult-prm.lua b/Master/texmf-dist/tex/context/base/mkiv/mult-prm.lua
index 579750bc97d..1cd5f581007 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/mult-prm.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/mult-prm.lua
@@ -231,44 +231,35 @@ return {
"breakafterdirmode",
"catcodetable",
"clearmarks",
- "compoundhyphenmode",
"copyfont",
+ "compoundhyphenmode",
"crampeddisplaystyle",
"crampedscriptscriptstyle",
"crampedscriptstyle",
"crampedtextstyle",
- "csstring",
"draftmode",
"dviextension",
"dvifeedback",
"dvivariable",
"efcode",
- "endlocalcontrol",
"etoksapp",
"etokspre",
- "exceptionpenalty",
"expanded",
"expandglyphsinfont",
"explicitdiscretionary",
"explicithyphenpenalty",
- "fixupboxesmode",
"fontid",
"formatname",
"gleaders",
- "gtoksapp",
- "gtokspre",
"hjcode",
"hyphenationbounds",
"hyphenationmin",
"hyphenpenaltymode",
"ifabsdim",
"ifabsnum",
- "ifcondition",
"ifincsname",
"ifprimitive",
"ignoreligaturesinfont",
- "immediateassigned",
- "immediateassignment",
"initcatcodetable",
"insertht",
"lastnamedcs",
@@ -278,7 +269,6 @@ return {
"lastxpos",
"lastypos",
"latelua",
- "lateluafunction",
"leftghost",
"leftmarginkern",
"letcharcode",
@@ -290,10 +280,6 @@ return {
"localleftbox",
"localrightbox",
"lpcode",
- "luabytecode",
- "luabytecodecall",
- "luacopyinputnodes",
- "luadef",
"luaescapestring",
"luafunction",
"luafunctioncall",
@@ -305,17 +291,14 @@ return {
"mathdirection",
"mathdisplayskipmode",
"matheqnogapstep",
- "mathflattenmode",
"mathitalicsmode",
"mathnolimitsmode",
"mathoption",
"mathpenaltiesmode",
"mathrulesfam",
"mathrulesmode",
- "mathrulethicknessmode",
- "mathscriptboxmode",
- "mathscriptcharmode",
"mathscriptsmode",
+ "mathscriptboxmode",
"mathstyle",
"mathsurroundmode",
"mathsurroundskip",
@@ -379,8 +362,6 @@ return {
"uniformdeviate",
"useboxresource",
"useimageresource",
- "xtoksapp",
- "xtokspre",
},
["omega"]={
"Omegaminorversion",
@@ -441,17 +422,15 @@ return {
"pdflastypos",
"pdflinkmargin",
"pdfliteral",
- "pdfmajorversion",
"pdfmapfile",
"pdfmapline",
+ "pdfmajorversion",
"pdfminorversion",
"pdfnames",
"pdfnoligatures",
"pdfnormaldeviate",
"pdfobj",
"pdfobjcompresslevel",
- "pdfomitcharset",
- "pdfomitcidset",
"pdfoutline",
"pdfoutput",
"pdfpageattr",
@@ -468,7 +447,6 @@ return {
"pdfprotrudechars",
"pdfpxdimen",
"pdfrandomseed",
- "pdfrecompress",
"pdfrefobj",
"pdfrefxform",
"pdfrefximage",
@@ -544,6 +522,7 @@ return {
"cr",
"crcr",
"csname",
+ "csstring",
"day",
"deadcycles",
"def",
@@ -601,7 +580,6 @@ return {
"fontname",
"futurelet",
"gdef",
- "glet",
"global",
"globaldefs",
"halign",
@@ -845,4 +823,4 @@ return {
["xetex"]={
"XeTeXversion",
},
-} \ No newline at end of file
+}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/mult-prm.mkiv b/Master/texmf-dist/tex/context/base/mkiv/mult-prm.mkiv
index 5ffb84d389c..1b9195f4101 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/mult-prm.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/mult-prm.mkiv
@@ -55,7 +55,7 @@
"pdflastobj", "pdflastxform", "pdflastximage", "pdflastximagepages",
"pdflastxpos", "pdflastypos", "pdflinkmargin", "pdfliteral",
"pdfmapfile", "pdfmapline", "pdfmajorversion", "pdfminorversion", "pdfnames",
- "pdfnoligatures", "pdfnormaldeviate", "pdfobj", "pdfrecompress",
+ "pdfnoligatures", "pdfnormaldeviate", "pdfobj",
"pdfobjcompresslevel", "pdfoutline", "pdfoutput", "pdfpageattr",
"pdfpagebox", "pdfpageheight", "pdfpageref", "pdfpageresources",
"pdfpagesattr", "pdfpagewidth", "pdfpkfixeddpi", "pdfpkmode",
@@ -68,7 +68,6 @@
"pdftracingfonts", "pdftrailer", "pdftrailerid", "pdfuniformdeviate",
"pdfuniqueresname", "pdfvorigin", "pdfxform", "pdfxformattr",
"pdfxformmargin", "pdfxformname", "pdfxformresources", "pdfximage",
- "pdfomitcidset", "pdfomitcharset",
},
aleph = { -- we don't bother
"Alephminorversion", "Alephrevision", "Alephversion",
diff --git a/Master/texmf-dist/tex/context/base/mkiv/mult-sys.mkiv b/Master/texmf-dist/tex/context/base/mkiv/mult-sys.mkiv
index fdb2ea73214..7000eed7bb9 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/mult-sys.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/mult-sys.mkiv
@@ -55,7 +55,6 @@
\definesystemconstant {danish} \definesystemconstant {da}
\definesystemconstant {dutch} \definesystemconstant {nl}
\definesystemconstant {english} \definesystemconstant {en}
-\definesystemconstant {estonian} \definesystemconstant {et}
\definesystemconstant {farsi} \definesystemconstant {fa} % just persian
\definesystemconstant {finnish} \definesystemconstant {fi}
\definesystemconstant {french} \definesystemconstant {fr}
@@ -241,7 +240,6 @@
\definesystemconstant {next}
\definesystemconstant {pickup}
-\definesystemconstant {forget}
\definesystemconstant {ascii}
\definesystemconstant {default}
\definesystemconstant {unknown}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-acc.lua b/Master/texmf-dist/tex/context/base/mkiv/node-acc.lua
index e6c6176026e..03f6d747634 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-acc.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-acc.lua
@@ -8,6 +8,7 @@ if not modules then modules = { } end modules ['node-acc'] = {
local nodes, node = nodes, node
+local nodecodes = nodes.nodecodes
local tasks = nodes.tasks
local nuts = nodes.nuts
@@ -15,7 +16,6 @@ local tonut = nodes.tonut
local tonode = nodes.tonode
local getid = nuts.getid
-local getsubtype = nuts.getsubtype
local getattr = nuts.getattr
local getlist = nuts.getlist
local getchar = nuts.getchar
@@ -28,28 +28,21 @@ local setsubtype = nuts.setsubtype
local getwidth = nuts.getwidth
local setwidth = nuts.setwidth
-local nextglyph = nuts.traversers.glyph
-local nextnode = nuts.traversers.node
-
+----- traverse_nodes = nuts.traverse
+local traverse_id = nuts.traverse_id
----- copy_node = nuts.copy
local insert_after = nuts.insert_after
local copy_no_components = nuts.copy_no_components
-local nodecodes = nodes.nodecodes
-local gluecodes = nodes.gluecodes
-
local glue_code = nodecodes.glue
----- kern_code = nodecodes.kern
local glyph_code = nodecodes.glyph
local hlist_code = nodecodes.hlist
local vlist_code = nodecodes.vlist
-local userskip_code = gluecodes.user
-local spaceskip_code = gluecodes.spaceskip
-local xspaceskip_code = gluecodes.xspaceskip
-
local a_characters = attributes.private("characters")
+local threshold = 65536 -- not used
local nofreplaced = 0
-- todo: nbsp etc
@@ -57,9 +50,6 @@ local nofreplaced = 0
-- todo: maybe cache as we now create many nodes
-- todo: check for subtype related to spacing (13/14 but most seems to be user anyway)
-local trace = false trackers.register("backend.spaces", function(v) trace = v end)
-local slot = nil
-
local function injectspaces(head)
local p, p_id
local n = head
@@ -67,42 +57,32 @@ local function injectspaces(head)
local id = getid(n)
if id == glue_code then
if p and getid(p) == glyph_code then
- local s = getsubtype(n)
- if s == spaceskip_code or s == xspaceskip_code then
- -- unless we don't care about the little bit of overhead
- -- we can just: local g = copy_node(g)
- local g = copy_no_components(p)
- local a = getattr(n,a_characters)
- setchar(g,slot)
- setlink(p,g,n)
- setwidth(n,getwidth(n) - getwidth(g))
- -- setsubtype(n,userskip_code)
- if a then
- setattr(g,a_characters,a)
- end
- setattr(n,a_characters,0)
- nofreplaced = nofreplaced + 1
+ -- unless we don't care about the little bit of overhead
+ -- we can just: local g = copy_node(g)
+ local g = copy_no_components(p)
+ local a = getattr(n,a_characters)
+ setchar(g,32)
+ setlink(p,g,n)
+ setwidth(n,getwidth(n) - getwidth(g))
+ if a then
+ setattr(g,a_characters,a)
end
+ setattr(n,a_characters,0)
+ nofreplaced = nofreplaced + 1
end
elseif id == hlist_code or id == vlist_code then
- injectspaces(getlist(n),slot)
+ injectspaces(getlist(n),attribute)
end
p_id = id
p = n
n = getnext(n)
end
- return head
+ return head, true -- always done anyway
end
nodes.handlers.accessibility = function(head)
- if trace then
- if not slot then
- slot = fonts.helpers.privateslot("visualspace")
- end
- else
- slot = 32
- end
- return injectspaces(head,slot)
+ local head, done = injectspaces(tonut(head))
+ return tonode(head), done
end
statistics.register("inserted spaces in output",function()
@@ -119,7 +99,7 @@ end)
--
-- local function compact(n)
-- local t = { }
--- for n in nextglyph, n do
+-- for n in traverse_id(glyph_code,n) do
-- t[#t+1] = utfchar(getchar(n)) -- check for unicode
-- end
-- return concat(t,"")
@@ -127,7 +107,8 @@ end)
--
-- local function injectspans(head)
-- local done = false
--- for n, id in nextnode, tonuts(head) do
+-- for n in traverse_nodes(tonuts(head)) do
+-- local id = getid(n)
-- if id == disc then
-- local r = getfield(n,"replace")
-- local p = getfield(n,"pre")
@@ -153,17 +134,18 @@ end)
--
-- tasks.appendaction("processors", "words", "nodes.injectspans")
--
--- local pageliteral = nuts.pool.pageliteral
+-- local pdfpageliteral = nuts.pool.pdfpageliteral
--
-- local function injectspans(head)
-- local done = false
--- for n, id in nextnode, tonut(head) do
+-- for n in traverse_nodes(tonut(head)) do
+-- local id = getid(n)
-- if id == disc then
-- local a = getattr(n,a_hyphenated)
-- if a then
-- local str = codes[a]
--- local b = pageliteral(format("/Span << /ActualText %s >> BDC", lpdf.tosixteen(str)))
--- local e = pageliteral("EMC")
+-- local b = pdfpageliteral(format("/Span << /ActualText %s >> BDC", lpdf.tosixteen(str)))
+-- local e = pdfpageliteral("EMC")
-- insert_before(head,n,b)
-- insert_after(head,n,e)
-- done = true
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-aux.lua b/Master/texmf-dist/tex/context/base/mkiv/node-aux.lua
index d6a9950fe8c..84567068bba 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-aux.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-aux.lua
@@ -32,6 +32,8 @@ local getnext = nuts.getnext
local getid = nuts.getid
local getsubtype = nuts.getsubtype
local getlist = nuts.getlist
+local getfont = nuts.getfont
+local getchar = nuts.getchar
local getattr = nuts.getattr
local getboth = nuts.getboth
local getcomponents = nuts.getcomponents
@@ -49,10 +51,8 @@ local setprev = nuts.setprev
local setcomponents = nuts.setcomponents
local setattrlist = nuts.setattrlist
------ traverse_nodes = nuts.traverse
------ traverse_id = nuts.traverse_id
-local nextnode = nuts.traversers.node
-local nextglyph = nuts.traversers.glyph
+local traverse_nodes = nuts.traverse
+local traverse_id = nuts.traverse_id
local flush_node = nuts.flush
local flush_list = nuts.flush_list
local hpack_nodes = nuts.hpack
@@ -154,8 +154,9 @@ function nodes.repackhlist(list,...)
end
local function set_attributes(head,attr,value)
- for n, id in nextnode, head do
+ for n in traverse_nodes(head) do
setattr(n,attr,value)
+ local id = getid(n)
if id == hlist_node or id == vlist_node then
set_attributes(getlist(n),attr,value)
end
@@ -163,10 +164,11 @@ local function set_attributes(head,attr,value)
end
local function set_unset_attributes(head,attr,value)
- for n, id in nextnode, head do
+ for n in traverse_nodes(head) do
if not getattr(n,attr) then
setattr(n,attr,value)
end
+ local id = getid(n)
if id == hlist_code or id == vlist_code then
set_unset_attributes(getlist(n),attr,value)
end
@@ -174,8 +176,9 @@ local function set_unset_attributes(head,attr,value)
end
local function unset_attributes(head,attr)
- for n, id in nextnode, head do
+ for n in traverse_nodes(head) do
setattr(n,attr,unsetvalue)
+ local id = getid(n)
if id == hlist_code or id == vlist_code then
unset_attributes(getlist(n),attr)
end
@@ -194,11 +197,98 @@ nuts.setattributes = set_attributes nodes.setattributes
nuts.setunsetattributes = set_unset_attributes nodes.setunsetattributes = vianuts(set_unset_attributes)
nuts.unsetattributes = unset_attributes nodes.unsetattributes = vianuts(unset_attributes)
+-- history:
+--
+-- local function glyph_width(a)
+-- local ch = chardata[getfont(a)][getchar(a)]
+-- return (ch and ch.width) or 0
+-- end
+--
+-- local function glyph_total(a)
+-- local ch = chardata[getfont(a)][getchar(a)]
+-- return (ch and (ch.height+ch.depth)) or 0
+-- end
+--
+-- local function non_discardable(a) -- inline
+-- return getid(id) < math_node -- brrrr
+-- end
+--
+-- local function calculate_badness(t,s)
+-- if t == 0 then
+-- return 0
+-- elseif s <= 0 then
+-- return INF_BAD
+-- else
+-- local r
+-- if t <= 7230584 then
+-- r = t * 297 / s
+-- elseif s >= 1663497 then
+-- r = t / floor(s / 297)
+-- else
+-- r = t
+-- end
+-- r = floor(r)
+-- if r > 1290 then
+-- return INF_BAD
+-- else
+-- return floor((r * r * r + 0x20000) / 0x40000) -- 0400000 / 01000000
+-- end
+-- end
+-- end
+--
+-- left-overs
+--
+-- local function round_xn_over_d(x, n, d)
+-- local positive -- was x >= 0
+-- if x >= 0 then
+-- positive = true
+-- else
+-- x = -x
+-- positive = false
+-- end
+-- local t = floor(x % 0x8000) * n -- 0100000
+-- local f = floor(t / 0x8000) -- 0100000
+-- local u = floor(x / 0x8000) * n + f -- 0100000
+-- local v = floor(u % d) * 0x8000 + f -- 0100000
+-- if floor(u / d) >= 0x8000 then -- 0100000
+-- report_parbuilders('arith_error')
+-- else
+-- u = 0x8000 * floor(u / d) + floor(v / d) -- 0100000
+-- end
+-- v = floor(v % d)
+-- if 2*v >= d then
+-- u = u + 1
+-- end
+-- if positive then
+-- return u
+-- else
+-- return -u
+-- end
+-- end
+--
+-- local function firstline(n)
+-- while n do
+-- local id = getid(n)
+-- if id == hlist_code then
+-- if getsubtype(n) == line_code then
+-- return n
+-- else
+-- return firstline(getlist(n))
+-- end
+-- elseif id == vlist_code then
+-- return firstline(getlist(n))
+-- end
+-- n = getnext(n)
+-- end
+-- end
+--
+-- nodes.firstline = firstline
+
function nuts.firstcharacter(n,untagged) -- tagged == subtype > 255
if untagged then
return first_glyph(n)
else
- for g in nextglyph ,n do
+ for g in traverse_id(glyph_code,n) do
return g
end
end
@@ -207,8 +297,8 @@ end
local function firstcharinbox(n)
local l = getlist(getbox(n))
if l then
- for g, c in nextglyph, l do
- return c
+ for g in traverse_id(glyph_code,l) do
+ return getchar(g)
end
end
return 0
@@ -341,9 +431,10 @@ nodes.link = function(list,currentfont,currentattr,head,tail)
end
local function locate(start,wantedid,wantedsubtype)
- for n, id, subtype in nextnode, start do
+ for n in traverse_nodes(start) do
+ local id = getid(n)
if id == wantedid then
- if not wantedsubtype or subtype == wantedsubtype then
+ if not wantedsubtype or getsubtype(n) == wantedsubtype then
return n
end
elseif id == hlist_code or id == vlist_code then
@@ -399,6 +490,87 @@ end
-- end
-- end
+-- these component helpers might move to another module
+
+-- nodemode helper: here we also flatten components, no check for disc here
+
+function nuts.set_components(target,start,stop)
+ local head = getcomponents(target)
+ if head then
+ flush_list(head)
+ head = nil
+ end
+ if start then
+ setprev(start)
+ else
+ return nil
+ end
+ if stop then
+ setnext(stop)
+ end
+ local tail = nil
+ while start do
+ local c = getcomponents(start)
+ local n = getnext(start)
+ if c then
+ if head then
+ setlink(tail,c)
+ else
+ head = c
+ end
+ tail = find_tail(c)
+ setcomponents(start)
+ flush_node(start)
+ else
+ if head then
+ setlink(tail,start)
+ else
+ head = start
+ end
+ tail = start
+ end
+ start = n
+ end
+ setcomponents(target,head)
+ -- maybe also upgrade the subtype but we don't use it anyway
+ return head
+end
+
+function nuts.get_components(target)
+ return getcomponents(target)
+end
+
+nuts.get_components = getcomponents
+
+function nuts.take_components(target)
+ local c = getcomponents(target)
+ setcomponents(target)
+ -- maybe also upgrade the subtype but we don't use it anyway
+ return c
+end
+
+-- nodemode helper: we assume a glyph and a flat components list (basemode can
+-- have nested components)
+
+function nuts.count_components(n,marks)
+ local components = getcomponents(n)
+ if components then
+ if marks then
+ local i = 0
+ for g in traverse_id(glyph_code,components) do
+ if not marks[getchar(g)] then
+ i = i + 1
+ end
+ end
+ return i
+ else
+ return count(glyph_code,components)
+ end
+ else
+ return 0
+ end
+end
+
-- nodemode helper: the next and prev pointers are untouched
function nuts.copy_no_components(g,copyinjection)
@@ -424,7 +596,7 @@ end
function nuts.copy_only_glyphs(current)
local head = nil
local previous = nil
- for n in nextglyph, current do
+ for n in traverse_id(glyph_code,current) do
n = copy_node(n)
if head then
setlink(previous,n)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-bck.lua b/Master/texmf-dist/tex/context/base/mkiv/node-bck.lua
index a19e5e969a7..4ed5abe5e5e 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-bck.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-bck.lua
@@ -9,288 +9,178 @@ if not modules then modules = { } end modules ['node-bck'] = {
-- beware, this one takes quite some runtime, so we need a status flag
-- maybe some page related state
--- todo: done (or just get rid of done altogether) ... saves no purpose
--- any longer
-
local attributes, nodes, node = attributes, nodes, node
-local enableaction = nodes.tasks.enableaction
-
-local nodecodes = nodes.nodecodes
-local listcodes = nodes.listcodes
-
-local hlist_code = nodecodes.hlist
-local vlist_code = nodecodes.vlist
-
-local alignmentlist_code = listcodes.alignment
-local celllist_code = listcodes.cell
-
-local nuts = nodes.nuts
-local nodepool = nuts.pool
-
-local getnext = nuts.getnext
-local getprev = nuts.getprev
-local getid = nuts.getid
-local getlist = nuts.getlist
-local getattr = nuts.getattr
-local getsubtype = nuts.getsubtype
-local getwhd = nuts.getwhd
-local getwidth = nuts.getwidth
-local getprop = nuts.getprop
-
-local setattr = nuts.setattr
-local setlink = nuts.setlink
-local setlist = nuts.setlist
-local setattributelist = nuts.setattributelist
-local setprop = nuts.setprop
+local enableaction = nodes.tasks.enableaction
-local takebox = nuts.takebox
-local findtail = nuts.tail
+local nodecodes = nodes.nodecodes
+local listcodes = nodes.listcodes
-local nextnode = nuts.traversers.node
-local nexthlist = nuts.traversers.hlist
-local nextlist = nuts.traversers.list
+local hlist_code = nodecodes.hlist
+local vlist_code = nodecodes.vlist
+local cell_code = listcodes.cell
-local flush_node_list = nuts.flush_list
+local nuts = nodes.nuts
+local nodepool = nuts.pool
-local new_rule = nodepool.rule
-local new_kern = nodepool.kern
-local new_hlist = nodepool.hlist
+local tonode = nuts.tonode
+local tonut = nuts.tonut
-local privateattributes = attributes.private
-local unsetvalue = attributes.unsetvalue
+local getnext = nuts.getnext
+local getprev = nuts.getprev
+local getid = nuts.getid
+local getlist = nuts.getlist
+local getattr = nuts.getattr
+local getsubtype = nuts.getsubtype
+local getwhd = nuts.getwhd
-local linefillers = nodes.linefillers
+local setattr = nuts.setattr
+local setlink = nuts.setlink
+local setlist = nuts.setlist
-local a_color = privateattributes("color")
-local a_transparency = privateattributes("transparency")
-local a_colormodel = privateattributes("colormodel")
-local a_background = privateattributes("background")
-local a_alignbackground = privateattributes("alignbackground")
-local a_linefiller = privateattributes("linefiller")
-local a_ruled = privateattributes("ruled")
+local traverse = nuts.traverse
+local traverse_id = nuts.traverse_id
-local trace_alignment = false
-local report_alignment = logs.reporter("backgrounds","alignment")
+local new_rule = nodepool.rule
+local new_glue = nodepool.glue
-trackers.register("backgrounds.alignments",function(v) trace_alignment = v end)
-
--- We can't use listbuilders with where=alignment because at that stage we have
--- unset boxes. Also, post_linebreak is unsuitable for nested processing as we
--- get the same stuff many times (wrapped again and again).
---
--- After many experiments with different callbacks the shipout is still the best
--- place but then we need to store some settings longer or save them with the node.
--- For color only we can get away with it with an extra attribute flagging a row
--- but for more complex stuff we can better do as we do here now.
-
-local overshoot = math.floor(65781/5) -- could be an option per table (just also store it)
-
-local function colored_a(current,list,template,id)
- local width, height, depth = getwhd(current)
- local total = height + depth
- if width > 0 and total > 0 then
- local rule = nil
- --
- local a = getattr(template,a_linefiller)
- if a then
- local d = linefillers.data[a%1000]
- if d then
- rule = linefillers.filler(template,d,width,height,depth)
- end
- end
- --
- if not rule then
- rule = new_rule(width,height,depth)
- end
- setattributelist(rule,template)
- local back = new_kern(-((id == vlist_code and total) or width))
- return setlink(rule,back,list)
- end
-end
+local a_color = attributes.private('color')
+local a_transparency = attributes.private('transparency')
+local a_colormodel = attributes.private('colormodel')
+local a_background = attributes.private('background')
+local a_alignbackground = attributes.private('alignbackground')
-local function colored_b(current,list,template,id,indent)
- local width, height, depth = getwhd(current)
- local total = height + depth
- if width > 0 and total > 0 then
- local fore = (indent ~= 0) and new_kern(indent)
- local rule = nil
- --
- local a = getattr(template,a_linefiller)
- if a then
- local d = linefillers.data[a%1000]
- if d then
- rule = linefillers.filler(template,d,width-indent,height,depth)
+local function add_backgrounds(head) -- rather old code .. to be redone
+ local current = head
+ while current do
+ local id = getid(current)
+ if id == hlist_code or id == vlist_code then
+ local list = getlist(current)
+ if list then
+ local head = add_backgrounds(list)
+ if head then
+ setlist(current,head)
+ list = head
+ end
end
- end
- --
- if not rule then
- rule = new_rule(width-indent,height+overshoot,depth+overshoot)
- setattributelist(rule,template)
- end
- if overshoot == 0 then
- local back = new_kern(-((id == vlist_code and total) or width))
- return setlink(fore,rule,back,list)
- else
- rule = new_hlist(rule)
- return setlink(fore,rule,list)
- end
- end
-end
-
-local templates = { }
-local currentrow = 0
-local enabled = false
-local alignments = false
-
-local function add_alignbackgrounds(head,list)
- for current, id, subtype, list in nextlist, list do
- if list and id == hlist_code and subtype == celllist_code then
- for template in nexthlist, list do
- local background = getattr(template,a_alignbackground)
+ local width, height, depth = getwhd(current)
+ if width > 0 then
+ local background = getattr(current,a_background)
if background then
- local list = colored_a(current,list,template)
- if list then
- setlist(current,list)
+ -- direct to hbox
+ -- colorspace is already set so we can omit that and stick to color
+ local mode = getattr(current,a_colormodel)
+ if mode then
+ local skip = id == hlist_code and width or (height + depth)
+ local glue = new_glue(-skip)
+ local rule = new_rule(width,height,depth)
+ local color = getattr(current,a_color)
+ local transparency = getattr(current,a_transparency)
+ setattr(rule,a_colormodel,mode)
+ if color then
+ setattr(rule,a_color,color)
+ end
+ if transparency then
+ setattr(rule,a_transparency,transparency)
+ end
+-- setlink(rule,glue)
+-- if list then
+-- setlink(glue,list)
+-- end
+-- setlist(current,rule)
+ setlist(current,rule,glue,list)
end
- setattr(template,a_alignbackground,unsetvalue) -- or property
end
- break
end
end
+ current = getnext(current)
end
- local template = getprop(head,"alignmentchecked")
- if template then
- list = colored_b(head,list,template[1],hlist_code,template[2])
- flush_node_list(template)
- templates[currentrow] = false
- return list
- end
+ return head, true
end
-local function add_backgrounds(head,id,list)
- if list then
- for current, id, subtype, list in nextlist, list do
- if list then
- if alignments and subtype == alignmentlist_code then
- local l = add_alignbackgrounds(current,list)
- if l then
- list = l
- setlist(current,list)
+local function add_alignbackgrounds(head)
+ local current = head
+ while current do
+ local id = getid(current)
+ if id == hlist_code then
+ local list = getlist(current)
+ if not list then
+ -- no need to look
+ elseif getsubtype(current) == cell_code then
+ local background = nil
+ local found = nil
+ -- for l in traverse(list) do
+ -- background = getattr(l,a_alignbackground)
+ -- if background then
+ -- found = l
+ -- break
+ -- end
+ -- end
+ -- we know that it's a fake hlist (could be user node)
+ -- but we cannot store tables in user nodes yet
+ for l in traverse_id(hpack_code,list) do
+ background = getattr(l,a_alignbackground)
+ if background then
+ found = l
end
+ break
end
- local l = add_backgrounds(current,id,list)
- if l then
- list = l
- setlist(current,l)
- end
- end
- end
- end
- if id == hlist_code or id == vlist_code then
- local background = getattr(head,a_background)
- if background then
- list = colored_a(head,list,head,id)
- -- not needed
- setattr(head,a_background,unsetvalue) -- or property
- return list
- end
- end
-end
-
-function nodes.handlers.backgrounds(head)
- add_backgrounds(head,getid(head),getlist(head))
- return head
-end
-
-function nodes.handlers.backgroundspage(head,where)
- if head and where == "alignment" then
- for n in nexthlist, head do
- local p = getprop(n,"alignmentchecked")
- if not p and getsubtype(n) == alignmentlist_code then
- currentrow = currentrow + 1
- local template = templates[currentrow]
- if trace_alignment then
- report_alignment("%03i %s %s",currentrow,"page",template and "+" or "-")
- end
- setprop(n,"alignmentchecked",template)
- end
- end
- end
- return head
-end
-
-function nodes.handlers.backgroundsvbox(head,where)
- if head and where == "vbox" then
- local list = getlist(head)
- if list then
- for n in nexthlist, list do
- local p = getprop(n,"alignmentchecked")
- if not p and getsubtype(n) == alignmentlist_code then
- currentrow = currentrow + 1
- local template = templates[currentrow]
- if trace_alignment then
- report_alignment("%03i %s %s",currentrow,"vbox",template and "+" or "-")
+ --
+ if background then
+ -- current has subtype 5 (cell)
+ local width, height, depth = getwhd(current)
+ if width > 0 then
+ local mode = getattr(found,a_colormodel)
+ if mode then
+ local glue = new_glue(-width)
+ local rule = new_rule(width,height,depth)
+ local color = getattr(found,a_color)
+ local transparency = getattr(found,a_transparency)
+ setattr(rule,a_colormodel,mode)
+ if color then
+ setattr(rule,a_color,color)
+ end
+ if transparency then
+ setattr(rule,a_transparency,transparency)
+ end
+ setlink(rule,glue)
+ if list then
+ setlink(glue,list)
+ end
+ setlist(current,rule)
+ end
end
- setprop(n,"alignmentchecked",template)
end
+ else
+ add_alignbackgrounds(list)
+ end
+ elseif id == vlist_code then
+ local list = getlist(current)
+ if list then
+ add_alignbackgrounds(list)
end
end
+ current = getnext(current)
end
- return head
+ return head, true
end
--- interfaces.implement {
--- name = "enablebackgroundboxes",
--- onlyonce = true,
--- actions = enableaction,
--- arguments = { "'shipouts'", "'nodes.handlers.backgrounds'" }
--- }
---
--- doing it in the shipout works as well but this is nicer
+-- nodes.handlers.backgrounds = add_backgrounds
+-- nodes.handlers.alignbackgrounds = add_alignbackgrounds
-local function enable(alignmentstoo)
- if not enabled then
- enabled = true
- enableaction("shipouts","nodes.handlers.backgrounds")
- end
- if not alignments and alignmentstoo then
- alignments = true
- enableaction("vboxbuilders","nodes.handlers.backgroundsvbox")
- enableaction("mvlbuilders", "nodes.handlers.backgroundspage")
- end
-end
+nodes.handlers.backgrounds = function(head) local head, done = add_backgrounds (tonut(head)) return tonode(head), done end
+nodes.handlers.alignbackgrounds = function(head) local head, done = add_alignbackgrounds(tonut(head)) return tonode(head), done end
interfaces.implement {
name = "enablebackgroundboxes",
onlyonce = true,
- actions = enable,
+ actions = enableaction,
+ arguments = { "'shipouts'", "'nodes.handlers.backgrounds'" }
}
interfaces.implement {
name = "enablebackgroundalign",
onlyonce = true,
- actions = function()
- enable(true)
- end,
-}
-
-interfaces.implement {
- name = "setbackgroundrowdata",
- arguments = { "integer", "integer", "dimension" },
- actions = function(row,box,indent)
- row = row -1 -- better here than in tex
- if box == 0 then
- templates[row] = false
- else
- templates[row] = { takebox(box), indent }
- end
- end,
-}
-
-interfaces.implement {
- name = "resetbackgroundrowdata",
- actions = function()
- currentrow = 0
- end,
+ actions = enableaction,
+ arguments = { "'shipouts'", "'nodes.handlers.alignbackgrounds'" }
}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-bck.mkiv b/Master/texmf-dist/tex/context/base/mkiv/node-bck.mkiv
index b093274430c..6bfc43d6a41 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-bck.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-bck.mkiv
@@ -16,10 +16,12 @@
%D This is first attempt to replacing backgrounds in a few tables
%D mechanisms. When used more frequently, we can store the color
%D spec in the attribute.
+%D
+%D Maybe move some to the bar handler.
\unprotect
-\registerctxluafile{node-bck}{optimize}
+\registerctxluafile{node-bck}{}
% \backgroundvbox[green] {\input tufte } \par
% \backgroundvbox[blue] {\input ward } \par
@@ -72,9 +74,6 @@
\unexpanded\def\backgroundvbox{\node_backgrounds_boxes_add\vbox}
\unexpanded\def\backgroundvtop{\node_backgrounds_boxes_add\vtop}
-\unexpanded\def\backgroundline{\dontleavehmode
- \node_backgrounds_boxes_add\hbox}
-
% \def\node_backgrounds_boxes_add#1[#2]%
% {\begingroup
% \clf_enablebackgroundboxes
@@ -91,4 +90,18 @@
{\clf_enablebackgroundboxes
#1\backgroundcolorattr{#2}}
+% less argument carry over:
+%
+% \def\node_backgrounds_boxes_add#1[#2]%
+% {\clf_enablebackgroundboxes#1%
+% \ifcsname\??colorattribute\currentcolorprefix#2\endcsname
+% \thebackgroundcolorattr{\currentcolorprefix#2}%
+% \else\ifcsname\??colorattribute#2\endcsname
+% \thebackgroundcolorattr{#2}%
+% \fi\fi}
+
+% \def\backgroundvbox[#1]{\vbox \backgroundcolorattr{#1}}
+% \def\backgroundvtop[#1]{\vtop \backgroundcolorattr{#1}}
+% \def\backgroundhbox[#1]{\hbox \backgroundcolorattr{#1}}
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-dir.lua b/Master/texmf-dist/tex/context/base/mkiv/node-dir.lua
index 3f0cba67e91..59564ac93bd 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-dir.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-dir.lua
@@ -6,61 +6,304 @@ if not modules then modules = { } end modules ['node-dir'] = {
license = "see context related readme files"
}
--- This is experimental code, so when I change it I need to check other modules
--- too.
---
--- Local par nodes are somewhat special. They start a paragraph and then register
--- the par direction. But they can also show op mid paragraph in which case they
--- register boxes and penalties. In that case the direction should not be affected.
---
--- We can assume that when hpack and prelinebreak filters are called, a local par
--- still sits at the head, but after a linebreak pass this node can be after the
--- leftskip (when present).
-
-local nodes = nodes
-local nuts = nodes.nuts
-
-local nodecodes = nodes.nodecodes
-local localpar_code = nodecodes.localpar
-
-local getid = nuts.getid
-local getsubtype = nuts.getsubtype
-local getdirection = nuts.getdirection
-
-local dirvalues = nodes.dirvalues
-local lefttoright = dirvalues.lefttoright
-local righttoleft = dirvalues.righttoleft
-
-local localparnewgraf_code = 0
-
-local function newstack(head,direction)
- local stack = { }
- local top = 0
- if head and getid(head) == localpar_code and getsubtype(head) == localparnewgraf_code then
- direction = getdirection(head)
- end
- if not direction then
- direction = lefttoright
- elseif direction == "TLT" then
- direction = lefttoright
- elseif direction == "TRT" then
- direction = righttoleft
- end
- local function update(node)
- local dir, pop = getdirection(node)
- if not pop then
- top = top + 1
- stack[top] = dir
- return dir
- elseif top == 0 then
- return direction
- elseif top == 1 then
- top = 0
- return direction
- else
- top = top - 1
- return stack[top]
- end
- end
- return direction, update
-end
+--[[
+<p>In the process of cleaning up the lua variant of the parbuilder
+we ran into a couple of functions (translated c macros) that were
+somewhat inefficient. More convenient is to use hashes although at
+the c-end still macros are used. In the process directions.h was
+adapted and now has the mappings as comments. This lua file is
+based on that file.
+]]--
+
+local allocate = utilities.storage.allocate
+
+local nodes = nodes
+
+nodes.is_mirrored = allocate {
+ -- TLT = false,
+ -- TRT = false,
+ -- LTL = false,
+ -- RTT = false,
+}
+
+nodes.is_rotated = allocate { -- used
+ -- TLT = false,
+ -- TRT = false,
+ -- LTL = false,
+ RTT = true, ["+RTT"] = true,
+}
+
+nodes.textdir_is_parallel = allocate { -- used
+ TLT = {
+ TLT = true, ["+TLT"] = true,
+ TRT = true, ["+TRT"] = true,
+ -- LTL = false,
+ -- RTT = false,
+ },
+ TRT= {
+ TLT = true, ["+TLT"] = true,
+ TRT = true, ["+TRT"] = true,
+ -- LTL = false,
+ -- RTT = false,
+ },
+ LTL = {
+ -- TLT = false,
+ -- TRT = false,
+ LTL = true, ["+LTL"] = true,
+ RTT = true, ["+RTT"] = true,
+ },
+ RTT = {
+ -- TLT = false,
+ -- TRT = false,
+ LTL = true, ["+LTL"] = true,
+ RTT = true, ["+RTT"] = true,
+ }
+}
+
+nodes.pardir_is_parallel = allocate {
+ TLT = {
+ TLT = true, ["+TLT"] = true,
+ TRT = true, ["+TRT"] = true,
+ -- LTL = false,
+ -- RTT = false,
+ },
+ TRT = {
+ TLT = true, ["+TLT"] = true,
+ TRT = true, ["+TRT"] = true,
+ -- LTL = false,
+ -- RTT = false,
+ },
+ LTL = {
+ -- TLT = false,
+ -- TRT = false,
+ LTL = true, ["+LTL"] = true,
+ RTT = true, ["+RTT"] = true,
+ },
+ RTT = {
+ -- TLT = false,
+ -- TRT = false,
+ LTL = true, ["+LTL"] = true,
+ RTT = true, ["+RTT"] = true,
+ },
+}
+
+nodes.pardir_is_opposite = allocate {
+ TLT = {
+ -- TLT = false,
+ -- TRT = false,
+ -- LTL = false,
+ -- RTT = false,
+ },
+ TRT = {
+ -- TLT = false,
+ -- TRT = false,
+ -- LTL = false,
+ -- RTT = false,
+ },
+ LTL = {
+ -- TLT = false,
+ -- TRT = false,
+ -- LTL = false,
+ RTT = true, ["+RTT"] = true,
+ },
+ RTT = {
+ -- TLT = false,
+ -- TRT = false,
+ LTL = true, ["+LTL"] = true,
+ -- RTT = false,
+ },
+}
+
+nodes.textdir_is_opposite = allocate { -- used
+ TLT = {
+ -- TLT = false,
+ TRT = true, ["+TRT"] = true,
+ -- LTL = false,
+ -- RTT = false,
+ },
+ TRT= {
+ TLT = true, ["+TLT"] = true,
+ -- TRT = false,
+ -- LTL = false,
+ -- RTT = false,
+ },
+ LTL = {
+ -- TLT = false,
+ -- TRT = false,
+ -- LTL = false,
+ -- RTT = false,
+ },
+ RTT = {
+ -- TLT = false,
+ -- TRT = false,
+ -- LTL = false,
+ -- RTT = false,
+ },
+}
+
+nodes.glyphdir_is_opposite = allocate {
+ TLT = {
+ -- TLT = false,
+ -- TRT = false,
+ -- LTL = false,
+ -- RTT = false,
+ },
+ TRT= {
+ -- TLT = false,
+ -- TRT = false,
+ -- LTL = false,
+ -- RTT = false,
+ },
+ LTL = {
+ -- TLT = false,
+ -- TRT = false,
+ -- LTL = false,
+ -- RTT = false,
+ },
+ RTT = {
+ -- TLT = false,
+ -- TRT = false,
+ -- LTL = false,
+ -- RTT = false,
+ },
+}
+
+nodes.pardir_is_equal = allocate { -- used
+ TLT = {
+ TLT = true, ["+TLT"] = true,
+ TRT = true, ["+TRT"] = true,
+ -- LTL = false,
+ -- RTT = false,
+ },
+ TRT= {
+ TLT = true, ["+TLT"] = true,
+ TRT = true, ["+TRT"] = true,
+ -- LTL = false,
+ -- RTT = false,
+ },
+ LTL= {
+ -- TLT = false,
+ -- TRT = false,
+ LTL = true, ["+LTL"] = true,
+ -- RTT = false,
+ },
+ RTT= {
+ -- TLT = false,
+ -- TRT = false,
+ -- LTL = false,
+ RTT = true, ["+RTT"] = true,
+ },
+}
+
+nodes.textdir_is_equal = allocate { -- used
+ TLT = {
+ TLT = true, ["+TLT"] = true,
+ -- TRT = false,
+ -- LTL = false,
+ -- RTT = false,
+ },
+ TRT= {
+ -- TLT = false,
+ TRT = true, ["+TRT"] = true,
+ -- LTL = false,
+ -- RTT = false,
+ },
+ LTL = {
+ -- TLT = false,
+ -- TRT = false,
+ LTL = true, ["+LTL"] = true,
+ RTT = true, ["+RTT"] = true,
+ },
+ RTT = {
+ -- TLT = false,
+ -- TRT = false,
+ LTL = true, ["+LTL"] = true,
+ RTT = true, ["+RTT"] = true,
+ },
+}
+
+nodes.glyphdir_is_equal = allocate { -- used
+ TLT = {
+ TLT = true, ["+TLT"] = true,
+ TRT = true, ["+TRT"] = true,
+ -- LTL = false,
+ RTT = true, ["+RTT"] = true,
+ },
+ TRT= {
+ TLT = true, ["+TLT"] = true,
+ TRT = true, ["+TRT"] = true,
+ -- LTL = false,
+ RTT = true, ["+RTT"] = true,
+ },
+ LTL = {
+ -- TLT = false,
+ -- TRT = false,
+ LTL = true, ["+LTL"] = true,
+ -- RTT = false,
+ },
+ RTT = {
+ TLT = true, ["+TLT"] = true,
+ TRT = true, ["+TRT"] = true,
+ -- LTL = false,
+ RTT = true, ["+RTT"] = true,
+ },
+}
+
+nodes.partextdir_is_equal = allocate {
+ TLT = {
+ -- TLT = false,
+ -- TRT = false,
+ LTL = true, ["+LTL"] = true,
+ RTT = true, ["+RTT"] = true,
+ },
+ TRT= {
+ -- TLT = false,
+ -- TRT = false,
+ LTL = true, ["+LTL"] = true,
+ RTT = true, ["+RTT"] = true,
+ },
+ LTL = {
+ TLT = true, ["+TLT"] = true,
+ -- TRT = false,
+ -- LTL = false,
+ -- RTT = false,
+ },
+ RTT = {
+ -- TLT = false,
+ TRT = true, ["+TRT"] = true,
+ -- LTL = false,
+ -- RTT = false,
+ },
+}
+
+nodes.textdir_is_is = allocate {
+ TLT = true, ["+TLT"] = true,
+ -- TRT = false,
+ -- LTL = false,
+ -- RTT = false,
+}
+
+nodes.glyphdir_is_orthogonal = allocate {
+ TLT = true, ["+TLT"] = true,
+ TRT = true, ["+TRT"] = true,
+ LTL = true, ["+LTL"] = true,
+ -- RTT = false
+}
+
+nodes.dir_is_pop = allocate { -- used
+ ["-TRT"] = true,
+ ["-TLT"] = true,
+ ["-LTL"] = true,
+ ["-RTT"] = true,
+}
+
+nodes.dir_negation = allocate { -- used
+ ["-TRT"] = "+TRT",
+ ["-TLT"] = "+TLT",
+ ["-LTL"] = "+LTL",
+ ["-RTT"] = "+RTT",
+ ["+TRT"] = "-TRT",
+ ["+TLT"] = "-TLT",
+ ["+LTL"] = "-LTL",
+ ["+RTT"] = "-RTT",
+}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-fin.lua b/Master/texmf-dist/tex/context/base/mkiv/node-fin.lua
index dc681d16556..975eb0becc0 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-fin.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-fin.lua
@@ -16,15 +16,16 @@ local next, type, format = next, type, string.format
local attributes, nodes, node = attributes, nodes, node
local nuts = nodes.nuts
+local tonode = nuts.tonode
+local tonut = nuts.tonut
local getnext = nuts.getnext
+local getprev = nuts.getprev
local getid = nuts.getid
local getlist = nuts.getlist
local getleader = nuts.getleader
local getattr = nuts.getattr
local getwidth = nuts.getwidth
-local getwhd = nuts.getwhd
-local getorientation = nuts.getorientation
local setlist = nuts.setlist
local setleader = nuts.setleader
@@ -33,22 +34,10 @@ local copy_node = nuts.copy
local insert_node_before = nuts.insert_before
local insert_node_after = nuts.insert_after
-local nextnode = nuts.traversers.node
-
local nodecodes = nodes.nodecodes
+local whatcodes = nodes.whatcodes
local rulecodes = nodes.rulecodes
------ normalrule_code = rulecodes.normal
-local boxrule_code = rulecodes.box
-local imagerule_code = rulecodes.image
-local emptyrule_code = rulecodes.empty
------ userrule_code = rulecodes.user
------ overrule_code = rulecodes.over
------ underrule_code = rulecodes.under
------ fractionrule_code = rulecodes.fraction
------ radicalrule_code = rulecodes.radical
------ outlinerule_code = rulecodes.outline
-
local glyph_code = nodecodes.glyph
local disc_code = nodecodes.disc
local glue_code = nodecodes.glue
@@ -93,34 +82,37 @@ local finalizer = plugin.finalizer
local flusher = plugin.flusher
if not processor then
return function(head)
- return head
+ return head, false
end
elseif initializer or finalizer or resolver then
return function(head)
starttiming(attributes)
- local used, inheritance
+ local done, used, ok, inheritance = false, nil, false, nil
if resolver then
inheritance = resolver()
end
if initializer then
initializer(namespace,attribute,head)
end
- head = processor(namespace,attribute,head,inheritance)
- if finalizer then
- head, used = finalizer(namespace,attribute,head)
- if used and flusher then
- head = flusher(namespace,attribute,head,used)
+ head, ok = processor(namespace,attribute,head,inheritance)
+ if ok then
+ if finalizer then
+ head, ok, used = finalizer(namespace,attribute,head)
+ if used and flusher then
+ head = flusher(namespace,attribute,head,used)
+ end
end
+ done = true
end
stoptiming(attributes)
- return head
+ return head, done
end
else
return function(head)
starttiming(attributes)
- head = processor(namespace,attribute,head)
+ local head, done = processor(namespace,attribute,head)
stoptiming(attributes)
- return head
+ return head, done
end
end
nodes.plugindata = nil
@@ -134,7 +126,7 @@ end
-- the injectors
local nsdata, nsnone, nslistwise, nsforced, nsselector, nstrigger
-local current, current_selector = 0, 0 -- nb, stack has a local current !
+local current, current_selector, done = 0, 0, false -- nb, stack has a local current !
local nsbegin, nsend, nsreset
function states.initialize(namespace,attribute,head)
@@ -146,6 +138,7 @@ function states.initialize(namespace,attribute,head)
nstrigger = triggering and namespace.triggering and a_trigger
current = 0
current_selector = 0
+ done = false -- todo: done cleanup
nsstep = namespace.resolve_step
if nsstep then
nsreset = namespace.resolve_reset
@@ -158,6 +151,7 @@ end
function states.finalize(namespace,attribute,head) -- is this one ok?
if current > 0 and nsnone then
+ head = tonut(head)
local id = getid(head)
if id == hlist_code or id == vlist_code then
local content = getlist(head)
@@ -170,17 +164,20 @@ function states.finalize(namespace,attribute,head) -- is this one ok?
else
head = insert_node_before(head,head,copy_node(nsnone))
end
- return head, true
+ return tonode(head), true, true
end
- return head, false
+ return head, false, false
end
-- we need to deal with literals too (reset as well as oval)
local function process(attribute,head,inheritance,default) -- one attribute
+ local stack = head
+ local done = false
local check = false
local leader = nil
- for stack, id in nextnode, head do
+ while stack do
+ local id = getid(stack)
if id == glyph_code or id == disc_code then
check = true -- disc no longer needed as we flatten replace
elseif id == glue_code then
@@ -191,52 +188,39 @@ local function process(attribute,head,inheritance,default) -- one attribute
elseif id == hlist_code or id == vlist_code then
local content = getlist(stack)
if content then
- -- tricky checking
- local outer
- if getorientation(stack) then
- outer = getattr(stack,attribute)
- if outer then
- if default and outer == inheritance then
- if current ~= default then
- head = insert_node_before(head,stack,copy_node(nsdata[default]))
- current = default
- end
- elseif current ~= outer then
- head = insert_node_before(head,stack,copy_node(nsdata[c]))
- current = outer
- end
- elseif default and inheritance then
- if current ~= default then
- head = insert_node_before(head,stack,copy_node(nsdata[default]))
- current = default
- end
- elseif current > 0 then
- head = insert_node_before(head,stack,copy_node(nsnone))
- current = 0
- end
- end
-- begin nested --
- local list
if nstrigger and getattr(stack,nstrigger) then
- if not outer then
- outer = getattr(stack,attribute)
- end
+ local outer = getattr(stack,attribute)
if outer ~= inheritance then
- list = process(attribute,content,inheritance,outer)
+ local list, ok = process(attribute,content,inheritance,outer)
+ if content ~= list then
+ setlist(stack,list)
+ end
+ if ok then
+ done = true
+ end
else
- list = process(attribute,content,inheritance,default)
+ local list, ok = process(attribute,content,inheritance,default)
+ if content ~= list then
+ setlist(stack,list)
+ end
+ if ok then
+ done = true
+ end
end
else
- list = process(attribute,content,inheritance,default)
- end
- if content ~= list then
- setlist(stack,list)
+ local list, ok = process(attribute,content,inheritance,default)
+ if content ~= list then
+ setlist(stack,list)
+ end
+ if ok then
+ done = true
+ end
end
-- end nested --
end
elseif id == rule_code then
- local wd, ht, dp = getwhd(stack)
- check = wd ~= 0 or (ht+dp) ~= 0
+ check = getwidth(stack) ~= 0
end
-- much faster this way than using a check() and nested() function
if check then
@@ -246,10 +230,12 @@ local function process(attribute,head,inheritance,default) -- one attribute
if current ~= default then
head = insert_node_before(head,stack,copy_node(nsdata[default]))
current = default
+ done = true
end
elseif current ~= c then
head = insert_node_before(head,stack,copy_node(nsdata[c]))
current = c
+ done = true
end
if leader then
local savedcurrent = current
@@ -261,19 +247,33 @@ local function process(attribute,head,inheritance,default) -- one attribute
current = 0
end
-- begin nested --
- local list
if nstrigger and getattr(stack,nstrigger) then
local outer = getattr(stack,attribute)
if outer ~= inheritance then
- list = process(attribute,leader,inheritance,outer)
+ local list, ok = process(attribute,leader,inheritance,outer)
+ if leader ~= list then
+ setleader(stack,list)
+ end
+ if ok then
+ done = true
+ end
else
- list = process(attribute,leader,inheritance,default)
+ local list, ok = process(attribute,leader,inheritance,default)
+ if leader ~= list then
+ setleader(stack,list)
+ end
+ if ok then
+ done = true
+ end
end
else
- list = process(attribute,leader,inheritance,default)
- end
- if leader ~= list then
- setleader(stack,list)
+ local list, ok = process(attribute,leader,inheritance,default)
+ if leader ~= list then
+ setleader(stack,list)
+ end
+ if ok then
+ done = true
+ end
end
-- end nested --
current = savedcurrent
@@ -283,19 +283,23 @@ local function process(attribute,head,inheritance,default) -- one attribute
if current ~= default then
head = insert_node_before(head,stack,copy_node(nsdata[default]))
current = default
+ done = true
end
elseif current > 0 then
head = insert_node_before(head,stack,copy_node(nsnone))
current = 0
+ done = true
end
check = false
end
+ stack = getnext(stack)
end
- return head
+ return head, done
end
states.process = function(namespace,attribute,head,default)
- return process(attribute,head,default)
+ local head, done = process(attribute,tonut(head),default)
+ return tonode(head), done
end
-- we can force a selector, e.g. document wide color spaces, saves a little
@@ -305,9 +309,13 @@ end
-- each other with the same color but different color spaces e.g. \showcolor)
local function selective(attribute,head,inheritance,default) -- two attributes
+ -- local head = head
+ local stack = head
+ local done = false
local check = false
local leader = nil
- for stack, id, subtype in nextnode, head do
+ while stack do
+ local id = getid(stack)
if id == glyph_code or id == disc_code then
check = true -- disc no longer needed as we flatten replace
elseif id == glue_code then
@@ -318,66 +326,41 @@ local function selective(attribute,head,inheritance,default) -- two attributes
elseif id == hlist_code or id == vlist_code then
local content = getlist(stack)
if content then
- -- tricky checking
- local outer
- if getorientation(stack) then
- outer = getattr(stack,attribute)
- if outer then
- if default and outer == inheritance then
- if current ~= default then
- local data = nsdata[default]
- head = insert_node_before(head,stack,copy_node(data[nsforced or getattr(stack,nsselector) or nsselector]))
- current = default
- end
- else
- local s = getattr(stack,nsselector)
- -- local s = nsforced or getattr(stack,nsselector)
- if current ~= outer or current_selector ~= s then
- local data = nsdata[outer]
- head = insert_node_before(head,stack,copy_node(data[nsforced or s or nsselector]))
- current = outer
- current_selector = s
- end
- end
- elseif default and inheritance then
- if current ~= default then
- local data = nsdata[default]
- head = insert_node_before(head,stack,copy_node(data[nsforced or getattr(stack,nsselector) or nsselector]))
- current = default
- end
- elseif current > 0 then
- head = insert_node_before(head,stack,copy_node(nsnone))
- current, current_selector = 0, 0
- end
- end
-- begin nested
- local list
if nstrigger and getattr(stack,nstrigger) then
- if not outer then
- outer = getattr(stack,attribute)
- end
+ local outer = getattr(stack,attribute)
if outer ~= inheritance then
- list = selective(attribute,content,inheritance,outer)
+ local list, ok = selective(attribute,content,inheritance,outer)
+ if content ~= list then
+ setlist(stack,list)
+ end
+ if ok then
+ done = true
+ end
else
- list = selective(attribute,content,inheritance,default)
+ local list, ok = selective(attribute,content,inheritance,default)
+ if content ~= list then
+ setlist(stack,list)
+ end
+ if ok then
+ done = true
+ end
end
else
- list = selective(attribute,content,inheritance,default)
- end
- if content ~= list then
- setlist(stack,list)
+ local list, ok = selective(attribute,content,inheritance,default)
+ if content ~= list then
+ setlist(stack,list)
+ end
+ if ok then
+ done = true
+ end
end
-- end nested
end
elseif id == rule_code then
- if subtype == boxrule_code or subtype == imagerule_code or subtype == emptyrule_code then
- -- so no redundant color stuff (only here, layers for instance should obey)
- check = false
- else
- local wd, ht, dp = getwhd(stack)
- check = wd ~= 0 or (ht+dp) ~= 0
- end
+ check = getwidth(stack) ~= 0
end
+
if check then
local c = getattr(stack,attribute)
if c then
@@ -386,6 +369,9 @@ local function selective(attribute,head,inheritance,default) -- two attributes
local data = nsdata[default]
head = insert_node_before(head,stack,copy_node(data[nsforced or getattr(stack,nsselector) or nsselector]))
current = default
+ if ok then
+ done = true
+ end
end
else
local s = getattr(stack,nsselector)
@@ -393,25 +379,43 @@ local function selective(attribute,head,inheritance,default) -- two attributes
if current ~= c or current_selector ~= s then
local data = nsdata[c]
head = insert_node_before(head,stack,copy_node(data[nsforced or s or nsselector]))
+ -- head = insert_node_before(head,stack,copy_node(data[s or nsselector]))
current = c
current_selector = s
+ if ok then
+ done = true
+ end
end
end
if leader then
-- begin nested
- local list
if nstrigger and getattr(stack,nstrigger) then
local outer = getattr(stack,attribute)
if outer ~= inheritance then
- list = selective(attribute,leader,inheritance,outer)
+ local list, ok = selective(attribute,leader,inheritance,outer)
+ if leader ~= list then
+ setleader(stack,list)
+ end
+ if ok then
+ done = true
+ end
else
- list = selective(attribute,leader,inheritance,default)
+ local list, ok = selective(attribute,leader,inheritance,default)
+ if leader ~= list then
+ setleader(stack,list)
+ end
+ if ok then
+ done = true
+ end
end
else
- list = selective(attribute,leader,inheritance,default)
- end
- if leader ~= list then
- setleader(stack,list)
+ local list, ok = selective(attribute,leader,inheritance,default)
+ if leader ~= list then
+ setleader(stack,list)
+ end
+ if ok then
+ done = true
+ end
end
-- end nested
leader = false
@@ -421,19 +425,22 @@ local function selective(attribute,head,inheritance,default) -- two attributes
local data = nsdata[default]
head = insert_node_before(head,stack,copy_node(data[nsforced or getattr(stack,nsselector) or nsselector]))
current = default
+ done = true
end
elseif current > 0 then
head = insert_node_before(head,stack,copy_node(nsnone))
- current, current_selector = 0, 0
+ current, current_selector, done = 0, 0, true
end
check = false
end
+ stack = getnext(stack)
end
- return head
+ return head, done
end
states.selective = function(namespace,attribute,head,default)
- return selective(attribute,head,default)
+ local head = selective(attribute,tonut(head),default)
+ return tonode(head), true
end
-- Ideally the next one should be merged with the previous but keeping it separate is
@@ -447,6 +454,7 @@ end
local function stacked(attribute,head,default) -- no triggering, no inheritance, but list-wise
local stack = head
+ local done = false
local current = default or 0
local depth = 0
local check = false
@@ -464,30 +472,42 @@ local function stacked(attribute,head,default) -- no triggering, no inheritance,
local content = getlist(stack)
if content then
-- the problem is that broken lines gets the attribute which can be a later one
- local list
if nslistwise then
local a = getattr(stack,attribute)
if a and current ~= a and nslistwise[a] then -- viewerlayer / needs checking, see below
local p = current
current = a
head = insert_node_before(head,stack,copy_node(nsdata[a]))
- list = stacked(attribute,content,current) -- two return values
+ local list = stacked(attribute,content,current) -- two return values
+ if content ~= list then
+ setlist(stack,list)
+ end
head, stack = insert_node_after(head,stack,copy_node(nsnone))
current = p
+ done = true
else
- list = stacked(attribute,content,current)
+ local list, ok = stacked(attribute,content,current)
+ if content ~= list then
+ setlist(stack,list) -- only if ok
+ end
+ if ok then
+ done = true
+ end
end
else
- list = stacked(attribute,content,current)
- end
- if content ~= list then
- setlist(stack,list) -- only if ok
+ local list, ok = stacked(attribute,content,current)
+ if content ~= list then
+ setlist(stack,list) -- only if ok
+ end
+ if ok then
+ done = true
+ end
end
end
elseif id == rule_code then
- local wd, ht, dp = getwhd(stack)
- check = wd ~= 0 or (ht+dp) ~= 0
+ check = getwidth(stack) ~= 0
end
+
if check then
local a = getattr(stack,attribute)
if a then
@@ -495,14 +515,15 @@ local function stacked(attribute,head,default) -- no triggering, no inheritance,
head = insert_node_before(head,stack,copy_node(nsdata[a]))
depth = depth + 1
current = a
+ done = true
end
if leader then
- local content = getlist(leader)
- if content then
- local list = stacked(attribute,content,current)
- if leader ~= list then
- setleader(stack,list) -- only if ok
- end
+ local list, ok = stacked(attribute,content,current)
+ if leader ~= list then
+ setleader(stack,list) -- only if ok
+ end
+ if ok then
+ done = true
end
leader = false
end
@@ -512,6 +533,7 @@ local function stacked(attribute,head,default) -- no triggering, no inheritance,
head = insert_node_before(head,stack,copy_node(nsnone))
depth = depth - 1
current = 0
+ done = true
end
check = false
end
@@ -521,22 +543,24 @@ local function stacked(attribute,head,default) -- no triggering, no inheritance,
head = insert_node_after(head,stack,copy_node(nsnone))
depth = depth - 1
end
- return head
+ return head, done
end
states.stacked = function(namespace,attribute,head,default)
- return stacked(attribute,head,default)
+ local head, done = stacked(attribute,tonut(head),default)
+ return tonode(head), done
end
-- experimental
local function stacker(attribute,head,default) -- no triggering, no inheritance, but list-wise
- -- nsbegin()
+-- nsbegin()
local stacked = false
local current = head
local previous = head
+ local done = false
local attrib = default or unsetvalue
local check = false
local leader = false
@@ -552,27 +576,38 @@ local function stacker(attribute,head,default) -- no triggering, no inheritance,
end
elseif id == hlist_code or id == vlist_code then
local content = getlist(current)
- if content then
- local list
- if nslistwise then
- local a = getattr(current,attribute)
- if a and attrib ~= a and nslistwise[a] then -- viewerlayer
- head = insert_node_before(head,current,copy_node(nsdata[a]))
- list = stacker(attribute,content,a)
- head, current = insert_node_after(head,current,copy_node(nsnone))
- else
- list = stacker(attribute,content,attrib)
+ if not content then
+ -- skip
+ elseif nslistwise then
+ local a = getattr(current,attribute)
+ if a and attrib ~= a and nslistwise[a] then -- viewerlayer
+ head = insert_node_before(head,current,copy_node(nsdata[a]))
+ local list = stacker(attribute,content,a)
+ if list ~= content then
+ setlist(current,list)
end
+ done = true
+ head, current = insert_node_after(head,current,copy_node(nsnone))
else
- list = stacker(attribute,content,default)
+ local list, ok = stacker(attribute,content,attrib)
+ if content ~= list then
+ setlist(current,list)
+ end
+ if ok then
+ done = true
+ end
end
+ else
+ local list, ok = stacker(attribute,content,default)
if list ~= content then
setlist(current,list)
end
+ if ok then
+ done = true
+ end
end
elseif id == rule_code then
- local wd, ht, dp = getwhd(current)
- check = wd ~= 0 or (ht+dp) ~= 0
+ check = getwidth(current) ~= 0
end
if check then
@@ -584,22 +619,16 @@ local function stacker(attribute,head,default) -- no triggering, no inheritance,
end
local n = nsstep(a)
if n then
- head = insert_node_before(head,current,n) -- a
+ head = insert_node_before(head,current,tonut(n)) -- a
end
attrib = a
+ done = true
if leader then
-- tricky as a leader has to be a list so we cannot inject before
- -- local list = stacker(attribute,leader,attrib)
- -- leader = false
-
- local content = getlist(leader)
- if content then
- local list = stacker(attribute,leader,attrib)
- if leader ~= list then
- setleader(current,list)
- end
+ local list, ok = stacker(attribute,leader,attrib)
+ if ok then
+ done = true
end
-
leader = false
end
end
@@ -613,101 +642,18 @@ local function stacker(attribute,head,default) -- no triggering, no inheritance,
if stacked then
local n = nsend()
while n do
- head = insert_node_after(head,previous,n)
+ head = insert_node_after(head,previous,tonut(n))
n = nsend()
end
end
- return head
+ return head, done
end
--- local nextid = nodes.nuts.traversers.id
---
--- local function stacker(attribute,head,default) -- no triggering, no inheritance, but list-wise
---
--- -- nsbegin()
--- local stacked = false
---
--- local current = head
--- local previous = head
--- local attrib = default or unsetvalue
--- local check = false
--- local leader = false
---
--- local id = getid(current)
--- while current do
--- if id == glyph_code then
--- check = true
--- elseif id == glue_code then
--- leader = getleader(current)
--- if leader then
--- check = true
--- end
--- elseif id == hlist_code or id == vlist_code then
--- local content = getlist(current)
--- if content then
--- local list
--- if nslistwise then
--- local a = getattr(current,attribute)
--- if a and attrib ~= a and nslistwise[a] then -- viewerlayer
--- head = insert_node_before(head,current,copy_node(nsdata[a]))
--- list = stacker(attribute,content,a)
--- head, current = insert_node_after(head,current,copy_node(nsnone))
--- else
--- list = stacker(attribute,content,attrib)
--- end
--- else
--- list = stacker(attribute,content,default)
--- end
--- if list ~= content then
--- setlist(current,list)
--- end
--- end
--- elseif id == rule_code then
--- check = getwidth(current) ~= 0
--- end
---
--- if check then
--- local a = getattr(current,attribute) or unsetvalue
--- if a ~= attrib then
--- if not stacked then
--- stacked = true
--- nsbegin()
--- end
--- local n = nsstep(a)
--- if n then
--- head = insert_node_before(head,current,n) -- a
--- end
--- attrib = a
--- if leader then
--- -- tricky as a leader has to be a list so we cannot inject before
--- local list = stacker(attribute,leader,attrib)
--- leader = false
--- end
--- end
--- check = false
--- end
---
--- previous = current
---
--- current, id = nextid(current,current)
--- end
---
--- if stacked then
--- local n = nsend()
--- while n do
--- head = insert_node_after(head,previous,n)
--- n = nsend()
--- end
--- end
---
--- return head
--- end
-
states.stacker = function(namespace,attribute,head,default)
- local head = stacker(attribute,head,default)
+ local head, done = stacker(attribute,tonut(head),default)
nsreset()
- return head
+ return tonode(head), done
end
-- -- --
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-fin.mkiv b/Master/texmf-dist/tex/context/base/mkiv/node-fin.mkiv
index 086b19ae5dc..4f1ff2aba41 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-fin.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-fin.mkiv
@@ -18,8 +18,8 @@
\unprotect
-\registerctxluafile{node-shp}{optimize}
-\registerctxluafile{node-fin}{optimize} % we might generalize this one
+\registerctxluafile{node-shp}{}
+\registerctxluafile{node-fin}{} % we might generalize this one
% we might have two variants at some point (efficiency)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-fnt.lua b/Master/texmf-dist/tex/context/base/mkiv/node-fnt.lua
index 154853121d0..f846f996d52 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-fnt.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-fnt.lua
@@ -37,20 +37,22 @@ local starttiming = statistics.starttiming
local stoptiming = statistics.stoptiming
local nodecodes = nodes.nodecodes
-local boundarycodes = nodes.boundarycodes
-
local handlers = nodes.handlers
local nuts = nodes.nuts
+local tonut = nuts.tonut
+local tonode = nuts.tonode
local getattr = nuts.getattr
local getid = nuts.getid
+local getfont = nuts.getfont
local getsubtype = nuts.getsubtype
+local getchar = nuts.getchar
local getdisc = nuts.getdisc
local getnext = nuts.getnext
local getprev = nuts.getprev
local getboth = nuts.getboth
-local getdata = nuts.getdata
+local getfield = nuts.getfield
----- getdisc = nuts.getdisc
local setchar = nuts.setchar
local setlink = nuts.setlink
@@ -60,18 +62,14 @@ local setprev = nuts.setprev
local isglyph = nuts.isglyph -- unchecked
local ischar = nuts.ischar -- checked
------ traverse_id = nuts.traverse_id
------ traverse_char = nuts.traverse_char
-local nextboundary = nuts.traversers.boundary
-local nextdisc = nuts.traversers.disc
-local nextchar = nuts.traversers.char
-
+local traverse_id = nuts.traverse_id
+local traverse_char = nuts.traverse_char
+local protect_glyph = nuts.protect_glyph
local flush_node = nuts.flush
local disc_code = nodecodes.disc
local boundary_code = nodecodes.boundary
-
-local wordboundary_code = boundarycodes.word
+local word_boundary = nodes.boundarycodes.word
local protect_glyphs = nuts.protect_glyphs
local unprotect_glyphs = nuts.unprotect_glyphs
@@ -146,10 +144,10 @@ local kerning = nuts.kerning
-- -- -- this will go away
--
--- local disccodes = nodes.disccodes
--- local explicitdisc_code = disccodes.explicit
--- local automaticdisc_code = disccodes.automatic
--- local expanders = nil
+-- local disccodes = nodes.disccodes
+-- local explicit_code = disccodes.explicit
+-- local automatic_code = disccodes.automatic
+-- local expanders = nil
--
-- function fonts.setdiscexpansion(v)
-- if v == nil or v == true then
@@ -174,17 +172,17 @@ local function start_trace(head)
report_fonts()
report_fonts("checking node list, run %s",run)
report_fonts()
- local n = head
+ local n = tonut(head)
while n do
local char, id = isglyph(n)
if char then
- local font = id
+ local font = getfont(n)
local attr = getattr(n,0) or 0
report_fonts("font %03i, dynamic %03i, glyph %C",font,attr,char)
elseif id == disc_code then
report_fonts("[disc] %s",nodes.listtoutf(n,true,false,n))
elseif id == boundary_code then
- report_fonts("[boundary] %i:%i",getsubtype(n),getdata(n))
+ report_fonts("[boundary] %i:%i",getsubtype(n),getfield(n,"value"))
else
report_fonts("[%s]",nodecodes[id])
end
@@ -204,23 +202,32 @@ local function stop_trace(u,usedfonts,a,attrfonts,b,basefonts,r,redundant,e,expa
report_fonts()
end
+function handlers.characters(head,groupcode,size,packtype,direction)
+ -- either next or not, but definitely no already processed list
+ starttiming(nodes)
+
+ local usedfonts = { }
+ local attrfonts = { }
+ local basefonts = { }
+ local basefont = nil
+ local prevfont = nil
+ local prevattr = 0
+ local done = false
+ local variants = nil
+ local redundant = nil
+ local nuthead = tonut(head)
+ local lastfont = nil
+ local lastproc = nil
+ local lastnone = nil
+
+ local a, u, b, r, e = 0, 0, 0, 0, 0
+
+ if trace_fontrun then
+ start_trace(head)
+ end
-do
-
- local usedfonts
- local attrfonts
- local basefonts
- local basefont
- local prevfont
- local prevattr
- local variants
- local redundant
- local firstnone
- local lastfont
- local lastproc
- local lastnone
-
- local a, u, b, r, e
+ -- There is no gain in checking for a single glyph and then having a fast path. On the
+ -- metafun manual (with some 2500 single char lists) the difference is just noise.
local function protectnone()
protect_glyphs(firstnone,lastnone)
@@ -289,290 +296,288 @@ do
end
end
- function handlers.characters(head,groupcode,size,packtype,direction)
- -- either next or not, but definitely no already processed list
- starttiming(nodes)
-
- usedfonts = { }
- attrfonts = { }
- basefonts = { }
- basefont = nil
- prevfont = nil
- prevattr = 0
- variants = nil
- redundant = nil
- firstnone = nil
- lastfont = nil
- lastproc = nil
- lastnone = nil
-
- a, u, b, r, e = 0, 0, 0, 0, 0
-
- if trace_fontrun then
- start_trace(head)
- end
-
- -- There is no gain in checking for a single glyph and then having a fast path. On the
- -- metafun manual (with some 2500 single char lists) the difference is just noise.
-
- for n, char, font in nextchar, head do
- -- local attr = (none and prevattr) or getattr(n,0) or 0 -- zero attribute is reserved for fonts in context
- local attr = getattr(n) or 0 -- zero attribute is reserved for fonts in context
- if font ~= prevfont or attr ~= prevattr then
- prevfont = font
- prevattr = attr
- variants = fontvariants[font]
- local fontmode = fontmodes[font]
- if fontmode == "none" then
- setnone(n)
- elseif fontmode == "base" then
- setbase(n)
- else
- setnode(n,font,attr)
- end
- elseif firstnone then
- lastnone = n
+ for n in traverse_char(nuthead) do
+ local font = getfont(n)
+ -- local attr = (none and prevattr) or getattr(n,0) or 0 -- zero attribute is reserved for fonts in context
+ local attr = getattr(n,0) or 0 -- zero attribute is reserved for fonts in context
+ if font ~= prevfont or attr ~= prevattr then
+ prevfont = font
+ prevattr = attr
+ variants = fontvariants[font]
+ local fontmode = fontmodes[font]
+ if fontmode == "none" then
+ setnone(n)
+ elseif fontmode == "base" then
+ setbase(n)
+ else
+ setnode(n,font,attr)
end
- if variants then
- if (char >= 0xFE00 and char <= 0xFE0F) or (char >= 0xE0100 and char <= 0xE01EF) then
- local hash = variants[char]
- if hash then
- local p = getprev(n)
- if p then
- local char = ischar(p) -- checked
- local variant = hash[char]
- if variant then
- if trace_variants then
- report_fonts("replacing %C by %C",char,variant)
- end
- setchar(p,variant)
- if redundant then
- r = r + 1
- redundant[r] = n
- else
- r = 1
- redundant = { n }
- end
+ elseif firstnone then
+ lastnone = n
+ end
+ if variants then
+ local char = getchar(n)
+ if char >= 0xFE00 and (char <= 0xFE0F or (char >= 0xE0100 and char <= 0xE01EF)) then
+ local hash = variants[char]
+ if hash then
+ local p = getprev(n)
+ if p then
+ local char = ischar(p) -- checked
+ local variant = hash[char]
+ if variant then
+ if trace_variants then
+ report_fonts("replacing %C by %C",char,variant)
+ end
+ setchar(p,variant)
+ if redundant then
+ r = r + 1
+ redundant[r] = n
+ else
+ r = 1
+ redundant = { n }
end
end
- elseif keep_redundant then
- -- go on, can be used for tracing
- elseif redundant then
- r = r + 1
- redundant[r] = n
- else
- r = 1
- redundant = { n }
end
+ elseif keep_redundant then
+ -- go on, can be used for tracing
+ elseif redundant then
+ r = r + 1
+ redundant[r] = n
+ else
+ r = 1
+ redundant = { n }
end
end
end
+ end
- if firstnone then
- protectnone()
- end
+ if firstnone then
+ protectnone()
+ end
- if force_boundaryrun then
+ if force_boundaryrun then
- -- we can inject wordboundaries and then let the hyphenator do its work
- -- but we need to get rid of those nodes in order to build ligatures
- -- and kern (a rather context thing)
+ -- we can inject wordboundaries and then let the hyphenator do its work
+ -- but we need to get rid of those nodes in order to build ligatures
+ -- and kern (a rather context thing)
- for b, subtype in nextboundary, head do
- if subtype == wordboundary_code then
- if redundant then
- r = r + 1
- redundant[r] = b
- else
- r = 1
- redundant = { b }
- end
+ for b in traverse_id(boundary_code,nuthead) do
+ if getsubtype(b) == word_boundary then
+ if redundant then
+ r = r + 1
+ redundant[r] = b
+ else
+ r = 1
+ redundant = { b }
end
end
-
end
- if redundant then
- for i=1,r do
- local r = redundant[i]
- local p, n = getboth(r)
- if r == head then
- head = n
- setprev(n)
- else
- setlink(p,n)
- end
- if b > 0 then
- for i=1,b do
- local bi = basefonts[i]
- local b1 = bi[1]
- local b2 = bi[2]
- if b1 == b2 then
- if b1 == r then
- bi[1] = false
- bi[2] = false
- end
- elseif b1 == r then
- bi[1] = n
- elseif b2 == r then
- bi[2] = p
+ end
+
+ if redundant then
+ for i=1,r do
+ local r = redundant[i]
+ local p, n = getboth(r)
+ if r == nuthead then
+ nuthead = n
+ setprev(n)
+ else
+ setlink(p,n)
+ end
+ if b > 0 then
+ for i=1,b do
+ local bi = basefonts[i]
+ local b1 = bi[1]
+ local b2 = bi[2]
+ if b1 == b2 then
+ if b1 == r then
+ bi[1] = false
+ bi[2] = false
end
+ elseif b1 == r then
+ bi[1] = n
+ elseif b2 == r then
+ bi[2] = p
end
end
- flush_node(r)
end
+ flush_node(r)
end
+ end
- if force_discrun then
-
- -- basefont is not supported in disc only runs ... it would mean a lot of
- -- ranges .. we could try to run basemode as a separate processor run but
- -- not for now (we can consider it when the new node code is tested
- for d in nextdisc, head do
- -- we could use first_glyph, only doing replace is good enough because
- -- pre and post are normally used for hyphens and these come from fonts
- -- that part of the hyphenated word
- local _, _, r = getdisc(d)
- if r then
- local prevfont = nil
- local prevattr = nil
- local none = false
- for n, char, font in nextchar, r do
- local attr = getattr(n) or 0 -- zero attribute is reserved for fonts in context
- if font ~= prevfont or attr ~= prevattr then
- prevfont = font
- prevattr = attr
- local fontmode = fontmodes[font]
- if fontmode == "none" then
- setnone(n)
- elseif fontmode == "base" then
- setbase(n)
- else
- setnode(n,font,attr)
- end
- elseif firstnone then
- -- lastnone = n
- lastnone = nil
+ if force_discrun then
+
+ -- basefont is not supported in disc only runs ... it would mean a lot of
+ -- ranges .. we could try to run basemode as a separate processor run but
+ -- not for now (we can consider it when the new node code is tested
+ for d in traverse_id(disc_code,nuthead) do
+ -- we could use first_glyph, only doing replace is good enough because
+ -- pre and post are normally used for hyphens and these come from fonts
+ -- that part of the hyphenated word
+ local _, _, r = getdisc(d)
+ if r then
+ local prevfont = nil
+ local prevattr = nil
+ local none = false
+ for n in traverse_char(r) do
+ local font = getfont(n)
+ local attr = getattr(n,0) or 0 -- zero attribute is reserved for fonts in context
+ if font ~= prevfont or attr ~= prevattr then
+ prevfont = font
+ prevattr = attr
+ local fontmode = fontmodes[font]
+ if fontmode == "none" then
+ setnone(n)
+ elseif fontmode == "base" then
+ setbase(n)
+ else
+ setnode(n,font,attr)
end
- -- we assume one font for now (and if there are more and we get into issues then
- -- we can always remove the break)
- break
+ elseif firstnone then
+ -- lastnone = n
+ lastnone = nil
end
- if firstnone then
- protectnone()
- end
- -- elseif expanders then
- -- local subtype = getsubtype(d)
- -- if subtype == automaticdisc_code or subtype == explicitdisc_code then
- -- expanders[subtype](d)
- -- e = e + 1
- -- end
+ -- we assume one font for now (and if there are more and we get into issues then
+ -- we can always remove the break)
+ break
+ end
+ if firstnone then
+ protectnone()
end
+ -- elseif expanders then
+ -- local subtype = getsubtype(d)
+ -- if subtype == automatic_code or subtype == explicit_code then
+ -- expanders[subtype](d)
+ -- e = e + 1
+ -- end
end
-
end
- if trace_fontrun then
- stop_trace(u,usedfonts,a,attrfonts,b,basefonts,r,redundant,e,expanders)
- end
+ end
+
+ if trace_fontrun then
+ stop_trace(u,usedfonts,a,attrfonts,b,basefonts,r,redundant,e,expanders)
+ end
- -- in context we always have at least 2 processors
- if u == 0 then
- -- skip
- elseif u == 1 then
- local attr = a > 0 and 0 or false -- 0 is the savest way
- for i=1,#lastproc do
- head = lastproc[i](head,lastfont,attr,direction)
+ -- in context we always have at least 2 processors
+ if u == 0 then
+ -- skip
+ elseif u == 1 then
+ local attr = a > 0 and 0 or false -- 0 is the savest way
+ for i=1,#lastproc do
+ local h, d = lastproc[i](head,lastfont,attr,direction)
+ if d then
+ if h then
+ head = h
+ end
+ done = true
end
- else
- -- local attr = a == 0 and false or 0 -- 0 is the savest way
- local attr = a > 0 and 0 or false -- 0 is the savest way
- for font, processors in next, usedfonts do -- unordered
- for i=1,#processors do
- head = processors[i](head,font,attr,direction,u)
+ end
+ else
+ -- local attr = a == 0 and false or 0 -- 0 is the savest way
+ local attr = a > 0 and 0 or false -- 0 is the savest way
+ for font, processors in next, usedfonts do -- unordered
+ for i=1,#processors do
+ local h, d = processors[i](head,font,attr,direction,u)
+ if d then
+ if h then
+ head = h
+ end
+ done = true
end
end
end
- if a == 0 then
- -- skip
- elseif a == 1 then
- local font, dynamics = next(attrfonts)
- for attribute, processors in next, dynamics do -- unordered, attr can switch in between
- for i=1,#processors do
- head = processors[i](head,font,attribute,direction)
+ end
+ if a == 0 then
+ -- skip
+ elseif a == 1 then
+ local font, dynamics = next(attrfonts)
+ for attribute, processors in next, dynamics do -- unordered, attr can switch in between
+ for i=1,#processors do
+ local h, d = processors[i](head,font,attribute,direction)
+ if d then
+ if h then
+ head = h
+ end
+ done = true
end
end
- else
- for font, dynamics in next, attrfonts do
- for attribute, processors in next, dynamics do -- unordered, attr can switch in between
- for i=1,#processors do
- head = processors[i](head,font,attribute,direction,a)
+ end
+ else
+ for font, dynamics in next, attrfonts do
+ for attribute, processors in next, dynamics do -- unordered, attr can switch in between
+ for i=1,#processors do
+ local h, d = processors[i](head,font,attribute,direction,a)
+ if d then
+ if h then
+ head = h
+ end
+ done = true
end
end
end
end
- if b == 0 then
- -- skip
- elseif b == 1 then
- -- only one font
- local range = basefonts[1]
+ end
+ if b == 0 then
+ -- skip
+ elseif b == 1 then
+ -- only one font
+ local range = basefonts[1]
+ local start = range[1]
+ local stop = range[2]
+ if (start or stop) and (start ~= stop) then
+ local front = nuthead == start
+ if stop then
+ start = ligaturing(start,stop)
+ start = kerning(start,stop)
+ elseif start then -- safeguard
+ start = ligaturing(start)
+ start = kerning(start)
+ end
+ if front and nuthead ~= start then
+ -- nuthead = start
+ head = tonode(start)
+ end
+ end
+ else
+ -- multiple fonts
+ for i=1,b do
+ local range = basefonts[i]
local start = range[1]
local stop = range[2]
- if (start or stop) and (start ~= stop) then
- local front = head == start
+ if start then -- and start ~= stop but that seldom happens
+ local front = nuthead == start
+ local prev = getprev(start)
+ local next = getnext(stop)
if stop then
- start = ligaturing(start,stop)
- start = kerning(start,stop)
- elseif start then -- safeguard
+ start, stop = ligaturing(start,stop)
+ start, stop = kerning(start,stop)
+ else
start = ligaturing(start)
start = kerning(start)
end
- if front and head ~= start then
- head = start
+ -- is done automatically
+ if prev then
+ setlink(prev,start)
end
- end
- else
- -- multiple fonts
- for i=1,b do
- local range = basefonts[i]
- local start = range[1]
- local stop = range[2]
- if start then -- and start ~= stop but that seldom happens
- local front = head == start
- local prev = getprev(start)
- local next = getnext(stop)
- if stop then
- start, stop = ligaturing(start,stop)
- start, stop = kerning(start,stop)
- else
- start = ligaturing(start)
- start = kerning(start)
- end
- -- is done automatically
- if prev then
- setlink(prev,start)
- end
- if next then
- setlink(stop,next)
- end
- -- till here
- if front and head ~= start then
- head = start
- end
+ if next then
+ setlink(stop,next)
+ end
+ -- till here
+ if front and nuthead ~= start then
+ nuthead = start
+ head = tonode(start)
end
end
end
-
- stoptiming(nodes)
-
- if trace_characters then
- nodes.report(head)
- end
-
- return head
end
-
+ stoptiming(nodes)
+ if trace_characters then
+ nodes.report(head,done)
+ end
+ return head, true
end
-handlers.protectglyphs = protect_glyphs
-handlers.unprotectglyphs = unprotect_glyphs
+handlers.protectglyphs = function(n) protect_glyphs (tonut(n)) return n, true end
+handlers.unprotectglyphs = function(n) unprotect_glyphs(tonut(n)) return n, true end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-ini.lua b/Master/texmf-dist/tex/context/base/mkiv/node-ini.lua
index f910c7e012f..50da140ce98 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-ini.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-ini.lua
@@ -70,12 +70,6 @@ local formatcolumns = utilities.formatters.formatcolumns
local getsubtypes = node.subtypes
local getvalues = node.values
-tex.magicconstants = { -- we use tex.constants for something else
- running = -1073741824,
- maxdimen = 1073741823, -- 0x3FFFFFFF or 2^30-1
- trueinch = 4736286,
-}
-
-- local listcodes = allocate {
-- [0] = "unknown",
-- [1] = "line",
@@ -114,11 +108,12 @@ dircodes = allocate {
}
-- local glyphcodes = allocate {
--- [ 1] = "character",
--- [ 2] = "ligature",
--- [ 4] = "ghost",
--- [ 8] = "left",
--- [16] = "right",
+-- [0] = "character",
+-- [1] = "glyph",
+-- [2] = "ligature",
+-- [3] = "ghost",
+-- [4] = "left",
+-- [5] = "right",
-- }
local glyphcodes = mark(getsubtypes("glyph"))
@@ -286,12 +281,11 @@ local function simplified(t)
end
local nodecodes = simplified(node.types())
-local whatcodes = simplified(node.whatsits and node.whatsits() or { })
+local whatcodes = simplified(node.whatsits())
local usercodes = allocate {
[ 97] = "attribute", -- a
[100] = "number", -- d
- [102] = "float", -- f
[108] = "lua", -- l
[110] = "node", -- n
[115] = "string", -- s
@@ -312,7 +306,7 @@ local noadoptions = allocate {
-- local directionvalues = mark(getvalues("dir"))
-- local gluevalues = mark(getvalues("glue"))
--- local literalvalues = mark(getvalues("literal"))
+-- local pdfliteralvalues = mark(getvalues("pdf_literal"))
local dirvalues = allocate {
[0] = "TLT",
@@ -329,7 +323,7 @@ local gluevalues = allocate {
[4] = "filll",
}
-local literalvalues = allocate {
+local pdfliteralvalues = allocate {
[0] = "origin",
[1] = "page",
[2] = "always",
@@ -362,90 +356,41 @@ usercodes = allocate(swapped(usercodes,usercodes))
noadoptions = allocate(swapped(noadoptions,noadoptions))
dirvalues = allocate(swapped(dirvalues,dirvalues))
gluevalues = allocate(swapped(gluevalues,gluevalues))
-literalvalues = allocate(swapped(literalvalues,literalvalues))
-
-if CONTEXTLMTXMODE > 1 then
- whatcodes.literal = 0x1 whatcodes[0x1] = "literal"
- whatcodes.latelua = 0x2 whatcodes[0x2] = "latelua"
- whatcodes.userdefined = 0x3 whatcodes[0x3] = "userdefined"
- whatcodes.savepos = 0x4 whatcodes[0x4] = "savepos"
- whatcodes.save = 0x5 whatcodes[0x5] = "save"
- whatcodes.restore = 0x6 whatcodes[0x6] = "restore"
- whatcodes.setmatrix = 0x7 whatcodes[0x7] = "setmatrix"
- whatcodes.open = 0x8 whatcodes[0x8] = "open"
- whatcodes.close = 0x9 whatcodes[0x9] = "close"
- whatcodes.write = 0xA whatcodes[0xA] = "write"
-elseif not whatcodes.literal then
- whatcodes.literal = whatcodes.pdfliteral
- whatcodes.save = whatcodes.pdfsave
- whatcodes.restore = whatcodes.pdfrestore
- whatcodes.setmatrix = whatcodes.pdfsetmatrix
-end
-
-nodes.gluecodes = gluecodes
-nodes.dircodes = dircodes
-nodes.boundarycodes = boundarycodes
-nodes.noadcodes = noadcodes
-nodes.nodecodes = nodecodes
-nodes.whatcodes = whatcodes
-nodes.listcodes = listcodes
-nodes.glyphcodes = glyphcodes
-nodes.kerncodes = kerncodes
-nodes.penaltycodes = penaltycodes
-nodes.mathcodes = mathcodes
-nodes.fillcodes = fillcodes
-nodes.margincodes = margincodes
-nodes.disccodes = disccodes
-nodes.accentcodes = accentcodes
-nodes.radicalcodes = radicalcodes
-nodes.fencecodes = fencecodes
-nodes.rulecodes = rulecodes
-nodes.leadercodes = leadercodes
-nodes.usercodes = usercodes
-nodes.noadoptions = noadoptions
-nodes.dirvalues = dirvalues
-nodes.gluevalues = gluevalues
-nodes.literalvalues = literalvalues
-
-dirvalues.lefttoright = 0
-dirvalues.righttoleft = 1
-
-nodes.subtypes = allocate {
- [nodecodes.accent] = accentcodes,
- [nodecodes.boundary] = boundarycodes,
- [nodecodes.dir] = dircodes,
- [nodecodes.disc] = disccodes,
- [nodecodes.fence] = fencecodes,
- [nodecodes.glue] = gluecodes,
- [nodecodes.glyph] = glyphcodes,
- [nodecodes.hlist] = listcodes,
- [nodecodes.kern] = kerncodes,
- [nodecodes.marginkern] = margincodes,
- [nodecodes.math] = mathcodes,
- [nodecodes.noad] = noadcodes,
- [nodecodes.penalty] = penaltycodes,
- [nodecodes.radical] = radicalcodes,
- [nodecodes.rule] = rulecodes,
- [nodecodes.vlist] = listcodes,
- [nodecodes.whatsit] = whatcodes,
-}
-
-table.setmetatableindex(nodes.subtypes,function(t,k)
- local v = { }
- t[k] = v
- return v
-end)
-
-nodes.skipcodes = gluecodes -- more friendly
-nodes.directioncodes = dircodes -- more friendly
-nodes.whatsitcodes = whatcodes -- more official
-nodes.marginkerncodes = margincodes
-nodes.discretionarycodes = disccodes
-nodes.directionvalues = dirvalues -- more friendly
-nodes.skipvalues = gluevalues -- more friendly
-nodes.literalvalues = literalvalues -- more friendly
-
-glyphcodes.glyph = glyphcodes.character
+pdfliteralvalues = allocate(swapped(pdfliteralvalues,pdfliteralvalues))
+
+nodes.gluecodes = gluecodes
+nodes.dircodes = dircodes
+nodes.boundarycodes = boundarycodes
+nodes.noadcodes = noadcodes
+nodes.nodecodes = nodecodes
+nodes.whatcodes = whatcodes
+nodes.listcodes = listcodes
+nodes.glyphcodes = glyphcodes
+nodes.kerncodes = kerncodes
+nodes.penaltycodes = penaltycodes
+nodes.mathcodes = mathcodes
+nodes.fillcodes = fillcodes
+nodes.margincodes = margincodes
+nodes.disccodes = disccodes
+nodes.accentcodes = accentcodes
+nodes.radicalcodes = radicalcodes
+nodes.fencecodes = fencecodes
+nodes.rulecodes = rulecodes
+nodes.leadercodes = leadercodes
+nodes.usercodes = usercodes
+nodes.noadoptions = noadoptions
+nodes.dirvalues = dirvalues
+nodes.gluevalues = gluevalues
+nodes.pdfliteralvalues = pdfliteralvalues
+
+nodes.skipcodes = gluecodes -- more friendly
+nodes.directioncodes = dircodes -- more friendly
+nodes.whatsitcodes = whatcodes -- more official
+nodes.marginkerncodes = margincodes
+nodes.discretionarycodes = disccodes
+nodes.directionvalues = dirvalues -- more friendly
+nodes.skipvalues = gluevalues -- more friendly
+nodes.literalvalues = pdfliteralvalues -- more friendly
listcodes.row = listcodes.alignment
listcodes.column = listcodes.alignment
@@ -454,7 +399,7 @@ kerncodes.kerning = kerncodes.fontkern
kerncodes.italiccorrection = kerncodes.italiccorrection or 1 -- new
-literalvalues.direct = literalvalues.always
+pdfliteralvalues.direct = pdfliteralvalues.always
nodes.codes = allocate { -- mostly for listing
glue = skipcodes,
@@ -523,3 +468,4 @@ end
if node.fix_node_lists then
node.fix_node_lists(false)
end
+
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-ini.mkiv b/Master/texmf-dist/tex/context/base/mkiv/node-ini.mkiv
index 35013c4b801..8f10791633e 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-ini.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-ini.mkiv
@@ -21,7 +21,7 @@
\registerctxluafile{node-met}{}
\registerctxluafile{node-nut}{}
\registerctxluafile{node-res}{}
-%registerctxluafile{node-ppt}{} % experimental, not used so probably useless
+\registerctxluafile{node-ppt}{} % experimental
\registerctxluafile{node-dir}{}
\registerctxluafile{node-aux}{}
\registerctxluafile{node-tst}{}
@@ -34,9 +34,9 @@
\registerctxluafile{node-ext}{}
\registerctxluafile{node-acc}{} % experimental
%registerctxluafile{node-prp}{} % makes no sense (yet)
+\registerctxluafile{node-ppt}{}
\registerctxluafile{node-scn}{}
\registerctxluafile{node-syn}{}
-\registerctxluafile{node-par}{}
\newcount\c_node_tracers_show_box % box number
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-ltp.lua b/Master/texmf-dist/tex/context/base/mkiv/node-ltp.lua
index 0d501890b92..865f69c2c7f 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-ltp.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-ltp.lua
@@ -134,53 +134,6 @@ if not modules then modules = { } end modules ['node-par'] = {
]]--
---[[--
-
-#define dir_TLT 0
-#define dir_TRT 1
-#define dir_LTL 2
-#define dir_RTT 3
-
-#define dir_TLT_or_TRT(A) (A < 2)
-#define dir_LTL_or_RTT(A) (A > 1)
-
-#define textdir_parallel(A,B) (\
-(dir_TLT_or_TRT(A) and dir_TLT_or_TRT(B)) or \
-(dir_LTL_or_RTT(A) and dir_LTL_or_RTT(B))\
-)
-
-#define pardir_parallel(A,B) (\
-(dir_TLT_or_TRT(A) and dir_TLT_or_TRT(B)) or \
-(dir_LTL_or_RTT(A) and dir_LTL_or_RTT(B))\
-)
-
-#define pardir_opposite(A,B) (\
-(A == dir_LTL and B == dir_RTT) or \
-(A == dir_RTT and B == dir_LTL)\
-)
-
-#define textdir_opposite(A,B) (\
-(A == dir_TLT and B == dir_TRT) or \
-(A == dir_TRT and B == dir_TLT)\
-)
-
-#define glyphdir_opposite(A,B) 0
-
-#define pardir_equal(A,B) (\
-(dir_TLT_or_TRT(A) and dir_TLT_or_TRT(B)) or \
-(A == dir_LTL and B == dir_LTL) or \
-(A == dir_RTT and B == dir_RTT)\
-)
-
-#define textdir_equal(A,B) (\
-(A == dir_TLT and B == dir_TLT) or \
-(A == dir_TRT and B == dir_TRT) or \
-(A == dir_LTL and dir_LTL_or_RTT(B)) or \
-(A == dir_RTT and dir_LTL_or_RTT(B))\
-)
-
---]]--
-
local tonumber = tonumber
local utfchar = utf.char
local write, write_nl = texio.write, texio.write_nl
@@ -238,6 +191,7 @@ local parameters = fonthashes.parameters
local nuts = nodes.nuts
local tonut = nuts.tonut
+local tonode = nuts.tonode
local getfield = nuts.getfield
local getid = nuts.getid
@@ -246,20 +200,21 @@ local getnext = nuts.getnext
local getprev = nuts.getprev
local getboth = nuts.getboth
local getlist = nuts.getlist
+local getfont = nuts.getfont
+local getchar = nuts.getchar
local getdisc = nuts.getdisc
local getattr = nuts.getattr
local getdisc = nuts.getdisc
local getglue = nuts.getglue
local getwhd = nuts.getwhd
+local getcomponents = nuts.getcomponents
local getkern = nuts.getkern
local getpenalty = nuts.getpenalty
-local getdirection = nuts.getdirection
+local getdir = nuts.getdir
local getshift = nuts.getshift
local getwidth = nuts.getwidth
local getheight = nuts.getheight
local getdepth = nuts.getdepth
-local getdata = nuts.getdata
-local getwhd = nuts.getwhd
local isglyph = nuts.isglyph
@@ -274,10 +229,11 @@ local setsubtype = nuts.setsubtype
local setglue = nuts.setglue
local setwhd = nuts.setwhd
local setkern = nuts.setkern
-local setdirection = nuts.setdirection
+local setdir = nuts.setdir
local setshift = nuts.setshift
local setwidth = nuts.setwidth
-local setexpansion = nuts.setexpansion
+----- setheight = nuts.setheight
+----- setdepth = nuts.setdepth
local slide_node_list = nuts.slide -- get rid of this, probably ok > 78.2
local find_tail = nuts.tail
@@ -290,14 +246,13 @@ local replace_node = nuts.replace
local insert_node_after = nuts.insert_after
local insert_node_before = nuts.insert_before
local is_zero_glue = nuts.is_zero_glue
-local is_skipable = nuts.protrusion_skippable
local nodepool = nuts.pool
local nodecodes = nodes.nodecodes
local kerncodes = nodes.kerncodes
local glyphcodes = nodes.glyphcodes
-local leadercodes = nodes.leadercodes
+local gluecodes = nodes.gluecodes
local margincodes = nodes.margincodes
local disccodes = nodes.disccodes
local mathcodes = nodes.mathcodes
@@ -321,9 +276,9 @@ local marginkern_code = nodecodes.marginkern
local dir_code = nodecodes.dir
local boundary_code = nodecodes.boundary
-local protrusionboundary_code = boundarycodes.protrusion
+local protrusion_code = boundarycodes.protrusion
-local leaders_code = leadercodes.leaders
+local leaders_code = gluecodes.leaders
local localpar_code = nodecodes.localpar
@@ -332,17 +287,17 @@ local italickern_code = kerncodes.italiccorrection
local fontkern_code = kerncodes.fontkern
local accentkern_code = kerncodes.accentkern
-local ligatureglyph_code = glyphcodes.ligature
+local ligature_code = glyphcodes.ligature
-local fillcodes = nodes.fillcodes
+local stretch_orders = nodes.fillcodes
local leftmargin_code = margincodes.left
----- rightmargin_code = margincodes.right
-local automaticdisc_code = disccodes.automatic
-local regulardisc_code = disccodes.regular
-local firstdisc_code = disccodes.first
-local seconddisc_code = disccodes.second
+local automatic_disc_code = disccodes.automatic
+local regular_disc_code = disccodes.regular
+local first_disc_code = disccodes.first
+local second_disc_code = disccodes.second
local endmath_code = mathcodes.endmath
@@ -368,7 +323,7 @@ local fit_decent_class = 2 -- fitness for all other lines
local fit_tight_class = 3 -- fitness for lines shrinking 0.5 to 1.0 of their shrinkability
local new_penalty = nodepool.penalty
-local new_direction = nodepool.direction
+local new_dir = nodepool.textdir
local new_leftmarginkern = nodepool.leftmarginkern
local new_rightmarginkern = nodepool.rightmarginkern
local new_leftskip = nodepool.leftskip
@@ -379,6 +334,17 @@ local new_temp = nodepool.temp
local new_rule = nodepool.rule
local new_hlist = nodepool.hlist
+local is_rotated = nodes.is_rotated
+local is_parallel = nodes.textdir_is_parallel
+local is_opposite = nodes.textdir_is_opposite
+local textdir_is_equal = nodes.textdir_is_equal
+local pardir_is_equal = nodes.pardir_is_equal
+local glyphdir_is_equal = nodes.glyphdir_is_equal
+
+local dir_pops = nodes.dir_is_pop
+local dir_negations = nodes.dir_negation
+local is_skipable = nuts.protrusion_skippable
+
-- helpers --
-- It makes more sense to move the somewhat messy dir state tracking
@@ -393,24 +359,22 @@ end
-- in the parbuilder.
local function checked_line_dir(stack,current)
- local direction, pop = getdirection(current)
- if not pop then
+ if not dir_pops[current] then
local n = stack.n + 1
stack.n = n
stack[n] = current
- return direction
+ return getdir(current)
elseif n > 0 then
local n = stack.n
local dirnode = stack[n]
dirstack.n = n - 1
- direction = getdirection(dirnode) -- we could save it
- return direction
+ return getdir(dirnode)
else
report_parbuilders("warning: missing pop node (%a)",1) -- in line ...
end
end
--- The next function checks dir nodes in a list and appends the negations
+-- The next function checks a dir nodes in a list and appends the negations
-- that are currently needed (some day LuaTeX will be more tolerant). We use
-- the negations for the next line.
@@ -418,12 +382,10 @@ local function inject_dirs_at_end_of_line(stack,current,start,stop)
local e = start
local n = stack.n
local h = nil
- -- todo: traverse
while start and start ~= stop do
local id = getid(start)
if id == dir_code then
- local direction, pop = getdirection(start)
- if not pop then
+ if not dir_pops[getdir(start)] then -- weird, what is this #
n = n + 1
stack[n] = start
elseif n > 0 then
@@ -435,7 +397,7 @@ local function inject_dirs_at_end_of_line(stack,current,start,stop)
start = getnext(start)
end
for i=n,1,-1 do
- h, current = insert_node_after(current,current,new_direction(getdirection(stack[i]),true))
+ h, current = insert_node_after(current,current,new_dir(dir_negations[getdir(stack[i])]))
end
stack.n = n
return current
@@ -444,7 +406,7 @@ end
local function inject_dirs_at_begin_of_line(stack,current)
local h = nil
for i=stack.n,1,-1 do
- h, current = insert_node_after(current,current,new_direction(stack[i]))
+ h, current = insert_node_after(current,current,new_dir(stack[i]))
end
stack.n = 0
return current
@@ -545,9 +507,9 @@ end)
local function kern_stretch_shrink(p,d)
local left = getprev(p)
if left then
- local char, font = isglyph(left)
+ local char = isglyph(left)
if char then
- local data = expansions[font][char]
+ local data = expansions[getfont(left)][char]
if data then
local stretch = data.stretch
local shrink = data.shrink
@@ -668,8 +630,8 @@ local function find(head) -- do we really want to recurse into an hlist?
head = getnext(head)
end
elseif id == boundary_code then
- if getsubtype(head) == protrusionboundary_code then
- local v = getdata(head)
+ if getsubtype(head) == protrusion_code then
+ local v = getfield(head,"value")
if v == 1 or v == 3 then
head = getnext(head)
if head then
@@ -692,19 +654,19 @@ end
local function find_protchar_left(l) -- weird function
local ln = getnext(l)
- if ln and getid(ln) == hlist_code and not getlist(ln) then
- local w, h, d = getwhd(ln)
- if w == 0 and h == 0 and d == 0 then
- l = getnext(l)
- return find(l) or l
- end
- end -- if d then -- was always true
- local id = getid(l)
- while ln and not (id == glyph_code or id < math_code) do -- is there always a glyph?
- l = ln
- ln = getnext(l)
- id = getid(ln)
+ if ln and getid(ln) == hlist_code and not getlist(ln) and getfield(ln,"width") == 0 and getfield(ln,"height") == 0 and getfield(ln,"depth") == 0 then
+ l = getnext(l)
+ else -- if d then -- was always true
+ local id = getid(l)
+ while ln and not (id == glyph_code or id < math_code) do -- is there always a glyph?
+ l = ln
+ ln = getnext(l)
+ id = getid(ln)
+ end
end
+ -- if getid(l) == glyph_code then
+ -- return l
+ -- end
return find(l) or l
end
@@ -722,8 +684,8 @@ local function find(head,tail)
tail = getprev(tail)
end
elseif id == boundary_code then
- if getsubtype(head) == protrusionboundary_code then
- local v = getdata(tail)
+ if getsubtype(head) == protrusion_code then
+ local v = getfield(tail,"value")
if v == 2 or v == 3 then
tail = getprev(tail)
if tail then
@@ -749,8 +711,8 @@ local function find_protchar_right(l,r)
end
local function left_pw(p)
- local char, font = isglyph(p)
- local prot = chardata[font][char].left_protruding
+ local font = getfont(p)
+ local prot = chardata[font][getchar(p)].left_protruding
if not prot or prot == 0 then
return 0
end
@@ -758,8 +720,8 @@ local function left_pw(p)
end
local function right_pw(p)
- local char, font = isglyph(p)
- local prot = chardata[font][char].right_protruding
+ local font = getfont(p)
+ local prot = chardata[font][getchar(p)].right_protruding
if not prot or prot == 0 then
return 0
end
@@ -786,13 +748,13 @@ local function add_to_width(line_break_dir,checked_expansion,s) -- split into tw
local char, id = isglyph(s)
if char then
local wd, ht, dp = getwhd(s)
- if is_rotated(line_break_dir) then
+ if is_rotated[line_break_dir] then -- can be shared
size = size + ht + dp
else
size = size + wd
end
if checked_expansion then
- local data = checked_expansion[id] -- id == font
+ local data = checked_expansion[getfont(s)]
if data then
data = data[char]
if data then
@@ -803,7 +765,7 @@ local function add_to_width(line_break_dir,checked_expansion,s) -- split into tw
end
elseif id == hlist_code or id == vlist_code then
local wd, ht, dp = getwhd(s)
- if textdir_parallel(getdirection(s),line_break_dir) then
+ if is_parallel[getdir(s)][line_break_dir] then
size = size + wd
else
size = size + ht + dp
@@ -834,1712 +796,1709 @@ local function add_to_width(line_break_dir,checked_expansion,s) -- split into tw
return size, adjust_stretch, adjust_shrink
end
--- We can actually make par local to this module as we never break inside a break call and that way the
--- array is reused. At some point the information will be part of the paragraph spec as passed.
-
-local hztolerance = 2500
-local hzwarned = false
-
-do
-
- local function compute_break_width(par,break_type,p) -- split in two
- local break_width = par.break_width
- if break_type > unhyphenated_code then
- local disc_width = par.disc_width
- local checked_expansion = par.checked_expansion
- local line_break_dir = par.line_break_dir
- local break_size = break_width.size + disc_width.size
- local break_adjust_stretch = break_width.adjust_stretch + disc_width.adjust_stretch
- local break_adjust_shrink = break_width.adjust_shrink + disc_width.adjust_shrink
- local pre, post, replace = getdisc(p)
- if replace then
- local size, adjust_stretch, adjust_shrink = add_to_width(line_break_dir,checked_expansion,replace)
- break_size = break_size - size
- break_adjust_stretch = break_adjust_stretch - adjust_stretch
- break_adjust_shrink = break_adjust_shrink - adjust_shrink
- end
- if post then
- local size, adjust_stretch, adjust_shrink = add_to_width(line_break_dir,checked_expansion,post)
- break_size = break_size + size
- break_adjust_stretch = break_adjust_stretch + adjust_stretch
- break_adjust_shrink = break_adjust_shrink + adjust_shrink
- end
- break_width.size = break_size
- break_width.adjust_stretch = break_adjust_stretch
- break_width.adjust_shrink = break_adjust_shrink
- if not post then
- p = getnext(p)
- else
- return
- end
+local function compute_break_width(par,break_type,p) -- split in two
+ local break_width = par.break_width
+ if break_type > unhyphenated_code then
+ local disc_width = par.disc_width
+ local checked_expansion = par.checked_expansion
+ local line_break_dir = par.line_break_dir
+ local break_size = break_width.size + disc_width.size
+ local break_adjust_stretch = break_width.adjust_stretch + disc_width.adjust_stretch
+ local break_adjust_shrink = break_width.adjust_shrink + disc_width.adjust_shrink
+ local pre, post, replace = getdisc(p)
+ if replace then
+ local size, adjust_stretch, adjust_shrink = add_to_width(line_break_dir,checked_expansion,replace)
+ break_size = break_size - size
+ break_adjust_stretch = break_adjust_stretch - adjust_stretch
+ break_adjust_shrink = break_adjust_shrink - adjust_shrink
end
- while p do -- skip spacing etc
- local id = getid(p)
- if id == glyph_code then
- return -- happens often
- elseif id == glue_code then
- local wd, stretch, shrink, stretch_order = getglue(p)
- local order = fillcodes[stretch_order]
- break_width.size = break_width.size - wd
- break_width[order] = break_width[order] - stretch
- break_width.shrink = break_width.shrink - shrink
- elseif id == penalty_code then
- -- do nothing
- elseif id == kern_code then
- local s = getsubtype(p)
- if s == userkern_code or s == italickern_code then
- break_width.size = break_width.size - getkern(p)
- else
- return
- end
- elseif id == math_code then
- break_width.size = break_width.size - getkern(p) -- surround
- -- new in luatex
- local wd, stretch, shrink, stretch_order = getglue(p)
- local order = fillcodes[stretch_order]
- break_width.size = break_width.size - wd
- break_width[order] = break_width[order] - stretch
- break_width.shrink = break_width.shrink - shrink
- else
- return
- end
+ if post then
+ local size, adjust_stretch, adjust_shrink = add_to_width(line_break_dir,checked_expansion,post)
+ break_size = break_size + size
+ break_adjust_stretch = break_adjust_stretch + adjust_stretch
+ break_adjust_shrink = break_adjust_shrink + adjust_shrink
+ end
+ break_width.size = break_size
+ break_width.adjust_stretch = break_adjust_stretch
+ break_width.adjust_shrink = break_adjust_shrink
+ if not post then
p = getnext(p)
+ else
+ return
end
end
-
- local function append_to_vlist(par, b)
- local prev_depth = par.prev_depth
- local head_field = par.head_field
- local tail_field = head_field and slide_node_list(head_field) -- todo: find_tail
- local is_hlist = getid(b) == hlist_code
- -- if prev_depth > par.ignored_dimen then
- if prev_depth > ignore_depth then
- if is_hlist then
- local width, stretch, shrink, stretch_order, shrink_order = getglue(par.baseline_skip)
- local delta = width - prev_depth - getheight(b) -- deficiency of space between baselines
- local skip = nil
- if delta < par.line_skip_limit then
- width, stretch, shrink, stretch_order, shrink_order = getglue(par.lineskip)
- skip = new_lineskip(width, stretch, shrink, stretch_order, shrink_order)
- else
- skip = new_baselineskip(delta, stretch, shrink, stretch_order, shrink_order)
- end
- if head_field then
- setlink(tail_field,skip)
- else
- par.head_field = skip
- head_field = skip
- end
- tail_field = skip
+ while p do -- skip spacing etc
+ local id = getid(p)
+ if id == glyph_code then
+ return -- happens often
+ elseif id == glue_code then
+ local wd, stretch, shrink, stretch_order = getglue(p)
+ local order = stretch_orders[stretch_order]
+ break_width.size = break_width.size - wd
+ break_width[order] = break_width[order] - stretch
+ break_width.shrink = break_width.shrink - shrink
+ elseif id == penalty_code then
+ -- do nothing
+ elseif id == kern_code then
+ local s = getsubtype(p)
+ if s == userkern_code or s == italickern_code then
+ break_width.size = break_width.size - getkern(p)
+ else
+ return
end
- end
- if head_field then
- setlink(tail_field,b)
+ elseif id == math_code then
+ break_width.size = break_width.size - getkern(p) -- surround
+ -- new in luatex
+ local wd, stretch, shrink, stretch_order = getglue(p)
+ local order = stretch_orders[stretch_order]
+ break_width.size = break_width.size - wd
+ break_width[order] = break_width[order] - stretch
+ break_width.shrink = break_width.shrink - shrink
else
- par.head_field = b
+ return
end
+ p = getnext(p)
+ end
+end
+
+local function append_to_vlist(par, b)
+ local prev_depth = par.prev_depth
+ local head_field = par.head_field
+ local tail_field = head_field and slide_node_list(head_field) -- todo: find_tail
+ local is_hlist = getid(b) == hlist_code
+ -- if prev_depth > par.ignored_dimen then
+ if prev_depth > ignore_depth then
if is_hlist then
- local pd = getdepth(b)
- par.prev_depth = pd
- texnest[texnest.ptr].prevdepth = pd
+ local width, stretch, shrink, stretch_order, shrink_order = getglue(par.baseline_skip)
+ local delta = width - prev_depth - getheight(b) -- deficiency of space between baselines
+ local skip = nil
+ if delta < par.line_skip_limit then
+ width, stretch, shrink, stretch_order, shrink_order = getglue(par.lineskip)
+ skip = new_lineskip(width, stretch, shrink, stretch_order, shrink_order)
+ else
+ skip = new_baselineskip(delta, stretch, shrink, stretch_order, shrink_order)
+ end
+ if head_field then
+ setlink(tail_field,skip)
+ else
+ par.head_field = skip
+ head_field = skip
+ end
+ tail_field = skip
end
end
+ if head_field then
+ setlink(tail_field,b)
+ else
+ par.head_field = b
+ end
+ if is_hlist then
+ local pd = getdepth(b)
+ par.prev_depth = pd
+ texnest[texnest.ptr].prevdepth = pd
+ end
+end
- local function append_list(par, b)
- local head_field = par.head_field
- if head_field then
- local n = slide_node_list(head_field) -- todo: find_tail
- setlink(n,b)
- else
- par.head_field = b
- end
- end
-
- local function used_skip(s)
- return s and not is_zero_glue(s) and s
- end
-
- local function initialize_line_break(head,display)
-
- local hang_indent = tex.hangindent or 0
- local hsize = tex.hsize or 0
- local hang_after = tex.hangafter or 0
- local par_shape_ptr = tex.parshape
- local left_skip = tonut(tex.leftskip) -- nodes
- local right_skip = tonut(tex.rightskip) -- nodes
- local pretolerance = tex.pretolerance
- local tolerance = tex.tolerance
- local adjust_spacing = tex.adjustspacing
- local protrude_chars = tex.protrudechars
- local last_line_fit = tex.lastlinefit
- local par_dir = tex.pardirection
-
- local newhead = new_temp()
- setnext(newhead,head)
-
- local adjust_spacing_status = adjust_spacing > 1 and -1 or 0
-
- -- metatables
-
- local par = {
- head = newhead,
- head_field = nil,
- display = display,
- font_in_short_display = 0,
- no_shrink_error_yet = true, -- have we complained about infinite shrinkage?
- second_pass = false, -- is this our second attempt to break this paragraph?
- final_pass = false, -- is this our final attempt to break this paragraph?
- threshold = 0, -- maximum badness on feasible lines
-
- passive = nil, -- most recent node on passive list
- printed_node = head, -- most recent node that has been printed
- pass_number = 0, -- the number of passive nodes allocated on this pass
- auto_breaking = 0, -- make auto_breaking accessible out of line_break
-
- active_width = { size = 0, stretch = 0, fi = 0, fil = 0, fill = 0, filll = 0, shrink = 0, adjust_stretch = 0, adjust_shrink = 0 },
- break_width = { size = 0, stretch = 0, fi = 0, fil = 0, fill = 0, filll = 0, shrink = 0, adjust_stretch = 0, adjust_shrink = 0 },
- disc_width = { size = 0, adjust_stretch = 0, adjust_shrink = 0 },
- fill_width = { stretch = 0, fi = 0, fil = 0, fill = 0, filll = 0, shrink = 0 },
- background = { size = 0, stretch = 0, fi = 0, fil = 0, fill = 0, filll = 0, shrink = 0 },
-
- hang_indent = hang_indent,
- hsize = hsize,
- hang_after = hang_after,
- par_shape_ptr = par_shape_ptr,
- left_skip = left_skip,
- right_skip = right_skip,
- pretolerance = pretolerance,
- tolerance = tolerance,
-
- protrude_chars = protrude_chars,
- adjust_spacing = adjust_spacing,
- max_stretch_ratio = adjust_spacing_status,
- max_shrink_ratio = adjust_spacing_status,
- cur_font_step = adjust_spacing_status,
- checked_expansion = false,
- tracing_paragraphs = tex.tracingparagraphs > 0,
-
- emergency_stretch = tex.emergencystretch or 0,
- looseness = tex.looseness or 0,
- line_penalty = tex.linepenalty or 0,
- hyphen_penalty = tex.hyphenpenalty or 0,
- broken_penalty = tex.brokenpenalty or 0,
- inter_line_penalty = tex.interlinepenalty or 0,
- club_penalty = tex.clubpenalty or 0,
- widow_penalty = tex.widowpenalty or 0,
- display_widow_penalty = tex.displaywidowpenalty or 0,
- ex_hyphen_penalty = tex.exhyphenpenalty or 0,
-
- adj_demerits = tex.adjdemerits or 0,
- double_hyphen_demerits = tex.doublehyphendemerits or 0,
- final_hyphen_demerits = tex.finalhyphendemerits or 0,
-
- first_line = 0, -- texnest[texnest.ptr].modeline, -- 0, -- cur_list.pg_field
-
- -- each_line_height = tex.pdfeachlineheight or 0, -- this will go away
- -- each_line_depth = tex.pdfeachlinedepth or 0, -- this will go away
- -- first_line_height = tex.pdffirstlineheight or 0, -- this will go away
- -- last_line_depth = tex.pdflastlinedepth or 0, -- this will go away
-
- -- ignored_dimen = tex.pdfignoreddimen or 0,
-
- baseline_skip = tonut(tex.baselineskip),
- lineskip = tonut(tex.lineskip),
- line_skip_limit = tex.lineskiplimit,
-
- prev_depth = texnest[texnest.ptr].prevdepth,
-
- final_par_glue = slide_node_list(head), -- todo: we know tail already, slow
-
- par_break_dir = par_dir,
- line_break_dir = par_dir,
-
- internal_pen_inter = 0, -- running localinterlinepenalty
- internal_pen_broken = 0, -- running localbrokenpenalty
- internal_left_box = nil, -- running localleftbox
- internal_left_box_width = 0, -- running localleftbox width
- init_internal_left_box = nil, -- running localleftbox
- init_internal_left_box_width = 0, -- running localleftbox width
- internal_right_box = nil, -- running localrightbox
- internal_right_box_width = 0, -- running localrightbox width
-
- best_place = { }, -- how to achieve minimal_demerits
- best_pl_line = { }, -- corresponding line number
- easy_line = 0, -- line numbers easy_line are equivalent in break nodes
- last_special_line = 0, -- line numbers last_special_line all have the same width
- first_width = 0, -- the width of all lines last_special_line, if no parshape has been specified
- second_width = 0, -- the width of all lines last_special_line
- first_indent = 0, -- left margin to go with first_width
- second_indent = 0, -- left margin to go with second_width
-
- best_bet = nil, -- use this passive node and its predecessors
- fewest_demerits = 0, -- the demerits associated with best_bet
- best_line = 0, -- line number following the last line of the new paragraph
- line_diff = 0, -- the difference between the current line number and the optimum best_line
-
- -- not yet used
-
- best_pl_short = { }, -- shortfall corresponding to minimal_demerits
- best_pl_glue = { }, -- corresponding glue stretch or shrink
- do_last_line_fit = false,
- last_line_fit = last_line_fit,
-
- minimum_demerits = awful_badness,
-
- minimal_demerits = {
-
- [fit_very_loose_class] = awful_badness,
- [fit_loose_class] = awful_badness,
- [fit_decent_class] = awful_badness,
- [fit_tight_class] = awful_badness,
-
- },
-
- prev_char_p = nil,
-
- statistics = {
-
- noflines = 0,
- nofprotrudedlines = 0,
- nofadjustedlines = 0,
-
- },
-
- -- -- just a thought ... parshape functions ... it would be nice to
- -- -- also store the height so far (probably not too hard) although
- -- -- in most cases we work on grids in such cases
- --
- -- adapt_width = function(par,line)
- -- -- carry attribute, so that we can accumulate
- -- local left = 655360 * (line - 1)
- -- local right = 655360 * (line - 1)
- -- return left, right
- -- end
+local function append_list(par, b)
+ local head_field = par.head_field
+ if head_field then
+ local n = slide_node_list(head_field) -- todo: find_tail
+ setlink(n,b)
+ else
+ par.head_field = b
+ end
+end
- }
+-- We can actually make par local to this module as we never break inside a break call and that way the
+-- array is reused. At some point the information will be part of the paragraph spec as passed.
+
+local hztolerance = 2500
+local hzwarned = false
+
+local function used_skip(s)
+ return s and not is_zero_glue(s) and s
+end
- -- optimizers
+local function initialize_line_break(head,display)
+
+ local hang_indent = tex.hangindent or 0
+ local hsize = tex.hsize or 0
+ local hang_after = tex.hangafter or 0
+ local par_shape_ptr = tex.parshape
+ local left_skip = tonut(tex.leftskip) -- nodes
+ local right_skip = tonut(tex.rightskip) -- nodes
+ local pretolerance = tex.pretolerance
+ local tolerance = tex.tolerance
+ local adjust_spacing = tex.adjustspacing
+ local protrude_chars = tex.protrudechars
+ local last_line_fit = tex.lastlinefit
+
+ local newhead = new_temp()
+ setnext(newhead,head)
+
+ local adjust_spacing_status = adjust_spacing > 1 and -1 or 0
+
+ -- metatables
+
+ local par = {
+ head = newhead,
+ head_field = nil,
+ display = display,
+ font_in_short_display = 0,
+ no_shrink_error_yet = true, -- have we complained about infinite shrinkage?
+ second_pass = false, -- is this our second attempt to break this paragraph?
+ final_pass = false, -- is this our final attempt to break this paragraph?
+ threshold = 0, -- maximum badness on feasible lines
+
+ passive = nil, -- most recent node on passive list
+ printed_node = head, -- most recent node that has been printed
+ pass_number = 0, -- the number of passive nodes allocated on this pass
+ auto_breaking = 0, -- make auto_breaking accessible out of line_break
+
+ active_width = { size = 0, stretch = 0, fi = 0, fil = 0, fill = 0, filll = 0, shrink = 0, adjust_stretch = 0, adjust_shrink = 0 },
+ break_width = { size = 0, stretch = 0, fi = 0, fil = 0, fill = 0, filll = 0, shrink = 0, adjust_stretch = 0, adjust_shrink = 0 },
+ disc_width = { size = 0, adjust_stretch = 0, adjust_shrink = 0 },
+ fill_width = { stretch = 0, fi = 0, fil = 0, fill = 0, filll = 0, shrink = 0 },
+ background = { size = 0, stretch = 0, fi = 0, fil = 0, fill = 0, filll = 0, shrink = 0 },
+
+ hang_indent = hang_indent,
+ hsize = hsize,
+ hang_after = hang_after,
+ par_shape_ptr = par_shape_ptr,
+ left_skip = left_skip,
+ right_skip = right_skip,
+ pretolerance = pretolerance,
+ tolerance = tolerance,
+
+ protrude_chars = protrude_chars,
+ adjust_spacing = adjust_spacing,
+ max_stretch_ratio = adjust_spacing_status,
+ max_shrink_ratio = adjust_spacing_status,
+ cur_font_step = adjust_spacing_status,
+ checked_expansion = false,
+ tracing_paragraphs = tex.tracingparagraphs > 0,
+
+ emergency_stretch = tex.emergencystretch or 0,
+ looseness = tex.looseness or 0,
+ line_penalty = tex.linepenalty or 0,
+ hyphen_penalty = tex.hyphenpenalty or 0,
+ broken_penalty = tex.brokenpenalty or 0,
+ inter_line_penalty = tex.interlinepenalty or 0,
+ club_penalty = tex.clubpenalty or 0,
+ widow_penalty = tex.widowpenalty or 0,
+ display_widow_penalty = tex.displaywidowpenalty or 0,
+ ex_hyphen_penalty = tex.exhyphenpenalty or 0,
+
+ adj_demerits = tex.adjdemerits or 0,
+ double_hyphen_demerits = tex.doublehyphendemerits or 0,
+ final_hyphen_demerits = tex.finalhyphendemerits or 0,
+
+ first_line = 0, -- tex.nest[tex.nest.ptr].modeline, -- 0, -- cur_list.pg_field
+
+ -- each_line_height = tex.pdfeachlineheight or 0, -- this will go away
+ -- each_line_depth = tex.pdfeachlinedepth or 0, -- this will go away
+ -- first_line_height = tex.pdffirstlineheight or 0, -- this will go away
+ -- last_line_depth = tex.pdflastlinedepth or 0, -- this will go away
+
+ -- ignored_dimen = tex.pdfignoreddimen or 0,
+
+ baseline_skip = tonut(tex.baselineskip),
+ lineskip = tonut(tex.lineskip),
+ line_skip_limit = tex.lineskiplimit,
+
+ prev_depth = texnest[texnest.ptr].prevdepth,
+
+ final_par_glue = slide_node_list(head), -- todo: we know tail already, slow
+
+ par_break_dir = tex.pardir,
+ line_break_dir = tex.pardir,
+
+ internal_pen_inter = 0, -- running localinterlinepenalty
+ internal_pen_broken = 0, -- running localbrokenpenalty
+ internal_left_box = nil, -- running localleftbox
+ internal_left_box_width = 0, -- running localleftbox width
+ init_internal_left_box = nil, -- running localleftbox
+ init_internal_left_box_width = 0, -- running localleftbox width
+ internal_right_box = nil, -- running localrightbox
+ internal_right_box_width = 0, -- running localrightbox width
+
+ best_place = { }, -- how to achieve minimal_demerits
+ best_pl_line = { }, -- corresponding line number
+ easy_line = 0, -- line numbers easy_line are equivalent in break nodes
+ last_special_line = 0, -- line numbers last_special_line all have the same width
+ first_width = 0, -- the width of all lines last_special_line, if no parshape has been specified
+ second_width = 0, -- the width of all lines last_special_line
+ first_indent = 0, -- left margin to go with first_width
+ second_indent = 0, -- left margin to go with second_width
+
+ best_bet = nil, -- use this passive node and its predecessors
+ fewest_demerits = 0, -- the demerits associated with best_bet
+ best_line = 0, -- line number following the last line of the new paragraph
+ line_diff = 0, -- the difference between the current line number and the optimum best_line
+
+ -- not yet used
+
+ best_pl_short = { }, -- shortfall corresponding to minimal_demerits
+ best_pl_glue = { }, -- corresponding glue stretch or shrink
+ do_last_line_fit = false,
+ last_line_fit = last_line_fit,
+
+ minimum_demerits = awful_badness,
+
+ minimal_demerits = {
+
+ [fit_very_loose_class] = awful_badness,
+ [fit_loose_class] = awful_badness,
+ [fit_decent_class] = awful_badness,
+ [fit_tight_class] = awful_badness,
+
+ },
+
+ prev_char_p = nil,
+
+ statistics = {
+
+ noflines = 0,
+ nofprotrudedlines = 0,
+ nofadjustedlines = 0,
+
+ },
+
+ -- -- just a thought ... parshape functions ... it would be nice to
+ -- -- also store the height so far (probably not too hard) although
+ -- -- in most cases we work on grids in such cases
+ --
+ -- adapt_width = function(par,line)
+ -- -- carry attribute, so that we can accumulate
+ -- local left = 655360 * (line - 1)
+ -- local right = 655360 * (line - 1)
+ -- return left, right
+ -- end
- par.used_left_skip = used_skip(par.left_skip)
- par.used_right_skip = used_skip(par.right_skip)
+ }
- -- so far
+ -- optimizers
- if adjust_spacing > 1 then
- local checked_expansion = { par = par }
- setmetatableindex(checked_expansion,check_expand_pars)
- par.checked_expansion = checked_expansion
+ par.used_left_skip = used_skip(par.left_skip)
+ par.used_right_skip = used_skip(par.right_skip)
- if par.tolerance < hztolerance then
- if not hzwarned then
- report_parbuilders("setting tolerance to %a for hz",hztolerance)
- hzwarned = true
- end
- par.tolerance = hztolerance
- end
+ -- so far
- expand_kerns = expand_kerns_mode or (adjust_spacing == 2)
+ if adjust_spacing > 1 then
+ local checked_expansion = { par = par }
+ setmetatableindex(checked_expansion,check_expand_pars)
+ par.checked_expansion = checked_expansion
+ if par.tolerance < hztolerance then
+ if not hzwarned then
+ report_parbuilders("setting tolerance to %a for hz",hztolerance)
+ hzwarned = true
+ end
+ par.tolerance = hztolerance
end
- -- we need par for the error message
+ expand_kerns = expand_kerns_mode or (adjust_spacing == 2)
- local background = par.background
+ end
+
+ -- we need par for the error message
- local l = check_shrinkage(par,left_skip)
- local r = check_shrinkage(par,right_skip)
+ local background = par.background
- local lwidth, lstretch, lshrink, lstretch_order, lshrink_order = getglue(l)
- local rwidth, rstretch, rshrink, rstretch_order, rshrink_order = getglue(r)
+ local l = check_shrinkage(par,left_skip)
+ local r = check_shrinkage(par,right_skip)
- local l_order = fillcodes[lstretch_order]
- local r_order = fillcodes[rstretch_order]
+ local lwidth, lstretch, lshrink, lstretch_order, lshrink_order = getglue(l)
+ local rwidth, rstretch, rshrink, rstretch_order, rshrink_order = getglue(r)
- background.size = lwidth + rwidth
- background.shrink = lshrink + rshrink
- background[l_order] = lstretch
- background[r_order] = rstretch + background[r_order]
+ local l_order = stretch_orders[lstretch_order]
+ local r_order = stretch_orders[rstretch_order]
- -- this will move up so that we can assign the whole par table
+ background.size = lwidth + rwidth
+ background.shrink = lshrink + rshrink
+ background[l_order] = lstretch
+ background[r_order] = rstretch + background[r_order]
- if not par_shape_ptr then
- if hang_indent == 0 then
+ -- this will move up so that we can assign the whole par table
+
+ if not par_shape_ptr then
+ if hang_indent == 0 then
+ par.second_width = hsize
+ par.second_indent = 0
+ else
+ local abs_hang_after = hang_after >0 and hang_after or -hang_after
+ local abs_hang_indent = hang_indent>0 and hang_indent or -hang_indent
+ par.last_special_line = abs_hang_after
+ if hang_after < 0 then
+ par.first_width = hsize - abs_hang_indent
+ if hang_indent >= 0 then
+ par.first_indent = hang_indent
+ else
+ par.first_indent = 0
+ end
par.second_width = hsize
par.second_indent = 0
else
- local abs_hang_after = hang_after >0 and hang_after or -hang_after
- local abs_hang_indent = hang_indent>0 and hang_indent or -hang_indent
- par.last_special_line = abs_hang_after
- if hang_after < 0 then
- par.first_width = hsize - abs_hang_indent
- if hang_indent >= 0 then
- par.first_indent = hang_indent
- else
- par.first_indent = 0
- end
- par.second_width = hsize
- par.second_indent = 0
+ par.first_width = hsize
+ par.first_indent = 0
+ par.second_width = hsize - abs_hang_indent
+ if hang_indent >= 0 then
+ par.second_indent = hang_indent
else
- par.first_width = hsize
- par.first_indent = 0
- par.second_width = hsize - abs_hang_indent
- if hang_indent >= 0 then
- par.second_indent = hang_indent
- else
- par.second_indent = 0
- end
+ par.second_indent = 0
end
end
- else
- local last_special_line = #par_shape_ptr
- par.last_special_line = last_special_line
- local parshape = par_shape_ptr[last_special_line]
- par.second_width = parshape[2]
- par.second_indent = parshape[1]
end
+ else
+ local last_special_line = #par_shape_ptr
+ par.last_special_line = last_special_line
+ local parshape = par_shape_ptr[last_special_line]
+ par.second_width = parshape[2]
+ par.second_indent = parshape[1]
+ end
- if par.looseness == 0 then
- par.easy_line = par.last_special_line
- else
- par.easy_line = max_halfword
- end
+ if par.looseness == 0 then
+ par.easy_line = par.last_special_line
+ else
+ par.easy_line = max_halfword
+ end
- if pretolerance >= 0 then
- par.threshold = pretolerance
- par.second_pass = false
- par.final_pass = false
- else
- par.threshold = tolerance
- par.second_pass = true
- par.final_pass = par.emergency_stretch <= 0
- if trace_basic then
- if par.final_pass then
- report_parbuilders("enabling second and final pass")
- else
- report_parbuilders("enabling second pass")
- end
+ if pretolerance >= 0 then
+ par.threshold = pretolerance
+ par.second_pass = false
+ par.final_pass = false
+ else
+ par.threshold = tolerance
+ par.second_pass = true
+ par.final_pass = par.emergency_stretch <= 0
+ if trace_basic then
+ if par.final_pass then
+ report_parbuilders("enabling second and final pass")
+ else
+ report_parbuilders("enabling second pass")
end
end
+ end
- if last_line_fit > 0 then
- local final_par_glue = par.final_par_glue
- local stretch = getfield(final_par_glue,"stretch")
- local stretch_order = getfield(final_par_glue,"stretch_order")
- if stretch > 0 and stretch_order > 0 and background.fi == 0 and background.fil == 0 and background.fill == 0 and background.filll == 0 then
- par.do_last_line_fit = true
- local si = fillcodes[stretch_order]
- if trace_lastlinefit or trace_basic then
- report_parbuilders("enabling last line fit, stretch order %a set to %a, linefit is %a",si,stretch,last_line_fit)
- end
- par.fill_width[si] = stretch
+ if last_line_fit > 0 then
+ local final_par_glue = par.final_par_glue
+ local stretch = getfield(final_par_glue,"stretch")
+ local stretch_order = getfield(final_par_glue,"stretch_order")
+ if stretch > 0 and stretch_order > 0 and background.fi == 0 and background.fil == 0 and background.fill == 0 and background.filll == 0 then
+ par.do_last_line_fit = true
+ local si = stretch_orders[stretch_order]
+ if trace_lastlinefit or trace_basic then
+ report_parbuilders("enabling last line fit, stretch order %a set to %a, linefit is %a",si,stretch,last_line_fit)
end
+ par.fill_width[si] = stretch
end
-
- return par
end
- -- there are still all kind of artefacts in here (a side effect I guess of pdftex,
- -- etex, omega and other extensions that got obscured by patching)
+ return par
+end
- local function post_line_break(par)
+-- there are still all kind of artefacts in here (a side effect I guess of pdftex,
+-- etex, omega and other extensions that got obscured by patching)
- local prevgraf = texnest[texnest.ptr].prevgraf
- local current_line = prevgraf + 1 -- the current line number being justified
+local function post_line_break(par)
- local adjust_spacing = par.adjust_spacing
- local protrude_chars = par.protrude_chars
- local statistics = par.statistics
+ local prevgraf = texnest[texnest.ptr].prevgraf
+ local current_line = prevgraf + 1 -- the current line number being justified
- local stack = new_dir_stack()
+ local adjust_spacing = par.adjust_spacing
+ local protrude_chars = par.protrude_chars
+ local statistics = par.statistics
- local leftskip = par.used_left_skip -- used or normal ?
- local rightskip = par.right_skip
- local parshape = par.par_shape_ptr
- ----- ignored_dimen = par.ignored_dimen
+ local stack = new_dir_stack()
- local adapt_width = par.adapt_width
+ local leftskip = par.used_left_skip -- used or normal ?
+ local rightskip = par.right_skip
+ local parshape = par.par_shape_ptr
+ ----- ignored_dimen = par.ignored_dimen
- -- reverse the links of the relevant passive nodes, goto first breakpoint
+ local adapt_width = par.adapt_width
- local current_break = nil
+ -- reverse the links of the relevant passive nodes, goto first breakpoint
- local break_node = par.best_bet.break_node
- repeat
- local first_break = break_node
- break_node = break_node.prev_break
- first_break.prev_break = current_break
- current_break = first_break
- until not break_node
+ local current_break = nil
- local head = par.head
+ local break_node = par.best_bet.break_node
+ repeat
+ local first_break = break_node
+ break_node = break_node.prev_break
+ first_break.prev_break = current_break
+ current_break = first_break
+ until not break_node
- -- maybe : each_...
+ local head = par.head
- while current_break do
+ -- maybe : each_...
- inject_dirs_at_begin_of_line(stack,head)
+ while current_break do
- local disc_break = false
- local post_disc_break = false
- local glue_break = false
+ inject_dirs_at_begin_of_line(stack,head)
- local lineend = nil -- lineend : the last node of the line (and paragraph)
- local lastnode = current_break.cur_break -- lastnode: the node after which the dir nodes should be closed
+ local disc_break = false
+ local post_disc_break = false
+ local glue_break = false
- if not lastnode then
- -- only at the end
- lastnode = slide_node_list(head) -- todo: find_tail
- if lastnode == par.final_par_glue then
- lineend = lastnode
- lastnode = getprev(lastnode)
- end
- else -- todo: use insert_list_after
- local id = getid(lastnode)
- if id == glue_code then
- -- lastnode is normal skip
- lastnode = replace_node(lastnode,new_rightskip(rightskip))
- glue_break = true
- lineend = lastnode
- lastnode = getprev(lastnode)
- elseif id == disc_code then
- local prevlast = getprev(lastnode)
- local nextlast = getnext(lastnode)
- local subtype = getsubtype(lastnode)
- local pre, post, replace, pretail, posttail, replacetail = getdisc(lastnode,true)
- if subtype == seconddisc_code then
- if not (getid(prevlast) == disc_code and getsubtype(prevlast) == firstdisc_code) then
- report_parbuilders('unsupported disc at location %a',3)
- end
- if pre then
- flush_node_list(pre)
- pre = nil -- signal
- end
- if replace then
- setlink(prevlast,replace)
- setlink(replacetail,lastnode)
- replace = nil -- signal
- end
- setdisc(lastnode,pre,post,replace)
- local pre, post, replace = getdisc(prevlast)
- if pre then
- flush_node_list(pre)
- end
- if replace then
- flush_node_list(replace)
- end
- if post then
- flush_node_list(post)
- end
- setdisc(prevlast) -- nil,nil,nil
- elseif subtype == firstdisc_code then
- -- what is v ... next probably
- if not (getid(v) == disc_code and getsubtype(v) == seconddisc_code) then
- report_parbuilders('unsupported disc at location %a',4)
- end
- setsubtype(nextlast,regulardisc_code)
- setfield(nextlast,"replace",post)
- setfield(lastnode,"post") -- nil
+ local lineend = nil -- q lineend refers to the last node of the line (and paragraph)
+ local lastnode = current_break.cur_break -- r lastnode refers to the node after which the dir nodes should be closed
+
+ if not lastnode then
+ -- only at the end
+ lastnode = slide_node_list(head) -- todo: find_tail
+ if lastnode == par.final_par_glue then
+ lineend = lastnode
+ lastnode = getprev(lastnode)
+ end
+ else -- todo: use insert_list_after
+ local id = getid(lastnode)
+ if id == glue_code then
+ -- lastnode is normal skip
+ lastnode = replace_node(lastnode,new_rightskip(rightskip))
+ glue_break = true
+ lineend = lastnode
+ lastnode = getprev(lastnode)
+ elseif id == disc_code then
+ local prevlast = getprev(lastnode)
+ local nextlast = getnext(lastnode)
+ local subtype = getsubtype(lastnode)
+ local pre, post, replace, pretail, posttail, replacetail = getdisc(lastnode,true)
+ if subtype == second_disc_code then
+ if not (getid(prevlast) == disc_code and getsubtype(prevlast) == first_disc_code) then
+ report_parbuilders('unsupported disc at location %a',3)
+ end
+ if pre then
+ flush_node_list(pre)
+ pre = nil -- signal
end
if replace then
- flush_node_list(replace)
+ setlink(prevlast,replace)
+ setlink(replacetail,lastnode)
+ replace = nil -- signal
end
+ setdisc(lastnode,pre,post,replace)
+ local pre, post, replace = getdisc(prevlast)
if pre then
- setlink(prevlast,pre)
- setlink(pretail,lastnode)
+ flush_node_list(pre)
+ end
+ if replace then
+ flush_node_list(replace)
end
if post then
- setlink(lastnode,post)
- setlink(posttail,nextlast)
- post_disc_break = true
+ flush_node_list(post)
end
- setdisc(lastnode) -- nil, nil, nil
- disc_break = true
- elseif id == kern_code then
- setkern(lastnode,0)
- elseif getid(lastnode) == math_code then
- setkern(lastnode,0) -- surround
- -- new in luatex
- setglue(lastnode) -- zeros
- end
- end
- lastnode = inject_dirs_at_end_of_line(stack,lastnode,getnext(head),current_break.cur_break)
- local rightbox = current_break.passive_right_box
- if rightbox then
- lastnode = insert_node_after(lastnode,lastnode,copy_node(rightbox))
- end
- if not lineend then
- lineend = lastnode
- end
- if lineend and lineend ~= head and protrude_chars > 0 then
- local id = getid(lineend)
- local c = (disc_break and (id == glyph_code or id ~= disc_code) and lineend) or getprev(lineend)
- local p = find_protchar_right(getnext(head),c)
- if p and getid(p) == glyph_code then
- local w, last_rightmost_char = right_pw(p)
- if last_rightmost_char and w ~= 0 then
- -- so we inherit attributes, lineend is new pseudo head
- lineend, c = insert_node_after(lineend,c,new_rightmarginkern(copy_node(last_rightmost_char),-w))
+ setdisc(prevlast) -- nil,nil,nil
+ elseif subtype == first_disc_code then
+ -- what is v ... next probably
+ if not (getid(v) == disc_code and getsubtype(v) == second_disc_code) then
+ report_parbuilders('unsupported disc at location %a',4)
end
+ setsubtype(nextlast,regular_disc_code)
+ setfield(nextlast,"replace",post)
+ setfield(lastnode,"post") -- nil
end
- end
- -- we finish the line
- local r = getnext(lineend)
- setnext(lineend)
- if not glue_break then
- if rightskip then
- insert_node_after(lineend,lineend,new_rightskip(right_skip)) -- lineend moves on as pseudo head
+ if replace then
+ flush_node_list(replace)
end
- end
- -- each time ?
- local q = getnext(head)
- setlink(head,r)
- -- insert leftbox (if needed after parindent)
- local leftbox = current_break.passive_left_box
- if leftbox then
- local first = getnext(q)
- if first and current_line == (par.first_line + 1) and getid(first) == hlist_code and not getlist(first) then
- insert_node_after(q,q,copy_node(leftbox))
- else
- q = insert_node_before(q,q,copy_node(leftbox))
+ if pre then
+ setlink(prevlast,pre)
+ setlink(pretail,lastnode)
+ end
+ if post then
+ setlink(lastnode,post)
+ setlink(posttail,nextlast)
+ post_disc_break = true
end
+ setdisc(lastnode) -- nil, nil, nil
+ disc_break = true
+ elseif id == kern_code then
+ setkern(lastnode,0)
+ elseif getid(lastnode) == math_code then
+ setkern(lastnode,0) -- surround
+ -- new in luatex
+ setglue(lastnode) -- zeros
end
- if protrude_chars > 0 then
- local p = find_protchar_left(q)
- if p and getid(p) == glyph_code then
- local w, last_leftmost_char = left_pw(p)
- if last_leftmost_char and w ~= 0 then
- -- so we inherit attributes, q is pseudo head and moves back
- q = insert_node_before(q,q,new_leftmarginkern(copy_node(last_leftmost_char),-w))
- end
+ end
+ lastnode = inject_dirs_at_end_of_line(stack,lastnode,getnext(head),current_break.cur_break)
+ local rightbox = current_break.passive_right_box
+ if rightbox then
+ lastnode = insert_node_after(lastnode,lastnode,copy_node(rightbox))
+ end
+ if not lineend then
+ lineend = lastnode
+ end
+ if lineend and lineend ~= head and protrude_chars > 0 then
+ local id = getid(lineend)
+ local c = (disc_break and (id == glyph_code or id ~= disc_code) and lineend) or getprev(lineend)
+ local p = find_protchar_right(getnext(head),c)
+ if p and getid(p) == glyph_code then
+ local w, last_rightmost_char = right_pw(p)
+ if last_rightmost_char and w ~= 0 then
+ -- so we inherit attributes, lineend is new pseudo head
+ lineend, c = insert_node_after(lineend,c,new_rightmarginkern(copy_node(last_rightmost_char),-w))
end
end
- if leftskip then
- q = insert_node_before(q,q,new_leftskip(leftskip))
- end
- local cur_width, cur_indent
- if current_line > par.last_special_line then
- cur_indent = par.second_indent
- cur_width = par.second_width
- elseif parshape then
- local shape = parshape[current_line]
- cur_indent = shape[1]
- cur_width = shape[2]
+ end
+ -- we finish the line
+ local r = getnext(lineend)
+ setnext(lineend)
+ if not glue_break then
+ if rightskip then
+ insert_node_after(lineend,lineend,new_rightskip(right_skip)) -- lineend moves on as pseudo head
+ end
+ end
+ -- each time ?
+ local q = getnext(head)
+ setlink(head,r)
+ -- insert leftbox (if needed after parindent)
+ local leftbox = current_break.passive_left_box
+ if leftbox then
+ local first = getnext(q)
+ if first and current_line == (par.first_line + 1) and getid(first) == hlist_code and not getlist(first) then
+ insert_node_after(q,q,copy_node(leftbox))
else
- cur_indent = par.first_indent
- cur_width = par.first_width
+ q = insert_node_before(q,q,copy_node(leftbox))
end
-
- if adapt_width then -- extension
- local l, r = adapt_width(par,current_line)
- cur_indent = cur_indent + l
- cur_width = cur_width - l - r
+ end
+ if protrude_chars > 0 then
+ local p = find_protchar_left(q)
+ if p and getid(p) == glyph_code then
+ local w, last_leftmost_char = left_pw(p)
+ if last_leftmost_char and w ~= 0 then
+ -- so we inherit attributes, q is pseudo head and moves back
+ q = insert_node_before(q,q,new_leftmarginkern(copy_node(last_leftmost_char),-w))
+ end
end
+ end
+ if leftskip then
+ q = insert_node_before(q,q,new_leftskip(leftskip))
+ end
+ local cur_width, cur_indent
+ if current_line > par.last_special_line then
+ cur_indent = par.second_indent
+ cur_width = par.second_width
+ elseif parshape then
+ local shape = parshape[current_line]
+ cur_indent = shape[1]
+ cur_width = shape[2]
+ else
+ cur_indent = par.first_indent
+ cur_width = par.first_width
+ end
- statistics.noflines = statistics.noflines + 1
- local finished_line = nil
- if adjust_spacing > 0 then
- statistics.nofadjustedlines = statistics.nofadjustedlines + 1
- finished_line = xpack_nodes(q,cur_width,"cal_expand_ratio",par.par_break_dir,par.first_line,current_line) -- ,current_break.analysis)
+ if adapt_width then -- extension
+ local l, r = adapt_width(par,current_line)
+ cur_indent = cur_indent + l
+ cur_width = cur_width - l - r
+ end
+
+ statistics.noflines = statistics.noflines + 1
+ local finished_line = nil
+ if adjust_spacing > 0 then
+ statistics.nofadjustedlines = statistics.nofadjustedlines + 1
+ finished_line = xpack_nodes(q,cur_width,"cal_expand_ratio",par.par_break_dir,par.first_line,current_line) -- ,current_break.analysis)
+ else
+ finished_line = xpack_nodes(q,cur_width,"exactly",par.par_break_dir,par.first_line,current_line) -- ,current_break.analysis)
+ end
+ if protrude_chars > 0 then
+ statistics.nofprotrudedlines = statistics.nofprotrudedlines + 1
+ end
+ -- wrong:
+ local adjust_head = texlists.adjust_head
+ local pre_adjust_head = texlists.pre_adjust_head
+ --
+ setshift(finished_line,cur_indent)
+ --
+ -- -- this is gone:
+ --
+ -- if par.each_line_height ~= ignored_dimen then
+ -- setheight(finished_line,par.each_line_height)
+ -- end
+ -- if par.each_line_depth ~= ignored_dimen then
+ -- setdepth(finished_line,par.each_line_depth)
+ -- end
+ -- if par.first_line_height ~= ignored_dimen and (current_line == par.first_line + 1) then
+ -- setheight(finished_line,par.first_line_height)
+ -- end
+ -- if par.last_line_depth ~= ignored_dimen and current_line + 1 == par.best_line then
+ -- setdepth(finished_line,par.last_line_depth)
+ -- end
+ --
+ if texlists.pre_adjust_head ~= pre_adjust_head then
+ append_list(par, texlists.pre_adjust_head)
+ texlists.pre_adjust_head = pre_adjust_head
+ end
+ append_to_vlist(par,finished_line)
+ if texlists.adjust_head ~= adjust_head then
+ append_list(par, texlists.adjust_head)
+ texlists.adjust_head = adjust_head
+ end
+ --
+ local pen
+ if current_line + 1 ~= par.best_line then
+ if current_break.passive_pen_inter then
+ pen = current_break.passive_pen_inter
else
- finished_line = xpack_nodes(q,cur_width,"exactly",par.par_break_dir,par.first_line,current_line) -- ,current_break.analysis)
- end
- if protrude_chars > 0 then
- statistics.nofprotrudedlines = statistics.nofprotrudedlines + 1
- end
- -- wrong:
- local adjust_head = texlists.adjust_head
- local pre_adjust_head = texlists.pre_adjust_head
- --
- setshift(finished_line,cur_indent)
- --
- -- -- this is gone:
- --
- -- if par.each_line_height ~= ignored_dimen then
- -- setheight(finished_line,par.each_line_height)
- -- end
- -- if par.each_line_depth ~= ignored_dimen then
- -- setdepth(finished_line,par.each_line_depth)
- -- end
- -- if par.first_line_height ~= ignored_dimen and (current_line == par.first_line + 1) then
- -- setheight(finished_line,par.first_line_height)
- -- end
- -- if par.last_line_depth ~= ignored_dimen and current_line + 1 == par.best_line then
- -- setdepth(finished_line,par.last_line_depth)
- -- end
- --
- if texlists.pre_adjust_head ~= pre_adjust_head then
- append_list(par, texlists.pre_adjust_head)
- texlists.pre_adjust_head = pre_adjust_head
- end
- append_to_vlist(par,finished_line)
- if texlists.adjust_head ~= adjust_head then
- append_list(par, texlists.adjust_head)
- texlists.adjust_head = adjust_head
- end
- --
- local pen
- if current_line + 1 ~= par.best_line then
- if current_break.passive_pen_inter then
- pen = current_break.passive_pen_inter
+ pen = par.inter_line_penalty
+ end
+ if current_line == prevgraf + 1 then
+ pen = pen + par.club_penalty
+ end
+ if current_line + 2 == par.best_line then
+ if par.display then
+ pen = pen + par.display_widow_penalty
else
- pen = par.inter_line_penalty
- end
- if current_line == prevgraf + 1 then
- pen = pen + par.club_penalty
- end
- if current_line + 2 == par.best_line then
- if par.display then
- pen = pen + par.display_widow_penalty
- else
- pen = pen + par.widow_penalty
- end
- end
- if disc_break then
- if current_break.passive_pen_broken ~= 0 then
- pen = pen + current_break.passive_pen_broken
- else
- pen = pen + par.broken_penalty
- end
+ pen = pen + par.widow_penalty
end
- if pen ~= 0 then
- append_to_vlist(par,new_penalty(pen))
+ end
+ if disc_break then
+ if current_break.passive_pen_broken ~= 0 then
+ pen = pen + current_break.passive_pen_broken
+ else
+ pen = pen + par.broken_penalty
end
end
- current_line = current_line + 1
- current_break = current_break.prev_break
- if current_break and not post_disc_break then
- local current = head
- local next = nil
- while true do
- next = getnext(current)
- if next == current_break.cur_break then
- break
- end
- local id = getid(next)
- if id == glyph_code then
- break
- elseif id == localpar_code then
- -- nothing
- elseif id < math_code then
- -- messy criterium
- break
- elseif id == math_code then
- -- keep the math node
- setkern(next,0) -- surround
- -- new in luatex
- setglue(lastnode) -- zeros
+ if pen ~= 0 then
+ append_to_vlist(par,new_penalty(pen))
+ end
+ end
+ current_line = current_line + 1
+ current_break = current_break.prev_break
+ if current_break and not post_disc_break then
+ local current = head
+ local next = nil
+ while true do
+ next = getnext(current)
+ if next == current_break.cur_break then
+ break
+ end
+ local id = getid(next)
+ if id == glyph_code then
+ break
+ elseif id == localpar_code then
+ -- nothing
+ elseif id < math_code then
+ -- messy criterium
+ break
+ elseif id == math_code then
+ -- keep the math node
+ setkern(next,0) -- surround
+ -- new in luatex
+ setglue(lastnode) -- zeros
+ break
+ elseif id == kern_code then
+ local subtype = getsubtype(next)
+ if subtype == fontkern_code or subtype == accentkern_code then
+ -- fontkerns and accent kerns as well as otf injections
break
- elseif id == kern_code then
- local subtype = getsubtype(next)
- if subtype == fontkern_code or subtype == accentkern_code then
- -- fontkerns and accent kerns as well as otf injections
- break
- end
end
- current = next
- end
- if current ~= head then
- setnext(current)
- flush_node_list(getnext(head))
- setlink(head,next)
end
+ current = next
+ end
+ if current ~= head then
+ setnext(current)
+ flush_node_list(getnext(head))
+ setlink(head,next)
end
end
- -- if current_line ~= par.best_line then
- -- report_parbuilders("line breaking")
- -- end
- par.head = nil -- needs checking
- current_line = current_line - 1
- if trace_basic then
- report_parbuilders("paragraph broken into %a lines",current_line)
- end
- texnest[texnest.ptr].prevgraf = current_line
end
+ -- if current_line ~= par.best_line then
+ -- report_parbuilders("line breaking")
+ -- end
+ par.head = nil -- needs checking
+ current_line = current_line - 1
+ if trace_basic then
+ report_parbuilders("paragraph broken into %a lines",current_line)
+ end
+ texnest[texnest.ptr].prevgraf = current_line
+end
- local function wrap_up(par)
- if par.tracing_paragraphs then
- diagnostics.stop()
- end
- if par.do_last_line_fit then
- local best_bet = par.best_bet
- local active_short = best_bet.active_short
- local active_glue = best_bet.active_glue
- if active_short == 0 then
- if trace_lastlinefit then
- report_parbuilders("disabling last line fit, no active_short")
- end
- par.do_last_line_fit = false
- else
- local glue = par.final_par_glue
- setwidth(glue,getwidth(glue) + active_short - active_glue)
- setfield(glue,"stretch",0)
- if trace_lastlinefit then
- report_parbuilders("applying last line fit, short %a, glue %p",active_short,active_glue)
- end
+local function wrap_up(par)
+ if par.tracing_paragraphs then
+ diagnostics.stop()
+ end
+ if par.do_last_line_fit then
+ local best_bet = par.best_bet
+ local active_short = best_bet.active_short
+ local active_glue = best_bet.active_glue
+ if active_short == 0 then
+ if trace_lastlinefit then
+ report_parbuilders("disabling last line fit, no active_short")
+ end
+ par.do_last_line_fit = false
+ else
+ local glue = par.final_par_glue
+ setwidth(glue,getwidth(glue) + active_short - active_glue)
+ setfield(glue,"stretch",0)
+ if trace_lastlinefit then
+ report_parbuilders("applying last line fit, short %a, glue %p",active_short,active_glue)
end
end
- -- we have a bunch of glue and and temp nodes not freed
- local head = par.head
- if getid(head) == temp_code then
- par.head = getnext(head)
- flush_node(head)
+ end
+ -- we have a bunch of glue and and temp nodes not freed
+ local head = par.head
+ if getid(head) == temp_code then
+ par.head = getnext(head)
+ flush_node(head)
+ end
+ post_line_break(par)
+ reset_meta(par)
+ register_statistics(par)
+ return par.head_field
+end
+
+-- we could do active nodes differently ... table instead of linked list or a list
+-- with prev nodes but it doesn't save much (as we still need to keep indices then
+-- in next)
+
+local function deactivate_node(par,prev_prev_r,prev_r,r,cur_active_width,checked_expansion) -- no need for adjust if disabled
+ local active = par.active
+ local active_width = par.active_width
+ prev_r.next = r.next
+ -- removes r
+ -- r = nil
+ if prev_r == active then
+ r = active.next
+ if r.id == delta_code then
+ local aw = active_width.size + r.size active_width.size = aw cur_active_width.size = aw
+ local aw = active_width.stretch + r.stretch active_width.stretch = aw cur_active_width.stretch = aw
+ local aw = active_width.fi + r.fi active_width.fi = aw cur_active_width.fi = aw
+ local aw = active_width.fil + r.fil active_width.fil = aw cur_active_width.fil = aw
+ local aw = active_width.fill + r.fill active_width.fill = aw cur_active_width.fill = aw
+ local aw = active_width.filll + r.filll active_width.filll = aw cur_active_width.filll = aw
+ local aw = active_width.shrink + r.shrink active_width.shrink = aw cur_active_width.shrink = aw
+ if checked_expansion then
+ local aw = active_width.adjust_stretch + r.adjust_stretch active_width.adjust_stretch = aw cur_active_width.adjust_stretch = aw
+ local aw = active_width.adjust_shrink + r.adjust_shrink active_width.adjust_shrink = aw cur_active_width.adjust_shrink = aw
+ end
+ active.next = r.next
+ -- removes r
+ -- r = nil
end
- post_line_break(par)
- reset_meta(par)
- register_statistics(par)
- return par.head_field
- end
-
- -- we could do active nodes differently ... table instead of linked list or a list
- -- with prev nodes but it doesn't save much (as we still need to keep indices then
- -- in next)
-
- local function deactivate_node(par,prev_prev_r,prev_r,r,cur_active_width,checked_expansion) -- no need for adjust if disabled
- local active = par.active
- local active_width = par.active_width
- prev_r.next = r.next
- -- removes r
- -- r = nil
- if prev_r == active then
- r = active.next
- if r.id == delta_code then
- local aw = active_width.size + r.size active_width.size = aw cur_active_width.size = aw
- local aw = active_width.stretch + r.stretch active_width.stretch = aw cur_active_width.stretch = aw
- local aw = active_width.fi + r.fi active_width.fi = aw cur_active_width.fi = aw
- local aw = active_width.fil + r.fil active_width.fil = aw cur_active_width.fil = aw
- local aw = active_width.fill + r.fill active_width.fill = aw cur_active_width.fill = aw
- local aw = active_width.filll + r.filll active_width.filll = aw cur_active_width.filll = aw
- local aw = active_width.shrink + r.shrink active_width.shrink = aw cur_active_width.shrink = aw
- if checked_expansion then
- local aw = active_width.adjust_stretch + r.adjust_stretch active_width.adjust_stretch = aw cur_active_width.adjust_stretch = aw
- local aw = active_width.adjust_shrink + r.adjust_shrink active_width.adjust_shrink = aw cur_active_width.adjust_shrink = aw
- end
- active.next = r.next
- -- removes r
- -- r = nil
- end
- elseif prev_r.id == delta_code then
- r = prev_r.next
- if r == active then
- cur_active_width.size = cur_active_width.size - prev_r.size
- cur_active_width.stretch = cur_active_width.stretch - prev_r.stretch
- cur_active_width.fi = cur_active_width.fi - prev_r.fi
- cur_active_width.fil = cur_active_width.fil - prev_r.fil
- cur_active_width.fill = cur_active_width.fill - prev_r.fill
- cur_active_width.filll = cur_active_width.filll - prev_r.filll
- cur_active_width.shrink = cur_active_width.shrink - prev_r.shrink
- if checked_expansion then
- cur_active_width.adjust_stretch = cur_active_width.adjust_stretch - prev_r.adjust_stretch
- cur_active_width.adjust_shrink = cur_active_width.adjust_shrink - prev_r.adjust_shrink
- end
- prev_prev_r.next = active
- -- removes prev_r
- -- prev_r = nil
- prev_r = prev_prev_r
- elseif r.id == delta_code then
- local rn = r.size cur_active_width.size = cur_active_width.size + rn prev_r.size = prev_r.size + rn
- local rn = r.stretch cur_active_width.stretch = cur_active_width.stretch + rn prev_r.stretch = prev_r.stretch + rn
- local rn = r.fi cur_active_width.fi = cur_active_width.fi + rn prev_r.fi = prev_r.fi + rn
- local rn = r.fil cur_active_width.fil = cur_active_width.fil + rn prev_r.fil = prev_r.fil + rn
- local rn = r.fill cur_active_width.fill = cur_active_width.fill + rn prev_r.fill = prev_r.fill + rn
- local rn = r.filll cur_active_width.filll = cur_active_width.filll + rn prev_r.filll = prev_r.fill + rn
- local rn = r.shrink cur_active_width.shrink = cur_active_width.shrink + rn prev_r.shrink = prev_r.shrink + rn
- if checked_expansion then
- local rn = r.adjust_stretch cur_active_width.adjust_stretch = cur_active_width.adjust_stretch + rn prev_r.adjust_stretch = prev_r.adjust_stretch + rn
- local rn = r.adjust_shrink cur_active_width.adjust_shrink = cur_active_width.adjust_shrink + rn prev_r.adjust_shrink = prev_r.adjust_shrink + rn
- end
- prev_r.next = r.next
- -- removes r
- -- r = nil
+ elseif prev_r.id == delta_code then
+ r = prev_r.next
+ if r == active then
+ cur_active_width.size = cur_active_width.size - prev_r.size
+ cur_active_width.stretch = cur_active_width.stretch - prev_r.stretch
+ cur_active_width.fi = cur_active_width.fi - prev_r.fi
+ cur_active_width.fil = cur_active_width.fil - prev_r.fil
+ cur_active_width.fill = cur_active_width.fill - prev_r.fill
+ cur_active_width.filll = cur_active_width.filll - prev_r.filll
+ cur_active_width.shrink = cur_active_width.shrink - prev_r.shrink
+ if checked_expansion then
+ cur_active_width.adjust_stretch = cur_active_width.adjust_stretch - prev_r.adjust_stretch
+ cur_active_width.adjust_shrink = cur_active_width.adjust_shrink - prev_r.adjust_shrink
+ end
+ prev_prev_r.next = active
+ -- removes prev_r
+ -- prev_r = nil
+ prev_r = prev_prev_r
+ elseif r.id == delta_code then
+ local rn = r.size cur_active_width.size = cur_active_width.size + rn prev_r.size = prev_r.size + rn
+ local rn = r.stretch cur_active_width.stretch = cur_active_width.stretch + rn prev_r.stretch = prev_r.stretch + rn
+ local rn = r.fi cur_active_width.fi = cur_active_width.fi + rn prev_r.fi = prev_r.fi + rn
+ local rn = r.fil cur_active_width.fil = cur_active_width.fil + rn prev_r.fil = prev_r.fil + rn
+ local rn = r.fill cur_active_width.fill = cur_active_width.fill + rn prev_r.fill = prev_r.fill + rn
+ local rn = r.filll cur_active_width.filll = cur_active_width.filll + rn prev_r.filll = prev_r.fill + rn
+ local rn = r.shrink cur_active_width.shrink = cur_active_width.shrink + rn prev_r.shrink = prev_r.shrink + rn
+ if checked_expansion then
+ local rn = r.adjust_stretch cur_active_width.adjust_stretch = cur_active_width.adjust_stretch + rn prev_r.adjust_stretch = prev_r.adjust_stretch + rn
+ local rn = r.adjust_shrink cur_active_width.adjust_shrink = cur_active_width.adjust_shrink + rn prev_r.adjust_shrink = prev_r.adjust_shrink + rn
end
+ prev_r.next = r.next
+ -- removes r
+ -- r = nil
end
- return prev_r, r
end
+ return prev_r, r
+end
- local function lastlinecrap(shortfall,active_short,active_glue,cur_active_width,fill_width,last_line_fit)
- if active_short == 0 or active_glue <= 0 then
- return false, 0, fit_decent_class, 0, 0
+local function lastlinecrap(shortfall,active_short,active_glue,cur_active_width,fill_width,last_line_fit)
+ if active_short == 0 or active_glue <= 0 then
+ return false, 0, fit_decent_class, 0, 0
+ end
+ if cur_active_width.fi ~= fill_width.fi or cur_active_width.fil ~= fill_width.fil or cur_active_width.fill ~= fill_width.fill or cur_active_width.filll ~= fill_width.filll then
+ return false, 0, fit_decent_class, 0, 0
+ end
+ local adjustment = active_short > 0 and cur_active_width.stretch or cur_active_width.shrink
+ if adjustment <= 0 then
+ return false, 0, fit_decent_class, adjustment, 0
+ end
+ adjustment = calculate_fraction(adjustment,active_short,active_glue,maxdimen)
+ if last_line_fit < 1000 then
+ adjustment = calculate_fraction(adjustment,last_line_fit,1000,maxdimen) -- uses previous adjustment
+ end
+ local fit_class = fit_decent_class
+ if adjustment > 0 then
+ local stretch = cur_active_width.stretch
+ if adjustment > shortfall then
+ adjustment = shortfall
end
- if cur_active_width.fi ~= fill_width.fi or cur_active_width.fil ~= fill_width.fil or cur_active_width.fill ~= fill_width.fill or cur_active_width.filll ~= fill_width.filll then
- return false, 0, fit_decent_class, 0, 0
+ if adjustment > 7230584 and stretch < 1663497 then
+ return true, fit_very_loose_class, shortfall, adjustment, infinite_badness
end
- local adjustment = active_short > 0 and cur_active_width.stretch or cur_active_width.shrink
- if adjustment <= 0 then
- return false, 0, fit_decent_class, adjustment, 0
+ -- if adjustment == 0 then -- badness = 0
+ -- return true, shortfall, fit_decent_class, 0, 0
+ -- elseif stretch <= 0 then -- badness = 10000
+ -- return true, shortfall, fit_very_loose_class, adjustment, 10000
+ -- end
+ -- local badness = (adjustment == 0 and 0) or (stretch <= 0 and 10000) or calculate_badness(adjustment,stretch)
+ local badness = calculate_badness(adjustment,stretch)
+ if badness > 99 then
+ return true, shortfall, fit_very_loose_class, adjustment, badness
+ elseif badness > 12 then
+ return true, shortfall, fit_loose_class, adjustment, badness
+ else
+ return true, shortfall, fit_decent_class, adjustment, badness
end
- adjustment = calculate_fraction(adjustment,active_short,active_glue,maxdimen)
- if last_line_fit < 1000 then
- adjustment = calculate_fraction(adjustment,last_line_fit,1000,maxdimen) -- uses previous adjustment
+ elseif adjustment < 0 then
+ local shrink = cur_active_width.shrink
+ if -adjustment > shrink then
+ adjustment = -shrink
end
- local fit_class = fit_decent_class
- if adjustment > 0 then
- local stretch = cur_active_width.stretch
- if adjustment > shortfall then
- adjustment = shortfall
- end
- if adjustment > 7230584 and stretch < 1663497 then
- return true, fit_very_loose_class, shortfall, adjustment, infinite_badness
- end
- -- if adjustment == 0 then -- badness = 0
- -- return true, shortfall, fit_decent_class, 0, 0
- -- elseif stretch <= 0 then -- badness = 10000
- -- return true, shortfall, fit_very_loose_class, adjustment, 10000
- -- end
- -- local badness = (adjustment == 0 and 0) or (stretch <= 0 and 10000) or calculate_badness(adjustment,stretch)
- local badness = calculate_badness(adjustment,stretch)
- if badness > 99 then
- return true, shortfall, fit_very_loose_class, adjustment, badness
- elseif badness > 12 then
- return true, shortfall, fit_loose_class, adjustment, badness
- else
- return true, shortfall, fit_decent_class, adjustment, badness
- end
- elseif adjustment < 0 then
- local shrink = cur_active_width.shrink
- if -adjustment > shrink then
- adjustment = -shrink
- end
- local badness = calculate_badness(-adjustment,shrink)
- if badness > 12 then
- return true, shortfall, fit_tight_class, adjustment, badness
- else
- return true, shortfall, fit_decent_class, adjustment, badness
- end
+ local badness = calculate_badness(-adjustment,shrink)
+ if badness > 12 then
+ return true, shortfall, fit_tight_class, adjustment, badness
else
- return false, 0, fit_decent_class, 0, 0
- end
- end
-
- -- todo: statistics .. count tries and so
-
- local trialcount = 0
-
- local function try_break(pi, break_type, par, first_p, current, checked_expansion)
-
- -- trialcount = trialcount + 1
- -- print(trialcount,pi,break_type,current,nuts.tostring(current))
-
- if pi >= infinite_penalty then -- this breakpoint is inhibited by infinite penalty
- local p_active = par.active
- return p_active, p_active and p_active.next
- elseif pi <= -infinite_penalty then -- this breakpoint will be forced
- pi = eject_penalty
- end
-
- local prev_prev_r = nil -- a step behind prev_r, if type(prev_r)=delta_code
- local prev_r = par.active -- stays a step behind r
- local r = nil -- runs through the active list
- local no_break_yet = true -- have we found a feasible break at current?
- local node_r_stays_active = false -- should node r remain in the active list?
- local line_width = 0 -- the current line will be justified to this width
- local line_number = 0 -- line number of current active node
- local old_line_number = 0 -- maximum line number in current equivalence class of lines
-
- local protrude_chars = par.protrude_chars
- local checked_expansion = par.checked_expansion
- local break_width = par.break_width
- local active_width = par.active_width
- local background = par.background
- local minimal_demerits = par.minimal_demerits
- local best_place = par.best_place
- local best_pl_line = par.best_pl_line
- local best_pl_short = par.best_pl_short
- local best_pl_glue = par.best_pl_glue
- local do_last_line_fit = par.do_last_line_fit
- local final_pass = par.final_pass
- local tracing_paragraphs = par.tracing_paragraphs
- -- local par_active = par.active
-
- local adapt_width = par.adapt_width
-
- local parshape = par.par_shape_ptr
-
- local cur_active_width = checked_expansion and { -- distance from current active node
- size = active_width.size,
- stretch = active_width.stretch,
- fi = active_width.fi,
- fil = active_width.fil,
- fill = active_width.fill,
- filll = active_width.filll,
- shrink = active_width.shrink,
- adjust_stretch = active_width.adjust_stretch,
- adjust_shrink = active_width.adjust_shrink,
- } or {
- size = active_width.size,
- stretch = active_width.stretch,
- fi = active_width.fi,
- fil = active_width.fil,
- fill = active_width.fill,
- filll = active_width.filll,
- shrink = active_width.shrink,
- }
+ return true, shortfall, fit_decent_class, adjustment, badness
+ end
+ else
+ return false, 0, fit_decent_class, 0, 0
+ end
+end
- while true do
- r = prev_r.next
- if r.id == delta_code then
- cur_active_width.size = cur_active_width.size + r.size
- cur_active_width.stretch = cur_active_width.stretch + r.stretch
- cur_active_width.fi = cur_active_width.fi + r.fi
- cur_active_width.fil = cur_active_width.fil + r.fil
- cur_active_width.fill = cur_active_width.fill + r.fill
- cur_active_width.filll = cur_active_width.filll + r.filll
- cur_active_width.shrink = cur_active_width.shrink + r.shrink
- if checked_expansion then
- cur_active_width.adjust_stretch = cur_active_width.adjust_stretch + r.adjust_stretch
- cur_active_width.adjust_shrink = cur_active_width.adjust_shrink + r.adjust_shrink
- end
- prev_prev_r = prev_r
- prev_r = r
- else
- line_number = r.line_number
- if line_number > old_line_number then
- local minimum_demerits = par.minimum_demerits
- if minimum_demerits < awful_badness and (old_line_number ~= par.easy_line or r == par.active) then
- if no_break_yet then
- no_break_yet = false
- break_width.size = background.size
- break_width.stretch = background.stretch
- break_width.fi = background.fi
- break_width.fil = background.fil
- break_width.fill = background.fill
- break_width.filll = background.filll
- break_width.shrink = background.shrink
- if checked_expansion then
- break_width.adjust_stretch = 0
- break_width.adjust_shrink = 0
- end
- if current then
- compute_break_width(par,break_type,current)
- end
+-- todo: statistics .. count tries and so
+
+local trialcount = 0
+
+local function try_break(pi, break_type, par, first_p, current, checked_expansion)
+
+-- trialcount = trialcount + 1
+-- print(trialcount,pi,break_type,current,nuts.tostring(current))
+
+ if pi >= infinite_penalty then -- this breakpoint is inhibited by infinite penalty
+ local p_active = par.active
+ return p_active, p_active and p_active.next
+ elseif pi <= -infinite_penalty then -- this breakpoint will be forced
+ pi = eject_penalty
+ end
+
+ local prev_prev_r = nil -- a step behind prev_r, if type(prev_r)=delta_code
+ local prev_r = par.active -- stays a step behind r
+ local r = nil -- runs through the active list
+ local no_break_yet = true -- have we found a feasible break at current?
+ local node_r_stays_active = false -- should node r remain in the active list?
+ local line_width = 0 -- the current line will be justified to this width
+ local line_number = 0 -- line number of current active node
+ local old_line_number = 0 -- maximum line number in current equivalence class of lines
+
+ local protrude_chars = par.protrude_chars
+ local checked_expansion = par.checked_expansion
+ local break_width = par.break_width
+ local active_width = par.active_width
+ local background = par.background
+ local minimal_demerits = par.minimal_demerits
+ local best_place = par.best_place
+ local best_pl_line = par.best_pl_line
+ local best_pl_short = par.best_pl_short
+ local best_pl_glue = par.best_pl_glue
+ local do_last_line_fit = par.do_last_line_fit
+ local final_pass = par.final_pass
+ local tracing_paragraphs = par.tracing_paragraphs
+ -- local par_active = par.active
+
+ local adapt_width = par.adapt_width
+
+ local parshape = par.par_shape_ptr
+
+ local cur_active_width = checked_expansion and { -- distance from current active node
+ size = active_width.size,
+ stretch = active_width.stretch,
+ fi = active_width.fi,
+ fil = active_width.fil,
+ fill = active_width.fill,
+ filll = active_width.filll,
+ shrink = active_width.shrink,
+ adjust_stretch = active_width.adjust_stretch,
+ adjust_shrink = active_width.adjust_shrink,
+ } or {
+ size = active_width.size,
+ stretch = active_width.stretch,
+ fi = active_width.fi,
+ fil = active_width.fil,
+ fill = active_width.fill,
+ filll = active_width.filll,
+ shrink = active_width.shrink,
+ }
+
+ while true do
+ r = prev_r.next
+ if r.id == delta_code then
+ cur_active_width.size = cur_active_width.size + r.size
+ cur_active_width.stretch = cur_active_width.stretch + r.stretch
+ cur_active_width.fi = cur_active_width.fi + r.fi
+ cur_active_width.fil = cur_active_width.fil + r.fil
+ cur_active_width.fill = cur_active_width.fill + r.fill
+ cur_active_width.filll = cur_active_width.filll + r.filll
+ cur_active_width.shrink = cur_active_width.shrink + r.shrink
+ if checked_expansion then
+ cur_active_width.adjust_stretch = cur_active_width.adjust_stretch + r.adjust_stretch
+ cur_active_width.adjust_shrink = cur_active_width.adjust_shrink + r.adjust_shrink
+ end
+ prev_prev_r = prev_r
+ prev_r = r
+ else
+ line_number = r.line_number
+ if line_number > old_line_number then
+ local minimum_demerits = par.minimum_demerits
+ if minimum_demerits < awful_badness and (old_line_number ~= par.easy_line or r == par.active) then
+ if no_break_yet then
+ no_break_yet = false
+ break_width.size = background.size
+ break_width.stretch = background.stretch
+ break_width.fi = background.fi
+ break_width.fil = background.fil
+ break_width.fill = background.fill
+ break_width.filll = background.filll
+ break_width.shrink = background.shrink
+ if checked_expansion then
+ break_width.adjust_stretch = 0
+ break_width.adjust_shrink = 0
end
- if prev_r.id == delta_code then
- prev_r.size = prev_r.size - cur_active_width.size + break_width.size
- prev_r.stretch = prev_r.stretch - cur_active_width.stretc + break_width.stretch
- prev_r.fi = prev_r.fi - cur_active_width.fi + break_width.fi
- prev_r.fil = prev_r.fil - cur_active_width.fil + break_width.fil
- prev_r.fill = prev_r.fill - cur_active_width.fill + break_width.fill
- prev_r.filll = prev_r.filll - cur_active_width.filll + break_width.filll
- prev_r.shrink = prev_r.shrink - cur_active_width.shrink + break_width.shrink
- if checked_expansion then
- prev_r.adjust_stretch = prev_r.adjust_stretch - cur_active_width.adjust_stretch + break_width.adjust_stretch
- prev_r.adjust_shrink = prev_r.adjust_shrink - cur_active_width.adjust_shrink + break_width.adjust_shrink
- end
- elseif prev_r == par.active then
- active_width.size = break_width.size
- active_width.stretch = break_width.stretch
- active_width.fi = break_width.fi
- active_width.fil = break_width.fil
- active_width.fill = break_width.fill
- active_width.filll = break_width.filll
- active_width.shrink = break_width.shrink
- if checked_expansion then
- active_width.adjust_stretch = break_width.adjust_stretch
- active_width.adjust_shrink = break_width.adjust_shrink
- end
- else
- local q = checked_expansion and {
- id = delta_code,
- subtype = nosubtype_code,
- next = r,
- size = break_width.size - cur_active_width.size,
- stretch = break_width.stretch - cur_active_width.stretch,
- fi = break_width.fi - cur_active_width.fi,
- fil = break_width.fil - cur_active_width.fil,
- fill = break_width.fill - cur_active_width.fill,
- filll = break_width.filll - cur_active_width.filll,
- shrink = break_width.shrink - cur_active_width.shrink,
- adjust_stretch = break_width.adjust_stretch - cur_active_width.adjust_stretch,
- adjust_shrink = break_width.adjust_shrink - cur_active_width.adjust_shrink,
- } or {
- id = delta_code,
- subtype = nosubtype_code,
- next = r,
- size = break_width.size - cur_active_width.size,
- stretch = break_width.stretch - cur_active_width.stretch,
- fi = break_width.fi - cur_active_width.fi,
- fil = break_width.fil - cur_active_width.fil,
- fill = break_width.fill - cur_active_width.fill,
- filll = break_width.filll - cur_active_width.filll,
- shrink = break_width.shrink - cur_active_width.shrink,
- }
- prev_r.next = q
- prev_prev_r = prev_r
- prev_r = q
+ if current then
+ compute_break_width(par,break_type,current)
end
- local adj_demerits = par.adj_demerits
- local abs_adj_demerits = adj_demerits > 0 and adj_demerits or -adj_demerits
- if abs_adj_demerits >= awful_badness - minimum_demerits then
- minimum_demerits = awful_badness - 1
- else
- minimum_demerits = minimum_demerits + abs_adj_demerits
+ end
+ if prev_r.id == delta_code then
+ prev_r.size = prev_r.size - cur_active_width.size + break_width.size
+ prev_r.stretch = prev_r.stretch - cur_active_width.stretc + break_width.stretch
+ prev_r.fi = prev_r.fi - cur_active_width.fi + break_width.fi
+ prev_r.fil = prev_r.fil - cur_active_width.fil + break_width.fil
+ prev_r.fill = prev_r.fill - cur_active_width.fill + break_width.fill
+ prev_r.filll = prev_r.filll - cur_active_width.filll + break_width.filll
+ prev_r.shrink = prev_r.shrink - cur_active_width.shrink + break_width.shrink
+ if checked_expansion then
+ prev_r.adjust_stretch = prev_r.adjust_stretch - cur_active_width.adjust_stretch + break_width.adjust_stretch
+ prev_r.adjust_shrink = prev_r.adjust_shrink - cur_active_width.adjust_shrink + break_width.adjust_shrink
end
- for fit_class = fit_very_loose_class, fit_tight_class do
- if minimal_demerits[fit_class] <= minimum_demerits then
- -- insert a new active node from best_place[fit_class] to current
- par.pass_number = par.pass_number + 1
- local prev_break = best_place[fit_class]
- local passive = {
- id = passive_code,
- subtype = nosubtype_code,
- next = par.passive,
- cur_break = current,
- serial = par.pass_number,
- prev_break = prev_break,
- passive_pen_inter = par.internal_pen_inter,
- passive_pen_broken = par.internal_pen_broken,
- passive_last_left_box = par.internal_left_box,
- passive_last_left_box_width = par.internal_left_box_width,
- passive_left_box = prev_break and prev_break.passive_last_left_box or par.init_internal_left_box,
- passive_left_box_width = prev_break and prev_break.passive_last_left_box_width or par.init_internal_left_box_width,
- passive_right_box = par.internal_right_box,
- passive_right_box_width = par.internal_right_box_width,
- -- analysis = table.fastcopy(cur_active_width),
- }
- par.passive = passive
- local q = {
- id = break_type,
- subtype = fit_class,
- break_node = passive,
- line_number = best_pl_line[fit_class] + 1,
- total_demerits = minimal_demerits[fit_class], -- or 0,
- next = r,
- }
- if do_last_line_fit then
- local active_short = best_pl_short[fit_class]
- local active_glue = best_pl_glue[fit_class]
- q.active_short = active_short
- q.active_glue = active_glue
- if trace_lastlinefit then
- report_parbuilders("setting short to %i and glue to %p using class %a",active_short,active_glue,fit_class)
- end
- end
- -- q.next = r -- already done
- prev_r.next = q
- prev_r = q
- if tracing_paragraphs then
- diagnostics.break_node(par,q,fit_class,break_type,current)
- end
- end
- minimal_demerits[fit_class] = awful_badness
+ elseif prev_r == par.active then
+ active_width.size = break_width.size
+ active_width.stretch = break_width.stretch
+ active_width.fi = break_width.fi
+ active_width.fil = break_width.fil
+ active_width.fill = break_width.fill
+ active_width.filll = break_width.filll
+ active_width.shrink = break_width.shrink
+ if checked_expansion then
+ active_width.adjust_stretch = break_width.adjust_stretch
+ active_width.adjust_shrink = break_width.adjust_shrink
end
- par.minimum_demerits = awful_badness
- if r ~= par.active then
- local q = checked_expansion and {
- id = delta_code,
- subtype = nosubtype_code,
- next = r,
- size = cur_active_width.size - break_width.size,
- stretch = cur_active_width.stretch - break_width.stretch,
- fi = cur_active_width.fi - break_width.fi,
- fil = cur_active_width.fil - break_width.fil,
- fill = cur_active_width.fill - break_width.fill,
- filll = cur_active_width.filll - break_width.filll,
- shrink = cur_active_width.shrink - break_width.shrink,
- adjust_stretch = cur_active_width.adjust_stretch - break_width.adjust_stretch,
- adjust_shrink = cur_active_width.adjust_shrink - break_width.adjust_shrink,
- } or {
- id = delta_code,
- subtype = nosubtype_code,
+ else
+ local q = checked_expansion and {
+ id = delta_code,
+ subtype = nosubtype_code,
+ next = r,
+ size = break_width.size - cur_active_width.size,
+ stretch = break_width.stretch - cur_active_width.stretch,
+ fi = break_width.fi - cur_active_width.fi,
+ fil = break_width.fil - cur_active_width.fil,
+ fill = break_width.fill - cur_active_width.fill,
+ filll = break_width.filll - cur_active_width.filll,
+ shrink = break_width.shrink - cur_active_width.shrink,
+ adjust_stretch = break_width.adjust_stretch - cur_active_width.adjust_stretch,
+ adjust_shrink = break_width.adjust_shrink - cur_active_width.adjust_shrink,
+ } or {
+ id = delta_code,
+ subtype = nosubtype_code,
+ next = r,
+ size = break_width.size - cur_active_width.size,
+ stretch = break_width.stretch - cur_active_width.stretch,
+ fi = break_width.fi - cur_active_width.fi,
+ fil = break_width.fil - cur_active_width.fil,
+ fill = break_width.fill - cur_active_width.fill,
+ filll = break_width.filll - cur_active_width.filll,
+ shrink = break_width.shrink - cur_active_width.shrink,
+ }
+ prev_r.next = q
+ prev_prev_r = prev_r
+ prev_r = q
+ end
+ local adj_demerits = par.adj_demerits
+ local abs_adj_demerits = adj_demerits > 0 and adj_demerits or -adj_demerits
+ if abs_adj_demerits >= awful_badness - minimum_demerits then
+ minimum_demerits = awful_badness - 1
+ else
+ minimum_demerits = minimum_demerits + abs_adj_demerits
+ end
+ for fit_class = fit_very_loose_class, fit_tight_class do
+ if minimal_demerits[fit_class] <= minimum_demerits then
+ -- insert a new active node from best_place[fit_class] to current
+ par.pass_number = par.pass_number + 1
+ local prev_break = best_place[fit_class]
+ local passive = {
+ id = passive_code,
+ subtype = nosubtype_code,
+ next = par.passive,
+ cur_break = current,
+ serial = par.pass_number,
+ prev_break = prev_break,
+ passive_pen_inter = par.internal_pen_inter,
+ passive_pen_broken = par.internal_pen_broken,
+ passive_last_left_box = par.internal_left_box,
+ passive_last_left_box_width = par.internal_left_box_width,
+ passive_left_box = prev_break and prev_break.passive_last_left_box or par.init_internal_left_box,
+ passive_left_box_width = prev_break and prev_break.passive_last_left_box_width or par.init_internal_left_box_width,
+ passive_right_box = par.internal_right_box,
+ passive_right_box_width = par.internal_right_box_width,
+-- analysis = table.fastcopy(cur_active_width),
+ }
+ par.passive = passive
+ local q = {
+ id = break_type,
+ subtype = fit_class,
+ break_node = passive,
+ line_number = best_pl_line[fit_class] + 1,
+ total_demerits = minimal_demerits[fit_class], -- or 0,
next = r,
- size = cur_active_width.size - break_width.size,
- stretch = cur_active_width.stretch - break_width.stretch,
- fi = cur_active_width.fi - break_width.fi,
- fil = cur_active_width.fil - break_width.fil,
- fill = cur_active_width.fill - break_width.fill,
- filll = cur_active_width.filll - break_width.filll,
- shrink = cur_active_width.shrink - break_width.shrink,
}
+ if do_last_line_fit then
+ local active_short = best_pl_short[fit_class]
+ local active_glue = best_pl_glue[fit_class]
+ q.active_short = active_short
+ q.active_glue = active_glue
+ if trace_lastlinefit then
+ report_parbuilders("setting short to %i and glue to %p using class %a",active_short,active_glue,fit_class)
+ end
+ end
-- q.next = r -- already done
prev_r.next = q
- prev_prev_r = prev_r
prev_r = q
+ if tracing_paragraphs then
+ diagnostics.break_node(par,q,fit_class,break_type,current)
+ end
end
+ minimal_demerits[fit_class] = awful_badness
+ end
+ par.minimum_demerits = awful_badness
+ if r ~= par.active then
+ local q = checked_expansion and {
+ id = delta_code,
+ subtype = nosubtype_code,
+ next = r,
+ size = cur_active_width.size - break_width.size,
+ stretch = cur_active_width.stretch - break_width.stretch,
+ fi = cur_active_width.fi - break_width.fi,
+ fil = cur_active_width.fil - break_width.fil,
+ fill = cur_active_width.fill - break_width.fill,
+ filll = cur_active_width.filll - break_width.filll,
+ shrink = cur_active_width.shrink - break_width.shrink,
+ adjust_stretch = cur_active_width.adjust_stretch - break_width.adjust_stretch,
+ adjust_shrink = cur_active_width.adjust_shrink - break_width.adjust_shrink,
+ } or {
+ id = delta_code,
+ subtype = nosubtype_code,
+ next = r,
+ size = cur_active_width.size - break_width.size,
+ stretch = cur_active_width.stretch - break_width.stretch,
+ fi = cur_active_width.fi - break_width.fi,
+ fil = cur_active_width.fil - break_width.fil,
+ fill = cur_active_width.fill - break_width.fill,
+ filll = cur_active_width.filll - break_width.filll,
+ shrink = cur_active_width.shrink - break_width.shrink,
+ }
+ -- q.next = r -- already done
+ prev_r.next = q
+ prev_prev_r = prev_r
+ prev_r = q
end
- if r == par.active then
- return r, r and r.next -- p_active, n_active
- end
- if line_number > par.easy_line then
- old_line_number = max_halfword - 1
+ end
+ if r == par.active then
+ return r, r and r.next -- p_active, n_active
+ end
+ if line_number > par.easy_line then
+ old_line_number = max_halfword - 1
+ line_width = par.second_width
+ else
+ old_line_number = line_number
+ if line_number > par.last_special_line then
line_width = par.second_width
+ elseif parshape then
+ line_width = parshape[line_number][2]
else
- old_line_number = line_number
- if line_number > par.last_special_line then
- line_width = par.second_width
- elseif parshape then
- line_width = parshape[line_number][2]
- else
- line_width = par.first_width
- end
+ line_width = par.first_width
end
- if adapt_width then
- local l, r = adapt_width(par,line_number)
- line_width = line_width - l - r
+ end
+ if adapt_width then
+ local l, r = adapt_width(par,line_number)
+ line_width = line_width - l - r
+ end
+ end
+ local artificial_demerits = false -- has d been forced to zero
+ local shortfall = line_width - cur_active_width.size - par.internal_right_box_width -- used in badness calculations
+ if not r.break_node then
+ shortfall = shortfall - par.init_internal_left_box_width
+ else
+ shortfall = shortfall - (r.break_node.passive_last_left_box_width or 0)
+ end
+ local pw, lp, rp -- used later on
+ if protrude_chars > 1 then
+ -- this is quite time consuming
+ local b = r.break_node
+ local l = b and b.cur_break or first_p
+ local o = current and getprev(current)
+ if current and getid(current) == disc_code then
+ local pre, _, _, pretail = getdisc(current,true)
+ if pre then
+ o = pretail
+ else
+ o = find_protchar_right(l,o)
end
+ else
+ o = find_protchar_right(l,o)
end
- local artificial_demerits = false -- has d been forced to zero
- local shortfall = line_width - cur_active_width.size - par.internal_right_box_width -- used in badness calculations
- if not r.break_node then
- shortfall = shortfall - par.init_internal_left_box_width
+ if o and getid(o) == glyph_code then
+ pw, rp = right_pw(o)
+ shortfall = shortfall + pw
+ end
+ local id = getid(l)
+ if id == glyph_code then
+ -- ok ?
+ elseif id == disc_code and getfield(l,"post") then
+ l = getfield(l,"post") -- TODO: first char could be a disc
else
- shortfall = shortfall - (r.break_node.passive_last_left_box_width or 0)
+ l = find_protchar_left(l)
+ end
+ if l and getid(l) == glyph_code then
+ pw, lp = left_pw(l)
+ shortfall = shortfall + pw
end
- local pw, lp, rp -- used later on
+ end
+ if checked_expansion and shortfall ~= 0 then
+ local margin_kern_stretch = 0
+ local margin_kern_shrink = 0
if protrude_chars > 1 then
- -- this is quite time consuming
- local b = r.break_node
- local l = b and b.cur_break or first_p
- local o = current and getprev(current)
- if current and getid(current) == disc_code then
- local pre, _, _, pretail = getdisc(current,true)
- if pre then
- o = pretail
- else
- o = find_protchar_right(l,o)
+ if lp then
+ local data = expansions[getfont(lp)][getchar(lp)]
+ if data then
+ margin_kern_stretch, margin_kern_shrink = data.glyphstretch, data.glyphshrink
end
- else
- o = find_protchar_right(l,o)
- end
- if o and getid(o) == glyph_code then
- pw, rp = right_pw(o)
- shortfall = shortfall + pw
end
- local id = getid(l)
- if id == glyph_code then
- -- ok ?
- elseif id == disc_code and getfield(l,"post") then
- l = getfield(l,"post") -- TODO: first char could be a disc
- else
- l = find_protchar_left(l)
- end
- if l and getid(l) == glyph_code then
- pw, lp = left_pw(l)
- shortfall = shortfall + pw
+ if rp then
+ local data = expansions[getfont(lp)][getchar(lp)]
+ if data then
+ margin_kern_stretch = margin_kern_stretch + data.glyphstretch
+ margin_kern_shrink = margin_kern_shrink + data.glyphshrink
+ end
end
end
- if checked_expansion and shortfall ~= 0 then
- local margin_kern_stretch = 0
- local margin_kern_shrink = 0
- if protrude_chars > 1 then
- if lp then
- local char, font = isglyph(lp)
- local data = expansions[font][char]
- if data then
- margin_kern_stretch, margin_kern_shrink = data.glyphstretch, data.glyphshrink
- end
- end
- if rp then
- local char, font = isglyph(rp)
- local data = expansions[font][char]
- if data then
- margin_kern_stretch = margin_kern_stretch + data.glyphstretch
- margin_kern_shrink = margin_kern_shrink + data.glyphshrink
- end
- end
+ local total = cur_active_width.adjust_stretch + margin_kern_stretch
+ if shortfall > 0 and total > 0 then
+ if total > shortfall then
+ shortfall = total / (par.max_stretch_ratio / par.cur_font_step) / 2
+ else
+ shortfall = shortfall - total
end
- local total = cur_active_width.adjust_stretch + margin_kern_stretch
- if shortfall > 0 and total > 0 then
- if total > shortfall then
- shortfall = total / (par.max_stretch_ratio / par.cur_font_step) / 2
+ else
+ total = cur_active_width.adjust_shrink + margin_kern_shrink
+ if shortfall < 0 and total > 0 then
+ if total > - shortfall then
+ shortfall = - total / (par.max_shrink_ratio / par.cur_font_step) / 2
else
- shortfall = shortfall - total
- end
- else
- total = cur_active_width.adjust_shrink + margin_kern_shrink
- if shortfall < 0 and total > 0 then
- if total > - shortfall then
- shortfall = - total / (par.max_shrink_ratio / par.cur_font_step) / 2
- else
- shortfall = shortfall + total
- end
+ shortfall = shortfall + total
end
end
end
- local b = 0
- local g = 0
- local fit_class = fit_decent_class
- local found = false
- if shortfall > 0 then
- if cur_active_width.fi ~= 0 or cur_active_width.fil ~= 0 or cur_active_width.fill ~= 0 or cur_active_width.filll ~= 0 then
- if not do_last_line_fit then
- -- okay
- elseif not current then
- found, shortfall, fit_class, g, b = lastlinecrap(shortfall,r.active_short,r.active_glue,cur_active_width,par.fill_width,par.last_line_fit)
- else
- shortfall = 0
- end
+ end
+ local b = 0
+ local g = 0
+ local fit_class = fit_decent_class
+ local found = false
+ if shortfall > 0 then
+ if cur_active_width.fi ~= 0 or cur_active_width.fil ~= 0 or cur_active_width.fill ~= 0 or cur_active_width.filll ~= 0 then
+ if not do_last_line_fit then
+ -- okay
+ elseif not current then
+ found, shortfall, fit_class, g, b = lastlinecrap(shortfall,r.active_short,r.active_glue,cur_active_width,par.fill_width,par.last_line_fit)
+ else
+ shortfall = 0
+ end
+ else
+ local stretch = cur_active_width.stretch
+ if shortfall > 7230584 and stretch < 1663497 then
+ b = infinite_badness
+ fit_class = fit_very_loose_class
else
- local stretch = cur_active_width.stretch
- if shortfall > 7230584 and stretch < 1663497 then
- b = infinite_badness
+ b = calculate_badness(shortfall,stretch)
+ if b > 99 then
fit_class = fit_very_loose_class
+ elseif b > 12 then
+ fit_class = fit_loose_class
else
- b = calculate_badness(shortfall,stretch)
- if b > 99 then
- fit_class = fit_very_loose_class
- elseif b > 12 then
- fit_class = fit_loose_class
- else
- fit_class = fit_decent_class
- end
+ fit_class = fit_decent_class
end
end
+ end
+ else
+ local shrink = cur_active_width.shrink
+ if -shortfall > shrink then
+ b = infinite_badness + 1
else
- local shrink = cur_active_width.shrink
- if -shortfall > shrink then
- b = infinite_badness + 1
- else
- b = calculate_badness(-shortfall,shrink)
- end
- if b > 12 then
- fit_class = fit_tight_class
- else
- fit_class = fit_decent_class
- end
+ b = calculate_badness(-shortfall,shrink)
end
- if do_last_line_fit and not found then
- if not current then
- -- g = 0
- shortfall = 0
- elseif shortfall > 0 then
- g = cur_active_width.stretch
- elseif shortfall < 0 then
- g = cur_active_width.shrink
- else
- g = 0
- end
+ if b > 12 then
+ fit_class = fit_tight_class
+ else
+ fit_class = fit_decent_class
end
- -- ::FOUND::
- local continue_only = false -- brrr
- if b > infinite_badness or pi == eject_penalty then
- if final_pass and par.minimum_demerits == awful_badness and r.next == par.active and prev_r == par.active then
- artificial_demerits = true -- set demerits zero, this break is forced
- node_r_stays_active = false
- elseif b > par.threshold then
- prev_r, r = deactivate_node(par,prev_prev_r,prev_r,r,cur_active_width,checked_expansion)
- continue_only = true
- else
- node_r_stays_active = false
- end
+ end
+ if do_last_line_fit and not found then
+ if not current then
+ -- g = 0
+ shortfall = 0
+ elseif shortfall > 0 then
+ g = cur_active_width.stretch
+ elseif shortfall < 0 then
+ g = cur_active_width.shrink
else
- prev_r = r
- if b > par.threshold then
- continue_only = true
+ g = 0
+ end
+ end
+ -- ::FOUND::
+ local continue_only = false -- brrr
+ if b > infinite_badness or pi == eject_penalty then
+ if final_pass and par.minimum_demerits == awful_badness and r.next == par.active and prev_r == par.active then
+ artificial_demerits = true -- set demerits zero, this break is forced
+ node_r_stays_active = false
+ elseif b > par.threshold then
+ prev_r, r = deactivate_node(par,prev_prev_r,prev_r,r,cur_active_width,checked_expansion)
+ continue_only = true
+ else
+ node_r_stays_active = false
+ end
+ else
+ prev_r = r
+ if b > par.threshold then
+ continue_only = true
+ else
+ node_r_stays_active = true
+ end
+ end
+ if not continue_only then
+ local d = 0
+ if not artificial_demerits then
+ d = par.line_penalty + b
+ if (d >= 0 and d or -d) >= 10000 then -- abs(d)
+ d = 100000000
else
- node_r_stays_active = true
+ d = d * d
end
- end
- if not continue_only then
- local d = 0
- if not artificial_demerits then
- d = par.line_penalty + b
- if (d >= 0 and d or -d) >= 10000 then -- abs(d)
- d = 100000000
+ if pi == 0 then
+ -- nothing
+ elseif pi > 0 then
+ d = d + pi * pi
+ elseif pi > eject_penalty then
+ d = d - pi * pi
+ end
+ if break_type == hyphenated_code and r.id == hyphenated_code then
+ if current then
+ d = d + par.double_hyphen_demerits
else
- d = d * d
- end
- if pi == 0 then
- -- nothing
- elseif pi > 0 then
- d = d + pi * pi
- elseif pi > eject_penalty then
- d = d - pi * pi
- end
- if break_type == hyphenated_code and r.id == hyphenated_code then
- if current then
- d = d + par.double_hyphen_demerits
- else
- d = d + par.final_hyphen_demerits
- end
- end
- local delta = fit_class - r.subtype
- if (delta >= 0 and delta or -delta) > 1 then -- abs(delta)
- d = d + par.adj_demerits
+ d = d + par.final_hyphen_demerits
end
end
- if tracing_paragraphs then
- diagnostics.feasible_break(par,current,r,b,pi,d,artificial_demerits)
+ local delta = fit_class - r.subtype
+ if (delta >= 0 and delta or -delta) > 1 then -- abs(delta)
+ d = d + par.adj_demerits
end
- d = d + r.total_demerits -- this is the minimum total demerits from the beginning to current via r
- if d <= minimal_demerits[fit_class] then
- minimal_demerits[fit_class] = d
- best_place [fit_class] = r.break_node
- best_pl_line [fit_class] = line_number
- if do_last_line_fit then
- best_pl_short[fit_class] = shortfall
- best_pl_glue [fit_class] = g
- if trace_lastlinefit then
- report_parbuilders("storing last line fit short %a and glue %p in class %a",shortfall,g,fit_class)
- end
- end
- if d < par.minimum_demerits then
- par.minimum_demerits = d
+ end
+ if tracing_paragraphs then
+ diagnostics.feasible_break(par,current,r,b,pi,d,artificial_demerits)
+ end
+ d = d + r.total_demerits -- this is the minimum total demerits from the beginning to current via r
+ if d <= minimal_demerits[fit_class] then
+ minimal_demerits[fit_class] = d
+ best_place [fit_class] = r.break_node
+ best_pl_line [fit_class] = line_number
+ if do_last_line_fit then
+ best_pl_short[fit_class] = shortfall
+ best_pl_glue [fit_class] = g
+ if trace_lastlinefit then
+ report_parbuilders("storing last line fit short %a and glue %p in class %a",shortfall,g,fit_class)
end
end
- if not node_r_stays_active then
- prev_r, r = deactivate_node(par,prev_prev_r,prev_r,r,cur_active_width,checked_expansion)
+ if d < par.minimum_demerits then
+ par.minimum_demerits = d
end
end
+ if not node_r_stays_active then
+ prev_r, r = deactivate_node(par,prev_prev_r,prev_r,r,cur_active_width,checked_expansion)
+ end
end
end
end
+end
- -- we can call the normal one for simple box building in the otr so we need
- -- frequent enabling/disabling
+-- we can call the normal one for simple box building in the otr so we need
+-- frequent enabling/disabling
- local temp_head = new_temp()
+local dcolor = { [0] = "red", "green", "blue", "magenta", "cyan", "gray" }
- function constructors.methods.basic(head,d)
- if trace_basic then
- report_parbuilders("starting at %a",head)
- end
+local temp_head = new_temp()
- local par = initialize_line_break(head,d)
+function constructors.methods.basic(head,d)
+ head = tonut(head)
- local checked_expansion = par.checked_expansion
- local active_width = par.active_width
- local disc_width = par.disc_width
- local background = par.background
- local tracing_paragraphs = par.tracing_paragraphs
+ if trace_basic then
+ report_parbuilders("starting at %a",head)
+ end
- local dirstack = new_dir_stack()
+ local par = initialize_line_break(head,d)
- if tracing_paragraphs then
- diagnostics.start()
- if par.pretolerance >= 0 then
- diagnostics.current_pass(par,"firstpass")
- end
- end
+ local checked_expansion = par.checked_expansion
+ local active_width = par.active_width
+ local disc_width = par.disc_width
+ local background = par.background
+ local tracing_paragraphs = par.tracing_paragraphs
- while true do
- reset_meta(par)
- if par.threshold > infinite_badness then
- par.threshold = infinite_badness
- end
- par.active.next = {
- id = unhyphenated_code,
- subtype = fit_decent_class,
- next = par.active,
- break_node = nil,
- line_number = par.first_line + 1,
- total_demerits = 0,
- active_short = 0,
- active_glue = 0,
- }
- active_width.size = background.size
- active_width.stretch = background.stretch
- active_width.fi = background.fi
- active_width.fil = background.fil
- active_width.fill = background.fill
- active_width.filll = background.filll
- active_width.shrink = background.shrink
+ local dirstack = new_dir_stack()
- if checked_expansion then
- active_width.adjust_stretch = 0
- active_width.adjust_shrink = 0
- end
+ if tracing_paragraphs then
+ diagnostics.start()
+ if par.pretolerance >= 0 then
+ diagnostics.current_pass(par,"firstpass")
+ end
+ end
+
+ while true do
+ reset_meta(par)
+ if par.threshold > infinite_badness then
+ par.threshold = infinite_badness
+ end
+ par.active.next = {
+ id = unhyphenated_code,
+ subtype = fit_decent_class,
+ next = par.active,
+ break_node = nil,
+ line_number = par.first_line + 1,
+ total_demerits = 0,
+ active_short = 0,
+ active_glue = 0,
+ }
+ active_width.size = background.size
+ active_width.stretch = background.stretch
+ active_width.fi = background.fi
+ active_width.fil = background.fil
+ active_width.fill = background.fill
+ active_width.filll = background.filll
+ active_width.shrink = background.shrink
+
+ if checked_expansion then
+ active_width.adjust_stretch = 0
+ active_width.adjust_shrink = 0
+ end
- par.passive = nil -- = 0
- par.printed_node = temp_head -- only when tracing, shared
- par.pass_number = 0
- -- par.auto_breaking = true
+ par.passive = nil -- = 0
+ par.printed_node = temp_head -- only when tracing, shared
+ par.pass_number = 0
+-- par.auto_breaking = true
- setnext(temp_head,head)
+ setnext(temp_head,head)
- local current = head
- local first_p = current
+ local current = head
+ local first_p = current
- local auto_breaking = true
+ local auto_breaking = true
- par.font_in_short_display = 0
+ par.font_in_short_display = 0
- if current then
- local id = getid(current)
- if id == localpar_code then
- par.init_internal_left_box = getfield(current,"box_left")
- par.init_internal_left_box_width = getfield(current,"box_left_width")
- par.internal_pen_inter = getfield(current,"pen_inter")
- par.internal_pen_broken = getfield(current,"pen_broken")
- par.internal_left_box = par.init_internal_left_box
- par.internal_left_box_width = par.init_internal_left_box_width
- par.internal_right_box = getfield(current,"box_right")
- par.internal_right_box_width = getfield(current,"box_right_width")
- end
+ if current then
+ local id = getid(current)
+ if id == localpar_code then
+ par.init_internal_left_box = getfield(current,"box_left")
+ par.init_internal_left_box_width = getfield(current,"box_left_width")
+ par.internal_pen_inter = getfield(current,"pen_inter")
+ par.internal_pen_broken = getfield(current,"pen_broken")
+ par.internal_left_box = par.init_internal_left_box
+ par.internal_left_box_width = par.init_internal_left_box_width
+ par.internal_right_box = getfield(current,"box_right")
+ par.internal_right_box_width = getfield(current,"box_right_width")
end
+ end
- -- all passes are combined in this loop so maybe we should split this into
- -- three function calls; we then also need to do the wrap_up elsewhere
+ -- all passes are combined in this loop so maybe we should split this into
+ -- three function calls; we then also need to do the wrap_up elsewhere
- -- split into normal and expansion loop
+ -- split into normal and expansion loop
- -- use an active local
+ -- use an active local
- local fontexp, lastfont -- we can pass fontexp to calculate width if needed
+ local fontexp, lastfont -- we can pass fontexp to calculate width if needed
- -- i flattened the inner loop over glyphs .. it looks nicer and the extra p_active ~= n_active
- -- test is fast enough (and try_break now returns the updated values); the kern helper has been
- -- inlined as it did a double check on id so in fact we had hardly any code to share
+ -- i flattened the inner loop over glyphs .. it looks nicer and the extra p_active ~= n_active
+ -- test is fast enough (and try_break now returns the updated values); the kern helper has been
+ -- inlined as it did a double check on id so in fact we had hardly any code to share
- local p_active = par.active
- local n_active = p_active and p_active.next
- local second_pass = par.second_pass
+ local p_active = par.active
+ local n_active = p_active and p_active.next
+ local second_pass = par.second_pass
- trialcount = 0
+ trialcount = 0
- while current and p_active ~= n_active do
- local char, id = isglyph(current)
- if char then
- local wd, ht, dp = getwhd(current)
- if is_rotated(par.line_break_dir) then
- active_width.size = active_width.size + ht + dp
- else
- active_width.size = active_width.size + wd
- end
- if checked_expansion then
- local font = id -- == font
- local data = checked_expansion[font]
- if data then
- if font ~= lastfont then
- fontexps = checked_expansion[font] -- a bit redundant for the par line packer
- lastfont = currentfont
- end
- if fontexps then
- local expansion = fontexps[char]
- if expansion then
- active_width.adjust_stretch = active_width.adjust_stretch + expansion.glyphstretch
- active_width.adjust_shrink = active_width.adjust_shrink + expansion.glyphshrink
- end
+ while current and p_active ~= n_active do
+ local char, id = isglyph(current)
+ if char then
+ local wd, ht, dp = getwhd(current)
+ if is_rotated[par.line_break_dir] then
+ active_width.size = active_width.size + ht + dp
+ else
+ active_width.size = active_width.size + wd
+ end
+ if checked_expansion then
+ local currentfont = getfont(current)
+ local data = checked_expansion[currentfont]
+ if data then
+ if currentfont ~= lastfont then
+ fontexps = checked_expansion[currentfont] -- a bit redundant for the par line packer
+ lastfont = currentfont
+ end
+ if fontexps then
+ local expansion = fontexps[char]
+ if expansion then
+ active_width.adjust_stretch = active_width.adjust_stretch + expansion.glyphstretch
+ active_width.adjust_shrink = active_width.adjust_shrink + expansion.glyphshrink
end
end
end
- elseif id == hlist_code or id == vlist_code then
- local wd, ht, dp = getwhd(current)
- if textdir_parallel(getdirection(current),par.line_break_dir) then
- active_width.size = active_width.size + wd
- else
- active_width.size = active_width.size + ht + dp
- end
- elseif id == glue_code then
- -- if par.auto_breaking then
- if auto_breaking then
- local prev_p = getprev(current)
- if prev_p and prev_p ~= temp_head then
- local id = getid(prev_p)
- -- we need to check this with the latest patches to the tex kernel
- if (id == glyph_code) or (id < math_code) then
+ end
+ elseif id == hlist_code or id == vlist_code then
+ local wd, ht, dp = getwhd(current)
+ if is_parallel[getdir(current)][par.line_break_dir] then
+ active_width.size = active_width.size + wd
+ else
+ active_width.size = active_width.size + ht + dp
+ end
+ elseif id == glue_code then
+-- if par.auto_breaking then
+ if auto_breaking then
+ local prev_p = getprev(current)
+ if prev_p and prev_p ~= temp_head then
+ local id = getid(prev_p)
+ -- we need to check this with the latest patches to the tex kernel
+ if (id == glyph_code) or (id < math_code) then
+ p_active, n_active = try_break(0, unhyphenated_code, par, first_p, current, checked_expansion)
+ elseif id == kern_code then
+ local s = getsubtype(prev_p)
+ if s ~= userkern_code and s ~= italickern_code then
p_active, n_active = try_break(0, unhyphenated_code, par, first_p, current, checked_expansion)
- elseif id == kern_code then
- local s = getsubtype(prev_p)
- if s ~= userkern_code and s ~= italickern_code then
- p_active, n_active = try_break(0, unhyphenated_code, par, first_p, current, checked_expansion)
- end
end
end
end
- check_shrinkage(par,current)
- local width, stretch, shrink, stretch_order = getglue(current)
- local order = fillcodes[stretch_order]
- active_width.size = active_width.size + width
- active_width[order] = active_width[order] + stretch
- active_width.shrink = active_width.shrink + shrink
- elseif id == disc_code then
- local subtype = getsubtype(current)
- if subtype ~= seconddisc_code then
- local line_break_dir = par.line_break_dir
- if second_pass or subtype <= automaticdisc_code then
- local actual_pen = subtype == automaticdisc_code and par.ex_hyphen_penalty or par.hyphen_penalty
- -- 0.81 :
- -- local actual_pen = getpenalty(current)
- --
- local pre, post, replace = getdisc(current)
- if not pre then -- trivial pre-break
- disc_width.size = 0
- if checked_expansion then
- disc_width.adjust_stretch = 0
- disc_width.adjust_shrink = 0
- end
- p_active, n_active = try_break(actual_pen, hyphenated_code, par, first_p, current, checked_expansion)
+ end
+ check_shrinkage(par,current)
+ local width, stretch, shrink, stretch_order = getglue(current)
+ local order = stretch_orders[stretch_order]
+ active_width.size = active_width.size + width
+ active_width[order] = active_width[order] + stretch
+ active_width.shrink = active_width.shrink + shrink
+ elseif id == disc_code then
+ local subtype = getsubtype(current)
+ if subtype ~= second_disc_code then
+ local line_break_dir = par.line_break_dir
+ if second_pass or subtype <= automatic_disc_code then
+ local actual_pen = subtype == automatic_disc_code and par.ex_hyphen_penalty or par.hyphen_penalty
+ -- 0.81 :
+ -- local actual_pen = getpenalty(current)
+ --
+ local pre, post, replace = getdisc(current)
+ if not pre then -- trivial pre-break
+ disc_width.size = 0
+ if checked_expansion then
+ disc_width.adjust_stretch = 0
+ disc_width.adjust_shrink = 0
+ end
+ p_active, n_active = try_break(actual_pen, hyphenated_code, par, first_p, current, checked_expansion)
+ else
+ local size, adjust_stretch, adjust_shrink = add_to_width(line_break_dir,checked_expansion,pre)
+ disc_width.size = size
+ active_width.size = active_width.size + size
+ if checked_expansion then
+ disc_width.adjust_stretch = adjust_stretch
+ disc_width.adjust_shrink = adjust_shrink
+ active_width.adjust_stretch = active_width.adjust_stretch + adjust_stretch
+ active_width.adjust_shrink = active_width.adjust_shrink + adjust_shrink
else
- local size, adjust_stretch, adjust_shrink = add_to_width(line_break_dir,checked_expansion,pre)
- disc_width.size = size
- active_width.size = active_width.size + size
- if checked_expansion then
- disc_width.adjust_stretch = adjust_stretch
- disc_width.adjust_shrink = adjust_shrink
- active_width.adjust_stretch = active_width.adjust_stretch + adjust_stretch
- active_width.adjust_shrink = active_width.adjust_shrink + adjust_shrink
+ -- disc_width.adjust_stretch = 0
+ -- disc_width.adjust_shrink = 0
+ end
+ p_active, n_active = try_break(actual_pen, hyphenated_code, par, first_p, current, checked_expansion)
+ if subtype == first_disc_code then
+ local cur_p_next = getnext(current)
+ if getid(cur_p_next) ~= disc_code or getsubtype(cur_p_next) ~= second_disc_code then
+ report_parbuilders("unsupported disc at location %a",1)
else
- -- disc_width.adjust_stretch = 0
- -- disc_width.adjust_shrink = 0
- end
- p_active, n_active = try_break(actual_pen, hyphenated_code, par, first_p, current, checked_expansion)
- if subtype == firstdisc_code then
- local cur_p_next = getnext(current)
- if getid(cur_p_next) ~= disc_code or getsubtype(cur_p_next) ~= seconddisc_code then
- report_parbuilders("unsupported disc at location %a",1)
- else
- local pre = getfield(cur_p_next,"pre")
- if pre then
- local size, adjust_stretch, adjust_shrink = add_to_width(line_break_dir,checked_expansion,pre)
- disc_width.size = disc_width.size + size
- if checked_expansion then
- disc_width.adjust_stretch = disc_width.adjust_stretch + adjust_stretch
- disc_width.adjust_shrink = disc_width.adjust_shrink + adjust_shrink
- end
- p_active, n_active = try_break(actual_pen, hyphenated_code, par, first_p, cur_p_next, checked_expansion)
- --
- -- I will look into this some day ... comment in linebreak.w says that this fails,
- -- maybe this is what Taco means with his comment in the luatex manual.
- --
- -- do_one_seven_eight(sub_disc_width_from_active_width);
- -- do_one_seven_eight(reset_disc_width);
- -- s = vlink_no_break(vlink(current));
- -- add_to_widths(s, line_break_dir, adjust_spacing,disc_width);
- -- ext_try_break(...,first_p,vlink(current));
- --
- else
- report_parbuilders("unsupported disc at location %a",2)
+ local pre = getfield(cur_p_next,"pre")
+ if pre then
+ local size, adjust_stretch, adjust_shrink = add_to_width(line_break_dir,checked_expansion,pre)
+ disc_width.size = disc_width.size + size
+ if checked_expansion then
+ disc_width.adjust_stretch = disc_width.adjust_stretch + adjust_stretch
+ disc_width.adjust_shrink = disc_width.adjust_shrink + adjust_shrink
end
+ p_active, n_active = try_break(actual_pen, hyphenated_code, par, first_p, cur_p_next, checked_expansion)
+ --
+ -- I will look into this some day ... comment in linebreak.w says that this fails,
+ -- maybe this is what Taco means with his comment in the luatex manual.
+ --
+ -- do_one_seven_eight(sub_disc_width_from_active_width);
+ -- do_one_seven_eight(reset_disc_width);
+ -- s = vlink_no_break(vlink(current));
+ -- add_to_widths(s, line_break_dir, adjust_spacing,disc_width);
+ -- ext_try_break(...,first_p,vlink(current));
+ --
+ else
+ report_parbuilders("unsupported disc at location %a",2)
end
end
- -- beware, we cannot restore to a saved value as the try_break adapts active_width
- active_width.size = active_width.size - disc_width.size
- if checked_expansion then
- active_width.adjust_stretch = active_width.adjust_stretch - disc_width.adjust_stretch
- active_width.adjust_shrink = active_width.adjust_shrink - disc_width.adjust_shrink
- end
end
- end
- if replace then
- local size, adjust_stretch, adjust_shrink = add_to_width(line_break_dir,checked_expansion,replace)
- active_width.size = active_width.size + size
+ -- beware, we cannot restore to a saved value as the try_break adapts active_width
+ active_width.size = active_width.size - disc_width.size
if checked_expansion then
- active_width.adjust_stretch = active_width.adjust_stretch + adjust_stretch
- active_width.adjust_shrink = active_width.adjust_shrink + adjust_shrink
+ active_width.adjust_stretch = active_width.adjust_stretch - disc_width.adjust_stretch
+ active_width.adjust_shrink = active_width.adjust_shrink - disc_width.adjust_shrink
end
end
end
- elseif id == kern_code then
- local s = getsubtype(current)
- if s == userkern_code or s == italickern_code then
- local v = getnext(current)
- -- if par.auto_breaking and getid(v) == glue_code then
- if auto_breaking and getid(v) == glue_code then
- p_active, n_active = try_break(0, unhyphenated_code, par, first_p, current, checked_expansion)
- end
- local active_width = par.active_width
- active_width.size = active_width.size + getkern(current)
- else
- local kern = getkern(current)
- if kern ~= 0 then
- active_width.size = active_width.size + kern
- if checked_expansion and expand_kerns and getsubtype(current) == fontkern_code then
- local stretch, shrink = kern_stretch_shrink(current,kern)
- if expand_kerns == "stretch" then
- active_width.adjust_stretch = active_width.adjust_stretch + stretch
- elseif expand_kerns == "shrink" then
- active_width.adjust_shrink = active_width.adjust_shrink + shrink
- else
- active_width.adjust_stretch = active_width.adjust_stretch + stretch
- active_width.adjust_shrink = active_width.adjust_shrink + shrink
- end
- end
+ if replace then
+ local size, adjust_stretch, adjust_shrink = add_to_width(line_break_dir,checked_expansion,replace)
+ active_width.size = active_width.size + size
+ if checked_expansion then
+ active_width.adjust_stretch = active_width.adjust_stretch + adjust_stretch
+ active_width.adjust_shrink = active_width.adjust_shrink + adjust_shrink
end
end
- elseif id == math_code then
- -- par.auto_breaking = getsubtype(current) == endmath_code
- auto_breaking = getsubtype(current) == endmath_code
+ end
+ elseif id == kern_code then
+ local s = getsubtype(current)
+ if s == userkern_code or s == italickern_code then
local v = getnext(current)
- -- if par.auto_breaking and getid(v) == glue_code then
+ -- if par.auto_breaking and getid(v) == glue_code then
if auto_breaking and getid(v) == glue_code then
p_active, n_active = try_break(0, unhyphenated_code, par, first_p, current, checked_expansion)
end
local active_width = par.active_width
- active_width.size = active_width.size + getkern(current) -- surround
- -- new in luatex
- + getwidth(current)
- elseif id == rule_code then
- active_width.size = active_width.size + getwidth(current)
- elseif id == penalty_code then
- p_active, n_active = try_break(getpenalty(current), unhyphenated_code, par, first_p, current, checked_expansion)
- elseif id == dir_code then
- par.line_break_dir = checked_line_dir(dirstack) or par.line_break_dir
- elseif id == localpar_code then
- par.internal_pen_inter = getfield(current,"pen_inter")
- par.internal_pen_broken = getfield(current,"pen_broken")
- par.internal_left_box = getfield(current,"box_left")
- par.internal_left_box_width = getfield(current,"box_left_width")
- par.internal_right_box = getfield(current,"box_right")
- par.internal_right_box_width = getfield(current,"box_right_width")
- elseif trace_unsupported then
- if id == mark_code or id == ins_code or id == adjust_code then
- -- skip
- else
- report_parbuilders("node of type %a found in paragraph",type(id))
+ active_width.size = active_width.size + getkern(current)
+ else
+ local kern = getkern(current)
+ if kern ~= 0 then
+ active_width.size = active_width.size + kern
+ if checked_expansion and expand_kerns and getsubtype(current) == fontkern_code then
+ local stretch, shrink = kern_stretch_shrink(current,kern)
+ if expand_kerns == "stretch" then
+ active_width.adjust_stretch = active_width.adjust_stretch + stretch
+ elseif expand_kerns == "shrink" then
+ active_width.adjust_shrink = active_width.adjust_shrink + shrink
+ else
+ active_width.adjust_stretch = active_width.adjust_stretch + stretch
+ active_width.adjust_shrink = active_width.adjust_shrink + shrink
+ end
+ end
end
end
- current = getnext(current)
+ elseif id == math_code then
+-- par.auto_breaking = getsubtype(current) == endmath_code
+ auto_breaking = getsubtype(current) == endmath_code
+ local v = getnext(current)
+-- if par.auto_breaking and getid(v) == glue_code then
+ if auto_breaking and getid(v) == glue_code then
+ p_active, n_active = try_break(0, unhyphenated_code, par, first_p, current, checked_expansion)
+ end
+ local active_width = par.active_width
+ active_width.size = active_width.size + getkern(current) -- surround
+ -- new in luatex
+ + getwidth(current)
+ elseif id == rule_code then
+ active_width.size = active_width.size + getwidth(current)
+ elseif id == penalty_code then
+ p_active, n_active = try_break(getpenalty(current), unhyphenated_code, par, first_p, current, checked_expansion)
+ elseif id == dir_code then
+ par.line_break_dir = checked_line_dir(dirstack) or par.line_break_dir
+ elseif id == localpar_code then
+ par.internal_pen_inter = getfield(current,"pen_inter")
+ par.internal_pen_broken = getfield(current,"pen_broken")
+ par.internal_left_box = getfield(current,"box_left")
+ par.internal_left_box_width = getfield(current,"box_left_width")
+ par.internal_right_box = getfield(current,"box_right")
+ par.internal_right_box_width = getfield(current,"box_right_width")
+ elseif trace_unsupported then
+ if id == mark_code or id == ins_code or id == adjust_code then
+ -- skip
+ else
+ report_parbuilders("node of type %a found in paragraph",type(id))
+ end
end
- if not current then
- local p_active, n_active = try_break(eject_penalty, hyphenated_code, par, first_p, current, checked_expansion)
- if n_active ~= p_active then
- local r = n_active
- par.fewest_demerits = awful_badness
- repeat -- use local d
- if r.id ~= delta_code and r.total_demerits < par.fewest_demerits then
+ current = getnext(current)
+ end
+ if not current then
+ local p_active, n_active = try_break(eject_penalty, hyphenated_code, par, first_p, current, checked_expansion)
+ if n_active ~= p_active then
+ local r = n_active
+ par.fewest_demerits = awful_badness
+ repeat -- use local d
+ if r.id ~= delta_code and r.total_demerits < par.fewest_demerits then
+ par.fewest_demerits = r.total_demerits
+ par.best_bet = r
+ end
+ r = r.next
+ until r == p_active
+ par.best_line = par.best_bet.line_number
+ local asked_looseness = par.looseness
+ if asked_looseness == 0 then
+ return tonode(wrap_up(par))
+ end
+ local r = n_active
+ local actual_looseness = 0
+ -- minimize assignments to par but happens seldom
+ repeat
+ if r.id ~= delta_code then
+ local line_diff = r.line_number - par.best_line
+ par.line_diff = line_diff
+ if (line_diff < actual_looseness and asked_looseness <= line_diff) or
+ (line_diff > actual_looseness and asked_looseness >= line_diff) then
+ par.best_bet = r
+ actual_looseness = line_diff
par.fewest_demerits = r.total_demerits
+ elseif line_diff == actual_looseness and r.total_demerits < par.fewest_demerits then
par.best_bet = r
+ par.fewest_demerits = r.total_demerits
end
- r = r.next
- until r == p_active
- par.best_line = par.best_bet.line_number
- local asked_looseness = par.looseness
- if asked_looseness == 0 then
- return wrap_up(par)
- end
- local r = n_active
- local actual_looseness = 0
- -- minimize assignments to par but happens seldom
- repeat
- if r.id ~= delta_code then
- local line_diff = r.line_number - par.best_line
- par.line_diff = line_diff
- if (line_diff < actual_looseness and asked_looseness <= line_diff) or
- (line_diff > actual_looseness and asked_looseness >= line_diff) then
- par.best_bet = r
- actual_looseness = line_diff
- par.fewest_demerits = r.total_demerits
- elseif line_diff == actual_looseness and r.total_demerits < par.fewest_demerits then
- par.best_bet = r
- par.fewest_demerits = r.total_demerits
- end
- end
- r = r.next
- until r == p_active
- par.best_line = par.best_bet.line_number
- if actual_looseness == asked_looseness or par.final_pass then
- return wrap_up(par)
end
+ r = r.next
+ until r == p_active
+ par.best_line = par.best_bet.line_number
+ if actual_looseness == asked_looseness or par.final_pass then
+ return tonode(wrap_up(par))
end
end
- reset_meta(par) -- clean up the memory by removing the break nodes
- if not second_pass then
- if tracing_paragraphs then
- diagnostics.current_pass(par,"secondpass")
- end
- par.threshold = par.tolerance
- par.second_pass = true
- par.final_pass = par.emergency_stretch <= 0
- else
- if tracing_paragraphs then
- diagnostics.current_pass(par,"emergencypass")
- end
- par.background.stretch = par.background.stretch + par.emergency_stretch
- par.final_pass = true
+ end
+ reset_meta(par) -- clean up the memory by removing the break nodes
+ if not second_pass then
+ if tracing_paragraphs then
+ diagnostics.current_pass(par,"secondpass")
end
+ par.threshold = par.tolerance
+ par.second_pass = true
+ par.final_pass = par.emergency_stretch <= 0
+ else
+ if tracing_paragraphs then
+ diagnostics.current_pass(par,"emergencypass")
+ end
+ par.background.stretch = par.background.stretch + par.emergency_stretch
+ par.final_pass = true
end
- return wrap_up(par)
end
-
+ return tonode(wrap_up(par))
end
-- standard tex logging .. will be adapted ..
@@ -2572,19 +2531,16 @@ do
while a do
local char, id = isglyph(a)
if char then
- -- id == font
- if id ~= font_in_short_display then
- write(target,tex.fontidentifier(id) .. ' ')
- font_in_short_display = id
+ local font = getfont(a)
+ if font ~= font_in_short_display then
+ write(target,tex.fontidentifier(font) .. ' ')
+ font_in_short_display = font
end
- local u = chardata[id][char]
- local u = u.unicode or char
- if type(u) == "table" then
- for i=1,#u do
- write(target,utfchar(u[i]))
- end
+ -- todo: instead of components the split tounicode string
+ if getsubtype(a) == ligature_code then
+ font_in_short_display = short_display(target,getcomponents(a),font_in_short_display)
else
- write(target,utfchar(u))
+ write(target,utfchar(char))
end
elseif id == disc_code then
local pre, post, replace = getdisc(a)
@@ -2757,6 +2713,55 @@ do
local setnodecolor = nodes.tracers.colors.set
+ local function glyph_width_height_depth(curdir,pdir,p)
+ local wd, ht, dp = getwhd(p)
+ if is_rotated[curdir] then
+ if is_parallel[curdir][pdir] then
+ local half = (ht + dp) / 2
+ return wd, half, half
+ else
+ local half = wd / 2
+ return ht + dp, half, half
+ end
+ elseif is_rotated[pdir] then
+ if is_parallel[curdir][pdir] then
+ local half = (ht + dp) / 2
+ return wd, half, half
+ else
+ return ht + dp, wd, 0 -- weird
+ end
+ else
+ if glyphdir_is_equal[curdir][pdir] then
+ return wd, ht, dp
+ elseif is_opposite[curdir][pdir] then
+ return wd, dp, ht
+ else -- can this happen?
+ return ht + dp, wd, 0
+ end
+ end
+ end
+
+ local function pack_width_height_depth(curdir,pdir,p)
+ local wd, ht, dp = getwhd(p)
+ if is_rotated[curdir] then
+ if is_parallel[curdir][pdir] then
+ local half = (ht + dp) / 2
+ return wd, half, half
+ else -- can this happen?
+ local half = wd / 2
+ return ht + dp, half, half
+ end
+ else
+ if pardir_is_equal[curdir][pdir] then
+ return wd, ht, dp
+ elseif is_opposite[curdir][pdir] then
+ return wd, dp, ht
+ else -- weird dimensions, can this happen?
+ return ht + dp, wd, 0
+ end
+ end
+ end
+
-- local function xpack(head,width,method,direction,analysis)
--
-- -- inspect(analysis)
@@ -2771,7 +2776,7 @@ do
-- local hlist = new_hlist()
--
-- setlist(hlist,head)
- -- setdirection(hlist,direction or tex.textdirection)
+ -- setdir(hlist,direction or tex.textdir)
-- setwhd(hlist,width,height,depth)
--
-- if delta == 0 then
@@ -2884,7 +2889,7 @@ do
local hlist = new_hlist()
- setdirection(hlist,direction)
+ setdir(hlist,direction)
if head == nil then
setwidth(hlist,width)
@@ -2937,10 +2942,10 @@ do
local char, id = isglyph(current)
if char then
if cal_expand_ratio then
- local font = id -- == font
- if font ~= lastfont then
- fontexps = checked_expansion[font] -- a bit redundant for the par line packer
- lastfont = font
+ local currentfont = getfont(current)
+ if currentfont ~= lastfont then
+ fontexps = checked_expansion[currentfont] -- a bit redundant for the par line packer
+ lastfont = currentfont
end
if fontexps then
local expansion = fontexps[char]
@@ -2953,7 +2958,7 @@ do
end
end
-- use inline
- local wd, ht, dp = getwhd(current)
+ local wd, ht, dp = glyph_width_height_depth(hpack_dir,"TLT",current) -- was TRT ?
natural = natural + wd
if ht > height then
height = ht
@@ -2979,7 +2984,7 @@ do
end
elseif id == disc_code then
local subtype = getsubtype(current)
- if subtype ~= seconddisc_code then
+ if subtype ~= second_disc_code then
-- todo : local stretch, shrink = char_stretch_shrink(s)
local replace = getfield(current,"replace")
if replace then
@@ -3003,7 +3008,7 @@ do
end
elseif id == hlist_code or id == vlist_code then
local sh = getshift(current)
- local wd, ht, dp = getwhd(current)
+ local wd, ht, dp = pack_width_height_depth(hpack_dir,getdir(current) or hpack_dir,current) -- added: or pack_dir
local hs, ds = ht - sh, dp + sh
natural = natural + wd
if hs > height then
@@ -3109,13 +3114,14 @@ do
local fontexps, lastfont
for i=1,expansion_index do
- local g = expansion_stack[i]
- local e = 0
- local char, font = isglyph(g)
+ local g = expansion_stack[i]
+ local e = 0
+ local char = isglyph(g)
if char then
- if font ~= lastfont then
- fontexps = expansions[font]
- lastfont = font
+ local currentfont = getfont(g)
+ if currentfont ~= lastfont then
+ fontexps = expansions[currentfont]
+ lastfont = currentfont
end
local data = fontexps[char]
if trace_expansion then
@@ -3127,7 +3133,7 @@ do
local stretch, shrink = kern_stretch_shrink(g,kern)
e = font_expand_ratio * stretch / 1000
end
- setexpansion(g,e)
+ setfield(g,"expansion_factor",e)
end
end
local tso = total_stretch[order]
@@ -3165,13 +3171,14 @@ do
local fontexps, lastfont
for i=1,expansion_index do
- local g = expansion_stack[i]
- local e = 0
- local char, font = isglyph(g)
+ local g = expansion_stack[i]
+ local e = 0
+ local char = isglyph(g)
if char then
- if font ~= lastfont then
- fontexps = expansions[font]
- lastfont = font
+ local currentfont = getfont(g)
+ if currentfont ~= lastfont then
+ fontexps = expansions[currentfont]
+ lastfont = currentfont
end
local data = fontexps[char]
if trace_expansion then
@@ -3183,7 +3190,7 @@ do
local stretch, shrink = kern_stretch_shrink(g,kern)
e = font_expand_ratio * shrink / 1000
end
- setexpansion(g,e)
+ setfield(g,"expansion_factor",e)
end
end
local tso = total_shrink[order]
@@ -3207,7 +3214,7 @@ do
local overfullrule = tex.overfullrule
if fuzz > hfuzz and overfullrule > 0 then
-- weird, is always called and no rules shows up
- setnext(slide_node_list(list),new_rule(overfullrule,nil,nil,getdirection(hlist))) -- todo: find_tail
+ setnext(slide_node_list(list),new_rule(overfullrule,nil,nil,getdir(hlist))) -- todo: find_tail
end
diagnostics.overfull_hbox(hlist,line,-delta)
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-met.lua b/Master/texmf-dist/tex/context/base/mkiv/node-met.lua
index f5db4babdcd..12a9256bc66 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-met.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-met.lua
@@ -68,70 +68,65 @@ end
nodes = nodes or { }
local nodes = nodes
-local nodecodes = nodes.nodecodes
-
-nodes.tostring = node.tostring or tostring
-nodes.copy = node.copy
-nodes.copy_node = node.copy
-nodes.copy_list = node.copy_list
-nodes.delete = node.delete
-nodes.dimensions = node.dimensions
-nodes.rangedimensions = node.rangedimensions
-nodes.end_of_math = node.end_of_math
-nodes.flush = node.flush_node
-nodes.flush_node = node.flush_node
-nodes.flush_list = node.flush_list
-nodes.free = node.free
-nodes.insert_after = node.insert_after
-nodes.insert_before = node.insert_before
-nodes.hpack = node.hpack
-nodes.new = node.new
-nodes.tail = node.tail
-nodes.traverse = node.traverse
-nodes.traverse_id = node.traverse_id
-nodes.traverse_char = node.traverse_char
-nodes.traverse_glyph = node.traverse_glyph
-nodes.traverse_list = node.traverse_list
-nodes.slide = node.slide
-nodes.vpack = node.vpack
-nodes.fields = node.fields
-nodes.is_node = node.is_node
-nodes.setglue = node.setglue
-nodes.uses_font = node.uses_font
-
-nodes.first_glyph = node.first_glyph
-nodes.has_glyph = node.has_glyph or node.first_glyph
-
-nodes.current_attr = node.current_attr
-nodes.has_field = node.has_field
-nodes.last_node = node.last_node
-nodes.usedlist = node.usedlist
-nodes.protrusion_skippable = node.protrusion_skippable
-nodes.check_discretionaries = node.check_discretionaries
-nodes.write = node.write
-nodes.flatten_discretionaries = node.flatten_discretionaries
-
-nodes.count = node.count
-nodes.length = node.length
-
-nodes.has_attribute = node.has_attribute
-nodes.set_attribute = node.set_attribute
-nodes.find_attribute = node.find_attribute
-nodes.unset_attribute = node.unset_attribute
-
-nodes.protect_glyph = node.protect_glyph
-nodes.protect_glyphs = node.protect_glyphs
-nodes.unprotect_glyph = node.unprotect_glyph
-nodes.unprotect_glyphs = node.unprotect_glyphs
-nodes.kerning = node.kerning
-nodes.ligaturing = node.ligaturing
-nodes.hyphenating = node.hyphenating
-nodes.mlist_to_hlist = node.mlist_to_hlist
-
-nodes.effective_glue = node.effective_glue
-nodes.getglue = node.getglue
-nodes.setglue = node.setglue
-nodes.is_zero_glue = node.is_zero_glue
+local nodecodes = nodes.nodecodes
+
+nodes.tostring = node.tostring or tostring
+nodes.copy = node.copy
+nodes.copy_node = node.copy
+nodes.copy_list = node.copy_list
+nodes.delete = node.delete
+nodes.dimensions = node.dimensions
+nodes.rangedimensions = node.rangedimensions
+nodes.end_of_math = node.end_of_math
+nodes.flush = node.flush_node
+nodes.flush_node = node.flush_node
+nodes.flush_list = node.flush_list
+nodes.free = node.free
+nodes.insert_after = node.insert_after
+nodes.insert_before = node.insert_before
+nodes.hpack = node.hpack
+nodes.new = node.new
+nodes.tail = node.tail
+nodes.traverse = node.traverse
+nodes.traverse_id = node.traverse_id
+nodes.traverse_char = node.traverse_char
+nodes.slide = node.slide
+nodes.vpack = node.vpack
+nodes.fields = node.fields
+nodes.is_node = node.is_node
+nodes.setglue = node.setglue
+
+nodes.first_glyph = node.first_glyph
+nodes.has_glyph = node.has_glyph or node.first_glyph
+
+nodes.current_attr = node.current_attr
+nodes.has_field = node.has_field
+nodes.last_node = node.last_node
+nodes.usedlist = node.usedlist
+nodes.protrusion_skippable = node.protrusion_skippable
+nodes.check_discretionaries = node.check_discretionaries
+nodes.write = node.write
+
+nodes.count = node.count
+nodes.length = node.length
+
+nodes.has_attribute = node.has_attribute
+nodes.set_attribute = node.set_attribute
+nodes.find_attribute = node.find_attribute
+nodes.unset_attribute = node.unset_attribute
+
+nodes.protect_glyph = node.protect_glyph
+nodes.protect_glyphs = node.protect_glyphs
+nodes.unprotect_glyph = node.unprotect_glyph
+nodes.unprotect_glyphs = node.unprotect_glyphs
+nodes.kerning = node.kerning
+nodes.ligaturing = node.ligaturing
+nodes.mlist_to_hlist = node.mlist_to_hlist
+
+nodes.effective_glue = node.effective_glue
+nodes.getglue = node.getglue
+nodes.setglue = node.setglue
+nodes.is_zero_glue = node.is_zero_glue
nodes.tonode = function(n) return n end
nodes.tonut = function(n) return n end
@@ -168,7 +163,7 @@ local n_setlink = node.setlink or -- always
-- not that fast but not used often anyway
local h = nil
for i=1,select("#",...) do
- local n = select(i,...)
+ local n = (select(i,...))
if not n then
-- go on
elseif h then
@@ -626,7 +621,7 @@ local messyhack = table.tohash { -- temporary solution
nodecodes.action,
}
-setmetatableindex(keys,function(t,k)
+table.setmetatableindex(keys,function(t,k)
local v = (k == "attributelist" or k == nodecodes.attributelist) and { } or getfields(k)
if messyhack[k] then
for i=1,#v do
@@ -643,7 +638,7 @@ setmetatableindex(keys,function(t,k)
return v
end)
-setmetatableindex(whatsitkeys,function(t,k)
+table.setmetatableindex(whatsitkeys,function(t,k)
local v = getfields(whatsit_code,k)
if v[ 0] then v[#v+1] = "next" v[ 0] = nil end
if v[-1] then v[#v+1] = "prev" v[-1] = nil end
@@ -664,3 +659,46 @@ end
nodes.keys = keys -- [id][subtype]
nodes.fields = nodefields -- (n)
+
+-- for the moment (pre 6380)
+
+if not nodes.unprotect_glyph then
+
+ local protect_glyph = nodes.protect_glyph
+ local protect_glyphs = nodes.protect_glyphs
+ local unprotect_glyph = nodes.unprotect_glyph
+ local unprotect_glyphs = nodes.unprotect_glyphs
+
+ local getnext = nodes.getnext
+ local setnext = nodes.setnext
+
+ function nodes.protectglyphs(first,last)
+ if first == last then
+ return protect_glyph(first)
+ elseif last then
+ local nxt = getnext(last)
+ setnext(last)
+ local f, b = protect_glyphs(first)
+ setnext(last,nxt)
+ return f, b
+ else
+ return protect_glyphs(first)
+ end
+ end
+
+ function nodes.unprotectglyphs(first,last)
+ if first == last then
+ return unprotect_glyph(first)
+ elseif last then
+ local nxt = getnext(last)
+ setnext(last)
+ local f, b = unprotect_glyphs(first)
+ setnext(last,nxt)
+ return f, b
+ else
+ return unprotect_glyphs(first)
+ end
+ end
+
+end
+
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-mig.lua b/Master/texmf-dist/tex/context/base/mkiv/node-mig.lua
index 32b09a1869c..b3820a7d86c 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-mig.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-mig.lua
@@ -89,11 +89,12 @@ local function locate(head,first,last,ni,nm)
end
function nodes.handlers.migrate(head,where)
+ local done = false
if head then
if trace_migrations then
report_nodes("migration sweep %a",where)
end
- local current = head
+ local current = tonut(head)
while current do
local id = getid(current)
-- inserts_too is a temp hack, we should only do them when it concerns
@@ -123,12 +124,13 @@ function nodes.handlers.migrate(head,where)
setlink(last,n)
end
setlink(current,first)
+ done = true
current = last
end
end
current = getnext(next)
end
- return head
+ return head, done
end
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-nut.lua b/Master/texmf-dist/tex/context/base/mkiv/node-nut.lua
index 6a38cca67a0..3e9a08b4804 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-nut.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-nut.lua
@@ -96,7 +96,6 @@ local fastcopy = table.fastcopy
local nodecodes = nodes.nodecodes
local hlist_code = nodecodes.hlist
local vlist_code = nodecodes.vlist
-local glyph_code = nodecodes.glyph
local nuts = nodes.nuts or { }
nodes.nuts = nuts
@@ -127,11 +126,11 @@ nodes.tonut = tonut
-- function nuts.reportattr()
-- inspect(hash)
-- end
-
+--
-- local function track(name)
-- local n = 0
--- local f = direct[name]
--- direct[name] = function(...)
+-- local f = nuts[name]
+-- function nuts[name](...)
-- n = n + 1
-- if n % 1000 == 0 then
-- print(name,n)
@@ -139,81 +138,112 @@ nodes.tonut = tonut
-- return f(...)
-- end
-- end
+--
-- track("getfield")
-- helpers
-local nuts = nodes.nuts
-
-nuts.check_discretionaries = direct.check_discretionaries
-nuts.copy = direct.copy
-nuts.copy_list = direct.copy_list
-nuts.copy_node = direct.copy
-nuts.count = direct.count
-nuts.current_attr = direct.current_attr
-nuts.delete = direct.delete
-nuts.dimensions = direct.dimensions
-nuts.end_of_math = direct.end_of_math
-nuts.find_attribute = direct.find_attribute
-nuts.first_glyph = direct.first_glyph
-nuts.flatten_discretionaries = direct.flatten_discretionaries
-nuts.flush = direct.flush_node
-nuts.flush_list = direct.flush_list
-nuts.flush_node = direct.flush_node
-nuts.free = direct.free
-nuts.get_synctex_fields = direct.get_synctex_fields
-nuts.has_attribute = direct.has_attribute
-nuts.has_field = direct.has_field
-nuts.has_glyph = direct.has_glyph or direct.first_glyph
-nuts.hpack = direct.hpack
-nuts.insert_after = direct.insert_after
-nuts.insert_before = direct.insert_before
-nuts.is_direct = direct.is_direct
-nuts.is_node = direct.is_node
-nuts.is_nut = direct.is_direct
-nuts.kerning = direct.kerning
-nuts.hyphenating = direct.hyphenating
-nuts.last_node = direct.last_node
-nuts.length = direct.length
-nuts.ligaturing = direct.ligaturing
-nuts.new = direct.new
-nuts.protect_glyph = direct.protect_glyph
-nuts.protect_glyphs = direct.protect_glyphs
-nuts.flush_components = direct.flush_components
-nuts.protrusion_skippable = direct.protrusion_skippable
-nuts.rangedimensions = direct.rangedimensions
-nuts.set_attribute = direct.set_attribute
-nuts.set_synctex_fields = direct.set_synctex_fields
-nuts.slide = direct.slide
-nuts.tail = direct.tail
-nuts.tostring = direct.tostring
-nuts.traverse = direct.traverse
-nuts.traverse_char = direct.traverse_char
-nuts.traverse_glyph = direct.traverse_glyph
-nuts.traverse_id = direct.traverse_id
-nuts.traverse_list = direct.traverse_list
-nuts.unprotect_glyph = direct.unprotect_glyph
-nuts.unprotect_glyphs = direct.unprotect_glyphs
-nuts.unset_attribute = direct.unset_attribute
-nuts.unset_attribute = direct.unset_attribute
-nuts.usedlist = direct.usedlist
-nuts.uses_font = direct.uses_font
-nuts.vpack = direct.vpack
-nuts.writable_spec = direct.writable_spec
-nuts.write = direct.write
-nuts.mlist_to_hlist = direct.mlist_to_hlist
-
-if not nuts.mlist_to_hlist then
+if not direct.getfam then -- LUATEXVERSION < 1.070
+
+ local getfield = direct.getfield
+ local setfield = direct.setfield
+
+ direct.getfam = function(n) return getfield(n,"small_fam") end
+ direct.setfam = function(n,f) setfield(n,"small_fam",f) end
+
+end
+
+if not direct.getdirection then
+
+ local getdir = direct.getdir
+ local setdir = direct.setdir
+
+ direct.getdirection = function(n)
+ local d = getdir(n)
+ if d == "TLT" then return 0 end
+ if d == "+TLT" then return 0, false end
+ if d == "-TLT" then return 0, true end
+ if d == "TRT" then return 1 end
+ if d == "+TRT" then return 1, false end
+ if d == "-TRT" then return 1, true end
+ if d == "LTL" then return 2 end
+ if d == "+LTL" then return 2, false end
+ if d == "-LTL" then return 2, true end
+ if d == "RTT" then return 3 end
+ if d == "+RTT" then return 3, false end
+ if d == "-RTT" then return 3, true end
+ end
+
+ direct.setdirection = function(n,d,c)
+ if d == 0 then if c == true then setdir(n,"-TLT") elseif c == false then setdir(n,"+TLT") else setdir(n,"TLT") end
+ elseif d == 1 then if c == true then setdir(n,"-TRT") elseif c == false then setdir(n,"+TRT") else setdir(n,"TRT") end
+ elseif d == 2 then if c == true then setdir(n,"-LTL") elseif c == false then setdir(n,"+LTL") else setdir(n,"LTL") end
+ elseif d == 3 then if c == true then setdir(n,"-RTT") elseif c == false then setdir(n,"+RTT") else setdir(n,"RTT") end
+ else if c == true then setdir(n,"-TLT") elseif c == false then setdir(n,"+TLT") else setdir(n,"TLT") end end
+ end
+
+end
+
+local nuts = nodes.nuts
+
+nuts.tostring = direct.tostring
+nuts.copy = direct.copy
+nuts.copy_node = direct.copy
+nuts.copy_list = direct.copy_list
+nuts.delete = direct.delete
+nuts.dimensions = direct.dimensions
+nuts.rangedimensions = direct.rangedimensions
+nuts.end_of_math = direct.end_of_math
+nuts.flush = direct.flush_node
+nuts.flush_node = direct.flush_node
+nuts.flush_list = direct.flush_list
+nuts.free = direct.free
+nuts.insert_after = direct.insert_after
+nuts.insert_before = direct.insert_before
+nuts.hpack = direct.hpack
+nuts.new = direct.new
+nuts.tail = direct.tail
+nuts.traverse = direct.traverse
+nuts.traverse_id = direct.traverse_id
+nuts.traverse_char = direct.traverse_char
+nuts.slide = direct.slide
+nuts.writable_spec = direct.writable_spec
+nuts.vpack = direct.vpack
+nuts.is_node = direct.is_node
+nuts.is_direct = direct.is_direct
+nuts.is_nut = direct.is_direct
+nuts.first_glyph = direct.first_glyph
+nuts.has_glyph = direct.has_glyph or direct.first_glyph
+nuts.count = direct.count
+nuts.length = direct.length
+nuts.find_attribute = direct.find_attribute
+nuts.unset_attribute = direct.unset_attribute
+
+nuts.current_attr = direct.current_attr
+nuts.has_field = direct.has_field
+nuts.last_node = direct.last_node
+nuts.usedlist = direct.usedlist
+nuts.protrusion_skippable = direct.protrusion_skippable
+nuts.check_discretionaries = direct.check_discretionaries
+nuts.write = direct.write
+
+nuts.has_attribute = direct.has_attribute
+nuts.set_attribute = direct.set_attribute
+nuts.unset_attribute = direct.unset_attribute
+
+nuts.protect_glyph = direct.protect_glyph
+nuts.protect_glyphs = direct.protect_glyphs
+nuts.unprotect_glyph = direct.unprotect_glyph
+nuts.unprotect_glyphs = direct.unprotect_glyphs
+nuts.ligaturing = direct.ligaturing
+nuts.kerning = direct.kerning
+
+if not direct.mlist_to_hlist then -- needed
local n_mlist_to_hlist = node.mlist_to_hlist
- function nuts.mlist_to_hlist(head,...)
- if head then
- local head = n_mlist_to_hlist(tonode(head),...)
- if head then
- return tonut(head)
- end
- end
+ function nuts.mlist_to_hlist(head)
+ return tonode(n_mlist_to_hlist(tonut(head)))
end
end
@@ -246,14 +276,6 @@ nuts.setdisc = direct.setdisc
nuts.getdiscretionary = direct.getdisc
nuts.setdiscretionary = direct.setdisc
-nuts.getdata = direct.getdata
-nuts.setdata = direct.setdata
-nuts.getvalue = direct.getdata
-nuts.setvalue = direct.setdata
-
-nuts.getexpansion = direct.getexpansion
-nuts.setexpansion = direct.setexpansion
-
nuts.getwhd = direct.getwhd
nuts.setwhd = direct.setwhd
nuts.getwidth = direct.getwidth
@@ -264,8 +286,6 @@ nuts.getdepth = direct.getdepth
nuts.setdepth = direct.setdepth
nuts.getshift = direct.getshift
nuts.setshift = direct.setshift
-nuts.getorientation = direct.getorientation or function() end
-nuts.setorientation = direct.setorientation or function() end
nuts.getnucleus = direct.getnucleus
nuts.setnucleus = direct.setnucleus
@@ -706,10 +726,14 @@ nodes.properties = {
data = propertydata,
}
-if direct.set_properties_mode then
- direct.set_properties_mode(true,true) -- create metatable, slower but needed for font-otj.lua (unless we use an intermediate table)
- function direct.set_properties_mode() end
-end
+------.set_properties_mode(true,false) -- shallow copy ... problem: in fonts we then affect the originals too
+direct.set_properties_mode(true,true) -- create metatable, slower but needed for font-otj.lua (unless we use an intermediate table)
+
+-- todo:
+--
+-- function direct.set_properties_mode()
+-- -- we really need the set modes
+-- end
-- experimental code with respect to copying attributes has been removed
-- as it doesn't pay of (most attributes are only accessed once anyway)
@@ -746,22 +770,8 @@ nuts.theprop = function(n)
return p
end
-nuts.isdone = function(n,k)
- local p = propertydata[n]
- if not p then
- propertydata[n] = { [k] = true }
- return false
- end
- local v = p[k]
- if v == nil then
- propertydata[n] = { [k] = true }
- return false
- end
- return v
-end
-
--- nodes.setprop = nodes.setproperty
--- nodes.getprop = nodes.getproperty
+nodes.setprop = nodes.setproperty
+nodes.getprop = nodes.getproperty
function nuts.copy_properties(source,target,what)
local newprops = propertydata[source]
@@ -790,3 +800,116 @@ function nuts.copy_properties(source,target,what)
end
return newprops -- for checking
end
+
+-- here:
+
+nuts.get_synctex_fields = direct.get_synctex_fields
+nuts.set_synctex_fields = direct.set_synctex_fields
+
+-- for now
+
+nodes.uses_font = nodes.uses_font
+nuts.uses_font = direct.uses_font
+
+if not nuts.uses_font then
+
+ local glyph_code = nodecodes.glyph
+ local getdisc = nuts.getdisc
+ local getfont = nuts.getfont
+ local traverse_id = nuts.traverse_id
+ local tonut = nodes.tonut
+
+ function nuts.uses_font(n,font)
+ local pre, post, replace = getdisc(n)
+ if pre then
+ -- traverse_char
+ for n in traverse_id(glyph_code,pre) do
+ if getfont(n) == font then
+ return true
+ end
+ end
+ end
+ if post then
+ for n in traverse_id(glyph_code,post) do
+ if getfont(n) == font then
+ return true
+ end
+ end
+ end
+ if replace then
+ for n in traverse_id(glyph_code,replace) do
+ if getfont(n) == font then
+ return true
+ end
+ end
+ end
+ return false
+ end
+
+ function nodes.uses_font(n,font)
+ return nuts.uses_font(tonut(n),font)
+ end
+
+end
+
+-- for the moment (pre 6380)
+
+if not nuts.unprotect_glyph then
+
+ local protect_glyph = nuts.protect_glyph
+ local protect_glyphs = nuts.protect_glyphs
+ local unprotect_glyph = nuts.unprotect_glyph
+ local unprotect_glyphs = nuts.unprotect_glyphs
+
+ local getnext = nuts.getnext
+ local setnext = nuts.setnext
+
+ function nuts.protectglyphs(first,last)
+ if first == last then
+ return protect_glyph(first)
+ elseif last then
+ local nxt = getnext(last)
+ setnext(last)
+ local f, b = protect_glyphs(first)
+ setnext(last,nxt)
+ return f, b
+ else
+ return protect_glyphs(first)
+ end
+ end
+
+ function nuts.unprotectglyphs(first,last)
+ if first == last then
+ return unprotect_glyph(first)
+ elseif last then
+ local nxt = getnext(last)
+ setnext(last)
+ local f, b = unprotect_glyphs(first)
+ setnext(last,nxt)
+ return f, b
+ else
+ return unprotect_glyphs(first)
+ end
+ end
+
+end
+
+if LUATEXFUNCTIONALITY < 6384 then -- LUATEXVERSION < 1.070
+
+ local getfield = nuts.getfield
+ local setfield = nuts.setfield
+
+ function nuts.getboxglue(n,glue_set,glue_order,glue_sign)
+ return
+ getfield(n,"glue_set"),
+ getfield(n,"glue_order"),
+ getfield(n,"glue_sign")
+ end
+
+ function nuts.setboxglue(n,glue_set,glue_order,glue_sign)
+ setfield(n,"glue_set", glue_set or 0)
+ setfield(n,"glue_order",glue_order or 0)
+ setfield(n,"glue_sign", glue_sign or 0)
+ end
+
+end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-par.lua b/Master/texmf-dist/tex/context/base/mkiv/node-par.lua
deleted file mode 100644
index 8564c8764bd..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/node-par.lua
+++ /dev/null
@@ -1,48 +0,0 @@
-if not modules then modules = { } end modules ['node-par'] = {
- version = 1.001,
- comment = "companion to node-ini.mkiv",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
-local starttiming = statistics.starttiming
-local stoptiming = statistics.stoptiming
-
-local sequencers = utilities.sequencers
-
--- This are called a lot!
-
-local actions = nodes.tasks.actions("everypar")
-
-local function everypar(head)
- starttiming(builders)
- head = actions(head)
- stoptiming(builders)
- return head
-end
-
-callbacks.register("insert_local_par",everypar,"after paragraph start")
-
-local actions = sequencers.new {
- name = "newgraf",
- arguments = "mode,indented",
- returnvalues = "indented",
- results = "indented",
-}
-
-sequencers.appendgroup(actions,"before") -- user
-sequencers.appendgroup(actions,"system") -- private
-sequencers.appendgroup(actions,"after" ) -- user
-
-local function newgraf(mode,indented)
- local runner = actions.runner
- if runner then
- starttiming(builders)
- indent = runner(mode,indented)
- stoptiming(builders)
- end
- return indented
-end
-
-callbacks.register("new_graf",newgraf,"before paragraph start")
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-ppt.lua b/Master/texmf-dist/tex/context/base/mkiv/node-ppt.lua
index 485e742b64a..5ebfca87d14 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-ppt.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-ppt.lua
@@ -26,14 +26,12 @@ local getid = nuts.getid
local getnext = nuts.getnext
local getprev = nuts.getprev
local getsubtype = nuts.getsubtype
+local getfield = nuts.getfield
local getlist = nuts.getlist
local setlist = nuts.setlist
-local getprop = nuts.getprop
-
local removenode = nuts.remove
-
-local nextnode = nuts.traversers.node
-local nextwhatsit = nuts.traversers.whatsit
+local traverse = nuts.traverse
+local traverse_id = nuts.traverse_id
local nodecodes = nodes.nodecodes
local whatsitcodes = nodes.whatsitcodes
@@ -41,17 +39,18 @@ local whatsitcodes = nodes.whatsitcodes
local whatsit_code = nodecodes.whatsit
local hlist_code = nodecodes.hlist
local vlist_code = nodecodes.vlist
-
-local userdefinedwhatsit_code = whatsitcodes.userdefined
+local userdefined_code = whatsitcodes.userdefined
local nodepool = nodes.pool
-local new_usernode = nodepool.usernode
+local new_usernumber = nodepool.usernumber
local variables = interfaces.variables
local v_before = variables.before
local v_after = variables.after
local v_here = variables.here
+local cache = { }
+local nofslots = 0
local property_id = nodepool.userids["property"]
local properties = nodes.properties
@@ -72,8 +71,15 @@ local function register(where,data,...)
where = v_after
end
if data then
+ local data = { where, data, ... }
nofslots = nofslots + 1
- return new_usernode(property_id,{ where, data, ... })
+ if nofslots > 1 then
+ cache[nofslots] = data
+ else
+ -- report("restarting attacher")
+ cache = { data } -- also forces collection
+ end
+ return new_usernumber(property_id,nofslots)
end
end
@@ -102,9 +108,17 @@ local f_delayed = formatters["return function(target,head,where,propdata,paren
local f_immediate = formatters["return function(target,head,where,propdata) %s end"]
local nofdelayed = 0 -- better is to keep track of it per page ... we can have deleted nodes with properties
-local nofslots = 0
function actions.delayed(target,head,where,propdata,code,...) -- this one is used at the tex end
+-- local kind = type(code)
+-- if kind == "string" then
+-- code, err = load(f_delayed(code))
+-- if code then
+-- code = code()
+-- end
+-- elseif kind ~= "function" then
+-- code = nil
+-- end
if code then
local delayed = propdata.delayed
if delayed then
@@ -117,6 +131,15 @@ function actions.delayed(target,head,where,propdata,code,...) -- this one is use
end
function actions.fdelayed(target,head,where,propdata,code,...) -- this one is used at the tex end
+-- local kind = type(code)
+-- if kind == "string" then
+-- code, err = load(f_delayed(code))
+-- if code then
+-- code = code()
+-- end
+-- elseif kind ~= "function" then
+-- code = nil
+-- end
if code then
local delayed = propdata.delayed
if delayed then
@@ -147,41 +170,81 @@ function actions.immediate(target,head,where,propdata,code,...) -- this one is u
end
end
+-- another experiment (a table or function closure are equally efficient); a function
+-- is easier when we want to experiment with different (compatible) implementations
+
+-- local nutpool = nuts.pool
+-- local nut_usernumber = nutpool.usernumber
+
+-- function nodes.nuts.pool.deferredfunction(...)
+-- nofdelayed = nofdelayed + 1
+-- local n = nut_usernumber(property_id,0)
+-- propertydata[n] = { deferred = { ... } }
+-- return n
+-- end
+
+-- function nodes.nuts.pool.deferredfunction(f)
+-- nofdelayed = nofdelayed + 1
+-- local n = nut_usernumber(property_id,0)
+-- propertydata[n] = { deferred = f }
+-- return n
+-- end
+
+-- maybe actions will get parent too
+
local function delayed(head,parent) -- direct based
- for target, id in nextnode, head do
+ for target in traverse(head) do
local p = propertydata[target]
if p then
- local delayed = p.delayed
- if delayed then
- for i=1,#delayed do
- local d = delayed[i]
- local code = d[2]
- local kind = type(code)
- if kind == "string" then
- code, err = load(f_delayed(code))
- if code then
- code = code()
+ -- local deferred = p.deferred -- kind of late lua (but too soon as we have no access to pdf.h/v)
+ -- if deferred then
+ -- -- if #deferred > 0 then
+ -- -- deferred[1](unpack(deferred,2))
+ -- -- else
+ -- -- deferred[1]()
+ -- -- end
+ -- deferred()
+ -- p.deferred = false
+ -- if nofdelayed == 1 then
+ -- nofdelayed = 0
+ -- return head
+ -- else
+ -- nofdelayed = nofdelayed - 1
+ -- end
+ -- else
+ local delayed = p.delayed
+ if delayed then
+ for i=1,#delayed do
+ local d = delayed[i]
+ local code = d[2]
+ local kind = type(code)
+ if kind == "string" then
+ code, err = load(f_delayed(code))
+ if code then
+ code = code()
+ end
end
- end
- local where = d[1]
- if where then
- local h = code(target,where,head,p,parent,unpack(d,3)) -- target where propdata head parent
- if h and h ~= head then
- head = h
+ local where = d[1]
+ if where then
+ local h = code(target,where,head,p,parent,unpack(d,3)) -- target where propdata head parent
+ if h and h ~= head then
+ head = h
+ end
+ else
+ code(unpack(d,3))
end
+ end
+ p.delayed = nil
+ if nofdelayed == 1 then
+ nofdelayed = 0
+ return head
else
- code(unpack(d,3))
+ nofdelayed = nofdelayed - 1
end
end
- p.delayed = nil
- if nofdelayed == 1 then
- nofdelayed = 0
- return head
- else
- nofdelayed = nofdelayed - 1
- end
- end
+ -- end
end
+ local id = getid(target)
if id == hlist_code or id == vlist_code then
local list = getlist(target)
if list then
@@ -205,13 +268,14 @@ function properties.delayed(head) --
if nofdelayed > 0 then
-- if next(propertydata) then
starttiming(properties)
- head = delayed(head)
+ head = delayed(tonut(head))
stoptiming(properties)
+ return tonode(head), true -- done in shipout anyway
-- else
-- delayed = 0
- -- end
+ -- end
end
- return head
+ return head, false
end
-- more explicit ones too
@@ -220,7 +284,7 @@ local anchored = {
[v_before] = function(n)
while n do
n = getprev(n)
- if getid(n) == whatsit_code and getsubtype(n) == user_code and getprop(n,"id") == property_id then
+ if getid(n) == whatsit_code and getsubtype(n) == user_code and getfield(n,"user_id") == property_id then
-- continue
else
return n
@@ -232,7 +296,7 @@ local anchored = {
n = getnext(n)
if getid(n) == whatsit_code then
local subtype = getsubtype(n)
- if (subtype == userdefinedwhatsit_code and getprop(n,"id") == property_id) then
+ if (subtype == userdefined_code and getfield(n,"user_id") == property_id) then
-- continue
else
return n
@@ -256,22 +320,26 @@ end)
function properties.attach(head)
if nofslots <= 0 then
- return head
+ return head, false
end
+ local done = false
local last = nil
+ local head = tonut(head)
starttiming(properties)
- for source, subtype in nextwhatsit, head do
- if subtype == userdefinedwhatsit_code then
+ for source in traverse_id(whatsit_code,head) do
+ if getsubtype(source) == userdefined_code then
if last then
removenode(head,last,true)
last = nil
end
- if getprop(source,"id") == property_id then
- local data = getprop(source,"data")
+ if getfield(source,"user_id") == property_id then
+ local slot = getfield(source,"value")
+ local data = cache[slot]
if data then
+ cache[slot] = nil
local where = data[1]
local target = anchored[where](source)
if target then
@@ -325,7 +393,7 @@ function properties.attach(head)
target,nodecodes[getid(target)],serialize(propertydata[target],false))
end
end
- if nofslots == 1 then
+ if nofslots == 1 then
nofslots = 0
last = source
break
@@ -344,22 +412,25 @@ function properties.attach(head)
stoptiming(properties)
- return head
+ return head, done
end
+local tasks = nodes.tasks
+
-- maybe better hard coded in-place
+-- tasks.prependaction("processors","before","nodes.properties.attach")
+-- tasks.appendaction("shipouts","normalizers","nodes.properties.delayed")
+
statistics.register("properties processing time", function()
return statistics.elapsedseconds(properties)
end)
-- only for development
--- local tasks = nodes.tasks
---
-- local function show(head,level,report)
--- for target in nextnode, head do
+-- for target in traverse(head) do
-- local p = propertydata[target]
-- if p then
-- report("level %i, node %i, id %s, data %s",
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-pro.lua b/Master/texmf-dist/tex/context/base/mkiv/node-pro.lua
index b6b1305886f..4509bac18db 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-pro.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-pro.lua
@@ -35,7 +35,7 @@ do
local n = 0
local function reconstruct(head) -- we probably have a better one
- local t, n, h = { }, 0, head
+ local t, n, h = { }, 0, tonut(head)
while h do
n = n + 1
local char, id = isglyph(h)
@@ -49,7 +49,7 @@ do
return concat(t)
end
- function processors.tracer(what,head,groupcode,before,after,show)
+ function processors.tracer(what,state,head,groupcode,before,after,show)
if not groupcode then
groupcode = "unknown"
elseif groupcode == "" then
@@ -57,14 +57,16 @@ do
end
n = n + 1
if show then
- report_nodes("%s: location %a, group %a, # before %a, # after %s, stream: %s",what,n,groupcode,before,after,reconstruct(head))
+ report_nodes("%s: location %a, state %a, group %a, # before %a, # after %s, stream: %s",what,n,state,groupcode,before,after,reconstruct(head))
else
- report_nodes("%s: location %a, group %a, # before %a, # after %s",what,n,groupcode,before,after)
+ report_nodes("%s: location %a, state %a, group %a, # before %a, # after %s",what,n,state,groupcode,before,after)
end
end
end
+local tracer = processors.tracer
+
processors.enabled = true -- this will become a proper state (like trackers)
do
@@ -72,131 +74,154 @@ do
local has_glyph = nodes.has_glyph
local count_nodes = nodes.countall
- local texget = tex.get
-
- local tracer = processors.tracer
-
- local function pre_linebreak_filter(head,groupcode)
+ function processors.pre_linebreak_filter(head,groupcode) -- ,size,packtype,direction
local found = force_processors or has_glyph(head)
if found then
if trace_callbacks then
local before = count_nodes(head,true)
- head = actions(head,groupcode)
+ local head, done = actions(head,groupcode) -- ,size,packtype,direction
local after = count_nodes(head,true)
- tracer("pre_linebreak",head,groupcode,before,after,true)
+ if done then
+ tracer("pre_linebreak","changed",head,groupcode,before,after,true)
+ else
+ tracer("pre_linebreak","unchanged",head,groupcode,before,after,true)
+ end
+ return done and head or true
else
- head = actions(head,groupcode)
+ local head, done = actions(head,groupcode) -- ,size,packtype,direction
+ return done and head or true
end
elseif trace_callbacks then
local n = count_nodes(head,false)
- tracer("pre_linebreak",head,groupcode,n,n)
+ tracer("pre_linebreak","no chars",head,groupcode,n,n)
end
- return head
+ return true
end
local function hpack_filter(head,groupcode,size,packtype,direction,attributes)
local found = force_processors or has_glyph(head)
if found then
- --
- -- yes or no or maybe an option
- --
- if not direction then
- direction = texget("textdir")
- end
- --
if trace_callbacks then
local before = count_nodes(head,true)
- head = actions(head,groupcode,size,packtype,direction,attributes)
+ local head, done = actions(head,groupcode,size,packtype,direction,attributes)
local after = count_nodes(head,true)
- tracer("hpack",head,groupcode,before,after,true)
+ if done then
+ tracer("hpack","changed",head,groupcode,before,after,true)
+ else
+ tracer("hpack","unchanged",head,groupcode,before,after,true)
+ end
+ return done and head or true
else
- head = actions(head,groupcode,size,packtype,direction,attributes)
+ local head, done = actions(head,groupcode,size,packtype,direction,attributes)
+ return done and head or true
end
elseif trace_callbacks then
local n = count_nodes(head,false)
- tracer("hpack",head,groupcode,n,n)
+ tracer("hpack","no chars",head,groupcode,n,n)
end
- return head
+ return true
end
- processors.pre_linebreak_filter = pre_linebreak_filter
- processors.hpack_filter = hpack_filter
+ processors.hpack_filter = hpack_filter
do
- local hpack = nodes.hpack
+ local setfield = nodes.setfield
+ local hpack = nodes.hpack
function nodes.fullhpack(head,...)
- return hpack((hpack_filter(head)),...)
+ local ok = hpack_filter(head)
+ if not done or done == true then
+ ok = head
+ end
+ local hp, b = hpack(ok,...)
+ setfield(hp,"prev",nil)
+ setfield(hp,"next",nil)
+ return hp, b
end
end
do
- local hpack = nuts.hpack
+ local setboth = nuts.setboth
+ local hpack = nuts.hpack
function nuts.fullhpack(head,...)
- return hpack(tonut(hpack_filter(tonode(head))),...)
+ local ok = hpack_filter(tonode(head))
+ if not done or done == true then
+ ok = head
+ else
+ ok = tonut(ok)
+ end
+ local hp, b = hpack(...)
+ setboth(hp)
+ return hp, b
end
end
- callbacks.register('pre_linebreak_filter', pre_linebreak_filter, "horizontal manipulations (before par break)")
- callbacks.register('hpack_filter' , hpack_filter, "horizontal manipulations (before hbox creation)")
+ callbacks.register('pre_linebreak_filter', processors.pre_linebreak_filter, "all kind of horizontal manipulations (before par break)")
+ callbacks.register('hpack_filter' , processors.hpack_filter, "all kind of horizontal manipulations (before hbox creation)")
end
do
- -- Beware, these are packaged boxes so no first_glyph test needed. Maybe some day I'll add a hash
- -- with valid groupcodes. Watch out, much can pass twice, for instance vadjust passes two times,
local actions = tasks.actions("finalizers") -- head, where
local count_nodes = nodes.countall
- local tracer = processors.tracer
+ -- beware, these are packaged boxes so no first_glyph test
+ -- maybe some day a hash with valid groupcodes
+ --
+ -- beware, much can pass twice, for instance vadjust passes two times
+ --
+ -- something weird here .. group mvl when making a vbox
- local function post_linebreak_filter(head,groupcode)
+ function processors.post_linebreak_filter(head,groupcode)
if trace_callbacks then
local before = count_nodes(head,true)
- head = actions(head,groupcode)
+ local head, done = actions(head,groupcode)
local after = count_nodes(head,true)
- tracer("post_linebreak",head,groupcode,before,after,true)
+ if done then
+ tracer("post_linebreak","changed",head,groupcode,before,after,true)
+ else
+ tracer("post_linebreak","unchanged",head,groupcode,before,after,true)
+ end
+ return done and head or true
else
- head = actions(head,groupcode)
+ local head, done = actions(head,groupcode)
+ return done and head or true
end
- return head
end
- processors.post_linebreak_filter = post_linebreak_filter
-
- callbacks.register("post_linebreak_filter", post_linebreak_filter,"horizontal manipulations (after par break)")
+ callbacks.register('post_linebreak_filter', processors.post_linebreak_filter,"all kind of horizontal manipulations (after par break)")
end
do
- local texnest = tex.nest
+ local texnest = tex.nest
- local getlist = nodes.getlist
- local setlist = nodes.setlist
- local getsubtype = nodes.getsubtype
+ local getlist = nodes.getlist
+ local setlist = nodes.setlist
+ local getsubtype = nodes.getsubtype
- local linelist_code = nodes.listcodes.line
+ local line_code = nodes.listcodes.line
- local actions = tasks.actions("contributers")
+ local actions = tasks.actions("contributers")
function processors.contribute_filter(groupcode)
if groupcode == "box" then -- "pre_box"
local whatever = texnest[texnest.ptr]
if whatever then
local line = whatever.tail
- if line and getsubtype(line) == linelist_code then
+ if line and getsubtype(line) == line_code then
local head = getlist(line)
if head then
- local result = actions(head,groupcode,line)
- if result and result ~= head then
- setlist(line,result)
+ local okay, done = actions(head,groupcode,line)
+ if okay and okay ~= head then
+ setlist(line,okay)
end
end
end
@@ -204,7 +229,7 @@ do
end
end
- callbacks.register("contribute_filter", processors.contribute_filter,"things done with lines")
+ callbacks.register('contribute_filter', processors.contribute_filter,"things done with lines")
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-ref.lua b/Master/texmf-dist/tex/context/base/mkiv/node-ref.lua
index e12bd95bdd6..1ec77e83de3 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-ref.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-ref.lua
@@ -67,25 +67,21 @@ local getattr = nuts.getattr
local setattr = nuts.setattr
local getsubtype = nuts.getsubtype
local getwhd = nuts.getwhd
-local getdirection = nuts.getdirection
+local getdir = nuts.getdir
local setshift = nuts.setshift
local getboxglue = nuts.getboxglue
local hpack_list = nuts.hpack
local vpack_list = nuts.vpack
-local getdimensions = nuts.dimensions
-local getrangedimensions = nuts.rangedimensions
+local list_dimensions = nuts.dimensions
+local list_rangedimensions = nuts.rangedimensions
local traverse = nuts.traverse
local find_node_tail = nuts.tail
local nodecodes = nodes.nodecodes
-local gluecodes = nodes.gluecodes
+local skipcodes = nodes.skipcodes
local listcodes = nodes.listcodes
-local dirvalues = nodes.dirvalues
-local lefttoright_code = dirvalues.lefttoright
-local righttoleft_code = dirvalues.righttoleft
-
local hlist_code = nodecodes.hlist
local vlist_code = nodecodes.vlist
local glue_code = nodecodes.glue
@@ -94,11 +90,11 @@ local rule_code = nodecodes.rule
local dir_code = nodecodes.dir
local localpar_code = nodecodes.localpar
-local leftskip_code = gluecodes.leftskip
-local rightskip_code = gluecodes.rightskip
-local parfillskip_code = gluecodes.parfillskip
+local leftskip_code = skipcodes.leftskip
+local rightskip_code = skipcodes.rightskip
+local parfillskip_code = skipcodes.parfillskip
------ linelist_code = listcodes.line
+local line_code = listcodes.line
local new_rule = nodepool.rule
local new_kern = nodepool.kern
@@ -117,9 +113,9 @@ local implement = interfaces.implement
local function hlist_dimensions(start,stop,parent)
local last = stop and getnext(stop)
if parent then
- return getrangedimensions(parent,start,last)
+ return list_rangedimensions(parent,start,last)
else
- return getdimensions(start,last)
+ return list_dimensions(start,last)
end
end
@@ -254,13 +250,11 @@ local function dimensions(parent,start,stop) -- in principle we could move some
end
end
+-- is pardir important at all?
+
local function inject_range(head,first,last,reference,make,stack,parent,pardir,txtdir)
local width, height, depth, line = dimensions(parent,first,last)
- if txtdir == righttoleft_code then
- width = - width
- elseif textdir == lefttoright_code then
- -- go on
- elseif pardir == righttoleft_code then
+ if txtdir == "+TRT" or (txtdir == "===" and pardir == "TRT") then -- KH: textdir == "===" test added
width = - width
end
local result, resolved = make(width,height,depth,reference)
@@ -270,7 +264,7 @@ local function inject_range(head,first,last,reference,make,stack,parent,pardir,t
local l = getlist(line)
if trace_areas then
report_area("%s: %i : %s %s %s => w=%p, h=%p, d=%p","line",
- reference,pardir or "?",txtdir or "?",
+ reference,pardir or "---",txtdir or "---",
tosequence(l,nil,true),width,height,depth)
end
setlist(line,result)
@@ -279,7 +273,7 @@ local function inject_range(head,first,last,reference,make,stack,parent,pardir,t
elseif head == first then
if trace_areas then
report_area("%s: %i : %s %s %s => w=%p, h=%p, d=%p","head",
- reference,pardir or "?",txtdir or "?",
+ reference,pardir or "---",txtdir or "---",
tosequence(first,last,true),width,height,depth)
end
setlink(result,first)
@@ -287,7 +281,7 @@ local function inject_range(head,first,last,reference,make,stack,parent,pardir,t
else
if trace_areas then
report_area("%s: %i : %s %s %s => w=%p, h=%p, d=%p","middle",
- reference,pardir or "?",txtdir or "?",
+ reference,pardir or "---",txtdir or "---",
tosequence(first,last,true),width,height,depth)
end
if first == last and getid(parent) == vlist_code and getid(first) == hlist_code then
@@ -312,7 +306,7 @@ local function inject_list(id,current,reference,make,stack,pardir,txtdir)
local correction = 0
local moveright = false
local first = getlist(current)
- if id == hlist_code then -- boxlist_code linelist_code
+ if id == hlist_code then -- box_code line_code
-- can be either an explicit hbox or a line and there is no way
-- to recognize this; anyway only if ht/dp (then inline)
local sr = stack[reference]
@@ -343,7 +337,7 @@ local function inject_list(id,current,reference,make,stack,pardir,txtdir)
correction = height + depth
height, depth = depth, height -- ugly hack, needed because pdftex backend does something funny
end
- if pardir == righttoleft_code then
+ if pardir == "TRT" then
width = - width
end
local result, resolved = make(width,height,depth,reference)
@@ -351,7 +345,7 @@ local function inject_list(id,current,reference,make,stack,pardir,txtdir)
if result and resolved then
if trace_areas then
report_area("%s: %04i %s %s %s: w=%p, h=%p, d=%p, c=%S","box",
- reference,pardir or "?",txtdir or "?","[]",width,height,depth,resolved)
+ reference,pardir or "---",txtdir or "----","[]",width,height,depth,resolved)
end
if not first then
setlist(current,result)
@@ -376,6 +370,12 @@ end
local function inject_areas(head,attribute,make,stack,done,skip,parent,pardir,txtdir) -- main
local first, last, firstdir, reference
+ if not pardir then
+ pardir = "==="
+ end
+ if not texdir then
+ txtdir = "==="
+ end
local current = head
while current do
local id = getid(current)
@@ -404,8 +404,8 @@ local function inject_areas(head,attribute,make,stack,done,skip,parent,pardir,tx
end
local list = getlist(current)
if list then
- local h
- h, pardir, txtdir = inject_areas(list,attribute,make,stack,done,r or skip or 0,current,pardir,txtdir)
+ local h, ok
+ h, ok, pardir, txtdir = inject_areas(list,attribute,make,stack,done,r or skip or 0,current,pardir,txtdir)
if h ~= current then
setlist(current,h)
end
@@ -416,12 +416,9 @@ local function inject_areas(head,attribute,make,stack,done,skip,parent,pardir,tx
elseif id == glue_code and getsubtype(current) == leftskip_code then -- any glue at the left?
--
elseif id == dir_code then
- local direction, pop = getdirection(current)
- txtdir = not pop and direction -- we might need a stack
- elseif id == localpar_code then
- if getsubtype(current) == 0 then
- pardir = getdirection(current)
- end
+ txtdir = getdir(current)
+ elseif id == localpar_code then -- only test at begin
+ pardir = getdir(current)
else
local r = getattr(current,attribute)
if not r then
@@ -444,183 +441,46 @@ local function inject_areas(head,attribute,make,stack,done,skip,parent,pardir,tx
if reference and (done[reference] or 0) == 0 then
head = inject_range(head,first,last,reference,make,stack,parent,pardir,firstdir)
end
- return head, pardir, txtdir
+ return head, true, pardir, txtdir
end
--- -- not faster either:
---
--- local findattr = node.direct.find_attribute
---
--- local function inject_areas(head,attribute,make,stack,done,skip,parent,pardir,txtdir) -- main
--- local first, last, firstdir, reference
--- local someatt = findattr(head,attribute)
--- if someatt then
--- local current = head
--- while current do
--- local id = getid(current)
--- if id == hlist_code or id == vlist_code then
--- local r = getattr(current,attribute)
--- -- test \goto{test}[page(2)] test \gotobox{test}[page(2)]
--- -- test \goto{\TeX}[page(2)] test \gotobox{\hbox {x} \hbox {x}}[page(2)]
--- -- if r and (not skip or r >) skip then -- maybe no > test
--- -- inject_list(id,current,r,make,stack,pardir,txtdir)
--- -- end
--- if r then
--- if not reference then
--- reference, first, last, firstdir = r, current, current, txtdir
--- elseif r == reference then
--- -- same link
--- last = current
--- elseif (done[reference] or 0) == 0 then
--- if not skip or r > skip then -- maybe no > test
--- head, current = inject_range(head,first,last,reference,make,stack,parent,pardir,firstdir)
--- reference, first, last, firstdir = nil, nil, nil, nil
--- end
--- else
--- reference, first, last, firstdir = r, current, current, txtdir
--- end
--- done[r] = (done[r] or 0) + 1
--- end
--- local list = getlist(current)
--- if list then
--- local h
--- h, pardir, txtdir = inject_areas(list,attribute,make,stack,done,r or skip or 0,current,pardir,txtdir)
--- if h ~= current then
--- setlist(current,h)
--- end
--- end
--- if r then
--- done[r] = done[r] - 1
--- end
--- elseif id == dir_code then
--- local direction, pop = getdirection(current)
--- txtdir = not pop and direction -- we might need a stack
--- elseif id == localpar_code then -- only test at begin
--- pardir = getdirection(current)
--- elseif id == glue_code and getsubtype(current) == leftskip_code then -- any glue at the left?
--- --
--- else
--- local r = getattr(current,attribute)
--- if not r then
--- -- just go on, can be kerns
--- elseif not reference then
--- reference, first, last, firstdir = r, current, current, txtdir
--- elseif r == reference then
--- last = current
--- elseif (done[reference] or 0) == 0 then -- or id == glue_code and getsubtype(current) == right_skip_code
--- if not skip or r > skip then -- maybe no > test
--- head, current = inject_range(head,first,last,reference,make,stack,parent,pardir,firstdir)
--- reference, first, last, firstdir = nil, nil, nil, nil
--- end
--- else
--- reference, first, last, firstdir = r, current, current, txtdir
--- end
--- end
--- current = getnext(current)
--- end
--- if reference and (done[reference] or 0) == 0 then
--- head = inject_range(head,first,last,reference,make,stack,parent,pardir,firstdir)
--- end
--- else
--- local current = head
--- while current do
--- local id = getid(current)
--- if id == hlist_code or id == vlist_code then
--- local list = getlist(current)
--- if list then
--- local h = inject_areas(list,attribute,make,stack,done,skip or 0,current,pardir,txtdir)
--- if h ~= current then
--- setlist(current,h)
--- end
--- end
--- elseif id == dir_code then
--- local direction, pop = getdirection(current)
--- txtdir = not pop and direction -- we might need a stack
--- elseif id == localpar_code then -- only test at begin
--- pardir = getdirection(current)
--- end
--- current = getnext(current)
--- end
+-- local function inject_area(head,attribute,make,stack,done,parent,pardir,txtdir) -- singular !
+-- if not pardir then
+-- pardir = "==="
+-- end
+-- if not texdir then
+-- txtdir = "==="
-- end
--- return head, pardir, txtdir
--- end
-
--- -- maybe first check for glyphs and use a goto:
---
--- local function inject_areas(head,attribute,make,stack,done,skip,parent,pardir,txtdir) -- main
--- local first, last, firstdir, reference
-- local current = head
-- while current do
-- local id = getid(current)
--- local r -- else scope message due to goto
--- if id == glyph_code then
--- goto rest
--- elseif id == hlist_code or id == vlist_code then
--- r = getattr(current,attribute)
--- -- test \goto{test}[page(2)] test \gotobox{test}[page(2)]
--- -- test \goto{\TeX}[page(2)] test \gotobox{\hbox {x} \hbox {x}}[page(2)]
--- -- if r and (not skip or r >) skip then -- maybe no > test
--- -- inject_list(id,current,r,make,stack,pardir,txtdir)
--- -- end
--- if r then
--- if not reference then
--- reference, first, last, firstdir = r, current, current, txtdir
--- elseif r == reference then
--- -- same link
--- last = current
--- elseif (done[reference] or 0) == 0 then
--- if not skip or r > skip then -- maybe no > test
--- head, current = inject_range(head,first,last,reference,make,stack,parent,pardir,firstdir)
--- reference, first, last, firstdir = nil, nil, nil, nil
--- end
--- else
--- reference, first, last, firstdir = r, current, current, txtdir
--- end
--- done[r] = (done[r] or 0) + 1
+-- if id == hlist_code or id == vlist_code then
+-- local r = getattr(current,attribute)
+-- if r and not done[r] then
+-- done[r] = true
+-- inject_list(id,current,r,make,stack,pardir,txtdir)
-- end
-- local list = getlist(current)
-- if list then
--- local h
--- h, pardir, txtdir = inject_areas(list,attribute,make,stack,done,r or skip or 0,current,pardir,txtdir)
+-- local h = inject_area(list,attribute,make,stack,done,current,pardir,txtdir)
-- if h ~= current then
-- setlist(current,h)
-- end
-- end
--- if r then
--- done[r] = done[r] - 1
--- end
--- elseif id == glue_code and getsubtype(current) == leftskip_code then -- any glue at the left?
--- --
-- elseif id == dir_code then
--- local direction, pop = getdirection(current)
--- txtdir = not pop and direction -- we might need a stack
--- elseif id == localpar_code then -- only test at begin
--- pardir = getdirection(current)
--- end
--- goto next
--- ::rest::
--- r = getattr(current,attribute)
--- if not r then
--- -- just go on, can be kerns
--- elseif not reference then
--- reference, first, last, firstdir = r, current, current, txtdir
--- elseif r == reference then
--- last = current
--- elseif (done[reference] or 0) == 0 then -- or id == glue_code and getsubtype(current) == right_skip_code
--- if not skip or r > skip then -- maybe no > test
--- head, current = inject_range(head,first,last,reference,make,stack,parent,pardir,firstdir)
--- reference, first, last, firstdir = nil, nil, nil, nil
--- end
+-- txtdir = getdir(current)
+-- elseif id == localpar_code then
+-- pardir = getdir(current)
-- else
--- reference, first, last, firstdir = r, current, current, txtdir
+-- local r = getattr(current,attribute)
+-- if r and not done[r] then
+-- done[r] = true
+-- head, current = inject_range(head,current,current,r,make,stack,parent,pardir,txtdir)
+-- end
-- end
--- ::next::
-- current = getnext(current)
-- end
--- if reference and (done[reference] or 0) == 0 then
--- head = inject_range(head,first,last,reference,make,stack,parent,pardir,firstdir)
--- end
--- return head, pardir, txtdir
+-- return head, true
-- end
-- tracing: todo: use predefined colors
@@ -735,11 +595,11 @@ nodes.references = {
-- todo: get rid of n (n is just a number, can be used for tracing, obsolete)
-local function setreference(h,d,r) -- h and d can be nil
+local function setreference(h,d,r)
topofstack = topofstack + 1
-- the preroll permits us to determine samepage (but delayed also has some advantages)
-- so some part of the backend work is already done here
- stack[topofstack] = { r, h or false, d or false, codeinjections.prerollreference(r) }
+ stack[topofstack] = { r, h, d, codeinjections.prerollreference(r) }
-- texsetattribute(attribute,topofstack) -- todo -> at tex end
texsetcount("lastreferenceattribute",topofstack)
end
@@ -755,11 +615,7 @@ local function makereference(width,height,depth,reference) -- height and depth a
if trace_references then
report_reference("resolving attribute %a",reference)
end
- local resolved = sr[1]
- local ht = sr[2]
- local dp = sr[3]
- local set = sr[4]
- local n = sr[5]
+ local resolved, ht, dp, set, n = sr[1], sr[2], sr[3], sr[4], sr[5]
-- logs.report("temp","child: ht=%p dp=%p, parent: ht=%p dp=%p",ht,dp,height,depth)
if ht then
if height < ht then height = ht end
@@ -816,9 +672,11 @@ end
function nodes.references.handler(head)
if head and topofstack > 0 then
- return (inject_areas(head,attribute,makereference,stack,done))
+ local head = tonut(head)
+ local head, done = inject_areas(head,attribute,makereference,stack,done)
+ return tonode(head), done
else
- return head
+ return head, false
end
end
@@ -848,11 +706,7 @@ local function makedestination(width,height,depth,reference)
if trace_destinations then
report_destination("resolving attribute %a",reference)
end
- local resolved = sr[1]
- local ht = sr[2]
- local dp = sr[3]
- local name = sr[4]
- local view = sr[5]
+ local resolved, ht, dp, name, view = sr[1], sr[2], sr[3], sr[4], sr[5] -- sr[4] will change to just internal
if ht then
if height < ht then height = ht end
if depth < dp then depth = dp end
@@ -929,12 +783,21 @@ local function makedestination(width,height,depth,reference)
end
end
+-- function nodes.destinations.handler(head)
+-- if head and topofstack > 0 then
+-- return inject_area(head,attribute,makedestination,stack,done) -- singular
+-- else
+-- return head, false
+-- end
+-- end
function nodes.destinations.handler(head)
if head and topofstack > 0 then
- return (inject_areas(head,attribute,makedestination,stack,done))
+ local head = tonut(head)
+ local head, done = inject_areas(head,attribute,makedestination,stack,done)
+ return tonode(head), done
else
- return head
+ return head, false
end
end
@@ -1044,3 +907,15 @@ statistics.register("interactive elements", function()
return nil
end
end)
+
+function references.enableinteraction()
+ enableaction("shipouts","nodes.references.handler")
+ enableaction("shipouts","nodes.destinations.handler")
+ function references.enableinteraction() end
+end
+
+implement {
+ name = "enableinteraction",
+ actions = references.enableinteraction,
+ onlyonce = true
+}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-res.lua b/Master/texmf-dist/tex/context/base/mkiv/node-res.lua
index d9999968ae6..a6211e80e4c 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-res.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-res.lua
@@ -6,7 +6,6 @@ if not modules then modules = { } end modules ['node-res'] = {
license = "see context related readme files"
}
-local type, next = type, next
local gmatch, format = string.gmatch, string.format
--[[ldx--
@@ -14,39 +13,34 @@ local gmatch, format = string.gmatch, string.format
for debugging <l n='luatex'/> node management.</p>
--ldx]]--
+local report_nodes = logs.reporter("nodes","housekeeping")
+
local nodes, node = nodes, node
-local report_nodes = logs.reporter("nodes","housekeeping")
+nodes.pool = nodes.pool or { }
+local nodepool = nodes.pool
-nodes.pool = nodes.pool or { }
-local nodepool = nodes.pool
+local whatsitcodes = nodes.whatsitcodes
+local skipcodes = nodes.skipcodes
+local kerncodes = nodes.kerncodes
+local rulecodes = nodes.rulecodes
+local nodecodes = nodes.nodecodes
+local gluecodes = nodes.gluecodes
+local boundarycodes = nodes.boundarycodes
+local usercodes = nodes.usercodes
-local whatsitcodes = nodes.whatsitcodes
-local gluecodes = nodes.gluecodes
-local kerncodes = nodes.kerncodes
-local rulecodes = nodes.rulecodes
-local nodecodes = nodes.nodecodes
-local leadercodes = nodes.leadercodes
-local boundarycodes = nodes.boundarycodes
-local usercodes = nodes.usercodes
+local glyph_code = nodecodes.glyph
-local nodeproperties = nodes.properties.data
+local allocate = utilities.storage.allocate
-local glyph_code = nodecodes.glyph
-local rule_code = nodecodes.rule
-local kern_code = nodecodes.kern
-local glue_code = nodecodes.glue
-local whatsit_code = nodecodes.whatsit
+local texgetcount = tex.getcount
-local currentfont = font.current
-local texgetcount = tex.getcount
+local reserved, nofreserved = { }, 0
-local allocate = utilities.storage.allocate
+-- user nodes
-local reserved = { }
-local nofreserved = 0
-local userids = allocate()
-local lastid = 0
+local userids = allocate()
+local lastid = 0
setmetatable(userids, {
__index = function(t,k)
@@ -95,9 +89,6 @@ local setwidth = nuts.setwidth
local setsubtype = nuts.setsubtype
local setleader = nuts.setleader
-local setdata = nuts.setdata
-local setvalue = nuts.setvalue
-
local copy_nut = nuts.copy
local new_nut = nuts.new
local flush_nut = nuts.flush
@@ -156,68 +147,68 @@ nutpool.register = register_node -- could be register_nut
-- so far
-local disc = register_nut(new_nut(nodecodes.disc))
-local kern = register_nut(new_nut(kern_code,kerncodes.userkern))
-local fontkern = register_nut(new_nut(kern_code,kerncodes.fontkern))
-local italickern = register_nut(new_nut(kern_code,kerncodes.italiccorrection))
-local penalty = register_nut(new_nut(nodecodes.penalty))
-local glue = register_nut(new_nut(glue_code)) -- glue.spec = nil
-local glue_spec = register_nut(new_nut(nodecodes.gluespec))
-local glyph = register_nut(new_nut(glyph_code,0))
+local disc = register_nut(new_nut("disc"))
+local kern = register_nut(new_nut("kern",kerncodes.userkern))
+local fontkern = register_nut(new_nut("kern",kerncodes.fontkern))
+local italickern = register_nut(new_nut("kern",kerncodes.italiccorrection))
+local penalty = register_nut(new_nut("penalty"))
+local glue = register_nut(new_nut("glue")) -- glue.spec = nil
+local glue_spec = register_nut(new_nut("glue_spec"))
+local glyph = register_nut(new_nut("glyph",0))
-local textdir = register_nut(new_nut(nodecodes.dir))
+local textdir = register_nut(new_nut("dir"))
-local latelua = register_nut(new_nut(whatsit_code,whatsitcodes.latelua))
-local savepos = register_nut(new_nut(whatsit_code,whatsitcodes.savepos))
+local latelua = register_nut(new_nut("whatsit",whatsitcodes.latelua))
+local special = register_nut(new_nut("whatsit",whatsitcodes.special))
-local user_node = new_nut(whatsit_code,whatsitcodes.userdefined)
+local user_node = new_nut("whatsit",whatsitcodes.userdefined)
-if CONTEXTLMTXMODE < 2 then
- setfield(user_node,"type",usercodes.number)
-end
+local user_number = register_nut(copy_nut(user_node)) setfield(user_number, "type",usercodes.number)
+local user_nodes = register_nut(copy_nut(user_node)) setfield(user_nodes, "type",usercodes.node)
+local user_string = register_nut(copy_nut(user_node)) setfield(user_string, "type",usercodes.string)
+local user_tokens = register_nut(copy_nut(user_node)) setfield(user_tokens, "type",usercodes.token)
+----- user_lua = register_nut(copy_nut(user_node)) setfield(user_lua, "type",usercodes.lua) -- in > 0.95
+local user_attributes = register_nut(copy_nut(user_node)) setfield(user_attributes,"type",usercodes.attribute)
-local left_margin_kern = register_nut(new_nut(nodecodes.marginkern,0))
-local right_margin_kern = register_nut(new_nut(nodecodes.marginkern,1))
+local left_margin_kern = register_nut(new_nut("margin_kern",0))
+local right_margin_kern = register_nut(new_nut("margin_kern",1))
-local lineskip = register_nut(new_nut(glue_code,gluecodes.lineskip))
-local baselineskip = register_nut(new_nut(glue_code,gluecodes.baselineskip))
-local leftskip = register_nut(new_nut(glue_code,gluecodes.leftskip))
-local rightskip = register_nut(new_nut(glue_code,gluecodes.rightskip))
+local lineskip = register_nut(new_nut("glue",skipcodes.lineskip))
+local baselineskip = register_nut(new_nut("glue",skipcodes.baselineskip))
+local leftskip = register_nut(new_nut("glue",skipcodes.leftskip))
+local rightskip = register_nut(new_nut("glue",skipcodes.rightskip))
-local temp = register_nut(new_nut(nodecodes.temp,0))
+local temp = register_nut(new_nut("temp",0))
-local noad = register_nut(new_nut(nodecodes.noad))
-local delimiter = register_nut(new_nut(nodecodes.delim))
-local fence = register_nut(new_nut(nodecodes.fence))
-local submlist = register_nut(new_nut(nodecodes.submlist))
-local accent = register_nut(new_nut(nodecodes.accent))
-local radical = register_nut(new_nut(nodecodes.radical))
-local fraction = register_nut(new_nut(nodecodes.fraction))
-local subbox = register_nut(new_nut(nodecodes.subbox))
-local mathchar = register_nut(new_nut(nodecodes.mathchar))
-local mathtextchar = register_nut(new_nut(nodecodes.mathtextchar))
-local choice = register_nut(new_nut(nodecodes.choice))
+local noad = register_nut(new_nut("noad"))
+local delimiter = register_nut(new_nut("delim"))
+local fence = register_nut(new_nut("fence"))
+local submlist = register_nut(new_nut("sub_mlist"))
+local accent = register_nut(new_nut("accent"))
+local radical = register_nut(new_nut("radical"))
+local fraction = register_nut(new_nut("fraction"))
+local subbox = register_nut(new_nut("sub_box"))
+local mathchar = register_nut(new_nut("math_char"))
+local mathtextchar = register_nut(new_nut("math_text_char"))
+local choice = register_nut(new_nut("choice"))
-local boundary = register_nut(new_nut(nodecodes.boundary,boundarycodes.user))
-local wordboundary = register_nut(new_nut(nodecodes.boundary,boundarycodes.word))
+local boundary = register_nut(new_nut("boundary",boundarycodes.user))
+local wordboundary = register_nut(new_nut("boundary",boundarycodes.word))
-local cleader = register_nut(copy_nut(glue)) setsubtype(cleader,leadercodes.cleaders) setglue(cleader,0,65536,0,2,0)
+local cleader = register_nut(copy_nut(glue)) setsubtype(cleader,gluecodes.cleaders) setglue(cleader,0,65536,0,2,0)
-- the dir field needs to be set otherwise crash:
-local lefttoright_code = nodes.dirvalues.lefttoright
-
-local rule = register_nut(new_nut(rule_code)) setdirection(rule, lefttoright_code)
-local emptyrule = register_nut(new_nut(rule_code,rulecodes.empty)) setdirection(rule, lefttoright_code)
-local userrule = register_nut(new_nut(rule_code,rulecodes.user)) setdirection(rule, lefttoright_code)
-local outlinerule = register_nut(new_nut(rule_code,rulecodes.outline)) setdirection(rule, lefttoright_code)
-local hlist = register_nut(new_nut(nodecodes.hlist)) setdirection(hlist,lefttoright_code)
-local vlist = register_nut(new_nut(nodecodes.vlist)) setdirection(vlist,lefttoright_code)
+local rule = register_nut(new_nut("rule")) setdir(rule, "TLT")
+local emptyrule = register_nut(new_nut("rule",rulecodes.empty)) setdir(rule, "TLT")
+local userrule = register_nut(new_nut("rule",rulecodes.user)) setdir(rule, "TLT")
+local hlist = register_nut(new_nut("hlist")) setdir(hlist,"TLT")
+local vlist = register_nut(new_nut("vlist")) setdir(vlist,"TLT")
function nutpool.glyph(fnt,chr)
local n = copy_nut(glyph)
if fnt then
- setfont(n,fnt == true and currentfont() or fnt,chr)
+ setfont(n,fnt,chr)
elseif chr then
setchar(n,chr)
end
@@ -243,7 +234,7 @@ end
function nutpool.boundary(v)
local n = copy_nut(boundary)
if v and v ~= 0 then
- setvalue(n,v)
+ setfield(n,"value",v)
end
return n
end
@@ -251,7 +242,7 @@ end
function nutpool.wordboundary(v)
local n = copy_nut(wordboundary)
if v and v ~= 0 then
- setvalue(n,v)
+ setfield(n,"value",v)
end
return n
end
@@ -344,7 +335,7 @@ function nutpool.disc(pre,post,replace)
return d
end
-function nutpool.textdir(dir) -- obsolete !
+function nutpool.textdir(dir)
local t = copy_nut(textdir)
if dir then
setdir(t,dir)
@@ -364,49 +355,35 @@ function nutpool.direction(dir,swap)
return t
end
-function nutpool.rule(width,height,depth,direction) -- w/h/d == nil will let them adapt
+function nutpool.rule(width,height,depth,dir) -- w/h/d == nil will let them adapt
local n = copy_nut(rule)
if width or height or depth then
setwhd(n,width,height,depth)
end
- if direction then
- setdirection(n,direction)
+ if dir then
+ setdir(n,dir)
end
return n
end
-function nutpool.emptyrule(width,height,depth,direction) -- w/h/d == nil will let them adapt
+function nutpool.emptyrule(width,height,depth,dir) -- w/h/d == nil will let them adapt
local n = copy_nut(emptyrule)
if width or height or depth then
setwhd(n,width,height,depth)
end
- if direction then
- setdirection(n,direction)
+ if dir then
+ setdir(n,dir)
end
return n
end
-function nutpool.userrule(width,height,depth,direction) -- w/h/d == nil will let them adapt
+function nutpool.userrule(width,height,depth,dir) -- w/h/d == nil will let them adapt
local n = copy_nut(userrule)
if width or height or depth then
setwhd(n,width,height,depth)
end
- if direction then
- setdirection(n,direction)
- end
- return n
-end
-
-function nutpool.outlinerule(width,height,depth,line,direction) -- w/h/d == nil will let them adapt
- local n = copy_nut(outlinerule)
- if width or height or depth then
- setwhd(n,width,height,depth)
- end
- if line then
- setfield(n,"transform",line)
- end
- if direction then
- setdirection(n,direction)
+ if dir then
+ setdir(n,dir)
end
return n
end
@@ -422,32 +399,13 @@ function nutpool.leader(width,list)
return n
end
-function nutpool.savepos()
- return copy_nut(savepos)
+function nutpool.latelua(code)
+ local n = copy_nut(latelua)
+ setfield(n,"string",code)
+ return n
end
-if CONTEXTLMTXMODE > 1 then
-
- function nutpool.latelua(code)
- local n = copy_nut(latelua)
- nodeproperties[n] = { data = code }
- return n
- end
-
-else
-
- function nutpool.latelua(code)
- local n = copy_nut(latelua)
- if type(code) == "table" then
- local action = code.action
- local specification = code.specification or code
- code = function() action(specification) end
- end
- setdata(n,code)
- return n
- end
-
-end
+nutpool.lateluafunction = nutpool.latelua
function nutpool.leftmarginkern(glyph,width)
local n = copy_nut(left_margin_kern)
@@ -536,21 +494,86 @@ function nodepool.vlist(list,width,height,depth,shift)
return tonode(new_vlist(list and tonut(list),width,height,depth,shift))
end
-function nutpool.usernode(id,data)
- local n = copy_nut(user_node)
- nodeproperties[n] = {
- id = id,
- data = data,
- }
+-- local num = userids["my id"]
+-- local str = userids[num]
+
+function nutpool.usernumber(id,num)
+ local n = copy_nut(user_number)
+ if num then
+ setfield(n,"user_id",id)
+ setfield(n,"value",num)
+ elseif id then
+ setfield(n,"value",id)
+ end
+ return n
+end
+
+function nutpool.userlist(id,list)
+ local n = copy_nut(user_nodes)
+ if list then
+ setfield(n,"user_id",id)
+ setfield(n,"value",list)
+ else
+ setfield(n,"value",id)
+ end
+ return n
+end
+
+function nutpool.userstring(id,str)
+ local n = copy_nut(user_string)
+ if str then
+ setfield(n,"user_id",id)
+ setfield(n,"value",str)
+ else
+ setfield(n,"value",id)
+ end
+ return n
+end
+
+function nutpool.usertokens(id,tokens)
+ local n = copy_nut(user_tokens)
+ if tokens then
+ setfield(n,"user_id",id)
+ setfield(n,"value",tokens)
+ else
+ setfield(n,"value",id)
+ end
+ return n
+end
+
+function nutpool.userlua(id,code)
+ local n = copy_nut(user_lua)
+ if code then
+ setfield(n,"user_id",id)
+ setfield(n,"value",code)
+ else
+ setfield(n,"value",id)
+ end
+ return n
+end
+
+function nutpool.userattributes(id,attr)
+ local n = copy_nut(user_attributes)
+ if attr then
+ setfield(n,"user_id",id)
+ setfield(n,"value",attr)
+ else
+ setfield(n,"value",id)
+ end
+ return n
+end
+
+function nutpool.special(str)
+ local n = copy_nut(special)
+ setfield(n,"data",str)
return n
end
-- housekeeping
local function cleanup(nofboxes) -- todo
- local tracers = nodes.tracers
- if tracers and tracers.steppers then -- to be resolved
- tracers.steppers.reset() -- todo: make a registration subsystem
+ if nodes.tracers.steppers then -- to be resolved
+ nodes.tracers.steppers.reset() -- todo: make a registration subsystem
end
local nl = 0
local nr = nofreserved
@@ -601,45 +624,3 @@ statistics.register("node memory usage", function() -- comes after cleanup !
end)
lua.registerfinalizer(cleanup, "cleanup reserved nodes")
-
--- experiment
-
-do
-
- local glyph = tonode(glyph)
- local traverse_id = nodes.traverse_id
-
- local traversers = table.setmetatableindex(function(t,k)
- local v = traverse_id(type(k) == "number" and k or nodecodes[k],glyph)
- t[k] = v
- return v
- end)
-
- traversers.node = nodes.traverse (glyph)
- traversers.char = nodes.traverse_char (glyph)
- if nuts.traverse_glyph then traversers.glyph = nodes.traverse_glyph(glyph) end
- if nuts.traverse_list then traversers.list = nodes.traverse_list (glyph) end
-
- nodes.traversers = traversers
-
-end
-
-do
-
- local glyph = glyph
- local traverse_id = nuts.traverse_id
-
- local traversers = table.setmetatableindex(function(t,k)
- local v = traverse_id(type(k) == "number" and k or nodecodes[k],glyph)
- t[k] = v
- return v
- end)
-
- traversers.node = nuts.traverse (glyph)
- traversers.char = nuts.traverse_char (glyph)
- if nuts.traverse_glyph then traversers.glyph = nuts.traverse_glyph(glyph) end
- if nuts.traverse_list then traversers.list = nuts.traverse_list (glyph) end
-
- nuts.traversers = traversers
-
-end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-rul.lua b/Master/texmf-dist/tex/context/base/mkiv/node-rul.lua
index ea0e5c7a0c8..2b0368c2bc5 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-rul.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-rul.lua
@@ -37,20 +37,18 @@ local setlink = nuts.setlink
local getnext = nuts.getnext
local getprev = nuts.getprev
local getid = nuts.getid
-local getdirection = nuts.getdirection
+local getdir = nuts.getdir
local getattr = nuts.getattr
local setattr = nuts.setattr
local getfont = nuts.getfont
local getsubtype = nuts.getsubtype
local getlist = nuts.getlist
local setwhd = nuts.setwhd
+local setdir = nuts.setdir
local setattrlist = nuts.setattrlist
local setshift = nuts.setshift
local getwidth = nuts.getwidth
local setwidth = nuts.setwidth
-local setfield = nuts.setfield
-
-local isglyph = nuts.isglyph
local flushlist = nuts.flush_list
local effective_glue = nuts.effective_glue
@@ -58,16 +56,17 @@ local insert_node_after = nuts.insert_after
local insert_node_before = nuts.insert_before
local find_tail = nuts.tail
local setglue = nuts.setglue
-local getrangedimensions = nuts.rangedimensions
+local traverse_id = nuts.traverse_id
+local list_dimensions = nuts.rangedimensions
local hpack_nodes = nuts.hpack
+local current_attr = nuts.current_attr
local copy_list = nuts.copy_list
-local nexthlist = nuts.traversers.hlist
-
local nodecodes = nodes.nodecodes
local rulecodes = nodes.rulecodes
local gluecodes = nodes.gluecodes
local listcodes = nodes.listcodes
+local kerncodes = nodes.kerncodes
local glyph_code = nodecodes.glyph
local localpar_code = nodecodes.localpar
@@ -75,8 +74,8 @@ local dir_code = nodecodes.dir
local glue_code = nodecodes.glue
local hlist_code = nodecodes.hlist
-local indentlist_code = listcodes.indent
-local linelist_code = listcodes.line
+local indent_code = listcodes.indent
+local line_code = listcodes.line
local leftskip_code = gluecodes.leftskip
local rightskip_code = gluecodes.rightskip
@@ -122,8 +121,8 @@ local setmetatableindex = table.setmetatableindex
--
-local striprange = nuts.striprange
-local processwords = nuts.processwords
+local striprange = nodes.striprange
+local processwords = nodes.processwords
--
@@ -145,7 +144,7 @@ local function usernutrule(t,noattributes)
if noattributes == false or noattributes == nil then
-- avoid fuzzy ones
else
- setattrlist(r,true)
+ setattrlist(r,current_attr())
end
properties[r] = t
return r
@@ -157,11 +156,9 @@ local function userrule(t,noattributes)
return tonode(usernutrule(t,noattributes))
end
-rules.userrule = userrule
-local ruleactions = { }
-
-rules .ruleactions = ruleactions
-nutrules.ruleactions = ruleactions -- convenient
+rules.userrule = userrule
+local ruleactions = { }
+rules.ruleactions = ruleactions
local function mathradical(n,h,v)
----- size = getfield(n,"index")
@@ -206,18 +203,18 @@ local subtypeactions = {
[rulecodes.radical] = mathradical,
}
-local function process_rule(n,h,v)
- local n = tonut(n)
- local s = getsubtype(n)
- local a = subtypeactions[s]
- if a then
- a(n,h,v)
- end
-end
-
-callbacks.register("process_rule",process_rule,"handle additional user rule features")
-
-callbacks.functions.process_rule = process_rule
+callbacks.register(
+ "process_rule",
+ function(n,h,v)
+ local n = tonut(n)
+ local s = getsubtype(n)
+ local a = subtypeactions[s]
+ if a then
+ a(n,h,v)
+ end
+ end,
+ "handle additional user rule features"
+)
--
@@ -242,9 +239,9 @@ end
local function flush_ruled(head,f,l,d,level,parent,strip) -- not that fast but acceptable for this purpose
local font = nil
- local char, id = isglyph(f)
- if char then
- font = id
+ local id = getid(f)
+ if id == glyph_code then
+ font = getfont(f)
elseif id == hlist_code then
font = getattr(f,a_runningtext)
end
@@ -266,7 +263,7 @@ local function flush_ruled(head,f,l,d,level,parent,strip) -- not that fast but a
if not f then
return head
end
- local w, ht, dp = getrangedimensions(parent,f,getnext(l))
+ local w, ht, dp = list_dimensions(parent,f,getnext(l))
local method = d.method
local empty = d.empty == v_yes
local offset = d.offset
@@ -334,7 +331,7 @@ local function flush_ruled(head,f,l,d,level,parent,strip) -- not that fast but a
end
end
if mp and mp ~= "" then
- local r = usernutrule {
+ local r = userrule {
width = w,
height = ht,
depth = dp,
@@ -347,17 +344,16 @@ local function flush_ruled(head,f,l,d,level,parent,strip) -- not that fast but a
ca = color,
ta = transparency,
}
- inject(r,w,ht,dp)
+ inject(tonut(r),w,ht,dp)
else
local tx = d.text
if tx then
- local l = copy_list(tx)
+ tx = copy_list(tx)
if d["repeat"] == v_yes then
- l = new_leader(w,l)
- setattrlist(l,tx)
+ tx = new_leader(w,tx)
end
- l = hpack_nodes(l,w,"exactly")
- inject(l,w,ht,dp)
+ local r = hpack_nodes(tx,w,"exactly")
+ inject(r,w,ht,dp)
else
for i=1,level do
local ht = (offset+(i-1)*dy)*e + rulethickness - m
@@ -377,8 +373,10 @@ local function flush_ruled(head,f,l,d,level,parent,strip) -- not that fast but a
return head
end
+local process = nodes.processwords
+
rules.handler = function(head)
- return processwords(a_ruled,data,flush_ruled,head)
+ return process(a_ruled,data,flush_ruled,head)
end
function rules.enable()
@@ -411,7 +409,7 @@ local function flush_shifted(head,first,last,data,level,parent,strip) -- not tha
local next = getnext(last)
setprev(first)
setnext(last)
- local width, height, depth = getrangedimensions(parent,first,next)
+ local width, height, depth = list_dimensions(parent,first,next)
local list = hpack_nodes(first,width,"exactly") -- we can use a simple pack
if first == head then
head = list
@@ -431,9 +429,9 @@ local function flush_shifted(head,first,last,data,level,parent,strip) -- not tha
return head
end
-nodes.shifts.handler = function(head)
- return processwords(a_shifted,data,flush_shifted,head)
-end
+local process = nodes.processwords
+
+nodes.shifts.handler = function(head) return process(a_shifted,data,flush_shifted,head) end
function nodes.shifts.enable()
enableaction("shipouts","nodes.shifts.handler")
@@ -461,7 +459,7 @@ local function linefiller(current,data,width,location)
local ca = data.ca
local ta = data.ta
if mp and mp ~= "" then
- return usernutrule {
+ return tonut(userrule {
width = width,
height = height,
depth = depth,
@@ -472,56 +470,18 @@ local function linefiller(current,data,width,location)
ca = ca,
ta = ta,
option = location,
- direction = getdirection(current),
- }
+ direction = getdir(current),
+ })
else
- local rule = new_rule(width,height,depth)
+ local linefiller = new_rule(width,height,depth)
if ca then
- setattr(rule,a_colorspace,ma)
- setattr(rule,a_color,ca)
+ setattr(linefiller,a_colorspace,ma)
+ setattr(linefiller,a_color,ca)
end
if ta then
- setattr(rule,a_transparency,ta)
- end
- return rule
- end
-end
-
-function nodes.linefillers.filler(current,data,width,height,depth)
- if width and width > 0 then
- local height = height or data.height or 0
- local depth = depth or data.depth or 0
- if (height + depth) ~= 0 then
- local mp = data.mp
- local ma = data.ma
- local ca = data.ca
- local ta = data.ta
- if mp and mp ~= "" then
- return usernutrule {
- width = width,
- height = height,
- depth = depth,
- type = "mp",
- line = data.rulethickness,
- data = mp,
- ma = ma,
- ca = ca,
- ta = ta,
- option = location,
- direction = getdirection(current),
- }
- else
- local rule = new_rule(width,height,depth)
- if ca then
- setattr(rule,a_colorspace,ma)
- setattr(rule,a_color,ca)
- end
- if ta then
- setattr(rule,a_transparency,ta)
- end
- return rule
- end
+ setattr(linefiller,a_transparency,ta)
end
+ return linefiller
end
end
@@ -536,115 +496,119 @@ local function find_attr(head,attr)
end
function nodes.linefillers.handler(head)
- for current, subtype, list in nexthlist, head do
- if list and subtype == linelist_code then
- -- why doesn't leftskip take the attributes
- -- or list[linefiller] or maybe first match (maybe we need a fast helper for that)
- local a = getattr(current,a_linefiller)
- if a then
- local class = a % 1000
- local data = data[class]
- if data then
- local location = data.location
- local scope = data.scope
- local distance = data.distance
- local threshold = data.threshold
- local leftlocal = false
- local rightlocal = false
- --
- if scope == v_right then
- leftlocal = true
- elseif scope == v_left then
- rightlocal = true
- elseif scope == v_local then
- leftlocal = true
- rightlocal = true
- end
- --
- if location == v_left or location == v_both then
- local lskip = nil -- leftskip
- local iskip = nil -- indentation
- local head = list
- while head do
- local id = getid(head)
- if id == glue_code then
- if getsubtype(head) == leftskip_code then
- lskip = head
+-- local current = tonut(head) -- when we hook into the contributers
+ for current in traverse_id(hlist_code,tonut(head)) do
+ if getsubtype(current) == line_code then
+ local list = getlist(current)
+ if list then
+ -- why doesn't leftskip take the attributes
+ -- or list[linefiller] or maybe first match (maybe we need a fast helper for that)
+ local a = getattr(current,a_linefiller)
+ if a then
+ local class = a % 1000
+ local data = data[class]
+ if data then
+ local location = data.location
+ local scope = data.scope
+ local distance = data.distance
+ local threshold = data.threshold
+ local leftlocal = false
+ local rightlocal = false
+ --
+ if scope == v_right then
+ leftlocal = true
+ elseif scope == v_left then
+ rightlocal = true
+ elseif scope == v_local then
+ leftlocal = true
+ rightlocal = true
+ end
+ --
+ if location == v_left or location == v_both then
+ local lskip = nil -- leftskip
+ local iskip = nil -- indentation
+ local head = list
+ while head do
+ local id = getid(head)
+ if id == glue_code then
+ if getsubtype(head) == leftskip_code then
+ lskip = head
+ else
+ break
+ end
+ elseif id == localpar_code or id == dir_code then
+ -- go on
+ elseif id == hlist_code then
+ if getsubtype(head) == indent_code then
+ iskip = head
+ end
+ break
else
break
end
- elseif id == localpar_code or id == dir_code then
- -- go on
- elseif id == hlist_code then
- if getsubtype(head) == indentlist_code then
- iskip = head
- end
- break
- else
- break
+ head = getnext(head)
end
- head = getnext(head)
- end
- if head then
- local indentation = iskip and getwidth(iskip) or 0
- local leftfixed = lskip and getwidth(lskip) or 0
- local lefttotal = lskip and effective_glue(lskip,current) or 0
- local width = lefttotal - (leftlocal and leftfixed or 0) + indentation - distance
- if width > threshold then
- if iskip then
- setwidth(iskip,0)
- end
- if lskip then
- setglue(lskip,leftlocal and getwidth(lskip) or nil)
- if distance > 0 then
- insert_node_after(list,lskip,new_kern(distance))
+ if head then
+ local indentation = iskip and getwidth(iskip) or 0
+ local leftfixed = lskip and getwidth(lskip) or 0
+ local lefttotal = lskip and effective_glue(lskip,current) or 0
+ local width = lefttotal - (leftlocal and leftfixed or 0) + indentation - distance
+ if width > threshold then
+ if iskip then
+ setwidth(iskip,0)
end
- insert_node_after(list,lskip,linefiller(current,data,width,"left"))
- else
- insert_node_before(list,head,linefiller(current,data,width,"left"))
- if distance > 0 then
- insert_node_before(list,head,new_kern(distance))
+ if lskip then
+ setglue(lskip,leftlocal and getwidth(lskip) or nil)
+ if distance > 0 then
+ insert_node_after(list,lskip,new_kern(distance))
+ end
+ insert_node_after(list,lskip,linefiller(current,data,width,"left"))
+ else
+ insert_node_before(list,head,linefiller(current,data,width,"left"))
+ if distance > 0 then
+ insert_node_before(list,head,new_kern(distance))
+ end
end
end
end
end
- end
- --
- if location == v_right or location == v_both then
- local pskip = nil -- parfillskip
- local rskip = nil -- rightskip
- local tail = find_tail(list)
- while tail and getid(tail) == glue_code do
- local subtype = getsubtype(tail)
- if subtype == rightskip_code then
- rskip = tail
- elseif subtype == parfillskip_code then
- pskip = tail
- else
- break
- end
- tail = getprev(tail)
- end
- if tail then
- local rightfixed = rskip and getwidth(rskip) or 0
- local righttotal = rskip and effective_glue(rskip,current) or 0
- local parfixed = pskip and getwidth(pskip) or 0
- local partotal = pskip and effective_glue(pskip,current) or 0
- local width = righttotal - (rightlocal and rightfixed or 0) + partotal - distance
- if width > threshold then
- if pskip then
- setglue(pskip)
+ --
+ if location == v_right or location == v_both then
+ local pskip = nil -- parfillskip
+ local rskip = nil -- rightskip
+ local tail = find_tail(list)
+ while tail and getid(tail) == glue_code do
+ local subtype = getsubtype(tail)
+ if subtype == rightskip_code then
+ rskip = tail
+ elseif subtype == parfillskip_code then
+ pskip = tail
+ else
+ break
end
- if rskip then
- setglue(rskip,rightlocal and getwidth(rskip) or nil)
- if distance > 0 then
- insert_node_before(list,rskip,new_kern(distance))
+ tail = getprev(tail)
+ end
+ if tail then
+ local rightfixed = rskip and getwidth(rskip) or 0
+ local righttotal = rskip and effective_glue(rskip,current) or 0
+ local parfixed = pskip and getwidth(pskip) or 0
+ local partotal = pskip and effective_glue(pskip,current) or 0
+ local width = righttotal - (rightlocal and rightfixed or 0) + partotal - distance
+ if width > threshold then
+ if pskip then
+ setglue(pskip)
end
- insert_node_before(list,rskip,linefiller(current,data,width,"right"))
- else
- insert_node_after(list,tail,linefiller(current,data,width,"right"))
- if distance > 0 then
- insert_node_after(list,tail,new_kern(distance))
+ if rskip then
+ setglue(rskip,rightlocal and getwidth(rskip) or nil)
+ if distance > 0 then
+ insert_node_before(list,rskip,new_kern(distance))
+ end
+ insert_node_before(list,rskip,linefiller(current,data,width,"right"))
+ else
+ insert_node_after(list,tail,linefiller(current,data,width,"right"))
+ if distance > 0 then
+ insert_node_after(list,tail,new_kern(distance))
+ end
end
end
end
@@ -744,35 +708,3 @@ implement {
onlyonce = true,
actions = nodes.linefillers.enable
}
-
--- We add a bonus feature here:
-
-interfaces.implement {
- name = "autorule",
- arguments = {
- {
- { "width", "dimension" },
- { "height", "dimension" },
- { "depth", "dimension" },
- { "left", "dimension" },
- { "right", "dimension" },
- },
- },
- actions = function(t)
- local l = t.left
- local r = t.right
- local n = new_rule(
- t.width,
- t.height,
- t.depth
- )
- setattrlist(n,true)
- if l then
- setfield(n,"left",l)
- end
- if r then
- setfield(n,"right",r)
- end
- context(tonode(n))
- end
-}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-rul.mkiv b/Master/texmf-dist/tex/context/base/mkiv/node-rul.mkiv
index 19f398eb900..643e93c428d 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-rul.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-rul.mkiv
@@ -71,7 +71,7 @@
%definesystemattribute[ruled]
%definesystemattribute[shifted]
-\registerctxluafile{node-rul}{optimize}
+\registerctxluafile{node-rul}{}
\installcorenamespace{bar}
\installcorenamespace{barindex}
@@ -146,8 +146,6 @@
{\node_rules_set{#1}\barparameter\c!left}%
{\relax\barparameter\c!right}}
-% store in properties
-
\unexpanded\def\node_rules_set#1% maybe reverse the 1000 (also maybe use more attributes instead of settings)
{\edef\currentbar{#1}%
\usebarstyleandcolor\c!foregroundstyle\c!foregroundcolor
@@ -573,39 +571,4 @@
\c!distance=.25\emwidth,
\c!rulethickness=.25\exheight]
-%D Bonus:
-%D
-%D \starttyping
-%D \startuseMPgraphic{foo}
-%D fill unitsquare
-%D xyscaled (RuleWidth,RuleHeight+RuleDepth) enlarged (ExHeight/4,ExHeight/8)
-%D shifted (-ExHeight/8,ExHeight/16)
-%D withcolor RuleColor ;
-%D \stopuseMPgraphic
-%D
-%D \definelinefiller[foo][mp=foo,color=darkred]
-%D
-%D \linefillerhbox[foo]{OEPS}
-%D \stoptyping
-
-\unexpanded\def\node_backgrounds_filler_box#1#2[#3]%
- {\bgroup
- \clf_enablebackgroundboxes
- \dowithnextbox{%
- \node_linefiller_set{#3}% already sets the attribute
- #1%
- attr \backgroundattribute \plusone
- % attr \linefillerattribute \the\attribute\linefillerattribute
- {\box\nextbox}%
- \egroup}%
- #2}
-
-\unexpanded\def\linefillerhbox{\node_backgrounds_filler_box\hpack\hbox}
-\unexpanded\def\linefillervbox{\node_backgrounds_filler_box\vpack\vbox}
-\unexpanded\def\linefillervtop{\node_backgrounds_filler_box\tpack\vtop}
-
-%D Bonus:
-
-\unexpanded\def\autorule{\clf_autorule}
-
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-scn.lua b/Master/texmf-dist/tex/context/base/mkiv/node-scn.lua
index a40a5271a9e..b294b30131d 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-scn.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-scn.lua
@@ -12,6 +12,8 @@ local attributes = attributes
local nodes = nodes
local nuts = nodes.nuts
+local tonode = nuts.tonode
+local tonut = nuts.tonut
local getnext = nuts.getnext
local getprev = nuts.getprev
@@ -24,8 +26,9 @@ local setlist = nuts.setlist
local end_of_math = nuts.end_of_math
local nodecodes = nodes.nodecodes
-local leadercodes = nodes.leadercodes
+local rulecodes = nodes.rulecodes
local gluecodes = nodes.gluecodes
+local listcodes = nodes.listcodes
local kerncodes = nodes.kerncodes
local glyph_code = nodecodes.glyph
@@ -43,8 +46,7 @@ local vlist_code = nodecodes.vlist
local userskip_code = gluecodes.userskip
local spaceskip_code = gluecodes.spaceskip
local xspaceskip_code = gluecodes.xspaceskip
-
-local leaders_code = leadercodes.leaders
+local leader_code = gluecodes.leaders
local fontkern_code = kerncodes.fontkern
@@ -95,7 +97,7 @@ local function striprange(first,last) -- todo: dir
return first, last
end
-nuts.striprange = striprange
+nodes.striprange = striprange
-- todo: order and maybe other dimensions
@@ -203,7 +205,7 @@ local function processwords(attribute,data,flush,head,parent,skip) -- we have hl
elseif id == glue_code then
-- catch \underbar{a} \underbar{a} (subtype test is needed)
local subtype = getsubtype(n)
- if getattr(n,attribute) and (subtype == userskip_code or subtype == spaceskip_code or subtype == xspaceskip_code or (leaders and subtype >= leaders_code)) then
+ if getattr(n,attribute) and (subtype == userskip_code or subtype == spaceskip_code or subtype == xspaceskip_code or (leaders and subtype >= leader_code)) then
l = n
else
head, done = flush(head,f,l,d,level,parent,strip), true
@@ -226,11 +228,17 @@ local function processwords(attribute,data,flush,head,parent,skip) -- we have hl
end
end
-nuts.processwords = function(attribute,data,flush,head,parent) -- we have hlistdir and local dir
- return processwords(attribute,data,flush,head,parent)
+nodes.processwords = function(attribute,data,flush,head,parent) -- we have hlistdir and local dir
+ head = tonut(head)
+ if parent then
+ parent = tonut(parent)
+ end
+ local head, done = processwords(attribute,data,flush,head,parent)
+ return tonode(head), done
end
-- works on lines !
+
-- todo: stack because skip can change when nested
local function processranges(attribute,flush,head,parent,depth,skip)
@@ -311,6 +319,11 @@ local function processranges(attribute,flush,head,parent,depth,skip)
end
end
-nuts.processranges = function(attribute,flush,head,parent) -- we have hlistdir and local dir
- return processranges(attribute,flush,head,parent,0)
+nodes.processranges = function(attribute,flush,head,parent) -- we have hlistdir and local dir
+ head = tonut(head)
+ if parent then
+ parent = tonut(parent)
+ end
+ local head, done = processranges(attribute,flush,head,parent,0)
+ return tonode(head), done
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-ser.lua b/Master/texmf-dist/tex/context/base/mkiv/node-ser.lua
index 6fc2b7ea4cf..7ed2b8d00d8 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-ser.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-ser.lua
@@ -9,7 +9,7 @@ if not modules then modules = { } end modules ['node-ser'] = {
-- beware, some field names will change in a next releases
-- of luatex; this is pretty old code that needs an overhaul
-local type, tostring = type, tostring
+local type = type
local concat, tohash, sortedkeys, printtable, serialize = table.concat, table.tohash, table.sortedkeys, table.print, table.serialize
local formatters, format, rep = string.formatters, string.format, string.rep
@@ -24,17 +24,16 @@ local is_node = nodes.is_node
local nodecodes = nodes.nodecodes
local subtcodes = nodes.codes
+local noadcodes = nodes.noadcodes
local getfields = nodes.fields
local tonode = nodes.tonode
-local tonut = nodes.tonut
local hlist_code = nodecodes.hlist
local vlist_code = nodecodes.vlist
----- utfchar = utf.char
local f_char = formatters["%U"]
-local f_attr = formatters["<%i>"]
----- fontchars = { } table.setmetatableindex(fontchars,function(t,k) fontchars = fonts.hashes.characters return fontchars[k] end)
----- f_char = utilities.strings.chkuni -- formatters["%!chkuni!"]
@@ -88,7 +87,7 @@ local ignore = allocate ( tohash {
local dimension = allocate ( tohash {
"width", "height", "depth", "shift",
"stretch", "shrink",
- "xoffset", "yoffset",
+ "xoffset", "yoffset", "xadvance",
"surround",
"kern",
"box_left_width", "box_right_width"
@@ -146,7 +145,6 @@ local function totable(n,flat,verbose,noattributes) -- nicest: n,true,true,true
if ignore[v] then
-- skip
elseif noattributes and v == "attr" then
- tt[v] = f_attr(tonut(nv))
-- skip
elseif v == "prev" then
tt[v] = "<node>"
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-shp.lua b/Master/texmf-dist/tex/context/base/mkiv/node-shp.lua
index 306e38f6a58..2e7a3529a54 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-shp.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-shp.lua
@@ -13,51 +13,50 @@ local format = string.format
local concat, sortedpairs = table.concat, table.sortedpairs
local setmetatableindex = table.setmetatableindex
-local nodecodes = nodes.nodecodes
-local whatsitcodes = nodes.whatsitcodes
-local disccodes = nodes.disccodes
+local nodecodes = nodes.nodecodes
+local whatsitcodes = nodes.whatsitcodes
+local disccodes = nodes.disccodes
-local tasks = nodes.tasks
-local handlers = nodes.handlers
+local tasks = nodes.tasks
+local handlers = nodes.handlers
-local hlist_code = nodecodes.hlist
-local vlist_code = nodecodes.vlist
-local disc_code = nodecodes.disc
-local whatsit_code = nodecodes.whatsit
+local hlist_code = nodecodes.hlist
+local vlist_code = nodecodes.vlist
+local disc_code = nodecodes.disc
+local whatsit_code = nodecodes.whatsit
-local discretionarydisc_code = disccodes.discretionary
+local fulldisc_code = disccodes.discretionary
-local implement = interfaces.implement
+local texgetbox = tex.getbox
-local nuts = nodes.nuts
-local tonut = nuts.tonut
-local tonode = nuts.tonode
-local remove_node = nuts.remove
+local implement = interfaces.implement
-local nextnode = nuts.traversers.node
+local nuts = nodes.nuts
+local tonut = nuts.tonut
+local tonode = nuts.tonode
+local remove_node = nuts.remove
+local traverse_nodes = nuts.traverse
-local setfield = nuts.setfield
-local setlink = nuts.setlink
-local setprev = nuts.setprev
-local setnext = nuts.setnext
-local getid = nuts.getid
-local getdisc = nuts.getdisc
-local getboth = nuts.getboth
-local getnext = nuts.getnext
-local getlist = nuts.getlist
-local getsubtype = nuts.getsubtype
+local setfield = nuts.setfield
+local setlink = nuts.setlink
+local setprev = nuts.setprev
+local setnext = nuts.setnext
+local getid = nuts.getid
+local getdisc = nuts.getdisc
+local getboth = nuts.getboth
+local getnext = nuts.getnext
+local getlist = nuts.getlist
+local getsubtype = nuts.getsubtype
-local setlist = nuts.setlist
+local setlist = nuts.setlist
-local getbox = nuts.getbox
-
-local removables = {
+local removables = {
[whatsitcodes.open] = true,
[whatsitcodes.close] = true,
[whatsitcodes.write] = true,
[whatsitcodes.savepos] = true,
[whatsitcodes.latelua] = true,
- -- [whatsitcodes.pdfdest] = true,
+ [whatsitcodes.pdfdest] = true,
}
-- About 10% of the nodes make no sense for the backend. By (at least)
@@ -73,7 +72,7 @@ local function cleanup_redundant(head) -- better name is: flatten_page
while start do
local id = getid(start)
if id == disc_code then
- if getsubtype(start) == discretionarydisc_code then
+ if getsubtype(start) == fulldisc_code then
local _, _, replace, _, _ tail = getdisc(start,true)
if replace then
local prev, next = getboth(start)
@@ -118,8 +117,6 @@ local function cleanup_redundant(head) -- better name is: flatten_page
return head
end
-handlers.cleanuppage = cleanup_redundant -- nut
-
local function cleanup_flushed(head) -- rough
local start = head
while start do
@@ -146,20 +143,26 @@ local function cleanup_flushed(head) -- rough
return head
end
-function handlers.cleanupbox(box)
- cleanup_flushed(getbox(box))
+function handlers.cleanuppage(head)
+ return tonode(cleanup_redundant(tonut(head))), true
+end
+
+function handlers.cleanupbox(head)
+ return tonode(cleanup_flushed(tonut(head))), true
end
local actions = tasks.actions("shipouts")
-function handlers.finalizebox(box)
- actions(getbox(box)) -- nut
+function handlers.finalize(head,where) -- problem, attr loaded before node, todo ...
+ return actions(head,where)
end
+-- handlers.finalize = actions
+
-- interface
-implement { name = "cleanupbox", actions = handlers.cleanupbox, arguments = "integer" }
-implement { name = "finalizebox", actions = handlers.finalizebox, arguments = "integer" }
+implement { name = "cleanupbox", actions = { texgetbox, cleanup_flushed }, arguments = "integer" }
+implement { name = "finalizebox", actions = { texgetbox, actions }, arguments = "integer" }
-- just in case we want to optimize lookups:
@@ -189,7 +192,8 @@ local function count(head,data,subcategory)
-- no components, pre, post, replace .. can maybe an option .. but
-- we use this for optimization so it makes sense to look the the
-- main node only
- for n, id in nextnode, tonut(head) do
+ for n in traverse_nodes(tonut(head)) do
+ local id = getid(n)
local dn = data[nodecodes[id]] -- we could use id and then later convert to nodecodes
dn[subcategory] = dn[subcategory] + 1
if id == hlist_code or id == vlist_code then
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-syn.lua b/Master/texmf-dist/tex/context/base/mkiv/node-syn.lua
index a00dc65ec53..9d716c44a52 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-syn.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-syn.lua
@@ -24,16 +24,7 @@ if not modules then modules = { } end modules ['node-syn'] = {
-- I only tested SumatraPDF with SciTE, for which one needs to configure in the
-- viewer:
--
--- InverseSearchCmdLine = c:\data\system\scite\wscite\scite.exe "%f" "-goto:%l" $
---
--- In fact, a way more powerful implementation would have been not to add a library
--- to a viewer, but letthe viewer call an external program:
---
--- InverseSearchCmdLine = mtxrun.exe --script synctex --edit --name="%f" --line="%l" $
---
--- which would (re)launch the editor in the right spot. That way we can really
--- tune well to the macro package used and also avoid the fuzzy heuristics of
--- the library.
+-- InverseSearchCmdLine = c:\data\system\scite\wscite\scite.exe "%f" "-goto:%l" $
--
-- Unfortunately syntex always removes the files at the end and not at the start
-- (this happens in synctexterminate) so we need to work around that by using an
@@ -133,9 +124,10 @@ local openfile, renamefile, removefile = io.open, os.rename, os.remove
local report_system = logs.reporter("system")
local tex = tex
-local texget = tex.get
local nuts = nodes.nuts
+local tonut = nuts.tonut
+local tonode = nuts.tonode
local getid = nuts.getid
local getlist = nuts.getlist
@@ -176,9 +168,14 @@ local set_synctex_tag = tex.set_synctex_tag
local force_synctex_tag = tex.force_synctex_tag
local force_synctex_line = tex.force_synctex_line
----- get_synctex_tag = tex.get_synctex_tag
-local get_synctex_line = tex.get_synctex_line
+----- get_synctex_line = tex.get_synctex_line
local set_synctex_mode = tex.set_synctex_mode
+local getpos = function()
+ getpos = backends.codeinjections.getpos
+ return getpos()
+ end
+
local foundintree = resolvers.foundintree
local eol = "\010"
@@ -202,8 +199,6 @@ local f_vlist_2 = formatters["v%i,%i:%i,%s:%i,%i,%i\010"]
local synctex = luatex.synctex or { }
luatex.synctex = synctex
-local getpos ; getpos = function() getpos = job.positions.getpos return getpos() end
-
-- status stuff
local enabled = false
@@ -273,34 +268,6 @@ function synctex.resetfilename()
end
end
-do
-
- local nesting = 0
- local ignored = false
-
- function synctex.pushline()
- nesting = nesting + 1
- if nesting == 1 then
- local l = get_synctex_line()
- ignored = l and l > 0
- if not ignored then
- force_synctex_line(texget("inputlineno"))
- end
- end
- end
-
- function synctex.popline()
- if nesting == 1 then
- if not ignored then
- force_synctex_line()
- ignored = false
- end
- end
- nesting = nesting - 1
- end
-
-end
-
-- the node stuff
local filehandle = nil
@@ -357,7 +324,6 @@ end
function synctex.wrapup()
if tmpfile then
renamefile(tmpfile,logfile)
- tmpfile = nil
end
end
@@ -374,15 +340,9 @@ local function flushpostamble()
enabled = false
end
-local getpagedimensions getpagedimensions = function()
- getpagedimensions = backends.codeinjections.getpagedimensions
- return getpagedimensions()
-end
-
-- local function doaction(action,t,l,w,h,d)
--- local pagewidth, pageheight = getpagedimensions()
-- local x, y = getpos()
--- filehandle:write(action(t,l,x,pageheight-y,w,h,d))
+-- filehandle:write(action(t,l,x,tex.pageheight-y,w,h,d))
-- nofobjects = nofobjects + 1
-- end
--
@@ -418,27 +378,24 @@ end
-- generic
--
-- local function doaction(t,l,w,h,d)
--- local pagewidth, pageheight = getpagedimensions()
-- local x, y = getpos()
--- filehandle:write(f_hlist_1(t,l,x,pageheight-y,w,h,d))
+-- filehandle:write(f_hlist_1(t,l,x,tex.pageheight-y,w,h,d))
-- nofobjects = nofobjects + 1
-- end
local x_hlist do
local function doaction_1(t,l,w,h,d)
- local pagewidth, pageheight = getpagedimensions()
local x, y = getpos()
- filehandle:write(f_hlist_1(t,l,x,pageheight-y,w,h,d))
+ filehandle:write(f_hlist_1(t,l,x,tex.pageheight-y,w,h,d))
nofobjects = nofobjects + 1
end
-- local lastx, lasty, lastw, lasth, lastd
--
-- local function doaction_2(t,l,w,h,d)
- -- local pagewidth, pageheight = getpagedimensions()
-- local x, y = getpos()
- -- y = pageheight-y
+ -- y = tex.pageheight-y
-- filehandle:write(f_hlist_2(t,l,
-- x == lastx and "=" or x,
-- y == lasty and "=" or y,
@@ -455,9 +412,8 @@ local x_hlist do
local lasty = false
local function doaction_2(t,l,w,h,d)
- local pagewidth, pageheight = getpagedimensions()
local x, y = getpos()
- y = pageheight - y
+ y = tex.pageheight - y
filehandle:write(f_hlist_2(t,l,x,y == lasty and "=" or y,w,h,d))
lasty = y
nofobjects = nofobjects + 1
@@ -667,10 +623,16 @@ end
collect = collect_max
function synctex.collect(head,where)
- if enabled and where ~= "object" then
- return collect(head,head)
+ if enabled then
+ if where == "object" then
+ return head, false
+ else
+ local h = tonut(head)
+ h = collect(h,h)
+ return tonode(h), true
+ end
else
- return head
+ return head, false
end
end
@@ -683,9 +645,10 @@ function synctex.start()
writeanchor()
filehandle:write("{",nofsheets,eol)
-- this seems to work:
- local pagewidth, pageheight = getpagedimensions()
+ local h = tex.pageheight
+ local w = tex.pagewidth
filehandle:write(z_hlist)
- filehandle:write(f_vlist_1(0,0,0,pageheight,pagewidth,pageheight,0))
+ filehandle:write(f_vlist_1(0,0,0,h,w,h,0))
end
end
end
@@ -715,7 +678,7 @@ function synctex.enable()
enabled = true
set_synctex_mode(3) -- we want details
if not used then
- nodes.tasks.enableaction("shipouts","luatex.synctex.collect")
+ nodes.tasks.appendaction("shipouts", "after", "luatex.synctex.collect")
report_system("synctex functionality is enabled, expect 5-10 pct runtime overhead!")
used = true
end
@@ -823,21 +786,11 @@ implement {
}
implement {
- name = "synctexpause",
- actions = synctex.pause,
+ name = "synctexpause",
+ actions = synctex.pause,
}
implement {
- name = "synctexresume",
- actions = synctex.resume,
-}
-
-interfaces.implement {
- name = "synctexpushline",
- actions = synctex.pushline,
-}
-interfaces.implement {
- name = "synctexpopline",
- actions = synctex.popline,
+ name = "synctexresume",
+ actions = synctex.resume,
}
-
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-tex.lua b/Master/texmf-dist/tex/context/base/mkiv/node-tex.lua
index 5857fd2e65b..c9d3091df23 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-tex.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-tex.lua
@@ -6,40 +6,33 @@ if not modules then modules = { } end modules ['node-tex'] = {
license = "see context related readme files"
}
-builders = builders or { }
-local kernel = builders.kernel or { }
-builders.kernel = kernel
-
-local nuts = nodes.nuts
-
-local hyphenate = lang.hyphenate
-local hyphenating = nuts.hyphenating
-local ligaturing = nuts.ligaturing
-local kerning = nuts.kerning
-local cleanup = nuts.flush_components
+builders = builders or { }
+local kernel = builders.kernel or { }
+builders.kernel = kernel
+
+local hyphenate = lang.hyphenate
+local ligaturing = node.ligaturing
+local kerning = node.kerning
+
+kernel.originals = {
+ hyphenate = hyphenate,
+ ligaturing = ligaturing,
+ kerning = kerning,
+}
function kernel.hyphenation(head)
- return (hyphenate(head)) -- nodes !
-end
-
-function kernel.hyphenating(head)
- return (hyphenating(head))
+ local done = hyphenate(head)
+ return head, done
end
function kernel.ligaturing(head)
- return (ligaturing(head))
+ local head, tail, done = ligaturing(head) -- we return 3 values indeed
+ return head, done
end
function kernel.kerning(head)
- return (kerning(head))
-end
-
-if cleanup then
-
- function kernel.cleanup(head)
- return (cleanup(head))
- end
-
+ local head, tail, done = kerning(head) -- we return 3 values indeed
+ return head, done
end
callbacks.register('hyphenate' , false, "normal hyphenation routine, called elsewhere")
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-tra.lua b/Master/texmf-dist/tex/context/base/mkiv/node-tra.lua
index e1b6927fbce..f1259986644 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-tra.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-tra.lua
@@ -21,67 +21,68 @@ local report_nodes = logs.reporter("nodes","tracing")
local nodes, node, context = nodes, node, context
-local texgetattribute = tex.getattribute
-
-local tracers = nodes.tracers or { }
-nodes.tracers = tracers
-
-local tasks = nodes.tasks or { }
-nodes.tasks = tasks
-
-local handlers = nodes.handlers or {}
-nodes.handlers = handlers
-
-local injections = nodes.injections or { }
-nodes.injections = injections
-
-local nuts = nodes.nuts
-local tonut = nuts.tonut
-local tonode = nuts.tonode
-
-local getnext = nuts.getnext
-local getprev = nuts.getprev
-local getid = nuts.getid
-local getsubtype = nuts.getsubtype
-local getlist = nuts.getlist
-local getdisc = nuts.getdisc
-local setattr = nuts.setattr
-local getglue = nuts.getglue
-local isglyph = nuts.isglyph
-local getdirection = nuts.getdirection
-local getwidth = nuts.getwidth
-
-local flush_list = nuts.flush_list
-local count_nodes = nuts.countall
-local used_nodes = nuts.usedlist
-
-local nextnode = nuts.traversers.node
-local nextglyph = nuts.traversers.glyph
-
-local d_tostring = nuts.tostring
-
-local nutpool = nuts.pool
-local new_rule = nutpool.rule
-
-local nodecodes = nodes.nodecodes
-local whatsitcodes = nodes.whatsitcodes
-local fillcodes = nodes.fillcodes
-
-local subtypes = nodes.subtypes
-
-local glyph_code = nodecodes.glyph
-local hlist_code = nodecodes.hlist
-local vlist_code = nodecodes.vlist
-local disc_code = nodecodes.disc
-local glue_code = nodecodes.glue
-local kern_code = nodecodes.kern
-local rule_code = nodecodes.rule
-local dir_code = nodecodes.dir
-local localpar_code = nodecodes.localpar
-local whatsit_code = nodecodes.whatsit
-
-local dimenfactors = number.dimenfactors
-local formatters = string.formatters
+local texgetattribute = tex.getattribute
+
+local tracers = nodes.tracers or { }
+nodes.tracers = tracers
+
+local tasks = nodes.tasks or { }
+nodes.tasks = tasks
+
+local handlers = nodes.handlers or {}
+nodes.handlers = handlers
+
+local injections = nodes.injections or { }
+nodes.injections = injections
+
+local nuts = nodes.nuts
+local tonut = nuts.tonut
+local tonode = nuts.tonode
+
+local getnext = nuts.getnext
+local getprev = nuts.getprev
+local getid = nuts.getid
+local getchar = nuts.getchar
+local getsubtype = nuts.getsubtype
+local getlist = nuts.getlist
+local getdisc = nuts.getdisc
+local setattr = nuts.setattr
+local getglue = nuts.getglue
+local isglyph = nuts.isglyph
+local getcomponents = nuts.getcomponents
+local getdir = nuts.getdir
+local getwidth = nuts.getwidth
+
+local flush_list = nuts.flush_list
+local count_nodes = nuts.countall
+local used_nodes = nuts.usedlist
+
+local traverse_by_id = nuts.traverse_id
+local traverse_nodes = nuts.traverse
+local d_tostring = nuts.tostring
+
+local nutpool = nuts.pool
+local new_rule = nutpool.rule
+
+local nodecodes = nodes.nodecodes
+local whatcodes = nodes.whatcodes
+local skipcodes = nodes.skipcodes
+local fillcodes = nodes.fillcodes
+
+local glyph_code = nodecodes.glyph
+local hlist_code = nodecodes.hlist
+local vlist_code = nodecodes.vlist
+local disc_code = nodecodes.disc
+local glue_code = nodecodes.glue
+local kern_code = nodecodes.kern
+local rule_code = nodecodes.rule
+local dir_code = nodecodes.dir
+local localpar_code = nodecodes.localpar
+local whatsit_code = nodecodes.whatsit
+
+local dimenfactors = number.dimenfactors
+local fillorders = nodes.fillcodes
+local formatters = string.formatters
-- this will be reorganized:
@@ -89,26 +90,23 @@ function nodes.showlist(head, message)
if message then
report_nodes(message)
end
- for n in nextnode, tonut(head) do
+ for n in traverse_nodes(tonut(head)) do
report_nodes(d_tostring(n))
end
end
function nodes.handlers.checkglyphs(head,message)
- local h = tonut(head) -- tonut needed?
+ local h = tonut(head)
local t = { }
- local n = 0
- local f = formatters["%U:%s"]
- for g, char, font in nextglyph, h do
- n = n + 1
- t[n] = f(char,getsubtype(g))
+ for g in traverse_by_id(glyph_code,h) do
+ t[#t+1] = formatters["%U:%s"](getchar(g),getsubtype(g))
end
- if n == 0 then
- -- nothing to report
- elseif message and message ~= "" then
- report_nodes("%s, %s glyphs: % t",message,n,t)
- else
- report_nodes("%s glyphs: % t",n,t)
+ if #t > 0 then
+ if message and message ~= "" then
+ report_nodes("%s, %s glyphs: % t",message,#t,t)
+ else
+ report_nodes("%s glyphs: % t",#t,t)
+ end
end
return false
end
@@ -116,8 +114,8 @@ end
function nodes.handlers.checkforleaks(sparse)
local l = { }
local q = used_nodes()
- for p, id in nextnode, q do
- local s = table.serialize(nodes.astable(p,sparse),nodecodes[id])
+ for p in traverse_nodes(q) do
+ local s = table.serialize(nodes.astable(p,sparse),nodecodes[getid(p)])
l[s] = (l[s] or 0) + 1
end
flush_list(q)
@@ -126,51 +124,42 @@ function nodes.handlers.checkforleaks(sparse)
end
end
-local fontcharacters -- = fonts.hashes.descriptions
+local f_sequence = formatters["U+%04X:%s"]
+local f_subrange = formatters["[[ %s ][ %s ][ %s ]]"]
local function tosequence(start,stop,compact)
if start then
- if not fontcharacters then
- fontcharacters = fonts.hashes.descriptions
- if not fontcharacters then
- return "[no char data]"
- end
- end
- local f_sequence = formatters["U+%04X:%s"]
- local f_subrange = formatters["[[ %s ][ %s ][ %s ]]"]
start = tonut(start)
stop = stop and tonut(stop)
local t = { }
- local n = 0
while start do
local c, id = isglyph(start)
if c then
- local u = fontcharacters[id][c] -- id == font id
- u = u and u.unicode or c
- if type(u) == "table" then
- local tt = { }
- for i=1,#u do
- local c = u[i]
- tt[i] = compact and utfchar(c) or f_sequence(c,utfchar(c))
+ if compact then
+ local components = getcomponents(start)
+ if components then
+ t[#t+1] = tosequence(components,nil,compact)
+ else
+ t[#t+1] = utfchar(c)
end
- n = n + 1 ; t[n] = "(" .. concat(tt," ") .. ")"
else
- n = n + 1 ; t[n] = compact and utfchar(c) or f_sequence(c,utfchar(c))
+ t[#t+1] = f_sequence(c,utfchar(c))
end
elseif id == disc_code then
local pre, post, replace = getdisc(start)
t[#t+1] = f_subrange(pre and tosequence(pre),post and tosequence(post),replace and tosequence(replace))
elseif id == rule_code then
- n = n + 1 ; t[n] = compact and "|" or nodecodes[id] or "?"
- elseif id == dir_code then
- local d, p = getdirection(start)
- n = n + 1 ; t[n] = "[<" .. (p and "-" or "+") .. d .. ">]" -- todo l2r etc
- elseif id == localpar_code and getsubtype(start) == 0 then
- n = n + 1 ; t[n] = "[<" .. getdirection(start) .. ">]" -- todo l2r etc
+ if compact then
+ t[#t+1] = "|"
+ else
+ t[#t+1] = nodecodes[id]
+ end
+ elseif id == dir_code or id == localpar_code then
+ t[#t+1] = "[" .. getdir(start) .. "]"
elseif compact then
- n = n + 1 ; t[n] = "[]"
+ t[#t+1] = "[]"
else
- n = n + 1 ; t[n] = nodecodes[id]
+ t[#t+1] = nodecodes[id]
end
if start == stop then
break
@@ -191,13 +180,13 @@ end
nodes.tosequence = tosequence
nuts .tosequence = tosequence
-function nodes.report(t)
- report_nodes("output %a, %s nodes",status.output_active,count_nodes(t))
+function nodes.report(t,done)
+ report_nodes("output %a, changed %a, %s nodes",status.output_active,done,count_nodes(tonut(t)))
end
function nodes.packlist(head)
local t = { }
- for n in nextnode, tonut(head) do
+ for n in traverse_nodes(tonut(head)) do
t[#t+1] = d_tostring(n)
end
return t
@@ -209,11 +198,10 @@ function nodes.idstostring(head,tail)
local t = { }
local last_id = nil
local last_n = 0
- local f_two = formatters["[%s*%s]"]
- local f_one = formatters["[%s]"]
- for n, id, subtype in nextnode, head do
+ for n in traverse_nodes(head,tail) do -- hm, does not stop at tail
+ local id = getid(n)
if id == whatsit_code then
- id = whatsitcodes[subtype]
+ id = whatcodes[getsubtype(n)]
else
id = nodecodes[id]
end
@@ -224,9 +212,9 @@ function nodes.idstostring(head,tail)
last_n = last_n + 1
else
if last_n > 1 then
- t[#t+1] = f_two(last_n,last_id)
+ t[#t+1] = formatters["[%s*%s]"](last_n,last_id)
else
- t[#t+1] = f_one(last_id)
+ t[#t+1] = formatters["[%s]"](last_id)
end
last_id = id
last_n = 1
@@ -239,29 +227,14 @@ function nodes.idstostring(head,tail)
t[#t+1] = "no nodes"
else
if last_n > 1 then
- t[#t+1] = f_two(last_n,last_id)
+ t[#t+1] = formatters["[%s*%s]"](last_n,last_id)
else
- t[#t+1] = f_one(last_id)
+ t[#t+1] = formatters["[%s]"](last_id)
end
end
return concat(t," ")
end
-function nodes.idsandsubtypes(head)
- local h = tonut(head)
- local t = { }
- local f = formatters["%s:%s"]
- for n, id, subtype in nextnode, h do
- local c = nodecodes[id]
- if subtype then
- t[#t+1] = f(c,subtypes[id][subtype])
- else
- t[#t+1] = c
- end
- end
- return concat(t, " ")
-end
-
-- function nodes.xidstostring(head,tail) -- only for special tracing of backlinks
-- head = tonut(head)
-- tail = tonut(tail)
@@ -326,19 +299,17 @@ nodes.showsimplelist = function(h,depth) showsimplelist(h,depth,0) end
local function listtoutf(h,joiner,textonly,last,nodisc)
local w = { }
local n = 0
- local g = formatters["<%i>"]
- local d = formatters["[%s|%s|%s]"]
while h do
local c, id = isglyph(h)
if c then
- n = n + 1 ; w[n] = c >= 0 and utfchar(c) or g(c)
+ n = n + 1 ; w[n] = c >= 0 and utfchar(c) or formatters["<%i>"](c)
if joiner then
n = n + 1 ; w[n] = joiner
end
elseif id == disc_code then
local pre, pos, rep = getdisc(h)
if not nodisc then
- n = n + 1 ; w[n] = d(
+ n = n + 1 ; w[n] = formatters["[%s|%s|%s]"] (
pre and listtoutf(pre,joiner,textonly) or "",
pos and listtoutf(pos,joiner,textonly) or "",
rep and listtoutf(rep,joiner,textonly) or ""
@@ -383,9 +354,11 @@ local what = { [0] = "unknown", "line", "box", "indent", "row", "cell" }
local function showboxes(n,symbol,depth)
depth = depth or 0
symbol = symbol or "."
- for n, id, subtype in nextnode, tonut(n) do
+ for n in traverse_nodes(tonut(n)) do
+ local id = getid(n)
if id == hlist_code or id == vlist_code then
- report_nodes(rep(symbol,depth) .. what[subtype] or subtype)
+ local s = getsubtype(n)
+ report_nodes(rep(symbol,depth) .. what[s] or s)
showboxes(getlist(n),symbol,depth+1)
end
end
@@ -428,17 +401,17 @@ local function nodetodimen(n)
width = width / 65536
if stretch_order ~= 0 then
if shrink_order ~= 0 then
- return f_f_f(width,stretch,fillcodes[stretch_order],shrink,fillcodes[shrink_order])
+ return f_f_f(width,stretch,fillorders[stretch_order],shrink,fillorders[shrink_order])
elseif shrink ~= 0 then
- return f_f_m(width,stretch,fillcodes[stretch_order],shrink)
+ return f_f_m(width,stretch,fillorders[stretch_order],shrink)
else
- return f_f_z(width,stretch,fillcodes[stretch_order])
+ return f_f_z(width,stretch,fillorders[stretch_order])
end
elseif shrink_order ~= 0 then
if stretch ~= 0 then
- return f_p_f(width,stretch,shrink,fillcodes[shrink_order])
+ return f_p_f(width,stretch,shrink,fillorders[shrink_order])
else
- return f_z_f(width,shrink,fillcodes[shrink_order])
+ return f_z_f(width,shrink,fillorders[shrink_order])
end
elseif stretch ~= 0 then
if shrink ~= 0 then
@@ -658,9 +631,6 @@ end
tracers.setproperties = setproperties
--- setting attrlist entries instead of attr for successive entries doesn't
--- speed up much (this function is only used in tracers anyway)
-
function tracers.setlist(n,c,s)
local nn = tonut(n)
local mc = m_color[c]
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-tsk.lua b/Master/texmf-dist/tex/context/base/mkiv/node-tsk.lua
index 0378c14c62a..1ce7ab1dc85 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-tsk.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-tsk.lua
@@ -52,21 +52,19 @@ end
function tasks.new(specification) -- was: name,arguments,list
local name = specification.name
+ local arguments = specification.arguments or 0
local sequence = specification.sequence
if name and sequence then
local tasklist = newsequencer {
- name = name
-- we can move more to the sequencer now .. todo
}
tasksdata[name] = {
- name = name,
list = tasklist,
runner = false,
+ arguments = arguments,
+ -- sequence = sequence,
frozen = { },
- processor = specification.processor or nodeprocessor,
- -- could be metatable but best freeze it
- arguments = specification.arguments or 0,
- templates = specification.templates,
+ processor = specification.processor or nodeprocessor
}
for l=1,#sequence do
appendgroup(tasklist,sequence[l])
@@ -172,26 +170,18 @@ function tasks.disablegroup(name,group)
end
end
-function tasks.appendaction(name,group,action,where,kind,state)
+function tasks.appendaction(name,group,action,where,kind)
local data = validgroup(name,"append action")
if data then
- local list = data.list
- appendaction(list,group,action,where,kind)
- if state == "disabled" or (state == "production" and environment.initex) then
- disableaction(list,action)
- end
+ appendaction(data.list,group,action,where,kind)
data.runner = false
end
end
-function tasks.prependaction(name,group,action,where,kind,state)
+function tasks.prependaction(name,group,action,where,kind)
local data = validgroup(name,"prepend action")
if data then
- local list = data.list
- prependaction(list,group,action,where,kind)
- if state == "disabled" or (state == "production" and environment.initex) then
- disableaction(list,action)
- end
+ prependaction(data.list,group,action,where,kind)
data.runner = false
end
end
@@ -226,29 +216,112 @@ statistics.register("node list callback tasks", function()
end
end)
-local function create(data,t)
- created = created + 1
- local runner = compile(data.list,data.processor,t)
- if trace_tasks then
- report_tasks("creating runner %a, %i actions enabled",t.name,data.list.steps or 0)
- end
- data.runner = runner
- return runner
-end
-
-function tasks.actions(name)
+function tasks.actions(name) -- we optimize for the number or arguments (no ...)
local data = tasksdata[name]
if data then
- local t = data.templates
- if t then
- t.name = data.name
- return function(...)
- total = total + 1
- return (data.runner or create(data,t))(...)
+ local n = data.arguments or 0
+ if n == 0 then
+ return function(head)
+ total = total + 1 -- will go away
+ local runner = data.runner
+ if not runner then
+ created = created + 1
+ if trace_tasks then
+ report_tasks("creating runner %a",name)
+ end
+ runner = compile(data.list,data.processor,0)
+ data.runner = runner
+ end
+ return runner(head)
+ end
+ elseif n == 1 then
+ return function(head,one)
+ total = total + 1 -- will go away
+ local runner = data.runner
+ if not runner then
+ created = created + 1
+ if trace_tasks then
+ report_tasks("creating runner %a with %s extra arguments",name,1)
+ end
+ runner = compile(data.list,data.processor,1)
+ data.runner = runner
+ end
+ return runner(head,one)
+ end
+ elseif n == 2 then
+ return function(head,one,two)
+ total = total + 1 -- will go away
+ local runner = data.runner
+ if not runner then
+ created = created + 1
+ if trace_tasks then
+ report_tasks("creating runner %a with %s extra arguments",name,2)
+ end
+ runner = compile(data.list,data.processor,2)
+ data.runner = runner
+ end
+ return runner(head,one,two)
+ end
+ elseif n == 3 then
+ return function(head,one,two,three)
+ total = total + 1 -- will go away
+ local runner = data.runner
+ if not runner then
+ created = created + 1
+ if trace_tasks then
+ report_tasks("creating runner %a with %s extra arguments",name,3)
+ end
+ runner = compile(data.list,data.processor,3)
+ data.runner = runner
+ end
+ return runner(head,one,two,three)
+ end
+ elseif n == 4 then
+ return function(head,one,two,three,four)
+ total = total + 1 -- will go away
+ local runner = data.runner
+ if not runner then
+ created = created + 1
+ if trace_tasks then
+ report_tasks("creating runner %a with %s extra arguments",name,4)
+ end
+ runner = compile(data.list,data.processor,4)
+ data.runner = runner
+ end
+ return runner(head,one,two,three,four)
+ end
+ elseif n == 5 then
+ return function(head,one,two,three,four,five)
+ total = total + 1 -- will go away
+ local runner = data.runner
+ if not runner then
+ created = created + 1
+ if trace_tasks then
+ report_tasks("creating runner %a with %s extra arguments",name,5)
+ end
+ runner = compile(data.list,data.processor,5)
+ data.runner = runner
+ end
+ return runner(head,one,two,three,four,five)
+ end
+ else
+ return function(head,...)
+ total = total + 1 -- will go away
+ local runner = data.runner
+ if not runner then
+ created = created + 1
+ if trace_tasks then
+ report_tasks("creating runner %a with %s extra arguments",name,n)
+ end
+ runner = compile(data.list,data.processor,"n")
+ data.runner = runner
+ end
+ return runner(head,...)
end
end
+ else
+ return nil
end
- return nil
end
function tasks.table(name) --maybe move this to task-deb.lua
@@ -278,132 +351,12 @@ function tasks.table(name) --maybe move this to task-deb.lua
end
end
--- -- shipouts everypar -- --
-
--- the shipout handlers acts on boxes so we don't need to return something
--- and also don't need to keep the state (done)
-
-local templates = {
-
-default = [[
-return function(head)
- return head
-end
-]],
-
-process = [[
-local tonut = nodes.tonut
-local tonode = nodes.nuts.tonode
-
-%localize%
-
-return function(head)
- local nuthead = tonut(head)
-
-%actions%
- return tonode(nuthead)
-end
-]],
-
-step = [[
- nuthead = tonut((%action%(tonode(nuthead))))
-]],
-
-nut = [[
- nuthead = %action%(nuthead)
-]],
-
-nohead = [[
- %action%(tonode(nuthead))
-]],
-
-nonut = [[
- %action%(nuthead)
-]],
-
-}
-
-tasks.new {
- name = "shipouts",
- processor = nodeprocessor,
- sequence = {
- "before", -- users
- "normalizers", -- system
- "finishers", -- system
- "after", -- users
- "wrapup", -- system
- },
- templates = templates
-}
-
-tasks.new {
- name = "everypar",
- processor = nodeprocessor,
- sequence = {
- "before", -- users
- "normalizers", -- system
- "after", -- users
- },
- templates = templates,
-}
-
--- -- finalizers -- --
-
-tasks.new {
- name = "finalizers",
- sequence = {
- "before", -- for users
- "normalizers",
- "fonts",
- "lists",
- "after", -- for users
- },
- processor = nodeprocessor,
- templates = {
-
-default = [[
-return function(head)
- return head
-end
-]],
-
-process = [[
-local tonut = nodes.tonut
-local tonode = nodes.nuts.tonode
-
-%localize%
-
-return function(head,groupcode)
- local nuthead = tonut(head)
-
-%actions%
- return tonode(nuthead)
-end
-]],
-
-step = [[
- nuthead = tonut((%action%(tonode(nuthead),groupcode)))
-]],
-
-nut = [[
- nuthead = %action%(nuthead,groupcode)
-]],
-
-nohead = [[
- %action%(tonode(nuthead),groupcode)
-]],
-
-nonut = [[
- %action%(nuthead,groupcode)
-]],
-
- }
-}
-
--- -- processors -- --
+-- this will move
tasks.new {
name = "processors",
+ arguments = 5, -- often only the first is used, and the last three are only passed in hpack filter
+-- arguments = 2,
processor = nodeprocessor,
sequence = {
"before", -- for users
@@ -413,297 +366,56 @@ tasks.new {
"fonts",
"lists",
"after", -- for users
- },
- templates = {
-
-default = [[
-return function(head)
- return head
-end
-]],
-
-process = [[
-local tonut = nodes.tonut
-local tonode = nodes.nuts.tonode
-
-%localize%
-
-return function(head,groupcode,size,packtype,direction,attributes)
- local nuthead = tonut(head)
-
-%actions%
- return tonode(nuthead)
-end
-]],
-
-step = [[
- nuthead = tonut((%action%(tonode(nuthead),groupcode,size,packtype,direction,attributes)))
-]],
-
-nut = [[
- nuthead = %action%(nuthead,groupcode,size,packtype,direction,attributes)
-]],
-
-nohead = [[
- %action%(tonode(nuthead),groupcode,size,packtype,direction,attributes)
-]],
-
-nonut = [[
- %action%(nuthead,groupcode,size,packtype,direction,attributes)
-]],
-
}
}
tasks.new {
name = "finalizers",
+ arguments = 1,
processor = nodeprocessor,
sequence = {
"before", -- for users
"normalizers",
+-- "characters",
+-- "finishers",
"fonts",
"lists",
"after", -- for users
- },
- templates = {
-
-default = [[
-return function(head)
- return head
-end
-]],
-
-process = [[
-local tonut = nodes.tonut
-local tonode = nodes.nuts.tonode
-
-%localize%
-
-return function(head)
- local nuthead = tonut(head)
-
-%actions%
- return tonode(nuthead)
-end
-]],
-
-step = [[
- nuthead = tonut((%action%(tonode(nuthead))))
-]],
-
-nut = [[
- nuthead = %action%(nuthead)
-]],
-
-nohead = [[
- %action%(tonode(nuthead))
-]],
-
-nonut = [[
- %action%(nuthead)
-]],
-
}
}
tasks.new {
- name = "mvlbuilders",
+ name = "shipouts",
+ arguments = 1,
+ -- nostate = true, -- maybe but only for main ones so little gain
processor = nodeprocessor,
sequence = {
"before", -- for users
"normalizers",
+ "finishers",
"after", -- for users
- },
- templates = {
-
-default = [[
-return function(head)
- return head
-end
-]],
-
-process = [[
-local tonut = nodes.tonut
-local tonode = nodes.nuts.tonode
-
-%localize%
-
-return function(head,groupcode)
- local nuthead = tonut(head)
-
-%actions%
- return tonode(nuthead)
-end
-]],
-
-step = [[
- nuthead = tonut((%action%(tonode(nuthead),groupcode)))
-]],
-
-nut = [[
- nuthead = %action%(nuthead,groupcode)
-]],
-
-nohead = [[
- %action%(tonode(nuthead),groupcode)
-]],
-
-nonut = [[
- %action%(nuthead,groupcode)
-]],
-
}
}
tasks.new {
- name = "vboxbuilders",
+ name = "mvlbuilders",
+ arguments = 1,
processor = nodeprocessor,
sequence = {
"before", -- for users
"normalizers",
"after", -- for users
- },
- templates = {
-
-default = [[
-return function(head)
- return head
-end
-]],
-
-process = [[
-local tonut = nodes.tonut
-local tonode = nodes.nuts.tonode
-
-%localize%
-
-return function(head,groupcode,size,packtype,maxdepth,direction)
- local nuthead = tonut(head)
-
-%actions%
- return tonode(nuthead)
-end
-]],
-
-step = [[
- nuthead = tonut((%action%(tonode(nuthead),groupcode,size,packtype,maxdepth,direction)))
-]],
-
-nut = [[
- nuthead = %action%(nuthead,groupcode,size,packtype,maxdepth,direction)
-]],
-
-nohead = [[
- %action%(tonode(nuthead),groupcode,size,packtype,maxdepth,direction)
-]],
-
-nonut = [[
- %action%(nuthead,groupcode,size,packtype,maxdepth,direction)
-]],
-
}
-
}
tasks.new {
- name = "contributers",
+ name = "vboxbuilders",
+ arguments = 5,
processor = nodeprocessor,
sequence = {
"before", -- for users
"normalizers",
"after", -- for users
- },
- templates = {
-
-default = [[
-return function(head)
- return head
-end
-]],
-
-process = [[
-local tonut = nodes.tonut
-local tonode = nodes.nuts.tonode
-
-%localize%
-
-return function(head,groupcode,line)
- local nuthead = tonut(head)
- local nutline = tonut(line)
-
-%actions%
- return tonode(nuthead)
-end
-]],
-
-step = [[
- nuthead = tonut((%action%(tonode(nuthead),groupcode,line)))
-]],
-
-nut = [[
- nuthead = %action%(nuthead,groupcode,nutline)
-]],
-
-nohead = [[
- %action%(tonode(nuthead),groupcode,line)
-]],
-
-nonut = [[
- %action%(nuthead,groupcode,nutline)
-]],
-
- }
-}
-
--- -- math -- --
-
-tasks.new {
- name = "math",
- processor = nodeprocessor,
- sequence = {
- "before",
- "normalizers",
- "builders",
- "after",
- },
- templates = {
-
-default = [[
-return function(head)
- return head
-end
-]],
-
-process = [[
-local tonut = nodes.tonut
-local tonode = nodes.nuts.tonode
-
-%localize%
-
-return function(head,style,penalties)
- local nuthead = tonut(head)
-
-%actions%
- return tonode(nuthead)
-end
-]],
-
-step = [[
- nuthead = tonut((%action%(tonode(nuthead),style,penalties)))
-]],
-
-nut = [[
- nuthead = %action%(nuthead,style,penalties)
-]],
-
-nohead = [[
- %action%(tonode(nuthead),style,penalties)
-]],
-
-nonut = [[
- %action%(nuthead,style,penalties)
-]],
-
}
}
@@ -729,69 +441,14 @@ nonut = [[
-- }
-- }
--- for now quite useless (too fuzzy)
---
--- tasks.new {
--- name = "listbuilders",
--- processor = nodeprocessor,
--- sequence = {
--- "before", -- for users
--- "normalizers",
--- "after", -- for users
--- },
--- templates = {
--- -- we don't need a default
--- default = [[
--- return function(box,location,prevdepth)
--- return box, prevdepth
--- end
--- ]],
--- process = [[
--- %localize%
--- return function(box,location,prevdepth,mirrored)
--- %actions%
--- return box, prevdepth
--- end
--- ]],
--- step = [[
--- box, prevdepth = %action%(box,location,prevdepth,mirrored)
--- ]],
--- },
--- }
-
--- -- math -- --
-
--- not really a node processor
+tasks.new {
+ name = "contributers",
+ arguments = 2, -- [head] where parent
+ processor = nodeprocessor,
+ sequence = {
+ "before", -- for users
+ "normalizers",
+ "after", -- for users
+ }
+}
--- tasks.new {
--- name = "newpar",
--- processor = nodeprocessor,
--- sequence = {
--- "before",
--- "normalizers",
--- "after",
--- },
--- templates = {
---
--- default = [[
--- return function(mode,indent)
--- return indent
--- end
--- ]],
---
--- process = [[
--- %localize%
---
--- return function(mode,indent)
---
--- %actions%
--- return indent
--- end
--- ]],
---
--- step = [[
--- indent = %action%(mode,indent)
--- ]],
---
--- }
--- }
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-tst.lua b/Master/texmf-dist/tex/context/base/mkiv/node-tst.lua
index 0dacff37532..7ad35bd711e 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-tst.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-tst.lua
@@ -10,7 +10,7 @@ local nodes, node = nodes, node
local chardata = characters.data
local nodecodes = nodes.nodecodes
-local gluecodes = nodes.gluecodes
+local skipcodes = nodes.skipcodes
local glue_code = nodecodes.glue
local penalty_code = nodecodes.penalty
@@ -19,10 +19,10 @@ local glyph_code = nodecodes.glyph
local whatsit_code = nodecodes.whatsit
local hlist_code = nodecodes.hlist
-local leftskip_code = gluecodes.leftskip
-local rightskip_code = gluecodes.rightskip
-local abovedisplayshortskip_code = gluecodes.abovedisplayshortskip
-local belowdisplayshortskip_code = gluecodes.belowdisplayshortskip
+local leftskip_code = skipcodes.leftskip
+local rightskip_code = skipcodes.rightskip
+local abovedisplayshortskip_code = skipcodes.abovedisplayshortskip
+local belowdisplayshortskip_code = skipcodes.belowdisplayshortskip
local nuts = nodes.nuts
diff --git a/Master/texmf-dist/tex/context/base/mkiv/pack-bar.mkiv b/Master/texmf-dist/tex/context/base/mkiv/pack-bar.mkiv
index b67d6f14b28..06eeebd1411 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/pack-bar.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/pack-bar.mkiv
@@ -72,16 +72,16 @@
\vskip\zeropoint\s!plus-\positionbarparameter\c!n \s!fill}}
\unexpanded\def\horizontalgrowingbar[#1]%
- {\hpack to \hsize
+ {\hbox to \hsize
{\setuppositionbar[#1]%
\usepositionbarstyleandcolor\c!style\c!color
- \leaders\vrule\hskip\zeropoint\s!plus\numexpr\positionbarparameter\c!n-\positionbarparameter\c!min+\plusone\relax\s!fill
+ \leaders\vrule\hskip\zeropoint\s!plus \numexpr\positionbarparameter\c!n-\positionbarparameter\c!min+\plusone\relax\s!fill
\vrule\s!width\zeropoint\s!height\positionbarparameter\c!height\s!depth\positionbarparameter\c!depth
\hskip\zeropoint\s!plus \positionbarparameter\c!max\s!fill
\hskip\zeropoint\s!plus-\positionbarparameter\c!n \s!fill}}
\unexpanded\def\verticalgrowingbar[#1]%
- {\vpack to \vsize
+ {\vbox to \vsize
{\setuppositionbar[#1]%
\usepositionbarstyleandcolor\c!style\c!color
\leaders\hrule\vskip\zeropoint\s!plus\numexpr\positionbarparameter\c!n-\positionbarparameter\c!min+\plusone\relax\s!fill
diff --git a/Master/texmf-dist/tex/context/base/mkiv/pack-bck.mkvi b/Master/texmf-dist/tex/context/base/mkiv/pack-bck.mkvi
index 9f9d843cef7..346e7df575e 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/pack-bck.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/pack-bck.mkvi
@@ -245,42 +245,18 @@
%D \macros
%D {backgroundline}
-% \unexpanded\def\backgroundline[#color]%
-% {\dontleavehmode
-% \dowithnextbox{\pack_backgrounds_add_to_nextbox{#color}}\hbox}
-%
-% \unexpanded\def\pack_backgrounds_add_to_nextbox#color% handy helper
-% {\hpack
-% {\dousecolorparameter{#color}%
-% \vrule
-% \??width \nextboxwd
-% \??height\nextboxht
-% \??depth \nextboxdp
-% \hskip-\nextboxwd
-% \flushnextbox}}
-
-%D We implement this elsewhere avoiding the rule.
+\unexpanded\def\backgroundline[#color]%
+ {\dontleavehmode
+ \dowithnextbox{\pack_backgrounds_add_to_nextbox{#color}}\hbox}
-% \unexpanded\def\backgroundline
-% {\dontleavehmode
-% \pack_backgrounds_add_to_nextbox\hbox\hpack}
-%
-% \unexpanded\def\pack_backgrounds_add_to_nextbox#box#pack[#color]%
-% {\dontleavehmode
-% \dowithnextbox{\pack_backgrounds_add_to_nextbox_indeed#pack{#color}}#box}
-%
-% \unexpanded\def\pack_backgrounds_add_to_nextbox_indeed#pack#color% handy helper
-% {#pack%
-% {\dousecolorparameter{#color}%
-% \vrule
-% \??width \nextboxwd
-% \??height\nextboxht
-% \??depth \nextboxdp
-% \hskip-\nextboxwd
-% \flushnextbox}}
-%
-% \unexpanded\def\backgroundhbox{\pack_backgrounds_add_to_nextbox\hbox\hpack}
-% \unexpanded\def\backgroundvtop{\pack_backgrounds_add_to_nextbox\vtop\tpack}
-% \unexpanded\def\backgroundvbox{\pack_backgrounds_add_to_nextbox\vbox\vpack}
+\unexpanded\def\pack_backgrounds_add_to_nextbox#color% handy helper
+ {\hbox
+ {\dousecolorparameter{#color}%
+ \vrule
+ \!!width \nextboxwd
+ \!!height\nextboxht
+ \!!depth \nextboxdp
+ \hskip-\nextboxwd
+ \flushnextbox}}
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkiv/pack-box.mkiv b/Master/texmf-dist/tex/context/base/mkiv/pack-box.mkiv
index bf6d4662dac..c53b4520ce6 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/pack-box.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/pack-box.mkiv
@@ -108,7 +108,6 @@
{\global\advance\c_pack_anchors_n\plusone
\pagereference[\v!layer:\v!anchor:\number\c_pack_anchors_n]%
\putboxincache\v!anchor{\number\c_pack_anchors_n}\b_pack_anchors
-% \xtoksapp\t_pack_anchors_flush{\pack_anchors_flush{\number\c_pack_anchors_n}{#1}{#2}}%
\doglobal\appendetoks
\pack_anchors_flush{\number\c_pack_anchors_n}{#1}{#2}%
\to \t_pack_anchors_flush
diff --git a/Master/texmf-dist/tex/context/base/mkiv/pack-com.mkiv b/Master/texmf-dist/tex/context/base/mkiv/pack-com.mkiv
index 1c6f2de7361..59354208e13 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/pack-com.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/pack-com.mkiv
@@ -73,7 +73,7 @@
\newsystemmode{combination}
\appendtoks
- \globalresetsystemmode{combination}%
+ \global\resetsystemmode{combination}%
\to \everyinsidefloat
\newcount\c_pack_combinations_nesting % local
@@ -113,7 +113,7 @@
\setbox\b_pack_combinations_content_saved \box\b_pack_combinations_content
\setbox\b_pack_combinations_caption_saved \box\b_pack_combinations_caption
\else
- \globalsetsystemmode{combination}% why global
+ \global\setsystemmode{combination}% why global
\fi}
\def\pack_combinations_pop
@@ -126,7 +126,7 @@
\setbox\b_pack_combinations_content \box\b_pack_combinations_content_saved
\setbox\b_pack_combinations_caption \box\b_pack_combinations_caption_saved
\else
- \globalresetsystemmode{combination}% why global
+ \global\resetsystemmode{combination}% why global
\fi
\advance\c_pack_combinations_nesting\minusone}
@@ -205,7 +205,7 @@
% {\bgroup
% \scratchtoks{{}}%
% \dorecurse\c_pack_combinations_y
-% {\toksapp{{}{}}}%
+% {\scratchtoks\expandafter{\the\scratchtoks{}{}}}%
% \expandafter\egroup\the\scratchtoks
% \egroup
% \dostoptagged
@@ -290,7 +290,7 @@
\alignmark\alignmark
\m_pack_combinations_rightfiller
\aligntab
- \tabskip\zeropoint \s!plus 1fill % \fillskip
+ \tabskip\zeropoint \s!plus 1fill
\alignmark\alignmark
\cr
\pack_combinations_pickup}
@@ -437,10 +437,10 @@
\nointerlineskip % indeed
\combinationparameter\c!inbetween
\global\c_pack_combinations_x\c_pack_combinations_max
- \glet\pack_combinations_flush_captions_indeed\pack_combinations_flush_captions_yes
+ \globallet\pack_combinations_flush_captions_indeed\pack_combinations_flush_captions_yes
\else
\global\setbox\b_pack_combinations_captions\emptybox
- \glet\pack_combinations_flush_captions_indeed\pack_combinations_flush_captions_nop
+ \globallet\pack_combinations_flush_captions_indeed\pack_combinations_flush_captions_nop
\fi}%
\pack_combinations_flush_captions_indeed
\crcr}
@@ -656,7 +656,7 @@
\newsystemmode{pairedbox}
\appendtoks
- \globalresetsystemmode{pairedbox}%
+ \global\resetsystemmode{pairedbox}%
\to \everyinsidefloat
\installcorenamespace {pairedbox}
@@ -720,7 +720,7 @@
\let\startcaption\pack_common_caption_start
\let\stopcaption \pack_common_caption_stop
%
- \globalsetsystemmode{pairedbox}%
+ \global\setsystemmode{pairedbox}%
\pack_pairedboxes_before
\assumelongusagecs\pack_pairedboxes_first_pickup}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/pack-cut.mkiv b/Master/texmf-dist/tex/context/base/mkiv/pack-cut.mkiv
index 84c14d648e5..ffd0251d5ae 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/pack-cut.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/pack-cut.mkiv
@@ -65,87 +65,85 @@
\def\cutmarkrulethickness{\onepoint}
\unexpanded\def\horizontalcuts
- {\hpack to \d_pack_cutmarks_width
- {\dorecurse\horizontalcutmarks{\vrule\s!width\cutmarkrulethickness\s!height\cutmarklength\hfill}%
+ {\normalhbox to \d_pack_cutmarks_width
+ {\dorecurse\horizontalcutmarks{\vrule\s!width\cutmarkrulethickness\s!height\cutmarklength\normalhfill}%
\unskip}}
\unexpanded\def\verticalcuts
- {\vpack to \dimexpr\d_pack_cutmarks_height+\d_pack_cutmarks_depth\relax
+ {\normalvbox to \dimexpr\d_pack_cutmarks_height+\d_pack_cutmarks_depth\relax
{\hsize\cutmarklength
- \dorecurse\verticalcutmarks{\vrule\s!height\cutmarkrulethickness\s!width\hsize\vfill}%
+ \dorecurse\verticalcutmarks{\vrule\s!height\cutmarkrulethickness\s!width\hsize\normalvfill}%
\unskip}}
\unexpanded\def\baselinecuts
{\ifdim\d_pack_cutmarks_depth>\zeropoint
- \vpack to \dimexpr\d_pack_cutmarks_height+\d_pack_cutmarks_depth\relax
+ \normalvbox to \dimexpr\d_pack_cutmarks_height+\d_pack_cutmarks_depth\relax
{\hsize\dimexpr\cutmarklength/2\relax
- \vskip\zeropoint\s!plus\d_pack_cutmarks_height
+ \normalvskip\zeropoint\s!plus\d_pack_cutmarks_height
\vrule\s!height\cutmarkrulethickness\s!width\hsize
- \vskip\zeropoint\s!plus\d_pack_cutmarks_depth}%
+ \normalvskip\zeropoint\s!plus\d_pack_cutmarks_depth}%
\fi}
\unexpanded\def\cutmarksymbols#1%
- {\hpack to \d_pack_cutmarks_width
- {\setbox\scratchbox\hbox to \cutmarklength
- {\hss\infofont\cutmarksymbol\hss}%
- \hss
- \vpack to \cutmarklength
+ {\normalhbox to \d_pack_cutmarks_width
+ {\setbox\scratchbox\normalhbox to \cutmarklength
+ {\normalhss\infofont\cutmarksymbol\normalhss}%
+ \normalhss
+ \normalvbox to \cutmarklength
{\scratchdimen\dimexpr\cutmarklength/2\relax
\scratchskip \ifx\cutmarkhoffset\empty\cutmarkoffset\scratchdimen\else\cutmarkhoffset\fi
- \vss
- \hbox to \d_pack_cutmarks_width
- {\llap{\copy\scratchbox\hskip\scratchskip}%
- \hskip\scratchdimen\hss
- \infofont#1%
- \hss\hskip\scratchdimen
- \rlap{\hskip\scratchskip\copy\scratchbox}}%
- \vss}%
- \hss}}
+ \normalvss
+ \hpack to \d_pack_cutmarks_width
+ {\llap{\copy\scratchbox\normalhskip\scratchskip}%
+ \normalhskip\scratchdimen\hss\infofont#1\hss\normalhskip\scratchdimen
+ \rlap{\normalhskip\scratchskip\copy\scratchbox}}%
+ \normalvss}%
+ \normalhss}}
\unexpanded\def\makecutbox#1%
{\bgroup
\d_pack_cutmarks_height\ht#1%
\d_pack_cutmarks_depth \dp#1%
\d_pack_cutmarks_width \wd#1%
- \setbox#1\hpack
+ \setbox#1\normalhbox
{\dontcomplain
\forgetall
\boxmaxdepth\maxdimen
\offinterlineskip
\scratchdimen\dimexpr\cutmarklength/2\relax
\hsize\d_pack_cutmarks_width
- \setbox\scratchbox\vpack
- {\setbox\scratchbox\hpack{\horizontalcuts}%
+ \setbox\scratchbox\normalvbox
+ {\setbox\scratchbox\normalhbox{\horizontalcuts}%
\scratchskip\ifx\cutmarkvoffset\empty\cutmarkoffset\scratchdimen\else\cutmarkvoffset\fi
- \tlap{\copy\scratchbox\vskip\scratchskip}%
+ \tlap{\copy\scratchbox\normalvskip\scratchskip}%
\hpack to \d_pack_cutmarks_width
{\scratchskip\ifx\cutmarkhoffset\empty\cutmarkoffset\scratchdimen\else\cutmarkhoffset\fi
- \setbox\scratchbox\hpack{\verticalcuts}%
- \llap{\copy\scratchbox\hskip\scratchskip}%
+ \setbox\scratchbox\normalhbox{\verticalcuts}%
+ \llap{\copy\scratchbox\normalhskip\scratchskip}%
\ifdim\d_pack_cutmarks_depth=\zeropoint
- \hfill
+ \normalhfill
\else
\bgroup
- \setbox\scratchbox\hpack{\baselinecuts}%
- \llap{\copy\scratchbox\hskip\scratchskip}%
- \hfill
- \rlap{\hskip\scratchskip\copy\scratchbox}%
+ \setbox\scratchbox\normalhbox{\baselinecuts}%
+ \llap{\copy\scratchbox\normalhskip\scratchskip}%
+ \normalhfill
+ \rlap{\normalhskip\scratchskip\copy\scratchbox}%
\egroup
\fi
- \rlap{\hskip\scratchskip\copy\scratchbox}}%
- \blap{\vskip\scratchskip\copy\scratchbox}}%
+ \rlap{\normalhskip\scratchskip\copy\scratchbox}}%
+ \blap{\normalvskip\scratchskip\copy\scratchbox}}%
\ht\scratchbox\d_pack_cutmarks_height
\dp\scratchbox\d_pack_cutmarks_depth
\wd\scratchbox\zeropoint
\startcolor[\defaulttextcolor]%
\box\scratchbox
\ifx\cutmarksymbol\relax \else
- \setbox\scratchbox\vpack
+ \setbox\scratchbox\normalvbox
{\scratchskip\ifx\cutmarkvoffset\empty\cutmarkoffset\scratchdimen\else\cutmarkvoffset\fi
\vskip-\dimexpr\scratchskip+\cutmarklength\relax
- \hpack{\cutmarksymbols\cutmarktoptext}%
+ \normalhbox{\cutmarksymbols\cutmarktoptext}%
\vskip\dimexpr\scratchskip+\d_pack_cutmarks_height+\d_pack_cutmarks_depth+\scratchskip\relax
- \hpack{\cutmarksymbols\cutmarkbottomtext}}%
+ \normalhbox{\cutmarksymbols\cutmarkbottomtext}}%
\ht\scratchbox\d_pack_cutmarks_height
\dp\scratchbox\d_pack_cutmarks_depth
\wd\scratchbox\zeropoint
@@ -158,8 +156,8 @@
\dp#1\d_pack_cutmarks_depth
\egroup}
-\unexpanded\def\cuthbox{\hpack\bgroup\dowithnextbox{\makecutbox\nextbox\flushnextbox\egroup}\hbox}
-\unexpanded\def\cutvbox{\vpack\bgroup\dowithnextbox{\makecutbox\nextbox\flushnextbox\egroup}\vbox}
-\unexpanded\def\cutvtop{\tpack\bgroup\dowithnextbox{\makecutbox\nextbox\flushnextbox\egroup}\vtop}
+\unexpanded\def\cuthbox{\normalhbox\bgroup\dowithnextbox{\makecutbox\nextbox\flushnextbox\egroup}\normalhbox}
+\unexpanded\def\cutvbox{\normalvbox\bgroup\dowithnextbox{\makecutbox\nextbox\flushnextbox\egroup}\normalvbox}
+\unexpanded\def\cutvtop{\normalvtop\bgroup\dowithnextbox{\makecutbox\nextbox\flushnextbox\egroup}\normalvtop}
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkiv/pack-lyr.mkiv b/Master/texmf-dist/tex/context/base/mkiv/pack-lyr.mkiv
index e7070cfdec1..8661fe57a5e 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/pack-lyr.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/pack-lyr.mkiv
@@ -293,8 +293,8 @@
{\setbox\b_layers\emptybox
\d_pack_layers_x_position\p_pack_layers_sx\dimexpr\p_pack_layers_x\relax
\d_pack_layers_y_position\p_pack_layers_sy\dimexpr\p_pack_layers_y\relax
- \glet\lastlayerxpos\!!zeropoint
- \glet\lastlayerypos\!!zeropoint
+ \globallet\lastlayerxpos\!!zeropoint
+ \globallet\lastlayerypos\!!zeropoint
\doifinset\v!bottom\p_pack_layers_corner\pack_layers_set_bottom_positions
\doifinset\v!right \p_pack_layers_corner\pack_layers_set_right_positions
\doifinset\v!middle\p_pack_layers_corner\pack_layers_set_middle_positions
@@ -540,85 +540,24 @@
% todo: pass the layer with \lastnamedcs
-% \def\pack_layers_flush_single
-% {\startoverlay
-% {\ifcsname\??layerbox \currentlayer \endcsname\pack_layers_flush_indeed\plusone \currentlayer \fi}%
-% {\ifcsname\??layerbox \currentlayer:\the\realpageno\endcsname\pack_layers_flush_indeed\zerocount{\currentlayer:\the\realpageno}\fi}%
-% \stopoverlay}
-%
-% \def\pack_layers_flush_double#1%
-% {\startoverlay
-% {\ifcsname\??layerbox \currentlayer \endcsname\pack_layers_flush_indeed\plusone \currentlayer \fi}%
-% {\ifcsname\??layerbox \currentlayer:\the\realpageno\endcsname\pack_layers_flush_indeed\zerocount {\currentlayer:\the\realpageno}\fi}%
-% {\ifcsname\??layerbox#1\currentlayer \endcsname\pack_layers_flush_indeed\plusone {#1\currentlayer }\fi}%
-% {\ifcsname\??layerbox#1\currentlayer:\the\realpageno\endcsname\pack_layers_flush_indeed\zerocount{#1\currentlayer:\the\realpageno}\fi}%
-% \stopoverlay}
-
-% optimized:
-
\def\pack_layers_flush_single
- {\ifcsname\??layerbox\currentlayer\endcsname
- \ifvoid\lastnamedcs
- \ifcsname\??layerbox\currentlayer:\the\realpageno\endcsname
- \ifvoid\lastnamedcs\else
- \chardef\b_layer_two\lastnamedcs
- \pack_layers_flush_indeed\zerocount{\currentlayer:\the\realpageno}\b_layer_two
- \fi
- \fi
- \else
- \chardef\b_layer_one\lastnamedcs
- \ifcsname\??layerbox\currentlayer:\the\realpageno\endcsname
- \ifvoid\lastnamedcs\else
- \chardef\b_layer_two\lastnamedcs
- \startoverlay
- {\pack_layers_flush_indeed\plusone \currentlayer \b_layer_one}%
- {\pack_layers_flush_indeed\zerocount{\currentlayer:\the\realpageno}\b_layer_two}%
- \stopoverlay
- \fi
- \else
- \pack_layers_flush_indeed\plusone\currentlayer\b_layer_one
- \fi
- \fi
- \else\ifcsname\??layerbox\currentlayer:\the\realpageno\endcsname
- \ifvoid\lastnamedcs
- % nothing
- \else
- \chardef\b_layer_two\lastnamedcs
- \pack_layers_flush_indeed\zerocount{\currentlayer:\the\realpageno}\b_layer_two
- \fi
- \fi\fi}
-
-% less optimized:
+ {\startoverlay
+ {\ifcsname\??layerbox \currentlayer \endcsname\pack_layers_flush_indeed\plusone \currentlayer \fi}%
+ {\ifcsname\??layerbox \currentlayer:\the\realpageno\endcsname\pack_layers_flush_indeed\zerocount{\currentlayer:\the\realpageno}\fi}%
+ \stopoverlay}
\def\pack_layers_flush_double#1%
{\startoverlay
- {\ifcsname\??layerbox\currentlayer\endcsname
- \ifvoid\lastnamedcss\else \chardef\b_layer_two\lastnamedcs
- \pack_layers_flush_indeed\plusone\currentlayer\b_layer_two
- \fi
- \fi}%
- {\ifcsname\??layerbox\currentlayer:\the\realpageno\endcsname
- \ifvoid\lastnamedcss\else \chardef\b_layer_two\lastnamedcs
- \pack_layers_flush_indeed\zerocount{\currentlayer:\the\realpageno}\b_layer_two
- \fi
- \fi}%
- {\ifcsname\??layerbox#1\currentlayer\endcsname
- \ifvoid\lastnamedcss\else \chardef\b_layer_two\lastnamedcs
- \pack_layers_flush_indeed\plusone{#1\currentlayer}\b_layer_two
- \fi
- \fi}%
- {\ifcsname\??layerbox#1\currentlayer:\the\realpageno\endcsname
- \ifvoid\lastnamedcss\else \chardef\b_layer_two\lastnamedcs
- \pack_layers_flush_indeed\zerocount{#1\currentlayer:\the\realpageno}\b_layer_two
- \fi
- \fi}%
+ {\ifcsname\??layerbox \currentlayer \endcsname\pack_layers_flush_indeed\plusone \currentlayer \fi}%
+ {\ifcsname\??layerbox \currentlayer:\the\realpageno\endcsname\pack_layers_flush_indeed\zerocount {\currentlayer:\the\realpageno}\fi}%
+ {\ifcsname\??layerbox#1\currentlayer \endcsname\pack_layers_flush_indeed\plusone {#1\currentlayer }\fi}%
+ {\ifcsname\??layerbox#1\currentlayer:\the\realpageno\endcsname\pack_layers_flush_indeed\zerocount{#1\currentlayer:\the\realpageno}\fi}%
\stopoverlay}
\let\pack_layers_top_fill \relax
\let\pack_layers_bottom_fill\vss
-%def\pack_layers_flush_indeed#1#2%
-\def\pack_layers_flush_indeed#1#2#3%
+\def\pack_layers_flush_indeed#1#2% quite core, so optimized
{\begingroup % already grouped
\offinterlineskip
\edef\p_pack_layers_preset{\layerparameter\c!preset}%
@@ -648,8 +587,7 @@
\fi\fi
\fi
\fi
- %chardef\b_layers\csname\??layerbox#2\endcsname % trick
- \let\b_layers#3%
+ \chardef\b_layers\csname\??layerbox#2\endcsname % trick
% we need to copy in order to retain the negative offsets for a next
% stage of additions, i.e. llx/lly accumulate in repeat mode and the
% compensation may differ each flush depending on added content
diff --git a/Master/texmf-dist/tex/context/base/mkiv/pack-mrl.mkiv b/Master/texmf-dist/tex/context/base/mkiv/pack-mrl.mkiv
index 665d245b346..85aa3ad04ed 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/pack-mrl.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/pack-mrl.mkiv
@@ -39,7 +39,7 @@
\installsimplecommandhandler \??blackrules {blackrules}
\unexpanded\def\blackrule
- {\hpack\bgroup
+ {\hbox\bgroup
\doifelsenextoptionalcs\pack_black_rule_pickup\pack_black_rule_indeed}
\def\pack_black_rule_pickup[#1]%
@@ -99,7 +99,7 @@
%D would probably have taken more tokens.
\unexpanded\def\blackrules % probably never used
- {\hpack\bgroup
+ {\hbox\bgroup
\doifelsenextoptionalcs\pack_black_rules_pickup\pack_black_rules_indeed}
\def\pack_black_rules_pickup[#1]%
@@ -121,25 +121,23 @@
\fi
\fi
\useblackrulesstyleandcolor\c!style\c!color
- % a typical case of where we can use a simple loop or even a leaders
- \dorecurse\scratchcounter\pack_black_rules_step
+ \edef\brule
+ {\ifcsname\??blackruletype\directblackrulesparameter\c!type\endcsname
+ \lastnamedcs
+ \else
+ \vrule
+ \fi}%
+ \dorecurse\scratchcounter % a typical case of where we can use a simple loop
+ {\brule
+ \s!width \scratchwidth
+ \s!height\scratchheight
+ \s!depth \scratchdepth
+ \ifzeropt\scratchdistance\else
+ \hskip\scratchdistance
+ \fi}%
\unskip
\egroup}
-\def\pack_black_rules_step
- {\ifcsname\??blackruletype\directblackrulesparameter\c!type\endcsname
- \lastnamedcs
- \else
- \vrule
- \fi
- \s!width \scratchwidth
- \s!height\scratchheight
- \s!depth \scratchdepth
- \relax
- \ifzeropt\scratchdistance\else
- \hskip\scratchdistance
- \fi}
-
\installcorenamespace{blackruletype}
\setvalue{\??blackruletype mp}%
@@ -580,7 +578,7 @@
{\page[\v!preference] % interferes
\directtextrulesparameter\c!before\relax
\blank[\v!samepage,\v!nowhite]%
- \pack_textrule_with_text_yes{#1}%
+ \pack_textrule_with_text{#1}%
\blank[\v!samepage,\v!nowhite]%
\directtextrulesparameter\c!inbetween\relax
\endgraf}
@@ -600,10 +598,9 @@
\directtextrulesparameter\c!inbetween\relax
\page[\v!preference]}
-\def\pack_textrule_with_text_yes#1%
- {\noindent % this will force side floats to be calculated
- \bgroup
- \setbox\scratchbox\hpack to \availablehsize
+\def\pack_textrule_with_text#1%
+ {\bgroup
+ \setbox\scratchbox\hbox to \availablehsize
{\scratchwidth \directtextrulesparameter\c!rulethickness\relax
\scratchheight\dimexpr .5\exheight+.5\scratchwidth\relax
\scratchdepth \dimexpr-.5\exheight+.5\scratchwidth\relax
@@ -614,41 +611,19 @@
#1%
\hskip\leftmargindistance}}
{\color[\directtextrulesparameter\c!rulecolor]
- {\vrule
- \s!height\scratchheight
- \s!depth \scratchdepth
- \s!width \directtextrulesparameter\c!width}%
+ {\vrule\s!height\scratchheight\s!depth\scratchdepth\s!width\directtextrulesparameter\c!width}%
\hbox spread 2\dimexpr\directtextrulesparameter\c!distance\relax
{\hss
\usetextrulesstyleandcolor\c!style\c!color
\strut#1%
\hss}}}%
\color[\directtextrulesparameter\c!rulecolor]
- {\leaders\hrule
- \s!height\scratchheight
- \s!depth \scratchdepth
- \hfill}}%
+ {\leaders\hrule\s!height\scratchheight\s!depth\scratchdepth\hfill}}%
\ht\scratchbox\strutht
\dp\scratchbox\strutdp
- \box\scratchbox
- %\carryoverpar
+ \noindent\box\scratchbox
\egroup}
-\def\pack_textrule_with_text_nop#1%
- {\ifhmode
- \endgraf
- \fi
- \doifelse{\directtextrulesparameter\c!depthcorrection}\v!on
- \pack_textrule_correct_depth_yes
- \pack_textrule_correct_depth_nop
- \nointerlineskip
- \noindent\vpack % was \dontleavehmode
- {\color[\directtextrulesparameter\c!rulecolor]
- {\hrule
- \s!depth \directtextrulesparameter\c!rulethickness
- \s!height\zeropoint
- \s!width \availablehsize}}}
-
\def\pack_textrule_correct_depth_yes
{\vskip\dimexpr
\strutdp +.5\exheight
@@ -668,9 +643,15 @@
\def\pack_textrule_following#1%
{\doifelsenothing{#1}
- \pack_textrule_with_text_nop
- \pack_textrule_with_text_yes
- {#1}%
+ {\ifhmode
+ \endgraf
+ \fi
+ \doifelse{\directtextrulesparameter\c!depthcorrection}\v!on\pack_textrule_correct_depth_yes\pack_textrule_correct_depth_nop
+ \nointerlineskip
+ \noindent\vbox % was \dontleavehmode
+ {\color[\directtextrulesparameter\c!rulecolor]
+ {\hrule\s!depth\directtextrulesparameter\c!rulethickness\s!height\zeropoint\s!width\availablehsize}}}
+ {\pack_textrule_with_text{#1}}%
\ifvmode
\prevdepth\zeropoint
\fi}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/pack-obj.lua b/Master/texmf-dist/tex/context/base/mkiv/pack-obj.lua
index ea36b10de7a..3f2b2edfeff 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/pack-obj.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/pack-obj.lua
@@ -13,10 +13,8 @@ reusable components.</p>
local context = context
local codeinjections = backends.codeinjections
-local ctx_doifelse = commands.doifelse
-local report = logs.reporter("objects")
-local trace = false trackers.register("objects",function(v) trace = v end)
+local ctx_doifelse = commands.doifelse
local nuts = nodes.nuts
@@ -28,7 +26,10 @@ local new_latelua = nuts.pool.latelua
local settexdimen = tokens.setters.dimen
-local getcount = tex.getcount
+local gettexbox = tokens.getters.box
+local settexbox = tokens.setters.box
+local gettexdimen = tokens.getters.dimen
+local gettexcount = tokens.getters.count
local implement = interfaces.implement
local setmacro = interfaces.setmacro
@@ -53,16 +54,8 @@ end
job.register('job.objects.collected', tobesaved, initializer, nil)
local function saveobject(tag,number,page)
- local data = { number, page }
- tobesaved[tag] = data
- collected[tag] = data
-end
-
-local function saveobjectspec(specification)
- local tag = specification.tag
- local data = { specification.number, specification.page }
- tobesaved[tag] = data
- collected[tag] = data
+ local t = { number, page }
+ tobesaved[tag], collected[tag] = t, t
end
local function setobject(tag,number,page)
@@ -135,9 +128,8 @@ objects = {
local objects = objects
function objects.register(ns,id,b,referenced,offset,mode)
- local n = objects.n + 1
- objects.n = n
- nodes.handlers.finalizebox(b)
+ objects.n = objects.n + 1
+ nodes.handlers.finalize(gettexbox(b),"object")
if mode == 0 then
-- tex
data[ns][id] = {
@@ -155,9 +147,6 @@ function objects.register(ns,id,b,referenced,offset,mode)
mode,
}
end
- if trace then
- report("registering object %a (n=%i)",id,n)
- end
end
function objects.restore(ns,id) -- why not just pass a box number here too (ok, we also set offset)
@@ -170,12 +159,9 @@ function objects.restore(ns,id) -- why not just pass a box number here too (ok,
local hbox = codeinjections.restoreboxresource(index) -- a nut !
if status then
local list = getlist(hbox)
- local page = new_latelua {
- action = saveobjectspec,
- tag = ns .. "::" .. id,
- number = index,
- page = getcount("realpageno"),
- }
+ local page = new_latelua(function()
+ saveobject(ns .. "::" .. id,index,gettexcount("realpageno"))
+ end)
setlink(list,page)
end
setbox("objectbox",hbox)
@@ -184,9 +170,6 @@ function objects.restore(ns,id) -- why not just pass a box number here too (ok,
setbox("objectbox",nil)
settexdimen("objectoff",0) -- for good old times
end
- if trace then
- report("restoring object %a",id)
- end
end
function objects.dimensions(index)
@@ -208,7 +191,7 @@ function objects.reference(ns,id)
end
function objects.page(ns,id)
- return getobjectpage(ns .."::" .. id,getcount("realpageno"))
+ return getobjectpage(ns .."::" .. id,gettexcount("realpageno"))
end
function objects.found(ns,id)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/pack-obj.mkiv b/Master/texmf-dist/tex/context/base/mkiv/pack-obj.mkiv
index d08c664944f..aeb5cb4f412 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/pack-obj.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/pack-obj.mkiv
@@ -51,8 +51,7 @@
\newdimen\objectht \def\objectheight{\the\objectht}
\newdimen\objectdp \def\objectdepth {\the\objectdp}
-%D If I have time I will use the unreferenced variant for e.g. mp reuse. This can be
-%D rewritten in \LUA\ anyway.
+%D If I have time I will use the unreferenced variant for e.g. mp reuse.
\unexpanded\def\setreferencedobject #1#2{\begingroup\synctexpause\objectoff\objectoffset\inobjecttrue\dowithnextbox{\pack_objects_set_yes{#1}{#2}}}
\unexpanded\def\settightreferencedobject #1#2{\begingroup\synctexpause\objectoff\zeropoint \inobjecttrue\dowithnextbox{\pack_objects_set_yes{#1}{#2}}}
@@ -66,8 +65,14 @@
\newconstant\c_pack_objects_offset_mode % 0=tex 1=box
+\unexpanded\def\pack_objects_temp_check % this will go away
+ {\ifnum\texenginefunctionality<6401\relax
+ \c_pack_objects_offset_mode\zerocount
+ \fi}
+
\unexpanded\def\pack_objects_set_yes#1#2%
- {\ifcase\c_pack_objects_offset_mode
+ {\pack_objects_temp_check % this will go away
+ \ifcase\c_pack_objects_offset_mode
\ifzeropt\objectoff
\pack_objects_package_nop\nextbox
\else
@@ -81,7 +86,8 @@
\endgroup}
\unexpanded\def\pack_objects_set_nop#1#2%
- {\ifcase\c_pack_objects_offset_mode
+ {\pack_objects_temp_check % this will go away
+ \ifcase\c_pack_objects_offset_mode
\ifzeropt\objectoff
\pack_objects_package_nop\nextbox
\else
diff --git a/Master/texmf-dist/tex/context/base/mkiv/pack-rul.lua b/Master/texmf-dist/tex/context/base/mkiv/pack-rul.lua
index 455d0bff832..c9771546c9b 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/pack-rul.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/pack-rul.lua
@@ -20,50 +20,42 @@ if not modules then modules = { } end modules ['pack-rul'] = {
local type = type
-local context = context
-
-local nodecodes = nodes.nodecodes
-local listcodes = nodes.listcodes
-
-local hlist_code = nodecodes.hlist
-local vlist_code = nodecodes.vlist
-
-local boxlist_code = listcodes.box
-local linelist_code = listcodes.line
-local equationlist_code = listcodes.equation
-
-local texsetdimen = tex.setdimen
-local texsetcount = tex.setcount
-
-local implement = interfaces.implement
-
-local nuts = nodes.nuts
-
-local getnext = nuts.getnext
-local getprev = nuts.getprev
-local getlist = nuts.getlist
-local setlist = nuts.setlist
-local getwhd = nuts.getwhd
-local getid = nuts.getid
-local getsubtype = nuts.getsubtype
-local getbox = nuts.getbox
-local getdirection = nuts.getdirection
-local setshift = nuts.setshift
-local setwidth = nuts.setwidth
-local getwidth = nuts.getwidth
-local setboxglue = nuts.setboxglue
-local getboxglue = nuts.getboxglue
-
-local hpack = nuts.hpack
-local getdimensions = nuts.dimensions
-local flush_node = nuts.flush
-
-local traversers = nuts.traversers
-local nexthlist = traversers.hlist
-local nextvlist = traversers.vlist
-local nextlist = traversers.list
-
-local checkformath = false
+local context = context
+
+local hlist_code = nodes.nodecodes.hlist
+local vlist_code = nodes.nodecodes.vlist
+local box_code = nodes.listcodes.box
+local line_code = nodes.listcodes.line
+local equation_code = nodes.listcodes.equation
+
+local texsetdimen = tex.setdimen
+local texsetcount = tex.setcount
+
+local implement = interfaces.implement
+
+local nuts = nodes.nuts
+
+local getnext = nuts.getnext
+local getprev = nuts.getprev
+local getlist = nuts.getlist
+local setlist = nuts.setlist
+local getwhd = nuts.getwhd
+local getid = nuts.getid
+local getsubtype = nuts.getsubtype
+local getbox = nuts.getbox
+local getdir = nuts.getdir
+local setshift = nuts.setshift
+local setwidth = nuts.setwidth
+local getwidth = nuts.getwidth
+local setboxglue = nuts.setboxglue
+local getboxglue = nuts.getboxglue
+
+local hpack = nuts.hpack
+local traverse_id = nuts.traverse_id
+local list_dimensions = nuts.dimensions
+local flush_node = nuts.flush
+
+local checkformath = false
directives.register("framed.checkmath",function(v) checkformath = v end) -- experiment
@@ -84,25 +76,24 @@ local function doreshapeframedbox(n)
if boxwidth ~= 0 then -- and h.subtype == vlist_code
local list = getlist(box)
if list then
- local hdone = false
- for n, id, subtype, list in nextlist, list do -- no dir etc needed
+ local function check(n,repack)
local width, height, depth = getwhd(n)
if not firstheight then
firstheight = height
end
lastdepth = depth
noflines = noflines + 1
- if list then
- if id == hlist_code then
- if subtype == boxlist_code or subtype == linelist_code then
- lastlinelength = getdimensions(list)
+ local l = getlist(n)
+ if l then
+ if repack then
+ local subtype = getsubtype(n)
+ if subtype == box_code or subtype == line_code then
+ lastlinelength = list_dimensions(l,getdir(n))
else
lastlinelength = width
end
- hdone = true
else
lastlinelength = width
- -- vdone = true
end
if lastlinelength > maxwidth then
maxwidth = lastlinelength
@@ -116,19 +107,31 @@ local function doreshapeframedbox(n)
totalwidth = totalwidth + lastlinelength
end
end
+ local hdone = false
+ for h in traverse_id(hlist_code,list) do -- no dir etc needed
+ check(h,true)
+ hdone = true
+ end
+ -- local vdone = false
+ for v in traverse_id(vlist_code,list) do -- no dir etc needed
+ check(v,false)
+ -- vdone = true
+ end
if not firstheight then
-- done)
elseif maxwidth ~= 0 then
if hdone then
- for h, id, subtype, list in nextlist, list do
- if list and id == hlist_code then
- if subtype == boxlist_code or subtype == linelist_code then
- local p = hpack(list,maxwidth,'exactly',getdirection(h)) -- multiple return value
+ for h in traverse_id(hlist_code,list) do
+ local l = getlist(h)
+ if l then
+ local subtype = getsubtype(h)
+ if subtype == box_code or subtype == line_code then
+ local p = hpack(l,maxwidth,'exactly',getdir(h)) -- multiple return value
local set, order, sign = getboxglue(p)
setboxglue(h,set,order,sign)
setlist(p)
flush_node(p)
- elseif checkformath and subtype == equationlist_code then
+ elseif checkformath and subtype == equation_code then
-- display formulas use a shift
if nofnonzero == 1 then
setshift(h,0)
@@ -139,7 +142,7 @@ local function doreshapeframedbox(n)
end
end
-- if vdone then
- -- for v in nextvlist, list do
+ -- for v in traverse_id(vlist_code,list) do
-- local width = getwidth(n)
-- if width > maxwidth then
-- setwidth(v,maxwidth)
@@ -161,7 +164,7 @@ local function doreshapeframedbox(n)
texsetdimen("global","framedaveragewidth",averagewidth)
end
-local function doanalyzeframedbox(n) -- traverse_list
+local function doanalyzeframedbox(n)
local box = getbox(n)
local noflines = 0
local firstheight = nil
@@ -169,7 +172,7 @@ local function doanalyzeframedbox(n) -- traverse_list
if getwidth(box) ~= 0 then
local list = getlist(box)
if list then
- for n in nexthlist, list do
+ local function check(n)
local width, height, depth = getwhd(n)
if not firstheight then
firstheight = height
@@ -177,13 +180,11 @@ local function doanalyzeframedbox(n) -- traverse_list
lastdepth = depth
noflines = noflines + 1
end
- for n in nextvlist, list do
- local width, height, depth = getwhd(n)
- if not firstheight then
- firstheight = height
- end
- lastdepth = depth
- noflines = noflines + 1
+ for h in traverse_id(hlist_code,list) do
+ check(h)
+ end
+ for v in traverse_id(vlist_code,list) do
+ check(v)
end
end
end
@@ -209,11 +210,16 @@ local function maxboxwidth(box)
end
local lastlinelength = 0
local maxwidth = 0
- for n, subtype in nexthlist, list do -- no dir etc needed
+ local function check(n,repack)
local l = getlist(n)
if l then
- if subtype == boxlist_code or subtype == linelist_code then
- lastlinelength = getdimensions(l)
+ if repack then
+ local subtype = getsubtype(n)
+ if subtype == box_code or subtype == line_code then
+ lastlinelength = list_dimensions(l,getdir(n))
+ else
+ lastlinelength = getwidth(n)
+ end
else
lastlinelength = getwidth(n)
end
@@ -222,14 +228,11 @@ local function maxboxwidth(box)
end
end
end
- for n, subtype in nextvlist, list do -- no dir etc needed
- local l = getlist(n)
- if l then
- lastlinelength = getwidth(n)
- if lastlinelength > maxwidth then
- maxwidth = lastlinelength
- end
- end
+ for h in traverse_id(hlist_code,list) do -- no dir etc needed
+ check(h,true)
+ end
+ for v in traverse_id(vlist_code,list) do -- no dir etc needed
+ check(v,false)
end
return maxwidth
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/pack-rul.mkiv b/Master/texmf-dist/tex/context/base/mkiv/pack-rul.mkiv
index 3d03942aab2..c208baaf014 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/pack-rul.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/pack-rul.mkiv
@@ -18,7 +18,7 @@
%D packaging and expansion we also keep tracing reasonable. For instance, multiple
%D stacked backgrounds can slow down a run if not optimized this way.
-\registerctxluafile{pack-rul}{optimize}
+\registerctxluafile{pack-rul}{}
\unprotect
@@ -141,7 +141,6 @@
\setupframed
[\c!width=\v!fit,
\c!height=\v!broad,
- %\c!minheight=\zeropoint,
%\c!lines=,
\c!offset=.25\exheight, % \defaultframeoffset
\c!empty=\v!no,
@@ -240,6 +239,7 @@
\let\p_framed_backgroundcolor \empty
\let\p_framed_framecolor \empty
\let\p_framed_component \empty
+\let\p_framed_region \empty
\let\p_framed_background \empty
\let\p_framed_rulethickness \empty
\let\p_framed_foregroundcolor \empty
@@ -443,8 +443,6 @@
\newdimen\d_overlay_offset
\newdimen\d_overlay_linewidth
-\let\m_overlay_region\empty
-
% expandable ... in a future version the space will go (in my one can use Overlay*)
\def\overlaywidth {\the\d_overlay_width \space} % We preset the variables
@@ -452,7 +450,6 @@
\def\overlaydepth {\the\d_overlay_depth \space} % values.
\def\overlayoffset {\the\d_overlay_offset \space} % of the frame can be (are)
\def\overlaylinewidth {\the\d_overlay_linewidth\space} % set somewhere else.
-\def\overlayregion {\m_overlay_region}
% public but kind of protected
@@ -556,36 +553,40 @@
\def\pack_framed_process_background_indeed_internal#1% % : in name
{\bgroup
- \setbox\b_framed_extra\hpack\bgroup
- \ifzeropt\framedbackgroundoffset\else
+ \setbox\b_framed_extra\hbox{%\bgroup
+ \ifzeropt\framedbackgroundoffset
+ %\csname\??overlaybuiltin\m_framed_background\endcsname
+ #1
+ \else
\kern-\framedbackgroundoffset
+ %\hbox{\csname\??overlaybuiltin\m_framed_background\endcsname}%
+ \hbox{#1}%
\fi
- \hbox\bgroup#1\egroup
- \egroup
+ }%\egroup
\wd\b_framed_extra\zeropoint
\ht\b_framed_extra\framedbackgroundheight
\dp\b_framed_extra\framedbackgrounddepth
\box\b_framed_extra
\egroup}
-% \def\pack_framed_process_background_indeed_external#1%
-% {\pack_framed_overlay_initialize
-% \bgroup
-% \setbox\b_framed_extra\hpack\bgroup
-% \ifzeropt\framedbackgroundoffset\else
-% \kern-\framedbackgroundoffset
-% \fi
-% \hbox\bgroup#1\egroup
-% \egroup
-% \wd\b_framed_extra\zeropoint
-% \ht\b_framed_extra\framedbackgroundheight
-% \dp\b_framed_extra\framedbackgrounddepth
-% \box\b_framed_extra
-% \egroup}
-
-\def\pack_framed_process_background_indeed_external
+\def\pack_framed_process_background_indeed_external#1%
{\pack_framed_overlay_initialize
- \pack_framed_process_background_indeed_internal}
+ \bgroup
+ \setbox\b_framed_extra\hbox{%\bgroup
+ \ifzeropt\framedbackgroundoffset
+ %\csname\??overlay\m_framed_background\endcsname
+ #1%
+ \else
+ \kern-\framedbackgroundoffset
+ %\hbox{\csname\??overlay\m_framed_background\endcsname}%
+ \hbox{#1}%
+ \fi
+ }%\egroup
+ \wd\b_framed_extra\zeropoint
+ \ht\b_framed_extra\framedbackgroundheight
+ \dp\b_framed_extra\framedbackgrounddepth
+ \box\b_framed_extra
+ \egroup}
\def\pack_framed_process_backgrounds#1,#2% #2 gobbles spaces (we could avoid one catch if we have nextbackground)
{\edef\m_framed_background{#1}%
@@ -605,23 +606,15 @@
\def\pack_framed_background_box_content% fuzzy but needed hack, this \vss, otherwise
{\vpack to \framedbackgroundheight{\vss\box\b_framed_normal\vss}} % vertical shift \backgroundheight
-\def\pack_framed_set_region % experiment
- {\ifx\m_overlay_region\v!yes
- \edef\m_overlay_region{\reservedautoregiontag}%
- \fi}
-
-% \def\pack_framed_add_region % experiment
-% {\ifx\m_overlay_region\v!yes
-% \anch_mark_region_box\b_framed_normal
-% \else
-% \anch_mark_tagged_box\b_framed_normal\m_overlay_region
-% \fi}
-
\def\pack_framed_add_region % experiment
- {\anch_mark_tagged_box\b_framed_normal\m_overlay_region}
+ {\ifx\p_framed_region\v!yes
+ \anch_mark_region_box\b_framed_normal
+ \else
+ \anch_mark_tagged_box\b_framed_normal\p_framed_region
+ \fi}
\def\pack_framed_add_background
- {\setbox\b_framed_normal\hpack % was vbox % see also *1*
+ {\setbox\b_framed_normal\hbox % was vbox % see also *1*
{%\pack_framed_forgetall % can be relaxed
\boxmaxdepth\maxdimen
\framedbackgroundoffset\d_framed_backgroundoffset
@@ -638,7 +631,7 @@
\setlayoutcomponentattribute{\v!background:\p_framed_component}%
\fi
\let\foregroundbox\pack_framed_background_box_content
- \hpack \layoutcomponentboxattribute to \framedbackgroundwidth\bgroup % width in case 'foreground' is used as overlay
+ \hbox \layoutcomponentboxattribute to \framedbackgroundwidth\bgroup % width in case 'foreground' is used as overlay
\the\everybackgroundbox % moved
\expandafter\pack_framed_process_backgrounds\p_framed_background,\s!unknown,\relax % hm, messy .. look into it
\box\b_framed_normal
@@ -699,10 +692,10 @@
\scratchdimen\zeropoint
\fi
\edef\overlaylinecolor{\framedparameter\c!framecolor}% twice, also in background
- \setbox\b_framed_extra\hpack
+ \setbox\b_framed_extra\hbox
{\kern-\d_framed_frameoffset
\raise\scratchdimen
- \hpack{\ifx\overlaylinecolor\empty\else\dousecolorparameter\overlaylinecolor\fi\pack_framed_stroked_box}}%
+ \hbox{\ifx\overlaylinecolor\empty\else\dousecolorparameter\overlaylinecolor\fi\pack_framed_stroked_box}}%
\wd\b_framed_extra\wd\b_framed_normal
\ht\b_framed_extra\ht\b_framed_normal
\dp\b_framed_extra\dp\b_framed_normal
@@ -731,45 +724,26 @@
% \dp\scratchbox\d_framed_target_dp
% \box\scratchbox}
-\def\pack_framed_stroked_box_normal_opened
+\def\pack_framed_stroked_box_normal
{\setbox\scratchbox\vpack \bgroup
- \csname\??framedtop\p_framed_frame\framedparameter\c!topframe\endcsname
+ \csname \??framedtop\p_framed_frame\framedparameter\c!topframe \endcsname
\nointerlineskip % new (needed for fences)
- \hpack \bgroup
- \csname\??framedleft\p_framed_frame\framedparameter\c!leftframe\endcsname
+ \hbox \bgroup
+ \csname \??framedleft\p_framed_frame\framedparameter\c!leftframe \endcsname
\novrule
\s!width \d_framed_target_wd
\s!height\d_framed_target_ht
\s!depth \d_framed_target_dp
- \csname\??framedright\p_framed_frame\framedparameter\c!rightframe\endcsname
+ \csname \??framedright\p_framed_frame\framedparameter\c!rightframe \endcsname
\egroup
\nointerlineskip % new (needed for fences)
- \csname\??framedbottom\p_framed_frame\framedparameter\c!bottomframe\endcsname
+ \csname \??framedbottom\p_framed_frame\framedparameter\c!bottomframe\endcsname
\egroup
\wd\scratchbox\d_framed_target_wd
\ht\scratchbox\d_framed_target_ht
\dp\scratchbox\d_framed_target_dp
\box\scratchbox}
-\def\pack_framed_stroked_box_normal_closed
- {\hpack\bgroup
- \scratchdimen.5\d_framed_linewidth
- \hskip\scratchdimen
- \clf_framedoutline
- \dimexpr\d_framed_target_wd-\d_framed_linewidth\relax
- \dimexpr\d_framed_target_ht-\scratchdimen\relax
- \dimexpr\d_framed_target_dp-\scratchdimen\relax
- \d_framed_linewidth
- \relax
- \egroup}
-
-\def\pack_framed_stroked_box_normal
- {\ifx\p_framed_frame\v!closed
- \pack_framed_stroked_box_normal_closed
- \else
- \pack_framed_stroked_box_normal_opened
- \fi}
-
\def\pack_framed_t_rule{\hrule\s!height\d_framed_linewidth\kern-\d_framed_linewidth}
\def\pack_framed_b_rule{\kern-\d_framed_linewidth\hrule\s!height\d_framed_linewidth}
\def\pack_framed_r_rule{\kern-\d_framed_linewidth\vrule\s!width\d_framed_linewidth}
@@ -862,7 +836,7 @@
%D for passing this identifier between brackets lays in the mere fact that this way
%D we can use the optional argument grabbers.
-\def\defaultframeoffset{.25\exheight}
+\def\defaultframeoffset{.25ex}
\installcorenamespace{regularframedlevel}
@@ -1025,11 +999,9 @@
\edef\currentframed{#1}%
\pack_framed_initialize
\setbox\b_framed_normal\hbox{#4}%
- \iftrialtypesetting \else
- \edef\m_overlay_region{\framedparameter\c!region}%
- \ifx\m_overlay_region\empty\else
- \pack_framed_set_region
- \fi
+ \edef\p_framed_region{\framedparameter\c!region}%
+ \ifx\p_framed_region\v!yes % maybe later named
+ \pack_framed_add_region
\fi
\setupcurrentframed[#3]%
\edef\p_framed_rulethickness{\framedparameter\c!rulethickness}% also used in backgrounds
@@ -1056,11 +1028,6 @@
\pack_framed_add_background
\fi
\pack_framed_restore_depth
- \iftrialtypesetting \else
- \ifx\m_overlay_region\empty\else
- \pack_framed_add_region
- \fi
- \fi
\box\b_framed_normal
\egroup}
@@ -1069,9 +1036,9 @@
\unexpanded\def\pack_framed_process_box_indeed#1#2% component box (assumes parameters set and grouped usage)
{\setbox\b_framed_normal\box#2% could actually be \let\b_framed_normal#2
- \edef\m_overlay_region{\framedparameter\c!region}%
- \ifx\m_overlay_region\empty\else
- \pack_framed_set_region
+ \edef\p_framed_region{\framedparameter\c!region}%
+ \ifx\p_framed_region\empty\else
+ \pack_framed_add_region
\fi
\edef\p_framed_rulethickness{\framedparameter\c!rulethickness}% also used in backgrounds
\d_framed_frameoffset\framedparameter\c!frameoffset\relax % also used in backgrounds
@@ -1094,9 +1061,6 @@
\edef\p_framed_component{#1}%
\pack_framed_add_background
\fi
- \ifx\m_overlay_region\empty\else
- \pack_framed_add_region
- \fi
\box\b_framed_normal
\egroup}
@@ -1638,13 +1602,6 @@
\fi
\ifconditional\c_framed_has_height
\ht\b_framed_normal\d_framed_height
- \else
- \edef\p_framed_minheight{\framedparameter\c!minheight}%
- \ifx\p_framed_minheight\empty \else
- \ifdim\ht\b_framed_normal<\p_framed_minheight
- \ht\b_framed_normal\p_framed_minheight
- \fi
- \fi
\fi
\edef\p_framed_empty{\framedparameter\c!empty}%
\ifx\p_framed_empty\v!yes
@@ -1652,9 +1609,9 @@
\fi
\pack_framed_stop_orientation % moved here at 2014-05-25
\iftrialtypesetting \else
- \edef\m_overlay_region{\framedparameter\c!region}%
- \ifx\m_overlay_region\empty\else
- \pack_framed_set_region
+ \edef\p_framed_region{\framedparameter\c!region}%
+ \ifx\p_framed_region\empty\else
+ \pack_framed_add_region
\fi
\fi
\d_framed_applied_offset
@@ -1692,11 +1649,6 @@
\fi
\fi
\pack_framed_locator_after\p_framed_location
- \iftrialtypesetting \else
- \ifx\m_overlay_region\empty\else
- \pack_framed_add_region
- \fi
- \fi
\box\b_framed_normal
\global\frameddimensionstate % global so to be used directly afterwards !
\ifconditional\c_framed_has_width
@@ -2251,7 +2203,7 @@
\ignorespaces}
\def\dododoformatonelinerbox
- {\hpack to \hsize % was \hbox
+ {\hbox to \hsize % maybe \hpack
{\ifcase\raggedstatus\or\hss\or\hss \fi
\unhbox\nextbox \removeunwantedspaces
\ifcase\raggedstatus\or \or\hss\or\hss\fi}%
@@ -2372,7 +2324,7 @@
\doformatonelinerbox}
\def\pack_framed_format_format_vsize
- {\vbox to \d_framed_height % no vpack .. maybe grid
+ {\vbox to \d_framed_height
\bgroup
\let\postprocessframebox\relax
% \pack_framed_forgetall
@@ -2599,9 +2551,9 @@
\par
\kern-\d_framed_linewidth
\dontleavehmode
- \hpack to \zeropoint{\hss\vrule\s!height\d_framed_linewidth\s!depth\zeropoint\s!width\scratchwidth}%
+ \hpack to \zeropoint{\normalhss\vrule\s!height\d_framed_linewidth\s!depth\zeropoint\s!width\scratchwidth}%
\hfill
- \hpack to \zeropoint{\vrule\s!height\d_framed_linewidth\s!depth\zeropoint\s!width\scratchwidth\hss}%
+ \hpack to \zeropoint{\vrule\s!height\d_framed_linewidth\s!depth\zeropoint\s!width\scratchwidth\normalhss}%
\par
\nointerlineskip
\kern\scratchoffset
@@ -2840,7 +2792,7 @@
\csname\??framedtextlocation\framedtextparameter\c!location\endcsname
\resetframedtextparameter\c!location
\pack_framed_text_check
- \setbox\b_framed_normal\vbox % \vpack
+ \setbox\b_framed_normal\vbox
\startboxedcontent
\hsize\localhsize
% \insidefloattrue % ? better
@@ -3117,7 +3069,7 @@
\fi}
\def\pack_framed_start_content_indeed
- {\setbox\b_framed_normal\hpack\bgroup
+ {\setbox\b_framed_normal\hbox\bgroup % maybe \hpack
\setlocalhsize
\hsize\localhsize
\scratchleftoffset \framedcontentparameter\c!leftoffset \relax
@@ -3127,16 +3079,16 @@
\advance\hsize\dimexpr-\scratchleftoffset-\scratchrightoffset \relax
\advance\vsize\dimexpr-\scratchtopoffset -\scratchbottomoffset\relax
\kern\scratchleftoffset
- \vpack\bgroup
+ \vbox\bgroup
\vskip\scratchtopoffset
- \vbox\bgroup
- \forgetall
- \blank[\v!disable]}
+ \vbox\bgroup
+ \forgetall
+ \blank[\v!disable]}
\def\pack_framed_stop_content_indeed
- {\removelastskip
- \egroup
- \vskip\scratchbottomoffset
+ {\removelastskip
+ \egroup
+ \vskip\scratchbottomoffset
\egroup
\kern\scratchrightoffset
\egroup
@@ -3180,16 +3132,4 @@
\let\themaxboxwidth\clf_themaxboxwidth
-%D New: slow but ok for most cases:
-
-\unexpanded\def\doifelseframed#1%
- {\ifcase\numexpr\zerocount
- \immediateassignment\edef\tempstring{#1\c!frame }\ifx\tempstring\v!on +\plusone\fi
- \immediateassignment\edef\tempstring{#1\c!topframe }\ifx\tempstring\v!on +\plusone\fi
- \immediateassignment\edef\tempstring{#1\c!bottomframe}\ifx\tempstring\v!on +\plusone\fi
- \immediateassignment\edef\tempstring{#1\c!leftframe }\ifx\tempstring\v!on +\plusone\fi
- \immediateassignment\edef\tempstring{#1\c!rightframe }\ifx\tempstring\v!on +\plusone\fi
- \immediateassignment\edef\tempstring{#1\c!background }\ifx\tempstring\empty\else+\plusone\fi
- \relax\expandafter\secondoftwoarguments\else\expandafter\firstoftwoarguments\fi}
-
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-bck.mkiv b/Master/texmf-dist/tex/context/base/mkiv/page-bck.mkiv
index 1ec7cdbb86e..b44910bbe6c 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/page-bck.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/page-bck.mkiv
@@ -52,7 +52,7 @@
\let\currentotrbackground\empty
-%D This is the only spot where we have a low level dependency on the way
+%D This is the only spot where we hav ea low level dependency on the way
%D parent chains are defined but we want the speed.
\unexpanded\def\page_backgrounds_check_background
diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-box.mkvi b/Master/texmf-dist/tex/context/base/mkiv/page-box.mkvi
index 10d5916319f..083a94390e5 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/page-box.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/page-box.mkvi
@@ -15,7 +15,7 @@
\unprotect
-%D The often two step approach (_indeed) saves skipping tokens
+%D The often two step approach (_indeed) saves skippign tokens
%D which is nicer for tracing.
%D Centering the paper area on the print area is determined
@@ -251,25 +251,14 @@
\def\page_boxes_apply_offsets#1%
{\setbox#1\vpack to \paperheight
{\hsize\paperwidth
- \vkern\topspace
-% \parfillskip\zeropoint
- \hkern\doifbothsides\backspace\backspace{\dimexpr\paperwidth-\backspace-\makeupwidth\relax}%
+ \vskip\topspace
+ \doifbothsides
+ {\hskip\backspace}
+ {\hskip\backspace}
+ {\hskip\dimexpr\paperwidth-\backspace-\makeupwidth\relax}%
\box#1}%
\dp#1\zeropoint}
-% \def\page_boxes_apply_offset#box%
-% {\scratchwidth \wd#box%
-% \scratchheight\ht#box%
-% \scratchdepth \dp#box%
-% \setbox#box\vpack
-% {\offinterlineskip
-% \vkern\topoffset
-% \hkern\doifbothsides\backoffset\backoffset{-\backoffset}%
-% \box#box}%
-% \wd#box\scratchwidth
-% \ht#box\scratchheight
-% \dp#box\scratchdepth}
-
% \let\page_boxes_apply_clip_paper \gobbleoneargument
% \let\page_boxes_apply_clip_print_left \gobbleoneargument
% \let\page_boxes_apply_clip_print_right\gobbleoneargument
diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-cst.lua b/Master/texmf-dist/tex/context/base/mkiv/page-cst.lua
index 1c2f5fc0b48..155d6e8b0d1 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/page-cst.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/page-cst.lua
@@ -19,86 +19,87 @@ local trace_cells = false trackers.register("columnsets.cells", function(v) t
local report = logs.reporter("column sets")
-local setmetatableindex = table.setmetatableindex
-
-local properties = nodes.properties
-
-local nodecodes = nodes.nodecodes
-
-local hlist_code = nodecodes.hlist
-local vlist_code = nodecodes.vlist
-local kern_code = nodecodes.kern
-local glue_code = nodecodes.glue
-local penalty_code = nodecodes.penalty
-local rule_code = nodecodes.rule
-
-local nuts = nodes.nuts
-local tonode = nuts.tonode
-local tonut = nuts.tonut
-
-local hpack = nuts.hpack
-local vpack = nuts.vpack
-local flushlist = nuts.flush_list
------ removenode = nuts.remove
-
-local setlink = nuts.setlink
-local setlist = nuts.setlist
-local setnext = nuts.setnext
-local setprev = nuts.setprev
-local setsubtype = nuts.setsubtype
-local setbox = nuts.setbox
-local getwhd = nuts.getwhd
-local setwhd = nuts.setwhd
-local getkern = nuts.getkern
-local getpenalty = nuts.getpenalty
-local getwidth = nuts.getwidth
-local getheight = nuts.getheight
-
-local getnext = nuts.getnext
-local getprev = nuts.getprev
-local getid = nuts.getid
-local getlist = nuts.getlist
-local getsubtype = nuts.getsubtype
-local takebox = nuts.takebox
-local takelist = nuts.takelist
-local splitbox = nuts.splitbox
-local getattribute = nuts.getattribute
-local copylist = nuts.copy_list
-
-local getbox = nuts.getbox
-local getcount = tex.getcount
-local getdimen = tex.getdimen
-
-local texsetbox = tex.setbox
-local texsetcount = tex.setcount
-local texsetdimen = tex.setdimen
-
-local theprop = nuts.theprop
-
-local nodepool = nuts.pool
-
-local new_vlist = nodepool.vlist
-local new_trace_rule = nodepool.rule
-local new_empty_rule = nodepool.emptyrule
-
-local context = context
-local implement = interfaces.implement
-
-local variables = interfaces.variables
-local v_here = variables.here
-local v_fixed = variables.fixed
-local v_top = variables.top
-local v_bottom = variables.bottom
-local v_repeat = variables["repeat"]
-local v_yes = variables.yes
-local v_page = variables.page
-local v_first = variables.first
-local v_last = variables.last
------ v_wide = variables.wide
-
-pagebuilders = pagebuilders or { } -- todo: pages.builders
-pagebuilders.columnsets = pagebuilders.columnsets or { }
-local columnsets = pagebuilders.columnsets
+local setmetatableindex = table.setmetatableindex
+
+local properties = nodes.properties
+
+local nodecodes = nodes.nodecodes
+local rulecodes = nodes.rulecodes
+
+local hlist_code = nodecodes.hlist
+local vlist_code = nodecodes.vlist
+local kern_code = nodecodes.kern
+local glue_code = nodecodes.glue
+local penalty_code = nodecodes.penalty
+local rule_code = nodecodes.rule
+
+local nuts = nodes.nuts
+local tonode = nuts.tonode
+local tonut = nuts.tonut
+
+local hpack = nuts.hpack
+local vpack = nuts.vpack
+local flushlist = nuts.flush_list
+----- removenode = nuts.remove
+
+local setlink = nuts.setlink
+local setlist = nuts.setlist
+local setnext = nuts.setnext
+local setprev = nuts.setprev
+local setsubtype = nuts.setsubtype
+local setbox = nuts.setbox
+local getwhd = nuts.getwhd
+local setwhd = nuts.setwhd
+local getkern = nuts.getkern
+local getpenalty = nuts.getpenalty
+local getwidth = nuts.getwidth
+local getheight = nuts.getheight
+
+local getnext = nuts.getnext
+local getprev = nuts.getprev
+local getid = nuts.getid
+local getlist = nuts.getlist
+local getsubtype = nuts.getsubtype
+local takebox = nuts.takebox
+local takelist = nuts.takelist
+local splitbox = nuts.splitbox
+local getattribute = nuts.getattribute
+local copylist = nuts.copy_list
+
+local getbox = nuts.getbox
+local getcount = tex.getcount
+local getdimen = tex.getdimen
+
+local texsetbox = tex.setbox
+local texsetcount = tex.setcount
+local texsetdimen = tex.setdimen
+
+local theprop = nuts.theprop
+
+local nodepool = nuts.pool
+
+local new_vlist = nodepool.vlist
+local new_trace_rule = nodepool.rule
+local new_empty_rule = nodepool.emptyrule
+
+local context = context
+local implement = interfaces.implement
+
+local variables = interfaces.variables
+local v_here = variables.here
+local v_fixed = variables.fixed
+local v_top = variables.top
+local v_bottom = variables.bottom
+local v_repeat = variables["repeat"]
+local v_yes = variables.yes
+local v_page = variables.page
+local v_first = variables.first
+local v_last = variables.last
+----- v_wide = variables.wide
+
+pagebuilders = pagebuilders or { } -- todo: pages.builders
+pagebuilders.columnsets = pagebuilders.columnsets or { }
+local columnsets = pagebuilders.columnsets
local data = { [""] = { } }
diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-cst.mkiv b/Master/texmf-dist/tex/context/base/mkiv/page-cst.mkiv
index 37df4e8b17c..f6eede68a52 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/page-cst.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/page-cst.mkiv
@@ -765,7 +765,7 @@
% state start | repeat
-%D The old one:
+% for now (transition)
\let\definecolumnset \definepagegrid
\let\setupcolumnset \setuppagegrid
@@ -782,6 +782,5 @@
\let\setupcolumnsetarea \setuppagegridarea
\let\setupcolumnsetareatext\setuppagegridareatext
-%D It ends here.
+\protect
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-ffl.mkiv b/Master/texmf-dist/tex/context/base/mkiv/page-ffl.mkiv
index 414cae4ac11..5536371a79e 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/page-ffl.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/page-ffl.mkiv
@@ -84,29 +84,26 @@
\def\strc_floats_facing_flush
{\ifnum\c_strc_floats_flushed<\c_strc_floats_saved
- \strc_floats_facing_flush_indeed % less tracing
- \fi}
-
-\def\strc_floats_facing_flush_indeed
- {\global\advance\c_strc_floats_flushed\plusone
- \floatingpenalty\zerocount
- \insert\namedinsertionnumber\s!topfloat\bgroup
- \forgetall
- \ifconditional\c_page_one_top_of_insert
- \ifconditional\c_page_one_correct_top_insert
- \topskipcorrection % [xx] new: see icare topbleed
- \kern-\lineskip
- \par
- \prevdepth\maxdimen
+ \global\advance\c_strc_floats_flushed\plusone
+ \floatingpenalty\zerocount
+ \insert\namedinsertionnumber\s!topfloat\bgroup
+ \forgetall
+ \ifconditional\c_page_one_top_of_insert
+ \ifconditional\c_page_one_correct_top_insert
+ \topskipcorrection % [xx] new: see icare topbleed
+ \kern-\lineskip
+ \par
+ \prevdepth\maxdimen
+ \fi
\fi
+ \directboxfromcache{\currentfacingfloat}{\number\c_strc_floats_flushed}%
+ \vskip\s_page_one_between_top_insert
+ \egroup
+ \ifnum\c_strc_floats_saved=\c_strc_floats_flushed
+ \global\c_strc_floats_saved \zerocount
+ \global\c_strc_floats_flushed\zerocount
+ \resetboxesincache{\currentfacingfloat}%
\fi
- \directboxfromcache{\currentfacingfloat}{\number\c_strc_floats_flushed}%
- \vkern\s_page_one_between_top_insert
- \egroup
- \ifnum\c_strc_floats_saved=\c_strc_floats_flushed
- \global\c_strc_floats_saved \zerocount
- \global\c_strc_floats_flushed\zerocount
- \resetboxesincache{\currentfacingfloat}%
\fi}
\unexpanded\def\strc_floats_facing_setup
diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-flt.mkiv b/Master/texmf-dist/tex/context/base/mkiv/page-flt.mkiv
index 83e2b49547a..a06c90ec12c 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/page-flt.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/page-flt.mkiv
@@ -284,16 +284,16 @@
\doifnotinset\v!low\floatspecification\vfill}%
\page_otr_fill_and_eject_page}
-\let\m_page_otr_checked_page_float\relax
+\let\m_page_otf_checked_page_float\relax
\unexpanded\def\page_floats_flush_page_floats % used in postpone
- {\edef\m_page_otr_checked_page_float{\clf_checkedpagefloat}%
- \ifx\m_page_otr_checked_page_float\empty
+ {\edef\m_page_otf_checked_page_float{\clf_checkedpagefloat}%
+ \ifx\m_page_otf_checked_page_float\empty
% nothing
- \else\ifx\m_page_otr_checked_page_float\v!empty
+ \else\ifx\m_page_otf_checked_page_float\v!empty
\emptyhbox \page_otr_fill_and_eject_page % why not dummy_page
\else
- \page_floats_flush_page_floats_indeed\m_page_otr_checked_page_float
+ \page_floats_flush_page_floats_indeed\m_page_otf_checked_page_float
\fi\fi}
% temp hack, needed to prevent floatbox being forgotten during
diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-imp.mkiv b/Master/texmf-dist/tex/context/base/mkiv/page-imp.mkiv
index 838ad742188..c08f9856fa7 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/page-imp.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/page-imp.mkiv
@@ -26,7 +26,7 @@
\newtoks\t_page_text_data
\unexpanded\def\starttextdata#1\stoptextdata
- {\glet\page_shipouts_flush_text_data\page_shipouts_flush_text_data_indeed
+ {\global\let\page_shipouts_flush_text_data\page_shipouts_flush_text_data_indeed
\globaladdtotoks\t_page_text_data{#1}}
\let\stoptextdata\relax
@@ -34,7 +34,7 @@
\def\page_shipouts_flush_text_data_indeed
{\vsmashed{\the\t_page_text_data}%
\global\t_page_text_data\emptytoks
- \glet\page_shipouts_flush_text_data\relax}
+ \global\let\page_shipouts_flush_text_data\relax}
\let\page_shipouts_flush_text_data\relax
@@ -63,21 +63,9 @@
\newbox \shipoutscratchbox
-\setnewconstant\shipoutfinalizemethod\plusone
+\setnewconstant\shipoutfinalizemethod\plusone % this will be default (we will have two finalizers)
-\unexpanded\def\shipoutrange#1#2%
- {\begingroup
- \scratchtoks\emptytoks
- \dostepwiserecurse{#1}{\numexpr#2-\plusone\relax}\plusone{\etoksapp\scratchtoks{##1,}}%
- \xdef\pagestoshipout{\the\scratchtoks,\number#2}%
- \doglobal\appendtoks
- \ifnum\realpageno>\numexpr#2+\plusone\relax
- \global\everypar{\normalend}%
- \fi
- \to\everyaftershipout
- \endgroup}
-
-\unexpanded\def\installshipoutmethod#1#2% % a handler takes one argument: something to be boxed
+\unexpanded\def\installshipoutmethod#1#2% % a handler takes one argument: something to be boxed
{\setgvalue{\??shipoutmethod#1}##1{#2{##1}}} % and shipped out (don't depend on the exact package)
\let\installpagehandler\installshipoutmethod % will go
@@ -85,6 +73,13 @@
\unexpanded\def\invokepagehandler#1%
{\expandnamespacevalue\??shipoutmethod{#1}\v!normal}
+% \def\page_shipouts_handle
+% {\csname\??shipoutmethod\ifcsname\??shipoutmethod\v_page_target_method\endcsname
+% \v_page_target_method
+% \else
+% \v!none
+% \fi\endcsname}
+
\def\page_shipouts_handle
{\ifcsname\??shipoutmethod\v_page_target_method\endcsname
\expandafter\lastnamedcs
@@ -117,14 +112,12 @@
\page_boxes_flush_before
\fi
\the\everybeforeshipout
- \ifcase\shipoutfinalizemethod % not nice ... needs thinking
+ \ifcase\shipoutfinalizemethod
\page_shipouts_handle{#1}%
\else
- \setbox\shipoutscratchbox\hpack
- {#1}% just in case there are objects there, hook for testing (will go away)
- \page_shipouts_handle
- {\finalizeshipoutbox\shipoutscratchbox
- \box\shipoutscratchbox}%
+ \setbox\shipoutscratchbox\hpack{#1}% just in case there are objects there, hook for testing (will go away)
+ \finalizeshipoutbox\shipoutscratchbox
+ \page_shipouts_handle{\box\shipoutscratchbox}%
\fi
\setnextrealpageno % so this comes before \everyaftershipout so in fact:
\the\everyaftershipout % at this point we're already on the next realpage
@@ -134,12 +127,11 @@
\def\page_shipouts_ignore#1%
{\begingroup
- \writestatus\m!system
- {\ifarrangingpages arranged \fi page
+ \message
+ {[\ifarrangingpages arranged \fi page
\ifarrangingpages\the\arrangeno\else\the\realpageno\fi\normalspace
- not flushed}%
- % \setbox\scratchbox\hpack
- % {#1}% no finalize
+ not flushed]}%
+ \setbox\scratchbox\hpack{#1}%
\deadcycles\zerocount
\endgroup}
@@ -162,11 +154,7 @@
\box\scratchbox
\endgroup}
-\ifdefined \page_shipout_box \else
-
- \def\page_shipout_box#1{\normalshipout\box#1\relax} % takes a number
-
-\fi
+\newdimen\d_page_shipouts_offset \d_page_shipouts_offset=-1in
\def\page_shipouts_normal#1%
{\global\advance\shippedoutpages\plusone
@@ -185,36 +173,30 @@
\normalexpanded{\doifelseinset{\the\shippedoutpages}{\pagestoshipout}}\donetrue\donefalse
\fi
\ifdone
- \setbox\shipoutscratchbox\hpack
- {#1}% finalizes
+ \setbox\shipoutscratchbox\hpack{#1}%
\ifcase\shipoutfinalizemethod
\finalizeshipoutbox\shipoutscratchbox
\fi
- \setbox\shipoutscratchbox\vpack
- {\scratchdimen\clf_shipoutoffset\relax
- \ifdim\scratchdimen=\zeropoint\else
- \offinterlineskip
- \vkern\scratchdimen
- \hkern\scratchdimen
- \fi
+ \normalshipout\vpack
+ {\offinterlineskip
+ \vskip\d_page_shipouts_offset
+ \hskip\d_page_shipouts_offset
\hpack
{\page_otr_flush_every_stuff
\page_otr_flush_special_content
\box\shipoutscratchbox}}%
- \page_shipout_box\shipoutscratchbox % takes a box number!
\else
\page_shipouts_ignore{#1}%
\fi}
\def\page_shipouts_arrange#1%
- {\begingroup
- \setbox\shipoutscratchbox\hpack
- {#1}% finalizes
- \setbox\shipoutscratchbox\hpack
+ {% \global\advance\shippedoutpages\plusone
+ \begingroup
+ \setbox\scratchbox\hpack
{\page_otr_flush_every_stuff
\page_otr_flush_special_content
\box\shipoutscratchbox}%
- \pusharrangedpage\shipoutscratchbox
+ \pusharrangedpage\scratchbox
\deadcycles\zerocount
\endgroup}
@@ -328,14 +310,14 @@
\let\pusharrangedpage\relax
\def\dosetuparrangement#1#2#3#4#5#6#7#8%
- {\global\arrangedpageX #1%
- \global\arrangedpageY #2%
- \global\arrangedpageT #3%
- \global\c_page_marks_nx #4%
- \global\c_page_marks_ny #5%
- \glet \pusharrangedpage #6%
- \glet \poparrangedpages #7%
- \glet \handlearrangedpage#8}
+ {\global\arrangedpageX #1%
+ \global\arrangedpageY #2%
+ \global\arrangedpageT #3%
+ \global\c_page_marks_nx #4%
+ \global\c_page_marks_ny #5%
+ \global\let\pusharrangedpage #6%
+ \global\let\poparrangedpages #7%
+ \global\let\handlearrangedpage#8}
\installpagearrangement {\v!normal}
{\global\arrangingpagesfalse}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-inf.mkiv b/Master/texmf-dist/tex/context/base/mkiv/page-inf.mkiv
index 4519083bf19..2064f9f25be 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/page-inf.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/page-inf.mkiv
@@ -112,16 +112,14 @@
{\vfill
\settexthoffset
\hsize\dimexpr\scratchdimen-2\texthoffset\relax
- \hkern\texthoffset % brrrr
+ \hskip\texthoffset % brrrr
\vbox to \zeropoint{\vss\page_info_place_info}%
- \vkern\bodyfontsize}%
+ \vskip\bodyfontsize}%
\dp\b_page_versions\zeropoint
\wd\b_page_versions\scratchdimen
- \setbox#1\hpack{\box#1\hkern-\scratchdimen\box\b_page_versions}}
+ \setbox#1\hpack{\box#1\hskip-\scratchdimen\box\b_page_versions}}
\setupversion % resets
[\v!final]
-\let\page_info_add_to_box\gobbleoneargument
-
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-ini.lua b/Master/texmf-dist/tex/context/base/mkiv/page-ini.lua
index 3d553412815..5b73c972903 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/page-ini.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/page-ini.lua
@@ -41,39 +41,23 @@ function pages.mark(name,list)
local page = list[i]
local sign = false
if type(page) == "string" then
- local f, t = match(page,"(%d+)[:%-](%d+)")
- if f and t then
- f, t = tonumber(f), tonumber(t)
- if f and t and f <= t then
- if trace then
- report("marking page %i upto %i as %a",f,t,name)
- end
- for page=f,t do
- data[page][name] = true
- end
- end
- page = false
- else
- local s, p = match(page,"([%+%-])(%d+)")
- if s then
- sign, page = s, p
- end
+ local s, p = match(page,"([%+%-])(%d+)")
+ if s then
+ sign, page = s, p
end
end
+ page = tonumber(page)
if page then
- page = tonumber(page)
- if page then
- if sign == "+" then
- page = realpage + page
- end
- if sign == "-" then
- report("negative page numbers are not supported")
- else
- if trace then
- report("marking page %i as %a",page,name)
- end
- data[page][name] = true
+ if sign == "+" then
+ page = realpage + page
+ end
+ if sign == "-" then
+ report("negative page numbers are not supported")
+ else
+ if trace then
+ report("marking page %i as %a",page,name)
end
+ data[page][name] = true
end
end
end
@@ -91,6 +75,7 @@ local function marked(name)
rawset(data,i,nil)
end
local pagedata = rawget(data,realpage)
+ print(pagedata and pagedata[name] and true or false)
return pagedata and pagedata[name] and true or false
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-ini.mkiv b/Master/texmf-dist/tex/context/base/mkiv/page-ini.mkiv
index 38477dc2747..dc94edf7638 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/page-ini.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/page-ini.mkiv
@@ -80,7 +80,7 @@
\fi}
\def\page_otr_flush_pending_content
- {\vkern\zeropoint\relax
+ {\vskip\zeropoint\relax
\ifvoid\normalpagebox \else
\unvbox\normalpagebox
\penalty\outputpenalty
@@ -256,10 +256,7 @@
\box\pagebox
\egroup \ifconditional\c_page_boxes_save_page_body \copy\b_page_boxes_saved_page_body \fi}
-\appendtoks
- \restoreglobalbodyfont
- \pickupattributes
-\to \everybeforepagebody
+\appendtoks \restoreglobalbodyfont \to \everybeforepagebody
\ifdefined\nestednewbox \else \newbox\nestednextbox \fi % hm, still needed?
diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-inj.mkvi b/Master/texmf-dist/tex/context/base/mkiv/page-inj.mkvi
index 5f48ffd13dd..cabd07bac14 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/page-inj.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/page-inj.mkvi
@@ -124,7 +124,7 @@
\ifx\currentpageinjectionalternative\v!none \else % increment counter but don’t generate output
\forgetparindent
\dontcomplain
- \setconstant\shipoutfinalizemethod\zerocount % this is messy
+ \setconstant\shipoutfinalizemethod\zerocount
\page_injections_flush_indeed
\fi}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-lay.mkiv b/Master/texmf-dist/tex/context/base/mkiv/page-lay.mkiv
index 02cc5aa17f2..7b80dadb98b 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/page-lay.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/page-lay.mkiv
@@ -13,16 +13,19 @@
\writestatus{loading}{ConTeXt Page Macros / Layout Specification}
-%D Before you start wondering why some of the page related modules skip upward or
-%D left in order to place elements, you must realize that the reference point is the
-%D top left corner of the main typesetting area. One reason for this choice is that
-%D it suited some viewers that displayed page areas. Another reason is that margins,
-%D edges and top and bottom areas are kind of virtual, while the header, text and
-%D footer areas normally determine the text flow.
+%D Before you start wondering why some of the page related
+%D modules skip upward or left in order to place elements, you
+%D must realize that the reference point is the top left
+%D corner of the main typesetting area. One reason for this
+%D choice is that it suited some viewers that displayed page
+%D areas. Another reason is that margins, edges and top and
+%D bottom areas are kind of virtual, while the header, text
+%D and footer areas normally determine the text flow.
\unprotect
-%D The dimensions related to layout areas are represented by real dimensions.
+%D The dimensions related to layout areas are represented by
+%D real dimensions.
\newdimen\paperheight \paperheight = 297mm
\newdimen\paperwidth \paperwidth = 210mm
@@ -66,15 +69,17 @@
\newdimen\totaltextwidth
-%D The next series of dimensions are complemented by left and rights ones.
+%D The next series of dimensions are complemented by left
+%D and rights ones.
\newdimen\margindistance
\newdimen\edgedistance
\newdimen\marginwidth
\newdimen\edgewidth
-%D Because a distance does not really makes sense when there is no area, we use a
-%D zero distance in case there is no area.
+%D Because a distance does not really makes sense when there
+%D is no area, we use a zero distance in case there is no
+%D area.
%D The horizontal distances are:
@@ -144,12 +149,12 @@
\let\currentlayout\empty
\fi
\letlayoutparameter\c!state\v!normal % global ? still needed ?
- \glet\currentlayout\currentlayout % global
+ \global\let\currentlayout\currentlayout % global
\page_layouts_synchronize
\page_layouts_check_next
\or % \setuplayout (reverts to main layout)
\letlayoutparameter\c!state\v!normal % global ? still needed ?
- \glet\currentlayout\empty % global
+ \global\let\currentlayout\empty % global
\page_layouts_synchronize
\page_layouts_check_next
\fi
@@ -239,15 +244,16 @@
\swapmacros\innersidetotal \outersidetotal
\to \everyswapmargins
-%D The papersize macros have a long history and we don't want to change the commands
-%D so they keep looking a bit complex.
+%D The papersize macros have a long history and we don't want
+%D to change the commands so they keep looking a bit complex.
%D \macros
%D {definepapersize}
%D
-%D Before we start calculating layout dimensions, we will first take care of paper
-%D sizes. The first argument can be either an assignment (for defaults) or an
-%D identifier, in which case the second argument is an assignment.
+%D Before we start calculating layout dimensions, we will
+%D first take care of paper sizes. The first argument can be
+%D either an assignment (for defaults) or an identifier, in
+%D which case the second argument is an assignment.
%D
%D \showsetup{definepapersize}
%D
@@ -275,8 +281,8 @@
%D \macros
%D {setuppaper,setuppapersize}
%D
-%D When setting up the papersize on which to typeset and print, we can also
-%D determine some more characteristics.
+%D When setting up the papersize on which to typeset and
+%D print, we can also determine some more characteristics.
%D
%D \showsetup{setuppapersize}
%D
@@ -329,8 +335,9 @@
\def\v_page_target_xy {\numexpr\v_page_target_nx*\v_page_target_ny\relax}
-%D Normally we will not use this command directly but for now it works out okay. In
-%D the future we might use more of the related commands.
+% Normally we will not use this command directly but for now it
+% works out okay. In the future we might use more of the related
+% commands.
\setuplayouttarget
[% these are rather special
@@ -455,7 +462,7 @@
\appendtoks
\page_paper_reinstate
- \glet\page_paper_reinstate\relax
+ \global\let\page_paper_reinstate\relax
\to \everyaftershipout
\unexpanded\def\page_paper_set_restore#1#2%
@@ -531,7 +538,7 @@
\ifx\currentlayouttarget\empty
\let\currentlayouttarget\currentpage
\fi
- \glet\papersize\currentlayouttarget
+ \global\let\papersize\currentlayouttarget
\page_paper_reset_paper
\processcommacommand[\m_page_asked_paper]\page_paper_handle_page_option
\global\paperwidth \layouttargetparameter\c!width \relax
@@ -554,7 +561,7 @@
% locate paper target
\page_paper_reset_print
\processcommacommand[\m_page_asked_print]\page_paper_identify_target
- \glet\printpapersize\currentlayouttarget
+ \global\let\printpapersize\currentlayouttarget
\page_paper_reset_print
\processcommacommand[\m_page_asked_print]\page_paper_handle_print_option
\global\printpaperwidth \layouttargetparameter\c!width \relax
@@ -807,18 +814,18 @@
{\edef\m_page_check{#1}
\edef\m_page_state{\namedlayoutparameter\m_page_check\c!state}%
\ifx\m_page_state\v!start
- \glet\v_page_layouts_pre_check\currentlayout
- \glet\currentlayout\m_page_check
+ \global\let\v_page_layouts_pre_check\currentlayout
+ \global\let\currentlayout\m_page_check
\page_layouts_synchronize
\else\ifx\m_page_state\v!repeat
- \glet\v_page_layouts_pre_check\relax
- \glet\currentlayout\m_page_check
+ \global\let\v_page_layouts_pre_check\relax
+ \global\let\currentlayout\m_page_check
\page_layouts_synchronize
\fi\fi}
\def\page_layouts_check_revert
- {\glet\currentlayout\v_page_layouts_pre_check
- \glet\v_page_layouts_pre_check\relax
+ {\global\let\currentlayout\v_page_layouts_pre_check
+ \global\let\v_page_layouts_pre_check\relax
\page_layouts_synchronize}
\def\page_layouts_check_default
@@ -989,7 +996,6 @@
\newdimen\d_page_adepts_pushed_text_height
\newdimen\d_page_adepts_pushed_footer_height
\newdimen\d_page_adepts_height
-\newdimen\d_page_adapts_delta
\unexpanded\def\adaptlayout
{\dodoubleempty\page_adapts_layout}
@@ -1034,8 +1040,8 @@
\page_otr_command_set_vsize
%
\page_backgrounds_recalculate
- \glet\page_adepts_push\relax
- \glet\page_adepts_pop\page_adepts_pop_indeed}
+ \global\let\page_adepts_push\relax
+ \global\let\page_adepts_pop\page_adepts_pop_indeed}
% \def\page_adapts_check
% {\csname\??pageadaptations\the\ifcsname\??pageadaptations\the\realpageno\endcsname\realpageno\else\zerocount\fi\endcsname}
@@ -1061,8 +1067,8 @@
{\global\textheight \d_page_adepts_pushed_text_height
\global\footerheight\d_page_adepts_pushed_footer_height
\page_layouts_synchronize
- \glet\page_adepts_push\page_adepts_push_indeed
- \glet\page_adepts_pop\relax}
+ \global\let\page_adepts_push\page_adepts_push_indeed
+ \global\let\page_adepts_pop\relax}
\appendtoks \page_adapts_check \to \everystarttext
\appendtoks \page_adapts_reset \to \everyshipout
@@ -1147,8 +1153,8 @@
\def\compensatedinnermakeupmargin
{\dimexpr\ifconditional\innermakeupcompensation+\innermakeupmargin\else\zeropoint\fi\relax}
-\unexpanded\def\freezetextwidth % name will change % \makeupwidth may be set to \textwidth
- {\textwidth\makeupwidth % which is a tricky but valid value
+\unexpanded\def\freezetextwidth % name will change % \makeupwidth may be set to \textwidth
+ {\textwidth\makeupwidth % which is a tricky but valid value
\edef\m_currentlayout_text_width {\layoutparameter\c!textwidth }%
\edef\m_currentlayout_text_margin{\layoutparameter\c!textmargin}%
\ifx\m_currentlayout_text_width\empty \else
@@ -1168,9 +1174,15 @@
{\freezetextwidth
\page_otr_command_set_hsize}
-%D When we start at an even page, we need to swap the layout differently. We cannot
-%D adapt the real page number, since it is used in cross referencing. The next
-%D switch is set when we start at an even page.
+% The next few are better off in page-ini.mkiv
+
+%D When we start at an even page, we need to swap the layout
+%D differently. We cannot adapt the real page number, since
+%D it is used in cross referencing. The next switch is set
+%D when we start at an even page.
+
+% We could use nested if here plus some \@EAEAEA's but but the
+% next variant has less expansion which is nicer in tracing.
% #single #left #right
@@ -1250,7 +1262,7 @@
% \to \everybeforeshipout
\def\goleftonpage % name will change (we could cache)
- {\hkern-\dimexpr\leftmargindistance+\leftmarginwidth+\leftedgedistance+\leftedgewidth\relax}
+ {\hskip-\dimexpr\leftmargindistance+\leftmarginwidth+\leftedgedistance+\leftedgewidth\relax}
\def\doifelsemarginswap#1#2%
{\doifbothsides{#1}{#1}{#2}}
@@ -1315,9 +1327,12 @@
%D \macros
%D {startlocallayout}
%D
-%D These macros should be used with care. They permit local layouts (as used in
-%D fitting pages, see \type {page-app.tex}). This is kind of obsolete now that we
-%D have \type {\definelayout}, so this hack will disappear in future versions.
+%D These macros should be used with care. They permit local
+%D layouts (as used in fitting pages, see \type {page-app.tex}).
+
+%D This is kind of obsolete now that we have \type
+%D {\definelayout}, so this hack will disappear in future
+%D versions.
\unexpanded\def\startlocallayout
{\globalpushmacro\page_paper_restore
@@ -1352,16 +1367,19 @@
\glet\page_grids_add_to_one\gobbleoneargument
\glet\page_grids_add_to_mix\gobbleoneargument
-%D The default dimensions are quite old and will not change. The funny fractions
-%D were introduced when we went from fixed dimensions to relative ones. Since
-%D \CONTEXT\ is a dutch package, the dimensions are based on the metric system. The
-%D asymmetrical layout is kind of handy for short quick||and||dirty stapled
-%D documents.
+%D The default dimensions are quite old and will not change.
+%D The funny fractions were introduced when we went from fixed
+%D dimensions to relative ones. Since \CONTEXT\ is a dutch
+%D package, the dimensions are based on the metric system. The
+%D asymmetrical layout is kind of handy for short
+%D quick||and||dirty stapled documents.
%D
-%D Although valid, it is not a real good idea to use dimensions based on the \type
-%D {em} unit. First of all, since there are no fonts loaded yet, this dimension
-%D makes no sense, and second, you would loose track of values, since they could
-%D change while going to a new page, depending on the current font setting.
+%D Although valid, it is not a real good idea to use
+%D dimensions based on the \type {em} unit. First of all,
+%D since there are no fonts loaded yet, this dimension makes
+%D no sense, and second, you would loose track of values,
+%D since they could change while going to a new page,
+%D depending on the current font setting.
\setuplayout
[ \c!topspace=.08417508418\paperheight, % 2.5cm
@@ -1417,8 +1435,8 @@
\c!columns=\plusone,
\c!columndistance=\zeropoint]
-%D First we define a whole range of (DIN) papersizes, of which the A-series makes
-%D most sense. We enable checking.
+%D First we define a whole range of (DIN) papersizes,
+%D of which the A-series makes most sense. We enable checking.
\definepapersize [A0] [\c!width=841mm,\c!height=1189mm]
\definepapersize [A1] [\c!width=594mm,\c!height=841mm]
@@ -1459,17 +1477,18 @@
\definepapersize [C9] [\c!width=40mm,\c!height=57mm]
\definepapersize [C10] [\c!width=28mm,\c!height=40mm]
-%D Per August 2004 the rounding of some (seldom used) sizes were corrected top the
-%D latest DIN specifications. Peter Rolf came up with these and a few more missing
-%D sizes. Watch out: spaces and slashes!
+%D Per August 2004 the rounding of some (seldom used) sizes
+%D were corrected top the latest DIN specifications. Peter
+%D Rolf came up with these and a few more missing sizes.
+%D Watch out: spaces and slashes!
\definepapersize [4 A0] [\c!width=1682mm,\c!height=2378mm]
\definepapersize [2 A0] [\c!width=1189mm,\c!height=1682mm]
\definepapersize [C6/C5] [\c!width=114mm,\c!height=229mm]
-%D Because there are no standardized screen sizes, we define a bunch of sizes with
-%D $4:3$ ratios. The \type {S6} size is nearly as wide as a sheet of \type {A4}
-%D paper.
+%D Because there are no standardized screen sizes, we define
+%D a bunch of sizes with $4:3$ ratios. The \type {S6} size is
+%D nearly as wide as a sheet of \type {A4} paper.
\definepapersize [S3] [\c!width=300pt,\c!height=225pt]
\definepapersize [S4] [\c!width=400pt,\c!height=300pt]
@@ -1490,13 +1509,15 @@
\definepapersize [S55] [\c!width=500pt,\c!height=500pt]
\definepapersize [S66] [\c!width=600pt,\c!height=600pt]
-%D One may wonder if \TEX\ should be used for typesetting \CDROM\ covers, but it
-%D does not hurt to have the paper size ready.
+%D One may wonder if \TEX\ should be used for typesetting
+%D \CDROM\ covers, but it does not hurt to have the paper size
+%D ready.
\definepapersize [CD] [\c!width=120mm,\c!height=120mm]
-%D The next series is for our English speaking friends who decided to stick to non
-%D metric values. Thanks to Nelson Beebe for completing the inch based list.
+%D The next series is for our English speaking friends who
+%D decided to stick to non metric values. Thanks to Nelson
+%D Beebe for completing the inch based list.
\definepapersize [letter] [\c!width=8.5in,\c!height=11in]
\definepapersize [ledger] [\c!width=11in,\c!height=17in]
@@ -1552,9 +1573,9 @@
\definepapersize [business] [\c!width=85mm,\c!height=55mm]
\definepapersize [businessUS] [\c!width=3.5in,\c!height=2in]
-%D We can now default to a reasonable size. We match the print paper size with the
-%D typeset paper size. This setting should come after the first layout specification
-%D (already done).
+%D We can now default to a reasonable size. We match the print
+%D paper size with the typeset paper size. This setting should
+%D come after the first layout specification (already done).
% \definepapersize
% [\v!default]
diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-lin.lua b/Master/texmf-dist/tex/context/base/mkiv/page-lin.lua
index 3689c7f8d1d..a6b6a12c400 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/page-lin.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/page-lin.lua
@@ -43,14 +43,15 @@ local v_no = variables.no
local properties = nodes.properties
local nodecodes = nodes.nodecodes
+local skipcodes = nodes.skipcodes
+local whatcodes = nodes.whatcodes
local listcodes = nodes.listcodes
local hlist_code = nodecodes.hlist
local vlist_code = nodecodes.vlist
local whatsit_code = nodecodes.whatsit
local glyph_code = nodecodes.glyph
-
-local linelist_code = listcodes.line
+local line_code = listcodes.line
local a_displaymath = attributes.private('displaymath')
local a_linenumber = attributes.private('linenumber')
@@ -70,7 +71,7 @@ local getattr = nuts.getattr
local setattr = nuts.setattr
local getlist = nuts.getlist
local getbox = nuts.getbox
------ getdirection = nuts.getdirection
+----- getdir = nuts.getdir
----- getwidth = nuts.getwidth
local getheight = nuts.getheight
local getdepth = nuts.getdepth
@@ -78,9 +79,8 @@ local getdepth = nuts.getdepth
local setprop = nuts.setprop
local getprop = nuts.getprop
-local nexthlist = nuts.traversers.hlist
-local nextvlist = nuts.traversers.vlist
-
+local traverse_id = nuts.traverse_id
+local traverse = nuts.traverse
local copy_node = nuts.copy
----- hpack_nodes = nuts.hpack
local is_display_math = nuts.is_display_math
@@ -224,9 +224,7 @@ implement {
local function check_number(n,a,skip,sameline)
local d = data[a]
if d then
- local tag = d.tag or ""
- local skipflag = 0
- local s = d.start or 1
+ local tag, skipflag, s = d.tag or "", 0, d.start or 1
current_list[#current_list+1] = { n, s }
if sameline then
skipflag = 0
@@ -246,7 +244,7 @@ local function check_number(n,a,skip,sameline)
end
local p = checkline(n)
if p then
- ctx_makelinenumber(tag,skipflag,s,p.hsize,p.reverse and 1 or 0)
+ ctx_makelinenumber(tag,skipflag,s,p.hsize,p.reverse and "TRT" or "TLT")
else
report_lines("needs checking")
end
@@ -285,8 +283,8 @@ end
local function listisnumbered(list)
if list then
- for n, subtype in nexthlist, list do
- if subtype == linelist_code then
+ for n in traverse_id(hlist_code,list) do
+ if getsubtype(n) == line_code then
local a = getattr(n,a_linenumber)
if a then
-- a quick test for lines (only valid when \par before \stoplinenumbering)
@@ -308,7 +306,7 @@ local function findnumberedlist(list)
while n do
local id = getid(n)
if id == hlist_code then
- if getsubtype(n) == linelist_code then
+ if getsubtype(n) == line_code then
local a = getattr(n,a_linenumber)
if a then
return a > 0 and list
@@ -385,8 +383,9 @@ function boxed.stage_one(n,nested)
local skip = false
local function check()
- for n, subtype in nexthlist, list do
- if subtype ~= linelist_code then
+ for n in traverse_id(hlist_code,list) do -- attr test here and quit as soon as zero found
+ local subtype = getsubtype(n)
+ if subtype ~= line_code then
-- go on
elseif getheight(n) == 0 and getdepth(n) == 0 then
-- skip funny hlists -- todo: check line subtype
@@ -451,7 +450,7 @@ function boxed.stage_one(n,nested)
if not list then
return
end
- for n in nextvlist, list do
+ for n in traverse_id(vlist_code,list) do
local p = properties[n]
if p and p.columngap then
if trace_numbers then
@@ -473,21 +472,18 @@ end
function boxed.stage_two(n,m)
if #current_list > 0 then
m = m or lines.scratchbox
- local t = { }
- local tn = 0
- for l in nexthlist, getlist(getbox(m)) do
+ local t, tn = { }, 0
+ for l in traverse_id(hlist_code,getlist(getbox(m))) do
tn = tn + 1
t[tn] = copy_node(l) -- use take_box instead
end
for i=1,#current_list do
local li = current_list[i]
- local n = li[1]
- local m = li[2]
- local ti = t[i]
+ local n, m, ti = li[1], li[2], t[i]
if ti then
- -- local d = getdirection(n)
+ -- local d = getdir(n)
-- local l = getlist(n)
- -- if d == 1 then
+ -- if d == "TRT" then
-- local w = getwidth(n)
-- ti = hpack_nodes(linked_nodes(new_kern(-w),ti,new_kern(w)))
-- end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-lin.mkvi b/Master/texmf-dist/tex/context/base/mkiv/page-lin.mkvi
index a27ba5736c5..4348d677065 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/page-lin.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/page-lin.mkvi
@@ -46,10 +46,6 @@
\attribute\linenumberattribute\attributeunsetvalue
\to \everyforgetall
-\appendtoks
- \attribute\linenumberattribute \attributeunsetvalue
-\to \everyinsidefloat
-
\newcount \linenumber % not used
\newbox \b_page_lines_scratch
\newcount \c_page_lines_reference
@@ -279,8 +275,8 @@
\fi\fi\fi
\fi
\the\beforeeverylinenumbering
- \glet\page_postprocessors_page \page_postprocessors_linenumbers_page
- \glet\page_postprocessors_column\page_postprocessors_linenumbers_column
+ \globallet\page_postprocessors_page \page_postprocessors_linenumbers_page
+ \globallet\page_postprocessors_column\page_postprocessors_linenumbers_column
\global\settrue\page_postprocessors_needed_box % see core-rul.mkiv
\ifcase\c_page_lines_mode\relax
\page_lines_start_update % continue
@@ -353,7 +349,7 @@
\d_page_lines_distance\linenumberingparameter\c!distance\relax
\edef\p_align{\linenumberingparameter\c!align}%
\edef\p_location{\linenumberingparameter\c!location}%
- \ifcase#dir\relax
+ \ifcase\istltdir#dir\relax
\settrue \c_page_lines_dir_left_to_right
\else
\setfalse\c_page_lines_dir_left_to_right
diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-mix.lua b/Master/texmf-dist/tex/context/base/mkiv/page-mix.lua
index 192b8a30aa6..107ac14102c 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/page-mix.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/page-mix.lua
@@ -69,6 +69,8 @@ local getpenalty = nuts.getpenalty
local getwidth = nuts.getwidth
local getheight = nuts.getheight
local getdepth = nuts.getdepth
+local traverse_id = nuts.traverse_id
+local traverse = nuts.traverse
local theprop = nuts.theprop
@@ -827,6 +829,23 @@ local function report_deltas(result,str)
report_state("%s, cycles %s, deltas % | t",str,result.cycle or 1,t)
end
+-- local function xxcollectinserts(h)
+-- local skips, total, order = 0, 0, 0
+-- print(h)
+-- if h then
+-- h = getlist(h)
+-- for n in traverse(h) do
+-- print(tonode(n))
+-- end
+-- for n in traverse_id(insert_code,h) do
+-- order = order + 1
+-- total = total + getheight(n)
+-- skips = skips + structures.notes.check_spacing(getsubtype(n),order)
+-- end
+-- end
+-- return skips, total
+-- end
+
local function setsplit(specification)
splitruns = splitruns + 1
if trace_state then
diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-mix.mkiv b/Master/texmf-dist/tex/context/base/mkiv/page-mix.mkiv
index 436c4a1dcf6..684ebc5854a 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/page-mix.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/page-mix.mkiv
@@ -371,9 +371,6 @@
\let\currentmixedcolumnsmethod\empty
-\installmacrostack\currentmixedcolumns
-\installmacrostack\currentmixedcolumnsmethod
-
\unexpanded\def\startmixedcolumns
{\dodoubleempty\page_mix_start_columns}
@@ -388,8 +385,8 @@
\fi\fi}
\unexpanded\def\page_mix_start_columns
- {\push_macro_currentmixedcolumns
- \push_macro_currentmixedcolumnsmethod
+ {\pushmacro\currentmixedcolumns
+ \pushmacro\currentmixedcolumnsmethod
\ifsecondargument
\singleexpandafter\page_mix_start_columns_a
\else\iffirstargument
@@ -465,8 +462,8 @@
\let\stopmixedcolumns\page_mix_columns_stop_nop}
\unexpanded\def\page_mix_fast_columns_start#1%
- {\push_macro_currentmixedcolumns
- \push_macro_currentmixedcolumnsmethod
+ {\pushmacro\currentmixedcolumns
+ \pushmacro\currentmixedcolumnsmethod
\edef\currentmixedcolumns{#1}%
\edef\currentmixedcolumnsmethod{\mixedcolumnsparameter\c!method}%
\mixedcolumnsparameter\c!before\relax % so, it doesn't listen to local settings !
@@ -495,15 +492,15 @@
\endgroup
\begincsname\??mixedcolumnsafter\currentmixedcolumnsmethod\endcsname\relax
\mixedcolumnsparameter\c!after\relax
- \pop_macro_currentmixedcolumnsmethod
- \pop_macro_currentmixedcolumns
+ \popmacro\currentmixedcolumnsmethod
+ \popmacro\currentmixedcolumns
\the\t_page_mix_at_the_end\global\t_page_mix_at_the_end\emptytoks}
\unexpanded\def\page_mix_columns_stop_nop
{\page_mix_finalize_columns
\endgroup
- \pop_macro_currentmixedcolumnsmethod
- \pop_macro_currentmixedcolumns
+ \popmacro\currentmixedcolumnsmethod
+ \popmacro\currentmixedcolumns
\the\t_page_mix_at_the_end\global\t_page_mix_at_the_end\emptytoks}
% \unexpanded\def\page_mix_columns_stop_yes
@@ -512,12 +509,12 @@
% \begincsname\??mixedcolumnsafter\currentmixedcolumnsmethod\endcsname\relax
% \mixedcolumnsparameter\c!after\relax
% \ifx\currentmixedcolumnsmethod\s!otr
-% \pop_macro_currentmixedcolumnsmethod
-% \pop_macro_currentmixedcolumns
+% \popmacro\currentmixedcolumnsmethod
+% \popmacro\currentmixedcolumns
% \synchronizeoutput % brrr, otherwise sometimes issues in itemize
% \else
-% \pop_macro_currentmixedcolumnsmethod
-% \pop_macro_currentmixedcolumns
+% \popmacro\currentmixedcolumnsmethod
+% \popmacro\currentmixedcolumns
% \fi
% }
diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-mul.mkiv b/Master/texmf-dist/tex/context/base/mkiv/page-mul.mkiv
index 957981703e4..51af24b6a86 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/page-mul.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/page-mul.mkiv
@@ -471,7 +471,7 @@
\page_mul_postprocess_lines
\page_mul_postprocess_columns
\dohandleallcolumns
- {\global\setbox\currentcolumnbox\hpack to \d_page_mul_used_width
+ {\global\setbox\currentcolumnbox\hbox to \d_page_mul_used_width
{\box\currentcolumnbox}%
\wd\currentcolumnbox\d_page_mul_used_width
\ifheightencolumns
@@ -479,12 +479,12 @@
\fi}%
\page_mul_calculate_column_result_dimensions
\overlaycolumnfootnotes
- \setbox\columnpagebox\vpack % \vbox
- {\ifconditional\c_page_mul_reverse\reversehpack\else\naturalhpack\fi to \makeupwidth
+ \setbox\columnpagebox\vbox
+ {\hbox \ifconditional\c_page_mul_reverse dir TRT \fi to \makeupwidth
{\hskip\ifconditional\c_page_mul_reverse\d_page_mul_rightskip\else\d_page_mul_leftskip\fi\relax
\dohandleallcolumns
{\finishcolumnbox
- {\setbox\scratchbox\hpack
+ {\setbox\scratchbox\hbox
{\ifx\finishcolumnbox\relax\else\strut\fi
\box\currentcolumnbox}% hm, why strut
\anch_mark_column_box\scratchbox
@@ -499,13 +499,13 @@
\fi
\global\setbox\currenttopcolumnbox\emptybox}%
\advance\scratchdimen \ht\columnpagebox
- \setbox\scratchbox\hbox to \makeupwidth % between can be something so no \hpack
+ \setbox\scratchbox\hbox to \makeupwidth
{\vrule
\s!width \zeropoint
\s!height\scratchdimen
\s!depth \dp\columnpagebox
\dostepwiserecurse\plustwo\nofcolumns\plusone{\hfil\page_mul_between_columns}\hfil}%
- \setbox\columnpagebox\hpack
+ \setbox\columnpagebox\hbox
{\box\columnpagebox
\hskip-\makeupwidth
\box\scratchbox}%
@@ -761,7 +761,7 @@
\page_mul_set_n_of_lines
\advance\c_page_mul_n_of_lines \minustwo
\scratchdimen\dimexpr\c_page_mul_n_of_lines\lineheight+\topskip\relax
- \setbox\b_page_mul_notes\hpack{\lower\scratchdimen\box\b_page_mul_notes}%
+ \setbox\b_page_mul_notes\hbox{\lower\scratchdimen\box\b_page_mul_notes}%
\ht\b_page_mul_notes\openstrutheight
\dp\b_page_mul_notes\openstrutdepth
\wd\b_page_mul_notes\zeropoint
@@ -784,7 +784,7 @@
\getnoflines\scratchdimen
\advance\noflines \minustwo
\scratchdimen\dimexpr\noflines\lineheight+\topskip\relax
- \setbox\b_page_mul_notes\hpack{\lower\scratchdimen\box\b_page_mul_notes}%
+ \setbox\b_page_mul_notes\hbox{\lower\scratchdimen\box\b_page_mul_notes}%
\ht\b_page_mul_notes\openstrutheight
\dp\b_page_mul_notes\openstrutdepth
\wd\b_page_mul_notes\zeropoint
@@ -890,7 +890,6 @@
\def\page_mul_routine_balance
{\bgroup
- % why no \forgetall here
\page_mul_initialize_variables
\widowpenalty\zerocount
\setbox\b_page_mul_balance_content\vbox{\unvbox\normalpagebox}%
@@ -1136,7 +1135,7 @@
% \global\savednoffloats\zerocount
% \global\setfalse\c_page_floats_some_waiting
% \else
-% \glet\page_floats_column_pop_saved\relax
+% \global\let\page_floats_column_pop_saved\relax
% \fi}
%
% \let\page_floats_column_pop_saved\relax
@@ -1250,7 +1249,7 @@
\xdef\insertionheight{\the\dimen0}%
\egroup
\else
- \glet\insertionheight\zeropoint
+ \global\let\insertionheight\zeropoint
\fi}
\def\docolumnroomfloat
@@ -1365,7 +1364,7 @@
\global\setbox\currenttopcolumnbox\vbox
{\snaptogrid\vbox
{\copy\currenttopcolumnbox
- \hpack{\vphantom{\vskip\floatheight}}}% known from previous
+ \hbox{\vphantom{\vskip\floatheight}}}% known from previous
\whitespace % nodig ?
\blank[\rootfloatparameter\c!spaceafter]}%
\else
@@ -1849,17 +1848,4 @@
\s!page_otr_command_test_column =\page_mul_command_test_column
]
-\installfloatmethod \s!multicolumn \v!here \page_mul_place_float_here
-\installfloatmethod \s!multicolumn \v!force \page_mul_place_float_force
-\installfloatmethod \s!multicolumn \v!top \page_mul_place_float_top
-\installfloatmethod \s!multicolumn \v!bottom \page_mul_place_float_bottom
-
-\appendtoks
- \flushingcolumnfloatsfalse
-\to \everybeforesectionheadhandle
-
-\appendtoks
- \flushingcolumnfloatstrue
-\to \everyaftersectionheadhandle
-
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-one.mkiv b/Master/texmf-dist/tex/context/base/mkiv/page-one.mkiv
index 64c4a713498..348c301fc2c 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/page-one.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/page-one.mkiv
@@ -73,7 +73,6 @@
\else
\global\vsize\textheight
\fi
- \global\advance\vsize\d_page_adapts_delta
% alternatively we could set it in builders.buildpage_filter
% \ifdim\pagegoal<\maxdimen .. \fi
\global\pagegoal\dimexpr\vsize-\d_page_floats_inserted_top-\d_page_floats_inserted_bottom\relax}
@@ -142,17 +141,16 @@
{\page_otr_command_flush_top_insertions
% this is messy ... we will provide a more tight area (no big deal as we can
% do that at the lua end)
-% \parfillskip\zeropoint
\page_one_registered_text_area_a#1#2% \unvbox <box>
%
\ifgridsnapping
- \vkern\dimexpr\openstrutdepth-\d_page_one_natural_depth\relax
+ \vskip\dimexpr\openstrutdepth-\d_page_one_natural_depth\relax
\prevdepth\openstrutdepth
\page_otr_command_flush_bottom_insertions
\vfil
\else\ifcase\bottomraggednessmode
% ragged (default)
- \vkern\dimexpr\openstrutdepth-\d_page_one_natural_depth\relax
+ \vskip\dimexpr\openstrutdepth-\d_page_one_natural_depth\relax
\prevdepth\openstrutdepth
\page_otr_command_flush_bottom_insertions
\vfil
@@ -161,7 +159,7 @@
\page_otr_command_flush_bottom_insertions
\or
% baseline
- \vkern\dimexpr\maxdepth-\d_page_one_natural_depth\relax
+ \kern\dimexpr\maxdepth-\d_page_one_natural_depth\relax
\page_otr_command_flush_bottom_insertions
\fi\fi
\fakepagenotes}%
@@ -230,9 +228,6 @@
\vskip\s_page_one_between_top_insert
\egroup}
-\let\totaltopinserted\!!zeropoint
-\let\totalbotinserted\!!zeropoint
-
\unexpanded\def\page_one_command_set_top_insertions
{\bgroup
\ifconditional\c_page_floats_some_waiting
@@ -317,44 +312,38 @@
\unexpanded\def\page_one_command_flush_top_insertions
{\ifvoid\namedinsertionnumber\s!topfloat\else
- \page_one_command_flush_top_insertions_indeed % less tracing
+ \ifgridsnapping
+ \box\namedinsertionnumber\s!topfloat
+ \vskip-\topskip
+ \vskip\strutheight % [xx] new: see icare topbleed
+ \else
+ \ifcase\c_page_floats_insertions_topskip_mode
+ % 0: default, do nothing
+ \or
+ % 1: no topskip (crossed fingers)
+ \vskip-\topskip
+ \vskip\strutheight
+ \fi
+ \unvbox\namedinsertionnumber\s!topfloat
+ \fi
\fi
\global\d_page_floats_inserted_top\zeropoint}
-\def\page_one_command_flush_top_insertions_indeed
- {\ifgridsnapping
- \box\namedinsertionnumber\s!topfloat
- \vkern-\topskip
- \vkern\strutheight % [xx] new: see icare topbleed
- \else
- \ifcase\c_page_floats_insertions_topskip_mode
- % 0: default, do nothing
- \or
- % 1: no topskip (crossed fingers)
- \vskip-\topskip % skip !
- \vkern\strutheight
- \fi
- \unvbox\namedinsertionnumber\s!topfloat
- \fi}
-
\unexpanded\def\page_one_command_flush_bottom_insertions
{\ifvoid\namedinsertionnumber\s!bottomfloat\else
- \page_one_command_flush_bottom_insertions_indeed
+ \ifgridsnapping
+ % \floatparameter\c!bottombefore
+ \snaptogrid\hbox{\box\namedinsertionnumber\s!bottomfloat}%
+ % \floatparameter\c!bottomafter
+ \else
+ \floatparameter\c!bottombefore
+ \unvbox\namedinsertionnumber\s!bottomfloat
+ \floatparameter\c!bottomafter
+ \fi
\fi
\global\d_page_floats_inserted_bottom\zeropoint
\global\setfalse\c_page_floats_not_permitted}
-\def\page_one_command_flush_bottom_insertions_indeed
- {\ifgridsnapping
- % \floatparameter\c!bottombefore
- \snaptogrid\hbox{\box\namedinsertionnumber\s!bottomfloat}%
- % \floatparameter\c!bottomafter
- \else
- \floatparameter\c!bottombefore
- \unvbox\namedinsertionnumber\s!bottomfloat
- \floatparameter\c!bottomafter
- \fi}
-
\unexpanded\def\page_one_command_flush_floats
{\global\settrue\c_page_floats_flushing
\ifconditional\c_page_floats_some_waiting
diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-otr.mkvi b/Master/texmf-dist/tex/context/base/mkiv/page-otr.mkvi
index 909f5cd4d1e..ebaf17ebc6d 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/page-otr.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/page-otr.mkvi
@@ -97,7 +97,7 @@
\newconstant\c_page_otr_eject_penalty \c_page_otr_eject_penalty -\plustenthousand
\newconstant\c_page_otr_super_penalty \c_page_otr_super_penalty -\plustwentythousand
-\newcount \c_page_otr_trigger_penalty \c_page_otr_trigger_penalty -100010
+\newcount \c_page_otf_trigger_penalty \c_page_otf_trigger_penalty -100010
\newif \ifinotr % we keep this (name) for old times sake
@@ -127,9 +127,9 @@
\endgroup}
\unexpanded\def\installoutputroutine#invoke#action% \invoke \action
- {\global\advance\c_page_otr_trigger_penalty\minusone
- \edef#invoke{\page_otr_trigger{\number\c_page_otr_trigger_penalty}}%
- \setvalue{\??otrtriggers\number\c_page_otr_trigger_penalty}{#action}}
+ {\global\advance\c_page_otf_trigger_penalty\minusone
+ \edef#invoke{\page_otr_trigger{\number\c_page_otf_trigger_penalty}}%
+ \setvalue{\??otrtriggers\number\c_page_otf_trigger_penalty}{#action}}
\unexpanded\def\page_otr_triggered_output_routine_traced
{\ifcsname\??otrtriggers\the\outputpenalty\endcsname
@@ -160,7 +160,7 @@
\ifdefined\everybeforeoutput \else \newtoks\everybeforeoutput \fi
\ifdefined\everyafteroutput \else \newtoks\everyafteroutput \fi
-\def\page_otr_set_engine_output_routine#content%
+\def\page_otf_set_engine_output_routine#content%
{\global\output
{\inotrtrue
\the\everybeforeoutput
@@ -172,7 +172,7 @@
% \ifdefined\everybeforeoutputgroup \else \newtoks\everybeforeoutputgroup \fi
% \ifdefined\everyafteroutputgroup \else \newtoks\everyafteroutputgroup \fi
%
-% \def\page_otr_set_engine_output_routine#content%
+% \def\page_otf_set_engine_output_routine#content%
% {\the\everybeforeoutputgroup
% \global\output
% {\inotrtrue
@@ -187,7 +187,7 @@
% \fi
% \to \everyafteroutputgroup
-\page_otr_set_engine_output_routine\page_otr_triggered_output_routine
+\page_otf_set_engine_output_routine\page_otr_triggered_output_routine
\installoutputroutine\synchronizeoutput % use \triggerpagebuilder instead
{\ifvoid\normalpagebox\else
diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-pcl.mkiv b/Master/texmf-dist/tex/context/base/mkiv/page-pcl.mkiv
index 140444fc27b..53d9f781dbf 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/page-pcl.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/page-pcl.mkiv
@@ -30,18 +30,19 @@
\definemeasure[threecolumns][\dimexpr\plusthree\columnwidth+\plustwo \columndistance\relax]
\definemeasure[fourcolumns] [\dimexpr\plusfour \columnwidth+\plusthree\columndistance\relax]
-\newcount \c_page_col_n_of_columns \c_page_col_n_of_columns\plusone
-\newcount \c_page_col_current \c_page_col_current \plusone
-\newdimen \d_page_col_distance
-\newdimen \d_page_col_max_height
-\newdimen \d_page_col_max_width
-%newdimen \d_page_col_balance_step
-\newdimen \d_page_col_column_width
-\newdimen \d_page_col_top_height
-\newdimen \d_page_col_top_width
-\newdimen \d_page_col_available
-\newdimen \d_page_col_sofar
-\newconditional\c_page_col_page
+\newcount\c_page_col_n_of_columns \c_page_col_n_of_columns\plusone
+\newcount\c_page_col_current \c_page_col_current \plusone
+\newdimen\d_page_col_distance
+\newdimen\d_page_col_max_height
+\newdimen\d_page_col_max_width
+%newdimen\d_page_col_balance_step
+\newdimen\d_page_col_column_width
+
+\newdimen\d_page_col_top_height
+\newdimen\d_page_col_top_width
+
+\newdimen\d_page_col_available
+\newdimen\d_page_col_sofar
%D We need to step over empty columns.
@@ -699,7 +700,6 @@
\setuppagecolumns
[\c!distance=1.5\bodyfontsize,
\c!n=\plustwo,
- \c!page=\v!yes,
%\c!align=, % inherit (also replaces tolerance)
%\c!before=,
%\c!after=,
@@ -727,39 +727,9 @@
\ifdefined \columnwidth \else \newdimen\columnwidth \fi
\ifdefined \columndistance \else \newdimen\columndistance \fi
-\def\page_col_pickup_preceding
- {\begingroup
- \setupoutputroutine[\s!mixedcolumn]%
- \c_page_mix_routine\c_page_mix_routine_intercept
- \page_otr_trigger_output_routine
- \ifvoid\b_page_mix_preceding \else
- % moved here, before the packaging
- \page_postprocessors_linenumbers_deepbox\b_page_mix_preceding
- % we need to avoid unvboxing with successive balanced on one page
- \global\setbox\b_page_mix_preceding\vbox\bgroup
- % yes or no: \forcestrutdepth
- \unvbox\b_page_mix_preceding
- \forcestrutdepth
- \egroup
- \wd\b_page_mix_preceding\makeupwidth
- \global\d_page_mix_preceding_height\ht\b_page_mix_preceding
- \fi
- \endgroup}
-
-\def\page_col_flush_preceding
- {\ifvoid\b_page_mix_preceding \else
- % this is just one method but ok for now
- \begingroup
- % we might need more but for now this is ok
- \setupfloat[\c!spacebefore=,\c!spaceafter=]%
- \startplacefigure[\c!location={\v!top,\v!none}]%
- \box\b_page_mix_preceding
- \stopplacefigure
- \endgroup
- \fi}
-
\unexpanded\def\startpagecolumns
- {\begingroup
+ {\page
+ \begingroup
\begingroup
\dosingleempty\page_col_start}
@@ -768,15 +738,6 @@
{\let\currentpagecolumns\empty
\setuppagecolumns[#1]}%
{\edef\currentpagecolumns{#1}}%
- \edef\p_page{\pagecolumnsparameter\c!page}%
- \ifx\p_page\empty
- \setfalse\c_page_col_page
- \else\ifx\p_page\v!no
- \setfalse\c_page_col_page
- \else
- \settrue\c_page_col_page
- \page[\p_page]%
- \fi\fi
\c_page_col_n_of_columns\pagecolumnsparameter\c!n\relax
\ifnum\c_page_col_n_of_columns>\plusone
\expandafter\page_col_start_yes
@@ -808,21 +769,13 @@
\useblankparameter \pagecolumnsparameter
% \useprofileparameter\pagecolumnsparameter
%
- \usepagecolumnscolorparameter\c!color
+ \usemixedcolumnscolorparameter\c!color
%
\setupnotes[\c!width=\textwidth]%
%
\usesetupsparameter\pagecolumnsparameter
%
- % This will become a method but for now it's good enough
- %
- \ifconditional\c_page_col_page\else
- \page_col_pickup_preceding
- \fi
\setupoutputroutine[\s!pagecolumn]%
- \ifconditional\c_page_col_page\else
- \page_col_flush_preceding
- \fi
%
\setupfloats[\c!ntop=\plusthousand]%
% \setupfloats[\c!nbottom=\plusthousand]%
diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-run.mkiv b/Master/texmf-dist/tex/context/base/mkiv/page-run.mkiv
index 85da8d9e5fb..19adfaa9c17 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/page-run.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/page-run.mkiv
@@ -153,7 +153,6 @@
\v!right=>\c_page_grids_lineno_mode \plusone,
\v!left=>\c_page_grids_lineno_mode \plustwo,
\v!outer=>\c_page_grids_lineno_mode \plusthree,
- \v!inner=>\c_page_grids_lineno_mode \plusfour,
\v!columns=>\c_page_grids_columns_mode\plusone]% new option
\ifcase\c_page_grids_location
\let\page_grids_add_to_box\gobbleoneargument
@@ -180,13 +179,13 @@
\gridboxlinemode \c_page_grids_line_mode
\gridboxlinenomode\c_page_grids_lineno_mode
\setgridbox\scratchbox\makeupwidth\textheight % todo: check color
- \global\setbox#1\hpack % global ?
+ \global\setbox#1\hbox % global ?
{\ifcase\c_page_grids_location\or\or\box#1\hskip-\makeupwidth\fi
\begingroup % color
\ifcase\layoutcolumns\else
\gray
\setlayoutcomponentattribute{\v!grid:\v!columns}%
- \hpack \layoutcomponentboxattribute to \makeupwidth
+ \hbox \layoutcomponentboxattribute to \makeupwidth
{\dorecurse\layoutcolumns
{\hskip\layoutcolumnwidth
\ifnum\recurselevel<\layoutcolumns
@@ -198,7 +197,7 @@
\hskip-\makeupwidth
\fi
\setlayoutcomponentattribute{\v!grid:\v!lines}%
- \hpack \layoutcomponentboxattribute{\box\scratchbox}%
+ \hbox \layoutcomponentboxattribute{\box\scratchbox}%
\endgroup
\ifcase\c_page_grids_location\or\hskip-\makeupwidth\box#1\fi}%
\stopcolor}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-sel.mkvi b/Master/texmf-dist/tex/context/base/mkiv/page-sel.mkvi
index e11a50f5b33..335d0118734 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/page-sel.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/page-sel.mkvi
@@ -342,7 +342,7 @@
\def\page_selectors_slice_indeed[#filename][#oddsettings][#evensettings]%
{\bgroup
\dontcomplain
- \glet\slicedpagenumber\!!zerocount
+ \global\let\slicedpagenumber\!!zerocount
\getfiguredimensions[#filename]%
\setupcurrentwithpages
[\c!offset=\zeropoint,%
@@ -366,7 +366,7 @@
\c!header=\zeropoint,\c!footer=\zeropoint]%
\fi
\dorecurse\noffigurepages
- {\glet\slicedpagenumber\recurselevel
+ {\global\let\slicedpagenumber\recurselevel
\ifnum\c_page_selectors_n>\plusone
\dorecurse\c_page_selectors_n
{\let\slicedpagestepx\recurselevel
diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-set.mkiv b/Master/texmf-dist/tex/context/base/mkiv/page-set.mkiv
index dd145b3228c..3579e3b4849 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/page-set.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/page-set.mkiv
@@ -248,8 +248,8 @@
\!!counta#1\relax
\fi
\fi
- \relax % needed ! ! ! ! else lookahead over \fi and \expandafter
- \expandafter\egroup\expandafter\scratchcounter\the\!!counta\relax}
+ \relax % needed ! ! ! ! else lookahead over \fi and \@EA
+ \@EA\egroup\@EA\scratchcounter\the\!!counta\relax}
\def\OTRSETsetcorrectcellht
{\bgroup
@@ -260,8 +260,8 @@
\restoreglobalbodyfont
\fi
\advance\!!dimena\strutht
- \relax % needed ! ! ! ! else lookahead over \fi and \expandafter
- \expandafter\egroup\expandafter\scratchdimen\the\!!dimena\relax}
+ \relax % needed ! ! ! ! else lookahead over \fi and \@EA
+ \@EA\egroup\@EA\scratchdimen\the\!!dimena\relax}
\def\doOTRSETsetgridcells#1#2#3#4#5#6% placeholder col row wid hei {data}
{\!!countd#2\advance\!!countd#4\advance\!!countd\minusone
@@ -487,7 +487,7 @@
\let\OTRSETbalht\zeropoint
\def\OTRSETreducegridbox % for the moment no difference between methods
- {\glet\OTRSETbalht\zeropoint
+ {\globallet\OTRSETbalht\zeropoint
\ifcase\OTRSETbalancemethod
% no balancing
\else
@@ -578,7 +578,7 @@
\else
\page_otr_construct_and_shipout\box\OTRfinalpagebox\zerocount % three arguments
\fi \fi
- \glet\OTRSETbalht\zeropoint
+ \globallet\OTRSETbalht\zeropoint
\egroup
\fi}
@@ -642,7 +642,7 @@
{\page_set_command_set_vsize}
\def\doOTRSETcolumnseparator
- {\hpack to \zeropoint{\hss\red\vl\hss}}
+ {\hbox to \zeropoint{\hss\red\vl\hss}}
\let\OTRSETcolumnseparator\relax
@@ -754,7 +754,7 @@
\fi}%
\ifdim\lastskipinotr>\zeropoint
\scratchskip\ht\scratchbox
- \setbox\scratchbox\hpack
+ \setbox\scratchbox\hbox
{\lower\strutdepth\box\scratchbox}%
\dp\scratchbox\scratchdimen
\ht\scratchbox\scratchskip
@@ -942,7 +942,7 @@
\fi
\ifenoughcolumncells
\OTRSETsetgridcells\mofcolumns\columnfirstcell\columnhcells\columnvcells
- {\hpack{\copy#1}}%
+ {\hbox{\copy#1}}%
\page_set_command_set_vsize
\else
\OTRSETsavebox{#1}%
@@ -1155,7 +1155,7 @@
%OTRSETprepareforcolumnslot3{#1}%
%ruledvskip\columnslotspacing\lineheight
\blank[\number\columnslotspacing*\v!line]%
- \snaptogrid\hpack to \hsize{\hss\box#1\hss}% strange, why the centering
+ \snaptogrid\hbox to \hsize{\hss\box#1\hss}% strange, why the centering
\blank[\number\columnslotspacing*\v!line]%
\else
\OTRSETstoreincolumnslotSOMEWHERE2{#1}%
@@ -1336,7 +1336,7 @@
% a quick hack ... will be redone
%
\ifdim\wd\floatbox<\floatwidth \ifhbox\floatbox
- \global\setbox\floatbox\hpack{\unhbox\floatbox}%
+ \global\setbox\floatbox\hbox{\unhbox\floatbox}%
\fi \fi
%
\dp\floatbox\zeropoint
@@ -1417,7 +1417,7 @@
{\advance\totalcolumnspace \OTRSETlocalwidth\recurselevel
\advance\totalcolumnspace \namedcolumnsetparameter{\currentcolumnset:\recurselevel}\c!distance}%
\ifdim\totalcolumnspace>\wd\scratchbox
- \setbox\scratchbox\hpack to \totalcolumnspace{\hss\box\scratchbox\hss}%
+ \setbox\scratchbox\hbox to \totalcolumnspace{\hss\box\scratchbox\hss}%
\fi
\page_set_cell_set\currenthcell\currentvcell\box\scratchbox
\egroup
@@ -1619,17 +1619,17 @@
\def\dostartcolumnset[#1][#2]%
{\increment\columnsetlevel\relax
- \glet\localcolumnmaxcells\!!zerocount
+ \global\let\localcolumnmaxcells\!!zerocount
\global\setfalse\OTRSETfinish
\ifnum\columnsetlevel=\plusone
\bgroup
\saveinterlinespace
- \glet\columnsetpage\!!plusone
+ \globallet\columnsetpage\!!plusone
\def\currentcolumnset{#2}%
\insidecolumnstrue % will be different flag in addition
\setupoutputroutine[\s!columnset]%
\doifelsenothing{#1}
- {\glet\OTRSETlist\s!default}
+ {\globallet\OTRSETlist\s!default}
{\xdef\OTRSETlist{#1}}%
\OTRSETstartnextpage
\OTRSETassignwidths
@@ -1659,7 +1659,7 @@
\global\setbox\OTRfinalpagebox\OTRSETmakegridbox
\ht\OTRfinalpagebox\textheight % signals output that there is content
\OTRSETdofinaloutput
- \glet\OTRSETbalht\zeropoint
+ \globallet\OTRSETbalht\zeropoint
\egroup}
{}}
@@ -1678,7 +1678,7 @@
\ifvoid\OTRfinalpagebox\else
% probably balanced
\ifdim\ht\OTRfinalpagebox<\textheight
- \snaptogrid[\v!page]\hpack{\box\OTRfinalpagebox}%
+ \snaptogrid[\v!page]\hbox{\box\OTRfinalpagebox}%
\else
\box\OTRfinalpagebox
\fi
@@ -1765,7 +1765,7 @@
\def\OTRSETstartnextpage
{\doifsomething\OTRSETlist
{\getfromcommacommand[\OTRSETlist][1]%
- \glet\OTRSETidentifier\commalistelement
+ \global\let\OTRSETidentifier\commalistelement
\xdef\currentcolumnset{\commalistelement}%
\checkcolumnsetparent
\let\newcommalistelement\empty
@@ -1848,7 +1848,7 @@
{\unvbox\normalpagebox
\global\lastskipinotr\lastskip}%
\ifdim\lastskipinotr>\zeropoint
- \global\setbox\b_page_set_preceding\hpack
+ \global\setbox\b_page_set_preceding\hbox
{\lower\strutdepth\box\b_page_set_preceding}%
\fi
\dp\b_page_set_preceding\strutdepth
@@ -1970,7 +1970,7 @@
\def\columnplaceholder#1#2%
{\hbox
- {\setbox\scratchbox\hpack to \hsize
+ {\setbox\scratchbox\hbox to \hsize
{\iftracecolumnset
\hskip-.5ex%
\startcolor[columnset:#2]\vrule\s!width\exheight\s!height.5\exheight\s!depth.5\exheight\stopcolor
@@ -2032,7 +2032,7 @@
\def\page_set_place_float_slot
{\setbox\floatbox\vbox{\page_otr_command_flush_float_box}%
\dp\floatbox\strutdp
- \expandafter\uppercasestring\floatmethod\to\floatmethod
+ \@EA\uppercasestring\floatmethod\to\floatmethod
\OTRSETstoreincolumnslot\floatmethod\floatbox
\page_floats_report_total}
@@ -2337,11 +2337,11 @@
\advance\!!countb \minusone
% new (*)
\doif{\columntextareaparameter\c!location}\v!depth
- {\setbox\scratchbox\hpack{\lower\strutdepth\box\scratchbox}%
+ {\setbox\scratchbox\hbox{\lower\strutdepth\box\scratchbox}%
\dp\scratchbox\zeropoint
\ht\scratchbox\!!heighta}%
%
- \setbox0\hpack
+ \setbox0\hbox
{\ifcase\!!countc
\copy\scratchbox % \box
\else
@@ -2360,7 +2360,7 @@
\advance\!!counta \columntextareaparameter\c!nx
\advance\!!counta -\!!countc
\advance\!!widtha -\!!widthb
- \setbox0\hpack
+ \setbox0\hbox
% {\hskip-\namedlayoutparameter\v!odd\c!backspace
{\hskip-\layoutparameter\c!backspace
\clip
@@ -2560,7 +2560,7 @@
% todo: nboven/onder
%\OTRSETstoreincolumnslotHERE\scratchbox
\edef\floatmethod{\namedframedtextparameter{\??columnsetspan#1}\c!default}%
- \expandafter\uppercasestring\floatmethod\to\floatmethod
+ \@EA\uppercasestring\floatmethod\to\floatmethod
% todo : \v!here -> here enzovoorts
\OTRSETstoreincolumnslot\floatmethod\scratchbox
\checknextindentation[\namedframedtextparameter{\??columnsetspan#1}\c!indentnext]%
@@ -2626,23 +2626,6 @@
% \s!page_otr_command_flush_margin_blocks =\page_set_command_flush_margin_blocks, % not used
]
-\installfloatmethod \s!columnset \v!here \page_set_place_float_here
-\installfloatmethod \s!columnset \v!force \page_set_place_float_force
-\installfloatmethod \s!columnset \v!top \page_set_place_float_top
-\installfloatmethod \s!columnset \v!bottom \page_set_place_float_bottom
-\installfloatmethod \s!columnset \v!page \page_set_place_float_page
-\installfloatmethod \s!columnset \s!tblr \page_set_place_float_slot
-\installfloatmethod \s!columnset \s!lrtb \page_set_place_float_slot
-\installfloatmethod \s!columnset \s!tbrl \page_set_place_float_slot
-\installfloatmethod \s!columnset \s!rltb \page_set_place_float_slot
-\installfloatmethod \s!columnset \s!fxtb \page_set_place_float_slot
-\installfloatmethod \s!columnset \s!btlr \page_set_place_float_slot
-\installfloatmethod \s!columnset \s!lrbt \page_set_place_float_slot
-\installfloatmethod \s!columnset \s!btrl \page_set_place_float_slot
-\installfloatmethod \s!columnset \s!rlbt \page_set_place_float_slot
-\installfloatmethod \s!columnset \s!fxbt \page_set_place_float_slot
-\installfloatmethod \s!columnset \s!fixd \page_set_place_float_force
-
\protect \endinput
% extreme examples (1)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-sid.mkiv b/Master/texmf-dist/tex/context/base/mkiv/page-sid.mkiv
index 8033812447b..6f5d9f3571f 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/page-sid.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/page-sid.mkiv
@@ -41,9 +41,6 @@
\newdimen \d_page_sides_progress
\newdimen \d_page_sides_page_total
-\newdimen \d_page_sides_leftoffset
-\newdimen \d_page_sides_rightoffset
-
%newbox \b_page_sides_bottom
\newcount \c_page_sides_lines_done
@@ -51,7 +48,6 @@
\newcount \c_page_sides_n_of_lines
\newcount \c_page_sides_n_of_hang
\newconstant \c_page_sides_float_type
-\newcount \c_page_sides_hangafter
\newconditional \c_page_sides_short
\newconditional \c_page_sides_flag
@@ -81,9 +77,6 @@
\newdimen \d_page_sides_progression
-\newcount \c_page_sides_m_of_lines
-\newconditional \c_page_sides_delayed
-
\newif \iftracesidefloats % public (might change)
%D Defaults:
@@ -223,8 +216,6 @@
+\compensatedinnermakeupmargin
\relax
\fi
- \global\d_page_sides_leftoffset \d_page_sides_rightskip
- \global\d_page_sides_rightoffset\d_page_sides_leftskip
\ifdim\d_page_sides_rightskip>\zeropoint
\global\advance\d_page_sides_rightskip\rightskip
\fi
@@ -403,8 +394,7 @@
\endgroup
\else
\forcestrutdepth
- \fi
- \page_otr_command_set_vsize} % new
+ \fi}
\def\page_sides_flush_floats
{\par
@@ -551,43 +541,30 @@
\def\page_sides_inject_dummy_lines
{\par
\nointerlineskip
- % \ifnum\lastpenalty>\zerocount
- % \penalty\plustenthousand
- % \fi
\dontleavehmode
\iftracesidefloats
\page_sides_inject_dummy_line_traced
\else
\page_sides_inject_dummy_line_normal
\fi
- \par
- % on an empty page we have topskip, say 12pt
- \ignoreparskip
- % this can be 18.5pt
- \kern-\dimexpr\lineheight+\strutdp\relax
- % so we can actually have a -2.5pt skip on top
+ \vskip-\dimexpr\lineheight+\strutdp\relax
\ignoreparskip
\blank[\v!samepage]
- \blank[\v!disable]
- % now say we are negative now
- \ifdim\pagetotal<\zeropoint
- % then we're at the top of the page ... quite messy .. i really need to
- % make the page builder a bit more flexible .. should we do something now?
- \fi}
+ \blank[\v!disable]}
%D Checkers:
\def\page_sides_check_floats_after_par
{\page_sides_check_floats_indeed
\ifdim\d_page_sides_pagetotal=\pagetotal \else
- \glet\page_sides_check_floats\page_sides_check_floats_indeed
+ \global\let\page_sides_check_floats\page_sides_check_floats_indeed
\page_sides_flush_floats
\global\c_page_sides_n_of_lines\zerocount % here !
\fi}
\unexpanded\def\page_sides_flush_floats_after_par
{\global\d_page_sides_pagetotal\pagetotal
- \glet\page_sides_check_floats\page_sides_check_floats_after_par}
+ \global\let\page_sides_check_floats\page_sides_check_floats_after_par}
\unexpanded\def\page_sides_forget_floats
{\global\d_page_sides_vsize\d_page_sides_vsize_reset
@@ -674,49 +651,18 @@
\fi
\endgroup}
-% \def\page_sides_analyse_progress
-% {\d_page_sides_progress\d_page_sides_vsize
-% \ifconditional\c_page_sides_flag
-% \advance\d_page_sides_progress-\d_page_sides_page_total
-% \global\setfalse\c_page_sides_flag
-% \else
-% \advance\d_page_sides_progress-\pagetotal
-% \fi}
-
-% test case
-%
-% \usemodule[art-01]
-% \starttext
-% \dorecurse{40}{\line{#1}}
-% \placefigure[left]{}{}
-% \input ward
-% \startitemize
-% \item word \item word \item word \item word
-% \stopitemize
-% \input ward
-% \page
-% \stoptext
-
\def\page_sides_analyse_progress
- {%\page_otr_command_set_vsize % this is new, otherwise topfloats are not taken into account
- \d_page_sides_progress\d_page_sides_vsize
+ {\d_page_sides_progress\d_page_sides_vsize
\ifconditional\c_page_sides_flag
\advance\d_page_sides_progress-\d_page_sides_page_total
\global\setfalse\c_page_sides_flag
\else
- \ifdim\dimexpr\d_page_sides_progress+\d_page_sides_bottomtotal\relax>\pagegoal
- % we adapt pagegoal because we can already have placed something with
- % everypar and we hope that it triggers a flush, see test above
- \pagegoal\dimexpr\pagegoal-\d_page_sides_bottomtotal\relax
- \fi
\advance\d_page_sides_progress-\pagetotal
\fi}
\def\page_sides_analyse_space
{\global\settrue\c_page_sides_flag
-% \ifdim\pagegoal=\maxdimen
-% \pagegoal\textheight % maybe
-% \fi
+ \page_sides_force_depth
\global\d_page_sides_page_total \pagetotal % global
\ifnum\c_page_sides_float_type<\plusfour
\global\d_page_sides_width \zeropoint
@@ -770,18 +716,8 @@
%D As we have no clear end of one or more paragraphs we only have pre float
%D skips.
-\newconstant\c_page_sides_page_method % will be: \c_page_sides_page_method\plusone
-
-\def\page_otr_force_new_page_one
- {\vskip\d_page_sides_height
- \penalty\outputpenalty
- \vskip-\dimexpr\d_page_sides_height-\strutdp\relax
- \prevdepth\strutdp}
- %\ignoreparskip}
-
-\def\page_sides_handle_float#1%
- {\page_sides_initialize_checker
- \page_sides_check_horizontal_skips
+\def\page_sides_handle_float#1% grid (4) is rather experimental
+ {\page_sides_check_horizontal_skips
\page_sides_check_vertical_skips
\page_sides_apply_horizontal_shift
\page_sides_check_previous_float
@@ -790,26 +726,13 @@
\page_sides_relocate_float{#1}%
\page_sides_apply_vertical_shift
\page_sides_analyse_space
- \ifconditional\c_page_floats_room
- \global\setfalse\c_page_sides_delayed
- % we're ok
- \else
- \global\settrue\c_page_sides_delayed
- \global\c_page_sides_m_of_lines\c_page_sides_n_of_lines
- \ifcase\c_page_sides_page_method
- \page_otr_fill_and_eject_page
- \or
- \page_otr_force_new_page_one
- \else
- \page_otr_fill_and_eject_page
- \fi
- \global\c_page_sides_n_of_lines\c_page_sides_m_of_lines
+ \ifconditional\c_page_floats_room \else
+ \page_otr_fill_and_eject_page
\page_sides_analyse_space
%\page_sides_inject_before
\page_sides_inject_dummy_lines
\fi
\page_sides_place_float
- \global\setfalse\c_page_sides_delayed
\page_sides_check_floats_reset
\page_sides_wrapup}
@@ -817,7 +740,8 @@
{% we need to do this aftergroup
\aftergroup\par
\aftergroup\ignoreparskip
- \aftergroup\ignorespaces}
+ \aftergroup\ignorespaces
+ }
\def\page_sides_check_floats_indeed
{\page_sides_analyse_progress
@@ -828,16 +752,7 @@
\fi
\parskip\s_spac_whitespace_parskip} % not needed
-% \let\page_sides_check_floats\page_sides_check_floats_indeed
-
-\let\page_sides_check_floats\relax
-
-\def\page_sides_initialize_checker
- {\ifx\page_sides_check_floats\relax
- \glet\page_sides_check_floats\page_sides_check_floats_indeed
- \clf_enablesidefloatchecker
- \glet\page_sides_initialize_checker\relax
- \fi}
+\let\page_sides_check_floats\page_sides_check_floats_indeed
\unexpanded\def\page_sides_check_floats_tracer
{\begingroup
@@ -856,30 +771,8 @@
\fi
\endgroup}
-% tricky test:
-
-% \starttext
-% \dorecurse{33}{\line{#1}}
-% \placefigure[left]{}{}
-% \input ward
-% \startitemize
-% \item word \item word \item word \item word
-% \stopitemize
-% \input ward
-% \page
-% \placefigure[left]{}{}
-% \dontleavehmode \begingroup \input ward \par \endgroup
-% \dontleavehmode \begingroup \input ward \par \endgroup
-% \dontleavehmode \begingroup \input ward \par \endgroup
-% \input ward
-% \stoptext
-
\unexpanded\def\page_sides_check_floats_set
{\edef\p_sidethreshold{\floatparameter\c!sidethreshold}%
- \ifconditional\c_page_sides_delayed
- % For Alan's hanging right float that moved to the next page.
- \d_page_sides_progress\zeropoint
- \fi
\ifx\p_sidethreshold\v!old
\d_page_sides_progression\dimexpr\d_page_sides_progress+\strutht-\roundingeps\relax
\c_page_sides_n_of_hang\d_page_sides_progression
@@ -892,14 +785,8 @@
\dimexpr\d_page_sides_progress-\p_sidethreshold\relax
\fi
\getnoflines\d_page_sides_progression
- % this can be an option
- \ifdim\dimexpr\noflines\lineheight>\dimexpr\pagegoal-\pagetotal\relax
- \getrawnoflines\d_page_sides_progression
- \fi
- %
\c_page_sides_n_of_hang\noflines
\fi
- \global\c_page_sides_hangafter\zerocount
\ifnum\c_page_sides_n_of_hang>\zerocount
\ifcase\c_page_sides_n_of_lines
\else
@@ -935,7 +822,6 @@
\else
\hangindent \ifnum\c_page_sides_float_type>\plusfour -\fi\d_page_sides_width
\hangafter-\c_page_sides_n_of_hang
- \global\c_page_sides_hangafter\hangafter
\fi
\fi
\global\advance\c_page_sides_checks_done \plusone
@@ -944,16 +830,7 @@
\fi}
\unexpanded\def\page_sides_check_floats_reset
- {\ifcase\c_page_sides_checks_done\else
- \ifcase\c_page_sides_hangafter\else
- % we need to deal with par's ending in a group which would restore
- % hang parameters
- \global\c_page_sides_hangafter\zerocount
- \hangindent\zeropoint
- \fi
- % \global % no, otherwise a next hangindent won't work
- \c_page_sides_checks_done\zerocount
- \fi}
+ {\global\c_page_sides_checks_done\zerocount}
\unexpanded\def\page_sides_synchronize_floats
{\ifinner \else
diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-smp.mkiv b/Master/texmf-dist/tex/context/base/mkiv/page-smp.mkiv
deleted file mode 100644
index 2711c9944f7..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/page-smp.mkiv
+++ /dev/null
@@ -1,59 +0,0 @@
-%D \module
-%D [ file=page-smp, % was: core-mul, page-mul
-%D version=1998.03.15,
-%D title=\CONTEXT\ Page Macros,
-%D subtitle=Simple Multi Column Output,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-%D The old one:
-
-\definemixedcolumns
- [\v!columns]
- % compatible with columns default :
- [\c!balance=\v!yes,
- \c!blank={\v!line,\v!fixed}]
-
-\unexpanded\def\setupcolumns
- {\setupmixedcolumns[\v!columns]}
-
-%D This will be replaced by mixed box.
-
-\unexpanded\def\startsimplecolumns
- {\dosingleempty\page_simple_start}
-
-\def\page_simple_start[#1]%
- {\bgroup
- \setsimplecolumnshsize[#1]%
- \nopenalties
- \setbox\scratchbox\vbox\bgroup
- \forgetall} % \blank[\v!disable]
-
-\unexpanded\def\stopsimplecolumns
- {\removebottomthings
- \egroup
- \rigidcolumnbalance\scratchbox
- \egroup}
-
-\unexpanded\def\setsimplecolumnshsize[#1]%
- {\getdummyparameters
- [\c!width=\hsize,
- \c!distance=1.5\bodyfontsize,
- \c!n=2,
- \c!lines=0,
- #1]%
- \edef\rigidcolumnlines
- {\directdummyparameter\c!lines}%
- \setrigidcolumnhsize
- {\directdummyparameter\c!width}%
- {\directdummyparameter\c!distance}%
- {\directdummyparameter\c!n}}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-spr.mkiv b/Master/texmf-dist/tex/context/base/mkiv/page-spr.mkiv
index bb95ee467b1..dc1e013d50d 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/page-spr.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/page-spr.mkiv
@@ -23,32 +23,15 @@
% beware, ugly overload, to be redone
-% \def\normalsettextpagecontent#1#2#3% #2 and #3 will disappear
-% {\setbox#1\hbox
-% {\setlayoutcomponentattribute{\v!page:\v!text}%
-% \vbox \layoutcomponentboxattribute to \textheight
-% {\offinterlineskip
-% \freezetextwidth
-% \hsize\textwidth % local variant of \sethsize
-% \boxmaxdepth\maxdepth
-% \noindent % content can be < \hsize
-% \page_otr_command_package_contents#2#3}}%
-% \dp#1\zeropoint
-% \ifconditional\c_page_spread_busy
-% \normalsettextpagecontent_spread{#1}%
-% \else
-% \normalsettextpagecontent_normal{#1}%
-% \fi}
-
\def\normalsettextpagecontent#1#2#3% #2 and #3 will disappear
- {\setbox#1\hpack
+ {\setbox#1\hbox
{\setlayoutcomponentattribute{\v!page:\v!text}%
- \vpack \layoutcomponentboxattribute to \textheight
+ \vbox \layoutcomponentboxattribute to \textheight
{\offinterlineskip
\freezetextwidth
\hsize\textwidth % local variant of \sethsize
\boxmaxdepth\maxdepth
- \noindent % content can be < \hsize
+ \noindent % content can be < \hsize
\page_otr_command_package_contents#2#3}}%
\dp#1\zeropoint
\ifconditional\c_page_spread_busy
@@ -57,18 +40,12 @@
\normalsettextpagecontent_normal{#1}%
\fi}
-% \def\normalsettextpagecontent_normal#1%
-% {\setbox#1\hbox to \makeupwidth
-% {\hss\box#1\hss}} % never change the \hss's
-
\def\normalsettextpagecontent_normal#1%
- {\ifdim\wd#1=\makeupwidth\else
- \setbox#1\hpack to \makeupwidth
- {\hss\box#1\hss}% never change the \hss's
- \fi}
+ {\setbox#1\hbox to \makeupwidth
+ {\hss\box#1\hss}} % never change the \hss's
\def\normalsettextpagecontent_spread#1%
- {\setbox#1\hpack to \makeupwidth
+ {\setbox#1\hbox to \makeupwidth
{\ifvoid\b_page_spread_content
\ifconditional\c_page_spread_once
\box#1%
diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-str.lua b/Master/texmf-dist/tex/context/base/mkiv/page-str.lua
index ebb49a918c2..4aeffffd80d 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/page-str.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/page-str.lua
@@ -20,27 +20,18 @@ local implement = interfaces.implement
local nodecodes = nodes.nodecodes
-local nuts = nodes.nuts
-local tonut = nodes.tonut
-local slide_node_list = nuts.slide
-local write_node = nuts.write
-local flush_node = nuts.flush
-local copy_node_list = nuts.copy_list
-local vpack_node_list = nuts.vpack
-
-local getbox = nuts.getbox
-local setlink = nuts.setlink
-local getlist = nuts.getlist
-local setlist = nuts.setlist
-local getwhd = nuts.getwhd
-local setwhd = nuts.setwhd
+local slide_node_list = nodes.slide
+local write_node = nodes.write
+local flush_node = nodes.flush
+local copy_node_list = nodes.copy_list
+local vpack_node_list = nodes.vpack
local settings_to_array = utilities.parsers.settings_to_array
local enableaction = nodes.tasks.enableaction
local texgetdimen = tex.getdimen
------ texgetbox = tex.getbox
+local texgetbox = tex.getbox
local trace_collecting = false trackers.register("streams.collecting", function(v) trace_collecting = v end)
local trace_flushing = false trackers.register("streams.flushing", function(v) trace_flushing = v end)
@@ -50,11 +41,7 @@ local report_streams = logs.reporter("streams")
streams = streams or { } -- might move to the builders namespace
local streams = streams
--- maybe store head and tail ... first we need usage
-
-local data = { }
-local name = nil
-local stack = { }
+local data, name, stack = { }, nil, { }
function streams.enable(newname)
if newname == "default" then
@@ -79,7 +66,7 @@ end
function streams.collect(head,where)
if name and head and name ~= "default" then
- local head = tonut(head)
+ local tail = node.slide(head)
local dana = data[name]
if not dana then
dana = { }
@@ -88,7 +75,7 @@ function streams.collect(head,where)
local last = dana[#dana]
if last then
local tail = slide_node_list(last)
- setlink(tail,head)
+ tail.next, head.prev = head, tail
elseif last == false then
dana[#dana] = head
else
@@ -97,9 +84,9 @@ function streams.collect(head,where)
if trace_collecting then
report_streams("appending snippet %a to slot %s",name,#dana)
end
- return nil
+ return nil, true
else
- return head
+ return head, false
end
end
@@ -131,7 +118,7 @@ function streams.flush(name,copy) -- problem: we need to migrate afterwards
for i=1,dn do
local di = dana[i]
if di then
- write_node(copy_node_list(getlist(di))) -- list, will be option
+ write_node(copy_node_list(di.list)) -- list, will be option
end
end
if copy then
@@ -144,8 +131,8 @@ function streams.flush(name,copy) -- problem: we need to migrate afterwards
for i=1,dn do
local di = dana[i]
if di then
- write_node(getlist(di)) -- list, will be option
- setlist(di)
+ write_node(di.list) -- list, will be option
+ di.list = nil
flush_node(di)
end
end
@@ -180,7 +167,7 @@ function streams.synchronize(list) -- this is an experiment !
local slot = dana[m]
if slot then
local vbox = vpack_node_list(slot)
- local wd, ht, dp = getwhd(vbox)
+ local ht, dp = vbox.height, vbox.depth
if ht > height then
height = ht
end
@@ -204,36 +191,32 @@ function streams.synchronize(list) -- this is an experiment !
local dana = data[name]
local vbox = dana[m]
if vbox then
- local wd, ht, dp = getwhd(vbox)
- local delta_height = height - ht
- local delta_depth = depth - dp
+ local delta_height = height - vbox.height
+ local delta_depth = depth - vbox.depth
if delta_height > 0 or delta_depth > 0 then
if false then
-- actually we need to add glue and repack
- setwhd(vbox,false,height,depth)
+ vbox.height, vbox.depth = height, depth
if trace_flushing then
report_streams("slot %s of %a with delta (%p,%p) is compensated",m,i,delta_height,delta_depth)
end
else
-- this is not yet ok as we also need to keep an eye on vertical spacing
-- so we might need to do some splitting or whatever
- local list = getlist(vbox)
- local tail = list and slide_node_list(list)
- local n = 0
- local delta = delta_height -- for tracing
+ local tail = vbox.list and slide_node_list(vbox.list)
+ local n, delta = 0, delta_height -- for tracing
while delta > 0 do
-- we need to add some interline penalties
- local line = copy_node_list(getbox("strutbox"))
- setwhd(line,false,strutht,strutdp)
+ local line = copy_node_list(texgetbox("strutbox"))
+ line.height, line.depth = strutht, strutdp
if tail then
- setlink(tail,line)
+ tail.next, line.prev = line, tail
end
- tail = line
- n = n + 1
- delta = delta - struthtdp
+ tail = line
+ n, delta = n +1, delta - struthtdp
end
- dana[m] = vpack_node_list(getlist(vbox))
- setlist(vbox)
+ dana[m] = vpack_node_list(vbox.list)
+ vbox.list = nil
flush_node(vbox)
if trace_flushing then
report_streams("slot %s:%s with delta (%p,%p) is compensated by %s lines",m,i,delta_height,delta_depth,n)
@@ -247,8 +230,6 @@ function streams.synchronize(list) -- this is an experiment !
end
end
--- hm, nut or node
-
tasks.appendaction("mvlbuilders", "normalizers", "streams.collect")
tasks.disableaction("mvlbuilders", "streams.collect")
diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-str.mkiv b/Master/texmf-dist/tex/context/base/mkiv/page-str.mkiv
index 354c1f3c3ee..57a465603b5 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/page-str.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/page-str.mkiv
@@ -56,7 +56,7 @@
\unexpanded\def\disableoutputstream
{\inoutputstreamfalse
- \glet\currentoutputstream\s!default
+ \global\let\currentoutputstream\s!default
\clf_disablestream}
\unexpanded\def\startoutputstream[#1]%
diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-txt.mkvi b/Master/texmf-dist/tex/context/base/mkiv/page-txt.mkvi
index 97668c14377..b043b60c7ba 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/page-txt.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/page-txt.mkvi
@@ -98,8 +98,8 @@
{\expandafter\normalgdef\csname\??layouttextsreset#vertical\endcsname{\page_layouts_set_element_status_normal#vertical}}
\def\page_layouts_set_element_status_normal#vertical%
- {\expandafter\glet\csname\namedlayoutelementhash#vertical\c!state\endcsname\v!normal
- \expandafter\glet\csname\??layouttextsreset#vertical\endcsname\relax
+ {\global\expandafter\let\csname\namedlayoutelementhash#vertical\c!state\endcsname\v!normal
+ \global\expandafter\let\csname\??layouttextsreset#vertical\endcsname\relax
\page_layouts_synchronize_element{#vertical}}
\def\page_layouts_synchronize_element#vertical%
@@ -527,10 +527,10 @@
\page_layouts_place_text_line_right
\page_layouts_place_text_line_left
\namedlayoutelementparameter\currentlayouttextline\c!after
- \vkern\zeropoint}% keep the \dp, beware of \vtops, never change this!
+ \kern\zeropoint}% keep the \dp, beware of \vtops, never change this!
\dp\b_page_layouts_element\zeropoint
\box\b_page_layouts_element
- \vkern-#height\relax}
+ \vskip-#height\relax}
\let\page_layouts_extra_at_margin_left \plusone
\let\page_layouts_extra_at_margin_right\plustwo
@@ -831,21 +831,21 @@
\calculatereducedvsizes
\swapmargins
\offinterlineskip
- \vkern\dimexpr-\topheight-\topdistance\relax
+ \vskip\dimexpr-\topheight-\topdistance\relax
\the\toptextcontent
- \vkern\dimexpr\topheight+\topdistance\relax
+ \vskip\dimexpr\topheight+\topdistance\relax
\the\headertextcontent
- \vkern\dimexpr\headerheight+\headerdistance+\textdistance\relax
+ \vskip\dimexpr\headerheight+\headerdistance+\textdistance\relax
\anch_positions_place_anchors
- \vkern\dimexpr-\textdistance-\textheight\relax
+ \vskip\dimexpr-\textdistance-\textheight\relax
\the\texttextcontent
- \vkern\textheight
+ \vskip\textheight
\the\everyendoftextbody
- \vkern\footerdistance
+ \vskip\footerdistance
\the\footertextcontent
- \vkern\dimexpr\footerheight+\bottomdistance\relax
+ \vskip\dimexpr\footerheight+\bottomdistance\relax
\the\bottomtextcontent
- \vkern\bottomheight
+ \vskip\bottomheight
\vfilll}%
\smashbox\b_page_layouts_element
\box\b_page_layouts_element}
@@ -854,20 +854,16 @@
% \let\page_prepare_backgrounds\gobbleoneargument
% \fi
-% only for very special controlled cases or experiments:
-
-\let\page_scale_text_box\gobbleoneargument
-
\def\page_insert_body#1#2%
{\setbox\b_page_layouts_element\vpack
{\offinterlineskip
\calculatereducedvsizes
\calculatehsizes
\swapmargins
- \vkern\dimexpr\headerheight+\headerdistance+\textdistance\relax
+ \vskip\dimexpr\headerheight+\headerdistance+\textdistance\relax
\dontleavehmode
%\page_prepare_backgrounds{#2}%
- \hpack to \makeupwidth
+ \hbox to \makeupwidth
{\begingroup
\swapmargins
\goleftonpage
@@ -884,7 +880,6 @@
\settextpagecontent\b_page_layouts_element{#1}{#2}%
\page_backgrounds_add_to_text\b_page_layouts_element
\page_grids_add_to_box\b_page_layouts_element
- \page_scale_text_box\b_page_layouts_element
\box\b_page_layouts_element
\begingroup
\ifdim\rightmarginwidth>\zeropoint
diff --git a/Master/texmf-dist/tex/context/base/mkiv/publ-aut.lua b/Master/texmf-dist/tex/context/base/mkiv/publ-aut.lua
index e74c7ee18b5..be0c771a3e4 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/publ-aut.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/publ-aut.lua
@@ -16,7 +16,6 @@ local lpeg = lpeg
local type, next, tostring, tonumber = type, next, tostring, tonumber
local concat, sortedhash = table.concat, table.sortedhash
local utfsub = utf.sub
-local find = string.find
local formatters = string.formatters
local P, S, C, V, Cs, Ct, Cg, Cf, Cc = lpeg.P, lpeg.S, lpeg.C, lpeg.V, lpeg.Cs, lpeg.Ct, lpeg.Cg, lpeg.Cf, lpeg.Cc
@@ -39,8 +38,6 @@ local chardata = characters.data
local trace_hashing = false trackers.register("publications.authorhash", function(v) trace_hashing = v end)
-local expand_authors = false directives.register("publications.prerollauthor", function(v) expand_authors = v end)
-
local report = logs.reporter("publications","authors")
local report_cite = logs.reporter("publications","cite")
@@ -64,8 +61,8 @@ local v_last = interfaces.variables.last
local space = lpegpatterns.whitespace
local comma = P(",")
-local period = P(".") + P("{.}")
-local dash = P("-") + P("{-}")
+local period = P(".")
+local dash = P("-")
local firstcharacter = lpegpatterns.utf8byte
local utf8character = lpegpatterns.utf8character
local p_and = space^1 * (P("and") + P("&&") + P("++")) * space^1
@@ -126,8 +123,6 @@ end
local authormap = allocate()
publications.authormap = authormap
-local prerollcmdstring = publications.prerollcmdstring
-
local function splitauthor(author,justsplit)
local detail, remapped
if not justsplit then
@@ -147,9 +142,6 @@ local function splitauthor(author,justsplit)
end
local author = remapped or author
local firstnames, vons, surnames, initials, juniors, options
- if expand_authors and find(author,"\\btxcmd") then
- author = prerollcmdstring(author)
- end
local split = lpegmatch(commasplitter,author)
local n = #split
detail = {
@@ -159,11 +151,8 @@ local function splitauthor(author,justsplit)
if n == 1 then
-- {First Middle von Last}
local words = lpegmatch(spacesplitter,author)
- local i = 1
- local n = #words
- firstnames = { }
- vons = { }
- surnames = { }
+ firstnames, vons, surnames = { }, { }, { }
+ local i, n = 1, #words
while i <= n do
local w = words[i]
if is_upper(w) then
@@ -201,12 +190,9 @@ local function splitauthor(author,justsplit)
elseif n == 2 then
-- {Last, First}
-- {von Last, First}
+ firstnames, vons, surnames = { }, { }, { }
local words = lpegmatch(spacesplitter,split[1])
- local i = 1
- local n = #words
- firstnames = { }
- vons = { }
- surnames = { }
+ local i, n = 1, #words
while i <= n do
local w = words[i]
if is_upper(w) then
@@ -216,25 +202,21 @@ local function splitauthor(author,justsplit)
end
end
while i <= n do
- surnames[#surnames+1] = words[i]
- i = i + 1
+ surnames[#surnames+1], i = words[i], i + 1
end
--
local words = lpegmatch(spacesplitter,split[2])
- local i = 1
- local n = #words
+ local i, n = 1, #words
while i <= n do
local w = words[i]
if is_upper(w) then
- firstnames[#firstnames+1] = w
- i = i + 1
+ firstnames[#firstnames+1], i = w, i + 1
else
break
end
end
while i <= n do
- vons[#vons+1] = words[i]
- i = i + 1
+ vons[#vons+1], i = words[i], i + 1
end
if surnames and firstnames and #surnames == 0 then
-- safeguard
@@ -326,14 +308,12 @@ local function the_initials(initials,symbol,connector)
if not connector then
connector = "-"
end
- local result = { }
- local r = 0
+ local result, r = { }, 0
for i=1,#initials do
local initial = initials[i]
if type(initial) == "table" then
-- J.-J.
- local set = { }
- local s = 0
+ local set, s = { }, 0
for i=1,#initial do
if i > 1 then
s = s + 1 ; set[s] = connector
@@ -845,10 +825,8 @@ local p_clean = Cs ( (
+ lpeg.patterns.utf8character
)^1)
--- Probabbly more robust is a two pass approach.
-
authorhashers.short = function(authors)
- -- a short is a real dumb hardcoded kind of tag and we only support
+ -- a short is a real dumb hardcodes kind of tag and we only support
-- this one because some users might expect it, not because it makes
-- sense
if type(authors) == "table" then
diff --git a/Master/texmf-dist/tex/context/base/mkiv/publ-dat.lua b/Master/texmf-dist/tex/context/base/mkiv/publ-dat.lua
index f09e97a8d9f..310df82f38a 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/publ-dat.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/publ-dat.lua
@@ -22,10 +22,6 @@ if not characters then
dofile(resolvers.findfile("char-tex.lua"))
end
-if not utilities.sequencers then
- dofile(resolvers.findfile("util-seq.lua"))
-end
-
local lower, find, sub = string.lower, string.find, string.sub
local concat, copy, tohash = table.concat, table.copy, table.tohash
local next, type, rawget, tonumber = next, type, rawget, tonumber
@@ -34,7 +30,7 @@ local lpegmatch, lpegpatterns = lpeg.match, lpeg.patterns
local textoutf = characters and characters.tex.toutf
local settings_to_hash, settings_to_array = utilities.parsers.settings_to_hash, utilities.parsers.settings_to_array
local formatters = string.formatters
-local sortedkeys, sortedhash, keys, sort = table.sortedkeys, table.sortedhash, table.keys, table.sort
+local sortedkeys, sortedhash, keys = table.sortedkeys, table.sortedhash, table.keys
local xmlcollected, xmltext, xmlconvert = xml.collected, xml.text, xml.convert
local setmetatableindex = table.setmetatableindex
@@ -443,7 +439,7 @@ do
----- command = P("\\") * (Carg(1) * C(R("az","AZ")^1) * space^0 / function(list,c) list[c] = (list[c] or 0) + 1 return "btxcmd{" .. c .. "}" end)
local command = P("\\") * (Carg(1) * C(csletter^1) * space^0 / function(list,c) list[c] = (list[c] or 0) + 1 return "btxcmd{" .. c .. "}" end)
local whatever = P("\\") * P(" ")^1 / " "
- ----- + P("\\") * ( P("hbox") + P("raise") ) -- bah -- no longer
+ + P("\\") * ( P("hbox") + P("raise") ) -- bah
local somemath = P("$") * ((1-P("$"))^1) * P("$") -- let's not assume nested math
----- character = lpegpatterns.utf8character
local any = P(1)
@@ -486,8 +482,6 @@ do
local tags = table.setmetatableindex("table")
- local indirectcrossrefs = true
-
local function do_definition(category,tag,tab,dataset)
publicationsstats.nofdefinitions = publicationsstats.nofdefinitions + 1
if tag == "" then
@@ -535,23 +529,11 @@ do
value = lpegmatch(filter_2,value,1,dataset.commands) -- we need to start at 1 for { }
end
if normalized == "crossref" then
- if indirectcrossrefs then
- setmetatableindex(entries,function(t,k)
- local parent = rawget(luadata,value)
- if parent == entries then
- report_duplicates("bad parent %a for %a in dataset %s",value,hashtag,dataset.name)
- setmetatableindex(entries,nil)
- return entries
- elseif parent then
- setmetatableindex(entries,parent)
- return entries[k]
- else
- report_duplicates("no valid parent %a for %a in dataset %s",value,hashtag,dataset.name)
- setmetatableindex(entries,nil)
- end
- end)
+ local parent = luadata[value]
+ if parent then
+ setmetatableindex(entries,parent)
else
- dataset.nofcrossrefs = dataset.nofcrossrefs +1
+ -- warning
end
end
entries[normalized] = value
@@ -658,17 +640,16 @@ do
local somevalue = d_value + b_value + s_value + r_value + n_value + e_value
local value = Cs((somevalue * ((spacing * hash * spacing)/"" * somevalue)^0))
- local stripper = lpegpatterns.collapser
- local stripped = value / function(s) return lpegmatch(stripper,s) end
+ local stripper = lpegpatterns.stripper
+ value = value / function(s) return lpegmatch(stripper,s) end
local forget = percent^1 * (1-lineending)^0
local spacing = spacing * forget^0 * spacing
- local replacement= spacing * key * spacing * equal * spacing * value * spacing
- local assignment = spacing * key * spacing * equal * spacing * stripped * spacing
+ local assignment = spacing * key * spacing * equal * spacing * value * spacing
local definition = category * spacing * left * spacing * tag * spacing * comma * Ct((assignment * comma^0)^0) * spacing * right * Carg(1) / do_definition
local crapword = C((1-space-left)^1)
- local shortcut = Cmt(crapword,function(_,p,s) return lower(s) == "string" and p end) * spacing * left * ((replacement * Carg(1))/do_shortcut * comma^0)^0 * spacing * right
+ local shortcut = Cmt(crapword,function(_,p,s) return lower(s) == "string" and p end) * spacing * left * ((assignment * Carg(1))/do_shortcut * comma^0)^0 * spacing * right
local comment = Cmt(crapword,function(_,p,s) return lower(s) == "comment" and p end) * spacing * lpegpatterns.argument * Carg(1) / do_comment
local casecrap = #S("sScC") * (shortcut + comment)
@@ -701,37 +682,12 @@ do
statistics.starttiming(publications)
publicationsstats.nofbytes = publicationsstats.nofbytes + size
current.nofbytes = current.nofbytes + size
- current.nofcrossrefs = 0
if source then
table.insert(current.sources, { filename = source, checksum = md5.HEX(content) })
current.loaded[source] = kind or true
end
- local luadata = current.luadata
- current.newtags = #luadata > 0 and { } or current.newtags
+ current.newtags = #current.luadata > 0 and { } or current.newtags
lpegmatch(bibtotable,content or "",1,current)
- if current.nofcrossrefs > 0 then
- for tag, entries in next, luadata do
- local value = entries.crossref
- if value then
- local parent = luadata[value]
- if parent == entries then
- report_duplicates("bad parent %a for %a in dataset %s",value,hashtag,dataset.name)
- elseif parent then
- local t = { }
- for k, v in next, parent do
- if not entries[k] then
- entries[k] = v
- t[#t+1] = k
- end
- end
- sort(t)
- entries.inherited = concat(t,",")
- else
- report_duplicates("no valid parent %a for %a in dataset %s",value,hashtag,dataset.name)
- end
- end
- end
- end
statistics.stoptiming(publications)
end
@@ -752,27 +708,22 @@ do
local compact = false -- can be a directive but then we also need to deal with newlines ... not now
- function publications.converttoxml(dataset,nice,dontstore,usedonly,subset,noversion,rawtoo) -- we have fields !
+ function publications.converttoxml(dataset,nice,dontstore,usedonly,subset) -- we have fields !
local current = datasets[dataset]
local luadata = subset or (current and current.luadata)
if luadata then
statistics.starttiming(publications)
--
local result, r, n = { }, 0, 0
- if usedonly then
- usedonly = publications.usedentries()
- usedonly = usedonly[current.name]
- end
+ local usedonly = usedonly and publications.usedentries()
--
r = r + 1 ; result[r] = "<?xml version='1.0' standalone='yes'?>"
- r = r + 1 ; result[r] = formatters["<bibtex dataset='%s'>"](current.name)
+ r = r + 1 ; result[r] = "<bibtex>"
--
if nice then -- will be default
local f_entry_start = formatters[" <entry tag='%s' category='%s' index='%s'>"]
local s_entry_stop = " </entry>"
local f_field = formatters[" <field name='%s'>%s</field>"]
- local f_cdata = formatters[" <field name='rawbibtex'><![CDATA[%s]]></field>"]
-
for tag, entry in sortedhash(luadata) do
if not usedonly or usedonly[tag] then
r = r + 1 ; result[r] = f_entry_start(tag,entry.category,entry.index)
@@ -786,11 +737,6 @@ do
end
end
end
- if rawtoo then
- local s = publications.savers.bib(current,false,{ [tag] = entry })
- s = utilities.strings.striplines(s,"prune and collapse")
- r = r + 1 ; result[r] = f_cdata(s)
- end
r = r + 1 ; result[r] = s_entry_stop
n = n + 1
end
@@ -820,7 +766,7 @@ do
--
r = r + 1 ; result[r] = "</bibtex>"
--
- result = concat(result,nice and "\n" or nil,noversion and 2 or 1,#result)
+ result = concat(result,nice and "\n" or nil)
--
if dontstore then
-- indeed
@@ -1138,7 +1084,7 @@ do
\ifdefined\btxcmd
% we're probably in context
\else
- \def\btxcmd#1{\begincsname#1\endcsname}
+ \def\btxcmd#1{\csname#1\endcsname}
\fi
}
@@ -1148,8 +1094,8 @@ do
local f_start = formatters["@%s{%s,\n"]
local f_field = formatters[" %s = {%s},\n"]
local s_stop = "}\n\n"
- local result = { }
- local n, r = 0, 0
+ local result = { s_preamble }
+ local n, r = 0, 1
for tag, data in sortedhash(tobesaved) do
r = r + 1 ; result[r] = f_start(data.category or "article",tag)
for key, value in sortedhash(data) do
@@ -1160,16 +1106,8 @@ do
r = r + 1 ; result[r] = s_stop
n = n + 1
end
- result = concat(result)
- if find(result,"\\btxcmd") then
- result = s_preamble .. result
- end
- if filename then
- report("%s entries from dataset %a saved in %a",n,dataset,filename)
- io.savedata(filename,result)
- else
- return result
- end
+ report("%s entries from dataset %a saved in %a",n,dataset,filename)
+ io.savedata(filename,concat(result))
end
function savers.lua(dataset,filename,tobesaved)
@@ -1189,8 +1127,8 @@ do
table.save(filename,list)
end
- function savers.xml(dataset,filename,tobesaved,rawtoo)
- local result, n = publications.converttoxml(dataset,true,true,false,tobesaved,false,rawtoo)
+ function savers.xml(dataset,filename,tobesaved)
+ local result, n = publications.converttoxml(dataset,true,true,false,tobesaved)
report("%s entries from dataset %a saved in %a",n,dataset,filename)
io.savedata(filename,result)
end
@@ -1237,8 +1175,6 @@ do
return dataset
end
- publications.savers = savers
-
if implement then
implement {
@@ -1312,18 +1248,3 @@ do
writers.pagenumber = writers.range
end
-
-if implement then
-
- implement {
- name = "btxshortcut",
- arguments = "2 strings",
- actions = function(instance,key)
- local d = publications.datasets[instance]
- context(d and d.shortcuts[key] or "?")
- end,
- }
-
-end
-
--- inspect(publications.load { filename = "e:/tmp/oeps.bib" })
diff --git a/Master/texmf-dist/tex/context/base/mkiv/publ-imp-apa.mkvi b/Master/texmf-dist/tex/context/base/mkiv/publ-imp-apa.mkvi
index 160cc452209..cd78a879959 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/publ-imp-apa.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/publ-imp-apa.mkvi
@@ -432,44 +432,8 @@
\c!style=\v!italic]
\definebtx
- [apa:\s!cite:subtitle]
- [apa:\s!cite:title]
-
-\definebtx
- [apa:\s!cite:booktitle]
- [apa:\s!cite:title]
-
-\definebtx
- [apa:\s!cite:subbooktitle]
[apa:\s!cite:booktitle]
-
-% Will these get used?
-
-\definebtx
- [apa:\s!cite:title:inbook]
[apa:\s!cite:title]
- [\c!style=] % not italic
-
-\definebtx
- [apa:\s!cite:title:incollection]
- [apa:\s!cite:title:inbook]
-
-\definebtx
- [apa:\s!cite:title:inproceedings]
- [apa:\s!cite:title:inbook]
-
-\definebtx
- [apa:\s!cite:subtitle:inbook]
- [apa:\s!cite:title:inbook]
-
-\definebtx
- [apa:\s!cite:subtitle:incollection]
- [apa:\s!cite:title:incollection]
-
-\definebtx
- [apa:\s!cite:subtitle:inproceedings]
- [apa:\s!cite:title:inproceedings]
-
\definebtx
[apa:\s!cite:tag]
@@ -477,6 +441,7 @@
[\c!left={[},
\c!right={]}]
+
\definebtx
[apa:\s!cite:index]
[apa:\s!cite]
@@ -714,50 +679,6 @@
\fastsetup{\s!btx:\s!cite:author:years}
\stopsetups
-% these setups need to be explicitly defined in order to get cite rendering
-
-\startsetups \s!btx:apa:\s!cite:organization
- \fastsetup{\s!btx:\s!cite:normal}
-\stopsetups
-
-\startsetups \s!btx:apa:\s!cite:subtitle
- \fastsetup{\s!btx:\s!cite:normal}
-\stopsetups
-
-\startsetups \s!btx:apa:\s!cite:booktitle
- \fastsetup{\s!btx:\s!cite:normal}
-\stopsetups
-
-\startsetups \s!btx:apa:\s!cite:subbooktitle
- \fastsetup{\s!btx:\s!cite:normal}
-\stopsetups
-
-% are these needed?
-
-\startsetups \s!btx:apa:\s!cite:title:inbook
- \fastsetup{\s!btx:\s!cite:normal}
-\stopsetups
-
-\startsetups \s!btx:apa:\s!cite:title:incollection
- \fastsetup{\s!btx:\s!cite:normal}
-\stopsetups
-
-\startsetups \s!btx:apa:\s!cite:title:inproceedings
- \fastsetup{\s!btx:\s!cite:normal}
-\stopsetups
-
-\startsetups \s!btx:apa:\s!cite:subtitle:inbook
- \fastsetup{\s!btx:\s!cite:normal}
-\stopsetups
-
-\startsetups \s!btx:apa:\s!cite:subtitle:incollection
- \fastsetup{\s!btx:\s!cite:normal}
-\stopsetups
-
-\startsetups \s!btx:apa:\s!cite:subtitle:inproceedings
- \fastsetup{\s!btx:\s!cite:normal}
-\stopsetups
-
% used in publ-imp-page.mkvi
\startsetups btx:apa:list:page-or-pages
@@ -876,7 +797,7 @@
% A book might have an editor AND an author
\doif {\currentbtxcategory} {book} {
\doifnot {\btxfoundname{author}} {editor} {
- \btxdoif {ineditor} { % ineditor specific authorconversion
+ \btxdoif {ineditor} { % ineditor authorconversion
\btxleftparenthesis
\btxflush{ineditor}
\btxcomma
@@ -1052,11 +973,11 @@
\starttexdefinition unexpanded btx:apa:editor-in
\btxdoif {booktitle} {
\btxlabeltext{In}
- \btxspace
\doifnot {\btxfoundname{author}} {editor} {
+ \btxspace
\texdefinition{btx:apa:author-or-editor} {ineditor}
- \btxcomma
}
+ \btxspace
\texdefinition{btx:apa:composed-title}{booktitle}
\btxperiod
}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/publ-imp-cite.mkvi b/Master/texmf-dist/tex/context/base/mkiv/publ-imp-cite.mkvi
index 56af83a1b15..8fe96429d1b 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/publ-imp-cite.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/publ-imp-cite.mkvi
@@ -232,6 +232,9 @@
\startsetups \s!btx:\s!cite:pages
\fastsetup{\s!btx:\s!cite:range}
\stopsetups
+\startsetups \s!btx:\s!cite:organization
+ \fastsetup{\s!btx:\s!cite:range}
+\stopsetups
% is the next one used?
% Yes, bibtex is a mess and one can have pages or sometimes page
diff --git a/Master/texmf-dist/tex/context/base/mkiv/publ-inc.lua b/Master/texmf-dist/tex/context/base/mkiv/publ-inc.lua
deleted file mode 100644
index 9231be3c192..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/publ-inc.lua
+++ /dev/null
@@ -1,26 +0,0 @@
-if not modules then modules = { } end modules ['publ-inc'] = {
- version = 1.001,
- comment = "this module part of publication support",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
-local fullstrip = string.fullstrip
-local datasets, savers = publications.datasets, publications.savers
-local assignbuffer = buffers.assign
-
-interfaces.implement {
- name = "btxentrytobuffer",
- arguments = "3 strings",
- actions = function(dataset,tag,target)
- local d = datasets[dataset]
- if d then
- d = d.luadata[tag]
- end
- if d then
- d = fullstrip(savers.bib(dataset,false,{ [tag] = d }))
- end
- assignbuffer(target,d or "")
- end
-}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/publ-inc.mkiv b/Master/texmf-dist/tex/context/base/mkiv/publ-inc.mkiv
deleted file mode 100644
index c1728f44a4f..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/publ-inc.mkiv
+++ /dev/null
@@ -1,63 +0,0 @@
-%D \module
-%D [ file=publ-inc,
-%D version=2018.06.23,
-%D title=\CONTEXT\ Publication Macros,
-%D subtitle=XML inclusion,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Publication Macros / XML inclusion}
-
-\registerctxluafile{publ-inc}{}
-
-%D A teaser for Alan.
-
-\unprotect
-
-\definesymbol[btxattachment][{\infofont\darkred btx}]
-\definesymbol[btxcomment] [{\infofont\darkblue btx}]
-
-\unexpanded\def\btx_add_blob#1#2%
- {\relax
- \clf_btxentrytobuffer{\currentbtxdataset}{\currentbtxtag}{temp-btx-export}%
- #2%
- [\c!symbol=#1,%
- \c!space=\v!yes,
- \c!buffer=temp-btx-export,%
- \c!name={\currentbtxtag.bib}]%
- \relax}
-
-\unexpanded\def\btxattach
- {\iftrialtypesetting \else \ifexporting \iflocation
- \dostarttagged\t!ignore\empty
- \btx_add_blob{btxattachment}\attachment
- \dostoptagged
- \fi \fi \fi}
-
-\unexpanded\def\btxcomment
- {\iftrialtypesetting \else \ifexporting \iflocation
- \dostarttagged\t!ignore\empty
- \btx_add_blob{btxcomment}\comment
- \dostoptagged
- \fi \fi \fi}
-
-%D This kind of feature creep is not yet configurable, nor documented.
-
-\unexpanded\def\btxaddsource
- {\iftrialtypesetting \else \ifexporting \iflocation
- \dostarttagged\t!ignore\empty
- \llap{%
- \btx_add_blob{btxattachment}\attachment
- \quad
- \btx_add_blob{btxcomment}\comment
- \hskip\leftmargindistance
- }%
- \dostoptagged
- \fi \fi \fi}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkiv/publ-ini.lua b/Master/texmf-dist/tex/context/base/mkiv/publ-ini.lua
index f62352f07f0..9dfeda168cc 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/publ-ini.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/publ-ini.lua
@@ -32,7 +32,7 @@ local sortedkeys, sortedhash = table.sortedkeys, table.sortedhash
local setmetatableindex = table.setmetatableindex
local lpegmatch = lpeg.match
local P, S, C, Ct, Cs, R, Carg = lpeg.P, lpeg.S, lpeg.C, lpeg.Ct, lpeg.Cs, lpeg.R, lpeg.Carg
-local upper = characters.upper
+local upper = utf.upper
local report = logs.reporter("publications")
local report_cite = logs.reporter("publications","cite")
@@ -229,9 +229,9 @@ logs.registerfinalactions(function()
logs.startfilelogging(report,"used btx commands")
done = true
end
- if isdefined(command) then
+ if isdefined[command] then
report("%-20s %-20s % 5i %s",name,command,n,"known")
- elseif isdefined(upper(command)) then
+ elseif isdefined[upper(command)] then
report("%-20s %-20s % 5i %s",name,command,n,"KNOWN")
else
report("%-20s %-20s % 5i %s",name,command,n,"unknown")
@@ -246,7 +246,7 @@ logs.registerfinalactions(function()
logs.starterrorlogging(report,"unknown btx commands")
for name, dataset in sortedhash(datasets) do
for command, n in sortedhash(dataset.commands) do
- if not isdefined(command) and not isdefined(upper(command)) then
+ if not isdefined[command] and not isdefined[upper(command)] then
report("%-20s %-20s % 5i %s",name,command,n,"unknown")
end
end
@@ -1065,17 +1065,14 @@ do
-- maybe not redo when already done
local function shortsorter(a,b)
- local ay = a[2] -- year
- local by = b[2] -- year
+ local ay, by = a[2], b[2] -- year
if ay ~= by then
return ay < by
end
- local ay = a[3] -- suffix
- local by = b[3] -- suffix
+ local ay, by = a[3], b[3] -- suffix
if ay ~= by then
-- bah, bah, bah
- local an = tonumber(ay)
- local bn = tonumber(by)
+ local an, bn = tonumber(ay), tonumber(by)
if an and bn then
return an < bn
else
@@ -2026,8 +2023,7 @@ do
for i=1,nofranges do
local r = ranges[i]
ctx_btxsetconcat(concatstate(i,nofranges))
- local first = r[1]
- local last = r[2]
+ local first, last = r[1], r[2]
ctx_btxsetfirstinternal(first[2].internal)
ctx_btxsetfirstpage(first[1])
if last then
@@ -2048,8 +2044,7 @@ do
}
local function identical(a,b)
- local na = #a
- local nb = #b
+ local na, nb = #a, #b
if na ~= nb then
return false
end
@@ -2061,8 +2056,7 @@ do
end
return true
end
- local ha = a.hash
- local hb = b.hash
+ local ha, hb = a.hash, b.hash
if ha then
return ha == hb
end
@@ -3462,20 +3456,3 @@ do
}
end
-
-do
-
- local btxstring = ""
-
- implement {
- name = "btxcmdstring",
- actions = function() if btxstring ~= "" then context(btxstring) end end,
- }
-
- function publications.prerollcmdstring(str)
- btxstring = str or ""
- tex.runtoks("t_btx_cmd")
- return nodes.toutf(tex.getbox("b_btx_cmd").list) or str
- end
-
-end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/publ-ini.mkiv b/Master/texmf-dist/tex/context/base/mkiv/publ-ini.mkiv
index ead46929d44..9f970547d33 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/publ-ini.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/publ-ini.mkiv
@@ -107,27 +107,23 @@
%D to split between cite and list here as it only complicates matters (timing) and is
%D not clear either.
-\let\currentbtxspecification \empty
-\let\currentbtxspecificationfallback\empty
-
-\installmacrostack\currentbtxspecification
-\installmacrostack\currentbtxspecificationfallback
+\let\currentbtxspecification\empty
\unexpanded\def\startbtxrenderingdefinitions[#1]%
{\unprotect
- \push_macro_currentbtxspecification
+ \pushmacro\currentbtxspecification
\edef\currentbtxspecification{#1}}
\unexpanded\def\stopbtxrenderingdefinitions
- {\pop_macro_currentbtxspecification
+ {\popmacro\currentbtxspecification
\protect}
\unexpanded\def\loadbtxdefinitionfile [#1]{\clf_btxloaddefinitionfile {#1}}
\unexpanded\def\loadbtxreplacementfile[#1]{\clf_btxloadreplacementfile{#1}}
\unexpanded\def\publ_specification_push#1%
- {\push_macro_currentbtxspecification
- \push_macro_currentbtxspecificationfallback
+ {\pushmacro\currentbtxspecification
+ \pushmacro\currentbtxspecificationfallback
\edef\currentbtxspecification{#1}%
\edef\currentbtxspecificationfallback{\namedbtxparameter\currentbtxspecification\c!default}%
\ifx\currentbtxspecificationfallback\currentbtxspecification
@@ -136,8 +132,8 @@
\clf_btxsetspecification{\currentbtxspecification}}
\unexpanded\def\publ_specification_pop
- {\pop_macro_currentbtxspecificationfallback
- \pop_macro_currentbtxspecification
+ {\popmacro\currentbtxspecificationfallback
+ \popmacro\currentbtxspecification
\clf_btxsetspecification{\currentbtxspecification}}
\unexpanded\def\publ_specification_set#1% beware: is global
@@ -227,6 +223,9 @@
\installcommandhandler \??btxregister {btxregister} \??btxregister
\installcommandhandler \??btxrendering {btxrendering} \??btxrendering
+\let\currentbtxcitealternative \empty
+\let\currentbtxspecificationfallback\empty
+
\unexpanded\def\setbtxparameterset#1#2%
{\edef\currentbtx
{\ifcsname\??btx\currentbtxspecification:#1:#2:\s!parent\endcsname
@@ -334,11 +333,6 @@
\expandafter\publ_command_nop
\fi{#1}}
-\newtoks\t_btx_cmd
-\newbox \b_btx_cmd
-
-\t_btx_cmd{\global\setbox\b_btx_cmd\hpack{\clf_btxcmdstring}}
-
\let\btxcmd\btxcommand
\def\publ_command_yes#1%
@@ -347,10 +341,10 @@
\def\publ_command_nop#1%
{\ifcsname#1\endcsname
\showmessage\m!publications{10}{#1,#1}%
- \expandafter\glet\csname\??btxcommand#1\expandafter\endcsname\csname#1\endcsname
+ \global\expandafter\let\csname\??btxcommand#1\expandafter\endcsname\csname#1\endcsname
\else\ifcsname\utfupper{#1}\endcsname
\showmessage\m!publications{10}{#1}{\utfupper{#1}}%
- \expandafter\glet\csname\??btxcommand#1\expandafter\endcsname\csname\utfupper{#1}\endcsname
+ \global\expandafter\let\csname\??btxcommand#1\expandafter\endcsname\csname\utfupper{#1}\endcsname
\else
\showmessage\m!publications{11}{#1}%
\setugvalue{\??btxcommand#1}{\underbar{\tttf#1}}%
@@ -391,12 +385,6 @@
\let\btxsetup\fastsetup
-\def\btxfield #1{\dostarttagged\t!pubfld{#1}\clf_btxfield {\currentbtxdataset}{\currentbtxtag}{#1}\dostoptagged}
-\def\btxdetail #1{\dostarttagged\t!pubfld{#1}\clf_btxdetail{\currentbtxdataset}{\currentbtxtag}{#1}\dostoptagged}
-\def\btxflush #1{\dostarttagged\t!pubfld{#1}\clf_btxflush {\currentbtxdataset}{\currentbtxtag}{#1}\dostoptagged}
-\def\btxdirect #1{\dostarttagged\t!pubfld{#1}\clf_btxdirect{\currentbtxdataset}{\currentbtxtag}{#1}\dostoptagged}
-%def\btxauthorfield#1{\dostarttagged\t!pubfld{#1}\clf_btxauthorfield \currentbtxauthorindex{#1}\dostoptagged}
-
%D How complex will we go? Can we assume that e.g. an apa style will not be mixed
%D with another one? I think this assumption is okay. For manuals we might want to
%D mix but we can work around it.
@@ -641,13 +629,11 @@
\unexpanded\def\btxnumberingsetup#1%
{\begingroup
- \dostarttagged\t!listtag\empty
\setbtxparameterset{\c!list:\s!numbering}\currentbtxnumbering % brrrr \setbtxlist
\btxparameter\c!left
% \btxparameter\c!command{\publ_fast_setup\plusthree{\s!list:\s!numbering}{#1}}%
\publ_fast_setup\plusthree{\s!list:\s!numbering}{#1}%
\btxparameter\c!right
- \dostoptagged
\endgroup
\btx_reset_numbering} % probably not needed
@@ -669,34 +655,21 @@
\def\btx_entry_inject_list_text
{\publ_fast_setup\plusfour\s!list\s!text}
-\ifdefined\dotagpublication \else \let\dotagpublication \gobbletwoarguments \fi
-
\unexpanded\def\btx_entry_inject
{\begingroup
- \dostarttagged\t!publication\empty
- \dotagpublication\currentbtxdataset\currentbtxtag
\redoconvertfont % see (**) in strc-lst, this will become an configuration option
\edef\currentbtxcategory{\btxfield{category}}%
\ignorespaces
\ifconditional\c_btx_list_texts
- \dostarttagged\t!listtext\s!left
\currentbtxbefore
- \dostoptagged
\fi
- %\dostarttagged\t!listcontent\empty
\btx_entry_inject_list_text
- %\dostoptagged
\ifconditional\c_btx_list_pages
- \dostarttagged\t!listpage\empty
\btx_entry_inject_pages
- \dostoptagged
\fi
\ifconditional\c_btx_list_texts
- \dostarttagged\t!listtext\s!right
\currentbtxafter
- \dostoptagged
\fi
- \dostoptagged
\endgroup}
\unexpanded\def\btxshowentryinline
@@ -870,8 +843,6 @@
\expandafter\p_command\expandafter{\number\nofbtxlistentries}\relax
\fi
\else
- \dostarttagged\t!publications\currentbtxrendering
- \dostarttagged\t!list{btx}%
\startpacked[\v!blank]%
% sorting and so
\clf_btxpreparelistentries{\currentbtxdataset}% could be put in collect
@@ -894,8 +865,6 @@
{\let\currentbtxlistentry\recurselevel
\clf_btxflushlistentry{\currentbtxdataset}\currentbtxlistentry\relax}%
\stoppacked
- \dostoptagged
- \dostoptagged
\fi
\btxrenderingparameter\c!after
\fi
@@ -1009,10 +978,8 @@
\strc_lists_apply_renderingsetup}
\def\btx_entry_indeed
- {\dostarttagged\t!listcontent\empty
- \btx_list_reference_inject
- \btx_entry_inject
- \dostoptagged}
+ {\btx_list_reference_inject
+ \btx_entry_inject}
\def\btx_page_indeed
{}
@@ -1146,8 +1113,7 @@
\let\btxcitereference\btx_cite_reference_inject
-\let\currentbtxnumbering \empty
-\let\currentbtxcitealternative \empty
+\let\currentbtxnumbering\empty
\appendtoks
\edef\currentbtxnumbering{\btxrenderingparameter\c!numbering}%
@@ -2029,15 +1995,4 @@
\fetchruntimecommand \showbtxfields \f!publ_tra
\fetchruntimecommand \showbtxtables \f!publ_tra
-%D Some potential crap:
-%D
-%D Because I consider this bad data management and a weird mix of languages only one
-%D accessor is provided.
-
-\unexpanded\def\btxshortcut
- {\dosingleempty\publ_shortcut}
-
-\def\publ_shortcut[#1]#2%
- {\clf_btxshortcut{\iffirstargument#1\else\s!default\fi}{#2}}
-
\protect
diff --git a/Master/texmf-dist/tex/context/base/mkiv/scrn-bar.mkvi b/Master/texmf-dist/tex/context/base/mkiv/scrn-bar.mkvi
index 0c320cd03bf..7634398f8db 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/scrn-bar.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/scrn-bar.mkvi
@@ -138,7 +138,7 @@
\setbox2\hbox{\inheritedinteractionbarframed{\symbol[\interactionparameter\c!symbolset][\v!previouspage]}}%
\scratchheight\ht2 % needed because we default to nothing
\letinteractionbarparameter\c!strut\v!no
- % \letinteractionparameter\c!width\zeropoint
+ \letinteractionparameter\c!width\zeropoint
\scratchcounterone\zerocount % new, was 1
\processallactionsinset
[#list]
diff --git a/Master/texmf-dist/tex/context/base/mkiv/scrn-but.mkvi b/Master/texmf-dist/tex/context/base/mkiv/scrn-but.mkvi
index 87af29cfb9d..8bbd6eeda90 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/scrn-but.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/scrn-but.mkvi
@@ -11,16 +11,20 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+% \restorestandardblank
+% better namespace for pos
+
\writestatus{loading}{ConTeXt Screen Macros / Buttons}
\registerctxluafile{scrn-but}{}
\unprotect
-%D Buttons are just what their names says: things that can be clicked (pushed) on.
-%D They are similar to \type{\goto}, except that the text argument is not
-%D interpreted. Furthermore one can apply anything to them that can be done with
-%D \type {\framed}.
+%D Buttons are just what their names says: things that can be
+%D clicked (pushed) on. They are similar to \type{\goto},
+%D except that the text argument is not interpreted.
+%D Furthermore one can apply anything to them that can be done
+%D with \type{\framed}.
%D
%D \startbuffer
%D \button[width=3cm,height=1.5cm]{Exit}[ExitViewer]
@@ -115,8 +119,8 @@
%D \overlaybutton[reference]
%D \stoptyping
%D
-%D This command can be used to define overlays an/or can be used in the whatevertext
-%D areas, like:
+%D This command can be used to define overlays an/or can be
+%D used in the whatevertext areas, like:
%D
%D \starttyping
%D \defineoverlay[PrevPage][\overlaybutton{PrevPage}]
@@ -124,7 +128,8 @@
%D \setuptexttexts[\overlaybutton{NextPage}]
%D \stoptyping
%D
-%D For practical reasons, this macro accepts square brackets as well as braces.
+%D For practical reasons, this macro accepts square brackets
+%D as well as braces.
\unexpanded\def\overlaybutton
{\dosingleempty\scrn_button_overlay}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/scrn-fld.mkvi b/Master/texmf-dist/tex/context/base/mkiv/scrn-fld.mkvi
index 7710a32dcb5..dec334209db 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/scrn-fld.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/scrn-fld.mkvi
@@ -480,7 +480,7 @@
\let\resetfields\relax
-\def\scrn_field_load_scripts{\useJSscripts[fld]\glet\scrn_field_load_scripts\relax}
+\def\scrn_field_load_scripts{\useJSscripts[fld]\globallet\scrn_field_load_scripts\relax}
\newconditional\fieldlabelshown
\newconditional\fieldframeshown
@@ -627,13 +627,11 @@
%D Common stuff (obsolete)
-
\newcount\c_scrn_field_system_n
-\def\currentsystemfield{sys::\number\c_scrn_field_system_n}
-
-\unexpanded\def\nextsystemfield
- {\global\advance\c_scrn_field_system_n\plusone}
+\def\nextsystemfield
+ {\global\advance\c_scrn_field_system_n\plusone
+ \def\currentsystemfield{sys::\number\c_scrn_field_system_n}}
%D \CONTEXT\ had tooltips right from the moment that it
%D supported fields. Due to the at that moment somewhat
@@ -756,8 +754,7 @@
{\ifcsname\??fieldstack#tag\endcsname
% already done
\else
- %setgvalue{\??fieldstack#tag}{\scrn_fieldstack_construct[#tag][#symbols][#settings]}%
- \setxvalue{\??fieldstack#tag}{\scrn_fieldstack_construct[#tag][#symbols][\normalunexpanded{#settings}]}%
+ \setgvalue{\??fieldstack#tag}{\scrn_fieldstack_construct[#tag][#symbols][#settings]}%
\fi}
\unexpanded\def\fieldstack
@@ -771,28 +768,26 @@
\newbox\b_scrn_fieldstack_box
-\definesymbol[\s!empty][]
-
\def\scrn_fieldstack_add#tag#settings#symbol%
{\advance\scratchcounter\plusone
\edef\currentfieldstackname{#tag:\number\scratchcounter}%
\ifnum\scratchcounter=\fieldcategoryparameter\c!start\relax
- \definefieldbody[\currentfieldstackname][\c!type=check,\c!values={#symbol,\s!empty},\c!default={#symbol}]%
+ \definefieldbody[\currentfieldstackname][\c!type=check,\c!values={#symbol,\empty},\c!default={#symbol}]%
\else
- \definefieldbody[\currentfieldstackname][\c!type=check,\c!values={#symbol,\s!empty},\c!default=\s!empty]%
+ \definefieldbody[\currentfieldstackname][\c!type=check,\c!values={#symbol,\empty},\c!default=]%
\fi
\setbox\b_scrn_fieldstack_box\hbox{\symbol[#symbol]}%
\setcollector
[fieldstack]
{\fieldbody
[\currentfieldstackname]
- [\c!option={\v!readonly},
+ [\c!option=\v!readonly,
\c!width=\wd\b_scrn_fieldstack_box,
\c!height=\ht\b_scrn_fieldstack_box,
\c!depth=\dp\b_scrn_fieldstack_box,
#settings]}}
-\unexpanded\def\scrn_fieldstack_construct[#tag][#symbols][#settings]% start=n, 0 == leeg
+\def\scrn_fieldstack_construct[#tag][#symbols][#settings]% start=n, 0 == leeg
{\iflocation
\dontleavehmode
\begingroup
@@ -827,56 +822,21 @@
\unexpanded\def\overlayrollbutton
{\dodoubleargument\scrn_rollbutton_overlay}
-\unexpanded\def\scrn_rollbutton_overlay[#regionin][#regionout]%
- {\iffirstargument
- \scrn_rollbutton_overlay_indeed[#regionin][#regionout]%
- \else
- \expandafter\scrn_rollbutton_overlay_indeed
- \fi}
-
-% \def\scrn_rollbutton_overlay_indeed#regionin#regionout%
-% {\iflocation
-% \bgroup
-% \global\advance\c_scrn_rollbutton_n\plusone
-% \definesymbol
-% [rollbutton:\number\c_scrn_rollbutton_n]
-% [{\framed[\c!frame=\v!off,\c!width=\overlaywidth,\c!height=\overlayheight]{}}]%
-% \definefieldbody
-% [rollbutton:\number\c_scrn_rollbutton_n]
-% [\c!type=push,
-% \c!regionin={#regionin},
-% \c!regionout={#regionout},
-% \c!values=\currentsystemfield,
-% \c!default=\currentsystemfield]%
-% \fitfield[\currentsystemfield]%
-% \egroup
-% \fi}
-
-\def\scrn_rollbutton_overlay_indeed#regionin#regionout%
+\def\scrn_rollbutton_overlay[#regionin][#regionout]%
{\iflocation
\bgroup
- \global\advance\c_scrn_rollbutton_n_button\plusone
- \global\advance\c_scrn_rollbutton_n_symbol\plusone
+ \global\advance\c_scrn_rollbutton_n\plusone
\definesymbol
- [rollsymbol:\number\c_scrn_rollbutton_n_symbol]
+ [rollbutton:\number\c_scrn_rollbutton_n]
[{\framed[\c!frame=\v!off,\c!width=\overlaywidth,\c!height=\overlayheight]{}}]%
- % \definefieldbody
- % [rollbutton:\number\c_scrn_rollbutton_n_button]
- % [\c!type=push,
- % \c!values=rollsymbol:\number\c_scrn_rollbutton_n_symbol,
- % \c!default=rollsymbol:\number\c_scrn_rollbutton_n_symbol]%
- % \fitfield
- % [rollbutton:\number\c_scrn_rollbutton_n_button]%
- % [\c!regionin={#regionin},
- % \c!regionout={#regionout}]%
- %
- \definefield
- [rollbutton:\number\c_scrn_rollbutton_n_button][push][rollbutton]
- [rollsymbol:\number\c_scrn_rollbutton_n_symbol]%
- \fitfield
- [rollbutton:\number\c_scrn_rollbutton_n_button]%
- [\c!regionin={#regionin},\c!regionout={#regionout}]%
- %
+ \definefieldbody
+ [rollbutton:\number\c_scrn_rollbutton_n]
+ [\c!type=push,
+ \c!regionin={#regionin},
+ \c!regionout={#regionout},
+ \c!values=\currentsystemfield,
+ \c!default=\currentsystemfield]%
+ \fitfield[\currentsystemfield]%
\egroup
\fi}
@@ -954,7 +914,7 @@
%D We plug into the menu system
\unexpanded\def\scrn_menu_psh_start[#reference]#text\stoppsh
- {\starttxt\pushbutton[\currentinteractionmenu][#reference]\stoptxt}
+ {\starttxt\pushbutton[\currentmenu][#reference]\stoptxt}
\unexpanded\def\scrn_menu_psh_direct[#reference]#text\\
{\scrn_menu_psh_start[#reference]\stoprob}
@@ -996,8 +956,6 @@
\newcount\c_scrn_rollbutton_n_button
\newcount\c_scrn_rollbutton_n_symbol
-\def\lastrollbuttonindex{\the\c_scrn_rollbutton_n_button}
-
\unexpanded\def\rollbutton
{\dodoubleempty\scrn_rollbutton}
@@ -1015,16 +973,11 @@
\setbuttonparameter
\usebuttonstyleandcolor}
-\setupfield
- [rollbutton]
- [\c!frame=\v!off,
- \c!offset=\v!overlay]
-
\def\scrn_rollbutton[#tag][#settings]#text[#reference]%
{\dontleavehmode
\bgroup
- \global\advance\c_scrn_rollbutton_n_button\plusone
- \global\advance\c_scrn_rollbutton_n_symbol\plusone
+ \advance\c_scrn_rollbutton_n_button\plusone
+ \advance\c_scrn_rollbutton_n_symbol\plusone
\iffirstargument
\ifsecondargument
\edef\currentinteractionmenu{#tag}%
@@ -1041,18 +994,21 @@
\else
\let\scrn_rollbutton_symbol\scrn_rollbutton_symbol_b
\fi
- % todo: share symbols, tricky since different dimensions (maybe \unique...)
+ % todo: share symbols, tricky since different dimensions
\definesymbol[rollsymbol:\number\c_scrn_rollbutton_n_symbol:n][\scrn_rollbutton_symbol{n}{#text}]%
\definesymbol[rollsymbol:\number\c_scrn_rollbutton_n_symbol:r][\scrn_rollbutton_symbol{r}{#text}]%
\definesymbol[rollsymbol:\number\c_scrn_rollbutton_n_symbol:d][\scrn_rollbutton_symbol{d}{#text}]%
+ \setupfield
+ [rollbutton]
+ [\c!frame=\v!off,
+ \c!offset=\v!overlay,
+ \c!clickout={#reference}]%
\definefield
[rollbutton:\number\c_scrn_rollbutton_n_button][push][rollbutton]
[rollsymbol:\number\c_scrn_rollbutton_n_symbol:n,%
rollsymbol:\number\c_scrn_rollbutton_n_symbol:r,%
rollsymbol:\number\c_scrn_rollbutton_n_symbol:d]%
- \fitfield
- [rollbutton:\number\c_scrn_rollbutton_n_button]%
- [\c!clickout={#reference}]%
+ \fitfield[rollbutton:\number\c_scrn_rollbutton_n_button]%
\egroup}
\unexpanded\def\scrn_rollbutton_symbol_indeed#getparameter#inheritedframed#setparameter#usestyleandcolor#what#text%
@@ -1067,7 +1023,7 @@
%D We plug into the menu system
\unexpanded\def\scrn_menu_rob_start[#reference]#text\stoprob
- {\starttxt\rollbutton[\currentinteractionmenu]{\ignorespaces#text\unskip}[#reference]\stoptxt}
+ {\starttxt\rollbutton[\currentmenu]{\ignorespaces#text\unskip}[#reference]\stoptxt}
\unexpanded\def\scrn_menu_rob_direct[#reference]#text\\
{\scrn_menu_rob_start[#reference]#text\stoprob}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/scrn-ini.mkvi b/Master/texmf-dist/tex/context/base/mkiv/scrn-ini.mkvi
index 557ceb5631a..e1be43f3782 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/scrn-ini.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/scrn-ini.mkvi
@@ -61,7 +61,7 @@
\to \everyjob
% it makes no sense to create an environment as we will seldom have structured
-% interactions so a general start-stop will do
+% interactionso a general start-stop will do
%
% \appendtoks
% \setuevalue \currentinteraction {\scrn_interaction_direct{\currentinteraction}}%
diff --git a/Master/texmf-dist/tex/context/base/mkiv/scrn-pag.mkvi b/Master/texmf-dist/tex/context/base/mkiv/scrn-pag.mkvi
index a3b0a78c61c..7695443adb2 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/scrn-pag.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/scrn-pag.mkvi
@@ -188,13 +188,13 @@
\let\scrn_canvas_synchronize_complex\relax
\appendtoks
- \glet\scrn_canvas_synchronize_simple \scrn_canvas_synchronize_simple_indeed
- \glet\scrn_canvas_synchronize_complex\scrn_canvas_synchronize_complex_indeed
+ \global\let\scrn_canvas_synchronize_simple \scrn_canvas_synchronize_simple_indeed
+ \global\let\scrn_canvas_synchronize_complex\scrn_canvas_synchronize_complex_indeed
\to \everysetuplayout
\appendtoks
- \glet\scrn_canvas_synchronize_simple \scrn_canvas_synchronize_simple_indeed
- \glet\scrn_canvas_synchronize_complex\scrn_canvas_synchronize_complex_indeed
+ \global\let\scrn_canvas_synchronize_simple \scrn_canvas_synchronize_simple_indeed
+ \global\let\scrn_canvas_synchronize_complex\scrn_canvas_synchronize_complex_indeed
\to \everysetuplayouttarget
\def\scrn_canvas_synchronize_only
@@ -213,8 +213,8 @@
\def\scrn_canvas_synchronize_simple_indeed
{\scrn_canvas_synchronize_only
- %\glet\scrn_canvas_synchronize_simple \relax
- \glet\scrn_canvas_synchronize_complex\relax}
+ %\global\let\scrn_canvas_synchronize_simple \relax
+ \global\let\scrn_canvas_synchronize_complex\relax}
\def\scrn_canvas_synchronize_complex_indeed
{\scrn_canvas_calculate % otherwise we need to hook it into setuppage etc
@@ -235,8 +235,8 @@
copies \numexpr\interactionscreenparameter\c!copies\relax
print {\interactionscreenparameter\c!print}%
\relax
- %\glet\scrn_canvas_synchronize_simple \relax
- \glet\scrn_canvas_synchronize_complex\relax}
+ %\global\let\scrn_canvas_synchronize_simple \relax
+ \global\let\scrn_canvas_synchronize_complex\relax}
\appendtoks
\begingroup
@@ -262,8 +262,8 @@
\c!option=\v!auto]
\appendtoks
- \glet\scrn_canvas_synchronize_simple \scrn_canvas_synchronize_simple_indeed
- \glet\scrn_canvas_synchronize_complex\scrn_canvas_synchronize_complex_indeed
+ \global\let\scrn_canvas_synchronize_simple \scrn_canvas_synchronize_simple_indeed
+ \global\let\scrn_canvas_synchronize_complex\scrn_canvas_synchronize_complex_indeed
\to \everysetupinteractionscreen
%D Conditional page breaks:
diff --git a/Master/texmf-dist/tex/context/base/mkiv/scrn-ref.mkvi b/Master/texmf-dist/tex/context/base/mkiv/scrn-ref.mkvi
index df395e5505b..bace1331288 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/scrn-ref.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/scrn-ref.mkvi
@@ -83,15 +83,15 @@
%D delayed ...
-% \def\scrn_reference_enable_references
-% {\ifproductionrun
-% \clf_enableinteraction % only once anyway
-% \glet\scrn_reference_enable_references\relax
-% \fi}
-%
-% \appendtoks
-% \scrn_reference_enable_references
-% \to \everysetupinteraction
+\def\scrn_reference_enable_references
+ {\ifproductionrun
+ \clf_enableinteraction % only once anyway
+ \glet\scrn_reference_enable_references\relax
+ \fi}
+
+\appendtoks
+ \scrn_reference_enable_references
+\to \everysetupinteraction
\setupinteraction % start fit page and reset form
[\c!openaction=,
diff --git a/Master/texmf-dist/tex/context/base/mkiv/scrn-wid.mkvi b/Master/texmf-dist/tex/context/base/mkiv/scrn-wid.mkvi
index d1571ca656d..c74125c72b6 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/scrn-wid.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/scrn-wid.mkvi
@@ -212,10 +212,11 @@
name {\attachmentparameter\c!name}%
buffer {\attachmentparameter\c!buffer}%
\relax
+ \setbox\b_scrn_attachment_link\hbox{\scrn_attachment_place}%
\wd\b_scrn_attachment_link\currentattachmentwidth
\ht\b_scrn_attachment_link\currentattachmentheight
\dp\b_scrn_attachment_link\currentattachmentdepth
- \expandnamespaceparameter\??attachmentlocation\attachmentparameter\c!location\s!unknown}
+ \box\b_scrn_attachment_link}
\setvalue{\??attachmentmethod\v!hidden}%
{\clf_insertattachment
@@ -230,48 +231,29 @@
buffer {\attachmentparameter\c!buffer}%
\relax}
-\unexpanded\def\scrn_attachment_flush_traced
- {\hpack\bgroup
- \blackrule % can be a fast one
- [ \c!color=trace:r,
- \c!width=\wd\b_scrn_attachment_link,
- \c!height=\ht\b_scrn_attachment_link,
- \c!depth=\dp\b_scrn_attachment_link]%
- \kern-\wd\b_scrn_attachment_link
- \box\b_scrn_attachment_link
- \egroup}
-
-\unexpanded\def\scrn_attachment_flush_normal
- {\box\b_scrn_attachment_link}
-
-\installtextracker
- {attachments.anchors}
- {\let\scrn_attachment_flush\scrn_attachment_flush_traced}
- {\let\scrn_attachment_flush\scrn_attachment_flush_normal}
-
-\let\scrn_attachment_flush\scrn_attachment_flush_normal
-
-\setvalue{\??attachmentlocation\v!inmargin }{\inmargin {\scrn_attachment_flush}}
-\setvalue{\??attachmentlocation\v!leftedge }{\inleftedge {\scrn_attachment_flush}}
-\setvalue{\??attachmentlocation\v!rightedge }{\inrightedge {\scrn_attachment_flush}}
-\setvalue{\??attachmentlocation\v!leftmargin }{\inleftmargin {\scrn_attachment_flush}}
-\setvalue{\??attachmentlocation\v!rightmargin}{\inrightmargin{\scrn_attachment_flush}}
-\setvalue{\??attachmentlocation\v!high }{\high {\scrn_attachment_flush}}
-
-\setvalue{\??attachmentlocation\v!none}%
+\def\scrn_attachment_place
+ {\executeifdefined
+ {\??attachmentlocation\attachmentparameter\c!location}\hbox
+ {\box\b_scrn_attachment_link}}
+
+\setvalue{\??attachmentlocation\v!inmargin }{\inmargin }
+\setvalue{\??attachmentlocation\v!leftedge }{\inleftedge }
+\setvalue{\??attachmentlocation\v!rightedge }{\inrightedge }
+\setvalue{\??attachmentlocation\v!leftmargin }{\inleftmargin }
+\setvalue{\??attachmentlocation\v!rightmargin}{\inrightmargin}
+\setvalue{\??attachmentlocation\v!high }{\high}
+\setvalue{\??attachmentlocation\v!none }{\scrn_attachment_collect}
+%setvalue{\??attachmentlocation\v!text }{\gobblenextargument} % gobbles the box
+
+\def\scrn_attachment_collect#content%
{\global\setbox\b_scrn_attachment_collect\hbox\bgroup
\ifvoid\b_scrn_attachment_collect\else
\box\b_scrn_attachment_collect
\hskip\attachmentparameter\c!distance\relax
\fi
- \scrn_attachment_flush
+ #content%
\egroup}
-\setvalue{\??attachmentlocation\s!unknown}%
- {\ifvoid\b_scrn_attachment_collect\else
- \box\b_scrn_attachment_collect
- \fi}
-
\unexpanded\def\placeattachments
{\ifvoid\b_scrn_attachment_collect\else
\box\b_scrn_attachment_collect
@@ -335,7 +317,7 @@
%
% test
%
-% \startcomment[symbol=Help]
+% \startcomment[symbol=Balloon]
% Do we want this kind of rubish?
% \stopcomment
%
@@ -378,9 +360,6 @@
%
% test
-%D The implementation is mostly the same as for attachments but sharing code
-%D will not make it cleaner.
-
\installcorenamespace{comment}
\installcorenamespace{commentlocation}
@@ -510,37 +489,17 @@
\dp\b_scrn_comment_link\currentcommentdepth
\expandnamespaceparameter\??commentlocation\commentparameter\c!location\s!unknown}
-\letvalue{\??commentmethods\v!hidden}\donothing
-
-\unexpanded\def\scrn_comment_flush_traced
- {\hpack\bgroup
- \blackrule % can be a fast one
- [ \c!color=trace:y,
- \c!width=\wd\b_scrn_comment_link,
- \c!height=\ht\b_scrn_comment_link,
- \c!depth=\dp\b_scrn_comment_link]%
- \kern-\wd\b_scrn_comment_link
- \box\b_scrn_comment_link
- \egroup}
-
-\unexpanded\def\scrn_comment_flush_normal
- {\box\b_scrn_comment_link}
-
-\installtextracker
- {comments.anchors}
- {\let\scrn_comment_flush\scrn_comment_flush_traced}
- {\let\scrn_comment_flush\scrn_comment_flush_normal}
-
-\let\scrn_comment_flush\scrn_comment_flush_normal
+\setvalue{\??commentmethods\v!hidden}%
+ {}
% todo: dedicated margin classes
-\setvalue{\??commentlocation\v!inmargin }{\inmargin {\scrn_comment_flush}}
-\setvalue{\??commentlocation\v!leftedge }{\inleftedge {\scrn_comment_flush}}
-\setvalue{\??commentlocation\v!rightedge }{\inrightedge {\scrn_comment_flush}}
-\setvalue{\??commentlocation\v!leftmargin }{\inleftmargin {\scrn_comment_flush}}
-\setvalue{\??commentlocation\v!rightmargin}{\inrightmargin{\scrn_comment_flush}}
-\setvalue{\??commentlocation\v!high }{\high {\scrn_comment_flush}}
+\setvalue{\??commentlocation\v!inmargin }{\inmargin {\box\b_scrn_comment_link}}
+\setvalue{\??commentlocation\v!leftedge }{\inleftedge {\box\b_scrn_comment_link}}
+\setvalue{\??commentlocation\v!rightedge }{\inrightedge {\box\b_scrn_comment_link}}
+\setvalue{\??commentlocation\v!leftmargin }{\inleftmargin {\box\b_scrn_comment_link}}
+\setvalue{\??commentlocation\v!rightmargin}{\inrightmargin{\box\b_scrn_comment_link}}
+\setvalue{\??commentlocation\v!high }{\high {\box\b_scrn_comment_link}}
\setvalue{\??commentlocation\v!none}%
{\global\setbox\b_scrn_comment_collect\hbox\bgroup
@@ -548,7 +507,7 @@
\box\b_scrn_comment_collect
\hskip\commentparameter\c!distance\relax
\fi
- \scrn_comment_flush
+ \box\b_scrn_comment_link
\egroup}
\setvalue{\??commentlocation\s!unknown}%
diff --git a/Master/texmf-dist/tex/context/base/mkiv/scrp-cjk.lua b/Master/texmf-dist/tex/context/base/mkiv/scrp-cjk.lua
index 83eecf6a3b3..b31dc335a4a 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/scrp-cjk.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/scrp-cjk.lua
@@ -6,24 +6,23 @@ if not modules then modules = { } end modules ['scrp-cjk'] = {
license = "see context related readme files"
}
--- We can speed this up by preallocating nodes and copying them but the gain is not
--- that large.
---
--- If needed we can speed this up (traversers and prev next and such) but cjk
--- documents don't have that many glyphs and certainly not much font processing so
--- there not much gain in it.
---
--- The input line endings: there is no way to distinguish between inline spaces and
--- endofline turned into spaces (would not make sense either because otherwise a
--- wanted space at the end of a line would have to be a hard coded ones.
+-- We can speed this up by preallocating nodes and copying them but the
+-- gain is not that large.
+
+-- The input line endings: there is no way to distinguish between
+-- inline spaces and endofline turned into spaces (would not make
+-- sense either because otherwise a wanted space at the end of a
+-- line would have to be a hard coded ones.
local nuts = nodes.nuts
+local tonut = nodes.tonut
+local tonode = nodes.tonode
local insert_node_after = nuts.insert_after
local insert_node_before = nuts.insert_before
local copy_node = nuts.copy
local remove_node = nuts.remove
-local nextglyph = nuts.traversers.glyph
+local traverse_id = nuts.traverse_id
local getnext = nuts.getnext
local getprev = nuts.getprev
@@ -42,14 +41,12 @@ local new_kern = nodepool.kern
local new_penalty = nodepool.penalty
local nodecodes = nodes.nodecodes
-local gluecodes = nodes.gluecodes
-
+local skipcodes = nodes.skipcodes
local glyph_code = nodecodes.glyph
local glue_code = nodecodes.glue
-
-local userskip_code = gluecodes.userskip
-local spaceskip_code = gluecodes.spaceskip
-local xspaceskip_code = gluecodes.xspaceskip
+local userskip_code = skipcodes.userskip
+local spaceskip_code = skipcodes.spaceskip
+local xspaceskip_code = skipcodes.xspaceskip
local a_scriptstatus = attributes.private('scriptstatus')
local a_scriptinjection = attributes.private('scriptinjection')
@@ -442,16 +439,13 @@ local injectors = { -- [previous] [current]
local function process(head,first,last)
if first ~= last then
- local lastfont = nil
- local previous = "start"
- local last = nil
+ local lastfont, previous, last = nil, "start", nil
while true do
- local upcoming = getnext(first)
- local id = getid(first)
+ local upcoming, id = getnext(first), getid(first)
if id == glyph_code then
- local a = getattr(first,a_scriptstatus)
+ local a = getattr(first,a_scriptstatus)
local current = numbertocategory[a]
- local action = injectors[previous]
+ local action = injectors[previous]
if action then
action = action[current]
if action then
@@ -465,16 +459,12 @@ local function process(head,first,last)
end
previous = current
else -- glue
- local p = getprev(first)
- local n = upcoming
+ local p, n = getprev(first), upcoming
if p and n then
- local pid = getid(p)
- local nid = getid(n)
+ local pid, nid = getid(p), getid(n)
if pid == glyph_code and nid == glyph_code then
- local pa = getattr(p,a_scriptstatus)
- local na = getattr(n,a_scriptstatus)
- local pcjk = pa and numbertocategory[pa]
- local ncjk = na and numbertocategory[na]
+ local pa, na = getattr(p,a_scriptstatus), getattr(n,a_scriptstatus)
+ local pcjk, ncjk = pa and numbertocategory[pa], na and numbertocategory[na]
if not pcjk or not ncjk
or pcjk == "korean" or ncjk == "korean"
or pcjk == "other" or ncjk == "other"
@@ -519,9 +509,10 @@ scripts.installmethod {
}
function scripts.decomposehangul(head)
+ local head = tonut(head)
local done = false
- for current, char in nextglyph, head do
- local lead_consonant, medial_vowel, tail_consonant = decomposed(char)
+ for current in traverse_id(glyph_code,head) do
+ local lead_consonant, medial_vowel, tail_consonant = decomposed(getchar(current))
if lead_consonant then
setchar(current,lead_consonant)
local m = copy_node(current)
@@ -535,7 +526,7 @@ function scripts.decomposehangul(head)
done = true
end
end
- return head, done
+ return tonode(head), done
end
-- nodes.tasks.prependaction("processors","normalizers","scripts.decomposehangul")
@@ -704,16 +695,13 @@ local injectors = { -- [previous] [current]
local function process(head,first,last)
if first ~= last then
- local lastfont = nil
- local previous = "start"
- local last = nil
+ local lastfont, previous, last = nil, "start", nil
while true do
- local upcoming = getnext(first)
- local id = getid(first)
+ local upcoming, id = getnext(first), getid(first)
if id == glyph_code then
- local a = getattr(first,a_scriptstatus)
+ local a = getattr(first,a_scriptstatus)
local current = numbertocategory[a]
- local action = injectors[previous]
+ local action = injectors[previous]
if action then
action = action[current]
if action then
@@ -727,16 +715,12 @@ local function process(head,first,last)
end
previous = current
else -- glue
- local p = getprev(first)
- local n = upcoming
+ local p, n = getprev(first), upcoming
if p and n then
- local pid = getid(p)
- local nid = getid(n)
+ local pid, nid = getid(p), getid(n)
if pid == glyph_code and nid == glyph_code then
- local pa = getattr(p,a_scriptstatus)
- local na = getattr(n,a_scriptstatus)
- local pcjk = pa and numbertocategory[pa]
- local ncjk = na and numbertocategory[na]
+ local pa, na = getattr(p,a_scriptstatus), getattr(n,a_scriptstatus)
+ local pcjk, ncjk = pa and numbertocategory[pa], na and numbertocategory[na]
if not pcjk or not ncjk
or pcjk == "korean" or ncjk == "korean"
or pcjk == "other" or ncjk == "other"
@@ -933,16 +917,13 @@ local injectors = { -- [previous] [current]
local function process(head,first,last)
if first ~= last then
- local lastfont = nil
- local previous = "start"
- local last = nil
+ local lastfont, previous, last = nil, "start", nil
while true do
- local upcoming = getnext(first)
- local id = getid(first)
+ local upcoming, id = getnext(first), getid(first)
if id == glyph_code then
- local a = getattr(first,a_scriptstatus)
+ local a = getattr(first,a_scriptstatus)
local current = numbertocategory[a]
- local action = injectors[previous]
+ local action = injectors[previous]
if action then
action = action[current]
if action then
@@ -959,16 +940,12 @@ local function process(head,first,last)
-- upcoming = getnext(end_of_math(current))
-- previous = "start"
else -- glue
- local p = getprev(first)
- local n = upcoming
+ local p, n = getprev(first), upcoming -- we should remember prev
if p and n then
- local pid = getid(p)
- local nid = getid(n)
+ local pid, nid = getid(p), getid(n)
if pid == glyph_code and nid == glyph_code then
- local pa = getattr(p,a_scriptstatus)
- local na = getattr(n,a_scriptstatus)
- local pcjk = pa and numbertocategory[pa]
- local ncjk = na and numbertocategory[na]
+ local pa, na = getattr(p,a_scriptstatus), getattr(n,a_scriptstatus)
+ local pcjk, ncjk = pa and numbertocategory[pa], na and numbertocategory[na]
if not pcjk or not ncjk
or pcjk == "korean" or ncjk == "korean"
or pcjk == "other" or ncjk == "other"
diff --git a/Master/texmf-dist/tex/context/base/mkiv/scrp-eth.lua b/Master/texmf-dist/tex/context/base/mkiv/scrp-eth.lua
index f6a994b884b..43cb2ff6a4e 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/scrp-eth.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/scrp-eth.lua
@@ -12,16 +12,71 @@ if not modules then modules = { } end modules ['scrp-eth'] = {
local nuts = nodes.nuts
local getnext = nuts.getnext
-local ischar = nuts.ischar
+local getfont = nuts.getfont
+local getid = nuts.getid
local getattr = nuts.getattr
+local insert_node_before = nuts.insert_before
+
+local nodepool = nuts.pool
+
+local new_glue = nodepool.glue
+local new_penalty = nodepool.penalty
+
local nodecodes = nodes.nodecodes
local glyph_code = nodecodes.glyph
local a_scriptstatus = attributes.private('scriptstatus')
+local a_scriptinjection = attributes.private('scriptinjection')
+local categorytonumber = scripts.categorytonumber
local numbertocategory = scripts.numbertocategory
-local inserters = scripts.inserters
+local hash = scripts.hash
+local numbertodataset = scripts.numbertodataset
+
+local fonthashes = fonts.hashes
+local parameters = fonthashes.parameters
+
+local space, stretch, shrink, lastfont
+
+local inter_character_space_factor = 1
+local inter_character_stretch_factor = 1
+local inter_character_shrink_factor = 1
+
+local function space_glue(current)
+ local data = numbertodataset[getattr(current,a_scriptinjection)]
+ if data then
+ inter_character_space_factor = data.inter_character_space_factor or 1
+ inter_character_stretch_factor = data.inter_character_stretch_factor or 1
+ inter_character_shrink_factor = data.inter_character_shrink_factor or 1
+ end
+ local font = getfont(current)
+ if lastfont ~= font then
+ local pf = parameters[font]
+ space = pf.space
+ stretch = pf.space_stretch
+ shrink = pf.space_shrink
+ lastfont = font
+ end
+ return new_glue(
+ inter_character_space_factor * space,
+ inter_character_stretch_factor * stretch,
+ inter_character_shrink_factor * shrink
+ )
+end
+
+local function insert_space(head,current)
+ insert_node_before(head,current,space_glue(current))
+end
+
+local function insert_zerowidthspace(head,current)
+ insert_node_before(head,current,new_glue(0))
+end
+
+local function insert_nobreakspace(head,current)
+ insert_node_before(head,current,new_penalty(10000))
+ insert_node_before(head,current,space_glue(current))
+end
-- syllable [zerowidthspace] syllable
-- syllable [zerowidthspace] word
@@ -33,22 +88,21 @@ local inserters = scripts.inserters
-- sentence [space] word
-- sentence [space] sentence
-
local injectors = { -- [previous] [current]
ethiopic_syllable = {
- ethiopic_syllable = inserters.zerowidthspace_before,
- ethiopic_word = inserters.nobreakspace_before,
- ethiopic_sentence = inserters.nobreakspace_before,
+ ethiopic_syllable = insert_zerowidthspace,
+ ethiopic_word = insert_nobreakspace,
+ ethiopic_sentence = insert_nobreakspace,
},
ethiopic_word = {
- ethiopic_syllable = inserters.space_before,
- ethiopic_word = inserters.space_before,
- ethiopic_sentence = inserters.space_before,
+ ethiopic_syllable = insert_space,
+ ethiopic_word = insert_space,
+ ethiopic_sentence = insert_space,
},
ethiopic_sentence = {
- ethiopic_syllable = inserters.space_before,
- ethiopic_word = inserters.space_before,
- ethiopic_sentence = inserters.space_before,
+ ethiopic_syllable = insert_space,
+ ethiopic_word = insert_space,
+ ethiopic_sentence = insert_space,
},
}
@@ -57,10 +111,10 @@ local function process(head,first,last)
local injector = false
local current = first
while current do
- local char, id = ischar(current)
- if char then
+ local id = getid(current)
+ if id == glyph_code then
local scriptstatus = getattr(current,a_scriptstatus)
- local category = numbertocategory[scriptstatus]
+ local category = numbertocategory[scriptstatus]
if injector then
local action = injector[category]
if action then
@@ -68,6 +122,8 @@ local function process(head,first,last)
end
end
injector = injectors[category]
+ else
+ -- nothing yet
end
if current == last then
break
diff --git a/Master/texmf-dist/tex/context/base/mkiv/scrp-ini.lua b/Master/texmf-dist/tex/context/base/mkiv/scrp-ini.lua
index e6aa5f0720c..9bd70e30af1 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/scrp-ini.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/scrp-ini.lua
@@ -22,75 +22,72 @@ local report_splitting = logs.reporter("scripts","splitting")
local utfbyte, utfsplit = utf.byte, utf.split
local gmatch = string.gmatch
-local attributes = attributes
-local nodes = nodes
-local context = context
+local attributes = attributes
+local nodes = nodes
+local context = context
-local texsetattribute = tex.setattribute
+local texsetattribute = tex.setattribute
-local nodecodes = nodes.nodecodes
-local unsetvalue = attributes.unsetvalue
+local nodecodes = nodes.nodecodes
+local unsetvalue = attributes.unsetvalue
-local implement = interfaces.implement
+local implement = interfaces.implement
-local glyph_code = nodecodes.glyph
-local glue_code = nodecodes.glue
+local glyph_code = nodecodes.glyph
+local glue_code = nodecodes.glue
-local emwidths = fonts.hashes.emwidths
-local exheights = fonts.hashes.exheights
+local emwidths = fonts.hashes.emwidths
+local exheights = fonts.hashes.exheights
-local a_scriptinjection = attributes.private('scriptinjection')
-local a_scriptsplitting = attributes.private('scriptsplitting')
-local a_scriptstatus = attributes.private('scriptstatus')
+local a_scriptinjection = attributes.private('scriptinjection')
+local a_scriptsplitting = attributes.private('scriptsplitting')
+local a_scriptstatus = attributes.private('scriptstatus')
-local fontdata = fonts.hashes.identifiers
-local allocate = utilities.storage.allocate
-local setnodecolor = nodes.tracers.colors.set
-local setmetatableindex = table.setmetatableindex
+local fontdata = fonts.hashes.identifiers
+local allocate = utilities.storage.allocate
+local setnodecolor = nodes.tracers.colors.set
+local setmetatableindex = table.setmetatableindex
-local enableaction = nodes.tasks.enableaction
-local disableaction = nodes.tasks.disableaction
+local enableaction = nodes.tasks.enableaction
+local disableaction = nodes.tasks.disableaction
-local nuts = nodes.nuts
+local nuts = nodes.nuts
+local tonut = nuts.tonut
+local tonode = nuts.tonode
-local getnext = nuts.getnext
-local getchar = nuts.getchar
-local getfont = nuts.getfont
-local getid = nuts.getid
-local getattr = nuts.getattr
-local setattr = nuts.setattr
-local isglyph = nuts.isglyph
+local getnext = nuts.getnext
+local getchar = nuts.getchar
+local getfont = nuts.getfont
+local getid = nuts.getid
+local getattr = nuts.getattr
+local setattr = nuts.setattr
+local isglyph = nuts.isglyph
-local insert_node_after = nuts.insert_after
-local insert_node_before = nuts.insert_before
+local insert_node_after = nuts.insert_after
+local first_glyph = nuts.first_glyph
+local traverse_id = nuts.traverse_id
+local traverse_char = nuts.traverse_char
-local first_glyph = nuts.first_glyph
+local nodepool = nuts.pool
------ traverse_id = nuts.traverse_id
------ traverse_char = nuts.traverse_char
-local nextglyph = nuts.traversers.glyph
-local nextchar = nuts.traversers.char
+local new_glue = nodepool.glue
+local new_rule = nodepool.rule
+local new_penalty = nodepool.penalty
-local nodepool = nuts.pool
+scripts = scripts or { }
+local scripts = scripts
-local new_glue = nodepool.glue
-local new_rule = nodepool.rule
-local new_penalty = nodepool.penalty
+scripts.hash = scripts.hash or { }
+local hash = scripts.hash
-scripts = scripts or { }
-local scripts = scripts
+local handlers = allocate()
+scripts.handlers = handlers
-scripts.hash = scripts.hash or { }
-local hash = scripts.hash
+local injectors = allocate()
+scripts.injectors = handlers
-local handlers = allocate()
-scripts.handlers = handlers
-
-local injectors = allocate()
-scripts.injectors = handlers
-
-local splitters = allocate()
-scripts.splitters = splitters
+local splitters = allocate()
+scripts.splitters = splitters
local hash = { -- we could put these presets in char-def.lua
--
@@ -209,11 +206,6 @@ local hash = { -- we could put these presets in char-def.lua
[0x1361] = "ethiopic_word",
[0x1362] = "ethiopic_sentence",
--
- -- tibetan:
- --
- [0x0F0B] = "breaking_tsheg",
- [0x0F0C] = "nonbreaking_tsheg",
-
}
local function provide(t,k)
@@ -233,7 +225,6 @@ local function provide(t,k)
elseif (k >= 0x01160 and k <= 0x011A7) then v = "jamo_medial"
elseif (k >= 0x011A8 and k <= 0x011FF) then v = "jamo_final"
elseif (k >= 0x01200 and k <= 0x0139F) then v = "ethiopic_syllable"
- elseif (k >= 0x00F00 and k <= 0x00FFF) then v = "tibetan"
else v = false
end
t[k] = v
@@ -276,7 +267,6 @@ function scripts.installmethod(handler)
report_preprocessing("missing (default) dataset in script %a",name)
datasets.default = { } -- slower but an error anyway
end
-
for k, v in next, datasets do
setmetatableindex(v,defaults)
end
@@ -397,8 +387,6 @@ local scriptcolors = allocate { -- todo: just named colors
ethiopic_syllable = "trace:1",
ethiopic_word = "trace:2",
ethiopic_sentence = "trace:3",
- breaking_tsheg = "trace:1",
- nonbreaking_tsheg = "trace:2",
}
scripts.colors = scriptcolors
@@ -421,8 +409,6 @@ local numbertocategory = allocate { -- rather bound to cjk ... will be generaliz
"ethiopic_syllable",
"ethiopic_word",
"ethiopic_sentence",
- "breaking_tsheg",
- "nonbreaking_tsheg",
}
local categorytonumber = allocate(table.swapped(numbertocategory)) -- could be one table
@@ -431,7 +417,7 @@ scripts.categorytonumber = categorytonumber
scripts.numbertocategory = numbertocategory
local function colorize(start,stop)
- for n in nextglyph, start do
+ for n in traverse_id(glyph_code,start) do
local kind = numbertocategory[getattr(n,a_scriptstatus)]
if kind then
local ac = scriptcolors[kind]
@@ -464,12 +450,13 @@ end
-- we can have a fonts.hashes.originals
function scripts.injectors.handler(head)
+ head = tonut(head)
local start = first_glyph(head) -- we already have glyphs here (subtype 1)
if not start then
- return head
+ return tonode(head), false
else
- local last_a, normal_process, lastfont, originals, first, last
- local ok = false
+ local last_a, normal_process, lastfont, originals = nil, nil, nil, nil
+ local done, first, last, ok = false, nil, nil, false
while start do
local char, id = isglyph(start)
if char then
@@ -486,7 +473,7 @@ function scripts.injectors.handler(head)
else
normal_process(head,first,last)
end
- ok = false
+ ok, done = false, true
end
first, last = nil, nil
end
@@ -495,15 +482,16 @@ function scripts.injectors.handler(head)
normal_process = handler.injector
end
if normal_process then
- -- id == font
- if id ~= lastfont then
- originals = fontdata[id].resources
+ -- wrong: originals are indices !
+ local font = getfont(start)
+ if font ~= lastfont then
+ originals = fontdata[font].resources
if resources then
originals = resources.originals
else
originals = nil -- can't happen
end
- lastfont = id
+ lastfont = font
end
if originals and type(originals) == "number" then
char = originals[char] or char
@@ -529,7 +517,7 @@ function scripts.injectors.handler(head)
else
normal_process(head,first,last)
end
- ok = false
+ ok, done = false, true
end
first, last = nil, nil
end
@@ -544,7 +532,7 @@ function scripts.injectors.handler(head)
else
normal_process(head,first,last)
end
- ok = false
+ ok, done = false, true
end
first, last = nil, nil
end
@@ -566,7 +554,7 @@ function scripts.injectors.handler(head)
else
normal_process(head,first,last)
end
- first, last, ok = nil, nil, false
+ first, last, ok, done = nil, nil, false, true
elseif first then
first, last = nil, nil
end
@@ -582,15 +570,16 @@ function scripts.injectors.handler(head)
else
normal_process(head,first,last)
end
+ done = true
end
- return head
+ return tonode(head), done
end
end
-- kind of experimental .. might move to it's own module
-- function scripts.splitters.handler(head)
--- return head
+-- return head, false
-- end
local function addwords(tree,data)
@@ -712,6 +701,32 @@ end)
local categories = characters.categories or { }
+-- local function hit(root,head)
+-- local current = getnext(head)
+-- local lastrun = false
+-- local lastfinal = false
+-- while current and getid(current) == glyph_code do
+-- local char = getchar(current)
+-- local newroot = root[char]
+-- if newroot then
+-- local final = newroot.final
+-- if final then
+-- lastrun = current
+-- lastfinal = final
+-- end
+-- root = newroot
+-- elseif categories[char] == "mn" then
+-- -- continue
+-- else
+-- return lastrun, lastfinal
+-- end
+-- current = getnext(current)
+-- end
+-- if lastrun then
+-- return lastrun, lastfinal
+-- end
+-- end
+
local function hit(root,head)
local current = getnext(head)
local lastrun = false
@@ -744,7 +759,9 @@ end
local tree, attr, proc
function splitters.handler(head) -- todo: also first_glyph test
+ head = tonut(head)
local current = head
+ local done = false
while current do
if getid(current) == glyph_code then
local a = getattr(current,a_scriptsplitting)
@@ -775,6 +792,7 @@ function splitters.handler(head) -- todo: also first_glyph test
end
end
head, current = proc(handler,head,current,last,1)
+ done = true
else
if trace_splitdetail then
-- could be punctuation
@@ -785,6 +803,7 @@ function splitters.handler(head) -- todo: also first_glyph test
end
end
head, current = proc(handler,head,current,last,2)
+ done = true
end
end
end
@@ -794,7 +813,7 @@ function splitters.handler(head) -- todo: also first_glyph test
end
current = getnext(current)
end
- return head
+ return tonode(head), done
end
local function marker(head,current,font,color) -- could become: nodes.tracers.marker
@@ -888,13 +907,15 @@ setmetatableindex(cache_nop,function(t,k) local v = { } t[k] = v return v end)
-- playing nice
function autofontfeature.handler(head)
- for n, char, font in nextchar, head do
+ for n in traverse_char(tonut(head)) do
-- if getattr(n,a_scriptinjection) then
-- -- already tagged by script feature, maybe some day adapt
-- else
+ local char = getchar(n)
local script = otfscripts[char]
if script then
local dynamic = getattr(n,0) or 0
+ local font = getfont(n)
if dynamic > 0 then
local slot = cache_yes[font]
local attr = slot[script]
@@ -959,73 +980,3 @@ implement {
name = "resetscript",
actions = scripts.reset
}
-
--- some common helpers
-
-
-do
-
- local parameters = fonts.hashes.parameters
-
- local space, stretch, shrink, lastfont
-
- local inter_character_space_factor = 1
- local inter_character_stretch_factor = 1
- local inter_character_shrink_factor = 1
-
- local function space_glue(current)
- local data = numbertodataset[getattr(current,a_scriptinjection)]
- if data then
- inter_character_space_factor = data.inter_character_space_factor or 1
- inter_character_stretch_factor = data.inter_character_stretch_factor or 1
- inter_character_shrink_factor = data.inter_character_shrink_factor or 1
- end
- local font = getfont(current)
- if lastfont ~= font then
- local pf = parameters[font]
- space = pf.space
- stretch = pf.space_stretch
- shrink = pf.space_shrink
- lastfont = font
- end
- return new_glue(
- inter_character_space_factor * space,
- inter_character_stretch_factor * stretch,
- inter_character_shrink_factor * shrink
- )
- end
-
- scripts.inserters = {
-
- space_before = function(head,current)
- return insert_node_before(head,current,space_glue(current))
- end,
- space_after = function(head,current)
- return insert_node_after(head,current,space_glue(current))
- end,
-
- zerowidthspace_before = function(head,current)
- return insert_node_before(head,current,new_glue(0))
- end,
- zerowidthspace_after = function(head,current)
- return insert_node_after(head,current,new_glue(0))
- end,
-
- nobreakspace_before = function(head,current)
- local g = space_glue(current)
- local p = new_penalty(10000)
- head, current = insert_node_before(head,current,p)
- return insert_node_before(head,current,g)
- end,
- nobreakspace_after = function(head,current)
- local g = space_glue(current)
- local p = new_penalty(10000)
- head, current = insert_node_after(head,current,g)
- return insert_node_after(head,current,p)
- end,
-
- }
-
-end
-
--- end of helpers
diff --git a/Master/texmf-dist/tex/context/base/mkiv/scrp-ini.mkiv b/Master/texmf-dist/tex/context/base/mkiv/scrp-ini.mkiv
index f2d1da62741..8f28f505d14 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/scrp-ini.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/scrp-ini.mkiv
@@ -17,11 +17,10 @@
\registerctxluafile{scrp-cjk}{}
\registerctxluafile{scrp-eth}{}
\registerctxluafile{scrp-tha}{}
-\registerctxluafile{scrp-tib}{}
-\definesystemattribute[scriptinjection][public,pickup]
-\definesystemattribute[scriptsplitting][public,pickup]
-\definesystemattribute[scriptstatus] [public,pickup]
+\definesystemattribute[scriptinjection][public]
+\definesystemattribute[scriptsplitting][public]
+\definesystemattribute[scriptstatus] [public]
%D Since scripts need specific \LUA\ code we use hard coded attribute
%D values, but we might have more tricks at some time, so we use a
@@ -44,23 +43,10 @@
\unexpanded\def\scripts_basics_set
{\clf_setscript{\currentscript}{\scriptparameter\c!method}{\scriptparameter\c!preset}}
-% \unexpanded\def\setscript[#1]%
-% {\edef\currentscript{#1}%
-% \scripts_basics_set}
-
-\unexpanded\def\setglobalscript[#1]%
- {\edef\currentscript{#1}%
- \scripts_basics_set
- \pickupscriptinjectionattribute
- \pickupscriptsplittingattribute
- \pickupscriptstatusattribute}
-
-\unexpanded\def\setlocalscript[#1]%
+\unexpanded\def\setscript[#1]%
{\edef\currentscript{#1}%
\scripts_basics_set}
-\let\setscript\setlocalscript
-
\unexpanded\def\resetscript
{\clf_resetscript}
@@ -87,7 +73,6 @@
\definescript [nihongo] [\c!method=nihongo]
\definescript [ethiopic] [\c!method=ethiopic]
\definescript [thai] [\c!method=thai]
-\definescript [tibetan] [\c!method=tibetan]
\definescript [latin] [\c!method=] % resets the attribute (also currentscript)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/scrp-tib.lua b/Master/texmf-dist/tex/context/base/mkiv/scrp-tib.lua
deleted file mode 100644
index b67f6964800..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/scrp-tib.lua
+++ /dev/null
@@ -1,81 +0,0 @@
-if not modules then modules = { } end modules ['scrp-tib'] = {
- version = 1.001,
- comment = "companion to scrp-ini.mkiv",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
-local nuts = nodes.nuts
-
-local getnext = nuts.getnext
-local getattr = nuts.getattr
-local ischar = nuts.ischar
-
-local a_scriptstatus = attributes.private('scriptstatus')
-
-local numbertocategory = scripts.numbertocategory
-local inserters = scripts.inserters
-
-local injectors = {
- breaking_tsheg = inserters.space_after,
-}
-
--- more efficient is to check directly
---
--- local b_tsheg = 0x0F0B -- breaking
--- local n_tsheg = 0x0F0C -- nonbreaking
---
--- if char == b_tsheg then
--- head, current = insert_space_after(head,current)
--- end
---
--- but this is more general
-
-local function process(head,first,last)
- if first ~= last then
- local current = first
- while current do
- local char, id = ischar(current)
- if char then
- local scriptstatus = getattr(current,a_scriptstatus)
- if scriptstatus and scriptstatus > 0 then
- local category = numbertocategory[scriptstatus]
- if category then
- local injector = injectors[category]
- if injector then
- head, current = injector(head,current)
- end
- end
- end
- end
- if current == last then
- break
- else
- current = getnext(current)
- end
- end
- end
-end
-
-scripts.installmethod {
- name = "tibetan",
- injector = process,
- datasets = {
- default = {
- inter_character_space_factor = 1,
- inter_character_stretch_factor = 1,
- inter_character_shrink_factor = 1,
- },
- half = {
- inter_character_space_factor = 0.5,
- inter_character_stretch_factor = 0.5,
- inter_character_shrink_factor = 0.5,
- },
- quarter = {
- inter_character_space_factor = 0.25,
- inter_character_stretch_factor = 0.25,
- inter_character_shrink_factor = 0.25,
- },
- },
-}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/sort-ini.lua b/Master/texmf-dist/tex/context/base/mkiv/sort-ini.lua
index 0916337b197..f90b70be5c9 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/sort-ini.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/sort-ini.lua
@@ -401,10 +401,8 @@ local function basic(a,b) -- trace ea and eb
-- hashed (shared) entries
return 0
end
- local ea = a.split
- local eb = b.split
- local na = #ea
- local nb = #eb
+ local ea, eb = a.split, b.split
+ local na, nb = #ea, #eb
if na == 0 and nb == 0 then
-- simple variant (single word)
local result = 0
@@ -416,8 +414,7 @@ local function basic(a,b) -- trace ea and eb
end
end
if result == 0 then
- local la = #ea.uc
- local lb = #eb.uc
+ local la, lb = #ea.uc, #eb.uc
if la > lb then
return 1
elseif lb > la then
@@ -432,8 +429,7 @@ local function basic(a,b) -- trace ea and eb
-- complex variant, used in register (multiple words)
local result = 0
for i=1,nb < na and nb or na do
- local eai = ea[i]
- local ebi = eb[i]
+ local eai, ebi = ea[i], eb[i]
for j=1,#sequence do
local m = sequence[j]
result = basicsort(eai[m],ebi[m])
@@ -442,8 +438,7 @@ local function basic(a,b) -- trace ea and eb
end
end
if result == 0 then
- local la = #eai.uc
- local lb = #ebi.uc
+ local la, lb = #eai.uc, #ebi.uc
if la > lb then
return 1
elseif lb > la then
@@ -591,18 +586,8 @@ function splitters.utf(str,checked) -- we could append m and u but this is clean
-- end
-- end
end
- local m_case = { }
- local z_case = { }
- local p_case = { }
- local m_mapping = { }
- local z_mapping = { }
- local p_mapping = { }
- local char = { }
- local byte = { }
- local n = 0
- local nm = 0
- local nz = 0
- local np = 0
+ local m_case, z_case, p_case, m_mapping, z_mapping, p_mapping, char, byte, n = { }, { }, { }, { }, { }, { }, { }, { }, 0
+ local nm, nz, np = 0, 0, 0
for sc in utfcharacters(str) do
local b = utfbyte(sc)
if b >= digitsoffset then
diff --git a/Master/texmf-dist/tex/context/base/mkiv/sort-lan.lua b/Master/texmf-dist/tex/context/base/mkiv/sort-lan.lua
index b277989664b..1aa173d1b20 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/sort-lan.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/sort-lan.lua
@@ -71,22 +71,16 @@ definitions['fr'] = { parent = 'default' }
-- DIN 5007-1
-definitions['DIN 5007-1'] = {
- parent = 'default',
- replacements = {
- { "ß", "ss" },
- },
-}
+definitions['DIN 5007-1'] = { parent = 'default' }
-- DIN 5007-2
definitions['DIN 5007-2'] = {
parent = 'default',
replacements = {
- { "ÃĪ", "ae" }, { "Ä", "Ae" },
- { "Ãķ", "oe" }, { "Ö", "Oe" },
- { "Þ", "ue" }, { "Ü", "Ue" },
- { "ß", "ss" },
+ { "ÃĪ", 'ae' }, { "Ä", 'Ae' },
+ { "Ãķ", 'oe' }, { "Ö", 'Oe' },
+ { "Þ", 'ue' }, { "Ü", 'Ue' },
},
}
@@ -94,9 +88,7 @@ definitions['DIN 5007-2'] = {
definitions['Duden'] = {
parent = 'default',
- replacements = {
- { "ß", "s" },
- },
+ replacements = { { "ß", 's' } },
}
-- definitions['de'] = { parent = 'default' } -- new german
@@ -134,7 +126,7 @@ definitions['de-AT'] = {
},
}
--- finnish (by Wolfgang Schuster)
+-- finish (by Wolfgang Schuster)
definitions['fi'] = {
entries = {
@@ -905,24 +897,22 @@ definitions["hu"] = {
},
}
--- Estonian
+--- Estonian
definitions["et"] = {
- entries = { -- f ÅĄ z Åū are used in estonian words of foreign origin, c č q w x y are used for foreign words only
- ["a"] = "a", ["b"] = "b", ["c"] = "c", ["č"] = "č", ["d"] = "d",
- ["e"] = "e", ["f"] = "f", ["g"] = "g", ["h"] = "h", ["i"] = "i",
- ["j"] = "j", ["k"] = "k", ["l"] = "l", ["m"] = "m", ["n"] = "n",
- ["o"] = "o", ["p"] = "p", ["q"] = "q", ["r"] = "r", ["s"] = "s",
- ["ÅĄ"] = "ÅĄ", ["z"] = "z", ["Åū"] = "Åū", ["t"] = "t", ["u"] = "u",
- ["v"] = "v", ["w"] = "w", ["Ãĩ"] = "Ãĩ", ["ÃĪ"] = "ÃĪ", ["Ãķ"] = "Ãķ",
- ["Þ"] = "Þ", ["x"] = "x", ["y"] = "y",
+ entries = { -- w x y are used for foreign words only
+ ["a"] = "a", ["b"] = "b", ["d"] = "d", ["e"] = "e", ["f"] = "f",
+ ["g"] = "g", ["h"] = "h", ["i"] = "i", ["j"] = "j", ["k"] = "k",
+ ["l"] = "l", ["m"] = "m", ["n"] = "n", ["o"] = "o", ["p"] = "p",
+ ["r"] = "r", ["s"] = "s", ["ÅĄ"] = "ÅĄ", ["z"] = "z", ["Åū"] = "Åū",
+ ["t"] = "t", ["u"] = "u", ["v"] = "v", ["w"] = "v", ["Ãĩ"] = "Ãĩ",
+ ["ÃĪ"] = "ÃĪ", ["Ãķ"] = "Ãķ", ["Þ"] = "Þ", ["x"] = "x", ["y"] = "y",
},
orders = {
- "a", "b", "c", "č", "d", "e", "f", "g", "h", "i",
- "j", "k", "l", "m", "n", "o", "p", "q", "r", "s",
- "ÅĄ", "z", "Åū", "t", "u", "v", "w", "Ãĩ", "ÃĪ", "Ãķ",
- "Þ", "x", "y",
- },
+ "a", "b", "d", "e", "f", "g", "h", "i", "j", "k",
+ "l", "m", "n", "o", "p", "r", "s", "ÅĄ", "z", "Åū",
+ "t", "u", "v", "w", "Ãĩ", "ÃĪ", "Ãķ", "Þ", "x", "y",
+ }
}
--- Korean
diff --git a/Master/texmf-dist/tex/context/base/mkiv/spac-adj.lua b/Master/texmf-dist/tex/context/base/mkiv/spac-adj.lua
new file mode 100644
index 00000000000..3db59881b20
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkiv/spac-adj.lua
@@ -0,0 +1,67 @@
+if not modules then modules = { } end modules ['spac-adj'] = {
+ version = 1.001,
+ comment = "companion to spac-adj.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- sort of obsolete code
+
+local a_vadjust = attributes.private('graphicvadjust')
+
+local nodecodes = nodes.nodecodes
+
+local hlist_code = nodecodes.hlist
+local vlist_code = nodecodes.vlist
+
+local remove_node = nodes.remove
+local hpack_node = node.hpack
+
+local enableaction = nodes.tasks.enableaction
+
+function nodes.handlers.graphicvadjust(head,groupcode) -- we can make an actionchain for mvl only
+ if groupcode == "" then -- mvl only
+ local h, p, done = head, nil, false
+ while h do
+ local id = h.id
+ if id == hlist_code or id == vlist_code then
+ local a = h[a_vadjust]
+ if a then
+ if p then
+ local n
+ head, h, n = remove_node(head,h)
+ local pl = p.list
+ if n.width ~= 0 then
+ n = hpack_node(n,0,'exactly') -- todo: dir
+ end
+ if pl then
+ pl.prev = n
+ n.next = pl
+ end
+ p.list = n
+ done = true
+ else
+ -- can't happen
+ end
+ else
+ p = h
+ h = h.next
+ end
+ else
+ h = h.next
+ end
+ end
+ return head, done
+ else
+ return head, false
+ end
+end
+
+interfaces.implement {
+ name = "enablegraphicvadjust",
+ onlyonce = true,
+ actions = function()
+ enableaction("finalizers","nodes.handlers.graphicvadjust")
+ end
+}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/spac-adj.mkiv b/Master/texmf-dist/tex/context/base/mkiv/spac-adj.mkiv
new file mode 100644
index 00000000000..d29d15c17cb
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkiv/spac-adj.mkiv
@@ -0,0 +1,51 @@
+%D \module
+%D [ file=spac-adj, % moved from spac-par.mkiv
+%D version=2009.10.16, % 1997.03.31, was core-spa.tex
+%D title=\CONTEXT\ Spacing Macros,
+%D subtitle=Paragraphs,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Spacing Macros / Adjustments}
+
+\unprotect
+
+% Very nasty but needed for margin stuff inside colored
+% paragraphs. Obsolete for while .
+
+\registerctxluafile{spac-adj}{}
+
+\definesystemattribute [graphicvadjust] [public]
+
+\unexpanded\def\enablegraphicvadjust
+ {\writestatus\m!system{graphicvadjusting is no longer needed!}
+ \clf_enablegraphicvadjust %once anyway
+ \glet\enablegraphicvadjust\relax}
+
+\unexpanded\def\graphicvadjust % currently not enabled ... nasty bidi handling
+ {\clf_enablegraphicvadjust % and probably no longer needed anyway
+ \dowithnextboxcontentcs\forgetall\spac_vadjust_graphic_finish\vbox}
+
+\def\spac_vadjust_graphic_finish
+ {\vadjust
+ {\vbox attr \graphicvadjustattribute \plusone
+ {\unvbox\nextbox
+ % corrects for one line paragraphs
+ \nointerlineskip
+ \kern-\struttotal
+ \nointerlineskip
+ \verticalstrut}}}
+
+\unexpanded\def\fakedvadjust
+ {\dowithnextboxcs\spac_vadjust_faked_finish\vtop}
+
+\def\spac_vadjust_faked_finish
+ {\setbox\nextbox\hpack{\llap{\lower\strutdepth\box\nextbox}}%
+ \smashedbox\nextbox}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkiv/spac-ali.lua b/Master/texmf-dist/tex/context/base/mkiv/spac-ali.lua
index b58040ac72a..640478d3499 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/spac-ali.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/spac-ali.lua
@@ -38,8 +38,7 @@ local listcodes = nodes.listcodes
local hlist_code = nodecodes.hlist
local vlist_code = nodecodes.vlist
-
-local linelist_code = listcodes.line
+local line_code = listcodes.line
local new_stretch = nodepool.stretch
@@ -64,12 +63,13 @@ local nofrealigned = 0
-- raggedright 0 0 fil
-- raggedcenter 0 + 0 + -
-local function handler(head,leftpage,realpageno) -- traverse_list
+local function handler(head,leftpage,realpageno)
local current = head
+ local done = false
while current do
local id = getid(current)
if id == hlist_code then
- if getsubtype(current) == linelist_code then
+ if getsubtype(current) == line_code then
local a = takeattr(current,a_realign)
if not a or a == 0 then
-- skip
@@ -102,6 +102,7 @@ local function handler(head,leftpage,realpageno) -- traverse_list
elseif trace_realign then
report_realign("invalid flushing, align %a, page %a, realpage %a",align,pageno,realpageno)
end
+ done = true
nofrealigned = nofrealigned + 1
end
end
@@ -112,11 +113,14 @@ local function handler(head,leftpage,realpageno) -- traverse_list
end
current = getnext(current)
end
- return head
+ return head, done
end
function alignments.handler(head)
- return handler(head,isleftpage(),texgetcount("realpageno"))
+ local leftpage = isleftpage()
+ local realpageno = texgetcount("realpageno")
+ local head, done = handler(tonut(head),leftpage,realpageno)
+ return tonode(head), done
end
local enabled = false
diff --git a/Master/texmf-dist/tex/context/base/mkiv/spac-ali.mkiv b/Master/texmf-dist/tex/context/base/mkiv/spac-ali.mkiv
index 4362ff25002..fbcf45caa2e 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/spac-ali.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/spac-ali.mkiv
@@ -27,7 +27,7 @@
%
% but that also means myoption gets frozen due to caching.
-\registerctxluafile{spac-ali}{optimize}
+\registerctxluafile{spac-ali}{}
\definesystemattribute[realign] [public] % might be combined with the next one
\definesystemattribute[alignstate][public] % will make a single attributes for several states
@@ -61,6 +61,16 @@
\newtoks\everyresetalign % todo
+%D We will not use bodydir and pagedir so we disable them. That way we get
+%D normal hyperlink support. We back on it (too hard to fake \type {\the}).
+
+\unexpanded\def\syst_fatal_dir_error#1%
+ {\writestatus{fatal error}{\string#1\space is forbidden}%
+ \wait}
+
+\def\pagedir {\syst_fatal_dir_error\pagedir} \let\normalpagedir\pagedir
+\def\bodydir {\syst_fatal_dir_error\bodydir} \let\normalbodydir\bodydir
+
% This will become a more advanced layout controller soon:
\newconditional\layoutlefttoright \settrue\layoutlefttoright
@@ -84,23 +94,63 @@
\unexpanded\def\spac_directions_lefttoright_vmode
{\settrue\displaylefttoright
\settrue\inlinelefttoright
- \textdirection\directionlefttoright
- \pardirection \directionlefttoright}
+ \textdir TLT\relax
+ \pardir TLT\relax}
\unexpanded\def\spac_directions_righttoleft_vmode
{\setfalse\displaylefttoright
\setfalse\inlinelefttoright
- \textdirection\directionrighttoleft
- \pardirection \directionrighttoleft}
+ \textdir TRT\relax
+ \pardir TRT\relax}
+
+% % keep this as reference
+%
+% \unexpanded\def\spac_directions_lefttoright_hmode
+% {\textdir TLT\relax
+% \settrue\inlinelefttoright}
+%
+% \unexpanded\def\spac_directions_righttoleft_hmode
+% {\textdir TRT\relax
+% \setfalse\inlinelefttoright}
+%
+% \unexpanded\def\spac_directions_lefttoright_hmode
+% {\ifzeropt\lastskip
+% \textdir TLT\relax
+% \else
+% \scratchskip\lastskip
+% \unskip
+% \textdir TLT\relax
+% \hskip\scratchskip
+% \fi
+% \settrue\inlinelefttoright}
+%
+% \unexpanded\def\spac_directions_righttoleft_hmode
+% {\ifzeropt\lastskip
+% \textdir TRT\relax
+% \else
+% \scratchskip\lastskip
+% \unskip
+% \textdir TRT\relax
+% \hskip\scratchskip
+% \fi
+% \setfalse\inlinelefttoright}
\unexpanded\def\spac_directions_lefttoright_hmode
- {\linedirection\directionlefttoright % linedir keeps subtype of skip
+ {\linedir TLT\relax % linedir keeps subtype of skip
\settrue\inlinelefttoright}
\unexpanded\def\spac_directions_righttoleft_hmode
- {\linedirection\directionrighttoleft % linedir keeps subtype of skip
+ {\linedir TRT\relax % linedir keeps subtype of skip
\setfalse\inlinelefttoright}
+% \def\currentdirectionparameters
+% {\ifconditional\inlinelefttoright \else
+% idir {r2l}%
+% \fi
+% \ifconditional\displaylefttoright \else
+% ddir {r2l}%
+% \fi}
+
\unexpanded\def\synchronizelayoutdirection
{\ifconditional\layoutlefttoright
\spac_directions_synchronize_lr
@@ -117,17 +167,16 @@
\def\spac_directions_synchronize_lr
{\settrue\inlinelefttoright
- \textdirection\directionlefttoright
- \pardirection \directionlefttoright}
+ \textdir TLT\relax
+ \pardir TLT\relax}
\def\spac_directions_synchronize_rl
{\setfalse\inlinelefttoright
- \textdirection\directionrighttoleft
- \pardirection \directionrighttoleft}
+ \textdir TRT\relax
+ \pardir TRT\relax}
\unexpanded\def\synchronizeinlinedirection
- {% why not \linedirection here
- \textdirection\ifconditional\inlinelefttoright\directionlefttoright\else\directionrighttoleft\fi}
+ {\textdir T\ifconditional\inlinelefttoright L\else R\fi T\relax}
\unexpanded\def\checkedlefttoright
{\ifvmode
@@ -161,20 +210,49 @@
\unexpanded\def\usebidiparameter#1%
{\begincsname\??bidi#1\c!bidi\endcsname}
+% maybe some day:
+%
+% \newcount\postdirpenalty % \zerocount
+% \newcount\predirpenalty % \zerocount
+%
+% \def\spac_directions_post_break
+% {\ifhmode
+% \removeunwantedspaces
+% \penalty\postdirpenalty
+% \fi}
+%
+% \def\spac_directions_pre_break
+% {\ifhmode
+% \penalty\predirpenalty
+% \ignorespaces
+% \fi}
+%
+% \unexpanded\def\spac_directions_lefttoright_hmode
+% {\settrue\inlinelefttoright
+% \textdir TLT\relax
+% \aftergroup\spac_directions_post_break
+% \spac_directions_pre_break}
+%
+% \unexpanded\def\spac_directions_righttoleft_hmode
+% {\textdir TRT\relax
+% \setfalse\inlinelefttoright
+% \aftergroup\spac_directions_post_break
+% \spac_directions_pre_break}
+
\unexpanded\def\showdirections
{\dontleavehmode
- \begingroup\infofont\textdirection\directionlefttoright[\space
- layout: \ifconditional\layoutlefttoright l2r\else r2l\fi\space
- display: \ifconditional\displaylefttoright l2r\else r2l\fi\space
- inline: \ifconditional\inlinelefttoright l2r\else r2l\fi\space
+ \begingroup\infofont\textdir TLT[\space
+ layout:\ifconditional \layoutlefttoright l2r\else r2l\fi\space
+ display:\ifconditional\displaylefttoright l2r\else r2l\fi\space
+ inline:\ifconditional \inlinelefttoright l2r\else r2l\fi\space
]\endgroup}
-\unexpanded\def\righttolefthbox#1#{\reversehbox#1\bgroup\righttoleft\let\next} \let\rtlhbox\righttolefthbox
-\unexpanded\def\lefttorighthbox#1#{\naturalhbox#1\bgroup\lefttoright\let\next} \let\ltrhbox\lefttorighthbox
-\unexpanded\def\righttoleftvbox#1#{\reversevbox#1\bgroup\righttoleft\let\next} \let\rtlvbox\righttoleftvbox
-\unexpanded\def\lefttorightvbox#1#{\naturalvbox#1\bgroup\lefttoright\let\next} \let\ltrvbox\lefttorightvbox
-\unexpanded\def\righttoleftvtop#1#{\reversevtop#1\bgroup\righttoleft\let\next} \let\rtlvtop\righttoleftvtop
-\unexpanded\def\lefttorightvtop#1#{\naturalvtop#1\bgroup\lefttoright\let\next} \let\ltrvtop\lefttorightvtop
+\unexpanded\def\righttolefthbox#1#{\normalhbox dir TRT #1\bgroup\righttoleft\let\next} \let\rtlhbox\righttolefthbox
+\unexpanded\def\lefttorighthbox#1#{\normalhbox dir TLT #1\bgroup\lefttoright\let\next} \let\ltrhbox\lefttorighthbox
+\unexpanded\def\righttoleftvbox#1#{\normalvbox dir TRT #1\bgroup\righttoleft\let\next} \let\rtlvbox\righttoleftvbox
+\unexpanded\def\lefttorightvbox#1#{\normalvbox dir TLT #1\bgroup\lefttoright\let\next} \let\ltrvbox\lefttorightvbox
+\unexpanded\def\righttoleftvtop#1#{\normalvtop dir TRT #1\bgroup\righttoleft\let\next} \let\rtlvtop\righttoleftvtop
+\unexpanded\def\lefttorightvtop#1#{\normalvtop dir TLT #1\bgroup\lefttoright\let\next} \let\ltrvtop\lefttorightvtop
\unexpanded\def\autodirhbox#1#{\hbox#1\bgroup\synchronizeinlinedirection\let\next}
\unexpanded\def\autodirvbox#1#{\vbox#1\bgroup\synchronizeinlinedirection\let\next} % maybe also pardir or maybe just a \vbox
@@ -277,8 +355,7 @@
\newconstant\c_spac_align_state_par_fill
\def\v_spac_align_fill_amount {\plusone fil}
-\def\v_spac_align_fill_amount_hard {\plusone fill}
-\def\v_spac_align_fill_amount_extreme {\plustenthousand filll}
+\def\v_spac_align_fill_amount_hard {\plusone fill}
\def\v_spac_align_fill_amount_negative {\minusone fil}
\def\v_spac_align_fill_amount_double {\plustwo fil}
\def\v_spac_align_fill_amount_space {\plustwo fil} % can be added to xspace if we have a key
@@ -402,8 +479,7 @@
\spaceskip \zeropoint\relax
\xspaceskip \zeropoint\relax
\parfillskip \zeropoint
- \parfillleftskip\zeropoint\s!plus\v_spac_align_fill_amount_extreme\relax
- \parfillleftmode\plustwo % \plusone checks for multiple lines
+ \parfillleftskip\zeropoint\s!plus\v_spac_align_fill_amount_hard\relax
\parindent \zeropoint
\relax}
@@ -567,8 +643,8 @@
}}% kept, nice for tracing
\edef\raggedcommand {\the\t_spac_align_collected }%
\edef\updateraggedskips{\spac_align_flush_horizontal}%
- \expandafter\glet\csname\??alignmentnormalcache\m_spac_align_asked\endcsname\raggedcommand
- \expandafter\glet\csname\??alignmentraggedcache\m_spac_align_asked\endcsname\updateraggedskips}
+ \global\expandafter\let\csname\??alignmentnormalcache\m_spac_align_asked\endcsname\raggedcommand
+ \global\expandafter\let\csname\??alignmentraggedcache\m_spac_align_asked\endcsname\updateraggedskips}
\def\spac_align_collect#1%
{\csname\??aligncommand#1\endcsname}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/spac-chr.lua b/Master/texmf-dist/tex/context/base/mkiv/spac-chr.lua
index 23cf9741b14..0fa639f9295 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/spac-chr.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/spac-chr.lua
@@ -27,6 +27,9 @@ local nodes, node = nodes, node
local nuts = nodes.nuts
+local tonode = nuts.tonode
+local tonut = nuts.tonut
+
local getnext = nuts.getnext
local getprev = nuts.getprev
local getattr = nuts.getattr
@@ -35,6 +38,7 @@ local getlang = nuts.getlang
local setchar = nuts.setchar
local setattrlist = nuts.setattrlist
local getfont = nuts.getfont
+local getchar = nuts.getchar
local setsubtype = nuts.setsubtype
local setdisc = nuts.setdisc
local isglyph = nuts.isglyph
@@ -44,13 +48,13 @@ local setcolor = nodes.tracers.colors.set
local insert_node_before = nuts.insert_before
local insert_node_after = nuts.insert_after
local remove_node = nuts.remove
------ traverse_id = nuts.traverse_id
------ traverse_char = nuts.traverse_char
-local nextchar = nuts.traversers.char
-local nextglyph = nuts.traversers.glyph
+local traverse_id = nuts.traverse_id
+local traverse_char = nuts.traverse_char
local copy_node = nuts.copy
+local tasks = nodes.tasks
+
local nodepool = nuts.pool
local new_penalty = nodepool.penalty
local new_glue = nodepool.glue
@@ -59,10 +63,12 @@ local new_rule = nodepool.rule
local new_disc = nodepool.disc
local nodecodes = nodes.nodecodes
-local gluecodes = nodes.gluecodes
+local skipcodes = nodes.skipcodes
+local disccodes = nodes.disccodes
local glyph_code = nodecodes.glyph
-local spaceskip_code = gluecodes.spaceskip
+local space_skip_code = skipcodes.spaceskip
+local explicit_code = disccodes.explicit
local chardata = characters.data
local is_punctuation = characters.is_punctuation
@@ -95,7 +101,8 @@ local function inject_quad_space(unicode,head,current,fraction)
setattrlist(glue,current)
setattrlist(current) -- why reset all
setattr(glue,a_character,unicode)
- return insert_node_after(head,current,glue)
+ head, current = insert_node_after(head,current,glue)
+ return head, current
end
local function inject_char_space(unicode,head,current,parent)
@@ -105,7 +112,8 @@ local function inject_char_space(unicode,head,current,parent)
setattrlist(glue,current)
setattrlist(current) -- why reset all
setattr(glue,a_character,unicode)
- return insert_node_after(head,current,glue)
+ head, current = insert_node_after(head,current,glue)
+ return head, current
end
local function inject_nobreak_space(unicode,head,current,space,spacestretch,spaceshrink)
@@ -124,17 +132,18 @@ local function inject_nobreak_space(unicode,head,current,space,spacestretch,spac
head, current = insert_node_after(head,current,kern)
head, current = insert_node_after(head,current,penalty)
end
- return insert_node_after(head,current,glue)
+ head, current = insert_node_after(head,current,glue)
+ return head, current
end
local function nbsp(head,current)
local para = fontparameters[getfont(current)]
if getattr(current,a_alignstate) == 1 then -- flushright
head, current = inject_nobreak_space(0x00A0,head,current,para.space,0,0)
- setsubtype(current,spaceskip_code)
+ setsubtype(current,space_skip_code)
else
head, current = inject_nobreak_space(0x00A0,head,current,para.space,para.spacestretch,para.spaceshrink)
- setsubtype(current,spaceskip_code)
+ setsubtype(current,space_skip_code)
end
return head, current
end
@@ -143,13 +152,27 @@ end
function characters.replacenbsp(head,original)
local head, current = nbsp(head,original)
- return remove_node(head,original,true)
+ head = remove_node(head,original,true)
+ return head, current
end
+-- function characters.replacenbspaces(head)
+-- for current in traverse_id(glyph_code,head) do
+-- if getchar(current) == 0x00A0 then
+-- local h = nbsp(head,current)
+-- if h then
+-- head = remove_node(h,current,true)
+-- end
+-- end
+-- end
+-- return head
+-- end
+
function characters.replacenbspaces(head)
+ local head = tonut(head)
local wipe = false
- for current, char, font in nextglyph, head do -- can be anytime so no traverse_char
- if char == 0x00A0 then
+ for current in traverse_id(glyph_code,head) do -- can be anytiem so no traverse_char
+ if getchar(current) == 0x00A0 then
if wipe then
head = remove_node(h,current,true)
wipe = false
@@ -161,16 +184,15 @@ function characters.replacenbspaces(head)
end
end
if wipe then
- head = remove_node(head,current,true)
+ head = remove_node(h,current,true)
end
- return head
+ return tonode(head)
end
-- This initialization might move someplace else if we need more of it. The problem is that
-- this module depends on fonts so we have an order problem.
local nbsphash = { } setmetatableindex(nbsphash,function(t,k)
- -- this needs checking !
for i=unicodeblocks.devanagari.first,unicodeblocks.devanagari.last do nbsphash[i] = true end
for i=unicodeblocks.kannada .first,unicodeblocks.kannada .last do nbsphash[i] = true end
setmetatableindex(nbsphash,nil)
@@ -187,11 +209,11 @@ local methods = {
[0x001F] = function(head,current) -- kind of special
local next = getnext(current)
if next then
- local char, font = isglyph(next)
+ local char = isglyph(next)
if char then
head, current = remove_node(head,current,true)
if not is_punctuation[char] then
- local p = fontparameters[font]
+ local p = fontparameters[getfont(next)]
head, current = insert_node_before(head,current,new_glue(p.space,p.space_stretch,p.space_shrink))
end
end
@@ -297,7 +319,9 @@ local methods = {
characters.methods = methods
-- function characters.handler(head) -- todo: use traverse_id
+-- head = tonut(head)
-- local current = head
+-- local done = false
-- while current do
-- local char, id = isglyph(current)
-- if char then
@@ -311,39 +335,47 @@ characters.methods = methods
-- if h then
-- head = remove_node(h,current,true)
-- end
+-- done = true
-- end
-- current = next
-- else
-- current = getnext(current)
-- end
-- end
--- return head
+-- return tonode(head), done
-- end
+-- for current, char, font in traverse_char_data(head) will save 0.015 on a 300 page doc
+
-- this also works ok in math as we run over glyphs and these stay glyphs ... not sure
-- about scripts and such but that is not important anyway ... some day we can consider
-- special definitions in math
function characters.handler(head)
+ local head = tonut(head)
local wipe = false
- for current, char in nextchar, head do
- local method = methods[char]
- if method then
- if wipe then
- head = remove_node(head,wipe,true)
- wipe = false
- end
- if trace_characters then
- report_characters("replacing character %C, description %a",char,lower(chardata[char].description))
- end
- local h = method(head,current)
- if h then
- wipe = current
+ for current in traverse_char(head) do
+ local char = getchar(current)
+ if char then
+ local method = methods[char]
+ if method then
+ if wipe then
+ head = remove_node(head,wipe,true)
+ wipe = false
+ end
+ if trace_characters then
+ report_characters("replacing character %C, description %a",char,lower(chardata[char].description))
+ end
+ local h = method(head,current)
+ if h then
+ wipe = current
+ end
+ done = true
end
end
end
if wipe then
head = remove_node(head,wipe,true)
end
- return head
+ return tonode(head), done
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/spac-chr.mkiv b/Master/texmf-dist/tex/context/base/mkiv/spac-chr.mkiv
index 23f4ac8dd64..ed2cb47f982 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/spac-chr.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/spac-chr.mkiv
@@ -15,7 +15,7 @@
\unprotect
-\registerctxluafile{spac-chr}{optimize}
+\registerctxluafile{spac-chr}{}
\definesystemattribute[characters][public]
diff --git a/Master/texmf-dist/tex/context/base/mkiv/spac-flr.mkiv b/Master/texmf-dist/tex/context/base/mkiv/spac-flr.mkiv
index bd50bfea68b..29351a3dd46 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/spac-flr.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/spac-flr.mkiv
@@ -60,35 +60,6 @@
\endgroup
\ignorespaces}
-% \definefiller
-% [MyFiller]
-% [offset=.25\emwidth,
-% rightmargindistance=-\rightskip,
-% method=middle]
-%
-% \startitemize[packed,joinedup][rightmargin=5em]
-% \startitem
-% \input sapolsky \fillupto[MyFiller]{RS}
-% \stopitem
-% \stopitemize
-
-\unexpanded\def\fillupto
- {\dosingleempty\spac_fillers_upto}
-
-\def\spac_fillers_upto[#1]#2%
- {\removeunwantedspaces
- \begingroup
- \edef\currentfiller{#1}%
- \scratchdimen\dimexpr\fillerparameter\c!rightmargindistance\relax
- \ifdim\scratchdimen=\zeropoint\else
- \parfillskip \scratchdimen\s!plus \plusone\s!fil\relax
- \fi
- \spac_fillers_indeed[#1]%
- \doifsomething{#2}{\hbox{#2}}%
- \par
- \endgroup
- \ignorespaces}
-
\setvalue{\??filleralternative\s!unknown}%
{}
@@ -116,8 +87,8 @@
\setvalue{\??filleralternative\v!rule}%
{\expandnamespaceparameter\??fillerleadermethod\fillerparameter\c!method\v!local
\hrule
- \s!height\fillerparameter\c!height
- \s!depth \fillerparameter\c!depth
+ \!!height\fillerparameter\c!height
+ \!!depth \fillerparameter\c!depth
\hfill}
\letvalue{\??fillerleadermethod\s!local }\normalleaders % overflow ends up inbetween (current box)
@@ -135,7 +106,6 @@
\c!depth=\zeropoint,
\c!leftmargin=\zeropoint,
\c!rightmargin=\zeropoint,
- \c!rightmargindistance=\zeropoint,
\c!alternative=\v!symbol,
\c!method=\s!local]
diff --git a/Master/texmf-dist/tex/context/base/mkiv/spac-grd.mkiv b/Master/texmf-dist/tex/context/base/mkiv/spac-grd.mkiv
index 72d017836f6..73c6e0dd151 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/spac-grd.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/spac-grd.mkiv
@@ -108,8 +108,8 @@
\newbox \b_spac_lines_correction_after
\def\spac_lines_initialize_corrections
- {\setbox\b_spac_lines_correction_before\hpack{\setstrut\strut}%
- \setbox\b_spac_lines_correction_after \hbox {(}%
+ {\setbox\b_spac_lines_correction_before\hbox{\setstrut\strut}%
+ \setbox\b_spac_lines_correction_after \hbox{(}%
\d_spac_lines_correction_before\dimexpr\ht\b_spac_lines_correction_before-\ht\b_spac_lines_correction_after\relax
\d_spac_lines_correction_after \dimexpr\dp\b_spac_lines_correction_before-\dp\b_spac_lines_correction_after\relax
\ifdim\d_spac_lines_correction_before<\zeropoint\d_spac_lines_correction_before\zeropoint\fi
diff --git a/Master/texmf-dist/tex/context/base/mkiv/spac-hor.mkiv b/Master/texmf-dist/tex/context/base/mkiv/spac-hor.mkiv
index 32b7f06fb81..ce747a2025b 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/spac-hor.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/spac-hor.mkiv
@@ -17,9 +17,8 @@
\registerctxluafile{spac-hor}{}
-\let \parfillrightskip \parfillskip
-\newskip \parfillleftskip
-\newconstant\parfillleftmode
+\let \parfillrightskip \parfillskip
+\newskip\parfillleftskip
\let\v_spac_indentation_current\empty % amount/keyword
@@ -206,9 +205,6 @@
\let\checkindentation\relax
-\installmacrostack\checkindentation
-\installmacrostack\ifindentation
-
\def\spac_indentation_remove
{\ifdim\parindent=\zeropoint \else
\begingroup
@@ -222,21 +218,21 @@
\def\spac_indentation_do_toggle_indeed
{\global\indentationfalse
- \glet\checkindentation\spac_indentation_no_toggle_indeed
+ \global\let\checkindentation\spac_indentation_no_toggle_indeed
\spac_indentation_remove}
\def\spac_indentation_no_toggle_indeed
{\global\indentationtrue
- \glet\checkindentation\spac_indentation_do_toggle_indeed}
+ \global\let\checkindentation\spac_indentation_do_toggle_indeed}
\def\spac_indentation_do_indeed
{\global\indentationtrue}
\def\spac_indentation_do_toggle
- {\glet\checkindentation\spac_indentation_do_toggle_indeed}
+ {\global\let\checkindentation\spac_indentation_do_toggle_indeed}
\def\spac_indentation_no_toggle
- {\glet\checkindentation\spac_indentation_no_toggle_indeed}
+ {\global\let\checkindentation\spac_indentation_no_toggle_indeed}
\def\spac_indentation_check_toggle
{\ifcase\c_spac_indentation_toggle_state
@@ -248,22 +244,22 @@
\fi}
\def\spac_indentation_variant_yes
- {\glet\checkindentation\spac_indentation_do_indeed}
+ {\global\let\checkindentation\spac_indentation_do_indeed}
\def\spac_indentation_no_next_check
{\spac_indentation_remove
- \glet\checkindentation\spac_indentation_do_indeed}
+ \global\let\checkindentation\spac_indentation_do_indeed}
\def\spac_indentation_variant_no % made global
{\ifinpagebody \else
\global\indentationfalse
- \glet\checkindentation\spac_indentation_no_next_check
+ \global\let\checkindentation\spac_indentation_no_next_check
\fi}
\def\nonoindentation % bv bij floats
{\ifinpagebody \else
\global\indentationtrue
- \glet\checkindentation\spac_indentation_do_indeed
+ \global\let\checkindentation\spac_indentation_do_indeed
\fi}
\def\spac_indentation_variant_force
@@ -275,13 +271,13 @@
\fi \fi}
\appendtoks
- \push_macro_checkindentation
- \push_macro_ifindentation
+ \pushmacro\checkindentation
+ \pushmacro\ifindentation
\to \everypushsomestate
\appendtoks
- \pop_macro_ifindentation
- \pop_macro_checkindentation
+ \popmacro\ifindentation
+ \popmacro\checkindentation
\to \everypopsomestate
% public:
@@ -291,16 +287,16 @@
\let\doindentation\spac_indentation_variant_yes % public
\def\dontrechecknextindentation % public (in macros)
- {\glet\dorechecknextindentation\relax}
+ {\global\let\dorechecknextindentation\relax}
\let\dorechecknextindentation\relax % public (in macros)
\unexpanded\def\spac_indentation_check_next_indentation
- {\glet\dorechecknextindentation\relax
+ {\global\let\dorechecknextindentation\relax
\doifelsenextchar\par\donothing\spac_indentation_variant_no} % messy check as next is seldom \par
\def\spac_indentation_variant_auto
- {\glet\dorechecknextindentation\spac_indentation_check_next_indentation}
+ {\global\let\dorechecknextindentation\spac_indentation_check_next_indentation}
%D This one sets up the local indentation behaviour (i.e. either or not
%D a next paragraph will be indented).
@@ -568,13 +564,6 @@
\fi
\fi}
-\unexpanded\def\onlynonbreakablespace
- {\ifdim\lastskip=\interwordspace
- \unskip
- \nonbreakablespace
- \fi
- \ignorespaces}
-
% \startbuffer
% \startlines \tt \fixedspaces
% 0~1~~2~~~3~~~~4~~~~~5
@@ -609,15 +598,12 @@
\ifdefined\quad \else
- \unexpanded\def\enskip{\hskip.5\emwidth\relax}
- \unexpanded\def\quad {\hskip \emwidth\relax}
- \unexpanded\def\qquad {\hskip 2\emwidth\relax}
+ \unexpanded\def\enskip{\hskip.5\emwidth}
+ \unexpanded\def\quad {\hskip \emwidth}
+ \unexpanded\def\qquad {\hskip 2\emwidth}
\fi
-\unexpanded\def\negenspace{\kern-.5\emwidth}
-\unexpanded\def\negemspace{\kern- \emwidth}
-
\let\emspace\quad
\unexpanded\def\charspace{ } % the unexpandable \space (as space can also be delimiter for numbers)
@@ -1130,8 +1116,6 @@
\unexpanded\def\spac_spaces_checked_normal {\mathortext\normalspace{\dontleavehmode\normalspace}}%
\unexpanded\def\spac_spaces_checked_fixed {\mathortext\normalspace{\dontleavehmode\fixedspace}}%
-% hm, order matters when we \let in \obeyspaces
-
\installspacemethod \v!on
{\obeyspaces
\let\obeyedspace\spac_spaces_checked_control
diff --git a/Master/texmf-dist/tex/context/base/mkiv/spac-lin.mkiv b/Master/texmf-dist/tex/context/base/mkiv/spac-lin.mkiv
index d862f6d8109..6558cb1113f 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/spac-lin.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/spac-lin.mkiv
@@ -86,7 +86,7 @@
\let\spac_lines_break\relax
\fi
\linesparameter\c!before
- \push_macro_checkindentation
+ \pushmacro\checkindentation
\whitespace
\dostarttaggedchained\t!lines\currentlines\??lines
\begingroup
@@ -126,7 +126,7 @@
{\dostoptagged
\endgroup
\dostoptagged
- \pop_macro_checkindentation
+ \popmacro\checkindentation
\linesparameter\c!after
\egroup}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/spac-pag.mkiv b/Master/texmf-dist/tex/context/base/mkiv/spac-pag.mkiv
index 9adc591ed96..c7d22f0e0c5 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/spac-pag.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/spac-pag.mkiv
@@ -151,7 +151,6 @@
\unexpanded\def\signalrightpage {\dotrackpagestate \s!paragraph\nofraggedparagraphs} % use \dontleavehmode if needed
\unexpanded\def\doifelserightpage{\doifelserightpagestate\s!paragraph\nofraggedparagraphs}
-\unexpanded\def\rightpageorder {\pagestaterealpageorder\s!paragraph\nofraggedparagraphs}
\let\doifrightpageelse\doifelserightpage
@@ -170,9 +169,9 @@
\fi
\ifpagechanged
\letgvalue{\??pagechanges#2:#1}\m_spac_pagestates_realpage
- \glet\lastchangedpage\m_spac_pagestates_realpage
+ \globallet\lastchangedpage\m_spac_pagestates_realpage
\else
- \glet\lastchangedpage\realfolio
+ \globallet\lastchangedpage\realfolio
\fi}
\def\changedpagestate#1#2%
diff --git a/Master/texmf-dist/tex/context/base/mkiv/spac-par.mkiv b/Master/texmf-dist/tex/context/base/mkiv/spac-par.mkiv
index 0932b735989..4dd3db24338 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/spac-par.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/spac-par.mkiv
@@ -79,17 +79,17 @@
\setvalue{\??paragraphintro\v!first}#1%
{\global\settrue\c_spac_paragraphs_intro_first
- \gtoksapp\t_spac_paragraphs_intro_first{#1}%
+ \global\t_spac_paragraphs_intro_first\expandafter{\the\t_spac_paragraphs_intro_first#1}%
\glet\insertparagraphintro\spac_paragraphs_flush_intro}
\setvalue{\??paragraphintro\v!next}#1%
{\global\settrue\c_spac_paragraphs_intro_next
- \gtoksapp\t_spac_paragraphs_intro_next{#1}%
+ \global\t_spac_paragraphs_intro_next\expandafter{\the\t_spac_paragraphs_intro_next#1}%
\glet\insertparagraphintro\spac_paragraphs_flush_intro}
\setvalue{\??paragraphintro\v!each}#1%
{\global\settrue\c_spac_paragraphs_intro_each
- \gtoksapp\t_spac_paragraphs_intro_each{#1}%
+ \global\t_spac_paragraphs_intro_each\expandafter{\the\t_spac_paragraphs_intro_each#1}%
\glet\insertparagraphintro\spac_paragraphs_flush_intro}
%D We can say:
@@ -130,7 +130,7 @@
\unexpanded\def\flushatparagraph#1%
{\global\c_spac_paragraphs_intro_first\plusone
- \gtoksapp\t_spac_paragraphs_intro_first{#1}%
+ \global\t_spac_paragraphs_intro_first\expandafter{\the\t_spac_paragraphs_intro_first#1}%
\glet\insertparagraphintro\spac_paragraphs_flush_intro}
%D Here comes the flusher (we misuse the one level expansion of token
@@ -221,19 +221,19 @@
\dowithnextboxcs\spac_postponed_data_finish\hbox}
\def\spac_postponed_data_finish
- {\global\setbox\b_spac_postponed_data\hpack % to\zeropoint
+ {\global\setbox\b_spac_postponed_data\hbox % to\zeropoint
{\box\b_spac_postponed_data\box\nextbox}%
\endgroup}
\def\spac_postponed_data_flush
{%\iftrialtypesetting \else
\ifvoid\b_spac_postponed_data\else
- \hpack{\smashedbox\b_spac_postponed_data}% \box\b_spac_postponed_data
+ \hbox{\smashedbox\b_spac_postponed_data}% \box\b_spac_postponed_data
\fi
\glet\flushpostponednodedata\relax
}%\fi}
-\unexpanded\def\doflushatpar % might be renamed
+\unexpanded\def\doflushatpar
{\ifvmode
\expandafter\flushatnextpar
\else
diff --git a/Master/texmf-dist/tex/context/base/mkiv/spac-prf.lua b/Master/texmf-dist/tex/context/base/mkiv/spac-prf.lua
index 32582c56fc5..a28f305932c 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/spac-prf.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/spac-prf.lua
@@ -17,7 +17,6 @@ local formatters = string.formatters
local nodecodes = nodes.nodecodes
local gluecodes = nodes.gluecodes
local listcodes = nodes.listcodes
-local leadercodes = nodes.leadercodes
local glyph_code = nodecodes.glyph
local disc_code = nodecodes.disc
@@ -31,12 +30,10 @@ local math_code = nodecodes.math
local rule_code = nodecodes.rule
local marginkern_code = nodecodes.marginkern
-local leaders_code = leadercodes.leaders
-
+local leaders_code = gluecodes.leaders
local lineskip_code = gluecodes.lineskip
local baselineskip_code = gluecodes.baselineskip
-
-local linelist_code = listcodes.line
+local line_code = listcodes.line
local texlists = tex.lists
local settexattribute = tex.setattribute
@@ -131,9 +128,6 @@ local function getprofile(line,step)
local margin = step / 4
local min = 0
local max = ceiling(getwidth(line)/step) + 1
- local wd = 0
- local ht = 0
- local dp = 0
for i=min,max do
heights[i] = 0
@@ -142,6 +136,8 @@ local function getprofile(line,step)
-- remember p
+ local wd, ht, dp = 0, 0, 0
+
local function progress()
position = width
width = position + wd
@@ -643,7 +639,7 @@ end
local function profilelist(line,mvl)
- local current = line
+ local current = tonut(line)
local top = nil
local bot = nil
@@ -672,7 +668,7 @@ local function profilelist(line,mvl)
local id = getid(current)
if id == hlist_code then
local subtype = getsubtype(current)
- if subtype == linelist_code then
+ if subtype == line_code then
t_profile = hasprofile(current)
if t_profile then
top = current
@@ -714,7 +710,7 @@ local function profilelist(line,mvl)
if id == hlist_code then -- check subtype
local subtype = getsubtype(current)
- if subtype == linelist_code then
+ if subtype == line_code then
if top == current then
-- skip
bot = nil -- to be sure
@@ -823,7 +819,7 @@ function profiling.profilebox(specification)
local id = getid(current)
if id == hlist_code then
local subtype = getsubtype(current)
- if subtype == linelist_code then
+ if subtype == line_code then
if top then
bot = current
b_profile = setprofile(bot)
@@ -903,8 +899,9 @@ end
--
-- function profiling.vboxhandler(head,where)
-- if head and not ignore[where] then
--- if getnext(head) then
--- profilelist(head)
+-- local h = tonut(head)
+-- if getnext(h) then
+-- profilelist(h)
-- end
-- end
-- return head
@@ -914,7 +911,7 @@ function profiling.pagehandler(head)
if head then
profilelist(head,true)
end
- return head
+ return head, true
end
interfaces.implement {
diff --git a/Master/texmf-dist/tex/context/base/mkiv/spac-ver.lua b/Master/texmf-dist/tex/context/base/mkiv/spac-ver.lua
index b55f1ca7cae..969a195e1fe 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/spac-ver.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/spac-ver.lua
@@ -116,8 +116,8 @@ local a_snapmethod = attributes.private('snapmethod')
local a_snapvbox = attributes.private('snapvbox')
local nuts = nodes.nuts
-local tonut = nuts.tonut
local tonode = nuts.tonode
+local tonut = nuts.tonut
local getnext = nuts.getnext
local setlink = nuts.setlink
@@ -147,16 +147,15 @@ local getdepth = nuts.getdepth
local find_node_tail = nuts.tail
local flush_node = nuts.flush_node
+local traverse_nodes = nuts.traverse
+local traverse_nodes_id = nuts.traverse_id
local insert_node_after = nuts.insert_after
local insert_node_before = nuts.insert_before
local remove_node = nuts.remove
local count_nodes = nuts.countall
local hpack_node = nuts.hpack
local vpack_node = nuts.vpack
-
-local nextnode = nuts.traversers.node
-local nexthlist = nuts.traversers.hlist
-
+----- writable_spec = nuts.writable_spec
local nodereference = nuts.reference
local theprop = nuts.theprop
@@ -171,9 +170,8 @@ local new_kern = nodepool.kern
local new_rule = nodepool.rule
local nodecodes = nodes.nodecodes
-local gluecodes = nodes.gluecodes
------ penaltycodes = nodes.penaltycodes
------ listcodes = nodes.listcodes
+local skipcodes = nodes.skipcodes
+local penaltycodes = nodes.penaltycodes
local penalty_code = nodecodes.penalty
local kern_code = nodecodes.kern
@@ -181,22 +179,21 @@ local glue_code = nodecodes.glue
local insert_code = nodecodes.ins
local hlist_code = nodecodes.hlist
local vlist_code = nodecodes.vlist
-local rule_code = nodecodes.rule
local localpar_code = nodecodes.localpar
-local userskip_code = gluecodes.userskip
-local lineskip_code = gluecodes.lineskip
-local baselineskip_code = gluecodes.baselineskip
-local parskip_code = gluecodes.parskip
-local topskip_code = gluecodes.topskip
-local splittopskip_code = gluecodes.splittopskip
+local linebreak_code = penaltycodes.linebreakpenalty
-local linelist_code = nodes.listcodes.line
+local userskip_code = skipcodes.userskip
+local lineskip_code = skipcodes.lineskip
+local baselineskip_code = skipcodes.baselineskip
+local parskip_code = skipcodes.parskip
+local topskip_code = skipcodes.topskip
+local splittopskip_code = skipcodes.splittopskip
-local abovedisplayskip_code = gluecodes.abovedisplayskip
-local belowdisplayskip_code = gluecodes.belowdisplayskip
-local abovedisplayshortskip_code = gluecodes.abovedisplayshortskip
-local belowdisplayshortskip_code = gluecodes.belowdisplayshortskip
+local abovedisplayskip_code = skipcodes.abovedisplayskip
+local belowdisplayskip_code = skipcodes.belowdisplayskip
+local abovedisplayshortskip_code = skipcodes.abovedisplayshortskip
+local belowdisplayshortskip_code = skipcodes.belowdisplayshortskip
local properties = nodes.properties.data
@@ -211,93 +208,90 @@ vspacingdata.snapmethods = snapmethods
storage.register("builders/vspacing/data/snapmethods", snapmethods, "builders.vspacing.data.snapmethods")
-do
+local default = {
+ [v_maxheight] = true,
+ [v_maxdepth] = true,
+ [v_strut] = true,
+ [v_hfraction] = 1,
+ [v_dfraction] = 1,
+ [v_bfraction] = 0.25,
+}
- local default = {
- [v_maxheight] = true,
- [v_maxdepth] = true,
- [v_strut] = true,
- [v_hfraction] = 1,
- [v_dfraction] = 1,
- [v_bfraction] = 0.25,
- }
+local fractions = {
+ [v_minheight] = v_hfraction, [v_maxheight] = v_hfraction,
+ [v_mindepth] = v_dfraction, [v_maxdepth] = v_dfraction,
+ [v_box] = v_bfraction,
+ [v_top] = v_tlines, [v_bottom] = v_blines,
+}
- local fractions = {
- [v_minheight] = v_hfraction, [v_maxheight] = v_hfraction,
- [v_mindepth] = v_dfraction, [v_maxdepth] = v_dfraction,
- [v_box] = v_bfraction,
- [v_top] = v_tlines, [v_bottom] = v_blines,
- }
+local values = {
+ offset = "offset"
+}
- local values = {
- offset = "offset"
- }
+local colonsplitter = lpeg.splitat(":")
- local colonsplitter = lpeg.splitat(":")
-
- local function listtohash(str)
- local t = { }
- for s in gmatch(str,"[^, ]+") do
- local key, detail = lpegmatch(colonsplitter,s)
- local v = variables[key]
- if v then
- t[v] = true
- if detail then
- local k = fractions[key]
+local function listtohash(str)
+ local t = { }
+ for s in gmatch(str,"[^, ]+") do
+ local key, detail = lpegmatch(colonsplitter,s)
+ local v = variables[key]
+ if v then
+ t[v] = true
+ if detail then
+ local k = fractions[key]
+ if k then
+ detail = tonumber("0" .. detail)
+ if detail then
+ t[k] = detail
+ end
+ else
+ k = values[key]
if k then
- detail = tonumber("0" .. detail)
+ detail = todimen(detail)
if detail then
t[k] = detail
end
- else
- k = values[key]
- if k then
- detail = todimen(detail)
- if detail then
- t[k] = detail
- end
- end
end
end
- else
- detail = tonumber("0" .. key)
- if detail then
- t[v_hfraction] = detail
- t[v_dfraction] = detail
- end
end
- end
- if next(t) then
- t[v_hfraction] = t[v_hfraction] or 1
- t[v_dfraction] = t[v_dfraction] or 1
- return t
else
- return default
+ detail = tonumber("0" .. key)
+ if detail then
+ t[v_hfraction] = detail
+ t[v_dfraction] = detail
+ end
end
end
-
- function vspacing.definesnapmethod(name,method)
- local n = #snapmethods + 1
- local t = listtohash(method)
- snapmethods[n] = t
- t.name = name -- not interfaced
- t.specification = method -- not interfaced
- context(n)
+ if next(t) then
+ t[v_hfraction] = t[v_hfraction] or 1
+ t[v_dfraction] = t[v_dfraction] or 1
+ return t
+ else
+ return default
end
+end
+function vspacing.definesnapmethod(name,method)
+ local n = #snapmethods + 1
+ local t = listtohash(method)
+ snapmethods[n] = t
+ t.name = name -- not interfaced
+ t.specification = method -- not interfaced
+ context(n)
end
local function validvbox(parentid,list)
if parentid == hlist_code then
local id = getid(list)
- if id == localpar_code and getsubtype(list) == 0 then
+ if id == localpar_code then -- check for initial par subtype
list = getnext(list)
if not next then
return nil
end
end
local done = nil
- for n, id in nextnode, list do
+ for n in traverse_nodes(list) do
+ local id = getid(n)
if id == vlist_code or id == hlist_code then
if done then
return nil
@@ -326,13 +320,14 @@ local function already_done(parentid,list,a_snapmethod) -- todo: done when only
-- problem: any snapped vbox ends up in a line
if list and parentid == hlist_code then
local id = getid(list)
- if id == localpar_code and getsubtype(list) == 0 then
+ if id == localpar_code then -- check for initial par subtype
list = getnext(list)
if not list then
return false
end
end
- for n, id in nextnode, list do
+ for n in traverse_nodes(list) do
+ local id = getid(n)
if id == hlist_code or id == vlist_code then
-- local a = getattr(n,a_snapmethod)
-- if not a then
@@ -541,7 +536,7 @@ local function snap_hlist(where,current,method,height,depth) -- method[v_strut]
if thebox and id == vlist_code then
local list = getlist(thebox)
local lw, lh, ld
- for n in nexthlist, list do
+ for n in traverse_nodes_id(hlist_code,list) do
lw, lh, ld = getwhd(n)
break
end
@@ -577,7 +572,7 @@ local function snap_hlist(where,current,method,height,depth) -- method[v_strut]
if thebox and id == vlist_code then
local list = getlist(thebox)
local lw, lh, ld
- for n in nexthlist, list do
+ for n in traverse_nodes_id(hlist_code,list) do
lw, lh, ld = getwhd(n)
end
if lh then
@@ -877,15 +872,14 @@ end
local trace_list, tracing_info, before, after = { }, false, "", ""
local function nodes_to_string(head)
- local current = head
- local t = { }
+ local current, t = head, { }
while current do
local id = getid(current)
local ty = nodecodes[id]
if id == penalty_code then
t[#t+1] = formatters["%s:%s"](ty,getpenalty(current))
elseif id == glue_code then
- t[#t+1] = formatters["%s:%s:%p"](ty,gluecodes[getsubtype(current)],getwidth(current))
+ t[#t+1] = formatters["%s:%s:%p"](ty,skipcodes[getsubtype(current)],getwidth(current))
elseif id == kern_code then
t[#t+1] = formatters["%s:%p"](ty,getkern(current))
else
@@ -1267,26 +1261,17 @@ do
if trace then
reset_tracing(head)
end
- local current = head
- local oldhead = head
- local glue_order = 0
- local glue_data
- local force_glue = false
- local penalty_order = 0
- local penalty_data
- local natural_penalty
- local special_penalty
- local parskip
- local ignore_parskip = false
- local ignore_following = false
- local ignore_whitespace = false
- local keep_together = false
- local lastsnap
- local pagehead
- local pagetail
+ local current, oldhead = head, head
+ local glue_order, glue_data, force_glue = 0, nil, false
+ local penalty_order, penalty_data, natural_penalty, special_penalty = 0, nil, nil, nil
+ local parskip, ignore_parskip, ignore_following, ignore_whitespace, keep_together = nil, false, false, false, false
+ local lastsnap = nil
--
-- todo: keep_together: between headers
--
+ local pagehead = nil
+ local pagetail = nil
+
local function getpagelist()
if not pagehead then
pagehead = texlists.page_head
@@ -1411,7 +1396,7 @@ do
end
head = insert_node_before(head,current,glue_data)
else
- -- report_vspacing("needs checking (%s): %p",gluecodes[getsubtype(glue_data)],w)
+ -- report_vspacing("needs checking (%s): %p",skipcodes[getsubtype(glue_data)],w)
flush_node(glue_data)
end
end
@@ -1829,7 +1814,7 @@ do
if snap and trace_vsnapping then
local w = getwidth(current)
if w ~= 0 then
- report_snapper("glue %p of type %a kept",w,gluecodes[subtype])
+ report_snapper("glue %p of type %a kept",w,skipcodes[subtype])
end
end
if trace then
@@ -1896,7 +1881,7 @@ do
trace_info("head has been changed from %a to %a",nodecodes[getid(oldhead)],nodecodes[getid(head)])
end
end
- return head
+ return head, true
end
-- alignment after_output end box new_graf vmode_par hmode_par insert penalty before_display after_display
@@ -1924,47 +1909,43 @@ do
-- ugly code: we get partial lists (check if this stack is still okay) ... and we run
-- into temp nodes (sigh)
- local forceflush = false
-
function vspacing.pagehandler(newhead,where)
-- local newhead = texlists.contrib_head
if newhead then
+ newhead = tonut(newhead)
local newtail = find_node_tail(newhead) -- best pass that tail, known anyway
local flush = false
stackhack = true -- todo: only when grid snapping once enabled
-- todo: fast check if head = tail
- for n, id, subtype in nextnode, newhead do -- we could just look for glue nodes
+ for n in traverse_nodes(newhead) do -- we could just look for glue nodes
+ local id = getid(n)
if id ~= glue_code then
flush = true
- elseif subtype == userskip_code then
- if getattr(n,a_skipcategory) then
- stackhack = true
- else
- flush = true
- end
- elseif subtype == parskip_code then
- -- if where == new_graf then ... end
- if texgetcount("c_spac_vspacing_ignore_parskip") > 0 then
- -- texsetcount("c_spac_vspacing_ignore_parskip",0)
- setglue(n)
- -- maybe removenode
+ else
+ local subtype = getsubtype(n)
+ if subtype == userskip_code then
+ if getattr(n,a_skipcategory) then
+ stackhack = true
+ else
+ flush = true
+ end
+ elseif subtype == parskip_code then
+ -- if where == new_graf then ... end
+ if texgetcount("c_spac_vspacing_ignore_parskip") > 0 then
+-- texsetcount("c_spac_vspacing_ignore_parskip",0)
+ setglue(n)
+ -- maybe removenode
+ end
end
end
end
texsetcount("c_spac_vspacing_ignore_parskip",0)
-
- if forceflush then
- forceflush = false
- flush = true
- end
-
if flush then
if stackhead then
if trace_collect_vspacing then report("%s > appending %s nodes to stack (final): %s",where,newhead) end
setlink(stacktail,newhead)
- newhead = stackhead
- stackhead = nil
- stacktail = nil
+ newhead = stackhead
+ stackhead, stacktail = nil, nil
end
if stackhack then
stackhack = false
@@ -1975,7 +1956,7 @@ do
if trace_collect_vspacing then report("%s > flushing %s nodes: %s",where,newhead) end
-- texlists.contrib_head = newhead
end
- return newhead
+ return tonode(newhead)
else
if stackhead then
if trace_collect_vspacing then report("%s > appending %s nodes to stack (intermediate): %s",where,newhead) end
@@ -1985,43 +1966,13 @@ do
stackhead = newhead
end
stacktail = newtail
+ -- texlists.contrib_head = nil
+ -- newhead = nil
end
end
return nil
end
- -- function vspacing.flushpagestack()
- -- if stackhead then
- -- local head = texlists.contrib_head
- -- if head then
- -- local tail = find_node_tail(head)
- -- setlink(tail,stackhead)
- -- else
- -- texlists.contrib_head = tonode(stackhead)
- -- end
- -- stackhead, stacktail = nil, nil
- -- end
- --
- -- end
-
- function vspacing.pageoverflow()
- local h = 0
- if stackhead then
- for n, id in nextnode, stackhead do
- if id == glue_code then
- h = h + getwidth(n)
- elseif id == kern_code then
- h = h + getkern(n)
- end
- end
- end
- return h
- end
-
- function vspacing.forcepageflush()
- forceflush = true
- end
-
local ignore = table.tohash {
"split_keep",
"split_off",
@@ -2029,10 +1980,11 @@ do
}
function vspacing.vboxhandler(head,where)
- if head and not ignore[where] and getnext(head) then
- if getnext(head) then -- what if a one liner and snapping?
- head = collapser(head,"vbox",where,trace_vbox_vspacing,true,a_snapvbox) -- todo: local snapper
- return head
+ if head and not ignore[where] then
+ local h = tonut(head)
+ if getnext(h) then -- what if a one liner and snapping?
+ h = collapser(h,"vbox",where,trace_vbox_vspacing,true,a_snapvbox) -- todo: local snapper
+ return tonode(h)
end
end
return head
@@ -2063,6 +2015,7 @@ do
local outer = texnest[0]
local enabled = true
+ local count = true
local trace = false
local report = logs.reporter("vspacing")
@@ -2071,84 +2024,96 @@ do
end)
directives.register("vspacing.synchronizepage",function(v)
- enabled = v
+ if v == true or v == "count" then
+ enabled = true
+ count = true
+ elseif v == "first" then
+ enabled = true
+ count = false
+ else
+ enabled = false
+ count = false
+ end
end)
- local ignoredepth = -65536000
+ -- hm, check the old one
- -- A previous version analyzed the number of lines moved to the next page in
- -- synchronizepage because prevgraf is unreliable in that case. However, we cannot
- -- tweak that parameter because it is also used in postlinebreak and hangafter, so
- -- there is a danger for interference. Therefore we now do it dynamically.
+ -- function vspacing.synchronizepage()
+ -- if enabled then
+ -- local head = texlists.hold_head
+ -- local skip = 0
+ -- while head and head.id == insert_code do
+ -- head = head.next
+ -- skip = skip + 1
+ -- end
+ -- if head then
+ -- outer.prevdepth = 0
+ -- end
+ -- if trace then
+ -- report("prevdepth %s at page %i, skipped %i, value %p",
+ -- head and "reset" or "kept",texgetcount("realpageno"),skip,outer.prevdepth)
+ -- end
+ -- end
+ -- end
- -- We can also support other lists but there prevgraf probably is ok.
+ local ignoredepth = -65536000
- function vspacing.getnofpreviouslines(head)
+ function vspacing.synchronizepage()
if enabled then
- if not thead then
- head = texlists.page_head
- end
- local noflines = 0
+ local newdepth = outer.prevdepth
+ local olddepth = newdepth
+ local oldlines = outer.prevgraf
+ local newlines = 0
+ local boxfound = false
+ local head = texlists.contrib_head
if head then
local tail = find_node_tail(tonut(head))
while tail do
local id = getid(tail)
if id == hlist_code then
- if getsubtype(tail) == linelist_code then
- noflines = noflines + 1
- else
+ if not boxfound then
+ newdepth = getdepth(tail)
+ boxfound = true
+ end
+ newlines = newlines + 1
+ if not count then
break
end
elseif id == vlist_code then
+ if not boxfound then
+ newdepth = getdepth(tail)
+ boxfound = true
+ end
break
elseif id == glue_code then
local subtype = getsubtype(tail)
- if subtype == baselineskip_code or subtype == lineskip_code then
- -- we're ok
- elseif subtype == parskip_code then
- if getwidth(tail) > 0 then
- break
- else
- -- we assume we're ok
- end
+ if not (subtype == baselineskip_code or subtype == lineskip_code) then
+ break
+ elseif boxfound and not count then
+ break
end
elseif id == penalty_code then
- -- we're probably ok
- elseif id == rule_code or id == kern_code then
- break
+ if boxfound and not count then
+ break
+ end
else
- -- ins, mark, boundary, whatsit
+ -- ins, mark, kern, rule, boundary, whatsit
+ break
end
tail = getprev(tail)
end
end
- return noflines
- end
- end
-
- interfaces.implement {
- name = "getnofpreviouslines",
- public = true,
- actions = vspacing.getnofpreviouslines,
- }
-
- function vspacing.synchronizepage()
- if enabled then
- if trace then
- local newdepth = outer.prevdepth
- local olddepth = newdepth
- if not texlists.page_head then
- newdepth = ignoredepth
- texset("prevdepth",ignoredepth)
- outer.prevdepth = ignoredepth
- end
- report("page %i, prevdepth %p => %p",texgetcount("realpageno"),olddepth,newdepth)
- -- report("list %s",nodes.idsandsubtypes(head))
+ if boxfound then
+ -- what if newdepth ...
else
- if not texlists.page_head then
- texset("prevdepth",ignoredepth)
- outer.prevdepth = ignoredepth
- end
+ texset("prevdepth",ignoredepth)
+ outer.prevdepth = ignoredepth
+ end
+ texset("prevgraf", newlines)
+ outer.prevgraf = newlines
+ if trace then
+ report("page %i, prevdepth %p (last depth %p), prevgraf %i (from %i), %sboxes",
+ texgetcount("realpageno"),olddepth,newdepth,oldlines,newlines,boxfound and "" or "no ")
end
end
end
@@ -2261,7 +2226,7 @@ do
-- end
-- }
- implement {
+ interfaces.implement {
name = "removelastline",
actions = function()
local head = texlists.page_head
@@ -2277,7 +2242,7 @@ do
end
}
- implement {
+ interfaces.implement {
name = "showpagelist", -- will improve
actions = function()
local head = texlists.page_head
@@ -2291,14 +2256,4 @@ do
end
}
- implement {
- name = "pageoverflow",
- actions = { vspacing.pageoverflow, context }
- }
-
- implement {
- name = "forcepageflush",
- actions = vspacing.forcepageflush
- }
-
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/spac-ver.mkiv b/Master/texmf-dist/tex/context/base/mkiv/spac-ver.mkiv
index 7b36f9a5b52..b71e28219b7 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/spac-ver.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/spac-ver.mkiv
@@ -15,7 +15,7 @@
\unprotect
-\registerctxluafile{spac-ver}{optimize}
+\registerctxluafile{spac-ver}{}
% todo: use usernodes ?
@@ -165,8 +165,6 @@
\installcommandhandler \??interlinespace {interlinespace} \??interlinespace
-\installmacrostack\currentinterlinespace
-
\unexpanded\def\setupinterlinespace
{\dodoubleempty\spac_linespacing_setup}
@@ -207,7 +205,7 @@
\ifx\p_spac_checked_interlinespace\empty
\spac_linespacing_synchronize_local
\else\ifcsname\namedinterlinespacehash\p_spac_checked_interlinespace\s!parent\endcsname % we could have a \s!check
- \push_macro_currentinterlinespace
+ \pushmacro\currentinterlinespace
\let\currentinterlinespace\p_spac_checked_interlinespace
\spac_linespacing_setup_specified_interline_space % \dosetupspecifiedinterlinespaceindeed
\iflocalinterlinespace
@@ -217,7 +215,7 @@
\the\everysetuplocalinterlinespace
\localinterlinespacefalse
\fi
- \pop_macro_currentinterlinespace
+ \popmacro\currentinterlinespace
\else
\normalexpanded{\noexpand\doifelseassignment{\p_spac_checked_interlinespace}%
\setupspecifiedinterlinespace\setuprelativeinterlinespace[\p_spac_checked_interlinespace]}%
@@ -232,9 +230,9 @@
\unexpanded\def\setuplocalinterlinespace[#1]%
{\localinterlinespacetrue
- \push_macro_currentinterlinespace
+ \pushmacro\currentinterlinespace
\setupinterlinespace[#1]%
- \pop_macro_currentinterlinespace
+ \popmacro\currentinterlinespace
\localinterlinespacefalse}
\let\switchtointerlinespace\setuplocalinterlinespace
@@ -284,50 +282,47 @@
\unexpanded\def\smallbreak
{\par
- \ifvmode\ifdim\lastskip<\smallskipamount
+ \ifdim\lastskip<\smallskipamount
\removelastskip
- \penalty-\plusfifty
+ \penalty-50
\smallskip
- \fi\fi}
+ \fi}
\unexpanded\def\medbreak
{\par
- \ifvmode\ifdim\lastskip<\medskipamount
+ \ifdim\lastskip<\medskipamount
\removelastskip
- \penalty-\plusonehundred
+ \penalty-100
\medskip
- \fi\fi}
+ \fi}
\unexpanded\def\bigbreak
{\par
- \ifvmode\ifdim\lastskip<\bigskipamount
+ \ifdim\lastskip<\bigskipamount
\removelastskip
- \penalty-\plustwohundred
+ \penalty-200
\bigskip
- \fi\fi}
-
-\unexpanded\def\break {\penalty-\plustenthousand} % can be hmode or vmode
-\unexpanded\def\nobreak {\penalty \plustenthousand} % can be hmode or vmode
-\unexpanded\def\allowbreak{\penalty \zerocount} % can be hmode or vmode
+ \fi}
-\unexpanded\def\goodbreak {\par\ifvmode\penalty-\plusfivehundred\relax\fi} % forces vmode
-\unexpanded\def\filbreak {\par\ifvmode\vfil\penalty-\plustwohundred\vfilneg\fi} % forces vmode
+\unexpanded\def\break {\penalty-\plustenthousand} % can be hmode or vmode
+\unexpanded\def\nobreak {\penalty \plustenthousand} % can be hmode or vmode
+\unexpanded\def\allowbreak{\penalty \zeropoint} % can be hmode or vmode
+\unexpanded\def\goodbreak {\par\penalty-500\relax} % forces vmode
+\unexpanded\def\filbreak {\par\vfil\penalty-200\vfilneg} % forces vmode
%D Made slightly more readable:
\unexpanded\def\vglue {\afterassignment\spac_helpers_vglue_indeed\s_spac_lastskip=}
\unexpanded\def\hglue {\afterassignment\spac_helpers_hglue_indeed\s_spac_lastskip=}
-\unexpanded\def\topglue{\par\ifvmode\nointerlineskip\vglue-\topskip\vglue\fi}
+\unexpanded\def\topglue{\nointerlineskip\vglue-\topskip\vglue}
\def\spac_helpers_vglue_indeed
{\par
- \ifvmode
- \d_spac_prevdepth\prevdepth
- \hrule\s!height\zeropoint
- \nobreak
- \vskip\s_spac_lastskip
- \prevdepth\d_spac_prevdepth
- \fi}
+ \d_spac_prevdepth\prevdepth
+ \hrule\s!height\zeropoint
+ \nobreak
+ \vskip\s_spac_lastskip
+ \prevdepth\d_spac_prevdepth}
\def\spac_helpers_hglue_indeed
{\dontleavehmode
@@ -900,14 +895,11 @@
\dosetstrut}
\unexpanded\def\setcharstrut#1%
- {\setbox\strutbox\hbox{#1}% no \hpack, in case we have smallcaps
+ {\setbox\strutbox\hbox{#1}% hm, maybe hpack i.e. why apply fonts .. conceptual choice
\strutht\ht\strutbox
\strutdp\dp\strutbox
\dosetstrut}
-\unexpanded\def\settightstrut
- {\setcharstrut{(}}
-
\unexpanded\def\setfontstrut
{\setcharstrut{(gplQT}}
@@ -1315,41 +1307,9 @@
\let\normaloffinterlineskip\offinterlineskip % knuth's original
-%D This is tricky. The prevdepth value is still set to the last one even if there is
-%D nothing on the page. The same is true for prevgraf, which doesn't resemble the
-%D value on the current page.
-%D
-%D So, here we kick in a checker but it has to happen after the output group and it
-%D only has to be done once (output can trigger itself!).
-%D
-%D However, prevgraf is somehow bound to hangindent so we can get very
-%D nasty side effects. So, in tne end we use our own variable!
-
-\ifdefined\getnofpreviouslines
- % defined public at the lua end
-\else
- \let\getnofpreviouslines\!!zerocount
-\fi
-
-\unexpanded\def\page_otr_synchronize_page_yes
- {\aftergroup\page_otr_synchronize_page_indeed
- \glet\page_otr_synchronize_page\relax}
-
-% \unexpanded\def\page_otr_synchronize_page_indeed
-% {\clf_synchronizepage
-% \glet\page_otr_synchronize_page\page_otr_synchronize_page_yes}
-%
-% This has to become an otr method: \s!page_otr_command_synchonize_page
-
-\unexpanded\def\page_otr_synchronize_page_indeed
- {\ifx\currentoutputroutine\s!multicolumn\else\clf_synchronizepage\fi
- \glet\page_otr_synchronize_page\page_otr_synchronize_page_yes}
-
-\let\page_otr_synchronize_page\page_otr_synchronize_page_yes
-
\appendtoks
- \page_otr_synchronize_page
-\to \everyaftershipout
+ \ifvmode\clf_synchronizepage\fi % a nasty hack (tested for a while now)
+\to \everyafteroutput
%D My own one:
@@ -1401,7 +1361,7 @@
\let\restoreinterlinepenalty\relax
\unexpanded\def\spac_penalties_restore
- {\glet\restoreinterlinepenalty\relax
+ {\global\let\restoreinterlinepenalty\relax
\global\resetpenalties\interlinepenalties
\global\c_spac_keep_lines_together\zerocount}
@@ -1409,7 +1369,7 @@
{\ifnum#1>\c_spac_keep_lines_together
\global\c_spac_keep_lines_together#1%
\global\setpenalties\interlinepenalties\c_spac_keep_lines_together\plustenthousand
- \glet\restoreinterlinepenalty\spac_penalties_restore
+ \global\let\restoreinterlinepenalty\spac_penalties_restore
\fi}
\def\defaultdisplaywidowpenalty {50}
@@ -1741,7 +1701,7 @@
\fi
\doifelsenothing{#1}{\spac_grids_snap_value_set\v!normal}{\spac_grids_snap_value_set{#1}}%
\clf_vspacingsnap\nextbox\attribute\snapmethodattribute\relax
- \ifvbox\nextbox\vbox\else\hbox\fi attr \snapmethodattribute \zerocount {\box\nextbox}% no pack (?), we snap
+ \ifvbox\nextbox\vbox\else\hbox\fi attr \snapmethodattribute \zerocount {\box\nextbox}% *pack ?
\egroup}
\def\spac_grids_check_nop
@@ -1856,15 +1816,15 @@
\unexpanded\def\gridboxvbox
{\ifcase\gridboxlinemode
- \vpack
+ \vbox
\or
- \ruledvpack
+ \ruledvbox
\or
- \vpack
+ \vbox
\or
- \ruledvpack
+ \ruledvbox
\else
- \ruledvpack
+ \ruledvbox
\fi}
\def\gridboxwidth{\ifcase\gridboxlinemode0\or.5\or.5\or0\else.5\fi\linewidth}
@@ -1876,10 +1836,8 @@
\resetteststrut
\offinterlineskip
\hsize#2%
- \ifcase\gridboxlinenomode\or\or\or
- \gridboxlinenomode\doifoddpageelse\plusone\plustwo % 3: outer
- \or
- \gridboxlinenomode\doifoddpageelse\plustwo\plusone % 4: inner
+ \ifnum\gridboxlinenomode=\plusthree
+ \gridboxlinenomode\ifodd\realpageno\plusone\else\plustwo\fi
\fi
\topskipcorrection
\gridboxvbox % calculated size
@@ -2056,7 +2014,7 @@
\expandafter\nostartblankhandling
\fi}
-\unexpanded\def\nostartblankhandling#1\stopblankhandling
+\def\nostartblankhandling#1\stopblankhandling
{}
\def\dostartblankhandling
@@ -2084,7 +2042,7 @@
\setfalse\c_space_vspacing_done
\the\everybeforeblankhandling}
-\unexpanded\def\addpredefinedblankskip#1#2%
+\def\addpredefinedblankskip#1#2%
{\settrue\c_space_vspacing_done
\advance\s_spac_vspacing_temp#1\dimexpr\csname\??vspacingamount#2\endcsname\relax}
@@ -2131,56 +2089,8 @@
\def\spac_vspacing_nop_ignore
{\ifmmode\else\par\fi}
-% \unexpanded\def\directvspacing#1%
-% {\par\clf_vspacing{#1}}
-%
-%
-% \def\directdefaultvspacing
-% {\ifinpagebody % somewhat weird
-% \clf_vspacing{\currentvspacing}%
-% \else\ifconditional\c_spac_packed_blank
-% \clf_vspacing{\currentvspacing}%
-% \fi\fi}
-%
-% \unexpanded\def\useblankparameter#1% faster local variant
-% {\edef\m_spac_blank_asked{#1\c!blank}%
-% \ifx\m_spac_blank_asked\empty\else
-% \clf_vspacing{\m_spac_blank_asked}
-% \fi}
-
-\installcorenamespace{vspacing}
-
-\unexpanded\def\directvspacing#1%
- {\par
- \ifcsname\??vspacing#1\endcsname
- \lastnamedcs
- \else
- \spac_vspacing_yes_preset{#1}%
- \fi}
-
-\def\spac_vspacing_yes_preset#1%
- {\setxvalue{\??vspacing#1}{\clf_vspacing{#1}}%
- %\writestatus{}{}%
- %\writestatus{#1}{\expandafter\meaning\csname\??vspacing#1\endcsname}%
- %\writestatus{}{}%
- \csname\??vspacing#1\endcsname}
-
-\def\spac_vspacing_yes_indeed[#1]%
- {\ifmmode\else
- \directvspacing{#1}%
- \fi}
-
-\def\spac_vspacing_nop_indeed
- {\ifmmode\else
- \directvspacing\currentvspacing
- \fi}
-
-\def\directdefaultvspacing
- {\ifinpagebody % somewhat weird
- \directvspacing\currentvspacing
- \else\ifconditional\c_spac_packed_blank
- \directvspacing\currentvspacing
- \fi\fi}
+\def\directvspacing#1%
+ {\par\clf_vspacing{#1}}
\def\directcheckedvspacing
{\ifinpagebody % somewhat weird
@@ -2191,10 +2101,17 @@
\doubleexpandafter\gobbleoneargument
\fi\fi}
+\def\directdefaultvspacing
+ {\ifinpagebody % somewhat weird
+ \clf_vspacing{\currentvspacing}%
+ \else\ifconditional\c_spac_packed_blank
+ \clf_vspacing{\currentvspacing}%
+ \fi\fi}
+
\unexpanded\def\useblankparameter#1% faster local variant
{\edef\m_spac_blank_asked{#1\c!blank}%
\ifx\m_spac_blank_asked\empty\else
- \directvspacing\m_spac_blank_asked
+ \clf_vspacing{\m_spac_blank_asked}
\fi}
% handy (and faster):
@@ -2501,14 +2418,13 @@
\scratchwidth\dimexpr\wd\nextbox+\scratchdistance\relax
\ifx\m_spac_hanging_location\v!right
\hangindent\ifconditional\displaylefttoright-\fi\scratchwidth
- \rlap{\hskip\dimexpr\hsize-\leftskip-\wd\nextbox\relax\box\nextbox}% \leftskip is new
+ \rlap{\hskip\dimexpr\hsize-\wd\nextbox\relax\box\nextbox}%
\else
\hangindent\ifconditional\displaylefttoright\else-\fi\scratchwidth
\llap{\box\nextbox\hskip\scratchdistance}%
\fi
\ignorespaces}
-
%D \macros
%D {startfixed}
%D
diff --git a/Master/texmf-dist/tex/context/base/mkiv/status-files.pdf b/Master/texmf-dist/tex/context/base/mkiv/status-files.pdf
index 49b023fb8ce..74e8e3e8ad5 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/status-files.pdf
+++ b/Master/texmf-dist/tex/context/base/mkiv/status-files.pdf
Binary files differ
diff --git a/Master/texmf-dist/tex/context/base/mkiv/status-lua.pdf b/Master/texmf-dist/tex/context/base/mkiv/status-lua.pdf
index 8cbd7014cae..a2f2ee28b07 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/status-lua.pdf
+++ b/Master/texmf-dist/tex/context/base/mkiv/status-lua.pdf
Binary files differ
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-blk.lua b/Master/texmf-dist/tex/context/base/mkiv/strc-blk.lua
index 89df440c966..703d36379cb 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-blk.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-blk.lua
@@ -9,7 +9,7 @@ if not modules then modules = { } end modules ['strc-blk'] = {
-- this one runs on top of buffers and structure
local type, next = type, next
-local find, formatters, validstring = string.find, string.formatters, string.valid
+local find, format, validstring = string.find, string.format, string.valid
local settings_to_set, settings_to_array = utilities.parsers.settings_to_set, utilities.parsers.settings_to_array
local allocate = utilities.storage.allocate
@@ -25,7 +25,6 @@ structures.blocks = structures.blocks or { }
local blocks = structures.blocks
local sections = structures.sections
local lists = structures.lists
-local helpers = structures.helpers
local collected = allocate()
local tobesaved = allocate()
@@ -43,28 +42,14 @@ end
job.register('structures.blocks.collected', tobesaved, initializer)
local listitem = utilities.parsers.listitem
-local f_block = formatters["block.%s"]
-
-function blocks.uservariable(index,key,default)
- local c = collected[index]
- if c then
- local u = c.userdata
- if u then
- local v = u[key] or default
- if v then
- context(v)
- end
- end
- end
-end
-local function printblock(index,name,data,hide)
+function blocks.print(name,data,hide)
if hide then
- context.dostarthiddenblock(index,name)
+ context.dostarthiddenblock(name)
else
- context.dostartnormalblock(index,name)
+ context.dostartnormalblock(name)
end
- context.viafile(data,f_block(validstring(name,"noname")))
+ context.viafile(data,format("block.%s",validstring(name,"noname")))
if hide then
context.dostophiddenblock()
else
@@ -72,14 +57,12 @@ local function printblock(index,name,data,hide)
end
end
-blocks.print = printblock
-
function blocks.define(name)
states[name] = { all = "hide" }
end
function blocks.setstate(state,name,tag)
- local all = tag == ""
+ local all = tag == ""
local tags = not all and settings_to_array(tag)
for n in listitem(name) do
local sn = states[n]
@@ -115,12 +98,12 @@ function blocks.select(state,name,tag,criterium)
local metadata = ri.metadata
if names[metadata.name] then
if all then
- printblock(ri.index,name,ri.data,hide)
+ blocks.print(name,ri.data,hide)
else
local mtags = metadata.tags
for tag, sta in next, tags do
if mtags[tag] then
- printblock(ri.index,name,ri.data,hide)
+ blocks.print(name,ri.data,hide)
break
end
end
@@ -129,51 +112,41 @@ function blocks.select(state,name,tag,criterium)
end
end
-function blocks.save(name,tag,userdata,buffer) -- wrong, not yet adapted
- local data = buffers.getcontent(buffer)
- local tags = settings_to_set(tag)
- local plus = false
- local minus = false
- local last = #tobesaved + 1
- local all = states[name].all
- if tags['+'] then
- plus = true
- tags['+'] = nil
- end
- if tags['-'] then
- minus = true
- tags['-'] = nil
- end
- tobesaved[last] = helpers.simplify {
- metadata = {
- name = name,
- tags = tags,
- plus = plus,
+function blocks.save(name,tag,buffer) -- wrong, not yet adapted
+ local data = buffers.getcontent(buffer)
+ local tags = settings_to_set(tag)
+ local plus, minus = false, false
+ if tags['+'] then plus = true tags['+'] = nil end
+ if tags['-'] then minus = true tags['-'] = nil end
+ tobesaved[#tobesaved+1] = {
+ metadata = {
+ name = name,
+ tags = tags,
+ plus = plus,
minus = minus,
},
- index = last,
- data = data or "error",
- userdata = userdata and type(userdata) == "string" and helpers.touserdata(userdata),
references = {
- section = sections.currentid(),
+ section = sections.currentid(),
},
+ data = data or "error",
}
+ local allstate = states[name].all
if not next(tags) then
- if all ~= "hide" then
- printblock(last,name,data)
+ if allstate ~= "hide" then
+ blocks.print(name,data)
elseif plus then
- printblock(last,name,data,true)
+ blocks.print(name,data,true)
end
else
local sn = states[name]
for tag, _ in next, tags do
if sn[tag] == nil then
- if all ~= "hide" then
- printblock(last,name,data)
+ if allstate ~= "hide" then
+ blocks.print(name,data)
break
end
elseif sn[tag] ~= "hide" then
- printblock(last,name,data)
+ blocks.print(name,data)
break
end
end
@@ -183,8 +156,7 @@ end
-- interface
-implement { name = "definestructureblock", actions = blocks.define, arguments = "string" }
-implement { name = "savestructureblock", actions = blocks.save, arguments = "4 strings" }
-implement { name = "selectstructureblock", actions = blocks.select, arguments = "4 strings" }
-implement { name = "setstructureblockstate", actions = blocks.setstate, arguments = "3 strings" }
-implement { name = "structureblockuservariable", actions = blocks.uservariable, arguments = { "integer", "string" } }
+implement { name = "definestructureblock", actions = blocks.define, arguments = "string" }
+implement { name = "savestructureblock", actions = blocks.save, arguments = "3 strings" }
+implement { name = "selectstructureblock", actions = blocks.select, arguments = "4 strings" }
+implement { name = "setstructureblockstate", actions = blocks.setstate, arguments = "3 strings" }
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-blk.mkiv b/Master/texmf-dist/tex/context/base/mkiv/strc-blk.mkiv
index e521987212d..c42bb25ec5d 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-blk.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-blk.mkiv
@@ -34,125 +34,48 @@
\appendtoks
\clf_definestructureblock{\currentblock}%
- \setuevalue{\e!begin\currentblock}{\strc_blocks_begin{\currentblock}}%
- \letvalue {\e!end \currentblock}\donothing
+ \setuevalue{\e!begin\currentblock}{\dodoubleempty\strc_blocks_begin[\currentblock]}%
+ \setuevalue{\e!end \currentblock}{}%
\to \everydefineblock
-% The naive way:
-%
-% \unexpanded\def\strc_blocks_begin#1%
-% {\dotripleempty\strc_blocks_begin_indeed[#1]}
-%
-% \unexpanded\def\strc_blocks_begin_indeed[#1][#2][#3]%
-% {\normalexpanded{\buff_pickup{\??block}{\e!begin#1}{\e!end#1}}
-% {}%
-% {\clf_savestructureblock{#1}{#2}{#3}{\??block}}%
-% \plusone}%
-%
-% We need to prevent too much lookahead which will gobble newlines
-% that are needed for buffers. See blocks-002.tex as example.
-
-% maybe: systemmode "block:<name>"
-
-\let\m_block \empty
-\let\m_subblock\empty
-
-\unexpanded\def\strc_blocks_begin#1%
- {\edef\m_block {#1}%
- \let \m_subblock\empty
- \doifelsenextoptionalcs\strc_blocks_begin_yes\strc_blocks_begin_nop}
-
-\unexpanded\def\strc_blocks_begin_yes[#1]%
- {\doifelseassignmentcs{#1}%
- \strc_blocks_begin_indeed
- \strc_blocks_begin_tagged
- {#1}}
-
-\unexpanded\def\strc_blocks_begin_tagged#1%
- {\edef\m_subblock{#1}%
- \doifelsenextoptionalcs\strc_blocks_begin_yes_yes\strc_blocks_begin_nop}
-
-\unexpanded\def\strc_blocks_begin_yes_yes[#1]%
- {\strc_blocks_begin_indeed{#1}}
-
-\unexpanded\def\strc_blocks_begin_nop
- {\strc_blocks_begin_indeed{}}
-
-\unexpanded\def\strc_blocks_begin_indeed#1%
- {\normalexpanded{\buff_pickup{\??block}{\e!begin\m_block}{\e!end\m_block}}%
- {}%
- {\clf_savestructureblock{\m_block}{\m_subblock}{#1}{\??block}}%
- \plusone}
+\unexpanded\def\strc_blocks_begin[#1][#2]%
+ {\normalexpanded{\buff_pickup{@block@}{\e!begin#1}{\e!end#1}}
+ {}% before
+ {\clf_savestructureblock{#1}{#2}{@block@}}%
+ \plusone}% after
\let\strc_blocks_setup\relax
-\newconstant \c_strc_blocks_index
-\newconditional\c_strc_blocks_display
-
\unexpanded\def\dostarthiddenblock % called at lua end
- {\begingroup
- \visiblefalse % blocks float
- \startnointerference
- \strc_start_block}
+ {\startnointerference
+ \dostartnormalblock}
\unexpanded\def\dostophiddenblock % called at lua end
- {\strc_stop_block
- \stopnointerference
- \endgroup}
-
-\unexpanded\def\dostartnormalblock % called at lua end
- {\begingroup
- \visibletrue
- \strc_start_block}
+ {\dostopnormalblock
+ \stopnointerference}
-\unexpanded\def\dostopnormalblock % called at lua end
- {\strc_stop_block
- \endgroup}
-
-\def\strc_start_block#1#2%
- {\edef\currentblock{#2}%
- \c_strc_blocks_index#1\relax
+\unexpanded\def\dostartnormalblock#1% called at lua end
+ {\bgroup
+ \visibletrue % will change
+ \edef\currentblock{#1}%
\strc_blocks_setup
\let\strc_blocks_setup\relax
- \edef\p_alternative{\blockparameter\c!alternative}%
- \ifx\p_alternative\v!text
- \setfalse\c_strc_blocks_display
- \else
- \settrue\c_strc_blocks_display
- \fi
- \ifconditional\c_strc_blocks_display
- \blockparameter\c!before
- \fi
- \begingroup
- \usesetupsparameter\blockparameter\relax
- \dostarttagged\t!block\currentblock
- \useblockstyleandcolor\c!style\c!color
- \blockparameter\c!inner % old
- \ifconditional\c_strc_blocks_display
- \usealignparameter\blockparameter
- \else
- \blockparameter\c!left
- \fi
+ \blockparameter\c!before
+ \useblockstyleandcolor\c!style\c!color % maybe moev one line up (font spacing)
+ \blockparameter\c!inner % better \c!setups
\ignorespaces}
-\def\strc_stop_block
+\unexpanded\def\dostopnormalblock % called at lua end
{\removeunwantedspaces
- \ifconditional\c_strc_blocks_display
- \par
- \else
- \blockparameter\c!right
- \fi
- \dostoptagged
- \endgroup
- \ifconditional\c_strc_blocks_display
- \blockparameter\c!after
- \fi}
+ \blockparameter\c!after
+ \par % todo: alternative = text, paragraph
+ \egroup}
\def\strc_blocks_set_state[#1][#2][#3]% state name tag
{\clf_setstructureblockstate{#1}{#2}{#3}}
\def\strc_blocks_select[#1][#2][#3][#4]% state name tag setups
- {\begingroup
+ {\bgroup
\doifelseassignment{#3}
{\getparameters[\??blocktemp][\c!criterium=\v!text,#3]%
\def\strc_blocks_setup{\setupcurrentblock[#3]}%
@@ -160,10 +83,7 @@
{\getparameters[\??blocktemp][\c!criterium=\v!text,#4]%
\def\strc_blocks_setup{\setupcurrentblock[#4]}%
\clf_selectstructureblock{#1}{#2}{#3}{\csname\??blocktemp\c!criterium\endcsname}}%
- \endgroup}
-
-\def\blockuservariable#1%
- {\clf_structureblockuservariable\c_strc_blocks_index{#1}}
+ \egroup}
% hide : save, if [+] also hidden execute
% keep : save and normal execute
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-con.mkvi b/Master/texmf-dist/tex/context/base/mkiv/strc-con.mkvi
index d67307ba73b..57b69cc7f55 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-con.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-con.mkvi
@@ -980,11 +980,11 @@
\xdef\currentconstructionincrementnumber{\constructionparameter\c!incrementnumber}%
%
\ifx\currentconstructionexpansion\empty
- \glet\currentconstructionexpansion\v!no
+ \global\let\currentconstructionexpansion\v!no
\fi
%
\ifx\currentconstructionreferenceprefix\empty
- \glet\currentconstructionreferenceprefix\referenceprefix
+ \global\let\currentconstructionreferenceprefix\referenceprefix
\fi
\ifx\currentconstructionexpansion\s!xml
\xmlstartraw
@@ -994,9 +994,9 @@
\xdef\currentconstructionlist {\constructionparameter\c!list}%
\xmlstopraw
\ifx\currentconstructionlist\empty
- \glet\currentconstructionlist\currentconstructiontitle
+ \global\let\currentconstructionlist\currentconstructiontitle
\fi
- \glet\currentconstructioncoding\s!xml
+ \global\let\currentconstructioncoding\s!xml
\else
\ifx\currentconstructionexpansion\v!yes
\xdef\currentconstructiontitle {\constructionparameter\c!title}%
@@ -1016,9 +1016,9 @@
\fi \fi
\fi
\ifx\currentconstructionlist\empty
- \glet\currentconstructionlist\currentconstructiontitle
+ \globallet\currentconstructionlist\currentconstructiontitle
\fi
- \glet\currentconstructioncoding\s!tex
+ \globallet\currentconstructioncoding\s!tex
\fi
%
\ifx\currentconstructiontitle\v!none % will become obsolete
@@ -1093,7 +1093,7 @@
\endgroup
\edef\noexpand\currentconstructionlistentry {\the\scratchcounter}%
\edef\noexpand\currentconstructionattribute {\the\lastdestinationattribute}%
- \edef\noexpand\currentconstructionsynchronize{\clf_deferredenhancelist\the\scratchcounter}%
+ \edef\noexpand\currentconstructionsynchronize{\ctxlatecommand{enhancelist(\the\scratchcounter)}}%
}%
\fi}
@@ -1103,11 +1103,11 @@
\def\reinstateconstructionnumberentry#1% was xdef
{\edef\currentconstructionattribute {\clf_getinternallistreference#1}%
- \edef\currentconstructionsynchronize{\clf_deferredenhancelist\number#1}}
+ \edef\currentconstructionsynchronize{\ctxlatecommand{enhancelist(#1)}}}
\def\reinstatecachedconstructionnumberentry#1% was xdef | #1 = cached index can be different from real
{\edef\currentconstructionattribute {\clf_getinternalcachedlistreference#1}% destination
- \edef\currentconstructionsynchronize{\clf_deferredenhancelist\number#1}}
+ \edef\currentconstructionsynchronize{\ctxlatecommand{enhancelist(#1)}}}
\installstructurelistprocessor{construction}{\usestructurelistprocessor{number+title}}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-def.mkiv b/Master/texmf-dist/tex/context/base/mkiv/strc-def.mkiv
index 941f561c8ef..8d1fa371f71 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-def.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-def.mkiv
@@ -65,17 +65,6 @@
\setsectionblock [\v!bodypart] % default
-% \setuphead[sectionsegments=\currentheadlevel]
-% \setuphead[sectionsegments=current]
-%
-% \startchapter[title=One,ownnumber={A}]
-% \startsection[title=OneOne,ownnumber={A.B}]
-% \startsubsection[title=OneOneOne,ownnumber={A.B.C}]
-% test
-% \stopsubsection
-% \stopsection
-% \stopchapter
-
% \appendtoks
% \setsectionblock[\v!bodypart]% default
% \to \everyjob
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-doc.lua b/Master/texmf-dist/tex/context/base/mkiv/strc-doc.lua
index 4b2ac04b7f3..2de26ac64d1 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-doc.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-doc.lua
@@ -18,7 +18,6 @@ if not modules then modules = { } end modules ['strc-doc'] = {
local next, type, tonumber, select = next, type, tonumber, select
local find, match = string.find, string.match
local concat, fastcopy, insert, remove = table.concat, table.fastcopy, table.insert, table.remove
-local sortedhash, sortedkeys = table.sortedhash, table.sortedkeys
local max, min = math.max, math.min
local allocate, mark, accesstable = utilities.storage.allocate, utilities.storage.mark, utilities.tables.accesstable
local setmetatableindex = table.setmetatableindex
@@ -38,13 +37,11 @@ local v_auto = variables.auto
local v_strict = variables.strict
local v_all = variables.all
local v_positive = variables.positive
-local v_current = variables.current
local trace_sectioning = false trackers.register("structures.sectioning", function(v) trace_sectioning = v end)
local trace_detail = false trackers.register("structures.detail", function(v) trace_detail = v end)
local report_structure = logs.reporter("structure","sectioning")
-local report_used = logs.reporter("structure")
local context = context
local commands = commands
@@ -125,16 +122,12 @@ local tobesaved = allocate()
sections.collected = collected
sections.tobesaved = tobesaved
--- We have to save this mostly redundant list because we can have (rare)
--- cases with own numbers that don't end up in the list so we get out of
--- sync when we use (*).
-
-local function initializer()
- collected = sections.collected
- tobesaved = sections.tobesaved
-end
-
-job.register('structures.sections.collected', tobesaved, initializer)
+-- local function initializer()
+-- collected = sections.collected
+-- tobesaved = sections.tobesaved
+-- end
+--
+-- job.register('structures.sections.collected', tobesaved, initializer)
local registered = sections.registered or allocate()
sections.registered = registered
@@ -165,7 +158,7 @@ end
local lastsaved = 0
function sections.save(sectiondata)
-local sectiondata = helpers.simplify(sectiondata) -- maybe done earlier
+-- local sectionnumber = helpers.simplify(section.sectiondata) -- maybe done earlier
local numberdata = sectiondata.numberdata
local ntobesaved = #tobesaved
if not numberdata or sectiondata.metadata.nolist then
@@ -185,28 +178,28 @@ function sections.currentsectionindex()
return lastsaved -- only for special controlled situations
end
--- See comment above (*). We cannot use the following space optimization:
---
--- function sections.load()
--- setmetatableindex(collected,nil)
--- local lists = lists.collected
--- for i=1,#lists do
--- local list = lists[i]
--- local metadata = list.metadata
--- if metadata and metadata.kind == "section" and not metadata.nolist then
--- local numberdata = list.numberdata
--- if numberdata then
--- collected[#collected+1] = numberdata
--- end
--- end
--- end
--- sections.load = functions.dummy
--- end
+function sections.load()
+ setmetatableindex(collected,nil)
+ local lists = lists.collected
+ for i=1,#lists do
+ local list = lists[i]
+ local metadata = list.metadata
+ if metadata and metadata.kind == "section" and not metadata.nolist then
+ local numberdata = list.numberdata
+ if numberdata then
+ collected[#collected+1] = numberdata
+ end
+ end
+ end
+ sections.load = functions.dummy
+end
+
+table.setmetatableindex(collected, function(t,i)
+ sections.load()
+ return collected[i] or { }
+end)
+
--
--- table.setmetatableindex(collected, function(t,i)
--- sections.load()
--- return collected[i] or { }
--- end)
sections.verbose = true
@@ -389,9 +382,8 @@ function sections.setentry(given)
-- new number
olddepth = newdepth
if metadata.increment then
- local oldn = numbers[newdepth] or 0
- local newn = 0
- local fd = forced[newdepth]
+ local oldn, newn = numbers[newdepth] or 0, 0
+ local fd = forced[newdepth]
if fd then
if fd[1] == "add" then
newn = oldn + fd[2] + 1
@@ -446,10 +438,7 @@ end
function sections.reportstructure()
if sections.verbose then
- local numbers = data.numbers
- local ownnumbers = data.ownnumbers
- local status = data.status
- local depth = data.depth
+ local numbers, ownnumbers, status, depth = data.numbers, data.ownnumbers, data.status, data.depth
local d = status[depth]
local o = concat(ownnumbers,".",1,depth)
local n = (numbers and concat(numbers,".",1,min(depth,#numbers))) or 0
@@ -722,12 +711,8 @@ function sections.typesetnumber(entry,kind,...) -- kind='section','number','pref
criterium = 0
end
--
- local firstprefix = 0
- local lastprefix = 16 -- too much, could max found level
- if segments == v_current then
- firstprefix = data.depth
- lastprefix = firstprefix
- elseif segments then
+ local firstprefix, lastprefix = 0, 16 -- too much, could max found level
+ if segments then
local f, l = match(tostring(segments),"^(.-):(.+)$")
if l == "*" or l == v_all then
l = 100 -- new
@@ -746,11 +731,9 @@ function sections.typesetnumber(entry,kind,...) -- kind='section','number','pref
end
end
--
- local numbers = entry.numbers
- local ownnumbers = entry.ownnumbers
+ local numbers, ownnumbers = entry.numbers, entry.ownnumbers
if numbers then
- local done = false
- local preceding = false
+ local done, preceding = false, false
--
local result = kind == "direct" and { }
if result then
@@ -768,14 +751,11 @@ function sections.typesetnumber(entry,kind,...) -- kind='section','number','pref
if prefixlist and (kind == "section" or kind == "prefix" or kind == "direct") then
-- find valid set (problem: for sectionnumber we should pass the level)
-- no holes
- local b = 1
- local e = #prefixlist
- local bb = 0
- local ee = 0
+ local b, e, bb, ee = 1, #prefixlist, 0, 0
-- find last valid number
for k=e,b,-1 do
local prefix = prefixlist[k]
- local index = sections.getlevel(prefix) or k
+ local index = sections.getlevel(prefix) or k
if index >= firstprefix and index <= lastprefix then
local number = numbers and numbers[index]
if number then
@@ -791,7 +771,7 @@ function sections.typesetnumber(entry,kind,...) -- kind='section','number','pref
-- find valid range
for k=b,e do
local prefix = prefixlist[k]
- local index = sections.getlevel(prefix) or k
+ local index = sections.getlevel(prefix) or k
if index >= firstprefix and index <= lastprefix then
local number = numbers and numbers[index]
if number then
@@ -992,47 +972,6 @@ function sections.getnumber(depth,what) -- redefined here
context(askednumber)
end
--- maybe handy
-
-function sections.showstructure()
-
- local tobesaved = structures.lists.tobesaved
-
- if not tobesaved then
- return
- end
-
- local levels = setmetatableindex("table")
- local names = setmetatableindex("table")
-
- report_used()
- report_used("sections")
- for i=1,#tobesaved do
- local si = tobesaved[i]
- local md = si.metadata
- if md and md.kind == "section" then
- local level = md.level
- local name = md.name
- local numbers = si.numberdata.numbers
- local title = si.titledata.title
- report_used(" %i : %-10s %-20s %s",level,concat(numbers,"."),name,title)
- levels[level][name] = true
- names[name][level] = true
- end
- end
- report_used()
- report_used("levels")
- for level, list in sortedhash(levels) do
- report_used(" %s : % t",level,sortedkeys(list))
- end
- report_used()
- report_used("names")
- for name, list in sortedhash(names) do
- report_used(" %-10s : % t",name,sortedkeys(list))
- end
- report_used()
-end
-
-- experimental
local levels = { }
@@ -1103,7 +1042,6 @@ implement { name = "getsomefullstructurenumber", actions = sections.fullnumber,
implement { name = "getspecificstructuretitle", actions = sections.structuredata, arguments = { "string", "'titledata.title'",false,"string" } }
implement { name = "reportstructure", actions = sections.reportstructure }
-implement { name = "showstructure", actions = sections.showstructure }
implement {
name = "registersection",
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-doc.mkiv b/Master/texmf-dist/tex/context/base/mkiv/strc-doc.mkiv
index 516d87efeb7..805525487af 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-doc.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-doc.mkiv
@@ -19,16 +19,6 @@
%D This will move:
-% \unexpanded\def\setstructuresynchronization#1% todo: use ctxcontext
-% {\clf_setinternalreference
-% prefix {\currentstructurereferenceprefix}%
-% reference {\currentstructurereference}
-% internal \locationcount
-% view {\interactionparameter\c!focus}%
-% \relax
-% \xdef\currentstructureattribute {\the\lastdestinationattribute}%
-% \xdef\currentstructuresynchronize{\strc_lists_inject_enhance{#1}}}
-
\unexpanded\def\setstructuresynchronization#1% todo: use ctxcontext
{\clf_setinternalreference
prefix {\currentstructurereferenceprefix}%
@@ -36,20 +26,7 @@
internal \locationcount
view {\interactionparameter\c!focus}%
\relax
- \xdef\currentstructureattribute
- {\the\lastdestinationattribute}%
- \xdef\currentstructuresynchronize
- {\currentstructuresynchronize
- \strc_lists_inject_enhance{#1}}}
-
-\unexpanded\def\setstructurecomponentsynchronization#1% todo: use ctxcontext
- {\clf_setinternalreference
- prefix {\currentstructurecomponentreferenceprefix}%
- reference {\currentstructurecomponentreference}
- internal \locationcount
- view {\interactionparameter\c!focus}%
- \relax
- \xdef\currentstructurecomponentattribute {\the\lastdestinationattribute}%
- \xdef\currentstructurecomponentsynchronize{\strc_lists_inject_enhance{#1}}}
+ \xdef\currentstructureattribute {\the\lastdestinationattribute}%
+ \xdef\currentstructuresynchronize{\strc_lists_inject_enhance{#1}{\the\locationcount}}}
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-flt.lua b/Master/texmf-dist/tex/context/base/mkiv/strc-flt.lua
index e3a0ea30edb..466fd515e04 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-flt.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-flt.lua
@@ -7,37 +7,3 @@ if not modules then modules = { } end modules ['strc-flt'] = {
}
-- nothing
-
-local sequencers = utilities.sequencers
-local appendaction = sequencers.appendaction
-local enableaction = sequencers.enableaction
-local disableaction = sequencers.disableaction
-
-local texgetdimen = tex.getdimen
-
-local trace = trackers.register("structure.sidefloats.pageflush")
-local report = logs.reporter("structure","floats")
-
-local forcepageflush = builders.vspacing.forcepageflush
-
-function builders.checksidefloat(mode,indented)
- local s = texgetdimen("d_page_sides_vsize")
- if s > 0 then
- if trace then
- report("force flushing page state, height %p",s)
- end
- forcepageflush()
- end
- return indented
-end
-
-appendaction ("newgraf","system","builders.checksidefloat")
-disableaction("newgraf","builders.checksidefloat")
-
-interfaces.implement {
- name = "enablesidefloatchecker",
- onlyonce = true,
- actions = function()
- enableaction("newgraf","builders.checksidefloat")
- end,
-}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-flt.mkvi b/Master/texmf-dist/tex/context/base/mkiv/strc-flt.mkvi
index 02f6fd75343..632c6768694 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-flt.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-flt.mkvi
@@ -61,11 +61,9 @@
\installcorenamespace{float}
\installcorenamespace{floatbuilder}
\installcorenamespace{floatcaption}
-\installcorenamespace{floatframed}
\installframedcommandhandler \??float {float} \??float
\installframedcommandhandler \??floatcaption {floatcaption} \??floatcaption
-\installframedcommandhandler \??floatframed {floatframed} \??floatframed
\let\setupfloats \setupfloat
\let\setupcaption \setupfloatcaption
@@ -99,8 +97,6 @@
\c!textcolor=,
\c!align=,
\c!number=\v!yes,
- \c!offset=\v!overlay,
- \c!frame=\v!off,
% \c!expansion=,
% \c!prefix=,
% \c!prefixconnector=,
@@ -114,7 +110,7 @@
% \c!stopper=,
\c!suffixseparator=, % currently rather hard coded
\c!suffix=\floatcaptionsuffix,
- \c!distance=\emwidth, % plus .5\emwidth minus .25\emwidth
+ \c!distance=\emwidth,
\c!conversion=\v!numbers,
\c!maxwidth=\hsize,
\c!command=]
@@ -175,11 +171,6 @@
\c!sidethreshold=.5\strutdp, % set to "old" to check with old method
\c!numbering=\v!yes]
-\setupfloatframed
- [\c!frame=\v!off,
- \c!offset=\v!overlay,
- \c!strut=\v!no]
-
%D Individial settings:
\installcounterassociation{floatcaption}
@@ -216,7 +207,6 @@
\def\strc_floats_define_a[#1][#2][#3]% name names parent
{\definefloatcaption[#1][#3]%
- \definefloatframed[#1][#3]%
\definecounter[#1][#3]%
\definelist[#1][#3]%
\copylabeltext[#1=#3]%
@@ -225,7 +215,6 @@
\def\strc_floats_define_b[#1][#2][#3]% name parent settings
{\definefloatcaption[#1][#2]%
- \definefloatframed[#1][#2]%
\definecounter[#1][#2]%
\definelist[#1][#2]%
\copylabeltext[#1=#2]%
@@ -235,7 +224,6 @@
\def\strc_floats_define_c[#1][#2]% name names
{\registerfloatcaptioncounter{#1}%
\definefloatcaption[#1]%
- \definefloatframed[#1]%
\definecounter[#1]%
\definelist[#1]%
\presetlabeltext[#1=\Word{#1}~]%
@@ -344,7 +332,6 @@
\def\strc_floats_make_complete_caption
{\doifsomething{\floatcaptionparameter\c!spacebefore}{\blank[\floatcaptionparameter\c!spacebefore]}%
- \strc_floats_make_complete_caption_before
\synchronizedisplaydirection % temp hack, till we have a proper model
\noindent
\gdef\lastcaptiontag{\strut\thecurrentfloatnumber}% was xdef ... needs checking
@@ -374,26 +361,8 @@
\thecurrentfloatcaption\endgraf
\fi
\endgroup
- \strc_floats_make_complete_caption_after
\doifsomething{\floatcaptionparameter\c!spaceafter}{\blank[\floatcaptionparameter\c!spaceafter]}}
-%let\strc_floats_make_complete_caption_before\relax
-\let\strc_floats_make_complete_caption_after \relax
-
-\def\strc_floats_make_complete_caption_before
- {\doifelseframed\floatcaptionparameter\strc_floats_make_complete_caption_before_indeed\relax}
-
-\def\strc_floats_make_complete_caption_before_indeed
- {\edef\m_strc_align{\floatcaptionparameter\c!align}%
- \edef\m_strc_strut{\floatcaptionparameter\c!strut}%
- \letfloatcaptionparameter\c!align\v!normal
- \letfloatcaptionparameter\c!strut\v!no
- \inheritedfloatcaptionframed
- \bgroup
- \letfloatcaptionparameter\c!align\m_strc_align
- \letfloatcaptionparameter\c!strut\m_strc_strut
- \let\strc_floats_make_complete_caption_after\egroup}
-
% \definefloat [figure-1] [figure]
% \definefloat [figure-2] [figure]
% \setupfloat [figure-1] [location=left,leftmargin=10mm]
@@ -456,7 +425,7 @@
%D {\global\advance\c_strc_floats_n\plusone
%D \xdef\strc_float_realpage{\datasetvariable\s!float{\number\c_strc_floats_n}\s!page}%
%D \ifx\strc_float_realpage\empty
-%D \glet\strc_float_realpage\realpageno % \realfolio
+%D \globallet\strc_float_realpage\realpageno % \realfolio
%D \fi}
%D \stoptyping
%D
@@ -475,7 +444,7 @@
{\global\advance\c_strc_floats_n\plusone
\xdef\strc_float_realpage{\pagestaterealpage\s!float{\number\c_strc_floats_n}}%
\ifx\strc_float_realpage\empty
- \glet\strc_float_realpage\realpageno % \realfolio
+ \globallet\strc_float_realpage\realpageno % \realfolio
\fi}
%D test case:
@@ -513,7 +482,7 @@
\donothing
{\writestatus\m!floatblocks{unknown float type '\currentfloat'}%
\let\currentfloat\v!figure}% also a hack
- \glet\lastplacedfloat\currentfloat
+ \global\let\lastplacedfloat\currentfloat
\let\m_strc_floats_saved_userdata\empty
\let\currentfloatcaption\currentfloat}
@@ -524,8 +493,8 @@
{\global\emptyfloatcaptionfalse
\global\nofloatcaptionfalse
\global\nofloatnumberfalse
- \glet\askedfloatmethod \empty
- \glet\askedfloatoptions\empty}
+ \global\let\askedfloatmethod \empty
+ \global\let\askedfloatoptions\empty}
% place
@@ -536,13 +505,10 @@
\let\floatlocationmethod\empty
\def\strc_floats_analyze_location
- {% more will be moved here
+ {% moved here, will do more
\let\floatlabel \empty
\let\floatcolumn\empty
\let\floatrow \empty
- %
- \edef\floatcaptionlocation{\floatcaptionparameter\c!location}%
- %
\setfloatmethodvariables\floatlocation}
\unexpanded\def\strc_floats_place#tag%
@@ -605,49 +571,25 @@
\strc_floats_set_current_tag{#tag}%
\dodoubleempty\strc_floats_start_place_indeed}
-%D We abuse the settings to pick up some float parameters too which makes it
-%D messy.
-
\def\strc_floats_start_place_indeed[#settings][#userdata]%
{\strc_floats_reset_variables
- % save
- \edef\m_location {\floatcaptionparameter\c!location}%
- \edef\m_topoffset {\floatcaptionparameter\c!topoffset}%
- \edef\m_bottomoffset{\floatcaptionparameter\c!bottomoffset}%
- \edef\m_freeregion {\floatcaptionparameter\c!freeregion}%
- % preset
- \letfloatcaptionparameter \c!location \empty
+ \edef\savedfloatlocation{\floatcaptionparameter\c!location}%
\setexpandedfloatcaptionparameter\c!topoffset {\floatparameter\c!topoffset}%
\setexpandedfloatcaptionparameter\c!bottomoffset{\floatparameter\c!bottomoffset}%
\setexpandedfloatcaptionparameter\c!freeregion {\floatparameter\c!freeregion}%
- \letfloatcaptionparameter \c!reference \empty
- \letfloatcaptionparameter \c!title \empty
- \letfloatcaptionparameter \c!marking \empty
- \letfloatcaptionparameter \c!list \empty
- \letfloatcaptionparameter \c!bookmark \empty
- % pickup
- \setupcurrentfloatcaption[#settings]%
- \ifsecondargument
- \setupcurrentfloatuserdata[#userdata]%
- \def\m_strc_floats_saved_userdata{#userdata}%
- \else
- \let\m_strc_floats_saved_userdata\empty
- \fi
- % check
+ \setupcurrentfloatcaption[\c!location=,\c!reference=,\c!title=,\c!marking=,\c!list=,\c!bookmark=,#settings]%
+ \setexpandedfloatparameter\c!topoffset {\floatcaptionparameter\c!topoffset}%
+ \setexpandedfloatparameter\c!bottomoffset{\floatcaptionparameter\c!bottomoffset}%
+ \setexpandedfloatparameter\c!freeregion {\floatcaptionparameter\c!freeregion}%
+ \def\m_strc_floats_saved_userdata{#2}%
\edef\floatlocation{\floatcaptionparameter\c!location}%
+ \setfloatcaptionparameter\c!location{\savedfloatlocation}% not expanded
\ifx\floatlocation\empty
\edef\floatlocation{\floatparameter\c!default}%
\fi
- % inherit
- \setexpandedfloatparameter\c!topoffset {\floatcaptionparameter\c!topoffset}%
- \setexpandedfloatparameter\c!bottomoffset{\floatcaptionparameter\c!bottomoffset}%
- \setexpandedfloatparameter\c!freeregion {\floatcaptionparameter\c!freeregion}%
- % restore
- \letfloatcaptionparameter\c!location \m_location
- \letfloatcaptionparameter\c!topoffset \m_topoffset
- \letfloatcaptionparameter\c!bottomoffset\m_bottomoffset
- \letfloatcaptionparameter\c!freeregion \m_freeregion
- %
+ \ifsecondargument
+ \setupcurrentfloatuserdata[#userdata]%
+ \fi
\strc_floats_analyze_location
\doifelseinset\v!split\floatlocation\strc_floats_place_next_box_split\strc_floats_place_next_box_normal
\bgroup
@@ -986,9 +928,9 @@
\def\strc_floats_place_packaged_boxes_indeed#userdata%
{\bgroup
\ifconditional\usesamefloatnumber
- \glet\currentfloatnumber \previousfloatnumber
- \glet\currentfloatattribute \empty
- \glet\currentfloatsynchronize\relax
+ \globallet\currentfloatnumber \previousfloatnumber
+ \globallet\currentfloatattribute \empty
+ \globallet\currentfloatsynchronize\relax
\else
\edef\currentfloatcounter{\namedcounterparameter\currentfloat\s!name}%
\edef\currentfloatgroup {\floatcaptionparameter\c!group}%
@@ -1020,10 +962,10 @@
\s!hasnumber=\ifnofloatnumber \v!no\else\v!yes\fi,%
\s!hastitle=\ifemptyfloatcaption\v!no\else\v!yes\fi]%
[#userdata]%
- \glet\previousfloatnumber \m_strc_counters_last_registered_index
- \glet\currentfloatnumber \m_strc_counters_last_registered_index
- \glet\currentfloatattribute \m_strc_counters_last_registered_attribute
- \glet\currentfloatsynchronize\m_strc_counters_last_registered_synchronize
+ \globallet\previousfloatnumber \m_strc_counters_last_registered_index
+ \globallet\currentfloatnumber \m_strc_counters_last_registered_index
+ \globallet\currentfloatattribute \m_strc_counters_last_registered_attribute
+ \globallet\currentfloatsynchronize\m_strc_counters_last_registered_synchronize
\fi
%
\global\setfalse\usesamefloatnumber % one shot
@@ -1249,11 +1191,11 @@
{\global\setbox\floatbox\hpack to \scratchwidth
{\doifnotinset\v!right\floatlocation\hss
\box\floatbox
- \doifnotinset\v!left\floatlocation\hss}}
+ \doifnotinset\v!left \floatlocation\hss}}
-\def\strc_floats_realign_floatbox_horizontal_two % why is this
+\def\strc_floats_realign_floatbox_horizontal_two
{\global\setbox\floatbox\hpack to \scratchwidth
- {\doifnot{\floatparameter\c!location}\v!left\hss
+ {\doifnot{\floatparameter\c!location}\v!left \hss
\box\floatbox
\doifnot{\floatparameter\c!location}\v!right\hss}}
@@ -1394,7 +1336,7 @@
%
% \def\strc_floats_align_content_indeed
% {\alignstrutmode\zerocount
-% \doifnotcommon\floatcaptionlocation{\v!outermargin,\v!innermargin,\v!leftmargin,\v!rightmargin}
+% \doifnotcommon{\floatcaptionparameter\c!location}{\v!outermargin,\v!innermargin,\v!leftmargin,\v!rightmargin}
% {\shiftalignedline
% {\floatparameter\c!leftmargin }{\floatparameter\c!rightmargin}%
% {\floatparameter\c!innermargin}{\floatparameter\c!outermargin}}%
@@ -1429,7 +1371,7 @@
\def\strc_floats_align_content_indeed
{\alignstrutmode\zerocount
\ifx\forcedfloatmethod\v!local \else
- \doifnotcommon\floatcaptionlocation{\v!outermargin,\v!innermargin,\v!leftmargin,\v!rightmargin}
+ \doifnotcommon{\floatcaptionparameter\c!location}{\v!outermargin,\v!innermargin,\v!leftmargin,\v!rightmargin}
{\strc_floats_shift_indeed\floatparameter}%
\expandafter\strc_floats_align_indeed
\fi}
@@ -1520,21 +1462,23 @@
\fi\fi
\strc_floats_align_content{\copy\b_strc_floats_content}}}
-
\def\strc_floats_prepare_page_caption
- {\edef\p_strc_floats_caption_width {\floatcaptionparameter\c!width}%
+ {\edef\p_strc_floats_caption_location{\floatcaptionparameter\c!location}%
+ \edef\p_strc_floats_caption_width {\floatcaptionparameter\c!width}%
\edef\p_strc_floats_caption_minwidth{\floatcaptionparameter\c!minwidth}%
\edef\p_strc_floats_caption_align {\floatcaptionparameter\c!align}%
\dostarttagged\t!floatcaption\empty
- \doifcommonelse\floatcaptionlocation{\v!top,\v!bottom}
- {\strc_floats_prepare_page_caption_top_bottom}
- {\ifx\p_strc_floats_caption_width\v!fit
- \strc_floats_prepare_side_auto_caption
- \else\ifx\p_strc_floats_caption_width\v!max
- \strc_floats_prepare_side_auto_caption
- \else
- \strc_floats_prepare_side_width_caption
- \fi\fi}%
+ \ifx\p_strc_floats_caption_location\v!top
+ \strc_floats_prepare_page_caption_top_bottom
+ \else\ifx\p_strc_floats_caption_location\v!bottom
+ \strc_floats_prepare_page_caption_top_bottom
+ \else\ifx\p_strc_floats_caption_width\v!fit
+ \strc_floats_prepare_side_auto_caption
+ \else\ifx\p_strc_floats_caption_width\v!max
+ \strc_floats_prepare_side_auto_caption
+ \else
+ \strc_floats_prepare_side_width_caption
+ \fi\fi\fi\fi
\dostoptagged}
\def\strc_floats_prepare_page_caption_top_bottom
@@ -1564,11 +1508,7 @@
\fi}
\def\strc_floats_caption_set_align
- {\edef\m_align{\v!reset\ifx\p_strc_floats_caption_align\empty\else,\fi\p_strc_floats_caption_align}%
- \doifinset\v!tolerant \floatcaptionlocation{\edef\m_align{\m_align,\v!tolerant}}%
- \doifinset\v!verytolerant\floatcaptionlocation{\edef\m_align{\m_align,\v!verytolerant}}%
- \doifinset\v!stretch \floatcaptionlocation{\edef\m_align{\m_align,\v!stretch}}%
- \setupalign[\m_align]}
+ {\normalexpanded{\setupalign[\v!reset,\p_strc_floats_caption_align]}}
\def\strc_floats_prepare_side_auto_caption
{\scratchdimen\dimexpr\hsize-\wd\b_strc_floats_content-\floatparameter\c!margin\relax
@@ -1700,7 +1640,7 @@
{\ifconditional\c_strc_floats_par_float \hbox \else \expandafter \strc_floats_align_content \fi % skip, no pack
{\d_strc_float_temp_height\ht\b_strc_floats_content
\box\b_strc_floats_content
- \doifnotinset\v!hang\floatcaptionlocation
+ \doifnotinset\v!hang{\floatcaptionparameter\c!location}
{\dotfskip{\floatcaptionparameter\c!distance}}%
\vbox to\d_strc_float_temp_height{#1}}}
@@ -1708,7 +1648,7 @@
{\ifconditional\c_strc_floats_par_float \hbox \else \expandafter \strc_floats_align_content \fi % skip, no pack
{\d_strc_float_temp_height\ht\b_strc_floats_content
\vbox to\d_strc_float_temp_height{#1}%
- \doifnotinset\v!hang\floatcaptionlocation
+ \doifnotinset\v!hang{\floatcaptionparameter\c!location}
{\dotfskip{\floatcaptionparameter\c!distance}}%
\box\b_strc_floats_content}}
@@ -1778,7 +1718,7 @@
\def\strc_floats_build_box_next % beware, we first check on left/rightmargin because there can be left/right also
{\let\next\strc_floats_build_box_next_left
- \processallactionsinset[\floatcaptionlocation]
+ \processallactionsinset[\floatcaptionparameter\c!location]
[ \v!outermargin=>\let\next\strc_floats_build_box_next_outer_margin,
\v!innermargin=>\let\next\strc_floats_build_box_next_inner_margin,
\v!leftmargin=>\let\next\strc_floats_build_box_next_left_margin,
@@ -1796,7 +1736,7 @@
\let\next\strc_floats_build_box_high
\else
\let\next\strc_floats_build_box_middle
- \processallactionsinset[\floatcaptionlocation]
+ \processallactionsinset[\floatcaptionparameter\c!location]
[ \v!low=>\let\next\strc_floats_build_box_low,
\v!middle=>\let\next\strc_floats_build_box_middle,
\v!high=>\let\next\strc_floats_build_box_high]%
@@ -1809,13 +1749,14 @@
\def\strc_floats_flush_left_caption_hang
{\hsmash{\llap{\box\b_strc_floats_caption\dotfskip{\floatcaptionparameter\c!distance}}}}
-\def\strc_floats_flush_caption_hang
- {\doifelseinset\v!righthanging\floatcaptionlocation
+\def\strc_floats_flush_caption_hang % expanded can go
+ {\edef\p_strc_floats_caption_location{\floatcaptionparameter\c!location}%
+ \doifelseinset\v!righthanging\p_strc_floats_caption_location
{\strc_floats_flush_right_caption_hang}
- {\doifelseinset\v!lefthanging\floatcaptionlocation
+ {\doifelseinset\v!lefthanging\p_strc_floats_caption_location
{\strc_floats_flush_left_caption_hang}
- {\doifelseinset\v!hang\floatcaptionlocation
- {\doifelseinset\v!outer\floatcaptionlocation
+ {\doifelseinset\v!hang\p_strc_floats_caption_location
+ {\doifelseinset\v!outer\p_strc_floats_caption_location
{\doifelserightpagefloat{\strc_floats_flush_right_caption_hang}{\strc_floats_flush_left_caption_hang}}
{\doifelseinset\v!right\floatcaptiondirectives
{\strc_floats_flush_right_caption_hang}
@@ -1893,7 +1834,6 @@
{\dp\b_strc_floats_caption\strutdepth
\setbox\scratchbox\vbox
{\d_strc_float_temp_width\wd\b_strc_floats_content
- \hsize\d_strc_float_temp_width
\ifconditional\c_strc_floats_par_float
\strc_floats_locate_side_float{\box\b_strc_floats_caption}%
\vss\strc_floats_between_stack
@@ -1905,13 +1845,12 @@
\strc_floats_align_content{\box\b_strc_floats_content}%
\fi}%
\getnoflines{\dimexpr\htdp\scratchbox-10\scaledpoint\relax}% get rid of inaccuracy
- \vpack to \noflines\lineheight{\unvbox\scratchbox}}
+ \vbox to \noflines\lineheight{\unvbox\scratchbox}} % \vpack ?
\def\strc_floats_build_box_bottom_stack_grid
{\dp\b_strc_floats_caption\strutdepth
\setbox\scratchbox\vbox
{\d_strc_float_temp_width\wd\b_strc_floats_content
- \hsize\d_strc_float_temp_width
\ifconditional\c_strc_floats_par_float
\hpack{\box\b_strc_floats_content}%
\vss\strc_floats_between_stack
@@ -1923,7 +1862,7 @@
\strc_floats_locate_text_float{\box\b_strc_floats_caption}%
\fi}%
\getnoflines{\dimexpr\htdp\scratchbox-10\scaledpoint\relax}% get rid of inaccuracy
- \vpack to \noflines\lineheight{\unvbox\scratchbox}}
+ \vbox to \noflines\lineheight{\unvbox\scratchbox}} % \vpack ?
\def\strc_floats_build_box_top_stack_stretch
{\dp\b_strc_floats_caption\strutdepth
@@ -1933,7 +1872,6 @@
\getnoflines{\dimexpr\htdp\scratchbox-10\scaledpoint\relax}% get rid of inaccuracy
\vbox to \noflines\lineheight % pack ?
{\d_strc_float_temp_width\wd\b_strc_floats_content
- \hsize\d_strc_float_temp_width
\ifconditional\c_strc_floats_par_float
\strc_floats_locate_side_float{\box\b_strc_floats_caption}%
\vss\strc_floats_between_stack\vss
@@ -1947,17 +1885,16 @@
\def\strc_floats_build_box_bottom_stack_stretch
{\dp\b_strc_floats_caption\strutdepth
- \setbox\scratchbox\vpack
- {\strc_floats_align_content{\copy\b_strc_floats_content}%
+ \setbox\scratchbox\vbox % pack ?
+ {\strc_floats_align_content{\copy\b_strc_floats_content }%
\strc_floats_align_caption{\copy\b_strc_floats_caption}}%
\getnoflines{\dimexpr\htdp\scratchbox-10\scaledpoint\relax}% get rid of inaccuracy
\vbox to \noflines\lineheight
{\d_strc_float_temp_width\wd\b_strc_floats_content
- \hsize\d_strc_float_temp_width
\ifconditional\c_strc_floats_par_float
\hpack{\box\b_strc_floats_content}%
\vss\strc_floats_between_stack\vss
- \strc_floats_locate_side_float{\box\b_strc_floats_caption}%
+ \strc_floats_locate_side_float{\box\b_strc_floats_caption}
\else
\page_otr_command_set_float_hsize
\strc_floats_align_content{\box\b_strc_floats_content}%
@@ -1969,14 +1906,14 @@
{\let\next\strc_floats_build_box_top_stack_normal
\processfirstactioninset[\floatcaptionparameter\c!location]
[ \v!grid=>\let\next\strc_floats_build_box_top_stack_grid,
- \v!lines=>\let\next\strc_floats_build_box_top_stack_stretch]% was \v!grid but interfered
+ \v!stretch=>\let\next\strc_floats_build_box_top_stack_stretch]%
\next}
\def\strc_floats_build_box_bottom
{\let\next\strc_floats_build_box_bottom_stack_normal
\processfirstactioninset[\floatcaptionparameter\c!location]
[ \v!grid=>\let\next\strc_floats_build_box_bottom_stack_grid,
- \v!lines=>\let\next\strc_floats_build_box_bottom_stack_stretch]% was \v!grid but interfered
+ \v!stretch=>\let\next\strc_floats_build_box_bottom_stack_stretch]%
\next}
\def\strc_floats_relocate_caption_right#1{\strc_floats_align_caption{\hbox to \d_strc_float_temp_width{\hss#1}}}
@@ -1984,50 +1921,23 @@
\unexpanded\def\installfloatboxbuilder#1#2{\setvalue{\??floatbuilder#1}{#2}}
+\let\strc_floats_mark_box_as_free\relax
+
\def\strc_floats_build_box
- {\strc_floats_build_box_before
- \global\setbox\floatbox\vbox % pack ? probably not
+ {\global\setbox\floatbox\vbox % pack ? probably not
{\strc_floats_set_local_hsize
\forgetall
\ifconditional\c_floats_store_minimal_package
\strc_floats_build_box_separate_make
\else
- % \let\floatcaptionarrangement\s!default
- \let\floatcaptionarrangement\v!bottom % for Alan
+ \let\floatcaptionarrangement\s!default
\processcommacommand[\floatcaptionparameter\c!location]\strc_floats_build_box_step
\ifcsname\??floatbuilder\floatcaptionarrangement\endcsname
\lastnamedcs
\else
\strc_floats_build_box_default
\fi
- \fi}%
- \strc_floats_build_box_after}
-
-% \let\strc_floats_build_box_before\relax
-% \let\strc_floats_build_box_after \relax
-
-\def\strc_floats_build_box_before
- {\let\currentfloatframed\currentfloat
- \floatwidth\wd
- \ifdim\wd\b_strc_floats_content>\wd\b_strc_floats_caption
- \b_strc_floats_content\else\b_strc_floats_caption
- \fi}
-
-\def\strc_floats_build_box_after
- {\doifelseframed\floatframedparameter\strc_floats_build_box_after_indeed\relax}
-
-\def\strc_floats_build_box_after_indeed
- {\global\setbox\floatbox\hpack
- {\edef\m_width{\floatframedparameter\c!width}%
- \ifx\m_width\v!fit
- \let\m_width\floatwidth
- \else\ifx\m_width\v!broad
- \let\m_width\v!fit
- \fi\fi
- \letfloatframedparameter\c!strut\v!no
- \letfloatframedparameter\c!width\m_width
- \inheritedfloatframedframed
- {\box\floatbox}}}
+ \fi}}
% special purpose: used in floatcombinations
@@ -2044,7 +1954,7 @@
\vpack to \onepoint{\box\b_strc_floats_caption}}
\def\strc_floats_build_box_separate_split#1%
- {\setbox\scratchbox\vbox\bgroup
+ {\setbox\scratchbox\vbox{%
\setbox\scratchbox\vpack{#1}%
\unvbox\scratchbox\relax
\setbox\scratchbox\lastbox
@@ -2055,20 +1965,13 @@
\unvbox\scratchbox
\setbox\scratchbox\lastbox
% \exitloop
- % \fi
- %}%
+ % \fi}%
\splittopskip\zeropoint
\global\setbox\b_strc_floats_separate_content\vsplit\scratchbox to \onepoint
\global\setbox\b_strc_floats_separate_caption\vsplit\scratchbox to \onepoint
- \egroup
- \global\setbox\b_strc_floats_separate_content\vpack
- {\unvbox\b_strc_floats_separate_content
- \setbox\scratchbox\lastbox
- \unvbox\scratchbox}%
- \global\setbox\b_strc_floats_separate_caption\tpack
- {\unvbox\b_strc_floats_separate_caption
- \setbox\scratchbox\lastbox
- \unvbox\scratchbox}}
+ \global\setbox\b_strc_floats_separate_content\vpack{\unvbox\b_strc_floats_separate_content\setbox0\lastbox\unvbox0}%
+ \global\setbox\b_strc_floats_separate_caption\tpack{\unvbox\b_strc_floats_separate_caption\setbox0\lastbox\unvbox0}%
+ }}
% \def\strc_floats_build_box_step#1%
% {\doifdefined{\??floatbuilder#1}{\def\floatcaptionarrangement{#1}\quitcommalist}}
@@ -2202,9 +2105,8 @@
\def\strc_floats_prepare_side_caption_fit % or center when smaller
{\ifdim\wd\b_strc_floats_caption>\wd\b_strc_floats_content\relax
- \setbox\b_strc_floats_caption\vbox
+ \setbox\b_strc_floats_caption\vbox
{\forgetall % needed?
- \strc_floats_caption_set_align
\hsize\wd\b_strc_floats_content
\strc_floats_make_complete_caption}%
\else
@@ -2393,8 +2295,6 @@
\definesystemconstant{fxbt}
\definesystemconstant{fixd}
-% can move to page-one:
-
\installfloatmethod \s!singlecolumn \v!here \page_one_place_float_here
\installfloatmethod \s!singlecolumn \v!force \page_one_place_float_force
\installfloatmethod \s!singlecolumn \v!left \page_one_place_float_left
@@ -2430,6 +2330,76 @@
\installfloatmethod \s!singlecolumn \s!fxbt \page_one_place_float_bottom
\installfloatmethod \s!singlecolumn \s!fixd \page_one_place_float_force
+\installfloatmethod \s!multicolumn \v!here \page_mul_place_float_here
+\installfloatmethod \s!multicolumn \v!force \page_mul_place_float_force
+%installfloatmethod \s!multicolumn \v!left
+%installfloatmethod \s!multicolumn \v!right
+%installfloatmethod \s!multicolumn \v!text
+\installfloatmethod \s!multicolumn \v!top \page_mul_place_float_top
+\installfloatmethod \s!multicolumn \v!bottom \page_mul_place_float_bottom
+%installfloatmethod \s!multicolumn \v!auto
+%installfloatmethod \s!multicolumn \v!margin
+%installfloatmethod \s!multicolumn \v!opposite
+%installfloatmethod \s!multicolumn \v!page
+%installfloatmethod \s!multicolumn \v!leftpage
+%installfloatmethod \s!multicolumn \v!rightpage
+%installfloatmethod \s!multicolumn \v!inmargin
+%installfloatmethod \s!multicolumn \v!inleft
+%installfloatmethod \s!multicolumn \v!inright
+%installfloatmethod \s!multicolumn \v!leftmargin
+%installfloatmethod \s!multicolumn \v!rightmargin
+%installfloatmethod \s!multicolumn \v!leftedge
+%installfloatmethod \s!multicolumn \v!rightedge
+%installfloatmethod \s!multicolumn \v!somewhere
+%installfloatmethod \s!multicolumn \v!backspace
+%installfloatmethod \s!multicolumn \v!cutspace
+%installfloatmethod \s!multicolumn \s!tblr
+%installfloatmethod \s!multicolumn \s!lrtb
+%installfloatmethod \s!multicolumn \s!tbrl
+%installfloatmethod \s!multicolumn \s!rltb
+%installfloatmethod \s!multicolumn \s!fxtb
+%installfloatmethod \s!multicolumn \s!btlr
+%installfloatmethod \s!multicolumn \s!lrbt
+%installfloatmethod \s!multicolumn \s!btrl
+%installfloatmethod \s!multicolumn \s!rlbt
+%installfloatmethod \s!multicolumn \s!fxbt
+%installfloatmethod \s!multicolumn \s!fixd
+
+\installfloatmethod \s!columnset \v!here \page_set_place_float_here
+\installfloatmethod \s!columnset \v!force \page_set_place_float_force
+%installfloatmethod \s!columnset \v!left
+%installfloatmethod \s!columnset \v!right
+%installfloatmethod \s!columnset \v!text
+\installfloatmethod \s!columnset \v!top \page_set_place_float_top
+\installfloatmethod \s!columnset \v!bottom \page_set_place_float_bottom
+%installfloatmethod \s!columnset \v!auto
+%installfloatmethod \s!columnset \v!margin
+%installfloatmethod \s!columnset \v!opposite
+\installfloatmethod \s!columnset \v!page \page_set_place_float_page
+%installfloatmethod \s!columnset \v!leftpage
+%installfloatmethod \s!columnset \v!rightpage
+%installfloatmethod \s!columnset \v!inmargin
+%installfloatmethod \s!columnset \v!inleft
+%installfloatmethod \s!columnset \v!inright
+%installfloatmethod \s!columnset \v!leftmargin
+%installfloatmethod \s!columnset \v!rightmargin
+%installfloatmethod \s!columnset \v!leftedge
+%installfloatmethod \s!columnset \v!rightedge
+%installfloatmethod \s!columnset \v!somewhere
+%installfloatmethod \s!columnset \v!backspace
+%installfloatmethod \s!columnset \v!cutspace
+\installfloatmethod \s!columnset \s!tblr \page_set_place_float_slot
+\installfloatmethod \s!columnset \s!lrtb \page_set_place_float_slot
+\installfloatmethod \s!columnset \s!tbrl \page_set_place_float_slot
+\installfloatmethod \s!columnset \s!rltb \page_set_place_float_slot
+\installfloatmethod \s!columnset \s!fxtb \page_set_place_float_slot
+\installfloatmethod \s!columnset \s!btlr \page_set_place_float_slot
+\installfloatmethod \s!columnset \s!lrbt \page_set_place_float_slot
+\installfloatmethod \s!columnset \s!btrl \page_set_place_float_slot
+\installfloatmethod \s!columnset \s!rlbt \page_set_place_float_slot
+\installfloatmethod \s!columnset \s!fxbt \page_set_place_float_slot
+\installfloatmethod \s!columnset \s!fixd \page_set_place_float_force
+
%D Local floats:
\installcorenamespace{localfloats}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-itm.mkvi b/Master/texmf-dist/tex/context/base/mkiv/strc-itm.mkvi
index 0fc20432081..0bea62de8d0 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-itm.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-itm.mkvi
@@ -352,8 +352,8 @@
\csname\??itemgroupsetting\currentitemgroup\endcsname}
\def\strc_itemgroups_reset_continue_state
- {\expandafter\glet\csname\??itemgroupoption \currentitemgroup\endcsname\relax
- \expandafter\glet\csname\??itemgroupsetting\currentitemgroup\endcsname\relax}
+ {\global\expandafter\let\csname\??itemgroupoption \currentitemgroup\endcsname\relax
+ \global\expandafter\let\csname\??itemgroupsetting\currentitemgroup\endcsname\relax}
% These will become keywords. We will also add a feature to keep the while set
% together.
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-lnt.mkvi b/Master/texmf-dist/tex/context/base/mkiv/strc-lnt.mkvi
index 4a6f142458e..cd10c9def20 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-lnt.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-lnt.mkvi
@@ -242,13 +242,13 @@
\def\strc_linenotes_traced_indeed#1%
{\iftracelinenotes
- \hpack to \zeropoint
+ \hbox to \zeropoint
{\forgetall
\hsize\zeropoint
\hss
- \vpack to \strutheight{\llap{\red\infofont\setstrut\the\c_strc_linenotes}\vss}%
+ \vbox to \strutheight{\llap{\red\infofont\setstrut\the\c_strc_linenotes}\vss}%
{\color[blue]{\vl}}%
- \vpack to \strutheight{\rlap{\red\infofont\setstrut#1}\vss}%
+ \vbox to \strutheight{\rlap{\red\infofont\setstrut#1}\vss}%
\hss}%
\prewordbreak
\fi}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-lst.lua b/Master/texmf-dist/tex/context/base/mkiv/strc-lst.lua
index bc6135e7242..13bdf77865b 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-lst.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-lst.lua
@@ -35,8 +35,6 @@ local commands = commands
local implement = interfaces.implement
local conditionals = tex.conditionals
-local ctx_latelua = context.latelua
-
local structures = structures
local lists = structures.lists
local sections = structures.sections
@@ -99,8 +97,7 @@ local v_default = variables.default
-- for the moment not public --
local function zerostrippedconcat(t,separator)
- local f = 1
- local l = #t
+ local f, l = 1, #t
for i=f,l do
if t[i] == 0 then
f = f + 1
@@ -310,8 +307,7 @@ local synchronizepage = function(r) -- bah ... will move
return synchronizepage(r)
end
-local function enhancelist(specification)
- local n = specification.n
+function lists.enhance(n)
local l = cached[n]
if not l then
report_lists("enhancing %a, unknown internal",n)
@@ -352,8 +348,6 @@ local function enhancelist(specification)
end
end
-lists.enhance = enhancelist
-
-- we can use level instead but we can also decide to remove level from the metadata
local nesting = { }
@@ -853,22 +847,18 @@ end
function lists.userdata(name,r,tag) -- to tex (todo: xml)
local result = lists.result[r]
if result then
- local userdata = result.userdata
+ local userdata, metadata = result.userdata, result.metadata
local str = userdata and userdata[tag]
if str then
- return str, result.metadata
+ return str, metadata
end
end
end
function lists.uservalue(name,r,tag,default) -- to lua
local str = lists.result[r]
- if str then
- str = str.userdata
- end
- if str then
- str = str[tag]
- end
+ str = str and str.userdata
+ str = str and str[tag]
return str or default
end
@@ -1081,19 +1071,8 @@ implement {
implement {
name = "enhancelist",
- arguments = "integer",
- actions = function(n)
- enhancelist { n = n }
- end
-}
-
-implement {
- name = "deferredenhancelist",
- arguments = "integer",
- protected = true, -- for now, pre 1.09
- actions = function(n)
- ctx_latelua { action = enhancelist, n = n }
- end,
+ actions = lists.enhance,
+ arguments = "integer"
}
implement {
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-lst.mkvi b/Master/texmf-dist/tex/context/base/mkiv/strc-lst.mkvi
index 7bc859b670b..153d879b791 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-lst.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-lst.mkvi
@@ -145,9 +145,8 @@
{\endgroup}
% \unexpanded
-
-\def\strc_lists_inject_enhance#listindex%
- {\expandafter\clf_deferredenhancelist\number#listindex\relax}
+\def\strc_lists_inject_enhance#listindex#internal%
+ {\normalexpanded{\ctxlatecommand{enhancelist(\number#listindex)}}}
\unexpanded\def\strc_lists_inject_yes[#settings][#userdata]% can be used directly
{\setupcurrentlist[\c!type=userdata,\c!location=\v!none,#settings]% grouped (use \let...
@@ -169,16 +168,16 @@
userdata {\detokenize\expandafter{\normalexpanded{#userdata}}}
\relax
\edef\currentlistnumber{\the\scratchcounter}%
- \setxvalue{\??listlocations\currentlist}{\the\locationcount}%
+\setxvalue{\??listlocations\currentlist}{\the\locationcount}%
\ifx\p_location\v!here
% this branch injects nodes !
- \strc_lists_inject_enhance{\currentlistnumber}%
+ \strc_lists_inject_enhance{\currentlistnumber}{\the\locationcount}%
\clf_setinternalreference
internal \locationcount
view {\interactionparameter\c!focus}%
\relax % this will change
\xdef\currentstructurelistattribute{\the\lastdestinationattribute}%
- \dontleavehmode\hpack attr \destinationattribute \lastdestinationattribute{}% todo
+ \dontleavehmode\hbox attr \destinationattribute \lastdestinationattribute{}% todo
\else
% and this one doesn't
\clf_enhancelist\currentlistnumber\relax
@@ -468,7 +467,7 @@
\relax}
\def\firststructureelementinlist#list% expandable
- {\firstinset{#list}}
+ {\clf_firstinset{#list}}
\def\structurelistsize
{\clf_listsize}
@@ -872,7 +871,7 @@
\appendtoks
\dontcomplain
- % \letinteractionparameter\c!width\zeropoint % a weird one
+ \letinteractionparameter\c!width\zeropoint % a weird one
\to \t_lists_every_renderingsetup
\appendtoks
@@ -1092,7 +1091,7 @@
\fi
\ifconditional\c_lists_has_page
\ifconditional\c_lists_show_page
- \setbox\b_strc_lists_page\hpack {
+ \setbox\b_strc_lists_page\hbox {
\scratchdimen\listalternativeparameter\c!width
\hbox \strc_lists_get_reference_attribute\v!pagenumber \ifdim\scratchdimen>\zeropoint to \scratchdimen\fi {
\hfill
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-mar.lua b/Master/texmf-dist/tex/context/base/mkiv/strc-mar.lua
index 0221b9b8f19..24a7fd4919f 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-mar.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-mar.lua
@@ -13,82 +13,78 @@ local insert, concat = table.insert, table.concat
local tostring, next, rawget, type = tostring, next, rawget, type
local lpegmatch = lpeg.match
-local context = context
-local commands = commands
+local context = context
+local commands = commands
-local implement = interfaces.implement
+local implement = interfaces.implement
-local allocate = utilities.storage.allocate
-local setmetatableindex = table.setmetatableindex
+local allocate = utilities.storage.allocate
+local setmetatableindex = table.setmetatableindex
-local nuts = nodes.nuts
-local tonut = nuts.tonut
+local nuts = nodes.nuts
+local tonut = nuts.tonut
-local getid = nuts.getid
-local getlist = nuts.getlist
-local getattr = nuts.getattr
-local getbox = nuts.getbox
+local getid = nuts.getid
+local getlist = nuts.getlist
+local getattr = nuts.getattr
+local getbox = nuts.getbox
-local nextnode = nuts.traversers.node
+local traverse = nuts.traverse
+local traverse_id = nuts.traverse_id
-local nodecodes = nodes.nodecodes
-local whatsitcodes = nodes.whatsitcodes
+local nodecodes = nodes.nodecodes
+local glyph_code = nodecodes.glyph
+local hlist_code = nodecodes.hlist
+local vlist_code = nodecodes.vlist
-local glyph_code = nodecodes.glyph
-local hlist_code = nodecodes.hlist
-local vlist_code = nodecodes.vlist
-local whatsit_code = nodecodes.whatsit
+local texsetattribute = tex.setattribute
-local lateluawhatsit_code = whatsitcodes.latelua
+local a_marks = attributes.private("structure","marks")
-local texsetattribute = tex.setattribute
+local trace_marks_set = false trackers.register("marks.set", function(v) trace_marks_set = v end)
+local trace_marks_get = false trackers.register("marks.get", function(v) trace_marks_get = v end)
+local trace_marks_all = false trackers.register("marks.detail", function(v) trace_marks_all = v end)
-local a_marks = attributes.private("structure","marks")
+local report_marks = logs.reporter("structure","marks")
-local trace_marks_set = false trackers.register("marks.set", function(v) trace_marks_set = v end)
-local trace_marks_get = false trackers.register("marks.get", function(v) trace_marks_get = v end)
-local trace_marks_all = false trackers.register("marks.detail", function(v) trace_marks_all = v end)
+local variables = interfaces.variables
-local report_marks = logs.reporter("structure","marks")
+local v_first = variables.first
+local v_last = variables.last
+local v_previous = variables.previous
+local v_next = variables.next
+local v_top = variables.top
+local v_bottom = variables.bottom
+local v_current = variables.current
+local v_default = variables.default
+local v_page = variables.page
+local v_all = variables.all
+local v_keep = variables.keep
-local variables = interfaces.variables
+local v_nocheck_suffix = ":" .. variables.nocheck
-local v_first = variables.first
-local v_last = variables.last
-local v_previous = variables.previous
-local v_next = variables.next
-local v_top = variables.top
-local v_bottom = variables.bottom
-local v_current = variables.current
-local v_default = variables.default
-local v_page = variables.page
-local v_all = variables.all
-local v_keep = variables.keep
+local v_first_nocheck = variables.first .. v_nocheck_suffix
+local v_last_nocheck = variables.last .. v_nocheck_suffix
+local v_previous_nocheck = variables.previous .. v_nocheck_suffix
+local v_next_nocheck = variables.next .. v_nocheck_suffix
+local v_top_nocheck = variables.top .. v_nocheck_suffix
+local v_bottom_nocheck = variables.bottom .. v_nocheck_suffix
-local v_nocheck_suffix = ":" .. variables.nocheck
+local structures = structures
+local marks = structures.marks
+local lists = structures.lists
-local v_first_nocheck = variables.first .. v_nocheck_suffix
-local v_last_nocheck = variables.last .. v_nocheck_suffix
-local v_previous_nocheck = variables.previous .. v_nocheck_suffix
-local v_next_nocheck = variables.next .. v_nocheck_suffix
-local v_top_nocheck = variables.top .. v_nocheck_suffix
-local v_bottom_nocheck = variables.bottom .. v_nocheck_suffix
+local settings_to_array = utilities.parsers.settings_to_array
-local structures = structures
-local marks = structures.marks
-local lists = structures.lists
-
-local settings_to_array = utilities.parsers.settings_to_array
-
-local boxes_too = false -- at some point we can also tag boxes or use a zero char
+local boxes_too = false -- at some point we can also tag boxes or use a zero char
directives.register("marks.boxestoo", function(v) boxes_too = v end)
-local data = marks.data or allocate()
-marks.data = data
+marks.data = marks.data or allocate()
storage.register("structures/marks/data", marks.data, "structures.marks.data")
+local data = marks.data
local stack, topofstack = { }, 0
local ranges = {
@@ -120,9 +116,9 @@ end
-- identify range
local function sweep(head,first,last)
- for n, id, subtype in nextnode, head do
- -- we need to handle empty heads so we test for latelua
- if id == glyph_code or (id == whatsit_code and subtype == lateluawhatsit_code) then
+ for n in traverse(head) do
+ local id = getid(n)
+ if id == glyph_code then
local a = getattr(n,a_marks)
if not a then
-- next
@@ -437,8 +433,7 @@ local function resolve(name,first,last,strict,quitonfalse,notrace)
if trace_marks_get and not notrace then
report_marks("found chain [ % => T ]",fullchain)
end
- local chaindata = { }
- local chainlength = #fullchain
+ local chaindata, chainlength = { }, #fullchain
for i=1,chainlength do
local cname = fullchain[i]
if data[cname].set > 0 then
@@ -514,8 +509,7 @@ local methods = { }
local function doresolve(name,rangename,swap,df,dl,strict)
local range = ranges[rangename] or ranges[v_page]
- local first = range.first
- local last = range.last
+ local first, last = range.first, range.last
if trace_marks_get then
report_marks("action %a, name %a, range %a, swap %a, first %a, last %a, df %a, dl %a, strict %a",
"resolving",name,rangename,swap or false,first,last,df,dl,strict or false)
@@ -644,10 +638,7 @@ function marks.tracers.showtable()
context.tabulaterowbold("name","parent","chain","children","fullchain")
context.ML()
for k, v in table.sortedpairs(data) do
- local parent = v.parent or ""
- local chain = v.chain or ""
- local children = v.children or { }
- local fullchain = v.fullchain or { }
+ local parent, chain, children, fullchain = v.parent or "", v.chain or "", v.children or { }, v.fullchain or { }
table.sort(children) -- in-place but harmless
context.tabulaterowtyp(k,parent,chain,concat(children," "),concat(fullchain," "))
end
@@ -656,49 +647,28 @@ end
-- pushing to context:
--- local separator = context.nested.markingseparator
--- local command = context.nested.markingcommand
--- local ctxconcat = context.concat
-
--- local function fetchonemark(name,range,method)
--- context(command(name,fetched(name,range,method)))
--- end
-
--- local function fetchtwomarks(name,range)
--- ctxconcat( {
--- command(name,fetched(name,range,v_first)),
--- command(name,fetched(name,range,v_last)),
--- }, separator(name))
--- end
-
--- local function fetchallmarks(name,range)
--- ctxconcat( {
--- command(name,fetched(name,range,v_previous)),
--- command(name,fetched(name,range,v_first)),
--- command(name,fetched(name,range,v_last)),
--- }, separator(name))
--- end
-
- local ctx_separator = context.markingseparator
- local ctx_command = context.markingcommand
-
- local function fetchonemark(name,range,method)
- ctx_command(name,fetched(name,range,method))
- end
+local separator = context.nested.markingseparator
+local command = context.nested.markingcommand
+local ctxconcat = context.concat
- local function fetchtwomarks(name,range)
- ctx_command(name,fetched(name,range,v_first))
- ctx_separator(name)
- ctx_command(name,fetched(name,range,v_last))
- end
+local function fetchonemark(name,range,method)
+ context(command(name,fetched(name,range,method)))
+end
- local function fetchallmarks(name,range)
- ctx_command(name,fetched(name,range,v_previous))
- ctx_separator(name)
- ctx_command(name,fetched(name,range,v_first))
- ctx_separator(name)
- ctx_command(name,fetched(name,range,v_last))
- end
+local function fetchtwomarks(name,range)
+ ctxconcat( {
+ command(name,fetched(name,range,v_first)),
+ command(name,fetched(name,range,v_last)),
+ }, separator(name))
+end
+
+local function fetchallmarks(name,range)
+ ctxconcat( {
+ command(name,fetched(name,range,v_previous)),
+ command(name,fetched(name,range,v_first)),
+ command(name,fetched(name,range,v_last)),
+ }, separator(name))
+end
function marks.fetch(name,range,method) -- chapter page first | chapter column:1 first
if trace_marks_get then
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-mat.mkiv b/Master/texmf-dist/tex/context/base/mkiv/strc-mat.mkiv
index 0b80a26cd63..775d2aca157 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-mat.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-mat.mkiv
@@ -208,9 +208,9 @@
\c!reference=#1,\c!title=\namedformulaentry,\c!bookmark=]%
[#2]%
\glet\namedformulaentry\empty % \relax
- \glet#3\m_strc_counters_last_registered_index
- \glet#4\m_strc_counters_last_registered_synchronize
- \glet#5\m_strc_counters_last_registered_attribute}
+ \globallet#3\m_strc_counters_last_registered_index
+ \globallet#4\m_strc_counters_last_registered_synchronize
+ \globallet#5\m_strc_counters_last_registered_attribute}
% modes: 0=unset, 1=forced, 2=none, 3=reference
@@ -880,9 +880,6 @@
\par
\fi
\bgroup % HERE
- \iftrialtypesetting\else
- \global\advance\c_strc_formulas_n\plusone
- \fi
\def\currentformula{#1}%
\strc_math_set_split
\dostarttaggedchained\t!formula\currentformula\??formula
@@ -899,7 +896,7 @@
{\edef\p_option{\formulaparameter\c!option}%
\edef\p_option{\ifx\p_option\empty\else\p_option,\fi#2}}%
\else
- \edef\p_option{\formulaparameter\c!option}%
+ \edef\p_option{\formulaparameter\c!option}
\fi
\ifx\p_option\empty \else
\rawprocesscommacommand[\p_option]\strc_formulas_option
@@ -925,15 +922,10 @@
% tagging of formulanumbers is not ok (we get two display maths blobs)
-\newcount\c_strc_formulas_n
-
-\ifdefined\dotagregisterformula \else \let\dotagregisterformula\gobbleoneargument \fi
-
\unexpanded\def\strc_formulas_stop_formula
{\strc_formulas_place_number % in case it hasn't happened yet
\strc_formulas_flush_number % in case we are in native mode
\dostarttagged\t!formulacontent\empty
- \dotagregisterformula\c_strc_formulas_n
\csname\e!stop\formulaparameter\c!alternative\v!formula\endcsname
\dostoptagged
\dostoptagged
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-not.lua b/Master/texmf-dist/tex/context/base/mkiv/strc-not.lua
index b2c8106e153..bb9d64beb57 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-not.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-not.lua
@@ -247,38 +247,15 @@ end
notes.internal = internal
notes.ordered = ordered
--- local function onsamepageasprevious(tag)
--- local same = false
--- local n = getn(tag,n)
--- local current = get(tag,n)
--- local previous = get(tag,n-1)
--- if current and previous then
--- local cr = current.references
--- local pr = previous.references
--- same = cr and pr and cr.realpage == pr.realpage
--- end
--- return same and true or false
--- end
-
local function onsamepageasprevious(tag)
- local n = getn(tag,n)
- local current = get(tag,n)
- if not current then
- return false
- end
- local cr = current.references
- if not cr then
- return false
- end
- local previous = get(tag,n-1)
- if not previous then
- return false
- end
- local pr = previous.references
- if not pr then
- return false
+ local same = false
+ local n = getn(tag,n)
+ local current, previous = get(tag,n), get(tag,n-1)
+ if current and previous then
+ local cr, pr = current.references, previous.references
+ same = cr and pr and cr.realpage == pr.realpage
end
- return cr.realpage == pr.realpage
+ return same and true or false
end
notes.doifonsamepageasprevious = onsamepageasprevious
@@ -494,7 +471,7 @@ local texsetglue = tex.setglue
local function check_spacing(n,i)
local gn, pn, mn = texgetglue(n)
local gi, pi, mi = texgetglue(i > 1 and "s_strc_notes_inbetween" or "s_strc_notes_before")
- local gt, pt, mt = gn + gi, pn + pi, mn + mi
+ local gt, pt, mt = gn+gi, pn+pi, mn+mi
if trace_insert then
report_insert("%s %i: %p plus %p minus %p","always ",n,gn,pn,mn)
report_insert("%s %i: %p plus %p minus %p",i > 1 and "inbetween" or "before ",n,gi,pi,mi)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-not.mkvi b/Master/texmf-dist/tex/context/base/mkiv/strc-not.mkvi
index 3ce01ef3454..8952f0e9c2c 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-not.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-not.mkvi
@@ -456,7 +456,7 @@
\edef\currentnotenumber{\clf_storenote{\currentnote}\currentconstructionlistentry}%
\settrue\processingnote
\ifconditional\c_strc_notes_skip
- \glet\lastnotesymbol\strc_notes_inject_symbol_nop
+ \globallet\lastnotesymbol\strc_notes_inject_symbol_nop
\else
\iftypesettinglines % otherwise problems with \type <crlf> {xxx}
\ignorelines % makes footnotes work in \startlines ... \stoplines
@@ -465,7 +465,7 @@
\strc_notes_inject_symbol_yes
\else
\unskip\unskip
- \glet\lastnotesymbol\strc_notes_inject_symbol_yes
+ \globallet\lastnotesymbol\strc_notes_inject_symbol_yes
\fi
\fi
\ifconditional\postponingnotes % todo: per note class
@@ -734,7 +734,7 @@
\dostoptagged
\egroup
\endgroup
- \glet\lastnotesymbol\relax}
+ \globallet\lastnotesymbol\relax}
\unexpanded\def\strc_notes_inject_dummy % temp hack
{\removeunwantedspaces
@@ -745,7 +745,7 @@
\fi
\nobreak
\hpack to .5\emwidth{}%
- \glet\lastnotesymbol\relax}
+ \globallet\lastnotesymbol\relax}
\unexpanded\def\strc_notes_inject_separator % patch by WS due to request on list
{\edef\p_textseparator{\noteparameter\c!textseparator}%
@@ -1057,6 +1057,18 @@
\newskip \s_strc_notes_distance % we need to implement stretch
\newcount\c_strc_notes_columns
+% \def\strc_notes_set_distance
+% {\begingroup
+% \setbox\scratchbox\vbox % no reuse as it can mirror
+% {\forgetall
+% \restoreglobalbodyfont % really needed
+% \dontcomplain
+% \noteparameter\c!before
+% \placenoterule
+% \noteparameter\c!after}%
+% \expandafter\endgroup\expandafter
+% \s_strc_notes_distance\the\htdp\scratchbox\relax} % also dp now
+
\newskip \s_strc_notes_before
\newskip \s_strc_notes_inbetween
\newconditional\c_strc_notes_first_flushed
@@ -1370,22 +1382,19 @@
\fi}
\appendtoks
- \strc_notes_set_penalties
- \forgetall % again
- \strc_notes_set_bodyfont
- \redoconvertfont % to undo \undo calls in in headings etc
- \splittopskip\strutht % not actually needed here
- \splitmaxdepth\strutdp % not actually needed here
- %
- % not:
- %
- % \leftmargindistance \noteparameter\c!margindistance
- % \rightmargindistance\leftmargindistance
- % \ifnum\noteparameter\c!n=\zerocount % no ifcase new 31-07-99 ; always ?
- % \doifnotinset{\noteparameter\c!width}{\v!fit,\v!broad}\setnotehsize % ?
- % \fi
- %
- \pickupattributes
+ \strc_notes_set_penalties
+ \forgetall % again
+ \strc_notes_set_bodyfont
+ \redoconvertfont % to undo \undo calls in in headings etc
+ \splittopskip\strutht % not actually needed here
+ \splitmaxdepth\strutdp % not actually needed here
+ % not:
+% \leftmargindistance \noteparameter\c!margindistance
+% \rightmargindistance\leftmargindistance
+% \ifnum\noteparameter\c!n=\zerocount % no ifcase new 31-07-99 ; always ?
+% \doifnotinset{\noteparameter\c!width}{\v!fit,\v!broad}\setnotehsize % ?
+% \fi
+ %
\to \everyinsidenoteinsert
% maybe but better use [scope=local] here
@@ -1542,7 +1551,7 @@
\unexpanded\def\postponenotes
{\ifconditional\postponingnotes\else
\global\settrue\postponingnotes
- \glet\flushnotes\doflushnotes
+ \global\let\flushnotes\doflushnotes
\clf_postponenotes
\fi}
@@ -1551,7 +1560,7 @@
\unexpanded\def\startpostponingnotes % experimental, page-mix
{\ifconditional\postponingnotes\else
\global\settrue\postponingnotes
- %\glet\flushnotes\doflushnotes
+ %\global\let\flushnotes\doflushnotes
\clf_postponenotes
\fi}
@@ -1572,7 +1581,7 @@
\clf_flushpostponednotes% this also resets the states !
\global\setfalse\postponednote
\global\setfalse\postponingnotes
- \glet\flushnotes\relax
+ \global\let\flushnotes\relax
\endgroup
\fi}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-num.lua b/Master/texmf-dist/tex/context/base/mkiv/strc-num.lua
index 25e575a56f7..e1a133f4a30 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-num.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-num.lua
@@ -273,7 +273,7 @@ end
function counters.compact(name,level,onlynumbers)
local cd = counterdata[name]
if cd then
- local data = cd.data
+ local data = cd.data
local compact = { }
for i=1,level or #data do
local d = data[i]
@@ -541,26 +541,22 @@ function counters.converted(name,spec) -- name can be number and reference to st
local cd
if type(name) == "number" then
cd = specials.retrieve("counter",name)
- if cd then
- cd = cd.counter
- end
+ cd = cd and cd.counter
else
cd = counterdata[name]
end
if cd then
- local spec = spec or { }
- local numbers = { }
- local ownnumbers = { }
- local reverse = spec.order == v_reverse
- local kind = spec.type or "number"
- local data = cd.data
+ local spec = spec or { }
+ local numbers, ownnumbers = { }, { }
+ local reverse = spec.order == v_reverse
+ local kind = spec.type or "number"
+ local data = cd.data
for k=1,#data do
local v = data[k]
-- somewhat messy, what if subnr? only last must honour kind?
local vn
if v.own then
- numbers[k] = v.number
- ownnumbers[k] = v.own
+ numbers[k], ownnumbers[k] = v.number, v.own
else
if kind == v_first then
vn = v.first
@@ -581,14 +577,13 @@ function counters.converted(name,spec) -- name can be number and reference to st
end
end
end
- numbers[k] = vn or v.number
- ownnumbers[k] = nil
+ numbers[k], ownnumbers[k] = vn or v.number, nil
end
end
- cd.numbers = numbers
+ cd.numbers = numbers
cd.ownnumbers = ownnumbers
sections.typesetnumber(cd,'number',spec)
- cd.numbers = nil
+ cd.numbers = nil
cd.ownnumbers = nil
end
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-num.mkiv b/Master/texmf-dist/tex/context/base/mkiv/strc-num.mkiv
index 747df29a563..be35e7671ef 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-num.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-num.mkiv
@@ -578,9 +578,9 @@
\xdef\currentstructurecomponentlist {#2\c!list}%
\xmlstopraw
\ifx\currentstructurecomponentlist\empty
- \glet\currentstructurecomponentlist\currentstructurecomponenttitle
+ \globallet\currentstructurecomponentlist\currentstructurecomponenttitle
\fi
- \glet\currentstructurecomponentcoding\s!xml
+ \globallet\currentstructurecomponentcoding\s!xml
\else
\ifx\currentstructurecomponentexpansion\v!yes
\xdef\currentstructurecomponenttitle {#2\c!title}%
@@ -600,9 +600,9 @@
\fi \fi
\fi
\ifx\currentstructurecomponentlist\empty
- \glet\currentstructurecomponentlist\currentstructurecomponenttitle
+ \globallet\currentstructurecomponentlist\currentstructurecomponenttitle
\fi
- \glet\currentstructurecomponentcoding\s!tex
+ \globallet\currentstructurecomponentcoding\s!tex
\fi
%
\setnextinternalreference
@@ -669,9 +669,11 @@
%}
\relax
\xdef\m_strc_counters_last_registered_index{\the\scratchcounter}%
- \setstructurecomponentsynchronization\m_strc_counters_last_registered_index
- \glet\m_strc_counters_last_registered_attribute \currentstructurecomponentattribute
- \glet\m_strc_counters_last_registered_synchronize\currentstructurecomponentsynchronize}
+ \clf_setinternalreference
+ internal \locationcount
+ \relax
+ \xdef\m_strc_counters_last_registered_attribute {\the\lastdestinationattribute}%
+ \xdef\m_strc_counters_last_registered_synchronize{\strc_lists_inject_enhance{\m_strc_counters_last_registered_index}{\the\locationcount}}}
\let\m_strc_counters_last_registered_index \relax
\let\m_strc_counters_last_registered_attribute \relax
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-pag.lua b/Master/texmf-dist/tex/context/base/mkiv/strc-pag.lua
index ee1b245b99b..dcd35fc20b7 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-pag.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-pag.lua
@@ -113,9 +113,8 @@ end
-- end
function pages.number(realdata,pagespec)
- local userpage = realdata.number
- local block = realdata.block or "" -- sections.currentblock()
- local numberspec = realdata.numberdata
+ local userpage, block = realdata.number, realdata.block or "" -- sections.currentblock()
+ local numberspec = realdata.numberdata
local conversionset = (pagespec and pagespec.conversionset ~= "" and pagespec.conversionset) or (numberspec and numberspec.conversionset ~= "" and numberspec.conversionset) or ""
local conversion = (pagespec and pagespec.conversion ~= "" and pagespec.conversion ) or (numberspec and numberspec.conversion ~= "" and numberspec.conversion ) or ""
local starter = (pagespec and pagespec.starter ~= "" and pagespec.starter ) or (numberspec and numberspec.starter ~= "" and numberspec.starter ) or ""
@@ -213,11 +212,9 @@ end
function helpers.prefixlastpage(data,prefixspec,pagespec)
if data then
- local r = data.references
- local ls = r.section
- local lr = r.realpage
- r.section = r.lastsection or r.section
- r.realpage = r.lastrealpage or r.realpage
+ local r = data.references
+ local ls, lr = r.section, r.realpage
+ r.section, r.realpage = r.lastsection or r.section, r.lastrealpage or r.realpage
helpers.prefixpage(data,prefixspec,pagespec)
r.section, r.realpage = ls, lr
end
@@ -230,8 +227,7 @@ function helpers.analyze(entry,specification)
if not entry then
return false, false, "no entry"
end
- local yes = variables.yes
- local no = variables.no
+ local yes, no = variables.yes, variables.no
-- section data
local references = entry.references
if not references then
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-pag.mkiv b/Master/texmf-dist/tex/context/base/mkiv/strc-pag.mkiv
index 01361e2c53b..d56f0de544e 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-pag.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-pag.mkiv
@@ -152,7 +152,7 @@
\setupsubpagenumber
[\c!way=\v!by\v!part,
- \c!state=\v!start] % was stop but start looks better in logging
+ \c!state=\v!stop]
% Counters
@@ -263,7 +263,7 @@
\def\currentpage{\the\realpageno}% rather useless
\appendtoks
- \ifnum\realpageno>\lastpage \glet\lastpage\lastrealpage \fi
+ \ifnum\realpageno>\lastpage \globallet\lastpage\lastrealpage \fi
\to \everyinitializepagecounters
% States:
@@ -309,8 +309,6 @@
% some day ifsinglesided and ifdoublesided will become obsolete
-\newtoks\everysidedswitch
-
\appendtoks
\singlesidedfalse \setfalse\layoutisdoublesided
\doublesidedfalse \setfalse\layoutissinglesided
@@ -319,7 +317,13 @@
\processallactionsinset[\directpagenumberingparameter\c!alternative]
[ \v!singlesided=>\setsystemmode\v!singlesided\singlesidedtrue\settrue\layoutissinglesided,
\v!doublesided=>\setsystemmode\v!doublesided\doublesidedtrue\settrue\layoutisdoublesided]%
- \the\everysidedswitch
+ \ifdefined\trackingmarginnotestrue
+ \ifdoublesided
+ \trackingmarginnotestrue
+ \else
+ \trackingmarginnotesfalse
+ \fi
+ \fi
\pageduplexmode
\ifsinglesided
\ifdoublesided\plustwo\else\zerocount\fi
@@ -330,16 +334,6 @@
\strc_pagenumbers_set_location
\to \everysetuppagenumbering
-\appendtoks
- \ifdefined\trackingmarginnotestrue
- \ifdoublesided
- \trackingmarginnotestrue
- \else
- \trackingmarginnotesfalse
- \fi
- \fi
-\to \everysidedswitch
-
\ifdefined \page_backgrounds_recalculate \else
\let\page_backgrounds_recalculate\relax
\fi
@@ -407,10 +401,11 @@
\unexpanded\def\strc_pagenumbers_check_state_change#1#2%
{\edef\m_strc_pagenumbers_state_new{\namedcounterparameter#1\c!state}%
\ifx\m_strc_pagenumbers_state_new\m_strc_pagenumbers_state_old \else
- #2\ifx\m_strc_pagenumbers_state_new\v!start\plustwo\else\zerocount\fi
+ \doifelse\m_strc_pagenumbers_state_new\v!start
+ {#2\plustwo}%
+ {#2\zerocount}%
\fi}
-
\appendtoks % todo: set state: none, start, stop, reset
\strc_pagenumbers_check_state_change\s!realpage\c_strc_pagenumbers_state_realpage
\to \everysetuprealpagenumber
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-ref.lua b/Master/texmf-dist/tex/context/base/mkiv/strc-ref.lua
index e01bacaac32..f20d931619b 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-ref.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-ref.lua
@@ -52,8 +52,6 @@ local context = context
local commands = commands
local implement = interfaces.implement
-local ctx_latelua = context.latelua
-
local texgetcount = tex.getcount
local texsetcount = tex.setcount
local texconditionals = tex.conditionals
@@ -74,7 +72,6 @@ local lists = structures.lists
local counters = structures.counters
local jobpositions = job.positions
-local getpos = jobpositions.getpos
-- some might become local
@@ -140,7 +137,6 @@ storage.register("structures/references/defined", references.defined, "structure
local initializers = { }
local finalizers = { }
-local somefound = false -- so we don't report missing when we have a fresh start
function references.registerinitializer(func) -- we could use a token register instead
initializers[#initializers+1] = func
@@ -166,7 +162,6 @@ local function initializer() -- can we use a tobesaved as metatable for collecte
end
end
end
- somefound = next(collected)
end
local function finalizer()
@@ -375,8 +370,6 @@ implement {
arguments = "2 strings",
}
-local reported = setmetatableindex("table")
-
function references.set(data)
local references = data.references
local reference = references.reference
@@ -395,23 +388,16 @@ function references.set(data)
if ref == "" then
-- skip
elseif check_duplicates and pd[ref] then
- if not prefix then
- prefix = ""
- end
- if not reported[prefix][ref] then
- if prefix ~= "" then
- report_references("redundant reference %a in namespace %a",ref,prefix)
- else
- report_references("redundant reference %a",ref)
- end
- reported[prefix][ref] = true
+ if prefix and prefix ~= "" then
+ report_references("redundant reference %a in namespace %a",ref,prefix)
+ else
+ report_references("redundant reference %a",ref)
end
else
n = n + 1
pd[ref] = data
local r = data.references
ctx_dofinishreference(prefix or "",ref or "",r and r.internal or 0)
- -- ctx_latelua(function() structures.references.enhance(prefix or ref,ref or "") end)
end
end
process_settings(reference,action)
@@ -425,6 +411,8 @@ end
-- end
-- end
+local getpos = function() getpos = backends.codeinjections.getpos return getpos () end
+
local function synchronizepage(reference) -- non public helper
reference.realpage = texgetcount("realpageno")
if jobpositions.used then
@@ -434,30 +422,17 @@ end
references.synchronizepage = synchronizepage
-local function enhancereference(specification)
- local l = tobesaved[specification.prefix][specification.tag]
+function references.enhance(prefix,tag)
+ local l = tobesaved[prefix][tag]
if l then
synchronizepage(l.references)
end
end
-references.enhance = enhancereference
-
--- implement {
--- name = "enhancereference",
--- arguments = "2 strings",
--- actions = function(prefix,tag)
--- enhancereference { prefix = prefix, tag = tag }
--- end,
--- }
-
implement {
- name = "deferredenhancereference",
+ name = "enhancereference",
+ actions = references.enhance,
arguments = "2 strings",
- protected = true,
- actions = function(prefix,tag)
- ctx_latelua { action = enhancereference, prefix = prefix, tag = tag }
- end,
}
-- -- -- related to strc-ini.lua -- -- --
@@ -1029,9 +1004,9 @@ local function loadexternalreferences(name,utilitydata)
local pages = struc.pages.collected -- pagenumber data
-- a bit weird one, as we don't have the externals in the collected
for prefix, set in next, external do
- if prefix == "" then
- prefix = name -- this can clash!
- end
+if prefix == "" then
+ prefix = name -- this can clash!
+end
for reference, data in next, set do
if trace_importing then
report_importing("registering %a reference, kind %a, name %a, prefix %a, reference %a",
@@ -1059,9 +1034,9 @@ local function loadexternalreferences(name,utilitydata)
if kind and realpage then
references.pagedata = pages[realpage]
local prefix = references.prefix or ""
- if prefix == "" then
- prefix = name -- this can clash!
- end
+if prefix == "" then
+ prefix = name -- this can clash!
+end
local target = external[prefix]
if not target then
target = { }
@@ -1493,7 +1468,7 @@ local function identify_inner(set,var,prefix,collected,derived)
end
end
-- we now ignore the split prefix and treat the whole inner as a potential
- -- reference into the global list
+ -- referenice into the global list
local i = collected[prefix]
if i then
i = i[inner]
@@ -1549,17 +1524,6 @@ local function identify_outer(set,var,i)
end
return v
end
--- weird too (we really need to check how this table is build
- local v = identify_inner(set,var,var.outer,external)
- if v then
- v.kind = "outer with inner"
- set.external = true
- if trace_identifying then
- report_identify_outer(set,v,i,"2c")
- end
- return v
- end
---
-- somewhat rubish: we use outer as first step in the externals table so it makes no
-- sense to have it as prefix so the next could be an option
local external = external[""]
@@ -1834,7 +1798,8 @@ local nofidentified = 0
local function identify(prefix,reference)
if not reference then
- prefix, reference = "", prefix
+ prefix = ""
+ reference = prefix
end
local set = resolve(prefix,reference)
local bug = false
@@ -1882,9 +1847,7 @@ function references.valid(prefix,reference,specification)
local str = f_valid(prefix,reference)
local u = unknowns[str]
if not u then
- if somefound then
- interfaces.showmessage("references",1,str) -- 1 = unknown, 4 = illegal
- end
+ interfaces.showmessage("references",1,str) -- 1 = unknown, 4 = illegal
unknowns[str] = 1
nofunknowns = nofunknowns + 1
else
@@ -2001,14 +1964,13 @@ local function setinternalreference(specification)
local internal = specification.internal
local destination = unsetvalue
if innermethod == v_auto or innermethod == v_name then
- local t = { } -- maybe add to current (now only used for tracing)
- local tn = 0
+ local t, tn = { }, 0 -- maybe add to current (now only used for tracing)
local reference = specification.reference
local view = specification.view
if reference then
local prefix = specification.prefix
if prefix and prefix ~= "" then
- local prefix = prefix .. ":" -- watch out, : here
+ prefix = prefix .. ":" -- watch out, : here
local function action(ref)
tn = tn + 1
t[tn] = prefix .. ref
@@ -2025,7 +1987,7 @@ local function setinternalreference(specification)
-- ugly .. later we decide to ignore it when we have a real one
-- but for testing we might want to see them all
if internal then
- if innermethod ~= v_name then -- innermethod == v_auto
+ if innermethod ~= v_name then -- so page and auto
-- we don't want too many #1 #2 #3 etc
tn = tn + 1
t[tn] = internal -- when number it's internal
@@ -2102,7 +2064,7 @@ function references.setandgetattribute(data) -- maybe do internal automatically
local done = references.set(data) -- we had kind i.e .item -> full
if done then
attr = setinternalreference {
- prefix = rdat.prefix,
+ prefix = prefix,
reference = rdat.reference,
internal = rdat.internal,
view = rdat.view
@@ -2323,8 +2285,7 @@ genericfilters.default = genericfilters.text
function genericfilters.page(data,prefixspec,pagespec)
local pagedata = data.pagedata
if pagedata then
- local number = pagedata.number
- local conversion = pagedata.conversion
+ local number, conversion = pagedata.number, pagedata.conversion
if not number then
-- error
elseif conversion then
@@ -2566,19 +2527,10 @@ local function referencepagestate(position,detail,spread)
if not actions then
return 0
else
- local pagestate = actions.pagestate
- for i=1,#actions do
- local a = actions[i]
- if a.outer then
- pagestate = 0
- actions.pagestate = pagestate
- break
- end
- end
- if not pagestate then
+ if not actions.pagestate then
references.analyze(actions,position,spread) -- delayed unless explicitly asked for
- pagestate = actions.pagestate
end
+ local pagestate = actions.pagestate
if detail then
return pagestate
elseif pagestate == 4 then
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-ref.mkvi b/Master/texmf-dist/tex/context/base/mkiv/strc-ref.mkvi
index c7f20481592..d0752407c90 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-ref.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-ref.mkvi
@@ -29,7 +29,7 @@
\registerctxluafile{strc-rsc}{}
\registerctxluafile{strc-ref}{}
-\registerctxluafile{node-ref}{optimize}
+\registerctxluafile{node-ref}{}
\unprotect
@@ -45,18 +45,19 @@
% \definespecial\dosetexecuteJScode
% ...
-%D This module deals with referencing. In \CONTEXT\ referencing is one of the core
-%D features, although at a first glance probably nobody will notice. This is good,
-%D because referencing should be as hidden as possible.
+%D This module deals with referencing. In \CONTEXT\ referencing is one of
+%D the core features, although at a first glance probably nobody will
+%D notice. This is good, because referencing should be as hidden as possible.
%D
-%D Before we start implementing functionality we provide a way to set up this
-%D mechanism.
+%D Before we start implementing functionality we provide a way to set
+%D up this mechanism.
%D
%D \showsetup{setupreferencing}
%D
-%D In interactive documents verbose references don't always make sense (what is a
-%D page number in an unnumbered document). By setting the \type{interaction}
-%D variable, one can influences the way interactive references are set.
+%D In interactive documents verbose references don't always
+%D make sense (what is a page number in an unnumbered
+%D document). By setting the \type{interaction} variable, one
+%D can influences the way interactive references are set.
\let\referenceprefix\empty
@@ -121,19 +122,20 @@
\dosetdirectpagereference\m_strc_references_asked
\fi}
-%D Actually there is not much difference between a text and a full reference, but
-%D it's the concept that counts. The low level implementation is:
+%D Actually there is not much difference between a text and a
+%D full reference, but it's the concept that counts. The low
+%D level implementation is:
\newcount\lastreferenceattribute
\newcount\lastdestinationattribute
\def\strc_references_finish#prefix#reference#internal%
- {\normalexpanded{\clf_deferredenhancereference{#prefix}{#reference}}}
+ {\normalexpanded{\ctxlatecommand{enhancereference("#prefix","#reference")}}}
\let\dofinishreference\strc_references_finish % used at lua end
-%D This is somewhat tricky: we want to keep the reference with the following word but
-%D that word should also hyphenate. We need to find a better way.
+% This is somewhat tricky: we want to keep the reference with the following word but
+% that word should also hyphenate. We need to find a better way.
% 0 = nothing
% 1 = bind to following word
@@ -165,32 +167,6 @@
\unhbox\b_strc_destination_nodes
\fi}
-\def\strc_references_placeholder
- {\ifx\dotaggedplaceholder\empty\else
- \attribute\destinationattribute\lastdestinationattribute
- \dotaggedplaceholder
- \fi}
-
-\unexpanded\def\strc_references_destination_point_yes
- {\strc_references_inject_before % new
- \dostarttagged\t!reference\empty
- \dontleavehmode\hbox attr \destinationattribute\lastdestinationattribute\bgroup
- \strc_references_flush_destination_nodes
- \strc_references_placeholder
- \egroup
- \dostoptagged
- \strc_references_inject_after}
-
-\unexpanded\def\strc_references_destination_point_nop
- {\strc_references_inject_before % new
- \dostarttagged\t!reference\empty
- \dontleavehmode\hbox \bgroup
- \strc_references_flush_destination_nodes
- \strc_references_placeholder
- \egroup
- \dostoptagged
- \strc_references_inject_after}
-
\unexpanded\def\strc_references_start_destination_nodes % messy but we need the delay
{\setbox\b_strc_destination_nodes\hbox\bgroup} % also sets lastdestinationattribute
@@ -212,14 +188,14 @@
\xmlstartraw
\xdef\currentreferencedata{#text}% data, no text else conflict
\xmlstopraw
- \glet\currentreferencecoding\s!xml
+ \globallet\currentreferencecoding\s!xml
\else
\ifx\currentreferenceexpansion\v!yes
\xdef\currentreferencedata{#text}%
\else
\xdef\currentreferencedata{\detokenize{#text}}%
\fi
- \glet\currentreferencecoding\s!tex
+ \globallet\currentreferencecoding\s!tex
\fi
% beware, the structures.references.set writes a
\setnextinternalreference
@@ -264,9 +240,17 @@
\xdef\currentdestinationattribute{\number\lastdestinationattribute}%
% will become an option:
\ifnum\lastdestinationattribute>\zerocount
- \strc_references_destination_point_yes
+ \strc_references_inject_before % new
+ \dontleavehmode\hbox attr \destinationattribute\lastdestinationattribute\bgroup
+ \strc_references_flush_destination_nodes
+ \egroup
+ \strc_references_inject_after % new
\else\ifvoid\b_strc_destination_nodes\else
- \strc_references_destination_point_nop
+ \strc_references_inject_before % new
+ \dontleavehmode\hbox \bgroup
+ \strc_references_flush_destination_nodes
+ \egroup
+ \strc_references_inject_after % new
\fi\fi}
\def\strc_references_set_page_only_destination_attribute#labels% could in fact be fully expandable
@@ -340,9 +324,17 @@
\xdef\currentdestinationattribute{\number\lastdestinationattribute}%
% will become an option:
\ifnum\lastdestinationattribute>\zerocount
- \strc_references_destination_point_yes
+ \strc_references_inject_before % new
+ \dontleavehmode\hbox attr \destinationattribute\lastdestinationattribute\bgroup
+ \strc_references_flush_destination_nodes
+ \egroup
+ \strc_references_inject_after % new
\else\ifvoid\b_strc_destination_nodes\else
- \strc_references_destination_point_nop
+ \strc_references_inject_before % new
+ \dontleavehmode\hbox \bgroup
+ \strc_references_flush_destination_nodes
+ \egroup
+ \strc_references_inject_after % new
\fi\fi}
\unexpanded\def\strc_references_direct_full
@@ -487,10 +479,10 @@
{\scratchwidth \wd\nextbox
\scratchheight\ht\nextbox
\scratchdepth \dp\nextbox
- \setbox\nextbox\hpack
+ \setbox\nextbox\hbox % \hpack ?
{\framed[\c!frame=\v!off,#2]{\box\nextbox}}%
\strc_references_set_simple_reference{#1}%
- \setbox\nextbox\hpack attr \destinationattribute \currentdestinationattribute % \hpack ?
+ \setbox\nextbox\hbox attr \destinationattribute \currentdestinationattribute % \hpack ?
{\strc_references_flush_destination_nodes
\box\nextbox}%
\setbox\nextbox\hpack{\box\nextbox}%
@@ -502,7 +494,7 @@
\def\strc_references_content_nop_finish#1#2%
{\strc_references_set_simple_reference{#1}%
- \hpack attr \destinationattribute \currentdestinationattribute % \hpack ?
+ \hbox attr \destinationattribute \currentdestinationattribute % \hpack ?
{\strc_references_flush_destination_nodes
\box\nextbox}%
\egroup}
@@ -510,31 +502,34 @@
%D \macros
%D {everyreference}
%D
-%D For rather tricky purposes, one can assign sanitizing macros to \type
-%D {\everyreference} (no longer that relevant).
+%D For rather tricky purposes, one can assign sanitizing
+%D macros to \type{\everyreference} (no longer that relevant).
\newevery \everyreference \relax
-%D This is really needed, since for instance Polish has a different alphabet and
-%D needs accented entries in registers.
+%D This is really needed, since for instance Polish has a
+%D different alphabet and needs accented entries in registers.
\appendtoks
\cleanupfeatures
\to \everyreference
-%D We did not yet discuss prefixing. Especially in interactive documents, it's not
-%D always easy to keep track of duplicate references. The prefix mechanism, which we
-%D will describe later on, solves this problem. By (automatically) adding a prefix
-%D one keeps references local, but the global ones in view. To enable this feature,
-%D we explictly split the prefix from the reference.
+%D We did not yet discuss prefixing. Especially in interactive
+%D documents, it's not always easy to keep track of duplicate
+%D references. The prefix mechanism, which we will describe
+%D later on, solves this problem. By (automatically) adding a
+%D prefix one keeps references local, but the global ones in
+%D view. To enable this feature, we explictly split the prefix
+%D from the reference.
\let\referenceprefix\empty
-%D For a long time the only way to access an external file was to use the file
-%D prefix (\type {somefile::}. However, when you split up a document, redefining the
-%D references may be such a pain, that another approach is feasible. By setting the
-%D \type {autofile} variable to \type {yes} or \type {page}, you can access the
-%D reference directly.
+%D For a long time the only way to access an external file was
+%D to use the file prefix (\type {somefile::}. However, when
+%D you split up a document, redefining the references may be
+%D such a pain, that another approach is feasible. By setting
+%D the \type {autofile} variable to \type {yes} or \type
+%D {page}, you can access the reference directly.
%D
%D \starttabulate[||||]
%D \NC filename::tag \NC page(filename::pnum) \NC tag \NC\NR
@@ -545,9 +540,9 @@
\unexpanded\def\usereferences[#filename]{} % obsolete
-%D As mentioned we will also use the cross reference mechanism for navigational
-%D purposes. The main reason for this is that we want to treat both categories
-%D alike:
+%D As mentioned we will also use the cross reference mechanism
+%D for navigational purposes. The main reason for this is that
+%D we want to treat both categories alike:
%D
%D \starttyping
%D \goto{go back}[PreviousJump]
@@ -558,13 +553,15 @@
%D \type{colofon page} reference is, apart from hyperlinking, a
%D rather normal reference.
%D
-%D We already saw that cross refences are written to and read from a file. The pure
-%D navigational ones don't need to be written to file, but both for fast processing
-%D and transparant integration, they are saved internally as a sort of reference. We
-%D can easily distinguish such system references from real cross reference ones by
-%D their tag.
+%D We already saw that cross refences are written to and read
+%D from a file. The pure navigational ones don't need to be
+%D written to file, but both for fast processing and
+%D transparant integration, they are saved internally as a sort
+%D of reference. We can easily distinguish such system
+%D references from real cross reference ones by their tag.
%D
-%D We also use the odd/even characteristic to determine the page state.
+%D We also use the odd/even characteristic to determine the
+%D page state.
\let\currentrealreference \empty
\let\currentpagereference \empty
@@ -579,10 +576,11 @@
%
% 0 = no page ref, 1=same page, 2=before, 3=after
-%D Cross references appear as numbers (figure~1.1, chapter~2) or pagenumbers
-%D (page~2, page 3--2), and are called with \type {\in} and \type {\at}. In
-%D interactive documents we also have \type {\goto}, \type {\button} and alike.
-%D These are more versatile and look like:
+%D Cross references appear as numbers (figure~1.1, chapter~2)
+%D or pagenumbers (page~2, page 3--2), and are called with
+%D \type{\in} and \type{\at}. In interactive documents we also
+%D have \type{\goto}, \type{\button} and alike. These are more
+%D versatile and look like:
%D
%D \starttyping
%D \goto[reference]
@@ -594,19 +592,23 @@
%D \goto[action{argument}]
%D \stoptyping
%D
-%D The first one is a normal reference, the second and third are references to a
-%D file or \URL. The brace delimited references for instance refer to a \JAVASCRIPT.
-%D The last example shows that we can pass arguments to the actions.
+%D The first one is a normal reference, the second and third
+%D are references to a file or \URL. The brace delimited
+%D references for instance refer to a \JAVASCRIPT. The last
+%D example shows that we can pass arguments to the actions.
%D
-%D Now we've come to the testing step. As we can see below, this macro does bit more
-%D than testing: it also resolves the reference. This means that whenever we test
-%D for the existance of a reference at an outer level, we have all the relevant
-%D properties of that reference avaliable inside the true branche~(\type {#2}).
+%D Now we've come to the testing step. As we can see below,
+%D this macro does bit more than testing: it also resolves
+%D the reference. This means that whenever we test for the
+%D existance of a reference at an outer level, we have all the
+%D relevant properties of that reference avaliable inside the
+%D true branche~(\type{#2}).
%D
-%D The prefix has to do with localizing references. When a prefix is set, looking
-%D for a reference comes to looking for the prefixed one, and when not found,
-%D looking for the non prefixed one. Consider for instance the prefix set to \type
-%D {sidetrack}.
+%D The prefix has to do with localizing references. When a
+%D prefix is set, looking for a reference comes to looking for
+%D the prefixed one, and when not found, looking for the non
+%D prefixed one. Consider for instance the prefix set to
+%D \type{sidetrack}.
%D
%D \starttyping
%D \pagereference[important]
@@ -623,15 +625,17 @@
%D ...{sidetrack}{important}...
%D \stoptyping
%D
-%D Now when we call for \type{unimportant}, we will indeed get the pagenumber
-%D associated to this reference. But when we call for \type{important}, while the
-%D prefix is still set, we will get the pagenumber bound to the prefixed one.
+%D Now when we call for \type{unimportant}, we will indeed get
+%D the pagenumber associated to this reference. But when we
+%D call for \type{important}, while the prefix is still set, we
+%D will get the pagenumber bound to the prefixed one.
%D
%D {\em Some day, when processing time and memory are no longer
%D performance factors, we will introduce multi||level
%D prefixes.}
%D
-%D Before we start analyzing, I introduce a general definition macro. Consider:
+%D Before we start analyzing, I introduce a general
+%D definition macro. Consider:
%D
%D \starttyping
%D \goto{do}[JS(My_Script{"test",123}),titlepage]
@@ -648,7 +652,8 @@
%D
%D \showsetup{definereference}
%D
-%D We can trace references by setting the next switch to true.
+%D We can trace references by setting the next switch to
+%D true.
\unexpanded\def\definereference
{\dodoubleempty\strc_references_define_reference}
@@ -668,22 +673,23 @@
%D \goto{somewhere}[JS(somescript),nextpage,JS(anotherscript)]
%D \stoptyping
%D
-%D Actually supporting chains is up to the special driver. Here we only provide the
-%D hooks.
+%D Actually supporting chains is up to the special driver. Here
+%D we only provide the hooks.
%D \macros
%D {highlighthyperlinks}
%D
-%D The next switch can be used to make user hyperlinks are not highlighted when
-%D clicked on.
+%D The next switch can be used to make user hyperlinks are
+%D not highlighted when clicked on.
\newconditional\highlighthyperlinks \settrue\highlighthyperlinks
%D \macros
%D {gotonewwindow}
%D
-%D To make the {\em goto previous jump} feature more convenient when using more than
-%D one file, it makes sense to force the viewer to open a new window for each file
+%D To make the {\em goto previous jump} feature more
+%D convenient when using more than one file, it makes sense
+%D to force the viewer to open a new window for each file
%D opened.
\newconditional\gotonewwindow \setfalse\gotonewwindow
@@ -702,11 +708,13 @@
\let\doifreferencefoundelse \doifelsereferencefound
-%D The tester only splits the reference in components but does not look into them.
-%D The following macro does a preroll and determines for instance the current real
-%D reference pagenumber. The \type {\currentrealreference} macro does the same so
-%D unless one wants to use the pagestate the next macro seldom needs to be called.
-%D
+%D The tester only splits the reference in components but does
+%D not look into them. The following macro does a preroll and
+%D determines for instance the current real reference pagenumber.
+%D The \type {\currentrealreference} macro does the same so unless
+%D one wants to use the pagestate the next macro seldom needs to
+%D be called.
+
%D The inner case is simple. Only two cases have to be taken
%D care of:
%D
@@ -715,8 +723,8 @@
%D \goto{some text}[prefix:reference]
%D \stoptyping
%D
-%D References to other files however are treated strict or tolerant, depending on
-%D their loading and availability:
+%D References to other files however are treated strict or
+%D tolerant, depending on their loading and availability:
%D
%D \starttyping
%D \useexternaldocument[somefile][filename][a nice description]
@@ -726,61 +734,72 @@
%D \goto{unchecked reference}[anotherfile::reference]
%D \stoptyping
%D
-%D An unknown reference is reported on the screen, in the log file and, when
-%D enabled, in the left margin of the text.
+%D An unknown reference is reported on the screen, in the log
+%D file and, when enabled, in the left margin of the text.
\let\unknownreference\gobbleoneargument
-%D When a reference is not found, we typeset a placeholder (two glyphs are often
-%D enough to represent the reference text).
+%D When a reference is not found, we typeset a placeholder
+%D (two glyphs are often enough to represent the reference
+%D text).
\def\dummyreference{{\tttf ??}}
\def\emptyreference{{\tttf !!}}
-%D To prevent repetitive messages concerning a reference being defined, we set such
-%D an unknown reference to an empty one after the first encounter.
-%D
-%D Apart from cross references supplied by the user, \CONTEXT\ generates cross
-%D references itself. Most of them are not saved as a reference, but stored with
-%D their source, for instance a list or an index entry. Such automatically
-%D generated, for the user invisible, references are called {\em internal
-%D references}. The user supplied ones are labeled as {\em external references}.
-%D
-%D A second important characteristic is that when we want to support different
-%D backends (viewers), we need to support named destinations as well as page
-%D numbers. I invite readers to take a glance at the special driver modules to
-%D understand the fine points of this. As a result we will deal with {\em locations}
-%D as well as {\em real page numbers}. We explictly call this pagenumber a real one,
-%D because it is independant of the page numbering scheme used in the document.
-%D
-%D One of the reasons for \CONTEXT\ being the first \TEX\ base macropackage to
-%D support sophisticated interactive \PDF\ files, lays in the mere fact that real
-%D page numbers are available in most two pass data, like references, list data and
-%D index entries.
-%D
-%D We will speak of \type {thisis...} when we are marking a location, and
-%D \type {goto...} when we point to such a location. The latter one can be seen as a
-%D hyperlink to the former one. In the next macros one we use constructs like:
+%D To prevent repetitive messages concerning a reference
+%D being defined, we set such an unknown reference to an empty
+%D one after the first encounter.
+
+%D Apart from cross references supplied by the user, \CONTEXT\
+%D generates cross references itself. Most of them are not
+%D saved as a reference, but stored with their source, for
+%D instance a list or an index entry. Such automatically
+%D generated, for the user invisible, references are called
+%D {\em internal references}. The user supplied ones are
+%D labeled as {\em external references}.
+%D
+%D A second important characteristic is that when we want to
+%D support different backends (viewers), we need to support
+%D named destinations as well as page numbers. I invite readers
+%D to take a glance at the special driver modules to understand
+%D the fine points of this. As a result we will deal with {\em
+%D locations} as well as {\em real page numbers}. We explictly
+%D call this pagenumber a real one, because it is independant
+%D of the page numbering scheme used in the document.
+%D
+%D One of the reasons for \CONTEXT\ being the first \TEX\ base
+%D macropackage to support sophisticated interactive \PDF\
+%D files, lays in the mere fact that real page numbers are
+%D available in most two pass data, like references, list data
+%D and index entries.
+%D
+%D We will speak of \type{thisis...} when we are marking a
+%D location, and \type{goto...} when we point to such a
+%D location. The latter one can be seen as a hyperlink to the
+%D former one. In the next macros one we use constructs like:
%D
%D \starttyping
%D \dostart...
%D \dostop...
%D \stoptyping
%D
-%D The flag \type {\iflocation} signals if we're in interactive mode.
+%D Such macros are used to invoke the relevant specials from
+%D the special driver modules (see \type{spec-ini}). The flag
+%D \type{\iflocation} signals if we're in interactive mode.
\ifdefined\buttonheight \else \newdimen\buttonheight \fi
\ifdefined\buttonwidth \else \newdimen\buttonwidth \fi
-%D Internal references can best be set using the next few macros. Setting such
-%D references to unique values is completely up to the macros that call them.
+%D Internal references can best be set using the next few
+%D macros. Setting such references to unique values is
+%D completely up to the macros that call them.
%D
%D \starttyping
%D \thisissomeinternal{tag}{identifier}
%D \gotosomeinternal {tag}{identifier}{pagenumber}{text}
%D \stoptyping
-%D
-%D We could do this in \LUA\ \unknown
+
+%D We could do this in lua ...
\newif \iflocation
\newcount\locationcount
@@ -804,7 +823,7 @@
\clf_setinternalreference
reference {#kind:#name}% no view
\relax
- \hpack attr \destinationattribute\lastdestinationattribute{}%
+ \hbox attr \destinationattribute\lastdestinationattribute{}%
\endgroup}
\installcorenamespace{savedinternalreference}
@@ -826,10 +845,12 @@
\def\gotonextinternal#text#target%
{\directgoto{#text}[internal(#target)]}
-%D In this module we define three system references: one for handling navigational,
-%D viewer specific, commands, another for jumping to special pages, like the first
-%D or last one, and a third reference for linking tree like lists, like tables of
-%D contents. The latter two adapt themselves to the current state.
+%D In this module we define three system references: one for
+%D handling navigational, viewer specific, commands, another
+%D for jumping to special pages, like the first or last one,
+%D and a third reference for linking tree like lists, like
+%D tables of contents. The latter two adapt themselves to the
+%D current state.
%D
%D An example of an action is:
%D
@@ -842,10 +863,11 @@
%D \starttyping
%D \goto{some text}[\v!action(PreviousJump]
%D \stoptyping
-%D
-%D One can also activate an automatic prefix mechanism. By setting the
-%D \type {\prefix} variable to \type {+}, the prefix is incremented, when set to
-%D \type {-} or empty, the prefix is reset. Other values become the prefix.
+
+%D One can also activate an automatic prefix mechanism. By
+%D setting the \type{\prefix} variable to \type{+}, the prefix
+%D is incremented, when set to \type{-} or empty, the prefix is
+%D reset. Other values become the prefix.
\newcount\prefixcounter
@@ -870,6 +892,13 @@
\unexpanded\def\setupglobalreferenceprefix[#prefix]%
{\xdef\referenceprefix{#prefix}}
+% \unexpanded\def\pushreferenceprefix#prefix%
+% {\pushmacro\referenceprefix
+% \xdef\referenceprefix{#prefix}} % global
+
+% \unexpanded\def\popreferenceprefix
+% {\popmacro\referenceprefix}
+
\unexpanded\def\globalpushreferenceprefix#prefix%
{\xdef\referenceprefix{\clf_pushreferenceprefix{#prefix}}}
@@ -906,14 +935,16 @@
\setupreferenceprefix[\referencingparameter\c!prefix]
\to \everysetupreferencing
-%D We can typeset a reference using \type {\in}, \type {\at} and \type {\about} and
-%D goto specific locations using \type {\goto}. The last one does not make that much
-%D sense in a paper document. To complicate things, \PLAIN\ \TEX\ also implements an
-%D \type {\in} but fortunately that one only makes sense in math mode.
+%D We can typeset a reference using \type{\in}, \type{\at} and
+%D \type{\about} and goto specific locations using
+%D \type{\goto}. The last one does not make that much sense in
+%D a paper document. To complicate things, \PLAIN\ \TEX\ also
+%D implements an \type {\in} but fortunately that one only
+%D makes sense in math mode.
%D
-%D Typesetting the reference is a bit more complicated than one would at first sight
-%D expect. This is due to the fact that we distinguish three (five) alternative
-%D calls:
+%D Typesetting the reference is a bit more complicated than one
+%D would at first sight expect. This is due to the fact that we
+%D distinguish three (five) alternative calls:
%D
%D \placefigure
%D [here][three calls]
@@ -940,11 +971,25 @@
%D \getbuffer
%D \stoplines
%D
-%D The dual \type {{}} results in a split reference. In a document meant for paper,
-%D one is tempted to use the last (most straightforward) alternative. When a
-%D document is also meant voor electronic distribution, the former alternatives have
-%D preference, because everything between the \type {\in} and~\type {[} becomes
-%D active (and when asked for, typeset in a different color and typeface).
+%D The dual \type{{}} results in a split reference. In a
+%D document meant for paper, one is tempted to use the last
+%D (most straightforward) alternative. When a document is also
+%D meant voor electronic distribution, the former alternatives
+%D have preference, because everything between the \type{\in}
+%D and~\type{[} becomes active (and when asked for, typeset
+%D in a different color and typeface).
+
+% \unexpanded\def\in {\mathortext\donormalmathin \strc_references_in}
+% \unexpanded\def\at {\mathortext\donormalmathat \strc_references_at}
+% \unexpanded\def\about{\mathortext\donormalmathabout\strc_references_about}
+% \unexpanded\def\from {\mathortext\donormalmathfrom \strc_references_from}
+% \unexpanded\def\over {\mathortext\donormalmathover \strc_references_about}
+
+% \definecommand in {\strc_references_in}
+% \definecommand at {\strc_references_at}
+% \definecommand about {\strc_references_about}
+% \definecommand from {\strc_references_from}
+% \definecommand over {\strc_references_about} % needed here, else math problems
\appendtoks
\ifdefined\in \let\normalmathin \in \unexpanded\def\in {\mathortext\normalmathin \strc_references_in } \else \let\in \strc_references_in \fi
@@ -964,7 +1009,8 @@
\def\currentreferencedefault {\clf_filterreference{default}}
\def\currentreferencerealpage{\clf_filterreference{realpage}}
-%D The most straightforward way of retrieving references is using \type {\ref}.
+%D The most straightforward way of retrieving references is
+%D using \type{\ref}.
\unexpanded\def\getreference % checking, unexpanded
{\dodoubleargument\strc_references_get_reference}
@@ -994,11 +1040,12 @@
\referencingparameter\c!right
\endgroup}
-%D The previously discussed setup macro lets us specify the representation of
-%D references. A symbol reference does not show the specific data, like the number
-%D of a figure, but shows one of: \hbox {$^\goforwardcharacter$
-%D $^\gobackwardcharacter$ $^\gonowherecharacter$}, depending on the direction to
-%D go.
+%D The previously discussed setup macro lets us specify the
+%D representation of references. A symbol reference does not
+%D show the specific data, like the number of a figure, but
+%D shows one of: \hbox {$^\goforwardcharacter$
+%D $^\gobackwardcharacter$ $^\gonowherecharacter$}, depending
+%D on the direction to go.
%D
%D \starttyping
%D ... \somewhere{backward text}{forward text}[someref] ...
@@ -1094,7 +1141,7 @@
\expandafter\sixthofsixarguments \fi}
\unexpanded\def\referencesymbol
- {\hpack\bgroup
+ {\hbox\bgroup
\strut
\markreferencepage
\high
@@ -1163,23 +1210,17 @@
\newtoks\defaultleftreferencetoks
\newtoks\defaultrightreferencetoks
-%def\leftofreferencecontent {\nobreakspace} % we cannot do \definereferenceformat[at] .. so we need this
+\def\leftofreferencecontent {\nobreakspace} % we cannot do \definereferenceformat[at] .. so we need this
\let\rightofreferencecontent \empty
\let\leftofreference \empty
\let\rightofreference \empty
-\unexpanded\def\leftofreferencecontent
- {\removeunwantedspaces
- \nonbreakablespace
- \ignorespaces}
-
\installcorenamespace{referencinginteraction}
\def\strc_references_interaction_all
{\the\leftreferencetoks
\doifelsesometoks\leftreferencetoks \leftofreferencecontent \donothing
\leftofreference
- \doifelsesometoks\leftreferencetoks\onlynonbreakablespace\relax % new, replace space by nonbreakable if present
\currentreferencecontent
\rightofreference
\doifelsesometoks\rightreferencetoks\rightofreferencecontent\donothing
@@ -1201,6 +1242,15 @@
\setvalue{\??referencinginteraction\v!symbol}%
{\referencesymbol}
+% \def\referencesequence
+% {\csname\??referencinginteraction
+% \ifcsname\??referencinginteraction\referencingparameter\c!interaction\endcsname
+% \referencingparameter\c!interaction
+% \else
+% \v!all
+% \fi
+% \endcsname}
+
\def\referencesequence
{\ifcsname\??referencinginteraction\referencingparameter\c!interaction\endcsname
\expandafter\lastnamedcs
@@ -1261,8 +1311,9 @@
%D \macros
%D {definereferenceformat}
%D
-%D The next few macros were made for for David Arnold and Taco Hoekwater. They can
-%D be used for predefining reference texts, and thereby stimulate efficiency.
+%D The next few macros were made for for David Arnold and Taco
+%D Hoekwater. They can be used for predefining reference
+%D texts, and thereby stimulate efficiency.
%D
%D \starttyping
%D \definereferenceformat[informula] [left=(,right=),text=formula]
@@ -1277,11 +1328,11 @@
%D the \informulas [b] \andformula [for:c]
%D \stoptyping
%D
-%D Instead of a text, one can specify a label, which should be defined with \type
-%D {\setuplabeltext}.
+%D Instead of a text, one can specify a label, which should
+%D be defined with \type {\setuplabeltext}.
%D
-%D Watch out: the second argument is somewhat special and mostly meant for a suffix
-%D to a number:
+%D Watch out: the second argument is somewhat special and mostly
+%D meant for a suffix to a number:
%D
%D \startbuffer
%D \definereferenceformat [intesta] [left=(,right=),text=Whatever~]
@@ -1386,18 +1437,21 @@
%
% \definereferenceformat[hellup][text=Hellup ,setups=referenceformat:numberplustext]
-%D In interactive documents going to a specific location is not bound to cross
-%D references. The \type {\goto} commands can be used to let users access another
-%D part of the document. In this respect, interactive tables of contents and
-%D registers can be considered goto's. Because in fact a \type {\goto} is just a
-%D reference without reference specific data, the previous macros are implemented
-%D using the goto functionality.
+%D In interactive documents going to a specific location is not
+%D bound to cross references. The \type{\goto} commands can be
+%D used to let users access another part of the document. In
+%D this respect, interactive tables of contents and registers
+%D can be considered goto's. Because in fact a \type{\goto} is
+%D just a reference without reference specific data, the
+%D previous macros are implemented using the goto
+%D functionality.
%D
%D \showsetup{goto}
%D
-%D One important characteristic is that the first argument of \type {\goto} (and
-%D therefore \type {\at} and \type {\in} is split at spaces. This means that,
-%D although hyphenation is prevented, long references can cross line endings.
+%D One important characteristic is that the first argument of
+%D \type{\goto} (and therefore \type{\at} and \type{\in} is
+%D split at spaces. This means that, although hyphenation is
+%D prevented, long references can cross line endings.
% \starttext
% \setupinteraction[state=start]
@@ -1686,19 +1740,21 @@
\clf_doifelsereference{\referenceprefix}{#label}{\extrareferencearguments}%
{\clf_injectcurrentreference
\global\lastsavedreferenceattribute\lastreferenceattribute
- \hpack attr \referenceattribute \lastreferenceattribute {\box\scratchbox}}
+ \hbox attr \referenceattribute \lastreferenceattribute {\box\scratchbox}}
{\box\scratchbox}%
\endgroup}
-%D An reference to another document can be specified as a file or as an \URL. Both
-%D are handled by the same mechanism and can be issued by saying something like:
+%D An reference to another document can be specified as a file
+%D or as an \URL. Both are handled by the same mechanism and
+%D can be issued by saying something like:
%D
%D \starttyping
%D \goto[dictionary::the letter a]
%D \stoptyping
%D
-%D One can imagine that many references to such a dictionary are made, so in most
-%D cases such a document reference in an indirect one.
+%D One can imagine that many references to such a dictionary
+%D are made, so in most cases such a document reference in an
+%D indirect one.
%D
%D \showsetup{useexternaldocument}
%D
@@ -1710,8 +1766,8 @@
%D [The Famous English Dictionary]
%D \stoptyping
%D
-%D The next macro implements these relations, and also take care of loading the
-%D document specific references.
+%D The next macro implements these relations, and also take
+%D care of loading the document specific references.
%D
%D The \URL\ alternative takes four arguments:
%D
@@ -1733,8 +1789,9 @@
%D \useURL [id] [url]
%D \stoptyping
%D
-%D This time we don't load the references when no file is specified. This is logical
-%D when one keeps in mind that a valid \URL\ can also be a mail address.
+%D This time we don't load the references when no file is
+%D specified. This is logical when one keeps in mind that a
+%D valid \URL\ can also be a mail address.
\unexpanded\def\useurl {\doquadrupleempty\strc_references_use_url } % so that they can be used in expanded arguments
\unexpanded\def\usefile{\dotripleargument\strc_references_use_file} % so that they can be used in expanded arguments
@@ -1757,7 +1814,8 @@
%D \macros
%D {url,setupurl}
%D
-%D We also have: \type {\url} for directly calling the description. So we can say:
+%D We also have: \type{\url} for directly calling the
+%D description. So we can say:
%D
%D \starttyping
%D \useURL [one] [http://www.test.nl]
@@ -1785,8 +1843,8 @@
\hyphenatedurl{\clf_geturl{#label}}%
\endgroup}
-%D This macro is hooked into a support macro, and thereby \URL's break ok, according
-%D to the setting of a switch,
+%D This macro is hooked into a support macro, and thereby
+%D \URL's break ok, according to the setting of a switch,
%D
%D \startbuffer
%D \useURL
@@ -1800,8 +1858,9 @@
%D
%D \getbuffer
-%D When defining the external source of information, one can also specify a suitable
-%D name (the last argument). This name can be called upon with:
+%D When defining the external source of information, one can
+%D also specify a suitable name (the last argument). This name
+%D can be called upon with:
%D
%D \showsetup{from}
%D
@@ -1836,8 +1895,9 @@
%D \goto{some text}[identifier::location]
%D \stoptyping
-%D A special case of references are those to programs. These, very system dependant
-%D references are implemented by abusing some of the previous macros.
+%D A special case of references are those to programs. These,
+%D very system dependant references are implemented by abusing
+%D some of the previous macros.
%D
%D \showsetup{setupprograms}
%D \showsetup{defineprogram}
@@ -1858,14 +1918,15 @@
\def\strc_references_define_program[#name][#program][#description]%
{\clf_defineprogram{#name}{#program}{#description}}
-\unexpanded\def\program[#name]% incompatible, more consistent, hardy used anyway
+\def\program[#name]% incompatible, more consistent, hardy used anyway
{\dontleavehmode
\begingroup
\useprogramsstyleandcolor\c!style\c!color
\clf_getprogram{#name}%
\endgroup}
-%D As we can see, we directly use the special reference mechanism, which means that
+%D As we can see, we directly use the special reference
+%D mechanism, which means that
%D
%D \starttyping
%D \goto{some text}[program(name{args})]
@@ -1873,10 +1934,11 @@
%D
%D is valid.
-%D The next macro provides access to the actual pagenumbers. When documenting and
-%D sanitizing the original reference macros, I decided to keep the present meaning
-%D as well as to make this meaning available as a special reference method. So now
-%D one can use:
+%D The next macro provides access to the actual pagenumbers.
+%D When documenting and sanitizing the original reference
+%D macros, I decided to keep the present meaning as well as to
+%D make this meaning available as a special reference method.
+%D So now one can use:
%D
%D \starttyping
%D \gotopage{some text}[location]
@@ -1905,7 +1967,8 @@
\def\gotopage#text[#target]%
{\goto{#text}[\v!page(#target)]}
-%D The previous definitions are somewhat obsolete so we don't use it here.
+%D The previous definitions are somewhat obsolete so we don't
+%D use it here.
%D We can cross link documents by using:
%D
@@ -1917,14 +1980,16 @@
%D \coupledocument[print][somefile][chapter,section]
%D \stoptyping
%D
-%D After which when applicable, we have available the references:
+%D After which when applicable, we have available the
+%D references:
%D
%D \starttyping
%D \goto{print version}[print::chapter]
%D \stoptyping
%D
-%D and alike. The title placement definition macros have a key \type {file}, which
-%D is interpreted as the file to jump to, that is, when one clicks on the title.
+%D and alike. The title placement definition macros have a
+%D key \type{file}, which is interpreted as the file to jump
+%D to, that is, when one clicks on the title.
\def\coupledocument
{\doquadrupleempty\strc_references_couple_document}
@@ -1937,8 +2002,8 @@
%D \macros
%D {dotextprefix}
%D
-%D In previous macros we used \type {\dotextprefix} to generate a space between
-%D a label and a number.
+%D In previous macros we used \type {\dotextprefix} to
+%D generate a space between a label and a number.
%D
%D \starttyping
%D \dotextprefix{text}
@@ -1961,8 +2026,9 @@
\fi
\endgroup}
-%D In the next settings we see some variables that were not used here and that
-%D concern the way the pagenumbers refered to are typeset.
+%D In the next settings we see some variables that were not
+%D used here and that concern the way the pagenumbers refered
+%D to are typeset.
\setupreferencing
[\c!state=\v!start,
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-reg.lua b/Master/texmf-dist/tex/context/base/mkiv/strc-reg.lua
index 47ba1c5338b..2c667fba3cc 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-reg.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-reg.lua
@@ -7,7 +7,7 @@ if not modules then modules = { } end modules ['strc-reg'] = {
}
local next, type, tonumber = next, type, tonumber
-local char, format, gmatch = string.char, string.format, string.gmatch
+local format, gmatch = string.format, string.gmatch
local equal, concat, remove = table.are_equal, table.concat, table.remove
local lpegmatch, P, C, Ct = lpeg.match, lpeg.P, lpeg.C, lpeg.Ct
local allocate = utilities.storage.allocate
@@ -38,7 +38,6 @@ local texgetcount = tex.getcount
local variables = interfaces.variables
local v_forward = variables.forward
local v_all = variables.all
-local v_no = variables.no
local v_yes = variables.yes
local v_packed = variables.packed
local v_current = variables.current
@@ -48,7 +47,7 @@ local v_last = variables.last
local v_text = variables.text
local context = context
-local ctx_latelua = context.latelua
+local commands = commands
local implement = interfaces.implement
@@ -82,12 +81,10 @@ local ctx_startregisterpages = context.startregisterpages
local ctx_stopregisterpages = context.stopregisterpages
local ctx_startregisterseewords = context.startregisterseewords
local ctx_stopregisterseewords = context.stopregisterseewords
-
local ctx_registerentry = context.registerentry
local ctx_registerseeword = context.registerseeword
local ctx_registerpagerange = context.registerpagerange
local ctx_registeronepage = context.registeronepage
-
local ctx_registerpacked = context.registerpacked
-- possible export, but ugly code (overloads)
@@ -455,6 +452,23 @@ local tagged = { }
local function preprocessentries(rawdata)
local entries = rawdata.entries
if entries then
+ --
+ -- local e = entries[1] or ""
+ -- local k = entries[2] or ""
+ -- local et, kt, entryproc, pageproc
+ -- if type(e) == "table" then
+ -- et = e
+ -- else
+ -- entryproc, e = splitprocessor(e)
+ -- et = lpegmatch(entrysplitter,e)
+ -- end
+ -- if type(k) == "table" then
+ -- kt = k
+ -- else
+ -- pageproc, k = splitprocessor(k)
+ -- kt = lpegmatch(entrysplitter,k)
+ -- end
+ --
local processors = rawdata.processors
local et = entries.entries
local kt = entries.keys
@@ -519,7 +533,6 @@ local function storeregister(rawdata) -- metadata, references, entries
metadata.kind = "entry"
end
--
- --
if not metadata.catcodes then
metadata.catcodes = tex.catcodetable -- get
end
@@ -568,20 +581,17 @@ local function storeregister(rawdata) -- metadata, references, entries
return #entries
end
-local function enhanceregister(specification)
- local name = specification.name
- local n = specification.n
- local saved = tobesaved[name]
- local data = saved.metadata.notsaved and collected[name] or saved
+registers.store = storeregister
+
+function registers.enhance(name,n)
+ local data = tobesaved[name].metadata.notsaved and collected[name] or tobesaved[name]
local entry = data.entries[n]
if entry then
entry.references.realpage = texgetcount("realpageno")
end
end
--- This can become extendregister(specification)!
-
-local function extendregister(name,tag,rawdata) -- maybe do lastsection internally
+function registers.extend(name,tag,rawdata) -- maybe do lastsection internally
if type(tag) == "string" then
tag = tagged[tag]
end
@@ -625,10 +635,6 @@ local function extendregister(name,tag,rawdata) -- maybe do lastsection internal
end
end
-registers.store = storeregister
-registers.enhance = enhanceregister
-registers.extend = extendregister
-
function registers.get(tag,n)
local list = tobesaved[tag]
return list and list.entries[n]
@@ -636,24 +642,13 @@ end
implement {
name = "enhanceregister",
+ actions = registers.enhance,
arguments = { "string", "integer" },
- actions = function(name,n)
- enhanceregister { name = name, n = n } -- todo: move to scanner
- end,
-}
-
-implement {
- name = "deferredenhanceregister",
- arguments = { "string", "integer" },
- protected = true,
- actions = function(name,n)
- ctx_latelua { action = enhanceregister, name = name, n = n }
- end,
}
implement {
name = "extendregister",
- actions = extendregister,
+ actions = registers.extend,
arguments = "2 strings",
}
@@ -719,8 +714,7 @@ function registers.compare(a,b)
local ka = a.metadata.kind
local kb = b.metadata.kind
if ka == kb then
- local page_a = a.references.realpage
- local page_b = b.references.realpage
+ local page_a, page_b = a.references.realpage, b.references.realpage
if not page_a or not page_b then
return 0
elseif page_a < page_b then
@@ -745,7 +739,7 @@ local seeindex = 0
-- meerdere loops, seewords, dan words, anders seewords
-local function crosslinkseewords(result,check) -- all words
+local function crosslinkseewords(result) -- all words
-- collect all seewords
local seewords = { }
for i=1,#result do
@@ -789,17 +783,24 @@ local function crosslinkseewords(result,check) -- all words
local seeparent = seeparents[text]
if seeparent then
local seeindex = seewords[text]
+ local s, ns, d, w, l = { }, 0, data.split, seeparent.split, data.list
+ -- trick: we influence sorting by adding fake subentries
+ for i=1,#d do
+ ns = ns + 1
+ s[ns] = d[i] -- parent
+ end
+ for i=1,#w do
+ ns = ns + 1
+ s[ns] = w[i] -- see
+ end
+ data.split = s
+ -- we also register a fake extra list entry so that the
+ -- collapser works okay
+ l[#l+1] = { text, "" }
data.references.seeindex = seeindex
if trace_registers then
report_registers("see crosslink %03i: %s",seeindex,text)
end
- seeword.valid = true
- elseif check then
- report_registers("invalid crosslink : %s, %s",text,"ignored")
- seeword.valid = false
- else
- report_registers("invalid crosslink : %s, %s",text,"passed")
- seeword.valid = true
end
end
end
@@ -823,22 +824,17 @@ local function removeemptyentries(result)
end
end
-function registers.prepare(data,options)
+function registers.prepare(data)
-- data has 'list' table
local strip = sorters.strip
local splitter = sorters.splitters.utf
local result = data.result
if result then
- local seeprefix = char(0)
for i=1, #result do
local entry = result[i]
local split = { }
local list = entry.list
if list then
- if entry.seeword then
- -- we can have multiple seewords, only two levels supported
- list[#list+1] = { seeprefix .. strip(entry.seeword.text) }
- end
for l=1,#list do
local ll = list[l]
local word = ll[1]
@@ -852,7 +848,7 @@ function registers.prepare(data,options)
entry.split = split
end
removeemptyentries(result)
- crosslinkseewords(result,options.check ~= v_no)
+ crosslinkseewords(result)
end
end
@@ -865,9 +861,7 @@ function registers.sort(data,options)
end
function registers.unique(data,options)
- local result = { }
- local nofresult = 0
- local prev = nil
+ local result, nofresult, prev = { }, 0, nil
local dataresult = data.result
for k=1,#dataresult do
local v = dataresult[k]
@@ -879,8 +873,7 @@ function registers.unique(data,options)
elseif pr.realpage ~= vr.realpage then
-- ok
else
- local pl = pr.lastrealpage
- local vl = vr.lastrealpage
+ local pl, vl = pr.lastrealpage, vr.lastrealpage
if pl or vl then
if not vl then
-- ok
@@ -908,11 +901,7 @@ end
function registers.finalize(data,options) -- maps character to index (order)
local result = data.result
data.metadata.nofsorted = #result
- local split = { }
- local nofsplit = 0
- local lasttag = nil
- local done = nil
- local nofdone = 0
+ local split, nofsplit, lasttag, done, nofdone = { }, 0, nil, nil, 0
local firstofsplit = sorters.firstofsplit
for k=1,#result do
local v = result[k]
@@ -933,46 +922,8 @@ function registers.finalize(data,options) -- maps character to index (order)
data.result = split
end
--- local function analyzeregister(class,options)
--- local data = collected[class]
--- if data and data.entries then
--- options = options or { }
--- sorters.setlanguage(options.language,options.method,options.numberorder)
--- registers.filter(data,options) -- filter entries into results (criteria)
--- registers.prepare(data,options) -- adds split table parallel to list table
--- registers.sort(data,options) -- sorts results
--- registers.unique(data,options) -- get rid of duplicates
--- registers.finalize(data,options) -- split result in ranges
--- data.metadata.sorted = true
--- return data.metadata.nofsorted or 0
--- else
--- return 0
--- end
--- end
-
local function analyzeregister(class,options)
- local data = rawget(collected,class)
- if not data then
- local list = utilities.parsers.settings_to_array(class)
- local entries = { }
- local metadata = false
- for i=1,#list do
- local l = list[i]
- local d = collected[l]
- local e = d.entries
- for i=1,#e do
- entries[#entries+1] = e[i]
- end
- if not metadata then
- metadata = d.metadata
- end
- end
- data = {
- metadata = metadata or { },
- entries = entries,
- }
- collected[class] = data
- end
+ local data = collected[class]
if data and data.entries then
options = options or { }
sorters.setlanguage(options.language,options.method,options.numberorder)
@@ -1022,10 +973,8 @@ implement {
-- todo: ownnumber
local function pagerange(f_entry,t_entry,is_last,prefixspec,pagespec)
- local fer = f_entry.references
- local ter = t_entry.references
+ local fer, ter = f_entry.references, t_entry.references
ctx_registerpagerange(
- f_entry.metadata.name or "",
f_entry.processors and f_entry.processors[2] or "",
fer.internal or 0,
fer.realpage or 0,
@@ -1047,7 +996,6 @@ end
local function pagenumber(entry,prefixspec,pagespec)
local er = entry.references
ctx_registeronepage(
- entry.metadata.name or "",
entry.processors and entry.processors[2] or "",
er.internal or 0,
er.realpage or 0,
@@ -1056,8 +1004,7 @@ local function pagenumber(entry,prefixspec,pagespec)
end
local function packed(f_entry,t_entry)
- local fer = f_entry.references
- local ter = t_entry.references
+ local fer, ter = f_entry.references, t_entry.references
ctx_registerpacked(
fer.internal or 0,
ter.internal or 0
@@ -1066,12 +1013,8 @@ end
local function collapsedpage(pages)
for i=2,#pages do
- local first = pages[i-1]
- local second = pages[i]
- local first_first = first[1]
- local first_last = first[2]
- local second_first = second[1]
- local second_last = second[2]
+ local first, second = pages[i-1], pages[i]
+ local first_first, first_last, second_first, second_last = first[1], first[2], second[1], second[2]
local first_last_pn = first_last .references.realpage
local second_first_pn = second_first.references.realpage
local second_last_pn = second_last .references.realpage
@@ -1167,8 +1110,7 @@ function registers.flush(data,options,prefixspec,pagespec)
done[i] = false
end
local data = sublist.data
- local d = 0
- local n = 0
+ local d, n = 0, 0
ctx_startregistersection(sublist.tag)
for d=1,#data do
local entry = data[d]
@@ -1184,7 +1126,6 @@ function registers.flush(data,options,prefixspec,pagespec)
end
-- ok, this is tricky: we use e[i] delayed so we need it to be local
-- but we don't want to allocate too many entries so there we go
-
while d < #data do
d = d + 1
local entry = data[d]
@@ -1223,8 +1164,8 @@ function registers.flush(data,options,prefixspec,pagespec)
started = false
end
if n == i then
- -- ctx_stopregisterentries()
- -- ctx_startregisterentries(n)
+-- ctx_stopregisterentries()
+-- ctx_startregisterentries(n)
else
while n > i do
n = n - 1
@@ -1245,131 +1186,127 @@ function registers.flush(data,options,prefixspec,pagespec)
ctx_startregisterentry(0) -- will become a counter
started = true
if metadata then
- ctx_registerentry(metadata.name or "",processor,internal,seeparent,function() h_title(e[i],metadata) end)
+ ctx_registerentry(processor,internal,seeparent,function() h_title(e[i],metadata) end)
else
-- can this happen?
- ctx_registerentry("",processor,internal,seeindex,e[i])
+ ctx_registerentry(processor,internal,seeindex,e[i])
end
end
end
-
- local function case_1()
- -- we collapse ranges and keep existing ranges as they are
- -- so we get prebuilt as well as built ranges
- local first, last, prev, pages, dd, nofpages = entry, nil, entry, { }, d, 0
- while dd < #data do
- dd = dd + 1
- local next = data[dd]
- if next and next.metadata.kind == "see" then
- dd = dd - 1
- break
- else
- local el, nl = entry.list, next.list
- if not equal(el,nl) then
- dd = dd - 1
- --~ first = nil
- break
- elseif next.references.lastrealpage then
- nofpages = nofpages + 1
- pages[nofpages] = first and { first, last or first } or { entry, entry }
- nofpages = nofpages + 1
- pages[nofpages] = { next, next }
- first, last, prev = nil, nil, nil
- elseif not first then
- first, prev = next, next
- elseif next.references.realpage - prev.references.realpage == 1 then -- 1 ?
- last, prev = next, next
- else
+ if kind == 'entry' then
+ if show_page_number then
+ ctx_startregisterpages()
+ if collapse_singles or collapse_ranges then
+ -- we collapse ranges and keep existing ranges as they are
+ -- so we get prebuilt as well as built ranges
+ local first, last, prev, pages, dd, nofpages = entry, nil, entry, { }, d, 0
+ while dd < #data do
+ dd = dd + 1
+ local next = data[dd]
+ if next and next.metadata.kind == "see" then
+ dd = dd - 1
+ break
+ else
+ local el, nl = entry.list, next.list
+ if not equal(el,nl) then
+ dd = dd - 1
+ --~ first = nil
+ break
+ elseif next.references.lastrealpage then
+ nofpages = nofpages + 1
+ pages[nofpages] = first and { first, last or first } or { entry, entry }
+ nofpages = nofpages + 1
+ pages[nofpages] = { next, next }
+ first, last, prev = nil, nil, nil
+ elseif not first then
+ first, prev = next, next
+ elseif next.references.realpage - prev.references.realpage == 1 then -- 1 ?
+ last, prev = next, next
+ else
+ nofpages = nofpages + 1
+ pages[nofpages] = { first, last or first }
+ first, last, prev = next, nil, next
+ end
+ end
+ end
+ if first then
nofpages = nofpages + 1
pages[nofpages] = { first, last or first }
- first, last, prev = next, nil, next
end
- end
- end
- if first then
- nofpages = nofpages + 1
- pages[nofpages] = { first, last or first }
- end
- if collapse_ranges and nofpages > 1 then
- nofpages = collapsepages(pages)
- end
- if nofpages > 0 then -- or 0
- d = dd
- for p=1,nofpages do
- local first, last = pages[p][1], pages[p][2]
- if first == last then
- if first.references.lastrealpage then
- pagerange(first,first,true,prefixspec,pagespec)
- else
- pagenumber(first,prefixspec,pagespec)
+ if collapse_ranges and nofpages > 1 then
+ nofpages = collapsepages(pages)
+ end
+ if nofpages > 0 then -- or 0
+ d = dd
+ for p=1,nofpages do
+ local first, last = pages[p][1], pages[p][2]
+ if first == last then
+ if first.references.lastrealpage then
+ pagerange(first,first,true,prefixspec,pagespec)
+ else
+ pagenumber(first,prefixspec,pagespec)
+ end
+ elseif last.references.lastrealpage then
+ pagerange(first,last,true,prefixspec,pagespec)
+ else
+ pagerange(first,last,false,prefixspec,pagespec)
+ end
end
- elseif last.references.lastrealpage then
- pagerange(first,last,true,prefixspec,pagespec)
+ elseif entry.references.lastrealpage then
+ pagerange(entry,entry,true,prefixspec,pagespec)
else
- pagerange(first,last,false,prefixspec,pagespec)
+ pagenumber(entry,prefixspec,pagespec)
end
- end
- elseif entry.references.lastrealpage then
- pagerange(entry,entry,true,prefixspec,pagespec)
- else
- pagenumber(entry,prefixspec,pagespec)
- end
- end
-
- local function case_2()
- local first = nil
- local last = nil
- while true do
- if not first then
- first = entry
- end
- last = entry
- if d == #data then
- break
- else
- d = d + 1
- local next = data[d]
- if next.metadata.kind == "see" or not equal(entry.list,next.list) then
- d = d - 1
- break
- else
- entry = next
+ elseif collapse_packed then
+ local first = nil
+ local last = nil
+ while true do
+ if not first then
+ first = entry
+ end
+ last = entry
+ if d == #data then
+ break
+ else
+ d = d + 1
+ local next = data[d]
+ if next.metadata.kind == "see" or not equal(entry.list,next.list) then
+ d = d - 1
+ break
+ else
+ entry = next
+ end
+ end
end
- end
- end
- packed(first,last) -- returns internals
- end
-
- local function case_3()
- while true do
- if entry.references.lastrealpage then
- pagerange(entry,entry,true,prefixspec,pagespec)
+ packed(first,last) -- returns internals
else
- pagenumber(entry,prefixspec,pagespec)
- end
- if d == #data then
- break
- else
- d = d + 1
- local next = data[d]
- if next.metadata.kind == "see" or not equal(entry.list,next.list) then
- d = d - 1
- break
- else
- entry = next
+ while true do
+ if entry.references.lastrealpage then
+ pagerange(entry,entry,true,prefixspec,pagespec)
+ else
+ pagenumber(entry,prefixspec,pagespec)
+ end
+ if d == #data then
+ break
+ else
+ d = d + 1
+ local next = data[d]
+ if next.metadata.kind == "see" or not equal(entry.list,next.list) then
+ d = d - 1
+ break
+ else
+ entry = next
+ end
+ end
end
end
+ ctx_stopregisterpages()
end
- end
-
- local function case_4()
- local t = { }
- local nt = 0
+ elseif kind == 'see' then
+ local t, nt = { }, 0
while true do
- if entry.seeword and entry.seeword.valid then
- nt = nt + 1
- t[nt] = entry
- end
+ nt = nt + 1
+ t[nt] = entry
if d == #data then
break
else
@@ -1383,36 +1320,19 @@ function registers.flush(data,options,prefixspec,pagespec)
end
end
end
+ ctx_startregisterseewords()
for i=1,nt do
- local entry = t[i]
+ local entry = t[i]
local seeword = entry.seeword
local seetext = seeword.text or ""
local processor = seeword.processor or (entry.processors and entry.processors[1]) or ""
local seeindex = entry.references.seeindex or ""
- ctx_registerseeword(metadata.name or "",i,nt,processor,0,seeindex,function() h_title(seetext,metadata) end)
+ -- ctx_registerseeword(i,nt,processor,0,seeindex,seetext)
+ ctx_registerseeword(i,nt,processor,0,seeindex,function() h_title(seetext,metadata) end)
end
- end
-
- if kind == "entry" then
- if show_page_number then
- ctx_startregisterpages()
- if collapse_singles or collapse_ranges then
- case_1()
- elseif collapse_packed then
- case_2()
- else
- case_3()
- end
- ctx_stopregisterpages()
- end
- elseif kind == "see" then
- ctx_startregisterseewords()
- case_4()
ctx_stopregisterseewords()
end
-
end
-
if started then
ctx_stopregisterentry()
started = false
@@ -1453,7 +1373,6 @@ implement {
{ "numberorder" },
{ "compress" },
{ "criterium" },
- { "check" },
{ "pagenumber", "boolean" },
},
{
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-reg.mkiv b/Master/texmf-dist/tex/context/base/mkiv/strc-reg.mkiv
index 559e1bd4231..04fdef9adc2 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-reg.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-reg.mkiv
@@ -83,7 +83,6 @@
\c!pagestyle=\v!slanted,
\c!indicator=\v!yes,
\c!criterium=\v!all,
- \c!check=\v!yes, % check for weird see usage
%\c!command=,
\c!referencing=\v!on,
\c!location=\v!middle,
@@ -160,8 +159,8 @@
%D Registering:
-\glet\currentregistername \empty
-\glet\currentregisternumber\!!zerocount
+\global\let\currentregistername \empty
+\global\let\currentregisternumber\!!zerocount
\def\strc_registers_register_page_entry
{\iftrialtypesetting
@@ -176,33 +175,33 @@
\xdef\currentregisterentriesb{\registerparameter{\c!entries:2}}%
\xdef\currentregisterentriesc{\registerparameter{\c!entries:3}}%
\xmlstopraw
- \glet\currentregistercoding\s!xml}
+ \globallet\currentregistercoding\s!xml}
\def\strc_registers_register_page_expand_yes_entries
{\xdef\currentregisterentriesa{\registerparameter{\c!entries:1}}%
\xdef\currentregisterentriesb{\registerparameter{\c!entries:2}}%
\xdef\currentregisterentriesc{\registerparameter{\c!entries:3}}%
- \glet\currentregistercoding\s!tex}
+ \globallet\currentregistercoding\s!tex}
\def\strc_registers_register_page_expand_nop_entries
{\xdef\currentregisterentriesa{\detokenizedregisterparameter{\c!entries:1}}%
\xdef\currentregisterentriesb{\detokenizedregisterparameter{\c!entries:2}}%
\xdef\currentregisterentriesc{\detokenizedregisterparameter{\c!entries:3}}%
- \glet\currentregistercoding\s!tex}
+ \globallet\currentregistercoding\s!tex}
\def\strc_registers_register_page_expand_xml
{\xmlstartraw
\xdef\currentregisterentries{\registerparameter\c!entries}%
\xmlstopraw
- \glet\currentregistercoding\s!xml}
+ \globallet\currentregistercoding\s!xml}
\def\strc_registers_register_page_expand_yes
{\xdef\currentregisterentries{\registerparameter\c!entries}%
- \glet\currentregistercoding\s!tex}
+ \globallet\currentregistercoding\s!tex}
\def\strc_registers_register_page_expand_nop
{\xdef\currentregisterentries{\detokenizedregisterparameter\c!entries}%
- \glet\currentregistercoding\s!tex}
+ \globallet\currentregistercoding\s!tex}
\def\strc_registers_register_page_expand_xml_keys
{\xmlstartraw
@@ -305,7 +304,7 @@
\ifx\currentregisterownnumber\v!yes
\glet\currentregistersynchronize\relax
\else
- \xdef\currentregistersynchronize{\clf_deferredenhanceregister{\currentregister}\number\currentregisternumber}%
+ \xdef\currentregistersynchronize{\ctxlatecommand{enhanceregister("\currentregister",\currentregisternumber)}}%
\fi
\currentregistersynchronize % here?
% needs thinking ... bla\index{bla}. will break before the . but adding a
@@ -341,7 +340,7 @@
% internal \locationcount
% view {\interactionparameter\c!focus}%
\relax % this will change
- \xdef\currentregistersynchronize{\clf_deferredenhanceregister{\currentregister}\number\currentregisternumber}%
+ \xdef\currentregistersynchronize{\ctxlatecommand{enhanceregister("\currentregister",\currentregisternumber)}}%
\currentregistersynchronize % here?
\dostarttagged\t!registerlocation\currentregister
\attribute\destinationattribute\lastdestinationattribute \signalcharacter % no \strut as it will be removed during cleanup
@@ -353,46 +352,16 @@
\unexpanded\def\strc_registers_insert_entry[#1][#2]%
{\def\currentregister{#1}%
- \edef\p_ownnumber{\registerparameter\c!ownnumber}%
- \ifx\p_ownnumber\v!yes
- \expandafter\strc_registers_insert_entry_yes
- \else
- \expandafter\strc_registers_insert_entry_nop
- \fi{#2}}
-
-% \def\strc_registers_insert_entry_nop#1#2%
-% {\doflushatpar{\strc_registers_register_page_entry\currentregister{\c!keys={#1},\c!entries={#2}}{}}}
-%
-% \def\strc_registers_insert_entry_yes#1#2#3%
-% {\doflushatpar{\strc_registers_register_page_entry\currentregister{\c!keys={#1},\c!alternative=#2,\c!entries={#3}}{}}}
-%
-% less tokens passed (nicer for tracing) .. could become installable
-
-\def\strc_registers_insert_entry_nop
- {\ifvmode
- \expandafter\strc_registers_insert_entry_nop_par
- \else
- \expandafter\strc_registers_insert_entry_nop_txt
- \fi}
-
-\def\strc_registers_insert_entry_yes
- {\ifvmode
- \expandafter\strc_registers_insert_entry_yes_par
- \else
- \expandafter\strc_registers_insert_entry_yes_txt
- \fi}
-
-\def\strc_registers_insert_entry_nop_par#1#2%
- {\flushatnextpar{\strc_registers_register_page_entry\currentregister{\c!keys={#1},\c!entries={#2}}{}}}
+ \doifelse{\registerparameter\c!ownnumber}\v!yes
+ \strc_registers_insert_entry_yes
+ \strc_registers_insert_entry_nop
+ {#2}}
-\def\strc_registers_insert_entry_yes_par#1#2#3%
- {\flushatnextpar{\strc_registers_register_page_entry\currentregister{\c!keys={#1},\c!alternative=#2,\c!entries={#3}}{}}}
+\def\strc_registers_insert_entry_nop#1#2%
+ {\doflushatpar{\strc_registers_register_page_entry\currentregister{\c!keys={#1},\c!entries={#2}}{}}}
-\def\strc_registers_insert_entry_nop_txt#1#2%
- {\strc_registers_register_page_entry\currentregister{\c!keys={#1},\c!entries={#2}}{}}
-
-\def\strc_registers_insert_entry_yes_txt#1#2#3%
- {\strc_registers_register_page_entry\currentregister{\c!keys={#1},\c!alternative=#2,\c!entries={#3}}{}}
+\def\strc_registers_insert_entry_yes#1#2#3%
+ {\doflushatpar{\strc_registers_register_page_entry\currentregister{\c!keys={#1},\c!alternative=#2,\c!entries={#3}}{}}}
\unexpanded\def\startregister{\doquadrupleempty\strc_registers_start_entry}
\unexpanded\def\stopregister {\dodoubleargument\strc_registers_stop_entry}
@@ -434,14 +403,14 @@
\xmlstartraw
\xdef\currentregisterentries{\registerparameter\c!entries}%
\xmlstopraw
- \glet\currentregistercoding\s!xml
+ \globallet\currentregistercoding\s!xml
\else
\ifx\currentregisterexpansion\v!yes
\xdef\currentregisterentries{\registerparameter\c!entries}%
\else
\xdef\currentregisterentries{\detokenizedregisterparameter\c!entries}%
\fi
- \glet\currentregistercoding\s!tex
+ \globallet\currentregistercoding\s!tex
\fi
% I hate this kind of mess ... but it's a user request.
\ifx\currentregisterentries\empty
@@ -524,7 +493,7 @@
\xdef\currentregisterentries{\detokenize{#3}}% not ok yet
\xdef\currentregisterseeword{\detokenize{#4}}% not ok yet
\xmlstopraw
- \glet\currentregistercoding\s!xml
+ \globallet\currentregistercoding\s!xml
\else
\ifx\currentregisterexpansion\v!yes
\xdef\currentregisterentries{#3}% not ok yet
@@ -533,7 +502,7 @@
\xdef\currentregisterentries{\detokenize{#3}}% not ok yet
\xdef\currentregisterseeword{\detokenize{#4}}% not ok yet
\fi
- \glet\currentregistercoding\s!tex
+ \globallet\currentregistercoding\s!tex
\fi
\setnextinternalreference
% we could consider storing register entries in list
@@ -575,8 +544,8 @@
\def\strc_registers_determine_characteristics[#1][#2]%
{\begingroup
- \setupregister[#1][#2]%
- \edef\currentregister{\firstinset{#1}}%
+ \edef\currentregister{#1}%
+ \setupregister[\currentregister][#2]%
\normalexpanded{\endgroup\noexpand\xdef\noexpand\utilityregisterlength{\clf_analyzeregister
{\currentregister}%
{%
@@ -600,8 +569,6 @@
\dontcomplain
\to \everyplaceregister
-\newconditional\c_strc_registers_text_interaction
-
\unexpanded\def\placeregister
{\dodoubleempty\strc_registers_place}
@@ -609,29 +576,30 @@
{\iffirstargument
\begingroup
%\forgetall
- \setupregister[#1][#2]% can be a list
- \edef\currentregister{\firstinset{#1}}%
+ \edef\currentregister{#1}%
+ \setupregister[\currentregister][#2]%
\the\everyplaceregister
\ifnum\namedmixedcolumnsparameter\currentregister\c!n>\plusone
\startmixedcolumns[\currentregister]
- \strc_registers_place_indeed{#1}%
+ \strc_registers_place_indeed
\stopmixedcolumns
\else
- \strc_registers_place_indeed{#1}%
+ \strc_registers_place_indeed
\fi
\endgroup
\fi}
-\def\strc_registers_place_indeed#1%
+\newconditional\c_strc_registers_text_interaction
+
+\def\strc_registers_place_indeed
{\doifelse{\registerparameter\c!interaction}\v!text
\settrue\setfalse\c_strc_registers_text_interaction
\clf_processregister
- {#1}%
+ {\currentregister}%
{%
language {\registerparameter\s!language}%
method {\registerparameter\c!method}%
numberorder {\registerparameter\c!numberorder}%
- check {\registerparameter\c!check}%
compress {\registerparameter\c!compress}%
criterium {\registerparameter\c!criterium}%
pagenumber \ifx\registerpageseparatorsymbol\empty false\else true\fi
@@ -671,9 +639,9 @@
\def\strc_registers_complete[#1][#2]%
{\iffirstargument
\begingroup
- \edef\currentregister{\firstinset{#1}}%
+ \edef\currentregister{#1}%
\normalexpanded{\startnamedsection[\v!chapter][\c!title={\headtext{\currentregister}},reference=\currentregister]}%
- \placeregister[#1][#2]%
+ \placeregister[\currentregister][#2]%
\page[\v!yes]%
\stopnamedsection
\endgroup
@@ -867,16 +835,15 @@
\unexpanded\def\startregisterpages
{\begingroup
\dostarttagged\t!registerpages\empty
- \useregisterstyleandcolor\c!pagestyle\c!pagecolor
- \registerparameter\c!pageleft}
+ \useregisterstyleandcolor\c!pagestyle\c!pagecolor}
\unexpanded\def\stopregisterpages
- {\registerparameter\c!pageright
- \dostoptagged
+ {\dostoptagged
\endgroup}
\unexpanded\def\startregisterseewords
- {\begingroup
+ {%\par % \ifhmode\crlf\fi % otherwise wrong level
+ \begingroup
\dostarttagged\t!registerpage\empty
\useregisterstyleandcolor\c!pagestyle\c!pagecolor}
@@ -909,69 +876,46 @@
% \fi}
\unexpanded\def\withregisterpagecommand#1#2#3#4%
- {\ifcase#3\relax
- {\tt [entry\space not\space flushed]}%
+ {\def\currentregisterpageindex{#2}%
+ \iflocation
+ \strc_references_goto_internal{\applyprocessor{#1}{\registerparameter\c!pagecommand{#4}}}[internal(#2)]%
\else
- \def\currentregisterpageindex{#2}%
- \iflocation
- \strc_references_goto_internal{\applyprocessor{#1}{\registerparameter\c!pagecommand{#4}}}[internal(#2)]%
- \else
- \applyprocessor{#1}{\registerparameter\c!pagecommand{#4}}%
- \fi
+ \applyprocessor{#1}{\registerparameter\c!pagecommand{#4}}%
\fi}
-\unexpanded\def\pushcurrentregister#1%
- {\let\m_current_register\currentregister
- \edef\currentregister{#1}}
-
-\unexpanded\def\popcurrentregister
- {\let\currentregister\m_current_register}
-
-\unexpanded\def\registeronepage#1#2#3#4#5% #1:class #2:processor content
- {\pushcurrentregister{#1}%
- \edef\p_pagenumber{\registerparameter\c!pagenumber}%
- \ifx\p_pagenumber\v!no\else
- \registerpageseparator
- \global\setconstant\c_strc_registers_page_state\plusone
- \dostarttagged\t!registerpage\empty
- \withregisterpagecommand{#2}{#3}{#4}{#5}%
- \dostoptagged
- \fi
- \popcurrentregister}
-
-\unexpanded\def\registerpagerange#1#2#3#4#5#6#7#8% #1:class #2:processor content, content todo: -- configurable
- {\pushcurrentregister{#1}%
- \edef\p_pagenumber{\registerparameter\c!pagenumber}%
- \ifx\p_pagenumber\v!no\else
- \registerpageseparator
- \global\setconstant\c_strc_registers_page_state\plusone
- \dostarttagged\t!registerpagerange\empty
- \dostarttagged\t!registerfrompage\empty
- \withregisterpagecommand{#2}{#3}{#4}{#5}%
- \dostoptagged
- \registeronepagerangeseparator
- \dostarttagged\t!registertopage\empty
- \withregisterpagecommand{#2}{#6}{#7}{#8}%
- \dostoptagged
- \dostoptagged
- \fi
- \popcurrentregister}
+\unexpanded\def\registeronepage#1#2#3#4% #1:processor content
+ {\registerpageseparator
+ \global\setconstant\c_strc_registers_page_state\plusone
+ \dostarttagged\t!registerpage\empty
+ \withregisterpagecommand{#1}{#2}{#3}{#4}%
+ \dostoptagged}
+
+\unexpanded\def\registerpagerange#1#2#3#4#5#6#7% #1:processor content, content todo: -- configurable
+ {\registerpageseparator
+ \global\setconstant\c_strc_registers_page_state\plusone
+ \dostarttagged\t!registerpagerange\empty
+ \dostarttagged\t!registerfrompage\empty
+ \withregisterpagecommand{#1}{#2}{#3}{#4}%
+ \dostoptagged
+ \registeronepagerangeseparator
+ \dostarttagged\t!registertopage\empty
+ \withregisterpagecommand{#1}{#5}{#6}{#7}%
+ \dostoptagged
+ \dostoptagged}
-\unexpanded\def\defaultregisterentry#1#2#3#4#5% #1:class #2:processor #3:internal #4:seeindex #5:word
- {\pushcurrentregister{#1}%
- \def\currentregisterpageindex{#3}%
+\unexpanded\def\defaultregisterentry#1#2#3#4% #1:processor #2:internal #3:seeindex #4:word
+ {\def\currentregisterpageindex{#2}%
\iflocation
- \def\currentregisterseeindex{#4}%
+ \def\currentregisterseeindex{#3}%
\ifconditional\c_strc_registers_text_interaction
- \strc_references_goto_internal{\setlocationcolor\doapplyregisterentrycommand{#2}{#5}}[internal(#3)]%
+ \strc_references_goto_internal{\setlocationcolor\doapplyregisterentrycommand{#1}{#4}}[internal(#2)]%
\else
- \doapplyregisterentrycommand{#2}{#5}%
+ \doapplyregisterentrycommand{#1}{#4}%
\fi
\else
\let\currentregisterseeindex\empty
- \doapplyregisterentrycommand{#2}{#5}%
- \fi
- \popcurrentregister}
+ \doapplyregisterentrycommand{#1}{#4}%
+ \fi}
\unexpanded\def\doapplyregisterentrycommand#1#2% processor text
{\dostarttagged\t!registercontent\empty
@@ -991,29 +935,25 @@
\applyprocessor{#1}{#2}%
\fi\fi}
-\unexpanded\def\defaultregisterseeword#1#2#3#4#5#6#7% class i n #3:processor #4:internal #5:seeindex #6:word
- {\pushcurrentregister{#1}%
- \ifnum#2=\plusone
- \registerpageseparator
- \fi
+\unexpanded\def\defaultregisterseeword#1#2#3#4#5#6% i n #3:processor #4:internal #5:seeindex #6:word
+ {\registerpageseparator
\global\setconstant\c_strc_registers_page_state\plustwo
- \def\currentregisterpageindex{#5}%
+ \def\currentregisterpageindex{#4}%
\dostarttagged\t!registersee\empty
\settrue\c_strc_registers_page_done
\iflocation
- \def\currentregisterseeindex{#6}%
+ \def\currentregisterseeindex{#5}%
\else
\let\currentregisterseeindex\empty
\fi
- \ifnum#2=\plusone
- \labeltexts\v!see{\doapplyregisterseecommand{#4}{#7}}%
- \else\ifnum#2=#3\relax
- \labeltexts\v!and{\doapplyregisterseecommand{#4}{#7}}%
+ \ifnum#1=\plusone
+ \labeltexts\v!see{\doapplyregisterseecommand{#3}{#6}}%
+ \else\ifnum#1=#2\relax
+ \labeltexts\v!and{\doapplyregisterseecommand{#3}{#6}}%
\else
- ,\space\doapplyregisterseecommand{#4}{#7}%
+ ,\space\doapplyregisterseecommand{#3}{#6}%
\fi\fi
- \dostoptagged
- \popcurrentregister}
+ \dostoptagged}
\let\registerseeword \defaultregisterseeword
\let\registerentry \defaultregisterentry
@@ -1053,18 +993,18 @@
\setvalue{\??registersymbol\v!none}%
{\let\registerpageseparatorsymbol\empty
- \let\registeronepage \gobblefivearguments
- \let\registerpagerange\gobbleeightarguments}
+ \let\registeronepage \gobblefourarguments
+ \let\registerpagerange \gobblesevenarguments}
\setvalue{\??registersymbol 1}%
{\let\registerpageseparatorsymbol\space
- \def\registeronepage {\symbol[1]\gobblefivearguments}%
- \def\registerpagerange{\symbol[1]\gobbleeightarguments}}
+ \def\registeronepage {\symbol[1]\gobblefourarguments}%
+ \def\registerpagerange{\symbol[1]\gobblesevenarguments}}
\setvalue{\??registersymbol 2}%
{\let\registerpageseparatorsymbol\space
- \def\registeronepage {\registerpagebuttonsymbol\gobblefivearguments}%
- \def\registerpagerange{\registerpagebuttonsymbol\gobbleeightarguments}}
+ \def\registeronepage {\registerpagebuttonsymbol\gobblefourarguments}%
+ \def\registerpagerange{\registerpagebuttonsymbol\gobblesevenarguments}}
\unexpanded\def\setregisterpagerendering
{\doifelse{\registerparameter\c!pagenumber}\v!no
@@ -1076,8 +1016,8 @@
\csname\??registersymbol\currentregisterpagesymbol\endcsname
\else
\let\registerpageseparatorsymbol\space
- \def\registeronepage {\registerparameter\c!symbol\gobblefivearguments}%
- \def\registerpagerange{\registerparameter\c!symbol\gobbleeightarguments}%
+ \def\registeronepage{\registerparameter\c!symbol\gobblefourarguments}%
+ \def\registerpagerange{\registerparameter\c!symbol\gobblesevenarguments}%
\fi\fi}
\appendtoks
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-ren.mkiv b/Master/texmf-dist/tex/context/base/mkiv/strc-ren.mkiv
index 01464ad8649..89aa6f55a1a 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-ren.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-ren.mkiv
@@ -120,7 +120,7 @@
\setheadmarking
\doresetstructureheadnumbercontent
\ifconditional\c_strc_sectioning_empty
- \setbox\b_strc_rendering_head\hpack \headreferenceattributes to \zeropoint{\strut}%
+ \setbox\b_strc_rendering_head\hbox \headreferenceattributes to \zeropoint{\strut}%
\else
\docheckheadreference
\setbox\b_strc_rendering_head\hbox \headreferenceattributes
@@ -139,7 +139,7 @@
\dosetstructureheadnumbercontent
\doresetstructureheadnumbercontent
\ifconditional\c_strc_sectioning_empty
- \setbox\b_strc_rendering_head\hpack \headreferenceattributes to \zeropoint{\strut}%
+ \setbox\b_strc_rendering_head\hbox \headreferenceattributes to \zeropoint{\strut}%
\else % = needed
\docheckheadreference
\setbox\b_strc_rendering_head\hbox \headreferenceattributes
@@ -151,7 +151,7 @@
\strc_rendering_stop_placement}
\unexpanded\def\strc_rendering_place_head_empty
- {\hpack\headreferenceattributes{\getheadsyncs}}
+ {\hbox\headreferenceattributes{\getheadsyncs}} % \hpack ?
%D \starttyping
%D \def\StretchedBox#1%
@@ -197,13 +197,14 @@
\def\strc_rendering_start_placement
{\bgroup
\setsystemmode\currenthead
+ %
\strc_rendering_initialize_alternatives
\strc_rendering_initialize_dimensions
+ %
\strc_rendering_initialize_line_state
\reseteverypar % needed indeed
\noindent % ipv \whitespace elders, na \forgetall !
\bgroup
- \synctexpushline
\edef\p_aligntitle{\headparameter\c!aligntitle}%
\ifx\p_aligntitle\v!yes
\strc_rendering_initialize_hsize_local
@@ -324,9 +325,7 @@
% kind of special, we want to snap heads also according to local specs local
\setbox\b_strc_rendering_head\hbox
{\hskip\dimexpr\d_strc_rendering_local_leftoffset+\headparameter\c!margin\relax
- \box\b_strc_rendering_head
- \getheadsyncs % a latelua why not in the box
- }%
+ \box\b_strc_rendering_head}%
\ifgridsnapping
\applygridmethod
{\headparameter\c!grid}%
@@ -346,14 +345,14 @@
\nointerlineskip
\dosomebreak\nobreak
\fi
-% \getheadsyncs % a latelua why not in the box
+ \getheadsyncs
\else
% somehow this goes ok even when we push in the margin probably because we gobble pars
% in the process of collecting index entries etc
\strut
\flushnotes % new, here since we're in par mode
\unhbox\b_strc_rendering_head
- \getheadsyncs % a latelua
+ \getheadsyncs
\ifconditional\headissomewhere
\strc_sectioning_stay_on_this_line % test case: alternative=margintext and \startparagraph ..
\else
@@ -371,7 +370,6 @@
\fi
\fi
\fi
- \synctexpopline
\egroup
\egroup
\ifconditional\headisdisplay
@@ -530,14 +528,8 @@
\def\fakedheadnumber{\vphantom{0}} % needed for mathplus
-% \unexpanded\def\fakeheadnumbercontent
-% {\hbox to \zeropoint{\let\getheadnumber\fakedheadnumber\headnumbercontent}}
-
\unexpanded\def\fakeheadnumbercontent
- {\edef\p_hidenumber{\headparameter\c!hidenumber}%
- \ifx\p_hidenumber\v!yes\else
- \hbox to \zeropoint{\let\getheadnumber\fakedheadnumber\headnumbercontent}%
- \fi}
+ {\hbox to \zeropoint{\let\getheadnumber\fakedheadnumber\headnumbercontent}}
\unexpanded\def\strc_rendering_inject_number_and_text
{\edef\p_command{\headparameter\c!command}% assumes \unexpanded definition
@@ -785,18 +777,18 @@
\startsetups[\??headrenderings:\v!bottom]
\ifconditional\headshownumber
- \setbox\scratchboxone\hbox {
+ \setbox0\hbox {
\headnumbercontent
}
- \setbox\scratchboxtwo\vbox {
+ \setbox2\vbox {
\headsetupspacing
- \advance\hsize-\wd\scratchboxone\relax
+ \advance\hsize-\wd0\relax
\headtextcontent
}
\hbox {
- \box\scratchboxone
+ \box0
\hskip\headnumberdistance
- \box\scratchboxtwo
+ \box2
}
\else
\vbox {
@@ -814,18 +806,18 @@
\startsetups[\??headrenderings:\v!top]
\ifconditional\headshownumber
- \setbox\scratchboxone\hbox {
+ \setbox0\hbox {
\headnumbercontent
}
- \setbox\scratchboxtwo\vtop {
+ \setbox2\vtop {
\headsetupspacing
- \advance\hsize-\wd\scratchboxone\relax
+ \advance\hsize-\wd0\relax
\headtextcontent
}
\hbox {
- \box\scratchboxone
+ \box0
\hskip\headnumberdistance
- \box\scratchboxtwo
+ \box2
}
\else
\vtop{
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-sbe.mkiv b/Master/texmf-dist/tex/context/base/mkiv/strc-sbe.mkiv
index 005f03df3ae..9f1d214cfda 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-sbe.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-sbe.mkiv
@@ -45,7 +45,7 @@
\def\strc_sectionblock_define[#1][#2][#3]% singular plural settings
{\strc_sectionblock_define_normal[#1][#3]%
- %\expandafter\newif\csname if#2\endcsname % obsolete
+ \expandafter\newif\csname if#2\endcsname % obsolete
\strc_sectionblock_set_environment{#1}\empty
\setuvalue{\e!start#2}{\startsectionblock[#1]}%
\setuvalue{\e!stop #2}{\stopsectionblock}}
@@ -98,7 +98,7 @@
\clf_pushsectionblock{#1}
bookmark {\sectionblockparameter\c!bookmark}%
\relax
- %\csname #1true\endcsname % obsolete
+ \csname #1true\endcsname % obsolete
\setsystemmode\currentsectionblock
\the\everybeforesectionblock\relax
\showmessage\m!structures1\currentsectionblock}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-sec.mkiv b/Master/texmf-dist/tex/context/base/mkiv/strc-sec.mkiv
index 4066a1f38c8..4e5115a7d36 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-sec.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-sec.mkiv
@@ -35,7 +35,6 @@
\c!label=,
\c!coupling=,
\c!ownnumber=,
- % \c!interaction=\v!list,
\c!sectionseparatorset=\s!default,
\c!sectionconversionset=\s!default,
\c!sectionstopper=,
@@ -54,10 +53,6 @@
\def\m_strc_references_prefix_yes{+}
\def\m_strc_references_prefix_nop{-}
-\let\currentstructurereferenceprefix\empty
-
-\installglobalmacrostack\currentstructurereferenceprefix
-
\def\strc_sectioning_set_reference_prefix
{\ifx\currentstructurereferenceprefix\empty
% nothing
@@ -69,7 +64,7 @@
\else
\setupglobalreferenceprefix[\currentstructurereferenceprefix]%
\fi\fi\fi
- \glet\currentstructurereferenceprefix\referenceprefix}
+ \let\currentstructurereferenceprefix\referenceprefix}
% why xdef ?
@@ -113,10 +108,9 @@
\def\strc_sectioning_autobookmark#1%
{\begingroup
- % \settrialtypesetting
\the\everypreroll
\nodestostring\tempstring{#1}%
- \glet\currentstructurebookmark\tempstring
+ \globallet\currentstructurebookmark\tempstring
\endgroup}
% zeros:
@@ -156,9 +150,9 @@
\strc_sectioning_autobookmark\currentstructuretitle
\fi \fi \fi
\ifx\currentstructurelist\empty
- \glet\currentstructurelist\currentstructuretitle
+ \globallet\currentstructurelist\currentstructuretitle
\fi
- \glet\currentstructurecoding\s!xml
+ \globallet\currentstructurecoding\s!xml
\else
\ifx\currentstructureexpansion\v!yes
\xdef\currentstructuretitle {\structureparameter\c!title}%
@@ -185,9 +179,9 @@
\fi \fi
\fi
\ifx\currentstructurelist\empty
- \glet\currentstructurelist\currentstructuretitle
+ \globallet\currentstructurelist\currentstructuretitle
\fi
- \glet\currentstructurecoding\s!tex
+ \globallet\currentstructurecoding\s!tex
\fi
\setnextinternalreference
\storeinternalreference\currentstructurename{\the\locationcount}%
@@ -255,7 +249,7 @@
userdata {\detokenize{#3}}% will be converted to table at the lua end
\relax
\xdef\currentstructurelistnumber{\clf_currentsectiontolist}%
- % \currentstructuresynchronize has to be called someplace, since it introduces a node
+ % \currentstructuresynchronize has to be called someplace, since it introduces a node
\setstructuresynchronization\currentstructurelistnumber
\endgroup}
@@ -346,9 +340,6 @@
\installcommandhandler \??head {head} \??head
-\installmacrostack\currenthead
-\installmacrostack\currentheadparent
-
\setuphead [%
%\c!after=,
%\c!align=,
@@ -488,18 +479,16 @@
\to \everysetuphead
\unexpanded\def\doredefinehead#1#2% called at lua end
- {\push_macro_currenthead
- \push_macro_currentheadparent
+ {\pushmacro\currenthead
+ \pushmacro\currentheadparent
\edef\currenthead{#1}%
\edef\currentheadparent{#2}%
\the\everyredefinehead\relax
- \pop_macro_currentheadparent
- \pop_macro_currenthead}
+ \popmacro\currentheadparent
+ \popmacro\currenthead}
\let\currentnamedsection\empty
-\installmacrostack\currentnamedsection
-
\unexpanded\def\startnamedsection
{\dotripleempty\strc_sectioning_start_named_section}
@@ -588,7 +577,7 @@
\fi}
\def\strc_sectioning_setup_indeed[#1][#2][#3]%
- {\push_macro_currenthead
+ {\pushmacro\currenthead
\ifthirdargument
\edef\currenthead{#1#2}% % not used at any more in mkiv (sets now)
\setupcurrenthead[#3]%
@@ -596,7 +585,7 @@
\edef\currenthead{#1}%
\setupcurrenthead[#2]%
\fi
- \pop_macro_currenthead}
+ \popmacro\currenthead}
% we share the parameters as sections are roots of heads so eventually we can
% consider \definesection -> \definehead with one argument
@@ -649,8 +638,7 @@
{\strc_sectioning_handle{#1}{\c!reference={#2},\c!title={#3}}{}} % name ref nr title --
\unexpanded\def\strc_sectioning_start_named_section[#1][#2][#3]% for the moment no grouping, too annoying with page breaks
- {\push_macro_currentnamedsection
- \push_macro_currentstructurereferenceprefix
+ {\pushmacro\currentnamedsection
\edef\currentnamedsection{#1}%
\setfalse\currentstructureown
%\globalpushmacro\currenthead % this does not work out well
@@ -671,8 +659,7 @@
\headparameter\c!aftersection
\the\everyafterhead
\resetsystemmode\currenthead
- \pop_macro_currentstructurereferenceprefix
- \pop_macro_currentnamedsection} % new, also here now
+ \popmacro\currentnamedsection} % new, also here now
\let\dostarthead\strc_sectioning_start % used at lua end
\let\dostophead \strc_sectioning_stop % used at lua end
@@ -768,25 +755,15 @@
\setfalse\headshownumber
\fi}
-% Beware, we do need some node for anchoring marks and normally a zwnj will
-% do but it interferes so we deal with it at the \LUA\ end.
-
\newtoks\everyheadsynchronization
-% \appendtoks
-% \currentstructuresynchronize
-% \to \everyheadsynchronization
-
-\let\currentstructuresynchronize\donothing
-
\appendtoks
\currentstructuresynchronize
- \glet\currentstructuresynchronize\donothing
\to \everyheadsynchronization
\unexpanded\def\theheadsynchonization
- {% no, interferes: \signalcharacter
- \the\everyheadsynchronization}
+ {\the\everyheadsynchronization
+ \currentstructuresynchronize}
% BEWARE: \marking[section]{my text} does not work as we use list indices instead
% so we need a 'keep track of raw set option' (or maybe a funny internal prefix)
@@ -825,17 +802,6 @@
\let\currentheadlevel \!!zerocount
\let\currentheadcounter \!!zerocount
-\let\strc_show_used\relax
-
-\installtextracker
- {structures.showused}
- {\let\strc_show_used\clf_showstructure}
- {\let\strc_show_used\relax}
-
-\appendtoks
- \strc_show_used
-\to \everystoptext
-
\unexpanded\def\placeheadtext {\dosingleempty\strc_sectioning_place_head_text } % use with care
\unexpanded\def\placeheadnumber{\dosingleempty\strc_sectioning_place_head_number} % use with care
@@ -876,9 +842,6 @@
\ifdefined\triggerautostructurelevel \else \let\triggerautostructurelevel\relax \fi
-\newtoks\everybeforesectionheadhandle
-\newtoks\everyaftersectionheadhandle
-
\def\strc_sectioning_handle#1#2#3% name data userdata (we can move #1 to the caller)
{\xdef\currenthead {#1}%
\xdef\currentheadcoupling{\sectionheadcoupling\currenthead}%
@@ -892,7 +855,7 @@
\strc_sectioning_initialize_placement
\strc_sectioning_initialize_number
%
- \the\everybeforesectionheadhandle
+ \flushingcolumnfloatsfalse
%
% todo: also mark (for header)
%
@@ -978,9 +941,7 @@
\strc_sectioning_after_nop
\fi\fi
\fi
- %
- \the\everyaftersectionheadhandle
- %
+ \flushingcolumnfloatstrue
\setfalse\c_strc_sectioning_ignore_page
% ignorespaces prevents spaces creeping in when after=\dontleavehmode
\dostarttagged\t!sectioncontent\empty
@@ -1022,8 +983,8 @@
\unexpanded\def\strc_rendering_place_head_section % see hidden below
{\global\setbox\b_sectioning_delayed\hpack\bgroup
\setmarking[\currentheadcoupling]{li::\currentstructurelistnumber}%
- \hpack\headreferenceattributes{}% also does the mark
- \theheadsynchonization
+ \hpack\headreferenceattributes{}%
+ \currentstructuresynchronize
\egroup}
\unexpanded\def\strc_rendering_place_head_hidden % maybe trialtypesetting check
@@ -1033,7 +994,7 @@
{\noexpand\letgvalue{\??hiddenheadsync\currenthead}\relax
\noexpand\setmarking[\currentheadcoupling]{li::\currentstructurelistnumber}%
\hpack\headreferenceattributes{}% otherwise no destination ... maybe tag ref as hidden and fall back on page reference
- \theheadsynchonization}} % and it's a node anyway
+ \currentstructuresynchronize}} % and it's a node anyway
\def\synchronizehead #1{\csname\??hiddenheadsync#1\endcsname}
\def\theheadreferenceattributes#1{\csname\??hiddenheadattr#1\endcsname}
@@ -1042,26 +1003,6 @@
\unexpanded\def\placerawheadtext [#1]{\getspecificstructuretitle{\thenamedheadlevel{#1}}}
\unexpanded\def\placerawheadnumber[#1]{\getfullstructurenumber{\thenamedheadlevel{#1}}}
-\unexpanded\def\repeathead[#1]%
- {\begingroup
- \setupinteraction[\c!state=\v!stop]%
- \def\currenthead{#1}
- \strc_sectioning_initialize_placement
- \strc_sectioning_initialize_number
- \dostarttagged\t!sectioncaption\empty
- \let\getheadsyncs \relax
- \def\getheadtitle {\getmarking[#1]}
- \def\getheadnumber{\getmarking[#1\v!number]}
- \strc_sectioning_before_yes
- \ifconditional\headshownumber
- \strc_rendering_place_head_number_and_text
- \else
- \strc_rendering_place_head_text
- \fi
- \dostoptagged
- \strc_sectioning_after_yes
- \endgroup}
-
% \setuphead[chapter][placehead=hidden]
% \chapter {test}
%
@@ -1213,7 +1154,7 @@
\else
\strc_sectioning_check_layout
\fi
- \glet\previoushead\currenthead}
+ \globallet\previoushead\currenthead}
\def\strc_sectioning_handle_page_yes
{\ifconditional\c_strc_sectioning_ignore_page
@@ -1237,7 +1178,7 @@
\fi
\global\c_strc_sectioning_preceding_level\currentheadlevel
\fi
- \glet\previoushead\currenthead}
+ \globallet\previoushead\currenthead}
\unexpanded\def\strc_sectioning_prevent_page_break#1% see strc-con
{\ifconditional\c_strc_sectioning_auto_break
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-syn.mkiv b/Master/texmf-dist/tex/context/base/mkiv/strc-syn.mkiv
index 7f71e88f52f..1fb079f04a8 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-syn.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-syn.mkiv
@@ -114,14 +114,14 @@
\xmlstartraw
\xdef#2{#4}%
\xmlstopraw
- \glet#3\s!xml
+ \globallet#3\s!xml
\else
\ifx#1\v!yes
\xdef#2{#4}%
\else
\xdef#2{\detokenize{#4}}%
\fi
- \glet#3\s!tex
+ \globallet#3\s!tex
\fi}
%D We now use a simple list variant:
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-tag.lua b/Master/texmf-dist/tex/context/base/mkiv/strc-tag.lua
index 0453640ca00..649465a6ada 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-tag.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-tag.lua
@@ -15,6 +15,7 @@ local type, next = type, next
local insert, remove, unpack, concat, merge = table.insert, table.remove, table.unpack, table.concat, table.merge
local find, topattern, format = string.find, string.topattern, string.format
local lpegmatch, P, S, C, Cc = lpeg.match, lpeg.P, lpeg.S, lpeg.C, lpeg.Cc
+local texattribute = tex.attribute
local allocate = utilities.storage.allocate
local settings_to_hash = utilities.parsers.settings_to_hash
local setmetatableindex = table.setmetatableindex
@@ -23,44 +24,34 @@ local trace_tags = false trackers.register("structures.tags", function(v) trace
local report_tags = logs.reporter("structure","tags")
-local attributes = attributes
-local structures = structures
-local implement = interfaces.implement
-
-local a_tagged = attributes.private('tagged')
-
-local unsetvalue = attributes.unsetvalue
-local codeinjections = backends.codeinjections
-
-local texgetattribute = tex.getattribute
-local texsetattribute = tex.setattribute
-
-local taglist = allocate() -- access by attribute
-local specifications = allocate() -- access by fulltag
-local labels = allocate()
-local stack = { }
-local chain = { }
-local ids = { }
-local enabled = false
-local tagcontext = { }
-local tagpatterns = { }
-local lasttags = { }
-local stacksize = 0
-local metadata = nil -- applied to the next element
-local documentdata = { }
-local extradata = false
-
-local tags = structures.tags
-tags.taglist = taglist -- can best be hidden
-tags.labels = labels
-tags.patterns = tagpatterns
-tags.specifications = specifications
-
-function tags.current()
- if stacksize > 0 then
- return stack[stacksize] -- maybe copy or proxy
- end
-end
+local attributes = attributes
+local structures = structures
+local implement = interfaces.implement
+
+local a_tagged = attributes.private('tagged')
+
+local unsetvalue = attributes.unsetvalue
+local codeinjections = backends.codeinjections
+
+local taglist = allocate() -- access by attribute
+local specifications = allocate() -- access by fulltag
+local labels = allocate()
+local stack = { }
+local chain = { }
+local ids = { }
+local enabled = false
+local tagcontext = { }
+local tagpatterns = { }
+local lasttags = { }
+local stacksize = 0
+local metadata = nil -- applied to the next element
+local documentdata = { }
+
+local tags = structures.tags
+tags.taglist = taglist -- can best be hidden
+tags.labels = labels
+tags.patterns = tagpatterns
+tags.specifications = specifications
-- Tags are internally stored as:
--
@@ -135,7 +126,6 @@ local properties = allocate { -- todo: more "record = true" to improve forma
listcontent = { pdf = "P", nature = "mixed" },
listdata = { pdf = "P", nature = "mixed" },
listpage = { pdf = "Reference", nature = "mixed" },
- listtext = { pdf = "Span", nature = "inline" },
delimitedblock = { pdf = "BlockQuote", nature = "display" },
delimited = { pdf = "Quote", nature = "inline" },
@@ -167,11 +157,9 @@ local properties = allocate { -- todo: more "record = true" to improve forma
subformula = { pdf = "Div", nature = "display" },
link = { pdf = "Link", nature = "inline" },
- reference = { pdf = "Span", nature = "inline" },
margintextblock = { pdf = "Span", nature = "inline" },
margintext = { pdf = "Span", nature = "inline" },
- marginanchor = { pdf = "Span", nature = "inline" },
math = { pdf = "Div", nature = "inline" }, -- no display
mn = { pdf = "Span", nature = "mixed" },
@@ -216,14 +204,6 @@ local properties = allocate { -- todo: more "record = true" to improve forma
combinationpair = { pdf = "Span", nature = "display" },
combinationcontent = { pdf = "Span", nature = "mixed" },
combinationcaption = { pdf = "Span", nature = "mixed" },
-
- publications = { pdf = "Div", nature = "display" },
- publication = { pdf = "Div", nature = "mixed" },
- pubfld = { pdf = "Span", nature = "inline" },
-
- block = { pdf = "Div", nature = "display" },
- userdata = { pdf = "Div", nature = "display" },
-
}
tags.properties = properties
@@ -235,7 +215,7 @@ local patterns = setmetatableindex(function(t,tag)
end)
function tags.locatedtag(tag)
- local attribute = texgetattribute(a_tagged)
+ local attribute = texattribute[a_tagged]
if attribute >= 0 then
local specification = taglist[attribute]
if specification then
@@ -255,7 +235,7 @@ function tags.locatedtag(tag)
end
function structures.atlocation(str)
- local specification = taglist[texgetattribute(a_tagged)]
+ local specification = taglist[texattribute[a_tagged]]
if specification then
if list then
local taglist = specification.taglist
@@ -307,20 +287,6 @@ function tags.getmetadata()
return documentdata or { }
end
-function tags.registerextradata(name,serializer)
- if type(serializer) == "function" then
- if extradata then
- extradata[name] = serializer
- else
- extradata = { [name] = serializer }
- end
- end
-end
-
-function tags.getextradata()
- return extradata
-end
-
function tags.start(tag,specification)
if not enabled then
codeinjections.enabletags()
@@ -383,7 +349,7 @@ function tags.start(tag,specification)
specification.metadata = documentdata
end
--
- texsetattribute(a_tagged,attribute)
+ texattribute[a_tagged] = attribute
return attribute
end
@@ -398,7 +364,7 @@ function tags.restart(attribute)
taglist[attribute] = { taglist = { unpack(chain,1,stacksize) } }
end
stack[stacksize] = attribute
- texsetattribute(a_tagged,attribute)
+ texattribute[a_tagged] = attribute
return attribute
end
@@ -408,12 +374,12 @@ function tags.stop()
end
local t = stack[stacksize]
if not t then
- if trace_tags then
+ -- if trace_tags then
report_tags("ignoring end tag, previous chain: %s",stacksize > 0 and concat(chain," ",1,stacksize) or "none")
- end
+ -- end
t = unsetvalue
end
- texsetattribute(a_tagged,t)
+ texattribute[a_tagged] = t
return t
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-tag.mkiv b/Master/texmf-dist/tex/context/base/mkiv/strc-tag.mkiv
index 84e11a63235..2ee71d67c21 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-tag.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-tag.mkiv
@@ -107,7 +107,6 @@
\def\t!listcontent {listcontent} % P
\def\t!listdata {listdata} % P
\def\t!listpage {listpage} % Reference
-\def\t!listtext {listtext} % Span
\def\t!delimitedblock {delimited} % BlockQuote
\def\t!delimited {delimited} % Quote
@@ -137,11 +136,9 @@
\def\t!subformula {subformula} % Div
\def\t!link {link} % Link
-\def\t!reference {reference} % Span
\def\t!margintext {margintext} % Span
\def\t!margintextblock {margintextblock} % Div
-\def\t!marginanchor {marginanchor} % Span
% we might opt for verbose variants so this is experimental:
@@ -165,13 +162,6 @@
\def\t!combinationcontent {combinationcontent} % Span
\def\t!combinationcaption {combinationcaption} % Span
-\def\t!publications {publications} % Span
-\def\t!publication {publication} % Span
-\def\t!pubfld {pubfld} % Span
-
-\def\t!block {block} % Div
-\def\t!userdata {userdata} % Div
-
% \setuptaglabeltext
% [en]
% [\t!document=document]
@@ -190,51 +180,42 @@
\unexpanded\def\strc_tags_set_aspect_nop#1#2{}
\unexpanded\def\strc_tags_set_aspect_yes#1#2{\clf_settagaspect{#1}{#2}} % todo: ignore when no export / also \let
-\unexpanded\def\ignoretagsinexport[#1]%
- {\clf_ignoretagsinexport{#1}}
-
\installcorenamespace{tagging}
\installsetuponlycommandhandler \??tagging {tagging}
-% it makes no sense to have labels ... maybe some day as a last 'replace' in the export
-% which might be more efficient then ... okay, we now cannot overload but who cares
-
\unexpanded\def\strc_tags_element_start_yes{\dodoubleempty\strc_tags_element_start_yes_indeed}
\unexpanded\def\strc_tags_element_start_nop{\dodoubleempty\strc_tags_element_start_nop_indeed}
\unexpanded\def\strc_tags_element_start_yes_indeed
{\iftrialtypesetting
- \expandafter\strc_tags_element_start_yes_indeed_nop
+ \expandafter\strc_tags_element_start_nop_indeed
\else
\expandafter\strc_tags_element_start_yes_indeed_yes
\fi}
-\unexpanded\def\strc_tags_element_start_yes_indeed_nop[#1][#2]%
- {}
+\unexpanded\def\strc_tags_element_stop
+ {\iftrialtypesetting
+ \expandafter\strc_tags_element_stop_nop
+ \else
+ \expandafter\strc_tags_element_stop_yes
+ \fi}
+
+% it makes no sense to have labels ... maybe some day as a last 'replace' in the export
+% which might be more efficient then ... okay, we now cannot overload but who cares
\unexpanded\def\strc_tags_element_start_yes_indeed_yes[#1][#2]%
{\clf_starttag_u{#1}{#2}}
\unexpanded\def\strc_tags_element_stop_yes
- {\iftrialtypesetting
- \expandafter\strc_tags_element_stop_yes_indeed_nop
- \else
- \expandafter\strc_tags_element_stop_yes_indeed_yes
- \fi}
+ {\clf_stoptag}
-\unexpanded\def\strc_tags_element_stop_nop
+\unexpanded\def\strc_tags_element_start_nop_indeed[#1][#2]%
{}
-\unexpanded\def\strc_tags_element_stop_yes_indeed_nop
+\unexpanded\def\strc_tags_element_stop_nop
{}
-\unexpanded\def\strc_tags_element_stop_yes_indeed_yes
- {\clf_stoptag}
-
-\let\strc_tags_element_start_nop_indeed\strc_tags_element_start_yes_indeed_nop
-\let\strc_tags_element_stop_nop_indeed \strc_tags_element_stop_yes_indeed_nop
-
\def\strc_tags_report_hyphen#1%
{\writestatus\m!languages{setting #1 to U+00AD}}
@@ -312,18 +293,12 @@
% \dostarttaggedchained % {tag} {detail} \??hash
% \dostarttaggednodetail % {tag}
-\newconditional\c_strc_tags_enabled
-
-\let\dotaggedplaceholder\empty
-
-\chardef\strc_tags_placeholder_char\zerocount % "FFFC
+% \unexpanded\def\strc_tags_enable
+% {\let\dostarttagged\strc_tags_start_yes
+% \let\dostoptagged \strc_tags_stop_yes}
\unexpanded\def\strc_tags_enable
- {% once enable one is toast
- \global\settrue\c_strc_tags_enabled
- % and gets:
- \let\dotaggedplaceholder \strc_tags_placeholder_char
- \let\dostarttagged \strc_tags_enabled_start_detail
+ {\let\dostarttagged \strc_tags_enabled_start_detail
\let\dostarttaggednodetail\strc_tags_enabled_start_no_detail
\let\dostarttaggedchained \strc_tags_enabled_start_chained
\let\dostoptagged \strc_tags_enabled_stop
@@ -331,23 +306,12 @@
\let\dostopignoretagging \strc_tags_stop_yes_ignore}
\unexpanded\def\strc_tags_disable
- {\ifconditional\c_strc_tags_enabled
- % so now all are artifacts
- \let\dotaggedplaceholder \strc_tags_placeholder_char
- \let\dostarttagged \strc_tags_start_nop_detail
- \let\dostarttaggednodetail\strc_tags_start_nop_no_detail
- \let\dostarttaggedchained \strc_tags_start_nop_chained
- \let\dostoptagged \strc_tags_stop_nop_ignore
- \else
- % initial
- \let\dotaggedplaceholder \empty
- \let\dostarttagged \strc_tags_start_nop_detail
- \let\dostarttaggednodetail\strc_tags_start_nop_no_detail
- \let\dostarttaggedchained \strc_tags_start_nop_chained
- \let\dostoptagged \strc_tags_stop_nop_ignore
- \let\dostartignoretagging \strc_tags_start_nop_ignore
- \let\dostopignoretagging \strc_tags_stop_nop_ignore
- \fi}
+ {\let\dostarttagged \strc_tags_start_nop_detail
+ \let\dostarttaggednodetail\strc_tags_start_nop_no_detail
+ \let\dostarttaggedchained \strc_tags_start_nop_chained
+ \let\dostoptagged \strc_tags_stop_nop
+ \let\dostartignoretagging \strc_tags_start_nop_ignore
+ \let\dostopignoretagging \strc_tags_stop_nop_ignore}
% for luigi (beware: fully expandable):
@@ -504,27 +468,13 @@
%D This will only work well with sane use.
-% \appendtoks
-% {%
-% \doglobal\appendtoks
-% \strc_tags_start_yes_ignore
-% \to \everybeforepagebody
-% \doglobal\appendtoks
-% \strc_tags_stop_yes_ignore
-% \to \everyafterpagebody
-% }%
-% \to \everyenableelements
-
-% This doesn't work well either, so instead we handle the ornaments in the
-% tagging in a different way (see attr -> false code).
+\appendtoks
+ \dostartignoretagging
+\to \everybeforepagebody
-% \appendtoks
-% \dostartignoretagging
-% \to \everybeforepagebody
-%
-% \appendtoks
-% \dostopignoretagging
-% \to \everyafterpagebody
+\appendtoks
+ \dostopignoretagging
+\to \everyafterpagebody
% \doifelseinelement{structure:section} {yes} {no}
% \doifelseinelement{structure:chapter} {yes} {no}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-usr.lua b/Master/texmf-dist/tex/context/base/mkiv/strc-usr.lua
deleted file mode 100644
index f121fe296a7..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-usr.lua
+++ /dev/null
@@ -1,29 +0,0 @@
-if not modules then modules = { } end modules ['strc-usr'] = {
- version = 1.000,
- comment = "companion to strc-usr.mkiv",
- author = "Wolfgang Schuster",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
--- The following is copied from \type {tabl-xtb.lua} to make the userdata environment
--- work with \LUA\ documents.
-
-local context = context
-local ctxcore = context.core
-
-local startuserdata = ctxcore.startuserdata
-local stopuserdata = ctxcore.stopuserdata
-
-local startcollecting = context.startcollecting
-local stopcollecting = context.stopcollecting
-
-function ctxcore.startuserdata(...)
- startcollecting()
- startuserdata(...)
-end
-
-function ctxcore.stopuserdata()
- stopuserdata()
- stopcollecting()
-end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-usr.mkiv b/Master/texmf-dist/tex/context/base/mkiv/strc-usr.mkiv
deleted file mode 100644
index 97b656fa087..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-usr.mkiv
+++ /dev/null
@@ -1,180 +0,0 @@
-%D \module
-%D [ file=strc-bkm,
-%D version=2009.04.01,
-%D title=\CONTEXT\ Structure Macros,
-%D subtitle=Bookmarks,
-%D author=Wolfgang Schuster,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Structure Macros / Userdata}
-
-\registerctxluafile{strc-usr}{}
-
-%D It's a bit like blocks that also use buffers but more lightweight and with
-%D inplace settings.
-%D
-%D \starttyping
-%D \defineuserdata [test] [style=italic]
-%D
-%D \samplefile{klein}
-%D
-%D \startuserdata [before=\blank,after=\blank,color=red]
-%D \samplefile{greenfield}
-%D \stopuserdata
-%D
-%D \samplefile{sapolsky}
-%D
-%D \startuserdata [test]
-%D \samplefile{bryson}
-%D \stopuserdata
-%D
-%D \samplefile{jojomayer}
-%D
-%D \startuserdata [test] [before=\blank,after=\blank,color=red]
-%D \samplefile{linden}
-%D \stopuserdata
-%D
-%D \samplefile{montgomery}
-%D \stoptyping
-%D
-%D Or from \LUA:
-%D
-%D \starttyping
-%D \startluacode
-%D context.startuserdata({color="blue"})
-%D context.samplefile("klein")
-%D context.stopuserdata()
-%D \stopluacode
-%D \stoptyping
-%D
-%D An example of an alternative:
-%D
-%D \starttyping
-%D \defineuserdataalternative [epigraph] [renderingsetup=userdata:epigraph]
-%D
-%D \startsetups [userdata:epigraph]
-%D \startframedtext [location=right,frame=off,align={flushleft,broad},style=\tfx,offset=.25ex,width=.5\textwidth]
-%D \begstrut\inlinebuffer[userdata]\endstrut
-%D \hairline
-%D \wordright{\userdataparameter{author}}
-%D \stopframedtext
-%D \stopsetups
-%D
-%D \defineuserdata
-%D [epigraph]
-%D [alternative=epigraph]
-%D
-%D \startuserdata [epigraph] [author={Sean B. Carrol}]
-%D The fraction of fossil olfactory receptor genes is significantly higher in
-%D all species with full color vision. This suggests that the evolution of
-%D trichromatic vision --- which allows these primates to detect food, mates,
-%D and danger with visual cues --- has reduced their reliance on the sense of
-%D smell.
-%D \stopuserdata
-%D
-%D \startuserdata [epigraph] [author={Sean B. Carrol}]
-%D \samplefile{carrol}
-%D \stopuserdata
-%D \stoptyping
-
-\unprotect
-
-\installnamespace {userdata}
-\installnamespace {userdataalternative}
-\installnamespace {userdatarenderings}
-
-\installcommandhandler \????userdata {userdata} \????userdata
-\installcommandhandler \????userdataalternative {userdataalternative} \????userdataalternative
-
-\unexpanded\def\startuserdata
- {\begingroup
- \let\currentuserdata\empty
- \doifelsenextoptionalcs\userdata_start_delayed\userdata_start_indeed}
-
-% This variant works only when the userdata instance exists while the assignment check
-% can also be used with undefined instances which falls back to the global settings.
-%
-% \def\userdata_start_delayed[#1]%
-% {\ifcsname\nameduserdatahash{\detokenize\expandafter{\normalexpanded{#1}}}\s!parent\endcsname
-% \expandafter\userdata_start_delayed_name
-% \else
-% \expandafter\userdata_start_delayed_parameters
-% \fi[#1]}
-
-\def\userdata_start_delayed[#1]%
- {\doifelseassignmentcs{#1}%
- \userdata_start_delayed_parameters
- \userdata_start_delayed_name
- [#1]}
-
-\def\userdata_start_delayed_parameters[#1]%
- {\setupcurrentuserdata[#1]%
- \userdata_start_indeed}
-
-\def\userdata_start_delayed_name[#1]%
- {\edef\currentuserdata{#1}%
- \checkuserdataparent
- \doifelsenextoptionalcs\userdata_start_delayed_parameters\userdata_start_indeed}
-
-\def\userdata_start_indeed
- {\grabbufferdatadirect\s!userdata{\csstring\startuserdata}{\csstring\stopuserdata}}
-
-% \unexpanded\def\stopuserdata
-% {\useuserdatastyleandcolor\c!style\c!color
-% \usealignparameter\userdataparameter
-% \edef\currentuserdataalternative{\userdataparameter\c!alternative}%
-% \ifcsname\currentuserdataalternativehash\s!parent\endcsname \else
-% \let\currentuserdataalternative\s!default
-% \fi
-% \edef\p_renderingsetup{\userdataalternativeparameter\c!renderingsetup}%
-% \directsetup\p_renderingsetup
-% \endgroup}
-
-\unexpanded\def\stopuserdata
- {\userdataparameter\c!before % HH: moved, so we obey the outer spacing
- \dostarttagged\t!userdata\currentuserdata % HH: added, maybe move up ?
- \begingroup
- \useuserdatastyleandcolor\c!style\c!color
- \usealignparameter\userdataparameter % HH: added
- \edef\currentuserdataalternative{\userdataparameter\c!alternative}%
- \ifcsname\currentuserdataalternativehash\s!parent\endcsname \else
- \let\currentuserdataalternative\s!default
- \fi
- \usesetupsparameter\userdataparameter
- \edef\p_renderingsetup{\userdataalternativeparameter\c!renderingsetup}%
- \directsetup\p_renderingsetup
- \endgroup
- \dostoptagged
- \userdataparameter\c!after % HH: moved
- \endgroup}
-
-\unexpanded\def\getuserdata
- {\getbufferdata[\s!userdata]}
-
-\unexpanded\def\getinlineuserdata
- {\inlinebuffer[\s!userdata]}
-
-\defineuserdataalternative
- [\s!default]
- [\c!renderingsetup=\????userdatarenderings:\s!default]
-
-% \startsetups[\????userdatarenderings:\s!default]
-% \userdataparameter\c!before
-% \usesetupsparameter\userdataparameter
-% \getbufferdata[\s!userdata]
-% \userdataparameter\c!after
-% \stopsetups
-
-\startsetups[\????userdatarenderings:\s!default]
- \getuserdata
-\stopsetups
-
-\setupuserdata
- [\c!alternative=\s!default]
-
-\protect
diff --git a/Master/texmf-dist/tex/context/base/mkiv/supp-box.lua b/Master/texmf-dist/tex/context/base/mkiv/supp-box.lua
index 1f31f768130..40047167c3c 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/supp-box.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/supp-box.lua
@@ -20,67 +20,63 @@ local nodes = nodes
local implement = interfaces.implement
-local nodecodes = nodes.nodecodes
-
-local disc_code = nodecodes.disc
-local hlist_code = nodecodes.hlist
-local vlist_code = nodecodes.vlist
-local glue_code = nodecodes.glue
-local glyph_code = nodecodes.glyph
-
-local nuts = nodes.nuts
-local tonut = nuts.tonut
-local tonode = nuts.tonode
-
------ getfield = nuts.getfield
-local getnext = nuts.getnext
-local getprev = nuts.getprev
-local getboth = nuts.getboth
-local getdisc = nuts.getdisc
-local getid = nuts.getid
-local getlist = nuts.getlist
-local getattribute = nuts.getattribute
-local getbox = nuts.getbox
-local getdirection = nuts.getdirection
-local getwidth = nuts.getwidth
-local takebox = nuts.takebox
-
------ setfield = nuts.setfield
-local setlink = nuts.setlink
-local setboth = nuts.setboth
-local setnext = nuts.setnext
-local setbox = nuts.setbox
-local setlist = nuts.setlist
-local setdisc = nuts.setdisc
-local setwidth = nuts.setwidth
-local setheight = nuts.setheight
-local setdepth = nuts.setdepth
-local setshift = nuts.setshift
-
-local flush_node = nuts.flush_node
-local flush_list = nuts.flush_list
-local copy_node = nuts.copy
-local copy_list = nuts.copy_list
-local find_tail = nuts.tail
-local getdimensions = nuts.dimensions
-local hpack = nuts.hpack
-
-local nextdisc = nuts.traversers.disc
-local nextdir = nuts.traversers.dir
-local nexthlist = nuts.traversers.hlist
-
-local listtoutf = nodes.listtoutf
-
-local nodepool = nuts.pool
-local new_penalty = nodepool.penalty
-local new_hlist = nodepool.hlist
-local new_glue = nodepool.glue
-
-local setlistcolor = nodes.tracers.colors.setlist
-
-local texget = tex.get
-local texgetbox = tex.getbox
-local texsetdimen = tex.setdimen
+local nodecodes = nodes.nodecodes
+
+local disc_code = nodecodes.disc
+local hlist_code = nodecodes.hlist
+local vlist_code = nodecodes.vlist
+local glue_code = nodecodes.glue
+local glyph_code = nodecodes.glyph
+
+local nuts = nodes.nuts
+local tonut = nuts.tonut
+local tonode = nuts.tonode
+
+----- getfield = nuts.getfield
+local getnext = nuts.getnext
+local getprev = nuts.getprev
+local getboth = nuts.getboth
+local getdisc = nuts.getdisc
+local getid = nuts.getid
+local getlist = nuts.getlist
+local getattribute = nuts.getattribute
+local getbox = nuts.getbox
+local getdir = nuts.getdir
+local getwidth = nuts.getwidth
+local takebox = nuts.takebox
+
+----- setfield = nuts.setfield
+local setlink = nuts.setlink
+local setboth = nuts.setboth
+local setnext = nuts.setnext
+local setbox = nuts.setbox
+local setlist = nuts.setlist
+local setdisc = nuts.setdisc
+local setwidth = nuts.setwidth
+local setheight = nuts.setheight
+local setdepth = nuts.setdepth
+
+local flush_node = nuts.flush_node
+local flush_list = nuts.flush_list
+local copy_node = nuts.copy
+local copy_list = nuts.copy_list
+local find_tail = nuts.tail
+local traverse_id = nuts.traverse_id
+local list_dimensions = nuts.dimensions
+local hpack = nuts.hpack
+
+local listtoutf = nodes.listtoutf
+
+local nodepool = nuts.pool
+local new_penalty = nodepool.penalty
+local new_hlist = nodepool.hlist
+local new_glue = nodepool.glue
+
+local setlistcolor = nodes.tracers.colors.setlist
+
+local texget = tex.get
+local texgetbox = tex.getbox
+local texsetdimen = tex.setdimen
local function hyphenatedlist(head,usecolor)
local current = head and tonut(head)
@@ -131,7 +127,7 @@ implement {
-- local function hyphenatedhack(head,pre)
-- pre = tonut(pre)
--- for n in nextdisc, tonut(head) do
+-- for n in traverse_id(disc_code,tonut(head)) do
-- local hyphen = getfield(n,"pre")
-- if hyphen then
-- flush_list(hyphen)
@@ -365,12 +361,10 @@ implement {
}
local function getnaturaldimensions(n)
- local w = 0
- local h = 0
- local d = 0
+ local w, h, d = 0, 0, 0
local l = getlist(getbox(n))
if l then
- w, h, d = getdimensions(l)
+ w, h, d = list_dimensions(l)
end
texsetdimen("lastnaturalboxwd",w)
texsetdimen("lastnaturalboxht",h)
@@ -397,12 +391,10 @@ interfaces.implement {
name = "getnaturalwd",
arguments = "integer",
actions = function(n)
- local w = 0
- local h = 0
- local d = 0
+ local w, h, d = 0, 0, 0
local l = getlist(getbox(n))
if l then
- w, h, d = getdimensions(l)
+ w, h, d = list_dimensions(l)
end
context("\\dimexpr%i\\scaledpoint\\relax",w)
end
@@ -424,60 +416,46 @@ interfaces.implement {
nodes.setboxtonaturalwd = setboxtonaturalwd
-local doifelse = commands.doifelse
-
-do
-
- local dirvalues = nodes.dirvalues
- local lefttoright_code = dirvalues.lefttoright
- local righttoleft_code = dirvalues.righttoleft
-
- local function firstdirinbox(n)
- local b = getbox(n)
- if b then
- local l = getlist(b)
- if l then
- for d in nextdir, l do
- return getdirection(d)
- end
- for h in nexthlist, l do
- return getdirection(h)
- end
+local function firstdirinbox(n)
+ local b = getbox(n)
+ if b then
+ local l = getlist(b)
+ if l then
+ for h in traverse_id(hlist_code,l) do
+ return getdir(h)
end
end
- return lefttoright_code
end
+end
- nodes.firstdirinbox = firstdirinbox
+nodes.firstdirinbox = firstdirinbox
- interfaces.implement {
- name = "doifelserighttoleftinbox",
- arguments = "integer",
- actions = function(n)
- doifelse(firstdirinbox(n) == righttoleft_code)
- end
- }
+local doifelse = commands.doifelse
-end
+interfaces.implement {
+ name = "doifelserighttoleftinbox",
+ arguments = "integer",
+ actions = function(n)
+ doifelse(firstdirinbox(n) == "TRT")
+ end
+}
-- new (handy for mp) .. might move to its own module
do
- local nuts = nodes.nuts
- local tonode = nuts.tonode
- local takebox = nuts.takebox
- local flush_list = nuts.flush_list
- local copy_list = nuts.copy_list
- local getwhd = nuts.getwhd
- local setbox = nuts.setbox
- local new_hlist = nuts.pool.hlist
-
- local boxes = { }
- nodes.boxes = boxes
- local cache = table.setmetatableindex("table")
- local report = logs.reporter("boxes","cache")
- local trace = false
+ local flush_list = nodes.flush_list
+ local copy_list = nodes.copy_list
+ local takebox = nodes.takebox
+ local texsetbox = tex.setbox
+
+ local new_hlist = nodes.pool.hlist
+
+ local boxes = { }
+ nodes.boxes = boxes
+ local cache = table.setmetatableindex("table")
+ local report = logs.reporter("boxes","cache")
+ local trace = false
trackers.register("nodes.boxes",function(v) trace = v end)
@@ -509,9 +487,7 @@ do
if trace then
report("category %a, name %a, %s (%s)",category,name,"direct",b and "content" or "empty")
end
- if b then
- return tonode(b)
- end
+ return b or nil
end
function boxes.restore(category,name,box,copy)
@@ -532,9 +508,11 @@ do
if trace then
report("category %a, name %a, %s (%s)",category,name,"restore",b and "content" or "empty")
end
- setbox(box,b or nil)
+ texsetbox(box,b or nil)
end
+ local getwhd = nodes.getwhd
+
function boxes.dimensions(category,name)
name = tonumber(name) or name
local b = cache[category][name]
@@ -614,19 +592,13 @@ do
actions = boxes.reset,
}
-end
-
-implement {
- name = "lastlinewidth",
- actions = function()
- local head = tex.lists.page_head
- -- list dimensions returns 3 value but we take the first
- context(head and getdimensions(getlist(find_tail(tonut(tex.lists.page_head)))) or 0)
- end
-}
+ implement {
+ name = "lastlinewidth",
+ actions = function()
+ local head = tex.lists.page_head
+ -- list dimensions returns 3 value but we take the first
+ context(head and list_dimensions(getlist(find_tail(tonut(tex.lists.page_head)))) or 0)
+ end
+ }
-interfaces.implement {
- name = "shiftbox",
- arguments = { "integer", "dimension" },
- actions = function(n,d) setshift(getbox(n),d) end,
-}
+end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/supp-box.mkiv b/Master/texmf-dist/tex/context/base/mkiv/supp-box.mkiv
index 59e7105207b..fb9cbdf5dac 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/supp-box.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/supp-box.mkiv
@@ -15,14 +15,10 @@
\unprotect
-\registerctxluafile{supp-box}{optimize}
+\registerctxluafile{supp-box}{}
% This file is partially cleaned up.
-%D First some defaults:
-
-\fixupboxesmode\plusone
-
% handy to have
%
% \hbox to \hsize
@@ -212,8 +208,8 @@
%D \smashedvbox to ... {...}
%D \stoptyping
-\unexpanded\def\smashedhbox{\hpack\bgroup\dowithnextboxcs\syst_boxes_smashed_nextbox\hbox}
-\unexpanded\def\smashedvbox{\vpack\bgroup\dowithnextboxcs\syst_boxes_smashed_nextbox\vbox}
+\unexpanded\def\smashedhbox{\hbox\bgroup\dowithnextboxcs\syst_boxes_smashed_nextbox\hbox}
+\unexpanded\def\smashedvbox{\vbox\bgroup\dowithnextboxcs\syst_boxes_smashed_nextbox\vbox}
%D First we define a helper. We use a \LUATEX\ feature in order to avoid
%D mathpalettes.
@@ -580,7 +576,7 @@
\unexpanded\def\doifelsetext#1%
{\begingroup
- \setbox\scratchbox\hpack
+ \setbox\scratchbox\hbox
{\settrialtypesetting
\ignorespaces#1\removeunwantedspaces}%
\ifzeropt\wd\scratchbox
@@ -593,7 +589,7 @@
\unexpanded\def\doiftext#1%
{\begingroup
- \setbox\scratchbox\hpack
+ \setbox\scratchbox\hbox
{\settrialtypesetting
\ignorespaces#1\removeunwantedspaces}%
\ifzeropt\wd\scratchbox
@@ -674,7 +670,7 @@
%D \afterassignment\syst_boxes_with_next_box_indeed
%D \else\ifx#2\vbox
%D \afterassignment\syst_boxes_with_next_box_indeed
-%D \else\ifx#2\vtop
+%D \else\ifx#2\normalvtop
%D \afterassignment\syst_boxes_with_next_box_indeed
%D \else\ifx#2\normalvcenter
%D \afterassignment\syst_boxes_with_next_box_indeed
@@ -734,9 +730,9 @@
%D Some well known friends, but we implement them our own
%D way. We want the macros to work in both math and text mode.
-\def\dodorlap{\hpack to \zeropoint{\box\nextbox\hss}\endgroup}
-\def\dodollap{\hpack to \zeropoint{\hss\box\nextbox}\endgroup}
-\def\dodoclap{\hpack to \zeropoint{\hss\box\nextbox\hss}\endgroup}
+\def\dodorlap{\hpack to \zeropoint{\box\nextbox\normalhss}\endgroup}
+\def\dodollap{\hpack to \zeropoint{\normalhss\box\nextbox}\endgroup}
+\def\dodoclap{\hpack to \zeropoint{\normalhss\box\nextbox\normalhss}\endgroup}
\def\dorlap{\begingroup\dowithnextboxcs\dodorlap\hbox}
\def\dollap{\begingroup\dowithnextboxcs\dodollap\hbox}
@@ -750,8 +746,8 @@
\unexpanded\def\llap{\mathortext\domathllap\dollap}
\unexpanded\def\clap{\mathortext\domathclap\doclap}
-\def\dodotlap{\vpack to \zeropoint{\vss\box\nextbox}\endgroup}
-\def\dodoblap{\vpack to \zeropoint{\box\nextbox\vss}\endgroup}
+\def\dodotlap{\vpack to \zeropoint{\normalvss\box\nextbox}\endgroup}
+\def\dodoblap{\vpack to \zeropoint{\box\nextbox\normalvss}\endgroup}
\unexpanded\def\tlap{\begingroup\dowithnextboxcs\dodotlap\vbox}
\unexpanded\def\blap{\begingroup\dowithnextboxcs\dodoblap\vbox}
@@ -1187,8 +1183,8 @@
%D complex macro than needed at first sight.
\def\dodoboundtext#1%
- {\setbox\scratchboxone\hbox{#1}%
- \advance\scratchdimen -\wd\scratchboxone
+ {\setbox0\hbox{#1}%
+ \advance\scratchdimen -\wd0
\ifdim\scratchdimen>\zeropoint\relax#1\fi}%
\def\doboundtext#1#2#3% still used?
@@ -1247,7 +1243,7 @@
\ifdim\wd\nextbox>\scratchdimen
\setbox\scratchbox\hbox{\ifdone\space#2\else#2\space\fi}%
\advance\scratchdimen -\wd\scratchbox
- \setbox\scratchboxone\box\nextbox
+ \setbox0\box\nextbox
\setbox\nextbox\vbox
{\hsize\scratchdimen
\hfuzz\maxdimen
@@ -1258,7 +1254,7 @@
\rightskip\zeropoint
\hskip\zeropoint \s!plus 1\s!fill % \hsize
\fi
- \unhcopy\scratchboxone}%
+ \unhcopy0}%
\ifdim\ht\nextbox>\strutht
\setbox\nextbox\vbox % if omitted: missing brace reported
{\splittopskip\openstrutheight
@@ -1266,7 +1262,7 @@
\setbox\nextbox\vsplit\nextbox to \strutht
\else
\doloop
- {\setbox\scratchboxone\vsplit\nextbox to \strutht
+ {\setbox0\vsplit\nextbox to \strutht
\ifdim\ht\nextbox>\strutht \else \exitloop \fi}%
\fi
\unvbox\nextbox
@@ -1308,13 +1304,13 @@
{%\dontleavehmode
\bgroup
\let\speciallimitatetext\firstoffourarguments
- \setbox\scratchboxone\hbox
+ \setbox0\hbox
{\nohyphens
\normallimitatetext{#1}{+#2}{}#4%
\normallimitatetext{#1}{-#3}{}}%
- \setbox\scratchboxtwo\hbox
+ \setbox2\hbox
{#1}%
- \ifdim\wd\scratchboxtwo<\wd\scratchboxone #1\else\unhbox\scratchboxone\fi
+ \ifdim\wd2<\wd0 #1\else\unhbox0\fi
\egroup}
\unexpanded\def\limitatetext#1#2#3% \expanded added 2003/01/16
@@ -1332,7 +1328,7 @@
%D \stoptyping
\unexpanded\def\limitatefirstline#1#2#3%
- {\hbox\bgroup\strut % \hpack
+ {\hbox\bgroup\strut
\setbox\scratchbox\hbox{\begstrut#1\endstrut}%
\ifdim\wd\scratchbox>#2\relax
\setbox\scratchbox\hbox{#3}%
@@ -1344,7 +1340,7 @@
{\unvbox\scratchbox
\global\setbox\plusone\lastbox
\global\setbox\plusone\hbox{\strut\unhbox\plusone}%
- \hbox % to #2 % \hpack
+ \hbox % to #2
{\ifx\clip\undefined
\box\plusone
\else\ifdim\wd\plusone>\hsize
@@ -1537,7 +1533,7 @@
%D a strut.
\unexpanded\def\struttedbox
- {\hpack\bgroup
+ {\hbox\bgroup
\dowithnextboxcs\syst_boxes_struttedbox_finish\hbox}
\def\syst_boxes_struttedbox_finish
@@ -1554,7 +1550,7 @@
%D equals strutdepth.
\unexpanded\def\topskippedbox
- {\hpack\bgroup\dowithnextboxcs\syst_boxes_topskippedbox_finish\hbox}
+ {\hbox\bgroup\dowithnextboxcs\syst_boxes_topskippedbox_finish\hbox}
\def\syst_boxes_topskippedbox_finish
{\edef\m_boxes_tmp{\ifdim\strutdepth=\dp\nextbox\dp\nextbox\the\dp\nextbox\fi}%
@@ -1610,22 +1606,22 @@
\unexpanded\def\centeredbox#1#% height +/-dimen width +/-dimen
{\bgroup
- \setbox\scratchboxone\vpack to \vsize
+ \setbox0\vpack to \vsize
\bgroup
\dontcomplain
\forgetall
- \setbox\scratchboxone\hpack{\vrule\s!width \zeropoint#1}%
- \setbox\scratchboxtwo\vpack{\hrule\s!height\zeropoint#1}%
- \advance\vsize \ht\scratchboxtwo
- \advance\hsize \wd\scratchboxone
+ \setbox0\hbox{\vrule\s!width \zeropoint#1}%
+ \setbox2\vbox{\hrule\s!height\zeropoint#1}%
+ \advance\vsize \ht2
+ \advance\hsize \wd0
\vpack to \vsize
\bgroup
- \vskip-\ht\scratchboxtwo
+ \vskip-\ht2
\vss
\hpack to \hsize
\bgroup
\dowithnextbox
- {\hskip-\wd\scratchboxone
+ {\hskip-\wd0
\hss
\box\nextbox
\hss
@@ -1633,13 +1629,14 @@
\vss
\egroup
\egroup
- \wd\scratchboxone\hsize
- \ht\scratchboxone\vsize
- \box\scratchboxone
+ \wd0\hsize
+ \ht0\vsize
+ \box0
\egroup}
\hbox}
-%D For those who don't want to deal with \type {\hsize} and \type {\vsize}, we have:
+%D For those who don't want to deal with \type {\hsize}
+%D and \type {\vsize}, we have:
%D
%D \starttyping
%D \centerednextbox width 2bp height 2bp
@@ -1673,9 +1670,9 @@
{\bgroup
\dowithnextbox
{\setlocalhsize
- \setbox\scratchbox\hpack{\vrule\s!width \zeropoint#1}%
+ \setbox\scratchbox\hbox{\vrule\s!width \zeropoint#1}%
\ifzeropt\wd\scratchbox\else\hsize\wd\scratchbox\fi
- \setbox\scratchbox\vpack{\hrule\s!height\zeropoint#1}%
+ \setbox\scratchbox\vbox{\hrule\s!height\zeropoint#1}%
\ifzeropt\ht\scratchbox\else\vsize\ht\scratchbox\fi
\vpack to \vsize{\vss\hpack to \hsize{\hss\box\nextbox\hss}\vss}%
\egroup}%
@@ -1767,7 +1764,7 @@
{\dorecurse\rigidcolumns
{\setbox\scratchbox\vsplit\rigidcolumnbox to \scratchdimen
\dp\scratchbox\openstrutdepth
- \setbox\scratchbox\vtop
+ \setbox\scratchbox\normalvtop
\ifalignrigidcolumns to
\ifstretchrigidcolumns\vsize\else\scratchdimen\fi
\fi
@@ -1877,21 +1874,21 @@
\unexpanded\def\convertvboxtohbox
{\makehboxofhboxes
- \setbox\scratchboxone\hpack{\unhbox\scratchboxone\removehboxes}% \hpack
- \noindent\unhbox\scratchboxone\par}
+ \setbox0\hbox{\unhbox0 \removehboxes}%
+ \noindent\unhbox0\par}
\unexpanded\def\makehboxofhboxes
- {\setbox\scratchboxone\emptyhbox
- \loop % \doloop { .. \exitloop .. }
- \setbox\scratchboxtwo\lastbox
- \ifhbox\scratchboxtwo
- \setbox\scratchboxone\hpack{\box\scratchboxtwo\unhbox\scratchboxone}%
+ {\setbox0\emptyhbox
+ \loop % \doloop { .. \exitloop .. }
+ \setbox2\lastbox
+ \ifhbox2
+ \setbox0\hbox{\box2\unhbox0}%
\repeat}
\unexpanded\def\removehboxes
- {\setbox\scratchboxone\lastbox
- \ifhbox\scratchboxone
- {\removehboxes}\unhbox\scratchboxone
+ {\setbox0\lastbox
+ \ifhbox0
+ {\removehboxes}\unhbox0
\fi}
% And one special for notes:
@@ -1950,7 +1947,7 @@
\doloop
{\setbox\hhbox\vsplit\unhhedbox to \lineheight
\ifvoid\unhhedbox
- \setbox\hhbox\hbox{\strut\hboxofvbox\hhbox}% \hpack
+ \setbox\hhbox\hbox{\strut\hboxofvbox\hhbox}%
\fi
\ht\hhbox\strutht
\dp\hhbox\strutdp
@@ -2132,27 +2129,7 @@
%D
%D \leavevmode\getbuffer
-\def\boxisempty#1%
- {\ifdim\wd#1=\zeropoint
- \ifdim\ht#1=\zeropoint
- \ifdim\dp#1=\zeropoint
- \zerocount
- \else
- \plusone
- \fi
- \else
- \plusone
- \fi
- \else
- \plusone
- \fi}
-
\def\syst_boxes_overlay_process
- {\ifcase\boxisempty\nextbox\else
- \syst_boxes_overlay_process_indeed
- \fi}
-
-\def\syst_boxes_overlay_process_indeed
{%\removeunwantedspaces % already done
\scratchdepth\dp\ifdim\dp\nextbox>\dp\processbox\nextbox\else\processbox\fi
\ifdim\ht\nextbox>\ht\processbox
@@ -2221,9 +2198,9 @@
\unexpanded\def\cbox#1#{\vbox#1\syst_boxes_lrc_process\raggedcenter}
\unexpanded\def\rbox#1#{\vbox#1\syst_boxes_lrc_process\raggedright }
-\unexpanded\def\ltop#1#{\vtop#1\syst_boxes_lrc_process\raggedleft }
-\unexpanded\def\ctop#1#{\vtop#1\syst_boxes_lrc_process\raggedcenter}
-\unexpanded\def\rtop#1#{\vtop#1\syst_boxes_lrc_process\raggedright }
+\unexpanded\def\ltop#1#{\normalvtop#1\syst_boxes_lrc_process\raggedleft }
+\unexpanded\def\ctop#1#{\normalvtop#1\syst_boxes_lrc_process\raggedcenter}
+\unexpanded\def\rtop#1#{\normalvtop#1\syst_boxes_lrc_process\raggedright }
%D The alternatives \type {\tbox} and \type {\bbox} can be used
%D to properly align boxes, like in:
@@ -2245,8 +2222,8 @@
%D
%D \getbuffer
-\unexpanded\def\tbox{\hpack\bgroup\dowithnextboxcs\syst_boxes_tbox_finish\hbox}
-\unexpanded\def\bbox{\hpack\bgroup\dowithnextboxcs\syst_boxes_bbox_finish\hbox}
+\unexpanded\def\tbox{\hbox\bgroup\dowithnextboxcs\syst_boxes_tbox_finish\hbox}
+\unexpanded\def\bbox{\hbox\bgroup\dowithnextboxcs\syst_boxes_bbox_finish\hbox}
\def\syst_boxes_tbox_finish
{\scratchdepth\dimexpr\ht\nextbox+\dp\nextbox-\ht\strutbox\relax
@@ -2312,7 +2289,7 @@
{\ifx\next\bgroup
\expanded{\egroup#1 to \the\sizeofbox}%
\else
- \expandafter\afterassignment\expandafter\docommand\expandafter\scratchdimen
+ \@EA\afterassignment\@EA\docommand\@EA\scratchdimen
\fi}%
\docommand}
@@ -2360,7 +2337,7 @@
\newbox\fakedboxcursor
-\setbox\fakedboxcursor\hpack
+\setbox\fakedboxcursor\hbox
{\vrule\s!width\zeropoint\s!height\zeropoint\s!depth\zeropoint}
\unexpanded\def\boxcursor % overloaded in core-vis
@@ -2746,7 +2723,7 @@
% vcenter in text, we kunnen vcenter overloaden
\unexpanded\def\halfwaybox
- {\hpack\bgroup
+ {\hbox\bgroup
\dowithnextboxcs\syst_boxes_halfwaybox_finish\hbox}
\def\syst_boxes_halfwaybox_finish
@@ -2755,7 +2732,7 @@
\egroup}
\unexpanded\def\depthonlybox
- {\tpack\bgroup
+ {\vtop\bgroup
\dowithnextboxcs\syst_boxes_depthonlybox_finish\vbox}
\def\syst_boxes_depthonlybox_finish
@@ -2770,7 +2747,12 @@
%D And even rawer:
-\let\naturalvcenter\normalvtop % will go away
+ \let\naturalvtop \normalvtop
+ \let\naturalvcenter\normalvtop
+\unexpanded\def\naturalhbox {\hbox dir TLT}
+\unexpanded\def\naturalvbox {\vbox dir TLT}
+\unexpanded\def\naturalhpack {\hpack dir TLT}
+\unexpanded\def\naturalvpack {\vpack dir TLT}
%D \macros
%D {vcenter}
@@ -2782,7 +2764,7 @@
\dowithnextboxcs\syst_boxes_vcenter_finish\vbox}
\def\syst_boxes_vcenter_finish
- {\hpack{\normalstartimath\vcenter{\box\nextbox}\normalstopimath}%
+ {\hpack{\normalstartimath\normalvcenter{\box\nextbox}\normalstopimath}%
\egroup}
% could be \everymathematics
@@ -2798,7 +2780,7 @@
%D A not so well unhboxable box can be made with:
\unexpanded\def\frozenhbox
- {\hpack\bgroup
+ {\hbox\bgroup
\dowithnextboxcs\syst_boxes_frozenhbox_finish\hbox}
\def\syst_boxes_frozenhbox_finish
@@ -2855,19 +2837,19 @@
\unexpanded\def\spreadhbox#1% rebuilds \hbox{<box><hss><box><hss><box>}
{\bgroup
\ifhbox#1\relax
- \setbox\scratchboxtwo\emptybox
+ \setbox2\emptybox
\unhbox#1%
\doloop
{\unpenalty\unskip\unpenalty\unskip\unpenalty\unskip
- \setbox\scratchboxone\lastbox
- \ifvoid\scratchboxone
+ \setbox0\lastbox
+ \ifvoid0
\exitloop
\else
- \setbox\scratchboxtwo\hbox
- {\ifhbox\scratchboxone \spreadhbox\scratchboxone\else\box\scratchboxone\fi
- \ifvoid\scratchboxtwo \else\hss\unhbox\scratchboxtwo\fi}%
+ \setbox2\hbox
+ {\ifhbox0 \spreadhbox0\else\box0\fi
+ \ifvoid2 \else\hss\unhbox2\fi}%
\fi}%
- \ifvoid\scratchboxtwo\else\unhbox\scratchboxtwo\fi
+ \ifvoid2\else\unhbox2\fi
\else
\box#1%
\fi
@@ -2992,24 +2974,6 @@
% \unexpanded\def\tightvbox{\dowithnextbox{\dp\nextbox\zeropoint\box\nextbox}\vbox}
% \unexpanded\def\tightvtop{\dowithnextbox{\ht\nextbox\zeropoint\box\nextbox}\vtop}
-%D This one keeps dimensions and sets the shift field (and so it's more for testing
-%D than for real usage):
-
-\unexpanded\def\shiftbox{\clf_shiftbox}
-
-%D This one has been moved from a 2 decade old file. It makes something boxed
-%D sit on the baseline.
-
-\unexpanded\def\linebox
- {\hpack\bgroup\dowithnextbox
- {\scratchdimen\dimexpr\dimexpr\htdp\nextbox-\lineheight\relax/2+\dp\strutbox\relax
- \setbox\nextbox\hpack{\lower\scratchdimen\box\nextbox}%
- \ht\nextbox\ht\strutbox
- \dp\nextbox\dp\strutbox
- \box\nextbox
- \egroup}
- \hbox}
-
\protect \endinput
% a bit of test code:
diff --git a/Master/texmf-dist/tex/context/base/mkiv/supp-dir.mkiv b/Master/texmf-dist/tex/context/base/mkiv/supp-dir.mkiv
index 277f2b7cac2..42a0aa37cf8 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/supp-dir.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/supp-dir.mkiv
@@ -11,44 +11,40 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\unprotect
+%D We no longer have the \ETEX\ direction primitives.
-\chardef\directionlefttoright\zerocount
-\chardef\directionrighttoleft\plusone
+\unprotect
-\edef\??bdir{\ifdefined\bodydir bdir\else direction\fi}
+% \expanded{\defineactivecharacter \number"2000E} {\textdir TRT\relax}
+% \expanded{\defineactivecharacter \number"2000F} {\textdir TLT\relax}
-\unexpanded\edef\naturalhbox {\hbox \??bdir\directionlefttoright}
-\unexpanded\edef\naturalvbox {\vbox \??bdir\directionlefttoright}
-\unexpanded\edef\naturalvtop {\vtop \??bdir\directionlefttoright}
-\unexpanded\edef\naturalhpack {\hpack \??bdir\directionlefttoright}
-\unexpanded\edef\naturalvpack {\vpack \??bdir\directionlefttoright}
-\unexpanded\edef\naturaltpack {\tpack \??bdir\directionlefttoright}
+%D As we have less directions now we can use something
-\unexpanded\edef\reversehbox {\hbox \??bdir\directionrighttoleft}
-\unexpanded\edef\reversevbox {\vbox \??bdir\directionrighttoleft}
-\unexpanded\edef\reversevtop {\vtop \??bdir\directionrighttoleft}
-\unexpanded\edef\reversehpack {\hpack \??bdir\directionrighttoleft}
-\unexpanded\edef\reversevpack {\vpack \??bdir\directionrighttoleft}
-\unexpanded\edef\reversetpack {\tpack \??bdir\directionrighttoleft}
+% \chardef\@@D@@TLT0
+% \chardef\@@D@@TRT1
+% \chardef\@@D@@RTT0
+% \chardef\@@D@@LRL1
+%
+% \def\thetextdir{\csname @@D@@\the\textdir\endcsname}
+%
+% \ifnum\thetextdir=0 L\else R\fi \textdir TRT \ifnum\thetextdir=0 L\else R\fi
-\ifdefined\bodydir
- \let\bodydir \undefined \let\normalbodydir \undefined
- \let\bodydirection\undefined \let\normalbodydirection\undefined
-\fi
+\unexpanded\def\showdirsinmargin
+ {\inleft{\normalexpanded{\noexpand\hbox dir TLT{\ttxx[\the\pardir,\the\textdir]}}}}
-\ifdefined\pagedir
- \let\pagedir \undefined \let\normalpagedir \undefined
- \let\pagedirection\undefined \let\normalpagedirection\undefined
-\fi
+\bgroup
+ \catcode`L=\othercatcode \gdef\istltdir#1#2#3{\if#2L0\else1\fi}
+ \catcode`R=\othercatcode \gdef\istrtdir#1#2#3{\if#2R0\else1\fi}
+\egroup
-% \expanded{\defineactivecharacter \number"2000E} {\textdirection\directionrighttoleft\relax}
-% \expanded{\defineactivecharacter \number"2000F} {\textdirection\directionlefttoright\relax}
+\def\istlttextdir{\expandafter\istltdir\the\textdir}
+\def\istrttextdir{\expandafter\istrtdir\the\textdir}
-\def\syst_direction_string#1{\ifcase#1=\plusone r2l\else l2r\fi}
+\def\istltpardir {\expandafter\istltdir\the\pardir }
+\def\istrtpardir {\expandafter\istrtdir\the\pardir }
-\unexpanded\def\showdirsinmargin
- {\normalexpanded{\inleft{\naturalhbox
- {\ttxx[\syst_direction_string\pardirection,\syst_direction_string\textdirection]}}}}
+% \ifcase\istlttextdir Y\else N\fi
+% \ifcase\istltpardir Y\else N\fi
+% \ifcase\istltdir TRT\relax Y\else N\fi
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkiv/supp-mat.mkiv b/Master/texmf-dist/tex/context/base/mkiv/supp-mat.mkiv
index f72a0ff89dc..176233ae5b6 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/supp-mat.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/supp-mat.mkiv
@@ -179,7 +179,7 @@
\popmacro\dodimensionsignal}
\unexpanded\def\nodimension#1%
- {\unskip#1\glet\dodimensionsignal\relax}
+ {\unskip#1\global\let\dodimensionsignal\relax}
%D \macros
%D {cramped}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/symb-emj.lua b/Master/texmf-dist/tex/context/base/mkiv/symb-emj.lua
index d6e2aebea6f..3075e09854f 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/symb-emj.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/symb-emj.lua
@@ -19,27 +19,32 @@ local protectglyphs = nodes.handlers.protectglyphs
local tonodes = nodes.tonodes
local currentfont = font.current
-local nuts = nodes.nuts
-local tonode = nuts.tonode
-local tonut = nuts.tonut
-local remove_node = nuts.remove
-local isglyph = nuts.isglyph
+-- fast enough, no need to memoize
+
+local glyph_code = nodes.nodecodes.glyph
+local remove_node = nodes.remove
+local getid = nodes.getid
+local getnext = nodes.getnext
+local getchar = nodes.getchar
local function removemodifiers(head)
- local head = tonut(head)
local current = head
while current do
- local char, id = isglyph(current)
- if char and char == 0x200D or (char >= 0x1F3FB and char <= 0x1F3FF) then
- head, current = remove_node(head,current,true)
+ if getid(current) == glyph_code then
+ local char = getchar(current) -- using categories is too much
+ if char == 0x200D or (char >= 0x1F3FB and char <= 0x1F3FF) then
+ head, current = remove_node(head,current,true)
+ else
+ current = getnext(current)
+ end
else
current = getnext(current)
end
end
- return tonode(head)
+ return head
end
--- fast enough, no need to memoize, maybe use attributes
+-- attributes
local function checkedemoji(name,id)
local str = resolvedemoji(name)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/symb-imp-fontawesome.mkiv b/Master/texmf-dist/tex/context/base/mkiv/symb-imp-fontawesome.mkiv
index c638998ab75..145adc46c04 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/symb-imp-fontawesome.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/symb-imp-fontawesome.mkiv
@@ -10,786 +10,749 @@
\definefontsynonym [FontAwesome] [file:FontAwesome.otf]
%def\FontAwesomeSymbol#1{\getglyphstyled{FontAwesome}{\utfchar{0x#1}}}
-\def\FontAwesomeSymbol#1{\getglyphstyled{FontAwesome}{\tochar{n:#1}}}
+\def\FontAwesomeSymbol#1{\getglyphstyled{FontAwesome}{\tochar{x:#1}}}
-\startsymbolset [fontawesome] [font=fontawesome]
+\startsymbolset [fontawesome]
- \definesymbol [wheelchair] [\FontAwesomeSymbol{_378}]
+ \definesymbol [500px] [\FontAwesomeSymbol{f26e}]
+ \definesymbol [adjust] [\FontAwesomeSymbol{f042}]
+ \definesymbol [adn] [\FontAwesomeSymbol{f170}]
+ \definesymbol [align-center] [\FontAwesomeSymbol{f037}]
+ \definesymbol [align-justify] [\FontAwesomeSymbol{f039}]
+ \definesymbol [align-left] [\FontAwesomeSymbol{f036}]
+ \definesymbol [align-right] [\FontAwesomeSymbol{f038}]
+ \definesymbol [amazon] [\FontAwesomeSymbol{f270}]
+ \definesymbol [ambulance] [\FontAwesomeSymbol{f0f9}]
+ \definesymbol [american-sign-language-interpreting] [\FontAwesomeSymbol{f2a3}]
+ \definesymbol [anchor] [\FontAwesomeSymbol{f13d}]
+ \definesymbol [android] [\FontAwesomeSymbol{f17b}]
+ \definesymbol [angellist] [\FontAwesomeSymbol{f209}]
+ \definesymbol [angle-double-down] [\FontAwesomeSymbol{f103}]
+ \definesymbol [angle-double-left] [\FontAwesomeSymbol{f100}]
+ \definesymbol [angle-double-right] [\FontAwesomeSymbol{f101}]
+ \definesymbol [angle-double-up] [\FontAwesomeSymbol{f102}]
+ \definesymbol [angle-down] [\FontAwesomeSymbol{f107}]
+ \definesymbol [angle-left] [\FontAwesomeSymbol{f104}]
+ \definesymbol [angle-right] [\FontAwesomeSymbol{f105}]
+ \definesymbol [angle-up] [\FontAwesomeSymbol{f106}]
+ \definesymbol [apple] [\FontAwesomeSymbol{f179}]
+ \definesymbol [archive] [\FontAwesomeSymbol{f187}]
+ \definesymbol [area-chart] [\FontAwesomeSymbol{f1fe}]
+ \definesymbol [arrow-circle-down] [\FontAwesomeSymbol{f0ab}]
+ \definesymbol [arrow-circle-left] [\FontAwesomeSymbol{f0a8}]
+ \definesymbol [arrow-circle-o-down] [\FontAwesomeSymbol{f01a}]
+ \definesymbol [arrow-circle-o-left] [\FontAwesomeSymbol{f190}]
+ \definesymbol [arrow-circle-o-right] [\FontAwesomeSymbol{f18e}]
+ \definesymbol [arrow-circle-o-up] [\FontAwesomeSymbol{f01b}]
+ \definesymbol [arrow-circle-right] [\FontAwesomeSymbol{f0a9}]
+ \definesymbol [arrow-circle-up] [\FontAwesomeSymbol{f0aa}]
+ \definesymbol [arrow-down] [\FontAwesomeSymbol{f063}]
+ \definesymbol [arrow-left] [\FontAwesomeSymbol{f060}]
+ \definesymbol [arrow-right] [\FontAwesomeSymbol{f061}]
+ \definesymbol [arrow-up] [\FontAwesomeSymbol{f062}]
+ \definesymbol [arrows] [\FontAwesomeSymbol{f047}]
+ \definesymbol [arrows-alt] [\FontAwesomeSymbol{f0b2}]
+ \definesymbol [arrows-h] [\FontAwesomeSymbol{f07e}]
+ \definesymbol [arrows-v] [\FontAwesomeSymbol{f07d}]
+ \definesymbol [asl-interpreting] [\FontAwesomeSymbol{f2a3}]
+ \definesymbol [assistive-listening-systems] [\FontAwesomeSymbol{f2a2}]
+ \definesymbol [asterisk] [\FontAwesomeSymbol{f069}]
+ \definesymbol [at] [\FontAwesomeSymbol{f1fa}]
+ \definesymbol [audio-description] [\FontAwesomeSymbol{f29e}]
+ \definesymbol [automobile] [\FontAwesomeSymbol{f1b9}]
+ \definesymbol [backward] [\FontAwesomeSymbol{f04a}]
+ \definesymbol [balance-scale] [\FontAwesomeSymbol{f24e}]
+ \definesymbol [ban] [\FontAwesomeSymbol{f05e}]
+ \definesymbol [bank] [\FontAwesomeSymbol{f19c}]
+ \definesymbol [bar-chart] [\FontAwesomeSymbol{f080}]
+ \definesymbol [bar-chart-o] [\FontAwesomeSymbol{f080}]
+ \definesymbol [barcode] [\FontAwesomeSymbol{f02a}]
+ \definesymbol [bars] [\FontAwesomeSymbol{f0c9}]
+ \definesymbol [battery-0] [\FontAwesomeSymbol{f244}]
+ \definesymbol [battery-1] [\FontAwesomeSymbol{f243}]
+ \definesymbol [battery-2] [\FontAwesomeSymbol{f242}]
+ \definesymbol [battery-3] [\FontAwesomeSymbol{f241}]
+ \definesymbol [battery-4] [\FontAwesomeSymbol{f240}]
+ \definesymbol [battery-empty] [\FontAwesomeSymbol{f244}]
+ \definesymbol [battery-full] [\FontAwesomeSymbol{f240}]
+ \definesymbol [battery-half] [\FontAwesomeSymbol{f242}]
+ \definesymbol [battery-quarter] [\FontAwesomeSymbol{f243}]
+ \definesymbol [battery-three-quarters] [\FontAwesomeSymbol{f241}]
+ \definesymbol [bed] [\FontAwesomeSymbol{f236}]
+ \definesymbol [beer] [\FontAwesomeSymbol{f0fc}]
+ \definesymbol [behance] [\FontAwesomeSymbol{f1b4}]
+ \definesymbol [behance-square] [\FontAwesomeSymbol{f1b5}]
+ \definesymbol [bell] [\FontAwesomeSymbol{f0f3}]
+ \definesymbol [bell-o] [\FontAwesomeSymbol{f0a2}]
+ \definesymbol [bell-slash] [\FontAwesomeSymbol{f1f6}]
+ \definesymbol [bell-slash-o] [\FontAwesomeSymbol{f1f7}]
+ \definesymbol [bicycle] [\FontAwesomeSymbol{f206}]
+ \definesymbol [binoculars] [\FontAwesomeSymbol{f1e5}]
+ \definesymbol [birthday-cake] [\FontAwesomeSymbol{f1fd}]
+ \definesymbol [bitbucket] [\FontAwesomeSymbol{f171}]
+ \definesymbol [bitbucket-square] [\FontAwesomeSymbol{f172}]
+ \definesymbol [bitcoin] [\FontAwesomeSymbol{f15a}]
+ \definesymbol [black-tie] [\FontAwesomeSymbol{f27e}]
+ \definesymbol [blind] [\FontAwesomeSymbol{f29d}]
+ \definesymbol [bluetooth] [\FontAwesomeSymbol{f293}]
+ \definesymbol [bluetooth-b] [\FontAwesomeSymbol{f294}]
+ \definesymbol [bold] [\FontAwesomeSymbol{f032}]
+ \definesymbol [bolt] [\FontAwesomeSymbol{f0e7}]
+ \definesymbol [bomb] [\FontAwesomeSymbol{f1e2}]
+ \definesymbol [book] [\FontAwesomeSymbol{f02d}]
+ \definesymbol [bookmark] [\FontAwesomeSymbol{f02e}]
+ \definesymbol [bookmark-o] [\FontAwesomeSymbol{f097}]
+ \definesymbol [braille] [\FontAwesomeSymbol{f2a1}]
+ \definesymbol [briefcase] [\FontAwesomeSymbol{f0b1}]
+ \definesymbol [btc] [\FontAwesomeSymbol{f15a}]
+ \definesymbol [bug] [\FontAwesomeSymbol{f188}]
+ \definesymbol [building] [\FontAwesomeSymbol{f1ad}]
+ \definesymbol [building-o] [\FontAwesomeSymbol{f0f7}]
+ \definesymbol [bullhorn] [\FontAwesomeSymbol{f0a1}]
+ \definesymbol [bullseye] [\FontAwesomeSymbol{f140}]
+ \definesymbol [bus] [\FontAwesomeSymbol{f207}]
+ \definesymbol [buysellads] [\FontAwesomeSymbol{f20d}]
+ \definesymbol [cab] [\FontAwesomeSymbol{f1ba}]
+ \definesymbol [calculator] [\FontAwesomeSymbol{f1ec}]
+ \definesymbol [calendar] [\FontAwesomeSymbol{f073}]
+ \definesymbol [calendar-check-o] [\FontAwesomeSymbol{f274}]
+ \definesymbol [calendar-minus-o] [\FontAwesomeSymbol{f272}]
+ \definesymbol [calendar-o] [\FontAwesomeSymbol{f133}]
+ \definesymbol [calendar-plus-o] [\FontAwesomeSymbol{f271}]
+ \definesymbol [calendar-times-o] [\FontAwesomeSymbol{f273}]
+ \definesymbol [camera] [\FontAwesomeSymbol{f030}]
+ \definesymbol [camera-retro] [\FontAwesomeSymbol{f083}]
+ \definesymbol [car] [\FontAwesomeSymbol{f1b9}]
+ \definesymbol [caret-down] [\FontAwesomeSymbol{f0d7}]
+ \definesymbol [caret-left] [\FontAwesomeSymbol{f0d9}]
+ \definesymbol [caret-right] [\FontAwesomeSymbol{f0da}]
+ \definesymbol [caret-square-o-down] [\FontAwesomeSymbol{f150}]
+ \definesymbol [caret-square-o-left] [\FontAwesomeSymbol{f191}]
+ \definesymbol [caret-square-o-right] [\FontAwesomeSymbol{f152}]
+ \definesymbol [caret-square-o-up] [\FontAwesomeSymbol{f151}]
+ \definesymbol [caret-up] [\FontAwesomeSymbol{f0d8}]
+ \definesymbol [cart-arrow-down] [\FontAwesomeSymbol{f218}]
+ \definesymbol [cart-plus] [\FontAwesomeSymbol{f217}]
+ \definesymbol [cc] [\FontAwesomeSymbol{f20a}]
+ \definesymbol [cc-amex] [\FontAwesomeSymbol{f1f3}]
+ \definesymbol [cc-diners-club] [\FontAwesomeSymbol{f24c}]
+ \definesymbol [cc-discover] [\FontAwesomeSymbol{f1f2}]
+ \definesymbol [cc-jcb] [\FontAwesomeSymbol{f24b}]
+ \definesymbol [cc-mastercard] [\FontAwesomeSymbol{f1f1}]
+ \definesymbol [cc-paypal] [\FontAwesomeSymbol{f1f4}]
+ \definesymbol [cc-stripe] [\FontAwesomeSymbol{f1f5}]
+ \definesymbol [cc-visa] [\FontAwesomeSymbol{f1f0}]
+ \definesymbol [certificate] [\FontAwesomeSymbol{f0a3}]
+ \definesymbol [chain] [\FontAwesomeSymbol{f0c1}]
+ \definesymbol [chain-broken] [\FontAwesomeSymbol{f127}]
+ \definesymbol [check] [\FontAwesomeSymbol{f00c}]
+ \definesymbol [check-circle] [\FontAwesomeSymbol{f058}]
+ \definesymbol [check-circle-o] [\FontAwesomeSymbol{f05d}]
+ \definesymbol [check-square] [\FontAwesomeSymbol{f14a}]
+ \definesymbol [check-square-o] [\FontAwesomeSymbol{f046}]
+ \definesymbol [chevron-circle-down] [\FontAwesomeSymbol{f13a}]
+ \definesymbol [chevron-circle-left] [\FontAwesomeSymbol{f137}]
+ \definesymbol [chevron-circle-right] [\FontAwesomeSymbol{f138}]
+ \definesymbol [chevron-circle-up] [\FontAwesomeSymbol{f139}]
+ \definesymbol [chevron-down] [\FontAwesomeSymbol{f078}]
+ \definesymbol [chevron-left] [\FontAwesomeSymbol{f053}]
+ \definesymbol [chevron-right] [\FontAwesomeSymbol{f054}]
+ \definesymbol [chevron-up] [\FontAwesomeSymbol{f077}]
+ \definesymbol [child] [\FontAwesomeSymbol{f1ae}]
+ \definesymbol [chrome] [\FontAwesomeSymbol{f268}]
+ \definesymbol [circle] [\FontAwesomeSymbol{f111}]
+ \definesymbol [circle-o] [\FontAwesomeSymbol{f10c}]
+ \definesymbol [circle-o-notch] [\FontAwesomeSymbol{f1ce}]
+ \definesymbol [circle-thin] [\FontAwesomeSymbol{f1db}]
+ \definesymbol [clipboard] [\FontAwesomeSymbol{f0ea}]
+ \definesymbol [clock-o] [\FontAwesomeSymbol{f017}]
+ \definesymbol [clone] [\FontAwesomeSymbol{f24d}]
+ \definesymbol [close] [\FontAwesomeSymbol{f00d}]
+ \definesymbol [cloud] [\FontAwesomeSymbol{f0c2}]
+ \definesymbol [cloud-download] [\FontAwesomeSymbol{f0ed}]
+ \definesymbol [cloud-upload] [\FontAwesomeSymbol{f0ee}]
+ \definesymbol [cny] [\FontAwesomeSymbol{f157}]
+ \definesymbol [code] [\FontAwesomeSymbol{f121}]
+ \definesymbol [code-fork] [\FontAwesomeSymbol{f126}]
+ \definesymbol [codepen] [\FontAwesomeSymbol{f1cb}]
+ \definesymbol [codiepie] [\FontAwesomeSymbol{f284}]
+ \definesymbol [coffee] [\FontAwesomeSymbol{f0f4}]
+ \definesymbol [cog] [\FontAwesomeSymbol{f013}]
+ \definesymbol [cogs] [\FontAwesomeSymbol{f085}]
+ \definesymbol [columns] [\FontAwesomeSymbol{f0db}]
+ \definesymbol [comment] [\FontAwesomeSymbol{f075}]
+ \definesymbol [comment-o] [\FontAwesomeSymbol{f0e5}]
+ \definesymbol [commenting] [\FontAwesomeSymbol{f27a}]
+ \definesymbol [commenting-o] [\FontAwesomeSymbol{f27b}]
+ \definesymbol [comments] [\FontAwesomeSymbol{f086}]
+ \definesymbol [comments-o] [\FontAwesomeSymbol{f0e6}]
+ \definesymbol [compass] [\FontAwesomeSymbol{f14e}]
+ \definesymbol [compress] [\FontAwesomeSymbol{f066}]
+ \definesymbol [connectdevelop] [\FontAwesomeSymbol{f20e}]
+ \definesymbol [contao] [\FontAwesomeSymbol{f26d}]
+ \definesymbol [copy] [\FontAwesomeSymbol{f0c5}]
+ \definesymbol [copyright] [\FontAwesomeSymbol{f1f9}]
+ \definesymbol [creative-commons] [\FontAwesomeSymbol{f25e}]
+ \definesymbol [credit-card] [\FontAwesomeSymbol{f09d}]
+ \definesymbol [credit-card-alt] [\FontAwesomeSymbol{f283}]
+ \definesymbol [crop] [\FontAwesomeSymbol{f125}]
+ \definesymbol [crosshairs] [\FontAwesomeSymbol{f05b}]
+ \definesymbol [css3] [\FontAwesomeSymbol{f13c}]
+ \definesymbol [cube] [\FontAwesomeSymbol{f1b2}]
+ \definesymbol [cubes] [\FontAwesomeSymbol{f1b3}]
+ \definesymbol [cut] [\FontAwesomeSymbol{f0c4}]
+ \definesymbol [cutlery] [\FontAwesomeSymbol{f0f5}]
+ \definesymbol [dashboard] [\FontAwesomeSymbol{f0e4}]
+ \definesymbol [dashcube] [\FontAwesomeSymbol{f210}]
+ \definesymbol [database] [\FontAwesomeSymbol{f1c0}]
+ \definesymbol [deaf] [\FontAwesomeSymbol{f2a4}]
+ \definesymbol [deafness] [\FontAwesomeSymbol{f2a4}]
+ \definesymbol [dedent] [\FontAwesomeSymbol{f03b}]
+ \definesymbol [delicious] [\FontAwesomeSymbol{f1a5}]
+ \definesymbol [desktop] [\FontAwesomeSymbol{f108}]
+ \definesymbol [deviantart] [\FontAwesomeSymbol{f1bd}]
+ \definesymbol [diamond] [\FontAwesomeSymbol{f219}]
+ \definesymbol [digg] [\FontAwesomeSymbol{f1a6}]
+ \definesymbol [dollar] [\FontAwesomeSymbol{f155}]
+ \definesymbol [dot-circle-o] [\FontAwesomeSymbol{f192}]
+ \definesymbol [download] [\FontAwesomeSymbol{f019}]
+ \definesymbol [dribbble] [\FontAwesomeSymbol{f17d}]
+ \definesymbol [dropbox] [\FontAwesomeSymbol{f16b}]
+ \definesymbol [drupal] [\FontAwesomeSymbol{f1a9}]
+ \definesymbol [edge] [\FontAwesomeSymbol{f282}]
+ \definesymbol [edit] [\FontAwesomeSymbol{f044}]
+ \definesymbol [eject] [\FontAwesomeSymbol{f052}]
+ \definesymbol [ellipsis-h] [\FontAwesomeSymbol{f141}]
+ \definesymbol [ellipsis-v] [\FontAwesomeSymbol{f142}]
+ \definesymbol [empire] [\FontAwesomeSymbol{f1d1}]
+ \definesymbol [envelope] [\FontAwesomeSymbol{f0e0}]
+ \definesymbol [envelope-o] [\FontAwesomeSymbol{f003}]
+ \definesymbol [envelope-square] [\FontAwesomeSymbol{f199}]
+ \definesymbol [envira] [\FontAwesomeSymbol{f299}]
+ \definesymbol [eraser] [\FontAwesomeSymbol{f12d}]
+ \definesymbol [eur] [\FontAwesomeSymbol{f153}]
+ \definesymbol [euro] [\FontAwesomeSymbol{f153}]
+ \definesymbol [exchange] [\FontAwesomeSymbol{f0ec}]
+ \definesymbol [exclamation] [\FontAwesomeSymbol{f12a}]
+ \definesymbol [exclamation-circle] [\FontAwesomeSymbol{f06a}]
+ \definesymbol [exclamation-triangle] [\FontAwesomeSymbol{f071}]
+ \definesymbol [expand] [\FontAwesomeSymbol{f065}]
+ \definesymbol [expeditedssl] [\FontAwesomeSymbol{f23e}]
+ \definesymbol [external-link] [\FontAwesomeSymbol{f08e}]
+ \definesymbol [external-link-square] [\FontAwesomeSymbol{f14c}]
+ \definesymbol [eye] [\FontAwesomeSymbol{f06e}]
+ \definesymbol [eye-slash] [\FontAwesomeSymbol{f070}]
+ \definesymbol [eyedropper] [\FontAwesomeSymbol{f1fb}]
+ \definesymbol [fa] [\FontAwesomeSymbol{f2b4}]
+ \definesymbol [facebook] [\FontAwesomeSymbol{f09a}]
+ \definesymbol [facebook-f] [\FontAwesomeSymbol{f09a}]
+ \definesymbol [facebook-official] [\FontAwesomeSymbol{f230}]
+ \definesymbol [facebook-square] [\FontAwesomeSymbol{f082}]
+ \definesymbol [fast-backward] [\FontAwesomeSymbol{f049}]
+ \definesymbol [fast-forward] [\FontAwesomeSymbol{f050}]
+ \definesymbol [fax] [\FontAwesomeSymbol{f1ac}]
+ \definesymbol [feed] [\FontAwesomeSymbol{f09e}]
+ \definesymbol [female] [\FontAwesomeSymbol{f182}]
+ \definesymbol [fighter-jet] [\FontAwesomeSymbol{f0fb}]
+ \definesymbol [file] [\FontAwesomeSymbol{f15b}]
+ \definesymbol [file-archive-o] [\FontAwesomeSymbol{f1c6}]
+ \definesymbol [file-audio-o] [\FontAwesomeSymbol{f1c7}]
+ \definesymbol [file-code-o] [\FontAwesomeSymbol{f1c9}]
+ \definesymbol [file-excel-o] [\FontAwesomeSymbol{f1c3}]
+ \definesymbol [file-image-o] [\FontAwesomeSymbol{f1c5}]
+ \definesymbol [file-movie-o] [\FontAwesomeSymbol{f1c8}]
+ \definesymbol [file-o] [\FontAwesomeSymbol{f016}]
+ \definesymbol [file-pdf-o] [\FontAwesomeSymbol{f1c1}]
+ \definesymbol [file-photo-o] [\FontAwesomeSymbol{f1c5}]
+ \definesymbol [file-picture-o] [\FontAwesomeSymbol{f1c5}]
+ \definesymbol [file-powerpoint-o] [\FontAwesomeSymbol{f1c4}]
+ \definesymbol [file-sound-o] [\FontAwesomeSymbol{f1c7}]
+ \definesymbol [file-text] [\FontAwesomeSymbol{f15c}]
+ \definesymbol [file-text-o] [\FontAwesomeSymbol{f0f6}]
+ \definesymbol [file-video-o] [\FontAwesomeSymbol{f1c8}]
+ \definesymbol [file-word-o] [\FontAwesomeSymbol{f1c2}]
+ \definesymbol [file-zip-o] [\FontAwesomeSymbol{f1c6}]
+ \definesymbol [files-o] [\FontAwesomeSymbol{f0c5}]
+ \definesymbol [film] [\FontAwesomeSymbol{f008}]
+ \definesymbol [filter] [\FontAwesomeSymbol{f0b0}]
+ \definesymbol [fire] [\FontAwesomeSymbol{f06d}]
+ \definesymbol [fire-extinguisher] [\FontAwesomeSymbol{f134}]
+ \definesymbol [firefox] [\FontAwesomeSymbol{f269}]
+ \definesymbol [first-order] [\FontAwesomeSymbol{f2b0}]
+ \definesymbol [flag] [\FontAwesomeSymbol{f024}]
+ \definesymbol [flag-checkered] [\FontAwesomeSymbol{f11e}]
+ \definesymbol [flag-o] [\FontAwesomeSymbol{f11d}]
+ \definesymbol [flash] [\FontAwesomeSymbol{f0e7}]
+ \definesymbol [flask] [\FontAwesomeSymbol{f0c3}]
+ \definesymbol [flickr] [\FontAwesomeSymbol{f16e}]
+ \definesymbol [floppy-o] [\FontAwesomeSymbol{f0c7}]
+ \definesymbol [folder] [\FontAwesomeSymbol{f07b}]
+ \definesymbol [folder-o] [\FontAwesomeSymbol{f114}]
+ \definesymbol [folder-open] [\FontAwesomeSymbol{f07c}]
+ \definesymbol [folder-open-o] [\FontAwesomeSymbol{f115}]
+ \definesymbol [font] [\FontAwesomeSymbol{f031}]
+ \definesymbol [font-awesome] [\FontAwesomeSymbol{f2b4}]
+ \definesymbol [fonticons] [\FontAwesomeSymbol{f280}]
+ \definesymbol [fort-awesome] [\FontAwesomeSymbol{f286}]
+ \definesymbol [forumbee] [\FontAwesomeSymbol{f211}]
+ \definesymbol [forward] [\FontAwesomeSymbol{f04e}]
+ \definesymbol [foursquare] [\FontAwesomeSymbol{f180}]
+ \definesymbol [frown-o] [\FontAwesomeSymbol{f119}]
+ \definesymbol [futbol-o] [\FontAwesomeSymbol{f1e3}]
+ \definesymbol [gamepad] [\FontAwesomeSymbol{f11b}]
+ \definesymbol [gavel] [\FontAwesomeSymbol{f0e3}]
+ \definesymbol [gbp] [\FontAwesomeSymbol{f154}]
+ \definesymbol [ge] [\FontAwesomeSymbol{f1d1}]
+ \definesymbol [gear] [\FontAwesomeSymbol{f013}]
+ \definesymbol [gears] [\FontAwesomeSymbol{f085}]
+ \definesymbol [genderless] [\FontAwesomeSymbol{f22d}]
+ \definesymbol [get-pocket] [\FontAwesomeSymbol{f265}]
+ \definesymbol [gg] [\FontAwesomeSymbol{f260}]
+ \definesymbol [gg-circle] [\FontAwesomeSymbol{f261}]
+ \definesymbol [gift] [\FontAwesomeSymbol{f06b}]
+ \definesymbol [git] [\FontAwesomeSymbol{f1d3}]
+ \definesymbol [git-square] [\FontAwesomeSymbol{f1d2}]
+ \definesymbol [github] [\FontAwesomeSymbol{f09b}]
+ \definesymbol [github-alt] [\FontAwesomeSymbol{f113}]
+ \definesymbol [github-square] [\FontAwesomeSymbol{f092}]
+ \definesymbol [gitlab] [\FontAwesomeSymbol{f296}]
+ \definesymbol [gittip] [\FontAwesomeSymbol{f184}]
+ \definesymbol [glass] [\FontAwesomeSymbol{f000}]
+ \definesymbol [glide] [\FontAwesomeSymbol{f2a5}]
+ \definesymbol [glide-g] [\FontAwesomeSymbol{f2a6}]
+ \definesymbol [globe] [\FontAwesomeSymbol{f0ac}]
+ \definesymbol [google] [\FontAwesomeSymbol{f1a0}]
+ \definesymbol [google-plus] [\FontAwesomeSymbol{f0d5}]
+ \definesymbol [google-plus-circle] [\FontAwesomeSymbol{f2b3}]
+ \definesymbol [google-plus-official] [\FontAwesomeSymbol{f2b3}]
+ \definesymbol [google-plus-square] [\FontAwesomeSymbol{f0d4}]
+ \definesymbol [google-wallet] [\FontAwesomeSymbol{f1ee}]
+ \definesymbol [graduation-cap] [\FontAwesomeSymbol{f19d}]
+ \definesymbol [gratipay] [\FontAwesomeSymbol{f184}]
+ \definesymbol [group] [\FontAwesomeSymbol{f0c0}]
+ \definesymbol [h-square] [\FontAwesomeSymbol{f0fd}]
+ \definesymbol [hacker-news] [\FontAwesomeSymbol{f1d4}]
+ \definesymbol [hand-grab-o] [\FontAwesomeSymbol{f255}]
+ \definesymbol [hand-lizard-o] [\FontAwesomeSymbol{f258}]
+ \definesymbol [hand-o-down] [\FontAwesomeSymbol{f0a7}]
+ \definesymbol [hand-o-left] [\FontAwesomeSymbol{f0a5}]
+ \definesymbol [hand-o-right] [\FontAwesomeSymbol{f0a4}]
+ \definesymbol [hand-o-up] [\FontAwesomeSymbol{f0a6}]
+ \definesymbol [hand-paper-o] [\FontAwesomeSymbol{f256}]
+ \definesymbol [hand-peace-o] [\FontAwesomeSymbol{f25b}]
+ \definesymbol [hand-pointer-o] [\FontAwesomeSymbol{f25a}]
+ \definesymbol [hand-rock-o] [\FontAwesomeSymbol{f255}]
+ \definesymbol [hand-scissors-o] [\FontAwesomeSymbol{f257}]
+ \definesymbol [hand-spock-o] [\FontAwesomeSymbol{f259}]
+ \definesymbol [hand-stop-o] [\FontAwesomeSymbol{f256}]
+ \definesymbol [hard-of-hearing] [\FontAwesomeSymbol{f2a4}]
+ \definesymbol [hashtag] [\FontAwesomeSymbol{f292}]
+ \definesymbol [hdd-o] [\FontAwesomeSymbol{f0a0}]
+ \definesymbol [header] [\FontAwesomeSymbol{f1dc}]
+ \definesymbol [headphones] [\FontAwesomeSymbol{f025}]
+ \definesymbol [heart] [\FontAwesomeSymbol{f004}]
+ \definesymbol [heart-o] [\FontAwesomeSymbol{f08a}]
+ \definesymbol [heartbeat] [\FontAwesomeSymbol{f21e}]
+ \definesymbol [history] [\FontAwesomeSymbol{f1da}]
+ \definesymbol [home] [\FontAwesomeSymbol{f015}]
+ \definesymbol [hospital-o] [\FontAwesomeSymbol{f0f8}]
+ \definesymbol [hotel] [\FontAwesomeSymbol{f236}]
+ \definesymbol [hourglass] [\FontAwesomeSymbol{f254}]
+ \definesymbol [hourglass-1] [\FontAwesomeSymbol{f251}]
+ \definesymbol [hourglass-2] [\FontAwesomeSymbol{f252}]
+ \definesymbol [hourglass-3] [\FontAwesomeSymbol{f253}]
+ \definesymbol [hourglass-end] [\FontAwesomeSymbol{f253}]
+ \definesymbol [hourglass-half] [\FontAwesomeSymbol{f252}]
+ \definesymbol [hourglass-o] [\FontAwesomeSymbol{f250}]
+ \definesymbol [hourglass-start] [\FontAwesomeSymbol{f251}]
+ \definesymbol [houzz] [\FontAwesomeSymbol{f27c}]
+ \definesymbol [html5] [\FontAwesomeSymbol{f13b}]
+ \definesymbol [i-cursor] [\FontAwesomeSymbol{f246}]
+ \definesymbol [ils] [\FontAwesomeSymbol{f20b}]
+ \definesymbol [image] [\FontAwesomeSymbol{f03e}]
+ \definesymbol [inbox] [\FontAwesomeSymbol{f01c}]
+ \definesymbol [indent] [\FontAwesomeSymbol{f03c}]
+ \definesymbol [industry] [\FontAwesomeSymbol{f275}]
+ \definesymbol [info] [\FontAwesomeSymbol{f129}]
+ \definesymbol [info-circle] [\FontAwesomeSymbol{f05a}]
+ \definesymbol [inr] [\FontAwesomeSymbol{f156}]
+ \definesymbol [instagram] [\FontAwesomeSymbol{f16d}]
+ \definesymbol [institution] [\FontAwesomeSymbol{f19c}]
+ \definesymbol [internet-explorer] [\FontAwesomeSymbol{f26b}]
+ \definesymbol [intersex] [\FontAwesomeSymbol{f224}]
+ \definesymbol [ioxhost] [\FontAwesomeSymbol{f208}]
+ \definesymbol [italic] [\FontAwesomeSymbol{f033}]
+ \definesymbol [joomla] [\FontAwesomeSymbol{f1aa}]
+ \definesymbol [jpy] [\FontAwesomeSymbol{f157}]
+ \definesymbol [jsfiddle] [\FontAwesomeSymbol{f1cc}]
+ \definesymbol [key] [\FontAwesomeSymbol{f084}]
+ \definesymbol [keyboard-o] [\FontAwesomeSymbol{f11c}]
+ \definesymbol [krw] [\FontAwesomeSymbol{f159}]
+ \definesymbol [language] [\FontAwesomeSymbol{f1ab}]
+ \definesymbol [laptop] [\FontAwesomeSymbol{f109}]
+ \definesymbol [lastfm] [\FontAwesomeSymbol{f202}]
+ \definesymbol [lastfm-square] [\FontAwesomeSymbol{f203}]
+ \definesymbol [leaf] [\FontAwesomeSymbol{f06c}]
+ \definesymbol [leanpub] [\FontAwesomeSymbol{f212}]
+ \definesymbol [legal] [\FontAwesomeSymbol{f0e3}]
+ \definesymbol [lemon-o] [\FontAwesomeSymbol{f094}]
+ \definesymbol [level-down] [\FontAwesomeSymbol{f149}]
+ \definesymbol [level-up] [\FontAwesomeSymbol{f148}]
+ \definesymbol [life-bouy] [\FontAwesomeSymbol{f1cd}]
+ \definesymbol [life-buoy] [\FontAwesomeSymbol{f1cd}]
+ \definesymbol [life-ring] [\FontAwesomeSymbol{f1cd}]
+ \definesymbol [life-saver] [\FontAwesomeSymbol{f1cd}]
+ \definesymbol [lightbulb-o] [\FontAwesomeSymbol{f0eb}]
+ \definesymbol [line-chart] [\FontAwesomeSymbol{f201}]
+ \definesymbol [link] [\FontAwesomeSymbol{f0c1}]
+ \definesymbol [linkedin] [\FontAwesomeSymbol{f0e1}]
+ \definesymbol [linkedin-square] [\FontAwesomeSymbol{f08c}]
+ \definesymbol [linux] [\FontAwesomeSymbol{f17c}]
+ \definesymbol [list] [\FontAwesomeSymbol{f03a}]
+ \definesymbol [list-alt] [\FontAwesomeSymbol{f022}]
+ \definesymbol [list-ol] [\FontAwesomeSymbol{f0cb}]
+ \definesymbol [list-ul] [\FontAwesomeSymbol{f0ca}]
+ \definesymbol [location-arrow] [\FontAwesomeSymbol{f124}]
+ \definesymbol [lock] [\FontAwesomeSymbol{f023}]
+ \definesymbol [long-arrow-down] [\FontAwesomeSymbol{f175}]
+ \definesymbol [long-arrow-left] [\FontAwesomeSymbol{f177}]
+ \definesymbol [long-arrow-right] [\FontAwesomeSymbol{f178}]
+ \definesymbol [long-arrow-up] [\FontAwesomeSymbol{f176}]
+ \definesymbol [low-vision] [\FontAwesomeSymbol{f2a8}]
+ \definesymbol [magic] [\FontAwesomeSymbol{f0d0}]
+ \definesymbol [magnet] [\FontAwesomeSymbol{f076}]
+ \definesymbol [mail-forward] [\FontAwesomeSymbol{f064}]
+ \definesymbol [mail-reply] [\FontAwesomeSymbol{f112}]
+ \definesymbol [mail-reply-all] [\FontAwesomeSymbol{f122}]
+ \definesymbol [male] [\FontAwesomeSymbol{f183}]
+ \definesymbol [map] [\FontAwesomeSymbol{f279}]
+ \definesymbol [map-marker] [\FontAwesomeSymbol{f041}]
+ \definesymbol [map-o] [\FontAwesomeSymbol{f278}]
+ \definesymbol [map-pin] [\FontAwesomeSymbol{f276}]
+ \definesymbol [map-signs] [\FontAwesomeSymbol{f277}]
+ \definesymbol [mars] [\FontAwesomeSymbol{f222}]
+ \definesymbol [mars-double] [\FontAwesomeSymbol{f227}]
+ \definesymbol [mars-stroke] [\FontAwesomeSymbol{f229}]
+ \definesymbol [mars-stroke-h] [\FontAwesomeSymbol{f22b}]
+ \definesymbol [mars-stroke-v] [\FontAwesomeSymbol{f22a}]
+ \definesymbol [maxcdn] [\FontAwesomeSymbol{f136}]
+ \definesymbol [meanpath] [\FontAwesomeSymbol{f20c}]
+ \definesymbol [medium] [\FontAwesomeSymbol{f23a}]
+ \definesymbol [medkit] [\FontAwesomeSymbol{f0fa}]
+ \definesymbol [meh-o] [\FontAwesomeSymbol{f11a}]
+ \definesymbol [mercury] [\FontAwesomeSymbol{f223}]
+ \definesymbol [microphone] [\FontAwesomeSymbol{f130}]
+ \definesymbol [microphone-slash] [\FontAwesomeSymbol{f131}]
+ \definesymbol [minus] [\FontAwesomeSymbol{f068}]
+ \definesymbol [minus-circle] [\FontAwesomeSymbol{f056}]
+ \definesymbol [minus-square] [\FontAwesomeSymbol{f146}]
+ \definesymbol [minus-square-o] [\FontAwesomeSymbol{f147}]
+ \definesymbol [mixcloud] [\FontAwesomeSymbol{f289}]
+ \definesymbol [mobile] [\FontAwesomeSymbol{f10b}]
+ \definesymbol [mobile-phone] [\FontAwesomeSymbol{f10b}]
+ \definesymbol [modx] [\FontAwesomeSymbol{f285}]
+ \definesymbol [money] [\FontAwesomeSymbol{f0d6}]
+ \definesymbol [moon-o] [\FontAwesomeSymbol{f186}]
+ \definesymbol [mortar-board] [\FontAwesomeSymbol{f19d}]
+ \definesymbol [motorcycle] [\FontAwesomeSymbol{f21c}]
+ \definesymbol [mouse-pointer] [\FontAwesomeSymbol{f245}]
+ \definesymbol [music] [\FontAwesomeSymbol{f001}]
+ \definesymbol [navicon] [\FontAwesomeSymbol{f0c9}]
+ \definesymbol [neuter] [\FontAwesomeSymbol{f22c}]
+ \definesymbol [newspaper-o] [\FontAwesomeSymbol{f1ea}]
+ \definesymbol [object-group] [\FontAwesomeSymbol{f247}]
+ \definesymbol [object-ungroup] [\FontAwesomeSymbol{f248}]
+ \definesymbol [odnoklassniki] [\FontAwesomeSymbol{f263}]
+ \definesymbol [odnoklassniki-square] [\FontAwesomeSymbol{f264}]
+ \definesymbol [opencart] [\FontAwesomeSymbol{f23d}]
+ \definesymbol [openid] [\FontAwesomeSymbol{f19b}]
+ \definesymbol [opera] [\FontAwesomeSymbol{f26a}]
+ \definesymbol [optin-monster] [\FontAwesomeSymbol{f23c}]
+ \definesymbol [outdent] [\FontAwesomeSymbol{f03b}]
+ \definesymbol [pagelines] [\FontAwesomeSymbol{f18c}]
+ \definesymbol [paint-brush] [\FontAwesomeSymbol{f1fc}]
+ \definesymbol [paper-plane] [\FontAwesomeSymbol{f1d8}]
+ \definesymbol [paper-plane-o] [\FontAwesomeSymbol{f1d9}]
+ \definesymbol [paperclip] [\FontAwesomeSymbol{f0c6}]
+ \definesymbol [paragraph] [\FontAwesomeSymbol{f1dd}]
+ \definesymbol [paste] [\FontAwesomeSymbol{f0ea}]
+ \definesymbol [pause] [\FontAwesomeSymbol{f04c}]
+ \definesymbol [pause-circle] [\FontAwesomeSymbol{f28b}]
+ \definesymbol [pause-circle-o] [\FontAwesomeSymbol{f28c}]
+ \definesymbol [paw] [\FontAwesomeSymbol{f1b0}]
+ \definesymbol [paypal] [\FontAwesomeSymbol{f1ed}]
+ \definesymbol [pencil] [\FontAwesomeSymbol{f040}]
+ \definesymbol [pencil-square] [\FontAwesomeSymbol{f14b}]
+ \definesymbol [pencil-square-o] [\FontAwesomeSymbol{f044}]
+ \definesymbol [percent] [\FontAwesomeSymbol{f295}]
+ \definesymbol [phone] [\FontAwesomeSymbol{f095}]
+ \definesymbol [phone-square] [\FontAwesomeSymbol{f098}]
+ \definesymbol [photo] [\FontAwesomeSymbol{f03e}]
+ \definesymbol [picture-o] [\FontAwesomeSymbol{f03e}]
+ \definesymbol [pie-chart] [\FontAwesomeSymbol{f200}]
+ \definesymbol [pied-piper] [\FontAwesomeSymbol{f2ae}]
+ \definesymbol [pied-piper-alt] [\FontAwesomeSymbol{f1a8}]
+ \definesymbol [pied-piper-pp] [\FontAwesomeSymbol{f1a7}]
+ \definesymbol [pinterest] [\FontAwesomeSymbol{f0d2}]
+ \definesymbol [pinterest-p] [\FontAwesomeSymbol{f231}]
+ \definesymbol [pinterest-square] [\FontAwesomeSymbol{f0d3}]
+ \definesymbol [plane] [\FontAwesomeSymbol{f072}]
+ \definesymbol [play] [\FontAwesomeSymbol{f04b}]
+ \definesymbol [play-circle] [\FontAwesomeSymbol{f144}]
+ \definesymbol [play-circle-o] [\FontAwesomeSymbol{f01d}]
+ \definesymbol [plug] [\FontAwesomeSymbol{f1e6}]
+ \definesymbol [plus] [\FontAwesomeSymbol{f067}]
+ \definesymbol [plus-circle] [\FontAwesomeSymbol{f055}]
+ \definesymbol [plus-square] [\FontAwesomeSymbol{f0fe}]
+ \definesymbol [plus-square-o] [\FontAwesomeSymbol{f196}]
+ \definesymbol [power-off] [\FontAwesomeSymbol{f011}]
+ \definesymbol [print] [\FontAwesomeSymbol{f02f}]
+ \definesymbol [product-hunt] [\FontAwesomeSymbol{f288}]
+ \definesymbol [puzzle-piece] [\FontAwesomeSymbol{f12e}]
+ \definesymbol [qq] [\FontAwesomeSymbol{f1d6}]
+ \definesymbol [qrcode] [\FontAwesomeSymbol{f029}]
+ \definesymbol [question] [\FontAwesomeSymbol{f128}]
+ \definesymbol [question-circle] [\FontAwesomeSymbol{f059}]
+ \definesymbol [question-circle-o] [\FontAwesomeSymbol{f29c}]
+ \definesymbol [quote-left] [\FontAwesomeSymbol{f10d}]
+ \definesymbol [quote-right] [\FontAwesomeSymbol{f10e}]
+ \definesymbol [ra] [\FontAwesomeSymbol{f1d0}]
+ \definesymbol [random] [\FontAwesomeSymbol{f074}]
+ \definesymbol [rebel] [\FontAwesomeSymbol{f1d0}]
+ \definesymbol [recycle] [\FontAwesomeSymbol{f1b8}]
+ \definesymbol [reddit] [\FontAwesomeSymbol{f1a1}]
+ \definesymbol [reddit-alien] [\FontAwesomeSymbol{f281}]
+ \definesymbol [reddit-square] [\FontAwesomeSymbol{f1a2}]
+ \definesymbol [refresh] [\FontAwesomeSymbol{f021}]
+ \definesymbol [registered] [\FontAwesomeSymbol{f25d}]
+ \definesymbol [remove] [\FontAwesomeSymbol{f00d}]
+ \definesymbol [renren] [\FontAwesomeSymbol{f18b}]
+ \definesymbol [reorder] [\FontAwesomeSymbol{f0c9}]
+ \definesymbol [repeat] [\FontAwesomeSymbol{f01e}]
+ \definesymbol [reply] [\FontAwesomeSymbol{f112}]
+ \definesymbol [reply-all] [\FontAwesomeSymbol{f122}]
+ \definesymbol [resistance] [\FontAwesomeSymbol{f1d0}]
+ \definesymbol [retweet] [\FontAwesomeSymbol{f079}]
+ \definesymbol [rmb] [\FontAwesomeSymbol{f157}]
+ \definesymbol [road] [\FontAwesomeSymbol{f018}]
+ \definesymbol [rocket] [\FontAwesomeSymbol{f135}]
+ \definesymbol [rotate-left] [\FontAwesomeSymbol{f0e2}]
+ \definesymbol [rotate-right] [\FontAwesomeSymbol{f01e}]
+ \definesymbol [rouble] [\FontAwesomeSymbol{f158}]
+ \definesymbol [rss] [\FontAwesomeSymbol{f09e}]
+ \definesymbol [rss-square] [\FontAwesomeSymbol{f143}]
+ \definesymbol [rub] [\FontAwesomeSymbol{f158}]
+ \definesymbol [ruble] [\FontAwesomeSymbol{f158}]
+ \definesymbol [rupee] [\FontAwesomeSymbol{f156}]
+ \definesymbol [safari] [\FontAwesomeSymbol{f267}]
+ \definesymbol [save] [\FontAwesomeSymbol{f0c7}]
+ \definesymbol [scissors] [\FontAwesomeSymbol{f0c4}]
+ \definesymbol [scribd] [\FontAwesomeSymbol{f28a}]
+ \definesymbol [search] [\FontAwesomeSymbol{f002}]
+ \definesymbol [search-minus] [\FontAwesomeSymbol{f010}]
+ \definesymbol [search-plus] [\FontAwesomeSymbol{f00e}]
+ \definesymbol [sellsy] [\FontAwesomeSymbol{f213}]
+ \definesymbol [send] [\FontAwesomeSymbol{f1d8}]
+ \definesymbol [send-o] [\FontAwesomeSymbol{f1d9}]
+ \definesymbol [server] [\FontAwesomeSymbol{f233}]
+ \definesymbol [share] [\FontAwesomeSymbol{f064}]
+ \definesymbol [share-alt] [\FontAwesomeSymbol{f1e0}]
+ \definesymbol [share-alt-square] [\FontAwesomeSymbol{f1e1}]
+ \definesymbol [share-square] [\FontAwesomeSymbol{f14d}]
+ \definesymbol [share-square-o] [\FontAwesomeSymbol{f045}]
+ \definesymbol [shekel] [\FontAwesomeSymbol{f20b}]
+ \definesymbol [sheqel] [\FontAwesomeSymbol{f20b}]
+ \definesymbol [shield] [\FontAwesomeSymbol{f132}]
+ \definesymbol [ship] [\FontAwesomeSymbol{f21a}]
+ \definesymbol [shirtsinbulk] [\FontAwesomeSymbol{f214}]
+ \definesymbol [shopping-bag] [\FontAwesomeSymbol{f290}]
+ \definesymbol [shopping-basket] [\FontAwesomeSymbol{f291}]
+ \definesymbol [shopping-cart] [\FontAwesomeSymbol{f07a}]
+ \definesymbol [sign-in] [\FontAwesomeSymbol{f090}]
+ \definesymbol [sign-language] [\FontAwesomeSymbol{f2a7}]
+ \definesymbol [sign-out] [\FontAwesomeSymbol{f08b}]
+ \definesymbol [signal] [\FontAwesomeSymbol{f012}]
+ \definesymbol [signing] [\FontAwesomeSymbol{f2a7}]
+ \definesymbol [simplybuilt] [\FontAwesomeSymbol{f215}]
+ \definesymbol [sitemap] [\FontAwesomeSymbol{f0e8}]
+ \definesymbol [skyatlas] [\FontAwesomeSymbol{f216}]
+ \definesymbol [skype] [\FontAwesomeSymbol{f17e}]
+ \definesymbol [slack] [\FontAwesomeSymbol{f198}]
+ \definesymbol [sliders] [\FontAwesomeSymbol{f1de}]
+ \definesymbol [slideshare] [\FontAwesomeSymbol{f1e7}]
+ \definesymbol [smile-o] [\FontAwesomeSymbol{f118}]
+ \definesymbol [snapchat] [\FontAwesomeSymbol{f2ab}]
+ \definesymbol [snapchat-ghost] [\FontAwesomeSymbol{f2ac}]
+ \definesymbol [snapchat-square] [\FontAwesomeSymbol{f2ad}]
+ \definesymbol [soccer-ball-o] [\FontAwesomeSymbol{f1e3}]
+ \definesymbol [sort] [\FontAwesomeSymbol{f0dc}]
+ \definesymbol [sort-alpha-asc] [\FontAwesomeSymbol{f15d}]
+ \definesymbol [sort-alpha-desc] [\FontAwesomeSymbol{f15e}]
+ \definesymbol [sort-amount-asc] [\FontAwesomeSymbol{f160}]
+ \definesymbol [sort-amount-desc] [\FontAwesomeSymbol{f161}]
+ \definesymbol [sort-asc] [\FontAwesomeSymbol{f0de}]
+ \definesymbol [sort-desc] [\FontAwesomeSymbol{f0dd}]
+ \definesymbol [sort-down] [\FontAwesomeSymbol{f0dd}]
+ \definesymbol [sort-numeric-asc] [\FontAwesomeSymbol{f162}]
+ \definesymbol [sort-numeric-desc] [\FontAwesomeSymbol{f163}]
+ \definesymbol [sort-up] [\FontAwesomeSymbol{f0de}]
+ \definesymbol [soundcloud] [\FontAwesomeSymbol{f1be}]
+ \definesymbol [space-shuttle] [\FontAwesomeSymbol{f197}]
+ \definesymbol [spinner] [\FontAwesomeSymbol{f110}]
+ \definesymbol [spoon] [\FontAwesomeSymbol{f1b1}]
+ \definesymbol [spotify] [\FontAwesomeSymbol{f1bc}]
+ \definesymbol [square] [\FontAwesomeSymbol{f0c8}]
+ \definesymbol [square-o] [\FontAwesomeSymbol{f096}]
+ \definesymbol [stack-exchange] [\FontAwesomeSymbol{f18d}]
+ \definesymbol [stack-overflow] [\FontAwesomeSymbol{f16c}]
+ \definesymbol [star] [\FontAwesomeSymbol{f005}]
+ \definesymbol [star-half] [\FontAwesomeSymbol{f089}]
+ \definesymbol [star-half-empty] [\FontAwesomeSymbol{f123}]
+ \definesymbol [star-half-full] [\FontAwesomeSymbol{f123}]
+ \definesymbol [star-half-o] [\FontAwesomeSymbol{f123}]
+ \definesymbol [star-o] [\FontAwesomeSymbol{f006}]
+ \definesymbol [steam] [\FontAwesomeSymbol{f1b6}]
+ \definesymbol [steam-square] [\FontAwesomeSymbol{f1b7}]
+ \definesymbol [step-backward] [\FontAwesomeSymbol{f048}]
+ \definesymbol [step-forward] [\FontAwesomeSymbol{f051}]
+ \definesymbol [stethoscope] [\FontAwesomeSymbol{f0f1}]
+ \definesymbol [sticky-note] [\FontAwesomeSymbol{f249}]
+ \definesymbol [sticky-note-o] [\FontAwesomeSymbol{f24a}]
+ \definesymbol [stop] [\FontAwesomeSymbol{f04d}]
+ \definesymbol [stop-circle] [\FontAwesomeSymbol{f28d}]
+ \definesymbol [stop-circle-o] [\FontAwesomeSymbol{f28e}]
+ \definesymbol [street-view] [\FontAwesomeSymbol{f21d}]
+ \definesymbol [strikethrough] [\FontAwesomeSymbol{f0cc}]
+ \definesymbol [stumbleupon] [\FontAwesomeSymbol{f1a4}]
+ \definesymbol [stumbleupon-circle] [\FontAwesomeSymbol{f1a3}]
+ \definesymbol [subscript] [\FontAwesomeSymbol{f12c}]
+ \definesymbol [subway] [\FontAwesomeSymbol{f239}]
+ \definesymbol [suitcase] [\FontAwesomeSymbol{f0f2}]
+ \definesymbol [sun-o] [\FontAwesomeSymbol{f185}]
+ \definesymbol [superscript] [\FontAwesomeSymbol{f12b}]
+ \definesymbol [support] [\FontAwesomeSymbol{f1cd}]
+ \definesymbol [table] [\FontAwesomeSymbol{f0ce}]
+ \definesymbol [tablet] [\FontAwesomeSymbol{f10a}]
+ \definesymbol [tachometer] [\FontAwesomeSymbol{f0e4}]
+ \definesymbol [tag] [\FontAwesomeSymbol{f02b}]
+ \definesymbol [tags] [\FontAwesomeSymbol{f02c}]
+ \definesymbol [tasks] [\FontAwesomeSymbol{f0ae}]
+ \definesymbol [taxi] [\FontAwesomeSymbol{f1ba}]
+ \definesymbol [television] [\FontAwesomeSymbol{f26c}]
+ \definesymbol [tencent-weibo] [\FontAwesomeSymbol{f1d5}]
+ \definesymbol [terminal] [\FontAwesomeSymbol{f120}]
+ \definesymbol [text-height] [\FontAwesomeSymbol{f034}]
+ \definesymbol [text-width] [\FontAwesomeSymbol{f035}]
+ \definesymbol [th] [\FontAwesomeSymbol{f00a}]
+ \definesymbol [th-large] [\FontAwesomeSymbol{f009}]
+ \definesymbol [th-list] [\FontAwesomeSymbol{f00b}]
+ \definesymbol [themeisle] [\FontAwesomeSymbol{f2b2}]
+ \definesymbol [thumb-tack] [\FontAwesomeSymbol{f08d}]
+ \definesymbol [thumbs-down] [\FontAwesomeSymbol{f165}]
+ \definesymbol [thumbs-o-down] [\FontAwesomeSymbol{f088}]
+ \definesymbol [thumbs-o-up] [\FontAwesomeSymbol{f087}]
+ \definesymbol [thumbs-up] [\FontAwesomeSymbol{f164}]
+ \definesymbol [ticket] [\FontAwesomeSymbol{f145}]
+ \definesymbol [times] [\FontAwesomeSymbol{f00d}]
+ \definesymbol [times-circle] [\FontAwesomeSymbol{f057}]
+ \definesymbol [times-circle-o] [\FontAwesomeSymbol{f05c}]
+ \definesymbol [tint] [\FontAwesomeSymbol{f043}]
+ \definesymbol [toggle-down] [\FontAwesomeSymbol{f150}]
+ \definesymbol [toggle-left] [\FontAwesomeSymbol{f191}]
+ \definesymbol [toggle-off] [\FontAwesomeSymbol{f204}]
+ \definesymbol [toggle-on] [\FontAwesomeSymbol{f205}]
+ \definesymbol [toggle-right] [\FontAwesomeSymbol{f152}]
+ \definesymbol [toggle-up] [\FontAwesomeSymbol{f151}]
+ \definesymbol [trademark] [\FontAwesomeSymbol{f25c}]
+ \definesymbol [train] [\FontAwesomeSymbol{f238}]
+ \definesymbol [transgender] [\FontAwesomeSymbol{f224}]
+ \definesymbol [transgender-alt] [\FontAwesomeSymbol{f225}]
+ \definesymbol [trash] [\FontAwesomeSymbol{f1f8}]
+ \definesymbol [trash-o] [\FontAwesomeSymbol{f014}]
+ \definesymbol [tree] [\FontAwesomeSymbol{f1bb}]
+ \definesymbol [trello] [\FontAwesomeSymbol{f181}]
+ \definesymbol [tripadvisor] [\FontAwesomeSymbol{f262}]
+ \definesymbol [trophy] [\FontAwesomeSymbol{f091}]
+ \definesymbol [truck] [\FontAwesomeSymbol{f0d1}]
+ \definesymbol [try] [\FontAwesomeSymbol{f195}]
+ \definesymbol [tty] [\FontAwesomeSymbol{f1e4}]
+ \definesymbol [tumblr] [\FontAwesomeSymbol{f173}]
+ \definesymbol [tumblr-square] [\FontAwesomeSymbol{f174}]
+ \definesymbol [turkish-lira] [\FontAwesomeSymbol{f195}]
+ \definesymbol [tv] [\FontAwesomeSymbol{f26c}]
+ \definesymbol [twitch] [\FontAwesomeSymbol{f1e8}]
+ \definesymbol [twitter] [\FontAwesomeSymbol{f099}]
+ \definesymbol [twitter-square] [\FontAwesomeSymbol{f081}]
+ \definesymbol [umbrella] [\FontAwesomeSymbol{f0e9}]
+ \definesymbol [underline] [\FontAwesomeSymbol{f0cd}]
+ \definesymbol [undo] [\FontAwesomeSymbol{f0e2}]
+ \definesymbol [universal-access] [\FontAwesomeSymbol{f29a}]
+ \definesymbol [university] [\FontAwesomeSymbol{f19c}]
+ \definesymbol [unlink] [\FontAwesomeSymbol{f127}]
+ \definesymbol [unlock] [\FontAwesomeSymbol{f09c}]
+ \definesymbol [unlock-alt] [\FontAwesomeSymbol{f13e}]
+ \definesymbol [unsorted] [\FontAwesomeSymbol{f0dc}]
+ \definesymbol [upload] [\FontAwesomeSymbol{f093}]
+ \definesymbol [usb] [\FontAwesomeSymbol{f287}]
+ \definesymbol [usd] [\FontAwesomeSymbol{f155}]
+ \definesymbol [user] [\FontAwesomeSymbol{f007}]
+ \definesymbol [user-md] [\FontAwesomeSymbol{f0f0}]
+ \definesymbol [user-plus] [\FontAwesomeSymbol{f234}]
+ \definesymbol [user-secret] [\FontAwesomeSymbol{f21b}]
+ \definesymbol [user-times] [\FontAwesomeSymbol{f235}]
+ \definesymbol [users] [\FontAwesomeSymbol{f0c0}]
+ \definesymbol [venus] [\FontAwesomeSymbol{f221}]
+ \definesymbol [venus-double] [\FontAwesomeSymbol{f226}]
+ \definesymbol [venus-mars] [\FontAwesomeSymbol{f228}]
+ \definesymbol [viacoin] [\FontAwesomeSymbol{f237}]
+ \definesymbol [viadeo] [\FontAwesomeSymbol{f2a9}]
+ \definesymbol [viadeo-square] [\FontAwesomeSymbol{f2aa}]
+ \definesymbol [video-camera] [\FontAwesomeSymbol{f03d}]
+ \definesymbol [vimeo] [\FontAwesomeSymbol{f27d}]
+ \definesymbol [vimeo-square] [\FontAwesomeSymbol{f194}]
+ \definesymbol [vine] [\FontAwesomeSymbol{f1ca}]
+ \definesymbol [vk] [\FontAwesomeSymbol{f189}]
+ \definesymbol [volume-control-phone] [\FontAwesomeSymbol{f2a0}]
+ \definesymbol [volume-down] [\FontAwesomeSymbol{f027}]
+ \definesymbol [volume-off] [\FontAwesomeSymbol{f026}]
+ \definesymbol [volume-up] [\FontAwesomeSymbol{f028}]
+ \definesymbol [warning] [\FontAwesomeSymbol{f071}]
+ \definesymbol [wechat] [\FontAwesomeSymbol{f1d7}]
+ \definesymbol [weibo] [\FontAwesomeSymbol{f18a}]
+ \definesymbol [weixin] [\FontAwesomeSymbol{f1d7}]
+ \definesymbol [whatsapp] [\FontAwesomeSymbol{f232}]
+ \definesymbol [wheelchair] [\FontAwesomeSymbol{f193}]
+ \definesymbol [wheelchair-alt] [\FontAwesomeSymbol{f29b}]
+ \definesymbol [wifi] [\FontAwesomeSymbol{f1eb}]
+ \definesymbol [wikipedia-w] [\FontAwesomeSymbol{f266}]
+ \definesymbol [windows] [\FontAwesomeSymbol{f17a}]
+ \definesymbol [won] [\FontAwesomeSymbol{f159}]
+ \definesymbol [wordpress] [\FontAwesomeSymbol{f19a}]
+ \definesymbol [wpbeginner] [\FontAwesomeSymbol{f297}]
+ \definesymbol [wpforms] [\FontAwesomeSymbol{f298}]
+ \definesymbol [wrench] [\FontAwesomeSymbol{f0ad}]
+ \definesymbol [xing] [\FontAwesomeSymbol{f168}]
+ \definesymbol [xing-square] [\FontAwesomeSymbol{f169}]
+ \definesymbol [y-combinator] [\FontAwesomeSymbol{f23b}]
+ \definesymbol [y-combinator-square] [\FontAwesomeSymbol{f1d4}]
+ \definesymbol [yahoo] [\FontAwesomeSymbol{f19e}]
+ \definesymbol [yc] [\FontAwesomeSymbol{f23b}]
+ \definesymbol [yc-square] [\FontAwesomeSymbol{f1d4}]
+ \definesymbol [yelp] [\FontAwesomeSymbol{f1e9}]
+ \definesymbol [yen] [\FontAwesomeSymbol{f157}]
+ \definesymbol [yoast] [\FontAwesomeSymbol{f2b1}]
+ \definesymbol [youtube] [\FontAwesomeSymbol{f167}]
+ \definesymbol [youtube-play] [\FontAwesomeSymbol{f16a}]
+ \definesymbol [youtube-square] [\FontAwesomeSymbol{f166}]
-% \definesymbol [500px] [\FontAwesomeSymbol{f26e}]
-% \definesymbol [adjust] [\FontAwesomeSymbol{f042}]
-% \definesymbol [adn] [\FontAwesomeSymbol{f170}]
-% \definesymbol [align-center] [\FontAwesomeSymbol{f037}]
-% \definesymbol [align-justify] [\FontAwesomeSymbol{f039}]
-% \definesymbol [align-left] [\FontAwesomeSymbol{f036}]
-% \definesymbol [align-right] [\FontAwesomeSymbol{f038}]
-% \definesymbol [amazon] [\FontAwesomeSymbol{f270}]
-% \definesymbol [ambulance] [\FontAwesomeSymbol{f0f9}]
-% \definesymbol [american-sign-language-interpreting] [\FontAwesomeSymbol{f2a3}]
-% \definesymbol [anchor] [\FontAwesomeSymbol{f13d}]
-% \definesymbol [android] [\FontAwesomeSymbol{f17b}]
-% \definesymbol [angellist] [\FontAwesomeSymbol{f209}]
-% \definesymbol [angle-double-down] [\FontAwesomeSymbol{f103}]
-% \definesymbol [angle-double-left] [\FontAwesomeSymbol{f100}]
-% \definesymbol [angle-double-right] [\FontAwesomeSymbol{f101}]
-% \definesymbol [angle-double-up] [\FontAwesomeSymbol{f102}]
-% \definesymbol [angle-down] [\FontAwesomeSymbol{f107}]
-% \definesymbol [angle-left] [\FontAwesomeSymbol{f104}]
-% \definesymbol [angle-right] [\FontAwesomeSymbol{f105}]
-% \definesymbol [angle-up] [\FontAwesomeSymbol{f106}]
-% \definesymbol [apple] [\FontAwesomeSymbol{f179}]
-% \definesymbol [archive] [\FontAwesomeSymbol{f187}]
-% \definesymbol [area-chart] [\FontAwesomeSymbol{f1fe}]
-% \definesymbol [arrow-circle-down] [\FontAwesomeSymbol{f0ab}]
-% \definesymbol [arrow-circle-left] [\FontAwesomeSymbol{f0a8}]
-% \definesymbol [arrow-circle-o-down] [\FontAwesomeSymbol{f01a}]
-% \definesymbol [arrow-circle-o-left] [\FontAwesomeSymbol{f190}]
-% \definesymbol [arrow-circle-o-right] [\FontAwesomeSymbol{f18e}]
-% \definesymbol [arrow-circle-o-up] [\FontAwesomeSymbol{f01b}]
-% \definesymbol [arrow-circle-right] [\FontAwesomeSymbol{f0a9}]
-% \definesymbol [arrow-circle-up] [\FontAwesomeSymbol{f0aa}]
-% \definesymbol [arrow-down] [\FontAwesomeSymbol{f063}]
-% \definesymbol [arrow-left] [\FontAwesomeSymbol{f060}]
-% \definesymbol [arrow-right] [\FontAwesomeSymbol{f061}]
-% \definesymbol [arrow-up] [\FontAwesomeSymbol{f062}]
-% \definesymbol [arrows] [\FontAwesomeSymbol{f047}]
-% \definesymbol [arrows-alt] [\FontAwesomeSymbol{f0b2}]
-% \definesymbol [arrows-h] [\FontAwesomeSymbol{f07e}]
-% \definesymbol [arrows-v] [\FontAwesomeSymbol{f07d}]
-% \definesymbol [asl-interpreting] [\FontAwesomeSymbol{f2a3}]
-% \definesymbol [assistive-listening-systems] [\FontAwesomeSymbol{f2a2}]
-% \definesymbol [asterisk] [\FontAwesomeSymbol{f069}]
-% \definesymbol [at] [\FontAwesomeSymbol{f1fa}]
-% \definesymbol [audio-description] [\FontAwesomeSymbol{f29e}]
-% \definesymbol [automobile] [\FontAwesomeSymbol{f1b9}]
-% \definesymbol [backward] [\FontAwesomeSymbol{f04a}]
-% \definesymbol [balance-scale] [\FontAwesomeSymbol{f24e}]
-% \definesymbol [ban] [\FontAwesomeSymbol{f05e}]
-% \definesymbol [bank] [\FontAwesomeSymbol{f19c}]
-% \definesymbol [bar-chart] [\FontAwesomeSymbol{f080}]
-% \definesymbol [bar-chart-o] [\FontAwesomeSymbol{f080}]
-% \definesymbol [barcode] [\FontAwesomeSymbol{f02a}]
-% \definesymbol [bars] [\FontAwesomeSymbol{f0c9}]
-% \definesymbol [battery-0] [\FontAwesomeSymbol{f244}]
-% \definesymbol [battery-1] [\FontAwesomeSymbol{f243}]
-% \definesymbol [battery-2] [\FontAwesomeSymbol{f242}]
-% \definesymbol [battery-3] [\FontAwesomeSymbol{f241}]
-% \definesymbol [battery-4] [\FontAwesomeSymbol{f240}]
-% \definesymbol [battery-empty] [\FontAwesomeSymbol{f244}]
-% \definesymbol [battery-full] [\FontAwesomeSymbol{f240}]
-% \definesymbol [battery-half] [\FontAwesomeSymbol{f242}]
-% \definesymbol [battery-quarter] [\FontAwesomeSymbol{f243}]
-% \definesymbol [battery-three-quarters] [\FontAwesomeSymbol{f241}]
-% \definesymbol [bed] [\FontAwesomeSymbol{f236}]
-% \definesymbol [beer] [\FontAwesomeSymbol{f0fc}]
-% \definesymbol [behance] [\FontAwesomeSymbol{f1b4}]
-% \definesymbol [behance-square] [\FontAwesomeSymbol{f1b5}]
-% \definesymbol [bell] [\FontAwesomeSymbol{f0f3}]
-% \definesymbol [bell-o] [\FontAwesomeSymbol{f0a2}]
-% \definesymbol [bell-slash] [\FontAwesomeSymbol{f1f6}]
-% \definesymbol [bell-slash-o] [\FontAwesomeSymbol{f1f7}]
-% \definesymbol [bicycle] [\FontAwesomeSymbol{f206}]
-% \definesymbol [binoculars] [\FontAwesomeSymbol{f1e5}]
-% \definesymbol [birthday-cake] [\FontAwesomeSymbol{f1fd}]
-% \definesymbol [bitbucket] [\FontAwesomeSymbol{f171}]
-% \definesymbol [bitbucket-square] [\FontAwesomeSymbol{f172}]
-% \definesymbol [bitcoin] [\FontAwesomeSymbol{f15a}]
-% \definesymbol [black-tie] [\FontAwesomeSymbol{f27e}]
-% \definesymbol [blind] [\FontAwesomeSymbol{f29d}]
-% \definesymbol [bluetooth] [\FontAwesomeSymbol{f293}]
-% \definesymbol [bluetooth-b] [\FontAwesomeSymbol{f294}]
-% \definesymbol [bold] [\FontAwesomeSymbol{f032}]
-% \definesymbol [bolt] [\FontAwesomeSymbol{f0e7}]
-% \definesymbol [bomb] [\FontAwesomeSymbol{f1e2}]
-% \definesymbol [book] [\FontAwesomeSymbol{f02d}]
-% \definesymbol [bookmark] [\FontAwesomeSymbol{f02e}]
-% \definesymbol [bookmark-o] [\FontAwesomeSymbol{f097}]
-% \definesymbol [braille] [\FontAwesomeSymbol{f2a1}]
-% \definesymbol [briefcase] [\FontAwesomeSymbol{f0b1}]
-% \definesymbol [btc] [\FontAwesomeSymbol{f15a}]
-% \definesymbol [bug] [\FontAwesomeSymbol{f188}]
-% \definesymbol [building] [\FontAwesomeSymbol{f1ad}]
-% \definesymbol [building-o] [\FontAwesomeSymbol{f0f7}]
-% \definesymbol [bullhorn] [\FontAwesomeSymbol{f0a1}]
-% \definesymbol [bullseye] [\FontAwesomeSymbol{f140}]
-% \definesymbol [bus] [\FontAwesomeSymbol{f207}]
-% \definesymbol [buysellads] [\FontAwesomeSymbol{f20d}]
-% \definesymbol [cab] [\FontAwesomeSymbol{f1ba}]
-% \definesymbol [calculator] [\FontAwesomeSymbol{f1ec}]
-% \definesymbol [calendar] [\FontAwesomeSymbol{f073}]
-% \definesymbol [calendar-check-o] [\FontAwesomeSymbol{f274}]
-% \definesymbol [calendar-minus-o] [\FontAwesomeSymbol{f272}]
-% \definesymbol [calendar-o] [\FontAwesomeSymbol{f133}]
-% \definesymbol [calendar-plus-o] [\FontAwesomeSymbol{f271}]
-% \definesymbol [calendar-times-o] [\FontAwesomeSymbol{f273}]
-% \definesymbol [camera] [\FontAwesomeSymbol{f030}]
-% \definesymbol [camera-retro] [\FontAwesomeSymbol{f083}]
-% \definesymbol [car] [\FontAwesomeSymbol{f1b9}]
-% \definesymbol [caret-down] [\FontAwesomeSymbol{f0d7}]
-% \definesymbol [caret-left] [\FontAwesomeSymbol{f0d9}]
-% \definesymbol [caret-right] [\FontAwesomeSymbol{f0da}]
-% \definesymbol [caret-square-o-down] [\FontAwesomeSymbol{f150}]
-% \definesymbol [caret-square-o-left] [\FontAwesomeSymbol{f191}]
-% \definesymbol [caret-square-o-right] [\FontAwesomeSymbol{f152}]
-% \definesymbol [caret-square-o-up] [\FontAwesomeSymbol{f151}]
-% \definesymbol [caret-up] [\FontAwesomeSymbol{f0d8}]
-% \definesymbol [cart-arrow-down] [\FontAwesomeSymbol{f218}]
-% \definesymbol [cart-plus] [\FontAwesomeSymbol{f217}]
-% \definesymbol [cc] [\FontAwesomeSymbol{f20a}]
-% \definesymbol [cc-amex] [\FontAwesomeSymbol{f1f3}]
-% \definesymbol [cc-diners-club] [\FontAwesomeSymbol{f24c}]
-% \definesymbol [cc-discover] [\FontAwesomeSymbol{f1f2}]
-% \definesymbol [cc-jcb] [\FontAwesomeSymbol{f24b}]
-% \definesymbol [cc-mastercard] [\FontAwesomeSymbol{f1f1}]
-% \definesymbol [cc-paypal] [\FontAwesomeSymbol{f1f4}]
-% \definesymbol [cc-stripe] [\FontAwesomeSymbol{f1f5}]
-% \definesymbol [cc-visa] [\FontAwesomeSymbol{f1f0}]
-% \definesymbol [certificate] [\FontAwesomeSymbol{f0a3}]
-% \definesymbol [chain] [\FontAwesomeSymbol{f0c1}]
-% \definesymbol [chain-broken] [\FontAwesomeSymbol{f127}]
-% \definesymbol [check] [\FontAwesomeSymbol{f00c}]
-% \definesymbol [check-circle] [\FontAwesomeSymbol{f058}]
-% \definesymbol [check-circle-o] [\FontAwesomeSymbol{f05d}]
-% \definesymbol [check-square] [\FontAwesomeSymbol{f14a}]
-% \definesymbol [check-square-o] [\FontAwesomeSymbol{f046}]
-% \definesymbol [chevron-circle-down] [\FontAwesomeSymbol{f13a}]
-% \definesymbol [chevron-circle-left] [\FontAwesomeSymbol{f137}]
-% \definesymbol [chevron-circle-right] [\FontAwesomeSymbol{f138}]
-% \definesymbol [chevron-circle-up] [\FontAwesomeSymbol{f139}]
-% \definesymbol [chevron-down] [\FontAwesomeSymbol{f078}]
-% \definesymbol [chevron-left] [\FontAwesomeSymbol{f053}]
-% \definesymbol [chevron-right] [\FontAwesomeSymbol{f054}]
-% \definesymbol [chevron-up] [\FontAwesomeSymbol{f077}]
-% \definesymbol [child] [\FontAwesomeSymbol{f1ae}]
-% \definesymbol [chrome] [\FontAwesomeSymbol{f268}]
-% \definesymbol [circle] [\FontAwesomeSymbol{f111}]
-% \definesymbol [circle-o] [\FontAwesomeSymbol{f10c}]
-% \definesymbol [circle-o-notch] [\FontAwesomeSymbol{f1ce}]
-% \definesymbol [circle-thin] [\FontAwesomeSymbol{f1db}]
-% \definesymbol [clipboard] [\FontAwesomeSymbol{f0ea}]
-% \definesymbol [clock-o] [\FontAwesomeSymbol{f017}]
-% \definesymbol [clone] [\FontAwesomeSymbol{f24d}]
-% \definesymbol [close] [\FontAwesomeSymbol{f00d}]
-% \definesymbol [cloud] [\FontAwesomeSymbol{f0c2}]
-% \definesymbol [cloud-download] [\FontAwesomeSymbol{f0ed}]
-% \definesymbol [cloud-upload] [\FontAwesomeSymbol{f0ee}]
-% \definesymbol [cny] [\FontAwesomeSymbol{f157}]
-% \definesymbol [code] [\FontAwesomeSymbol{f121}]
-% \definesymbol [code-fork] [\FontAwesomeSymbol{f126}]
-% \definesymbol [codepen] [\FontAwesomeSymbol{f1cb}]
-% \definesymbol [codiepie] [\FontAwesomeSymbol{f284}]
-% \definesymbol [coffee] [\FontAwesomeSymbol{f0f4}]
-% \definesymbol [cog] [\FontAwesomeSymbol{f013}]
-% \definesymbol [cogs] [\FontAwesomeSymbol{f085}]
-% \definesymbol [columns] [\FontAwesomeSymbol{f0db}]
-% \definesymbol [comment] [\FontAwesomeSymbol{f075}]
-% \definesymbol [comment-o] [\FontAwesomeSymbol{f0e5}]
-% \definesymbol [commenting] [\FontAwesomeSymbol{f27a}]
-% \definesymbol [commenting-o] [\FontAwesomeSymbol{f27b}]
-% \definesymbol [comments] [\FontAwesomeSymbol{f086}]
-% \definesymbol [comments-o] [\FontAwesomeSymbol{f0e6}]
-% \definesymbol [compass] [\FontAwesomeSymbol{f14e}]
-% \definesymbol [compress] [\FontAwesomeSymbol{f066}]
-% \definesymbol [connectdevelop] [\FontAwesomeSymbol{f20e}]
-% \definesymbol [contao] [\FontAwesomeSymbol{f26d}]
-% \definesymbol [copy] [\FontAwesomeSymbol{f0c5}]
-% \definesymbol [copyright] [\FontAwesomeSymbol{f1f9}]
-% \definesymbol [creative-commons] [\FontAwesomeSymbol{f25e}]
-% \definesymbol [credit-card] [\FontAwesomeSymbol{f09d}]
-% \definesymbol [credit-card-alt] [\FontAwesomeSymbol{f283}]
-% \definesymbol [crop] [\FontAwesomeSymbol{f125}]
-% \definesymbol [crosshairs] [\FontAwesomeSymbol{f05b}]
-% \definesymbol [css3] [\FontAwesomeSymbol{f13c}]
-% \definesymbol [cube] [\FontAwesomeSymbol{f1b2}]
-% \definesymbol [cubes] [\FontAwesomeSymbol{f1b3}]
-% \definesymbol [cut] [\FontAwesomeSymbol{f0c4}]
-% \definesymbol [cutlery] [\FontAwesomeSymbol{f0f5}]
-% \definesymbol [dashboard] [\FontAwesomeSymbol{f0e4}]
-% \definesymbol [dashcube] [\FontAwesomeSymbol{f210}]
-% \definesymbol [database] [\FontAwesomeSymbol{f1c0}]
-% \definesymbol [deaf] [\FontAwesomeSymbol{f2a4}]
-% \definesymbol [deafness] [\FontAwesomeSymbol{f2a4}]
-% \definesymbol [dedent] [\FontAwesomeSymbol{f03b}]
-% \definesymbol [delicious] [\FontAwesomeSymbol{f1a5}]
-% \definesymbol [desktop] [\FontAwesomeSymbol{f108}]
-% \definesymbol [deviantart] [\FontAwesomeSymbol{f1bd}]
-% \definesymbol [diamond] [\FontAwesomeSymbol{f219}]
-% \definesymbol [digg] [\FontAwesomeSymbol{f1a6}]
-% \definesymbol [dollar] [\FontAwesomeSymbol{f155}]
-% \definesymbol [dot-circle-o] [\FontAwesomeSymbol{f192}]
-% \definesymbol [download] [\FontAwesomeSymbol{f019}]
-% \definesymbol [dribbble] [\FontAwesomeSymbol{f17d}]
-% \definesymbol [dropbox] [\FontAwesomeSymbol{f16b}]
-% \definesymbol [drupal] [\FontAwesomeSymbol{f1a9}]
-% \definesymbol [edge] [\FontAwesomeSymbol{f282}]
-% \definesymbol [edit] [\FontAwesomeSymbol{f044}]
-% \definesymbol [eject] [\FontAwesomeSymbol{f052}]
-% \definesymbol [ellipsis-h] [\FontAwesomeSymbol{f141}]
-% \definesymbol [ellipsis-v] [\FontAwesomeSymbol{f142}]
-% \definesymbol [empire] [\FontAwesomeSymbol{f1d1}]
-% \definesymbol [envelope] [\FontAwesomeSymbol{f0e0}]
-% \definesymbol [envelope-o] [\FontAwesomeSymbol{f003}]
-% \definesymbol [envelope-square] [\FontAwesomeSymbol{f199}]
-% \definesymbol [envira] [\FontAwesomeSymbol{f299}]
-% \definesymbol [eraser] [\FontAwesomeSymbol{f12d}]
-% \definesymbol [eur] [\FontAwesomeSymbol{f153}]
-% \definesymbol [euro] [\FontAwesomeSymbol{f153}]
-% \definesymbol [exchange] [\FontAwesomeSymbol{f0ec}]
-% \definesymbol [exclamation] [\FontAwesomeSymbol{f12a}]
-% \definesymbol [exclamation-circle] [\FontAwesomeSymbol{f06a}]
-% \definesymbol [exclamation-triangle] [\FontAwesomeSymbol{f071}]
-% \definesymbol [expand] [\FontAwesomeSymbol{f065}]
-% \definesymbol [expeditedssl] [\FontAwesomeSymbol{f23e}]
-% \definesymbol [external-link] [\FontAwesomeSymbol{f08e}]
-% \definesymbol [external-link-square] [\FontAwesomeSymbol{f14c}]
-% \definesymbol [eye] [\FontAwesomeSymbol{f06e}]
-% \definesymbol [eye-slash] [\FontAwesomeSymbol{f070}]
-% \definesymbol [eyedropper] [\FontAwesomeSymbol{f1fb}]
-% \definesymbol [fa] [\FontAwesomeSymbol{f2b4}]
-% \definesymbol [facebook] [\FontAwesomeSymbol{f09a}]
-% \definesymbol [facebook-f] [\FontAwesomeSymbol{f09a}]
-% \definesymbol [facebook-official] [\FontAwesomeSymbol{f230}]
-% \definesymbol [facebook-square] [\FontAwesomeSymbol{f082}]
-% \definesymbol [fast-backward] [\FontAwesomeSymbol{f049}]
-% \definesymbol [fast-forward] [\FontAwesomeSymbol{f050}]
-% \definesymbol [fax] [\FontAwesomeSymbol{f1ac}]
-% \definesymbol [feed] [\FontAwesomeSymbol{f09e}]
-% \definesymbol [female] [\FontAwesomeSymbol{f182}]
-% \definesymbol [fighter-jet] [\FontAwesomeSymbol{f0fb}]
-% \definesymbol [file] [\FontAwesomeSymbol{f15b}]
-% \definesymbol [file-archive-o] [\FontAwesomeSymbol{f1c6}]
-% \definesymbol [file-audio-o] [\FontAwesomeSymbol{f1c7}]
-% \definesymbol [file-code-o] [\FontAwesomeSymbol{f1c9}]
-% \definesymbol [file-excel-o] [\FontAwesomeSymbol{f1c3}]
-% \definesymbol [file-image-o] [\FontAwesomeSymbol{f1c5}]
-% \definesymbol [file-movie-o] [\FontAwesomeSymbol{f1c8}]
-% \definesymbol [file-o] [\FontAwesomeSymbol{f016}]
-% \definesymbol [file-pdf-o] [\FontAwesomeSymbol{f1c1}]
-% \definesymbol [file-photo-o] [\FontAwesomeSymbol{f1c5}]
-% \definesymbol [file-picture-o] [\FontAwesomeSymbol{f1c5}]
-% \definesymbol [file-powerpoint-o] [\FontAwesomeSymbol{f1c4}]
-% \definesymbol [file-sound-o] [\FontAwesomeSymbol{f1c7}]
-% \definesymbol [file-text] [\FontAwesomeSymbol{f15c}]
-% \definesymbol [file-text-o] [\FontAwesomeSymbol{f0f6}]
-% \definesymbol [file-video-o] [\FontAwesomeSymbol{f1c8}]
-% \definesymbol [file-word-o] [\FontAwesomeSymbol{f1c2}]
-% \definesymbol [file-zip-o] [\FontAwesomeSymbol{f1c6}]
-% \definesymbol [files-o] [\FontAwesomeSymbol{f0c5}]
-% \definesymbol [film] [\FontAwesomeSymbol{f008}]
-% \definesymbol [filter] [\FontAwesomeSymbol{f0b0}]
-% \definesymbol [fire] [\FontAwesomeSymbol{f06d}]
-% \definesymbol [fire-extinguisher] [\FontAwesomeSymbol{f134}]
-% \definesymbol [firefox] [\FontAwesomeSymbol{f269}]
-% \definesymbol [first-order] [\FontAwesomeSymbol{f2b0}]
-% \definesymbol [flag] [\FontAwesomeSymbol{f024}]
-% \definesymbol [flag-checkered] [\FontAwesomeSymbol{f11e}]
-% \definesymbol [flag-o] [\FontAwesomeSymbol{f11d}]
-% \definesymbol [flash] [\FontAwesomeSymbol{f0e7}]
-% \definesymbol [flask] [\FontAwesomeSymbol{f0c3}]
-% \definesymbol [flickr] [\FontAwesomeSymbol{f16e}]
-% \definesymbol [floppy-o] [\FontAwesomeSymbol{f0c7}]
-% \definesymbol [folder] [\FontAwesomeSymbol{f07b}]
-% \definesymbol [folder-o] [\FontAwesomeSymbol{f114}]
-% \definesymbol [folder-open] [\FontAwesomeSymbol{f07c}]
-% \definesymbol [folder-open-o] [\FontAwesomeSymbol{f115}]
-% \definesymbol [font] [\FontAwesomeSymbol{f031}]
-% \definesymbol [font-awesome] [\FontAwesomeSymbol{f2b4}]
-% \definesymbol [fonticons] [\FontAwesomeSymbol{f280}]
-% \definesymbol [fort-awesome] [\FontAwesomeSymbol{f286}]
-% \definesymbol [forumbee] [\FontAwesomeSymbol{f211}]
-% \definesymbol [forward] [\FontAwesomeSymbol{f04e}]
-% \definesymbol [foursquare] [\FontAwesomeSymbol{f180}]
-% \definesymbol [frown-o] [\FontAwesomeSymbol{f119}]
-% \definesymbol [futbol-o] [\FontAwesomeSymbol{f1e3}]
-% \definesymbol [gamepad] [\FontAwesomeSymbol{f11b}]
-% \definesymbol [gavel] [\FontAwesomeSymbol{f0e3}]
-% \definesymbol [gbp] [\FontAwesomeSymbol{f154}]
-% \definesymbol [ge] [\FontAwesomeSymbol{f1d1}]
-% \definesymbol [gear] [\FontAwesomeSymbol{f013}]
-% \definesymbol [gears] [\FontAwesomeSymbol{f085}]
-% \definesymbol [genderless] [\FontAwesomeSymbol{f22d}]
-% \definesymbol [get-pocket] [\FontAwesomeSymbol{f265}]
-% \definesymbol [gg] [\FontAwesomeSymbol{f260}]
-% \definesymbol [gg-circle] [\FontAwesomeSymbol{f261}]
-% \definesymbol [gift] [\FontAwesomeSymbol{f06b}]
-% \definesymbol [git] [\FontAwesomeSymbol{f1d3}]
-% \definesymbol [git-square] [\FontAwesomeSymbol{f1d2}]
-% \definesymbol [github] [\FontAwesomeSymbol{f09b}]
-% \definesymbol [github-alt] [\FontAwesomeSymbol{f113}]
-% \definesymbol [github-square] [\FontAwesomeSymbol{f092}]
-% \definesymbol [gitlab] [\FontAwesomeSymbol{f296}]
-% \definesymbol [gittip] [\FontAwesomeSymbol{f184}]
-% \definesymbol [glass] [\FontAwesomeSymbol{f000}]
-% \definesymbol [glide] [\FontAwesomeSymbol{f2a5}]
-% \definesymbol [glide-g] [\FontAwesomeSymbol{f2a6}]
-% \definesymbol [globe] [\FontAwesomeSymbol{f0ac}]
-% \definesymbol [google] [\FontAwesomeSymbol{f1a0}]
-% \definesymbol [google-plus] [\FontAwesomeSymbol{f0d5}]
-% \definesymbol [google-plus-circle] [\FontAwesomeSymbol{f2b3}]
-% \definesymbol [google-plus-official] [\FontAwesomeSymbol{f2b3}]
-% \definesymbol [google-plus-square] [\FontAwesomeSymbol{f0d4}]
-% \definesymbol [google-wallet] [\FontAwesomeSymbol{f1ee}]
-% \definesymbol [graduation-cap] [\FontAwesomeSymbol{f19d}]
-% \definesymbol [gratipay] [\FontAwesomeSymbol{f184}]
-% \definesymbol [group] [\FontAwesomeSymbol{f0c0}]
-% \definesymbol [h-square] [\FontAwesomeSymbol{f0fd}]
-% \definesymbol [hacker-news] [\FontAwesomeSymbol{f1d4}]
-% \definesymbol [hand-grab-o] [\FontAwesomeSymbol{f255}]
-% \definesymbol [hand-lizard-o] [\FontAwesomeSymbol{f258}]
-% \definesymbol [hand-o-down] [\FontAwesomeSymbol{f0a7}]
-% \definesymbol [hand-o-left] [\FontAwesomeSymbol{f0a5}]
-% \definesymbol [hand-o-right] [\FontAwesomeSymbol{f0a4}]
-% \definesymbol [hand-o-up] [\FontAwesomeSymbol{f0a6}]
-% \definesymbol [hand-paper-o] [\FontAwesomeSymbol{f256}]
-% \definesymbol [hand-peace-o] [\FontAwesomeSymbol{f25b}]
-% \definesymbol [hand-pointer-o] [\FontAwesomeSymbol{f25a}]
-% \definesymbol [hand-rock-o] [\FontAwesomeSymbol{f255}]
-% \definesymbol [hand-scissors-o] [\FontAwesomeSymbol{f257}]
-% \definesymbol [hand-spock-o] [\FontAwesomeSymbol{f259}]
-% \definesymbol [hand-stop-o] [\FontAwesomeSymbol{f256}]
-% \definesymbol [hard-of-hearing] [\FontAwesomeSymbol{f2a4}]
-% \definesymbol [hashtag] [\FontAwesomeSymbol{f292}]
-% \definesymbol [hdd-o] [\FontAwesomeSymbol{f0a0}]
-% \definesymbol [header] [\FontAwesomeSymbol{f1dc}]
-% \definesymbol [headphones] [\FontAwesomeSymbol{f025}]
-% \definesymbol [heart] [\FontAwesomeSymbol{f004}]
-% \definesymbol [heart-o] [\FontAwesomeSymbol{f08a}]
-% \definesymbol [heartbeat] [\FontAwesomeSymbol{f21e}]
-% \definesymbol [history] [\FontAwesomeSymbol{f1da}]
-% \definesymbol [home] [\FontAwesomeSymbol{f015}]
-% \definesymbol [hospital-o] [\FontAwesomeSymbol{f0f8}]
-% \definesymbol [hotel] [\FontAwesomeSymbol{f236}]
-% \definesymbol [hourglass] [\FontAwesomeSymbol{f254}]
-% \definesymbol [hourglass-1] [\FontAwesomeSymbol{f251}]
-% \definesymbol [hourglass-2] [\FontAwesomeSymbol{f252}]
-% \definesymbol [hourglass-3] [\FontAwesomeSymbol{f253}]
-% \definesymbol [hourglass-end] [\FontAwesomeSymbol{f253}]
-% \definesymbol [hourglass-half] [\FontAwesomeSymbol{f252}]
-% \definesymbol [hourglass-o] [\FontAwesomeSymbol{f250}]
-% \definesymbol [hourglass-start] [\FontAwesomeSymbol{f251}]
-% \definesymbol [houzz] [\FontAwesomeSymbol{f27c}]
-% \definesymbol [html5] [\FontAwesomeSymbol{f13b}]
-% \definesymbol [i-cursor] [\FontAwesomeSymbol{f246}]
-% \definesymbol [ils] [\FontAwesomeSymbol{f20b}]
-% \definesymbol [image] [\FontAwesomeSymbol{f03e}]
-% \definesymbol [inbox] [\FontAwesomeSymbol{f01c}]
-% \definesymbol [indent] [\FontAwesomeSymbol{f03c}]
-% \definesymbol [industry] [\FontAwesomeSymbol{f275}]
-% \definesymbol [info] [\FontAwesomeSymbol{f129}]
-% \definesymbol [info-circle] [\FontAwesomeSymbol{f05a}]
-% \definesymbol [inr] [\FontAwesomeSymbol{f156}]
-% \definesymbol [instagram] [\FontAwesomeSymbol{f16d}]
-% \definesymbol [institution] [\FontAwesomeSymbol{f19c}]
-% \definesymbol [internet-explorer] [\FontAwesomeSymbol{f26b}]
-% \definesymbol [intersex] [\FontAwesomeSymbol{f224}]
-% \definesymbol [ioxhost] [\FontAwesomeSymbol{f208}]
-% \definesymbol [italic] [\FontAwesomeSymbol{f033}]
-% \definesymbol [joomla] [\FontAwesomeSymbol{f1aa}]
-% \definesymbol [jpy] [\FontAwesomeSymbol{f157}]
-% \definesymbol [jsfiddle] [\FontAwesomeSymbol{f1cc}]
-% \definesymbol [key] [\FontAwesomeSymbol{f084}]
-% \definesymbol [keyboard-o] [\FontAwesomeSymbol{f11c}]
-% \definesymbol [krw] [\FontAwesomeSymbol{f159}]
-% \definesymbol [language] [\FontAwesomeSymbol{f1ab}]
-% \definesymbol [laptop] [\FontAwesomeSymbol{f109}]
-% \definesymbol [lastfm] [\FontAwesomeSymbol{f202}]
-% \definesymbol [lastfm-square] [\FontAwesomeSymbol{f203}]
-% \definesymbol [leaf] [\FontAwesomeSymbol{f06c}]
-% \definesymbol [leanpub] [\FontAwesomeSymbol{f212}]
-% \definesymbol [legal] [\FontAwesomeSymbol{f0e3}]
-% \definesymbol [lemon-o] [\FontAwesomeSymbol{f094}]
-% \definesymbol [level-down] [\FontAwesomeSymbol{f149}]
-% \definesymbol [level-up] [\FontAwesomeSymbol{f148}]
-% \definesymbol [life-bouy] [\FontAwesomeSymbol{f1cd}]
-% \definesymbol [life-buoy] [\FontAwesomeSymbol{f1cd}]
-% \definesymbol [life-ring] [\FontAwesomeSymbol{f1cd}]
-% \definesymbol [life-saver] [\FontAwesomeSymbol{f1cd}]
-% \definesymbol [lightbulb-o] [\FontAwesomeSymbol{f0eb}]
-% \definesymbol [line-chart] [\FontAwesomeSymbol{f201}]
-% \definesymbol [link] [\FontAwesomeSymbol{f0c1}]
-% \definesymbol [linkedin] [\FontAwesomeSymbol{f0e1}]
-% \definesymbol [linkedin-square] [\FontAwesomeSymbol{f08c}]
-% \definesymbol [linux] [\FontAwesomeSymbol{f17c}]
-% \definesymbol [list] [\FontAwesomeSymbol{f03a}]
-% \definesymbol [list-alt] [\FontAwesomeSymbol{f022}]
-% \definesymbol [list-ol] [\FontAwesomeSymbol{f0cb}]
-% \definesymbol [list-ul] [\FontAwesomeSymbol{f0ca}]
-% \definesymbol [location-arrow] [\FontAwesomeSymbol{f124}]
-% \definesymbol [lock] [\FontAwesomeSymbol{f023}]
-% \definesymbol [long-arrow-down] [\FontAwesomeSymbol{f175}]
-% \definesymbol [long-arrow-left] [\FontAwesomeSymbol{f177}]
-% \definesymbol [long-arrow-right] [\FontAwesomeSymbol{f178}]
-% \definesymbol [long-arrow-up] [\FontAwesomeSymbol{f176}]
-% \definesymbol [low-vision] [\FontAwesomeSymbol{f2a8}]
-% \definesymbol [magic] [\FontAwesomeSymbol{f0d0}]
-% \definesymbol [magnet] [\FontAwesomeSymbol{f076}]
-% \definesymbol [mail-forward] [\FontAwesomeSymbol{f064}]
-% \definesymbol [mail-reply] [\FontAwesomeSymbol{f112}]
-% \definesymbol [mail-reply-all] [\FontAwesomeSymbol{f122}]
-% \definesymbol [male] [\FontAwesomeSymbol{f183}]
-% \definesymbol [map] [\FontAwesomeSymbol{f279}]
-% \definesymbol [map-marker] [\FontAwesomeSymbol{f041}]
-% \definesymbol [map-o] [\FontAwesomeSymbol{f278}]
-% \definesymbol [map-pin] [\FontAwesomeSymbol{f276}]
-% \definesymbol [map-signs] [\FontAwesomeSymbol{f277}]
-% \definesymbol [mars] [\FontAwesomeSymbol{f222}]
-% \definesymbol [mars-double] [\FontAwesomeSymbol{f227}]
-% \definesymbol [mars-stroke] [\FontAwesomeSymbol{f229}]
-% \definesymbol [mars-stroke-h] [\FontAwesomeSymbol{f22b}]
-% \definesymbol [mars-stroke-v] [\FontAwesomeSymbol{f22a}]
-% \definesymbol [maxcdn] [\FontAwesomeSymbol{f136}]
-% \definesymbol [meanpath] [\FontAwesomeSymbol{f20c}]
-% \definesymbol [medium] [\FontAwesomeSymbol{f23a}]
-% \definesymbol [medkit] [\FontAwesomeSymbol{f0fa}]
-% \definesymbol [meh-o] [\FontAwesomeSymbol{f11a}]
-% \definesymbol [mercury] [\FontAwesomeSymbol{f223}]
-% \definesymbol [microphone] [\FontAwesomeSymbol{f130}]
-% \definesymbol [microphone-slash] [\FontAwesomeSymbol{f131}]
-% \definesymbol [minus] [\FontAwesomeSymbol{f068}]
-% \definesymbol [minus-circle] [\FontAwesomeSymbol{f056}]
-% \definesymbol [minus-square] [\FontAwesomeSymbol{f146}]
-% \definesymbol [minus-square-o] [\FontAwesomeSymbol{f147}]
-% \definesymbol [mixcloud] [\FontAwesomeSymbol{f289}]
-% \definesymbol [mobile] [\FontAwesomeSymbol{f10b}]
-% \definesymbol [mobile-phone] [\FontAwesomeSymbol{f10b}]
-% \definesymbol [modx] [\FontAwesomeSymbol{f285}]
-% \definesymbol [money] [\FontAwesomeSymbol{f0d6}]
-% \definesymbol [moon-o] [\FontAwesomeSymbol{f186}]
-% \definesymbol [mortar-board] [\FontAwesomeSymbol{f19d}]
-% \definesymbol [motorcycle] [\FontAwesomeSymbol{f21c}]
-% \definesymbol [mouse-pointer] [\FontAwesomeSymbol{f245}]
-% \definesymbol [music] [\FontAwesomeSymbol{f001}]
-% \definesymbol [navicon] [\FontAwesomeSymbol{f0c9}]
-% \definesymbol [neuter] [\FontAwesomeSymbol{f22c}]
-% \definesymbol [newspaper-o] [\FontAwesomeSymbol{f1ea}]
-% \definesymbol [object-group] [\FontAwesomeSymbol{f247}]
-% \definesymbol [object-ungroup] [\FontAwesomeSymbol{f248}]
-% \definesymbol [odnoklassniki] [\FontAwesomeSymbol{f263}]
-% \definesymbol [odnoklassniki-square] [\FontAwesomeSymbol{f264}]
-% \definesymbol [opencart] [\FontAwesomeSymbol{f23d}]
-% \definesymbol [openid] [\FontAwesomeSymbol{f19b}]
-% \definesymbol [opera] [\FontAwesomeSymbol{f26a}]
-% \definesymbol [optin-monster] [\FontAwesomeSymbol{f23c}]
-% \definesymbol [outdent] [\FontAwesomeSymbol{f03b}]
-% \definesymbol [pagelines] [\FontAwesomeSymbol{f18c}]
-% \definesymbol [paint-brush] [\FontAwesomeSymbol{f1fc}]
-% \definesymbol [paper-plane] [\FontAwesomeSymbol{f1d8}]
-% \definesymbol [paper-plane-o] [\FontAwesomeSymbol{f1d9}]
-% \definesymbol [paperclip] [\FontAwesomeSymbol{f0c6}]
-% \definesymbol [paragraph] [\FontAwesomeSymbol{f1dd}]
-% \definesymbol [paste] [\FontAwesomeSymbol{f0ea}]
-% \definesymbol [pause] [\FontAwesomeSymbol{f04c}]
-% \definesymbol [pause-circle] [\FontAwesomeSymbol{f28b}]
-% \definesymbol [pause-circle-o] [\FontAwesomeSymbol{f28c}]
-% \definesymbol [paw] [\FontAwesomeSymbol{f1b0}]
-% \definesymbol [paypal] [\FontAwesomeSymbol{f1ed}]
-% \definesymbol [pencil] [\FontAwesomeSymbol{f040}]
-% \definesymbol [pencil-square] [\FontAwesomeSymbol{f14b}]
-% \definesymbol [pencil-square-o] [\FontAwesomeSymbol{f044}]
-% \definesymbol [percent] [\FontAwesomeSymbol{f295}]
-% \definesymbol [phone] [\FontAwesomeSymbol{f095}]
-% \definesymbol [phone-square] [\FontAwesomeSymbol{f098}]
-% \definesymbol [photo] [\FontAwesomeSymbol{f03e}]
-% \definesymbol [picture-o] [\FontAwesomeSymbol{f03e}]
-% \definesymbol [pie-chart] [\FontAwesomeSymbol{f200}]
-% \definesymbol [pied-piper] [\FontAwesomeSymbol{f2ae}]
-% \definesymbol [pied-piper-alt] [\FontAwesomeSymbol{f1a8}]
-% \definesymbol [pied-piper-pp] [\FontAwesomeSymbol{f1a7}]
-% \definesymbol [pinterest] [\FontAwesomeSymbol{f0d2}]
-% \definesymbol [pinterest-p] [\FontAwesomeSymbol{f231}]
-% \definesymbol [pinterest-square] [\FontAwesomeSymbol{f0d3}]
-% \definesymbol [plane] [\FontAwesomeSymbol{f072}]
-% \definesymbol [play] [\FontAwesomeSymbol{f04b}]
-% \definesymbol [play-circle] [\FontAwesomeSymbol{f144}]
-% \definesymbol [play-circle-o] [\FontAwesomeSymbol{f01d}]
-% \definesymbol [plug] [\FontAwesomeSymbol{f1e6}]
-% \definesymbol [plus] [\FontAwesomeSymbol{f067}]
-% \definesymbol [plus-circle] [\FontAwesomeSymbol{f055}]
-% \definesymbol [plus-square] [\FontAwesomeSymbol{f0fe}]
-% \definesymbol [plus-square-o] [\FontAwesomeSymbol{f196}]
-% \definesymbol [power-off] [\FontAwesomeSymbol{f011}]
-% \definesymbol [print] [\FontAwesomeSymbol{f02f}]
-% \definesymbol [product-hunt] [\FontAwesomeSymbol{f288}]
-% \definesymbol [puzzle-piece] [\FontAwesomeSymbol{f12e}]
-% \definesymbol [qq] [\FontAwesomeSymbol{f1d6}]
-% \definesymbol [qrcode] [\FontAwesomeSymbol{f029}]
-% \definesymbol [question] [\FontAwesomeSymbol{f128}]
-% \definesymbol [question-circle] [\FontAwesomeSymbol{f059}]
-% \definesymbol [question-circle-o] [\FontAwesomeSymbol{f29c}]
-% \definesymbol [quote-left] [\FontAwesomeSymbol{f10d}]
-% \definesymbol [quote-right] [\FontAwesomeSymbol{f10e}]
-% \definesymbol [ra] [\FontAwesomeSymbol{f1d0}]
-% \definesymbol [random] [\FontAwesomeSymbol{f074}]
-% \definesymbol [rebel] [\FontAwesomeSymbol{f1d0}]
-% \definesymbol [recycle] [\FontAwesomeSymbol{f1b8}]
-% \definesymbol [reddit] [\FontAwesomeSymbol{f1a1}]
-% \definesymbol [reddit-alien] [\FontAwesomeSymbol{f281}]
-% \definesymbol [reddit-square] [\FontAwesomeSymbol{f1a2}]
-% \definesymbol [refresh] [\FontAwesomeSymbol{f021}]
-% \definesymbol [registered] [\FontAwesomeSymbol{f25d}]
-% \definesymbol [remove] [\FontAwesomeSymbol{f00d}]
-% \definesymbol [renren] [\FontAwesomeSymbol{f18b}]
-% \definesymbol [reorder] [\FontAwesomeSymbol{f0c9}]
-% \definesymbol [repeat] [\FontAwesomeSymbol{f01e}]
-% \definesymbol [reply] [\FontAwesomeSymbol{f112}]
-% \definesymbol [reply-all] [\FontAwesomeSymbol{f122}]
-% \definesymbol [resistance] [\FontAwesomeSymbol{f1d0}]
-% \definesymbol [retweet] [\FontAwesomeSymbol{f079}]
-% \definesymbol [rmb] [\FontAwesomeSymbol{f157}]
-% \definesymbol [road] [\FontAwesomeSymbol{f018}]
-% \definesymbol [rocket] [\FontAwesomeSymbol{f135}]
-% \definesymbol [rotate-left] [\FontAwesomeSymbol{f0e2}]
-% \definesymbol [rotate-right] [\FontAwesomeSymbol{f01e}]
-% \definesymbol [rouble] [\FontAwesomeSymbol{f158}]
-% \definesymbol [rss] [\FontAwesomeSymbol{f09e}]
-% \definesymbol [rss-square] [\FontAwesomeSymbol{f143}]
-% \definesymbol [rub] [\FontAwesomeSymbol{f158}]
-% \definesymbol [ruble] [\FontAwesomeSymbol{f158}]
-% \definesymbol [rupee] [\FontAwesomeSymbol{f156}]
-% \definesymbol [safari] [\FontAwesomeSymbol{f267}]
-% \definesymbol [save] [\FontAwesomeSymbol{f0c7}]
-% \definesymbol [scissors] [\FontAwesomeSymbol{f0c4}]
-% \definesymbol [scribd] [\FontAwesomeSymbol{f28a}]
-% \definesymbol [search] [\FontAwesomeSymbol{f002}]
-% \definesymbol [search-minus] [\FontAwesomeSymbol{f010}]
-% \definesymbol [search-plus] [\FontAwesomeSymbol{f00e}]
-% \definesymbol [sellsy] [\FontAwesomeSymbol{f213}]
-% \definesymbol [send] [\FontAwesomeSymbol{f1d8}]
-% \definesymbol [send-o] [\FontAwesomeSymbol{f1d9}]
-% \definesymbol [server] [\FontAwesomeSymbol{f233}]
-% \definesymbol [share] [\FontAwesomeSymbol{f064}]
-% \definesymbol [share-alt] [\FontAwesomeSymbol{f1e0}]
-% \definesymbol [share-alt-square] [\FontAwesomeSymbol{f1e1}]
-% \definesymbol [share-square] [\FontAwesomeSymbol{f14d}]
-% \definesymbol [share-square-o] [\FontAwesomeSymbol{f045}]
-% \definesymbol [shekel] [\FontAwesomeSymbol{f20b}]
-% \definesymbol [sheqel] [\FontAwesomeSymbol{f20b}]
-% \definesymbol [shield] [\FontAwesomeSymbol{f132}]
-% \definesymbol [ship] [\FontAwesomeSymbol{f21a}]
-% \definesymbol [shirtsinbulk] [\FontAwesomeSymbol{f214}]
-% \definesymbol [shopping-bag] [\FontAwesomeSymbol{f290}]
-% \definesymbol [shopping-basket] [\FontAwesomeSymbol{f291}]
-% \definesymbol [shopping-cart] [\FontAwesomeSymbol{f07a}]
-% \definesymbol [sign-in] [\FontAwesomeSymbol{f090}]
-% \definesymbol [sign-language] [\FontAwesomeSymbol{f2a7}]
-% \definesymbol [sign-out] [\FontAwesomeSymbol{f08b}]
-% \definesymbol [signal] [\FontAwesomeSymbol{f012}]
-% \definesymbol [signing] [\FontAwesomeSymbol{f2a7}]
-% \definesymbol [simplybuilt] [\FontAwesomeSymbol{f215}]
-% \definesymbol [sitemap] [\FontAwesomeSymbol{f0e8}]
-% \definesymbol [skyatlas] [\FontAwesomeSymbol{f216}]
-% \definesymbol [skype] [\FontAwesomeSymbol{f17e}]
-% \definesymbol [slack] [\FontAwesomeSymbol{f198}]
-% \definesymbol [sliders] [\FontAwesomeSymbol{f1de}]
-% \definesymbol [slideshare] [\FontAwesomeSymbol{f1e7}]
-% \definesymbol [smile-o] [\FontAwesomeSymbol{f118}]
-% \definesymbol [snapchat] [\FontAwesomeSymbol{f2ab}]
-% \definesymbol [snapchat-ghost] [\FontAwesomeSymbol{f2ac}]
-% \definesymbol [snapchat-square] [\FontAwesomeSymbol{f2ad}]
-% \definesymbol [soccer-ball-o] [\FontAwesomeSymbol{f1e3}]
-% \definesymbol [sort] [\FontAwesomeSymbol{f0dc}]
-% \definesymbol [sort-alpha-asc] [\FontAwesomeSymbol{f15d}]
-% \definesymbol [sort-alpha-desc] [\FontAwesomeSymbol{f15e}]
-% \definesymbol [sort-amount-asc] [\FontAwesomeSymbol{f160}]
-% \definesymbol [sort-amount-desc] [\FontAwesomeSymbol{f161}]
-% \definesymbol [sort-asc] [\FontAwesomeSymbol{f0de}]
-% \definesymbol [sort-desc] [\FontAwesomeSymbol{f0dd}]
-% \definesymbol [sort-down] [\FontAwesomeSymbol{f0dd}]
-% \definesymbol [sort-numeric-asc] [\FontAwesomeSymbol{f162}]
-% \definesymbol [sort-numeric-desc] [\FontAwesomeSymbol{f163}]
-% \definesymbol [sort-up] [\FontAwesomeSymbol{f0de}]
-% \definesymbol [soundcloud] [\FontAwesomeSymbol{f1be}]
-% \definesymbol [space-shuttle] [\FontAwesomeSymbol{f197}]
-% \definesymbol [spinner] [\FontAwesomeSymbol{f110}]
-% \definesymbol [spoon] [\FontAwesomeSymbol{f1b1}]
-% \definesymbol [spotify] [\FontAwesomeSymbol{f1bc}]
-% \definesymbol [square] [\FontAwesomeSymbol{f0c8}]
-% \definesymbol [square-o] [\FontAwesomeSymbol{f096}]
-% \definesymbol [stack-exchange] [\FontAwesomeSymbol{f18d}]
-% \definesymbol [stack-overflow] [\FontAwesomeSymbol{f16c}]
-% \definesymbol [star] [\FontAwesomeSymbol{f005}]
-% \definesymbol [star-half] [\FontAwesomeSymbol{f089}]
-% \definesymbol [star-half-empty] [\FontAwesomeSymbol{f123}]
-% \definesymbol [star-half-full] [\FontAwesomeSymbol{f123}]
-% \definesymbol [star-half-o] [\FontAwesomeSymbol{f123}]
-% \definesymbol [star-o] [\FontAwesomeSymbol{f006}]
-% \definesymbol [steam] [\FontAwesomeSymbol{f1b6}]
-% \definesymbol [steam-square] [\FontAwesomeSymbol{f1b7}]
-% \definesymbol [step-backward] [\FontAwesomeSymbol{f048}]
-% \definesymbol [step-forward] [\FontAwesomeSymbol{f051}]
-% \definesymbol [stethoscope] [\FontAwesomeSymbol{f0f1}]
-% \definesymbol [sticky-note] [\FontAwesomeSymbol{f249}]
-% \definesymbol [sticky-note-o] [\FontAwesomeSymbol{f24a}]
-% \definesymbol [stop] [\FontAwesomeSymbol{f04d}]
-% \definesymbol [stop-circle] [\FontAwesomeSymbol{f28d}]
-% \definesymbol [stop-circle-o] [\FontAwesomeSymbol{f28e}]
-% \definesymbol [street-view] [\FontAwesomeSymbol{f21d}]
-% \definesymbol [strikethrough] [\FontAwesomeSymbol{f0cc}]
-% \definesymbol [stumbleupon] [\FontAwesomeSymbol{f1a4}]
-% \definesymbol [stumbleupon-circle] [\FontAwesomeSymbol{f1a3}]
-% \definesymbol [subscript] [\FontAwesomeSymbol{f12c}]
-% \definesymbol [subway] [\FontAwesomeSymbol{f239}]
-% \definesymbol [suitcase] [\FontAwesomeSymbol{f0f2}]
-% \definesymbol [sun-o] [\FontAwesomeSymbol{f185}]
-% \definesymbol [superscript] [\FontAwesomeSymbol{f12b}]
-% \definesymbol [support] [\FontAwesomeSymbol{f1cd}]
-% \definesymbol [table] [\FontAwesomeSymbol{f0ce}]
-% \definesymbol [tablet] [\FontAwesomeSymbol{f10a}]
-% \definesymbol [tachometer] [\FontAwesomeSymbol{f0e4}]
-% \definesymbol [tag] [\FontAwesomeSymbol{f02b}]
-% \definesymbol [tags] [\FontAwesomeSymbol{f02c}]
-% \definesymbol [tasks] [\FontAwesomeSymbol{f0ae}]
-% \definesymbol [taxi] [\FontAwesomeSymbol{f1ba}]
-% \definesymbol [television] [\FontAwesomeSymbol{f26c}]
-% \definesymbol [tencent-weibo] [\FontAwesomeSymbol{f1d5}]
-% \definesymbol [terminal] [\FontAwesomeSymbol{f120}]
-% \definesymbol [text-height] [\FontAwesomeSymbol{f034}]
-% \definesymbol [text-width] [\FontAwesomeSymbol{f035}]
-% \definesymbol [th] [\FontAwesomeSymbol{f00a}]
-% \definesymbol [th-large] [\FontAwesomeSymbol{f009}]
-% \definesymbol [th-list] [\FontAwesomeSymbol{f00b}]
-% \definesymbol [themeisle] [\FontAwesomeSymbol{f2b2}]
-% \definesymbol [thumb-tack] [\FontAwesomeSymbol{f08d}]
-% \definesymbol [thumbs-down] [\FontAwesomeSymbol{f165}]
-% \definesymbol [thumbs-o-down] [\FontAwesomeSymbol{f088}]
-% \definesymbol [thumbs-o-up] [\FontAwesomeSymbol{f087}]
-% \definesymbol [thumbs-up] [\FontAwesomeSymbol{f164}]
-% \definesymbol [ticket] [\FontAwesomeSymbol{f145}]
-% \definesymbol [times] [\FontAwesomeSymbol{f00d}]
-% \definesymbol [times-circle] [\FontAwesomeSymbol{f057}]
-% \definesymbol [times-circle-o] [\FontAwesomeSymbol{f05c}]
-% \definesymbol [tint] [\FontAwesomeSymbol{f043}]
-% \definesymbol [toggle-down] [\FontAwesomeSymbol{f150}]
-% \definesymbol [toggle-left] [\FontAwesomeSymbol{f191}]
-% \definesymbol [toggle-off] [\FontAwesomeSymbol{f204}]
-% \definesymbol [toggle-on] [\FontAwesomeSymbol{f205}]
-% \definesymbol [toggle-right] [\FontAwesomeSymbol{f152}]
-% \definesymbol [toggle-up] [\FontAwesomeSymbol{f151}]
-% \definesymbol [trademark] [\FontAwesomeSymbol{f25c}]
-% \definesymbol [train] [\FontAwesomeSymbol{f238}]
-% \definesymbol [transgender] [\FontAwesomeSymbol{f224}]
-% \definesymbol [transgender-alt] [\FontAwesomeSymbol{f225}]
-% \definesymbol [trash] [\FontAwesomeSymbol{f1f8}]
-% \definesymbol [trash-o] [\FontAwesomeSymbol{f014}]
-% \definesymbol [tree] [\FontAwesomeSymbol{f1bb}]
-% \definesymbol [trello] [\FontAwesomeSymbol{f181}]
-% \definesymbol [tripadvisor] [\FontAwesomeSymbol{f262}]
-% \definesymbol [trophy] [\FontAwesomeSymbol{f091}]
-% \definesymbol [truck] [\FontAwesomeSymbol{f0d1}]
-% \definesymbol [try] [\FontAwesomeSymbol{f195}]
-% \definesymbol [tty] [\FontAwesomeSymbol{f1e4}]
-% \definesymbol [tumblr] [\FontAwesomeSymbol{f173}]
-% \definesymbol [tumblr-square] [\FontAwesomeSymbol{f174}]
-% \definesymbol [turkish-lira] [\FontAwesomeSymbol{f195}]
-% \definesymbol [tv] [\FontAwesomeSymbol{f26c}]
-% \definesymbol [twitch] [\FontAwesomeSymbol{f1e8}]
-% \definesymbol [twitter] [\FontAwesomeSymbol{f099}]
-% \definesymbol [twitter-square] [\FontAwesomeSymbol{f081}]
-% \definesymbol [umbrella] [\FontAwesomeSymbol{f0e9}]
-% \definesymbol [underline] [\FontAwesomeSymbol{f0cd}]
-% \definesymbol [undo] [\FontAwesomeSymbol{f0e2}]
-% \definesymbol [universal-access] [\FontAwesomeSymbol{f29a}]
-% \definesymbol [university] [\FontAwesomeSymbol{f19c}]
-% \definesymbol [unlink] [\FontAwesomeSymbol{f127}]
-% \definesymbol [unlock] [\FontAwesomeSymbol{f09c}]
-% \definesymbol [unlock-alt] [\FontAwesomeSymbol{f13e}]
-% \definesymbol [unsorted] [\FontAwesomeSymbol{f0dc}]
-% \definesymbol [upload] [\FontAwesomeSymbol{f093}]
-% \definesymbol [usb] [\FontAwesomeSymbol{f287}]
-% \definesymbol [usd] [\FontAwesomeSymbol{f155}]
-% \definesymbol [user] [\FontAwesomeSymbol{f007}]
-% \definesymbol [user-md] [\FontAwesomeSymbol{f0f0}]
-% \definesymbol [user-plus] [\FontAwesomeSymbol{f234}]
-% \definesymbol [user-secret] [\FontAwesomeSymbol{f21b}]
-% \definesymbol [user-times] [\FontAwesomeSymbol{f235}]
-% \definesymbol [users] [\FontAwesomeSymbol{f0c0}]
-% \definesymbol [venus] [\FontAwesomeSymbol{f221}]
-% \definesymbol [venus-double] [\FontAwesomeSymbol{f226}]
-% \definesymbol [venus-mars] [\FontAwesomeSymbol{f228}]
-% \definesymbol [viacoin] [\FontAwesomeSymbol{f237}]
-% \definesymbol [viadeo] [\FontAwesomeSymbol{f2a9}]
-% \definesymbol [viadeo-square] [\FontAwesomeSymbol{f2aa}]
-% \definesymbol [video-camera] [\FontAwesomeSymbol{f03d}]
-% \definesymbol [vimeo] [\FontAwesomeSymbol{f27d}]
-% \definesymbol [vimeo-square] [\FontAwesomeSymbol{f194}]
-% \definesymbol [vine] [\FontAwesomeSymbol{f1ca}]
-% \definesymbol [vk] [\FontAwesomeSymbol{f189}]
-% \definesymbol [volume-control-phone] [\FontAwesomeSymbol{f2a0}]
-% \definesymbol [volume-down] [\FontAwesomeSymbol{f027}]
-% \definesymbol [volume-off] [\FontAwesomeSymbol{f026}]
-% \definesymbol [volume-up] [\FontAwesomeSymbol{f028}]
-% \definesymbol [warning] [\FontAwesomeSymbol{f071}]
-% \definesymbol [wechat] [\FontAwesomeSymbol{f1d7}]
-% \definesymbol [weibo] [\FontAwesomeSymbol{f18a}]
-% \definesymbol [weixin] [\FontAwesomeSymbol{f1d7}]
-% \definesymbol [whatsapp] [\FontAwesomeSymbol{f232}]
-% \definesymbol [wheelchair] [\FontAwesomeSymbol{f193}]
-% \definesymbol [wheelchair-alt] [\FontAwesomeSymbol{f29b}]
-% \definesymbol [wifi] [\FontAwesomeSymbol{f1eb}]
-% \definesymbol [wikipedia-w] [\FontAwesomeSymbol{f266}]
-% \definesymbol [windows] [\FontAwesomeSymbol{f17a}]
-% \definesymbol [won] [\FontAwesomeSymbol{f159}]
-% \definesymbol [wordpress] [\FontAwesomeSymbol{f19a}]
-% \definesymbol [wpbeginner] [\FontAwesomeSymbol{f297}]
-% \definesymbol [wpforms] [\FontAwesomeSymbol{f298}]
-% \definesymbol [wrench] [\FontAwesomeSymbol{f0ad}]
-% \definesymbol [xing] [\FontAwesomeSymbol{f168}]
-% \definesymbol [xing-square] [\FontAwesomeSymbol{f169}]
-% \definesymbol [y-combinator] [\FontAwesomeSymbol{f23b}]
-% \definesymbol [y-combinator-square] [\FontAwesomeSymbol{f1d4}]
-% \definesymbol [yahoo] [\FontAwesomeSymbol{f19e}]
-% \definesymbol [yc] [\FontAwesomeSymbol{f23b}]
-% \definesymbol [yc-square] [\FontAwesomeSymbol{f1d4}]
-% \definesymbol [yelp] [\FontAwesomeSymbol{f1e9}]
-% \definesymbol [yen] [\FontAwesomeSymbol{f157}]
-% \definesymbol [yoast] [\FontAwesomeSymbol{f2b1}]
-% \definesymbol [youtube] [\FontAwesomeSymbol{f167}]
-% \definesymbol [youtube-play] [\FontAwesomeSymbol{f16a}]
-% \definesymbol [youtube-square] [\FontAwesomeSymbol{f166}]
-
-\stopsymbolset
-
-\definefontsynonym [FontAwesomeBrands] [file:fontawesome5brandsregular400.otf]
-\definefontsynonym [FontAwesomeRegular] [file:fontawesome5freeregular400.otf]
-\definefontsynonym [FontAwesomeSolid] [file:fontawesome5freesolid900.otf]
-
-\startsymbolset [fontawesome-brands] [font=FontAwesomeBrands]
- % Font Awesome Brands
-\stopsymbolset
-
-\startsymbolset [fontawesome-regular] [font=FontAwesomeRegular]
- % Font Awesome Regular
-\stopsymbolset
-
-\startsymbolset [fontawesome-solid] [font=FontAwesomeSolid]
- % Font Awesome Solid
\stopsymbolset
\continueifinputfile{symb-imp-fontawesome.mkiv}
-\usemodule[article-basic]
+% \usesymbols[fontawesome]
\starttext
- % \usesymbols[fontawesome]
- %
- % \symbol[fontawesome][wheelchair]
- % \symbol[fontawesome][angle-right]
- % \symbol[fontawesome][angle right]
- % \symbol[fontawesome][angle_right]
-
- % \showsymbolset[fontawesome]
-
- \startnamedsection [title] [title={Font Awesome Brands}]
- \showsymbolset [fontawesome-brands]
- \stopnamedsection
-
- \startnamedsection [title] [title={Font Awesome Regular}]
- \showsymbolset [fontawesome-regular]
- \stopnamedsection
-
- \startnamedsection [title] [title={Font Awesome Solid}]
- \showsymbolset [fontawesome-solid]
- \stopnamedsection
+ \showsymbolset[fontawesome]
\stoptext
diff --git a/Master/texmf-dist/tex/context/base/mkiv/symb-imp-mis.mkiv b/Master/texmf-dist/tex/context/base/mkiv/symb-imp-mis.mkiv
index 2320ea59ae0..d2657512f3f 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/symb-imp-mis.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/symb-imp-mis.mkiv
@@ -21,36 +21,34 @@
\definesymbol [\v!none] []
-% \definesymbol [bullet] [\textmath\bullet]
-% \definesymbol [dash] [\textmath-]
-% \definesymbol [star] [\textmath\star]
-% \definesymbol [triangle] [\textmath\triangleright]
-% \definesymbol [circle] [\textmath\circ]
-% \definesymbol [square] [\textmath\square]
-% \definesymbol [diamond] [\textmath\diamond]
-% \definesymbol [asterisk] [\textmath\ast]
+\definesymbol [bullet] [\textmath\bullet]
+\definesymbol [dash] [\textmath-]
+\definesymbol [star] [\textmath\star]
+\definesymbol [triangle] [\textmath\triangleright]
+\definesymbol [circle] [\textmath\circ]
+\definesymbol [square] [\textmath\square]
+\definesymbol [diamond] [\textmath\diamond]
% I'm not sure about this ... I dislike the small bullet. So we provide
% it as variant: \type {\setupsymbolset[text]}. Also, we want to be
% backward compatible.
-% \startsymbolset[text]
+\startsymbolset[text]
\definesymbol [bullet] [\textormathchar{"2022}] % â€Ē \bullet
\definesymbol [dash] [\textormathchar{"2013}] % –
- \definesymbol [star] [\textormathchar{"22C6}] % ⋆ \star
+ \definesymbol [star] [\textormathchar{"22C6}] % âœī \star
\definesymbol [triangle] [\textormathchar{"22B3}] % âŠģ \triangleright
\definesymbol [circle] [\textormathchar{"2218}] % ∘ \circ
\definesymbol [square] [\textormathchar{"25A1}] % □ \square
\definesymbol [diamond] [\textormathchar{"22C4}] % ⋄ \diamond
\definesymbol [checkmark] [\textormathchar{"2713}] % ✓ \checkmark
- \definesymbol [asterisk] [\textormathchar{"2217}] % ∗ \asterisk
\definesymbol [blacktriangle] [\textormathchar{"25B6}] % â–ķ
\definesymbol [blacksquare] [\textormathchar{"25A0}] % ■
\definesymbol [blackdiamond] [\textormathchar{"25C6}] % ◆
-% \stopsymbolset
+\stopsymbolset
\definesymbol [smallcircle] [\hbox{\raise.1ex\hbox{\textmath{\scriptscriptstyle\bigcirc}}}]
\definesymbol [medcircle] [\hbox{\raise.1ex\hbox{\textmath{\scriptstyle \bigcirc}}}]
@@ -64,7 +62,6 @@
\definesymbol [6] [\symbol{medcircle}]
\definesymbol [7] [\symbol{bigcircle}]
\definesymbol [8] [\symbol{square}]
-\definesymbol [9] [\symbol{checkmark}]
\definesymbol [S] [\sectionmark]
\definesymbol [P] [\paragraphmark]
diff --git a/Master/texmf-dist/tex/context/base/mkiv/symb-imp-mvs.mkiv b/Master/texmf-dist/tex/context/base/mkiv/symb-imp-mvs.mkiv
index f6a38214f62..9902fc9e8a3 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/symb-imp-mvs.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/symb-imp-mvs.mkiv
@@ -254,16 +254,10 @@
\stopsymbolset
-\continueifinputfile{symb-imp-mvs.mkiv}
+%D \showsymbolset[astronomic]
+%D \showsymbolset[zodiac]
+%D \showsymbolset[europe]
+%D \showsymbolset[martinvogel 1]
+%D \showsymbolset[martinvogel 2]
-\usemodule[article-basic]
-
-\starttext
-
-\startsubject[title={Astronomic}] \showsymbolset[astronomic] \stopsubject
-\startsubject[title={Zodiac}] \showsymbolset[zodiac] \stopsubject
-\startsubject[title={Europe}] \showsymbolset[europe] \stopsubject
-\startsubject[title={Martinvogel 1}] \showsymbolset[martinvogel 1] \stopsubject
-\startsubject[title={Martinvogel 2}] \showsymbolset[martinvogel 2] \stopsubject
-
-\stoptext
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkiv/symb-ini.mkiv b/Master/texmf-dist/tex/context/base/mkiv/symb-ini.mkiv
index abf85767576..e4950e09d73 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/symb-ini.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/symb-ini.mkiv
@@ -45,7 +45,6 @@
\installcorenamespace{symbol}
\installcorenamespace{symbolset}
-\installcorenamespace{symboldefault}
\let\currentsymbol \empty
\let\currentsymbolset\empty
@@ -96,9 +95,8 @@
% Test test \symbol[whatever]\ test \symbol[whatever].
% Test test \symbol{whatever} test \symbol{whatever}.
-\unexpanded\def\symbol
- {\dontleavehmode % so we can start a paragraph with it
- \dodoubleempty\symb_place}
+\unexpanded\def\symbol % This one always gobbles spaces,
+ {\dodoubleempty\symb_place} % so never change it again!
\def\symb_place % so we also handle \symbol{name}
{\iffirstargument % which is nicer with following spaces
@@ -114,23 +112,13 @@
\expandafter\symb_place_normal_b
\fi}
-% \def\symb_place_normal_a[#1][#2]%
-% {\edef\currentsymbol{#2}%
-% \ifcsname\??symbol#1:#2\endcsname
-% \symb_place_indeed{#1:#2}%
-% \else
-% \symb_place_normal_c
-% \fi}
-
\def\symb_place_normal_a[#1][#2]%
{\edef\currentsymbol{#2}%
\ifcsname\??symbol#1:#2\endcsname
- \symb_place_indeed{#1:#2}% maybe use \lastnamescs
- \else\ifcsname\??symboldefault#1\endcsname
- \symb_place_named{#1}% maybe use \lastnamescs
+ \symb_place_indeed{#1:#2}%
\else
\symb_place_normal_c
- \fi\fi}
+ \fi}
\def\symb_place_normal_b[#1][#2]%
{\edef\currentsymbol{#1}%
@@ -172,47 +160,11 @@
\expandafter\symb_fetch_indeed
\fi}
-% \def\symb_fetch_indeed#1%
-% {\ifcsname\??symbol#1:\currentsymbol\endcsname
-% \symb_place_indeed{#1:\currentsymbol}%
-% \fi}
-
\def\symb_fetch_indeed#1%
{\ifcsname\??symbol#1:\currentsymbol\endcsname
\symb_place_indeed{#1:\currentsymbol}%
- \else\ifcsname\??symboldefault#1\endcsname
- \symb_place_named{#1}%
- \fi\fi}
-
-\def\symb_place_named#1% \relax's prevent lookahead problems
- {\begingroup
- \setbox\scratchbox\hbox\bgroup
- \the\everysymbol
- \getglyphstyled
- {\csname\??symboldefault#1\endcsname}%
- {\tochar{n:\currentsymbol}}%
- \relax
- \egroup
- \ifdim\wd\scratchbox>\zeropoint
- \unhbox\scratchbox
- \endgroup
- \setxvalue{\??symbol#1:\currentsymbol}%
- {\symb_place_named_indeed{#1}{\currentsymbol}}%
- \settrue\c_symb_found
- \else
- \endgroup
\fi}
-\unexpanded\def\symb_place_named_indeed#1#2% \relax's prevent lookahead problems
- {\settrue\c_symb_found
- \begingroup
- \the\everysymbol
- \getglyphstyled
- {\csname\??symboldefault#1\endcsname}%
- {\tochar{n:#2}}%
- \relax
- \endgroup}
-
\def\symb_place_retry#1%
{\ifcsname\??symbol:#1\endcsname
\symb_place_indeed{:#1}%
@@ -321,25 +273,9 @@
\installcorenamespace{symbolsets}
-% \unexpanded\def\startsymbolset[#1]%
-% {\pushmacro\m_symb_current_set
-% \def\m_symb_current_set{#1}}
-
-% maybe a parameterhandler:
-
-\unexpanded\def\startsymbolset
- {\dodoubleargument\symb_start_set}
-
-\def\symb_start_set[#1][#2]%
+\unexpanded\def\startsymbolset[#1]%
{\pushmacro\m_symb_current_set
- \def\m_symb_current_set{#1}%
- \ifsecondargument
- \getdummyparameters[\s!font=,#2]%
- \edef\p_font{\dummyparameter\s!font}%
- \ifx\p_font\empty\else
- \letvalue{\??symboldefault#1}\p_font
- \fi
- \fi}
+ \def\m_symb_current_set{#1}}
\unexpanded\def\stopsymbolset
{\popmacro\m_symb_current_set}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/symb-run.mkiv b/Master/texmf-dist/tex/context/base/mkiv/symb-run.mkiv
index c25d13d48bf..ed4d90861ec 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/symb-run.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/symb-run.mkiv
@@ -12,55 +12,23 @@
%C details.
\startluacode
- function commands.showsymbolset(collection,symbols,fontid)
+ function commands.showsymbolset(collection,symbols)
if type(symbols) == "string" then
symbols = utilities.parsers.settings_to_array(symbols)
end
- local options = { framecolor = "orange", rulethickness = ".8pt", offset = interfaces.variables.overlay }
- local list = table.tohash(symbols)
- local alsofont = fontid > 0
- local defined = #symbols > 0
- local byname = false
- if alsofont then
- local is_symbol = characters.is_symbol
- local chardata = characters.data
- local resources = fonts.hashes.resources [fontid]
- local characters = fonts.hashes.characters[fontid]
- if resources and characters then
- local unicodes = resources.unicodes
- if unicodes then
- for name, unicode in next, unicodes do
- if not list[name] and name ~= ".notdef" then
- local c = rawget(chardata,unicode)
- if not c or is_symbol[c.category] then
- list[name] = false
- byname = true
- end
- end
- end
- end
- end
- end
- local detail = defined and byname
context.start()
context.forcesymbolset { collection }
- context.starttabulate { detail and "|lT|l|l|lT|" or "|lT|l|l|"}
- for symbol, how in table.sortedhash(list) do
+ context.starttabulate { "|lT|l|l|" }
+ local options = { framecolor = "orange", rulethickness = ".8pt", offset = interfaces.variables.overlay }
+ for i=1,#symbols do
+ local symbol = symbols[i]
context.NC()
- if detail and how then
- context.bold(symbol)
- else
- context(symbol)
- end
+ context(symbol)
context.NC()
context.symbol(symbol)
context.NC()
context.framed(options,context.nested.symbol(symbol))
context.NC()
- if detail and how then
- context.bold("defined")
- context.NC()
- end
context.NR()
end
context.stoptabulate()
@@ -74,23 +42,7 @@
{\dosingleargument\symb_show_set}
\gdef\symb_show_set[#1]%
- {\begingroup
- \edef\p_font{\begincsname\??symboldefault#1\endcsname}%
- \begingroup
- \ifx\p_font\empty
- \global\globalscratchcounter\zerocount
- \else
- \definedfont[\p_font]%
- \global\globalscratchcounter\fontid\font\relax
- \fi
- \endgroup
- \ctxcommand {
- showsymbolset (
- "#1",
- "\symbolset{#1}",
- \the\globalscratchcounter
- ) }%
- \endgroup}
+ {\ctxcommand{showsymbolset("#1","\symbolset{#1}")}}
\protect
diff --git a/Master/texmf-dist/tex/context/base/mkiv/syst-aux.lua b/Master/texmf-dist/tex/context/base/mkiv/syst-aux.lua
index 9b0ca82c430..f9d8505f1d4 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/syst-aux.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/syst-aux.lua
@@ -323,47 +323,9 @@ end
implement { name = "texdefinition_one", actions = texdefinition_one, scope = "private", arguments = "string" }
implement { name = "texdefinition_two", actions = texdefinition_two, scope = "private" }
-do
-
- -- Quite probably we don't yet have characters loaded so we delay some
- -- aliases.
-
- local _lower_, _upper_, _strip_
-
- _lower_ = function(s)
- if characters and characters.lower then
- _lower_ = characters.lower
- return _lower_(s)
- end
- return string.lower(s)
- end
-
- _upper_ = function(s)
- if characters and characters.upper then
- _upper_ = characters.upper
- return _upper_(s)
- end
- return string.upper(s)
- end
-
- _strip_ = function(s)
- -- or utf.strip
- if string.strip then
- _strip_ = string.strip
- return _strip_(s)
- end
- return s
- end
-
- local function lower(s) context(_lower_(s)) end
- local function upper(s) context(_upper_(s)) end
- local function strip(s) context(_strip_(s)) end
-
- implement { name = "upper", arguments = "string", actions = upper }
- implement { name = "lower", arguments = "string", actions = lower }
- implement { name = "strip", arguments = "string", actions = strip }
-
-end
+implement { name = "upper", arguments = "string", actions = { utf.upper, context } }
+implement { name = "lower", arguments = "string", actions = { utf.lower, context } }
+implement { name = "strip", arguments = "string", actions = { string.strip, context } } -- or utf.strip
implement {
name = "converteddimen",
@@ -411,17 +373,10 @@ implement {
-- not faster but just less tracing:
-local ctx_protected_cs = context.protected.cs -- more efficient
-
-local ctx_firstoftwoarguments = ctx_protected_cs.firstoftwoarguments
-local ctx_secondoftwoarguments = ctx_protected_cs.secondoftwoarguments
-local ctx_firstofoneargument = ctx_protected_cs.firstofoneargument
-local ctx_gobbleoneargument = ctx_protected_cs.gobbleoneargument
-
-context.firstoftwoarguments = ctx_firstoftwoarguments
-context.secondoftwoarguments = ctx_secondoftwoarguments
-context.firstofoneargument = ctx_firstofoneargument
-context.gobbleoneargument = ctx_gobbleoneargument
+local firstoftwoarguments = context.firstoftwoarguments
+local secondoftwoarguments = context.secondoftwoarguments
+local firstofoneargument = context.firstofoneargument
+local gobbleoneargument = context.gobbleoneargument
local hash = utilities.parsers.hashes.settings_to_set
@@ -429,9 +384,9 @@ local function doifelsecommon(a,b)
if a == b then
setmacro("commalistelement",a)
if a == "" then
- ctx_secondoftwoarguments()
+ secondoftwoarguments()
else
- ctx_firstoftwoarguments()
+ firstoftwoarguments()
end
return
end
@@ -445,7 +400,7 @@ local function doifelsecommon(a,b)
for k in next, ha do
if hb[k] then
setmacro("commalistelement",k)
- ctx_firstoftwoarguments()
+ firstoftwoarguments()
return
end
end
@@ -453,28 +408,28 @@ local function doifelsecommon(a,b)
if hash[a][b] then
-- if settings_to_set(a)[b] then
setmacro("commalistelement",b)
- ctx_firstoftwoarguments()
+ firstoftwoarguments()
return
end
elseif bb then
if hash[b][a] then
-- if settings_to_set(b)[a] then
setmacro("commalistelement",a)
- ctx_firstoftwoarguments()
+ firstoftwoarguments()
return
end
end
setmacro("commalistelement","")
- ctx_secondoftwoarguments()
+ secondoftwoarguments()
end
local function doifcommon(a,b)
if a == b then
setmacro("commalistelement",a)
if a == "" then
- ctx_gobbleoneargument()
+ gobbleoneargument()
else
- ctx_firstofoneargument()
+ firstofoneargument()
end
return
end
@@ -488,7 +443,7 @@ local function doifcommon(a,b)
for k in next, ha do
if hb[k] then
setmacro("commalistelement",k)
- ctx_firstofoneargument()
+ firstofoneargument()
return
end
end
@@ -496,28 +451,28 @@ local function doifcommon(a,b)
if hash[a][b] then
-- if settings_to_set(a)[b] then
setmacro("commalistelement",b)
- ctx_firstofoneargument()
+ firstofoneargument()
return
end
elseif bb then
if hash[b][a] then
-- if settings_to_set(b)[a] then
setmacro("commalistelement",a)
- ctx_firstofoneargument()
+ firstofoneargument()
return
end
end
setmacro("commalistelement","")
- ctx_gobbleoneargument()
+ gobbleoneargument()
end
local function doifnotcommon(a,b)
if a == b then
setmacro("commalistelement",a)
if a == "" then
- ctx_firstofoneargument()
+ firstofoneargument()
else
- ctx_gobbleoneargument()
+ gobbleoneargument()
end
return
end
@@ -531,7 +486,7 @@ local function doifnotcommon(a,b)
for k in next, ha do
if hb[k] then
setmacro("commalistelement",k)
- ctx_gobbleoneargument()
+ gobbleoneargument()
return
end
end
@@ -539,28 +494,28 @@ local function doifnotcommon(a,b)
if hash[a][b] then
-- if settings_to_set(a)[b] then
setmacro("commalistelement",b)
- ctx_gobbleoneargument()
+ gobbleoneargument()
return
end
elseif bb then
if hash[b][a] then
-- if settings_to_set(b)[a] then
setmacro("commalistelement",a)
- ctx_gobbleoneargument()
+ gobbleoneargument()
return
end
end
setmacro("commalistelement","")
- ctx_firstofoneargument()
+ firstofoneargument()
end
local function doifelseinset(a,b)
if a == b then
setmacro("commalistelement",a)
if a == "" then
- ctx_secondoftwoarguments()
+ secondoftwoarguments()
else
- ctx_firstoftwoarguments()
+ firstoftwoarguments()
end
return
end
@@ -569,21 +524,21 @@ local function doifelseinset(a,b)
if hash[b][a] then
-- if settings_to_set(b)[a] then
setmacro("commalistelement",a)
- ctx_firstoftwoarguments()
+ firstoftwoarguments()
return
end
end
setmacro("commalistelement","")
- ctx_secondoftwoarguments()
+ secondoftwoarguments()
end
local function doifinset(a,b)
if a == b then
setmacro("commalistelement",a)
if a == "" then
- ctx_gobbleoneargument()
+ gobbleoneargument()
else
- ctx_firstofoneargument()
+ firstofoneargument()
end
return
end
@@ -592,21 +547,21 @@ local function doifinset(a,b)
if hash[b][a] then
-- if settings_to_set(b)[a] then
setmacro("commalistelement",a)
- ctx_firstofoneargument()
+ firstofoneargument()
return
end
end
setmacro("commalistelement","")
- ctx_gobbleoneargument()
+ gobbleoneargument()
end
local function doifnotinset(a,b)
if a == b then
setmacro("commalistelement",a)
if a == "" then
- ctx_firstofoneargument()
+ firstofoneargument()
else
- ctx_gobbleoneargument()
+ gobbleoneargument()
end
return
end
@@ -615,12 +570,12 @@ local function doifnotinset(a,b)
if hash[b][a] then
-- if settings_to_set(b)[a] then
setmacro("commalistelement",a)
- ctx_gobbleoneargument()
+ gobbleoneargument()
return
end
end
setmacro("commalistelement","")
- ctx_firstofoneargument()
+ firstofoneargument()
end
implement {
@@ -659,20 +614,6 @@ implement {
arguments = "2 strings",
}
--- done elsewhere:
---
--- local function firstinset(a)
--- local aa = hash[a]
--- context(aa and aa[1] or a)
--- end
---
--- implement {
--- name = "firstinset",
--- actions = firstinset,
--- arguments = "string",
--- private = false,
--- }
-
-- implement {
-- name = "stringcompare",
-- arguments = "2 strings",
diff --git a/Master/texmf-dist/tex/context/base/mkiv/syst-aux.mkiv b/Master/texmf-dist/tex/context/base/mkiv/syst-aux.mkiv
index 3004c08b805..77f947753ec 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/syst-aux.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/syst-aux.mkiv
@@ -181,9 +181,12 @@
%D These are not needed any more now that we have wide screens (and bytes come
%D cheap).
-\let\@EA \singleexpandafter % obsolete
-\let\@EAEAEA \doubleexpandafter % obsolete
-\let\@EAEAEAEAEAEA\tripleexpandafter % obsolete
+\let\@EA \singleexpandafter
+\let\@EAEAEA \doubleexpandafter
+\let\@EAEAEAEAEAEA\tripleexpandafter
+
+\let\@NX \noexpand
+\def\@EAEA {\expandafter\expandafter} % can often be avoided
%D Sometimes we pass macros as arguments to commands that don't expand them
%D before interpretation. Such commands can be enclosed with \type {\expanded},
@@ -342,18 +345,6 @@
\let\doifnextoptionalelse \doifelsenextoptional
\let\doifnextoptionalcselse\doifelsenextoptionalcs
-% fails on assignments
-%
-% \unexpanded\def\doifelsenextoptional {\afterassignment\doifelsenextoptional_n \def\m_syst_action_yes}
-% \def\doifelsenextoptional_n {\afterassignment\doifelsenextoptional_n_n\def\m_syst_action_nop}
-% \def\doifelsenextoptional_n_n {\let\if_next_blank_space_token\iffalse
-% \futurelet\nexttoken\syst_helpers_inspect_next_optional_character}
-%
-% \unexpanded\def\doifelsenextoptionalcs {\afterassignment\doifelsenextoptionalcs_n \let\m_syst_action_yes}
-% \def\doifelsenextoptionalcs_n {\afterassignment\doifelsenextoptionalcs_n_n\let\m_syst_action_nop}
-% \def\doifelsenextoptionalcs_n_n{\let\if_next_blank_space_token\iffalse
-% \futurelet\nexttoken\syst_helpers_inspect_next_optional_character}
-
\def\syst_helpers_inspect_next_optional_character
{\ifx\nexttoken\blankspace
\expandafter\syst_helpers_reinspect_next_optional_character
@@ -500,6 +491,8 @@
%D \type {\def} comes into action. This way the space after \type {\:} becomes a
%D delimiter of the longer named \type {\reinspectnextcharacter}.
+% try: \expandafter\def\firstofoneargument{\syst_helpers_reinspect_next_character} {...}
+
\let\next\:
\def\:{\let\blankspace= } \:
@@ -521,31 +514,6 @@
\let\:\next
-%D This is much nicer and works too:
-
-% \def\firstofoneargument#1{#1}
-%
-% \expandafter\let\firstofoneargument{\blankspace= }
-%
-% \expandafter\def\firstofoneargument{\syst_helpers_reinspect_next_character
-% } {\let\if_next_blank_space_token\iftrue
-% \futurelet\nexttoken\syst_helpers_inspect_next_character}
-%
-% \expandafter\def\firstofoneargument{\syst_helpers_reinspect_next_optional_character
-% } {\let\if_next_blank_space_token\iftrue
-% \futurelet\nexttoken\syst_helpers_inspect_next_optional_character}
-%
-% \expandafter\def\firstofoneargument{\syst_helpers_reinspect_next_bgroup_character
-% } {\let\if_next_blank_space_token\iftrue
-% \futurelet\nexttoken\syst_helpers_inspect_next_bgroup_character}
-%
-% \expandafter\def\firstofoneargument{\syst_helpers_reinspect_next_parenthesis_character
-% } {\let\if_next_blank_space_token\iftrue
-% \futurelet\nexttoken\syst_helpers_inspect_next_parenthesis_character}
-%
-% \expandafter\def\firstofoneargument{\syst_helpers_ignore_spacing_blankspace
-% } {\futurelet\nexttoken\syst_helpers_ignore_spacing}
-
%D \macros
%D {setvalue,setgvalue,setevalue,setxvalue,
%D letvalue,letgvalue,getvalue,resetvalue,
@@ -561,7 +529,7 @@
%D \setevalue {name}{...} = \edef\name{...}
%D \setxvalue {name}{...} = \xdef\name{...}
%D \letvalue {name}=\... = \let\name=\...
-%D \letgvalue {name}=\... = \glet\name=\...
+%D \letgvalue {name}=\... = \global\let\name=\...
%D \getvalue {name} = \name
%D \resetvalue {name} = \def\name{}
%D \stoptyping
@@ -569,16 +537,16 @@
%D As we will see, \CONTEXT\ uses these commands many times, which is mainly due to
%D its object oriented and parameter driven character.
-\def\setvalue #1{\expandafter\def \csname#1\endcsname}
+\def\setvalue #1{\expandafter \def\csname#1\endcsname}
\def\setgvalue #1{\expandafter\gdef\csname#1\endcsname}
\def\setevalue #1{\expandafter\edef\csname#1\endcsname}
\def\setxvalue #1{\expandafter\xdef\csname#1\endcsname}
-\def\getvalue #1{\csname#1\endcsname} % maybe: \begincsname#1\endcsname
-\def\letvalue #1{\expandafter\let \csname#1\endcsname}
-\def\letgvalue #1{\expandafter\glet\csname#1\endcsname}
-\def\resetvalue #1{\expandafter\let \csname#1\endcsname\empty}
-\def\undefinevalue#1{\expandafter\let \csname#1\endcsname\undefined}
-\def\ignorevalue#1#2{\expandafter\let \csname#1\endcsname\empty}
+\def\getvalue #1{\csname#1\endcsname}
+\def\letvalue #1{\expandafter\let\csname#1\endcsname}
+\def\letgvalue #1{\global\expandafter\let\csname#1\endcsname}
+\def\resetvalue #1{\expandafter\let\csname#1\endcsname\empty}
+\def\undefinevalue#1{\expandafter\let\csname#1\endcsname\undefined}
+\def\ignorevalue#1#2{\expandafter\let\csname#1\endcsname\empty}
\def\setuvalue #1{\normalprotected\expandafter \def\csname#1\endcsname}
\def\setuevalue #1{\normalprotected\expandafter\edef\csname#1\endcsname}
@@ -594,7 +562,7 @@
%D tokens will save us some $300\times4=1200$ bytes of format file on a 32~bit
%D system. Not that it matters much today. This shortcut is already defined:
-\let\globallet\glet
+\unexpanded\def\glet{\global\let} \let\globallet\glet
%D \macros
%D {doifundefined,doifdefined,
@@ -667,7 +635,7 @@
{\ifcsname#1\endcsname\expandafter\let\csname#1\endcsname\undefined\fi}
\def\globalundefine#1% conditional
- {\ifcsname#1\endcsname\expandafter\glet\csname#1\endcsname\undefined\fi}
+ {\ifcsname#1\endcsname\expandafter\global\let\csname#1\endcsname\undefined\fi}
%D Beware, being \type {\undefined} in \ETEX\ means that the macro {\em is} defined!
%D
@@ -737,23 +705,6 @@
\expandafter\secondoftwoarguments
\fi}
-%D Slightly faster on longer arguments (0.179 downto 0.141):
-%D
-%D \testfeatureonce{100000}{\doifelse{aaaaaaaaaaaaaaa}{bbbbbbbbbbbbbbb}\relax\relax}
-
-% \unexpanded\def\doifelse
-% {\afterassignment\doifelse_n\edef\m_syst_string_one}
-%
-% \unexpanded\def\doifelse_n
-% {\afterassignment\doifelse_n_n\edef\m_syst_string_two}
-%
-% \unexpanded\def\doifelse_n_n
-% {\ifx\m_syst_string_one\m_syst_string_two
-% \expandafter\firstoftwoarguments
-% \else
-% \expandafter\secondoftwoarguments
-% \fi}
-
%D \macros
%D {doifempty,doifemptyelse,doifnotempty}
%D
@@ -961,7 +912,6 @@
\unexpanded\def\doifelseinset#1#2{\clf_doifelseinset{#1}{#2}}
\unexpanded\def\doifinset #1#2{\clf_doifinset {#1}{#2}}
\unexpanded\def\doifnotinset #1#2{\clf_doifnotinset {#1}{#2}}
- % \let\firstinset \clf_firstinset
\let\doifinsetelse\doifelseinset
@@ -1398,7 +1348,7 @@
%D
%D Sometimes the action to be undertaken depends on the
%D next character. This macro get this character and puts it in
-%D \type {\firstcharacter}.
+%D \type{\firstcharacter}.
%D
%D \starttyping
%D \getfirstcharacter {string}
@@ -2293,517 +2243,202 @@
% \dotripleempty\test[] xxx\par
% \dotripleempty\test xxx\par
-%D Common:
-
-\newtoks\t_syst_aux
-
-% \def\syst_helpers_empty_spaced_six {\expandafter\m_syst_aux_do\the\t_syst_aux[][][][][][] }
-% \def\syst_helpers_empty_normal_six {\expandafter\m_syst_aux_do\the\t_syst_aux[][][][][][]}
-% \def\syst_helpers_empty_spaced_five {\expandafter\m_syst_aux_do\the\t_syst_aux[][][][][] }
-% \def\syst_helpers_empty_normal_five {\expandafter\m_syst_aux_do\the\t_syst_aux[][][][][]}
-% \def\syst_helpers_empty_spaced_four {\expandafter\m_syst_aux_do\the\t_syst_aux[][][][] }
-% \def\syst_helpers_empty_normal_four {\expandafter\m_syst_aux_do\the\t_syst_aux[][][][]}
-% \def\syst_helpers_empty_spaced_three{\expandafter\m_syst_aux_do\the\t_syst_aux[][][] }
-% \def\syst_helpers_empty_normal_three{\expandafter\m_syst_aux_do\the\t_syst_aux[][][]}
-% \def\syst_helpers_empty_spaced_two {\expandafter\m_syst_aux_do\the\t_syst_aux[][] }
-% \def\syst_helpers_empty_normal_two {\expandafter\m_syst_aux_do\the\t_syst_aux[][]}
-% \def\syst_helpers_empty_spaced_one {\expandafter\m_syst_aux_do\the\t_syst_aux[] }
-% \def\syst_helpers_empty_normal_one {\expandafter\m_syst_aux_do\the\t_syst_aux[]}
-%
-% \def\syst_helpers_single_empty_one_yes {\firstargumenttrue \m_syst_aux_do}
-% \def\syst_helpers_double_empty_two_yes {\secondargumenttrue \expandafter\m_syst_aux_do\the\t_syst_aux}
-% \def\syst_helpers_triple_empty_three_yes {\thirdargumenttrue \expandafter\m_syst_aux_do\the\t_syst_aux}
-% \def\syst_helpers_quadruple_empty_four_yes {\fourthargumenttrue \expandafter\m_syst_aux_do\the\t_syst_aux}
-% \def\syst_helpers_quintuple_empty_five_yes {\fifthargumenttrue \expandafter\m_syst_aux_do\the\t_syst_aux}
-% \def\syst_helpers_sixtuple_empty_six_yes {\sixthargumenttrue \expandafter\m_syst_aux_do\the\t_syst_aux}
-% \def\syst_helpers_seventuple_empty_seven_yes{\seventhargumenttrue\expandafter\m_syst_aux_do\the\t_syst_aux}
-%
-% with
-%
-% \unexpanded\def\dodoubleempty#1%
-% {\syst_helpers_argument_reset
-% \let\m_syst_aux_do#1% alias
-% \let\m_syst_action_yes\syst_helpers_double_empty_one_yes
-% \let\m_syst_action_nop\syst_helpers_double_empty_one_nop
-% \let\if_next_blank_space_token\iffalse
-% \futurelet\nexttoken\syst_helpers_inspect_next_optional_character}
-%
-% \def\syst_helpers_double_empty_one_yes[#1]%
-% {\firstargumenttrue
-% \t_syst_aux{[{#1}]}% assignment
-% \let\m_syst_action_yes\syst_helpers_double_empty_two_yes
-% \let\m_syst_action_nop\syst_helpers_double_empty_two_nop
-% \let\if_next_blank_space_token\iffalse
-% \futurelet\nexttoken\syst_helpers_inspect_next_optional_character}
-%
-% But we use this as it keeps the original name visible:
-
-\def\syst_helpers_empty_spaced_six {\the\t_syst_aux[][][][][][] }
-\def\syst_helpers_empty_normal_six {\the\t_syst_aux[][][][][][]}
-\def\syst_helpers_empty_spaced_five {\the\t_syst_aux[][][][][] }
-\def\syst_helpers_empty_normal_five {\the\t_syst_aux[][][][][]}
-\def\syst_helpers_empty_spaced_four {\the\t_syst_aux[][][][] }
-\def\syst_helpers_empty_normal_four {\the\t_syst_aux[][][][]}
-\def\syst_helpers_empty_spaced_three{\the\t_syst_aux[][][] }
-\def\syst_helpers_empty_normal_three{\the\t_syst_aux[][][]}
-\def\syst_helpers_empty_spaced_two {\the\t_syst_aux[][] }
-\def\syst_helpers_empty_normal_two {\the\t_syst_aux[][]}
-\def\syst_helpers_empty_spaced_one {\the\t_syst_aux[] }
-\def\syst_helpers_empty_normal_one {\the\t_syst_aux[]}
-
-\def\syst_helpers_single_empty_one_yes {\firstargumenttrue \the\t_syst_aux}
-\def\syst_helpers_double_empty_two_yes {\secondargumenttrue \the\t_syst_aux}
-\def\syst_helpers_triple_empty_three_yes {\thirdargumenttrue \the\t_syst_aux}
-\def\syst_helpers_quadruple_empty_four_yes {\fourthargumenttrue \the\t_syst_aux}
-\def\syst_helpers_quintuple_empty_five_yes {\fifthargumenttrue \the\t_syst_aux}
-\def\syst_helpers_sixtuple_empty_six_yes {\sixthargumenttrue \the\t_syst_aux}
-\def\syst_helpers_seventuple_empty_seven_yes{\seventhargumenttrue\the\t_syst_aux}
-
%D Single:
-% \unexpanded\def\dosingleempty#1%
-% {\syst_helpers_argument_reset
-% \doifelsenextoptional
-% {\firstargumenttrue#1}%
-% {\syst_helpers_single_empty_one_nop#1}}
-%
-% \def\syst_helpers_single_empty_one_nop#1%
-% {\firstargumentfalse
-% #1[]}
-
\unexpanded\def\dosingleempty#1%
{\syst_helpers_argument_reset
- \t_syst_aux{#1}%
- \let\m_syst_action_yes\syst_helpers_single_empty_one_yes
- \let\m_syst_action_nop\syst_helpers_single_empty_one_nop
- \let\if_next_blank_space_token\iffalse
- \futurelet\nexttoken\syst_helpers_inspect_next_optional_character}
+ \doifelsenextoptional
+ {\firstargumenttrue#1}%
+ {\syst_helpers_single_empty_one_nop#1}}
-\def\syst_helpers_single_empty_one_nop
+\def\syst_helpers_single_empty_one_nop#1%
{\firstargumentfalse
- \the\t_syst_aux[]}
+ #1[]}
%D Double
-% \unexpanded\def\dodoubleempty#1%
-% {\syst_helpers_argument_reset
-% \doifelsenextoptional
-% {\syst_helpers_double_empty_one_yes#1}%
-% {\syst_helpers_double_empty_one_nop#1}}
-%
-% \def\syst_helpers_double_empty_one_yes#1[#2]%
-% {\firstargumenttrue
-% \doifelsenextoptional
-% {\secondargumenttrue#1[{#2}]}%
-% {\syst_helpers_double_empty_two_nop#1{#2}}}
-%
-% \def\syst_helpers_double_empty_one_nop#1%
-% {\firstargumentfalse
-% \secondargumentfalse
-% #1[][]}
-%
-% \def\syst_helpers_double_empty_two_nop
-% {\secondargumentfalse
-% \if_next_blank_space_token
-% \expandafter\syst_helpers_double_empty_one_spaced
-% \else
-% \expandafter\syst_helpers_double_empty_one_normal
-% \fi}
-%
-% \def\syst_helpers_double_empty_one_spaced#1#2{#1[{#2}][] }
-% \def\syst_helpers_double_empty_one_normal#1#2{#1[{#2}][]}
-
\unexpanded\def\dodoubleempty#1%
{\syst_helpers_argument_reset
- \t_syst_aux{#1}%
- \let\m_syst_action_yes\syst_helpers_double_empty_one_yes
- \let\m_syst_action_nop\syst_helpers_double_empty_one_nop
- \let\if_next_blank_space_token\iffalse
- \futurelet\nexttoken\syst_helpers_inspect_next_optional_character}
+ \doifelsenextoptional
+ {\syst_helpers_double_empty_one_yes#1}%
+ {\syst_helpers_double_empty_one_nop#1}}
-\def\syst_helpers_double_empty_one_yes[#1]%
+\def\syst_helpers_double_empty_one_yes#1[#2]%
{\firstargumenttrue
- \toksapp\t_syst_aux{[{#1}]}%
- \let\m_syst_action_yes\syst_helpers_double_empty_two_yes
- \let\m_syst_action_nop\syst_helpers_double_empty_two_nop
- \let\if_next_blank_space_token\iffalse
- \futurelet\nexttoken\syst_helpers_inspect_next_optional_character}
+ \doifelsenextoptional
+ {\secondargumenttrue#1[{#2}]}%
+ {\syst_helpers_double_empty_two_nop#1{#2}}}
-\def\syst_helpers_double_empty_one_nop
+\def\syst_helpers_double_empty_one_nop#1%
{\firstargumentfalse
\secondargumentfalse
- \the\t_syst_aux[][]}
+ #1[][]}
\def\syst_helpers_double_empty_two_nop
{\secondargumentfalse
\if_next_blank_space_token
- \expandafter\syst_helpers_empty_spaced_one
+ \expandafter\syst_helpers_double_empty_one_spaced
\else
- \expandafter\syst_helpers_empty_normal_one
+ \expandafter\syst_helpers_double_empty_one_normal
\fi}
-% Triple
+\def\syst_helpers_double_empty_one_spaced#1#2{#1[{#2}][] }
+\def\syst_helpers_double_empty_one_normal#1#2{#1[{#2}][]}
-% \unexpanded\def\dotripleempty#1%
-% {\syst_helpers_argument_reset
-% \doifelsenextoptional
-% {\syst_helpers_triple_empty_one_yes#1}%
-% {\syst_helpers_triple_empty_one_nop#1}}
-%
-% \def\syst_helpers_triple_empty_one_yes#1[#2]%
-% {\firstargumenttrue
-% \doifelsenextoptional
-% {\syst_helpers_triple_empty_two_yes#1{#2}}%
-% {\syst_helpers_triple_empty_two_nop#1{#2}}}
-%
-% \def\syst_helpers_triple_empty_two_yes#1#2[#3]%
-% {\secondargumenttrue
-% \doifelsenextoptional
-% {\thirdargumenttrue#1[{#2}][{#3}]}%
-% {\syst_helpers_triple_empty_three_nop#1{#2}{#3}}}
-%
-% \def\syst_helpers_triple_empty_one_nop#1%
-% {\firstargumentfalse
-% \secondargumentfalse
-% \thirdargumentfalse
-% #1[][][]}
-%
-% \def\syst_helpers_triple_empty_two_nop
-% {\secondargumentfalse
-% \thirdargumentfalse
-% \if_next_blank_space_token
-% \expandafter\syst_helpers_triple_empty_two_spaced
-% \else
-% \expandafter\syst_helpers_triple_empty_two_normal
-% \fi}
-%
-% \def\syst_helpers_triple_empty_three_nop
-% {\thirdargumentfalse
-% \if_next_blank_space_token
-% \expandafter\syst_helpers_triple_empty_three_spaced
-% \else
-% \expandafter\syst_helpers_triple_empty_three_normal
-% \fi}
-%
-% \def\syst_helpers_triple_empty_two_spaced #1#2{#1[{#2}][][] }
-% \def\syst_helpers_triple_empty_two_normal #1#2{#1[{#2}][][]}
-% \def\syst_helpers_triple_empty_three_spaced#1#2#3{#1[{#2}][{#3}][] }
-% \def\syst_helpers_triple_empty_three_normal#1#2#3{#1[{#2}][{#3}][]}
+% Three
\unexpanded\def\dotripleempty#1%
{\syst_helpers_argument_reset
- \t_syst_aux{#1}%
- \let\m_syst_action_yes\syst_helpers_triple_empty_one_yes
- \let\m_syst_action_nop\syst_helpers_triple_empty_one_nop
- \let\if_next_blank_space_token\iffalse
- \futurelet\nexttoken\syst_helpers_inspect_next_optional_character}
+ \doifelsenextoptional
+ {\syst_helpers_triple_empty_one_yes#1}%
+ {\syst_helpers_triple_empty_one_nop#1}}
-\def\syst_helpers_triple_empty_one_yes[#1]%
+\def\syst_helpers_triple_empty_one_yes#1[#2]%
{\firstargumenttrue
- \toksapp\t_syst_aux{[{#1}]}%
- \let\m_syst_action_yes\syst_helpers_triple_empty_two_yes
- \let\m_syst_action_nop\syst_helpers_triple_empty_two_nop
- \let\if_next_blank_space_token\iffalse
- \futurelet\nexttoken\syst_helpers_inspect_next_optional_character}
+ \doifelsenextoptional
+ {\syst_helpers_triple_empty_two_yes#1{#2}}%
+ {\syst_helpers_triple_empty_two_nop#1{#2}}}
-\def\syst_helpers_triple_empty_two_yes[#1]%
+\def\syst_helpers_triple_empty_two_yes#1#2[#3]%
{\secondargumenttrue
- \toksapp\t_syst_aux{[{#1}]}%
- \let\m_syst_action_yes\syst_helpers_triple_empty_three_yes
- \let\m_syst_action_nop\syst_helpers_triple_empty_three_nop
- \let\if_next_blank_space_token\iffalse
- \futurelet\nexttoken\syst_helpers_inspect_next_optional_character}
+ \doifelsenextoptional
+ {\thirdargumenttrue#1[{#2}][{#3}]}%
+ {\syst_helpers_triple_empty_three_nop#1{#2}{#3}}}
-\def\syst_helpers_triple_empty_one_nop
+\def\syst_helpers_triple_empty_one_nop#1%
{\firstargumentfalse
\secondargumentfalse
\thirdargumentfalse
- \the\t_syst_aux[][][]}
+ #1[][][]}
\def\syst_helpers_triple_empty_two_nop
{\secondargumentfalse
\thirdargumentfalse
\if_next_blank_space_token
- \expandafter\syst_helpers_empty_spaced_two
+ \expandafter\syst_helpers_triple_empty_two_spaced
\else
- \expandafter\syst_helpers_empty_normal_two
+ \expandafter\syst_helpers_triple_empty_two_normal
\fi}
\def\syst_helpers_triple_empty_three_nop
{\thirdargumentfalse
\if_next_blank_space_token
- \expandafter\syst_helpers_empty_spaced_one
+ \expandafter\syst_helpers_triple_empty_three_spaced
\else
- \expandafter\syst_helpers_empty_normal_one
+ \expandafter\syst_helpers_triple_empty_three_normal
\fi}
-%D Quadruple:
+\def\syst_helpers_triple_empty_two_spaced #1#2{#1[{#2}][][] }
+\def\syst_helpers_triple_empty_two_normal #1#2{#1[{#2}][][]}
+\def\syst_helpers_triple_empty_three_spaced#1#2#3{#1[{#2}][{#3}][] }
+\def\syst_helpers_triple_empty_three_normal#1#2#3{#1[{#2}][{#3}][]}
-% \unexpanded\def\doquadrupleempty#1%
-% {\syst_helpers_argument_reset
-% \doifelsenextoptional
-% {\syst_helpers_quadruple_empty_one_yes#1}%
-% {\syst_helpers_quadruple_empty_one_nop#1}}
-%
-% \def\syst_helpers_quadruple_empty_one_yes#1[#2]%
-% {\firstargumenttrue
-% \doifelsenextoptional
-% {\syst_helpers_quadruple_empty_two_yes#1{#2}}%
-% {\syst_helpers_quadruple_empty_two_nop#1{#2}}}
-%
-% \def\syst_helpers_quadruple_empty_two_yes#1#2[#3]%
-% {\secondargumenttrue
-% \doifelsenextoptional
-% {\syst_helpers_quadruple_empty_three_yes#1{#2}{#3}}%
-% {\syst_helpers_quadruple_empty_three_nop#1{#2}{#3}}}
-%
-% \def\syst_helpers_quadruple_empty_three_yes#1#2#3[#4]%
-% {\thirdargumenttrue
-% \doifelsenextoptional
-% {\fourthargumenttrue#1[{#2}][{#3}][{#4}]}%
-% {\syst_helpers_quadruple_empty_four_nop#1{#2}{#3}{#4}}}
-%
-% \def\syst_helpers_quadruple_empty_one_nop#1%
-% {\firstargumentfalse
-% \secondargumentfalse
-% \thirdargumentfalse
-% \fourthargumentfalse
-% #1[][][][]}
-%
-% \def\syst_helpers_quadruple_empty_two_nop
-% {\secondargumentfalse
-% \thirdargumentfalse
-% \fourthargumentfalse
-% \if_next_blank_space_token
-% \expandafter\syst_helpers_quadruple_empty_two_spaced
-% \else
-% \expandafter\syst_helpers_quadruple_empty_two_normal
-% \fi}
-%
-% \def\syst_helpers_quadruple_empty_three_nop
-% {\thirdargumentfalse
-% \fourthargumentfalse
-% \if_next_blank_space_token
-% \expandafter\syst_helpers_quadruple_empty_three_spaced
-% \else
-% \expandafter\syst_helpers_quadruple_empty_three_normal
-% \fi}
-%
-% \def\syst_helpers_quadruple_empty_four_nop
-% {\fourthargumentfalse
-% \if_next_blank_space_token
-% \expandafter\syst_helpers_quadruple_empty_four_spaced
-% \else
-% \expandafter\syst_helpers_quadruple_empty_four_normal
-% \fi}
-%
-% \def\syst_helpers_quadruple_empty_two_spaced #1#2{#1[{#2}][][][] }
-% \def\syst_helpers_quadruple_empty_two_normal #1#2{#1[{#2}][][][]}
-% \def\syst_helpers_quadruple_empty_three_spaced #1#2#3{#1[{#2}][{#3}][][] }
-% \def\syst_helpers_quadruple_empty_three_normal #1#2#3{#1[{#2}][{#3}][][]}
-% \def\syst_helpers_quadruple_empty_four_spaced #1#2#3#4{#1[{#2}][{#3}][{#4}][] }
-% \def\syst_helpers_quadruple_empty_four_normal #1#2#3#4{#1[{#2}][{#3}][{#4}][]}
+%D Four:
\unexpanded\def\doquadrupleempty#1%
{\syst_helpers_argument_reset
- \t_syst_aux{#1}%
- \let\m_syst_action_yes\syst_helpers_quadruple_empty_one_yes
- \let\m_syst_action_nop\syst_helpers_quadruple_empty_one_nop
- \let\if_next_blank_space_token\iffalse
- \futurelet\nexttoken\syst_helpers_inspect_next_optional_character}
+ \doifelsenextoptional
+ {\syst_helpers_quadruple_empty_one_yes#1}%
+ {\syst_helpers_quadruple_empty_one_nop#1}}
-\def\syst_helpers_quadruple_empty_one_yes[#1]%
+\def\syst_helpers_quadruple_empty_one_yes#1[#2]%
{\firstargumenttrue
- \toksapp\t_syst_aux{[{#1}]}%
- \let\m_syst_action_yes\syst_helpers_quadruple_empty_two_yes
- \let\m_syst_action_nop\syst_helpers_quadruple_empty_two_nop
- \let\if_next_blank_space_token\iffalse
- \futurelet\nexttoken\syst_helpers_inspect_next_optional_character}
+ \doifelsenextoptional
+ {\syst_helpers_quadruple_empty_two_yes#1{#2}}%
+ {\syst_helpers_quadruple_empty_two_nop#1{#2}}}
-\def\syst_helpers_quadruple_empty_two_yes[#1]%
+\def\syst_helpers_quadruple_empty_two_yes#1#2[#3]%
{\secondargumenttrue
- \toksapp\t_syst_aux{[{#1}]}%
- \let\m_syst_action_yes\syst_helpers_quadruple_empty_three_yes
- \let\m_syst_action_nop\syst_helpers_quadruple_empty_three_nop
- \let\if_next_blank_space_token\iffalse
- \futurelet\nexttoken\syst_helpers_inspect_next_optional_character}
+ \doifelsenextoptional
+ {\syst_helpers_quadruple_empty_three_yes#1{#2}{#3}}%
+ {\syst_helpers_quadruple_empty_three_nop#1{#2}{#3}}}
-\def\syst_helpers_quadruple_empty_three_yes[#1]%
+\def\syst_helpers_quadruple_empty_three_yes#1#2#3[#4]%
{\thirdargumenttrue
- \toksapp\t_syst_aux{[{#1}]}%
- \let\m_syst_action_yes\syst_helpers_quadruple_empty_four_yes
- \let\m_syst_action_nop\syst_helpers_quadruple_empty_four_nop
- \let\if_next_blank_space_token\iffalse
- \futurelet\nexttoken\syst_helpers_inspect_next_optional_character}
+ \doifelsenextoptional
+ {\fourthargumenttrue#1[{#2}][{#3}][{#4}]}%
+ {\syst_helpers_quadruple_empty_four_nop#1{#2}{#3}{#4}}}
-\def\syst_helpers_quadruple_empty_one_nop
+\def\syst_helpers_quadruple_empty_one_nop#1%
{\firstargumentfalse
\secondargumentfalse
\thirdargumentfalse
\fourthargumentfalse
- \the\t_syst_aux[][][][]}
+ #1[][][][]}
\def\syst_helpers_quadruple_empty_two_nop
{\secondargumentfalse
\thirdargumentfalse
\fourthargumentfalse
\if_next_blank_space_token
- \expandafter\syst_helpers_empty_spaced_three
+ \expandafter\syst_helpers_quadruple_empty_two_spaced
\else
- \expandafter\syst_helpers_empty_normal_three
+ \expandafter\syst_helpers_quadruple_empty_two_normal
\fi}
\def\syst_helpers_quadruple_empty_three_nop
{\thirdargumentfalse
\fourthargumentfalse
\if_next_blank_space_token
- \expandafter\syst_helpers_empty_spaced_two
+ \expandafter\syst_helpers_quadruple_empty_three_spaced
\else
- \expandafter\syst_helpers_empty_normal_two
+ \expandafter\syst_helpers_quadruple_empty_three_normal
\fi}
\def\syst_helpers_quadruple_empty_four_nop
{\fourthargumentfalse
\if_next_blank_space_token
- \expandafter\syst_helpers_empty_spaced_one
+ \expandafter\syst_helpers_quadruple_empty_four_spaced
\else
- \expandafter\syst_helpers_empty_normal_one
+ \expandafter\syst_helpers_quadruple_empty_four_normal
\fi}
-%D Quintuple:
+\def\syst_helpers_quadruple_empty_two_spaced #1#2{#1[{#2}][][][] }
+\def\syst_helpers_quadruple_empty_two_normal #1#2{#1[{#2}][][][]}
+\def\syst_helpers_quadruple_empty_three_spaced #1#2#3{#1[{#2}][{#3}][][] }
+\def\syst_helpers_quadruple_empty_three_normal #1#2#3{#1[{#2}][{#3}][][]}
+\def\syst_helpers_quadruple_empty_four_spaced #1#2#3#4{#1[{#2}][{#3}][{#4}][] }
+\def\syst_helpers_quadruple_empty_four_normal #1#2#3#4{#1[{#2}][{#3}][{#4}][]}
-% \unexpanded\def\doquintupleempty#1%
-% {\syst_helpers_argument_reset
-% \doifelsenextoptional
-% {\syst_helpers_quintuple_empty_one_yes#1}%
-% {\syst_helpers_quintuple_empty_one_nop#1}}
-%
-% \def\syst_helpers_quintuple_empty_one_yes#1[#2]%
-% {\firstargumenttrue
-% \doifelsenextoptional
-% {\syst_helpers_quintuple_empty_two_yes#1{#2}}%
-% {\syst_helpers_quintuple_empty_two_nop#1{#2}}}
-%
-% \def\syst_helpers_quintuple_empty_two_yes#1#2[#3]%
-% {\secondargumenttrue
-% \doifelsenextoptional
-% {\syst_helpers_quintuple_empty_three_yes#1{#2}{#3}}%
-% {\syst_helpers_quintuple_empty_three_nop#1{#2}{#3}}}
-%
-% \def\syst_helpers_quintuple_empty_three_yes#1#2#3[#4]%
-% {\thirdargumenttrue
-% \doifelsenextoptional
-% {\syst_helpers_quintuple_empty_four_yes#1{#2}{#3}{#4}}%
-% {\syst_helpers_quintuple_empty_four_nop#1{#2}{#3}{#4}}}
-%
-% \def\syst_helpers_quintuple_empty_four_yes#1#2#3#4[#5]%
-% {\fourthargumenttrue
-% \doifelsenextoptional
-% {\fifthargumenttrue#1[{#2}][{#3}][{#4}][{#5}]}%
-% {\syst_helpers_quintuple_empty_five_nop#1{#2}{#3}{#4}{#5}}}
-%
-% \def\syst_helpers_quintuple_empty_one_nop#1%
-% {\firstargumentfalse
-% \secondargumentfalse
-% \thirdargumentfalse
-% \fourthargumentfalse
-% \fifthargumentfalse
-% #1[][][][][]}
-%
-% \def\syst_helpers_quintuple_empty_two_nop
-% {\secondargumentfalse
-% \thirdargumentfalse
-% \fourthargumentfalse
-% \fifthargumentfalse
-% \if_next_blank_space_token
-% \expandafter\syst_helpers_quintuple_empty_two_spaced
-% \else
-% \expandafter\syst_helpers_quintuple_empty_two_normal
-% \fi}
-%
-% \def\syst_helpers_quintuple_empty_three_nop
-% {\thirdargumentfalse
-% \fourthargumentfalse
-% \fifthargumentfalse
-% \if_next_blank_space_token
-% \expandafter\syst_helpers_quintuple_empty_three_spaced
-% \else
-% \expandafter\syst_helpers_quintuple_empty_three_normal
-% \fi}
-%
-% \def\syst_helpers_quintuple_empty_four_nop
-% {\fourthargumentfalse
-% \fifthargumentfalse
-% \if_next_blank_space_token
-% \expandafter\syst_helpers_quintuple_empty_four_spaced
-% \else
-% \expandafter\syst_helpers_quintuple_empty_four_normal
-% \fi}
-%
-% \def\syst_helpers_quintuple_empty_five_nop
-% {\fifthargumentfalse
-% \if_next_blank_space_token
-% \expandafter\syst_helpers_quintuple_empty_five_spaced
-% \else
-% \expandafter\syst_helpers_quintuple_empty_five_normal
-% \fi}
-%
-% \def\syst_helpers_quintuple_empty_two_spaced #1#2{#1[{#2}][][][][] }
-% \def\syst_helpers_quintuple_empty_two_normal #1#2{#1[{#2}][][][][]}
-% \def\syst_helpers_quintuple_empty_three_spaced #1#2#3{#1[{#2}][{#3}][][][] }
-% \def\syst_helpers_quintuple_empty_three_normal #1#2#3{#1[{#2}][{#3}][][][]}
-% \def\syst_helpers_quintuple_empty_four_spaced #1#2#3#4{#1[{#2}][{#3}][{#4}][][] }
-% \def\syst_helpers_quintuple_empty_four_normal #1#2#3#4{#1[{#2}][{#3}][{#4}][][]}
-% \def\syst_helpers_quintuple_empty_five_spaced #1#2#3#4#5{#1[{#2}][{#3}][{#4}][{#5}][] }
-% \def\syst_helpers_quintuple_empty_five_normal #1#2#3#4#5{#1[{#2}][{#3}][{#4}][{#5}][]}
+%D Five:
\unexpanded\def\doquintupleempty#1%
{\syst_helpers_argument_reset
- \t_syst_aux{#1}%
- \let\m_syst_action_yes\syst_helpers_quintuple_empty_one_yes
- \let\m_syst_action_nop\syst_helpers_quintuple_empty_one_nop
- \let\if_next_blank_space_token\iffalse
- \futurelet\nexttoken\syst_helpers_inspect_next_optional_character}
+ \doifelsenextoptional
+ {\syst_helpers_quintuple_empty_one_yes#1}%
+ {\syst_helpers_quintuple_empty_one_nop#1}}
-\def\syst_helpers_quintuple_empty_one_yes[#1]%
+\def\syst_helpers_quintuple_empty_one_yes#1[#2]%
{\firstargumenttrue
- \toksapp\t_syst_aux{[{#1}]}%
- \let\m_syst_action_yes\syst_helpers_quintuple_empty_two_yes
- \let\m_syst_action_nop\syst_helpers_quintuple_empty_two_nop
- \let\if_next_blank_space_token\iffalse
- \futurelet\nexttoken\syst_helpers_inspect_next_optional_character}
+ \doifelsenextoptional
+ {\syst_helpers_quintuple_empty_two_yes#1{#2}}%
+ {\syst_helpers_quintuple_empty_two_nop#1{#2}}}
-\def\syst_helpers_quintuple_empty_two_yes[#1]%
+\def\syst_helpers_quintuple_empty_two_yes#1#2[#3]%
{\secondargumenttrue
- \toksapp\t_syst_aux{[{#1}]}%
- \let\m_syst_action_yes\syst_helpers_quintuple_empty_three_yes
- \let\m_syst_action_nop\syst_helpers_quintuple_empty_three_nop
- \let\if_next_blank_space_token\iffalse
- \futurelet\nexttoken\syst_helpers_inspect_next_optional_character}
+ \doifelsenextoptional
+ {\syst_helpers_quintuple_empty_three_yes#1{#2}{#3}}%
+ {\syst_helpers_quintuple_empty_three_nop#1{#2}{#3}}}
-\def\syst_helpers_quintuple_empty_three_yes[#1]%
+\def\syst_helpers_quintuple_empty_three_yes#1#2#3[#4]%
{\thirdargumenttrue
- \toksapp\t_syst_aux{[{#1}]}%
- \let\m_syst_action_yes\syst_helpers_quintuple_empty_four_yes
- \let\m_syst_action_nop\syst_helpers_quintuple_empty_four_nop
- \let\if_next_blank_space_token\iffalse
- \futurelet\nexttoken\syst_helpers_inspect_next_optional_character}
+ \doifelsenextoptional
+ {\syst_helpers_quintuple_empty_four_yes#1{#2}{#3}{#4}}%
+ {\syst_helpers_quintuple_empty_four_nop#1{#2}{#3}{#4}}}
-\def\syst_helpers_quintuple_empty_four_yes[#1]%
+\def\syst_helpers_quintuple_empty_four_yes#1#2#3#4[#5]%
{\fourthargumenttrue
- \toksapp\t_syst_aux{[{#1}]}%
- \let\m_syst_action_yes\syst_helpers_quintuple_empty_five_yes
- \let\m_syst_action_nop\syst_helpers_quintuple_empty_five_nop
- \let\if_next_blank_space_token\iffalse
- \futurelet\nexttoken\syst_helpers_inspect_next_optional_character}
+ \doifelsenextoptional
+ {\fifthargumenttrue#1[{#2}][{#3}][{#4}][{#5}]}%
+ {\syst_helpers_quintuple_empty_five_nop#1{#2}{#3}{#4}{#5}}}
-\def\syst_helpers_quintuple_empty_one_nop
+\def\syst_helpers_quintuple_empty_one_nop#1%
{\firstargumentfalse
\secondargumentfalse
\thirdargumentfalse
\fourthargumentfalse
\fifthargumentfalse
- \the\t_syst_aux[][][][][]}
+ #1[][][][][]}
\def\syst_helpers_quintuple_empty_two_nop
{\secondargumentfalse
@@ -2811,9 +2446,9 @@
\fourthargumentfalse
\fifthargumentfalse
\if_next_blank_space_token
- \expandafter\syst_helpers_empty_spaced_four
+ \expandafter\syst_helpers_quintuple_empty_two_spaced
\else
- \expandafter\syst_helpers_empty_normal_four
+ \expandafter\syst_helpers_quintuple_empty_two_normal
\fi}
\def\syst_helpers_quintuple_empty_three_nop
@@ -2821,192 +2456,83 @@
\fourthargumentfalse
\fifthargumentfalse
\if_next_blank_space_token
- \expandafter\syst_helpers_empty_spaced_three
+ \expandafter\syst_helpers_quintuple_empty_three_spaced
\else
- \expandafter\syst_helpers_empty_normal_three
+ \expandafter\syst_helpers_quintuple_empty_three_normal
\fi}
\def\syst_helpers_quintuple_empty_four_nop
{\fourthargumentfalse
\fifthargumentfalse
\if_next_blank_space_token
- \expandafter\syst_helpers_empty_spaced_two
+ \expandafter\syst_helpers_quintuple_empty_four_spaced
\else
- \expandafter\syst_helpers_empty_normal_two
+ \expandafter\syst_helpers_quintuple_empty_four_normal
\fi}
\def\syst_helpers_quintuple_empty_five_nop
{\fifthargumentfalse
\if_next_blank_space_token
- \expandafter\syst_helpers_empty_spaced_one
+ \expandafter\syst_helpers_quintuple_empty_five_spaced
\else
- \expandafter\syst_helpers_empty_normal_one
+ \expandafter\syst_helpers_quintuple_empty_five_normal
\fi}
-%D Sixtuple:
+\def\syst_helpers_quintuple_empty_two_spaced #1#2{#1[{#2}][][][][] }
+\def\syst_helpers_quintuple_empty_two_normal #1#2{#1[{#2}][][][][]}
+\def\syst_helpers_quintuple_empty_three_spaced #1#2#3{#1[{#2}][{#3}][][][] }
+\def\syst_helpers_quintuple_empty_three_normal #1#2#3{#1[{#2}][{#3}][][][]}
+\def\syst_helpers_quintuple_empty_four_spaced #1#2#3#4{#1[{#2}][{#3}][{#4}][][] }
+\def\syst_helpers_quintuple_empty_four_normal #1#2#3#4{#1[{#2}][{#3}][{#4}][][]}
+\def\syst_helpers_quintuple_empty_five_spaced #1#2#3#4#5{#1[{#2}][{#3}][{#4}][{#5}][] }
+\def\syst_helpers_quintuple_empty_five_normal #1#2#3#4#5{#1[{#2}][{#3}][{#4}][{#5}][]}
-% \unexpanded\def\dosixtupleempty#1%
-% {\syst_helpers_argument_reset
-% \doifelsenextoptional
-% {\syst_helpers_sixtuple_empty_one_yes#1}
-% {\syst_helpers_sixtuple_empty_one_nop#1}}
-%
-% \def\syst_helpers_sixtuple_empty_one_yes#1[#2]%
-% {\firstargumenttrue
-% \doifelsenextoptional
-% {\syst_helpers_sixtuple_empty_two_yes#1{#2}}%
-% {\syst_helpers_sixtuple_empty_two_nop#1{#2}}}
-%
-% \def\syst_helpers_sixtuple_empty_two_yes#1#2[#3]%
-% {\secondargumenttrue
-% \doifelsenextoptional
-% {\syst_helpers_sixtuple_empty_three_yes#1{#2}{#3}}%
-% {\syst_helpers_sixtuple_empty_three_nop#1{#2}{#3}}}
-%
-% \def\syst_helpers_sixtuple_empty_three_yes#1#2#3[#4]%
-% {\thirdargumenttrue
-% \doifelsenextoptional
-% {\syst_helpers_sixtuple_empty_four_yes#1{#2}{#3}{#4}}%
-% {\syst_helpers_sixtuple_empty_four_nop#1{#2}{#3}{#4}}}
-%
-% \def\syst_helpers_sixtuple_empty_four_yes#1#2#3#4[#5]%
-% {\fourthargumenttrue
-% \doifelsenextoptional
-% {\syst_helpers_sixtuple_empty_five_yes#1{#2}{#3}{#4}{#5}}%
-% {\syst_helpers_sixtuple_empty_five_nop#1{#2}{#3}{#4}{#5}}}
-%
-% \def\syst_helpers_sixtuple_empty_five_yes#1#2#3#4#5[#6]%
-% {\fifthargumenttrue
-% \doifelsenextoptional
-% {\sixthargumenttrue#1[{#2}][{#3}][{#4}][{#5}][{#6}]}%
-% {\syst_helpers_sixtuple_empty_six_nop#1{#2}{#3}{#4}{#5}{#6}}}
-%
-% \def\syst_helpers_sixtuple_empty_one_nop#1%
-% {\firstargumentfalse
-% \secondargumentfalse
-% \thirdargumentfalse
-% \fourthargumentfalse
-% \fifthargumentfalse
-% \sixthargumentfalse
-% #1[][][][][][]}
-%
-% \def\syst_helpers_sixtuple_empty_two_nop
-% {\secondargumentfalse
-% \thirdargumentfalse
-% \fourthargumentfalse
-% \fifthargumentfalse
-% \sixthargumentfalse
-% \if_next_blank_space_token
-% \expandafter\syst_helpers_sixtuple_empty_two_spaced
-% \else
-% \expandafter\syst_helpers_sixtuple_empty_two_normal
-% \fi}
-%
-% \def\syst_helpers_sixtuple_empty_three_nop
-% {\thirdargumentfalse
-% \fourthargumentfalse
-% \fifthargumentfalse
-% \sixthargumentfalse
-% \if_next_blank_space_token
-% \expandafter\syst_helpers_sixtuple_empty_three_spaced
-% \else
-% \expandafter\syst_helpers_sixtuple_empty_three_normal
-% \fi}
-%
-% \def\syst_helpers_sixtuple_empty_four_nop
-% {\fourthargumentfalse
-% \fifthargumentfalse
-% \sixthargumentfalse
-% \if_next_blank_space_token
-% \expandafter\syst_helpers_sixtuple_empty_four_spaced
-% \else
-% \expandafter\syst_helpers_sixtuple_empty_four_normal
-% \fi}
-%
-% \def\syst_helpers_sixtuple_empty_five_nop
-% {\fifthargumentfalse
-% \sixthargumentfalse
-% \if_next_blank_space_token
-% \expandafter\syst_helpers_sixtuple_empty_five_spaced
-% \else
-% \expandafter\syst_helpers_sixtuple_empty_five_normal
-% \fi}
-%
-% \def\syst_helpers_sixtuple_empty_six_nop
-% {\sixthargumentfalse
-% \if_next_blank_space_token
-% \expandafter\syst_helpers_sixtuple_empty_six_spaced
-% \else
-% \expandafter\syst_helpers_sixtuple_empty_six_normal
-% \fi}
-%
-% \def\syst_helpers_sixtuple_empty_two_spaced #1#2{#1[{#2}][][][][][] }
-% \def\syst_helpers_sixtuple_empty_two_normal #1#2{#1[{#2}][][][][][]}
-% \def\syst_helpers_sixtuple_empty_three_spaced #1#2#3{#1[{#2}][{#3}][][][][] }
-% \def\syst_helpers_sixtuple_empty_three_normal #1#2#3{#1[{#2}][{#3}][][][][]}
-% \def\syst_helpers_sixtuple_empty_four_spaced #1#2#3#4{#1[{#2}][{#3}][{#4}][][][] }
-% \def\syst_helpers_sixtuple_empty_four_normal #1#2#3#4{#1[{#2}][{#3}][{#4}][][][]}
-% \def\syst_helpers_sixtuple_empty_five_spaced #1#2#3#4#5{#1[{#2}][{#3}][{#4}][{#5}][][] }
-% \def\syst_helpers_sixtuple_empty_five_normal #1#2#3#4#5{#1[{#2}][{#3}][{#4}][{#5}][][]}
-% \def\syst_helpers_sixtuple_empty_six_spaced #1#2#3#4#5#6{#1[{#2}][{#3}][{#4}][{#5}][{#6}][] }
-% \def\syst_helpers_sixtuple_empty_six_normal #1#2#3#4#5#6{#1[{#2}][{#3}][{#4}][{#5}][{#6}][]}
+%D Six
\unexpanded\def\dosixtupleempty#1%
{\syst_helpers_argument_reset
- \t_syst_aux{#1}%
- \let\m_syst_action_yes\syst_helpers_sixtuple_empty_one_yes
- \let\m_syst_action_nop\syst_helpers_sixtuple_empty_one_nop
- \let\if_next_blank_space_token\iffalse
- \futurelet\nexttoken\syst_helpers_inspect_next_optional_character}
+ \doifelsenextoptional
+ {\syst_helpers_sixtuple_empty_one_yes#1}
+ {\syst_helpers_sixtuple_empty_one_nop#1}}
-\def\syst_helpers_sixtuple_empty_one_yes[#1]%
+\def\syst_helpers_sixtuple_empty_one_yes#1[#2]%
{\firstargumenttrue
- \toksapp\t_syst_aux{[{#1}]}%
- \let\m_syst_action_yes\syst_helpers_sixtuple_empty_two_yes
- \let\m_syst_action_nop\syst_helpers_sixtuple_empty_two_nop
- \let\if_next_blank_space_token\iffalse
- \futurelet\nexttoken\syst_helpers_inspect_next_optional_character}
+ \doifelsenextoptional
+ {\syst_helpers_sixtuple_empty_two_yes#1{#2}}%
+ {\syst_helpers_sixtuple_empty_two_nop#1{#2}}}
-\def\syst_helpers_sixtuple_empty_two_yes[#1]%
+\def\syst_helpers_sixtuple_empty_two_yes#1#2[#3]%
{\secondargumenttrue
- \toksapp\t_syst_aux{[{#1}]}%
- \let\m_syst_action_yes\syst_helpers_sixtuple_empty_three_yes
- \let\m_syst_action_nop\syst_helpers_sixtuple_empty_three_nop
- \let\if_next_blank_space_token\iffalse
- \futurelet\nexttoken\syst_helpers_inspect_next_optional_character}
+ \doifelsenextoptional
+ {\syst_helpers_sixtuple_empty_three_yes#1{#2}{#3}}%
+ {\syst_helpers_sixtuple_empty_three_nop#1{#2}{#3}}}
-\def\syst_helpers_sixtuple_empty_three_yes[#1]%
+\def\syst_helpers_sixtuple_empty_three_yes#1#2#3[#4]%
{\thirdargumenttrue
- \toksapp\t_syst_aux{[{#1}]}%
- \let\m_syst_action_yes\syst_helpers_sixtuple_empty_four_yes
- \let\m_syst_action_nop\syst_helpers_sixtuple_empty_four_nop
- \let\if_next_blank_space_token\iffalse
- \futurelet\nexttoken\syst_helpers_inspect_next_optional_character}
+ \doifelsenextoptional
+ {\syst_helpers_sixtuple_empty_four_yes#1{#2}{#3}{#4}}%
+ {\syst_helpers_sixtuple_empty_four_nop#1{#2}{#3}{#4}}}
-\def\syst_helpers_sixtuple_empty_four_yes[#1]%
+\def\syst_helpers_sixtuple_empty_four_yes#1#2#3#4[#5]%
{\fourthargumenttrue
- \toksapp\t_syst_aux{[{#1}]}%
- \let\m_syst_action_yes\syst_helpers_sixtuple_empty_five_yes
- \let\m_syst_action_nop\syst_helpers_sixtuple_empty_five_nop
- \let\if_next_blank_space_token\iffalse
- \futurelet\nexttoken\syst_helpers_inspect_next_optional_character}
+ \doifelsenextoptional
+ {\syst_helpers_sixtuple_empty_five_yes#1{#2}{#3}{#4}{#5}}%
+ {\syst_helpers_sixtuple_empty_five_nop#1{#2}{#3}{#4}{#5}}}
-\def\syst_helpers_sixtuple_empty_five_yes[#1]%
+\def\syst_helpers_sixtuple_empty_five_yes#1#2#3#4#5[#6]%
{\fifthargumenttrue
- \toksapp\t_syst_aux{[{#1}]}%
- \let\m_syst_action_yes\syst_helpers_sixtuple_empty_six_yes
- \let\m_syst_action_nop\syst_helpers_sixtuple_empty_six_nop
- \let\if_next_blank_space_token\iffalse
- \futurelet\nexttoken\syst_helpers_inspect_next_optional_character}
+ \doifelsenextoptional
+ {\sixthargumenttrue#1[{#2}][{#3}][{#4}][{#5}][{#6}]}%
+ {\syst_helpers_sixtuple_empty_six_nop#1{#2}{#3}{#4}{#5}{#6}}}
-\def\syst_helpers_sixtuple_empty_one_nop
+\def\syst_helpers_sixtuple_empty_one_nop#1%
{\firstargumentfalse
\secondargumentfalse
\thirdargumentfalse
\fourthargumentfalse
\fifthargumentfalse
\sixthargumentfalse
- \the\t_syst_aux[][][][][][]}
+ #1[][][][][][]}
\def\syst_helpers_sixtuple_empty_two_nop
{\secondargumentfalse
@@ -3015,9 +2541,9 @@
\fifthargumentfalse
\sixthargumentfalse
\if_next_blank_space_token
- \expandafter\syst_helpers_empty_spaced_five
+ \expandafter\syst_helpers_sixtuple_empty_two_spaced
\else
- \expandafter\syst_helpers_empty_normal_five
+ \expandafter\syst_helpers_sixtuple_empty_two_normal
\fi}
\def\syst_helpers_sixtuple_empty_three_nop
@@ -3026,9 +2552,9 @@
\fifthargumentfalse
\sixthargumentfalse
\if_next_blank_space_token
- \expandafter\syst_helpers_empty_spaced_four
+ \expandafter\syst_helpers_sixtuple_empty_three_spaced
\else
- \expandafter\syst_helpers_empty_normal_four
+ \expandafter\syst_helpers_sixtuple_empty_three_normal
\fi}
\def\syst_helpers_sixtuple_empty_four_nop
@@ -3036,215 +2562,84 @@
\fifthargumentfalse
\sixthargumentfalse
\if_next_blank_space_token
- \expandafter\syst_helpers_empty_spaced_three
+ \expandafter\syst_helpers_sixtuple_empty_four_spaced
\else
- \expandafter\syst_helpers_empty_normal_three
+ \expandafter\syst_helpers_sixtuple_empty_four_normal
\fi}
\def\syst_helpers_sixtuple_empty_five_nop
{\fifthargumentfalse
\sixthargumentfalse
\if_next_blank_space_token
- \expandafter\syst_helpers_empty_spaced_two
+ \expandafter\syst_helpers_sixtuple_empty_five_spaced
\else
- \expandafter\syst_helpers_empty_normal_two
+ \expandafter\syst_helpers_sixtuple_empty_five_normal
\fi}
\def\syst_helpers_sixtuple_empty_six_nop
{\sixthargumentfalse
\if_next_blank_space_token
- \expandafter\syst_helpers_empty_spaced_one
+ \expandafter\syst_helpers_sixtuple_empty_six_spaced
\else
- \expandafter\syst_helpers_empty_normal_one
+ \expandafter\syst_helpers_sixtuple_empty_six_normal
\fi}
-%D Seventuple:
+\def\syst_helpers_sixtuple_empty_two_spaced #1#2{#1[{#2}][][][][][] }
+\def\syst_helpers_sixtuple_empty_two_normal #1#2{#1[{#2}][][][][][]}
+\def\syst_helpers_sixtuple_empty_three_spaced #1#2#3{#1[{#2}][{#3}][][][][] }
+\def\syst_helpers_sixtuple_empty_three_normal #1#2#3{#1[{#2}][{#3}][][][][]}
+\def\syst_helpers_sixtuple_empty_four_spaced #1#2#3#4{#1[{#2}][{#3}][{#4}][][][] }
+\def\syst_helpers_sixtuple_empty_four_normal #1#2#3#4{#1[{#2}][{#3}][{#4}][][][]}
+\def\syst_helpers_sixtuple_empty_five_spaced #1#2#3#4#5{#1[{#2}][{#3}][{#4}][{#5}][][] }
+\def\syst_helpers_sixtuple_empty_five_normal #1#2#3#4#5{#1[{#2}][{#3}][{#4}][{#5}][][]}
+\def\syst_helpers_sixtuple_empty_six_spaced #1#2#3#4#5#6{#1[{#2}][{#3}][{#4}][{#5}][{#6}][] }
+\def\syst_helpers_sixtuple_empty_six_normal #1#2#3#4#5#6{#1[{#2}][{#3}][{#4}][{#5}][{#6}][]}
-% \unexpanded\def\doseventupleempty#1%
-% {\syst_helpers_argument_reset
-% \doifelsenextoptional
-% {\syst_helpers_seventuple_empty_one_yes#1}%
-% {\syst_helpers_seventuple_empty_one_nop#1}}
-%
-% \def\syst_helpers_seventuple_empty_one_yes#1[#2]%
-% {\firstargumenttrue
-% \doifelsenextoptional
-% {\syst_helpers_seventuple_empty_two_yes#1{#2}}%
-% {\syst_helpers_seventuple_empty_two_nop#1{#2}}}
-%
-% \def\syst_helpers_seventuple_empty_two_yes#1#2[#3]%
-% {\secondargumenttrue
-% \doifelsenextoptional
-% {\syst_helpers_seventuple_empty_three_yes#1{#2}{#3}}%
-% {\syst_helpers_seventuple_empty_three_nop#1{#2}{#3}}}
-%
-% \def\syst_helpers_seventuple_empty_three_yes#1#2#3[#4]%
-% {\thirdargumenttrue
-% \doifelsenextoptional
-% {\syst_helpers_seventuple_empty_four_yes#1{#2}{#3}{#4}}%
-% {\syst_helpers_seventuple_empty_four_nop#1{#2}{#3}{#4}}}
-%
-% \def\syst_helpers_seventuple_empty_four_yes#1#2#3#4[#5]%
-% {\fourthargumenttrue
-% \doifelsenextoptional
-% {\syst_helpers_seventuple_empty_five_yes#1{#2}{#3}{#4}{#5}}%
-% {\syst_helpers_seventuple_empty_five_nop#1{#2}{#3}{#4}{#5}}}
-%
-% \def\syst_helpers_seventuple_empty_five_yes#1#2#3#4#5[#6]%
-% {\fifthargumenttrue
-% \doifelsenextoptional
-% {\syst_helpers_seventuple_empty_six_yes#1{#2}{#3}{#4}{#5}{#6}}%
-% {\syst_helpers_seventuple_empty_six_nop#1{#2}{#3}{#4}{#5}{#6}}}
-%
-% \def\syst_helpers_seventuple_empty_six_yes#1#2#3#4#5#6[#7]%
-% {\sixthargumenttrue
-% \doifelsenextoptional
-% {\seventhargumenttrue#1[{#2}][{#3}][{#4}][{#5}][{#6}][{#7}]}%
-% {\syst_helpers_seventuple_empty_seven_nop#1{#2}{#3}{#4}{#5}{#6}{#7}}}
-%
-% \def\syst_helpers_seventuple_empty_one_nop#1%
-% {\firstargumentfalse
-% \secondargumentfalse
-% \thirdargumentfalse
-% \fourthargumentfalse
-% \fifthargumentfalse
-% \sixthargumentfalse
-% \seventhargumentfalse
-% #1[][][][][][][]}
-%
-% \def\syst_helpers_seventuple_empty_two_nop
-% {\secondargumentfalse
-% \thirdargumentfalse
-% \fourthargumentfalse
-% \fifthargumentfalse
-% \sixthargumentfalse
-% \seventhargumentfalse
-% \if_next_blank_space_token
-% \expandafter\syst_helpers_seventuple_empty_two_spaced
-% \else
-% \expandafter\syst_helpers_seventuple_empty_two_normal
-% \fi}
-%
-% \def\syst_helpers_seventuple_empty_three_nop
-% {\thirdargumentfalse
-% \fourthargumentfalse
-% \fifthargumentfalse
-% \sixthargumentfalse
-% \seventhargumentfalse
-% \if_next_blank_space_token
-% \expandafter\syst_helpers_seventuple_empty_three_spaced
-% \else
-% \expandafter\syst_helpers_seventuple_empty_three_normal
-% \fi}
-%
-% \def\syst_helpers_seventuple_empty_four_nop
-% {\fourthargumentfalse
-% \fifthargumentfalse
-% \sixthargumentfalse
-% \seventhargumentfalse
-% \if_next_blank_space_token
-% \expandafter\syst_helpers_seventuple_empty_four_spaced
-% \else
-% \expandafter\syst_helpers_seventuple_empty_four_normal
-% \fi}
-%
-% \def\syst_helpers_seventuple_empty_five_nop
-% {\fifthargumentfalse
-% \sixthargumentfalse
-% \seventhargumentfalse
-% \if_next_blank_space_token
-% \expandafter\syst_helpers_seventuple_empty_five_spaced
-% \else
-% \expandafter\syst_helpers_seventuple_empty_five_normal
-% \fi}
-%
-% \def\syst_helpers_seventuple_empty_six_nop
-% {\sixthargumentfalse
-% \seventhargumentfalse
-% \if_next_blank_space_token
-% \expandafter\syst_helpers_seventuple_empty_six_spaced
-% \else
-% \expandafter\syst_helpers_seventuple_empty_six_normal
-% \fi}
-%
-% \def\syst_helpers_seventuple_empty_seven_nop
-% {\seventhargumentfalse
-% \if_next_blank_space_token
-% \expandafter\syst_helpers_seventuple_empty_seven_spaced
-% \else
-% \expandafter\syst_helpers_seventuple_empty_seven_normal
-% \fi}
-%
-% \def\syst_helpers_seventuple_empty_two_spaced #1#2{#1[{#2}][][][][][][] }
-% \def\syst_helpers_seventuple_empty_two_normal #1#2{#1[{#2}][][][][][][]}
-% \def\syst_helpers_seventuple_empty_three_spaced #1#2#3{#1[{#2}][{#3}][][][][][] }
-% \def\syst_helpers_seventuple_empty_three_normal #1#2#3{#1[{#2}][{#3}][][][][][]}
-% \def\syst_helpers_seventuple_empty_four_spaced #1#2#3#4{#1[{#2}][{#3}][{#4}][][][][] }
-% \def\syst_helpers_seventuple_empty_four_normal #1#2#3#4{#1[{#2}][{#3}][{#4}][][][][]}
-% \def\syst_helpers_seventuple_empty_five_spaced #1#2#3#4#5{#1[{#2}][{#3}][{#4}][{#5}][][][] }
-% \def\syst_helpers_seventuple_empty_five_normal #1#2#3#4#5{#1[{#2}][{#3}][{#4}][{#5}][][][]}
-% \def\syst_helpers_seventuple_empty_six_spaced #1#2#3#4#5#6{#1[{#2}][{#3}][{#4}][{#5}][{#6}][][] }
-% \def\syst_helpers_seventuple_empty_six_normal #1#2#3#4#5#6{#1[{#2}][{#3}][{#4}][{#5}][{#6}][][]}
-% \def\syst_helpers_seventuple_empty_seven_spaced#1#2#3#4#5#6#7{#1[{#2}][{#3}][{#4}][{#5}][{#6}][{#7}][] }
-% \def\syst_helpers_seventuple_empty_seven_normal#1#2#3#4#5#6#7{#1[{#2}][{#3}][{#4}][{#5}][{#6}][{#7}][]}
+%D Seven:
\unexpanded\def\doseventupleempty#1%
{\syst_helpers_argument_reset
- \t_syst_aux{#1}%
- \let\m_syst_action_yes\syst_helpers_seventuple_empty_one_yes
- \let\m_syst_action_nop\syst_helpers_seventuple_empty_one_nop
- \let\if_next_blank_space_token\iffalse
- \futurelet\nexttoken\syst_helpers_inspect_next_optional_character}
+ \doifelsenextoptional
+ {\syst_helpers_seventuple_empty_one_yes#1}%
+ {\syst_helpers_seventuple_empty_one_nop#1}}
-\def\syst_helpers_seventuple_empty_one_yes[#1]%
+\def\syst_helpers_seventuple_empty_one_yes#1[#2]%
{\firstargumenttrue
- \toksapp\t_syst_aux{[{#1}]}%
- \let\m_syst_action_yes\syst_helpers_seventuple_empty_two_yes
- \let\m_syst_action_nop\syst_helpers_seventuple_empty_two_nop
- \let\if_next_blank_space_token\iffalse
- \futurelet\nexttoken\syst_helpers_inspect_next_optional_character}
+ \doifelsenextoptional
+ {\syst_helpers_seventuple_empty_two_yes#1{#2}}%
+ {\syst_helpers_seventuple_empty_two_nop#1{#2}}}
-\def\syst_helpers_seventuple_empty_two_yes[#1]%
+\def\syst_helpers_seventuple_empty_two_yes#1#2[#3]%
{\secondargumenttrue
- \toksapp\t_syst_aux{[{#1}]}%
- \let\m_syst_action_yes\syst_helpers_seventuple_empty_three_yes
- \let\m_syst_action_nop\syst_helpers_seventuple_empty_three_nop
- \let\if_next_blank_space_token\iffalse
- \futurelet\nexttoken\syst_helpers_inspect_next_optional_character}
+ \doifelsenextoptional
+ {\syst_helpers_seventuple_empty_three_yes#1{#2}{#3}}%
+ {\syst_helpers_seventuple_empty_three_nop#1{#2}{#3}}}
-\def\syst_helpers_seventuple_empty_three_yes[#1]%
+\def\syst_helpers_seventuple_empty_three_yes#1#2#3[#4]%
{\thirdargumenttrue
- \toksapp\t_syst_aux{[{#1}]}%
- \let\m_syst_action_yes\syst_helpers_seventuple_empty_four_yes
- \let\m_syst_action_nop\syst_helpers_seventuple_empty_four_nop
- \let\if_next_blank_space_token\iffalse
- \futurelet\nexttoken\syst_helpers_inspect_next_optional_character}
+ \doifelsenextoptional
+ {\syst_helpers_seventuple_empty_four_yes#1{#2}{#3}{#4}}%
+ {\syst_helpers_seventuple_empty_four_nop#1{#2}{#3}{#4}}}
-\def\syst_helpers_seventuple_empty_four_yes[#1]%
+\def\syst_helpers_seventuple_empty_four_yes#1#2#3#4[#5]%
{\fourthargumenttrue
- \toksapp\t_syst_aux{[{#1}]}%
- \let\m_syst_action_yes\syst_helpers_seventuple_empty_five_yes
- \let\m_syst_action_nop\syst_helpers_seventuple_empty_five_nop
- \let\if_next_blank_space_token\iffalse
- \futurelet\nexttoken\syst_helpers_inspect_next_optional_character}
+ \doifelsenextoptional
+ {\syst_helpers_seventuple_empty_five_yes#1{#2}{#3}{#4}{#5}}%
+ {\syst_helpers_seventuple_empty_five_nop#1{#2}{#3}{#4}{#5}}}
-\def\syst_helpers_seventuple_empty_five_yes[#1]%
+\def\syst_helpers_seventuple_empty_five_yes#1#2#3#4#5[#6]%
{\fifthargumenttrue
- \toksapp\t_syst_aux{[{#1}]}%
- \let\m_syst_action_yes\syst_helpers_seventuple_empty_six_yes
- \let\m_syst_action_nop\syst_helpers_seventuple_empty_six_nop
- \let\if_next_blank_space_token\iffalse
- \futurelet\nexttoken\syst_helpers_inspect_next_optional_character}
+ \doifelsenextoptional
+ {\syst_helpers_seventuple_empty_six_yes#1{#2}{#3}{#4}{#5}{#6}}%
+ {\syst_helpers_seventuple_empty_six_nop#1{#2}{#3}{#4}{#5}{#6}}}
-\def\syst_helpers_seventuple_empty_six_yes[#1]%
+\def\syst_helpers_seventuple_empty_six_yes#1#2#3#4#5#6[#7]%
{\sixthargumenttrue
- \toksapp\t_syst_aux{[{#1}]}%
- \let\m_syst_action_yes\syst_helpers_seventuple_empty_seven_yes
- \let\m_syst_action_nop\syst_helpers_seventuple_empty_seven_nop
- \let\if_next_blank_space_token\iffalse
- \futurelet\nexttoken\syst_helpers_inspect_next_optional_character}
+ \doifelsenextoptional
+ {\seventhargumenttrue#1[{#2}][{#3}][{#4}][{#5}][{#6}][{#7}]}%
+ {\syst_helpers_seventuple_empty_seven_nop#1{#2}{#3}{#4}{#5}{#6}{#7}}}
-\def\syst_helpers_seventuple_empty_one_nop
+\def\syst_helpers_seventuple_empty_one_nop#1%
{\firstargumentfalse
\secondargumentfalse
\thirdargumentfalse
@@ -3252,7 +2647,7 @@
\fifthargumentfalse
\sixthargumentfalse
\seventhargumentfalse
- \the\t_syst_aux[][][][][][][]}
+ #1[][][][][][][]}
\def\syst_helpers_seventuple_empty_two_nop
{\secondargumentfalse
@@ -3262,9 +2657,9 @@
\sixthargumentfalse
\seventhargumentfalse
\if_next_blank_space_token
- \expandafter\syst_helpers_empty_spaced_six
+ \expandafter\syst_helpers_seventuple_empty_two_spaced
\else
- \expandafter\syst_helpers_empty_normal_six
+ \expandafter\syst_helpers_seventuple_empty_two_normal
\fi}
\def\syst_helpers_seventuple_empty_three_nop
@@ -3274,9 +2669,9 @@
\sixthargumentfalse
\seventhargumentfalse
\if_next_blank_space_token
- \expandafter\syst_helpers_empty_spaced_five
+ \expandafter\syst_helpers_seventuple_empty_three_spaced
\else
- \expandafter\syst_helpers_empty_normal_five
+ \expandafter\syst_helpers_seventuple_empty_three_normal
\fi}
\def\syst_helpers_seventuple_empty_four_nop
@@ -3285,9 +2680,9 @@
\sixthargumentfalse
\seventhargumentfalse
\if_next_blank_space_token
- \expandafter\syst_helpers_empty_spaced_four
+ \expandafter\syst_helpers_seventuple_empty_four_spaced
\else
- \expandafter\syst_helpers_empty_normal_four
+ \expandafter\syst_helpers_seventuple_empty_four_normal
\fi}
\def\syst_helpers_seventuple_empty_five_nop
@@ -3295,29 +2690,40 @@
\sixthargumentfalse
\seventhargumentfalse
\if_next_blank_space_token
- \expandafter\syst_helpers_empty_spaced_three
+ \expandafter\syst_helpers_seventuple_empty_five_spaced
\else
- \expandafter\syst_helpers_empty_normal_three
+ \expandafter\syst_helpers_seventuple_empty_five_normal
\fi}
\def\syst_helpers_seventuple_empty_six_nop
{\sixthargumentfalse
\seventhargumentfalse
\if_next_blank_space_token
- \expandafter\syst_helpers_empty_spaced_two
+ \expandafter\syst_helpers_seventuple_empty_six_spaced
\else
- \expandafter\syst_helpers_empty_normal_two
+ \expandafter\syst_helpers_seventuple_empty_six_normal
\fi}
\def\syst_helpers_seventuple_empty_seven_nop
{\seventhargumentfalse
\if_next_blank_space_token
- \expandafter\syst_helpers_empty_spaced_one
+ \expandafter\syst_helpers_seventuple_empty_seven_spaced
\else
- \expandafter\syst_helpers_empty_normal_one
+ \expandafter\syst_helpers_seventuple_empty_seven_normal
\fi}
-%D Aliases:
+\def\syst_helpers_seventuple_empty_two_spaced #1#2{#1[{#2}][][][][][][] }
+\def\syst_helpers_seventuple_empty_two_normal #1#2{#1[{#2}][][][][][][]}
+\def\syst_helpers_seventuple_empty_three_spaced #1#2#3{#1[{#2}][{#3}][][][][][] }
+\def\syst_helpers_seventuple_empty_three_normal #1#2#3{#1[{#2}][{#3}][][][][][]}
+\def\syst_helpers_seventuple_empty_four_spaced #1#2#3#4{#1[{#2}][{#3}][{#4}][][][][] }
+\def\syst_helpers_seventuple_empty_four_normal #1#2#3#4{#1[{#2}][{#3}][{#4}][][][][]}
+\def\syst_helpers_seventuple_empty_five_spaced #1#2#3#4#5{#1[{#2}][{#3}][{#4}][{#5}][][][] }
+\def\syst_helpers_seventuple_empty_five_normal #1#2#3#4#5{#1[{#2}][{#3}][{#4}][{#5}][][][]}
+\def\syst_helpers_seventuple_empty_six_spaced #1#2#3#4#5#6{#1[{#2}][{#3}][{#4}][{#5}][{#6}][][] }
+\def\syst_helpers_seventuple_empty_six_normal #1#2#3#4#5#6{#1[{#2}][{#3}][{#4}][{#5}][{#6}][][]}
+\def\syst_helpers_seventuple_empty_seven_spaced#1#2#3#4#5#6#7{#1[{#2}][{#3}][{#4}][{#5}][{#6}][{#7}][] }
+\def\syst_helpers_seventuple_empty_seven_normal#1#2#3#4#5#6#7{#1[{#2}][{#3}][{#4}][{#5}][{#6}][{#7}][]}
\let\dosingleargument \dosingleempty
\let\dodoubleargument \dodoubleempty
@@ -3494,7 +2900,7 @@
\begingroup
\def\\ {\syst_helpers_get_grouped_argument\syst_helpers_get_grouped_argument_yes\syst_helpers_get_grouped_argument_nop}
- \glet\syst_helpers_get_grouped_argument_e\\
+ \global\let\syst_helpers_get_grouped_argument_e\\
\endgroup
\def\syst_helpers_get_grouped_argument_f
@@ -3625,13 +3031,13 @@
%D
%D Trivial:
-\unexpanded\def\letempty #1{\let #1\empty}
-\unexpanded\def\globalletempty#1{\glet#1\empty}
+\unexpanded\def\letempty #1{\let#1\empty}
+\unexpanded\def\globalletempty#1{\global\let#1\empty}
-\unexpanded\def\letvalueempty #1{\expandafter\let \csname#1\endcsname\empty}
-\unexpanded\def\letgvalueempty#1{\expandafter\glet\csname#1\endcsname\empty}
-\unexpanded\def\letvaluerelax #1{\expandafter\let \csname#1\endcsname\relax}
-\unexpanded\def\letgvalurelax #1{\expandafter\glet\csname#1\endcsname\relax}
+\unexpanded\def\letvalueempty #1{\expandafter\let\csname#1\endcsname\empty}
+\unexpanded\def\letgvalueempty#1{\global\expandafter\let\csname#1\endcsname\empty}
+\unexpanded\def\letvaluerelax #1{\expandafter\let\csname#1\endcsname\relax}
+\unexpanded\def\letgvalurelax #1{\global\expandafter\let\csname#1\endcsname\relax}
\unexpanded\def\relaxvalueifundefined#1%
{\ifcsname#1\endcsname \else
@@ -3777,25 +3183,17 @@
%D Apart from the prefixes, a few more \type{\expandafters}
%D are needed:
-% \unexpanded\def\newif#1% uses the original plain \@if
-% {\privatescratchcounter\escapechar
-% \escapechar\minusone
-% \expandafter\expandafter\expandafter
-% \redoglobal\expandafter\expandafter\expandafter
-% \edef\@if#1{true}{\let\noexpand#1\noexpand\iftrue}%
-% \expandafter\expandafter\expandafter
-% \redoglobal\expandafter\expandafter\expandafter
-% \edef\@if#1{false}{\let\noexpand#1\noexpand\iffalse}%
-% \dodoglobal\@if#1{false}%
-% \escapechar\privatescratchcounter}
-
-\normalprotected\def\newif#1% see syst-ini.mkiv
- {\let\new_if_saved\newif
- \let\newif\new_if_check
- \expandafter\redoglobal\expandafter\def\csname\expandafter\newif\csstring#1true\endcsname {\let#1\iftrue }%
- \expandafter\redoglobal\expandafter\def\csname\expandafter\newif\csstring#1false\endcsname{\let#1\iffalse}%
- \dodoglobal\csname\expandafter\newif\csstring#1false\endcsname
- \let\newif\new_if_saved}
+\unexpanded\def\newif#1%
+ {\privatescratchcounter\escapechar
+ \escapechar\minusone
+ \expandafter\expandafter\expandafter
+ \redoglobal\expandafter\expandafter\expandafter
+ \edef\@if#1{true}{\let\noexpand#1\noexpand\iftrue}%
+ \expandafter\expandafter\expandafter
+ \redoglobal\expandafter\expandafter\expandafter
+ \edef\@if#1{false}{\let\noexpand#1\noexpand\iffalse}%
+ \dodoglobal\@if#1{false}%
+ \escapechar\privatescratchcounter}
%D Also new:
@@ -3847,7 +3245,7 @@
% \bgroup \obeylines
%
-% \glet\stoptexdefinition\relax
+% \global\let\stoptexdefinition\relax
%
% \unexpanded\gdef\starttexdefinition%
% {\bgroup%
@@ -3904,7 +3302,7 @@
% \bgroup \obeylines
%
-% \glet\stoptexdefinition\relax
+% \global\let\stoptexdefinition\relax
%
% \unexpanded\gdef\starttexdefinition%
% {\bgroup%
@@ -3923,7 +3321,7 @@
\bgroup \obeylines
-\glet\stoptexdefinition\relax
+\global\let\stoptexdefinition\relax
\unexpanded\gdef\starttexdefinition%
{\bgroup%
@@ -4140,8 +3538,8 @@
\unexpanded\def\dostepwiserecurse#1#2#3#4% can be made faster by postponing #4
{\global\advance\outerrecurse \plusone
- \expandafter\gdef\csname\??recurseaction\the\outerrecurse\endcsname{#4}%
- \expandafter\glet\csname\??recurseindex \the\outerrecurse\endcsname\recurselevel
+ \global\expandafter\def\csname\??recurseaction\recursedepth\endcsname{#4}%
+ \global\expandafter\let\csname\??recurseindex\recursedepth\endcsname\recurselevel
\ifnum#3>\zerocount\relax
\ifnum#2<#1\relax
\let\syst_helpers_stepwise_next\syst_helpers_stepwise_exit
@@ -4169,7 +3567,7 @@
\fi\expandafter{\the\numexpr\recurselevel+#3\relax}{#2}{#3}}
\unexpanded\def\syst_helpers_recurse_content
- {\csname\??recurseaction\the\outerrecurse\endcsname}
+ {\csname\??recurseaction\recursedepth\endcsname}
\unexpanded\def\syst_helpers_stepwise_recurse_yes
{\syst_helpers_recurse_content
@@ -4193,11 +3591,11 @@
{\syst_helpers_stepwise_recurse_nop\relax}
\unexpanded\def\syst_helpers_stepwise_recurse_nop#1#2#3#4%
- {\expandafter\let\expandafter\recurselevel\csname\??recurseindex\the\outerrecurse\endcsname
+ {\expandafter\let\expandafter\recurselevel\csname\??recurseindex\recursedepth\endcsname
\global\advance\outerrecurse\minusone}
% \unexpanded\def\nonostepwiserecurse#1#2#3%
-% {\expandafter\let\expandafter\recurselevel\csname\??recurseindex\the\outerrecurse\endcsname
+% {\expandafter\let\expandafter\recurselevel\csname\??recurseindex\recursedepth\endcsname
% \global\advance\outerrecurse\minusone}
\unexpanded\def\dorecurse#1%
@@ -4238,16 +3636,16 @@
\unexpanded\def\syst_helpers_recurse_x#1#2%
{\global\advance\outerrecurse \plusone
- \expandafter\gdef\csname\??recurseaction\the\outerrecurse\endcsname{#2}%
- \expandafter\glet\csname\??recurseindex \the\outerrecurse\endcsname\recurselevel
+ \expandafter\gdef\csname\??recurseaction\recursedepth\endcsname{#2}%
+ \global\expandafter\let\csname\??recurseindex\recursedepth\endcsname\recurselevel
\expandafter\syst_helpers_recurse_indeed\expandafter1\expandafter{\number#1}}
\unexpanded\def\syst_helpers_recurse_y#1#2%
{\global\advance\outerrecurse \plusone
- \expandafter\glet\csname\??recurseindex\the\outerrecurse\endcsname\recurselevel
+ \global\expandafter\let\csname\??recurseindex\recursedepth\endcsname\recurselevel
\let\recurselevel\!!plusone
#2%
- \expandafter\let\expandafter\recurselevel\csname\??recurseindex\the\outerrecurse\endcsname
+ \expandafter\let\expandafter\recurselevel\csname\??recurseindex\recursedepth\endcsname
\global\advance\outerrecurse \minusone}
\unexpanded\def\syst_helpers_recurse_indeed#1#2% from to
@@ -4272,7 +3670,7 @@
\syst_helpers_recurse_indeed}
\unexpanded\def\syst_helpers_recurse_indeed_nop#1#2#3%
- {\expandafter\let\expandafter\recurselevel\csname\??recurseindex\the\outerrecurse\endcsname
+ {\expandafter\let\expandafter\recurselevel\csname\??recurseindex\recursedepth\endcsname
\global\advance\outerrecurse \minusone }
%D \macros
@@ -4310,8 +3708,8 @@
\unexpanded\def\doloop#1%
{\global\advance\outerrecurse \plusone
- \expandafter\gdef\csname\??recurseaction\the\outerrecurse\endcsname{#1}%
- \expandafter\glet\csname\??recurseindex \the\outerrecurse\endcsname\recurselevel
+ \expandafter\gdef\csname\??recurseaction\recursedepth\endcsname{#1}%
+ \global\expandafter\let\csname\??recurseindex\recursedepth\endcsname\recurselevel
\let\endofloop\syst_helpers_loop
\syst_helpers_loop1} % no \plusone else \recurselevel wrong
@@ -4325,7 +3723,7 @@
\unexpanded\def\syst_helpers_loop_nop#1%
{\let\endofloop\syst_helpers_loop % new, permits nested \doloop's
- \expandafter\let\expandafter\recurselevel\csname\??recurseindex\the\outerrecurse\endcsname
+ \expandafter\let\expandafter\recurselevel\csname\??recurseindex\recursedepth\endcsname
\global\advance\outerrecurse\minusone}
\unexpanded\def\exitloop % \exitloop quits at end
@@ -4373,61 +3771,59 @@
%D \stoptyping
\def\syst_helpers_recurse_content
- {\csname\??recurseaction\the\outerrecurse\expandafter\expandafter\expandafter\endcsname
- \expandafter\expandafter\expandafter{\expandafter\recurselevel\expandafter}\expandafter{\the\outerrecurse}}
+ {\csname\??recurseaction\recursedepth\expandafter\expandafter\expandafter\endcsname
+ \expandafter\expandafter\expandafter{\expandafter\recurselevel\expandafter}\expandafter{\recursedepth}}
\unexpanded\def\syst_helpers_recurse_x#1#2%
{\global\advance\outerrecurse \plusone
- \expandafter\gdef\csname\??recurseaction\the\outerrecurse\endcsname##1##2{#2}%
- \expandafter\glet\csname\??recurseindex \the\outerrecurse\endcsname\recurselevel
+ \global\expandafter\def\csname\??recurseaction\recursedepth\endcsname##1##2{#2}%
+ \global\expandafter\let\csname\??recurseindex\recursedepth\endcsname\recurselevel
\expandafter\syst_helpers_recurse_indeed\expandafter1\expandafter{\number#1}}
\unexpanded\def\syst_helpers_recurse_y#1#2%
{\global\advance\outerrecurse \plusone
- \expandafter\glet\csname\??recurseindex \the\outerrecurse\endcsname\recurselevel
+ \global\expandafter\let\csname\??recurseindex\recursedepth\endcsname\recurselevel
\let\recurselevel\!!plusone
- \expandafter\gdef\csname\??recurseaction\the\outerrecurse\endcsname##1##2{#2}%
+ \global\expandafter\def\csname\??recurseaction\recursedepth\endcsname##1##2{#2}%
\syst_helpers_recurse_content
- \expandafter\let\expandafter\recurselevel\csname\??recurseindex\the\outerrecurse\endcsname
+ \expandafter\let\expandafter\recurselevel\csname\??recurseindex\recursedepth\endcsname
\global\advance\outerrecurse \minusone}
+\unexpanded\def\dostepwiserecurse#1#2#3#4% can be made faster by postponing #4
+ {\global\advance\outerrecurse \plusone
+ \global\expandafter\def\csname\??recurseaction\recursedepth\endcsname##1##2{#4}%
+ \global\expandafter\let\csname\??recurseindex\recursedepth\endcsname\recurselevel
+ \ifnum#3>\zerocount\relax
+ \ifnum#2<#1\relax
+ \let\syst_helpers_stepwise_next\syst_helpers_stepwise_exit
+ \else
+ \let\syst_helpers_stepwise_next\syst_helpers_stepwise_recurse
+ \fi
+ \else
+ \ifnum#3<\zerocount\relax
+ \ifnum#1<#2\relax
+ \let\syst_helpers_stepwise_next\syst_helpers_stepwise_exit
+ \else
+ \let\syst_helpers_stepwise_next\syst_helpers_stepwise_reverse
+ \fi
+ \else
+ \let\syst_helpers_stepwise_next\syst_helpers_stepwise_exit
+ \fi
+ \fi\normalexpanded{\syst_helpers_stepwise_next{\number#1}{\number#2}{\number#3}}}
+
\unexpanded\def\doloop#1%
{\global\advance\outerrecurse \plusone
- \expandafter\gdef\csname\??recurseaction\the\outerrecurse\endcsname##1##2{#1}%
- \expandafter\glet\csname\??recurseindex \the\outerrecurse\endcsname\recurselevel
+ \global\expandafter\def\csname\??recurseaction\recursedepth\endcsname##1##2{#1}%
+ \global\expandafter\let\csname\??recurseindex\recursedepth\endcsname\recurselevel
\let\endofloop\syst_helpers_loop
\syst_helpers_loop1} % no \plusone else \recurselevel wrong
-% for instance:
-%
-% \unexpanded\def\dostepwiserecurse#1#2#3#4% can be made faster by postponing #4
-% {\global\advance\outerrecurse \plusone
-% \expandafter\gdef\csname\??recurseaction\the\outerrecurse\endcsname##1##2{#4}%
-% \expandafter\glet\csname\??recurseindex \the\outerrecurse\endcsname\recurselevel
-% \ifnum#3>\zerocount\relax
-% \ifnum#2<#1\relax
-% \let\syst_helpers_stepwise_next\syst_helpers_stepwise_exit
-% \else
-% \let\syst_helpers_stepwise_next\syst_helpers_stepwise_recurse
-% \fi
-% \else
-% \ifnum#3<\zerocount\relax
-% \ifnum#1<#2\relax
-% \let\syst_helpers_stepwise_next\syst_helpers_stepwise_exit
-% \else
-% \let\syst_helpers_stepwise_next\syst_helpers_stepwise_reverse
-% \fi
-% \else
-% \let\syst_helpers_stepwise_next\syst_helpers_stepwise_exit
-% \fi
-% \fi\normalexpanded{\syst_helpers_stepwise_next{\number#1}{\number#2}{\number#3}}}
-%
-% faster:
-%
+% faster
+
% \unexpanded\def\dostepwiserecurse#1#2#3#4% can be made faster by postponing #4
% {\global\advance\outerrecurse \plusone
-% \expandafter\gdef\csname\??recurseaction\the\outerrecurse\endcsname##1##2{#4}%
-% \expandafter\glet\csname\??recurseindex \the\outerrecurse\endcsname\recurselevel
+% \global\expandafter\def\csname\??recurseaction\recursedepth\endcsname##1##2{#4}%
+% \global\expandafter\let\csname\??recurseindex\recursedepth\endcsname\recurselevel
% \csname @swr%
% \ifnum#3>\zerocount
% \ifnum#2<#1\else d\fi
@@ -4435,19 +3831,17 @@
% \ifnum#1<#2\else r\fi
% \fi\fi
% \expandafter\endcsname\normalexpanded{{\number#1}{\number#2}{\number#3}}}
-%
+
% \let\@swr \syst_helpers_stepwise_exit
% \let\@swrd\syst_helpers_stepwise_recurse
% \let\@swrr\syst_helpers_stepwise_reverse
-%
-% nicer:
\installsystemnamespace{recursestepwise}
\unexpanded\def\dostepwiserecurse#1#2#3#4% can be made faster by postponing #4
{\global\advance\outerrecurse \plusone
- \expandafter\gdef\csname\??recurseaction\the\outerrecurse\endcsname##1##2{#4}%
- \expandafter\glet\csname\??recurseindex \the\outerrecurse\endcsname\recurselevel
+ \global\expandafter\def\csname\??recurseaction\recursedepth\endcsname##1##2{#4}%
+ \global\expandafter\let\csname\??recurseindex\recursedepth\endcsname\recurselevel
\csname\??recursestepwise
% we need the x in order to avoid the \relax that tex adds
\ifnum#3>\zerocount
@@ -4466,8 +3860,8 @@
%
% \def\dostepwiserecurse#1#2#3#4% can be made faster by postponing #4
% {\global\advance\outerrecurse \plusone
-% \expandafter\gdef\csname\??recurseaction\the\outerrecurse\endcsname##1##2{#4}%
-% \expandafter\glet\csname\??recurseindex \the\outerrecurse\endcsname\recurselevel
+% \global\expandafter\def\csname\??recurseaction\recursedepth\endcsname##1##2{#4}%
+% \global\expandafter\let\csname\??recurseindex\recursedepth\endcsname\recurselevel
% \normalexpanded
% {\ifnum#3>\zerocount
% \ifnum#2<#1
@@ -4542,10 +3936,10 @@
\unexpanded\def\doloopoverlist#1#2%
{\global\advance\outerrecurse\plusone
- \expandafter\gdef\csname\??recurseaction\the\outerrecurse\endcsname##1{\edef\recursestring{##1}#2}%
- \expandafter\glet\csname\??recurseindex \the\outerrecurse\endcsname\recursestring
- \normalexpanded{\processcommalist[#1]{\expandafter\noexpand\csname\??recurseaction\the\outerrecurse\endcsname}}%
- \expandafter\let\expandafter\recursestring\csname\??recurseindex\the\outerrecurse\endcsname
+ \expandafter\gdef\csname\??recurseaction\recursedepth\endcsname##1{\edef\recursestring{##1}#2}%
+ \expandafter\glet\csname\??recurseindex\recursedepth\endcsname\recursestring
+ \normalexpanded{\processcommalist[#1]{\expandafter\noexpand\csname\??recurseaction\recursedepth\endcsname}}%
+ \expandafter\let\expandafter\recursestring\csname\??recurseindex\recursedepth\endcsname
\global\advance\outerrecurse\minusone}
%D \macros
@@ -4719,22 +4113,14 @@
\def\syst_helpers_check_if_assignment_else#1=#2#3\_e_o_p_{\if#2@}%
-\unexpanded\def\doifelseassignment#1%
+\unexpanded\def\doifelseassignment#1% expandable
{\expandafter\syst_helpers_check_if_assignment_else\detokenize{#1}=@@\_e_o_p_
\expandafter\secondoftwoarguments
\else
\expandafter\firstoftwoarguments
\fi}
-\unexpanded\def\doifelseassignmentcs#1#2#3%
- {\expandafter\syst_helpers_check_if_assignment_else\detokenize{#1}=@@\_e_o_p_
- \expandafter#3%
- \else
- \expandafter#2%
- \fi}
-
-\let\doifassignmentelse \doifelseassignment
-\let\doifassignmentelsecs\doifelseassignmentcs
+\let\doifassignmentelse\doifelseassignment
\newif\ifassignment
@@ -5029,14 +4415,16 @@
%D \def\doezomaarwat#1{....#1....}
%D \stoptyping
%D
-%D A disadvantage of this approach is that the tokens that form \type{#1} are fixed
-%D the the moment the argument is read in. Normally this is no problem, but for
-%D instance verbatim environments adapt the \CATCODES\ of characters and therefore
+%D A disadvantage of this approach is that the tokens that
+%D form \type{#1} are fixed the the moment the argument is read
+%D in. Normally this is no problem, but for instance verbatim
+%D environments adapt the \CATCODES\ of characters and therefore
%D are not always happy with already fixed tokens.
%D
-%D Another problem arises when the argument is grouped not by \type {{}} but by
-%D \type {\bgroup} and \type {\egroup}. Such an argument fails, because the \type
-%D {\bgroup} is een as the argument (which is quite normal).
+%D Another problem arises when the argument is grouped not by
+%D \type{{}} but by \type{\bgroup} and \type{\egroup}. Such an
+%D argument fails, because the \type{\bgroup} is een as the
+%D argument (which is quite normal).
%D
%D The next macro offers a solution for both unwanted
%D situations:
@@ -5066,8 +4454,9 @@
%D .......... \rightword{the right way}
%D \stoptyping
%D
-%D Here \TEX\ typesets \type {\bf the right way} unbreakable at the end of the line.
-%D The solution mentioned before does not work here. We also handle
+%D Here \TEX\ typesets \type{\bf the right way} unbreakable
+%D at the end of the line. The solution mentioned before does
+%D not work here. We also handle
%D
%D \starttyping
%D to be \bold{bold} or not, that's the question
@@ -5096,150 +4485,80 @@
% \afterassignment\m_syst_helpers_handle_group_before
% \let\next=}
-% \unexpanded\def\syst_helpers_handle_group_normal#1#2%
-% {\bgroup
-% \def\m_syst_helpers_handle_group_before{#1}%
-% \def\m_syst_helpers_handle_group_after {#2}%
-% \afterassignment\m_syst_helpers_handle_group_normal_before
-% \let\next=}
-%
-% \def\m_syst_helpers_handle_group_normal_before
-% {\bgroup
-% \m_syst_helpers_handle_group_before
-% \bgroup
-% \aftergroup\m_syst_helpers_handle_group_normal_after}
-%
-% \def\m_syst_helpers_handle_group_normal_after
-% {\m_syst_helpers_handle_group_after
-% \egroup
-% \egroup}
-%
-% \unexpanded\def\syst_helpers_handle_group_simple#1#2% no inner group (so no kerning interference)
-% {\bgroup
-% \def\m_syst_helpers_handle_group_before{#1}%
-% \def\m_syst_helpers_handle_group_after {#2}%
-% \afterassignment\m_syst_helpers_handle_group_simple_before
-% \let\next=}
-%
-% \def\m_syst_helpers_handle_group_simple_before
-% {\bgroup
-% \aftergroup\m_syst_helpers_handle_group_simple_after
-% \m_syst_helpers_handle_group_before}
-%
-% \def\m_syst_helpers_handle_group_simple_after
-% {\m_syst_helpers_handle_group_after
-% \egroup}%
-%
-% \unexpanded\def\syst_helpers_handle_group_pickup#1#2#3% no inner group (so no kerning interference)
-% {\bgroup
-% \def\m_syst_helpers_handle_group_before{#1}%
-% \def\m_syst_helpers_handle_group_after {#2\egroup#3}%
-% \afterassignment\m_syst_helpers_handle_group_pickup_before
-% \let\next=}
-%
-% \def\m_syst_helpers_handle_group_pickup_before
-% {\bgroup
-% \aftergroup\m_syst_helpers_handle_group_after
-% \m_syst_helpers_handle_group_before}
-%
-% \unexpanded\def\syst_helpers_handle_group_nop
-% {\ifnum\currentgrouptype=\semisimplegroupcode
-% \expandafter\syst_helpers_handle_group_nop_a
-% \else
-% \expandafter\syst_helpers_handle_group_nop_b
-% \fi}
-%
-% \def\syst_helpers_handle_group_nop_a#1#2%
-% {\def\m_syst_helpers_handle_group_after{#2\endgroup}%
-% \begingroup
-% \aftergroup\m_syst_helpers_handle_group_after
-% #1}
-%
-% \def\syst_helpers_handle_group_nop_b#1#2%
-% {\def\m_syst_helpers_handle_group_after{#2\egroup}%
-% \bgroup
-% \aftergroup\m_syst_helpers_handle_group_after
-% #1}
-
-\unexpanded\def\syst_helpers_handle_group_nop
- {\ifnum\currentgrouptype=\semisimplegroupcode
- \expandafter\syst_helpers_handle_group_nop_a
- \else
- \expandafter\syst_helpers_handle_group_nop_b
- \fi}
-
-\def\syst_helpers_handle_group_nop_a
- {\begingroup
- \aftergroup\m_syst_helpers_handle_group_a
- \aftergroup\endgroup
- \m_syst_helpers_handle_group_b}
-
-\def\syst_helpers_handle_group_nop_b
- {\bgroup
- \aftergroup\m_syst_helpers_handle_group_a
- \aftergroup\egroup
- \m_syst_helpers_handle_group_b}
-
-\unexpanded\def\syst_helpers_handle_group_normal
+\unexpanded\def\syst_helpers_handle_group_normal#1#2%
{\bgroup
+ \def\m_syst_helpers_handle_group_before{#1}%
+ \def\m_syst_helpers_handle_group_after {#2}%
\afterassignment\m_syst_helpers_handle_group_normal_before
\let\next=}
\def\m_syst_helpers_handle_group_normal_before
{\bgroup
- \m_syst_helpers_handle_group_b
+ \m_syst_helpers_handle_group_before
\bgroup
- \aftergroup\m_syst_helpers_handle_group_a
- \aftergroup\egroup
- \aftergroup\egroup}
+ \aftergroup\m_syst_helpers_handle_group_normal_after}
+
+\def\m_syst_helpers_handle_group_normal_after
+ {\m_syst_helpers_handle_group_after
+ \egroup
+ \egroup}
+
+% keep:
+%
+% \unexpanded\def\syst_helpers_handle_group_simple#1#2% no inner group (so no kerning interference)
+% {\bgroup
+% %def\m_syst_helpers_handle_group_before{\bgroup#1\aftergroup\m_syst_helpers_handle_group_after}% interferes
+% \def\m_syst_helpers_handle_group_before{\bgroup\aftergroup\m_syst_helpers_handle_group_after#1}%
+% \def\m_syst_helpers_handle_group_after {#2\egroup}%
+% \afterassignment\m_syst_helpers_handle_group_before
+% \let\next=}
-\unexpanded\def\syst_helpers_handle_group_simple% no inner group (so no kerning interference)
+\unexpanded\def\syst_helpers_handle_group_simple#1#2% no inner group (so no kerning interference)
{\bgroup
+ \def\m_syst_helpers_handle_group_before{#1}%
+ \def\m_syst_helpers_handle_group_after {#2}%
\afterassignment\m_syst_helpers_handle_group_simple_before
\let\next=}
\def\m_syst_helpers_handle_group_simple_before
{\bgroup
\aftergroup\m_syst_helpers_handle_group_simple_after
- \m_syst_helpers_handle_group_b}
+ \m_syst_helpers_handle_group_before}
\def\m_syst_helpers_handle_group_simple_after
- {\m_syst_helpers_handle_group_a
+ {\m_syst_helpers_handle_group_after
\egroup}%
-\unexpanded\def\syst_helpers_handle_group_pickup% no inner group (so no kerning interference)
+\unexpanded\def\syst_helpers_handle_group_pickup#1#2#3% no inner group (so no kerning interference)
{\bgroup
+ \def\m_syst_helpers_handle_group_before{#1}%
+ \def\m_syst_helpers_handle_group_after {#2\egroup#3}%
\afterassignment\m_syst_helpers_handle_group_pickup_before
\let\next=}
\def\m_syst_helpers_handle_group_pickup_before
{\bgroup
- \aftergroup\m_syst_helpers_handle_group_a
- \aftergroup\egroup
- \aftergroup\m_syst_helpers_handle_group_p
- \m_syst_helpers_handle_group_b}
+ \aftergroup\m_syst_helpers_handle_group_after
+ \m_syst_helpers_handle_group_before}
-\unexpanded\def\syst_helpers_handle_group_nop_x
+\unexpanded\def\syst_helpers_handle_group_nop
{\ifnum\currentgrouptype=\semisimplegroupcode
- \begingroup
- \aftergroup\endgroup
+ \expandafter\syst_helpers_handle_group_nop_a
\else
- \bgroup
- \aftergroup\egroup
- \fi
- \m_syst_helpers_handle_group_b}
+ \expandafter\syst_helpers_handle_group_nop_b
+ \fi}
-\unexpanded\def\syst_helpers_handle_group_normal_x
- {\bgroup
- \afterassignment\m_syst_helpers_handle_group_normal_before_x
- \let\next=}
+\def\syst_helpers_handle_group_nop_a#1#2%
+ {\def\m_syst_helpers_handle_group_after{#2\endgroup}%
+ \begingroup
+ \aftergroup\m_syst_helpers_handle_group_after
+ #1}
-\def\m_syst_helpers_handle_group_normal_before_x
- {\bgroup
- \m_syst_helpers_handle_group_b
+\def\syst_helpers_handle_group_nop_b#1#2%
+ {\def\m_syst_helpers_handle_group_after{#2\egroup}%
\bgroup
- \aftergroup\egroup
- \aftergroup\egroup}
+ \aftergroup\m_syst_helpers_handle_group_after
+ #1}
%D I considered it a nuisance that
%D
@@ -5248,61 +4567,25 @@
%D {as grass}
%D \stoptyping
%D
-%D was not interpreted as one would expect. This is due to the fact that \type
-%D {\futurelet} obeys blank spaces, and a line||ending token is treated as a blank
-%D space. So the final implementation became:
-
-% \unexpanded\def\groupedcommand#1#2%
-% {\doifelsenextbgroup{\syst_helpers_handle_group_normal{#1}{#2}}{\syst_helpers_handle_group_nop{#1}{#2}}}
-%
-% \unexpanded\def\groupedcommandcs#1#2%
-% {\doifelsenextbgroup{\syst_helpers_handle_group_normal{#1}{#2}}{\syst_helpers_handle_group_nop{#1}{#2}}}
-%
-% \unexpanded\def\triggergroupedcommand#1%
-% {\doifelsenextbgroup{\syst_helpers_handle_group_normal{#1}{}}{\syst_helpers_handle_group_nop{#1}{}}}
-%
-% \unexpanded\def\triggergroupedcommandcs#1%
-% {\doifelsenextbgroup{\syst_helpers_handle_group_normal{#1}{}}{\syst_helpers_handle_group_nop{#1}{}}}
-%
-% \unexpanded\def\simplegroupedcommand#1#2%
-% {\doifelsenextbgroup{\syst_helpers_handle_group_simple{#1}{#2}}{\syst_helpers_handle_group_nop{#1}{#2}}}
-%
-% \unexpanded\def\pickupgroupedcommand#1#2#3%
-% {\doifelsenextbgroup{\syst_helpers_handle_group_pickup{#1}{#2}{#3}}{\syst_helpers_handle_group_nop{#1}{#2}}}
+%D was not interpreted as one would expect. This is due to the
+%D fact that \type{\futurelet} obeys blank spaces, and a
+%D line||ending token is treated as a blank space. So the final
+%D implementation became:
\unexpanded\def\groupedcommand#1#2%
- {\def\m_syst_helpers_handle_group_b{#1}%
- \def\m_syst_helpers_handle_group_a{#2}%
- \doifelsenextbgroupcs\syst_helpers_handle_group_normal\syst_helpers_handle_group_nop}
-
-\unexpanded\def\groupedcommandcs#1#2%
- {\let\m_syst_helpers_handle_group_b#1%
- \let\m_syst_helpers_handle_group_a#2%
- \doifelsenextbgroupcs\syst_helpers_handle_group_normal\syst_helpers_handle_group_nop}
+ {\doifelsenextbgroup{\syst_helpers_handle_group_normal{#1}{#2}}{\syst_helpers_handle_group_nop{#1}{#2}}}
\unexpanded\def\simplegroupedcommand#1#2%
- {\def\m_syst_helpers_handle_group_b{#1}%
- \def\m_syst_helpers_handle_group_a{#2}%
- \doifelsenextbgroupcs\syst_helpers_handle_group_simple\syst_helpers_handle_group_nop}
+ {\doifelsenextbgroup{\syst_helpers_handle_group_simple{#1}{#2}}{\syst_helpers_handle_group_nop{#1}{#2}}}
\unexpanded\def\pickupgroupedcommand#1#2#3%
- {\def\m_syst_helpers_handle_group_b{#1}%
- \def\m_syst_helpers_handle_group_a{#2}%
- \def\m_syst_helpers_handle_group_p{#2}%
- \doifelsenextbgroupcs\syst_helpers_handle_group_pickup\syst_helpers_handle_group_nop}
+ {\doifelsenextbgroup{\syst_helpers_handle_group_pickup{#1}{#2}{#3}}{\syst_helpers_handle_group_nop{#1}{#2}}}
-\unexpanded\def\triggergroupedcommand#1%
- {\def\m_syst_helpers_handle_group_b{#1}%
- \doifelsenextbgroupcs\syst_helpers_handle_group_normal_x\syst_helpers_handle_group_nop_x}
-
-\unexpanded\def\triggergroupedcommandcs#1%
- {\let\m_syst_helpers_handle_group_b#1%
- \doifelsenextbgroupcs\syst_helpers_handle_group_normal_x\syst_helpers_handle_group_nop_x}
-
-%D Users should be aware of the fact that grouping can interfere with ones paragraph
-%D settings that are executed after the paragraph is closed. One should therefore
-%D explictly close the paragraph with \type {\par}, else the settings will be
-%D forgotten and not applied. So it's:
+%D Users should be aware of the fact that grouping can
+%D interfere with ones paragraph settings that are executed
+%D after the paragraph is closed. One should therefore
+%D explictly close the paragraph with \type{\par}, else the
+%D settings will be forgotten and not applied. So it's:
%D
%D \starttyping
%D \def\BoldRaggedCenter%
@@ -6109,7 +5392,7 @@
\fi}
\unexpanded\def\globalprocesscommalist[#1]#2%
- {\glet\m_syst_helpers_comma_list_command_global#2%
+ {\global\let\m_syst_helpers_comma_list_command_global#2%
\expandafter\syst_helpers_comma_list_command_global_step#1,],}
%D \macros
@@ -6171,9 +5454,9 @@
\unexpanded\def\swapcounts#1#2{\c_syst_helpers_swapped #1\relax#1#2\relax#2\c_syst_helpers_swapped}
\unexpanded\def\swapmacros#1#2{\let\m_syst_helpers_swapped#1\let #1#2\let #2\m_syst_helpers_swapped}
-\unexpanded\def\globalswapdimens#1#2{\d_syst_helpers_swapped #1\global#1#2\global#2\d_syst_helpers_swapped}
-\unexpanded\def\globalswapcounts#1#2{\c_syst_helpers_swapped #1\global#1#2\global#2\c_syst_helpers_swapped}
-\unexpanded\def\globalswapmacros#1#2{\let\m_syst_helpers_swapped#1\glet #1#2\glet #2\m_syst_helpers_swapped}
+\unexpanded\def\globalswapdimens#1#2{\d_syst_helpers_swapped #1\global #1#2\global #2\d_syst_helpers_swapped}
+\unexpanded\def\globalswapcounts#1#2{\c_syst_helpers_swapped #1\global #1#2\global #2\c_syst_helpers_swapped}
+\unexpanded\def\globalswapmacros#1#2{\let\m_syst_helpers_swapped#1\global\let#1#2\global\let#2\m_syst_helpers_swapped}
%D \macros
%D {pushmacro,popmacro}
@@ -6198,11 +5481,11 @@
% \expandafter\newcount\csname\??globalpushedmacro\m_syst_helpers_push_macro\endcsname
% \fi
% \global\advance\csname\??globalpushedmacro\m_syst_helpers_push_macro\endcsname \plusone
-% \expandafter\glet\csname\the\csname\??globalpushedmacro\m_syst_helpers_push_macro\endcsname\m_syst_helpers_push_macro\endcsname#1}
+% \global\expandafter\let\csname\the\csname\??globalpushedmacro\m_syst_helpers_push_macro\endcsname\m_syst_helpers_push_macro\endcsname#1}
%
% \unexpanded\def\globalpopmacro#1%
% {\xdef\m_syst_helpers_push_macro{\string#1}%
-% \expandafter\glet\expandafter#1\csname\the\csname\??globalpushedmacro\m_syst_helpers_push_macro\endcsname\m_syst_helpers_push_macro\endcsname
+% \global\expandafter\let\expandafter#1\csname\the\csname\??globalpushedmacro\m_syst_helpers_push_macro\endcsname\m_syst_helpers_push_macro\endcsname
% \global\advance\csname\??globalpushedmacro\m_syst_helpers_push_macro\endcsname \minusone}
%
% \unexpanded\def\localpushmacro#1% this one can be used to push a value over an \egroup
@@ -6211,7 +5494,7 @@
% \expandafter\newcount\csname\??localpushedmacro\m_syst_helpers_push_macro\endcsname
% \fi
% \global\advance\csname\??localpushedmacro\m_syst_helpers_push_macro\endcsname \plusone
-% \expandafter\glet\csname\the\csname\??localpushedmacro\m_syst_helpers_push_macro\endcsname\m_syst_helpers_push_macro\endcsname#1}
+% \global\expandafter\let\csname\the\csname\??localpushedmacro\m_syst_helpers_push_macro\endcsname\m_syst_helpers_push_macro\endcsname#1}
%
% \unexpanded\def\localpopmacro#1%
% {\xdef\m_syst_helpers_push_macro{\string#1}%
@@ -6222,8 +5505,6 @@
% \let\popmacro \localpopmacro
%
% slightly faster but more important: less tracing
-%
-% possible optimization \installmacrostack\foo: \syst_push_foo \syst_pop_foo
\let\m_syst_helpers_push_macro\empty
@@ -6244,7 +5525,7 @@
\else
\syst_helpers_push_macro_new_global
\fi
- \expandafter\glet\csname\the\lastnamedcs\m_syst_helpers_push_macro\endcsname#1}
+ \global\expandafter\let\csname\the\lastnamedcs\m_syst_helpers_push_macro\endcsname#1}
\unexpanded\def\localpushmacro#1% this one can be used to push a value over an \egroup
{\xdef\m_syst_helpers_push_macro{\csstring#1}%
@@ -6253,13 +5534,13 @@
\else
\syst_helpers_push_macro_new_local
\fi
- \expandafter\glet\csname\the\lastnamedcs\m_syst_helpers_push_macro\endcsname#1}
+ \global\expandafter\let\csname\the\lastnamedcs\m_syst_helpers_push_macro\endcsname#1}
\unexpanded\def\globalpopmacro#1%
{\xdef\m_syst_helpers_push_macro{\csstring#1}%
\c_syst_helpers_pop_count\csname\??globalpushedmacro\m_syst_helpers_push_macro\endcsname
\global\advance\lastnamedcs \minusone
- \expandafter\glet\expandafter#1\csname\the\c_syst_helpers_pop_count\m_syst_helpers_push_macro\endcsname}
+ \global\expandafter\let\expandafter#1\csname\the\c_syst_helpers_pop_count\m_syst_helpers_push_macro\endcsname}
\unexpanded\def\localpopmacro#1%
{\xdef\m_syst_helpers_push_macro{\csstring#1}%
@@ -6779,7 +6060,7 @@
\unexpanded\def\processassignlist#1[#2]#3%
{\def\syst_helpers_process_assign_list_assign[##1=##2=##3]%
- {\doif{##3}\relax{#3{##1}}}%
+ {\doifnot{##3}\relax{#3{##1}}}%
\def\syst_helpers_process_assign_list_step##1%
{\syst_helpers_process_assign_list_assign[##1==\relax]}%
\processcommalist[#2]\syst_helpers_process_assign_list_step}
@@ -7715,6 +6996,14 @@
{\unprotect
\syst_helpers_unprotected}
+% awaiting the definitive implementation
+
+% \ifdefined\resettimer \else
+% \let\resettimer \relax
+% \newcount\elapsedtime
+% \fi
+% \def\elapsedseconds{\expandafter\withoutpt\the\dimexpr\elapsedtime sp\relax}
+
\let\resettimer \clf_resettimer
\let\elapsedtime \clf_elapsedtime
\let\elapsedseconds \elapsedtime
@@ -7883,12 +7172,6 @@
\unexpanded\def\signalcharacter{\char\zerocount} % \zwj
-% \unexpanded\def\signalcharacter
-% {\scratchcounter\normallanguage
-% \normallanguage\zerocount
-% \char\zerocount
-% \normallanguage\scratchcounter}
-
%D A few secial variants of commands defined here. Some more will be moved here (e.g.
%D from table modules.
@@ -8203,23 +7486,3 @@
% \edef\tempstring{\the#1}%
% \tx\ttbf\string#1: \tttf\meaning\tempstring
% \endgroup}
-
-%D Not needed now, but more efficient that expanding
-%
-% \chardef\_E_O_T_0
-%
-% \unexpanded\def\doifelsetokens#1%
-% {\dodoifelsetokens#1\_E_O_T_\_e_o_t_}
-%
-% \def\dodoifelsetokens#1#2\_e_o_t_
-% {\ifx#1\_E_O_T_
-% \expandafter\secondoftwoarguments
-% \else
-% \expandafter\firstoftwoarguments
-% \fi}
-%
-% \def\emptytokscondition#1%
-% {\doemptytokscondition#1\_E_O_T_\_e_o_t_}
-%
-% \def\doemptytokscondition#1#2\_e_o_t_
-% {\ifx#1\_E_O_T_}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/syst-cmp.lua b/Master/texmf-dist/tex/context/base/mkiv/syst-cmp.lua
deleted file mode 100644
index 67595d04381..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/syst-cmp.lua
+++ /dev/null
@@ -1,8 +0,0 @@
-if not modules then modules = { } end modules ['syst-cmp'] = {
- version = 1.001,
- comment = "companion to syst-cmp.mkiv",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
diff --git a/Master/texmf-dist/tex/context/base/mkiv/syst-cmp.mkiv b/Master/texmf-dist/tex/context/base/mkiv/syst-cmp.mkiv
deleted file mode 100644
index a5ebdd8e33d..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/syst-cmp.mkiv
+++ /dev/null
@@ -1,22 +0,0 @@
-%D \module
-%D [ file=syst-cmp,
-%D version=2018.12.05,
-%D title=\CONTEXT\ System Macros,
-%D subtitle=Compatibility,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Some code that has been laying around for generic compatibility is (and will be)
-%D moved here, for instance because tikz needs it. At some point I will make an
-%D indirect interface for generic code (if needed).
-
-\registerctxluafile{syst-cmp}{}
-
-\unprotect
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkiv/syst-ini.mkiv b/Master/texmf-dist/tex/context/base/mkiv/syst-ini.mkiv
index 7ce48c79f66..4b5cc616b46 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/syst-ini.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/syst-ini.mkiv
@@ -19,124 +19,116 @@
%D Characters can have special states, that can be triggered by setting their
%D category coded. Some are preset, others are to be set as soon as possible,
%D otherwise we cannot define any useful macros.
-%D
-%D First we define a bunch of constants. Normally we would \type {\setconstant}
-%D but we're prestine and have no macros defined yet. Abstraction also makes it
-%D possible to avoid the \type {^^} in the input.
-
-\chardef\escapecatcode 0
-\chardef\begingroupcatcode 1
-\chardef\endgroupcatcode 2
-\chardef\mathshiftcatcode 3
-\chardef\alignmentcatcode 4
-\chardef\endoflinecatcode 5
-\chardef\parametercatcode 6
-\chardef\superscriptcatcode 7
-\chardef\subscriptcatcode 8
-\chardef\ignorecatcode 9
-\chardef\spacecatcode 10
-\chardef\lettercatcode 11
-\chardef\othercatcode 12 % finally obsolete: \let\other \othercatcode
-\chardef\activecatcode 13 % finally obsolete: \let\active\activecatcode
-\chardef\commentcatcode 14
-\chardef\invalidcatcode 15
-
-%chardef\zeroasciicode 0
-\chardef\tabasciicode 9
-\chardef\newlineasciicode 10 % don't confuse this one with \endoflineasciicode
-\chardef\formfeedasciicode 12
-\chardef\endoflineasciicode 13 % somewhat messy but this can be the active \par
-\chardef\endoffileasciicode 26
-\chardef\spaceasciicode 32
-\chardef\exclamationmarkasciicode 33 % ! used in namespace protection
-\chardef\doublequoteasciicode 34 % "
-\chardef\hashasciicode 35
-\chardef\dollarasciicode 36
-\chardef\commentasciicode 37
-\chardef\ampersandasciicode 38
-\chardef\singlequoteasciicode 39 % '
-\chardef\primeasciicode 39 % '
-\chardef\leftparentasciicode 40
-\chardef\rightparentasciicode 41
-\chardef\hyphenasciicode 45
-\chardef\forwardslashasciicode 47 % /
-\chardef\colonasciicode 58
-\chardef\lessthanasciicode 60 % < used as alternative verbatim {
-\chardef\morethanasciicode 62 % > used as alternative verbatim }
-\chardef\questionmarkasciicode 63 % ? used in namespace protection
-\chardef\atsignasciicode 64 % @ used in namespace protection
-\chardef\backslashasciicode 92 % `\\
-\chardef\circumflexasciicode 94
-\chardef\underscoreasciicode 95
-\chardef\leftbraceasciicode 123 % `\{
-\chardef\barasciicode 124 % `\|
-\chardef\rightbraceasciicode 125 % `\}
-\chardef\tildeasciicode 126 % `\~
-\chardef\delasciicode 127
-
-%catcode\zeroasciicode \ignorecatcode % `\^^@ ascii null is ignored
-\catcode\tabasciicode \spacecatcode % `\^^I ascii tab is a blank space
-\catcode\formfeedasciicode \activecatcode % `\^^L ascii form-feed (active, set later)
-%catcode\endoflineasciicode \endoflinecatcode % `\^^M ascii return is end-line
-\catcode\endoffileasciicode \ignorecatcode % `\^^Z endoffile (ignored in ConTeXt)
-%catcode\spaceasciicode \spacecatcode % `\ ascii space is blank space
-\catcode\hashasciicode \parametercatcode % `\# hash mark is macro parameter character
-\catcode\dollarasciicode \mathshiftcatcode % `\$ dollar sign is math shift
-%catcode\commentasciicode \commentcatcode % `\% percent sign is comment character
-\catcode\ampersandasciicode \alignmentcatcode % `\& ampersand is alignment tab
-%catcode\backslashasciicode \escapecatcode % `\\ backslash is TeX escape character
-\catcode\circumflexasciicode \superscriptcatcode % `\^ circumflex and uparrow are for superscripts
-\catcode\underscoreasciicode \subscriptcatcode % `\_ underline and downarrow are for subscripts
-\catcode\leftbraceasciicode \begingroupcatcode % `\{ left brace is begin-group character
-\catcode\rightbraceasciicode \endgroupcatcode % `\} right brace is end-group character
-\catcode\tildeasciicode \activecatcode % `\~ tilde is active
-%catcode\delasciicode \invalidcatcode % `\^^? ascii delete is invalid
-
-\chardef\statuswrite 128
-
-%D Initialization of primitives.
-\directlua {
- local baseprimitives = tex.extraprimitives("core","tex")
- local moreprimitives = tex.extraprimitives("etex","luatex")
+%catcode`\^^@ = 9 % ascii null is ignored
+%catcode`\\ = 0 % backslash is TeX escape character
+
+\catcode`\{ = 1 % left brace is begin-group character
+\catcode`\} = 2 % right brace is end-group character
+\catcode`\$ = 3 % dollar sign is math shift
+\catcode`\& = 4 % ampersand is alignment tab
+\catcode`\# = 6 % hash mark is macro parameter character
+\catcode`\^ = 7 % circumflex and uparrow are for superscripts
+\catcode`\_ = 8 % underline and downarrow are for subscripts
+\catcode`\^^I = 10 % ascii tab is a blank space
+
+%catcode`\^^M = 5 % ascii return is end-line
+%catcode`\% = 14 % percent sign is comment character
+%catcode`\ = 10 % ascii space is blank space
+%catcode`\^^? = 15 % ascii delete is invalid
+
+\catcode`\~ = 13 % tilde is active
+\catcode`\^^L = 13 % ascii form-feed
+
+%catcode`\A = 11
+%.......
+%catcode`\Z = 11
+
+%catcode`\a = 11
+%.......
+%catcode`\z = 11
+
+\def ^^L{\par}
+\def\^^M{\ } % control <return> = control <space>
+\def\^^I{\ } % same for <tab>
+
+%D In \CONTEXT, we simply ignore end||of||file tokens:
+
+\catcode`\^^Z=9
+
+%D It makes sense to know what engine we're running so let's try to deduce it.
+
+\chardef\unknownengine = 0
+\chardef\pdftexengine = 1
+\chardef\xetexengine = 2
+\chardef\luatexengine = 3
+
+\chardef\statuswrite = 128
+
+\ifx\directlua\undefined
+ \ifx\XeTeXversion\undefined
+ \ifx\pdftexversion\undefined
+ \let\texengine\unknownengine
+ \else
+ \let\texengine\pdftexengine
+ \fi
+ \else
+ \let\texengine\xetexengine
+ \fi
+\else
+ \let\texengine\luatexengine
+\fi
- tex.enableprimitives("",moreprimitives)
+\ifnum\texengine=\luatexengine
+ % for historic reasons we keep some mkii code around
+\else
+ \immediate\write\statuswrite{>>>}
+ \immediate\write\statuswrite{>>> only luatex is supported}
+ \immediate\write\statuswrite{>>>}
+ \let\dump\relax
+ \expandafter\end
+\fi
- tex.enableprimitives("normal",baseprimitives)
- tex.enableprimitives("normal",moreprimitives)
+%D Initialization of primitives.
- function tex.enableprimitives() end
-}
+\directlua 0 { % this info is stored in the format
+ lua.name[0] = "main ctx instance"
-\def\space{ }
-\def\empty{}
+ local coreprimitives = tex.extraprimitives("core")
+ local texprimitives = tex.extraprimitives("tex")
+ local etexprimitives = tex.extraprimitives("etex")
+ local luatexprimitives = tex.extraprimitives("luatex")
-\letcharcode \formfeedasciicode \par % \def ^^L{\par} formfeed
-\letcharcode \tildeasciicode \ % tilde
-\letcharcode \spaceasciicode \space % space
+ tex.enableprimitives("",etexprimitives)
+ tex.enableprimitives("",luatexprimitives)
-\expandafter\def\csname\Uchar\tabasciicode \endcsname {\ } % \def\^^I{\ } tab
-\expandafter\def\csname\Uchar\formfeedasciicode \endcsname {\par} % \def\^^L{\par} formfeed
-\expandafter\def\csname\Uchar\endoflineasciicode\endcsname {\ } % \def\^^M{\ } return
+ tex.enableprimitives("normal",coreprimitives)
+ tex.enableprimitives("normal",texprimitives)
+ tex.enableprimitives("normal",etexprimitives)
+ tex.enableprimitives("normal",luatexprimitives)
+}
-%D For now:
+%D \ETEX\ has a not so handy way of telling you the version number, i.e. the revision
+%D number has a period in it:
\def\gobbleoneargument#1{} % will be defined later on anyway
+\mathchardef\etexversion = \numexpr\eTeXversion*100+\expandafter\gobbleoneargument\eTeXrevision\relax
+
%D First we define a simplified version of the \CONTEXT\ protection mechanism.
%D Later we will implement a better variant.
\def\unprotect
{\edef\protect
- {\catcode\atsignasciicode \the\catcode\atsignasciicode \relax
- \catcode\exclamationmarkasciicode\the\catcode\exclamationmarkasciicode\relax
- \catcode\questionmarkasciicode \the\catcode\questionmarkasciicode \relax
- \catcode\underscoreasciicode \the\catcode\underscoreasciicode \relax
+ {\catcode`@=\the\catcode`@\relax
+ \catcode`?=\the\catcode`?\relax
+ \catcode`!=\the\catcode`!\relax
+ \catcode`_=\the\catcode`_\relax
\let\protect\relax}%
- \catcode\atsignasciicode \lettercatcode
- \catcode\exclamationmarkasciicode\lettercatcode
- \catcode\questionmarkasciicode \lettercatcode
- \catcode\underscoreasciicode \lettercatcode}
+ \catcode`@=11
+ \catcode`?=11
+ \catcode`!=11
+ \catcode`_=11 }
\let\protect\relax
@@ -177,13 +169,13 @@
\countdef \c_syst_max_allocated_read = 55 \c_syst_max_allocated_read = 16
\countdef \c_syst_min_allocated_language = 56 \c_syst_min_allocated_language = 0
\countdef \c_syst_max_allocated_language = 57 \c_syst_max_allocated_language = 255
-\countdef \c_syst_min_allocated_insert = 58 \c_syst_min_allocated_insert = 128
-\countdef \c_syst_max_allocated_insert = 59 \c_syst_max_allocated_insert = 254
+\countdef \c_syst_max_allocated_insert = 58 \c_syst_max_allocated_insert = 254
+\countdef \c_syst_min_allocated_insert = 59 \c_syst_min_allocated_insert = 128
\countdef \c_syst_min_allocated_family = 60 \c_syst_min_allocated_family = 128
\countdef \c_syst_max_allocated_family = 61 \c_syst_max_allocated_family = 255
-\countdef \c_syst_min_allocated_attribute = 62 \c_syst_min_allocated_attribute = 1024 % 0-1023 : private
-\countdef \c_syst_min_allocated_write = 63 \c_syst_min_allocated_write = 0
-\countdef \c_syst_max_allocated_write = 64 \c_syst_max_allocated_write = 127
+\countdef \c_syst_min_allocated_attribute = 62 \c_syst_min_allocated_attribute = 1024 % 127-1023 : private
+\countdef \c_syst_min_allocated_write = 63 \c_syst_min_allocated_write = 0 % luatex >= 0.82
+\countdef \c_syst_max_allocated_write = 64 \c_syst_max_allocated_write = 127 % luatex >= 0.82
\countdef \c_syst_last_allocated_count = 32 \c_syst_last_allocated_count = \c_syst_min_allocated_register
\countdef \c_syst_last_allocated_dimen = 33 \c_syst_last_allocated_dimen = \c_syst_min_allocated_register
@@ -220,10 +212,10 @@
% A few traditional allocations (these might go):
-\countdef \count@ 255 % hm, used in \newif .. todo: replace it there
-\dimendef \dimen@ 0
-\dimendef \dimen@i 1 % global only
-\dimendef \dimen@ii 2
+\countdef \count@ = 255 % hm, used in \newif .. todo: replace it there
+\dimendef \dimen@ = 0
+\dimendef \dimen@i = 1 % global only
+\dimendef \dimen@ii = 2
%D So, effectively we start allocating from 256 and upwards. The inserts sit in the
%D range 128 upto 254. Page numbers use the counters 0 upto 9 and the pagebox is
@@ -266,7 +258,8 @@
% %D The next definitions are really needed (in \CONTEXT):
-\newlinechar\newlineasciicode \edef\outputnewlinechar{\Uchar\newlineasciicode} % {^^J}
+%newlinechar=10 \def\outputnewlinechar{\rawcharacter{10}}
+\newlinechar=10 \edef\outputnewlinechar{^^J}
%D One reason to start high with allocation is that it permits us to allocate
%D consecutive ranges more easily, for instance if for \MPLIB\ we want to allocate a
@@ -275,8 +268,7 @@
%D as all engines now provide many registers we removed all traces.
\ifdefined\writestatus \else
- %\normalprotected\def\writestatus#1#2{\immediate\write\statuswrite{#1: #2}}
- \normalprotected\def\writestatus#1#2{\message{#1: #2}}
+ \normalprotected\def\writestatus#1#2{\immediate\write\statuswrite{#1: #2}}
\fi
\def\syst_basics_allocate_yes#1#2#3#4#5% last class method max name
@@ -312,7 +304,6 @@
%D 128-1023 are private and should not be touched.
\let\attributeunsetvalue\c_syst_min_counter_value % used to be \minusone
-
\normalprotected\def\newattribute{\syst_basics_allocate\c_syst_last_allocated_attribute\attribute\attributedef\c_syst_max_allocated_register}
%D Not used by \CONTEXT\ but for instance \PICTEX\ needs it. It's a trick to force
@@ -353,10 +344,6 @@
\newtoks \scratchtoksfour \newtoks \scratchtoksfive \newtoks \scratchtokssix
\newbox \scratchboxfour \newbox \scratchboxfive \newbox \scratchboxsix
-\newcount\globalscratchcounterone
-\newcount\globalscratchcountertwo
-\newcount\globalscratchcounterthree
-
%D \macros
%D {tempstring}
@@ -408,19 +395,19 @@
%D More allocations:
-\newskip \zeroskip \zeroskip 0pt plus 0pt minus 0pt
-\newdimen \zeropoint \zeropoint 0pt
-\newdimen \onepoint \onepoint 1pt
-\newdimen \halfapoint \halfapoint 0.5pt
-\newdimen \maxdimen \maxdimen 16383.99999pt
-\newcount \maxcount \maxcount 2147483647
-\newdimen \onebasepoint \onebasepoint 1bp
-\newdimen \scaledpoint \scaledpoint 1sp
-\newdimen \thousandpoint \thousandpoint 1000pt
-\newmuskip\zeromuskip \zeromuskip 0mu
-\newmuskip\onemuskip \onemuskip 1mu
+\newskip \zeroskip \zeroskip = 0pt plus 0pt minus 0pt
+\newdimen \zeropoint \zeropoint = 0pt
+\newdimen \onepoint \onepoint = 1pt
+\newdimen \halfapoint \halfapoint = 0.5pt
+\newdimen \maxdimen \maxdimen = 16383.99999pt
+\newcount \maxcount \maxcount = 2147483647
+\newdimen \onebasepoint \onebasepoint = 1bp
+\newdimen \scaledpoint \scaledpoint = 1sp
+\newdimen \thousandpoint \thousandpoint = 1000pt
+\newmuskip\zeromuskip \zeromuskip = 0mu
+\newmuskip\onemuskip \onemuskip = 1mu
-\newmuskip\muquad \muquad 18mu
+\newmuskip\muquad \muquad = 18mu
\let\points \onepoint
\let\halfpoint\halfapoint
@@ -429,35 +416,32 @@
%D And even more: (todo: countdefs 60+)
-%newcount\minusone \minusone -1
-\newcount\minustwo \minustwo -2
-%chardef \zerocount 0
-%chardef \plusone 1
-\chardef \plustwo 2
-\chardef \plusthree 3
-\chardef \plusfour 4
-\chardef \plusfive 5
-\chardef \plussix 6
-\chardef \plusseven 7
-\chardef \pluseight 8
-\chardef \plusnine 9
-\chardef \plusten 10
-\chardef \plussixteen 16
-\chardef \plusfifty 50
-\chardef \plushundred 100
-\chardef \plusonehundred 100
-\chardef \plustwohundred 200
-\chardef \plusfivehundred 500
-\chardef \pluscxxvii 127
-\chardef \pluscxxviii 128
-\chardef \pluscclv 255
-\chardef \pluscclvi 256
-\chardef \plusthousand 1000
-\chardef \plustenthousand 10000
-\chardef \plustwentythousand 20000
-\chardef \medcard 32768
-\chardef \maxcard 65536 % pdftex has less mathchars
-\chardef \maxcardminusone 65535
+%newcount \minusone \minusone = -1
+\newcount \minustwo \minustwo = -2
+%chardef \zerocount = 0
+%chardef \plusone = 1
+\chardef \plustwo = 2
+\chardef \plusthree = 3
+\chardef \plusfour = 4
+\chardef \plusfive = 5
+\chardef \plussix = 6
+\chardef \plusseven = 7
+\chardef \pluseight = 8
+\chardef \plusnine = 9
+\chardef \plusten = 10
+\chardef \plussixteen = 16
+\chardef \plushundred = 100
+\chardef \plustwohundred = 200
+\chardef \pluscxxvii = 127
+\chardef \pluscxxviii = 128
+\chardef \pluscclv = 255
+\chardef \pluscclvi = 256
+\chardef \plusthousand = 1000
+\chardef \plustenthousand = 10000
+\chardef \plustwentythousand = 20000
+\chardef \medcard = 32768
+\chardef \maxcard = 65536 % pdftex has less mathchars
+\chardef \maxcardminusone = 65535
%D \macros
%D {doubleexpandafter,tripleexpandafter,expanded,startexpanded}
@@ -478,8 +462,8 @@
\def\unvoidbox{\unhbox\voidbox}
\def\emptybox {\box \voidbox} % used in initializations so no attributes
-\def\emptyvbox{\normalvpack{}} % no copy as we need to set attributes
-\def\emptyhbox{\normalhpack{}} % no copy as we need to set attributes
+\def\emptyvbox{\normalvbox{}} % no copy as we need to set attributes
+\def\emptyhbox{\normalhbox{}} % no copy as we need to set attributes
\let\leavevmode\unvoidbox % we prefer to use \dontleavehmode
@@ -522,47 +506,21 @@
%D creates \type {\footrue}, \type {\foofalse} to go with \type {\iffoo}.
%D \stopnarrower
-% \normalprotected\def\newif#1%
-% {\count@\escapechar
-% \escapechar\minusone
-% \expandafter\expandafter\expandafter\def\new_if #1{true}{\let#1\iftrue }%
-% \expandafter\expandafter\expandafter\def\new_if#1{false}{\let#1\iffalse}%
-% \new_if#1{false}% the condition starts out false
-% \escapechar\count@}
-%
-% \def\new_if#1#2%
-% {\csname\expandafter\if@\string#1#2\endcsname}
-%
-% \bgroup % `if' is required
-% \uccode`1=`i \uccode`2=`f \uppercase{\gdef\if@12{}}
-% \egroup
+\normalprotected\def\newif#1%
+ {\count@\escapechar
+ \escapechar\minusone
+ \expandafter\expandafter\expandafter\def\@if #1{true}{\let#1\iftrue }%
+ \expandafter\expandafter\expandafter\def\@if#1{false}{\let#1\iffalse}%
+ \@if#1{false}% the condition starts out false
+ \escapechar\count@}
-% We use \csstring so there is no need to push/pop escapechar.
-% We use different names so that we get a better error message.
-%
-% \normalprotected\def\newif#1%
-% {\let\new_if_saved\newif
-% \let\newif\new_if_check
-% \expandafter\expandafter\expandafter\def\new_if_cs #1{true}{\let#1\iftrue }%
-% \expandafter\expandafter\expandafter\def\new_if_cs#1{false}{\let#1\iffalse}%
-% \new_if_cs#1{false}%
-% \let\newif\new_if_saved}
-%
-% \normalprotected\def\new_if_cs#1#2%
-% {\csname\expandafter\newif\csstring#1#2\endcsname}
-%
-% We wrap all into one macro:
+\def\@if#1#2%
+ {\csname\expandafter\if@\string#1#2\endcsname}
-\normalprotected\def\newif#1%
- {\let\new_if_saved\newif
- \let\newif\new_if_check
- \expandafter\def\csname\expandafter\newif\csstring#1true\endcsname {\let#1\iftrue }%
- \expandafter\def\csname\expandafter\newif\csstring#1false\endcsname{\let#1\iffalse}%
- \csname\expandafter\newif\csstring#1false\endcsname
- \let\newif\new_if_saved}
+\bgroup % `if' is required
+
+ \uccode`1=`i \uccode`2=`f \uppercase{\gdef\if@12{}}
-\bgroup
- \normalexpanded{\gdef\noexpand\new_if_check\string i\string f{}}
\egroup
%D Let's test this one:
@@ -576,11 +534,32 @@
%D A few shortcuts:
+\normalprotected\def\glet {\global \let }
\normalprotected\def\udef {\normalprotected\def }
\normalprotected\def\ugdef{\normalprotected\gdef}
\normalprotected\def\uedef{\normalprotected\edef}
\normalprotected\def\uxdef{\normalprotected\xdef}
+%D The catcode constants will be redefined in later catcode related modules
+%D but they can be used in the same way.
+
+\chardef\escapecatcode = 0
+\chardef\begingroupcatcode = 1
+\chardef\endgroupcatcode = 2
+\chardef\mathshiftcatcode = 3
+\chardef\alignmentcatcode = 4
+\chardef\endoflinecatcode = 5
+\chardef\parametercatcode = 6
+\chardef\superscriptcatcode = 7
+\chardef\subscriptcatcode = 8
+\chardef\ignorecatcode = 9
+\chardef\spacecatcode = 10
+\chardef\lettercatcode = 11
+\chardef\othercatcode = 12
+\chardef\activecatcode = 13
+\chardef\commentcatcode = 14
+\chardef\invalidcatcode = 15
+
%D For a while we keep the following, as systems like tikz need it. Best
%D not use that one \CONTEXT.
@@ -810,8 +789,7 @@
\normalprotected\def\newmacro #1{\let#1\empty}
\normalprotected\def\setnewmacro#1{\let#1}
-\def\!!zerocount{0}
-\def\!!plusone {1}
+\def\!!plusone{1}
\normalprotected\def\newfraction#1{\let#1\!!plusone}
@@ -894,28 +872,28 @@
\let\endgraf\par
\let\endline\cr
+\def\space{ }
+\def\empty{}
+
\normalprotected\def\null{\hpack{}}
%D The following two might be overloaded later on but some modules need then
%D earlier. These functionality is reflected in the name and will not change.
-% \bgroup
-% \catcode`\^^M=\activecatcode%
-% \gdef\obeylines{\catcode`\^^M\activecatcode \let^^M\par}%
-% \glet^^M\par%
-% \egroup
-%
-% \bgroup
-% \gdef\obeyspaces{\catcode`\ \activecatcode}%
-% \obeyspaces\glet =\space%
-% \egroup
+\bgroup
+ \catcode`\^^M=\activecatcode%
+ \gdef\obeylines{\catcode`\^^M\activecatcode \let^^M\par}%
+ \global\let^^M\par%
+\egroup
-\def\obeylines {\catcode\endoflineasciicode\activecatcode\letcharcode\endoflineasciicode\par}
-\def\obeyspaces{\catcode\spaceasciicode \activecatcode\letcharcode\spaceasciicode \space}
+\bgroup
+ \gdef\obeyspaces{\catcode`\ \activecatcode}%
+ \obeyspaces\global\let =\space%
+\egroup
-% %D A constant:
-%
-% \let\endoflinetoken=^^M
+%D A constant:
+
+\let\endoflinetoken=^^M
%D Also needed might be a simple loop structure and we borrow plain \TEX's one
%D as it is often expected to be present and it is about the fastest you can
@@ -970,12 +948,6 @@
\lineskip = 1pt
\lineskiplimit = 0pt
-%D Sometimes kerns make more sense than glue but we need to be in the
-%D right mode:
-
-\normalprotected\def\vkern{\ifhmode\par \fi\kern}
-\normalprotected\def\hkern{\ifvmode\dontleavehmode\fi\kern}
-
%D Again a few kind-of-extensions the core. These come from plain \TEX\ but
%D are probably not used in \CONTEXT.
@@ -1004,47 +976,116 @@
%D Backend:
-\ifdefined\pdfvariable
-
- \pdfvariable compresslevel \plusthree
- \pdfvariable objcompresslevel \plusone
- % \pdfvariable recompress \zerocount
- \pdfvariable decimaldigits \plussix
- \pdfvariable gamma \plusthousand
- \pdfvariable imageresolution 300
- \pdfvariable imageapplygamma \zerocount
- \pdfvariable imagegamma 2200
- \pdfvariable imagehicolor \plusone
- \pdfvariable imageaddfilename \plusone
- \pdfvariable pkresolution 1200
- \pdfvariable inclusioncopyfonts \plusone
- \pdfvariable inclusionerrorlevel \zerocount
- \pdfvariable gentounicode \plusone
- \pdfvariable omitcidset \plusone
- \pdfvariable omitcharset \plusone
- \pdfvariable pagebox \zerocount
- % \pdfvariable majorversion % \plusone
- \pdfvariable minorversion \plusseven
- \pdfvariable uniqueresname \zerocount
- \pdfvariable horigin 1in
- \pdfvariable vorigin 1in
- % \pdfvariable linkmargin \zeropoint
- % \pdfvariable destmargin \zeropoint
- % \pdfvariable threadmargin \zeropoint
- % \pdfvariable xformmargin \zeropoint
- \pdfvariable pkfixeddpi \plusone
- \pdfvariable ignoreunknownimages \zerocount
-
-\fi
-
-\let\nopdfcompression \relax
-\let\onlypdfobjectcompression\relax
-\let\maximumpdfcompression \relax
-\let\normalpdfcompression \relax
-
-\ifdefined\outputmode
- \outputmode \zerocount % we generate the format in this mode
-\fi
+% For the moment we define some \pdf... helpers but this will move to the backend
+% module after which the official interfaces have to be used. This is needed for
+% modules not made by ctx developers.
+
+\normalprotected\def\pdfliteral {\pdfextension literal }
+\normalprotected\def\pdfcolorstack {\pdfextension colorstack }
+\normalprotected\def\pdfsetmatrix {\pdfextension setmatrix }
+\normalprotected\def\pdfsave {\pdfextension save\relax}
+\normalprotected\def\pdfrestore {\pdfextension restore\relax}
+\normalprotected\def\pdfobj {\pdfextension obj }
+\normalprotected\def\pdfrefobj {\pdfextension refobj }
+\normalprotected\def\pdfannot {\pdfextension annot }
+\normalprotected\def\pdfstartlink {\pdfextension startlink }
+\normalprotected\def\pdfendlink {\pdfextension endlink\relax}
+\normalprotected\def\pdfoutline {\pdfextension outline }
+\normalprotected\def\pdfdest {\pdfextension dest }
+\normalprotected\def\pdfthread {\pdfextension thread }
+\normalprotected\def\pdfstartthread {\pdfextension startthread }
+\normalprotected\def\pdfendthread {\pdfextension endthread\relax}
+\normalprotected\def\pdfinfo {\pdfextension info }
+\normalprotected\def\pdfcatalog {\pdfextension catalog }
+\normalprotected\def\pdfnames {\pdfextension names }
+\normalprotected\def\pdfincludechars {\pdfextension includechars }
+\normalprotected\def\pdffontattr {\pdfextension fontattr }
+\normalprotected\def\pdfmapfile {\pdfextension mapfile }
+\normalprotected\def\pdfmapline {\pdfextension mapline }
+\normalprotected\def\pdftrailer {\pdfextension trailer }
+\normalprotected\def\pdfglyphtounicode {\pdfextension glyphtounicode }
+
+% \chardef\pdfnofullbanner = 1
+% \chardef\pdfnofilename = 2
+% \chardef\pdfnopagenumber = 4
+% \chardef\pdfnoinfodict = 8
+% \chardef\pdfnocreator = 16
+% \chardef\pdfnocreationdate = 32
+% \chardef\pdfnomoddate = 64
+% \chardef\pdfnoproducer = 128
+% \chardef\pdfnotrapped = 256
+% \chardef\pdfnoid = 512
+
+\def\pdftexversion {\numexpr\pdffeedback version\relax}
+\def\pdftexrevision {\pdffeedback revision}
+\def\pdflastlink {\numexpr\pdffeedback lastlink\relax}
+\def\pdfretval {\numexpr\pdffeedback retval\relax}
+\def\pdflastobj {\numexpr\pdffeedback lastobj\relax}
+\def\pdflastannot {\numexpr\pdffeedback lastannot\relax}
+\def\pdfxformname {\numexpr\pdffeedback xformname\relax}
+\def\pdfcreationdate {\pdffeedback creationdate}
+\def\pdffontname {\numexpr\pdffeedback fontname\relax}
+\def\pdffontobjnum {\numexpr\pdffeedback fontobjnum\relax}
+\def\pdffontsize {\dimexpr\pdffeedback fontsize\relax}
+\def\pdfpageref {\numexpr\pdffeedback pageref\relax}
+\def\pdfcolorstackinit {\pdffeedback colorstackinit}
+
+\let\pdfxform \saveboxresource
+\let\pdflastxform \lastsavedboxresourceindex
+\let\pdfrefxform \useboxresource
+\let\pdfximage \saveimageresource
+\let\pdflastximage \lastsavedimageresourceindex
+\let\pdflastximagepages \lastsavedimageresourcepages
+\let\pdfrefximage \useimageresource
+\let\pdfsavepos \savepos
+\let\pdflastxpos \lastxpos
+\let\pdflastypos \lastypos
+
+\edef\pdfcompresslevel {\pdfvariable compresslevel} \pdfcompresslevel \plusnine
+\edef\pdfobjcompresslevel {\pdfvariable objcompresslevel} \pdfobjcompresslevel \plusone
+\edef\pdfdecimaldigits {\pdfvariable decimaldigits} \pdfdecimaldigits \plusfive
+\edef\pdfgamma {\pdfvariable gamma} \pdfgamma \plusthousand
+\edef\pdfimageresolution {\pdfvariable imageresolution} \pdfimageresolution 300
+\edef\pdfimageapplygamma {\pdfvariable imageapplygamma} \pdfimageapplygamma \zerocount
+\edef\pdfimagegamma {\pdfvariable imagegamma} \pdfimagegamma 2200
+\edef\pdfimagehicolor {\pdfvariable imagehicolor} \pdfimagehicolor \plusone
+\edef\pdfimageaddfilename {\pdfvariable imageaddfilename} \pdfimageaddfilename \plusone
+\edef\pdfpkresolution {\pdfvariable pkresolution} \pdfpkresolution 1200
+\edef\pdfinclusioncopyfonts {\pdfvariable inclusioncopyfonts} \pdfinclusioncopyfonts \plusone
+\edef\pdfinclusionerrorlevel {\pdfvariable inclusionerrorlevel} \pdfinclusionerrorlevel \zerocount
+\edef\pdfgentounicode {\pdfvariable gentounicode} \pdfgentounicode \plusone
+\edef\pdfpagebox {\pdfvariable pagebox} \pdfpagebox \zerocount
+\edef\pdfmajorversion {\pdfvariable majorversion} % \pdfmajorversion \plusone
+\edef\pdfminorversion {\pdfvariable minorversion} \pdfminorversion \plusseven
+\edef\pdfuniqueresname {\pdfvariable uniqueresname} \pdfuniqueresname \zerocount
+\edef\pdfhorigin {\pdfvariable horigin} \pdfhorigin 1in
+\edef\pdfvorigin {\pdfvariable vorigin} \pdfvorigin \pdfhorigin
+\edef\pdflinkmargin {\pdfvariable linkmargin} \pdflinkmargin \zeropoint
+\edef\pdfdestmargin {\pdfvariable destmargin} \pdfdestmargin \zeropoint
+\edef\pdfthreadmargin {\pdfvariable threadmargin} \pdfthreadmargin \zeropoint
+\edef\pdfxformmargin {\pdfvariable xformmargin} \pdfxformmargin \zeropoint
+\edef\pdfpkfixeddpi {\pdfvariable pkfixeddpi} \pdfpkfixeddpi \plusone
+\edef\pdfignoreunknownimages {\pdfvariable ignoreunknownimages} \pdfignoreunknownimages \zerocount
+
+\edef\pdfpagesattr {\pdfvariable pagesattr}
+\edef\pdfpageattr {\pdfvariable pageattr}
+\edef\pdfpageresources {\pdfvariable pageresources}
+\edef\pdfxformattr {\pdfvariable xformattr}
+\edef\pdfxformresources {\pdfvariable xformresources}
+\edef\pdfpkmode {\pdfvariable pkmode}
+
+\edef\pdfsuppressoptionalinfo{\pdfvariable suppressoptionalinfo }
+\let \pdfsuppressptexinfo \pdfsuppressoptionalinfo
+\edef\pdftrailerid {\pdfvariable trailerid }
+\edef\pdfinfoomitdate {\pdfvariable suppressoptionalinfo \numexpr32+64\relax}
+
+\normalprotected\def\nopdfcompression {\pdfobjcompresslevel\zerocount \pdfcompresslevel\zerocount}
+\normalprotected\def\maximumpdfcompression{\pdfobjcompresslevel\plusnine \pdfcompresslevel\plusnine }
+\normalprotected\def\normalpdfcompression {\pdfobjcompresslevel\plusthree \pdfcompresslevel\plusthree}
+
+\normalpdfcompression
+
+\outputmode \zerocount % we generate the format in this mode
%D Basic status stuff.
@@ -1061,10 +1102,12 @@
\def\dividenumber#1#2{\the\numexpr(#2-(#1/2))/#1\relax}
\ifdefined\texenginename \else
+ %edef\texenginename{luatex}
\edef\texenginename{\directlua{tex.print(LUATEXENGINE)}}
\fi
\ifdefined\texengineversion \else
+ %edef\texengineversion{\dividenumber{100}\luatexversion.\modulonumber{100}\luatexversion.\luatexrevision}
\edef\texengineversion{\directlua{tex.print(LUATEXVERSION)}}
\fi
@@ -1077,39 +1120,43 @@
\savingvdiscards\plusone
%D We only can set this one via directives (system.synctex) and we only support
-%D the context variant. This will go away completely.
+%D the context variant.
\let\synctex\undefined \newcount\synctex \let\normalsynctex\synctex
%D We get rid of the funny \TEX\ offset defaults of one inch by setting them to zero.
-\voffset\zeropoint \let\voffset\relax \newdimen\voffset \let\normalvoffset\voffset
-\hoffset\zeropoint \let\hoffset\relax \newdimen\hoffset \let\normalhoffset\hoffset
-
-\ifdefined\pageleftoffset
- \let\pageleftoffset \hoffset \let\normalpageleftoffset \hoffset
- \let\pagerightoffset \hoffset \let\normalpagerightoffset \hoffset
- \let\pagetopoffset \voffset \let\normalpagetopoffset \voffset
- \let\pagebottomoffset\voffset \let\normalpagebottomoffset\voffset
-\fi
+\voffset\zeropoint \let\voffset\relax \newdimen\voffset % prevent messing up
+\hoffset\zeropoint \let\hoffset\relax \newdimen\hoffset % prevent messing up
%D Handy.
-\suppresslongerror \plusone
-\suppressoutererror \plusone
-\suppressmathparerror \plusone
-\suppressifcsnameerror\plusone
+\suppresslongerror \plusone % \let\suppresslongerror \relax
+\suppressoutererror \plusone % \let\suppressoutererror \relax
+\suppressmathparerror \plusone % \let\suppressmathparerror \relax
+\suppressifcsnameerror\plusone % \let\suppressifcsnameerror\relax
-\let \suppresslongerror \relax
-\newcount\suppresslongerror \let\normalsuppresslongerror \suppresslongerror
-\let \suppressoutererror \suppresslongerror \let\normalsuppressoutererror \suppresslongerror
-\let \suppressmathparerror \suppresslongerror \let\normalsuppressmathparerror \suppresslongerror
-\let \suppressifcsnameerror\suppresslongerror \let\normalsuppressifcsnameerror\suppresslongerror
+\matheqnogapstep \zerocount % fr now
-\matheqnogapstep\zerocount % for now
+%D While cleaning this code up a bit I was listening to Heather Nova's \CD\ Redbird.
+%D The first song on that \CD\ ends with a few lines suitable for ending this
+%D initialization module:
+%D
+%D \startlines
+%D And there's so much I can do for you
+%D Given time I know that I can prove
+%D Now my world is opened up to you
+%D Come inside
+%D
+%D Welcome to my life
+%D Welcome to my world
+%D Come inside
+%D \stoplines
+%D
+%D So let's see what \TEX\ can do now that we've opened up the basic machinery.
-%D Now we define a few helpers that we need in a very early stage. We have no
-%D message system yet but redundant definitions are fatal anyway.
+%D Now we define a few helpers that we need in a very early stage. We hav eno message system
+%D yet but redundant definitions are fatal anyway.
\newcount\c_syst_helpers_n_of_namespaces \c_syst_helpers_n_of_namespaces\pluseight % 1-8 reserved for catcodes
@@ -1136,4 +1183,30 @@
\let\normalstartdmath \Ustartdisplaymath
\let\normalstopdmath \Ustopdisplaymath
+%D For now:
+
+\ifdefined\protrusionboundary \else \let\protrusionboundary\boundary \fi
+\ifdefined\wordboundary \else \let\wordboundary \noboundary \fi
+
+\ifdefined\mathrulesfam \else \newcount\mathrulesfam \fi
+\ifdefined\mathrulesmode \else \newcount\mathrulesmode \fi
+\ifdefined\mathsurroundmode \else \newcount\mathsurroundmode \fi
+\ifdefined\mathitalicsmode \else \newcount\mathitalicsmode \fi
+\ifdefined\mathdelimitersmode \else \newcount\mathdelimitersmode \fi
+\ifdefined\mathscriptboxmode \else \newcount\mathscriptboxmode \fi
+
+\ifdefined\hyphenpenaltymode \else \newcount\hyphenpenaltymode \fi
+\ifdefined\automatichyphenpenalty \else \newcount\automatichyphenpenalty \fi
+\ifdefined\automatichyphenmode \else \newcount\automatichyphenmode \fi
+\ifdefined\explicithyphenpenalty \else \newcount\explicithyphenpenalty \fi
+
+\ifdefined\explicitdiscretionary \else \let\explicitdiscretionary \- \fi
+\ifdefined\automaticdiscretionary \else \def\automaticdiscretionary{\Uchar\exhyphenchar} \fi
+
+\ifdefined\mathpenaltiesmode \else \newcount\mathpenaltiesmode \fi
+\ifdefined\prebinoppenalty \else \newcount\prebinoppenalty \fi
+\ifdefined\prerelpenalty \else \newcount\prerelpenalty \fi
+
+\ifdefined\breakafterdirmode \else \newcount\breakafterdirmode \fi
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkiv/syst-lua.lua b/Master/texmf-dist/tex/context/base/mkiv/syst-lua.lua
index a63c49e8faf..35cd221238f 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/syst-lua.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/syst-lua.lua
@@ -15,10 +15,10 @@ local context = context
local implement = interfaces.implement
local ctx_protected_cs = context.protected.cs -- more efficient
-local ctx_firstoftwoarguments = context.firstoftwoarguments
-local ctx_secondoftwoarguments = context.secondoftwoarguments
-local ctx_firstofoneargument = context.firstofoneargument
-local ctx_gobbleoneargument = context.gobbleoneargument
+local ctx_firstoftwoarguments = ctx_protected_cs.firstoftwoarguments
+local ctx_secondoftwoarguments = ctx_protected_cs.secondoftwoarguments
+local ctx_firstofoneargument = ctx_protected_cs.firstofoneargument
+local ctx_gobbleoneargument = ctx_protected_cs.gobbleoneargument
local two_strings = interfaces.strings[2]
@@ -105,8 +105,7 @@ local p_first = C((1-P(",")-P(-1))^0)
implement {
name = "firstinset",
arguments = "string",
- actions = function(str) context(lpegmatch(p_first,str or "")) end,
- public = true,
+ actions = function(str) context(lpegmatch(p_first,str or "")) end
}
implement {
diff --git a/Master/texmf-dist/tex/context/base/mkiv/syst-lua.mkiv b/Master/texmf-dist/tex/context/base/mkiv/syst-lua.mkiv
index 3600dac3460..ca5f9679ff8 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/syst-lua.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/syst-lua.mkiv
@@ -19,42 +19,6 @@
\def\expdoif #1#2{\clf_doifsame {#1}{#2}}
\def\expdoifnot #1#2{\clf_doifnotsame {#1}{#2}}
-%D Here is variant using a brainwave of the 12\high{+} hour \quotation {Long Road
-%D Out of Eden}\footnote {Eden being Backo\TeX\ 2018, where the virtues of the \type
-%D {\expanded} primitive were mentioned in talks.} trip. For now I don't really see
-%D other useful applications.
-
-\ifdefined\immediateassignment
-
- \def\expandeddoif#1#2%
- {\immediateassignment\edef\m_syst_string_one{#1}%
- \immediateassignment\edef\m_syst_string_two{#2}%
- \ifx\m_syst_string_one\m_syst_string_two
- \expandafter\firstofoneargument
- \else
- \expandafter\gobbleoneargument
- \fi}
-
- \def\expandeddoifnot#1#2%
- {\immediateassignment\edef\m_syst_string_one{#1}%
- \immediateassignment\edef\m_syst_string_two{#2}%
- \ifx\m_syst_string_one\m_syst_string_two
- \expandafter\gobbleoneargument
- \else
- \expandafter\firstofoneargument
- \fi}
-
- \def\expandeddoifelse#1#2%
- {\immediateassignment\edef\m_syst_string_one{#1}%
- \immediateassignment\edef\m_syst_string_two{#2}%
- \ifx\m_syst_string_one\m_syst_string_two
- \expandafter\firstoftwoarguments
- \else
- \expandafter\secondoftwoarguments
- \fi}
-
-\fi
-
% \testfeatureonce{100000}{\doifelse{hello world}{here i am}{}} % 0.3
% \testfeatureonce{100000}{\expandabledoifelse{hello world}{here i am}{}} % 1.5
diff --git a/Master/texmf-dist/tex/context/base/mkiv/tabl-com.mkiv b/Master/texmf-dist/tex/context/base/mkiv/tabl-com.mkiv
index 01a55e313f7..e9008636886 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/tabl-com.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/tabl-com.mkiv
@@ -15,51 +15,39 @@
\unprotect
-\let\AR\relax
-\let\BA\relax
-\let\BC\relax
-\let\BL\relax
+\let\VL\relax
+
+\let\NC\relax
+\let\RC\relax
+\let\HC\relax
+\let\EQ\relax
+
+\let\RQ\relax
+\let\HQ\relax
+
+\let\NG\relax
+\let\NN\relax
+\let\ND\relax
+\let\NR\relax
+\let\NB\relax
+
\let\CC\relax
\let\CL\relax
\let\CM\relax
\let\CR\relax
-\let\DB\relax
-\let\EQ\relax
-\let\FB\relax
-\let\FL\relax
+
+\let\SR\relax
\let\FR\relax
-\let\HC\relax
-\let\HL\relax
-\let\HQ\relax
-\let\HR\relax
-\let\LB\relax
-\let\LL\relax
+\let\MR\relax
\let\LR\relax
+\let\AR\relax
+
+\let\FL\relax
\let\ML\relax
-\let\MR\relax
-\let\NA\relax
-\let\NB\relax
-\let\NC\relax
-\let\ND\relax
-\let\NF\relax
-\let\NG\relax
-\let\NI\relax
-\let\NL\relax
-\let\NN\relax
-\let\NP\relax
-\let\NR\relax
-\let\PB\relax
-\let\RC\relax
-\let\RQ\relax
-\let\SR\relax
+\let\LL\relax
\let\TL\relax
-\let\VL\relax
-
-\installmacrostack\BC
-\installmacrostack\EC
-\installmacrostack\EQ
-\installmacrostack\NC
-\installmacrostack\NN
-\installmacrostack\NR
+\let\BL\relax
+\let\HL\relax
+\let\HR\relax
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkiv/tabl-ltb.mkiv b/Master/texmf-dist/tex/context/base/mkiv/tabl-ltb.mkiv
index 20ae8bf5a2b..3147fa1cc1a 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/tabl-ltb.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/tabl-ltb.mkiv
@@ -705,14 +705,14 @@
\else
\t_tabl_lines_head\emptytoks
\fi
- \push_macro_BC
- \push_macro_EC
+ \pushmacro\BC
+ \pushmacro\EC
\def\BC##1\EC{\appendtoks##1\to\t_tabl_lines_head}%
\let\EC\relax} % signal
\unexpanded\def\tabl_lines_EH
- {\pop_macro_EC
- \pop_macro_BC
+ {\popmacro\EC
+ \popmacro\BC
\expandafter\startlinetablehead\the\t_tabl_lines_head\stoplinetablehead}
\let\startlinetablebody\relax
diff --git a/Master/texmf-dist/tex/context/base/mkiv/tabl-ntb.mkiv b/Master/texmf-dist/tex/context/base/mkiv/tabl-ntb.mkiv
index ca3d78800ac..9acf2ef363a 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/tabl-ntb.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/tabl-ntb.mkiv
@@ -271,10 +271,10 @@
\letvalue{\??naturaltablesqueeze\v!broad}\donetrue
\letvalue{\??naturaltablesqueeze\v!local}\donetrue
-\def\tabl_ntb_let_gal{\expandafter\glet\csname\??naturaltablegal\m_tabl_tbl_level\endcsname}
+\def\tabl_ntb_let_gal{\global\expandafter\let\csname\??naturaltablegal\m_tabl_tbl_level\endcsname}
\def\tabl_ntb_get_gal{\csname\??naturaltablegal\m_tabl_tbl_level\endcsname}
-\def\tabl_ntb_let_tal#1{\expandafter\glet\csname\??naturaltabletal\m_tabl_tbl_level:\number#1\endcsname}
+\def\tabl_ntb_let_tal#1{\global\expandafter\let\csname\??naturaltabletal\m_tabl_tbl_level:\number#1\endcsname}
\def\tabl_ntb_get_tal#1{\csname\??naturaltabletal\m_tabl_tbl_level:\number#1\endcsname}
\def\tabl_ntb_set_nob#1{\expandafter\let\csname\??naturaltablenob\m_tabl_tbl_level:\number#1\endcsname\plusone}
@@ -291,8 +291,8 @@
%def\tabl_ntb_set_wd#1#2{\expandafter\xdef\csname\??naturaltablewd\m_tabl_tbl_level:\number#1:\number#2\endcsname} % global !
\def\tabl_ntb_set_ht#1#2{\expandafter\xdef\csname\??naturaltableht\m_tabl_tbl_level:\number#1:\number#2\endcsname} % global !
-%def\tabl_ntb_let_wd#1#2{\expandafter\glet\csname\??naturaltablewd\m_tabl_tbl_level:\number#1:\number#2\endcsname} % global !
-\def\tabl_ntb_let_ht#1#2{\expandafter\glet\csname\??naturaltableht\m_tabl_tbl_level:\number#1:\number#2\endcsname} % global !
+%def\tabl_ntb_let_wd#1#2{\global\expandafter\let\csname\??naturaltablewd\m_tabl_tbl_level:\number#1:\number#2\endcsname} % global !
+\def\tabl_ntb_let_ht#1#2{\global\expandafter\let\csname\??naturaltableht\m_tabl_tbl_level:\number#1:\number#2\endcsname} % global !
\def\tabl_ntb_get_tag#1#2{\csname\??naturaltabletag\m_tabl_tbl_level:\number#1:\number#2\endcsname}
\def\tabl_ntb_get_col#1#2{\csname\??naturaltablecol\m_tabl_tbl_level:\number#1:\number#2\endcsname}
@@ -306,10 +306,10 @@
\def\tabl_ntb_set_dis#1{\expandafter\xdef\csname\??naturaltabledis\m_tabl_tbl_level:\number#1\endcsname} % {#2} global !
\def\tabl_ntb_set_aut#1{\expandafter\xdef\csname\??naturaltableaut\m_tabl_tbl_level:\number#1\endcsname} % {#2} global !
-\def\tabl_ntb_let_wid#1{\expandafter\glet\csname\??naturaltablewid\m_tabl_tbl_level:\number#1\endcsname} % {#2} global !
-\def\tabl_ntb_let_hei#1{\expandafter\glet\csname\??naturaltablehei\m_tabl_tbl_level:\number#1\endcsname} % {#2} global !
-\def\tabl_ntb_let_dis#1{\expandafter\glet\csname\??naturaltabledis\m_tabl_tbl_level:\number#1\endcsname} % {#2} global !
-\def\tabl_ntb_let_aut#1{\expandafter\glet\csname\??naturaltableaut\m_tabl_tbl_level:\number#1\endcsname} % {#2} global !
+\def\tabl_ntb_let_wid#1{\global\expandafter\let\csname\??naturaltablewid\m_tabl_tbl_level:\number#1\endcsname} % {#2} global !
+\def\tabl_ntb_let_hei#1{\global\expandafter\let\csname\??naturaltablehei\m_tabl_tbl_level:\number#1\endcsname} % {#2} global !
+\def\tabl_ntb_let_dis#1{\global\expandafter\let\csname\??naturaltabledis\m_tabl_tbl_level:\number#1\endcsname} % {#2} global !
+\def\tabl_ntb_let_aut#1{\global\expandafter\let\csname\??naturaltableaut\m_tabl_tbl_level:\number#1\endcsname} % {#2} global !
\def\tabl_ntb_get_wid#1{\ifcsname\??naturaltablewid\m_tabl_tbl_level:\number#1\endcsname\lastnamedcs\else\zeropoint\fi}
\def\tabl_ntb_get_hei#1{\ifcsname\??naturaltablehei\m_tabl_tbl_level:\number#1\endcsname\lastnamedcs\else\zeropoint\fi}
@@ -1161,11 +1161,13 @@
\def\tabl_ntb_row_stop_boxed
{% \noindent % no, else double leftskip in narrower
- \etoksapp\t_tabl_ntb
- {% no need for init
- \tabl_ntb_row_align_start
- \the\t_tabl_ntb_row
- \tabl_ntb_row_align_stop}}
+ \normalexpanded
+ {\t_tabl_ntb
+ {\the\t_tabl_ntb
+ % no need for init
+ \tabl_ntb_row_align_start
+ \the\t_tabl_ntb_row
+ \tabl_ntb_row_align_stop}}}
\def\tabl_ntb_row_stop_split
{\ifcsname\??naturaltableset\m_tabl_tbl_level:\c!y++\the\c_tabl_ntb_current_row\endcsname
@@ -1175,11 +1177,13 @@
\fi}
\def\tabl_ntb_row_stop_split_nop
- {\etoksapp\t_tabl_ntb
- {\tabl_ntb_row_align_reset
- \tabl_ntb_row_align_start
- \the\t_tabl_ntb_row
- \tabl_ntb_row_align_stop}}
+ {\normalexpanded
+ {\t_tabl_ntb
+ {\the\t_tabl_ntb
+ \tabl_ntb_row_align_reset
+ \tabl_ntb_row_align_start
+ \the\t_tabl_ntb_row
+ \tabl_ntb_row_align_stop}}}
\def\tabl_ntb_row_stop_split_yes
{\begingroup
@@ -1188,11 +1192,13 @@
\xdef\m_tabl_ntb_after_split {\naturaltablelocalparameter\c!after}% to be checked
\xdef\m_tabl_ntb_same_page {\naturaltablelocalparameter\c!samepage}%
\endgroup
- \etoksapp\t_tabl_ntb
- {\tabl_ntb_row_align_set{\m_tabl_ntb_before_split}{\m_tabl_ntb_after_split}{\m_tabl_ntb_same_page}%
- \tabl_ntb_row_align_start
- \the\t_tabl_ntb_row
- \tabl_ntb_row_align_stop}}
+ \normalexpanded
+ {\t_tabl_ntb
+ {\the\t_tabl_ntb
+ \tabl_ntb_row_align_set{\m_tabl_ntb_before_split}{\m_tabl_ntb_after_split}{\m_tabl_ntb_same_page}%
+ \tabl_ntb_row_align_start
+ \the\t_tabl_ntb_row
+ \tabl_ntb_row_align_stop}}}
\unexpanded\def\tabl_ntb_row_align_set#1#2#3%
{\xdef\m_tabl_ntb_before_split{#1}%
@@ -1200,9 +1206,9 @@
\xdef\m_tabl_ntb_same_page {#3}}
\unexpanded\def\tabl_ntb_row_align_reset
- {\glet\m_tabl_ntb_before_split\empty
- \glet\m_tabl_ntb_after_split \empty
- \glet\m_tabl_ntb_same_page \empty}
+ {\global\let\m_tabl_ntb_before_split\empty
+ \global\let\m_tabl_ntb_after_split \empty
+ \global\let\m_tabl_ntb_same_page \empty}
\def\tabl_ntb_prelocate_error
{\writestatus\m!TABLE{fatal error: use \string\prelocateTBLrows\space to increase table memory (now: \the\c_tabl_prelocated_rows)}}
@@ -1219,10 +1225,12 @@
\tabl_ntb_prelocate_error
\fi}%
\def\tabl_ntb_row_stop
- {\etoksapp\t_tabl_ntb
- {\tabl_ntb_row_align_start
- \the\csname\??naturaltabletok\the\c_tabl_ntb_row\endcsname
- \tabl_ntb_row_align_stop}}%
+ {\normalexpanded
+ {\t_tabl_ntb
+ {\the\t_tabl_ntb
+ \tabl_ntb_row_align_start
+ \the\csname\??naturaltabletok\the\c_tabl_ntb_row\endcsname
+ \tabl_ntb_row_align_stop}}}%
\global\c_tabl_prelocated_rows#1\relax}
\def\tabl_ntb_prelocate_okay
@@ -1336,23 +1344,37 @@
{\global\advance\c_tabl_ntb_col\plusone
\kern\d_tabl_ntb_columndistance}
+% \setvalue{\??naturaltablecell\the\c_tabl_ntb_none}#1#2%
+% {\scratchcounter\tabl_ntb_get_col{#1}{#2}\relax
+% \ifnum\scratchcounter>\zerocount
+% \normalexpanded
+% {\t_tabl_ntb_row
+% {\the\t_tabl_ntb_row
+% \tabl_ntb_span{\the\scratchcounter}%
+% \tabl_ntb_plus}}%
+% \fi}
+
\setvalue{\??naturaltablecell\the\c_tabl_ntb_none}#1#2%
{\scratchcounter\tabl_ntb_get_col{#1}{#2}\relax
\ifnum\scratchcounter>\zerocount
- \etoksapp\t_tabl_ntb_row
- {\tabl_ntb_span{\the\scratchcounter}}%
+ \normalexpanded
+ {\t_tabl_ntb_row
+ {\the\t_tabl_ntb_row
+ \tabl_ntb_span{\the\scratchcounter}}}%
\fi}
\setvalue{\??naturaltablecell\the\c_tabl_ntb_cell}#1#2%
- {\toksapp\t_tabl_ntb_row{\tabl_ntb_pass #1 #2 }% space delimited -> less tokens
+ {\t_tabl_ntb_row\expandafter{\the\t_tabl_ntb_row\tabl_ntb_pass #1 #2 }% space delimited -> less tokens
\scratchcounter\tabl_ntb_get_col{#1}{#2}\relax
\ifnum\scratchcounter>\zerocount
- \etoksapp\t_tabl_ntb_row
- {\ifnum\scratchcounter=\plusone
- \tabl_ntb_plus
- \else
- \tabl_ntb_skip{\the\scratchcounter}%
- \fi}%
+ \normalexpanded
+ {\t_tabl_ntb_row
+ {\the\t_tabl_ntb_row
+ \ifnum\scratchcounter=\plusone
+ \tabl_ntb_plus
+ \else
+ \tabl_ntb_skip{\the\scratchcounter}%
+ \fi}}%
\fi}
\unexpanded\def\tabl_ntb_cell#1#2%
diff --git a/Master/texmf-dist/tex/context/base/mkiv/tabl-tab.mkiv b/Master/texmf-dist/tex/context/base/mkiv/tabl-tab.mkiv
index 631f29bc084..54b18a38590 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/tabl-tab.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/tabl-tab.mkiv
@@ -417,7 +417,7 @@
% Key "a": a{TOKENS} adds TOKENS to the right of (after) the template
\newtableformatkey a#1%
- {\toksapp\!taDataColumnTemplate{#1}%
+ {\!taDataColumnTemplate\expandafter{\the\!taDataColumnTemplate #1}%
\doreadtableformatkeys}
% Key "\{": Enclose template in braces.
@@ -435,7 +435,7 @@
\scratchtoks\emptytoks
\!thLoop
\ifnum\scratchcounter>\zerocount
- \toksapp\scratchtoks{#2}%
+ \scratchtoks\expandafter{\the\scratchtoks#2}%
\advance\scratchcounter\minusone
\repeat
\expandafter\doreadtableformatkeys\the\scratchtoks}
@@ -688,7 +688,7 @@
% extensions
\newtableformatkey q%
- {\let\!tqStyle\empty
+ {\letempty\!tqStyle
\futurelet\!tnext\!tqTestForBracket}
\newtableformatkey Q%
@@ -928,7 +928,7 @@
\global\c_tabl_table_n_of_vrules\plusone
\unskip
\fi
- \glet\m_tabl_table_vrule_color\empty
+ \global\let\m_tabl_table_vrule_color\empty
\hfil
\aligntab}
@@ -1370,8 +1370,8 @@
{\tabl_tables_chuck_auto_row % before the tail, else noalign problem
\tabl_table_insert_tail
\starttablenoalign
- \glet\tabl_table_head\empty
- \glet\tabl_table_tail\empty
+ \global\let\tabl_table_head\empty
+ \global\let\tabl_table_tail\empty
\stoptablenoalign
\tabl_table_finish
\ifx\p_tabl_table_frame\empty
@@ -1481,7 +1481,7 @@
\tabl_table_restart
% \starttablenoalign
% \globalpushmacro\simpletableHL
-% \glet\simpletableHL\doverysimpletableHL
+% \global\let\simpletableHL\doverysimpletableHL
% \stoptablenoalign
\tabl_table_insert_head
\ifsplittables \ifconditional \c_tabl_table_repeat_tail
@@ -1593,8 +1593,8 @@
\egroup
\dontcomplain
\tabl_table_split_box\tablecontentbox
- \glet\tabl_table_head\empty % new here
- \glet\tabl_table_tail\empty % new here
+ \global\let\tabl_table_head\empty % new here
+ \global\let\tabl_table_tail\empty % new here
\flushnotes
\egroup}
@@ -1691,8 +1691,8 @@
\starttablenoalign
\nobreak
\tabl_table_set_action\tableunknownstate
- \glet\tabl_tables_check_auto_row\empty
- \glet\tabl_tables_chuck_auto_row\empty
+ \globalletempty\tabl_tables_check_auto_row
+ \globalletempty\tabl_tables_chuck_auto_row
\global\currenttablecolumn\zerocount
\stoptablenoalign}
@@ -1816,21 +1816,21 @@
%D the last row.
\unexpanded\def\tabl_table_AR
- {\glet\tabl_tables_check_auto_row\tabl_tables_check_auto_row_indeed
- \glet\tabl_tables_chuck_auto_row\tabl_tables_chuck_auto_row_indeed}
+ {\globallet\tabl_tables_check_auto_row\tabl_tables_check_auto_row_indeed
+ \globallet\tabl_tables_chuck_auto_row\tabl_tables_chuck_auto_row_indeed}
\let\tabl_tables_check_auto_row\empty
\let\tabl_tables_chuck_auto_row\empty
\def\tabl_tables_check_auto_row_indeed
- {\glet\tabl_tables_check_auto_row\empty
+ {\globallet\tabl_tables_check_auto_row\empty
\ifnum\tableactionstate=\tablerulestate \FR\else
\ifnum\tableactionstate=\tableunknownstate\FR\else
\MR\fi\fi}
\def\tabl_tables_chuck_auto_row_indeed
- {\glet\tabl_tables_check_auto_row\empty
- \glet\tabl_tables_chuck_auto_row\empty
+ {\globalletempty\tabl_tables_check_auto_row
+ \globalletempty\tabl_tables_chuck_auto_row
\ifnum\tableactionstate=\tablerulestate \SR\else
\ifnum\tableactionstate=\tableunknownstate\SR\else
\LR\fi\fi}
@@ -1914,7 +1914,7 @@
\dosingleempty\table_tabl_VL_indeed}
\def\table_tabl_VL_indeed[#1]%
- {\glet\m_tabl_table_vrule_color\empty
+ {\global\let\m_tabl_table_vrule_color\empty
\global\c_tabl_table_vrule_thickness_factor\m_tabl_table_VLwidth\relax
\iffirstargument
\rawprocesscommalist[#1]\tabl_table_vrulecommand
@@ -1961,7 +1961,7 @@
\bgroup
\global\c_tabl_table_hrule_thickness_factor\m_tabl_table_HLheight\relax
\iffirstargument
- \glet\m_tabl_table_hrule_color\empty
+ \global\let\m_tabl_table_hrule_color\empty
\rawprocesscommalist[#1]\tabl_table_hrulecommand
\ifx\m_tabl_table_hrule_color\empty\else
\switchtocolor[\m_tabl_table_hrule_color]%
@@ -2083,7 +2083,7 @@
\global\c_tabl_table_hrule_thickness_factor\m_tabl_table_HLheight\relax
\global\c_tabl_table_drule_span\zerocount
\iffirstargument
- \glet\m_tabl_table_hrule_color\empty
+ \global\let\m_tabl_table_hrule_color\empty
\rawprocesscommalist[#1]\tabl_table_drulecommand
% \ifx\m_tabl_table_hrule_color\empty\else
% \switchtocolor[\m_tabl_table_hrule_color]% see *DL*
diff --git a/Master/texmf-dist/tex/context/base/mkiv/tabl-tbl.mkiv b/Master/texmf-dist/tex/context/base/mkiv/tabl-tbl.mkiv
index 75839caed16..7a0d2c8a81c 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/tabl-tbl.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/tabl-tbl.mkiv
@@ -158,7 +158,6 @@
\newtoks \t_tabl_tabulate_dummy
\newtoks \t_tabl_tabulate_every_row
\newtoks \t_tabl_tabulate_every_after_row
-\newtoks \t_tabl_tabulate_every_real_row
\newtoks \t_tabl_tabulate_initializers_first
\newtoks \t_tabl_tabulate_initializers_second
@@ -175,8 +174,6 @@
\newcount \c_tabl_tabulate_totalnoflines
\newcount \c_tabl_tabulate_minusnoflines
\newcount \c_tabl_tabulate_align
-\newcount \c_tabl_tabulate_nofrealrows
-\newcount \c_tabl_tabulate_autocolor
\newcount \c_tabl_tabulate_nofcolumns % set at the lua end by parser
\newcount \c_tabl_tabulate_has_rule_spec_first % set at the lua end by parser (for the moment a count)
@@ -253,18 +250,6 @@
\installcorenamespace{tabulatefoot}
\installcorenamespace{tabulatenext}
-\prependtoks
- \global\c_tabl_tabulate_nofrealrows\zerocount
-\to \t_tabl_tabulate_initializers_first
-
-\prependtoks
- \global\c_tabl_tabulate_nofrealrows\zerocount
-\to \t_tabl_tabulate_initializers_second
-
-\prependtoks
- \global\advance\c_tabl_tabulate_nofrealrows\plusone
-\to \t_tabl_tabulate_every_real_row
-
\def\b_tabl_tabulate_current#1%
{\csname\??tabulatebox\number#1\endcsname} % beware, a synonym
@@ -369,8 +354,8 @@
\ifx\m_tabl_tabulate_color_local\empty
\xdef\m_tabl_tabulate_color{#1}%
\else
- \glet\m_tabl_tabulate_color\m_tabl_tabulate_color_local
- \glet\m_tabl_tabulate_color_local\empty
+ \global\let\m_tabl_tabulate_color\m_tabl_tabulate_color_local
+ \global\let\m_tabl_tabulate_color_local\empty
\fi
\ifcase\c_tabl_tabulate_localcolorspan
\global\c_tabl_tabulate_colorspan#2\relax
@@ -396,8 +381,8 @@
\ifx\m_tabl_tabulate_vrule_color_local\empty
\xdef\m_tabl_tabulate_vrule_color{#1}%
\else
- \glet\m_tabl_tabulate_vrule_color\m_tabl_tabulate_vrule_color_local
- \glet\m_tabl_tabulate_vrule_color_local\empty
+ \global\let\m_tabl_tabulate_vrule_color\m_tabl_tabulate_vrule_color_local
+ \global\let\m_tabl_tabulate_vrule_color_local\empty
\fi}
\let\tabl_tabulate_check_local_color \gobbletwoarguments
@@ -568,13 +553,13 @@
\installtabulatepreambleoption{i}{\tabl_tabulate_set_preskip}
\installtabulatepreambleoption{j}{\tabl_tabulate_set_posskip}
\installtabulatepreambleoption{k}{\tabl_tabulate_set_preposskip}
-\installtabulatepreambleoption{e}{\toksapp\t_tabl_tabulate_settings{\global\settrue\c_tabl_tabulate_equal}%
+\installtabulatepreambleoption{e}{\t_tabl_tabulate_settings\expandafter{\the\t_tabl_tabulate_settings\global\settrue\c_tabl_tabulate_equal}%
\tabl_tabulate_set_preamble}
\installtabulatepreambleoption{g}{\tabl_tabulate_set_align}
\installtabulatepreambleoption{.}{\tabl_tabulate_set_align.}
\installtabulatepreambleoption{,}{\tabl_tabulate_set_align,}
\installtabulatepreambleoption{C}{\tabl_tabulate_set_color_span}
-\installtabulatepreambleoption{d}{\toksapp\t_tabl_tabulate_settings{\fixedspaces}%
+\installtabulatepreambleoption{d}{\t_tabl_tabulate_settings\expandafter{\the\t_tabl_tabulate_settings\fixedspaces}%
\tabl_tabulate_set_preamble}
\installtabulatepreambleoption{ }{\tabl_tabulate_set_preamble}
\installtabulatepreambleoption{A}{\tabl_tabulate_set_alignment}
@@ -622,18 +607,18 @@
\tabl_tabulate_set_preamble}
\def\tabl_tabulate_set_preskip#1%
- {\doifelsenumber{#1}%
- {\s_tabl_tabulate_pre#1\d_tabl_tabulate_unit\tabl_tabulate_set_preamble }%
+ {\doifelsenumber{#1}
+ {\s_tabl_tabulate_pre#1\d_tabl_tabulate_unit\tabl_tabulate_set_preamble }
{\s_tabl_tabulate_pre.5\d_tabl_tabulate_unit\tabl_tabulate_set_preamble#1}}
\def\tabl_tabulate_set_posskip#1%
- {\doifelsenumber{#1}%
- {\s_tabl_tabulate_post#1\d_tabl_tabulate_unit\tabl_tabulate_set_preamble }%
+ {\doifelsenumber{#1}
+ {\s_tabl_tabulate_post#1\d_tabl_tabulate_unit\tabl_tabulate_set_preamble }
{\s_tabl_tabulate_post.5\d_tabl_tabulate_unit\tabl_tabulate_set_preamble#1}}
\def\tabl_tabulate_set_preposskip#1%
- {\doifelsenumber{#1}%
- {\s_tabl_tabulate_pre#1\d_tabl_tabulate_unit\s_tabl_tabulate_post\s_tabl_tabulate_pre\tabl_tabulate_set_preamble }%
+ {\doifelsenumber{#1}
+ {\s_tabl_tabulate_pre#1\d_tabl_tabulate_unit\s_tabl_tabulate_post\s_tabl_tabulate_pre\tabl_tabulate_set_preamble }
{\s_tabl_tabulate_pre.5\d_tabl_tabulate_unit\s_tabl_tabulate_post\s_tabl_tabulate_pre\tabl_tabulate_set_preamble#1}}
\def\tabl_tabulate_set_setups#1%
@@ -719,28 +704,6 @@
\fi
\tabl_tabulate_set_preamble}
-% faster but seldom used
-%
-% \installcorenamespace{tabulatewidth}
-%
-% \setvalue{\??tabulatewidth\v!fit }{\c_tabl_tabulate_modus\plusthree}
-% \setvalue{\??tabulatewidth\v!fixed}{\c_tabl_tabulate_modus\plusthree\settrue\c_tabl_tabulate_nopbreak}
-% \setvalue{\??tabulatewidth\v!auto }{\c_tabl_tabulate_modus\plusthree\settrue\c_tabl_tabulate_reshape}
-%
-% \def\tabl_tabulate_set_width_step#1%
-% {\ifcsname\??tabulatewidth#1\endcsname
-% \lastnamedcs
-% \else
-% \d_tabl_tabulate_width#1\relax
-% \fi}
-%
-% \def\tabl_tabulate_set_width_indeed(#1)%
-% {\rawprocesscommacommand[#1]\tabl_tabulate_set_width_step
-% \ifconditional\c_tabl_tabulate_pwidth_set
-% \global\advance\d_tabl_tabulate_width_p\d_tabl_tabulate_width % accumulated parwidth
-% \fi
-% \tabl_tabulate_set_preamble}
-%
\def\tabl_tabulate_set_raggedright {\ifnum\c_tabl_tabulate_type=\plusone \else\raggedright \fi}
\def\tabl_tabulate_set_raggedcenter{\ifnum\c_tabl_tabulate_type=\plusone \else\raggedcenter\fi}
\def\tabl_tabulate_set_raggedleft {\ifnum\c_tabl_tabulate_type=\plusone \else\raggedleft \fi}
@@ -809,10 +772,10 @@
\t_tabl_tabulate_emath\emptytoks
\t_tabl_tabulate_font\emptytoks
\t_tabl_tabulate_settings\emptytoks
- \glet\m_tabl_tabulate_alignment\empty
- \glet\m_tabl_tabulate_color\empty
- \glet\m_tabl_tabulate_text_color\empty
- \glet\m_tabl_tabulate_vrule_color\empty
+ \global\let\m_tabl_tabulate_alignment\empty
+ \global\let\m_tabl_tabulate_color\empty
+ \global\let\m_tabl_tabulate_text_color\empty
+ \global\let\m_tabl_tabulate_vrule_color\empty
\global\c_tabl_tabulate_colorspan\zerocount
\global\setfalse\c_tabl_auto_align_mode
\global\advance\c_tabl_tabulate_columns\plusone
@@ -836,8 +799,8 @@
\fi}
\def\tabl_tabulate_set_last_entry#1% rulespec
- {\glet\m_tabl_tabulate_color\empty
- \glet\m_tabl_tabulate_vrule_color\empty
+ {\global\let\m_tabl_tabulate_color\empty
+ \global\let\m_tabl_tabulate_vrule_color\empty
\edef\currenttabulationtrulespec{#1}%
\ifx\currenttabulationtrulespec\empty
\global\d_tabl_tabulate_vrulethickness\zeropoint
@@ -1213,12 +1176,9 @@
\expandafter\tabl_start_regular_one
\fi}
-\def\tabl_default_format{|l|p|}
-
\def\tabl_start_regular_one[#1][#2]%
{\doifelseassignment{#1}
- {\lettabulationparameter\c!format\tabl_default_format
- \setupcurrenttabulation[#1]}
+ {\setupcurrenttabulation[\c!format={|l|p|},#1]}
{\def\p_format{#1}%
\ifx\p_format\empty
\def\p_format{|l|p|}%
@@ -1229,7 +1189,7 @@
\def\tabl_start_regular_two[#1][#2]%
{\def\p_format{#1}%
\ifx\p_format\empty
- \let\p_format\tabl_default_format
+ \def\p_format{|l|p|}%
\fi
\lettabulationparameter\c!format\p_format
\setupcurrenttabulation[#2]%
@@ -1318,7 +1278,7 @@
\fi\fi}
\def\tabl_tabulate_outside_after_indeed
- {\tabulationparameter\c!after}
+ {\tabulationparameter\c!after}%
\def\tabl_tabulate_outside_inbetween_indeed
{\doifempty{\tabulationparameter\c!after}
@@ -1353,7 +1313,6 @@
\edef\p_bodyfont {\tabulationparameter\c!bodyfont}
\edef\p_indenting {\tabulationparameter\c!indenting}%
\edef\p_keeptogether {\tabulationparameter\c!keeptogether}%
- \edef\p_blank {\tabulationparameter\c!blank}%
%
\ifx\p_keeptogether\v!no
\settrue \c_tabl_tabulate_tolerant_break
@@ -1366,8 +1325,6 @@
\settrue\c_tabl_tabulate_split
\csname\??tabulatesplit\tabulationparameter\c!split\endcsname
%
- \let\m_tabl_tabulate_blank_default\p_blank
- %
\d_tabl_tabulate_unit\tabulationparameter\c!unit
\d_tabl_tabulate_margin\tabulationparameter\c!margin
\let\m_tabl_tabulate_vrule_color_default\p_rulecolor
@@ -1414,15 +1371,14 @@
\let\m_tabl_tabulate_vrule_color_local \empty
\let\m_tabl_tabulate_vrule_color_default\empty % used local
\let\m_tabl_tabulate_hrule_color_default\empty % used local
-\let\m_tabl_tabulate_blank_default \empty
\appendtoks
- \glet\m_tabl_tabulate_color_previous \empty
- \glet\m_tabl_tabulate_color \empty
- \glet\m_tabl_tabulate_text_color \empty
- \glet\m_tabl_tabulate_color_local \empty
- \glet\m_tabl_tabulate_vrule_color \empty
- \glet\m_tabl_tabulate_vrule_color_local \empty
+ \global\let\m_tabl_tabulate_color_previous \empty
+ \global\let\m_tabl_tabulate_color \empty
+ \global\let\m_tabl_tabulate_text_color \empty
+ \global\let\m_tabl_tabulate_color_local \empty
+ \global\let\m_tabl_tabulate_vrule_color \empty
+ \global\let\m_tabl_tabulate_vrule_color_local \empty
\global \d_tabl_tabulate_vrulethickness_local\zeropoint
\to \t_tabl_tabulate_every_row
@@ -1514,7 +1470,7 @@
% ruled columns
\def\tabl_tabulate_column_vruled_preset
- {\glet\m_tabl_tabulate_vrule_color_local\m_tabl_tabulate_vrule_color_default
+ {\global\let\m_tabl_tabulate_vrule_color_local\m_tabl_tabulate_vrule_color_default
\global\d_tabl_tabulate_vrulethickness_local\d_tabl_tabulate_vrulethickness_default}
\def\tabl_tabulate_column_vruled#1#2%
@@ -1557,7 +1513,7 @@
\global\c_tabl_tabulate_max_vrulecolumn\zerocount}
\def\tabl_tabulate_vrule_reset_step % undefined or relax
- {\expandafter\glet\csname\??tabulatevrule\the\fastloopindex\endcsname\undefined}
+ {\global\expandafter\let\csname\??tabulatevrule\the\fastloopindex\endcsname\undefined}
\appendtoks
\tabl_tabulate_vrule_reset
@@ -1650,12 +1606,12 @@
\egroup}
\def\tabl_tabulate_hrule_spec_ignore#1%
- {%\glet\currenttabulationlocalhrulecolor\empty
+ {%\global\let\currenttabulationlocalhrulecolor\empty
%\global\d_tabl_tabulate_hrulethickness_local\d_tabl_tabulate_hrulethickness_default
\doifelsefastoptionalcheck#1#1}
\def\tabl_tabulate_hrule_spec_pickup#1%
- {\glet\currenttabulationlocalhrulecolor\m_tabl_tabulate_hrule_color_default
+ {\global\let\currenttabulationlocalhrulecolor\m_tabl_tabulate_hrule_color_default
\global\d_tabl_tabulate_hrulethickness_local\d_tabl_tabulate_hrulethickness_default
\doifelsefastoptionalcheck{\tabl_tabulate_hrule_preset#1}#1}
@@ -1669,11 +1625,10 @@
#1}
\def\tabl_tabulate_hrule_inject_normal
- {\autorule
- \s!height .5\d_tabl_tabulate_hrulethickness_local
- \s!depth .5\d_tabl_tabulate_hrulethickness_local
- \s!left \d_tabl_tabulate_indent
- \relax}
+ {\hrule
+ \s!height.5\d_tabl_tabulate_hrulethickness_local
+ \s!depth .5\d_tabl_tabulate_hrulethickness_local
+ \relax}
\def\tabl_tabulate_hrule_inject_colored
{\dousecolorparameter\currenttabulationlocalhrulecolor
@@ -1731,21 +1686,21 @@
\unexpanded\def\tabl_tabulate_color_set#1% we could store the attributes at the cost of a lua call
{\begingroup
\clf_enablebackgroundalign % was \node_backgrounds_align_initialize
- \glet\tabl_tabulate_color_repeat\tabl_tabulate_color_repeat_second
+ \global\let\tabl_tabulate_color_repeat\tabl_tabulate_color_repeat_second
\global\settrue\c_tabl_tabulate_has_colors
\ifnum\c_tabl_tabulate_column>\c_tabl_tabulate_max_colorcolumn
\global\c_tabl_tabulate_max_colorcolumn\c_tabl_tabulate_column
\fi
- \expandafter\xdef\csname\??tabulatecolor\the\c_tabl_tabulate_column\endcsname{#1}%
- \hpack \thealignbackgroundcolorattr{#1}{}% pack ?
+ \global\expandafter\xdef\csname\??tabulatecolor\the\c_tabl_tabulate_column\endcsname{#1}%
+ \hbox \thealignbackgroundcolorattr{#1}{}% pack ?
\endgroup}
\def\tabl_tabulate_color_repeat_second % for split off lines
{\begingroup
\scratchcounter\numexpr\c_tabl_tabulate_column-\plusone\relax % ugly !
\ifcsname\??tabulatecolor\the\scratchcounter\endcsname
- % \hbox \thealignbackgroundcolorattr{\csname\??tabulatecolor\the\scratchcounter\endcsname}{}% pack ?
- \hpack \expandafter\thealignbackgroundcolorattr\expandafter{\lastnamedcs}{}% pack ?
+ %\hbox \thealignbackgroundcolorattr{\csname\??tabulatecolor\the\scratchcounter\endcsname}{}% pack ?
+ \hbox \thealignbackgroundcolorattr{\lastnamedcs}{}% pack ?
\fi
\endgroup}
@@ -1767,7 +1722,7 @@
{\dofastloopcs\c_tabl_tabulate_max_colorcolumn\tabl_tabulate_color_reset_step}
\def\tabl_tabulate_color_reset_step % undefined or empty?
- {\expandafter\glet\csname\??tabulatecolor\number\fastloopindex\endcsname\undefined}
+ {\global\expandafter\let\csname\??tabulatecolor\number\fastloopindex\endcsname\undefined}
\appendtoks
\tabl_tabulate_color_reset
@@ -1816,20 +1771,17 @@
\tabl_tabulate_register_par_options
\to \t_tabl_tabulate_every_row
-\def\tabl_tabulate_flush_indent_indeed
- {\hbox to \d_tabl_tabulate_indent % pack ?
- {% we now have a local hsize, and since we want to
- % register positional info (i.e. real hsizes) we
- % need to reconstitute the original hsize
- \advance\hsize\d_tabl_tabulate_indent
- % this is indeed rather messy and took a few hours
- % to dis/uncover
- \the\t_tabl_tabulate_every_row
- \hss}}
-
\def\tabl_tabulate_flush_indent
{\ifnum\c_tabl_tabulate_column=\zerocount
- \tabl_tabulate_flush_indent_indeed
+ \hbox to \d_tabl_tabulate_indent % pack ?
+ {% we now have a local hsize, and since we want to
+ % register positional info (i.e. real hsizes) we
+ % need to reconstitute the original hsize
+ \advance\hsize\d_tabl_tabulate_indent
+ % this is indeed rather messy and took a few hours
+ % to dis/uncover
+ \the\t_tabl_tabulate_every_row
+ \hss}%
\fi}
\def\tabl_tabulate_digits{\digits}
@@ -1848,7 +1800,7 @@
\unexpanded\def\tabl_tabulate_bskip_first {\setbox\b_tabl_tabulate\vbox\bgroup\glet\tabl_tabulate_hook\tabl_tabulate_hook_nop}
\unexpanded\def\tabl_tabulate_eskip_first {\par\egroup\glet\tabl_tabulate_hook\tabl_tabulate_hook_yes}
-\unexpanded\def\tabl_tabulate_xbskip_first{\hpack\bgroup\vbox\bgroup\glet\tabl_tabulate_hook\tabl_tabulate_hook_nop}
+\unexpanded\def\tabl_tabulate_xbskip_first{\hbox\bgroup\vbox\bgroup\glet\tabl_tabulate_hook\tabl_tabulate_hook_nop}
\unexpanded\def\tabl_tabulate_xeskip_first{\par\egroup\egroup\glet\tabl_tabulate_hook\tabl_tabulate_hook_yes}
\let\tabl_tabulate_bbskip\relax
@@ -1879,12 +1831,12 @@
% \def\tabl_tabulate_break_state_set
% {%\writestatus{SET}{\the\c_tabl_tabulate_noflines}%
-% \expandafter\glet\csname\??tabulatenobreak\the\c_tabl_tabulate_noflines\endcsname\conditionaltrue}
+% \global\expandafter\let\csname\??tabulatenobreak\the\c_tabl_tabulate_noflines\endcsname\conditionaltrue}
%
% \def\tabl_tabulate_break_state_reset
% {\ifcsname\??tabulatenobreak\the\c_tabl_tabulate_noflines\endcsname
% %\writestatus{RESET}{\the\c_tabl_tabulate_noflines}%
-% \expandafter\glet\csname\??tabulatenobreak\the\c_tabl_tabulate_noflines\endcsname\undefined
+% \global\expandafter\let\csname\??tabulatenobreak\the\c_tabl_tabulate_noflines\endcsname\undefined
% \fi}
%
% \def\tabl_tabulate_break_state_allowbreak
@@ -1960,6 +1912,8 @@
%D
%D \typebuffer \getbuffer
+\let\NI\relax
+
\unexpanded\def\tabl_tabulate_NI_first{\doifelsefastoptionalcheck\tabl_tbl_NI_yes\tabl_tbl_NI_nop}
\def\tabl_tbl_NI_yes[#1]{\NC \itemtag[#1]\NC}
@@ -2235,7 +2189,7 @@
% \def\tabulatedoHRfive % horizontal rule line (break untested)
% {\starttabulatenoalign
-% \glet\dotabulateautoline\dotabulatelinerule
+% \globallet\dotabulateautoline\dotabulatelinerule
% %\ifcase#1\or % todo: check what this does
% \ifnum\noftabulatelines=\zerocount
% \glet\dotabulateautoline\donothing
@@ -2250,9 +2204,9 @@
% \tabl_tabulate_break_no
% \ifx\dotabulateautoline\dotabulatelinerule\kern-\lineheight\fi
% \ifnum\noftabulatelines=\totalnoftabulatelines
-% \expandafter\dotabulatenobreak
+% \@EA\dotabulatenobreak
% \else
-% \expandafter\tabl_tabulate_break_allow
+% \@EA\tabl_tabulate_break_allow
% \fi
% \stoptabulatenoalign
% \dotabulateautoline
@@ -2449,8 +2403,8 @@
\dostarttaggedchained\t!tabulate\empty\??tabulation
\dostarttagged\t!tabulaterow\empty
\setfalse\inhibitmargindata % new per 2012.06.13 ... really needed
- % \everycr\expandafter{\the\everycr\noalign{\the\t_tabl_tabulate_every_real_row}\dostoptagged\dostarttagged\t!tabulaterow\empty}%
- \toksapp\everycr{\noalign{\the\t_tabl_tabulate_every_real_row}\dostoptagged\dostarttagged\t!tabulaterow\empty}%
+ \everycr\expandafter{\the\everycr\dostoptagged\dostarttagged\t!tabulaterow\empty}%
+ % \toksapp\everycr{\dostoptagged\dostarttagged\t!tabulaterow\empty}%
\expandafter\halign\expandafter{\the\t_tabl_tabulate_preamble\crcr\tabl_tabulate_insert_content\crcr}%
\dostoptagged
\dostoptagged
@@ -2550,11 +2504,9 @@
\def\tabl_tabulate_TB_indeed[#1]%
{\iffirstargument
\blank[#1]
- \else\ifx\m_tabl_tabulate_blank_default\empty
- \blank
\else
- \blank[\m_tabl_tabulate_blank_default]%
- \fi\fi
+ \blank
+ \fi
\stoptabulatenoalign}
% to be tested:
@@ -2777,295 +2729,4 @@
\unexpanded\def\tabulaterowtype{\tabl_tabulate_compact_row\type}
\unexpanded\def\tabulaterowtyp {\tabl_tabulate_compact_row\typ}
-%D Here we plug in a row background feature. As we only have support for
-%D \type {frame=name} we can use these variables.
-%D
-%D \starttyping
-%D \startuseMPgraphic{foo}
-%D fill unitsquare
-%D xyscaled (RuleWidth,RuleHeight+RuleDepth) enlarged (ExHeight/4,ExHeight/8)
-%D randomized ExHeight
-%D shifted (-ExHeight/8,ExHeight/16)
-%D withcolor RuleColor ;
-%D \stopuseMPgraphic
-%D
-%D \setuptabulate % wel only have frame=name so we can use these:
-%D [background=foo,
-%D backgroundcolor=darkred,
-%D foregroundcolor=white]
-%D
-%D \definelinefiller[foo][mp=foo,color=darkgreen]
-%D \definelinefiller[bar][mp=foo,color=darkred]
-%D
-%D \starttabulate[|||]
-%D \DB foo \BC bar \BC \NR
-%D \NC foo \NC bar \NC \NR
-%D \NC foo \NC bar \NC \NR
-%D \NC foo \NC bar \NC \NR
-%D \NC foo \NC bar \NC \NR
-%D \stoptabulate
-%D
-%D \starttabulate[|||]
-%D \PB foo \BC bar \BC \NR
-%D \NC foo \NC bar \NC \NR
-%D \NC foo \NC bar \NC \NR
-%D \NC foo \NC bar \NC \NR
-%D \NC foo \NC bar \NC \NR
-%D \stoptabulate
-%D
-%D \starttabulate[|||]
-%D \FB[bar] foo \BC bar \BC \NR
-%D \NC foo \NC bar \NC \NR
-%D \NC foo \NC bar \NC \NR
-%D \NC foo \NC bar \NC \NR
-%D \NC foo \NC bar \NC \NR
-%D \stoptabulate
-%D
-%D \startnarrower
-%D \starttabulate[|||]
-%D \DB foo \DB bar \BC \NR
-%D \NC foo \NC bar \NC \NR
-%D \NC foo \NC bar \NC \NR
-%D \NC foo \NC bar \NC \NR
-%D \NC foo \NC bar \NC \NR
-%D \stoptabulate
-%D \stopnarrower
-%D
-%D \starttabulate[|||]
-%D \BC foo \BC bar \BC \NR
-%D \NL[magenta] foo \NC bar \NC \NR
-%D \NL[yellow] foo \NC bar \NC \NR
-%D \NL[cyan] foo \NC bar \NC \NR
-%D \NL[gray] foo \NC bar \NC \NR
-%D \stoptabulate
-%D
-%D \starttabulate
-%D \NL[red] foo \NC bar \NC \NR
-%D \NL[green] foo \NL[red] bar \NC \NR
-%D \NC foo \NC bar \NC \NR
-%D \NL[blue] foo \NC \input tufte \NC \NR
-%D \NL[gray] foo \NC bar \NC \NR
-%D \NL[yellow] foo \NC bar \NC \NR
-%D \stoptabulate
-%D \stoptyping
-
-% \setuptabulate
-% [\c!background=,
-% \c!backgroundcolor=,
-% \c!foregroundcolor=,
-% \c!foregroundstyle=]
-
-\let\m_table_current_row_background \empty
-\let\m_table_current_row_background_default \empty
-\let\m_table_current_row_background_filler \empty
-\let\m_table_current_row_background_defaultfiller\empty
-\let\m_table_current_row_background_auto \empty
-
-\unexpanded\def\tabl_register_row_background#1%
- {\xdef\m_table_current_row_background{#1}}
-
-\unexpanded\def\tabl_register_row_background_filler#1%
- {\xdef\m_table_current_row_background_filler{#1}}
-
-\unexpanded\def\tabl_synchronize_row_background
- {\iftrialtypesetting\else
- \ifx\m_table_current_row_background_filler\empty
- \ifx\m_table_current_row_background\empty
- % nothing
- \tabl_synchronize_row_background_dummy
- \else
- \tabl_synchronize_row_background_indeed\m_table_current_row_background
- \fi
- \else
- \tabl_synchronize_row_background_filler_indeed\m_table_current_row_background_filler
- \fi
- \fi}
-
-\unexpanded\def\tabl_synchronize_row_background_dummy
- {\iftrialtypesetting\else
- \begingroup
- %\clf_setbackgroundrowdata\numexpr\c_tabl_tabulate_nofrealrows+\minusone\relax\zerocount\zeropoint
- \clf_setbackgroundrowdata\c_tabl_tabulate_nofrealrows\zerocount\zeropoint
- \endgroup
- \fi}
-
-\unexpanded\def\tabl_synchronize_row_background_indeed#1%
- {\iftrialtypesetting\else
- \begingroup
- \clf_enablebackgroundalign % can be moved into \clf_setbackgroundrowdata
- \dousecolorparameter{#1}%
- \setbox\scratchbox\hpack{}%
- %\clf_setbackgroundrowdata\numexpr\c_tabl_tabulate_nofrealrows+\minusone\relax\scratchbox\d_tabl_tabulate_indent
- \clf_setbackgroundrowdata\c_tabl_tabulate_nofrealrows\scratchbox\d_tabl_tabulate_indent
- \endgroup
- \fi}
-
-\unexpanded\def\tabl_synchronize_row_background_filler_indeed#1%
- {\iftrialtypesetting\else
- \begingroup
- \clf_enablebackgroundalign % can be moved into \clf_setbackgroundrowdata
- \node_linefiller_set{#1}%
- \setbox\scratchbox\hpack{}%
- %\clf_setbackgroundrowdata\numexpr\c_tabl_tabulate_nofrealrows+\minusone\relax\scratchbox\d_tabl_tabulate_indent
- \clf_setbackgroundrowdata\c_tabl_tabulate_nofrealrows\scratchbox\d_tabl_tabulate_indent
- \endgroup
- \fi}
-
-\appendtoks
- \glet\m_table_current_row_background\empty
- \glet\m_table_current_row_background_filler\empty
- \global\c_tabl_tabulate_nofrealrows\zerocount
- \global\c_tabl_tabulate_autocolor\zerocount
- \clf_resetbackgroundrowdata
-\to \t_tabl_tabulate_initializers_first
-
-\appendtoks
- \glet\m_table_current_row_background\empty
- \glet\m_table_current_row_background_filler\empty
- \global\c_tabl_tabulate_nofrealrows\zerocount
- \global\c_tabl_tabulate_autocolor\zerocount
- \clf_resetbackgroundrowdata
-\to \t_tabl_tabulate_initializers_second
-
-\appendtoks
- \tabl_synchronize_row_background
-\to \t_tabl_tabulate_every_real_row
-
-\appendtoks
- \glet\m_table_current_row_background\empty
- \glet\m_table_current_row_background_filler\empty
-\to \t_tabl_tabulate_every_after_row
-
-\unexpanded\def\tabl_tabulate_NL_first[#1]%
- {\tabl_tabulate_column_normal\zerocount\zerocount\relax
- \ifcase\c_tabl_tabulate_column\or
- \tabl_register_row_background{#1}%
- \fi
- \ignorespaces}
-
-\unexpanded\def\tabl_tabulate_ND_first
- {\tabl_tabulate_column_normal\zerocount\zerocount\relax
- \ifcase\c_tabl_tabulate_column\or
- \tabl_register_row_background\m_table_current_row_background_default
- \fi
- \ignorespaces}
-
-\unexpanded\def\tabl_tabulate_LB_first[#1]%
- {\tabl_tabulate_column_normal\plusone\zerocount\relax
- \ifcase\c_tabl_tabulate_column\or
- \tabl_register_row_background{#1}%
- \fi
- \usetabulationstyleandcolor\c!foregroundstyle\c!foregroundcolor
- \ignorespaces}
-
-\unexpanded\def\tabl_tabulate_DB_first
- {\tabl_tabulate_column_normal\plusone\zerocount\relax
- \ifcase\c_tabl_tabulate_column\or
- \tabl_register_row_background\m_table_current_row_background_default
- \fi
- \let\fontstyle\globalfontstyle
- \usetabulationstyleandcolor\c!foregroundstyle\c!foregroundcolor
- \ignorespaces}
-
-\unexpanded\def\tabl_tabulate_NF_first[#1]%
- {\tabl_tabulate_column_normal\zerocount\zerocount\relax
- \ifcase\c_tabl_tabulate_column\or
- \tabl_register_row_background_filler{#1}%
- \fi
- \ignorespaces}
-
-\unexpanded\def\tabl_tabulate_NP_first
- {\tabl_tabulate_column_normal\zerocount\zerocount\relax
- \ifcase\c_tabl_tabulate_column\or
- \tabl_register_row_background_filler\m_table_current_row_background_default_filler
- \fi
- \ignorespaces}
-
-\unexpanded\def\tabl_tabulate_FB_first[#1]%
- {\tabl_tabulate_column_normal\plusone\zerocount\relax
- \ifcase\c_tabl_tabulate_column\or
- \tabl_register_row_background_filler{#1}%
- \fi
- \usetabulationstyleandcolor\c!foregroundstyle\c!foregroundcolor
- \ignorespaces}
-
-\unexpanded\def\tabl_tabulate_PB_first
- {\tabl_tabulate_column_normal\plusone\zerocount\relax
- \ifcase\c_tabl_tabulate_column\or
- \tabl_register_row_background_filler\m_table_current_row_background_default_filler
- \fi
- \let\fontstyle\globalfontstyle
- \usetabulationstyleandcolor\c!foregroundstyle\c!foregroundcolor
- \ignorespaces}
-
-\unexpanded\def\tabl_tabulate_BC_first % overloaded
- {\tabl_tabulate_column_normal\plusone\zerocount
- \let\fontstyle\globalfontstyle
- \ifx\m_table_current_row_background\empty
- \ifx\m_table_current_row_background_filler\empty
- \usetabulationstyleandcolor\c!headstyle\c!headcolor
- \else
- \usetabulationstyleandcolor\c!foregroundstyle\c!foregroundcolor
- \fi
- \else
- \usetabulationstyleandcolor\c!foregroundstyle\c!foregroundcolor
- \fi}
-
-\unexpanded\def\tabl_tabulate_A_first
- {\global\advance\c_tabl_tabulate_autocolor\plusone
- \edef\m_table_current_row_background_auto{\tabulateparameter{\c!backgroundcolor:\number\c_tabl_tabulate_autocolor}}%
- \ifx\m_table_current_row_background_auto\empty
- \global\c_tabl_tabulate_autocolor\plusone
- \edef\m_table_current_row_background_auto{\tabulateparameter{\c!backgroundcolor:\number\c_tabl_tabulate_autocolor}}%
- \fi
- \ifx\m_table_current_row_background_auto\empty
- \let\m_table_current_row_background_auto\empty % \m_table_current_row_background_default
- \fi
- \tabl_register_row_background{\m_table_current_row_background_auto}}
-
-\unexpanded\def\tabl_tabulate_NA_first
- {\tabl_tabulate_column_normal\zerocount\zerocount\relax
- \iftrialtypesetting\else
- \ifcase\c_tabl_tabulate_column\or
- \tabl_tabulate_A_first
- \fi
- \fi
- \ignorespaces}
-
-\unexpanded\def\tabl_tabulate_BA_first
- {\tabl_tabulate_column_normal\plusone\zerocount\relax
- \iftrialtypesetting\else
- \ifcase\c_tabl_tabulate_column\or
- \tabl_tabulate_A_first
- \fi
- \fi
- \usetabulationstyleandcolor\c!foregroundstyle\c!foregroundcolor
- \ignorespaces}
-
-\appendtoks
- \let\NL\tabl_tabulate_NL_first % NC with Line
- \let\ND\tabl_tabulate_ND_first % NC with Default Line
- \let\LB\tabl_tabulate_LB_first % BC with Line
- \let\DB\tabl_tabulate_DB_first % BC with Default Line
- \let\NF\tabl_tabulate_NF_first % NC with Filler
- \let\NP\tabl_tabulate_NP_first % NC with Predefined Filler
- \let\FB\tabl_tabulate_FB_first % BC with Filler
- \let\PB\tabl_tabulate_PB_first % BC with Predefined Filler
- \let\NA\tabl_tabulate_NA_first % NC with Auto Line
- \let\BA\tabl_tabulate_BA_first % NC with Auto Line
-\to \t_tabl_tabulate_initializers_first
-
-\appendtoks
- \edef\m_table_current_row_background_default {\tabulateparameter\c!backgroundcolor}%
- \edef\m_table_current_row_background_default_filler{\tabulateparameter\c!background}%
- \let \m_table_current_row_background_auto \empty
-\to \everytabulate
-
-\setuptabulate
- [\c!headcolor=,
- \c!headstyle=\bf,
- \c!backgroundcolor=\tabulationparameter\c!rulecolor,
- \c!foregroundcolor=,
- \c!foregroundstyle=\tabulationparameter\c!headstyle]
-
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkiv/tabl-tsp.mkiv b/Master/texmf-dist/tex/context/base/mkiv/tabl-tsp.mkiv
index e0ddce38a58..2c4b694b332 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/tabl-tsp.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/tabl-tsp.mkiv
@@ -441,35 +441,6 @@
\exitloop
\fi\fi}
-%D Maybe handy:
-%D
-%D \starttyping
-%D \splitfloat
-%D {\placefigure{some caption}}
-%D {\startsplittext
-%D \typefile[option=TEX,before=,after=]{oeps.tex}
-%D \stopsplittext}
-%D \stoptyping
-
-\def\handlesplittext#1%
- {\setbox\tsplitresult\vbox
- {\vsplit\tsplitcontent to \dimexpr#1-\lineheight\relax}}
-
-\unexpanded\def\startsplittext
- {\begingroup
- \resettsplit
- \let\tsplitminimumfreelines\!!zerocount
- \let\tsplitminimumfreespace\!!zeropoint
- \let\extrasplitfloatlines \!!plusone
- \let\tsplitdirectsplitter \handlesplittext
- \setbox\tsplitcontent\vbox\bgroup
- \insidefloattrue}
-
-\unexpanded\def\stopsplittext
- {\egroup
- \handledirecttsplit
- \endgroup}
-
\protect \endinput
% test cases
diff --git a/Master/texmf-dist/tex/context/base/mkiv/tabl-xtb.lua b/Master/texmf-dist/tex/context/base/mkiv/tabl-xtb.lua
index c9d50638e67..524ca109c61 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/tabl-xtb.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/tabl-xtb.lua
@@ -70,7 +70,7 @@ local getbox = nuts.getbox
local getwhd = nuts.getwhd
local setlink = nuts.setlink
-local setdirection = nuts.setdirection
+local setdir = nuts.setdir
local setshift = nuts.setshift
local copy_node_list = nuts.copy_list
@@ -84,8 +84,6 @@ local new_glue = nodepool.glue
local new_kern = nodepool.kern
local new_hlist = nodepool.hlist
-local lefttoright_code = nodes.dirvalues.lefttoright
-
local v_stretch = variables.stretch
local v_normal = variables.normal
local v_width = variables.width
@@ -377,8 +375,7 @@ function xtables.set_reflow_width()
--
drc.dimensionstate = dimensionstate
--
- local nx = drc.nx
- local ny = drc.ny
+ local nx, ny = drc.nx, drc.ny
if nx > 1 or ny > 1 then
-- local spans = data.spans -- not used
local self = true
@@ -889,13 +886,13 @@ function xtables.construct()
-- we have a direction issue here but hpack_node_list(list,0,"exactly","TLT") cannot be used
-- due to the fact that we need the width
local hbox = hpack_node_list(list)
- setdirection(hbox,lefttoright_code)
+ setdir(hbox,"TLT")
result[nofr] = {
hbox,
size,
i < nofrange and rowdistance > 0 and rowdistance or false, -- might move
false,
- rp or false,
+ rp and rp.samepage or false,
}
end
end
@@ -904,7 +901,7 @@ function xtables.construct()
result[1] [5] = false
result[nofr][5] = false
for i=2,nofr-1 do
- local r = result[i][5]
+ local r = result[i]
if r == v_both or r == v_before then
result[i-1][5] = true
elseif r == v_after then
diff --git a/Master/texmf-dist/tex/context/base/mkiv/tabl-xtb.mkvi b/Master/texmf-dist/tex/context/base/mkiv/tabl-xtb.mkvi
index 1483043316d..dc4a30e2b0c 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/tabl-xtb.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/tabl-xtb.mkvi
@@ -102,10 +102,6 @@
\newcount\c_tabl_x_nesting
\newcount\c_tabl_x_skip_mode % 1 = skip
\newdimen\d_tabl_x_textwidth
-\newcount\c_tabl_x_swapped
-\newcount\c_tabl_x_swapped_max
-
-\let\m_tabl_x_swapped_settings\empty
\let\currentxtablerow \clf_x_table_r
\let\currentxtablecolumn\clf_x_table_c
@@ -116,7 +112,6 @@
\installcorenamespace{xtable}
\installcorenamespace{xtablecheck}
-\installcorenamespace{xtableswap}
\installframedautocommandhandler \??xtable {xtable} \??xtable
@@ -276,8 +271,6 @@
\let\tabl_x_start_cell_nop\relax
\let\tabl_x_stop_cell \relax
-\newtoks\t_table_x_cleanup
-
\unexpanded\def\tabl_x_process
{\begingroup % *
\forgetall % moved here
@@ -303,7 +296,6 @@
% not so nice but needed as we use this in the setup
\linewidth\xtableparameter\c!rulethickness\relax
% so we freeze it
- \c_tabl_x_swapped_max\zerocount
\begingroup
\let\tabl_x_start_row_yes \tabl_x_start_row_reflow_width_yes
\let\tabl_x_start_row_nop \tabl_x_start_row_reflow_width_nop
@@ -313,10 +305,6 @@
\let\tabl_x_stop_cell \tabl_x_stop_cell_reflow_width
\settrialtypesetting
\tabl_x_get_buffer
- \ifcase\c_tabl_x_swapped_max
- \else
- \tabl_x_flush_swapped
- \fi
\clf_x_table_reflow_width
\endgroup
\begingroup
@@ -327,11 +315,7 @@
\let\tabl_x_start_cell_nop\tabl_x_start_cell_reflow_height_nop
\let\tabl_x_stop_cell \tabl_x_stop_cell_reflow_height
\settrialtypesetting
- \ifcase\c_tabl_x_swapped_max
- \tabl_x_get_buffer
- \else
- \tabl_x_flush_swapped
- \fi
+ \tabl_x_get_buffer
\clf_x_table_reflow_height
\endgroup
\begingroup
@@ -341,11 +325,7 @@
\let\tabl_x_start_cell_yes\tabl_x_start_cell_construct_yes
\let\tabl_x_start_cell_nop\tabl_x_start_cell_construct_nop
\let\tabl_x_stop_cell \tabl_x_stop_cell_construct
- \ifcase\c_tabl_x_swapped_max
- \tabl_x_get_buffer
- \else
- \tabl_x_flush_swapped
- \fi
+ \tabl_x_get_buffer
\clf_x_table_construct
\endgroup
\endgroup % *
@@ -360,7 +340,6 @@
\dostoptagged
\resetbuffer[\tabl_x_current_buffer]%
\resetcharacteralign
- \the\t_table_x_cleanup
\egroup}
% text flow split modes
@@ -498,6 +477,10 @@
\unexpanded\def\stopxcell
{\tabl_x_stop_cell}
+\unexpanded\def\dummyxcell#1%
+ {\tabl_x_start_cell_nop
+ \tabl_x_stop_cell}
+
\unexpanded\def\dummyxcell
{\tabl_x_start_cell_nop
\tabl_x_stop_cell}
@@ -896,124 +879,4 @@
\let\NR\tabl_x_nr
\to \everypreparextable
-%D Another bonus, suggested by Taco at the 2018 \CONTEXT\ meeting.
-
-\unexpanded\def\tabl_x_c_cell_start#settings%
- {\begingroup
- \tabl_x_set_checked{#settings}%
- \doifelsenextoptionalcs\tabl_x_start_cell_yes\tabl_x_start_cell_nop}
-
-\unexpanded\def\tabl_x_c_cell_stop
- {\tabl_x_stop_cell
- \endgroup}
-
-% \unexpanded\def\dummyxcell
-% {\tabl_x_start_cell_nop
-% \tabl_x_stop_cell}
-
-\def\tabl_x_flush_swapped
- {\dorecurse\c_tabl_x_swapped_max
- {\expandafter
- \startxrow
- \the\csname\??xtableswap##1\endcsname\relax
- \stopxrow}}
-
-\def\tabl_x_collect_allocate
- {\expandafter\newtoks\csname\??xtableswap\number\c_tabl_x_swapped\endcsname
- \expandafter\let\expandafter\t_tabl_x_swapped\csname\??xtableswap\number\c_tabl_x_swapped\endcsname}
-
-\def\tabl_x_collect_advance
- {\global\advance\c_tabl_x_swapped\plusone
- \ifnum\c_tabl_x_swapped>\c_tabl_x_swapped_max
- \global\c_tabl_x_swapped_max\c_tabl_x_swapped
- \fi
- \expandafter\let\expandafter\t_tabl_x_swapped\csname\??xtableswap\number\c_tabl_x_swapped\endcsname
- \ifx\t_tabl_x_swapped\relax
- \tabl_x_collect_allocate
- \fi}
-
-\unexpanded\def\tabl_x_collect_cell_start
- {\doifelsenextoptionalcs
- \tabl_x_collect_cell_start_yes
- \tabl_x_collect_cell_start_nop}
-
-\def\tabl_x_collect_cell_start_nop#content\stopxcell
- {\tabl_x_collect_advance
- \ifx\m_tabl_x_swapped_settings\empty
- \gtoksapp\t_tabl_x_swapped{\tabl_x_c_cell_start{}#content\tabl_x_c_cell_stop}%
- \else
- \gtoksapp\t_tabl_x_swapped\expandafter{\expandafter\tabl_x_c_cell_start\expandafter{\m_tabl_x_swapped_settings}#content\tabl_x_c_cell_stop}%
- \fi}
-
-\def\tabl_x_collect_cell_start_yes[#settings]#content\stopxcell
- {\tabl_x_collect_advance
- \ifx\m_tabl_x_swapped_settings\empty
- \gtoksapp\t_tabl_x_swapped{\tabl_x_c_cell_start{}[#settings]#content\tabl_x_c_cell_stop}%
- \else
- \gtoksapp\t_tabl_x_swapped\expandafter{\expandafter\tabl_x_c_cell_start\expandafter{\m_tabl_x_swapped_settings}[#settings]#content\tabl_x_c_cell_stop}%
- \fi
- \getdummyparameters[\c!ny=1,#settings]%
- \scratchcounter\numexpr\dummyparameter\c!ny-\plusone\relax
- \ifcase\scratchcounter\else
- \dorecurse\scratchcounter\tabl_x_collect_advance
- \fi}
-
-\unexpanded\def\startxcolumn % todo: arguments
- {\begingroup
- \global\c_tabl_x_swapped\zerocount
- \let\startxcell\tabl_x_collect_cell_start
- \let\stopxcell \relax
- \doifelsenextoptionalcs\tabl_x_start_column_yes\tabl_x_start_column_nop}
-
-\def\tabl_x_start_column_yes[#1]%
- {\xdef\m_tabl_x_swapped_settings{#1}}
-
-\def\tabl_x_start_column_nop
- {\glet\m_tabl_x_swapped_settings\empty}
-
-\unexpanded\def\stopxcolumn
- {\endgroup}
-
-\appendtoks
- \dorecurse\c_tabl_x_swapped_max
- {\global\csname\??xtableswap\number#1\endcsname\emptytoks}%
-\to \t_table_x_cleanup
-
-%D \stopbuffer
-%D \setupxtable[one][foregroundcolor=red]
-%D \setupxtable[two][foregroundcolor=blue]
-%D
-%D \startlinecorrection
-%D \startxtable
-%D \startxrow[one]
-%D \startxcell[width=5cm] Row 1, Column 1 \stopxcell
-%D \startxcell Row 1, Column 2 \stopxcell
-%D \startxcell Row 1, Column 3 \stopxcell
-%D \stopxrow
-%D \startxrow[two]
-%D \startxcell Row 2, Column 1 \stopxcell
-%D \startxcell Row 2, Column 2 \stopxcell
-%D \startxcell Row 2, Column 3 \stopxcell
-%D \stopxrow
-%D \stopxtable
-%D \stoplinecorrection
-%D
-%D \startlinecorrection
-%D \startxtable
-%D \startxcolumn[one]
-%D \startxcell[width=5cm] Row 1, Column 1 \stopxcell
-%D \startxcell Row 1, Column 2 \stopxcell
-%D \startxcell Row 1, Column 3 \stopxcell
-%D \stopxcolumn
-%D \startxcolumn[two]
-%D \startxcell Row 2, Column 1 \stopxcell
-%D \startxcell Row 2, Column 2 \stopxcell
-%D \startxcell Row 2, Column 3 \stopxcell
-%D \stopxcolumn
-%D \stopxtable
-%D \stoplinecorrection
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkiv/task-ini.lua b/Master/texmf-dist/tex/context/base/mkiv/task-ini.lua
index 19fff66b8f4..f41fb9b0885 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/task-ini.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/task-ini.lua
@@ -18,132 +18,224 @@ if not modules then modules = { } end modules ['task-ini'] = {
-- not apply the font handler, we can remove all checks for subtypes 255
local tasks = nodes.tasks
+local prependaction = tasks.prependaction
local appendaction = tasks.appendaction
local disableaction = tasks.disableaction
local enableaction = tasks.enableaction
local freezegroup = tasks.freezegroup
local freezecallbacks = callbacks.freeze
-------------("processors", "before", "nodes.properties.attach", nil, "nut", "enabled" )
-
-appendaction("processors", "normalizers", "typesetters.periodkerns.handler", nil, "nut", "disabled" )
-appendaction("processors", "normalizers", "languages.replacements.handler", nil, "nut", "disabled" )
-appendaction("processors", "normalizers", "typesetters.wrappers.handler", nil, "nut", "disabled" )
-appendaction("processors", "normalizers", "typesetters.characters.handler", nil, "nut", "enabled" )
-appendaction("processors", "normalizers", "fonts.collections.process", nil, "nut", "disabled" )
-appendaction("processors", "normalizers", "fonts.checkers.missing", nil, "nut", "disabled" )
-
-appendaction("processors", "characters", "scripts.autofontfeature.handler", nil, "nut", "disabled" )
-appendaction("processors", "characters", "scripts.splitters.handler", nil, "nut", "disabled" )
-appendaction("processors", "characters", "typesetters.cleaners.handler", nil, "nut", "disabled" )
-appendaction("processors", "characters", "typesetters.directions.handler", nil, "nut", "disabled" )
-appendaction("processors", "characters", "typesetters.cases.handler", nil, "nut", "disabled" )
-appendaction("processors", "characters", "typesetters.breakpoints.handler", nil, "nut", "disabled" )
-appendaction("processors", "characters", "scripts.injectors.handler", nil, "nut", "disabled" )
-
-appendaction("processors", "words", "languages.words.check", nil, "nut", "disabled" )
-appendaction("processors", "words", "languages.hyphenators.handler", nil, "nut", "enabled" )
-appendaction("processors", "words", "typesetters.initials.handler", nil, "nut", "disabled" )
-appendaction("processors", "words", "typesetters.firstlines.handler", nil, "nut", "disabled" )
-
-appendaction("processors", "fonts", "builders.paragraphs.solutions.splitters.split", nil, "nut", "disabled" )
-appendaction("processors", "fonts", "nodes.handlers.characters", nil, "nut", "enabled" )
-appendaction("processors", "fonts", "nodes.injections.handler", nil, "nut", "enabled" )
-appendaction("processors", "fonts", "typesetters.fontkerns.handler", nil, "nut", "disabled" )
-appendaction("processors", "fonts", "nodes.handlers.protectglyphs", nil, "nonut", "enabled" )
-appendaction("processors", "fonts", "builders.kernel.ligaturing", nil, "nut", "disabled" )
-appendaction("processors", "fonts", "builders.kernel.kerning", nil, "nut", "disabled" )
-appendaction("processors", "fonts", "builders.kernel.cleanup", nil, "nut", "enabled" )
-appendaction("processors", "fonts", "nodes.handlers.stripping", nil, "nut", "disabled" )
-appendaction("processors", "fonts", "nodes.handlers.flatten", nil, "nut", "disabled" )
-appendaction("processors", "fonts", "fonts.goodies.colorschemes.coloring", nil, "nut", "disabled" )
-
-appendaction("processors", "lists", "typesetters.rubies.check", nil, "nut", "disabled" )
-appendaction("processors", "lists", "typesetters.characteralign.handler", nil, "nut", "disabled" )
-appendaction("processors", "lists", "typesetters.spacings.handler", nil, "nut", "disabled" )
-appendaction("processors", "lists", "typesetters.kerns.handler", nil, "nut", "disabled" )
-appendaction("processors", "lists", "typesetters.digits.handler", nil, "nut", "disabled" )
-appendaction("processors", "lists", "typesetters.italics.handler", nil, "nut", "disabled" )
-appendaction("processors", "lists", "languages.visualizediscretionaries", nil, "nut", "disabled" )
-
-appendaction("processors", "after", "typesetters.marksuspects", nil, "nut", "disabled" )
-
-appendaction("shipouts", "normalizers", "typesetters.showsuspects", nil, "nut", "disabled" )
-appendaction("shipouts", "normalizers", "typesetters.margins.finalhandler", nil, "nut", "disabled" )
-------------("shipouts", "normalizers", "nodes.handlers.cleanuppage", nil, "nut", "disabled" )
-appendaction("shipouts", "normalizers", "builders.paragraphs.expansion.trace", nil, "nut", "disabled" )
-appendaction("shipouts", "normalizers", "typesetters.alignments.handler", nil, "nut", "disabled" )
-appendaction("shipouts", "normalizers", "nodes.references.handler", nil, "nut", "production")
-appendaction("shipouts", "normalizers", "nodes.destinations.handler", nil, "nut", "production")
-appendaction("shipouts", "normalizers", "nodes.rules.handler", nil, "nut", "disabled" )
-appendaction("shipouts", "normalizers", "nodes.shifts.handler", nil, "nut", "disabled" )
-appendaction("shipouts", "normalizers", "structures.tags.handler", nil, "nut", "disabled" )
-appendaction("shipouts", "normalizers", "nodes.handlers.accessibility", nil, "nut", "disabled" )
-appendaction("shipouts", "normalizers", "nodes.handlers.backgrounds", nil, "nut", "disabled" )
-appendaction("shipouts", "normalizers", "typesetters.rubies.attach", nil, "nut", "disabled" )
-------------("shipouts", "normalizers", "nodes.properties.delayed", nil, "nut", "production")
-
-appendaction("shipouts", "finishers", "nodes.visualizers.handler", nil, "nut", "disabled" )
-appendaction("shipouts", "finishers", "attributes.colors.handler", nil, "nut", "disabled" )
-appendaction("shipouts", "finishers", "attributes.transparencies.handler", nil, "nut", "disabled" )
-appendaction("shipouts", "finishers", "attributes.colorintents.handler", nil, "nut", "disabled" )
-appendaction("shipouts", "finishers", "attributes.negatives.handler", nil, "nut", "disabled" )
-appendaction("shipouts", "finishers", "attributes.effects.handler", nil, "nut", "disabled" )
-appendaction("shipouts", "finishers", "attributes.viewerlayers.handler", nil, "nut", "disabled" )
-
-appendaction("shipouts", "wrapup", "nodes.handlers.export", nil, "nut", "disabled" ) -- always last
-appendaction("shipouts", "wrapup", "luatex.synctex.collect", nil, "nut", "disabled" )
-
-appendaction("math", "normalizers", "noads.handlers.showtree", nil, "nonut", "disabled" )
-appendaction("math", "normalizers", "noads.handlers.unscript", nil, "nonut", "enabled" )
-appendaction("math", "normalizers", "noads.handlers.unstack", nil, "nonut", "disabled" )
-appendaction("math", "normalizers", "noads.handlers.variants", nil, "nonut", "enabled" )
-appendaction("math", "normalizers", "noads.handlers.relocate", nil, "nonut", "enabled" )
-appendaction("math", "normalizers", "noads.handlers.families", nil, "nonut", "enabled" )
-appendaction("math", "normalizers", "noads.handlers.render", nil, "nonut", "enabled" )
-appendaction("math", "normalizers", "noads.handlers.collapse", nil, "nonut", "disabled" )
-appendaction("math", "normalizers", "noads.handlers.fixscripts", nil, "nonut", "enabled" )
-appendaction("math", "normalizers", "noads.handlers.domains", nil, "nonut", "disabled" )
-appendaction("math", "normalizers", "noads.handlers.autofences", nil, "nonut", "disabled" )
-appendaction("math", "normalizers", "noads.handlers.resize", nil, "nonut", "enabled" )
-------------("math", "normalizers", "noads.handlers.respace", nil, "nonut", "enabled" )
-appendaction("math", "normalizers", "noads.handlers.alternates", nil, "nonut", "enabled" )
-appendaction("math", "normalizers", "noads.handlers.tags", nil, "nonut", "disabled" )
-appendaction("math", "normalizers", "noads.handlers.italics", nil, "nonut", "disabled" )
-appendaction("math", "normalizers", "noads.handlers.kernpairs", nil, "nonut", "disabled" )
-appendaction("math", "normalizers", "noads.handlers.classes", nil, "nonut", "disabled" )
-
-appendaction("math", "builders", "builders.kernel.mlist_to_hlist", nil, "nut", "enabled" ) -- mandate
-appendaction("math", "builders", "typesetters.directions.processmath", nil, "nut", "disabled" )
-appendaction("math", "builders", "noads.handlers.makeup", nil, "nonut", "disabled" )
-appendaction("math", "builders", "noads.handlers.align", nil, "nonut", "enabled" )
-
-appendaction("finalizers", "lists", "typesetters.paragraphs.normalize", nil, "nut", "enabled" ) -- "disabled"
-appendaction("finalizers", "lists", "typesetters.margins.localhandler", nil, "nut", "disabled" )
-appendaction("finalizers", "lists", "builders.paragraphs.keeptogether", nil, "nut", "disabled" )
-appendaction("finalizers", "fonts", "builders.paragraphs.solutions.splitters.optimize", nil, "nonut", "disabled" )
-appendaction("finalizers", "lists", "builders.paragraphs.tag", nil, "nut", "disabled" )
-appendaction("finalizers", "lists", "nodes.linefillers.handler", nil, "nut", "disabled" )
-
-appendaction("contributers", "normalizers", "nodes.handlers.flattenline", nil, "nut", "disabled" )
-appendaction("contributers", "normalizers", "nodes.handlers.textbackgrounds", nil, "nut", "disabled" )
-
-appendaction("vboxbuilders", "normalizers", "nodes.handlers.backgroundsvbox", nil, "nut", "disabled" )
-------------("vboxbuilders", "normalizers", "typesetters.margins.localhandler", nil, "nut", "disabled" )
-appendaction("vboxbuilders", "normalizers", "builders.vspacing.vboxhandler", nil, "nut", "enabled" )
-appendaction("vboxbuilders", "normalizers", "builders.profiling.vboxhandler", nil, "nut", "disabled" )
-appendaction("vboxbuilders", "normalizers", "typesetters.checkers.handler", nil, "nut", "disabled" )
-
-appendaction("mvlbuilders", "normalizers", "nodes.handlers.backgroundspage", nil, "nut", "disabled" )
-appendaction("mvlbuilders", "normalizers", "typesetters.margins.globalhandler", nil, "nut", "disabled" )
-appendaction("mvlbuilders", "normalizers", "nodes.handlers.migrate", nil, "nut", "disabled" )
-appendaction("mvlbuilders", "normalizers", "builders.vspacing.pagehandler", nil, "nut", "enabled" )
-appendaction("mvlbuilders", "normalizers", "builders.profiling.pagehandler", nil, "nut", "disabled" )
-appendaction("mvlbuilders", "normalizers", "typesetters.checkers.handler", nil, "nut", "disabled" )
-
-appendaction("everypar", "normalizers", "nodes.handlers.checkparcounter", nil, "nut", "disabled" )
-
--- some protection
+appendaction("processors", "normalizers", "languages.replacements.handler") -- disabled
+
+appendaction("processors", "normalizers", "typesetters.wrappers.handler") -- disabled
+appendaction("processors", "normalizers", "typesetters.characters.handler") -- always on
+appendaction("processors", "normalizers", "fonts.collections.process") -- disabled
+appendaction("processors", "normalizers", "fonts.checkers.missing") -- disabled
+
+appendaction("processors", "characters", "scripts.autofontfeature.handler")
+appendaction("processors", "characters", "scripts.splitters.handler") -- disabled
+appendaction("processors", "characters", "typesetters.cleaners.handler") -- disabled
+appendaction("processors", "characters", "typesetters.directions.handler") -- disabled
+appendaction("processors", "characters", "typesetters.cases.handler") -- disabled
+appendaction("processors", "characters", "typesetters.breakpoints.handler") -- disabled
+appendaction("processors", "characters", "scripts.injectors.handler") -- disabled
+
+------------("processors", "words", "languages.replacements.handler") -- disabled
+appendaction("processors", "words", "languages.words.check") -- disabled -- might move up, no disc check needed then
+appendaction("processors", "words", "languages.hyphenators.handler") -- always on
+appendaction("processors", "words", "typesetters.initials.handler") -- disabled -- might move up
+appendaction("processors", "words", "typesetters.firstlines.handler") -- disabled
+
+appendaction("processors", "fonts", "builders.paragraphs.solutions.splitters.split") -- experimental
+appendaction("processors", "fonts", "nodes.handlers.characters") -- maybe todo
+appendaction("processors", "fonts", "nodes.injections.handler")
+appendaction("processors", "fonts", "typesetters.fontkerns.handler")
+appendaction("processors", "fonts", "nodes.handlers.protectglyphs", nil, "nohead") -- maybe todo
+appendaction("processors", "fonts", "builders.kernel.ligaturing") -- not always on (could be selective: if only node mode)
+appendaction("processors", "fonts", "builders.kernel.kerning") -- not always on (could be selective: if only node mode)
+appendaction("processors", "fonts", "nodes.handlers.stripping") -- disabled (might move)
+------------("processors", "fonts", "typesetters.italics.handler") -- disabled (after otf/kern handling)
+appendaction("processors", "fonts", "nodes.handlers.flatten")
+
+appendaction("processors", "lists", "typesetters.rubies.check") -- disabled (maybe someplace else)
+appendaction("processors", "lists", "typesetters.characteralign.handler") -- disabled (we need to to this after otf appliance)
+appendaction("processors", "lists", "typesetters.spacings.handler") -- disabled
+appendaction("processors", "lists", "typesetters.kerns.handler") -- disabled
+appendaction("processors", "lists", "typesetters.digits.handler") -- disabled (after otf handling)
+appendaction("processors", "lists", "typesetters.italics.handler") -- disabled (after otf/kern handling)
+appendaction("processors", "lists", "languages.visualizediscretionaries") -- disabled
+
+appendaction("processors", "after", "typesetters.marksuspects")
+
+appendaction("shipouts", "normalizers", "typesetters.showsuspects")
+appendaction("shipouts", "normalizers", "typesetters.margins.finalhandler") -- disabled
+------------("shipouts", "normalizers", "nodes.handlers.cleanuppage") -- disabled
+appendaction("shipouts", "normalizers", "builders.paragraphs.expansion.trace") -- disabled
+appendaction("shipouts", "normalizers", "typesetters.alignments.handler") -- disabled
+appendaction("shipouts", "normalizers", "nodes.references.handler") -- disabled
+appendaction("shipouts", "normalizers", "nodes.destinations.handler") -- disabled
+appendaction("shipouts", "normalizers", "nodes.rules.handler") -- disabled
+appendaction("shipouts", "normalizers", "nodes.shifts.handler") -- disabled
+appendaction("shipouts", "normalizers", "structures.tags.handler") -- disabled
+appendaction("shipouts", "normalizers", "nodes.handlers.accessibility") -- disabled
+appendaction("shipouts", "normalizers", "nodes.handlers.backgrounds") -- disabled
+appendaction("shipouts", "normalizers", "nodes.handlers.alignbackgrounds") -- disabled
+------------("shipouts", "normalizers", "nodes.handlers.export") -- disabled
+appendaction("shipouts", "normalizers", "typesetters.rubies.attach") -- disabled
+
+appendaction("shipouts", "finishers", "nodes.visualizers.handler") -- disabled
+appendaction("shipouts", "finishers", "attributes.colors.handler") -- disabled
+appendaction("shipouts", "finishers", "attributes.transparencies.handler") -- disabled
+appendaction("shipouts", "finishers", "attributes.colorintents.handler") -- disabled
+appendaction("shipouts", "finishers", "attributes.negatives.handler") -- disabled
+appendaction("shipouts", "finishers", "attributes.effects.handler") -- disabled
+appendaction("shipouts", "finishers", "attributes.viewerlayers.handler") -- disabled
+
+--maybe integrate relocate and families
+
+appendaction("math", "normalizers", "noads.handlers.showtree", nil, "nohead")
+
+appendaction("math", "normalizers", "noads.handlers.unscript", nil, "nohead") -- always on (maybe disabled)
+appendaction("math", "normalizers", "noads.handlers.variants", nil, "nohead") -- always on
+appendaction("math", "normalizers", "noads.handlers.relocate", nil, "nohead") -- always on
+appendaction("math", "normalizers", "noads.handlers.families", nil, "nohead") -- always on
+
+appendaction("math", "normalizers", "noads.handlers.render", nil, "nohead") -- always on
+appendaction("math", "normalizers", "noads.handlers.collapse", nil, "nohead") -- disabled
+appendaction("math", "normalizers", "noads.handlers.fixscripts",nil, "nohead") -- * first-- always on
+appendaction("math", "normalizers", "noads.handlers.domains", nil, "nohead") -- * last -- disabled
+appendaction("math", "normalizers", "noads.handlers.autofences",nil, "nohead") -- disabled
+appendaction("math", "normalizers", "noads.handlers.resize", nil, "nohead") -- always on
+------------("math", "normalizers", "noads.handlers.respace", nil, "nohead") -- always on
+appendaction("math", "normalizers", "noads.handlers.alternates",nil, "nohead") -- always on
+appendaction("math", "normalizers", "noads.handlers.tags", nil, "nohead") -- disabled
+appendaction("math", "normalizers", "noads.handlers.italics", nil, "nohead") -- disabled
+appendaction("math", "normalizers", "noads.handlers.kernpairs", nil, "nohead") -- disabled
+appendaction("math", "normalizers", "noads.handlers.classes", nil, "nohead") -- disabled
+
+appendaction("math", "builders", "builders.kernel.mlist_to_hlist") -- always on
+------------("math", "builders", "noads.handlers.italics", nil, "nohead") -- disabled
+appendaction("math", "builders", "typesetters.directions.processmath") -- disabled (has to happen pretty late)
+appendaction("math", "builders", "noads.handlers.makeup", nil, "nohead") -- disabled (has to happen last)
+appendaction("math", "builders", "noads.handlers.align", nil, "nohead")
+
+appendaction("finalizers", "lists", "typesetters.paragraphs.normalize") -- moved here
+appendaction("finalizers", "lists", "typesetters.margins.localhandler") -- disabled
+appendaction("finalizers", "lists", "builders.paragraphs.keeptogether")
+------------("finalizers", "lists", "nodes.handlers.graphicvadjust") -- todo
+appendaction("finalizers", "fonts", "builders.paragraphs.solutions.splitters.optimize") -- experimental
+appendaction("finalizers", "lists", "builders.paragraphs.tag")
+
+-- the next can also be in contributers normalizers (when we remove the loop in the handler)
+
+appendaction("finalizers", "lists", "nodes.linefillers.handler")
+
+appendaction("contributers", "normalizers", "nodes.handlers.flattenline")
+appendaction("contributers", "normalizers", "nodes.handlers.textbackgrounds")
+
+-- still experimental
+
+appendaction("mvlbuilders", "normalizers", "typesetters.margins.globalhandler") -- disabled
+appendaction("mvlbuilders", "normalizers", "nodes.handlers.migrate")
+
+appendaction("mvlbuilders", "normalizers", "builders.vspacing.pagehandler") -- last !
+appendaction("mvlbuilders", "normalizers", "builders.profiling.pagehandler") -- here !
+
+------------("vboxbuilders", "normalizers", "typesetters.margins.localhandler")
+appendaction("vboxbuilders", "normalizers", "builders.vspacing.vboxhandler")
+appendaction("vboxbuilders", "normalizers", "builders.profiling.vboxhandler") -- here !
+
+-- experimental too
+
+appendaction("mvlbuilders", "normalizers", "typesetters.checkers.handler")
+appendaction("vboxbuilders", "normalizers", "typesetters.checkers.handler")
+
+-- rather special (this might get hardcoded):
+
+prependaction("processors", "before", "nodes.properties.attach") -- enabled but optimized for quick abort
+appendaction ("shipouts", "normalizers", "nodes.properties.delayed") -- enabled but optimized for quick abort
+
+-- speedup: only kick in when used
+
+disableaction("processors", "typesetters.wrappers.handler")
+disableaction("processors", "languages.replacements.handler")
+disableaction("processors", "typesetters.characteralign.handler")
+disableaction("processors", "scripts.autofontfeature.handler")
+disableaction("processors", "scripts.splitters.handler")
+disableaction("processors", "scripts.injectors.handler") -- was enabled
+disableaction("processors", "fonts.collections.process")
+disableaction("processors", "fonts.checkers.missing")
+disableaction("processors", "chars.handle_breakpoints")
+disableaction("processors", "typesetters.cleaners.handler")
+disableaction("processors", "typesetters.cases.handler")
+disableaction("processors", "typesetters.digits.handler")
+disableaction("processors", "typesetters.breakpoints.handler")
+disableaction("processors", "typesetters.directions.handler")
+disableaction("processors", "languages.words.check")
+disableaction("processors", "typesetters.initials.handler")
+disableaction("processors", "typesetters.firstlines.handler")
+disableaction("processors", "typesetters.spacings.handler")
+disableaction("processors", "typesetters.kerns.handler")
+disableaction("processors", "typesetters.italics.handler")
+disableaction("processors", "languages.visualizediscretionaries")
+disableaction("processors", "nodes.handlers.stripping")
+disableaction("processors", "builders.paragraphs.solutions.splitters.split")
+disableaction("processors", "typesetters.rubies.check")
+disableaction("processors", "typesetters.fontkerns.handler")
+disableaction("processors", "nodes.handlers.flatten")
+disableaction("processors", "typesetters.marksuspects")
+
+disableaction("shipouts", "typesetters.showsuspects")
+disableaction("shipouts", "typesetters.margins.finalhandler")
+disableaction("shipouts", "builders.paragraphs.expansion.trace")
+disableaction("shipouts", "typesetters.alignments.handler")
+disableaction("shipouts", "nodes.rules.handler")
+disableaction("shipouts", "nodes.shifts.handler")
+disableaction("shipouts", "attributes.colors.handler")
+disableaction("shipouts", "attributes.transparencies.handler")
+disableaction("shipouts", "attributes.colorintents.handler")
+disableaction("shipouts", "attributes.effects.handler")
+disableaction("shipouts", "attributes.negatives.handler")
+disableaction("shipouts", "attributes.viewerlayers.handler")
+disableaction("shipouts", "structures.tags.handler")
+disableaction("shipouts", "nodes.visualizers.handler")
+disableaction("shipouts", "nodes.handlers.accessibility")
+disableaction("shipouts", "nodes.handlers.backgrounds")
+disableaction("shipouts", "nodes.handlers.alignbackgrounds")
+disableaction("shipouts", "nodes.references.handler")
+disableaction("shipouts", "nodes.destinations.handler")
+-------------("shipouts", "nodes.handlers.export")
+disableaction("shipouts", "typesetters.rubies.attach")
+
+disableaction("finalizers", "typesetters.margins.localhandler")
+disableaction("finalizers", "builders.paragraphs.keeptogether")
+disableaction("finalizers", "builders.paragraphs.solutions.splitters.optimize")
+-------------("finalizers", "nodes.handlers.graphicvadjust") -- sort of obsolete
+disableaction("finalizers", "builders.paragraphs.tag")
+disableaction("finalizers", "nodes.linefillers.handler")
+
+disableaction("contributers","nodes.handlers.flattenline")
+disableaction("contributers","nodes.handlers.textbackgrounds")
+
+disableaction("math", "noads.handlers.showtree")
+disableaction("math", "noads.handlers.tags")
+disableaction("math", "noads.handlers.italics")
+disableaction("math", "noads.handlers.collapse")
+disableaction("math", "noads.handlers.kernpairs")
+disableaction("math", "noads.handlers.domains")
+disableaction("math", "noads.handlers.classes")
+disableaction("math", "noads.handlers.autofences")
+disableaction("math", "noads.handlers.makeup")
+disableaction("math", "typesetters.directions.processmath")
+
+disableaction("mvlbuilders", "typesetters.margins.globalhandler")
+disableaction("mvlbuilders", "nodes.handlers.migrate")
+disableaction("mvlbuilders", "typesetters.checkers.handler")
+disableaction("mvlbuilders", "builders.profiling.pagehandler")
+
+-------------("vboxbuilders","typesetters.margins.localhandler")
+disableaction("vboxbuilders","typesetters.checkers.handler")
+disableaction("vboxbuilders","builders.profiling.vboxhandler")
freezecallbacks("find_.*_file", "find file using resolver")
freezecallbacks("read_.*_file", "read file at once")
@@ -161,12 +253,8 @@ freezegroup("finalizers", "normalizers")
freezegroup("finalizers", "fonts")
freezegroup("finalizers", "lists")
-freezegroup("math", "normalizers")
-freezegroup("math", "builders")
-
freezegroup("shipouts", "normalizers")
freezegroup("shipouts", "finishers")
-freezegroup("shipouts", "wrapup")
freezegroup("mvlbuilders", "normalizers")
freezegroup("vboxbuilders", "normalizers")
@@ -177,14 +265,15 @@ freezegroup("vboxbuilders", "normalizers")
freezegroup("math", "normalizers")
freezegroup("math", "builders")
-freezegroup("everypar", "normalizers")
-
-- new: disabled here
+disableaction("processors", "builders.kernel.ligaturing")
+disableaction("processors", "builders.kernel.kerning")
+
directives.register("nodes.basepass", function(v)
if v then
- enableaction("processors", "builders.kernel.ligaturing")
- enableaction("processors", "builders.kernel.kerning")
+ enableaction("processors", "builders.kernel.ligaturing")
+ enableaction("processors", "builders.kernel.kerning")
else
disableaction("processors", "builders.kernel.ligaturing")
disableaction("processors", "builders.kernel.kerning")
diff --git a/Master/texmf-dist/tex/context/base/mkiv/toks-aux.mkiv b/Master/texmf-dist/tex/context/base/mkiv/toks-aux.mkiv
deleted file mode 100644
index 5b43de596f3..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/toks-aux.mkiv
+++ /dev/null
@@ -1,51 +0,0 @@
-%D \module
-%D [ file=toks-aux,
-%D version=2018.11.29,
-%D title=\CONTEXT\ Token Support,
-%D subtitle=Helpers,
-%D author=Wolfgang Schuster,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Token Support / Helpers}
-
-\unprotect
-
-\installcorenamespace {tokenlist}
-
-\unexpanded\def\definetokenlist[#1]%
- {\ifcsname\??tokenlist#1\endcsname
- \global\lastnamedcs\emptytoks
- \else
- \expandafter\newtoks\csname\??tokenlist#1\endcsname
- \fi}
-
-\unexpanded\def\starttokenlist[#1]#2\stoptokenlist
- {\ifcsname\??tokenlist#1\endcsname \else
- \expandafter\newtoks\csname\??tokenlist#1\endcsname
- \fi
- \toksapp\lastnamedcs{#2}}
-
-\let\stoptokenlist\relax
-
-\def\gettokenlist[#1]%
- {\ifcsname\??tokenlist#1\endcsname
- \the\lastnamedcs
- \fi}
-
-\def\settokenlist[#1]#2%
- {\ifcsname\??tokenlist#1\endcsname \else
- \expandafter\newtoks\csname\??tokenlist#1\endcsname
- \fi
- \toksapp\lastnamedcs{#2}}
-
-\unexpanded\def\resettokenlist[#1]%
- {\ifcsname\??tokenlist#1\endcsname
- \lastnamedcs\emptytoks
- \fi}
-
-\protect
diff --git a/Master/texmf-dist/tex/context/base/mkiv/toks-ini.lua b/Master/texmf-dist/tex/context/base/mkiv/toks-ini.lua
index 43e2d80a32b..15e5df267ef 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/toks-ini.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/toks-ini.lua
@@ -18,15 +18,41 @@ local printtable = table.print
local concat = table.concat
local format = string.format
-if token.commands then
+if setinspector then
- local commands = token.commands()
+ local istoken = token.is_token
+ local simple = { letter = "letter", other_char = "other" }
- tokens.commands = utilities.storage.allocate(table.swapped(commands,commands))
+ local function astable(t)
+ if t and istoken(t) then
+ local cmdname = t.cmdname
+ local simple = simple[cmdname]
+ if simple then
+ return {
+ category = simple,
+ character = utfchar(t.mode) or nil,
+ }
+ else
+ return {
+ command = t.command,
+ id = t.id,
+ tok = t.tok,
+ csname = t.csname,
+ active = t.active,
+ expandable = t.expandable,
+ protected = t.protected,
+ mode = t.mode,
+ index = t.index,
+ cmdname = cmdname,
+ }
+ end
+ end
+ end
-else
+ tokens.istoken = istoken
+ tokens.astable = astable
- tokens.commands = { }
+ setinspector("token",function(v) if istoken(v) then printtable(astable(v),tostring(v)) return true end end)
end
@@ -43,8 +69,6 @@ local scan_token = token.scan_token
local scan_word = token.scan_word
local scan_number = token.scan_number
local scan_csname = token.scan_csname
-local scan_real = token.scan_real
-local scan_float = token.scan_float
local get_next = token.get_next
@@ -53,26 +77,25 @@ local get_macro = token.get_macro
local get_meaning = token.get_meaning
local get_cmdname = token.get_cmdname
local set_char = token.set_char
-local set_lua = token.set_lua
-
local create_token = token.create
-local new_token = token.new
-local is_defined = token.is_defined
-local is_token = token.is_token
-
-if not is_defined then
- is_defined = function(name)
- return get_cmdname(create_token(name)) ~= "undefined_cs"
- end
+if not set_char then -- for a while
+ local contextsprint = context.sprint
+ local ctxcatcodes = catcodes.numbers.ctxcatcodes
+ set_char = function(n,u) contextsprint(ctxcatcodes,format("\\chardef\\%s=%s",n,u)) end
+end
+function tokens.defined(name)
+ return get_cmdname(create_token(name)) ~= "undefined_cs"
end
-tokens.new = new_token
-tokens.create = create_token
-tokens.istoken = is_token
-tokens.isdefined = is_defined
-tokens.defined = is_defined
+-- set_macro = function(k,v,g)
+-- if g == "global" then
+-- context.setgvalue(k,v or '')
+-- else
+-- context.setvalue(k,v or '')
+-- end
+-- end
local bits = {
escape = 0x00000001, -- 2^00
@@ -217,8 +240,6 @@ tokens.scanners = { -- these expand
glue = scan_glue,
skip = scan_glue,
integer = scan_int,
- real = scan_real,
- float = scan_float,
count = scan_int,
string = scan_string,
argument = scan_argument,
@@ -247,7 +268,6 @@ tokens.getters = { -- these don't expand
tokens.setters = {
macro = set_macro,
char = set_char,
- lua = set_lua,
count = tex.setcount,
dimen = tex.setdimen,
skip = tex.setglue,
@@ -277,48 +297,3 @@ tokens.setters = {
-- /* unsave_tex_scanner(texstate); */
-- return 1;
-- }
-
-if setinspector then
-
- local simple = { letter = "letter", other_char = "other" }
-
- local function astable(t)
- if t and is_token(t) then
- local cmdname = t.cmdname
- local simple = simple[cmdname]
- if simple then
- return {
- category = simple,
- character = utfchar(t.mode) or nil,
- }
- else
- return {
- command = t.command,
- id = t.id,
- tok = t.tok,
- csname = t.csname,
- active = t.active,
- expandable = t.expandable,
- protected = t.protected,
- mode = t.mode,
- index = t.index,
- cmdname = cmdname,
- }
- end
- end
- end
-
- tokens.astable = astable
-
- setinspector("token",function(v) local t = astable(v) if t then printtable(t,tostring(v)) return true end end)
-
-end
-
-tokens.cache = table.setmetatableindex(function(t,k)
- if not is_defined(k) then
- set_macro(k,"","global")
- end
- local v = create_token(k)
- t[k] = v
- return v
-end)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/toks-ini.mkiv b/Master/texmf-dist/tex/context/base/mkiv/toks-ini.mkiv
index af22d53933e..9d3375432c8 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/toks-ini.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/toks-ini.mkiv
@@ -15,6 +15,11 @@
\unprotect
+\newtoks\t_get_macro % will go away
+
\registerctxluafile{toks-ini}{}
+\registerctxluafile{toks-scn}{}
+\registerctxluafile{cldf-scn}{}
+\registerctxluafile{cldf-stp}{}
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkiv/toks-scn.lua b/Master/texmf-dist/tex/context/base/mkiv/toks-scn.lua
index f73ecc86c50..fe32a1de4d8 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/toks-scn.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/toks-scn.lua
@@ -106,40 +106,7 @@ local function scanconditional()
return nil
end
-local function scantable(t,data)
- if not data then
- data = { }
- end
- local wrapped = scanopen()
- while true do
- local key = scanword()
- if key then
- local get = t[key]
- if get then
- data[key] = get()
- else
- -- catch all we can get
- end
- else
- break
- end
- end
- if wrapped then
- scanclose()
- end
- return data
-end
-
-function tokens.constant(s)
- if type(s) == "string" then
- return "'" .. s .. "'"
- else
- return s
- end
-end
-
scanners.list = scanlist
-scanners.table = scantable
scanners.conditional = scanconditional
local shortcuts = {
@@ -151,7 +118,6 @@ local shortcuts = {
scanstring = scanstring,
scaninteger = scaninteger,
scannumber = scannumber,
- scantable = scantable,
scankeyword = scankeyword,
scankeywordcs = scankeywordcs,
scanword = scanword,
@@ -288,8 +254,6 @@ local presets = {
["8 strings"] = { "string", "string", "string", "string", "string", "string", "string", "string" },
}
-tokens.presets = presets
-
function tokens.compile(specification)
local f = { }
local n = 0
@@ -355,7 +319,7 @@ function tokens.compile(specification)
return c
end
end
- local p = t and presets[t] -- already done in implement
+ local p = t and presets[t]
if p then
t = p
end
@@ -496,3 +460,35 @@ end
-- }
--
-- os.exit()
+
+function tokens.scantable(t,data)
+ if not data then
+ data = { }
+ end
+ local wrapped = scanopen()
+ while true do
+ local key = scanword()
+ if key then
+ local get = t[key]
+ if get then
+ data[key] = get()
+ else
+ -- catch all we can get
+ end
+ else
+ break
+ end
+ end
+ if wrapped then
+ scanclose()
+ end
+ return data
+end
+
+function tokens.constant(s)
+ if type(s) == "string" then
+ return "'" .. s .. "'"
+ else
+ return s
+ end
+end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/toks-scn.mkiv b/Master/texmf-dist/tex/context/base/mkiv/toks-scn.mkiv
deleted file mode 100644
index 49edf0c242a..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/toks-scn.mkiv
+++ /dev/null
@@ -1,22 +0,0 @@
-%D \module
-%D [ file=toks-ini,
-%D version=2007.03.03,
-%D title=\CONTEXT\ Token Support,
-%D subtitle=Initialization,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Token Support / Scanners}
-
-\unprotect
-
-\registerctxluafile{toks-scn}{}
-\registerctxluafile{cldf-scn}{}
-\registerctxluafile{cldf-stp}{}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkiv/trac-deb.lua b/Master/texmf-dist/tex/context/base/mkiv/trac-deb.lua
index 95f3052fe6f..03df8682541 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/trac-deb.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/trac-deb.lua
@@ -220,13 +220,7 @@ function tracers.printerror(specification)
else
report_nl()
if luaerrorline then
- if linenumber == 0 or not filename or filename == "" then
- print("\nfatal lua error:\n\n",lastluaerror,"\n")
- os.exit(1)
- return
- else
- report("lua error on line %s in file %s:\n\n%s",linenumber,filename,lastluaerror)
- end
+ report("lua error on line %s in file %s:\n\n%s",linenumber,filename,lastluaerror)
elseif lastmpserror then
report("mp error on line %s in file %s:\n\n%s",linenumber,filename,lastmpserror)
else
@@ -347,25 +341,22 @@ directives.register("system.showerror", lmx.overloaderror)
-- trace_calls(n)
-- end) -- indirect is needed for nilling
--- Obsolete ... not that usefull as normally one runs from an editor and
--- when run unattended it makes no sense either.
+local editor = [[scite "-open:%filename%" -goto:%linenumber%]]
--- local editor = [[scite "-open:%filename%" -goto:%linenumber%]]
---
--- directives.register("system.editor",function(v)
--- editor = v
--- end)
---
--- callback.register("call_edit",function(filename,linenumber)
--- if editor then
--- editor = gsub(editor,"%%s",filename)
--- editor = gsub(editor,"%%d",linenumber)
--- editor = gsub(editor,"%%filename%%",filename)
--- editor = gsub(editor,"%%linenumber%%",linenumber)
--- logs.report("system","starting editor: %s",editor)
--- os.execute(editor)
--- end
--- end)
+directives.register("system.editor",function(v)
+ editor = v
+end)
+
+callback.register("call_edit",function(filename,linenumber)
+ if editor then
+ editor = gsub(editor,"%%s",filename)
+ editor = gsub(editor,"%%d",linenumber)
+ editor = gsub(editor,"%%filename%%",filename)
+ editor = gsub(editor,"%%linenumber%%",linenumber)
+ logs.report("system","starting editor: %s",editor)
+ os.execute(editor)
+ end
+end)
implement { name = "showtrackers", actions = trackers.show }
implement { name = "enabletrackers", actions = trackers.enable, arguments = "string" }
diff --git a/Master/texmf-dist/tex/context/base/mkiv/trac-inf.lua b/Master/texmf-dist/tex/context/base/mkiv/trac-inf.lua
index 7a5c35fd5fa..439e8b2dc7c 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/trac-inf.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/trac-inf.lua
@@ -82,13 +82,9 @@ local seconds = function(n) return n or 0 end
--
-- end
-local function starttiming(instance,reset)
+local function starttiming(instance)
local timer = timers[instance or "notimer"]
local it = timer.timing
- if reset then
- it = 0
- timer.loadtime = 0
- end
if it == 0 then
timer.starttime = ticks()
if not timer.loadtime then
@@ -127,24 +123,6 @@ local function elapsed(instance)
end
end
-local function currenttime(instance)
- if type(instance) == "number" then
- return instance
- else
- local timer = timers[instance or "notimer"]
- local it = timer.timing
- if it > 1 then
- -- whatever
- else
- local starttime = timer.starttime
- if starttime and starttime > 0 then
- return seconds(timer.loadtime + ticks() - starttime)
- end
- end
- return 0
- end
-end
-
local function elapsedtime(instance)
return format("%0.3f",elapsed(instance))
end
@@ -163,7 +141,6 @@ statistics.hastiming = hastiming
statistics.resettiming = resettiming
statistics.starttiming = starttiming
statistics.stoptiming = stoptiming
-statistics.currenttime = currenttime
statistics.elapsed = elapsed
statistics.elapsedtime = elapsedtime
statistics.elapsedindeed = elapsedindeed
@@ -252,26 +229,17 @@ end
function statistics.runtime()
stoptiming(statistics)
- -- stoptiming(statistics) -- somehow we can start the timer twice, but where
- local runtime = lua.getruntime and lua.getruntime() or elapsedtime(statistics)
- return statistics.formatruntime(runtime)
+ -- stoptiming(statistics) -- somehow we can start the timer twice, but where
+ return statistics.formatruntime(elapsedtime(statistics))
end
local report = logs.reporter("system")
-function statistics.timed(action,all)
+function statistics.timed(action)
starttiming("run")
action()
stoptiming("run")
- local runtime = tonumber(elapsedtime("run"))
- if all then
- local alltime = tonumber(lua.getruntime and lua.getruntime() or elapsedtime(statistics))
- if alltime and alltime > 0 then
- report("total runtime: %0.3f seconds of %0.3f seconds",runtime,alltime)
- return
- end
- end
- report("total runtime: %0.3f seconds",runtime)
+ report("total runtime: %s seconds",elapsedtime("run"))
end
-- goodie
diff --git a/Master/texmf-dist/tex/context/base/mkiv/trac-jus.lua b/Master/texmf-dist/tex/context/base/mkiv/trac-jus.lua
index aec1844ec5a..e7a030257aa 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/trac-jus.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/trac-jus.lua
@@ -15,6 +15,7 @@ local a_alignstate = attributes.private("alignstate")
local a_justification = attributes.private("justification")
local nuts = nodes.nuts
+local tonut = nuts.tonut
local getfield = nuts.getfield
local getlist = nuts.getlist
@@ -25,9 +26,8 @@ local setlink = nuts.setlink
local getwidth = nuts.getwidth
local findtail = nuts.tail
-local nexthlist = nuts.traversers.hlist
-
-local getdimensions = nuts.dimensions
+local traverse_id = nuts.traverse_id
+local list_dimensions = nuts.dimensions
local copy_list = nuts.copy_list
local tracedrule = nodes.tracers.pool.nuts.rule
@@ -77,14 +77,14 @@ trackers.register("visualizers.justification", function(v)
end)
function checkers.handler(head)
- for current in nexthlist, head do
+ for current in traverse_id(hlist_code,tonut(head)) do
if getattr(current,a_justification) == 1 then
setattr(current,a_justification,0) -- kind of reset
local width = getwidth(current)
if width > 0 then
local list = getlist(current)
if list then
- local naturalwidth, naturalheight, naturaldepth = getdimensions(list)
+ local naturalwidth, naturalheight, naturaldepth = list_dimensions(list)
local delta = naturalwidth - width
if naturalwidth == 0 or delta == 0 then
-- special box
diff --git a/Master/texmf-dist/tex/context/base/mkiv/trac-log.lua b/Master/texmf-dist/tex/context/base/mkiv/trac-log.lua
index 206af566803..1471bd4c7f2 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/trac-log.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/trac-log.lua
@@ -405,15 +405,6 @@ if runningtex then
setlogfile = ignore
settimedlog = ignore
- -- settimedlog = function()
- -- local localtime = os.localtime
- -- local writeline = write_nl
- -- write_nl = function(f,...)
- -- writeline(f,localtime() .. " | " .. concat { ... })
- -- end
- -- settimedlog = ignore
- -- end
-
else
local report_yes, subreport_yes, status_yes
@@ -767,7 +758,7 @@ if tex then
local report = logs.reporter("pages") -- not needed but saves checking when we grep for it
local texgetcount = tex and tex.getcount
- local real, user, sub = 0, 0, 0
+ local real, user, sub
function logs.start_page_number()
real = texgetcount("realpageno")
@@ -775,35 +766,47 @@ if tex then
sub = texgetcount("subpageno")
end
- local timing = false
- local lasttime = nil
+ local timing = false
+ local starttime = nil
+ local lasttime = nil
trackers.register("pages.timing", function(v) -- only for myself (diagnostics)
- timing = ""
+ starttime = os.clock() -- todo: use other timer
+ timing = true
end)
function logs.stop_page_number() -- the first page can includes the initialization so we omit this in average
if timing then
- local elapsed = statistics.currenttime(statistics)
- local average, page
+ local elapsed, average
+ local stoptime = os.clock()
if not lasttime or real < 2 then
- average = elapsed
- page = elapsed
+ elapsed = stoptime
+ average = stoptime
+ starttime = stoptime
else
- average = elapsed / (real - 1)
- page = elapsed - lasttime
+ elapsed = stoptime - lasttime
+ average = (stoptime - starttime) / (real - 1)
+ end
+ lasttime = stoptime
+ if real <= 0 then
+ report("flushing page, time %0.04f / %0.04f",elapsed,average)
+ elseif user <= 0 then
+ report("flushing realpage %s, time %0.04f / %0.04f",real,elapsed,average)
+ elseif sub <= 0 then
+ report("flushing realpage %s, userpage %s, time %0.04f / %0.04f",real,user,elapsed,average)
+ else
+ report("flushing realpage %s, userpage %s, subpage %s, time %0.04f / %0.04f",real,user,sub,elapsed,average)
end
- lasttime = elapsed
- timing = formatters[", total %0.03f, page %0.03f, average %0.03f"](elapsed,page,average)
- end
- if real <= 0 then
- report("flushing page%s",timing)
- elseif user <= 0 then
- report("flushing realpage %s%s",real,timing)
- elseif sub <= 0 then
- report("flushing realpage %s, userpage %s%s",real,user,timing)
else
- report("flushing realpage %s, userpage %s, subpage %s%s",real,user,sub,timing)
+ if real <= 0 then
+ report("flushing page")
+ elseif user <= 0 then
+ report("flushing realpage %s",real)
+ elseif sub <= 0 then
+ report("flushing realpage %s, userpage %s",real,user)
+ else
+ report("flushing realpage %s, userpage %s, subpage %s",real,user,sub)
+ end
end
logs.flush()
end
@@ -1028,7 +1031,7 @@ end
if tex and tex.error then
function logs.texerrormessage(...) -- for the moment we put this function here
- tex.error(format(...))
+ tex.error(format(...), { })
end
else
function logs.texerrormessage(...)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/trac-par.lua b/Master/texmf-dist/tex/context/base/mkiv/trac-par.lua
index 03f0a67d107..56291f8c83d 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/trac-par.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/trac-par.lua
@@ -15,13 +15,13 @@ local concat = table.concat
local nuts = nodes.nuts
local tonut = nuts.tonut
+local getfield = nuts.getfield
local getid = nuts.getid
local getnext = nuts.getnext
local getlist = nuts.getlist
+local getfont = nuts.getfont
+local getchar = nuts.getchar
local getwidth = nuts.getwidth
-local getexpansion = nuts.getexpansion
-
-local isglyph = nuts.isglyph
local nodecodes = nodes.nodecodes
local hlist_code = nodecodes.hlist
@@ -63,23 +63,23 @@ local function colorize(n)
-- tricky: the built-in method creates dummy fonts and the last line normally has the
-- original font and that one then has ex.auto set
while n do
- local char, id = isglyph(n)
- if char then
- local ne = getexpansion(n)
+ local id = getid(n)
+ if id == glyph_code then
+ local ne = getfield(n,"expansion_factor")
if ne == 0 then
if length > 0 then flush() end
setnodecolor(n,"hz:zero")
else
- -- id == font
- if id ~= font then
+ local f = getfont(n)
+ if f ~= font then
if length > 0 then
flush()
end
- local pf = parameters[id]
+ local pf = parameters[f]
local ex = pf.expansion
if ex and ex.auto then
size = pf.size
- font = id -- save lookups
+ font = f -- save lookups
else
size = false
end
@@ -100,7 +100,7 @@ local function colorize(n)
end
if trace_verbose then
length = length + 1
- list[length] = utfchar(char)
+ list[length] = utfchar(getchar(n))
width = width + getwidth(n) -- no kerning yet
end
end
@@ -109,10 +109,7 @@ local function colorize(n)
if length > 0 then
flush()
end
- local list = getlist(n)
- if list then
- colorize(list,flush)
- end
+ colorize(getlist(n),flush)
else -- nothing to show on kerns
if length > 0 then
flush()
@@ -128,7 +125,7 @@ end
builders.paragraphs.expansion = builders.paragraphs.expansion or { }
function builders.paragraphs.expansion.trace(head)
- colorize(head,true)
+ colorize(tonut(head),true)
return head
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/trac-set.lua b/Master/texmf-dist/tex/context/base/mkiv/trac-set.lua
index 6311d638296..530915fe0a2 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/trac-set.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/trac-set.lua
@@ -396,20 +396,3 @@ if texconfig then
directives.register("luatex.stacksize", function(v) set("stack_size",v) end)
end
-
--- for now here:
-
-local data = table.setmetatableindex("table")
-
-updaters = {
- register = function(what,f)
- local d = data[what]
- d[#d+1] = f
- end,
- apply = function(what,...)
- local d = data[what]
- for i=1,#d do
- d[i](...)
- end
- end,
-}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/trac-vis.lua b/Master/texmf-dist/tex/context/base/mkiv/trac-vis.lua
index b61dadb515a..0e37752db36 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/trac-vis.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/trac-vis.lua
@@ -28,6 +28,8 @@ local compactfloat = number.compactfloat
-- todo: inline concat (more efficient)
-- todo: tags can also be numbers (just add to hash)
+-- todo: dir and localpar nodes
+
local nodecodes = nodes.nodecodes
local nuts = nodes.nuts
@@ -45,10 +47,12 @@ local setattr = nuts.setattr
local setwidth = nuts.setwidth
local setshift = nuts.setshift
+local getfield = nuts.getfield
local getid = nuts.getid
local getfont = nuts.getfont
local getattr = nuts.getattr
local getsubtype = nuts.getsubtype
+local getchar = nuts.getchar
local getbox = nuts.getbox
local getlist = nuts.getlist
local getleader = nuts.getleader
@@ -59,26 +63,22 @@ local getdisc = nuts.getdisc
local getwhd = nuts.getwhd
local getkern = nuts.getkern
local getpenalty = nuts.getpenalty
+local getdir = nuts.getdir
local getwidth = nuts.getwidth
local getdepth = nuts.getdepth
local getshift = nuts.getshift
-local getexpansion = nuts.getexpansion
-
-local isglyph = nuts.isglyph
local hpack_nodes = nuts.hpack
local vpack_nodes = nuts.vpack
local copy_list = nuts.copy_list
-local copy_node = nuts.copy_node
local flush_node_list = nuts.flush_list
local insert_node_before = nuts.insert_before
local insert_node_after = nuts.insert_after
+local traverse_nodes = nuts.traverse
local apply_to_nodes = nuts.apply
local find_tail = nuts.tail
local effectiveglue = nuts.effective_glue
-local nextnode = nuts.traversers.node
-
local hpack_string = nuts.typesetters.tohpack
local texgetattribute = tex.getattribute
@@ -188,16 +188,13 @@ end
-- we can preset a bunch of bits
-local userrule -- bah, not yet defined: todo, delayed(nuts.rules,"userrule")
-local outlinerule -- bah, not yet defined: todo, delayed(nuts.rules,"userrule")
+local userrule -- bah, not yet defined: todo, delayed(nuts.rules,"userrule")
-local function initialize()
- --
+local function enable()
if not usedfont then
-- we use a narrow monospaced font -- infofont ?
visualizers.setfont(fonts.definers.define { name = "lmmonoltcond10regular", size = tex.sp("4pt") })
end
- --
for mode, value in next, modes do
local tag = formatters["v_%s"](mode)
attributes.viewerlayers.define {
@@ -228,25 +225,14 @@ local function initialize()
l_line = layers.line
l_space = layers.space
l_depth = layers.depth
- --
- if not userrule then
- userrule = nuts.rules.userrule
- end
- --
- if not outlinerule then
- outlinerule = nuts.pool.outlinerule
- end
- initialize = false
-end
-
-local function enable()
- if initialize then
- initialize()
- end
enableaction("shipouts","nodes.visualizers.handler")
report_visualize("enabled")
enabled = true
tex.setcount("global","c_syst_visualizers_state",1) -- so that we can optimize at the tex end
+ --
+ if not userrule then
+ userrule = nuts.rules.userrule
+ end
end
local function setvisual(n,a,what,list) -- this will become more efficient when we have the bit lib linked in
@@ -468,7 +454,7 @@ local fontkern, italickern do
local function somekern(head,current,cache,color,layer)
local width = getkern(current)
- local extra = getexpansion(current)
+ local extra = getfield(current,"expansion_factor")
local kern = width + extra
local info = cache[kern]
if not info then
@@ -509,7 +495,7 @@ local glyphexpansion do
local f_cache = caches["glyphexpansion"]
glyphexpansion = function(head,current)
- local extra = getexpansion(current)
+ local extra = getfield(current,"expansion_factor")
if extra ~= 0 then
extra = extra / 1000
local info = f_cache[extra]
@@ -543,7 +529,7 @@ local kernexpansion do
local f_cache = caches["kernexpansion"]
kernexpansion = function(head,current)
- local extra = getexpansion(current)
+ local extra = getfield(current,"expansion_factor")
if extra ~= 0 then
extra = extra / 1000
local info = f_cache[extra]
@@ -578,17 +564,29 @@ local whatsit do
local w_cache = caches["whatsit"]
local tags = {
- open = "OPN",
- write = "WRI",
- close = "CLS",
- special = "SPE",
- latelua = "LUA",
- savepos = "POS",
- userdefined = "USR",
- literal = "LIT",
- setmatrix = "MAT",
- save = "SAV",
- restore = "RES",
+ open = "FIC",
+ write = "FIW",
+ close = "FIC",
+ special = "SPE",
+ latelua = "LUA",
+ savepos = "POS",
+ userdefined = "USR",
+ -- backend stuff
+ pdfliteral = "PDF",
+ pdfrefobj = "PDF",
+ pdfannot = "PDF",
+ pdfstartlink = "PDF",
+ pdfendlink = "PDF",
+ pdfdest = "PDF",
+ pdfthread = "PDF",
+ pdfstartthread = "PDF",
+ pdfendthread = "PDF",
+ pdfthreaddata = "PDF",
+ pdflinkdata = "PDF",
+ pdfcolorstack = "PDF",
+ pdfsetmatrix = "PDF",
+ pdfsave = "PDF",
+ pdfrestore = "PDF",
}
whatsit = function(head,current)
@@ -702,11 +700,40 @@ local ruledbox do
local wd, ht, dp = getwhd(current)
if wd ~= 0 then
local shift = getshift(current)
+ local dir = getdir(current)
+ -- if dir == "LTL" or dir == "RRT" then
+ -- wd, ht, dp = ht + dp, wd, 0
+ -- end
local next = getnext(current)
local prev = previous
+ -- local prev = getprev(current) -- prev can be wrong in math mode < 0.78.3
setboth(current)
local linewidth = emwidth/fraction
local size = 2*linewidth
+ -- local baseline, baseskip
+ -- if dp ~= 0 and ht ~= 0 then
+ -- if wd > 20*linewidth then
+ -- local targetsize = wd - size
+ -- baseline = b_cache[targetsize]
+ -- if not baseline then
+ -- -- due to an optimized leader color/transparency we need to set the glue node in order
+ -- -- to trigger this mechanism
+ -- local leader = setlink(new_glue(size),new_rule(3*size,linewidth,0),new_glue(size))
+ -- leader = hpack_nodes(leader)
+ -- baseline = new_glue(0,65536,0,2,0)
+ -- setleader(baseline,leader)
+ -- setsubtype(baseline,cleaders_code)
+ -- setlisttransparency(baseline,c_text)
+ -- baseline = hpack_nodes(baseline,targetsize)
+ -- b_cache[targetsize] = baseline
+ -- end
+ -- baseline = copy_list(baseline)
+ -- baseskip = new_kern(-wd+linewidth)
+ -- else
+ -- baseline = new_rule(wd-size,linewidth,0)
+ -- baseskip = new_kern(-wd+size)
+ -- end
+ -- end
local this
if not simple then
this = b_cache[what]
@@ -719,9 +746,22 @@ local ruledbox do
end
end
-- we need to trigger the right mode (else sometimes no whatits)
+ -- local info = setlink(
+ -- this and copy_list(this) or nil,
+ -- new_rule(linewidth,ht,dp),
+ -- new_rule(wd-size,-dp+linewidth,dp),
+ -- new_rule(linewidth,ht,dp),
+ -- new_kern(-wd+linewidth),
+ -- new_rule(wd-size,ht,-ht+linewidth),
+ -- baseskip,
+ -- baseskip and baseline or nil
+ -- )
+ --
+ -- userrules:
+ --
local info = setlink(
this and copy_list(this) or nil,
- (dp == 0 and outlinerule and outlinerule(wd,ht,dp,linewidth)) or userrule {
+ userrule {
width = wd,
height = ht,
depth = dp,
@@ -732,7 +772,7 @@ local ruledbox do
)
--
setlisttransparency(info,c_text)
- info = new_hlist(info) -- important
+ info = new_hlist(info)
--
setattr(info,a_layer,layer)
if vertical then
@@ -806,16 +846,56 @@ local ruledglyph do
ruledglyph = function(head,current,previous) -- wrong for vertical glyphs
local wd = getwidth(current)
+ -- local wd = chardata[getfont(current)][getchar(current)].width
if wd ~= 0 then
local wd, ht, dp = getwhd(current)
+ -- local dir = getdir(current)
+ -- if dir == "LTL" or dir = "RTT" then
+ -- wd, ht, dp = ht + dp, wd, 0
+ -- end
local next = getnext(current)
local prev = previous
setboth(current)
local linewidth = emwidth/(2*fraction)
local info
--
+ -- original
+ --
+ -- local baseline
+ -- if (dp >= 0 and ht >= 0) or (dp <= 0 and ht <= 0) then
+ -- baseline = new_rule(wd-2*linewidth,linewidth,0)
+ -- end
+ -- local doublelinewidth = 2*linewidth
+ -- -- could be a pdf rule (or a user rule now)
+ -- info = setlink(
+ -- new_rule(linewidth,ht,dp),
+ -- new_rule(wd-doublelinewidth,-dp+linewidth,dp),
+ -- new_rule(linewidth,ht,dp),
+ -- new_kern(-wd+linewidth),
+ -- new_rule(wd-doublelinewidth,ht,-ht+linewidth),
+ -- new_kern(-wd+doublelinewidth),
+ -- baseline
+ -- )
+ --
+ -- experiment with subtype outline
+ --
+ -- if (dp >= 0 and ht >= 0) or (dp <= 0 and ht <= 0) then
+ -- baseline = new_rule(wd,linewidth/2,0)
+ -- end
+ -- local r = new_rule(wd-linewidth,ht-linewidth/4,dp-linewidth/4)
+ -- setsubtype(r,nodes.rulecodes.outline)
+ -- setfield(r,"transform",linewidth)
+ -- info = setlink(
+ -- new_kern(linewidth/4),
+ -- r,
+ -- new_kern(-wd+linewidth/2),
+ -- baseline
+ -- )
+ --
+ -- userrules:
+ --
info = setlink(
- (dp == 0 and outlinerule and outlinerule(wd,ht,dp,linewidth)) or userrule {
+ userrule {
width = wd,
height = ht,
depth = dp,
@@ -825,8 +905,7 @@ local ruledglyph do
new_kern(-wd)
)
--
- local c, f = isglyph(current)
- local char = chardata[f][c]
+ local char = chardata[getfont(current)][getchar(current)]
if char and type(char.unicode) == "table" then -- hackery test
setlistcolor(info,c_ligature)
setlisttransparency(info,c_ligature_d)
@@ -863,22 +942,19 @@ end
local ruledglue do
- local gluecodes = nodes.gluecodes
- local leadercodes = nodes.gluecodes
-
- local userskip_code = gluecodes.userskip
- local spaceskip_code = gluecodes.spaceskip
- local xspaceskip_code = gluecodes.xspaceskip
- local leftskip_code = gluecodes.leftskip
- local rightskip_code = gluecodes.rightskip
-
- local cleaders_code = leadercodes.cleaders
+ local gluecodes = nodes.gluecodes
+ local cleaders_code = gluecodes.cleaders
+ local userskip_code = gluecodes.userskip
+ local space_code = gluecodes.spaceskip
+ local xspace_code = gluecodes.xspaceskip
+ local leftskip_code = gluecodes.leftskip
+ local rightskip_code = gluecodes.rightskip
local g_cache_v = caches["vglue"]
local g_cache_h = caches["hglue"]
local tags = {
- -- [gluecodes.userskip] = "US",
+ -- userskip = "US",
[gluecodes.lineskip] = "LS",
[gluecodes.baselineskip] = "BS",
[gluecodes.parskip] = "PS",
@@ -897,12 +973,12 @@ local ruledglue do
[gluecodes.thinmuskip] = "MS",
[gluecodes.medmuskip] = "MM",
[gluecodes.thickmuskip] = "ML",
- [leadercodes.leaders] = "NL",
- [leadercodes.cleaders] = "CL",
- [leadercodes.xleaders] = "XL",
- [leadercodes.gleaders] = "GL",
- -- true = "VS",
- -- false = "HS",
+ [gluecodes.leaders] = "NL",
+ [gluecodes.cleaders] = "CL",
+ [gluecodes.xleaders] = "XL",
+ [gluecodes.gleaders] = "GL",
+ -- true = "VS",
+ -- false = "HS",
}
-- we sometimes pass previous as we can have issues in math (not watertight for all)
@@ -915,7 +991,7 @@ local ruledglue do
if info then
-- print("glue hit")
else
- if subtype == spaceskip_code or subtype == xspaceskip_code then
+ if subtype == space_code or subtype == xspace_code then
info = sometext(amount,l_glue,c_space)
elseif subtype == leftskip_code or subtype == rightskip_code then
info = sometext(amount,l_glue,c_skip_a)
@@ -942,7 +1018,7 @@ local ruledglue do
-- ruledspace = function(head,current,parent)
-- local subtype = getsubtype(current)
- -- if subtype == spaceskip_code or subtype == xspaceskip_code then
+ -- if subtype == space_code or subtype == xspace_code then
-- local width = effectiveglue(current,parent)
-- local amount = formatters["%s:%0.3f"](tags[subtype] or "HS",width*pt_factor)
-- local info = g_cache_h[amount]
@@ -965,10 +1041,10 @@ local ruledglue do
ruledspace = function(head,current,parent)
local subtype = getsubtype(current)
- if subtype == spaceskip_code or subtype == xspaceskip_code then -- not yet all space
+ if subtype == space_code or subtype == xspace_code then -- not yet all space
local width = effectiveglue(current,parent)
local info
- if subtype == spaceskip_code then
+ if subtype == space_code then
info = g_cache_s[width]
if not info then
info = someblob("SP",l_glue,c_space,nil,width)
@@ -1103,26 +1179,24 @@ end
do
- local disc_code = nodecodes.disc
- local kern_code = nodecodes.kern
- local glyph_code = nodecodes.glyph
- local glue_code = nodecodes.glue
- local penalty_code = nodecodes.penalty
- local whatsit_code = nodecodes.whatsit
- local user_code = nodecodes.user
- local math_code = nodecodes.math
- local hlist_code = nodecodes.hlist
- local vlist_code = nodecodes.vlist
-
- local kerncodes = nodes.kerncodes
- local fontkern_code = kerncodes.fontkern
- local italickern_code = kerncodes.italiccorrection
- ----- userkern_code = kerncodes.userkern
-
- local listcodes = nodes.listcodes
- local linelist_code = listcodes.line
-
- local cache
+ local disc_code = nodecodes.disc
+ local kern_code = nodecodes.kern
+ local glyph_code = nodecodes.glyph
+ local glue_code = nodecodes.glue
+ local penalty_code = nodecodes.penalty
+ local whatsit_code = nodecodes.whatsit
+ local user_code = nodecodes.user
+ local math_code = nodecodes.math
+ local hlist_code = nodecodes.hlist
+ local vlist_code = nodecodes.vlist
+
+ local kerncodes = nodes.kerncodes
+ local font_kern_code = kerncodes.fontkern
+ local italic_kern_code = kerncodes.italiccorrection
+ ----- user_kern_code = kerncodes.userkern
+
+ local listcodes = nodes.listcodes
+ local line_code = listcodes.line
local function visualize(head,vertical,forced,parent)
local trace_hbox = false
@@ -1151,58 +1225,6 @@ do
local prev_trace_fontkern = nil
local prev_trace_italic = nil
local prev_trace_expansion = nil
-
- -- local function setthem(t,k)
- -- local v_trace_hbox = band(k, 1) ~= 0
- -- local v_trace_vbox = band(k, 2) ~= 0
- -- local v_trace_vtop = band(k, 4) ~= 0
- -- local v_trace_kern = band(k, 8) ~= 0
- -- local v_trace_glue = band(k, 16) ~= 0
- -- local v_trace_penalty = band(k, 32) ~= 0
- -- local v_trace_fontkern = band(k, 64) ~= 0
- -- local v_trace_strut = band(k, 128) ~= 0
- -- local v_trace_whatsit = band(k, 256) ~= 0
- -- local v_trace_glyph = band(k, 512) ~= 0
- -- local v_trace_simple = band(k, 1024) ~= 0
- -- local v_trace_user = band(k, 2048) ~= 0
- -- local v_trace_math = band(k, 4096) ~= 0
- -- local v_trace_italic = band(k, 8192) ~= 0
- -- local v_trace_origin = band(k, 16384) ~= 0
- -- local v_trace_discretionary = band(k, 32768) ~= 0
- -- local v_trace_expansion = band(k, 65536) ~= 0
- -- local v_trace_line = band(k,131072) ~= 0
- -- local v_trace_space = band(k,262144) ~= 0
- -- local v_trace_depth = band(k,524288) ~= 0
- -- local v = function()
- -- trace_hbox = v_trace_hbox
- -- trace_vbox = v_trace_vbox
- -- trace_vtop = v_trace_vtop
- -- trace_kern = v_trace_kern
- -- trace_glue = v_trace_glue
- -- trace_penalty = v_trace_penalty
- -- trace_fontkern = v_trace_fontkern
- -- trace_strut = v_trace_strut
- -- trace_whatsit = v_trace_whatsit
- -- trace_glyph = v_trace_glyph
- -- trace_simple = v_trace_simple
- -- trace_user = v_trace_user
- -- trace_math = v_trace_math
- -- trace_italic = v_trace_italic
- -- trace_origin = v_trace_origin
- -- trace_discretionary = v_trace_discretionary
- -- trace_expansion = v_trace_expansion
- -- trace_line = v_trace_line
- -- trace_space = v_trace_space
- -- trace_depth = v_trace_depth
- -- end
- -- t[k] = v
- -- return v
- -- end
- --
- -- if not cache then
- -- cache = setmetatableindex(setthem)
- -- end
-
while current do
local id = getid(current)
local a = forced or getattr(current,a_visual) or unsetvalue
@@ -1232,7 +1254,6 @@ do
trace_space = false
trace_depth = false
else -- dead slow:
- -- cache[a]()
trace_hbox = band(a, 1) ~= 0
trace_vbox = band(a, 2) ~= 0
trace_vtop = band(a, 4) ~= 0
@@ -1282,14 +1303,14 @@ do
setdisc(current,pre,post,replace)
elseif id == kern_code then
local subtype = getsubtype(current)
- if subtype == fontkern_code then
+ if subtype == font_kern_code then
if trace_fontkern or prev_trace_fontkern then
head, current = fontkern(head,current)
end
if trace_expansion or prev_trace_expansion then
head, current = kernexpansion(head,current)
end
- elseif subtype == italickern_code then
+ elseif subtype == italic_kern_code then
if trace_italic or prev_trace_italic then
head, current = italickern(head,current)
elseif trace_kern then
@@ -1321,7 +1342,7 @@ do
if trace_depth then
ruleddepth(current)
end
- if trace_line and getsubtype(current) == linelist_code then
+ if trace_line and getsubtype(current) == line_code then
head, current = ruledbox(head,current,false,l_line,"L__",trace_simple,previous,trace_origin,parent)
elseif trace_hbox then
head, current = ruledbox(head,current,false,l_hbox,"H__",trace_simple,previous,trace_origin,parent)
@@ -1369,9 +1390,9 @@ do
local function handler(head)
if usedfont then
starttiming(visualizers)
- head = visualize(head,true)
+ head = visualize(tonut(head),true)
stoptiming(visualizers)
- return head, true
+ return tonode(head), true
else
return head, false
end
@@ -1412,7 +1433,8 @@ do
}
local function markfonts(list)
- for n, id in nextnode, list do
+ for n in traverse_nodes(list) do
+ local id = getid(n)
if id == glyph_code then
local font = getfont(n)
local okay = used[font]
@@ -1485,57 +1507,3 @@ do
}
end
-
--- Here for now:
-
-do
-
- local function make(str,forecolor,rulecolor,layer)
- if initialize then
- initialize()
- end
- local rule = new_rule(emwidth/fraction,exheight,4*exheight)
- setcolor(rule,rulecolor)
- settransparency(rule,rulecolor)
- local info
- if str == "" then
- info = new_hlist(rule)
- else
- local text = hpack_string(str,usedfont)
- local list = getlist(text)
- setlistcolor(list,textcolor)
- setlisttransparency(list,textcolor)
- setshift(text,3.5 * exheight)
- info = new_hlist(setlink(rule,text))
- end
- setattr(info,a_layer,layer)
- return info
- end
-
- function visualizers.register(name,textcolor,rulecolor)
- if rawget(layers,name) then
- -- message
- return
- end
- local cache = caches[name]
- local layer = layers[name]
- if not textcolor then
- textcolor = c_text_d
- end
- if not rulecolor then
- rulecolor = c_origin_d
- end
- return function(str)
- if not str then
- str = ""
- end
- local info = cache[str]
- if not info then
- info = make(str,textcolor,rulecolor,layer)
- cache[str] = info
- end
- return copy_node(info)
- end
- end
-
-end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/trac-vis.mkiv b/Master/texmf-dist/tex/context/base/mkiv/trac-vis.mkiv
index 570e6a7c730..a6a3fa5a2c0 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/trac-vis.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/trac-vis.mkiv
@@ -76,7 +76,7 @@
\to \everyshipout
\appendtoks
- \glet\syst_visualizers_speedup\relax
+ \global\let\syst_visualizers_speedup\relax
\to \t_syst_visualizers_optimize
\def\syst_visualizers_speedup{\the\t_syst_visualizers_optimize}
@@ -122,11 +122,6 @@
\unexpanded\def\showfontitalics
{\clf_setvisual{italic}}
-\unexpanded\def\showglyphdata
- {\showglyphs
- \showfontkerns
- \showfontitalics}
-
\unexpanded\def\showfontexpansion
{\clf_setvisual{expansion}}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/type-ini.mkvi b/Master/texmf-dist/tex/context/base/mkiv/type-ini.mkvi
index ac5f6af2f95..2ac3ee2071f 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/type-ini.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/type-ini.mkvi
@@ -45,30 +45,18 @@
\let\currenttypescripts\empty
\let\currenttypefile \empty
-\installmacrostack\currenttypefile
-
\let\typescriptone \empty % public, used in typescripts
\let\typescripttwo \empty % public, used in typescripts
\let\typescriptthree\empty % public, used in typescripts
-\installmacrostack\typescriptone
-\installmacrostack\typescripttwo
-\installmacrostack\typescriptthree
-
\let\fontclassstyle \empty
-\installmacrostack\fontclassstyle
-
\let\m_font_typescripts_one \empty
\let\m_font_typescripts_two \empty
\let\m_font_typescripts_three\empty
\let\m_font_typescripts_check\empty
\let\m_font_typescripts_match\empty
-\installmacrostack\m_font_typescripts_one
-\installmacrostack\m_font_typescripts_two
-\installmacrostack\m_font_typescripts_three
-
\let\t_font_typescripts\relax % uses as synonym
\installcorenamespace{typescriptcache}
@@ -87,9 +75,6 @@
\let\typescriptmethod\plusone % 1: empty==all==true 2: empty==false
\let\typescriptstate \plustwo % 1: process 2: store
-\installmacrostack\typescriptmethod
-\installmacrostack\typescriptstate
-
\unexpanded\def\starttypescriptcollection
{\dosingleempty\font_typescripts_collection_start}
@@ -110,21 +95,19 @@
\def\font_typescripts_use_one{\let\typescriptmethod\plusone\font_typescripts_use}
\def\font_typescripts_use_two{\let\typescriptmethod\plustwo\font_typescripts_use}
-\installmacrostack\stoptypescript
-
\unexpanded\def\font_typescripts_use[#one][#two][#three]%
- {\push_macro_m_font_typescripts_one
- \push_macro_m_font_typescripts_two
- \push_macro_m_font_typescripts_three
+ {\pushmacro\m_font_typescripts_one
+ \pushmacro\m_font_typescripts_two
+ \pushmacro\m_font_typescripts_three
\edef\m_font_typescripts_one {\truetypescript{#one}}%
\edef\m_font_typescripts_two {\truetypescript{#two}}%
\edef\m_font_typescripts_three{\truetypescript{#three}}%
- \push_macro_typescriptone
- \push_macro_typescripttwo
- \push_macro_typescriptthree
- \push_macro_typescriptmethod
- \push_macro_typescriptstate
- \push_macro_stoptypescript
+ \pushmacro\typescriptone
+ \pushmacro\typescripttwo
+ \pushmacro\typescriptthree
+ \pushmacro\typescriptmethod
+ \pushmacro\typescriptstate
+ \pushmacro\stoptypescript
\typescriptfoundfalse
\let\typescriptstate\plusone % why
\iftracetypescripts
@@ -136,15 +119,15 @@
\font_typescripts_use_display
\fi
\setfalse\c_font_typescripts_first_pass
- \pop_macro_stoptypescript
- \pop_macro_typescriptstate
- \pop_macro_typescriptmethod
- \pop_macro_typescriptthree
- \pop_macro_typescripttwo
- \pop_macro_typescriptone
- \pop_macro_m_font_typescripts_three
- \pop_macro_m_font_typescripts_two
- \pop_macro_m_font_typescripts_one}
+ \popmacro\stoptypescript
+ \popmacro\typescriptstate
+ \popmacro\typescriptmethod
+ \popmacro\typescriptthree
+ \popmacro\typescripttwo
+ \popmacro\typescriptone
+ \popmacro\m_font_typescripts_three
+ \popmacro\m_font_typescripts_two
+ \popmacro\m_font_typescripts_one}
\def\font_typescripts_use_display
{\processcommacommand[\typescriptfiles]\font_typescripts_load_file
@@ -187,10 +170,10 @@
% 1 then, it doesn't get stored without doing that explicitly
\unexpanded\def\loadtypescriptfile[#1]%
- {\push_macro_typescriptstate
+ {\pushmacro\typescriptstate
\let\typescriptstate\plustwo % assumes 2 at the outer level
\clf_loadtypescriptfile{#1}%
- \pop_macro_typescriptstate}
+ \popmacro\typescriptstate}
\unexpanded\def\loadfoundtypescriptfile#1%
{\startreadingfile
@@ -208,26 +191,30 @@
{\global\advance\c_font_typescripts_n_of_preloaded\plusone
\expandafter\normalgdef\csname\??typescriptcache\the\c_font_typescripts_n_of_preloaded\endcsname
{\starttypescript#definitions\stoptypescript}%
- \gtoksapp\t_font_typescripts\expandafter
- {\csname\??typescriptcache\the\c_font_typescripts_n_of_preloaded\endcsname}}
+ %\normalexpanded{\global\t_font_typescripts{\the\expandafter\t_font_typescripts\noexpand\csname\??typescriptcache\the\c_font_typescripts_n_of_preloaded\endcsname}}}
+ \global\t_font_typescripts\expandafter\expandafter\expandafter
+ {\expandafter\the\expandafter\t_font_typescripts
+ \csname\??typescriptcache\the\c_font_typescripts_n_of_preloaded\endcsname}}
\def\font_typescripts_collection_start_store#definitions\stoptypescriptcollection
{\global\advance\c_font_typescripts_n_of_preloaded\plusone
\expandafter\normalgdef\csname\??typescriptcache\the\c_font_typescripts_n_of_preloaded\endcsname
{\starttypescriptcollection#definitions\stoptypescriptcollection}%
- \gtoksapp\t_font_typescripts\expandafter
- {\csname\??typescriptcache\the\c_font_typescripts_n_of_preloaded\endcsname}}
+ %\normalexpanded{\global\t_font_typescripts{\the\expandafter\t_font_typescripts\noexpand\csname\??typescriptcache\the\c_font_typescripts_n_of_preloaded\endcsname}}}
+ \global\t_font_typescripts\expandafter\expandafter\expandafter
+ {\expandafter\the\expandafter\t_font_typescripts
+ \csname\??typescriptcache\the\c_font_typescripts_n_of_preloaded\endcsname}}
\def\font_typescripts_load_file#filename%
{\setfalse\c_font_typescripts_quit
- \push_macro_currenttypefile
+ \pushmacro\currenttypefile
\def\currenttypefile{#filename}%
\ifconditional\c_font_typescripts_preload
\font_typescript_process_typescript_file_and_store
\else
\font_typescript_process_typescript_file
\fi
- \pop_macro_currenttypefile
+ \popmacro\currenttypefile
\ifconditional\c_font_typescripts_quit
\quitcommalist
\setfalse\c_font_typescripts_quit
@@ -307,7 +294,8 @@
\def\font_typescripts_start_gobble#definitions\stoptypescript{}
\def\font_typescripts_start_document#definitions\stoptypescript
- {\toksapp\c_font_typescripts_document{\starttypescript#definitions\stoptypescript}}
+ %{\appendtoks\starttypescript#definitions\stoptypescript\to\c_font_typescripts_document}
+ {\c_font_typescripts_document\expandafter{\the\c_font_typescripts_document\starttypescript#definitions\stoptypescript}}
\def\font_typescripts_start_process % could be a faster \doifelsenextoptionalif needed
{\let\typescriptone \m_font_typescripts_one
@@ -356,10 +344,10 @@
\let\font_typescripts_start_process_again_three\font_typescripts_start_process_yes
\def\font_typescripts_start_process_indeed
- {\push_macro_fontclass}
+ {\pushmacro\fontclass}
\unexpanded\def\stoptypescript
- {\pop_macro_fontclass}
+ {\popmacro\fontclass}
\def\font_typescripts_check#asked#target#followup[#value]% script use value next
{\donefalse
@@ -533,8 +521,8 @@
\let\@@tsdirection \empty
\let\@@tsdesignsize\empty
\geteparameters[\??ts][#settings]% todo raw
- \push_macro_fontclass
- \push_macro_fontclassstyle
+ \pushmacro\fontclass
+ \pushmacro\fontclassstyle
\setcurrentfontclass{#name}%
\savefontclassparameters{#style}\@@tsrscale\@@tsfeatures\@@tsfallbacks\@@tsgoodies\@@tsdesignsize\@@tsdirection
\the\everybeforedefinetypeface}
@@ -548,8 +536,8 @@
\def\font_typefaces_defining_stop
{\the\everyafterdefinetypeface
- \pop_macro_fontclassstyle
- \pop_macro_fontclass}
+ \popmacro\fontclassstyle
+ \popmacro\fontclass}
\def\dofastdefinetypeface#name#style#fontshape#fontsize#settings% called from the lua end (via case d)
{\font_typefaces_define_indeed[#name][#style]%
@@ -609,7 +597,7 @@
{\doifelsenothing{#styles}
{\font_typescripts_inherit_indeed[#name][\s!rm,\s!ss,\s!tt,\s!mm][\fontclass]}
{\doifnot{#name}{#parentclass}
- {\glet\font_typescripts_inherit_check\font_typescripts_inherit_check_indeed
+ {\global\let\font_typescripts_inherit_check\font_typescripts_inherit_check_indeed
\def\font_typescripts_inherit_check_step#style{\setevalue{\??typescriptinheritances#name:#style}{#parentclass}}%
\processcommalist[#styles]\font_typescripts_inherit_check_step}}}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/type-set.mkiv b/Master/texmf-dist/tex/context/base/mkiv/type-set.mkiv
index c6b0c8841fc..1763de68790 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/type-set.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/type-set.mkiv
@@ -132,6 +132,4 @@
\definefilesynonym [type-imp-stixtwo.mkiv] [type-imp-stix.mkiv]
-\definefilesynonym [type-imp-ibmplex.mkiv] [type-imp-plex.mkiv]
-
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-bld.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-bld.lua
index 55d74281f50..753748a2eee 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-bld.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-bld.lua
@@ -54,12 +54,10 @@ storage.register("builders/paragraphs/constructors/names", names, "builders.
storage.register("builders/paragraphs/constructors/numbers", numbers, "builders.paragraphs.constructors.numbers")
local trace_page_builder = false trackers.register("builders.page", function(v) trace_page_builder = v end)
-local trace_vbox_builder = false trackers.register("builders.vbox", function(v) trace_vbox_builder = v end)
local trace_post_builder = false trackers.register("builders.post", function(v) trace_post_builder = v end)
-local report_page_builder = logs.reporter("builders","page")
-local report_vbox_builder = logs.reporter("builders","vbox")
local report_par_builder = logs.reporter("builders","par")
+local report_page_builder = logs.reporter("builders","page")
local mainconstructor = nil -- not stored in format
local nofconstructors = 0
@@ -139,7 +137,7 @@ end
-- also for testing (now also surrounding spacing done)
-function parbuilders.constructors.methods.oneline(head,followed_by_display)
+function builders.paragraphs.constructors.methods.oneline(head,followed_by_display)
-- when needed we will turn this into a helper
local t = texnest[texnest.ptr]
local h = hpack_node(head)
@@ -195,11 +193,15 @@ function builders.vpack_filter(head,groupcode,size,packtype,maxdepth,direction)
local done = false
if head then
starttiming(builders)
- if trace_vbox_builder then
+ if trace_vpacking then
local before = count_nodes(head)
head, done = vboxactions(head,groupcode,size,packtype,maxdepth,direction)
local after = count_nodes(head)
- nodes.processors.tracer("vpack",head,groupcode,before,after,done)
+ if done then
+ nodes.processors.tracer("vpack","changed",head,groupcode,before,after,true)
+ else
+ nodes.processors.tracer("vpack","unchanged",head,groupcode,before,after,true)
+ end
else
head, done = vboxactions(head,groupcode)
end
@@ -252,13 +254,13 @@ function builders.buildpage_filter(groupcode)
if trace_page_builder then
report(groupcode)
end
--- return nil, false -- no return value needed
- return nil
+ return nil, false -- no return value needed
end
end
-registercallback('vpack_filter', builders.vpack_filter, "vertical spacing etc")
-registercallback('buildpage_filter', builders.buildpage_filter, "vertical spacing etc (mvl)")
+registercallback('vpack_filter', builders.vpack_filter, "vertical spacing etc")
+registercallback('buildpage_filter', builders.buildpage_filter, "vertical spacing etc (mvl)")
+----------------('contribute_filter', builders.contribute_filter, "adding content to lists")
statistics.register("v-node processing time", function()
return statistics.elapsedseconds(builders)
@@ -275,21 +277,11 @@ implement { name = "disableparbuilder", actions = constructors.disable }
-- Here are some tracers:
-local nuts = nodes.nuts
-local tonut = nodes.tonut
+local new_kern = nodes.pool.kern
+local new_rule = nodes.pool.rule
+local hpack = nodes.hpack
local setcolor = nodes.tracers.colors.set
local listtoutf = nodes.listtoutf
-local new_kern = nuts.pool.kern
-local new_rule = nuts.pool.rule
-local hpack = nuts.hpack
-local getheight = nuts.getheight
-local getdepth = nuts.getdepth
-local getdirection = nuts.getdirection
-local getlist = nuts.getlist
-local setwidth = nuts.setwidth
-local setdirection = nuts.setdirection
-local setlink = nuts.setlink
-local tonode = nuts.tonode
local report_hpack = logs.reporter("hpack routine")
local report_vpack = logs.reporter("vpack routine")
@@ -313,9 +305,8 @@ end)
local report, show = false, false
local function hpack_quality(how,detail,n,first,last)
- n = tonut(n)
if report then
- local str = listtoutf(getlist(n),"",true,nil,true)
+ local str = listtoutf(n.head,"",true,nil,true)
if last <= 0 then
report_hpack("%s hbox: %s",how,str)
elseif first > 0 and first < last then
@@ -325,10 +316,10 @@ local function hpack_quality(how,detail,n,first,last)
end
end
if show then
- local width = 2*65536
- local height = getheight(n)
- local depth = getdepth(n)
- local direction = getdirection(n)
+ local width = 2*65536
+ local height = n.height
+ local depth = n.depth
+ local dir = n.dir
if height < 4*65526 then
height = 4*65526
end
@@ -336,11 +327,12 @@ local function hpack_quality(how,detail,n,first,last)
depth = 2*65526
end
local rule = new_rule(width,height,depth)
- setdirection(rule,direction)
+ rule.dir = dir
if how == "overfull" then
setcolor(rule,"red")
local kern = new_kern(-detail)
- setlink(kern,rule)
+ kern.next = rule
+ rule.prev = kern
rule = kern
elseif how == "underfull" then
setcolor(rule,"blue")
@@ -350,9 +342,9 @@ local function hpack_quality(how,detail,n,first,last)
setcolor(rule,"cyan")
end
rule = hpack(rule)
- setwidth(rule,0)
- setdirection(rule,direction)
- return tonode(rule) -- can be a nut
+ rule.width = 0
+ rule.dir = dir
+ return rule
end
end
@@ -395,4 +387,3 @@ end)
-- end,
-- "experimental prevdepth checking"
-- )
-
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-brk.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-brk.lua
index 76e50ce1859..51760bbf48d 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-brk.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-brk.lua
@@ -23,6 +23,7 @@ local settings_to_array = utilities.parsers.settings_to_array
local nuts = nodes.nuts
local tonut = nuts.tonut
+local tonode = nuts.tonode
local getnext = nuts.getnext
local getprev = nuts.getprev
@@ -75,14 +76,14 @@ local new_wordboundary = nodepool.wordboundary
local nodecodes = nodes.nodecodes
local kerncodes = nodes.kerncodes
+local glyph_code = nodecodes.glyph
local kern_code = nodecodes.kern
local math_code = nodecodes.math
local fontkern_code = kerncodes.fontkern
+----- userkern_code = kerncodes.userkern
local italickern_code = kerncodes.italiccorrection
-local is_letter = characters.is_letter
-
local typesetters = typesetters
typesetters.breakpoints = typesetters.breakpoints or {}
@@ -240,9 +241,10 @@ end
function breakpoints.handler(head)
local done = false
+ local nead = tonut(head)
local attr = nil
local map = nil
- local current = head
+ local current = nead
while current do
local char, id = isglyph(current)
if char then
@@ -311,7 +313,7 @@ function breakpoints.handler(head)
end
end
if not done then
- return head
+ return head, false
end
-- we have hits
local numbers = languages.numbers
@@ -321,21 +323,17 @@ function breakpoints.handler(head)
local stop = data[2]
local cmap = data[3]
local smap = data[4]
--- -- we do a sanity check for language
-- local lang = getlang(start)
+-- -- we do a sanity check for language
-- local smap = lang and lang >= 0 and lang < 0x7FFF and (cmap[numbers[lang]] or cmap[""])
-- if smap then
local nleft = smap.nleft
local cleft = 0
local prev = getprev(start)
- local kern = nil
+ local kern = nil
while prev and nleft ~= cleft do
- local char, id = isglyph(prev)
- if char then
- if not is_letter[char] then
- cleft = -1
- break
- end
+ local id = getid(prev)
+ if id == glyph_code then
cleft = cleft + 1
prev = getprev(prev)
elseif id == kern_code then
@@ -361,10 +359,6 @@ function breakpoints.handler(head)
while next and nright ~= cright do
local char, id = isglyph(next)
if char then
- if not is_letter[char] then
- cright = -1
- break
- end
if cright == 1 and cmap[char] then
-- let's not make it too messy
break
@@ -389,13 +383,13 @@ function breakpoints.handler(head)
if nright == cright then
local method = methods[smap.type]
if method then
- head, start = method(head,start,stop,smap,kern)
+ nead, start = method(nead,start,stop,smap,kern)
end
end
-- end
end
end
- return head
+ return tonode(nead), true
end
local enabled = false
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-cap.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-cap.lua
index 7e8003c620f..4dffd1c49a2 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-cap.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-cap.lua
@@ -18,6 +18,8 @@ local report_casing = logs.reporter("typesetting","casing")
local nodes, node = nodes, node
local nuts = nodes.nuts
+local tonode = nuts.tonode
+local tonut = nuts.tonut
local getnext = nuts.getnext
local getprev = nuts.getprev
@@ -27,7 +29,6 @@ local takeattr = nuts.takeattr
local getfont = nuts.getfont
local getsubtype = nuts.getsubtype
local getchar = nuts.getchar
-local isglyph = nuts.isglyph
local getdisc = nuts.getdisc
local setattr = nuts.setattr
@@ -36,12 +37,12 @@ local setfont = nuts.setfont
local copy_node = nuts.copy
local end_of_math = nuts.end_of_math
+local traverse_id = nuts.traverse_id
local insert_after = nuts.insert_after
local find_attribute = nuts.find_attribute
-local nextglyph = nuts.traversers.glyph
-
local nodecodes = nodes.nodecodes
+local skipcodes = nodes.skipcodes
local kerncodes = nodes.kerncodes
local glyph_code = nodecodes.glyph
@@ -97,6 +98,19 @@ local function get(a)
extract(a, 0, 8) -- run
end
+-- local function get(a)
+-- return
+-- (a >> 8) & ~(-1 << 8), -- & 0x0FF -- tag
+-- (a >> 16) & ~(-1 << 12), -- & 0xFFF -- font
+-- (a >> 0) & ~(-1 << 8) -- & 0x0FF -- run
+-- end
+
+-- print(get(set( 1, 0)))
+-- print(get(set( 1, 99)))
+-- print(get(set( 2, 96)))
+-- print(get(set( 30, 922)))
+-- print(get(set(250,4000)))
+
-- a previous implementation used char(0) as placeholder for the larger font, so we needed
-- to remove it before it can do further harm ... that was too tricky as we use char 0 for
-- other cases too
@@ -114,9 +128,10 @@ local categories = characters.categories
-- true false true == mixed
local function replacer(start,codes)
- local char, fnt = isglyph(start)
- local dc = codes[char]
+ local char = getchar(start)
+ local dc = codes[char]
if dc then
+ local fnt = getfont(start)
local ifc = fontchar[fnt]
if type(dc) == "table" then
for i=1,#dc do
@@ -134,11 +149,13 @@ local function replacer(start,codes)
insert_after(start,start,g)
end
end
+ return start, true
elseif ifc[dc] then
setchar(start,dc)
+ return start, true
end
end
- return start
+ return start, false
end
local registered, n = { }, 0
@@ -174,9 +191,9 @@ local function Words(start,attr,lastfont,n,count,where,first) -- looks quite com
end
if count == 1 and where ~= "post" then
replacer(first or start,uccodes)
- return start, true
+ return start, true, true
else
- return start, true
+ return start, false, true
end
end
@@ -186,9 +203,9 @@ local function Word(start,attr,lastfont,n,count,where,first)
end
local function camel(start,attr,lastfont,n,count,where,first)
- word(start,attr,lastfont,n,count,where,first)
- Words(start,attr,lastfont,n,count,where,first)
- return start, true
+ local _, done_1 = word(start,attr,lastfont,n,count,where,first)
+ local _, done_2 = Words(start,attr,lastfont,n,count,where,first)
+ return start, done_1 or done_2, true
end
-- local function mixed(start,attr,lastfont,n,count,where,first)
@@ -199,16 +216,19 @@ end
-- local char = getchar(first)
-- local dc = uccodes[char]
-- if not dc then
--- -- quit
+-- return start, false, true
-- elseif dc == char then
-- local lfa = lastfont[n]
-- if lfa then
-- setfont(first,lfa)
+-- return start, true, true
+-- else
+-- return start, false, true
-- end
-- else
-- replacer(first or start,uccodes)
+-- return start, true, true
-- end
--- return start, true
-- end
local function mixed(start,attr,lastfont,n,count,where,first)
@@ -219,33 +239,38 @@ local function mixed(start,attr,lastfont,n,count,where,first)
local char = getchar(used)
local dc = uccodes[char]
if not dc then
- -- quit
+ return start, false, true
elseif dc == char then
local lfa = lastfont[n]
if lfa then
setfont(used,lfa)
+ return start, true, true
+ else
+ return start, false, true
end
- elseif check_kerns then
- local p = getprev(used)
- if p and getid(p) == glyph_code then
- local c = lccodes[char]
- local c = type(c) == "table" and c[1] or c
- replacer(used,uccodes)
- local fp = getfont(p)
- local fc = getfont(used)
- if fp ~= fc then
- local k = fonts.getkern(fontdata[fp],getchar(p),c)
- if k ~= 0 then
- insert_after(p,p,newkern(k))
+ else
+ if check_kerns then
+ local p = getprev(used)
+ if p and getid(p) == glyph_code then
+ local c = lccodes[char]
+ local c = type(c) == "table" and c[1] or c
+ replacer(used,uccodes)
+ local fp = getfont(p)
+ local fc = getfont(used)
+ if fp ~= fc then
+ local k = fonts.getkern(fontdata[fp],getchar(p),c)
+ if k ~= 0 then
+ insert_after(p,p,newkern(k))
+ end
end
+ else
+ replacer(used,uccodes)
end
else
replacer(used,uccodes)
end
- else
- replacer(used,uccodes)
+ return start, true, true
end
- return start, true
end
local function Capital(start,attr,lastfont,n,count,where,first,once) -- 3
@@ -259,11 +284,11 @@ local function Capital(start,attr,lastfont,n,count,where,first,once) -- 3
end
end
end
- local s, c = replacer(first or start,uccodes)
+ local s, d, c = replacer(first or start,uccodes)
if once then
lastfont[n] = false -- here
end
- return start, c
+ return start, d, c
end
local function capital(start,attr,lastfont,n,where,count,first,count) -- 4
@@ -271,7 +296,7 @@ local function capital(start,attr,lastfont,n,where,count,first,count) -- 4
end
local function none(start,attr,lastfont,n,count,where,first)
- return start, true
+ return start, false, true
end
local function randomized(start,attr,lastfont,n,count,where,first)
@@ -286,7 +311,7 @@ local function randomized(start,attr,lastfont,n,count,where,first)
local n = getrandom("capital lu",0x41,0x5A)
if tfm[n] then -- this also intercepts tables
setchar(used,n)
- return start
+ return start, true
end
end
elseif kind == "ll" then
@@ -294,11 +319,11 @@ local function randomized(start,attr,lastfont,n,count,where,first)
local n = getrandom("capital ll",0x61,0x7A)
if tfm[n] then -- this also intercepts tables
setchar(used,n)
- return start
+ return start, true
end
end
end
- return start
+ return start, false
end
register(variables.WORD, WORD) -- 1
@@ -316,9 +341,10 @@ register(variables.cap, variables.capital) -- clone
register(variables.Cap, variables.Capital) -- clone
function cases.handler(head) -- not real fast but also not used on much data
- local start = head
+ local start = tonut(head)
local lastfont = { }
local lastattr = nil
+ local done = false
local count = 0
local previd = nil
local prev = nil
@@ -341,7 +367,10 @@ function cases.handler(head) -- not real fast but also not used on much data
end
local action = actions[n] -- map back to low number
if action then
- start = action(start,attr,lastfont,n,count)
+ start, ok = action(start,attr,lastfont,n,count)
+ if ok then
+ done = true
+ end
if trace_casing then
report_casing("case trigger %a, instance %a, fontid %a, result %a",n,m,id,ok)
end
@@ -367,38 +396,32 @@ function cases.handler(head) -- not real fast but also not used on much data
local pre, post, replace = getdisc(start)
if replace then
local cnt = count
- for g in nextglyph, replace do
+ for g in traverse_id(glyph_code,replace) do
cnt = cnt + 1
takeattr(g,a_cases)
-- setattr(g,a_cases,unsetvalue)
- local h, quit = action(start,attr,lastfont,n,cnt,"replace",g)
- if quit then
- break
- end
+ local _, _, quit = action(start,attr,lastfont,n,cnt,"replace",g)
+ if quit then break end
end
end
if pre then
local cnt = count
- for g in nextglyph, pre do
+ for g in traverse_id(glyph_code,pre) do
cnt = cnt + 1
takeattr(g,a_cases)
-- setattr(g,a_cases,unsetvalue)
- local h, quit = action(start,attr,lastfont,n,cnt,"pre",g)
- if quit then
- break
- end
+ local _, _, quit = action(start,attr,lastfont,n,cnt,"pre",g)
+ if quit then break end
end
end
if post then
local cnt = count
- for g in nextglyph, post do
+ for g in traverse_id(glyph_code,post) do
cnt = cnt + 1
takeattr(g,a_cases)
-- setattr(g,a_cases,unsetvalue)
- local h, quit = action(start,attr,lastfont,n,cnt,"post",g)
- if quit then
- break
- end
+ local _, _, quit = action(start,attr,lastfont,n,cnt,"post",g)
+ if quit then break end
end
end
end
@@ -418,16 +441,17 @@ function cases.handler(head) -- not real fast but also not used on much data
start = getnext(start)
end
end
- return head
+ return head, done
end
-- function cases.handler(head) -- not real fast but also not used on much data
--- local attr, start = find_attribute(head,a_cases)
+-- local attr, start = find_attribute(tonut(head),a_cases)
-- if not start then
-- return head, false
-- end
-- local lastfont = { }
-- local lastattr = nil
+-- local done = false
-- local count = 0
-- local previd = nil
-- local prev = nil
@@ -451,7 +475,10 @@ end
-- end
-- local action = actions[n] -- map back to low number
-- if action then
--- start = action(start,attr,lastfont,n,count)
+-- start, ok = action(start,attr,lastfont,n,count)
+-- if ok then
+-- done = true
+-- end
-- if trace_casing then
-- report_casing("case trigger %a, instance %a, fontid %a, result %a",n,m,id,ok)
-- end
@@ -477,38 +504,32 @@ end
-- local pre, post, replace = getdisc(start)
-- if replace then
-- local cnt = count
--- for g in glyph_code, replace do
+-- for g in traverse_id(glyph_code,replace) do
-- cnt = cnt + 1
-- takeattr(g,a_cases)
-- -- setattr(g,a_cases,unsetvalue)
--- local h, quit = action(start,attr,lastfont,n,cnt,"replace",g)
--- if quit then
--- break
--- end
+-- local _, _, quit = action(start,attr,lastfont,n,cnt,"replace",g)
+-- if quit then break end
-- end
-- end
-- if pre then
-- local cnt = count
--- for g in nextglyph, pre do
+-- for g in traverse_id(glyph_code,pre) do
-- cnt = cnt + 1
-- takeattr(g,a_cases)
-- -- setattr(g,a_cases,unsetvalue)
--- local h, quit = action(start,attr,lastfont,n,cnt,"pre",g)
--- if quit then
--- break
--- end
+-- local _, _, quit = action(start,attr,lastfont,n,cnt,"pre",g)
+-- if quit then break end
-- end
-- end
-- if post then
-- local cnt = count
--- for g in nextglyph, post do
+-- for g in traverse_id(glyph_code,post) do
-- cnt = cnt + 1
-- takeattr(g,a_cases)
-- -- setattr(g,a_cases,unsetvalue)
--- local h, quit = action(start,attr,lastfont,n,cnt,"post",g)
--- if quit then
--- break
--- end
+-- local _, _, quit = action(start,attr,lastfont,n,cnt,"post",g)
+-- if quit then break end
-- end
-- end
-- end
@@ -534,22 +555,26 @@ end
-- attr, start = find_attribute(start,a_cases)
-- end
-- end
--- return head
+-- return head, done
-- end
-- function cases.handler(head) -- let's assume head doesn't change ... no reason
+-- local done = false
-- local lastfont = { }
--- for first, last, size, attr in nuts.words(head,a_cases) do
+-- for first, last, size, attr in nuts.words(tonut(head),a_cases) do
-- local n, id, m = get(attr)
-- if lastfont[n] == nil then
-- lastfont[n] = id
-- end
-- local action = actions[n]
-- if action then
--- action(first,attr,lastfont,n)
+-- local _, ok = action(first,attr,lastfont,n)
+-- if ok then
+-- done = true
+-- end
-- end
-- end
--- return head
+-- return head, done
-- end
local enabled = false
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-cap.mkiv b/Master/texmf-dist/tex/context/base/mkiv/typo-cap.mkiv
index 890b0818675..4d1272e103c 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-cap.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-cap.mkiv
@@ -81,23 +81,20 @@
% todo: names casings
-% \unexpanded\def\WORD {\groupedcommand{\setcharactercasing[\v!WORD ]}{}}
-% \unexpanded\def\word {\groupedcommand{\setcharactercasing[\v!word ]}{}}
-% \unexpanded\def\Word {\groupedcommand{\setcharactercasing[\v!Word ]}{}}
-% \unexpanded\def\Words{\groupedcommand{\setcharactercasing[\v!Words]}{}}
-% \unexpanded\def\camel{\groupedcommand{\setcharactercasing[\v!camel]}{}}
-
-\unexpanded\def\typo_capitale_WORD {\clf_setcharactercasing{\v!WORD }\fontid\font}
-\unexpanded\def\typo_capitale_word {\clf_setcharactercasing{\v!word }\fontid\font}
-\unexpanded\def\typo_capitale_Word {\clf_setcharactercasing{\v!Word }\fontid\font}
-\unexpanded\def\typo_capitale_Words{\clf_setcharactercasing{\v!Words}\fontid\font}
-\unexpanded\def\typo_capitale_camel{\clf_setcharactercasing{\v!camel}\fontid\font}
-
-\unexpanded\def\WORD {\triggergroupedcommandcs\typo_capitale_WORD }
-\unexpanded\def\word {\triggergroupedcommandcs\typo_capitale_word }
-\unexpanded\def\Word {\triggergroupedcommandcs\typo_capitale_Word }
-\unexpanded\def\Words{\triggergroupedcommandcs\typo_capitale_Words}
-\unexpanded\def\camel{\triggergroupedcommandcs\typo_capitale_camel}
+\unexpanded\def\WORD {\groupedcommand{\setcharactercasing[\v!WORD ]}{}}
+\unexpanded\def\word {\groupedcommand{\setcharactercasing[\v!word ]}{}}
+\unexpanded\def\Word {\groupedcommand{\setcharactercasing[\v!Word ]}{}}
+\unexpanded\def\Words{\groupedcommand{\setcharactercasing[\v!Words]}{}}
+\unexpanded\def\camel{\groupedcommand{\setcharactercasing[\v!camel]}{}}
+
+% This might become:
+%
+% \unexpanded\def\WORD {\bgroup\def\g_word{\setcharactercasing[\v!WORD ]}\afterassignment\g_word\let\nexttoken}
+% \unexpanded\def\word {\bgroup\def\g_word{\setcharactercasing[\v!word ]}\afterassignment\g_word\let\nexttoken}
+% \unexpanded\def\Word {\bgroup\def\g_word{\setcharactercasing[\v!Word ]}\afterassignment\g_word\let\nexttoken}
+% \unexpanded\def\Words{\bgroup\def\g_word{\setcharactercasing[\v!Words]}\afterassignment\g_word\let\nexttoken}
+%
+% so no longer {\Word test} and { } mandate (also later \groupedcommands will go)
\let\WORDS\WORD
\let\words\word
@@ -179,27 +176,16 @@
\sc
\clf_setcharactercasing{\currentcapitals}\fontid\font}
-% \unexpanded\def\pseudosmallcapped{\groupedcommand{\typo_capitals_set_fake\v!WORD }\donothing} % all upper
-% \unexpanded\def\pseudoSmallcapped{\groupedcommand{\typo_capitals_set_fake\v!capital}\donothing} % one upper + font
-% \unexpanded\def\pseudoSmallCapped{\groupedcommand{\typo_capitals_set_fake\v!Capital}\donothing} % some upper + font
-% \unexpanded\def\pseudoMixedCapped{\groupedcommand{\typo_capitals_set_fake\v!mixed }\donothing} % UpperCase
-%
-% \unexpanded\def\realsmallcapped {\groupedcommand{\typo_capitals_set_real\v!WORD }\donothing} % all lower
-% \unexpanded\def\realSmallcapped {\groupedcommand{\typo_capitals_set_real\v!Word }\donothing} % one upper + font
-% \unexpanded\def\realSmallCapped {\groupedcommand{\typo_capitals_set_real\v!Words }\donothing} % some upper
-%
-% \unexpanded\def\notsmallcapped {\groupedcommand{\typo_capitals_set_fake\v!word }\donothing}
-
-\unexpanded\def\pseudosmallcapped{\triggergroupedcommandcs\font_style_pseudosmallcapped}
-\unexpanded\def\pseudoSmallcapped{\triggergroupedcommandcs\font_style_pseudoSmallcapped}
-\unexpanded\def\pseudoSmallCapped{\triggergroupedcommandcs\font_style_pseudoSmallCapped}
-\unexpanded\def\pseudoMixedCapped{\triggergroupedcommandcs\font_style_pseudoMixedCapped}
+\unexpanded\def\pseudosmallcapped{\groupedcommand{\typo_capitals_set_fake\v!WORD }\donothing} % all upper
+\unexpanded\def\pseudoSmallcapped{\groupedcommand{\typo_capitals_set_fake\v!capital}\donothing} % one upper + font
+\unexpanded\def\pseudoSmallCapped{\groupedcommand{\typo_capitals_set_fake\v!Capital}\donothing} % some upper + font
+\unexpanded\def\pseudoMixedCapped{\groupedcommand{\typo_capitals_set_fake\v!mixed }\donothing} % UpperCase
-\unexpanded\def\realsmallcapped {\triggergroupedcommandcs\font_style_realsmallcapped}
-\unexpanded\def\realSmallcapped {\triggergroupedcommandcs\font_style_realSmallcapped}
-\unexpanded\def\realSmallCapped {\triggergroupedcommandcs\font_style_realSmallCapped}
+\unexpanded\def\realsmallcapped {\groupedcommand{\typo_capitals_set_real\v!WORD }\donothing} % all lower
+\unexpanded\def\realSmallcapped {\groupedcommand{\typo_capitals_set_real\v!Word }\donothing} % one upper + font
+\unexpanded\def\realSmallCapped {\groupedcommand{\typo_capitals_set_real\v!Words }\donothing} % some upper
-\unexpanded\def\notsmallcapped {\triggergroupedcommandcs\font_style_notsmallcapped}
+\unexpanded\def\notsmallcapped {\groupedcommand{\typo_capitals_set_fake\v!word }\donothing}
\unexpanded\def\font_style_pseudosmallcapped{\typo_capitals_set_fake\v!WORD } % all upper
\unexpanded\def\font_style_pseudoSmallcapped{\typo_capitals_set_fake\v!capital} % one upper + font
@@ -299,9 +285,7 @@
%
% \definestartstop[randomized][\c!before=\dosetattribute{case}{8},\c!after=]
-% \unexpanded\def\randomizetext{\groupedcommand{\attribute\caseattribute\pluseight}{}}
-
-\unexpanded\def\randomizetext{\triggergroupedcommand{\attribute\caseattribute\pluseight}}
+\unexpanded\def\randomizetext{\groupedcommand{\attribute\caseattribute\pluseight}{}}
\definestartstop[randomized][\c!before=\dosetattribute{case}{8},\c!after=]
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-chr.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-chr.lua
index 15d14c8601b..80497a49207 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-chr.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-chr.lua
@@ -6,40 +6,40 @@ if not modules then modules = { } end modules ['typo-chr'] = {
license = "see context related readme files"
}
--- This module can be optimized.
-
--- local nodecodes = nodes.nodecodes
--- local whatsitcodes = nodes.whatsitcodes
---
--- local glyph_code = nodecodes.glyph
--- local whatsit_code = nodecodes.whatsit
+-- local nodecodes = nodes.nodecodes
+-- local whatsitcodes = nodes.whatsitcodes
+-- local glyph_code = nodecodes.glyph
+-- local whatsit_code = nodecodes.whatsit
+-- local user_code = whatsitcodes.userdefined
--
--- local userwhatsit_code = whatsitcodes.userdefined
+-- local stringusernode = nodes.pool.userstring
--
--- local stringusernode = nodes.pool.userstring
+-- local nuts = nodes.nuts
+-- local pool = nuts.pool
--
--- local nuts = nodes.nuts
--- local pool = nuts.pool
+-- local tonut = nuts.tonut
+-- local tonode = nuts.tonode
+-- local getid = nuts.getid
+-- local getprev = nuts.getprev
+-- local getsubtype = nuts.getsubtype
+-- local getchar = nuts.getchar
+-- local getfield = nuts.getfield
--
--- local getid = nuts.getid
--- local getprev = nuts.getprev
--- local getchar = nuts.getchar
--- local getdata = nuts.getdata
--- local getfield = nuts.getfield
+-- local remove_node = nuts.remove
+-- local traverse_by_id = nuts.traverse_id
--
--- local remove_node = nuts.remove
--- local nextwhatsit = nuts.traversers.whatsit
+-- local signal = pool.userids.signal
--
--- local signal = pool.userids.signal
---
--- local is_punctuation = characters.is_punctuation
+-- local is_punctuation = characters.is_punctuation
--
-- local actions = {
-- removepunctuation = function(head,n)
-- local prev = getprev(n)
-- if prev then
--- if getid(prev) == glyph_code and is_punctuation[getchar(prev)] then
--- head = remove_node(head,prev,true)
+-- if getid(prev) == glyph_code then
+-- if is_punctuation[getchar(prev)] then
+-- head = remove_node(head,prev,true)
+-- end
-- end
-- end
-- return head
@@ -51,18 +51,23 @@ if not modules then modules = { } end modules ['typo-chr'] = {
-- typesetters.signals = { }
--
-- function typesetters.signals.handler(head)
+-- local h = tonut(head)
-- local done = false
--- for n, subtype in nextwhatsit, head do
--- if subtype == userwhatsit_code and getfield(n,"user_id") == signal and getfield(n,"type") == 115 then
--- local action = actions[getdata(n)]
+-- for n in traverse_by_id(whatsit_code,h) do
+-- if getsubtype(n) == user_code and getfield(n,"user_id") == signal and getfield(n,"type") == 115 then
+-- local action = actions[getfield(n,"value")]
-- if action then
--- head = action(h,n)
+-- h = action(h,n)
-- end
--- head = remove_node(head,n,true)
+-- h = remove_node(h,n,true)
-- done = true
-- end
-- end
--- return head, done
+-- if done then
+-- return tonode(h), true
+-- else
+-- return head
+-- end
-- end
--
-- local enabled = false
@@ -83,44 +88,35 @@ if not modules then modules = { } end modules ['typo-chr'] = {
local insert, remove = table.insert, table.remove
-local context = context
-local ctx_doifelse = commands.doifelse
-
-local nodecodes = nodes.nodecodes
-local boundarycodes = nodes.boundarycodes
-local subtypes = nodes.subtypes
-
-local glyph_code = nodecodes.glyph
-local localpar_code = nodecodes.localpar
-local boundary_code = nodecodes.boundary
+local context = context
-local wordboundary_code = boundarycodes.word
+local nodecodes = nodes.nodecodes
+local glyph_code = nodecodes.glyph
+local localpar_code = nodecodes.localpar
-local texgetnest = tex.getnest -- to be used
-local texsetcount = tex.setcount
+local texnest = tex.nest
+local flush_node = node.flush_node
+local flush_list = node.flush_list
-local flush_node = node.flush_node
-local flush_list = node.flush_list
+local settexattribute = tex.setattribute
+local punctuation = characters.is_punctuation
-local settexattribute = tex.setattribute
-local punctuation = characters.is_punctuation
+local variables = interfaces.variables
+local v_all = variables.all
+local v_reset = variables.reset
-local variables = interfaces.variables
-local v_all = variables.all
-local v_reset = variables.reset
-
-local stack = { }
-
-local a_marked = attributes.numbers['marked']
-local lastmarked = 0
-local marked = {
+local a_marked = attributes.numbers['marked']
+local lastmarked = 0
+local marked = {
[v_all] = 1,
[""] = 1,
[v_reset] = attributes.unsetvalue,
}
+local stack = { }
+
local function pickup()
- local list = texgetnest()
+ local list = texnest[texnest.ptr]
if list then
local tail = list.tail
if tail and tail.id == glyph_code and punctuation[tail.char] then
@@ -175,7 +171,8 @@ local function pickup(head,tail,str)
while true do
local prev = first.prev
if prev and prev[a_marked] == attr then
- if prev.id == localpar_code then -- and prev.subtype == 0
+ local id = prev.id
+ if id == localpar_code then
break
else
first = prev
@@ -190,7 +187,7 @@ end
local actions = {
remove = function(specification)
- local list = texgetnest()
+ local list = texnest[texnest.ptr]
if list then
local head = list.head
local tail = list.tail
@@ -253,95 +250,3 @@ interfaces.implement {
actions = markcontent,
arguments = "string",
}
-
--- We just put these here.
-
-interfaces.implement {
- name = "lastnodeidstring",
- public = true,
- actions = function()
- local list = texgetnest() -- "top"
- local okay = false
- if list then
- local tail = list.tail
- if tail then
- okay = nodecodes[tail.id]
- end
- end
- context(okay or "")
- end,
-}
-
--- local t_lastnodeid = token.create("c_syst_last_node_id")
---
--- interfaces.implement {
--- name = "lastnodeid",
--- public = true,
--- actions = function()
--- ...
--- tex.setcount("c_syst_last_node_id",okay)
--- context.sprint(t_lastnodeid)
--- end,
--- }
-
-interfaces.implement {
- name = "lastnodeid",
- actions = function()
- local list = texgetnest() -- "top"
- local okay = -1
- if list then
- local tail = list.tail
- if tail then
- okay = tail.id
- end
- end
- texsetcount("c_syst_last_node_id",okay)
- end,
-}
-
-interfaces.implement {
- name = "lastnodesubtypestring",
- public = true,
- actions = function()
- local list = texgetnest() -- "top"
- local okay = false
- if list then
- local tail = list.tail
- if head then
- okay = subtypes[tail.id][tail.subtype]
- end
- end
- context(okay or "")
- end,
-}
-
-local function lastnodeequals(id,subtype)
- local list = texgetnest() -- "top"
- local okay = false
- if list then
- local tail = list.tail
- if tail then
- local i = tail.id
- okay = i == id or i == nodecodes[id]
- if subtype then
- local s = tail.subtype
- okay = s == subtype or s == subtypes[i][subtype]
- end
- end
- end
- ctx_doifelse(okay)
-end
-
-interfaces.implement {
- name = "lastnodeequals",
- arguments = "2 strings",
- actions = lastnodeequals,
-}
-
-interfaces.implement {
- name = "atwordboundary",
- actions = function()
- lastnodeequals(boundary_code,wordboundary_code)
- end,
-}
-
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-chr.mkiv b/Master/texmf-dist/tex/context/base/mkiv/typo-chr.mkiv
index 365c79e5154..c92c4562e0e 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-chr.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-chr.mkiv
@@ -79,23 +79,4 @@
\def\typo_marked_remove[#1]%
{\clf_pickupmarkedcontent action{remove}mark{#1}\relax}
-%D A few helpers (put here for convenience):
-%D
-%D \starttyping
-%D test test\doifelselastnode{boundary}{word}{YES}{NOP}test
-%D test test\wordboundary \doifelselastnode{boundary}{word}{YES}{NOP}test
-%D test test\wordboundary \doifelseatwordboundary{YES}{NOP}test
-%D test test \lastnodeidstring test
-%D test test\lastnodeidstring test
-%D test test\number\lastnodeid test
-%D \stoptyping
-
-\newcount\c_syst_last_node_id
-
-\unexpanded\def\doifelselastnode {\clf_lastnodeequals}
-\unexpanded\def\doifelseatwordboundary{\clf_atwordboundary}
-\unexpanded\def\lastnodeid {\clf_lastnodeid\c_syst_last_node_id}
-% \lastnodeidstring % public expandable
-% \lastnodesubstring % public expandable
-
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-cln.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-cln.lua
index b9b0e7d6cb7..b7187eaeb0b 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-cln.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-cln.lua
@@ -31,13 +31,15 @@ local enableaction = nodes.tasks.enableaction
local texsetattribute = tex.setattribute
local nuts = nodes.nuts
+local tonut = nuts.tonut
+local getchar = nuts.getchar
local getattr = nuts.getattr
local setattr = nuts.setattr
local setchar = nuts.setchar
-local nextglyph = nuts.traversers.glyph
+local traverse_id = nuts.traverse_id
local unsetvalue = attributes.unsetvalue
@@ -56,8 +58,9 @@ local resetter = { -- this will become an entry in char-def
-- cleaning comes first.
function cleaners.handler(head)
- local inline = false
- for n, char, font in nextglyph, head do
+ local inline, done = false, false
+ for n in traverse_id(glyph_code,tonut(head)) do
+ local char = getchar(n)
if resetter[char] then
inline = false
elseif not inline then
@@ -68,6 +71,7 @@ function cleaners.handler(head)
-- some day, not much change that \SS ends up here
else
setchar(n,upper)
+ done = true
if trace_autocase then
report_autocase("")
end
@@ -76,7 +80,7 @@ function cleaners.handler(head)
inline = true
end
end
- return head
+ return head, done
end
-- see typo-cap for a more advanced settings handler .. not needed now
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-del.mkiv b/Master/texmf-dist/tex/context/base/mkiv/typo-del.mkiv
index 2ce98841e19..d12be6bcfda 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-del.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-del.mkiv
@@ -71,48 +71,35 @@
\setnewconstant\boundarycharactermode\plusone
-% old: skip symbol skip
-% new: bound skip symbol skip bound
-
\unexpanded\def\midboundarycharacter#1#2%
{\ifcase\boundarycharactermode
\or
- \removeunwantedspaces
- \wordboundary
+ %\nobreak
\hskip\hspaceamount\currentusedlanguage{#2}%
\usedlanguageparameter#1%
+ %\nobreak
\hskip\hspaceamount\currentusedlanguage{#2}%
- \wordboundary
- \ignorespaces
\or
\usedlanguageparameter#1%
\fi
\boundarycharactermode\plusone}
-% old: symbol nobreak skip
-% new: symbol nobreak skip wordboundary
-
\unexpanded\def\leftboundarycharacter#1#2%
{\ifcase\boundarycharactermode
\or
\usedlanguageparameter#1%
\nobreak
- \hskip\hspaceamount\currentusedlanguage{#2}% why not a kern
- \wordboundary
+ \hskip\hspaceamount\currentusedlanguage{#2}%
\or
\usedlanguageparameter#1%
\fi
\boundarycharactermode\plusone}
-% old: preword skip symbol
-% new: bound nobreak skip symbol
-
\unexpanded\def\rightboundarycharacter#1#2%
{\ifcase\boundarycharactermode
\or
- \wordboundary
- \nobreak
- \hskip\hspaceamount\currentusedlanguage{#2}% why not a kern
+ \prewordbreak %\nobreak
+ \hskip\hspaceamount\currentusedlanguage{#2}%
\usedlanguageparameter#1%
\or
\usedlanguageparameter#1%
@@ -225,15 +212,10 @@
%D \typebuffer
%D \getbuffer
-%unexpanded\def\startsubsentence{\beginofsubsentence\prewordbreak\beginofsubsentencespacing\typo_subsentence_cleanup_start}
-%unexpanded\def\stopsubsentence {\typo_subsentence_cleanup_stop\endofsubsentencespacing\prewordbreak\endofsubsentence}
-%unexpanded\def\subsentence {\groupedcommandcs\startsubsentence\stopsubsentence}
-%unexpanded\def\midsubsentence {\typo_subsentence_cleanup_start\prewordbreak\midsentence\prewordbreak\typo_subsentence_cleanup_stop}
-
-\unexpanded\def\startsubsentence{\beginofsubsentence\wordboundary\beginofsubsentencespacing\wordboundary\typo_subsentence_cleanup_start}
-\unexpanded\def\stopsubsentence {\typo_subsentence_cleanup_stop\wordboundary\endofsubsentencespacing\wordboundary\endofsubsentence}
-\unexpanded\def\subsentence {\groupedcommandcs\startsubsentence\stopsubsentence}
-\unexpanded\def\midsubsentence {\typo_subsentence_cleanup_start\wordboundary\midsentence\wordboundary\typo_subsentence_cleanup_stop}
+\unexpanded\def\startsubsentence{\beginofsubsentence\prewordbreak\beginofsubsentencespacing\typo_subsentence_cleanup_start}
+\unexpanded\def\stopsubsentence {\typo_subsentence_cleanup_stop\endofsubsentencespacing\prewordbreak\endofsubsentence}
+\unexpanded\def\subsentence {\groupedcommand\startsubsentence\stopsubsentence}
+\unexpanded\def\midsubsentence {\typo_subsentence_cleanup_start\prewordbreak\midsentence\prewordbreak\typo_subsentence_cleanup_stop}
\definehspace [quotation] [\zeropoint]
\definehspace [interquotation] [.125em]
@@ -295,8 +277,6 @@
\let\currentdelimitedtext\s!unknown
-\installglobalmacrostack\currentdelimitedtext
-
\let\delimitedtextlevel\!!zerocount
\def\c_typo_delimited_nesting{\csname\??delimitedtextlevel\currentparentdelimitedtext\endcsname}
@@ -321,8 +301,6 @@
\let\currentdelimitedlanguage\empty
-\installglobalmacrostack\currentdelimitedlanguage
-
\def\typo_delimited_set_language_nop
{\setusedlanguage{\delimitedtextparameter\c!language}}
@@ -355,8 +333,8 @@
\let\m_delimited_argument\empty}
\def\typo_delimited_push#1#2%
- {\push_macro_currentdelimitedtext % can we combine these two
- \push_macro_currentdelimitedlanguage % the language used for hyphenation
+ {\globalpushmacro\currentdelimitedtext % can we combine these two
+ \globalpushmacro\currentdelimitedlanguage % the language used for hyphenation
\edef\currentdelimitedtext{#1}%
\edef\m_delimited_argument{#2}%
\ifx\m_delimited_argument\empty
@@ -372,8 +350,8 @@
\def\typo_delimited_pop
{\global\advance\c_typo_delimited_nesting\minusone
- \pop_macro_currentdelimitedlanguage
- \pop_macro_currentdelimitedtext}
+ \globalpopmacro\currentdelimitedlanguage
+ \globalpopmacro\currentdelimitedtext}
\installcorenamespace{delimitedtext}
\installcorenamespace{delimitedtextlevel}
@@ -436,8 +414,6 @@
\dostoptagged
\ignorespaces}
-\newconditional\c_typo_delimited_repeating
-
\def\typo_delimited_start_other
{\edef\p_delimited_repeat{\delimitedtextparameter\c!repeat}%
\ifx\p_delimited_repeat\v!yes
@@ -445,7 +421,6 @@
\else
\let\typo_delimited_repeat\relax
\fi
- \setfalse\c_typo_delimited_repeating
\edef\p_delimited_location{\delimitedtextparameter\c!location}%
\ifx\p_delimited_location\v!paragraph
\singleexpandafter\typo_delimited_start_par
@@ -518,7 +493,7 @@
\let\typo_delimited_stop_par_indeed\stopnarrower
\fi
% so far
- \push_macro_checkindentation
+ \pushmacro\checkindentation
\useindentingparameter\delimitedtextparameter
%
\begingroup
@@ -540,7 +515,7 @@
{\typo_delimited_stop_content
\rightdelimitedtextmark
\carryoverpar\endgroup % new per 2013-01-21 ... please left floats
- \pop_macro_checkindentation
+ \popmacro\checkindentation
\typo_delimited_stop_par_indeed
\delimitedtextparameter\c!after
\edef\p_delimited_spaceafter{\delimitedtextparameter\c!spaceafter}%
@@ -705,37 +680,30 @@
% test test test
% \stoptext
-% We have no real test case for this and it's broken already for a while,
-% even in \MKII. Maybe we should to this in \LUA. Only Italian has the
-% middlespeech parameter set.
-
-\def\typo_delimited_handle_middle#1% special case
- {\ifconditional\c_typo_delimited_repeating
- \begingroup
- \usedelimitedtextstyleandcolor\c!symstyle\c!symcolor
- \setbox\scratchbox\hbox{\delimitedtextparameter#1}%
- \ifdim\wd\scratchbox>\zeropoint
- \ifdim\lastkern=\d_typo_delimited_signal
- \unkern
- \hskip\hspaceamount\currentusedlanguage{interquotation}%
- \else % maybe an option:
- %\edef\p_delimited_margin{\delimitedtextparameter\c!location}%
- %\ifx\p_delimited_margin\v!margin
- % \hskip-\wd\scratchbox
- %\fi
- \fi
- \strut % new, needed below
- \dostarttagged\t!delimitedsymbol\empty
- \dotagsetdelimitedsymbol\s!middle
- \delimitedtextparameter#1% unhbox\scratchbox
- \dostoptagged
- % \penalty\plustenthousand % else overfull boxes, but that's better than dangling periods
- \kern\d_typo_delimited_signal % +- \prewordbreak
+\def\typo_delimited_handle_middle#1%
+ {\typo_delimited_stop_content
+ \begingroup
+ \usedelimitedtextstyleandcolor\c!symstyle\c!symcolor
+ \setbox\scratchbox\hbox{\delimitedtextparameter#1}%
+ \ifdim\wd\scratchbox>\zeropoint
+ \ifdim\lastkern=\d_typo_delimited_signal
+ \unkern
+ \hskip\hspaceamount\currentusedlanguage{interquotation}%
\fi
- \endgroup
- \else
- \settrue\c_typo_delimited_repeating
- \fi}
+ \ifhmode % else funny pagebeaks
+ \penalty\plustenthousand
+ \hskip\zeropoint % == \prewordbreak
+ \fi
+ \strut % new, needed below
+ \dostarttagged\t!delimitedsymbol\empty
+ \dotagsetdelimitedsymbol\s!middle
+ \delimitedtextparameter#1% unhbox\scratchbox
+ \dostoptagged
+ % \penalty\plustenthousand % else overfull boxes, but that's better than dangling periods
+ \kern\d_typo_delimited_signal % +- \prewordbreak
+ \fi
+ \endgroup
+ \typo_delimited_start_content}
\def\typo_delimited_handle_left#1%
{\begingroup
@@ -749,11 +717,11 @@
\unskip
\hskip\hspaceamount\currentusedlanguage{interquotation}%
\fi\fi
- % \strut % new, needed below
- % \ifhmode % else funny pagebeaks
- % \penalty\plustenthousand
- % \hskip\zeropoint % == \prewordbreak
- % \fi
+ \strut % new, needed below
+ \ifhmode % else funny pagebeaks
+ \penalty\plustenthousand
+ \hskip\zeropoint % == \prewordbreak
+ \fi
\strut % new, needed below
\dostarttagged\t!delimitedsymbol\empty
\dotagsetdelimitedsymbol\s!left
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-dha.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-dha.lua
index c0bbdc39668..af01f0f0d0a 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-dha.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-dha.lua
@@ -41,11 +41,13 @@ if not modules then modules = { } end modules ['typo-dha'] = {
local nodes, node = nodes, node
-local trace_directions = false trackers.register("typesetters.directions", function(v) trace_directions = v end)
+local trace_directions = false trackers.register("typesetters.directions.default", function(v) trace_directions = v end)
local report_directions = logs.reporter("typesetting","text directions")
local nuts = nodes.nuts
+local tonut = nuts.tonut
+local tonode = nuts.tonode
local getnext = nuts.getnext
local getprev = nuts.getprev
@@ -55,7 +57,7 @@ local getsubtype = nuts.getsubtype
local getlist = nuts.getlist
local getattr = nuts.getattr
local getprop = nuts.getprop
-local getdirection = nuts.getdirection
+local getdir = nuts.getdir
local isglyph = nuts.isglyph -- or ischar
local setprop = nuts.setprop
@@ -69,7 +71,7 @@ local end_of_math = nuts.end_of_math
local nodepool = nuts.pool
local nodecodes = nodes.nodecodes
-local gluecodes = nodes.gluecodes
+local skipcodes = nodes.skipcodes
local glyph_code = nodecodes.glyph
local math_code = nodecodes.math
@@ -78,13 +80,9 @@ local glue_code = nodecodes.glue
local dir_code = nodecodes.dir
local localpar_code = nodecodes.localpar
-local dirvalues = nodes.dirvalues
-local lefttoright_code = dirvalues.lefttoright
-local righttoleft_code = dirvalues.righttoleft
+local parfillskip_code = skipcodes.parfillskip
-local parfillskip_code = gluecodes.parfillskip
-
-local new_direction = nodepool.direction
+local new_textdir = nodepool.textdir
local insert = table.insert
@@ -106,14 +104,14 @@ local strip = false
local s_isol = fonts.analyzers.states.isol
-local function stopdir(finish) -- we could use finish directly
- local n = new_direction(finish == righttoleft_code and righttoleft_code or lefttoright_code,true)
+local function stopdir(finish)
+ local n = new_textdir(finish == "TRT" and "-TRT" or "-TLT")
setprop(n,"direction",true)
return n
end
-local function startdir(finish) -- we could use finish directly
- local n = new_direction(finish == righttoleft_code and righttoleft_code or lefttoright_code)
+local function startdir(finish)
+ local n = new_textdir(finish == "TRT" and "+TRT" or "+TLT")
setprop(n,"direction",true)
return n
end
@@ -138,7 +136,7 @@ end
local function process(start)
- local head = start
+ local head = tonut(start) -- we have a global head
local current = head
local autodir = 0
local embedded = 0
@@ -311,31 +309,27 @@ local function process(start)
elseif id == kern_code then
setprop(current,"direction",'k')
elseif id == dir_code then
- local direction, pop = getdirection(current)
- if direction == righttoleft_code then
- if not pop then
- autodir = -1
- elseif embedded and embedded~= 0 then
- autodir = embedded
- else
- autodir = 0
- end
- elseif direction == lefttoright_code then
- if not pop then
- autodir = 1
- elseif embedded and embedded~= 0 then
+ local dir = getdir(current)
+ if dir == "+TRT" then
+ autodir = -1
+ elseif dir == "+TLT" then
+ autodir = 1
+ elseif dir == "-TRT" or dir == "-TLT" then
+ if embedded and embedded~= 0 then
autodir = embedded
else
autodir = 0
end
+ else
+ -- message
end
textdir = autodir
setprop(current,"direction",true)
- elseif id == localpar_code and getsubtype(current) == 0 then
- local direction = getdirection(current)
- if direction == righttoleft_code then
+ elseif id == localpar_code then
+ local dir = getdir(current)
+ if dir == 'TRT' then
autodir = -1
- elseif direction == lefttoright_code then
+ elseif dir == 'TLT' then
autodir = 1
end
pardir = autodir
@@ -449,7 +443,7 @@ local function process(start)
end
end
- return head
+ return tonode(head), done
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-dig.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-dig.lua
index 175fc0cc7ef..61e96c6b6a2 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-dig.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-dig.lua
@@ -20,12 +20,15 @@ local report_digits = logs.reporter("typesetting","digits")
local nodes, node = nodes, node
local nuts = nodes.nuts
+local tonut = nuts.tonut
+local tonode = nuts.tonode
local getnext = nuts.getnext
local getprev = nuts.getprev
+local getfont = nuts.getfont
+local getchar = nuts.getchar
local getid = nuts.getid
local getwidth = nuts.getwidth
-local isglyph = nuts.isglyph
local takeattr = nuts.takeattr
local setlink = nuts.setlink
@@ -96,7 +99,8 @@ function nodes.aligned(head,start,stop,width,how)
end
actions[1] = function(head,start,attr)
- local char, font = isglyph(start)
+ local font = getfont(start)
+ local char = getchar(start)
local unic = chardata[font][char].unicode or char
if charbase[unic].category == "nd" then -- ignore unic tables
local oldwidth = getwidth(start)
@@ -107,21 +111,23 @@ actions[1] = function(head,start,attr)
attr%100,div(attr,100),char,unic,newwidth-oldwidth)
end
head, start = nodes.aligned(head,start,start,newwidth,"middle")
- return head, start
+ return head, start, true
end
end
- return head, start
+ return head, start, false
end
function digits.handler(head)
- local current = head
+ head = tonut(head)
+ local done, current, ok = false, head, false
while current do
if getid(current) == glyph_code then
local attr = takeattr(current,a_digits)
if attr and attr > 0 then
local action = actions[attr%100] -- map back to low number
if action then
- head, current = action(head,current,attr)
+ head, current, ok = action(head,current,attr)
+ done = done and ok
elseif trace_digits then
report_digits("unknown digit trigger %a",attr)
end
@@ -131,7 +137,7 @@ function digits.handler(head)
current = getnext(current)
end
end
- return head
+ return tonode(head), done
end
local m, enabled = 0, false -- a trick to make neighbouring ranges work
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-dir.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-dir.lua
index 88c84bd0244..7fbf5f6d3eb 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-dir.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-dir.lua
@@ -45,9 +45,8 @@ local band = bit32.band
local texsetattribute = tex.setattribute
local unsetvalue = attributes.unsetvalue
-local nuts = nodes.nuts
-local getnext = nuts.getnext
-local getattr = nuts.getattr
+local getnext = nodes.getnext
+local getattr = nodes.getattr
local enableaction = nodes.tasks.enableaction
local tracers = nodes.tracers
@@ -166,24 +165,24 @@ local stoptiming = statistics.stoptiming
--
-- \enabledirectives[typesetters.directions.onetoo]
-function directions.handler(head,where,_,_,direction)
+function directions.handler(head,_,_,_,direction)
local only_one = not getnext(head)
if only_one and not one_too then
- return head
+ return head, false
end
local attr = getattr(head,a_directions)
if not attr or attr == 0 then
- return head
+ return head, false
end
local method = getmethod(attr)
local handler = handlers[method]
if not handler then
- return head
+ return head, false
end
starttiming(directions)
- head = handler(head,direction,only_one,where)
+ local head, done = handler(head,direction,only_one)
stoptiming(directions)
- return head
+ return head, done
end
statistics.register("text directions", function()
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-dir.mkiv b/Master/texmf-dist/tex/context/base/mkiv/typo-dir.mkiv
index 7449a705323..d92c9379351 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-dir.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-dir.mkiv
@@ -18,13 +18,17 @@
\unprotect
-\registerctxluafile{typo-dir}{optimize}
+\registerctxluafile{typo-dir}{}
\registerctxluafile{typo-dha}{}
-%registerctxluafile{typo-dua}{}
-%registerctxluafile{typo-dub}{}
-\registerctxluafile{typo-duc}{}
+\registerctxluafile{typo-dua}{}
+\registerctxluafile{typo-dub}{}
+\doifelsefileexists{typo-duc-new.lua} {
+ \registerctxluafile{typo-duc-new}{}
+} {
+ \registerctxluafile{typo-duc}{}
+}
-\definesystemattribute[directions][public,pickup]
+\definesystemattribute[directions][public]
\installcorenamespace{directions}
\installcorenamespace{directionsbidimode}
@@ -65,9 +69,8 @@
\expandafter\glet\csname\??directionsbidimode\currentbidistamp\endcsname\currentbidimode}
\appendtoks
- \edef\p_bidi{\directionsparameter\c!bidi}%
\edef\currentbidistamp
- {\p_bidi
+ {\directionsparameter\c!bidi
:\directionsparameter\c!method
:\directionsparameter\c!fences}%
\expandafter\let\expandafter\currentbidimode\csname\??directionsbidimode\currentbidistamp\endcsname
@@ -80,11 +83,6 @@
\else
\setdirection[\number\directionsbidimode]%
\fi
- \ifx\p_bidi\v!global
- \pickupdirectionsattribute
- \else
- \forgetdirectionsattribute
- \fi
\to \everysetupdirections
\appendtoks
@@ -106,8 +104,8 @@
\unexpanded\edef\bidilro{\normalUchar"202D}
\unexpanded\edef\bidirlo{\normalUchar"202E}
-\unexpanded\def\dirlre{\ifcase\directionsbidimode\or\bidilre\or\textdirection\directionlefttoright\fi}
-\unexpanded\def\dirrle{\ifcase\directionsbidimode\or\bidirle\or\textdirection\directionrighttoleft\fi}
+\unexpanded\def\dirlre{\ifcase\directionsbidimode\or\bidilre\or\textdir TLT\fi}
+\unexpanded\def\dirrle{\ifcase\directionsbidimode\or\bidirle\or\textdir TRT\fi}
\unexpanded\def\dirlro{\ifcase\directionsbidimode\or\bidilro\or\setdirection[3]\fi}
\unexpanded\def\dirrlo{\ifcase\directionsbidimode\or\bidirlo\or\setdirection[4]\fi}
@@ -123,85 +121,85 @@
% bidi test
-% \definefontfeature
-% [arab]
-% [mode=node,language=dflt,script=arab,
-% init=yes,medi=yes,fina=yes,isol=yes,
-% liga=yes,dlig=yes,rlig=yes,clig=yes,
-% mark=yes,mkmk=yes,kern=yes,curs=yes]
-%
-% \font\Arabic=arabtype*arab at 20pt
-%
-% \def\LATIN{LATIN} {\setdirection[1]} % enable this
-% \def\ARAB {ØđØąØĻŲŠ}
-%
-% \startluacode
-% function documentdata.split_tokens(str)
-% for s in str:bytes() do
-% context.sprint(tex.ctxcatcodes,string.format("\\hbox{\\char %s}",s))
-% end
-% end
-% \stopluacode
-%
-% \unexpanded\def\biditest#1#2#3% font text raw
-% {\dontleavehmode\hbox
-% {\framed[offset=overlay]{\tttf#2}\quad
-% \enabletrackers[typesetters.directions]%
-% \framed[offset=overlay]{#1#3}\quad
-% \disabletrackers[typesetters.directions]%
-% \tttf\ctxlua{documentdata.split_tokens([[\detokenize{#3}]])}}}
-%
-% \startbuffer[bidi-sample]
-% \biditest\Arabic{LATIN BARA}{\lefttoright\relax \LATIN\ \ARAB}\par
-% \biditest\Arabic{BARA LATIN}{\righttoleft\relax \LATIN\ \ARAB}\par
-% \biditest\Arabic{LATIN ARAB}{\lefttoright{\bidilro \LATIN\ \ARAB}}\par % right -> left
-% \biditest\Arabic{LATIN ARAB}{\righttoleft{\bidilro \LATIN\ \ARAB}}\par % right -> left
-% \biditest\Arabic{BARA NITAL}{\lefttoright{\bidirlo \LATIN\ \ARAB}}\par % left -> right
-% \biditest\Arabic{BARA NITAL}{\righttoleft{\bidirlo \LATIN\ \ARAB}}\par % left -> right
-% \stopbuffer
-%
-% \startbuffer[bidi-sample]
-% \biditest\Arabic{LATIN BARA}{\lefttoright\relax \LATIN\ \ARAB}\par
-% \biditest\Arabic{BARA LATIN}{\righttoleft\relax \LATIN\ \ARAB}\par
-% \biditest\Arabic{LATIN ARAB}{\lefttoright\bidilro \LATIN\ \ARAB}\par % right -> left
-% \biditest\Arabic{LATIN ARAB}{\righttoleft\bidilro \LATIN\ \ARAB}\par % right -> left
-% \biditest\Arabic{BARA NITAL}{\lefttoright\bidirlo \LATIN\ \ARAB}\par % left -> right
-% \biditest\Arabic{BARA NITAL}{\righttoleft\bidirlo \LATIN\ \ARAB}\par % left -> right
-% \stopbuffer
-%
-% \startbuffer[bidi-setup]
-% \setupdirections[bidi=off]
-% \stopbuffer
-%
-% {\typebuffer[bidi-setup] \getbuffer[bidi-setup] \getbuffer[bidi-sample]}
-%
-% \startbuffer[bidi-setup]
-% \setupdirections[bidi=global]
-% \stopbuffer
-%
-% {\typebuffer[bidi-setup] \getbuffer[bidi-setup] \getbuffer[bidi-sample]}
-%
-% \startbuffer[bidi-setup]
-% \setupdirections[bidi=local]
-% \stopbuffer
-%
-% {\typebuffer[bidi-setup] \getbuffer[bidi-setup] \getbuffer[bidi-sample]}
-%
-% \startbuffer[bidi-sample]
-% \setupdirections[bidi=global]
-%
-% \hbox{\righttoleft\arabicfont (0001)}\par
-% \dontleavehmode\hbox{\righttoleft\arabicfont (0002)}\par
-% {\righttoleft\arabicfont (0003)\par}
-% {\righttoleft\arabicfont (0004)}\par
-% \dontleavehmode{\righttoleft\arabicfont (0005)\par}
-% \dontleavehmode{\righttoleft\arabicfont (0006)}\par
-% \rtlhbox{\arabicfont (0007)}\par
-% \ltrhbox{\arabicfont (0008)}\par
-% \dontleavehmode\rtlhbox{\arabicfont (0009)}\par
-% \dontleavehmode\ltrhbox{\arabicfont (0010)}\par
-% \stopsetups
-%
-% {\typebuffer[bidi-sample] \getbuffer[bidi-sample]}
-%
-% \stoptext
+\definefontfeature
+ [arab]
+ [mode=node,language=dflt,script=arab,
+ init=yes,medi=yes,fina=yes,isol=yes,
+ liga=yes,dlig=yes,rlig=yes,clig=yes,
+ mark=yes,mkmk=yes,kern=yes,curs=yes]
+
+\font\Arabic=arabtype*arab at 20pt
+
+\def\LATIN{LATIN} {\setdirection[1]} % enable this
+\def\ARAB {Ų…Ø­Ų…ØŊ}
+
+\startluacode
+ function documentdata.split_tokens(str)
+ for s in str:bytes() do
+ context.sprint(tex.ctxcatcodes,string.format("\\hbox{\\char %s}",s))
+ end
+ end
+\stopluacode
+
+\unexpanded\def\biditest#1#2#3% font text raw
+ {\dontleavehmode\hbox
+ {\framed[offset=overlay]{\tttf#2}\quad
+ \enabletrackers[typesetters.directions]%
+ \framed[offset=overlay]{#1#3}\quad
+ \disabletrackers[typesetters.directions]%
+ \tttf\ctxlua{documentdata.split_tokens([[\detokenize{#3}]])}}}
+
+\startbuffer[bidi-sample]
+\biditest\Arabic{LATIN BARA}{\textdir TLT\relax \LATIN\ \ARAB}\par
+\biditest\Arabic{BARA LATIN}{\textdir TRT\relax \LATIN\ \ARAB}\par
+\biditest\Arabic{LATIN ARAB}{\textdir TLT{\bidilro \LATIN\ \ARAB}}\par % right -> left
+\biditest\Arabic{LATIN ARAB}{\textdir TRT{\bidilro \LATIN\ \ARAB}}\par % right -> left
+\biditest\Arabic{BARA NITAL}{\textdir TLT{\bidirlo \LATIN\ \ARAB}}\par % left -> right
+\biditest\Arabic{BARA NITAL}{\textdir TRT{\bidirlo \LATIN\ \ARAB}}\par % left -> right
+\stopbuffer
+
+\startbuffer[bidi-sample]
+\biditest\Arabic{LATIN BARA}{\textdir TLT\relax \LATIN\ \ARAB}\par
+\biditest\Arabic{BARA LATIN}{\textdir TRT\relax \LATIN\ \ARAB}\par
+\biditest\Arabic{LATIN ARAB}{\textdir TLT\bidilro \LATIN\ \ARAB}\par % right -> left
+\biditest\Arabic{LATIN ARAB}{\textdir TRT\bidilro \LATIN\ \ARAB}\par % right -> left
+\biditest\Arabic{BARA NITAL}{\textdir TLT\bidirlo \LATIN\ \ARAB}\par % left -> right
+\biditest\Arabic{BARA NITAL}{\textdir TRT\bidirlo \LATIN\ \ARAB}\par % left -> right
+\stopbuffer
+
+\startbuffer[bidi-setup]
+\setupdirections[bidi=off]
+\stopbuffer
+
+{\typebuffer[bidi-setup] \getbuffer[bidi-setup] \getbuffer[bidi-sample]}
+
+\startbuffer[bidi-setup]
+\setupdirections[bidi=global]
+\stopbuffer
+
+{\typebuffer[bidi-setup] \getbuffer[bidi-setup] \getbuffer[bidi-sample]}
+
+\startbuffer[bidi-setup]
+\setupdirections[bidi=local]
+\stopbuffer
+
+{\typebuffer[bidi-setup] \getbuffer[bidi-setup] \getbuffer[bidi-sample]}
+
+\startbuffer[bidi-sample]
+\setupdirections[bidi=global]
+
+ \hbox{\righttoleft\arabicfont (0001)}\par
+ \dontleavehmode\hbox{\righttoleft\arabicfont (0002)}\par
+ {\righttoleft\arabicfont (0003)\par}
+ {\righttoleft\arabicfont (0004)}\par
+ \dontleavehmode{\righttoleft\arabicfont (0005)\par}
+ \dontleavehmode{\righttoleft\arabicfont (0006)}\par
+ \rtlhbox{\arabicfont (0007)}\par
+ \ltrhbox{\arabicfont (0008)}\par
+\dontleavehmode\rtlhbox{\arabicfont (0009)}\par
+\dontleavehmode\ltrhbox{\arabicfont (0010)}\par
+\stopsetups
+
+{\typebuffer[bidi-sample] \getbuffer[bidi-sample]}
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-drp.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-drp.lua
index 9a59891e103..1e142280fed 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-drp.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-drp.lua
@@ -28,11 +28,14 @@ local enableaction = tasks.enableaction
local disableaction = tasks.disableaction
local nuts = nodes.nuts
+local tonut = nuts.tonut
+local tonode = nuts.tonode
local getnext = nuts.getnext
local getprev = nuts.getprev
local getchar = nuts.getchar
local getid = nuts.getid
+local getsubtype = nuts.getsubtype
local getattr = nuts.getattr
local getwhd = nuts.getwhd
@@ -56,9 +59,8 @@ local new_kern = nodepool.kern
local insert_before = nuts.insert_before
local insert_after = nuts.insert_after
local remove_node = nuts.remove
-
-local nextnode = nuts.traversers.node
-local nextglyph = nuts.traversers.glyph
+local traverse_id = nuts.traverse_id
+local traverse = nuts.traverse
local variables = interfaces.variables
local v_default = variables.default
@@ -137,8 +139,9 @@ interfaces.implement {
-- a page so this has a low priority
actions[v_default] = function(head,setting)
+ local done = false
local id = getid(head)
- if id == localpar_code then -- and getsubtype(head) == 0
+ if id == localpar_code then
-- begin of par
local first = getnext(head)
local indent = false
@@ -170,7 +173,7 @@ actions[v_default] = function(head,setting)
-- 1 char | n chars | skip first quote | ignore punct | keep punct
--
if getattr(first,a_initial) then
- for current in nextnode, getnext(first) do
+ for current in traverse(getnext(first)) do
if getattr(current,a_initial) then
last = current
else
@@ -186,10 +189,10 @@ actions[v_default] = function(head,setting)
local next = getnext(first)
if not next then
-- don't start with a quote or so
- return head
+ return head, false
end
last = nil
- for current in nextglyph, next do
+ for current in traverse_id(glyph_code,next) do
head, first = remove_node(head,first,true)
first = current
last = first
@@ -197,21 +200,21 @@ actions[v_default] = function(head,setting)
end
if not last then
-- no following glyph or so
- return head
+ return head, false
end
else
-- keep quote etc with initial
local next = getnext(first)
if not next then
-- don't start with a quote or so
- return head
+ return head, false
end
- for current in nextglyph, next do
+ for current in traverse_id(glyph_code,next) do
last = current
break
end
if last == first then
- return head
+ return head, false
end
end
elseif kind == "pf" then
@@ -222,7 +225,8 @@ actions[v_default] = function(head,setting)
-- maybe also: get all A. B. etc
local next = getnext(first)
if next then
- for current, char in nextglyph, next do
+ for current in traverse_id(glyph_code,next) do
+ local char = getchar(current)
local kind = category(char)
if kind == "po" then
if method[v_last] then
@@ -237,7 +241,7 @@ actions[v_default] = function(head,setting)
end
end
else
- for current in nextglyph, first do
+ for current in traverse_id(glyph_code,first) do
last = current
if length <= 1 then
break
@@ -261,12 +265,12 @@ actions[v_default] = function(head,setting)
end
-- apply font
--- local g = nuts.copy(current)
+-- local g = nodes.copy(tonode(current))
-- g.subtype = 0
-- nodes.handlers.characters(g)
-- nodes.handlers.protectglyphs(g)
-- setchar(current,g.char)
--- nuts.flush_node(g)
+-- nodes.flush_node(g)
-- can be a helper
if ca and ca > 0 then
@@ -315,7 +319,7 @@ actions[v_default] = function(head,setting)
end
--
local hoffset = width + hoffset + distance + (indent and parindent or 0)
- for current in nextglyph, first do
+ for current in traverse_id(glyph_code,first) do
setoffsets(current,-hoffset,-voffset) -- no longer - height here
if current == last then
break
@@ -343,12 +347,14 @@ actions[v_default] = function(head,setting)
if indent then
insert_after(first,first,new_kern(-parindent))
end
+ done = true
end
end
- return head
+ return head, done
end
function initials.handler(head)
+ head = tonut(head)
local start = head
local attr = nil
while start do
@@ -371,8 +377,9 @@ function initials.handler(head)
if trace_initials then
report_initials("processing initials, alternative %a",alternative)
end
- return action(head,settings)
+ local head, done = action(head,settings)
+ return tonode(head), done
end
end
- return head
+ return tonode(head), false
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-drp.mkiv b/Master/texmf-dist/tex/context/base/mkiv/typo-drp.mkiv
index 18392510803..371ea38d60e 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-drp.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-drp.mkiv
@@ -118,7 +118,7 @@
\kern\zeropoint % we need a node
\p_text
\endgroup
- \glet\typo_initial_handle\relax}
+ \globallet\typo_initial_handle\relax}
\let\typo_initial_handle\relax
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-dua.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-dua.lua
index 3db5f510ac1..1e48dfb9178 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-dua.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-dua.lua
@@ -68,6 +68,8 @@ local directiondata = characters.directions
local mirrordata = characters.mirrors
local nuts = nodes.nuts
+local tonut = nuts.tonut
+local tonode = nuts.tonode
local getnext = nuts.getnext
local getid = nuts.getid
@@ -75,11 +77,11 @@ local getsubtype = nuts.getsubtype
local getlist = nuts.getlist
local getchar = nuts.getchar
local getprop = nuts.getprop
-local getdirection = nuts.getdirection
+local getdir = nuts.getdir
local setprop = nuts.setprop
local setchar = nuts.setchar
-local setdirection = nuts.setdirection
+local setdir = nuts.setdir
----- setattrlist = nuts.setattrlist
local remove_node = nuts.remove
@@ -87,10 +89,10 @@ local insert_node_after = nuts.insert_after
local insert_node_before = nuts.insert_before
local nodepool = nuts.pool
-local new_direction = nodepool.direction
+local new_textdir = nodepool.textdir
local nodecodes = nodes.nodecodes
-local gluecodes = nodes.gluecodes
+local skipcodes = nodes.skipcodes
local glyph_code = nodecodes.glyph
local glue_code = nodecodes.glue
@@ -99,27 +101,22 @@ local vlist_code = nodecodes.vlist
local math_code = nodecodes.math
local dir_code = nodecodes.dir
local localpar_code = nodecodes.localpar
+local parfillskip_code = skipcodes.parfillskip
-local parfillskip_code = gluecodes.parfillskip
-
-local dirvalues = nodes.dirvalues
-local lefttoright_code = dirvalues.lefttoright
-local righttoleft_code = dirvalues.righttoleft
-
-local maximum_stack = 60
+----- object_replacement = 0xFFFC -- object replacement character
+local maximum_stack = 60 -- probably spec but not needed
local directions = typesetters.directions
local setcolor = directions.setcolor
-local remove_controls = true directives.register("typesetters.directions.one.removecontrols",function(v) remove_controls = v end)
-
-local report_directions = logs.reporter("typesetting","directions one")
-
-local trace_directions = false trackers .register("typesetters.directions", function(v) trace_directions = v end)
-local trace_details = false trackers .register("typesetters.directions.details", function(v) trace_details = v end)
+----- a_directions = attributes.private('directions')
+local remove_controls = true directives.register("typesetters.directions.one.removecontrols",function(v) remove_controls = v end)
+local trace_directions = false trackers .register("typesetters.directions.one", function(v) trace_directions = v end)
+local trace_details = false trackers .register("typesetters.directions.one.details", function(v) trace_details = v end)
+local report_directions = logs.reporter("typesetting","directions one")
local whitespace = {
lre = true,
@@ -237,19 +234,13 @@ local function build_list(head) -- todo: store node pointer ... saves loop
list[size] = { char = 0x0020, direction = "ws", original = "ws", level = 0 }
current = getnext(current)
elseif id == dir_code then
- local direction, pop = getdirection(current)
- if direction == lefttoright_code then
- if pop then
- list[size] = { char = 0x202C, direction = "pdf", original = "pdf", level = 0 }
- else
- list[size] = { char = 0x202A, direction = "lre", original = "lre", level = 0 }
- end
- elseif direction == righttoleft_code then
- if pop then
- list[size] = { char = 0x202C, direction = "pdf", original = "pdf", level = 0 }
- else
- list[size] = { char = 0x202B, direction = "rle", original = "rle", level = 0 }
- end
+ local dir = getdir(current)
+ if dir == "+TLT" then
+ list[size] = { char = 0x202A, direction = "lre", original = "lre", level = 0 }
+ elseif dir == "+TRT" then
+ list[size] = { char = 0x202B, direction = "rle", original = "rle", level = 0 }
+ elseif dir == "-TLT" or dir == "-TRT" then
+ list[size] = { char = 0x202C, direction = "pdf", original = "pdf", level = 0 }
else
list[size] = { char = 0xFFFC, direction = "on", original = "on", level = 0, id = id } -- object replacement character
end
@@ -332,33 +323,27 @@ local function find_run_limit_b_s_ws_on(list,start,limit)
return start
end
-local function get_baselevel(head,list,size,direction)
- -- This is an adapted version:
- if direction == lefttoright_code or direction == righttoleft_code then
- return direction, true
- elseif getid(head) == localpar_code and getsubtype(head) == 0 then
- direction = getdirection(head)
- if direction == lefttoright_code or direction == righttoleft_code then
- return direction, true
+local function get_baselevel(head,list,size) -- todo: skip if first is object (or pass head and test for localpar)
+ local id = getid(head)
+ if id == localpar_code then
+ if getdir(head) == "TRT" then
+ return 1, "TRT", true
+ else
+ return 0, "TLT", true
end
- end
- -- for old times sake we we handle strings too
- if direction == "TLT" then
- return lefttoright_code, true
- elseif direction == "TRT" then
- return righttoleft_code, true
- end
- -- P2, P3
- for i=1,size do
- local entry = list[i]
- local direction = entry.direction
- if direction == "r" or direction == "al" then
- return righttoleft_code, true
- elseif direction == "l" then
- return lefttoright_code, true
+ else
+ -- P2, P3
+ for i=1,size do
+ local entry = list[i]
+ local direction = entry.direction
+ if direction == "r" or direction == "al" then
+ return 1, "TRT", true
+ elseif direction == "l" then
+ return 0, "TLT", true
+ end
end
+ return 0, "TLT", false
end
- return lefttoright_code, false
end
local function resolve_explicit(list,size,baselevel)
@@ -424,7 +409,7 @@ local function resolve_explicit(list,size,baselevel)
end
-- X7
elseif direction == "pdf" then
- if noifstack > 0 then
+ if nofstack < maximum_stack then
local stacktop = stack[nofstack]
nofstack = nofstack - 1
level = stacktop[1]
@@ -433,7 +418,7 @@ local function resolve_explicit(list,size,baselevel)
entry.direction = "bn"
entry.remove = true
elseif trace_directions then
- report_directions("stack underflow at position %a with direction %a",i,direction)
+ report_directions("stack overflow at position %a with direction %a",i,direction)
end
-- X6
else
@@ -694,6 +679,8 @@ local function resolve_levels(list,size,baselevel)
end
end
+-- This is not ok but we keep it as-is:
+
local function insert_dir_points(list,size)
-- L2, but no actual reversion is done, we simply annotate where
-- begindir/endddir node will be inserted.
@@ -710,11 +697,11 @@ local function insert_dir_points(list,size)
local begindir = nil
local enddir = nil
if level % 2 == 1 then
- begindir = righttoleft_code
- enddir = righttoleft_code
+ begindir = "+TRT"
+ enddir = "-TRT"
else
- begindir = lefttoright_code
- enddir = lefttoright_code
+ begindir = "+TLT"
+ enddir = "-TLT"
end
for i=1,size do
local entry = list[i]
@@ -743,6 +730,7 @@ end
local function apply_to_list(list,size,head,pardir)
local index = 1
local current = head
+ local done = false
while current do
if index > size then
report_directions("fatal error, size mismatch")
@@ -763,31 +751,34 @@ local function apply_to_list(list,size,head,pardir)
setcolor(current,direction,false,mirror)
end
elseif id == hlist_code or id == vlist_code then
- setdirection(current,pardir) -- is this really needed?
+ setdir(current,pardir) -- is this really needed?
elseif id == glue_code then
if enddir and getsubtype(current) == parfillskip_code then
-- insert the last enddir before \parfillskip glue
- local d = new_direction(enddir,true)
- -- setprop(d,"directions",true)
+ local d = new_textdir(enddir)
+ setprop(d,"directions",true)
-- setattrlist(d,current)
head = insert_node_before(head,current,d)
enddir = false
+ done = true
end
elseif begindir then
- if id == localpar_code and getsubtype(current) == 0 then
+ if id == localpar_code then
-- localpar should always be the 1st node
- local d = new_direction(begindir)
- -- setprop(d,"directions",true)
+ local d = new_textdir(begindir)
+ setprop(d,"directions",true)
-- setattrlist(d,current)
head, current = insert_node_after(head,current,d)
begindir = nil
+ done = true
end
end
if begindir then
- local d = new_direction(begindir)
- -- setprop(d,"directions",true)
+ local d = new_textdir(begindir)
+ setprop(d,"directions",true)
-- setattrlist(d,current)
head = insert_node_before(head,current,d)
+ done = true
end
local skip = entry.skip
if skip and skip > 0 then
@@ -797,28 +788,30 @@ local function apply_to_list(list,size,head,pardir)
end
end
if enddir then
- local d = new_direction(enddir,true)
- -- setprop(d,"directions",true)
+ local d = new_textdir(enddir)
+ setprop(d,"directions",true)
-- setattrlist(d,current)
head, current = insert_node_after(head,current,d)
+ done = true
end
if not entry.remove then
current = getnext(current)
elseif remove_controls then
-- X9
head, current = remove_node(head,current,true)
+ done = true
else
current = getnext(current)
end
index = index + 1
end
- return head
+ return head, done
end
-local function process(head,direction,only_one,where)
- -- This is an adapted version:
+local function process(head)
+ head = tonut(head)
local list, size = build_list(head)
- local baselevel, dirfound = get_baselevel(head,list,size,direction)
+ local baselevel, pardir, dirfound = get_baselevel(head,list,size) -- we always have an inline dir node in context
if not dirfound and trace_details then
report_directions("no initial direction found, gambling")
end
@@ -832,7 +825,8 @@ local function process(head,direction,only_one,where)
report_directions("after : %s",show_list(list,size,"direction"))
report_directions("result : %s",show_done(list,size))
end
- return apply_to_list(list,size,head,baselevel)
+ local head, done = apply_to_list(list,size,head,pardir)
+ return tonode(head), done
end
directions.installhandler(interfaces.variables.one,process)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-dub.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-dub.lua
index f27e4047660..d0747ae6ccd 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-dub.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-dub.lua
@@ -55,6 +55,8 @@ local mirrordata = characters.mirrors
local textclassdata = characters.textclasses
local nuts = nodes.nuts
+local tonut = nuts.tonut
+local tonode = nuts.tonode
local getnext = nuts.getnext
local getid = nuts.getid
@@ -63,11 +65,11 @@ local getlist = nuts.getlist
local getchar = nuts.getchar
local getattr = nuts.getattr
local getprop = nuts.getprop
-local getdirection = nuts.getdirection
+local getdir = nuts.getdir
local setprop = nuts.setprop
local setchar = nuts.setchar
-local setdirection = nuts.setdirection
+local setdir = nuts.setdir
local setattrlist = nuts.setattrlist
local remove_node = nuts.remove
@@ -75,10 +77,10 @@ local insert_node_after = nuts.insert_after
local insert_node_before = nuts.insert_before
local nodepool = nuts.pool
-local new_direction = nodepool.direction
+local new_textdir = nodepool.textdir
local nodecodes = nodes.nodecodes
-local gluecodes = nodes.gluecodes
+local skipcodes = nodes.skipcodes
local glyph_code = nodecodes.glyph
local glue_code = nodecodes.glue
@@ -87,29 +89,24 @@ local vlist_code = nodecodes.vlist
local math_code = nodecodes.math
local dir_code = nodecodes.dir
local localpar_code = nodecodes.localpar
+local parfillskip_code = skipcodes.parfillskip
-local parfillskip_code = gluecodes.parfillskip
-
-local dirvalues = nodes.dirvalues
-local lefttoright_code = dirvalues.lefttoright
-local righttoleft_code = dirvalues.righttoleft
-
-local maximum_stack = 0xFF
-
-local a_directions = attributes.private('directions')
+local maximum_stack = 0xFF -- unicode: 60, will be jumped to 125, we don't care too much
local directions = typesetters.directions
local setcolor = directions.setcolor
local getfences = directions.getfences
+local a_directions = attributes.private('directions')
+
local remove_controls = true directives.register("typesetters.directions.removecontrols",function(v) remove_controls = v end)
----- analyze_fences = true directives.register("typesetters.directions.analyzefences", function(v) analyze_fences = v end)
-local report_directions = logs.reporter("typesetting","directions three")
+local trace_directions = false trackers .register("typesetters.directions.two", function(v) trace_directions = v end)
+local trace_details = false trackers .register("typesetters.directions.two.details", function(v) trace_details = v end)
+local trace_list = false trackers .register("typesetters.directions.two.list", function(v) trace_list = v end)
-local trace_directions = false trackers.register("typesetters.directions", function(v) trace_directions = v end)
-local trace_details = false trackers.register("typesetters.directions.details", function(v) trace_details = v end)
-local trace_list = false trackers.register("typesetters.directions.list", function(v) trace_list = v end)
+local report_directions = logs.reporter("typesetting","directions two")
-- strong (old):
--
@@ -120,7 +117,7 @@ local trace_list = false trackers.register("typesetters.directions.list
-- lre : left to right embedding
-- rle : left to left embedding
-- al : right to legt arabic (esp punctuation issues)
---
+
-- weak:
--
-- en : english number
@@ -130,23 +127,23 @@ local trace_list = false trackers.register("typesetters.directions.list
-- cs : common number separator
-- nsm : nonspacing mark
-- bn : boundary neutral
---
+
-- neutral:
--
-- b : paragraph separator
-- s : segment separator
-- ws : whitespace
-- on : other neutrals
---
+
-- interesting: this is indeed better (and more what we expect i.e. we already use this split
-- in the old original (also these isolates)
---
+
-- strong (new):
--
-- l : left to right
-- r : right to left
-- al : right to left arabic (esp punctuation issues)
---
+
-- explicit: (new)
--
-- lro : left to right override
@@ -209,28 +206,27 @@ end
local function show_done(list,size)
local joiner = utfchar(0x200C)
local result = { }
- local format = formatters["<%s>"]
for i=1,size do
local entry = list[i]
local character = entry.char
local begindir = entry.begindir
local enddir = entry.enddir
if begindir then
- result[#result+1] = format(begindir)
+ result[#result+1] = formatters["<%s>"](begindir)
end
if entry.remove then
-- continue
elseif character == 0xFFFC then
- result[#result+1] = format("?")
+ result[#result+1] = formatters["<%s>"]("?")
elseif character == 0x0020 then
- result[#result+1] = format(" ")
+ result[#result+1] = formatters["<%s>"](" ")
elseif character >= 0x202A and character <= 0x202C then
- result[#result+1] = format(entry.original)
+ result[#result+1] = formatters["<%s>"](entry.original)
else
result[#result+1] = utfchar(character)
end
if enddir then
- result[#result+1] = format(enddir)
+ result[#result+1] = formatters["<%s>"](enddir)
end
end
return concat(result,joiner)
@@ -240,7 +236,17 @@ end
-- char is only used for mirror, so in fact we can as well only store it for
-- glyphs only
-local function build_list(head)
+-- using metatable is slightly faster so maybe some day ...
+
+-- local space = { char = 0x0020, direction = "ws", original = "ws" }
+-- local lre = { char = 0x202A, direction = "lre", original = "lre" }
+-- local rle = { char = 0x202B, direction = "rle", original = "rle" }
+-- local pdf = { char = 0x202C, direction = "pdf", original = "pdf" }
+-- local object = { char = 0xFFFC, direction = "on", original = "on" }
+--
+-- local t = { level = 0 } setmetatable(t,space) list[size] = t
+
+local function build_list(head) -- todo: store node pointer ... saves loop
-- P1
local current = head
local list = { }
@@ -276,19 +282,13 @@ local function build_list(head)
list[size] = { char = 0x0020, direction = "ws", original = "ws", level = 0 }
current = getnext(current)
elseif id == dir_code then
- local direction, pop = getdirection(current)
- if direction == lefttoright_code then
- if pop then
- list[size] = { char = 0x202C, direction = "pdf", original = "pdf", level = 0 }
- else
- list[size] = { char = 0x202A, direction = "lre", original = "lre", level = 0 }
- end
- elseif direction == righttoleft_code then
- if pop then
- list[size] = { char = 0x202C, direction = "pdf", original = "pdf", level = 0 }
- else
- list[size] = { char = 0x202B, direction = "rle", original = "rle", level = 0 }
- end
+ local dir = getdir(current)
+ if dir == "+TLT" then
+ list[size] = { char = 0x202A, direction = "lre", original = "lre", level = 0 }
+ elseif dir == "+TRT" then
+ list[size] = { char = 0x202B, direction = "rle", original = "rle", level = 0 }
+ elseif dir == "-TLT" or dir == "-TRT" then
+ list[size] = { char = 0x202C, direction = "pdf", original = "pdf", level = 0 }
else
list[size] = { char = 0xFFFC, direction = "on", original = "on", level = 0, id = id } -- object replacement character
end
@@ -343,8 +343,8 @@ end
local function resolve_fences(list,size,start,limit)
-- N0: funny effects, not always better, so it's an option
- local stack = { }
- local nofstack = 0
+ local stack = { }
+ local top = 0
for i=start,limit do
local entry = list[i]
if entry.direction == "on" then
@@ -355,15 +355,15 @@ local function resolve_fences(list,size,start,limit)
entry.mirror = mirror
entry.class = class
if class == "open" then
- nofstack = nofstack + 1
- stack[nofstack] = { mirror, i, false }
- elseif nofstack == 0 then
+ top = top + 1
+ stack[top] = { mirror, i, false }
+ elseif top == 0 then
-- skip
elseif class == "close" then
- while nofstack > 0 do
- local stacktop = stack[nofstack]
- if stacktop[1] == char then
- local open = stacktop[2]
+ while top > 0 do
+ local s = stack[top]
+ if s[1] == char then
+ local open = s[2]
local close = i
list[open ].paired = close
list[close].paired = open
@@ -371,7 +371,7 @@ local function resolve_fences(list,size,start,limit)
else
-- do we mirror or not
end
- nofstack = nofstack - 1
+ top = top - 1
end
end
end
@@ -394,32 +394,27 @@ end
-- the action
-local function get_baselevel(head,list,size,direction)
- if direction == lefttoright_code or direction == righttoleft_code then
- return direction, true
- elseif getid(head) == localpar_code and getsubtype(head) == 0 then
- direction = getdirection(head)
- if direction == lefttoright_code or direction == righttoleft_code then
- return direction, true
+local function get_baselevel(head,list,size) -- todo: skip if first is object (or pass head and test for localpar)
+ local id = getid(head)
+ if id == localpar_code then
+ if getdir(head) == "TRT" then
+ return 1, "TRT", true
+ else
+ return 0, "TLT", true
end
- end
- -- for old times sake we we handle strings too
- if direction == "TLT" then
- return lefttoright_code, true
- elseif direction == "TRT" then
- return righttoleft_code, true
- end
- -- P2, P3
- for i=1,size do
- local entry = list[i]
- local direction = entry.direction
- if direction == "r" or direction == "al" then -- and an ?
- return righttoleft_code, true
- elseif direction == "l" then
- return lefttoright_code, true
+ else
+ -- P2, P3
+ for i=1,size do
+ local entry = list[i]
+ local direction = entry.direction
+ if direction == "r" or direction == "al" then -- and an ?
+ return 1, "TRT", true
+ elseif direction == "l" then
+ return 0, "TLT", true
+ end
end
+ return 0, "TLT", false
end
- return lefttoright_code, false
end
local function resolve_explicit(list,size,baselevel)
@@ -485,17 +480,16 @@ local function resolve_explicit(list,size,baselevel)
end
-- X7
elseif direction == "pdf" then
- if nofstack > 0 then
+ if nofstack < maximum_stack then
local stacktop = stack[nofstack]
+ nofstack = nofstack - 1
level = stacktop[1]
override = stacktop[2]
- nofstack = nofstack - 1
entry.level = level
entry.direction = "bn"
entry.remove = true
elseif trace_directions then
- report_directions("stack underflow at position %a with direction %a",
- i, direction)
+ report_directions("stack overflow at position %a with direction %a",i,direction)
end
-- X6
else
@@ -694,6 +688,33 @@ local function resolve_neutral(list,size,start,limit,orderbefore,orderafter)
end
end
+-- local function resolve_implicit(list,size,start,limit,orderbefore,orderafter)
+-- -- I1
+-- for i=start,limit do
+-- local entry = list[i]
+-- local level = entry.level
+-- if level % 2 ~= 1 then -- not odd(level)
+-- local direction = entry.direction
+-- if direction == "r" then
+-- entry.level = level + 1
+-- elseif direction == "an" or direction == "en" then
+-- entry.level = level + 2
+-- end
+-- end
+-- end
+-- -- I2
+-- for i=start,limit do
+-- local entry = list[i]
+-- local level = entry.level
+-- if level % 2 == 1 then -- odd(level)
+-- local direction = entry.direction
+-- if direction == "l" or direction == "en" or direction == "an" then
+-- entry.level = level + 1
+-- end
+-- end
+-- end
+-- end
+
local function resolve_implicit(list,size,start,limit,orderbefore,orderafter,baselevel)
for i=start,limit do
local entry = list[i]
@@ -793,6 +814,52 @@ local function resolve_levels(list,size,baselevel,analyze_fences)
end
end
+-- local function insert_dir_points(list,size)
+-- -- L2, but no actual reversion is done, we simply annotate where
+-- -- begindir/endddir node will be inserted.
+-- local maxlevel = 0
+-- local finaldir = false
+-- for i=1,size do
+-- local level = list[i].level
+-- if level > maxlevel then
+-- maxlevel = level
+-- end
+-- end
+-- for level=0,maxlevel do
+-- local started = false
+-- local begindir = nil
+-- local enddir = nil
+-- if level % 2 == 1 then
+-- begindir = "+TRT"
+-- enddir = "-TRT"
+-- else
+-- begindir = "+TLT"
+-- enddir = "-TLT"
+-- end
+-- for i=1,size do
+-- local entry = list[i]
+-- if entry.level >= level then
+-- if not started then
+-- entry.begindir = begindir
+-- started = true
+-- end
+-- else
+-- if started then
+-- list[i-1].enddir = enddir
+-- started = false
+-- end
+-- end
+-- end
+-- -- make sure to close the run at end of line
+-- if started then
+-- finaldir = enddir
+-- end
+-- end
+-- if finaldir then
+-- list[size].enddir = finaldir
+-- end
+-- end
+
local function insert_dir_points(list,size)
-- L2, but no actual reversion is done, we simply annotate where
-- begindir/endddir node will be inserted.
@@ -810,12 +877,12 @@ local function insert_dir_points(list,size)
local enddir -- = nil
local prev -- = nil
if toggle then
- begindir = lefttoright_code
- enddir = lefttoright_code
+ begindir = "+TLT"
+ enddir = "-TLT"
toggle = false
else
- begindir = righttoleft_code
- enddir = righttoleft_code
+ begindir = "+TRT"
+ enddir = "-TRT"
toggle = true
end
for i=1,size do
@@ -855,7 +922,7 @@ local function insert_dir_points(list,size)
if trace_list and n > 1 then
report_directions("unbalanced list")
end
- last.enddir = s[n] == righttoleft_code and righttoleft_code or lefttoright_code
+ last.enddir = s[n] == "+TRT" and "-TRT" or "-TLT"
end
end
end
@@ -863,6 +930,7 @@ end
local function apply_to_list(list,size,head,pardir)
local index = 1
local current = head
+ local done = false
if trace_list then
report_directions("start run")
end
@@ -896,31 +964,34 @@ local function apply_to_list(list,size,head,pardir)
setcolor(current,direction,false,mirror)
end
elseif id == hlist_code or id == vlist_code then
- setdirection(current,pardir) -- is this really needed?
+ setdir(current,pardir) -- is this really needed?
elseif id == glue_code then
if enddir and getsubtype(current) == parfillskip_code then
-- insert the last enddir before \parfillskip glue
- local d = new_direction(enddir,true)
- -- setprop(d,"directions",true)
+ local d = new_textdir(enddir)
+ setprop(d,"directions",true)
-- setattrlist(d,current)
head = insert_node_before(head,current,d)
enddir = false
+ done = true
end
elseif begindir then
- if id == localpar_code and getsubtype(current) == 0 then
+ if id == localpar_code then
-- localpar should always be the 1st node
- local d = new_direction(begindir)
- -- setprop(d,"directions",true)
+ local d = new_textdir(begindir)
+ setprop(d,"directions",true)
-- setattrlist(d,current)
head, current = insert_node_after(head,current,d)
begindir = nil
+ done = true
end
end
if begindir then
- local d = new_direction(begindir)
- -- setprop(d,"directions",true)
+ local d = new_textdir(begindir)
+ setprop(d,"directions",true)
-- setattrlist(d,current)
head = insert_node_before(head,current,d)
+ done = true
end
local skip = entry.skip
if skip and skip > 0 then
@@ -930,16 +1001,18 @@ local function apply_to_list(list,size,head,pardir)
end
end
if enddir then
- local d = new_direction(enddir,true)
- -- setprop(d,"directions",true)
+ local d = new_textdir(enddir)
+ setprop(d,"directions",true)
-- setattrlist(d,current)
head, current = insert_node_after(head,current,d)
+ done = true
end
if not entry.remove then
current = getnext(current)
elseif remove_controls then
-- X9
head, current = remove_node(head,current,true)
+ done = true
else
current = getnext(current)
end
@@ -948,16 +1021,17 @@ local function apply_to_list(list,size,head,pardir)
if trace_list then
report_directions("stop run")
end
- return head
+ return head, done
end
-local function process(head,direction,only_one,where)
+local function process(head)
+ head = tonut(head)
-- for the moment a whole paragraph property
local attr = getattr(head,a_directions)
local analyze_fences = getfences(attr)
--
local list, size = build_list(head)
- local baselevel, dirfound = get_baselevel(head,list,size,direction)
+ local baselevel, pardir, dirfound = get_baselevel(head,list,size) -- we always have an inline dir node in context
if not dirfound and trace_details then
report_directions("no initial direction found, gambling")
end
@@ -971,7 +1045,8 @@ local function process(head,direction,only_one,where)
report_directions("after : %s",show_list(list,size,"direction"))
report_directions("result : %s",show_done(list,size))
end
- return apply_to_list(list,size,head,baselevel)
+ local head, done = apply_to_list(list,size,head,pardir)
+ return tonode(head), done
end
directions.installhandler(interfaces.variables.two,process)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-duc.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-duc.lua
index f91fc4d647d..52074019047 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-duc.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-duc.lua
@@ -7,6 +7,8 @@ if not modules then modules = { } end modules ['typo-duc'] = {
comment = "Unicode bidi (sort of) variant c",
}
+-- Will be replaced by typo-duc-new.lua!
+
-- This is a follow up on typo-uda which itself is a follow up on t-bidi by Khaled Hosny which
-- in turn is based on minibidi.c from Arabeyes. This is a further optimizations, as well as
-- an update on some recent unicode bidi developments. There is (and will) also be more control
@@ -56,6 +58,8 @@ local mirrordata = characters.mirrors
local textclassdata = characters.textclasses
local nuts = nodes.nuts
+local tonut = nuts.tonut
+local tonode = nuts.tonode
local getnext = nuts.getnext
local getid = nuts.getid
@@ -64,12 +68,11 @@ local getlist = nuts.getlist
local getchar = nuts.getchar
local getattr = nuts.getattr
local getprop = nuts.getprop
-local getdirection = nuts.getdirection
-local isglyph = nuts.isglyph
+local getdir = nuts.getdir
local setprop = nuts.setprop
local setchar = nuts.setchar
-local setdirection = nuts.setdirection
+local setdir = nuts.setdir
local setattrlist = nuts.setattrlist
local properties = nodes.properties.data
@@ -79,10 +82,10 @@ local insert_node_after = nuts.insert_after
local insert_node_before = nuts.insert_before
local nodepool = nuts.pool
-local new_direction = nodepool.direction
+local new_textdir = nodepool.textdir
local nodecodes = nodes.nodecodes
-local gluecodes = nodes.gluecodes
+local skipcodes = nodes.skipcodes
local glyph_code = nodecodes.glyph
local glue_code = nodecodes.glue
@@ -91,29 +94,24 @@ local vlist_code = nodecodes.vlist
local math_code = nodecodes.math
local dir_code = nodecodes.dir
local localpar_code = nodecodes.localpar
+local parfillskip_code = skipcodes.parfillskip
-local parfillskip_code = gluecodes.parfillskip
-
-local dirvalues = nodes.dirvalues
-local lefttoright_code = dirvalues.lefttoright
-local righttoleft_code = dirvalues.righttoleft
-
-local maximum_stack = 0xFF
-
-local a_directions = attributes.private('directions')
+local maximum_stack = 0xFF -- unicode: 60, will be jumped to 125, we don't care too much
local directions = typesetters.directions
local setcolor = directions.setcolor
local getfences = directions.getfences
+local a_directions = attributes.private('directions')
+
local remove_controls = true directives.register("typesetters.directions.removecontrols",function(v) remove_controls = v end)
----- analyze_fences = true directives.register("typesetters.directions.analyzefences", function(v) analyze_fences = v end)
-local report_directions = logs.reporter("typesetting","directions three")
+local trace_directions = false trackers.register("typesetters.directions.three", function(v) trace_directions = v end)
+local trace_details = false trackers.register("typesetters.directions.three.details", function(v) trace_details = v end)
+local trace_list = false trackers.register("typesetters.directions.three.list", function(v) trace_list = v end)
-local trace_directions = false trackers.register("typesetters.directions", function(v) trace_directions = v end)
-local trace_details = false trackers.register("typesetters.directions.details", function(v) trace_details = v end)
-local trace_list = false trackers.register("typesetters.directions.list", function(v) trace_list = v end)
+local report_directions = logs.reporter("typesetting","directions three")
-- strong (old):
--
@@ -124,7 +122,7 @@ local trace_list = false trackers.register("typesetters.directions.list
-- lre : left to right embedding
-- rle : left to left embedding
-- al : right to legt arabic (esp punctuation issues)
---
+
-- weak:
--
-- en : english number
@@ -134,23 +132,23 @@ local trace_list = false trackers.register("typesetters.directions.list
-- cs : common number separator
-- nsm : nonspacing mark
-- bn : boundary neutral
---
+
-- neutral:
--
-- b : paragraph separator
-- s : segment separator
-- ws : whitespace
-- on : other neutrals
---
+
-- interesting: this is indeed better (and more what we expect i.e. we already use this split
-- in the old original (also these isolates)
---
+
-- strong (new):
--
-- l : left to right
-- r : right to left
-- al : right to left arabic (esp punctuation issues)
---
+
-- explicit: (new)
--
-- lro : left to right override
@@ -243,20 +241,20 @@ end
-- keeping the list and overwriting doesn't save much runtime, only a few percent
-- char is only used for mirror, so in fact we can as well only store it for
-- glyphs only
---
+
-- tracking what direction is used and skipping tests is not faster (extra kind of
-- compensates gain)
-local mt_space = { __index = { char = 0x0020, direction = "ws", original = "ws", level = 0, skip = 0 } }
-local mt_lre = { __index = { char = 0x202A, direction = "lre", original = "lre", level = 0, skip = 0 } }
-local mt_rle = { __index = { char = 0x202B, direction = "rle", original = "rle", level = 0, skip = 0 } }
-local mt_pdf = { __index = { char = 0x202C, direction = "pdf", original = "pdf", level = 0, skip = 0 } }
-local mt_object = { __index = { char = 0xFFFC, direction = "on", original = "on", level = 0, skip = 0 } }
+local mt_space = { __index = { char = 0x0020, direction = "ws", original = "ws", level = 0 } }
+local mt_lre = { __index = { char = 0x202A, direction = "lre", original = "lre", level = 0 } }
+local mt_rle = { __index = { char = 0x202B, direction = "rle", original = "rle", level = 0 } }
+local mt_pdf = { __index = { char = 0x202C, direction = "pdf", original = "pdf", level = 0 } }
+local mt_object = { __index = { char = 0xFFFC, direction = "on", original = "on", level = 0 } }
local stack = table.setmetatableindex("table") -- shared
local list = { } -- shared
-local function build_list(head,where)
+local function build_list(head) -- todo: store node pointer ... saves loop
-- P1
local current = head
local size = 0
@@ -265,7 +263,6 @@ local function build_list(head,where)
local id = getid(current)
local p = properties[current]
if p and p.directions then
- -- tricky as dirs can be injected in between
local skip = 0
local last = id
current = getnext(current)
@@ -288,7 +285,6 @@ local function build_list(head,where)
elseif id == glyph_code then
local chr = getchar(current)
local dir = directiondata[chr]
- -- could also be a metatable
list[size] = { char = chr, direction = dir, original = dir, level = 0 }
current = getnext(current)
-- if not list[dir] then list[dir] = true end -- not faster when we check for usage
@@ -296,11 +292,13 @@ local function build_list(head,where)
list[size] = setmetatable({ },mt_space)
current = getnext(current)
elseif id == dir_code then
- local dir, pop = getdirection(current)
- if dir == lefttoright_code then
- list[size] = setmetatable({ },pop and mt_pdf or mt_lre)
- elseif dir == righttoleft_code then
- list[size] = setmetatable({ },pop and mt_pdf or mt_rle)
+ local dir = getdir(current)
+ if dir == "+TLT" then
+ list[size] = setmetatable({ },mt_lre)
+ elseif dir == "+TRT" then
+ list[size] = setmetatable({ },mt_rle)
+ elseif dir == "-TLT" or dir == "-TRT" then
+ list[size] = setmetatable({ },mt_pdf)
else
list[size] = setmetatable({ id = id },mt_object)
end
@@ -353,8 +351,6 @@ end
-- ŨĐ ( Ũœ ( Ũ ) Ũ› ) 2-8,4-6
-- ŨĐ ( Ũœ [ Ũ ] Ũ› ) 2-8,4-6
-local fencestack = table.setmetatableindex("table")
-
local function resolve_fences(list,size,start,limit)
-- N0: funny effects, not always better, so it's an option
local nofstack = 0
@@ -369,14 +365,15 @@ local function resolve_fences(list,size,start,limit)
entry.class = class
if class == "open" then
nofstack = nofstack + 1
- local stacktop = fencestack[nofstack]
+ local stacktop = stack[nofstack]
stacktop[1] = mirror
stacktop[2] = i
+ stacktop[3] = false -- not used
elseif nofstack == 0 then
-- skip
elseif class == "close" then
while nofstack > 0 do
- local stacktop = fencestack[nofstack]
+ local stacktop = stack[nofstack]
if stacktop[1] == char then
local open = stacktop[2]
local close = i
@@ -410,31 +407,25 @@ end
-- the action
local function get_baselevel(head,list,size,direction)
- if direction == lefttoright_code or direction == righttoleft_code then
- return direction, true
- elseif getid(head) == localpar_code and getsubtype(head) == 0 then
- direction = getdirection(head)
- if direction == lefttoright_code or direction == righttoleft_code then
- return direction, true
- end
+ if not direction and getid(head) == localpar_code then
+ direction = getdir(head)
end
- -- for old times sake we we handle strings too
- if direction == "TLT" then
- return lefttoright_code, true
- elseif direction == "TRT" then
- return righttoleft_code, true
+ if direction == "TRT" then
+ return 1, "TRT", true
+ elseif direction == "TLT" then
+ return 0, "TLT", true
end
- -- P2, P3
+ -- P2, P3:
for i=1,size do
local entry = list[i]
local direction = entry.direction
if direction == "r" or direction == "al" then -- and an ?
- return righttoleft_code, true
+ return 1, "TRT", true
elseif direction == "l" then
- return lefttoright_code, true
+ return 0, "TLT", true
end
end
- return lefttoright_code, false
+ return 0, "TLT", false
end
local function resolve_explicit(list,size,baselevel)
@@ -508,7 +499,7 @@ local function resolve_explicit(list,size,baselevel)
end
-- X7
elseif direction == "pdf" then
- if nofstack > 0 then
+ if nofstack < maximum_stack then
local stacktop = stack[nofstack]
level = stacktop[1]
override = stacktop[2]
@@ -517,11 +508,7 @@ local function resolve_explicit(list,size,baselevel)
entry.direction = "bn"
entry.remove = true
elseif trace_directions then
- report_directions("stack underflow at position %a with direction %a",
- i, direction)
- else
- report_directions("stack underflow at position %a with direction %a: %s",
- i, direction, show_list(list,size))
+ report_directions("stack overflow at position %a with direction %a",i,direction)
end
-- X6
else
@@ -531,6 +518,11 @@ local function resolve_explicit(list,size,baselevel)
end
end
end
+-- else
+-- for i=1,size do
+-- list[i].level = baselevel
+-- end
+-- end
-- X8 (reset states and overrides after paragraph)
end
@@ -734,6 +726,33 @@ local function resolve_neutral(list,size,start,limit,orderbefore,orderafter)
end
end
+-- local function resolve_implicit(list,size,start,limit,orderbefore,orderafter)
+-- -- I1
+-- for i=start,limit do
+-- local entry = list[i]
+-- local level = entry.level
+-- if level % 2 ~= 1 then -- not odd(level)
+-- local direction = entry.direction
+-- if direction == "r" then
+-- entry.level = level + 1
+-- elseif direction == "an" or direction == "en" then
+-- entry.level = level + 2
+-- end
+-- end
+-- end
+-- -- I2
+-- for i=start,limit do
+-- local entry = list[i]
+-- local level = entry.level
+-- if level % 2 == 1 then -- odd(level)
+-- local direction = entry.direction
+-- if direction == "l" or direction == "en" or direction == "an" then
+-- entry.level = level + 1
+-- end
+-- end
+-- end
+-- end
+
local function resolve_implicit(list,size,start,limit,orderbefore,orderafter,baselevel)
for i=start,limit do
local entry = list[i]
@@ -833,6 +852,60 @@ local function resolve_levels(list,size,baselevel,analyze_fences)
end
end
+-- local function insert_dir_points(list,size)
+-- -- L2, but no actual reversion is done, we simply annotate where
+-- -- begindir/endddir node will be inserted.
+-- local maxlevel = 0
+-- local finaldir = false
+-- local toggle = true
+-- for i=1,size do
+-- local level = list[i].level
+-- if level > maxlevel then
+-- maxlevel = level
+-- end
+-- end
+-- for level=0,maxlevel do
+-- local started -- = false
+-- local begindir -- = nil
+-- local enddir -- = nil
+-- local prev -- = nil
+-- if toggle then
+-- begindir = "+TLT"
+-- enddir = "-TLT"
+-- toggle = false
+-- else
+-- begindir = "+TRT"
+-- enddir = "-TRT"
+-- toggle = true
+-- end
+-- for i=1,size do
+-- local entry = list[i]
+-- if entry.level >= level then
+-- if not started then
+-- entry.begindir = begindir
+-- started = true
+-- end
+-- else
+-- if started then
+-- prev.enddir = enddir
+-- started = false
+-- end
+-- end
+-- prev = entry
+-- end
+-- -- make sure to close the run at end of line
+-- if started then
+-- finaldir = enddir
+-- end
+-- end
+-- if finaldir then
+-- list[size].enddir = finaldir
+-- end
+-- for i=1,size do
+-- print("<",i,list[i].level,list[i].begindir,list[i].enddir)
+-- end
+-- end
+
local stack = { }
local function insert_dir_points(list,size)
@@ -852,12 +925,12 @@ local function insert_dir_points(list,size)
local enddir -- = nil
local prev -- = nil
if toggle then
- begindir = lefttoright_code
- enddir = lefttoright_code
+ begindir = "+TLT"
+ enddir = "-TLT"
toggle = false
else
- begindir = righttoleft_code
- enddir = righttoleft_code
+ begindir = "+TRT"
+ enddir = "-TRT"
toggle = true
end
for i=1,size do
@@ -896,18 +969,15 @@ local function insert_dir_points(list,size)
if trace_list and n > 1 then
report_directions("unbalanced list")
end
- last.enddir = stack[n]
+ last.enddir = stack[n] == "+TRT" and "-TRT" or "-TLT"
end
end
end
--- We flag nodes that can be skipped when we see them again but because whatever
--- mechanism can injetc dir nodes that then are not flagged, we don't flag dir
--- nodes that we inject here.
-
local function apply_to_list(list,size,head,pardir)
local index = 1
local current = head
+ local done = false
if trace_list then
report_directions("start run")
end
@@ -920,12 +990,7 @@ local function apply_to_list(list,size,head,pardir)
local entry = list[index]
local begindir = entry.begindir
local enddir = entry.enddir
- local p = properties[current]
- if p then
- p.directions = true
- else
- properties[current] = { directions = true }
- end
+ local p = properties[current] if p then p.directions = true else properties[current] = { directions = true } end
if id == glyph_code then
local mirror = entry.mirror
if mirror then
@@ -946,43 +1011,55 @@ local function apply_to_list(list,size,head,pardir)
setcolor(current,direction,false,mirror)
end
elseif id == hlist_code or id == vlist_code then
- setdirection(current,pardir) -- is this really needed?
+ setdir(current,pardir) -- is this really needed?
elseif id == glue_code then
if enddir and getsubtype(current) == parfillskip_code then
-- insert the last enddir before \parfillskip glue
- head = insert_node_before(head,current,new_direction(enddir,true))
+ local d = new_textdir(enddir)
+ local p = properties[d] if p then p.directions = true else properties[d] = { directions = true } end
+ -- setattrlist(d,current)
+ head = insert_node_before(head,current,d)
enddir = false
+ done = true
end
elseif begindir then
- if id == localpar_code and getsubtype(current) == 0 then
+ if id == localpar_code then
-- localpar should always be the 1st node
- head, current = insert_node_after(head,current,new_direction(begindir))
+ local d = new_textdir(begindir)
+ local p = properties[d] if p then p.directions = true else properties[d] = { directions = true } end
+ -- setattrlist(d,current)
+ head, current = insert_node_after(head,current,d)
begindir = nil
+ done = true
end
end
if begindir then
- head = insert_node_before(head,current,new_direction(begindir))
+ local d = new_textdir(begindir)
+ local p = properties[d] if p then p.directions = true else properties[d] = { directions = true } end
+ -- setattrlist(d,current)
+ head = insert_node_before(head,current,d)
+ done = true
end
local skip = entry.skip
if skip and skip > 0 then
for i=1,skip do
current = getnext(current)
- local p = properties[current]
- if p then
- p.directions = true
- else
- properties[current] = { directions = true }
- end
+ local p = properties[current] if p then p.directions = true else properties[current] = { directions = true } end
end
end
if enddir then
- head, current = insert_node_after(head,current,new_direction(enddir,true))
+ local d = new_textdir(enddir)
+ local p = properties[d] if p then p.directions = true else properties[d] = { directions = true } end
+ -- setattrlist(d,current)
+ head, current = insert_node_after(head,current,d)
+ done = true
end
if not entry.remove then
current = getnext(current)
elseif remove_controls then
-- X9
head, current = remove_node(head,current,true)
+ done = true
else
current = getnext(current)
end
@@ -991,7 +1068,7 @@ local function apply_to_list(list,size,head,pardir)
if trace_list then
report_directions("stop run")
end
- return head
+ return head, done
end
-- If needed we can optimize for only_one. There is no need to do anything
@@ -1000,15 +1077,16 @@ end
-- have more than one node. Actually, we only enter this function when we
-- do have a glyph!
-local function process(head,direction,only_one,where)
+local function process(head,direction,only_one)
+ head = tonut(head)
-- for the moment a whole paragraph property
local attr = getattr(head,a_directions)
local analyze_fences = getfences(attr)
--
- local list, size = build_list(head,where)
- local baselevel, dirfound = get_baselevel(head,list,size,direction)
+ local list, size = build_list(head)
+ local baselevel, pardir, dirfound = get_baselevel(head,list,size,direction) -- we always have an inline dir node in context
if trace_details then
- report_directions("analyze: baselevel %a",baselevel == righttoleft_code and "r2l" or "l2r")
+ report_directions("analyze: direction %a, baselevel %a",dirfound and pardir or "unknown",baselevel or 1)
report_directions("before : %s",show_list(list,size,"original"))
end
resolve_explicit(list,size,baselevel)
@@ -1018,12 +1096,8 @@ local function process(head,direction,only_one,where)
report_directions("after : %s",show_list(list,size,"direction"))
report_directions("result : %s",show_done(list,size))
end
- return apply_to_list(list,size,head,baselevel)
+ local head, done = apply_to_list(list,size,head,pardir)
+ return tonode(head), done
end
-local variables = interfaces.variables
-
-directions.installhandler(variables.one, process) -- for old times sake
-directions.installhandler(variables.two, process) -- for old times sake
-directions.installhandler(variables.three, process) -- for old times sake
-directions.installhandler(variables.unicode,process)
+directions.installhandler(interfaces.variables.three,process)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-fkr.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-fkr.lua
index 1fd08526c3a..a1135d0f321 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-fkr.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-fkr.lua
@@ -7,10 +7,12 @@ if not modules then modules = { } end modules ['typo-fkr'] = {
}
local nuts = nodes.nuts
+local tonut = nuts.tonut
local getid = nuts.getid
local getnext = nuts.getnext
+local getchar = nuts.getchar
+local getfont = nuts.getfont
local getattr = nuts.getattr
-local isglyph = nuts.isglyph
local nodecodes = nodes.nodecodes
local glyph_code = nodecodes.glyph
@@ -30,15 +32,20 @@ local a_extrakern = attributes.private("extrafontkern")
typesetters.fontkerns = { }
function typesetters.fontkerns.handler(head)
+ local kepthead = head
+ local head = tonut(head)
local current = head
local lastfont = nil
local lastchar = nil
local lastdata = nil
+ local done = false
while current do
- local char, font = isglyph(current)
- if char then
+ local id = getid(current)
+ if id == glyph_code then
local a = getattr(current,a_extrakern)
if a then
+ local char = getchar(current)
+ local font = getfont(current)
if font ~= lastfont then
if a > 0 and lastchar then
if not lastdata then
@@ -57,6 +64,7 @@ function typesetters.fontkerns.handler(head)
end
if kern ~= 0 then
head, current = insert_before(head,current,new_kern(kern))
+ done = true
end
lastdata = data
else
@@ -69,6 +77,7 @@ function typesetters.fontkerns.handler(head)
local kern = getkernpair(lastdata,lastchar,char)
if kern ~= 0 then
head, current = insert_before(head,current,new_kern(kern))
+ done = true
end
end
lastchar = char
@@ -85,7 +94,7 @@ function typesetters.fontkerns.handler(head)
end
current = getnext(current)
end
- return head
+ return kepthead, done
end
if context then
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-fln.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-fln.lua
index 0489807327c..4fb82ce4499 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-fln.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-fln.lua
@@ -30,6 +30,7 @@ local context = context
local implement = interfaces.implement
local nuts = nodes.nuts
+local tonut = nuts.tonut
local tonode = nuts.tonode
local getnext = nuts.getnext
@@ -37,6 +38,7 @@ local getprev = nuts.getprev
local getboth = nuts.getboth
local setboth = nuts.setboth
local getid = nuts.getid
+local getsubtype = nuts.getsubtype
local getwidth = nuts.getwidth
local getlist = nuts.getlist
local setlist = nuts.setlist
@@ -56,16 +58,14 @@ local glue_code = nodecodes.glue
local spaceskip_code = nodes.gluecodes.spaceskip
-local nextglyph = nuts.traversers.glyph
-local nextdisc = nuts.traversers.disc
-
+local traverse_id = nuts.traverse_id
local flush_node_list = nuts.flush_list
local flush_node = nuts.flush_node
local copy_node_list = nuts.copy_list
local insert_node_before = nuts.insert_before
local insert_node_after = nuts.insert_after
local remove_node = nuts.remove
-local getdimensions = nuts.dimensions
+local list_dimensions = nuts.dimensions
local hpack_node_list = nuts.hpack
local nodepool = nuts.pool
@@ -136,7 +136,7 @@ actions[v_line] = function(head,setting)
local linebreaks = { }
local function set(head)
- for g in nextglyph, head do
+ for g in traverse_id(glyph_code,head) do
if dynamic > 0 then
setattr(g,0,dynamic)
end
@@ -146,7 +146,7 @@ actions[v_line] = function(head,setting)
set(temp)
- for g in nextdisc, temp do
+ for g in traverse_id(disc_code,temp) do
local pre, post, replace = getdisc(g)
if pre then
set(pre)
@@ -173,13 +173,17 @@ actions[v_line] = function(head,setting)
local function list_dimensions(list,start)
local temp = copy_node_list(list,start)
+ temp = tonode(temp)
temp = nodes.handlers.characters(temp)
temp = nodes.injections.handler(temp)
-- temp = typesetters.fontkerns.handler(temp) -- maybe when enabled
- -- nodes.handlers.protectglyphs(temp) -- not needed as we discard
+ -- nodes.handlers.protectglyphs(temp) -- not needed as we discard
-- temp = typesetters.spacings.handler(temp) -- maybe when enabled
-- temp = typesetters.kerns.handler(temp) -- maybe when enabled
- local width = getdimensions(temp)
+ temp = tonut(temp)
+ temp = hpack_node_list(temp)
+ local width = getwidth(temp)
+ flush_node_list(temp)
return width
end
@@ -202,7 +206,7 @@ actions[v_line] = function(head,setting)
while start do
local id = getid(start)
if id == glyph_code then
- -- go on
+ n = n + 1
elseif id == disc_code then
-- this could be an option
n = n + 1
@@ -214,8 +218,7 @@ actions[v_line] = function(head,setting)
end
elseif id == kern_code then -- todo: fontkern
-- this could be an option
- elseif id == glue_code then
- n = n + 1
+ elseif n > 0 then
if try() then
break
end
@@ -252,6 +255,7 @@ actions[v_line] = function(head,setting)
local id = getid(start)
local ok = false
if id == glyph_code then
+ n = n + 1
update(start)
elseif id == disc_code then
n = n + 1
@@ -260,7 +264,7 @@ actions[v_line] = function(head,setting)
if linebreak == n then
local p, n = getboth(start)
if pre then
- for current in nextglyph, pre do
+ for current in traverse_id(glyph_code,pre) do
update(current)
end
setlink(pretail,n)
@@ -280,7 +284,7 @@ actions[v_line] = function(head,setting)
else
local p, n = getboth(start)
if replace then
- for current in nextglyph, replace do
+ for current in traverse_id(glyph_code,replace) do
update(current)
end
setlink(replacetail,n)
@@ -295,30 +299,22 @@ actions[v_line] = function(head,setting)
setdisc(disc,pre,post,replace)
flush_node(disc)
elseif id == glue_code then
- n = n + 1
- if linebreak ~= n then
- head = insert_node_before(head,start,newpenalty(10000)) -- nobreak
- end
+ head = insert_node_before(head,start,newpenalty(10000)) -- nobreak
end
- local next = getnext(start)
if linebreak == n then
- if start ~= head then
- local where = id == glue_code and getprev(start) or start
- if trace_firstlines then
- head, where = insert_node_after(head,where,newpenalty(10000)) -- nobreak
- head, where = insert_node_after(head,where,newkern(-65536))
- head, where = insert_node_after(head,where,tracerrule(65536,4*65536,2*65536,"darkblue"))
- end
- head, where = insert_node_after(head,where,newpenalty(-10000)) -- break
+ if trace_firstlines then
+ head, start = insert_node_after(head,start,newpenalty(10000)) -- nobreak
+ head, start = insert_node_after(head,start,newkern(-65536))
+ head, start = insert_node_after(head,start,tracerrule(65536,4*65536,2*65536,"darkblue"))
end
- start = next
+ head, start = insert_node_after(head,start,newpenalty(-10000)) -- break
break
end
- start = next
+ start = getnext(start)
end
end
- return head
+ return head, true
end
actions[v_word] = function(head,setting)
@@ -363,12 +359,13 @@ actions[v_word] = function(head,setting)
end
start = getnext(start)
end
- return head
+ return head, true
end
actions[v_default] = actions[v_line]
function firstlines.handler(head)
+ head = tonut(head)
local start = head
local attr = nil
while start do
@@ -391,10 +388,11 @@ function firstlines.handler(head)
if trace_firstlines then
report_firstlines("processing firstlines, alternative %a",alternative)
end
- return action(head,settings)
+ local head, done = action(head,settings)
+ return tonode(head), done
end
end
- return head
+ return tonode(head), false
end
-- goodie
@@ -403,7 +401,7 @@ local function applytofirstcharacter(box,what)
local tbox = getbox(box) -- assumes hlist
local list = getlist(tbox)
local done = nil
- for n in nextglyph, list do
+ for n in traverse_id(glyph_code,list) do
list = remove_node(list,n)
done = n
break
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-fln.mkiv b/Master/texmf-dist/tex/context/base/mkiv/typo-fln.mkiv
index 533c197cd10..37348be2940 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-fln.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-fln.mkiv
@@ -91,7 +91,7 @@
\kern\zeropoint % we need a node
% \hskip\zeropoint\s!plus\emwidth\relax % can be an option
\endgroup
- \glet\typo_firstline_handle\relax}
+ \globallet\typo_firstline_handle\relax}
\let\typo_firstline_handle\relax
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-itc.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-itc.lua
index 2683eecc3e1..328bf14067e 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-itc.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-itc.lua
@@ -29,9 +29,13 @@ local enableaction = nodes.tasks.enableaction
local nuts = nodes.nuts
local nodepool = nuts.pool
+local tonode = nuts.tonode
+local tonut = nuts.tonut
+
local getprev = nuts.getprev
local getnext = nuts.getnext
local getid = nuts.getid
+local getfont = nuts.getfont
local getchar = nuts.getchar
local getdisc = nuts.getdisc
local getattr = nuts.getattr
@@ -124,22 +128,14 @@ local function okay(data,current,font,prevchar,previtalic,char,what)
return false
end
if threshold then
- -- if getid(current) == glyph_code then
- while current and getid(current) ~= glyph_code do
- current = getprev(current)
- end
- if current then
- local ht = getheight(current)
- local ex = exheights[font]
- local th = threshold * ex
- if ht <= th then
- if trace_italics then
- report_italics("ignoring correction between %s italic %C and regular %C, height %p less than threshold %p",prevchar,what,char,ht,th)
- end
- return false
+ local ht = getheight(current)
+ local ex = exheights[font]
+ local th = threshold * ex
+ if ht <= th then
+ if trace_italics then
+ report_italics("ignoring correction between %s italic %C and regular %C, height %p less than threshold %p",prevchar,what,char,ht,th)
end
- else
- -- maybe backtrack to glyph
+ return false
end
end
if trace_italics then
@@ -181,7 +177,7 @@ local textokay = false
local enablemath = false
local enabletext = false
-local function domath(head,current)
+local function domath(head,current, done)
current = end_of_math(current)
local next = getnext(current)
if next then
@@ -204,7 +200,8 @@ local function domath(head,current)
a = a + 100
end
local i = getkern(kern)
- local c, f = isglyph(glyph)
+ local f = getfont(glyph)
+ local c = getchar(glyph)
if getheight(next) < 1.25*exheights[f] then
if i == 0 then
if trace_italics then
@@ -215,6 +212,7 @@ local function domath(head,current)
report_italics("%s italic between math %C and punctuation %C","removing",i,c,char)
end
setkern(kern,0) -- or maybe a small value or half the ic
+ done = true
end
elseif i == 0 then
local d = chardata[f][c]
@@ -228,6 +226,7 @@ local function domath(head,current)
if trace_italics then
report_italics("%s italic %p between math %C and punctuation %C","setting",i,c,char)
end
+ done = true
end
elseif trace_italics then
report_italics("%s italic %p between math %C and punctuation %C","keeping",k,c,char)
@@ -252,31 +251,34 @@ local function domath(head,current)
report_italics("%s italic %p between math %C and non punctuation %C","adding",a,getchar(glyph),char)
end
insert_node_after(head,glyph,correction_kern(a,glyph))
+ done = true
end
end
end
end
end
end
- return current
+ return current, done
end
local function mathhandler(head)
- local current = head
+ local nuthead = tonut(head)
+ local current = nuthead
+ local done = false
while current do
if getid(current) == math_code then
- current = domath(head,current)
+ current, done = domath(nuthead,current,done)
end
current = getnext(current)
end
- return head
+ return head, done
end
local function texthandler(head)
local prev = nil
local prevchar = nil
- local prevhead = head
+ local prevhead = tonut(head)
local previtalic = 0
local previnserted = nil
@@ -298,18 +300,20 @@ local function texthandler(head)
local replaceinserted = nil
local current = prevhead
+ local done = false
local lastfont = nil
local lastattr = nil
while current do
local char, id = isglyph(current)
if char then
- local font = id
+ local font = getfont(current)
local data = italicsdata[font]
if font ~= lastfont then
if previtalic ~= 0 then
if okay(data,current,font,prevchar,previtalic,char,"glyph") then
insert_node_after(prevhead,prev,correction_kern(previtalic,current))
+ done = true
end
elseif previnserted and data then
if trace_italics then
@@ -321,6 +325,7 @@ local function texthandler(head)
if replaceitalic ~= 0 then
if okay(data,replace,font,replacechar,replaceitalic,char,"replace") then
insert_node_after(replacehead,replace,correction_kern(replaceitalic,current))
+ done = true
end
replaceitalic = 0
elseif replaceinserted and data then
@@ -333,6 +338,7 @@ local function texthandler(head)
if postitalic ~= 0 then
if okay(data,post,font,postchar,postitalic,char,"post") then
insert_node_after(posthead,post,correction_kern(postitalic,current))
+ done = true
end
postitalic = 0
elseif postinserted and data then
@@ -389,7 +395,7 @@ local function texthandler(head)
while current do
local char, id = isglyph(current)
if char then
- local font = id
+ local font = getfont(current)
local data = italicsdata[font]
if data then
local attr = forcedvariant or getattr(current,a_italics)
@@ -425,7 +431,7 @@ local function texthandler(head)
while current do
local char, id = isglyph(current)
if char then
- local font = id
+ local font = getfont(current)
local data = italicsdata[font]
if data then
local attr = forcedvariant or getattr(current,a_italics)
@@ -473,6 +479,7 @@ local function texthandler(head)
end
previnserted = correction_glue(previtalic,current) -- maybe just add ? else problem with penalties
previtalic = 0
+ done = true
insert_node_after(prevhead,prev,previnserted)
else
if replaceitalic ~= 0 then
@@ -481,6 +488,7 @@ local function texthandler(head)
end
replaceinserted = correction_kern(replaceitalic,current) -- needs to be a kern
replaceitalic = 0
+ done = true
insert_node_after(replacehead,replace,replaceinserted)
end
if postitalic ~= 0 then
@@ -489,6 +497,7 @@ local function texthandler(head)
end
postinserted = correction_kern(postitalic,current) -- needs to be a kern
postitalic = 0
+ done = true
insert_node_after(posthead,post,postinserted)
end
end
@@ -501,7 +510,7 @@ local function texthandler(head)
postinserted = nil
postitalic = 0
if mathokay then
- current = domath(head,current)
+ current, done = domath(head,current,done)
else
current = end_of_math(current)
end
@@ -517,6 +526,7 @@ local function texthandler(head)
replaceitalic = 0
postinserted = nil
postitalic = 0
+ done = true
else
if replaceitalic ~= 0 then
if trace_italics then
@@ -529,6 +539,7 @@ local function texthandler(head)
replaceitalic = 0
postinserted = nil
postitalic = 0
+ done = true
end
if postitalic ~= 0 then
if trace_italics then
@@ -541,6 +552,7 @@ local function texthandler(head)
replaceitalic = 0
postinserted = nil
postitalic = 0
+ done = true
end
end
end
@@ -552,22 +564,25 @@ local function texthandler(head)
report_italics("inserting %p between %s italic %C and end of list",previtalic,"glyph",prevchar)
end
insert_node_after(prevhead,prev,correction_kern(previtalic,current))
+ done = true
else
if replaceitalic ~= 0 then
if trace_italics then
report_italics("inserting %p between %s italic %C and end of list",replaceitalic,"replace",replacechar)
end
insert_node_after(replacehead,replace,correction_kern(replaceitalic,current))
+ done = true
end
if postitalic ~= 0 then
if trace_italics then
report_italics("inserting %p between %s italic %C and end of list",postitalic,"post",postchar)
end
insert_node_after(posthead,post,correction_kern(postitalic,current))
+ done = true
end
end
end
- return head
+ return head, done
end
function italics.handler(head)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-krn.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-krn.lua
index c26004a49df..71d9736a44b 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-krn.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-krn.lua
@@ -21,6 +21,9 @@ local enableaction = nodes.tasks.enableaction
local nuts = nodes.nuts
local nodepool = nuts.pool
+local tonode = nuts.tonode
+local tonut = nuts.tonut
+
-- check what is used
local find_node_tail = nuts.tail
@@ -29,7 +32,6 @@ local insert_node_before = nuts.insert_before
local insert_node_after = nuts.insert_after
local end_of_math = nuts.end_of_math
local use_components = nuts.use_components
-local copy_node = nuts.copy
local getnext = nuts.getnext
local getprev = nuts.getprev
@@ -41,12 +43,10 @@ local getdisc = nuts.getdisc
local getglue = nuts.getglue
local getkern = nuts.getkern
local isglyph = nuts.isglyph
-local setchar = nuts.setchar
local setfield = nuts.setfield
local getattr = nuts.getattr
local takeattr = nuts.takeattr
-local setattr = nuts.setattr
local setlink = nuts.setlink
local setdisc = nuts.setdisc
local setglue = nuts.setglue
@@ -62,7 +62,7 @@ local new_glue = nodepool.glue
local nodecodes = nodes.nodecodes
local kerncodes = nodes.kerncodes
-local gluecodes = nodes.gluecodes
+local skipcodes = nodes.skipcodes
local disccodes = nodes.disccodes
local listcodes = nodes.listcodes
@@ -74,18 +74,17 @@ local hlist_code = nodecodes.hlist
local vlist_code = nodecodes.vlist
local math_code = nodecodes.math
-local boxlist_code = listcodes.box
-local unknownlist_code = listcodes.unknown
+local box_list_code = listcodes.box
+local user_list_code = listcodes.unknown
-local discretionarydisc_code = disccodes.discretionary
-local automaticdisc_code = disccodes.automatic
+local discretionary_code = disccodes.discretionary
+local automatic_code = disccodes.automatic
local fontkern_code = kerncodes.fontkern
local userkern_code = kerncodes.userkern
-
-local userskip_code = gluecodes.userskip
-local spaceskip_code = gluecodes.spaceskip
-local xspaceskip_code = gluecodes.xspaceskip
+local userskip_code = skipcodes.userskip
+local spaceskip_code = skipcodes.spaceskip
+local xspaceskip_code = skipcodes.xspaceskip
local fonthashes = fonts.hashes
local chardata = fonthashes.characters
@@ -133,6 +132,9 @@ local factors = kerns.factors
local gluefactor = 4 -- assumes quad = .5 enspace
+kerns.keepligature = false -- just for fun (todo: control setting with key/value)
+kerns.keeptogether = false -- just for fun (todo: control setting with key/value)
+
-- red : kept by dynamic feature
-- green : kept by static feature
-- blue : keep by goodie
@@ -255,7 +257,7 @@ end
local function inject_end(boundary,next,keeptogether,krn,ok)
local tail = find_node_tail(boundary)
- local char, id = isglyph(tail)
+ local char, id = getid(tail)
if id == kern_code then
if getsubtype(tail) == fontkern_code then
local inject = true
@@ -299,7 +301,7 @@ local function process_list(head,keeptogether,krn,font,okay)
local char, id = isglyph(start)
if char then
if not font then
- font = id -- getfont(start)
+ font = getfont(start)
mark = markdata[font]
kern = quaddata[font]*krn
end
@@ -352,223 +354,19 @@ local function closest_bound(b,get)
while b do
if not getattr(b,a_kerns) then
break
+ elseif getid(b) == glyph_code then
+ return b, getfont(b)
else
- local c, f = isglyph(b)
- if c then
- return b, f
- else
- b = get(b)
- end
+ b = get(b)
end
end
end
end
--- function kerns.handler(head)
--- local start = head
--- local lastfont = nil
--- local keepligature = kerns.keepligature
--- local keeptogether = kerns.keeptogether
--- local fillup = false
--- local bound = false
--- local prev = nil
--- local previd = nil
--- local prevchar = nil
--- local prevfont = nil
--- local prevmark = nil
--- while start do
--- -- fontkerns don't get the attribute but they always sit between glyphs so
--- -- are always valid bound .. disc nodes also somtimes don't get them
--- local id = getid(start)
--- local attr = takeattr(start,a_kerns)
--- if attr and attr > 0 then
--- local krn = mapping[attr]
--- if krn == v_max then
--- krn = .25
--- fillup = true
--- else
--- fillup = false
--- end
--- if not krn or krn == 0 then
--- bound = false
--- elseif id == glyph_code then
--- if keepligature and keepligature(start) then
--- -- keep 'm
--- else
--- -- we could use the subtype ligature but that's also a call
--- -- todo: check tounicode and use that information to split
--- head, start = use_components(head,start)
--- end
--- local char, font = isglyph(start)
--- local mark = markdata[font]
--- if not bound then
--- -- yet
--- elseif mark[char] then
--- -- skip
--- elseif previd == kern_code then
--- if getsubtype(prev) == fontkern_code then
--- local inject = true
--- if keeptogether then
--- if previd == glyph_code and keeptogether(prev,start) then
--- inject = false
--- end
--- end
--- if inject then
--- -- not yet ok, as injected kerns can be overlays (from node-inj.lua)
--- setkern(prev,getkern(prev) + quaddata[font]*krn,userkern_code)
--- end
--- end
--- elseif previd == glyph_code then
--- if prevfont == font then
--- if keeptogether and keeptogether(prev,start) then
--- -- keep 'm
--- else
--- local data = chardata[font][prevchar]
--- local kerns = data and data.kerns
--- local kern = (kerns and kerns[char] or 0) + quaddata[font]*krn
--- insert_node_before(head,start,kern_injector(fillup,kern))
--- end
--- else
--- insert_node_before(head,start,kern_injector(fillup,quaddata[font]*krn))
--- end
--- end
--- prev = start
--- prevchar = char
--- prevfont = font
--- prevmark = mark
--- previd = id
--- bound = true
--- elseif id == disc_code then
--- local prev, next, pglyph, nglyph -- delayed till needed
--- local subtype = getsubtype(start)
--- -- if subtype == automaticdisc_code then
--- -- -- this is kind of special, as we have already injected the
--- -- -- previous kern
--- -- local prev = getprev(start)
--- -- local pglyph = prev and getid(prev) == glyph_code
--- -- languages.expand(start,pglyph and prev)
--- -- -- we can have a different start now
--- -- elseif subtype ~= discretionarydisc_code then
--- -- prev = getprev(start)
--- -- pglyph = prev and getid(prev) == glyph_code
--- -- languages.expand(start,pglyph and prev)
--- -- end
--- local pre, post, replace = getdisc(start)
--- local indeed = false
--- if pre then
--- local okay = false
--- if not prev then
--- prev = getprev(start)
--- pglyph = prev and getid(prev) == glyph_code
--- end
--- if pglyph then
--- pre, okay = inject_begin(pre,prev,keeptogether,krn,okay)
--- end
--- pre, okay = process_list(pre,keeptogether,krn,false,okay)
--- if okay then
--- indeed = true
--- end
--- end
--- if post then
--- local okay = false
--- if not next then
--- next = getnext(start)
--- nglyph = next and getid(next) == glyph_code
--- end
--- if nglyph then
--- post, okay = inject_end(post,next,keeptogether,krn,okay)
--- end
--- post, okay = process_list(post,keeptogether,krn,false,okay)
--- if okay then
--- indeed = true
--- end
--- end
--- if replace then
--- local okay = false
--- if not prev then
--- prev = getprev(start)
--- pglyph = prev and getid(prev) == glyph_code
--- end
--- if pglyph then
--- replace, okay = inject_begin(replace,prev,keeptogether,krn,okay)
--- end
--- if not next then
--- next = getnext(start)
--- nglyph = next and getid(next) == glyph_code
--- end
--- if nglyph then
--- replace, okay = inject_end(replace,next,keeptogether,krn,okay)
--- end
--- replace, okay = process_list(replace,keeptogether,krn,false,okay)
--- if okay then
--- indeed = true
--- end
--- elseif prevfont then
--- replace = new_kern(quaddata[prevfont]*krn)
--- indeed = true
--- end
--- if indeed then
--- setdisc(start,pre,post,replace)
--- end
--- bound = false
--- elseif id == kern_code then
--- bound = getsubtype(start) == fontkern_code
--- prev = start
--- previd = id
--- elseif id == glue_code then
--- local subtype = getsubtype(start)
--- if subtype == userskip_code or subtype == xspaceskip_code or subtype == spaceskip_code then
--- local width, stretch, shrink, stretch_order, shrink_order = getglue(start)
--- if width > 0 then
--- local w = width + gluefactor * width * krn
--- stretch = stretch * w / width
--- shrink = shrink * w / width
--- if fillup then
--- stretch = 2 * stretch
--- shrink = 2 * shrink
--- stretch_order = 1
--- -- shrink_order = 1 ?
--- end
--- setglue(start,w,stretch,shrink,stretch_order,shrink_order)
--- end
--- end
--- bound = false
--- elseif id == hlist_code or id == vlist_code then
--- local subtype = getsubtype(start)
--- if subtype == unknownlist_code or subtype == boxlist_code then
--- -- special case
--- local b, f = closest_bound(start,getprev)
--- if b then
--- insert_node_before(head,start,kern_injector(fillup,quaddata[f]*krn))
--- end
--- local b, f = closest_bound(start,getnext)
--- if b then
--- insert_node_after(head,start,kern_injector(fillup,quaddata[f]*krn))
--- end
--- end
--- bound = false
--- elseif id == math_code then
--- start = end_of_math(start)
--- bound = false
--- end
--- if start then
--- start = getnext(start)
--- end
--- elseif id == kern_code then
--- bound = getsubtype(start) == fontkern_code
--- prev = start
--- previd = id
--- start = getnext(start)
--- else
--- bound = false
--- start = getnext(start)
--- end
--- end
--- return head
--- end
-
function kerns.handler(head)
+ local head = tonut(head)
local start = head
+ local done = false
local lastfont = nil
local keepligature = kerns.keepligature
local keeptogether = kerns.keeptogether
@@ -581,10 +379,10 @@ function kerns.handler(head)
local prevmark = nil
while start do
-- fontkerns don't get the attribute but they always sit between glyphs so
- -- are always valid bound .. disc nodes also sometimes don't get them
+ -- are always valid bound .. disc nodes also somtimes don't get them
+ local id = getid(start)
local attr = takeattr(start,a_kerns)
if attr and attr > 0 then
- local char, id = isglyph(start)
local krn = mapping[attr]
if krn == v_max then
krn = .25
@@ -594,34 +392,17 @@ function kerns.handler(head)
end
if not krn or krn == 0 then
bound = false
- elseif char then -- id == glyph_code
- local font = id -- more readable
- local mark = markdata[font]
+ elseif id == glyph_code then
if keepligature and keepligature(start) then
-- keep 'm
else
- -- head, start = use_components(head,start)
- -- beware, these are not kerned so we mighty need a kern only pass
- -- maybe some day .. anyway, one should disable ligaturing
- local data = chardata[font][char]
- if data then
- local unicode = data.unicode -- can be cached
- if type(unicode) == "table" then
- char = unicode[1]
- local s = start
- setchar(s,char)
- for i=2,#unicode do
- local n = copy_node(s)
- if i == 2 then
- setattr(n,a_kerns,attr) -- we took away the attr
- end
- setchar(n,unicode[i])
- insert_node_after(head,s,n)
- s = n
- end
- end
- end
+ -- we could use the subtype ligature but that's also a call
+ -- todo: check tounicode and use that information to split
+ head, start = use_components(head,start)
end
+ local char = getchar(start)
+ local font = getfont(start)
+ local mark = markdata[font]
if not bound then
-- yet
elseif mark[char] then
@@ -637,6 +418,7 @@ function kerns.handler(head)
if inject then
-- not yet ok, as injected kerns can be overlays (from node-inj.lua)
setkern(prev,getkern(prev) + quaddata[font]*krn,userkern_code)
+ done = true
end
end
elseif previd == glyph_code then
@@ -644,33 +426,34 @@ function kerns.handler(head)
if keeptogether and keeptogether(prev,start) then
-- keep 'm
else
- -- hm, only basemode ... will go away ...
local data = chardata[font][prevchar]
local kerns = data and data.kerns
local kern = (kerns and kerns[char] or 0) + quaddata[font]*krn
insert_node_before(head,start,kern_injector(fillup,kern))
+ done = true
end
else
insert_node_before(head,start,kern_injector(fillup,quaddata[font]*krn))
+ done = true
end
end
prev = start
prevchar = char
prevfont = font
prevmark = mark
- previd = glyph_code -- id
+ previd = id
bound = true
elseif id == disc_code then
local prev, next, pglyph, nglyph -- delayed till needed
local subtype = getsubtype(start)
- -- if subtype == automaticdisc_code then
+ -- if subtype == automatic_code then
-- -- this is kind of special, as we have already injected the
-- -- previous kern
-- local prev = getprev(start)
-- local pglyph = prev and getid(prev) == glyph_code
-- languages.expand(start,pglyph and prev)
-- -- we can have a different start now
- -- elseif subtype ~= discretionarydisc_code then
+ -- elseif subtype ~= discretionary_code then
-- prev = getprev(start)
-- pglyph = prev and getid(prev) == glyph_code
-- languages.expand(start,pglyph and prev)
@@ -731,6 +514,7 @@ function kerns.handler(head)
end
if indeed then
setdisc(start,pre,post,replace)
+ done = true
end
bound = false
elseif id == kern_code then
@@ -752,20 +536,23 @@ function kerns.handler(head)
-- shrink_order = 1 ?
end
setglue(start,w,stretch,shrink,stretch_order,shrink_order)
+ done = true
end
end
bound = false
elseif id == hlist_code or id == vlist_code then
local subtype = getsubtype(start)
- if subtype == unknownlist_code or subtype == boxlist_code then
+ if subtype == user_list_code or subtype == box_list_code then
-- special case
local b, f = closest_bound(start,getprev)
if b then
insert_node_before(head,start,kern_injector(fillup,quaddata[f]*krn))
+ done = true
end
local b, f = closest_bound(start,getnext)
if b then
insert_node_after(head,start,kern_injector(fillup,quaddata[f]*krn))
+ done = true
end
end
bound = false
@@ -776,20 +563,17 @@ function kerns.handler(head)
if start then
start = getnext(start)
end
+ elseif id == kern_code then
+ bound = getsubtype(start) == fontkern_code
+ prev = start
+ previd = id
+ start = getnext(start)
else
- local id = getid(start)
- if id == kern_code then
- bound = getsubtype(start) == fontkern_code
- prev = start
- previd = id
- start = getnext(start)
- else
- bound = false
- start = getnext(start)
- end
+ bound = false
+ start = getnext(start)
end
end
- return head
+ return tonode(head), done
end
local enabled = false
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-lin.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-lin.lua
index 8393ea65b34..ebf748a8294 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-lin.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-lin.lua
@@ -64,7 +64,7 @@ local listcodes = nodes.listcodes
local hlist_code = nodecodes.hlist
local glue_code = nodecodes.glue
local kern_code = nodecodes.kern
-local linelist_code = listcodes.line
+local line_code = listcodes.line
----- localpar_code = nodecodes.localpar
local leftskip_code = gluecodes.leftskip
local rightskip_code = gluecodes.rightskip
@@ -73,7 +73,7 @@ local parfillskip_code = gluecodes.parfillskip
local tonut = nodes.tonut
local tonode = nodes.tonode
-local nexthlist = nuts.traversers.hlist
+local traverse_id = nuts.traverse_id
local insert_before = nuts.insert_before
local insert_after = nuts.insert_after
local find_tail = nuts.tail
@@ -90,7 +90,7 @@ local getboth = nuts.getboth
local setlink = nuts.setlink
local setkern = nuts.setkern
local getkern = nuts.getkern
-local getdirection = nuts.getdirection
+local getdir = nuts.getdir
local getshift = nuts.getshift
local setshift = nuts.setshift
local getwidth = nuts.getwidth
@@ -109,8 +109,6 @@ local new_hlist = nodepool.hlist
local new_rule = nodepool.rule
local new_glue = nodepool.glue
-local righttoleft_code = nodes.dirvalues.righttoleft
-
local texgetcount = tex.getcount
local texgetglue = tex.getglue
local setmetatableindex = table.setmetatableindex
@@ -129,12 +127,22 @@ local noflines = 0
-- This is the third version, a mix between immediate (prestice lines) and delayed
-- as we don't want anchors that are not used.
+-- if reverse then delta = - delta end
+-- head = insert_before(head,head,nodepool.textdir("-TLT"))
+-- ....
+-- head = insert_before(head,head,nodepool.textdir("TLT"))
+
+-- todo: figure out metatable mess ... when we copy we also need to copy
+-- anchors ... use rawgets
+
+-- problem: what if a box is copied ... we could check an attribute
+
local function finalize(prop,key) -- delayed calculations
local line = prop.line
local hsize = prop.hsize
local width = prop.width
local shift = getshift(line) -- dangerous as it can be vertical as well
- local reverse = getdirection(line) == righttoleft_code or false
+ local reverse = getdir(line) == "TRT" or false
local pack = new_hlist()
local head = getlist(line)
local delta = 0
@@ -240,47 +248,49 @@ function paragraphs.normalize(head,islocal)
return head, false
end
-- this can become a separate handler but it makes sense to integrate it here
- local mode = texgetcount("parfillleftmode")
- if mode > 0 then
- local l_width, l_stretch, l_shrink = texgetglue("parfillleftskip")
- if l_width ~= 0 or l_stretch ~= 0 or l_shrink ~= 0 then
- local last = nil -- a nut
- local done = mode == 2 -- false
- for line, subtype in nexthlist, head do
- if subtype == linelist_code and not getprop(line,"line") then
- if done then
- last = line
- else
- done = true
- end
+ local l_width, l_stretch, l_shrink = texgetglue("parfillleftskip")
+ if l_width ~= 0 or l_stretch ~= 0 or l_shrink ~= 0 then
+ local last = nil -- a nut
+ local done = false
+ for line in traverse_id(hlist_code,tonut(head)) do
+ if getsubtype(line) == line_code and not getprop(line,"line") then
+ if done then
+ last = line
+ else
+ done = true
end
end
- if last then -- only if we have more than one line
- local head = getlist(last)
- local current = head
+ end
+ if last then -- only if we have more than one line
+ local head = getlist(last)
+ local current = head
+ if current then
+ if getid(current) == glue_code and getsubtype(current,leftskip_code) then
+ current = getnext(current)
+ end
if current then
- if getid(current) == glue_code and getsubtype(current,leftskip_code) then
- current = getnext(current)
- end
- if current then
- head, current = insert_before(head,current,new_glue(l_width,l_stretch,l_shrink))
- if head == current then
- setlist(last,head)
- end
- -- can be a 'rehpack(h )'
- rehpack(last)
+ head, current = insert_before(head,current,new_glue(l_width,l_stretch,l_shrink))
+ if head == current then
+ setlist(last,head)
end
+ -- can be a 'rehpack(h )'
+ rehpack(last)
end
end
end
end
-- normalizer
- for line, subtype in nexthlist, head do
- if subtype == linelist_code and not getprop(line,"line") then
+ for line in traverse_id(hlist_code,tonut(head)) do
+ if getsubtype(line) == line_code and not getprop(line,"line") then
normalize(line)
+ if done then
+ last = line
+ else
+ done = true
+ end
end
end
- return head, true -- true is obsolete
+ return head, true
end
-- print(nodes.idstostring(head))
@@ -408,17 +418,12 @@ function paragraphs.moveinline(n,blob,dx,dy)
end
end
-local latelua = nodepool.latelua
-local setposition = jobpositions.setspec
-local t_anchor = { x = true, c = true } -- needs checking
+local lateluafunction = nodepool.lateluafunction
+local setposition = job.positions.set
+local t_anchor = { x = true, c = true }
local function setanchor(h_anchor)
- return latelua {
- action = setposition,
- name = "md:h",
- index = h_anchor,
- value = t_anchor, -- really shared ?
- }
+ return lateluafunction(function() setposition("md:h",h_anchor,t_anchor) end)
end
function paragraphs.calculatedelta(n,width,delta,atleft,islocal,followshape,area)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-mar.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-mar.lua
index f8665e0b061..bc9c408c19f 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-mar.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-mar.lua
@@ -62,11 +62,13 @@ local nuts = nodes.nuts
local nodepool = nuts.pool
local tonode = nuts.tonode
+local tonut = nuts.tonut
local hpack_nodes = nuts.hpack
local traverse_id = nuts.traverse_id
local flush_node_list = nuts.flush_list
+local getfield = nuts.getfield
local getnext = nuts.getnext
local getprev = nuts.getprev
local getid = nuts.getid
@@ -82,9 +84,6 @@ local setshift = nuts.setshift
local getwidth = nuts.getwidth
local setwidth = nuts.setwidth
local getheight = nuts.getheight
-local getprop = nuts.getprop
-
-local setattrlist = nuts.setattrlist
local getbox = nuts.getbox
local takebox = nuts.takebox
@@ -94,6 +93,7 @@ local getprop = nuts.getprop
local nodecodes = nodes.nodecodes
local listcodes = nodes.listcodes
+local gluecodes = nodes.gluecodes
local whatsitcodes = nodes.whatsitcodes
local hlist_code = nodecodes.hlist
@@ -103,17 +103,17 @@ local userdefined_code = whatsitcodes.userdefined
local nodepool = nuts.pool
-local new_usernode = nodepool.usernode
+local new_usernumber = nodepool.usernumber
local new_hlist = nodepool.hlist
-local latelua = nodepool.latelua
+local lateluafunction = nodepool.lateluafunction
local texgetdimen = tex.getdimen
local texgetcount = tex.getcount
local texget = tex.get
local isleftpage = layouts.status.isleftpage
-local registertogether = builders.paragraphs.registertogether
+local registertogether = builders.paragraphs.registertogether -- tonode
local paragraphs = typesetters.paragraphs
local addtoline = paragraphs.addtoline
@@ -299,9 +299,7 @@ function margins.save(t)
--
-- t.realpageno = texgetcount("realpageno")
if inline then
- local n = new_usernode(inline_mark,nofsaved)
- setattrlist(n,true)
- context(tonode(n)) -- or use a normal node
+ context(tonode(new_usernumber(inline_mark,nofsaved))) -- or use a normal node
store[nofsaved] = t -- no insert
nofinlined = nofinlined + 1
else
@@ -450,9 +448,8 @@ end
-- anchors are only set for lines that have a note
-local function sa(specification) -- maybe l/r keys ipv left/right keys
- local tag = specification.tag
- local p = cache[tag]
+local function sa(tag) -- maybe l/r keys ipv left/right keys
+ local p = cache[tag]
if p then
if trace_marginstack then
report_margindata("updating anchor %a",tag)
@@ -465,13 +462,11 @@ local function sa(specification) -- maybe l/r keys ipv left/right keys
end
local function setanchor(v_anchor) -- freezes the global here
- return latelua { action = sa, tag = v_anchor }
+ return lateluafunction(function() sa(v_anchor) end)
end
-local function aa(specification) -- maybe l/r keys ipv left/right keys
- local tag = specification.tag
- local n = specification.n
- local p = jobpositions.gettobesaved('md:v',tag)
+local function aa(tag,n) -- maybe l/r keys ipv left/right keys
+ local p = jobpositions.gettobesaved('md:v',tag)
if p then
if trace_marginstack then
report_margindata("updating injected %a",tag)
@@ -488,7 +483,7 @@ local function aa(specification) -- maybe l/r keys ipv left/right keys
end
local function addtoanchor(v_anchor,n) -- freezes the global here
- return latelua { action = aa, tag = v_anchor, n = n }
+ return lateluafunction(function() aa(v_anchor,n) end)
end
local function markovershoot(current) -- todo: alleen als offset > line
@@ -722,8 +717,8 @@ local function flushinline(parent,head)
while current and nofinlined > 0 do
local id = getid(current)
if id == whatsit_code then
- if getsubtype(current) == userdefined_code and getprop(current,"id") == inline_mark then
- local n = getprop(current,"data")
+ if getsubtype(current) == userdefined_code and getfield(current,"user_id") == inline_mark then
+ local n = getfield(current,"value")
local candidate = inlinestore[n]
if candidate then -- no vpack, as we want to realign
inlinestore[n] = nil
@@ -817,8 +812,9 @@ local function handler(scope,head,group)
if trace_margindata then
report_margindata("flushing stage one, stored %s, scope %s, delayed %s, group %a",nofstored,scope,nofdelayed,group)
end
+ head = tonut(head)
local current = head
- local done = false -- for tracing only
+ local done = false
while current do
local id = getid(current)
if (id == vlist_code or id == hlist_code) and getprop(current,"margindata") == nil then
@@ -843,9 +839,11 @@ local function handler(scope,head,group)
report_margindata("flushing stage one, nothing done, %s left",nofstored)
end
end
- resetstacked()
+resetstacked()
+ return tonode(head), done
+ else
+ return head, false
end
- return head
end
local trialtypesetting = context.trialtypesetting
@@ -856,7 +854,7 @@ local trialtypesetting = context.trialtypesetting
function margins.localhandler(head,group) -- sometimes group is "" which is weird
if trialtypesetting() then
- return head
+ return head, false
end
local inhibit = conditionals.inhibitmargindata
@@ -864,15 +862,15 @@ function margins.localhandler(head,group) -- sometimes group is "" which is weir
if trace_margingroup then
report_margindata("ignored 3, group %a, stored %s, inhibit %a",group,nofstored,inhibit)
end
- return head
- end
- if nofstored > 0 then
+ return head, false
+ elseif nofstored > 0 then
return handler(v_local,head,group)
+ else
+ if trace_margingroup then
+ report_margindata("ignored 4, group %a, stored %s, inhibit %a",group,nofstored,inhibit)
+ end
+ return head, false
end
- if trace_margingroup then
- report_margindata("ignored 4, group %a, stored %s, inhibit %a",group,nofstored,inhibit)
- end
- return head
end
function margins.globalhandler(head,group) -- check group
@@ -886,7 +884,7 @@ function margins.globalhandler(head,group) -- check group
if trace_margingroup then
report_margindata("ignored 1, group %a, stored %s, inhibit %a",group,nofstored,inhibit)
end
- return head
+ return head, false
elseif group == "hmode_par" then
return handler(v_global,head,group)
elseif group == "vmode_par" then -- experiment (for alignments)
@@ -901,20 +899,22 @@ function margins.globalhandler(head,group) -- check group
if trace_margingroup then
report_margindata("ignored 2, group %a, stored %s, inhibit %a",group,nofstored,inhibit)
end
- return head
+ return head, false
end
end
local function finalhandler(head)
if nofdelayed > 0 then
local current = head
- while current and nofdelayed > 0 do -- traverse_list
+ local done = false
+ while current and nofdelayed > 0 do
local id = getid(current)
if id == hlist_code then -- only lines?
local a = getprop(current,"margindata")
if not a then
finalhandler(getlist(current))
elseif realigned(current,a) then
+ done = true
if nofdelayed == 0 then
return head, true
end
@@ -924,8 +924,10 @@ local function finalhandler(head)
end
current = getnext(current)
end
+ return head, done
+ else
+ return head, false
end
- return head
end
function margins.finalhandler(head)
@@ -933,12 +935,16 @@ function margins.finalhandler(head)
if trace_margindata then
report_margindata("flushing stage two, instore: %s, delayed: %s",nofstored,nofdelayed)
end
- head = finalhandler(head)
- resetstacked(nofdelayed==0)
+ head = tonut(head)
+ local head, done = finalhandler(head)
+-- resetstacked(true)
+resetstacked(nofdelayed==0)
+ head = tonode(head)
+ return head, done
else
resetstacked()
+ return head, false
end
- return head
end
-- Somehow the vbox builder (in combinations) gets pretty confused and decides to
@@ -990,7 +996,6 @@ interfaces.implement {
{ "align" },
{ "option" },
{ "line", "integer" },
- { "index", "integer" },
{ "stackname" },
{ "stack" },
}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-mar.mkiv b/Master/texmf-dist/tex/context/base/mkiv/typo-mar.mkiv
index 921f1f230c3..f265f173c9b 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-mar.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-mar.mkiv
@@ -155,7 +155,6 @@
\forgetall
\tf
\resetallattributes % \deactivatecolor % needed, but maybe we should switch to maintextcolor: \onlyinheritmaintextcolor
- \pickupattributes
\to \everymargindatacontent
% trialtypesetting: no need for margin stuff while trialing as
@@ -201,17 +200,11 @@
\let\margindatahbox\naturalhbox % \hbox
-\newcount\c_typo_margins_n
-
-\ifdefined\dotagmarginanchor \else \let\dotagmarginanchor\gobbleoneargument \fi
-\ifdefined\dotagmargintext \else \let\dotagmargintext \gobbleoneargument \fi
-
\unexpanded\def\typo_margins_data_yes_indeed[#dataparameters][#textparameters]#content%
{\iffirstargument
\setupcurrentmargindata[#dataparameters]%
\fi
\doifelsenothing{#content}\donefalse\donetrue
- \global\advance\c_typo_margins_n\plusone
\ifdone
\edef\currentmarginreference{\margindataparameter\c!reference}%
\ifx\currentmarginreference\empty \else
@@ -219,7 +212,6 @@
\fi
\edef\currentmargindatastrut{\margindataparameter\c!strut}%
\dostarttaggedchained\t!margintext\currentmargindata\??margindata
- \dotagmargintext\c_typo_margins_n
\ifcsname\currentmarginframedhash\s!parent\endcsname
\setbox\nextbox\margindatahbox \currentmarginreference \bgroup
\the\everymargindatacontent
@@ -279,8 +271,6 @@
\ifdone
\edef\p_anchor{\margindataparameter\c!anchor}%
\anch_positions_initialize % we use positions at the lua end
- \dostarttagged\t!marginanchor\empty
- \dotagmarginanchor\c_typo_margins_n
\clf_savemargindata
location {\margindataparameter\c!location}%
method {\margindataparameter\c!method}%
@@ -316,9 +306,7 @@
line \numexpr\margindataparameter\c!line\relax
stackname {\margindataparameter\c!stackname}%
stack {\margindataparameter\c!stack}%
- index \c_typo_margins_n
\relax
- \dostoptagged
\else
\clf_savemargindata
location {\margindataparameter\c!location}%
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-pag.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-pag.lua
index 05513e20c39..b5759a097f7 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-pag.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-pag.lua
@@ -26,6 +26,7 @@ local unsetvalue = attributes.unsetvalue
local a_keeptogether = attributes.private("keeptogether")
local nuts = nodes.nuts
+local tonut = nuts.tonut
local getnext = nuts.getnext
local getprev = nuts.getprev
@@ -186,8 +187,8 @@ end
-- also look at first non glue/kern node e.g for a dropped caps
function parbuilders.keeptogether(head)
- local done = false
- local current = head
+ local done = false
+ local current = tonut(head)
while current do
if getid(current) == hlist_code then
local a = takeattr(current,a_keeptogether)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-par.mkiv b/Master/texmf-dist/tex/context/base/mkiv/typo-par.mkiv
index 066dc6a6973..3db0ffa45a7 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-par.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-par.mkiv
@@ -23,7 +23,7 @@
\unprotect
-\registerctxluafile{node-ltp}{optimize}
+\registerctxluafile{node-ltp}{}
\registerctxluafile{trac-par}{}
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-pnc.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-pnc.lua
index 732970884f2..1ed8d9940af 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-pnc.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-pnc.lua
@@ -9,6 +9,7 @@ if not modules then modules = { } end modules ['typo-pnc'] = {
local nodes = nodes
local fonts = fonts
+local prependaction = nodes.tasks.prependaction
local enableaction = nodes.tasks.enableaction
local nuts = nodes.nuts
@@ -22,8 +23,7 @@ local spaceskip_code = gluecodes.spaceskip
local new_kern = nuts.pool.kern
local insert_after = nuts.insert_after
-
-local nextglyph = nuts.traversers.glyph
+local traverse_id = nuts.traverse_id
local getchar = nuts.getchar
local getfont = nuts.getfont
@@ -68,8 +68,10 @@ local mapping = periodkerns.mapping
local factors = periodkerns.factors
function periodkerns.handler(head)
- for current, char, font in nextglyph, head do
- if char == period then
+ local done = false
+ local hnut = tonut(head)
+ for current in traverse_id(glyph_code,tonut(hnut)) do
+ if getchar(current) == period then
local a = getattr(current,a_periodkern)
if a then
local factor = mapping[a]
@@ -77,10 +79,10 @@ function periodkerns.handler(head)
local prev, next = getboth(current)
if prev and next and getid(prev) == glyph_code and getid(next) == glyph_code then
local pchar = getchar(prev)
- local pcode = categories[pchar]
+ local pcode = categories[getchar(prev)]
if pcode == "lu" or pcode == "ll" then
local nchar = getchar(next)
- local ncode = categories[nchar]
+ local ncode = categories[getchar(next)]
if ncode == "lu" or ncode == "ll" then
local next2 = getnext(next)
if next2 and getid(next2) == glyph_code and getchar(next2) == period then
@@ -89,10 +91,11 @@ function periodkerns.handler(head)
if factor ~= 0 then
fontspace = parameters[getfont(current)].space -- can be sped up
inserted = factor * fontspace
- insert_after(head,current,new_kern(inserted))
+ insert_after(hnut,current,new_kern(inserted))
if trace then
report("inserting space at %C . [%p] %C .",pchar,inserted,nchar)
end
+ done = true
end
local next3 = getnext(next2)
if next3 and getid(next3) == glue_code and getsubtype(next3) == spaceskip_code then
@@ -112,6 +115,7 @@ function periodkerns.handler(head)
end
end
setwidth(next3,space)
+ done = true
else
if trace then
if inserted then
@@ -132,7 +136,7 @@ function periodkerns.handler(head)
end
end
end
- return head
+ return head, done
end
local enabled = false
@@ -140,6 +144,7 @@ local enabled = false
function periodkerns.set(factor)
factor = tonumber(factor) or 0
if not enabled then
+ prependaction("processors","normalizers","typesetters.periodkerns.handler")
enableaction("processors","typesetters.periodkerns.handler")
enabled = true
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-rep.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-rep.lua
index d29eb17b8f3..b6aae0cae37 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-rep.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-rep.lua
@@ -21,6 +21,8 @@ local nodes = nodes
local enableaction = nodes.tasks.enableaction
local nuts = nodes.nuts
+local tonut = nuts.tonut
+local tonode = nuts.tonode
local getnext = nuts.getnext
local getchar = nuts.getchar
@@ -79,8 +81,9 @@ local function process(what,head,current,char)
return head, current
end
-function nodes.handlers.stripping(head) -- use loop
- local current = head
+function nodes.handlers.stripping(head)
+ head = tonut(head)
+ local current, done = head, false
while current do
local char, id = isglyph(current)
if char then
@@ -90,6 +93,7 @@ function nodes.handlers.stripping(head) -- use loop
local what = glyphs[char]
if what then
head, current = process(what,head,current,char)
+ done = true
else -- handling of spacing etc has to be done elsewhere
current = getnext(current)
end
@@ -100,7 +104,7 @@ function nodes.handlers.stripping(head) -- use loop
current = getnext(current)
end
end
- return head
+ return tonode(head), done
end
local enabled = false
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-rub.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-rub.lua
index da63d7b64e9..8c41a561176 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-rub.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-rub.lua
@@ -33,6 +33,8 @@ local v_auto = variables.auto
local nuts = nodes.nuts
+local tonut = nodes.tonut
+local tonode = nodes.tonode
local getid = nuts.getid
local getsubtype = nuts.getsubtype
local getattr = nuts.getattr
@@ -51,9 +53,7 @@ local setwidth = nuts.setwidth
local hpack = nuts.hpack
local insert_after = nuts.insert_after
local takebox = nuts.takebox
-
-local nexthlist = nuts.traversers.hlist
-local nextvlist = nuts.traversers.vlist
+local traverse_id = nuts.traverse_id
local nodecodes = nodes.nodecodes
local glyph_code = nodecodes.glyph
@@ -63,11 +63,14 @@ local glue_code = nodecodes.glue
local penalty_code = nodecodes.penalty
local hlist_code = nodecodes.hlist
local vlist_code = nodecodes.vlist
+local whatsit_code = nodecodes.whatsit
local localpar_code = nodecodes.localpar
-local dir_code = nodecodes.dir
+
+local whatsitcodes = nodes.whatsitcodes
+----- late_luacode = whatsitcodes.latelua
local kerncodes = nodes.kerncodes
-local fontkern_code = kerncodes.font
+local font_code = kerncodes.font
local nodepool = nuts.pool
local new_kern = nodepool.kern
@@ -191,6 +194,7 @@ do
end
function rubies.check(head)
+ local head = tonut(head)
local current = head
local start = nil
local stop = nil
@@ -204,7 +208,7 @@ function rubies.check(head)
setprev(start)
setnext(stop)
local h = hpack(start)
- if start == head then
+ if prev == head then
head = h
else
setlink(prev,h)
@@ -243,21 +247,20 @@ function rubies.check(head)
start = current
stop = current
end
- -- go on
- elseif id == kern_code and getsubtype(current,fontkern_code) then
+ elseif id == kern_code and getsubtype(current,font_code) then
-- go on
elseif found and id == disc_code then
-- go on (todo: look into disc)
elseif found then
- flush("flush 3")
+ flush("flush 4")
found = nil
end
current = nx
end
if found then
- flush("flush 4")
+ flush("flush 5")
end
- return head, true -- no need for true
+ return tonode(head), true
end
local attach
@@ -306,11 +309,11 @@ local function whatever(current)
local c = getprev(current)
while c do
local id = getid(c)
- if id == glue_code or id == penalty_code or id == kern_code then
+ if id == glue_code or id == penalty_code or id == kern_code or (id == whatsit_code and getsubtype(current,localpar_code)) then
-- go on
elseif id == hlist_code and getwidth(c) == 0 then
-- go on
- elseif id == whatsit_code or id == localpar_code or id == dir_code then
+ elseif id == whatsit_code or id == localpar_code then
-- go on
else
l = false
@@ -368,17 +371,20 @@ local function whatever(current)
end
end
-attach = function(head) -- traverse_list
- for current in nexthlist, head do
+attach = function(head)
+ for current in traverse_id(hlist_code,head) do
whatever(current)
end
- for current in nextvlist, head do
+ for current in traverse_id(vlist_code,head) do
whatever(current)
end
- return head
+ return head, true
end
-rubies.attach = attach
+function rubies.attach(head)
+ local h, d = attach(tonut(head))
+ return tonode(h), d
+end
-- for now there is no need to be compact
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-rub.mkiv b/Master/texmf-dist/tex/context/base/mkiv/typo-rub.mkiv
index cc1571ad776..d51c53aa414 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-rub.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-rub.mkiv
@@ -26,7 +26,6 @@
\installcorenamespace {ruby}
\installcorenamespace {rubyanalyze}
\installcorenamespace {rubyplacement}
-\installcorenamespace {rubynumber}
\installcommandhandler \??ruby {ruby} \??ruby
@@ -136,14 +135,6 @@
\c!hoffset=\zeropoint,
\c!voffset=-2\exheight]
-%D Experiment too:
-
-\unexpanded\def\numberedruby[#1]#2%
- {\doifnotcounter{\??rubynumber#1}{\definecounter[\??rubynumber#1]\setcounter[\??rubynumber#1][1]}%
- \ruby[#1]{#2}{\convertedcounter[\??rubynumber#1]}%
- \incrementcounter[\??rubynumber#1]%
- \relax}
-
\protect \endinput
% \usemodule[art-01]\setupbodyfont[dejavu,12pt]
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-scr.mkiv b/Master/texmf-dist/tex/context/base/mkiv/typo-scr.mkiv
index 0dfd111ae33..d4881b80a5d 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-scr.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-scr.mkiv
@@ -142,8 +142,8 @@
\unexpanded\def\typo_scripts_lowhigh_indeed[#1]#2#3% todo: align .. [#1] is compatible hack
{\dostarttagged\t!subsup\currentlowhigh
- \setbox\plusfour\hpack{\typo_scripts_lowhigh_low_high\lower\c!down\t!sub{#2}}%
- \setbox\plussix \hpack{\typo_scripts_lowhigh_low_high\raise\c!up \t!sup{#3}}%
+ \setbox\plusfour\hbox{\typo_scripts_lowhigh_low_high\lower\c!down\t!sub{#2}}%
+ \setbox\plussix \hbox{\typo_scripts_lowhigh_low_high\raise\c!up \t!sup{#3}}%
\doif{#1}{\v!left}
{\ifdim\wd\plusfour<\wd\plussix
\setbox\plusfour\hpack to \wd\plussix {\hss\box\plusfour}%
@@ -166,7 +166,7 @@
{\dontleavehmode
\begingroup
\kern\lowhighparameter\c!distance\relax
- \setbox\scratchbox\hpack\bgroup
+ \setbox\scratchbox\hbox\bgroup
#1\lowhighparameter#2\hbox\bgroup
\ifx\fontsize\empty
\ifmmode
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-spa.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-spa.lua
index 78fc2296443..bda1397197e 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-spa.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-spa.lua
@@ -23,9 +23,12 @@ local unsetvalue = attributes.unsetvalue
local v_reset = interfaces.variables.reset
local nuts = nodes.nuts
+local tonut = nuts.tonut
+local tonode = nuts.tonode
local getnext = nuts.getnext
local getprev = nuts.getprev
+local getfont = nuts.getfont
local takeattr = nuts.takeattr
local isglyph = nuts.isglyph
@@ -70,6 +73,8 @@ end
-- todo cache lastattr
function spacings.handler(head)
+ head = tonut(head)
+ local done = false
local start = head
-- head is always begin of par (whatsit), so we have at least two prev nodes
-- penalty followed by glue
@@ -82,11 +87,10 @@ function spacings.handler(head)
if data then
local map = data.characters[char]
if map then
- local font = id
local left = map.left
local right = map.right
local alternative = map.alternative
- local quad = quaddata[font]
+ local quad = quaddata[getfont(start)]
local prev = getprev(start)
if left and left ~= 0 and prev then
local ok = false
@@ -118,6 +122,7 @@ function spacings.handler(head)
end
insert_node_before(head,start,new_penalty(10000))
insert_node_before(head,start,new_glue(left*quad))
+ done = true
end
end
local next = getnext(start)
@@ -154,6 +159,7 @@ function spacings.handler(head)
end
insert_node_after(head,start,new_glue(right*quad))
insert_node_after(head,start,new_penalty(10000))
+ done = true
end
end
end
@@ -166,7 +172,7 @@ function spacings.handler(head)
start = getnext(start)
end
end
- return head
+ return tonode(head), done
end
local enabled = false
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-sus.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-sus.lua
index 6c02b929167..2d3037bdc91 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-sus.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-sus.lua
@@ -40,6 +40,8 @@ local hlist_code = nodecodes.hlist
local vlist_code = nodecodes.vlist
local nuts = nodes.nuts
+local tonut = nodes.tonut
+local tonode = nodes.tonode
local getid = nuts.getid
local getprev = nuts.getprev
@@ -162,6 +164,7 @@ local colors = {
local found = 0
function typesetters.marksuspects(head)
+ local head = tonut(head)
local current = head
local lastdone = nil
while current do
@@ -251,7 +254,7 @@ function typesetters.marksuspects(head)
current = getnext(current)
end
end
- return head
+ return tonode(head), found > 0
end
local function showsuspects(head)
@@ -286,9 +289,9 @@ end
function typesetters.showsuspects(head)
if found > 0 then
- return showsuspects(head)
+ return tonode(showsuspects(tonut(head))), true
else
- return head
+ return head, false
end
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-tal.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-tal.lua
index 8cf29832971..870d006ccf8 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-tal.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-tal.lua
@@ -34,6 +34,7 @@ local v_number = variables.number
local nuts = nodes.nuts
local tonut = nuts.tonut
+local tonode = nuts.tonode
local getnext = nuts.getnext
local getprev = nuts.getprev
@@ -49,8 +50,8 @@ local setchar = nuts.setchar
local insert_node_before = nuts.insert_before
local insert_node_after = nuts.insert_after
-local nextglyph = nuts.traversers.glyph
-local getdimensions = nuts.dimensions
+local traverse_list_by_id = nuts.traverse_id
+local list_dimensions = nuts.dimensions
local first_glyph = nuts.first_glyph
local setglue = nuts.setglue
@@ -170,22 +171,23 @@ local function traced_kern(w)
return tracedrule(w,nil,nil,"darkgray")
end
-function characteralign.handler(head,where)
+function characteralign.handler(originalhead,where)
if not datasets then
- return head
+ return originalhead, false
end
+ local head = tonut(originalhead)
-- local first = first_glyph(head) -- we could do that once
local first
- for n in nextglyph, head do
+ for n in traverse_list_by_id(glyph_code,head) do
first = n
break
end
if not first then
- return head
+ return originalhead, false
end
local a = getattr(first,a_characteralign)
if not a or a == 0 then
- return head
+ return originalhead, false
end
local column = div(a,0xFFFF)
local row = a % 0xFFFF
@@ -208,7 +210,7 @@ function characteralign.handler(head,where)
while current do
local char, id = isglyph(current)
if char then
- local font = id --- nicer
+ local font = getfont(current)
local data = fontcharacters[font][char]
local unicode = data and data.unicode or char -- ignore tables
if not unicode then -- type(unicode) ~= "number"
@@ -232,9 +234,8 @@ function characteralign.handler(head,where)
if not b_start then
if sign then
b_start = sign
- local c, f = isglyph(sign)
- local new = validsigns[c]
- if char == new or not fontcharacters[f][new] then
+ local new = validsigns[getchar(sign)]
+ if char == new or not fontcharacters[getfont(sign)][new] then
if trace_split then
setcolor(sign,"darkyellow")
end
@@ -284,7 +285,7 @@ function characteralign.handler(head,where)
while current do
local char, id = isglyph(current)
if char then
- local font = id -- nicer
+ local font = getfont(current)
-- local unicode = unicodes[font][char]
local unicode = fontcharacters[font][char].unicode or char -- ignore tables
if not unicode then
@@ -321,21 +322,21 @@ function characteralign.handler(head,where)
local predefined = dataset.predefined
local before, after
if predefined then
- before = b_start and getdimensions(b_start,getnext(b_stop)) or 0
- after = a_start and getdimensions(a_start,getnext(a_stop)) or 0
+ before = b_start and list_dimensions(b_start,getnext(b_stop)) or 0
+ after = a_start and list_dimensions(a_start,getnext(a_stop)) or 0
else
local entry = list[row]
if entry then
before = entry.before or 0
after = entry.after or 0
else
- before = b_start and getdimensions(b_start,getnext(b_stop)) or 0
- after = a_start and getdimensions(a_start,getnext(a_stop)) or 0
+ before = b_start and list_dimensions(b_start,getnext(b_stop)) or 0
+ after = a_start and list_dimensions(a_start,getnext(a_stop)) or 0
list[row] = {
before = before,
after = after,
}
- return head, true
+ return tonode(head), true
end
if not dataset.collected then
-- print("[maxbefore] [maxafter]")
@@ -403,5 +404,5 @@ function characteralign.handler(head,where)
insert_node_after(head,c,new_kern(maxafter))
end
end
- return head
+ return tonode(head), true
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-wrp.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-wrp.lua
index 9fb5441526c..07e34cd6c8f 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-wrp.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-wrp.lua
@@ -8,80 +8,65 @@ if not modules then modules = { } end modules ['typo-wrp'] = {
-- begin/end par wrapping stuff ... more to come
-local nodecodes = nodes.nodecodes
-local gluecodes = nodes.gluecodes
-local penaltycodes = nodes.penaltycodes
-local boundarycodes = nodes.boundarycodes
+local nodecodes = nodes.nodecodes
-local glue_code = nodecodes.glue
-local penalty_code = nodecodes.penalty
-local boundary_code = nodecodes.boundary
+local glue_code = nodecodes.glue
+local penalty_code = nodecodes.penalty
+local parfill_skip_code = nodes.gluecodes.parfillskip
+local user_penalty_code = nodes.penaltycodes.userpenalty
-local parfillskip_code = gluecodes.parfillskip
+local nuts = nodes.nuts
+local tonut = nodes.tonut
+local tonode = nodes.tonode
-local userpenalty_code = penaltycodes.userpenalty
-local linepenalty_code = penaltycodes.linepenalty
-local linebreakpenalty_code = penaltycodes.linebreakpenalty
+local find_node_tail = nuts.tail
+local getprev = nuts.getprev
+local getid = nuts.getid
+local getsubtype = nuts.getsubtype
+local getpenalty = nuts.getpenalty
+local remove = nuts.remove
-local wordboundary_code = boundarycodes.word
+local enableaction = nodes.tasks.enableaction
-local nuts = nodes.nuts
+local wrappers = { }
+typesetters.wrappers = wrappers
-local find_node_tail = nuts.tail
-local getprev = nuts.getprev
-local getid = nuts.getid
-local getsubtype = nuts.getsubtype
-local getpenalty = nuts.getpenalty
-local remove = nuts.remove
+local trace_wrappers = trackers.register("typesetters.wrappers",function(v) trace_wrappers = v end)
-local enableaction = nodes.tasks.enableaction
-
-local wrappers = { }
-typesetters.wrappers = wrappers
-
-local trace_wrappers = trackers.register("typesetters.wrappers",function(v) trace_wrappers = v end)
-
-local report = logs.reporter("paragraphs","wrappers")
+local report = logs.reporter("paragraphs","wrappers")
-- we really need to pass tail too ... but then we need to check all the plugins
-- bah ... slowdown
--- This check is very tight to the crlf definition. We check for:
---
--- [break -10000] [wordboundary] [line(break)penalty] [parfillskip]
---
--- If needed we can extend this checker for other cases but then we will also
--- use attributes.
-
local function remove_dangling_crlf(head,tail)
- if head and tail and getid(tail) == glue_code and getsubtype(tail) == parfillskip_code then
+ if tail and getid(tail) == glue_code and getsubtype(tail) == parfill_skip_code then
tail = getprev(tail)
- if tail and getid(tail) == penalty_code then
- local subtype = getsubtype(tail)
- if subtype == linepenalty_code or subtype == linebreakpenalty_code then
- tail = getprev(tail)
- if tail and getid(tail) == boundary_code and getsubtype(tail) == wordboundary_code then
- tail = getprev(tail)
- if tail ~= head and getid(tail) == penalty_code and getsubtype(tail) == userpenalty_code and getpenalty(tail) == -10000 then
- if trace_wrappers then
- report("removing a probably unwanted end-of-par break in line %s (guess)",tex.inputlineno)
- end
- remove(head,tail,true)
- return head, tail
+ if tail and getid(tail) == penalty_code and getsubtype(tail) == user_penalty_code and getpenalty(tail) == 10000 then
+ tail = getprev(tail)
+ if tail and getid(tail) == penalty_code and getsubtype(tail) == user_penalty_code and getpenalty(tail) == -10000 then
+ if tail == head then
+ -- can't happen
+ else
+ if trace_wrappers then
+ report("removing a probably unwanted end-of-par break in line %s (guess)",tex.inputlineno)
end
+ remove(head,tail,true)
+ return head, tail, true
end
end
end
end
- return head, tail
+ return head, tail, false
end
function wrappers.handler(head)
+ local head = tonut(head)
if head then
local tail = find_node_tail(head)
- head, tail = remove_dangling_crlf(head,tail) -- will be action chain
+ local done = false
+ head, tail, done = remove_dangling_crlf(head,tail) -- will be action chain
end
- return head
+ return head, true
end
interfaces.implement {
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-wrp.mkiv b/Master/texmf-dist/tex/context/base/mkiv/typo-wrp.mkiv
index 4e9ecf2e128..0e010515b05 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-wrp.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-wrp.mkiv
@@ -40,21 +40,18 @@
\unexpanded\def\spac_crlf
{\clf_enablecrlf % once
\unskip
+ \prewordbreak % here or in \spac_crlf_placeholder
\spac_crlf_placeholder
\ifcase\raggedstatus\hfil\or\or\or\hfil\fi
- % in bad usage this can lead to: [break -10000] [wordboundary] [line(break)penalty] [parfillskip]
\break
- \wordboundary
- % which we then remove (maybe we should flag the wordboundary with an attribute but not now
+ \hskip\zeropoint % new so that the next word also hyphenates
\ignorespaces}
\unexpanded\def\spac_crlf_placeholder
{\strut}
\unexpanded\def\spac_crlf_placeholder_show
- {\wordboundary
- %\nobreak
- \hpack to \zeropoint{\strut{\infofont\kern.25\emwidth}\lohi{\infofont CR}{\infofont LF}\hss}}
+ {\hbox to \zeropoint{\strut{\infofont\kern.25\emwidth}\lohi{\infofont CR}{\infofont LF}\hss}}
\unexpanded\def\settestcrlf
{\let\spac_crlf_placeholder\spac_crlf_placeholder_show}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-deb.lua b/Master/texmf-dist/tex/context/base/mkiv/util-deb.lua
index 6932e8804d3..b8db0c58345 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/util-deb.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-deb.lua
@@ -10,6 +10,9 @@ if not modules then modules = { } end modules ['util-deb'] = {
-- bound to a variable, like node.new, node.copy etc (contrary to for instance
-- node.has_attribute which is bound to a has_attribute local variable in mkiv)
+local debug = require "debug"
+
+local getinfo, sethook = debug.getinfo, debug.sethook
local type, next, tostring, tonumber = type, next, tostring, tonumber
local format, find, sub, gsub = string.format, string.find, string.sub, string.gsub
local insert, remove, sort = table.insert, table.remove, table.sort
@@ -95,7 +98,7 @@ end
setmetatableindex(names,function(t,name)
local v = setmetatableindex(function(t,source)
local v = setmetatableindex(function(t,line)
- local v = { total = 0, count = 0, nesting = 0 }
+ local v = { total = 0, count = 0 }
t[line] = v
return v
end)
@@ -106,9 +109,6 @@ setmetatableindex(names,function(t,name)
return v
end)
-local getinfo = nil
-local sethook = nil
-
local function hook(where)
local f = getinfo(2,"nSl")
if f then
@@ -128,24 +128,12 @@ local function hook(where)
end
local data = names[name][source][line]
if where == "call" then
- local nesting = data.nesting
- if nesting == 0 then
- data.count = data.count + 1
- insert(data,ticks())
- data.nesting = 1
- else
- data.nesting = nesting + 1
- end
+ data.count = data.count + 1
+ insert(data,ticks())
elseif where == "return" then
- local nesting = data.nesting
- if nesting == 1 then
- local t = remove(data)
- if t then
- data.total = data.total + ticks() - t
- end
- data.nesting = 0
- else
- data.nesting = nesting - 1
+ local t = remove(data)
+ if t then
+ data.total = data.total + ticks() - t
end
end
end
@@ -240,27 +228,6 @@ function debugger.showstats(printer,threshold)
-- table.save("luatex-profile.lua",names)
end
-local function getdebug()
- if sethook and getinfo then
- return
- end
- if not debug then
- local okay
- okay, debug = pcall(require,"debug")
- end
- if type(debug) ~= "table" then
- return
- end
- getinfo = debug.getinfo
- sethook = debug.sethook
- if type(getinfo) ~= "function" then
- getinfo = nil
- end
- if type(sethook) ~= "function" then
- sethook = nil
- end
-end
-
function debugger.savestats(filename,threshold)
local f = io.open(filename,'w')
if f then
@@ -270,8 +237,7 @@ function debugger.savestats(filename,threshold)
end
function debugger.enable()
- getdebug()
- if sethook and getinfo and nesting == 0 then
+ if nesting == 0 then
running = true
if initialize then
initialize()
@@ -293,7 +259,7 @@ function debugger.disable()
if nesting > 0 then
nesting = nesting - 1
end
- if sethook and getinfo and nesting == 0 then
+ if nesting == 0 then
sethook()
end
end
@@ -316,25 +282,20 @@ end
-- from the lua book:
local function showtraceback(rep) -- from lua site / adapted
- getdebug()
- if getinfo then
- local level = 2 -- we don't want this function to be reported
- local reporter = rep or report
- while true do
- local info = getinfo(level, "Sl")
- if not info then
- break
- elseif info.what == "C" then
- reporter("%2i : %s",level-1,"C function")
- else
- reporter("%2i : %s : %s",level-1,info.short_src,info.currentline)
- end
- level = level + 1
+ local level = 2 -- we don't want this function to be reported
+ local reporter = rep or report
+ while true do
+ local info = getinfo(level, "Sl")
+ if not info then
+ break
+ elseif info.what == "C" then
+ reporter("%2i : %s",level-1,"C function")
+ else
+ reporter("%2i : %s : %s",level-1,info.short_src,info.currentline)
end
+ level = level + 1
end
end
debugger.showtraceback = showtraceback
-- debug.showtraceback = showtraceback
-
--- showtraceback()
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-env.lua b/Master/texmf-dist/tex/context/base/mkiv/util-env.lua
index dde76587486..064bd513ad5 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/util-env.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-env.lua
@@ -72,16 +72,20 @@ end
-- dirty tricks (we will replace the texlua call by luatex --luaonly)
local validengines = allocate {
- ["luatex"] = true,
- ["luajittex"] = true,
+ ["luatex"] = true,
+ ["luajittex"] = true,
+ -- ["luatex.exe"] = true,
+ -- ["luajittex.exe"] = true,
}
local basicengines = allocate {
- ["luatex"] = "luatex",
- ["texlua"] = "luatex", -- obsolete
- ["texluac"] = "luatex", -- obsolete
- ["luajittex"] = "luajittex",
- ["texluajit"] = "luajittex", -- obsolete
+ ["luatex"] = "luatex",
+ ["texlua"] = "luatex",
+ ["texluac"] = "luatex",
+ ["luajittex"] = "luajittex",
+ ["texluajit"] = "luajittex",
+ -- ["texlua.exe"] = "luatex",
+ -- ["texluajit.exe"] = "luajittex",
}
local luaengines = allocate {
@@ -150,11 +154,8 @@ environment.sortedflags = nil
-- context specific arguments (in order not to confuse the engine)
function environment.initializearguments(arg)
- local arguments = { }
- local files = { }
- environment.arguments = arguments
- environment.files = files
- environment.sortedflags = nil
+ local arguments, files = { }, { }
+ environment.arguments, environment.files, environment.sortedflags = arguments, files, nil
for index=1,#arg do
local argument = arg[index]
if index > 0 then
@@ -173,11 +174,6 @@ function environment.initializearguments(arg)
end
end
end
- if not environment.ownname then
- if os.selfpath and os.selfname then
- environment.ownname = file.addsuffix(file.join(os.selfpath,os.selfname),"lua")
- end
- end
environment.ownname = file.reslash(environment.ownname or arg[0] or 'unknown.lua')
end
@@ -285,20 +281,13 @@ if arg then
for index=1,#arg do
local argument = arg[index]
if find(argument,"^\"") then
- if find(argument,"\"$") then
- newarg[#newarg+1] = gsub(argument,"^\"(.-)\"$","%1")
- instring = false
- else
- newarg[#newarg+1] = gsub(argument,"^\"","")
+ newarg[#newarg+1] = gsub(argument,"^\"","")
+ if not find(argument,"\"$") then
instring = true
end
elseif find(argument,"\"$") then
- if instring then
- newarg[#newarg] = newarg[#newarg] .. " " .. gsub(argument,"\"$","")
- instring = false
- else
- newarg[#newarg+1] = argument
- end
+ newarg[#newarg] = newarg[#newarg] .. " " .. gsub(argument,"\"$","")
+ instring = false
elseif instring then
newarg[#newarg] = newarg[#newarg] .. " " .. argument
else
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-evo.lua b/Master/texmf-dist/tex/context/base/mkiv/util-evo.lua
index dfb395e082b..7f0b59ac452 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/util-evo.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-evo.lua
@@ -161,22 +161,15 @@ local function loadedtable(filename)
for i=1,10 do
local t = loadtable(filename)
if t then
- report("file %a loaded",filename)
return t
else
ossleep(1/4)
end
end
end
- report("file %a not loaded",filename)
return { }
end
-local function savedtable(filename,data)
- savetable(filename,data)
- report("file %a saved",filename)
-end
-
local function loadpresets(filename)
local presets = loadtable(filename)
if presets then
@@ -201,13 +194,6 @@ local function loadeverything(filename)
return loadedtable(filename)
end
-local function loadlatest(filename)
- if type(filename) == "table" and validpresets(filename) then
- filename = filename.files and filename.files.latest
- end
- return loadedtable(filename)
-end
-
local function result(t,fmt,a,b,c)
if t then
report(fmt,a or "done",b or "done",c or "done","done")
@@ -379,21 +365,6 @@ local function findzone(presets,name)
return usedzones and usedzones[name]
end
-local function getzonenames(presets)
- if not presets then
- return { }
- end
- local data = presets.data
- if not data then
- return { }
- end
- local t = sortedkeys(data.zones or { })
- for i=1,#t do
- t[i] = lower(t[i])
- end
- return t
-end
-
local function gettargets(zone) -- maybe also for a day
local schedule = zone.schedule
local min = false
@@ -532,7 +503,7 @@ local function geteverything(presets,noschedules)
end
end
end
- savedtable(presets.files.everything,data)
+ savetable(presets.files.everything,data)
return result(data,"getting everything, %s")
end
end
@@ -550,29 +521,26 @@ local function gettemperatures(presets)
for i=1,#data do
local gateways = data[i].gateways
local locationinfo = data[i].locationInfo
- if locationinfo then
- local locationid = locationinfo.locationId
- if gateways then
- local status = getstatus(presets,locationid,locationinfo.name)
- if status then
- for i=1,#gateways do
- local g = status.gateways[i]
- local gateway = gateways[i]
- local systems = gateway.temperatureControlSystems
- if systems then
- local s = g.temperatureControlSystems
- for i=1,#systems do
- local zones = systems[i].zones
- if zones then
- local z = s[i].zones
- for i=1,#zones do
- local zone = zones[i]
- if validzonetypes[zone.zoneType] then
- local z = z[i]
- if z.name == zone.name then
- zone.temperatureStatus = z.temperatureStatus
- updated = true
- end
+ local locationid = locationinfo.locationId
+ if gateways then
+ local status = getstatus(presets,locationid,locationinfo.name)
+ if status then
+ for i=1,#gateways do
+ local g = status.gateways[i]
+ local gateway = gateways[i]
+ local systems = gateway.temperatureControlSystems
+ if systems then
+ local s = g.temperatureControlSystems
+ for i=1,#systems do
+ local zones = systems[i].zones
+ if zones then
+ local z = s[i].zones
+ for i=1,#zones do
+ if validzonetypes[zone.zoneType] then
+ local z = z[i]
+ if z.name == zone.name then
+ zone.temperatureStatus = z.temperatureStatus
+ updated = true
end
end
end
@@ -580,16 +548,12 @@ local function gettemperatures(presets)
end
end
end
- else
- report("no gateways")
end
- else
- report("no location info")
end
end
if updated then
data.time = ostime()
- savedtable(presets.files.latest,data)
+ savetable(presets.files.latest,data)
end
return result(data,"getting temperatures, %s")
end
@@ -637,10 +601,7 @@ end
local function loadtemperatures(presets)
if validpresets(presets) then
- local status = loadlatest(presets)
- if not status or not next(status) then
- status = loadeverything(presets)
- end
+ local status = loadeverything(presets)
if status then
local usedgateways = presets.data.gateways
for i=1,#status do
@@ -676,10 +637,9 @@ end
local function updatetemperatures(presets)
if validpresets(presets) then
local everythingname = presets.files.everything
- local latestname = presets.files.latest
local historyname = presets.files.history
- if (everythingname or latestname) and historyname then
- gettemperatures(presets)
+ if everythingname and historyname then
+ gettemperatures(presets,everythingname)
local t = loadtemperatures(presets)
if t then
local data = { }
@@ -689,7 +649,7 @@ local function updatetemperatures(presets)
end
local history = loadhistory(historyname) or { }
setmoment(history,ostime(),data)
- savedtable(historyname,history)
+ savetable(historyname,history)
return result(t,"updating temperatures, %s")
end
end
@@ -787,10 +747,10 @@ local function off(presets,name)
end
end
-local function on(presets,name,temperature)
+local function on(presets,name)
local zone = presets and getzonestate(presets,name)
if zone then
- setzonestate(presets,name,temperature or zone.highest)
+ setzonestate(presets,name,zone.highest)
end
end
@@ -827,7 +787,7 @@ local function settask(presets,when,tag,action)
else
list[tag] = nil
end
- savedtable(presets.files.schedules,list)
+ savetable(presets.files.schedules,list)
end
end
@@ -872,7 +832,7 @@ local function checktasks(presets)
for k, v in next, q do
list[q] = nil
end
- savedtable(presets.files.schedules,list)
+ savetable(presets.files.schedules,list)
end
return list
end
@@ -994,10 +954,10 @@ end
evohome = {
helpers = {
- getaccesstoken = getaccesstoken, -- presets
- getuserinfo = getuserinfo, -- presets
- getlocationinfo = getlocationinfo, -- presets
- getschedule = getschedule, -- presets, name
+ getaccesstoken = getaccesstoken, -- presets
+ getuserinfo = getuserinfo, -- presets
+ getlocationinfo = getlocationinfo, -- presets
+ getschedule = getschedule, -- presets, name
--
geteverything = geteverything, -- presets, noschedules
gettemperatures = gettemperatures, -- presets
@@ -1005,7 +965,6 @@ evohome = {
setzonestate = setzonestate, -- presets, name, temperature
resetzonestate = resetzonestate, -- presets, name
getzonedata = findzone, -- presets, name
- getzonenames = getzonenames, -- presets
--
loadpresets = loadpresets, -- filename
loadhistory = loadhistory, -- presets | filename
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-fil.lua b/Master/texmf-dist/tex/context/base/mkiv/util-fil.lua
index 9f96a01b911..0e8ed4e5751 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/util-fil.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-fil.lua
@@ -6,7 +6,6 @@ if not modules then modules = { } end modules ['util-fil'] = {
license = "see context related readme files"
}
-local tonumber = tonumber
local byte = string.byte
local char = string.char
@@ -197,23 +196,41 @@ function files.readinteger4le(f)
end
end
+-- function files.readfixed2(f)
+-- local a, b = byte(f:read(2),1,2)
+-- if a >= 0x80 then
+-- return (0x100 * a + b - 0x10000)/256.0
+-- else
+-- return (0x100 * a + b)/256.0
+-- end
+-- end
+
function files.readfixed2(f)
local a, b = byte(f:read(2),1,2)
if a >= 0x80 then
- tonumber((a - 0x100) .. "." .. b)
+ return (a - 0x100) + b/0x100
else
- tonumber(( a ) .. "." .. b)
+ return (a ) + b/0x100
end
end
--- (real) (n>>16) + ((n&0xffff)/65536.0)) but no cast in lua (we could use unpack)
+-- (real) (n>>16) + ((n&0xffff)/65536.0))
+
+-- function files.readfixed4(f)
+-- local a, b, c, d = byte(f:read(4),1,4)
+-- if a >= 0x80 then
+-- return (0x1000000 * a + 0x10000 * b + 0x100 * c + d - 0x100000000)/65536.0
+-- else
+-- return (0x1000000 * a + 0x10000 * b + 0x100 * c + d)/65536.0
+-- end
+-- end
function files.readfixed4(f)
local a, b, c, d = byte(f:read(4),1,4)
if a >= 0x80 then
- tonumber((0x100 * a + b - 0x10000) .. "." .. (0x100 * c + d))
+ return (0x100 * a + b - 0x10000) + (0x100 * c + d)/0x10000
else
- tonumber((0x100 * a + b ) .. "." .. (0x100 * c + d))
+ return (0x100 * a + b ) + (0x100 * c + d)/0x10000
end
end
@@ -326,40 +343,3 @@ if fio and fio.readcardinal1 then
end
end
-
-if fio and fio.readcardinaltable then
-
- files.readcardinaltable = fio.readcardinaltable
- files.readintegertable = fio.readintegertable
-
-else
-
- local readcardinal1 = files.readcardinal1
- local readcardinal2 = files.readcardinal2
- local readcardinal3 = files.readcardinal3
- local readcardinal4 = files.readcardinal4
-
- function files.readcardinaltable(f,n,b)
- local t = { }
- if b == 1 then for i=1,n do t[i] = readcardinal1(f) end
- elseif b == 2 then for i=1,n do t[i] = readcardinal2(f) end
- elseif b == 3 then for i=1,n do t[i] = readcardinal3(f) end
- elseif b == 4 then for i=1,n do t[i] = readcardinal4(f) end end
- return t
- end
-
- local readinteger1 = files.readinteger1
- local readinteger2 = files.readinteger2
- local readinteger3 = files.readinteger3
- local readinteger4 = files.readinteger4
-
- function files.readintegertable(f,n,b)
- local t = { }
- if b == 1 then for i=1,n do t[i] = readinteger1(f) end
- elseif b == 2 then for i=1,n do t[i] = readinteger2(f) end
- elseif b == 3 then for i=1,n do t[i] = readinteger3(f) end
- elseif b == 4 then for i=1,n do t[i] = readinteger4(f) end end
- return t
- end
-
-end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-fmt.lua b/Master/texmf-dist/tex/context/base/mkiv/util-fmt.lua
index fe80c64201e..371a5dfcece 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/util-fmt.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-fmt.lua
@@ -35,17 +35,10 @@ function formatters.formatcolumns(result,between)
for j=1,n do
local rj = r[j]
local tj = type(rj)
--- if tj == "number" then
--- numbers[j] = true
--- end
--- if tj ~= "string" then
--- rj = tostring(rj)
--- r[j] = rj
--- end
if tj == "number" then
numbers[j] = true
- rj = tostring(rj)
- elseif tj ~= "string" then
+ end
+ if tj ~= "string" then
rj = tostring(rj)
r[j] = rj
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-jsn.lua b/Master/texmf-dist/tex/context/base/mkiv/util-jsn.lua
index acbf160904d..e5f83e06c47 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/util-jsn.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-jsn.lua
@@ -14,12 +14,10 @@ if not modules then modules = { } end modules ['util-jsn'] = {
--
-- Reminder for me: check usage in framework and extend when needed. Also document
-- it in the cld lib documentation.
---
--- Upgraded for handling the somewhat more fax server templates.
local P, V, R, S, C, Cc, Cs, Ct, Cf, Cg = lpeg.P, lpeg.V, lpeg.R, lpeg.S, lpeg.C, lpeg.Cc, lpeg.Cs, lpeg.Ct, lpeg.Cf, lpeg.Cg
local lpegmatch = lpeg.match
-local format, gsub = string.format, string.gsub
+local format = string.format
local utfchar = utf.char
local concat = table.concat
@@ -28,6 +26,9 @@ local tonumber, tostring, rawset, type, next = tonumber, tostring, rawset, type,
local json = utilities.json or { }
utilities.json = json
+-- moduledata = moduledata or { }
+-- moduledata.json = json
+
-- \\ \/ \b \f \n \r \t \uHHHH
local lbrace = P("{")
@@ -42,19 +43,16 @@ local whitespace = lpeg.patterns.whitespace
local optionalws = whitespace^0
local escapes = {
- ["b"] = "\010",
- ["f"] = "\014",
- ["n"] = "\n",
- ["r"] = "\r",
- ["t"] = "\t",
+ -- ["\\"] = "\\", -- lua will escape these
+ -- ["/"] = "/", -- no need to escape this one
+ ["b"] = "\010",
+ ["f"] = "\014",
+ ["n"] = "\n",
+ ["r"] = "\r",
+ ["t"] = "\t",
}
--- todo: also handle larger utf16
-
-local escape_un = P("\\u")/"" * (C(R("09","AF","af")^-4) / function(s)
- return utfchar(tonumber(s,16))
-end)
-
+local escape_un = C(P("\\u") / "0x" * S("09","AF","af")) / function(s) return utfchar(tonumber(s)) end
local escape_bs = P([[\]]) / "" * (P(1) / escapes) -- if not found then P(1) is returned i.e. the to be escaped char
local jstring = dquote * Cs((escape_un + escape_bs + (1-dquote))^0) * dquote
@@ -87,9 +85,7 @@ function json.tolua(str)
return lpegmatch(jsonconverter,str)
end
-local escaper
-
-local function tojson(value,t,n) -- we could optimize #t
+local function tojson(value,t) -- we could optimize #t
local kind = type(value)
if kind == "table" then
local done = false
@@ -97,75 +93,60 @@ local function tojson(value,t,n) -- we could optimize #t
if size == 0 then
for k, v in next, value do
if done then
- n = n + 1 ; t[n] = ","
+ t[#t+1] = ","
else
- n = n + 1 ; t[n] = "{"
+ t[#t+1] = "{"
done = true
end
- n = n + 1 ; t[n] = format("%q:",k)
- t, n = tojson(v,t,n)
+ t[#t+1] = format("%q:",k)
+ tojson(v,t)
end
if done then
- n = n + 1 ; t[n] = "}"
+ t[#t+1] = "}"
else
- n = n + 1 ; t[n] = "{}"
+ t[#t+1] = "{}"
end
elseif size == 1 then
-- we can optimize for non tables
- n = n + 1 ; t[n] = "["
- t, n = tojson(value[1],t,n)
- n = n + 1 ; t[n] = "]"
+ t[#t+1] = "["
+ tojson(value[1],t)
+ t[#t+1] = "]"
else
for i=1,size do
if done then
- n = n + 1 ; t[n] = ","
+ t[#t+1] = ","
else
- n = n + 1 ; t[n] = "["
+ t[#t+1] = "["
done = true
end
- t, n = tojson(value[i],t,n)
+ tojson(value[i],t)
end
- n = n + 1 ; t[n] = "]"
+ t[#t+1] = "]"
end
elseif kind == "string" then
- n = n + 1 ; t[n] = '"'
- n = n + 1 ; t[n] = lpegmatch(escaper,value) or value
- n = n + 1 ; t[n] = '"'
+ t[#t+1] = format("%q",value)
elseif kind == "number" then
- n = n + 1 ; t[n] = value
+ t[#t+1] = value
elseif kind == "boolean" then
- n = n + 1 ; t[n] = tostring(value)
+ t[#t+1] = tostring(value)
end
- return t, n
+ return t
end
function json.tostring(value)
-- todo optimize for non table
local kind = type(value)
if kind == "table" then
- if not escaper then
- local escapes = {
- ["\\"] = "\\u005C",
- ["\""] = "\\u0022",
- }
- for i=0,0x20 do
- escapes[utfchar(i)] = format("\\u%04X",i)
- end
- escaper = Cs( (
- (R('\0\x20') + S('\"\\')) / escapes
- + P(1)
- )^1 )
-
- end
- return concat((tojson(value,{},0)))
+ return concat(tojson(value,{}),"")
elseif kind == "string" or kind == "number" then
- return lpegmatch(escaper,value) or value
+ return value
else
return tostring(value)
end
end
--- local tmp = [[ { "t" : "foobar", "a" : true, "b" : [ 123 , 456E-10, { "a" : true, "b" : [ 123 , 456 ] } ] } ]]
+-- local tmp = [[ { "a" : true, "b" : [ 123 , 456E-10, { "a" : true, "b" : [ 123 , 456 ] } ] } ]]
+
-- tmp = json.tolua(tmp)
-- inspect(tmp)
-- tmp = json.tostring(tmp)
@@ -174,6 +155,7 @@ end
-- inspect(tmp)
-- tmp = json.tostring(tmp)
-- inspect(tmp)
+
-- inspect(json.tostring(true))
function json.load(filename)
@@ -183,11 +165,4 @@ function json.load(filename)
end
end
--- local s = [[\foo"bar"]]
--- local j = json.tostring { s = s }
--- local l = json.tolua(j)
--- inspect(j)
--- inspect(l)
--- print(s==l.s)
-
return json
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-lib.lua b/Master/texmf-dist/tex/context/base/mkiv/util-lib.lua
index fb65a566e24..714cfd4c77c 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/util-lib.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-lib.lua
@@ -237,7 +237,7 @@ local function locate(required,version,trace,report,action)
report("stored library: %a",required)
end
end
- return library or nil
+ return library
end
do
@@ -352,7 +352,7 @@ We use the same lookup logic for ffi loading.
trackers.register("resolvers.ffilib", function(v) trace_ffilib = v end)
-- pushlibpath(pathpart(name))
- -- local state, library = pcall(savedffiload,nameonly(name))
+ -- local message, library = pcall(savedffiload,nameonly(name))
-- poplibpath()
local loaded = { }
@@ -361,11 +361,11 @@ We use the same lookup logic for ffi loading.
name = removesuffix(name)
local l = loaded[name]
if l == nil then
- local state, library = pcall(savedffiload,name)
- if type(library) == "userdata" then
+ local message, library = pcall(savedffiload,name)
+ if type(message) == "userdata" then
+ l = message
+ elseif type(library) == "userdata" then
l = library
- elseif type(state) == "userdata" then
- l = state
else
l = false
end
@@ -376,20 +376,6 @@ We use the same lookup logic for ffi loading.
return l
end
- local function getlist(required)
- local list = directives.value("system.librarynames" )
- if type(list) == "table" then
- list = list[required]
- if type(list) == "table" then
- if trace then
- report("using lookup list for library %a: % | t",required,list)
- end
- return list
- end
- end
- return { required }
- end
-
function ffilib(name,version)
name = removesuffix(name)
local l = loaded[name]
@@ -398,45 +384,23 @@ We use the same lookup logic for ffi loading.
report_ffilib("reusing already loaded %a",name)
end
return l
- end
- local list = getlist(name)
- if version == "system" then
- for i=1,#list do
- local library = locateindeed(list[i])
- if type(library) == "userdata" then
- return library
- end
- end
+ elseif version == "system" then
+ return locateindeed(name)
else
- for i=1,#list do
- local library = locate(list[i],version,trace_ffilib,report_ffilib,locateindeed)
- if type(library) == "userdata" then
- return library
- end
- end
+ return locate(name,version,trace_ffilib,report_ffilib,locateindeed)
end
end
function ffi.load(name)
- local list = getlist(name)
- for i=1,#list do
- local library = ffilib(list[i])
- if type(library) == "userdata" then
- return library
- end
+ local library = ffilib(name)
+ if type(library) == "userdata" then
+ return library
end
if trace_ffilib then
report_ffilib("trying to load %a using normal loader",name)
end
-- so here we don't store
- for i=1,#list do
- local state, library = pcall(savedffiload,list[i])
- if type(library) == "userdata" then
- return library
- elseif type(state) == "userdata" then
- return library
- end
- end
+ return savedffiload(name)
end
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-lua.lua b/Master/texmf-dist/tex/context/base/mkiv/util-lua.lua
index 1199301f42f..b7de119360c 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/util-lua.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-lua.lua
@@ -88,7 +88,6 @@ function luautilities.loadedluacode(fullname,forcestrip,name,macros)
code()
else
report_lua("loading of file %a failed:\n\t%s",fullname,message or "no message")
- code, message = loadfile(fullname)
end
if forcestrip and luautilities.stripcode then
if type(forcestrip) == "function" then
@@ -115,7 +114,7 @@ function luautilities.strippedloadstring(code,name,forcestrip) -- not executed
end
if forcestrip and luautilities.stripcode or luautilities.alwaysstripcode then
register(name)
- return load(dump(code,true)), 0 -- not yet executed
+ return load(dump(code,true)), 0 -- not yet executes
else
return code, 0
end
@@ -199,12 +198,12 @@ function luautilities.checkmemory(previous,threshold,trace) -- threshold in MB
collectgarbage("collect")
local afterwards = collectgarbage("count")
if trace or tracememory then
- report_mem("previous %r MB, current %r MB, delta %r MB, threshold %r MB, afterwards %r MB",
+ report_mem("previous %i MB, current %i MB, delta %i MB, threshold %i MB, afterwards %i MB",
previous/1024,current/1024,delta/1024,threshold,afterwards)
end
return afterwards
elseif trace or tracememory then
- report_mem("previous %r MB, current %r MB, delta %r MB, threshold %r MB",
+ report_mem("previous %i MB, current %i MB, delta %i MB, threshold %i MB",
previous/1024,current/1024,delta/1024,threshold)
end
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-mrg.lua b/Master/texmf-dist/tex/context/base/mkiv/util-mrg.lua
index bc835bf563a..690188ef879 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/util-mrg.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-mrg.lua
@@ -113,7 +113,6 @@ local pack = digit * space^1 * operator4 * optionalspacing +
optionalspaces * separator * optionalspaces
local lines = emptyline^2 / "\n"
local spaces = (space * space) / " "
-local spaces = (space * space * space * space) / " "
----- spaces = ((space+eol)^1 ) / " "
local compact = Cs ( (
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-prs.lua b/Master/texmf-dist/tex/context/base/mkiv/util-prs.lua
index 08401f22275..48d59a9f3f7 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/util-prs.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-prs.lua
@@ -31,7 +31,6 @@ utilities.parsers.hashes = hashes
local digit = R("09")
local space = P(' ')
local equal = P("=")
-local colon = P(":")
local comma = P(",")
local lbrace = P("{")
local rbrace = P("}")
@@ -73,13 +72,11 @@ lpegpatterns.nested = nestedbraces -- no capture
lpegpatterns.argument = argument -- argument after e.g. =
lpegpatterns.content = content -- rest after e.g =
-local value = lbrace * C((nobrace + nestedbraces)^0) * rbrace
- + C((nestedbraces + (1-comma))^0)
+local value = P(lbrace * C((nobrace + nestedbraces)^0) * rbrace) + C((nestedbraces + (1-comma))^0)
local key = C((1-equal-comma)^1)
local pattern_a = (space+comma)^0 * (key * equal * value + key * C(""))
local pattern_c = (space+comma)^0 * (key * equal * value)
-local pattern_d = (space+comma)^0 * (key * (equal+colon) * value + key * C(""))
local key = C((1-space-equal-comma)^1)
local pattern_b = spaces * comma^0 * spaces * (key * ((spaces * equal * spaces * value) + C("")))
@@ -95,12 +92,10 @@ end
local pattern_a_s = (pattern_a/set)^1
local pattern_b_s = (pattern_b/set)^1
local pattern_c_s = (pattern_c/set)^1
-local pattern_d_s = (pattern_d/set)^1
patterns.settings_to_hash_a = pattern_a_s
patterns.settings_to_hash_b = pattern_b_s
patterns.settings_to_hash_c = pattern_c_s
-patterns.settings_to_hash_d = pattern_d_s
function parsers.make_settings_to_hash_pattern(set,how)
if how == "strict" then
@@ -131,18 +126,6 @@ function parsers.settings_to_hash(str,existing)
end
end
-function parsers.settings_to_hash_colon_too(str)
- if not str or str == "" then
- return { }
- elseif type(str) == "table" then
- return str
- else
- hash = { }
- lpegmatch(pattern_d_s,str)
- return hash
- end
-end
-
function parsers.settings_to_hash_tolerant(str,existing)
if not str or str == "" then
return { }
@@ -182,7 +165,7 @@ function parsers.settings_to_hash_strict(str,existing)
end
local separator = comma * space^0
-local value = lbrace * C((nobrace + nestedbraces)^0) * rbrace
+local value = P(lbrace * C((nobrace + nestedbraces)^0) * rbrace)
+ C((nestedbraces + (1-comma))^0)
local pattern = spaces * Ct(value*(separator*value)^0)
@@ -227,7 +210,7 @@ function parsers.settings_to_numbers(str)
return str
end
-local value = lbrace * C((nobrace + nestedbraces)^0) * rbrace
+local value = P(lbrace * C((nobrace + nestedbraces)^0) * rbrace)
+ C((nestedbraces + nestedbrackets + nestedparents + (1-comma))^0)
local pattern = spaces * Ct(value*(separator*value)^0)
@@ -259,7 +242,7 @@ function parsers.groupedsplitat(symbol,withaction)
if not pattern then
local symbols = S(symbol)
local separator = space^0 * symbols * space^0
- local value = lbrace * C((nobrace + nestedbraces)^0) * rbrace
+ local value = P(lbrace * C((nobrace + nestedbraces)^0) * rbrace)
+ C((nestedbraces + (1-(space^0*(symbols+P(-1)))))^0)
if withaction then
local withvalue = Carg(1) * value / function(f,s) return f(s) end
@@ -308,9 +291,7 @@ end
function parsers.hash_to_string(h,separator,yes,no,strict,omit)
if h then
- local t = { }
- local tn = 0
- local s = sortedkeys(h)
+ local t, tn, s = { }, 0, sortedkeys(h)
omit = omit and tohash(omit)
for i=1,#s do
local key = s[i]
@@ -376,8 +357,7 @@ end)
getmetatable(hashes.settings_to_set).__mode = "kv" -- could be an option (maybe sharing makes sense)
function parsers.simple_hash_to_string(h, separator)
- local t = { }
- local tn = 0
+ local t, tn = { }, 0
for k, v in sortedhash(h) do
if v then
tn = tn + 1
@@ -418,8 +398,7 @@ local function repeater(n,str)
if n == 1 then
return unpack(s)
else
- local t = { }
- local tn = 0
+ local t, tn = { }, 0
for i=1,n do
for j=1,#s do
tn = tn + 1
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-sac.lua b/Master/texmf-dist/tex/context/base/mkiv/util-sac.lua
index dc8ba72f1c3..b509d9a9b7c 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/util-sac.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-sac.lua
@@ -10,23 +10,15 @@ if not modules then modules = { } end modules ['util-sac'] = {
-- with bytes)
local byte, sub = string.byte, string.sub
-local tonumber = tonumber
+local extract = bit32 and bit32.extract
utilities = utilities or { }
local streams = { }
utilities.streams = streams
function streams.open(filename,zerobased)
- local f = filename and io.loaddata(filename)
- if f then
- return { f, 1, #f, zerobased or false }
- end
-end
-
-function streams.openstring(f,zerobased)
- if f then
- return { f, 1, #f, zerobased or false }
- end
+ local f = io.loaddata(filename)
+ return { f, 1, #f, zerobased or false }
end
function streams.close()
@@ -241,31 +233,31 @@ function streams.readinteger4le(f)
end
end
-function streams.readfixed2(f)
+function streams.readfixed4(f)
local i = f[2]
- local j = i + 1
+ local j = i + 3
f[2] = j + 1
- local a, b = byte(f[1],i,j)
+ local a, b, c, d = byte(f[1],i,j)
if a >= 0x80 then
- tonumber((a - 0x100) .. "." .. b)
+ return (0x100 * a + b - 0x10000) + (0x100 * c + d)/0x10000
else
- tonumber((a ) .. "." .. b)
+ return (0x100 * a + b ) + (0x100 * c + d)/0x10000
end
end
-function streams.readfixed4(f)
+function streams.readfixed2(f)
local i = f[2]
- local j = i + 3
+ local j = i + 1
f[2] = j + 1
- local a, b, c, d = byte(f[1],i,j)
+ local a, b = byte(f[1],i,j)
if a >= 0x80 then
- tonumber((0x100 * a + b - 0x10000) .. "." .. (0x100 * c + d))
+ return (a - 0x100) + b/0x100
else
- tonumber((0x100 * a + b ) .. "." .. (0x100 * c + d))
+ return (a ) + b/0x100
end
end
-if bit32 then
+if extract then
local extract = bit32.extract
local band = bit32.band
@@ -394,80 +386,3 @@ if sio and sio.readcardinal2 then
streams.readinteger = streams.readinteger1
end
-
-if sio and sio.readcardinaltable then
-
- local readcardinaltable = sio.readcardinaltable
- local readintegertable = sio.readintegertable
-
- function utilities.streams.readcardinaltable(f,n,b)
- local i = f[2]
- local s = f[3]
- local p = i + n * b
- if p > s then
- f[2] = s + 1
- else
- f[2] = p
- end
- return readcardinaltable(f[1],i,n,b)
- end
-
- function utilities.streams.readintegertable(f,n,b)
- local i = f[2]
- local s = f[3]
- local p = i + n * b
- if p > s then
- f[2] = s + 1
- else
- f[2] = p
- end
- return readintegertable(f[1],i,n,b)
- end
-
-else
-
- local readcardinal1 = streams.readcardinal1
- local readcardinal2 = streams.readcardinal2
- local readcardinal3 = streams.readcardinal3
- local readcardinal4 = streams.readcardinal4
-
- function streams.readcardinaltable(f,n,b)
- local i = f[2]
- local s = f[3]
- local p = i + n * b
- if p > s then
- f[2] = s + 1
- else
- f[2] = p
- end
- local t = { }
- if b == 1 then for i=1,n do t[i] = readcardinal1(f[1],i) end
- elseif b == 2 then for i=1,n do t[i] = readcardinal2(f[1],i) end
- elseif b == 3 then for i=1,n do t[i] = readcardinal3(f[1],i) end
- elseif b == 4 then for i=1,n do t[i] = readcardinal4(f[1],i) end end
- return t
- end
-
- local readinteger1 = streams.readinteger1
- local readinteger2 = streams.readinteger2
- local readinteger3 = streams.readinteger3
- local readinteger4 = streams.readinteger4
-
- function streams.readintegertable(f,n,b)
- local i = f[2]
- local s = f[3]
- local p = i + n * b
- if p > s then
- f[2] = s + 1
- else
- f[2] = p
- end
- local t = { }
- if b == 1 then for i=1,n do t[i] = readinteger1(f[1],i) end
- elseif b == 2 then for i=1,n do t[i] = readinteger2(f[1],i) end
- elseif b == 3 then for i=1,n do t[i] = readinteger3(f[1],i) end
- elseif b == 4 then for i=1,n do t[i] = readinteger4(f[1],i) end end
- return t
- end
-
-end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-seq.lua b/Master/texmf-dist/tex/context/base/mkiv/util-seq.lua
index e7a503fafcd..d302ff276f1 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/util-seq.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-seq.lua
@@ -17,39 +17,26 @@ use locals to refer to them when compiling the chain.</p>
-- todo: protect groups (as in tasks)
-local gsub, gmatch = string.gsub, string.gmatch
-local concat, sortedkeys = table.concat, table.sortedkeys
-local type, load, next, tostring = type, load, next, tostring
+local gsub, concat, gmatch = string.gsub, table.concat, string.gmatch
+local type, load = type, load
-utilities = utilities or { }
-local tables = utilities.tables
-local allocate = utilities.storage.allocate
+utilities = utilities or { }
+local tables = utilities.tables
+local allocate = utilities.storage.allocate
-local formatters = string.formatters
-local replacer = utilities.templates.replacer
+local formatters = string.formatters
-local trace_used = false
-local trace_detail = false
-local report = logs.reporter("sequencer")
-local usedcount = 0
-local usednames = { }
+local sequencers = { }
+utilities.sequencers = sequencers
-trackers.register("sequencers.used", function(v) trace_used = true end)
-trackers.register("sequencers.detail",function(v) trace_detail = true end)
-
-local sequencers = { }
-utilities.sequencers = sequencers
-
-local functions = allocate()
-sequencers.functions = functions
+local functions = allocate()
+sequencers.functions = functions
local removevalue = tables.removevalue
local replacevalue = tables.replacevalue
local insertaftervalue = tables.insertaftervalue
local insertbeforevalue = tables.insertbeforevalue
-local usedsequences = { }
-
local function validaction(action)
if type(action) == "string" then
local g = _G
@@ -76,11 +63,9 @@ function sequencers.new(t) -- was reset
gskip = { },
dirty = true,
runner = nil,
- steps = 0,
}
if t then
s.arguments = t.arguments
- s.templates = t.templates
s.returnvalues = t.returnvalues
s.results = t.results
local name = t.name
@@ -101,142 +86,120 @@ function sequencers.new(t) -- was reset
end
function sequencers.prependgroup(t,group,where)
- if t and group then
- t = known[t]
- if t then
- local order = t.order
- removevalue(order,group)
- insertbeforevalue(order,where,group)
- t.list[group] = { }
- t.dirty = true
- t.runner = nil
- end
+ t = known[t]
+ if t then
+ local order = t.order
+ removevalue(order,group)
+ insertbeforevalue(order,where,group)
+ t.list[group] = { }
+ t.dirty = true
+ t.runner = nil
end
end
function sequencers.appendgroup(t,group,where)
- if t and group then
- t = known[t]
- if t then
- local order = t.order
- removevalue(order,group)
- insertaftervalue(order,where,group)
- t.list[group] = { }
- t.dirty = true
- t.runner = nil
- end
+ t = known[t]
+ if t then
+ local order = t.order
+ removevalue(order,group)
+ insertaftervalue(order,where,group)
+ t.list[group] = { }
+ t.dirty = true
+ t.runner = nil
end
end
function sequencers.prependaction(t,group,action,where,kind,force)
- if t and group and action then
- t = known[t]
- if t then
- local g = t.list[group]
- if g and (force or validaction(action)) then
- removevalue(g,action)
- insertbeforevalue(g,where,action)
- t.kind[action] = kind
- t.dirty = true
- t.runner = nil
- end
+ t = known[t]
+ if t then
+ local g = t.list[group]
+ if g and (force or validaction(action)) then
+ removevalue(g,action)
+ insertbeforevalue(g,where,action)
+ t.kind[action] = kind
+ t.dirty = true
+ t.runner = nil
end
end
end
function sequencers.appendaction(t,group,action,where,kind,force)
- if t and group and action then
- t = known[t]
- if t then
- local g = t.list[group]
- if g and (force or validaction(action)) then
- removevalue(g,action)
- insertaftervalue(g,where,action)
- t.kind[action] = kind
- t.dirty = true
- t.runner = nil
- end
+ t = known[t]
+ if t then
+ local g = t.list[group]
+ if g and (force or validaction(action)) then
+ removevalue(g,action)
+ insertaftervalue(g,where,action)
+ t.kind[action] = kind
+ t.dirty = true
+ t.runner = nil
end
end
end
function sequencers.enableaction(t,action)
- if t and action then
- t = known[t]
- if t then
- t.askip[action] = false
- t.dirty = true
- t.runner = nil
- end
+ t = known[t]
+ if t then
+ t.askip[action] = false
+ t.dirty = true
+ t.runner = nil
end
end
function sequencers.disableaction(t,action)
- if t and action then
- t = known[t]
- if t then
- t.askip[action] = true
- t.dirty = true
- t.runner = nil
- end
+ t = known[t]
+ if t then
+ t.askip[action] = true
+ t.dirty = true
+ t.runner = nil
end
end
function sequencers.enablegroup(t,group)
- if t and group then
- t = known[t]
- if t then
- t.gskip[group] = false
- t.dirty = true
- t.runner = nil
- end
+ t = known[t]
+ if t then
+ t.gskip[action] = false
+ t.dirty = true
+ t.runner = nil
end
end
function sequencers.disablegroup(t,group)
- if t and group then
- t = known[t]
- if t then
- t.gskip[group] = true
- t.dirty = true
- t.runner = nil
- end
+ t = known[t]
+ if t then
+ t.gskip[action] = true
+ t.dirty = true
+ t.runner = nil
end
end
function sequencers.setkind(t,action,kind)
- if t and action then
- t = known[t]
- if t then
- t.kind[action] = kind
- t.dirty = true
- t.runner = nil
- end
+ t = known[t]
+ if t then
+ t.kind[action] = kind
+ t.dirty = true
+ t.runner = nil
end
end
function sequencers.removeaction(t,group,action,force)
- if t and group and action then
- t = known[t]
- local g = t and t.list[group]
- if g and (force or validaction(action)) then
- removevalue(g,action)
- t.dirty = true
- t.runner = nil
- end
+ t = known[t]
+ local g = t and t.list[group]
+ if g and (force or validaction(action)) then
+ removevalue(g,action)
+ t.dirty = true
+ t.runner = nil
end
end
function sequencers.replaceaction(t,group,oldaction,newaction,force)
- if t and group and oldaction and newaction then
- t = known[t]
- if t then
- local g = t.list[group]
- if g and (force or validaction(oldaction)) then
- replacevalue(g,oldaction,newaction)
- t.dirty = true
- t.runner = nil
- end
+ t = known[t]
+ if t then
+ local g = t.list[group]
+ if g and (force or validaction(oldaction)) then
+ replacevalue(g,oldaction,newaction)
+ t.dirty = true
+ t.runner = nil
end
end
end
@@ -246,19 +209,9 @@ local function localize(str)
end
local function construct(t)
- local list = t.list
- local order = t.order
- local kind = t.kind
- local gskip = t.gskip
- local askip = t.askip
- local name = t.name or "?"
- local arguments = t.arguments or "..."
- local returnvalues = t.returnvalues
- local results = t.results
- local variables = { }
- local calls = { }
- local n = 0
- usedcount = usedcount + 1
+ local list, order, kind, gskip, askip = t.list, t.order, t.kind, t.gskip, t.askip
+ local arguments, returnvalues, results = t.arguments or "...", t.returnvalues, t.results
+ local variables, calls, n = { }, { }, 0
for i=1,#order do
local group = order[i]
if not gskip[group] then
@@ -266,11 +219,6 @@ local function construct(t)
for i=1,#actions do
local action = actions[i]
if not askip[action] then
- if trace_used then
- local action = tostring(action)
- report("%02i: category %a, group %a, action %a",usedcount,name,group,action)
- usednames[action] = true
- end
local localized
if type(action) == "function" then
local name = localize(tostring(action))
@@ -294,7 +242,6 @@ local function construct(t)
end
end
t.dirty = false
- t.steps = n
if n == 0 then
t.compiled = ""
else
@@ -306,27 +253,30 @@ local function construct(t)
t.compiled = formatters["%s\nreturn function(%s)\n%s\nend"](variables,arguments,calls)
end
end
+-- print(t.compiled)
return t.compiled -- also stored so that we can trace
end
sequencers.tostring = construct
sequencers.localize = localize
-compile = function(t,compiler,...) -- already referred to in sequencers.new
+compile = function(t,compiler,n) -- already referred to in sequencers.new
local compiled
if not t or type(t) == "string" then
+ -- weird ... t.compiled = t .. so
return false
end
if compiler then
- compiled = compiler(t,...)
+ compiled = compiler(t,n)
t.compiled = compiled
else
- compiled = construct(t,...)
+ compiled = construct(t,n)
end
local runner
if compiled == "" then
runner = false
else
+-- inspect(compiled)
runner = compiled and load(compiled)() -- we can use loadstripped here
end
t.runner = runner
@@ -335,45 +285,52 @@ end
sequencers.compile = compile
-function sequencers.nodeprocessor(t,nofarguments)
- --
- local templates = nofarguments
- --
- if type(templates) ~= "table" then
- return ""
- end
- --
- local replacers = { }
- for k, v in next, templates do
- replacers[k] = replacer(v)
- end
- --
- local construct = replacers.process
- local step = replacers.step
- if not construct or not step then
- return ""
- end
- --
- local calls = { }
- local aliases = { }
- local ncalls = 0
- local naliases = 0
- local f_alias = formatters["local %s = %s"]
- --
- local list = t.list
- local order = t.order
- local kind = t.kind
- local gskip = t.gskip
- local askip = t.askip
- local name = t.name or "?"
- local steps = 0
- usedcount = usedcount + 1
- --
- if trace_detail then
- naliases = naliases + 1
- aliases[naliases] = formatters["local report = logs.reporter('sequencer',%q)"](name)
- ncalls = ncalls + 1
- calls[ncalls] = [[report("start")]]
+-- we used to deal with tail as well but now that the lists are always
+-- double linked and the kernel function no longer expect tail as
+-- argument we stick to head and done (done can probably also go
+-- as luatex deals with return values efficiently now .. in the
+-- past there was some copying involved, but no longer)
+
+-- todo: use sequencer (can have arguments and returnvalues etc now)
+
+local template_yes_state = [[
+%s
+return function(head%s)
+ local ok, done = false, false
+%s
+ return head, done
+end]]
+
+local template_yes_nostate = [[
+%s
+return function(head%s)
+%s
+ return head, true
+end]]
+
+local template_nop = [[
+return function()
+ return false, false
+end]]
+
+function sequencers.nodeprocessor(t,nofarguments) -- todo: handle 'kind' in plug into tostring
+ local list, order, kind, gskip, askip = t.list, t.order, t.kind, t.gskip, t.askip
+ local nostate = t.nostate
+ local vars, calls, args, n = { }, { }, nil, 0
+ if nofarguments == 0 then
+ args = ""
+ elseif nofarguments == 1 then
+ args = ",one"
+ elseif nofarguments == 2 then
+ args = ",one,two"
+ elseif nofarguments == 3 then -- from here on probably slower than ...
+ args = ",one,two,three"
+ elseif nofarguments == 4 then
+ args = ",one,two,three,four"
+ elseif nofarguments == 5 then
+ args = ",one,two,three,four,five"
+ else
+ args = ",..."
end
for i=1,#order do
local group = order[i]
@@ -382,47 +339,28 @@ function sequencers.nodeprocessor(t,nofarguments)
for i=1,#actions do
local action = actions[i]
if not askip[action] then
- steps = steps + 1
- if trace_used or trace_detail then
- local action = tostring(action)
- report("%02i: category %a, group %a, action %a",usedcount,name,group,action)
- usednames[action] = true
- end
- if trace_detail then
- ncalls = ncalls + 1
- calls[ncalls] = formatters[ [[report(" step %a, action %a")]] ](steps,tostring(action))
- end
local localized = localize(action)
- local onestep = replacers[kind[action]] or step
- naliases = naliases + 1
- ncalls = ncalls + 1
- aliases[naliases] = f_alias(localized,action)
- calls [ncalls] = onestep { action = localized }
+ n = n + 1
+ vars[n] = formatters["local %s = %s"](localized,action)
+ -- only difference with tostring is kind and rets (why no return)
+ if nostate then
+ if kind[action] == "nohead" then
+ calls[n] = formatters[" %s(head%s)"](localized,args)
+ else
+ calls[n] = formatters[" head = %s(head%s)"](localized,args)
+ end
+ else
+ if kind[action] == "nohead" then
+ calls[n] = formatters[" ok = %s(head%s) if ok then done = true end"](localized,args)
+ else
+ calls[n] = formatters[" head, ok = %s(head%s) if ok then done = true end"](localized,args)
+ end
+ end
end
end
end
end
- t.steps = steps
- local processor
- if steps == 0 then
- processor = templates.default or construct { }
- else
- if trace_detail then
- ncalls = ncalls + 1
- calls[ncalls] = [[report("stop")]]
- end
- processor = construct {
- localize = concat(aliases,"\n"),
- actions = concat(calls,"\n"),
- }
- end
- -- processor = "print('running : " .. (t.name or "?") .. "')\n" .. processor
+ local processor = #calls > 0 and formatters[nostate and template_yes_nostate or template_yes_state](concat(vars,"\n"),args,concat(calls,"\n")) or template_nop
-- print(processor)
return processor
end
-
-statistics.register("used sequences",function()
- if next(usednames) then
- return concat(sortedkeys(usednames)," ")
- end
-end)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-sha.lua b/Master/texmf-dist/tex/context/base/mkiv/util-sha.lua
index d84e46975fa..3e786a834f6 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/util-sha.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-sha.lua
@@ -8,13 +8,6 @@ if not modules then modules = { } end modules ['util-sha'] = {
comment3 = "due to bit operators this code only works in lua(tex) 5.3",
}
-if sha2 then
- if utilities then
- utilities.sha2 = sha2
- end
- return sha2
-end
-
-- This doesn't work in luajittex ... maybe some day it will have bit operators too.
-- I'm not really in the mood for making this module aware (by compiling the
-- function depending on the engine that I use but I probably won't use luajittex in
@@ -284,10 +277,10 @@ digest[224] = digest[256]
digest[384] = digest[512]
local finalize = {
- [224] = function(hash,tohex) local s = packstring(">I4I4I4I4I4I4I4", unpack(hash)) return tohex and tohex(s) or s end, -- # 56
- [256] = function(hash,tohex) local s = packstring(">I4I4I4I4I4I4I4I4",unpack(hash)) return tohex and tohex(s) or s end, -- # 64
- [384] = function(hash,tohex) local s = packstring(">I8I8I8I8I8I8", unpack(hash)) return tohex and tohex(s) or s end, -- # 96
- [512] = function(hash,tohex) local s = packstring(">I8I8I8I8I8I8I8I8",unpack(hash)) return tohex and tohex(s) or s end, -- # 128
+ [224] = function(hash,tohex) return tohex(packstring(">I4I4I4I4I4I4I4", unpack(hash))) end, -- # 56
+ [256] = function(hash,tohex) return tohex(packstring(">I4I4I4I4I4I4I4I4",unpack(hash))) end, -- # 64
+ [384] = function(hash,tohex) return tohex(packstring(">I8I8I8I8I8I8", unpack(hash))) end, -- # 96
+ [512] = function(hash,tohex) return tohex(packstring(">I8I8I8I8I8I8I8I8",unpack(hash))) end, -- # 128
}
local hash = { }
@@ -300,18 +293,14 @@ local function hashed(str,method,tohex)
end
local sha2 = {
- digest224 = function(str) return hashed(str,224) end,
- digest256 = function(str) return hashed(str,256) end,
- digest384 = function(str) return hashed(str,384) end,
- digest512 = function(str) return hashed(str,512) end,
- hash224 = function(str) return hashed(str,224,tohex) end,
- hash256 = function(str) return hashed(str,256,tohex) end,
- hash384 = function(str) return hashed(str,384,tohex) end,
- hash512 = function(str) return hashed(str,512,tohex) end,
- HASH224 = function(str) return hashed(str,224,toHEX) end,
- HASH256 = function(str) return hashed(str,256,toHEX) end,
- HASH384 = function(str) return hashed(str,384,toHEX) end,
- HASH512 = function(str) return hashed(str,512,toHEX) end,
+ hash224 = function(str) return hashed(str,224,tohex) end,
+ hash256 = function(str) return hashed(str,256,tohex) end,
+ hash384 = function(str) return hashed(str,384,tohex) end,
+ hash512 = function(str) return hashed(str,512,tohex) end,
+ HASH224 = function(str) return hashed(str,224,toHEX) end,
+ HASH256 = function(str) return hashed(str,256,toHEX) end,
+ HASH384 = function(str) return hashed(str,384,toHEX) end,
+ HASH512 = function(str) return hashed(str,512,toHEX) end,
}
-- local setmetatableindex = table.setmetatableindex
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-soc-imp-copas.lua b/Master/texmf-dist/tex/context/base/mkiv/util-soc-imp-copas.lua
deleted file mode 100644
index 3e66e588838..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/util-soc-imp-copas.lua
+++ /dev/null
@@ -1,931 +0,0 @@
--- original file : copas.lua
--- for more into : see util-soc.lua
-
-local socket = socket or require("socket")
-local ssl = ssl or nil -- only loaded upon demand
-
-local WATCH_DOG_TIMEOUT = 120
-local UDP_DATAGRAM_MAX = 8192
-
-local type, next, pcall, getmetatable, tostring = type, next, pcall, getmetatable, tostring
-local min, max, random = math.min, math.max, math.random
-local find = string.find
-local insert, remove = table.insert, table.remove
-
-local gettime = socket.gettime
-local selectsocket = socket.select
-
-local createcoroutine = coroutine.create
-local resumecoroutine = coroutine.resume
-local yieldcoroutine = coroutine.yield
-local runningcoroutine = coroutine.running
-
--- Redefines LuaSocket functions with coroutine safe versions (this allows the use
--- of socket.http from within copas).
-
--- Meta information is public even if beginning with an "_"
-
-local function report(fmt,first,...)
- if logs then
- report = logs and logs.reporter("copas")
- report(fmt,first,...)
- elseif fmt then
- fmt = "copas: " .. fmt
- if first then
- print(format(fmt,first,...))
- else
- print(fmt)
- end
- end
-end
-
-local copas = {
-
- _COPYRIGHT = "Copyright (C) 2005-2016 Kepler Project",
- _DESCRIPTION = "Coroutine Oriented Portable Asynchronous Services",
- _VERSION = "Copas 2.0.1",
-
- autoclose = true,
- running = false,
-
- report = report,
-
-}
-
-local function statushandler(status, ...)
- if status then
- return ...
- end
- local err = (...)
- if type(err) == "table" then
- err = err[1]
- end
- report("error: %s",tostring(err))
- return nil, err
-end
-
-function socket.protect(func)
- return function(...)
- return statushandler(pcall(func,...))
- end
-end
-
-function socket.newtry(finalizer)
- return function (...)
- local status = (...)
- if not status then
- local detail = select(2,...)
- pcall(finalizer,detail)
- report("error: %s",tostring(detail))
- return
- end
- return ...
- end
-end
-
--- Simple set implementation based on LuaSocket's tinyirc.lua example
--- adds a FIFO queue for each value in the set
-
-local function newset()
- local reverse = { }
- local set = { }
- local queue = { }
- setmetatable(set, {
- __index = {
- insert =
- function(set, value)
- if not reverse[value] then
- local n = #set +1
- set[n] = value
- reverse[value] = n
- end
- end,
- remove =
- function(set, value)
- local index = reverse[value]
- if index then
- reverse[value] = nil
- local n = #set
- local top = set[n]
- set[n] = nil
- if top ~= value then
- reverse[top] = index
- set[index] = top
- end
- end
- end,
- push =
- function (set, key, itm)
- local entry = queue[key]
- if entry == nil then -- hm can it be false then?
- queue[key] = { itm }
- else
- entry[#entry + 1] = itm
- end
- end,
- pop =
- function (set, key)
- local top = queue[key]
- if top ~= nil then
- local ret = remove(top,1)
- if top[1] == nil then
- queue[key] = nil
- end
- return ret
- end
- end
- }
- } )
- return set
-end
-
-local _sleeping = {
- times = { }, -- list with wake-up times
- cos = { }, -- list with coroutines, index matches the 'times' list
- lethargy = { }, -- list of coroutines sleeping without a wakeup time
-
- insert =
- function()
- end,
- remove =
- function()
- end,
- push =
- function(self, sleeptime, co)
- if not co then
- return
- end
- if sleeptime < 0 then
- --sleep until explicit wakeup through copas.wakeup
- self.lethargy[co] = true
- return
- else
- sleeptime = gettime() + sleeptime
- end
- local t = self.times
- local c = self.cos
- local i = 1
- local n = #t
- while i <= n and t[i] <= sleeptime do
- i = i + 1
- end
- insert(t,i,sleeptime)
- insert(c,i,co)
- end,
- getnext =
- -- returns delay until next sleep expires, or nil if there is none
- function(self)
- local t = self.times
- local delay = t[1] and t[1] - gettime() or nil
- return delay and max(delay, 0) or nil
- end,
- pop =
- -- find the thread that should wake up to the time
- function(self, time)
- local t = self.times
- local c = self.cos
- if #t == 0 or time < t[1] then
- return
- end
- local co = c[1]
- remove(t,1)
- remove(c,1)
- return co
- end,
- wakeup =
- function(self, co)
- local let = self.lethargy
- if let[co] then
- self:push(0, co)
- let[co] = nil
- else
- local c = self.cos
- local t = self.times
- for i=1,#c do
- if c[i] == co then
- remove(c,i)
- remove(t,i)
- self:push(0, co)
- return
- end
- end
- end
- end
-}
-
-local _servers = newset() -- servers being handled
-local _reading = newset() -- sockets currently being read
-local _writing = newset() -- sockets currently being written
-
-local _reading_log = { }
-local _writing_log = { }
-
-local _is_timeout = { -- set of errors indicating a timeout
- timeout = true, -- default LuaSocket timeout
- wantread = true, -- LuaSec specific timeout
- wantwrite = true, -- LuaSec specific timeout
-}
-
--- Coroutine based socket I/O functions.
-
-local function isTCP(socket)
- return not find(tostring(socket),"^udp")
-end
-
--- Reads a pattern from a client and yields to the reading set on timeouts UDP: a
--- UDP socket expects a second argument to be a number, so it MUST be provided as
--- the 'pattern' below defaults to a string. Will throw a 'bad argument' error if
--- omitted.
-
-local function copasreceive(client, pattern, part)
- if not pattern or pattern == "" then
- pattern = "*l"
- end
- local current_log = _reading_log
- local s, err
- repeat
- s, err, part = client:receive(pattern, part)
- if s or (not _is_timeout[err]) then
- current_log[client] = nil
- return s, err, part
- end
- if err == "wantwrite" then
- current_log = _writing_log
- current_log[client] = gettime()
- yieldcoroutine(client, _writing)
- else
- current_log = _reading_log
- current_log[client] = gettime()
- yieldcoroutine(client, _reading)
- end
- until false
-end
-
--- Receives data from a client over UDP. Not available for TCP. (this is a copy of
--- receive() method, adapted for receivefrom() use).
-
-local function copasreceivefrom(client, size)
- local s, err, port
- if not size or size == 0 then
- size = UDP_DATAGRAM_MAX
- end
- repeat
- -- upon success err holds ip address
- s, err, port = client:receivefrom(size)
- if s or err ~= "timeout" then
- _reading_log[client] = nil
- return s, err, port
- end
- _reading_log[client] = gettime()
- yieldcoroutine(client, _reading)
- until false
-end
-
--- Same as above but with special treatment when reading chunks, unblocks on any
--- data received.
-
-local function copasreceivepartial(client, pattern, part)
- if not pattern or pattern == "" then
- pattern = "*l"
- end
- local logger = _reading_log
- local queue = _reading
- local s, err
- repeat
- s, err, part = client:receive(pattern, part)
- if s or (type(pattern) == "number" and part ~= "" and part) or not _is_timeout[err] then
- logger[client] = nil
- return s, err, part
- end
- if err == "wantwrite" then
- logger = _writing_log
- queue = _writing
- else
- logger = _reading_log
- queue = _reading
- end
- logger[client] = gettime()
- yieldcoroutine(client, queue)
- until false
-end
-
--- Sends data to a client. The operation is buffered and yields to the writing set
--- on timeouts Note: from and to parameters will be ignored by/for UDP sockets
-
-local function copassend(client, data, from, to)
- if not from then
- from = 1
- end
- local lastIndex = from - 1
- local logger = _writing_log
- local queue = _writing
- local s, err
- repeat
- s, err, lastIndex = client:send(data, lastIndex + 1, to)
- -- Adds extra coroutine swap and garantees that high throughput doesn't take
- -- other threads to starvation.
- if random(100) > 90 then
- logger[client] = gettime()
- yieldcoroutine(client, queue)
- end
- if s or not _is_timeout[err] then
- logger[client] = nil
- return s, err,lastIndex
- end
- if err == "wantread" then
- logger = _reading_log
- queue = _reading
- else
- logger = _writing_log
- queue = _writing
- end
- logger[client] = gettime()
- yieldcoroutine(client, queue)
- until false
-end
-
--- Sends data to a client over UDP. Not available for TCP. (this is a copy of send()
--- method, adapted for sendto() use).
-
-local function copassendto(client, data, ip, port)
- repeat
- local s, err = client:sendto(data, ip, port)
- -- Adds extra coroutine swap and garantees that high throughput doesn't
- -- take other threads to starvation.
- if random(100) > 90 then
- _writing_log[client] = gettime()
- yieldcoroutine(client, _writing)
- end
- if s or err ~= "timeout" then
- _writing_log[client] = nil
- return s, err
- end
- _writing_log[client] = gettime()
- yieldcoroutine(client, _writing)
- until false
-end
-
--- Waits until connection is completed.
-
-local function copasconnect(skt, host, port)
- skt:settimeout(0)
- local ret, err, tried_more_than_once
- repeat
- ret, err = skt:connect (host, port)
- -- A non-blocking connect on Windows results in error "Operation already in
- -- progress" to indicate that it is completing the request async. So
- -- essentially it is the same as "timeout".
- if ret or (err ~= "timeout" and err ~= "Operation already in progress") then
- -- Once the async connect completes, Windows returns the error "already
- -- connected" to indicate it is done, so that error should be ignored.
- -- Except when it is the first call to connect, then it was already
- -- connected to something else and the error should be returned.
- if not ret and err == "already connected" and tried_more_than_once then
- ret = 1
- err = nil
- end
- _writing_log[skt] = nil
- return ret, err
- end
- tried_more_than_once = tried_more_than_once or true
- _writing_log[skt] = gettime()
- yieldcoroutine(skt, _writing)
- until false
-end
-
--- Peforms an (async) ssl handshake on a connected TCP client socket. Replacec all
--- previous socket references, with the returned new ssl wrapped socket Throws error
--- and does not return nil+error, as that might silently fail in code like this.
-
-local function copasdohandshake(skt, sslt) -- extra ssl parameters
- if not ssl then
- ssl = require("ssl")
- end
- if not ssl then
- report("error: no ssl library")
- return
- end
- local nskt, err = ssl.wrap(skt, sslt)
- if not nskt then
- report("error: %s",tostring(err))
- return
- end
- nskt:settimeout(0)
- local queue
- repeat
- local success, err = nskt:dohandshake()
- if success then
- return nskt
- elseif err == "wantwrite" then
- queue = _writing
- elseif err == "wantread" then
- queue = _reading
- else
- report("error: %s",tostring(err))
- return
- end
- yieldcoroutine(nskt, queue)
- until false
-end
-
--- Flushes a client write buffer.
-
-local function copasflush(client)
-end
-
--- Public.
-
-copas.connect = copassconnect
-copas.send = copassend
-copas.sendto = copassendto
-copas.receive = copasreceive
-copas.receivefrom = copasreceivefrom
-copas.copasreceivepartial = copasreceivepartial
-copas.copasreceivePartial = copasreceivepartial
-copas.dohandshake = copasdohandshake
-copas.flush = copasflush
-
--- Wraps a TCP socket to use Copas methods (send, receive, flush and settimeout).
-
-local function _skt_mt_tostring(self)
- return tostring(self.socket) .. " (copas wrapped)"
-end
-
-local _skt_mt_tcp_index = {
- send =
- function(self, data, from, to)
- return copassend (self.socket, data, from, to)
- end,
- receive =
- function (self, pattern, prefix)
- if self.timeout == 0 then
- return copasreceivePartial(self.socket, pattern, prefix)
- else
- return copasreceive(self.socket, pattern, prefix)
- end
- end,
-
- flush =
- function (self)
- return copasflush(self.socket)
- end,
-
- settimeout =
- function (self, time)
- self.timeout = time
- return true
- end,
- -- TODO: socket.connect is a shortcut, and must be provided with an alternative
- -- if ssl parameters are available, it will also include a handshake
- connect =
- function(self, ...)
- local res, err = copasconnect(self.socket, ...)
- if res and self.ssl_params then
- res, err = self:dohandshake()
- end
- return res, err
- end,
- close =
- function(self, ...)
- return self.socket:close(...)
- end,
- -- TODO: socket.bind is a shortcut, and must be provided with an alternative
- bind =
- function(self, ...)
- return self.socket:bind(...)
- end,
- -- TODO: is this DNS related? hence blocking?
- getsockname =
- function(self, ...)
- return self.socket:getsockname(...)
- end,
- getstats =
- function(self, ...)
- return self.socket:getstats(...)
- end,
- setstats =
- function(self, ...)
- return self.socket:setstats(...)
- end,
- listen =
- function(self, ...)
- return self.socket:listen(...)
- end,
- accept =
- function(self, ...)
- return self.socket:accept(...)
- end,
- setoption =
- function(self, ...)
- return self.socket:setoption(...)
- end,
- -- TODO: is this DNS related? hence blocking?
- getpeername =
- function(self, ...)
- return self.socket:getpeername(...)
- end,
- shutdown =
- function(self, ...)
- return self.socket:shutdown(...)
- end,
- dohandshake =
- function(self, sslt)
- self.ssl_params = sslt or self.ssl_params
- local nskt, err = copasdohandshake(self.socket, self.ssl_params)
- if not nskt then
- return nskt, err
- end
- self.socket = nskt
- return self
- end,
-}
-
-local _skt_mt_tcp = {
- __tostring = _skt_mt_tostring,
- __index = _skt_mt_tcp_index,
-}
-
--- wraps a UDP socket, copy of TCP one adapted for UDP.
-
-local _skt_mt_udp_index = {
- -- UDP sending is non-blocking, but we provide starvation prevention, so replace
- -- anyway.
- sendto =
- function (self, ...)
- return copassendto(self.socket,...)
- end,
- receive =
- function (self, size)
- return copasreceive(self.socket, size or UDP_DATAGRAM_MAX)
- end,
- receivefrom =
- function (self, size)
- return copasreceivefrom(self.socket, size or UDP_DATAGRAM_MAX)
- end,
- -- TODO: is this DNS related? hence blocking?
- setpeername =
- function(self, ...)
- return self.socket:getpeername(...)
- end,
- setsockname =
- function(self, ...)
- return self.socket:setsockname(...)
- end,
- -- do not close client, as it is also the server for udp.
- close =
- function(self, ...)
- return true
- end
-}
-
-local _skt_mt_udp = {
- __tostring = _skt_mt_tostring,
- __index = _skt_mt_udp_index,
-}
-
-for k, v in next, _skt_mt_tcp_index do
- if not _skt_mt_udp_index[k] then
- _skt_mt_udp_index[k] = v
- end
-end
-
--- Wraps a LuaSocket socket object in an async Copas based socket object.
-
--- @param skt the socket to wrap
--- @sslt (optional) Table with ssl parameters, use an empty table to use ssl with defaults
--- @return wrapped socket object
-
-local function wrap(skt, sslt)
- if getmetatable(skt) == _skt_mt_tcp or getmetatable(skt) == _skt_mt_udp then
- return skt -- already wrapped
- end
- skt:settimeout(0)
- if isTCP(skt) then
- return setmetatable ({ socket = skt, ssl_params = sslt }, _skt_mt_tcp)
- else
- return setmetatable ({ socket = skt }, _skt_mt_udp)
- end
-end
-
-copas.wrap = wrap
-
--- Wraps a handler in a function that deals with wrapping the socket and doing
--- the optional ssl handshake.
-
-function copas.handler(handler, sslparams)
- return function (skt,...)
- skt = wrap(skt)
- if sslparams then
- skt:dohandshake(sslparams)
- end
- return handler(skt,...)
- end
-end
-
--- Error handling (a handler per coroutine).
-
-local _errhandlers = { }
-
-function copas.setErrorHandler(err)
- local co = runningcoroutine()
- if co then
- _errhandlers[co] = err
- end
-end
-
-local function _deferror (msg, co, skt)
- report("%s (%s) (%s)", msg, tostring(co), tostring(skt))
-end
-
--- Thread handling
-
-local function _doTick (co, skt, ...)
- if not co then
- return
- end
-
- local ok, res, new_q = resumecoroutine(co, skt, ...)
-
- if ok and res and new_q then
- new_q:insert(res)
- new_q:push(res, co)
- else
- if not ok then
- pcall(_errhandlers[co] or _deferror, res, co, skt)
- end
- -- Do not auto-close UDP sockets, as the handler socket is also the server socket.
- if skt and copas.autoclose and isTCP(skt) then
- skt:close()
- end
- _errhandlers[co] = nil
- end
-end
-
--- Accepts a connection on socket input.
-
-local function _accept(input, handler)
- local client = input:accept()
- if client then
- client:settimeout(0)
- local co = createcoroutine(handler)
- _doTick (co, client)
- -- _reading:insert(client)
- end
- return client
-end
-
--- Handle threads on a queue.
-
-local function _tickRead(skt)
- _doTick(_reading:pop(skt), skt)
-end
-
-local function _tickWrite(skt)
- _doTick(_writing:pop(skt), skt)
-end
-
--- Adds a server/handler pair to Copas dispatcher.
-
-local function addTCPserver(server, handler, timeout)
- server:settimeout(timeout or 0)
- _servers[server] = handler
- _reading:insert(server)
-end
-
-local function addUDPserver(server, handler, timeout)
- server:settimeout(timeout or 0)
- local co = createcoroutine(handler)
- _reading:insert(server)
- _doTick(co, server)
-end
-
-function copas.addserver(server, handler, timeout)
- if isTCP(server) then
- addTCPserver(server, handler, timeout)
- else
- addUDPserver(server, handler, timeout)
- end
-end
-
-function copas.removeserver(server, keep_open)
- local s = server
- local mt = getmetatable(server)
- if mt == _skt_mt_tcp or mt == _skt_mt_udp then
- s = server.socket
- end
- _servers[s] = nil
- _reading:remove(s)
- if keep_open then
- return true
- end
- return server:close()
-end
-
--- Adds an new coroutine thread to Copas dispatcher. Create a coroutine that skips
--- the first argument, which is always the socket passed by the scheduler, but `nil`
--- in case of a task/thread
-
-function copas.addthread(handler, ...)
- local thread = createcoroutine(function(_, ...) return handler(...) end)
- _doTick(thread, nil, ...)
- return thread
-end
-
--- tasks registering
-
-local _tasks = { }
-
--- Lets tasks call the default _tick().
-
-local function addtaskRead(task)
- task.def_tick = _tickRead
- _tasks[task] = true
-end
-
--- Lets tasks call the default _tick().
-
-local function addtaskWrite(task)
- task.def_tick = _tickWrite
- _tasks[task] = true
-end
-
-local function tasks()
- return next, _tasks
-end
-
--- A task to check ready to read events.
-
-local _readable_t = {
- events =
- function(self)
- local i = 0
- return function ()
- i = i + 1
- return self._evs[i]
- end
- end,
- tick =
- function(self, input)
- local handler = _servers[input]
- if handler then
- input = _accept(input, handler)
- else
- _reading:remove(input)
- self.def_tick(input)
- end
- end
-}
-
-addtaskRead(_readable_t)
-
--- A task to check ready to write events.
-
-local _writable_t = {
- events =
- function(self)
- local i = 0
- return function()
- i = i + 1
- return self._evs[i]
- end
- end,
- tick =
- function(self, output)
- _writing:remove(output)
- self.def_tick(output)
- end
-}
-
-addtaskWrite(_writable_t)
-
---sleeping threads task
-
-local _sleeping_t = {
- tick = function(self, time, ...)
- _doTick(_sleeping:pop(time), ...)
- end
-}
-
--- yields the current coroutine and wakes it after 'sleeptime' seconds.
--- If sleeptime<0 then it sleeps until explicitly woken up using 'wakeup'
-function copas.sleep(sleeptime)
- yieldcoroutine((sleeptime or 0), _sleeping)
-end
-
--- Wakes up a sleeping coroutine 'co'.
-
-function copas.wakeup(co)
- _sleeping:wakeup(co)
-end
-
--- Checks for reads and writes on sockets
-
-local last_cleansing = 0
-
-local function _select(timeout)
-
- local now = gettime()
-
- local r_evs, w_evs, err = selectsocket(_reading, _writing, timeout)
-
- _readable_t._evs = r_evs
- _writable_t._evs = w_evs
-
- if (last_cleansing - now) > WATCH_DOG_TIMEOUT then
-
- last_cleansing = now
-
- -- Check all sockets selected for reading, and check how long they have been
- -- waiting for data already, without select returning them as readable.
-
- for skt, time in next, _reading_log do
-
- if not r_evs[skt] and (time - now) > WATCH_DOG_TIMEOUT then
-
- -- This one timedout while waiting to become readable, so move it in
- -- the readable list and try and read anyway, despite not having
- -- been returned by select.
-
- local n = #r_evs + 1
- _reading_log[skt] = nil
- r_evs[n] = skt
- r_evs[skt] = n
- end
- end
-
- -- Do the same for writing.
-
- for skt, time in next, _writing_log do
- if not w_evs[skt] and (time - now) > WATCH_DOG_TIMEOUT then
- local n = #w_evs + 1
- _writing_log[skt] = nil
- w_evs[n] = skt
- w_evs[skt] = n
- end
- end
-
- end
-
- if err == "timeout" and #r_evs + #w_evs > 0 then
- return nil
- else
- return err
- end
-
-end
-
--- Check whether there is something to do. It returns false if there are no sockets
--- for read/write nor tasks scheduled (which means Copas is in an empty spin).
-
-local function copasfinished()
- return not (next(_reading) or next(_writing) or _sleeping:getnext())
-end
-
--- Dispatcher loop step. It listens to client requests and handles them and returns
--- false if no data was handled (timeout), or true if there was data handled (or nil
--- + error message).
-
-local function copasstep(timeout)
- _sleeping_t:tick(gettime())
-
- local nextwait = _sleeping:getnext()
- if nextwait then
- timeout = timeout and min(nextwait,timeout) or nextwait
- elseif copasfinished() then
- return false
- end
-
- local err = _select(timeout)
- if err then
- if err == "timeout" then
- return false
- end
- return nil, err
- end
-
- for task in tasks() do
- for event in task:events() do
- task:tick(event)
- end
- end
- return true
-end
-
-copas.finished = copasfinished
-copas.step = copasstep
-
--- Dispatcher endless loop. It listens to client requests and handles them forever.
-
-function copas.loop(timeout)
- copas.running = true
- while not copasfinished() do
- copasstep(timeout)
- end
- copas.running = false
-end
-
--- _G.copas = copas
-
-package.loaded["copas"] = copas
-
-return copas
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-soc-imp-ftp.lua b/Master/texmf-dist/tex/context/base/mkiv/util-soc-imp-ftp.lua
deleted file mode 100644
index 124c8d4ee71..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/util-soc-imp-ftp.lua
+++ /dev/null
@@ -1,402 +0,0 @@
--- original file : ftp.lua
--- for more into : see util-soc.lua
-
-local setmetatable, type, next = setmetatable, type, next
-local find, format, gsub, match = string.find, string.format, string.gsub, string.match
-local concat = table.concat
-local mod = math.mod
-
-local socket = socket or require("socket")
-local url = socket.url or require("socket.url")
-local tp = socket.tp or require("socket.tp")
-local ltn12 = ltn12 or require("ltn12")
-
-local tcpsocket = socket.tcp
-local trysocket = socket.try
-local skipsocket = socket.skip
-local sinksocket = socket.sink
-local selectsocket = socket.select
-local bindsocket = socket.bind
-local newtrysocket = socket.newtry
-local sourcesocket = socket.source
-local protectsocket = socket.protect
-
-local parseurl = url.parse
-local unescapeurl = url.unescape
-
-local pumpall = ltn12.pump.all
-local pumpstep = ltn12.pump.step
-local sourcestring = ltn12.source.string
-local sinktable = ltn12.sink.table
-
-local ftp = {
- TIMEOUT = 60,
- USER = "ftp",
- PASSWORD = "anonymous@anonymous.org",
-}
-
-socket.ftp = ftp
-
-local PORT = 21
-
-local methods = { }
-local mt = { __index = methods }
-
-function ftp.open(server, port, create)
- local tp = trysocket(tp.connect(server, port or PORT, ftp.TIMEOUT, create))
- local f = setmetatable({ tp = tp }, metat)
- f.try = newtrysocket(function() f:close() end)
- return f
-end
-
-function methods.portconnect(self)
- local try = self.try
- local server = self.server
- try(server:settimeout(ftp.TIMEOUT))
- self.data = try(server:accept())
- try(self.data:settimeout(ftp.TIMEOUT))
-end
-
-function methods.pasvconnect(self)
- local try = self.try
- self.data = try(tcpsocket())
- self(self.data:settimeout(ftp.TIMEOUT))
- self(self.data:connect(self.pasvt.address, self.pasvt.port))
-end
-
-function methods.login(self, user, password)
- local try = self.try
- local tp = self.tp
- try(tp:command("user", user or ftp.USER))
- local code, reply = try(tp:check{"2..", 331})
- if code == 331 then
- try(tp:command("pass", password or ftp.PASSWORD))
- try(tp:check("2.."))
- end
- return 1
-end
-
-function methods.pasv(self)
- local try = self.try
- local tp = self.tp
- try(tp:command("pasv"))
- local code, reply = try(self.tp:check("2.."))
- local pattern = "(%d+)%D(%d+)%D(%d+)%D(%d+)%D(%d+)%D(%d+)"
- local a, b, c, d, p1, p2 = skipsocket(2, find(reply, pattern))
- try(a and b and c and d and p1 and p2, reply)
- local address = format("%d.%d.%d.%d", a, b, c, d)
- local port = p1*256 + p2
- local server = self.server
- self.pasvt = {
- address = address,
- port = port,
- }
- if server then
- server:close()
- self.server = nil
- end
- return address, port
-end
-
-function methods.epsv(self)
- local try = self.try
- local tp = self.tp
- try(tp:command("epsv"))
- local code, reply = try(tp:check("229"))
- local pattern = "%((.)(.-)%1(.-)%1(.-)%1%)"
- local d, prt, address, port = match(reply, pattern)
- try(port, "invalid epsv response")
- local address = tp:getpeername()
- local server = self.server
- self.pasvt = {
- address = address,
- port = port,
- }
- if self.server then
- server:close()
- self.server = nil
- end
- return address, port
-end
-
-function methods.port(self, address, port)
- local try = self.try
- local tp = self.tp
- self.pasvt = nil
- if not address then
- address, port = try(tp:getsockname())
- self.server = try(bindsocket(address, 0))
- address, port = try(self.server:getsockname())
- try(self.server:settimeout(ftp.TIMEOUT))
- end
- local pl = mod(port,256)
- local ph = (port - pl)/256
- local arg = gsub(format("%s,%d,%d", address, ph, pl), "%.", ",")
- try(tp:command("port", arg))
- try(tp:check("2.."))
- return 1
-end
-
-function methods.eprt(self, family, address, port)
- local try = self.try
- local tp = self.tp
- self.pasvt = nil
- if not address then
- address, port = try(tp:getsockname())
- self.server = try(bindsocket(address, 0))
- address, port = try(self.server:getsockname())
- try(self.server:settimeout(ftp.TIMEOUT))
- end
- local arg = format("|%s|%s|%d|", family, address, port)
- try(tp:command("eprt", arg))
- try(tp:check("2.."))
- return 1
-end
-
-function methods.send(self, sendt)
- local try = self.try
- local tp = self.tp
- -- so we try a table or string ?
- try(self.pasvt or self.server, "need port or pasv first")
- if self.pasvt then
- self:pasvconnect()
- end
- local argument = sendt.argument or unescapeurl(gsub(sendt.path or "", "^[/\\]", ""))
- if argument == "" then
- argument = nil
- end
- local command = sendt.command or "stor"
- try(tp:command(command, argument))
- local code, reply = try(tp:check{"2..", "1.."})
- if not self.pasvt then
- self:portconnect()
- end
- local step = sendt.step or pumpstep
- local readt = { tp }
- local checkstep = function(src, snk)
- local readyt = selectsocket(readt, nil, 0)
- if readyt[tp] then
- code = try(tp:check("2.."))
- end
- return step(src, snk)
- end
- local sink = sinksocket("close-when-done", self.data)
- try(pumpall(sendt.source, sink, checkstep))
- if find(code, "1..") then
- try(tp:check("2.."))
- end
- self.data:close()
- local sent = skipsocket(1, self.data:getstats())
- self.data = nil
- return sent
-end
-
-function methods.receive(self, recvt)
- local try = self.try
- local tp = self.tp
- try(self.pasvt or self.server, "need port or pasv first")
- if self.pasvt then self:pasvconnect() end
- local argument = recvt.argument or unescapeurl(gsub(recvt.path or "", "^[/\\]", ""))
- if argument == "" then
- argument = nil
- end
- local command = recvt.command or "retr"
- try(tp:command(command, argument))
- local code,reply = try(tp:check{"1..", "2.."})
- if code >= 200 and code <= 299 then
- recvt.sink(reply)
- return 1
- end
- if not self.pasvt then
- self:portconnect()
- end
- local source = sourcesocket("until-closed", self.data)
- local step = recvt.step or pumpstep
- try(pumpall(source, recvt.sink, step))
- if find(code, "1..") then
- try(tp:check("2.."))
- end
- self.data:close()
- self.data = nil
- return 1
-end
-
-function methods.cwd(self, dir)
- local try = self.try
- local tp = self.tp
- try(tp:command("cwd", dir))
- try(tp:check(250))
- return 1
-end
-
-function methods.type(self, typ)
- local try = self.try
- local tp = self.tp
- try(tp:command("type", typ))
- try(tp:check(200))
- return 1
-end
-
-function methods.greet(self)
- local try = self.try
- local tp = self.tp
- local code = try(tp:check{"1..", "2.."})
- if find(code, "1..") then
- try(tp:check("2.."))
- end
- return 1
-end
-
-function methods.quit(self)
- local try = self.try
- try(self.tp:command("quit"))
- try(self.tp:check("2.."))
- return 1
-end
-
-function methods.close(self)
- local data = self.data
- if data then
- data:close()
- end
- local server = self.server
- if server then
- server:close()
- end
- local tp = self.tp
- if tp then
- tp:close()
- end
-end
-
-local function override(t)
- if t.url then
- local u = parseurl(t.url)
- for k, v in next, t do
- u[k] = v
- end
- return u
- else
- return t
- end
-end
-
-local function tput(putt)
- putt = override(putt)
- local host = putt.host
- trysocket(host, "missing hostname")
- local f = ftp.open(host, putt.port, putt.create)
- f:greet()
- f:login(putt.user, putt.password)
- local typ = putt.type
- if typ then
- f:type(typ)
- end
- f:epsv()
- local sent = f:send(putt)
- f:quit()
- f:close()
- return sent
-end
-
-local default = {
- path = "/",
- scheme = "ftp",
-}
-
-local function genericform(u)
- local t = trysocket(parseurl(u, default))
- trysocket(t.scheme == "ftp", "wrong scheme '" .. t.scheme .. "'")
- trysocket(t.host, "missing hostname")
- local pat = "^type=(.)$"
- if t.params then
- local typ = skipsocket(2, find(t.params, pat))
- t.type = typ
- trysocket(typ == "a" or typ == "i", "invalid type '" .. typ .. "'")
- end
- return t
-end
-
-ftp.genericform = genericform
-
-local function sput(u, body)
- local putt = genericform(u)
- putt.source = sourcestring(body)
- return tput(putt)
-end
-
-ftp.put = protectsocket(function(putt, body)
- if type(putt) == "string" then
- return sput(putt, body)
- else
- return tput(putt)
- end
-end)
-
-local function tget(gett)
- gett = override(gett)
- local host = gett.host
- trysocket(host, "missing hostname")
- local f = ftp.open(host, gett.port, gett.create)
- f:greet()
- f:login(gett.user, gett.password)
- if gett.type then
- f:type(gett.type)
- end
- f:epsv()
- f:receive(gett)
- f:quit()
- return f:close()
-end
-
-local function sget(u)
- local gett = genericform(u)
- local t = { }
- gett.sink = sinktable(t)
- tget(gett)
- return concat(t)
-end
-
-ftp.command = protectsocket(function(cmdt)
- cmdt = override(cmdt)
- local command = cmdt.command
- local argument = cmdt.argument
- local check = cmdt.check
- local host = cmdt.host
- trysocket(host, "missing hostname")
- trysocket(command, "missing command")
- local f = ftp.open(host, cmdt.port, cmdt.create)
- local try = f.try
- local tp = f.tp
- f:greet()
- f:login(cmdt.user, cmdt.password)
- if type(command) == "table" then
- local argument = argument or { }
- for i=1,#command do
- local cmd = command[i]
- try(tp:command(cmd, argument[i]))
- if check and check[i] then
- try(tp:check(check[i]))
- end
- end
- else
- try(tp:command(command, argument))
- if check then
- try(tp:check(check))
- end
- end
- f:quit()
- return f:close()
-end)
-
-ftp.get = protectsocket(function(gett)
- if type(gett) == "string" then
- return sget(gett)
- else
- return tget(gett)
- end
-end)
-
-package.loaded["socket.ftp"] = ftp
-
-return ftp
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-soc-imp-headers.lua b/Master/texmf-dist/tex/context/base/mkiv/util-soc-imp-headers.lua
deleted file mode 100644
index ef51910a5f3..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/util-soc-imp-headers.lua
+++ /dev/null
@@ -1,145 +0,0 @@
--- original file : headers.lua
--- for more into : see util-soc.lua
-
-local next = next
-local lower = string.lower
-local concat = table.concat
-
-local socket = socket or require("socket")
-
-local headers = { }
-socket.headers = headers
-
-local canonic = {
- ["accept"] = "Accept",
- ["accept-charset"] = "Accept-Charset",
- ["accept-encoding"] = "Accept-Encoding",
- ["accept-language"] = "Accept-Language",
- ["accept-ranges"] = "Accept-Ranges",
- ["action"] = "Action",
- ["alternate-recipient"] = "Alternate-Recipient",
- ["age"] = "Age",
- ["allow"] = "Allow",
- ["arrival-date"] = "Arrival-Date",
- ["authorization"] = "Authorization",
- ["bcc"] = "Bcc",
- ["cache-control"] = "Cache-Control",
- ["cc"] = "Cc",
- ["comments"] = "Comments",
- ["connection"] = "Connection",
- ["content-description"] = "Content-Description",
- ["content-disposition"] = "Content-Disposition",
- ["content-encoding"] = "Content-Encoding",
- ["content-id"] = "Content-ID",
- ["content-language"] = "Content-Language",
- ["content-length"] = "Content-Length",
- ["content-location"] = "Content-Location",
- ["content-md5"] = "Content-MD5",
- ["content-range"] = "Content-Range",
- ["content-transfer-encoding"] = "Content-Transfer-Encoding",
- ["content-type"] = "Content-Type",
- ["cookie"] = "Cookie",
- ["date"] = "Date",
- ["diagnostic-code"] = "Diagnostic-Code",
- ["dsn-gateway"] = "DSN-Gateway",
- ["etag"] = "ETag",
- ["expect"] = "Expect",
- ["expires"] = "Expires",
- ["final-log-id"] = "Final-Log-ID",
- ["final-recipient"] = "Final-Recipient",
- ["from"] = "From",
- ["host"] = "Host",
- ["if-match"] = "If-Match",
- ["if-modified-since"] = "If-Modified-Since",
- ["if-none-match"] = "If-None-Match",
- ["if-range"] = "If-Range",
- ["if-unmodified-since"] = "If-Unmodified-Since",
- ["in-reply-to"] = "In-Reply-To",
- ["keywords"] = "Keywords",
- ["last-attempt-date"] = "Last-Attempt-Date",
- ["last-modified"] = "Last-Modified",
- ["location"] = "Location",
- ["max-forwards"] = "Max-Forwards",
- ["message-id"] = "Message-ID",
- ["mime-version"] = "MIME-Version",
- ["original-envelope-id"] = "Original-Envelope-ID",
- ["original-recipient"] = "Original-Recipient",
- ["pragma"] = "Pragma",
- ["proxy-authenticate"] = "Proxy-Authenticate",
- ["proxy-authorization"] = "Proxy-Authorization",
- ["range"] = "Range",
- ["received"] = "Received",
- ["received-from-mta"] = "Received-From-MTA",
- ["references"] = "References",
- ["referer"] = "Referer",
- ["remote-mta"] = "Remote-MTA",
- ["reply-to"] = "Reply-To",
- ["reporting-mta"] = "Reporting-MTA",
- ["resent-bcc"] = "Resent-Bcc",
- ["resent-cc"] = "Resent-Cc",
- ["resent-date"] = "Resent-Date",
- ["resent-from"] = "Resent-From",
- ["resent-message-id"] = "Resent-Message-ID",
- ["resent-reply-to"] = "Resent-Reply-To",
- ["resent-sender"] = "Resent-Sender",
- ["resent-to"] = "Resent-To",
- ["retry-after"] = "Retry-After",
- ["return-path"] = "Return-Path",
- ["sender"] = "Sender",
- ["server"] = "Server",
- ["smtp-remote-recipient"] = "SMTP-Remote-Recipient",
- ["status"] = "Status",
- ["subject"] = "Subject",
- ["te"] = "TE",
- ["to"] = "To",
- ["trailer"] = "Trailer",
- ["transfer-encoding"] = "Transfer-Encoding",
- ["upgrade"] = "Upgrade",
- ["user-agent"] = "User-Agent",
- ["vary"] = "Vary",
- ["via"] = "Via",
- ["warning"] = "Warning",
- ["will-retry-until"] = "Will-Retry-Until",
- ["www-authenticate"] = "WWW-Authenticate",
- ["x-mailer"] = "X-Mailer",
-}
-
-headers.canonic = setmetatable(canonic, {
- __index = function(t,k)
- socket.report("invalid header: %s",k)
- t[k] = k
- return k
- end
-})
-
-function headers.normalize(headers)
- if not headers then
- return { }
- end
- local normalized = { }
- for k, v in next, headers do
- normalized[#normalized+1] = canonic[k] .. ": " .. v
- end
- normalized[#normalized+1] = ""
- normalized[#normalized+1] = ""
- return concat(normalized,"\r\n")
-end
-
-function headers.lower(lowered,headers)
- if not lowered then
- return { }
- end
- if not headers then
- lowered, headers = { }, lowered
- end
- for k, v in next, headers do
- lowered[lower(k)] = v
- end
- return lowered
-end
-
-socket.headers = headers
-
-package.loaded["socket.headers"] = headers
-
-return headers
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-soc-imp-http.lua b/Master/texmf-dist/tex/context/base/mkiv/util-soc-imp-http.lua
deleted file mode 100644
index c3a28be822a..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/util-soc-imp-http.lua
+++ /dev/null
@@ -1,436 +0,0 @@
--- original file : http.lua
--- for more into : see util-soc.lua
-
-local tostring, tonumber, setmetatable, next, type = tostring, tonumber, setmetatable, next, type
-local find, lower, format, gsub, match = string.find, string.lower, string.format, string.gsub, string.match
-local concat = table.concat
-
-local socket = socket or require("socket")
-local url = socket.url or require("socket.url")
-local ltn12 = ltn12 or require("ltn12")
-local mime = mime or require("mime")
-local headers = socket.headers or require("socket.headers")
-
-local normalizeheaders = headers.normalize
-
-local parseurl = url.parse
-local buildurl = url.build
-local absoluteurl = url.absolute
-local unescapeurl = url.unescape
-
-local skipsocket = socket.skip
-local sinksocket = socket.sink
-local sourcesocket = socket.source
-local trysocket = socket.try
-local tcpsocket = socket.tcp
-local newtrysocket = socket.newtry
-local protectsocket = socket.protect
-
-local emptysource = ltn12.source.empty
-local stringsource = ltn12.source.string
-local rewindsource = ltn12.source.rewind
-local pumpstep = ltn12.pump.step
-local pumpall = ltn12.pump.all
-local sinknull = ltn12.sink.null
-local sinktable = ltn12.sink.table
-
-local lowerheaders = headers.lower
-
-local mimeb64 = mime.b64
-
--- todo: localize ltn12
-
-local http = {
- TIMEOUT = 60, -- connection timeout in seconds
- USERAGENT = socket._VERSION, -- user agent field sent in request
-}
-
-socket.http = http
-
-local PORT = 80
-local SCHEMES = {
- http = true,
-}
-
--- Reads MIME headers from a connection, unfolding where needed
-
-local function receiveheaders(sock, headers)
- if not headers then
- headers = { }
- end
- -- get first line
- local line, err = sock:receive()
- if err then
- return nil, err
- end
- -- headers go until a blank line is found
- while line ~= "" do
- -- get field-name and value
- local name, value = skipsocket(2, find(line, "^(.-):%s*(.*)"))
- if not (name and value) then
- return nil, "malformed reponse headers"
- end
- name = lower(name)
- -- get next line (value might be folded)
- line, err = sock:receive()
- if err then
- return nil, err
- end
- -- unfold any folded values
- while find(line, "^%s") do
- value = value .. line
- line = sock:receive()
- if err then
- return nil, err
- end
- end
- -- save pair in table
- local found = headers[name]
- if found then
- value = found .. ", " .. value
- end
- headers[name] = value
- end
- return headers
-end
-
--- Extra sources and sinks
-
-socket.sourcet["http-chunked"] = function(sock, headers)
- return setmetatable (
- {
- getfd = function() return sock:getfd() end,
- dirty = function() return sock:dirty() end,
- }, {
- __call = function()
- local line, err = sock:receive()
- if err then
- return nil, err
- end
- local size = tonumber(gsub(line, ";.*", ""), 16)
- if not size then
- return nil, "invalid chunk size"
- end
- if size > 0 then
- local chunk, err, part = sock:receive(size)
- if chunk then
- sock:receive()
- end
- return chunk, err
- else
- headers, err = receiveheaders(sock, headers)
- if not headers then
- return nil, err
- end
- end
- end
- }
- )
-end
-
-socket.sinkt["http-chunked"] = function(sock)
- return setmetatable(
- {
- getfd = function() return sock:getfd() end,
- dirty = function() return sock:dirty() end,
- },
- {
- __call = function(self, chunk, err)
- if not chunk then
- chunk = ""
- end
- return sock:send(format("%X\r\n%s\r\n",#chunk,chunk))
- end
- })
-end
-
--- Low level HTTP API
-
-local methods = { }
-local mt = { __index = methods }
-
-local function openhttp(host, port, create)
- local c = trysocket((create or tcpsocket)())
- local h = setmetatable({ c = c }, mt)
- local try = newtrysocket(function() h:close() end)
- h.try = try
- try(c:settimeout(http.TIMEOUT))
- try(c:connect(host, port or PORT))
- return h
-end
-
-http.open = openhttp
-
-function methods.sendrequestline(self, method, uri)
- local requestline = format("%s %s HTTP/1.1\r\n", method or "GET", uri)
- return self.try(self.c:send(requestline))
-end
-
-function methods.sendheaders(self,headers)
- self.try(self.c:send(normalizeheaders(headers)))
- return 1
-end
-
-function methods.sendbody(self, headers, source, step)
- if not source then
- source = emptysource()
- end
- if not step then
- step = pumpstep
- end
- local mode = "http-chunked"
- if headers["content-length"] then
- mode = "keep-open"
- end
- return self.try(pumpall(source, sinksocket(mode, self.c), step))
-end
-
-function methods.receivestatusline(self)
- local try = self.try
- local status = try(self.c:receive(5))
- if status ~= "HTTP/" then
- return nil, status -- HTTP/0.9
- end
- status = try(self.c:receive("*l", status))
- local code = skipsocket(2, find(status, "HTTP/%d*%.%d* (%d%d%d)"))
- return try(tonumber(code), status)
-end
-
-function methods.receiveheaders(self)
- return self.try(receiveheaders(self.c))
-end
-
-function methods.receivebody(self, headers, sink, step)
- if not sink then
- sink = sinknull()
- end
- if not step then
- step = pumpstep
- end
- local length = tonumber(headers["content-length"])
- local encoding = headers["transfer-encoding"] -- shortcut
- local mode = "default" -- connection close
- if encoding and encoding ~= "identity" then
- mode = "http-chunked"
- elseif length then
- mode = "by-length"
- end
- --hh: so length can be nil
- return self.try(pumpall(sourcesocket(mode, self.c, length), sink, step))
-end
-
-function methods.receive09body(self, status, sink, step)
- local source = rewindsource(sourcesocket("until-closed", self.c))
- source(status)
- return self.try(pumpall(source, sink, step))
-end
-
-function methods.close(self)
- return self.c:close()
-end
-
--- High level HTTP API
-
-local function adjusturi(request)
- if not request.proxy and not http.PROXY then
- request = {
- path = trysocket(request.path, "invalid path 'nil'"),
- params = request.params,
- query = request.query,
- fragment = request.fragment,
- }
- end
- return buildurl(request)
-end
-
-local function adjustheaders(request)
- local headers = {
- ["user-agent"] = http.USERAGENT,
- ["host"] = gsub(request.authority, "^.-@", ""),
- ["connection"] = "close, TE",
- ["te"] = "trailers"
- }
- local username = request.user
- local password = request.password
- if username and password then
- headers["authorization"] = "Basic " .. (mimeb64(username .. ":" .. unescapeurl(password)))
- end
- local proxy = request.proxy or http.PROXY
- if proxy then
- proxy = parseurl(proxy)
- local username = proxy.user
- local password = proxy.password
- if username and password then
- headers["proxy-authorization"] = "Basic " .. (mimeb64(username .. ":" .. password))
- end
- end
- local requestheaders = request.headers
- if requestheaders then
- headers = lowerheaders(headers,requestheaders)
- end
- return headers
-end
-
--- default url parts
-
-local default = {
- host = "",
- port = PORT,
- path = "/",
- scheme = "http"
-}
-
-local function adjustrequest(originalrequest)
- local url = originalrequest.url
- local request = url and parseurl(url,default) or { }
- for k, v in next, originalrequest do
- request[k] = v
- end
- local host = request.host
- local port = request.port
- local uri = request.uri
- if not host or host == "" then
- trysocket(nil, "invalid host '" .. tostring(host) .. "'")
- end
- if port == "" then
- request.port = PORT
- end
- if not uri or uri == "" then
- request.uri = adjusturi(request)
- end
- request.headers = adjustheaders(request)
- local proxy = request.proxy or http.PROXY
- if proxy then
- proxy = parseurl(proxy)
- request.host = proxy.host
- request.port = proxy.port or 3128
- end
- return request
-end
-
-local maxredericts = 4
-local validredirects = { [301] = true, [302] = true, [303] = true, [307] = true }
-local validmethods = { [false] = true, GET = true, HEAD = true }
-
-local function shouldredirect(request, code, headers)
- local location = headers.location
- if not location then
- return false
- end
- location = gsub(location, "%s", "")
- if location == "" then
- return false
- end
- local scheme = match(location, "^([%w][%w%+%-%.]*)%:")
- if scheme and not SCHEMES[scheme] then
- return false
- end
- local method = request.method
- local redirect = request.redirect
- local redirects = request.nredirects or 0
- return redirect and validredirects[code] and validmethods[method] and redirects <= maxredericts
-end
-
-local function shouldreceivebody(request, code)
- if request.method == "HEAD" then
- return nil
- end
- if code == 204 or code == 304 then
- return nil
- end
- if code >= 100 and code < 200 then
- return nil
- end
- return 1
-end
-
-local tredirect, trequest, srequest
-
-tredirect = function(request, location)
- local result, code, headers, status = trequest {
- url = absoluteurl(request.url,location),
- source = request.source,
- sink = request.sink,
- headers = request.headers,
- proxy = request.proxy,
- nredirects = (request.nredirects or 0) + 1,
- create = request.create,
- }
- if not headers then
- headers = { }
- end
- if not headers.location then
- headers.location = location
- end
- return result, code, headers, status
-end
-
-trequest = function(originalrequest)
- local request = adjustrequest(originalrequest)
- local connection = openhttp(request.host, request.port, request.create)
- local headers = request.headers
- connection:sendrequestline(request.method, request.uri)
- connection:sendheaders(headers)
- if request.source then
- connection:sendbody(headers, request.source, request.step)
- end
- local code, status = connection:receivestatusline()
- if not code then
- connection:receive09body(status, request.sink, request.step)
- return 1, 200
- end
- while code == 100 do
- headers = connection:receiveheaders()
- code, status = connection:receivestatusline()
- end
- headers = connection:receiveheaders()
- if shouldredirect(request, code, headers) and not request.source then
- connection:close()
- return tredirect(originalrequest,headers.location)
- end
- if shouldreceivebody(request, code) then
- connection:receivebody(headers, request.sink, request.step)
- end
- connection:close()
- return 1, code, headers, status
-end
-
--- turns an url and a body into a generic request
-
-local function genericform(url, body)
- local buffer = { }
- local request = {
- url = url,
- sink = sinktable(buffer),
- target = buffer,
- }
- if body then
- request.source = stringsource(body)
- request.method = "POST"
- request.headers = {
- ["content-length"] = #body,
- ["content-type"] = "application/x-www-form-urlencoded"
- }
- end
- return request
-end
-
-http.genericform = genericform
-
-srequest = function(url, body)
- local request = genericform(url, body)
- local _, code, headers, status = trequest(request)
- return concat(request.target), code, headers, status
-end
-
-http.request = protectsocket(function(request, body)
- if type(request) == "string" then
- return srequest(request, body)
- else
- return trequest(request)
- end
-end)
-
-package.loaded["socket.http"] = http
-
-return http
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-soc-imp-ltn12.lua b/Master/texmf-dist/tex/context/base/mkiv/util-soc-imp-ltn12.lua
deleted file mode 100644
index 54110ab7a30..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/util-soc-imp-ltn12.lua
+++ /dev/null
@@ -1,387 +0,0 @@
--- original file : ltn12.lua
--- for more into : see util-soc.lua
-
-local select, unpack = select, unpack
-local insert, remove = table.insert, table.remove
-local sub = string.sub
-
-local function report(fmt,first,...)
- if logs then
- report = logs and logs.reporter("ltn12")
- report(fmt,first,...)
- elseif fmt then
- fmt = "ltn12: " .. fmt
- if first then
- print(format(fmt,first,...))
- else
- print(fmt)
- end
- end
-end
-
-local filter = { }
-local source = { }
-local sink = { }
-local pump = { }
-
-local ltn12 = {
-
- _VERSION = "LTN12 1.0.3",
-
- BLOCKSIZE = 2048,
-
- filter = filter,
- source = source,
- sink = sink,
- pump = pump,
-
- report = report,
-
-}
-
--- returns a high level filter that cycles a low-level filter
-
-function filter.cycle(low, ctx, extra)
- if low then
- return function(chunk)
- return (low(ctx, chunk, extra))
- end
- end
-end
-
--- chains a bunch of filters together
-
-function filter.chain(...)
- local arg = { ... }
- local n = select('#',...)
- local top = 1
- local index = 1
- local retry = ""
- return function(chunk)
- retry = chunk and retry
- while true do
- local action = arg[index]
- if index == top then
- chunk = action(chunk)
- if chunk == "" or top == n then
- return chunk
- elseif chunk then
- index = index + 1
- else
- top = top + 1
- index = top
- end
- else
- chunk = action(chunk or "")
- if chunk == "" then
- index = index - 1
- chunk = retry
- elseif chunk then
- if index == n then
- return chunk
- else
- index = index + 1
- end
- else
- report("error: filter returned inappropriate 'nil'")
- return
- end
- end
- end
- end
-end
-
--- create an empty source
-
-local function empty()
- return nil
-end
-
-function source.empty()
- return empty
-end
-
--- returns a source that just outputs an error
-
-local function sourceerror(err)
- return function()
- return nil, err
- end
-end
-
-source.error = sourceerror
-
--- creates a file source
-
-function source.file(handle, io_err)
- if handle then
- local blocksize = ltn12.BLOCKSIZE
- return function()
- local chunk = handle:read(blocksize)
- if not chunk then
- handle:close()
- end
- return chunk
- end
- else
- return sourceerror(io_err or "unable to open file")
- end
-end
-
--- turns a fancy source into a simple source
-
-function source.simplify(src)
- return function()
- local chunk, err_or_new = src()
- if err_or_new then
- src = err_or_new
- end
- if chunk then
- return chunk
- else
- return nil, err_or_new
- end
- end
-end
-
--- creates string source
-
-function source.string(s)
- if s then
- local blocksize = ltn12.BLOCKSIZE
- local i = 1
- return function()
- local nexti = i + blocksize
- local chunk = sub(s, i, nexti - 1)
- i = nexti
- if chunk ~= "" then
- return chunk
- else
- return nil
- end
- end
- else return source.empty() end
-end
-
--- creates rewindable source
-
-function source.rewind(src)
- local t = { }
- return function(chunk)
- if chunk then
- insert(t, chunk)
- else
- chunk = remove(t)
- if chunk then
- return chunk
- else
- return src()
- end
- end
- end
-end
-
--- chains a source with one or several filter(s)
-
-function source.chain(src, f, ...)
- if ... then
- f = filter.chain(f, ...)
- end
- local last_in = ""
- local last_out = ""
- local state = "feeding"
- local err
- return function()
- if not last_out then
- report("error: source is empty")
- return
- end
- while true do
- if state == "feeding" then
- last_in, err = src()
- if err then
- return nil, err
- end
- last_out = f(last_in)
- if not last_out then
- if last_in then
- report("error: filter returned inappropriate 'nil'")
- end
- return nil
- elseif last_out ~= "" then
- state = "eating"
- if last_in then
- last_in = ""
- end
- return last_out
- end
- else
- last_out = f(last_in)
- if last_out == "" then
- if last_in == "" then
- state = "feeding"
- else
- report("error: filter returned nothing")
- return
- end
- elseif not last_out then
- if last_in then
- report("filter returned inappropriate 'nil'")
- end
- return nil
- else
- return last_out
- end
- end
- end
- end
-end
-
--- creates a source that produces contents of several sources, one after the
--- other, as if they were concatenated
-
-function source.cat(...)
- local arg = { ... }
- local src = remove(arg,1)
- return function()
- while src do
- local chunk, err = src()
- if chunk then
- return chunk
- end
- if err then
- return nil, err
- end
- src = remove(arg,1)
- end
- end
-end
-
--- creates a sink that stores into a table
-
-function sink.table(t)
- if not t then
- t = { }
- end
- local f = function(chunk, err)
- if chunk then
- insert(t, chunk)
- end
- return 1
- end
- return f, t
-end
-
--- turns a fancy sink into a simple sink
-
-function sink.simplify(snk)
- return function(chunk, err)
- local ret, err_or_new = snk(chunk, err)
- if not ret then
- return nil, err_or_new
- end
- if err_or_new then
- snk = err_or_new
- end
- return 1
- end
-end
-
--- creates a sink that discards data
-
-local function null()
- return 1
-end
-
-function sink.null()
- return null
-end
-
--- creates a sink that just returns an error
-
-local function sinkerror(err)
- return function()
- return nil, err
- end
-end
-
-sink.error = sinkerror
-
--- creates a file sink
-
-function sink.file(handle, io_err)
- if handle then
- return function(chunk, err)
- if not chunk then
- handle:close()
- return 1
- else
- return handle:write(chunk)
- end
- end
- else
- return sinkerror(io_err or "unable to open file")
- end
-end
-
--- chains a sink with one or several filter(s)
-
-function sink.chain(f, snk, ...)
- if ... then
- local args = { f, snk, ... }
- snk = remove(args, #args)
- f = filter.chain(unpack(args))
- end
- return function(chunk, err)
- if chunk ~= "" then
- local filtered = f(chunk)
- local done = chunk and ""
- while true do
- local ret, snkerr = snk(filtered, err)
- if not ret then
- return nil, snkerr
- end
- if filtered == done then
- return 1
- end
- filtered = f(done)
- end
- else
- return 1
- end
- end
-end
-
--- pumps one chunk from the source to the sink
-
-function pump.step(src, snk)
- local chunk, src_err = src()
- local ret, snk_err = snk(chunk, src_err)
- if chunk and ret then
- return 1
- else
- return nil, src_err or snk_err
- end
-end
-
--- pumps all data from a source to a sink, using a step function
-
-function pump.all(src, snk, step)
- if not step then
- step = pump.step
- end
- while true do
- local ret, err = step(src, snk)
- if not ret then
- if err then
- return nil, err
- else
- return 1
- end
- end
- end
-end
-
-package.loaded["ltn12"] = ltn12
-
-return ltn12
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-soc-imp-mime.lua b/Master/texmf-dist/tex/context/base/mkiv/util-soc-imp-mime.lua
deleted file mode 100644
index 4b5d2baff10..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/util-soc-imp-mime.lua
+++ /dev/null
@@ -1,104 +0,0 @@
--- original file : mime.lua
--- for more into : see util-soc.lua
-
-local type, tostring = type, tostring
-
-local mime = require("mime.core")
-local ltn12 = ltn12 or require("ltn12")
-
-local filtercycle = ltn12.filter.cycle
-
-local function report(fmt,first,...)
- if logs then
- report = logs and logs.reporter("mime")
- report(fmt,first,...)
- elseif fmt then
- fmt = "mime: " .. fmt
- if first then
- print(format(fmt,first,...))
- else
- print(fmt)
- end
- end
-end
-
-mime.report = report
-
-local encodet = { }
-local decodet = { }
-local wrapt = { }
-
-mime.encodet = encodet
-mime.decodet = decodet
-mime.wrapt = wrapt
-
-local mime_b64 = mime.b64
-local mime_qp = mime.qp
-local mime_unb64 = mime.unb64
-local mime_unqp = mime.unqp
-local mime_wrp = mime.wrp
-local mime_qpwrp = mime.qpwrp
-local mime_eol = mime_eol
-local mime_dot = mime_dot
-
-encodet['base64'] = function()
- return filtercycle(mime_b64,"")
-end
-
-encodet['quoted-printable'] = function(mode)
- return filtercycle(mime_qp, "", mode == "binary" and "=0D=0A" or "\r\n")
-end
-
-decodet['base64'] = function()
- return filtercycle(mime_unb64, "")
-end
-
-decodet['quoted-printable'] = function()
- return filtercycle(mime_unqp, "")
-end
-
-local wraptext = function(length)
- if not length then
- length = 76
- end
- return filtercycle(mime_wrp, length, length)
-end
-
-local wrapquoted = function()
- return filtercycle(mime_qpwrp, 76, 76)
-end
-
-wrapt['text'] = wraptext
-wrapt['base64'] = wraptext
-wrapt['default'] = wraptext
-wrapt['quoted-printable'] = wrapquoted
-
-function mime.normalize(marker)
- return filtercycle(mime_eol, 0, marker)
-end
-
-function mime.stuff()
- return filtercycle(mime_dot, 2)
-end
-
-local function choose(list)
- return function(name, opt1, opt2)
- if type(name) ~= "string" then
- name, opt1, opt2 = "default", name, opt1
- end
- local filter = list[name or "nil"]
- if filter then
- return filter(opt1, opt2)
- else
- report("error: unknown key '%s'",tostring(name))
- end
- end
-end
-
-mime.encode = choose(encodet)
-mime.decode = choose(decodet)
-mime.wrap = choose(wrapt)
-
-package.loaded["mime"] = mime
-
-return mime
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-soc-imp-reset.lua b/Master/texmf-dist/tex/context/base/mkiv/util-soc-imp-reset.lua
deleted file mode 100644
index a4a489b0f90..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/util-soc-imp-reset.lua
+++ /dev/null
@@ -1,13 +0,0 @@
-local loaded = package.loaded
-
-loaded["socket"] = nil
-loaded["copas"] = nil
-loaded["ltn12"] = nil
-loaded["mbox"] = nil
-loaded["mime"] = nil
-loaded["socket.url"] = nil
-loaded["socket.headers"] = nil
-loaded["socket.tp"] = nil
-loaded["socket.http"] = nil
-loaded["socket.ftp"] = nil
-loaded["socket.smtp"] = nil
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-soc-imp-smtp.lua b/Master/texmf-dist/tex/context/base/mkiv/util-soc-imp-smtp.lua
deleted file mode 100644
index 621d1b6e39e..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/util-soc-imp-smtp.lua
+++ /dev/null
@@ -1,267 +0,0 @@
--- original file : smtp.lua
--- for more into : see util-soc.lua
-
-local type, setmetatable, next = type, setmetatable, next
-local find, lower, format = string.find, string.lower, string.format
-local osdate, osgetenv = os.date, os.getenv
-local random = math.random
-
-local socket = socket or require("socket")
-local headers = socket.headers or require("socket.headers")
-local ltn12 = ltn12 or require("ltn12")
-local tp = socket.tp or require("socket.tp")
-local mime = mime or require("mime")
-
-local mimeb64 = mime.b64
-local mimestuff = mime.stuff
-
-local skipsocket = socket.skip
-local trysocket = socket.try
-local newtrysocket = socket.newtry
-local protectsocket = socket.protect
-
-local normalizeheaders = headers.normalize
-local lowerheaders = headers.lower
-
-local createcoroutine = coroutine.create
-local resumecoroutine = coroutine.resume
-local yieldcoroutine = coroutine.resume
-
-local smtp = {
- TIMEOUT = 60,
- SERVER = "localhost",
- PORT = 25,
- DOMAIN = osgetenv("SERVER_NAME") or "localhost",
- ZONE = "-0000",
-}
-
-socket.smtp = smtp
-
-local methods = { }
-local mt = { __index = methods }
-
-function methods.greet(self, domain)
- local try = self.try
- local tp = self.tp
- try(tp:check("2.."))
- try(tp:command("EHLO", domain or _M.DOMAIN))
- return skipsocket(1, try(tp:check("2..")))
-end
-
-function methods.mail(self, from)
- local try = self.try
- local tp = self.tp
- try(tp:command("MAIL", "FROM:" .. from))
- return try(tp:check("2.."))
-end
-
-function methods.rcpt(self, to)
- local try = self.try
- local tp = self.tp
- try(tp:command("RCPT", "TO:" .. to))
- return try(tp:check("2.."))
-end
-
-function methods.data(self, src, step)
- local try = self.try
- local tp = self.tp
- try(tp:command("DATA"))
- try(tp:check("3.."))
- try(tp:source(src, step))
- try(tp:send("\r\n.\r\n"))
- return try(tp:check("2.."))
-end
-
-function methods.quit(self)
- local try = self.try
- local tp = self.tp
- try(tp:command("QUIT"))
- return try(tp:check("2.."))
-end
-
-function methods.close(self)
- return self.tp:close()
-end
-
-function methods.login(self, user, password)
- local try = self.try
- local tp = self.tp
- try(tp:command("AUTH", "LOGIN"))
- try(tp:check("3.."))
- try(tp:send(mimeb64(user) .. "\r\n"))
- try(tp:check("3.."))
- try(tp:send(mimeb64(password) .. "\r\n"))
- return try(tp:check("2.."))
-end
-
-function methods.plain(self, user, password)
- local try = self.try
- local tp = self.tp
- local auth = "PLAIN " .. mimeb64("\0" .. user .. "\0" .. password)
- try(tp:command("AUTH", auth))
- return try(tp:check("2.."))
-end
-
-function methods.auth(self, user, password, ext)
- if not user or not password then
- return 1
- end
- local try = self.try
- if find(ext, "AUTH[^\n]+LOGIN") then
- return self:login(user,password)
- elseif find(ext, "AUTH[^\n]+PLAIN") then
- return self:plain(user,password)
- else
- try(nil, "authentication not supported")
- end
-end
-
-function methods.send(self, mail)
- self:mail(mail.from)
- local receipt = mail.rcpt
- if type(receipt) == "table" then
- for i=1,#receipt do
- self:rcpt(receipt[i])
- end
- elseif receipt then
- self:rcpt(receipt)
- end
- self:data(ltn12.source.chain(mail.source, mimestuff()), mail.step)
-end
-
-local function opensmtp(self, server, port, create)
- if not server or server == "" then
- server = smtp.SERVER
- end
- if not port or port == "" then
- port = smtp.PORT
- end
- local s = {
- tp = trysocket(tp.connect(server, port, smtp.TIMEOUT, create)),
- try = newtrysocket(function()
- s:close()
- end),
- }
- setmetatable(s, mt)
- return s
-end
-
-smtp.open = opensmtp
-
-local nofboundaries = 0
-
-local function newboundary()
- nofboundaries = nofboundaries + 1
- return format('%s%05d==%05u', osdate('%d%m%Y%H%M%S'), random(0,99999), nofboundaries)
-end
-
-local send_message
-
-local function send_headers(headers)
- yieldcoroutine(normalizeheaders(headers))
-end
-
-local function send_multipart(message)
- local boundary = newboundary()
- local headers = lowerheaders(message.headers)
- local body = message.body
- local preamble = body.preamble
- local epilogue = body.epilogue
- local content = headers['content-type'] or 'multipart/mixed'
- headers['content-type'] = content .. '; boundary="' .. boundary .. '"'
- send_headers(headers)
- if preamble then
- yieldcoroutine(preamble)
- yieldcoroutine("\r\n")
- end
- for i=1,#body do
- yieldcoroutine("\r\n--" .. boundary .. "\r\n")
- send_message(body[i])
- end
- yieldcoroutine("\r\n--" .. boundary .. "--\r\n\r\n")
- if epilogue then
- yieldcoroutine(epilogue)
- yieldcoroutine("\r\n")
- end
-end
-
-local default_content_type = 'text/plain; charset="UTF-8"'
-
-local function send_source(message)
- local headers = lowerheaders(message.headers)
- if not headers['content-type'] then
- headers['content-type'] = default_content_type
- end
- send_headers(headers)
- local getchunk = message.body
- while true do
- local chunk, err = getchunk()
- if err then
- yieldcoroutine(nil, err)
- elseif chunk then
- yieldcoroutine(chunk)
- else
- break
- end
- end
-end
-
-local function send_string(message)
- local headers = lowerheaders(message.headers)
- if not headers['content-type'] then
- headers['content-type'] = default_content_type
- end
- send_headers(headers)
- yieldcoroutine(message.body)
-end
-
-function send_message(message)
- local body = message.body
- if type(body) == "table" then
- send_multipart(message)
- elseif type(body) == "function" then
- send_source(message)
- else
- send_string(message)
- end
-end
-
-local function adjust_headers(message)
- local headers = lowerheaders(message.headers)
- if not headers["date"] then
- headers["date"] = osdate("!%a, %d %b %Y %H:%M:%S ") .. (message.zone or smtp.ZONE)
- end
- if not headers["x-mailer"] then
- headers["x-mailer"] = socket._VERSION
- end
- headers["mime-version"] = "1.0"
- return headers
-end
-
-function smtp.message(message)
- message.headers = adjust_headers(message)
- local action = createcoroutine(function()
- send_message(message)
- end)
- return function()
- local ret, a, b = resumecoroutine(action)
- if ret then
- return a, b
- else
- return nil, a
- end
- end
-end
-
-smtp.send = protectsocket(function(mail)
- local snd = opensmtp(smtp,mail.server, mail.port, mail.create)
- local ext = snd:greet(mail.domain)
- snd:auth(mail.user, mail.password, ext)
- snd:send(mail)
- snd:quit()
- return snd:close()
-end)
-
-package.loaded["socket.smtp"] = smtp
-
-return smtp
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-soc-imp-socket.lua b/Master/texmf-dist/tex/context/base/mkiv/util-soc-imp-socket.lua
deleted file mode 100644
index 3da155749fd..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/util-soc-imp-socket.lua
+++ /dev/null
@@ -1,193 +0,0 @@
--- original file : socket.lua
--- for more into : see util-soc.lua
-
-local type, tostring, setmetatable = type, tostring, setmetatable
-local min = math.min
-local format = string.format
-
-local socket = require("socket.core")
-
-local connect = socket.connect
-local tcp4 = socket.tcp4
-local tcp6 = socket.tcp6
-local getaddrinfo = socket.dns.getaddrinfo
-
-local defaulthost = "0.0.0.0"
-
-local function report(fmt,first,...)
- if logs then
- report = logs and logs.reporter("socket")
- report(fmt,first,...)
- elseif fmt then
- fmt = "socket: " .. fmt
- if first then
- print(format(fmt,first,...))
- else
- print(fmt)
- end
- end
-end
-
-socket.report = report
-
-function socket.connect4(address, port, laddress, lport)
- return connect(address, port, laddress, lport, "inet")
-end
-
-function socket.connect6(address, port, laddress, lport)
- return connect(address, port, laddress, lport, "inet6")
-end
-
-function socket.bind(host, port, backlog)
- if host == "*" or host == "" then
- host = defaulthost
- end
- local addrinfo, err = getaddrinfo(host)
- if not addrinfo then
- return nil, err
- end
- for i=1,#addrinfo do
- local alt = addrinfo[i]
- local sock, err = (alt.family == "inet" and tcp4 or tcp6)()
- if not sock then
- return nil, err or "unknown error"
- end
- sock:setoption("reuseaddr", true)
- local res, err = sock:bind(alt.addr, port)
- if res then
- res, err = sock:listen(backlog)
- if res then
- return sock
- else
- sock:close()
- end
- else
- sock:close()
- end
- end
- return nil, "invalid address"
-end
-
-socket.try = socket.newtry()
-
-function socket.choose(list)
- return function(name, opt1, opt2)
- if type(name) ~= "string" then
- name, opt1, opt2 = "default", name, opt1
- end
- local f = list[name or "nil"]
- if f then
- return f(opt1, opt2)
- else
- report("error: unknown key '%s'",tostring(name))
- end
- end
-end
-
-local sourcet = { }
-local sinkt = { }
-
-socket.sourcet = sourcet
-socket.sinkt = sinkt
-
-socket.BLOCKSIZE = 2048
-
-sinkt["close-when-done"] = function(sock)
- return setmetatable (
- {
- getfd = function() return sock:getfd() end,
- dirty = function() return sock:dirty() end,
- },
- {
- __call = function(self, chunk, err)
- if chunk then
- return sock:send(chunk)
- else
- sock:close()
- return 1 -- why 1
- end
- end
- }
- )
-end
-
-sinkt["keep-open"] = function(sock)
- return setmetatable (
- {
- getfd = function() return sock:getfd() end,
- dirty = function() return sock:dirty() end,
- }, {
- __call = function(self, chunk, err)
- if chunk then
- return sock:send(chunk)
- else
- return 1 -- why 1
- end
- end
- }
- )
-end
-
-sinkt["default"] = sinkt["keep-open"]
-
-socket.sink = socket.choose(sinkt)
-
-sourcet["by-length"] = function(sock, length)
- local blocksize = socket.BLOCKSIZE
- return setmetatable (
- {
- getfd = function() return sock:getfd() end,
- dirty = function() return sock:dirty() end,
- },
- {
- __call = function()
- if length <= 0 then
- return nil
- end
- local chunk, err = sock:receive(min(blocksize,length))
- if err then
- return nil, err
- end
- length = length - #chunk
- return chunk
- end
- }
- )
-end
-
-sourcet["until-closed"] = function(sock)
- local blocksize = socket.BLOCKSIZE
- local done = false
- return setmetatable (
- {
- getfd = function() return sock:getfd() end,
- dirty = function() return sock:dirty() end,
- }, {
- __call = function()
- if done then
- return nil
- end
- local chunk, status, partial = sock:receive(blocksize)
- if not status then
- return chunk
- elseif status == "closed" then
- sock:close()
- done = true
- return partial
- else
- return nil, status
- end
- end
- }
- )
-end
-
-sourcet["default"] = sourcet["until-closed"]
-
-socket.source = socket.choose(sourcet)
-
-_G.socket = socket -- for now global
-
-package.loaded["socket"] = socket
-
-return socket
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-soc-imp-tp.lua b/Master/texmf-dist/tex/context/base/mkiv/util-soc-imp-tp.lua
deleted file mode 100644
index e651e44f7fe..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/util-soc-imp-tp.lua
+++ /dev/null
@@ -1,144 +0,0 @@
--- original file : tp.lua
--- for more into : see util-soc.lua
-
-local setmetatable, next, type, tonumber = setmetatable, next, type, tonumber
-local find, upper = string.find, string.upper
-
-local socket = socket or require("socket")
-local ltn12 = ltn12 or require("ltn12")
-
-local skipsocket = socket.skip
-local sinksocket = socket.sink
-local tcpsocket = socket.tcp
-
-local ltn12pump = ltn12.pump
-local pumpall = ltn12pump.all
-local pumpstep = ltn12pump.step
-
-local tp = {
- TIMEOUT = 60,
-}
-
-socket.tp = tp
-
-local function get_reply(c)
- local line, err = c:receive()
- local reply = line
- if err then return
- nil, err
- end
- local code, sep = skipsocket(2, find(line, "^(%d%d%d)(.?)"))
- if not code then
- return nil, "invalid server reply"
- end
- if sep == "-" then
- local current
- repeat
- line, err = c:receive()
- if err then
- return nil, err
- end
- current, sep = skipsocket(2, find(line, "^(%d%d%d)(.?)"))
- reply = reply .. "\n" .. line
- until code == current and sep == " "
- end
- return code, reply
-end
-
-local methods = { }
-local mt = { __index = methods }
-
-function methods.getpeername(self)
- return self.c:getpeername()
-end
-
-function methods.getsockname(self)
- return self.c:getpeername()
-end
-
-function methods.check(self, ok)
- local code, reply = get_reply(self.c)
- if not code then
- return nil, reply
- end
- local c = tonumber(code)
- local t = type(ok)
- if t == "function" then
- return ok(c,reply)
- elseif t == "table" then
- for i=1,#ok do
- if find(code,ok[i]) then
- return c, reply
- end
- end
- return nil, reply
- elseif find(code, ok) then
- return c, reply
- else
- return nil, reply
- end
-end
-
-function methods.command(self, cmd, arg)
- cmd = upper(cmd)
- if arg then
- cmd = cmd .. " " .. arg .. "\r\n"
- else
- cmd = cmd .. "\r\n"
- end
- return self.c:send(cmd)
-end
-
-function methods.sink(self, snk, pat)
- local chunk, err = self.c:receive(pat)
- return snk(chunk, err)
-end
-
-function methods.send(self, data)
- return self.c:send(data)
-end
-
-function methods.receive(self, pat)
- return self.c:receive(pat)
-end
-
-function methods.getfd(self)
- return self.c:getfd()
-end
-
-function methods.dirty(self)
- return self.c:dirty()
-end
-
-function methods.getcontrol(self)
- return self.c
-end
-
-function methods.source(self, source, step)
- local sink = sinksocket("keep-open", self.c)
- local ret, err = pumpall(source, sink, step or pumpstep)
- return ret, err
-end
-
-function methods.close(self)
- self.c:close()
- return 1
-end
-
-function tp.connect(host, port, timeout, create)
- local c, e = (create or tcpsocket)()
- if not c then
- return nil, e
- end
- c:settimeout(timeout or tp.TIMEOUT)
- local r, e = c:connect(host, port)
- if not r then
- c:close()
- return nil, e
- end
- return setmetatable({ c = c }, mt)
-end
-
-package.loaded["socket.tp"] = tp
-
-return tp
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-soc-imp-url.lua b/Master/texmf-dist/tex/context/base/mkiv/util-soc-imp-url.lua
deleted file mode 100644
index fa472b65041..00000000000
--- a/Master/texmf-dist/tex/context/base/mkiv/util-soc-imp-url.lua
+++ /dev/null
@@ -1,268 +0,0 @@
--- original file : url.lua
--- for more into : see util-soc.lua
-
-local tonumber, tostring, type = tonumber, tostring, type
-
-local gsub, sub, match, find, format, byte, char = string.gsub, string.sub, string.match, string.find, string.format, string.byte, string.char
-local insert = table.insert
-
-local socket = socket or require("socket")
-
-local url = {
- _VERSION = "URL 1.0.3",
-}
-
-socket.url = url
-
-function url.escape(s)
- return (gsub(s, "([^A-Za-z0-9_])", function(c)
- return format("%%%02x", byte(c))
- end))
-end
-
-local function make_set(t) -- table.tohash
- local s = { }
- for i=1,#t do
- s[t[i]] = true
- end
- return s
-end
-
-local segment_set = make_set {
- "-", "_", ".", "!", "~", "*", "'", "(",
- ")", ":", "@", "&", "=", "+", "$", ",",
-}
-
-local function protect_segment(s)
- return gsub(s, "([^A-Za-z0-9_])", function(c)
- if segment_set[c] then
- return c
- else
- return format("%%%02X", byte(c))
- end
- end)
-end
-
-function url.unescape(s)
- return (gsub(s, "%%(%x%x)", function(hex)
- return char(tonumber(hex,16))
- end))
-end
-
-local function absolute_path(base_path, relative_path)
- if find(relative_path,"^/") then
- return relative_path
- end
- local path = gsub(base_path, "[^/]*$", "")
- path = path .. relative_path
- path = gsub(path, "([^/]*%./)", function (s)
- if s ~= "./" then
- return s
- else
- return ""
- end
- end)
- path = gsub(path, "/%.$", "/")
- local reduced
- while reduced ~= path do
- reduced = path
- path = gsub(reduced, "([^/]*/%.%./)", function (s)
- if s ~= "../../" then
- return ""
- else
- return s
- end
- end)
- end
- path = gsub(reduced, "([^/]*/%.%.)$", function (s)
- if s ~= "../.." then
- return ""
- else
- return s
- end
- end)
- return path
-end
-
-function url.parse(url, default)
- local parsed = { }
- for k, v in next, default or parsed do
- parsed[k] = v
- end
- if not url or url == "" then
- return nil, "invalid url"
- end
- url = gsub(url, "#(.*)$", function(f)
- parsed.fragment = f
- return ""
- end)
- url = gsub(url, "^([%w][%w%+%-%.]*)%:", function(s)
- parsed.scheme = s
- return ""
- end)
- url = gsub(url, "^//([^/]*)", function(n)
- parsed.authority = n
- return ""
- end)
- url = gsub(url, "%?(.*)", function(q)
- parsed.query = q
- return ""
- end)
- url = gsub(url, "%;(.*)", function(p)
- parsed.params = p
- return ""
- end)
- if url ~= "" then
- parsed.path = url
- end
- local authority = parsed.authority
- if not authority then
- return parsed
- end
- authority = gsub(authority,"^([^@]*)@", function(u)
- parsed.userinfo = u
- return ""
- end)
- authority = gsub(authority, ":([^:%]]*)$", function(p)
- parsed.port = p
- return ""
- end)
- if authority ~= "" then
- parsed.host = match(authority, "^%[(.+)%]$") or authority
- end
- local userinfo = parsed.userinfo
- if not userinfo then
- return parsed
- end
- userinfo = gsub(userinfo, ":([^:]*)$", function(p)
- parsed.password = p
- return ""
- end)
- parsed.user = userinfo
- return parsed
-end
-
-function url.build(parsed)
- local url = parsed.path or ""
- if parsed.params then
- url = url .. ";" .. parsed.params
- end
- if parsed.query then
- url = url .. "?" .. parsed.query
- end
- local authority = parsed.authority
- if parsed.host then
- authority = parsed.host
- if find(authority, ":") then -- IPv6?
- authority = "[" .. authority .. "]"
- end
- if parsed.port then
- authority = authority .. ":" .. tostring(parsed.port)
- end
- local userinfo = parsed.userinfo
- if parsed.user then
- userinfo = parsed.user
- if parsed.password then
- userinfo = userinfo .. ":" .. parsed.password
- end
- end
- if userinfo then authority = userinfo .. "@" .. authority end
- end
- if authority then
- url = "//" .. authority .. url
- end
- if parsed.scheme then
- url = parsed.scheme .. ":" .. url
- end
- if parsed.fragment then
- url = url .. "#" .. parsed.fragment
- end
- return url
-end
-
-function url.absolute(base_url, relative_url)
- local base_parsed
- if type(base_url) == "table" then
- base_parsed = base_url
- base_url = url.build(base_parsed)
- else
- base_parsed = url.parse(base_url)
- end
- local relative_parsed = url.parse(relative_url)
- if not base_parsed then
- return relative_url
- elseif not relative_parsed then
- return base_url
- elseif relative_parsed.scheme then
- return relative_url
- else
- relative_parsed.scheme = base_parsed.scheme
- if not relative_parsed.authority then
- relative_parsed.authority = base_parsed.authority
- if not relative_parsed.path then
- relative_parsed.path = base_parsed.path
- if not relative_parsed.params then
- relative_parsed.params = base_parsed.params
- if not relative_parsed.query then
- relative_parsed.query = base_parsed.query
- end
- end
- else
- relative_parsed.path = absolute_path(base_parsed.path or "", relative_parsed.path)
- end
- end
- return url.build(relative_parsed)
- end
-end
-
-function url.parse_path(path)
- local parsed = { }
- path = path or ""
- gsub(path, "([^/]+)", function (s)
- insert(parsed, s)
- end)
- for i=1,#parsed do
- parsed[i] = url.unescape(parsed[i])
- end
- if sub(path, 1, 1) == "/" then
- parsed.is_absolute = 1
- end
- if sub(path, -1, -1) == "/" then
- parsed.is_directory = 1
- end
- return parsed
-end
-
-function url.build_path(parsed, unsafe)
- local path = ""
- local n = #parsed
- if unsafe then
- for i = 1, n-1 do
- path = path .. parsed[i] .. "/"
- end
- if n > 0 then
- path = path .. parsed[n]
- if parsed.is_directory then
- path = path .. "/"
- end
- end
- else
- for i = 1, n-1 do
- path = path .. protect_segment(parsed[i]) .. "/"
- end
- if n > 0 then
- path = path .. protect_segment(parsed[n])
- if parsed.is_directory then
- path = path .. "/"
- end
- end
- end
- if parsed.is_absolute then
- path = "/" .. path
- end
- return path
-end
-
-package.loaded["socket.url"] = url
-
-return url
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-soc.lua b/Master/texmf-dist/tex/context/base/mkiv/util-soc.lua
index 590287a25b1..3a52ee86de3 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/util-soc.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-soc.lua
@@ -6,29 +6,6 @@ if not modules then modules = { } end modules ['util-soc'] = {
license = "see context related readme files"
}
---[[--
-
-In LuaTeX we provide the socket library that is more or less the standard one for
-Lua. It has been around for a while and seems to be pretty stable. The binary
-module is copmpiled into LuaTeX and the accompanying .lua files are preloaded.
-These files are mostly written by Diego Nehab, Andre Carregal, Javier Guerra, and
-Fabio Mascarenhas with contributions from Diego Nehab, Mike Pall, David Burgess,
-Leonardo Godinho, Thomas Harning Jr., and Gary NG. The originals are part of and
-copyrighted by the Kepler project.
-
-Here we reload a slightly reworked version of these .lua files. We keep the same
-(documented) interface but streamlined some fo the code. No more modules, no more
-pre 5.2 Lua, etc. Also, as it loads into the ConTeXt ecosystem, we plug in some
-logging. (and maybe tracing in the future). As we don't support serial ports in
-LuaTeX, related code has been dropped.
-
-The files are reformatted so that we can more easilly add additional features
-and/or tracing options. Any error introduced there is our fault! The url module
-might be replaced by the one in ConTeXt. When we need mbox a suitable variant
-will be provided.
-
---]]--
-
local format = string.format
local smtp = require("socket.smtp")
@@ -118,12 +95,3 @@ function mail.send(specification)
return true
end
end
-
--- for now we have this here:
-
-if socket then
-
- math.initialseed = tonumber(string.sub(string.reverse(tostring(math.ceil(socket.gettime()*10000))),1,6))
- math.randomseed(math.initialseed)
-
-end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-sql-imp-ffi.lua b/Master/texmf-dist/tex/context/base/mkiv/util-sql-imp-ffi.lua
index 3731933f1e1..2a2bc656934 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/util-sql-imp-ffi.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-sql-imp-ffi.lua
@@ -8,7 +8,7 @@ if not modules then modules = { } end modules ['util-sql-imp-ffi'] = {
-- I looked at luajit-mysql to see how the ffi mapping was done but it didn't work
-- out that well (at least not on windows) but I got the picture. As I have somewhat
--- different demands I simplified / redid the ffi bit and just took the swiglib
+-- different demands I simplified / redid the ffi bti and just took the swiglib
-- variant and adapted that.
local tonumber = tonumber
@@ -17,7 +17,6 @@ local format, byte = string.format, string.byte
local lpegmatch = lpeg.match
local setmetatable, type = setmetatable, type
local sleep = os.sleep
-local formatters = string.formatters
local trace_sql = false trackers.register("sql.trace", function(v) trace_sql = v end)
local trace_queries = false trackers.register("sql.queries",function(v) trace_queries = v end)
@@ -34,9 +33,6 @@ ffi.cdef [[
a query. The rest is handled already in the Lua code elsewhere.
*/
- void free(void*ptr);
- void * malloc(size_t size);
-
typedef void MYSQL_instance;
typedef void MYSQL_result;
typedef char **MYSQL_row;
@@ -119,14 +115,6 @@ ffi.cdef [[
MYSQL_result *result
);
- unsigned int mysql_affected_rows (
- MYSQL_instance *mysql
- );
-
- unsigned int mysql_field_count (
- MYSQL_instance *mysql
- );
-
unsigned int mysql_num_fields (
MYSQL_result *res
);
@@ -175,14 +163,12 @@ local dataprepared = helpers.preparetemplate
local serialize = sql.serialize
local deserialize = sql.deserialize
-local mysql_open_session = mysql.mysql_init
+local mysql_initialize = mysql.mysql_init
local mysql_open_connection = mysql.mysql_real_connect
local mysql_execute_query = mysql.mysql_real_query
local mysql_close_connection = mysql.mysql_close
-local mysql_affected_rows = mysql.mysql_affected_rows
-local mysql_field_count = mysql.mysql_field_count
local mysql_field_seek = mysql.mysql_field_seek
local mysql_num_fields = mysql.mysql_num_fields
local mysql_fetch_fields = mysql.mysql_fetch_fields
@@ -194,7 +180,6 @@ local mysql_init = mysql.mysql_init
local mysql_store_result = mysql.mysql_store_result
local mysql_free_result = mysql.mysql_free_result
-local mysql_error_number = mysql.mysql_errno
local mysql_error_message = mysql.mysql_error
local NULL = ffi.cast("MYSQL_result *",0)
@@ -202,361 +187,325 @@ local NULL = ffi.cast("MYSQL_result *",0)
local ffi_tostring = ffi.string
local ffi_gc = ffi.gc
-local instance = mysql.mysql_init(nil)
+----- mysqldata = ffi.cast("MYSQL_instance*",mysql.malloc(1024*1024))
+local instance = mysql.mysql_init(nil) -- (mysqldata)
local mysql_constant_false = false
local mysql_constant_true = true
-local wrapresult do
-
- local function collect(t)
- local result = t._result_
- if result then
- ffi_gc(result,mysql_free_result)
- end
+local function finish(t)
+ local r = t._result_
+ if r then
+ ffi_gc(r,mysql_free_result)
end
+end
- local function finish(t)
- local result = t._result_
- if result then
- t._result_ = nil
- ffi_gc(result,mysql_free_result)
- end
- end
+local function getcolnames(t)
+ return t.names
+end
- local function getcoldata(t)
- local result = t._result_
- local nofrows = t.nofrows
- local noffields = t.noffields
- local names = { }
- local types = { }
- local fields = mysql_fetch_fields(result)
- for i=1,noffields do
- local field = fields[i-1]
- names[i] = ffi_tostring(field.name)
- types[i] = tonumber(field.type) -- todo
- end
- t.names = names
- t.types = types
- end
+local function getcoltypes(t)
+ return t.types
+end
- local function getcolnames(t)
- local names = t.names
- if names then
- return names
- end
- getcoldata(t)
- return t.names
- end
+local function numrows(t)
+ return tonumber(t.nofrows)
+end
- local function getcoltypes(t)
- local types = t.types
- if types then
- return types
+local function list(t)
+ local result = t._result_
+ if result then
+ local row = mysql_fetch_row(result)
+ -- local len = mysql_fetch_lengths(result)
+ local result = { }
+ for i=1,t.noffields do
+ result[i] = ffi_tostring(row[i-1])
end
- getcoldata(t)
- return t.types
- end
-
- local function numrows(t)
- return t.nofrows
+ return result
end
+end
- -- local function fetch(t)
- -- local
- -- local row = mysql_fetch_row(result)
- -- local result = { }
- -- for i=1,t.noffields do
- -- result[i] = ffi_tostring(row[i-1])
- -- end
- -- return unpack(result)
- -- end
-
- local mt = {
- __gc = collect,
- __index = {
- _result_ = nil,
- close = finish,
- numrows = numrows,
- getcolnames = getcolnames,
- getcoltypes = getcoltypes,
- -- fetch = fetch, -- not efficient
- }
- }
-
- wrapresult = function(connection)
- local result = mysql_store_result(connection)
- if result ~= NULL then
- mysql_field_seek(result,0)
- local t = {
- _result_ = result,
- nofrows = tonumber(mysql_num_rows (result) or 0) or 0,
- noffields = tonumber(mysql_num_fields(result) or 0) or 0,
- }
- return setmetatable(t,mt)
- elseif tonumber(mysql_field_count(connection) or 0) or 0 > 0 then
- return tonumber(mysql_affected_rows(connection))
+local function hash(t)
+ local result = t._result_
+ local fields = t.names
+ if result then
+ local row = mysql_fetch_row(result)
+ -- local len = mysql_fetch_lengths(result)
+ local result = { }
+ for i=1,t.noffields do
+ result[fields[i]] = ffi_tostring(row[i-1])
end
+ return result
end
-
end
-local initializesession do
+local function wholelist(t)
+ return fetch_all_rows(t._result_)
+end
- -- timeouts = [ connect_timeout |wait_timeout | interactive_timeout ]
+local mt = { __index = {
+ -- regular
+ finish = finish,
+ list = list,
+ hash = hash,
+ wholelist = wholelist,
+ -- compatibility
+ numrows = numrows,
+ getcolnames = getcolnames,
+ getcoltypes = getcoltypes,
+ -- fallback
+ _result_ = nil,
+ names = { },
+ types = { },
+ noffields = 0,
+ nofrows = 0,
+ }
+}
- local timeout -- = 3600 -- to be tested
+local nt = setmetatable({},mt)
- -- connection
+-- session
- local function close(t)
- -- just a struct ?
- end
+local function close(t)
+ mysql_close_connection(t._connection_)
+end
- local function execute(t,query)
- if query and query ~= "" then
- local connection = t._connection_
- local result = mysql_execute_query(connection,query,#query)
- if result == 0 then
- return wrapresult(connection)
+local function execute(t,query)
+ if query and query ~= "" then
+ local connection = t._connection_
+ local result = mysql_execute_query(connection,query,#query)
+ if result == 0 then
+ local result = mysql_store_result(connection)
+ if result ~= NULL then
+ mysql_field_seek(result,0)
+ local nofrows = tonumber(mysql_num_rows(result) or 0)
+ local noffields = tonumber(mysql_num_fields(result))
+ local names = { }
+ local types = { }
+ local fields = mysql_fetch_fields(result)
+ for i=1,noffields do
+ local field = fields[i-1]
+ names[i] = ffi_tostring(field.name)
+ types[i] = tonumber(field.type) -- todo
+ end
+ local t = {
+ _result_ = result,
+ names = names,
+ types = types,
+ noffields = noffields,
+ nofrows = nofrows,
+ }
+ return setmetatable(t,mt)
else
- -- mysql_error_number(connection)
- return false, ffi_tostring(mysql_error_message(connection))
+ return nt
end
end
- return false
end
+ return false
+end
- local mt = {
- __index = {
- close = close,
- execute = execute,
- }
+local mt = { __index = {
+ close = close,
+ execute = execute,
}
+}
- -- session
-
- local function open(t,database,username,password,host,port)
- local connection = mysql_open_connection(
- t._session_,
- host or "localhost",
- username or "",
- password or "",
- database or "",
- port or 0,
- NULL,
- 0
- )
- if connection ~= NULL then
- if timeout then
- execute(connection,formatters["SET SESSION connect_timeout=%s ;"](timeout))
- end
- local t = {
- _connection_ = connection,
- }
- return setmetatable(t,mt)
- end
+local function open(t,database,username,password,host,port)
+ local connection = mysql_open_connection(
+ t._session_,
+ host or "localhost",
+ username or "",
+ password or "",
+ database or "",
+ port or 0,
+ NULL,
+ 0
+ )
+ if connection ~= NULL then
+ local t = {
+ _connection_ = connection,
+ }
+ return setmetatable(t,mt)
end
+end
- local function message(t)
- return mysql_error_message(t._session_)
- end
+local function message(t)
+ return mysql_error_message(t._session_)
+end
- local function close(t)
- local connection = t._connection_
- if connection and connection ~= NULL then
- ffi_gc(connection, mysql_close)
- t.connection = nil
- end
- end
+local function close(t)
+ -- dummy, as we have a global session
+end
- local mt = {
- __index = {
- connect = open,
- close = close,
- message = message,
- },
+local mt = {
+ __index = {
+ connect = open,
+ close = close,
+ message = message,
}
+}
- initializesession = function()
- local session = {
- _session_ = mysql_open_session(instance) -- maybe share, single thread anyway
- }
- return setmetatable(session,mt)
- end
-
+local function initialize()
+ local session = {
+ _session_ = mysql_initialize(instance) -- maybe share, single thread anyway
+ }
+ return setmetatable(session,mt)
end
-local executequery do
+-- -- -- --
- local function connect(session,specification)
- return session:connect(
- specification.database or "",
- specification.username or "",
- specification.password or "",
- specification.host or "",
- specification.port
+local function connect(session,specification)
+ return session:connect(
+ specification.database or "",
+ specification.username or "",
+ specification.password or "",
+ specification.host or "",
+ specification.port
+ )
+end
+
+local function error_in_connection(specification,action)
+ report_state("error in connection: [%s] user %s into %s at %s:%s",
+ action or "unknown",
+ specification.username or "no username",
+ specification.database or "no database",
+ specification.host or "no host",
+ specification.port or "no port"
)
- end
+end
- local function fetched(specification,query,converter)
- if not query or query == "" then
- report_state("no valid query")
- return false
+local function datafetched(specification,query,converter)
+ if not query or query == "" then
+ report_state("no valid query")
+ return { }, { }
+ end
+ local id = specification.id
+ local session, connection
+ if id then
+ local c = cache[id]
+ if c then
+ session = c.session
+ connection = c.connection
end
- local id = specification.id
- local session, connection
- if id then
- local c = cache[id]
- if c then
- session = c.session
- connection = c.connection
- end
+ if not connection then
+ session = initialize()
+ connection = connect(session,specification)
if not connection then
- session = initializesession()
- if not session then
- return formatters["no session for %a"](id)
- end
- connection = connect(session,specification)
- if not connection then
- return formatters["no connection for %a"](id)
+ for i=1,nofretries do
+ sleep(retrydelay)
+ report_state("retrying to connect: [%s.%s] %s@%s to %s:%s",
+ id,i,
+ specification.database or "no database",
+ specification.username or "no username",
+ specification.host or "no host",
+ specification.port or "no port"
+ )
+ connection = connect(session,specification)
+ if connection then
+ break
+ end
end
- cache[id] = { session = session, connection = connection }
- end
- else
- session = initializesession()
- if not session then
- return "no session"
end
- connection = connect(session,specification)
- if not connection then
- return "no connection"
+ if connection then
+ cache[id] = { session = session, connection = connection }
end
end
+ else
+ session = initialize()
+ connection = connect(session,specification)
if not connection then
- report_state("error in connection: %s@%s to %s:%s",
+ for i=1,nofretries do
+ sleep(retrydelay)
+ report_state("retrying to connect: [%s] %s@%s to %s:%s",
+ i,
+ specification.database or "no database",
+ specification.username or "no username",
+ specification.host or "no host",
+ specification.port or "no port"
+ )
+ connection = connect(session,specification)
+ if connection then
+ break
+ end
+ end
+ end
+ end
+ if not connection then
+ report_state("error in connection: %s@%s to %s:%s",
specification.database or "no database",
specification.username or "no username",
specification.host or "no host",
specification.port or "no port"
)
- return "no connection"
- end
- query = lpegmatch(querysplitter,query)
- local result, okay
- for i=1,#query do
- local q = query[i]
- local r, m = connection:execute(q)
- if m then
- report_state("error in query to host %a: %s",specification.host,string.collapsespaces(q or "?"))
- if m then
- report_state("message: %s",m)
- end
- end
- local t = type(r)
- if t == "table" then
- result = r
- okay = true
- elseif t == "number" then
- okay = true
- end
- end
- if not okay then -- can go
- -- why do we close a session
- if connection then
- connection:close()
- end
- if session then
- session:close()
- end
- if id then
- cache[id] = nil
- end
- return "execution error"
+ return { }, { }
+ end
+ query = lpegmatch(querysplitter,query)
+ local result, message, okay
+ for i=1,#query do
+ local q = query[i]
+ local r, m = connection:execute(q)
+ if m then
+ report_state("error in query, stage: %s",string.collapsespaces(q or "?"))
+ message = message and format("%s\n%s",message,m) or m
end
- local data, keys
- if result then
- if converter then
- data = converter.ffi(result)
- else
- local _result_ = result._result_
- local noffields = result.noffields
- local nofrows = result.nofrows
- keys = result:getcolnames()
- data = { }
- if noffields > 0 and nofrows > 0 then
- for i=1,nofrows do
- local cells = { }
- local row = mysql_fetch_row(_result_)
- for j=1,noffields do
- local s = row[j-1]
- local k = keys[j]
- if s == NULL then
- cells[k] = ""
- else
- cells[k] = ffi_tostring(s)
- end
- end
- data[i] = cells
- end
- end
- end
- result:close()
+ if type(r) == "table" then
+ result = r
+ okay = true
+ elseif not m then
+ okay = true
end
- --
- if not id then
- if connection then
- connection:close()
- end
- if session then
- session:close()
+ end
+ local data, keys
+ if result then
+ if converter then
+ data = converter.ffi(result)
+ else
+ keys = result.names
+ data = { }
+ for i=1,result.nofrows do
+ data[i] = result:hash()
end
end
- return false, data, keys
+ result:finish() -- result:close()
+ elseif message then
+ report_state("message %s",message)
end
-
- local function datafetched(specification,query,converter)
- local callokay, connectionerror, data, keys = pcall(fetched,specification,query,converter)
- if not callokay then
- report_state("call error, retrying")
- callokay, connectionerror, data, keys = pcall(fetched,specification,query,converter)
- elseif connectionerror then
- report_state("error: %s, retrying",connectionerror)
- callokay, connectionerror, data, keys = pcall(fetched,specification,query,converter)
- end
- if not callokay then
- report_state("persistent call error")
- elseif connectionerror then
- report_state("persistent error: %s",connectionerror)
- end
- return data or { }, keys or { }
+ if not keys then
+ keys = { }
end
-
- executequery = function(specification)
- if trace_sql then
- report_state("executing library")
- end
- if not validspecification(specification) then
- report_state("error in specification")
- return
- end
- local query = dataprepared(specification)
- if not query then
- report_state("error in preparation")
- return
- end
- local data, keys = datafetched(specification,query,specification.converter)
- if not data then
- report_state("error in fetching")
- return
- end
- local one = data[1]
- if one then
- setmetatable(data,{ __index = one } )
- end
- return data, keys
+ if not data then
+ data = { }
+ end
+ if not id then
+ connection:close()
+ session:close()
end
+ return data, keys
+end
+local function execute(specification)
+ if trace_sql then
+ report_state("executing library")
+ end
+ if not validspecification(specification) then
+ report_state("error in specification")
+ return
+ end
+ local query = dataprepared(specification)
+ if not query then
+ report_state("error in preparation")
+ return
+ end
+ local data, keys = datafetched(specification,query,specification.converter)
+ if not data then
+ report_state("error in fetching")
+ return
+ end
+ local one = data[1]
+ if one then
+ setmetatable(data,{ __index = one } )
+ end
+ return data, keys
end
local wraptemplate = [[
@@ -581,14 +530,13 @@ return function(result)
if not result then
return { }
end
- local nofrows = result.nofrows
+ local nofrows = result.nofrows or 0
if nofrows == 0 then
return { }
end
- local noffields = result.noffields
- local target = { } -- no %s needed here
+ local noffields = result.noffields or 0
local _result_ = result._result_
- -- we can share cells
+ local target = { } -- no %s needed here
for i=1,nofrows do
local cells = { }
local row = mysql_fetch_row(_result_)
@@ -604,7 +552,7 @@ return function(result)
%s
}
end
- result:close()
+ result:finish() -- result:close()
return target
end
]]
@@ -612,9 +560,9 @@ end
local celltemplate = "cells[%s]"
methods.ffi = {
- runner = function() end, -- never called
- execute = executequery,
- initialize = initializesession, -- returns session
+ runner = function() end, -- never called
+ execute = execute,
+ initialize = initialize, -- returns session
usesfiles = false,
wraptemplate = wraptemplate,
celltemplate = celltemplate,
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-sql-imp-library.lua b/Master/texmf-dist/tex/context/base/mkiv/util-sql-imp-library.lua
index dbbeb32cc46..a2b692e4588 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/util-sql-imp-library.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-sql-imp-library.lua
@@ -156,13 +156,13 @@ local function fetched(specification,query,converter)
okay = true
end
end
- if not okay then
- if connection then
- connection:close()
- end
+ if not okay then -- can go
if session then
session:close()
end
+ if connection then
+ connection:close()
+ end
if id then
cache[id] = nil
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-sql-imp-sqlite.lua b/Master/texmf-dist/tex/context/base/mkiv/util-sql-imp-sqlite.lua
index cf4a3a8b04d..04d5ced3a25 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/util-sql-imp-sqlite.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-sql-imp-sqlite.lua
@@ -132,6 +132,7 @@ setmetatable(cache, {
local f_preamble = formatters[ [[
ATTACH `%s` AS `%s` ;
PRAGMA `%s`.synchronous = normal ;
+PRAGMA journal_mode = truncate ;
]] ]
local function execute(specification)
@@ -210,19 +211,17 @@ local function execute(specification)
else
local column = { }
callback = function(data,nofcolumns,values,fields)
- for i=1,nofcolumns do
+ for i=0,nofcolumns-1 do
local field
if keysdone then
- field = keys[i]
+ field = keys[i+1]
else
-- field = get_list_item(fields,i)
- field = ffi_tostring(fields[i-1])
+ field = ffi_tostring(fields[i])
keys[i+1] = field
end
- if field then
- -- column[field] = get_list_item(values,i)
- column[field] = ffi_tostring(values[i-1])
- end
+ -- column[field] = get_list_item(values,i)
+ column[field] = ffi_tostring(values[i])
end
nofrows = nofrows + 1
keysdone = true
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-sql-logins.lua b/Master/texmf-dist/tex/context/base/mkiv/util-sql-logins.lua
index c19bfbdf81f..dcb48fb356a 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/util-sql-logins.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-sql-logins.lua
@@ -211,10 +211,9 @@ end
logins.userpurge = userpurge
local function verdict(okay,...)
--- if not trace_logins then
--- -- no tracing
--- else
- if okay then
+ if not trace_logins then
+ -- no tracing
+ elseif okay then
report_logins("%s, granted",formatter(...))
else
report_logins("%s, blocked",formatter(...))
@@ -245,11 +244,6 @@ function logins.userpermitted(db,name)
}
end
if not data or not data.name then
- if not data then
- report_logins("no user data for %a",name)
- else
- report_logins("no name entry for %a",name)
- end
local d = {
name = name,
state = 0,
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-sql-users.lua b/Master/texmf-dist/tex/context/base/mkiv/util-sql-users.lua
index 57c99b2a776..7204fb310da 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/util-sql-users.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-sql-users.lua
@@ -25,16 +25,12 @@ local trace_sql = false trackers.register("sql.users.trace", function(v) trace_
local report = logs.reporter("sql","users")
local split = lpeg.splitat(":")
-
local valid = nil
local hash = function(s) return "MD5:" .. sumHEXA(s) end
-local sha2 = sha2 or (utilities and utilities.sha2)
-if not sha2 and LUAVERSION >= 5.3 then
- sha2 = require("util-sha")
-end
+if LUAVERSION >= 5.3 then
-if sha2 then
+ local sha2 = require("util-sha")
local HASH224 = sha2.HASH224
local HASH256 = sha2.HASH256
@@ -242,7 +238,9 @@ function users.valid(db,username,password,address)
name = username,
},
}
+
local data = data and data[1]
+
if not data then
return false, "unknown user"
elseif not data.enabled then
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-sta.lua b/Master/texmf-dist/tex/context/base/mkiv/util-sta.lua
index 7819395f69c..d140cacdcd8 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/util-sta.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-sta.lua
@@ -289,24 +289,24 @@ end
--
-- local concat = table.concat
--
--- local pageliteral = nodes.pool.pageliteral
+-- local pdfpageliteral = nodes.pool.pdfpageliteral
--
-- function demostacker.start(s,t,first,last)
-- local n = whatever[t[last]]
-- -- s.report("start: %s",n)
--- return pageliteral(n)
+-- return pdfpageliteral(n)
-- end
--
-- function demostacker.stop(s,t,first,last)
-- local n = whatever[false]
-- -- s.report("stop: %s",n)
--- return pageliteral(n)
+-- return pdfpageliteral(n)
-- end
--
-- function demostacker.change(s,t1,first1,last1,t2,first2,last2)
-- local n = whatever[t2[last2]]
-- -- s.report("change: %s",n)
--- return pageliteral(n)
+-- return pdfpageliteral(n)
-- end
--
-- demostacker.mode = "switch"
@@ -325,7 +325,7 @@ end
-- r[#r+1] = whatever[t[i]]
-- end
-- -- s.report("start: %s",concat(r," "))
--- return pageliteral(concat(r," "))
+-- return pdfpageliteral(concat(r," "))
-- end
--
-- function demostacker.stop(s,t,first,last)
@@ -334,7 +334,7 @@ end
-- r[#r+1] = whatever[false]
-- end
-- -- s.report("stop: %s",concat(r," "))
--- return pageliteral(concat(r," "))
+-- return pdfpageliteral(concat(r," "))
-- end
--
-- function demostacker.change(s,t1,first1,last1,t2,first2,last2)
@@ -346,7 +346,7 @@ end
-- r[#r+1] = whatever[t2[i]]
-- end
-- -- s.report("change: %s",concat(r," "))
--- return pageliteral(concat(r," "))
+-- return pdfpageliteral(concat(r," "))
-- end
--
-- demostacker.mode = "stack"
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-sto.lua b/Master/texmf-dist/tex/context/base/mkiv/util-sto.lua
index a08d25ced18..5b6915eaf01 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/util-sto.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-sto.lua
@@ -196,19 +196,6 @@ function table.getmetatablekey(t,key,value)
return m and m[key]
end
-function table.makeweak(t)
- if not t then
- t = { }
- end
- local m = getmetatable(t)
- if m then
- m.__mode = "v"
- else
- setmetatable(t,{ __mode = "v" })
- end
- return t
-end
-
-- Problem: we have no __next (which is ok as it would probably slow down lua) so
-- we cannot loop over the keys.
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-str.lua b/Master/texmf-dist/tex/context/base/mkiv/util-str.lua
index 713c294ebe7..05ff9f304d7 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/util-str.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-str.lua
@@ -22,72 +22,46 @@ local utfchar, utfbyte, utflen = utf.char, utf.byte, utf.len
----- loadstripped = utilities.lua.loadstripped
----- setmetatableindex = table.setmetatableindex
-local loadstripped = function(str,shortcuts)
- if shortcuts then
- return load(dump(load(str),true),nil,nil,shortcuts)
- else
- return load(dump(load(str),true))
+local loadstripped = nil
+local oldfashioned = LUAVERSION < 5.2
+
+if oldfashioned then
+
+ loadstripped = function(str,shortcuts)
+ return load(str)
+ end
+
+else
+
+ loadstripped = function(str,shortcuts)
+ if shortcuts then
+ return load(dump(load(str),true),nil,nil,shortcuts)
+ else
+ return load(dump(load(str),true))
+ end
end
+
end
-- todo: make a special namespace for the formatter
if not number then number = { } end -- temp hack for luatex-fonts
-local stripzero = patterns.stripzero
-local stripzeros = patterns.stripzeros
+local stripper = patterns.stripzeros
local newline = patterns.newline
local endofstring = patterns.endofstring
-local anything = patterns.anything
local whitespace = patterns.whitespace
-local space = patterns.space
local spacer = patterns.spacer
local spaceortab = patterns.spaceortab
-local digit = patterns.digit
-local sign = patterns.sign
-local period = patterns.period
-
--- local function points(n)
--- n = tonumber(n)
--- return (not n or n == 0) and "0pt" or lpegmatch(stripzeros,format("%.5fpt",n/65536))
--- end
-
--- local function basepoints(n)
--- n = tonumber(n)
--- return (not n or n == 0) and "0bp" or lpegmatch(stripzeros,format("%.5fbp", n*(7200/7227)/65536))
--- end
-
-local ptf = 1 / 65536
-local bpf = (7200/7227) / 65536
local function points(n)
- if n == 0 then
- return "0pt"
- end
n = tonumber(n)
- if not n or n == 0 then
- return "0pt"
- end
- n = n * ptf
- if n % 1 == 0 then
- return format("%ipt",n)
- end
- return lpegmatch(stripzeros,format("%.5fpt",n)) -- plural as we need to keep the pt
+ return (not n or n == 0) and "0pt" or lpegmatch(stripper,format("%.5fpt",n/65536))
end
local function basepoints(n)
- if n == 0 then
- return "0pt"
- end
n = tonumber(n)
- if not n or n == 0 then
- return "0pt"
- end
- n = n * bpf
- if n % 1 == 0 then
- return format("%ibp",n)
- end
- return lpegmatch(stripzeros,format("%.5fbp",n)) -- plural as we need to keep the pt
+ return (not n or n == 0) and "0bp" or lpegmatch(stripper,format("%.5fbp", n*(7200/7227)/65536))
end
number.points = points
@@ -98,6 +72,7 @@ number.basepoints = basepoints
local rubish = spaceortab^0 * newline
local anyrubish = spaceortab + newline
+local anything = patterns.anything
local stripped = (spaceortab^1 / "") * newline
local leading = rubish^0 / ""
local trailing = (anyrubish^1 * endofstring) / ""
@@ -165,7 +140,7 @@ local pattern =
+ newline * Cp() / function(position)
extra, start = 0, position
end
- + anything
+ + patterns.anything
)^1)
function strings.tabtospace(str,tab)
@@ -208,31 +183,27 @@ end
-- return str
-- end
-local optionalspace = spacer^0
-local nospace = optionalspace/""
-local endofline = nospace * newline
+local space = spacer^0
+local nospace = space/""
+local endofline = nospace * newline
-local stripend = (whitespace^1 * endofstring)/""
+local stripend = (whitespace^1 * endofstring)/""
-local normalline = (nospace * ((1-optionalspace*(newline+endofstring))^1) * nospace)
+local normalline = (nospace * ((1-space*(newline+endofstring))^1) * nospace)
-local stripempty = endofline^1/""
-local normalempty = endofline^1
-local singleempty = endofline * (endofline^0/"")
-local doubleempty = endofline * endofline^-1 * (endofline^0/"")
-local stripstart = stripempty^0
+local stripempty = endofline^1/""
+local normalempty = endofline^1
+local singleempty = endofline * (endofline^0/"")
+local doubleempty = endofline * endofline^-1 * (endofline^0/"")
-local intospace = whitespace^1/" "
-local noleading = whitespace^1/""
-local notrailing = noleading * endofstring
+local stripstart = stripempty^0
-local p_prune_normal = Cs ( stripstart * ( stripend + normalline + normalempty )^0 )
-local p_prune_collapse = Cs ( stripstart * ( stripend + normalline + doubleempty )^0 )
-local p_prune_noempty = Cs ( stripstart * ( stripend + normalline + singleempty )^0 )
-local p_prune_intospace = Cs ( noleading * ( notrailing + intospace + 1 )^0 )
-local p_retain_normal = Cs ( ( normalline + normalempty )^0 )
-local p_retain_collapse = Cs ( ( normalline + doubleempty )^0 )
-local p_retain_noempty = Cs ( ( normalline + singleempty )^0 )
+local p_prune_normal = Cs ( stripstart * ( stripend + normalline + normalempty )^0 )
+local p_prune_collapse = Cs ( stripstart * ( stripend + normalline + doubleempty )^0 )
+local p_prune_noempty = Cs ( stripstart * ( stripend + normalline + singleempty )^0 )
+local p_retain_normal = Cs ( ( normalline + normalempty )^0 )
+local p_retain_collapse = Cs ( ( normalline + doubleempty )^0 )
+local p_retain_noempty = Cs ( ( normalline + singleempty )^0 )
-- function striplines(str,prune,collapse,noempty)
-- if prune then
@@ -258,11 +229,10 @@ local striplinepatterns = {
["prune"] = p_prune_normal,
["prune and collapse"] = p_prune_collapse, -- default
["prune and no empty"] = p_prune_noempty,
- ["prune and to space"] = p_prune_intospace,
["retain"] = p_retain_normal,
["retain and collapse"] = p_retain_collapse,
["retain and no empty"] = p_retain_noempty,
- ["collapse"] = patterns.collapser,
+ ["collapse"] = patterns.collapser, -- how about: stripper fullstripper
}
setmetatable(striplinepatterns,{ __index = function(t,k) return p_prune_collapse end })
@@ -273,10 +243,6 @@ function strings.striplines(str,how)
return str and lpegmatch(striplinepatterns[how],str) or str
end
-function strings.collapse(str) -- maybe also in strings
- return str and lpegmatch(p_prune_intospace,str) or str
-end
-
-- also see: string.collapsespaces
strings.striplong = strings.striplines -- for old times sake
@@ -292,14 +258,13 @@ strings.striplong = strings.striplines -- for old times sake
-- " zus wim jet",
-- " ",
-- }, "\n")
---
+
-- local str = table.concat( {
-- " aaaa",
-- " bb",
-- " cccccc",
--- " ",
-- }, "\n")
---
+
-- for k, v in table.sortedhash(utilities.strings.striplinepatterns) do
-- logs.report("stripper","method: %s, result: [[%s]]",k,utilities.strings.striplines(str,k))
-- end
@@ -370,7 +335,6 @@ end
-- automatic %...a 'whatever' (string, table, ...)
-- automatic %...A "whatever" (string, table, ...)
-- zap %...z skip
--- stripped %...N %...N
-- comma/period real %...m
-- period/comma real %...M
-- formatted float %...k n.m
@@ -446,45 +410,27 @@ end
-- maybe to util-num
-local two = digit * digit
-local three = two * digit
-local prefix = (Carg(1) * three)^1
+local digit = patterns.digit
+local period = patterns.period
+local three = digit * digit * digit
local splitter = Cs (
- (((1 - (three^1 * period))^1 + C(three)) * prefix + C((1-period)^1))
- * (anything/"" * Carg(2)) * C(2)
-)
-
-local splitter3 = Cs (
- three * prefix * endofstring +
- two * prefix * endofstring +
- digit * prefix * endofstring +
- three +
- two +
- digit
+ (((1 - (three^1 * period))^1 + C(three)) * (Carg(1) * three)^1 + C((1-period)^1))
+ * (P(1)/"" * Carg(2)) * C(2)
)
patterns.formattednumber = splitter
function number.formatted(n,sep1,sep2)
- if sep1 == false then
- if type(n) == "number" then
- n = tostring(n)
- end
- return lpegmatch(splitter3,n,1,sep2 or ".")
+ local s = type(s) == "string" and n or format("%0.2f",n)
+ if sep1 == true then
+ return lpegmatch(splitter,s,1,".",",")
+ elseif sep1 == "." then
+ return lpegmatch(splitter,s,1,sep1,sep2 or ",")
+ elseif sep1 == "," then
+ return lpegmatch(splitter,s,1,sep1,sep2 or ".")
else
- if type(n) == "number" then
- n = format("%0.2f",n)
- end
- if sep1 == true then
- return lpegmatch(splitter,n,1,".",",")
- elseif sep1 == "." then
- return lpegmatch(splitter,n,1,sep1,sep2 or ",")
- elseif sep1 == "," then
- return lpegmatch(splitter,n,1,sep1,sep2 or ".")
- else
- return lpegmatch(splitter,n,1,sep1 or ",",sep2 or ".")
- end
+ return lpegmatch(splitter,s,1,sep1 or ",",sep2 or ".")
end
end
@@ -497,22 +443,14 @@ end
-- print(number.formatted(1234567))
-- print(number.formatted(12345678))
-- print(number.formatted(12345678,true))
--- print(number.formatted(1,false))
--- print(number.formatted(12,false))
--- print(number.formatted(123,false))
--- print(number.formatted(1234,false))
--- print(number.formatted(12345,false))
--- print(number.formatted(123456,false))
--- print(number.formatted(1234567,false))
--- print(number.formatted(12345678,false))
-- print(number.formatted(1234.56,"!","?"))
local p = Cs(
P("-")^0
* (P("0")^1/"")^0
- * (1-period)^0
- * (period * P("0")^1 * endofstring/"" + period^0)
- * P(1-P("0")^1*endofstring)^0
+ * (1-P("."))^0
+ * (P(".") * P("0")^1 * P(-1)/"" + P(".")^0)
+ * P(1-P("0")^1*P(-1))^0
)
function number.compactfloat(n,fmt)
@@ -531,11 +469,12 @@ end
local zero = P("0")^1 / ""
local plus = P("+") / ""
local minus = P("-")
-local separator = period
+local separator = S(".")
+local digit = R("09")
local trailing = zero^1 * #S("eE")
-local exponent = (S("eE") * (plus + Cs((minus * zero^0 * endofstring)/"") + minus) * zero^0 * (endofstring * Cc("0") + anything^1))
+local exponent = (S("eE") * (plus + Cs((minus * zero^0 * P(-1))/"") + minus) * zero^0 * (P(-1) * Cc("0") + P(1)^1))
local pattern_a = Cs(minus^0 * digit^1 * (separator/"" * trailing + separator * (trailing + digit)^0) * exponent)
-local pattern_b = Cs((exponent + anything)^0)
+local pattern_b = Cs((exponent + P(1))^0)
function number.sparseexponent(f,n)
if not n then
@@ -585,36 +524,62 @@ local template = [[
return function(%s) return %s end
]]
-local preamble = ""
-
-local environment = {
- global = global or _G,
- lpeg = lpeg,
- type = type,
- tostring = tostring,
- tonumber = tonumber,
- format = string.format,
- concat = table.concat,
- signed = number.signed,
- points = number.points,
- basepoints = number.basepoints,
- utfchar = utf.char,
- utfbyte = utf.byte,
- lpegmatch = lpeg.match,
- nspaces = string.nspaces,
- utfpadding = string.utfpadding,
- tracedchar = string.tracedchar,
- autosingle = string.autosingle,
- autodouble = string.autodouble,
- sequenced = table.sequenced,
- formattednumber = number.formatted,
- sparseexponent = number.sparseexponent,
- formattedfloat = number.formattedfloat,
- stripzero = lpeg.patterns.stripzero,
- stripzeros = lpeg.patterns.stripzeros,
-
- FORMAT = string.f9,
-}
+local preamble, environment = "", { }
+
+if oldfashioned then
+
+ preamble = [[
+local lpeg=lpeg
+local type=type
+local tostring=tostring
+local tonumber=tonumber
+local format=string.format
+local concat=table.concat
+local signed=number.signed
+local points=number.points
+local basepoints= number.basepoints
+local utfchar=utf.char
+local utfbyte=utf.byte
+local lpegmatch=lpeg.match
+local nspaces=string.nspaces
+local utfpadding=string.utfpadding
+local tracedchar=string.tracedchar
+local autosingle=string.autosingle
+local autodouble=string.autodouble
+local sequenced=table.sequenced
+local formattednumber=number.formatted
+local sparseexponent=number.sparseexponent
+local formattedfloat=number.formattedfloat
+ ]]
+
+else
+
+ environment = {
+ global = global or _G,
+ lpeg = lpeg,
+ type = type,
+ tostring = tostring,
+ tonumber = tonumber,
+ format = string.format,
+ concat = table.concat,
+ signed = number.signed,
+ points = number.points,
+ basepoints = number.basepoints,
+ utfchar = utf.char,
+ utfbyte = utf.byte,
+ lpegmatch = lpeg.match,
+ nspaces = string.nspaces,
+ utfpadding = string.utfpadding,
+ tracedchar = string.tracedchar,
+ autosingle = string.autosingle,
+ autodouble = string.autodouble,
+ sequenced = table.sequenced,
+ formattednumber = number.formatted,
+ sparseexponent = number.sparseexponent,
+ formattedfloat = number.formattedfloat,
+ }
+
+end
-- -- --
@@ -628,10 +593,10 @@ setmetatable(arguments, { __index =
end
})
-local prefix_any = C((sign + space + period + digit)^0)
-local prefix_sub = (C((sign + digit)^0) + Cc(0))
- * period
- * (C((sign + digit)^0) + Cc(0))
+local prefix_any = C((S("+- .") + R("09"))^0)
+local prefix_sub = (C((S("+-") + R("09"))^0) + Cc(0))
+ * P(".")
+ * (C((S("+-") + R("09"))^0) + Cc(0))
local prefix_tab = P("{") * C((1-P("}"))^0) * P("}") + C((1-R("az","AZ","09","%%"))^0)
-- we've split all cases as then we can optimize them (let's omit the fuzzy u)
@@ -732,17 +697,6 @@ local format_F = function(f) -- beware, no cast to number
end
end
--- if string.f9 then
--- format_F = function(f) -- beware, no cast to number
--- n = n + 1
--- if not f or f == "" then
--- return format("(((a%s > -0.0000000005 and a%s < 0.0000000005) and '0') or FORMAT(a%s))",n,n,n,n,n)
--- else
--- return format("((a%s %% 1 == 0) and format('%%i',a%s) or FORMAT(a%s,'%%%sf'))",n,n,n,f)
--- end
--- end
--- end
-
local format_k = function(b,a) -- slow
n = n + 1
return format("formattedfloat(a%s,%i,%i)",n,b or 0, a or 0)
@@ -886,43 +840,9 @@ local format_L = function()
return format("(a%s and 'TRUE' or 'FALSE')",n)
end
-local format_n = function() -- strips leading and trailing zeros and removes .0
- n = n + 1
- return format("((a%s %% 1 == 0) and format('%%i',a%s) or tostring(a%s))",n,n,n)
-end
-
--- local format_N = function() -- strips leading and trailing zeros (also accepts string)
--- n = n + 1
--- return format("tostring(tonumber(a%s) or a%s)",n,n)
--- end
-
--- local format_N = function(f) -- strips leading and trailing zeros
--- n = n + 1
--- -- stripzero (singular) as we only have a number
--- if not f or f == "" then
--- return format("(((a%s > -0.0000000005 and a%s < 0.0000000005) and '0') or ((a%s %% 1 == 0) and format('%%i',a%s)) or lpegmatch(stripzero,format('%%.9f',a%s)))",n,n,n,n,n)
--- else
--- return format("(((a%s %% 1 == 0) and format('%%i',a%s)) or lpegmatch(stripzero,format('%%%sf',a%s)))",n,n,f,n)
--- end
--- end
-
--- local format_N = function(f) -- strips leading and trailing zeros
--- n = n + 1
--- -- stripzero (singular) as we only have a number
--- if not f or f == "" then
--- return format("(((a%s %% 1 == 0) and format('%%i',a%s)) or ((a%s > -0.0000000005 and a%s < 0.0000000005) and '0') or lpegmatch(stripzero,format('%%.9f',a%s)))",n,n,n,n,n)
--- else
--- return format("(((a%s %% 1 == 0) and format('%%i',a%s)) or lpegmatch(stripzero,format('%%%sf',a%s)))",n,n,f,n)
--- end
--- end
-
-local format_N = function(f) -- strips leading and trailing zeros
+local format_N = function() -- strips leading zeros
n = n + 1
- -- stripzero (singular) as we only have a number
- if not f or f == "" then
- f = ".9"
- end -- always a leading number !
- return format("(((a%s %% 1 == 0) and format('%%i',a%s)) or lpegmatch(stripzero,format('%%%sf',a%s)))",n,n,f,n)
+ return format("tostring(tonumber(a%s) or a%s)",n,n)
end
local format_a = function(f)
@@ -962,11 +882,7 @@ local format_m = function(f)
if not f or f == "" then
f = ","
end
- if f == "0" then
- return format([[formattednumber(a%s,false)]],n)
- else
- return format([[formattednumber(a%s,%q,".")]],n,f)
- end
+ return format([[formattednumber(a%s,%q,".")]],n,f)
end
local format_M = function(f)
@@ -974,11 +890,7 @@ local format_M = function(f)
if not f or f == "" then
f = "."
end
- if f == "0" then
- return format([[formattednumber(a%s,false)]],n)
- else
- return format([[formattednumber(a%s,%q,",")]],n,f)
- end
+ return format([[formattednumber(a%s,%q,",")]],n,f)
end
--
@@ -990,100 +902,42 @@ end
--
--- local strip
---
--- local format_Z = function(f)
--- n = n + 1
--- if not f or f == "" then
--- f = ".9"
--- end
--- return format("(((a%s %% 1 == 0) and format('%%i',a%s)) or (strip and lpegmatch(stripzero,format('%%%sf',a%s))) or format('%%%sf',a%s))",n,n,f,n,f,n)
--- end
---
--- function strings.stripformatterzeros()
--- strip = true
--- end
-
--- add(formatters,"texexp", [[texexp(...)]], "local texexp = metapost.texexp")
---
--- add(formatters,"foo:bar",[[foo(...)]], { foo = function(...) print(...) return "!" end })
--- print(string.formatters["foo %3!foo:bar! bar"](1,2,3))
-
-
local format_rest = function(s)
return format("%q",s) -- catches " and \n and such
end
--- local format_extension = function(extensions,f,name)
--- local extension = extensions[name] or "tostring(%s)"
--- local f = tonumber(f) or 1
--- local w = find(extension,"%.%.%.")
--- if f == 0 then
--- if w then
--- extension = gsub(extension,"%.%.%.","")
--- end
--- return extension
--- elseif f == 1 then
--- if w then
--- extension = gsub(extension,"%.%.%.","%%s")
--- end
--- n = n + 1
--- local a = "a" .. n
--- return format(extension,a,a) -- maybe more times?
--- elseif f < 0 then
--- local a = "a" .. (n + f + 1)
--- return format(extension,a,a)
--- else
--- if w then
--- extension = gsub(extension,"%.%.%.",rep("%%s,",f-1).."%%s")
--- end
--- -- we could fill an array and then n = n + 1 unpack(t,n,n+f) but as we
--- -- cache we don't save much and there are hardly any extensions anyway
--- local t = { }
--- for i=1,f do
--- n = n + 1
--- -- t[#t+1] = "a" .. n
--- t[i] = "a" .. n
--- end
--- return format(extension,unpack(t))
--- end
--- end
-
local format_extension = function(extensions,f,name)
local extension = extensions[name] or "tostring(%s)"
local f = tonumber(f) or 1
local w = find(extension,"%.%.%.")
- if w then
- -- we have a wildcard
- if f == 0 then
+ if f == 0 then
+ if w then
extension = gsub(extension,"%.%.%.","")
- return extension
- elseif f == 1 then
+ end
+ return extension
+ elseif f == 1 then
+ if w then
extension = gsub(extension,"%.%.%.","%%s")
- n = n + 1
- local a = "a" .. n
- return format(extension,a,a) -- maybe more times?
- elseif f < 0 then
- local a = "a" .. (n + f + 1)
- return format(extension,a,a)
- else
- extension = gsub(extension,"%.%.%.",rep("%%s,",f-1).."%%s")
- -- we could fill an array and then n = n + 1 unpack(t,n,n+f) but as we
- -- cache we don't save much and there are hardly any extensions anyway
- local t = { }
- for i=1,f do
- n = n + 1
- -- t[#t+1] = "a" .. n
- t[i] = "a" .. n
- end
- return format(extension,unpack(t))
end
+ n = n + 1
+ local a = "a" .. n
+ return format(extension,a,a) -- maybe more times?
+ elseif f < 0 then
+ local a = "a" .. (n + f + 1)
+ return format(extension,a,a)
else
- extension = gsub(extension,"%%s",function()
+ if w then
+ extension = gsub(extension,"%.%.%.",rep("%%s,",f-1).."%%s")
+ end
+ -- we could fill an array and then n = n + 1 unpack(t,n,n+f) but as we
+ -- cache we don't save much and there are hardly any extensions anyway
+ local t = { }
+ for i=1,f do
n = n + 1
- return "a" .. n
- end)
- return extension
+ -- t[#t+1] = "a" .. n
+ t[i] = "a" .. n
+ end
+ return format(extension,unpack(t))
end
end
@@ -1108,7 +962,6 @@ local builder = Cs { "start",
+ V("C")
+ V("S") -- new
+ V("Q") -- new
- + V("n") -- new
+ V("N") -- new
+ V("k") -- new
--
@@ -1133,7 +986,7 @@ local builder = Cs { "start",
)
+ V("*")
)
- * (endofstring + Carg(1))
+ * (P(-1) + Carg(1))
)^0,
--
["s"] = (prefix_any * P("s")) / format_s, -- %s => regular %s (string)
@@ -1152,8 +1005,7 @@ local builder = Cs { "start",
--
["S"] = (prefix_any * P("S")) / format_S, -- %S => %s (tostring)
["Q"] = (prefix_any * P("Q")) / format_Q, -- %Q => %q (tostring)
- ["n"] = (prefix_any * P("n")) / format_n, -- %n => tonumber (strips leading and trailing zeros, as well as .0, expects number)
- ["N"] = (prefix_any * P("N")) / format_N, -- %N => tonumber (strips leading and trailing zeros, also takes string)
+ ["N"] = (prefix_any * P("N")) / format_N, -- %N => tonumber (strips leading zeros)
["k"] = (prefix_sub * P("k")) / format_k, -- %k => like f but with n.m
["c"] = (prefix_any * P("c")) / format_c, -- %c => utf character (extension to regular)
["C"] = (prefix_any * P("C")) / format_C, -- %c => U+.... utf character
@@ -1177,11 +1029,10 @@ local builder = Cs { "start",
["j"] = (prefix_any * P("j")) / format_j, -- %j => %e (float) stripped exponent (irrational)
["J"] = (prefix_any * P("J")) / format_J, -- %J => %E (float) stripped exponent (irrational)
--
- ["m"] = (prefix_any * P("m")) / format_m, -- %m => xxx.xxx.xxx,xx (optional prefix instead of .)
- ["M"] = (prefix_any * P("M")) / format_M, -- %M => xxx,xxx,xxx.xx (optional prefix instead of ,)
+ ["m"] = (prefix_tab * P("m")) / format_m, -- %m => xxx.xxx.xxx,xx (optional prefix instead of .)
+ ["M"] = (prefix_tab * P("M")) / format_M, -- %M => xxx,xxx,xxx.xx (optional prefix instead of ,)
--
["z"] = (prefix_any * P("z")) / format_z, -- %z => skip n arguments
- -- ["Z"] = (prefix_any * P("Z")) / format_Z, -- %Z => optionally strip zeros
--
["a"] = (prefix_any * P("a")) / format_a, -- %a => '...' (forces tostring)
["A"] = (prefix_any * P("A")) / format_A, -- %A => "..." (forces tostring)
@@ -1206,7 +1057,7 @@ local preset = {
}
local direct =
- P("%") * (sign + space + period + digit)^0 * S("sqidfgGeExXo") * endofstring
+ P("%") * (S("+- .") + R("09"))^0 * S("sqidfgGeExXo") * P(-1)
/ [[local format = string.format return function(str) return format("%0",str) end]]
local function make(t,str)
@@ -1283,22 +1134,36 @@ strings.formatters = { }
-- _connector_ is an experiment
-function strings.formatters.new(noconcat)
- local e = { } -- better make a copy as we can overload
- for k, v in next, environment do
- e[k] = v
+if oldfashioned then
+
+ function strings.formatters.new(noconcat)
+ local t = { _type_ = "formatter", _connector_ = noconcat and "," or "..", _extensions_ = { }, _preamble_ = preamble, _environment_ = { } }
+ setmetatable(t, { __index = make, __call = use })
+ return t
end
- local t = {
- _type_ = "formatter",
- _connector_ = noconcat and "," or "..",
- _extensions_ = { },
- _preamble_ = "",
- _environment_ = e,
- }
- setmetatable(t, { __index = make, __call = use })
- return t
+
+else
+
+ function strings.formatters.new(noconcat)
+ local e = { } -- better make a copy as we can overload
+ for k, v in next, environment do
+ e[k] = v
+ end
+ local t = { _type_ = "formatter", _connector_ = noconcat and "," or "..", _extensions_ = { }, _preamble_ = "", _environment_ = e }
+ setmetatable(t, { __index = make, __call = use })
+ return t
+ end
+
end
+-- function strings.formatters.new()
+-- local t = { _extensions_ = { }, _preamble_ = "", _type_ = "formatter", _n_ = 0 }
+-- local m = { _t_ = t }
+-- setmetatable(t, { __index = m, __call = use })
+-- setmetatable(m, { __index = make })
+-- return t
+-- end
+
local formatters = strings.formatters.new() -- the default instance
string.formatters = formatters -- in the main string namespace
@@ -1321,17 +1186,27 @@ strings.formatters.add = add
-- registered in the default instance (should we fall back on this one?)
-patterns.xmlescape = Cs((P("<")/"&lt;" + P(">")/"&gt;" + P("&")/"&amp;" + P('"')/"&quot;" + anything)^0)
-patterns.texescape = Cs((C(S("#$%\\{}"))/"\\%1" + anything)^0)
+patterns.xmlescape = Cs((P("<")/"&lt;" + P(">")/"&gt;" + P("&")/"&amp;" + P('"')/"&quot;" + P(1))^0)
+patterns.texescape = Cs((C(S("#$%\\{}"))/"\\%1" + P(1))^0)
patterns.luaescape = Cs(((1-S('"\n'))^1 + P('"')/'\\"' + P('\n')/'\\n"')^0) -- maybe also \0
patterns.luaquoted = Cs(Cc('"') * ((1-S('"\n'))^1 + P('"')/'\\"' + P('\n')/'\\n"')^0 * Cc('"'))
-- escaping by lpeg is faster for strings without quotes, slower on a string with quotes, but
-- faster again when other q-escapables are found (the ones we don't need to escape)
-add(formatters,"xml",[[lpegmatch(xmlescape,%s)]],{ xmlescape = lpeg.patterns.xmlescape })
-add(formatters,"tex",[[lpegmatch(texescape,%s)]],{ texescape = lpeg.patterns.texescape })
-add(formatters,"lua",[[lpegmatch(luaescape,%s)]],{ luaescape = lpeg.patterns.luaescape })
+if oldfashioned then
+
+ add(formatters,"xml",[[lpegmatch(xmlescape,%s)]],"local xmlescape = lpeg.patterns.xmlescape")
+ add(formatters,"tex",[[lpegmatch(texescape,%s)]],"local texescape = lpeg.patterns.texescape")
+ add(formatters,"lua",[[lpegmatch(luaescape,%s)]],"local luaescape = lpeg.patterns.luaescape")
+
+else
+
+ add(formatters,"xml",[[lpegmatch(xmlescape,%s)]],{ xmlescape = lpeg.patterns.xmlescape })
+ add(formatters,"tex",[[lpegmatch(texescape,%s)]],{ texescape = lpeg.patterns.texescape })
+ add(formatters,"lua",[[lpegmatch(luaescape,%s)]],{ luaescape = lpeg.patterns.luaescape })
+
+end
-- -- yes or no:
--
@@ -1368,6 +1243,7 @@ add(formatters,"lua",[[lpegmatch(luaescape,%s)]],{ luaescape = lpeg.patterns.lua
local dquote = patterns.dquote -- P('"')
local equote = patterns.escaped + dquote / '\\"' + 1
+local space = patterns.space
local cquote = Cc('"')
local pattern =
@@ -1401,11 +1277,3 @@ function strings.newcollector()
end
end
end
-
---
-
-local f_16_16 = formatters["%0.5N"]
-
-function number.to16dot16(n)
- return f_16_16(n/65536.0)
-end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-tab.lua b/Master/texmf-dist/tex/context/base/mkiv/util-tab.lua
index b51c6589a07..1b069e2ae21 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/util-tab.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-tab.lua
@@ -22,8 +22,7 @@ local utftoeight = utf.toeight
local splitter = lpeg.tsplitat(".")
function utilities.tables.definetable(target,nofirst,nolast) -- defines undefined tables
- local composed = nil
- local t = { }
+ local composed, t = nil, { }
local snippets = lpegmatch(splitter,target)
for i=1,#snippets - (nolast and 1 or 0) do
local name = snippets[i]
@@ -820,54 +819,3 @@ if setinspector then
end
end)
end
-
--- ordered hashes (for now here but in the table namespace):
-
--- local t = table.orderedhash()
---
--- t["1"] = { "a", "b" }
--- t["2"] = { }
--- t["2a"] = { "a", "c", "d" }
---
--- for k, v in table.ordered(t) do
--- ...
--- end
-
-local mt = {
- __newindex = function(t,k,v)
- local n = t.last + 1
- t.last = n
- t.list[n] = k
- t.hash[k] = v
- end,
- __index = function(t,k)
- return t.hash[k]
- end,
- __len = function(t)
- return t.last
- end,
-}
-
-function table.orderedhash()
- return setmetatable({ list = { }, hash = { }, last = 0 }, mt)
-end
-
-function table.ordered(t)
- local n = t.last
- if n > 0 then
- local l = t.list
- local i = 1
- local h = t.hash
- local f = function()
- if i <= n then
- local k = i
- local v = h[l[k]]
- i = i + 1
- return k, v
- end
- end
- return f, 1, h[l[1]]
- else
- return function() end
- end
-end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-you.lua b/Master/texmf-dist/tex/context/base/mkiv/util-you.lua
index 5802e7d7afd..32a7e07d4e9 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/util-you.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-you.lua
@@ -30,6 +30,7 @@ utilities.youless = youless
local lpegmatch = lpeg.match
local formatters = string.formatters
+local sortedhash = table.sortedhash
local tonumber, type, next = tonumber, type, next
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/koeielettersot.lfg b/Master/texmf-dist/tex/context/fonts/mkiv/koeielettersot.lfg
deleted file mode 100644
index 74bf2dd4966..00000000000
--- a/Master/texmf-dist/tex/context/fonts/mkiv/koeielettersot.lfg
+++ /dev/null
@@ -1,16 +0,0 @@
-return {
- name = "koeielettersot",
- version = "1.00",
- comment = "Goodies that complement koeielettersot",
- author = "Hans Hagen",
- copyright = "ConTeXt development team",
- mathematics = {
- rules = {
- ["radical.extender"] = "radical.extender",
- ["radical.end"] = "radical.end",
- ["hrule.begin"] = "rule.begin",
- ["hrule.extender"] = "rule.ex",
- ["hrule.end"] = "rule.end",
- }
- }
-}
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-cambria.mkiv b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-cambria.mkiv
index 06781a8d040..f5679fd9229 100644
--- a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-cambria.mkiv
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-cambria.mkiv
@@ -20,8 +20,6 @@
% microsoft: cambria.ttc cambriab.ttf cambriai.ttf cambriaz.ttf
% ascender : cambmath.ttf cambria.ttf cambriab.ttf cambriai.ttf cambriaz.ttf
- \doifunknownfontfeature {cambria-math-bold} {\definefontfeature[cambria-math-bold][boldened]}
-
\starttypescript [\s!math,\s!serif] [cambria,cambria-x,cambria-y]
% whatever matches
\definefontsynonym [CambriaMath] [\s!name:cambriamath]
@@ -44,18 +42,15 @@
\starttypescript [\s!math] [cambria,cambria-m,cambria-a] [\s!name]
\loadfontgoodies[cambria-math]
- \definefontsynonym [\s!MathRoman] [CambriaMath] [\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=cambria-math]
- \definefontsynonym [\s!MathRomanBold] [CambriaMath] [\s!features={\s!math\mathsizesuffix,cambria-math-bold,mathextra},\s!goodies=cambria-math]
+ \definefontsynonym [\s!MathRoman] [CambriaMath] [\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=cambria-math]
\stoptypescript
\starttypescript [\s!math] [cambria-x] [\s!name]
\loadfontgoodies[cambria-math]
- \definefontsynonym [\s!MathRoman] [CambriaMath] [\s!features={\s!math,mathextra},\s!goodies=cambria-math]
- \definefontsynonym [\s!MathRomanBold] [CambriaMath] [\s!features={\s!math,cambria-math-bold,mathextra},\s!goodies=cambria-math]
+ \definefontsynonym [\s!MathRoman] [CambriaMath] [\s!features={\s!math,mathextra},\s!goodies=cambria-math]
\stoptypescript
\starttypescript [\s!math] [cambria-y] [\s!name]
\loadfontgoodies[cambria-math]
- \definefontsynonym [\s!MathRoman] [CambriaMath] [\s!features={\s!math-nostack\mathsizesuffix,mathextra},\s!goodies=cambria-math]
- \definefontsynonym [\s!MathRomanBold] [CambriaMath] [\s!features={\s!math-nostack\mathsizesuffix,cambria-math-bold,mathextra},\s!goodies=cambria-math]
+ \definefontsynonym [\s!MathRoman] [CambriaMath] [\s!features={\s!math-nostack\mathsizesuffix,mathextra},\s!goodies=cambria-math]
\stoptypescript
\starttypescript [\s!serif] [cambria,cambria-m,cambria-a] [\s!name]
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-dejavu.mkiv b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-dejavu.mkiv
index 3af9d2d1768..582d8a764aa 100644
--- a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-dejavu.mkiv
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-dejavu.mkiv
@@ -15,8 +15,6 @@
\starttypescriptcollection[dejavu]
- \doifunknownfontfeature {dejavu-math-bold} {\definefontfeature[dejavu-math-bold][boldened]}
-
\starttypescript [\s!serif] [dejavu] [\s!name]
\setups[\s!font:\s!fallback:\s!serif]
\definefontsynonym [\s!Serif] [\s!name:dejavuserif] [\s!features=\s!default,\s!fallbacks=\s!Serif]
@@ -43,8 +41,7 @@
\starttypescript [\s!math][dejavu][\s!name]
\loadfontgoodies[dejavu-math]
- \definefontsynonym[\s!MathRoman] [file:texgyredejavu-math][\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=dejavu-math]
- \definefontsynonym[\s!MathRomanBold][file:texgyredejavu-math][\s!features={\s!math\mathsizesuffix,dejavu-math-bold,mathextra},\s!goodies=schola-math]
+ \definefontsynonym[\s!MathRoman][file:texgyredejavu-math][\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=dejavu-math]
\stoptypescript
\starttypescript[dejavu]
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-firacode.mkiv b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-firacode.mkiv
deleted file mode 100644
index a4cec3af505..00000000000
--- a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-firacode.mkiv
+++ /dev/null
@@ -1,54 +0,0 @@
-%D \module
-%D [ file=type-imp-firacode,
-%D version=2018.08.24,
-%D title=\CONTEXT\ Typescript Macros,
-%D subtitle=Firacode,
-%D author=Taco Hoekwater \& Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-
-\starttypescriptcollection[firacode]
-
- \usetypescriptfile[dejavu]
-
- \definefontfeature
- [firacode]
- [mode=node,script=dflt,language=dflt,
- calt=yes,mark=yes,mkmk=yes]
-
- \starttypescript [\s!mono] [firacode]
- \definefontsynonym[FiraRetina] [\s!name:firacoderetina] [\s!features=firacode]
- \definefontsynonym[FiraLight] [\s!name:firacodelight] [\s!features=firacode]
- \definefontsynonym[FiraRegular][\s!name:firacoderegular][\s!features=firacode]
- \definefontsynonym[FiraMedium] [\s!name:firacodemedium] [\s!features=firacode]
- \definefontsynonym[FiraBold] [\s!name:firacodebold] [\s!features=firacode]
- \stoptypescript
-
- \starttypescript [\s!mono] [firacode-light]
- \setups[\s!font:\s!fallback:\s!mono]
- \definefontsynonym[\s!Mono] [FiraLight]
- \definefontsynonym[\s!MonoBold][FiraMedium]
- \stoptypescript
-
- \starttypescript [\s!mono] [firacode]
- \setups[\s!font:\s!fallback:\s!mono]
- \definefontsynonym[\s!Mono] [FiraRegular]
- \definefontsynonym[\s!MonoBold][FiraBold]
- \stoptypescript
-
- \starttypescript[firacode]
- \definetypeface[firacode][\s!rm][\s!serif][dejavu] [\s!default]
- \definetypeface[firacode][\s!ss][\s!sans] [dejavu] [\s!default]
- \definetypeface[firacode][\s!mm][\s!math] [dejavu] [\s!default]
- \definetypeface[firacode][\s!tt][\s!mono] [firacode][\s!default]
- \stoptypescript
-
-\stoptypescriptcollection
-
-% \setupbodyfont[firacode,12pt]
-
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-latinmodern.mkiv b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-latinmodern.mkiv
index cc9559d8b50..63f74027b3b 100644
--- a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-latinmodern.mkiv
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-latinmodern.mkiv
@@ -28,8 +28,6 @@
\starttypescriptcollection[latinmodern]
- \doifunknownfontfeature {lm-math-bold} {\definefontfeature[lm-math-bold][boldened]}
-
\starttypescript [\s!serif] [simple] [\s!name]
\definefontsynonym [\s!Simple] [\s!file:lmmonoproplt10-regular] [\s!features=\s!default]
\stoptypescript
@@ -182,7 +180,7 @@
\starttypescript [\s!math] [modern,latin-modern]
\loadfontgoodies[lm]
\definefontsynonym [LMMathRoman-Regular] [\v!file:latinmodern-math-regular.otf] [\s!features={\s!math\mathsizesuffix,lm-math,mathextra},\s!goodies=lm]
- \definefontsynonym [LMMathRoman-Bold] [\v!file:latinmodern-math-regular.otf] [\s!features={\s!math\mathsizesuffix,lm-math-bold,lm-math,mathextra},\s!goodies=lm]
+ \definefontsynonym [LMMathRoman-Bold] [\v!file:latinmodern-math-regular.otf] [\s!features={\s!math\mathsizesuffix,lm-math,mathextra},\s!goodies=lm]
\stoptypescript
\starttypescript [modern-designsize-virtual]
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-lato.mkiv b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-lato.mkiv
index 359c2285f15..4a0dbeb36f1 100644
--- a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-lato.mkiv
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-lato.mkiv
@@ -58,7 +58,7 @@
\definefontsynonym [\s!SansItalic] [\s!file:lato-bolditalic] [\s!features=\s!default]
\definefontsynonym [\s!SansBoldItalic] [\s!file:lato-heavyitalic] [\s!features=\s!default]
\stoptypescript
-
+
\starttypescript [\s!sans] [lato-black] [\s!name]
\setups[\s!font:\s!fallback:\s!sans]
\definefontsynonym [\s!Sans] [\s!file:lato-heavy] [\s!features=\s!default]
@@ -98,7 +98,6 @@
\definefontsynonym [\s!SansItalic] [\s!file:lato-italic] [\s!features=\s!default]
\definefontsynonym [\s!SansBoldItalic] [\s!file:lato-semibolditalic] [\s!features=\s!default]
\stoptypescript
-
\starttypescript[lato,lato-light,lato-dark,lato-black,lato-hairline,lato-thin,lato-medium,lato-semibold]
\definetypeface [\typescriptone] [\s!ss] [\s!sans] [\typescriptone] [\s!default]
\definetypeface [\typescriptone] [\s!rm] [\s!serif] [dejavu] [\s!default]
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-lucida-typeone.mkiv b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-lucida-typeone.mkiv
index 59d167a1bbf..5f28b9eedcb 100644
--- a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-lucida-typeone.mkiv
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-lucida-typeone.mkiv
@@ -11,8 +11,6 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{fonts}{Lucida Type 1 support can be broken due to wrong files!}
-
\starttypescriptcollection[lucida-typeone]
\starttypescript [\s!serif] [lucida]
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-modernlatin.mkiv b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-modernlatin.mkiv
index 2494d1af2e5..a3f4762f12d 100644
--- a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-modernlatin.mkiv
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-modernlatin.mkiv
@@ -13,52 +13,50 @@
\starttypescriptcollection[modernlatin]
- \doifunknownfontfeature {lm-serif-regular} {\definefontfeature[lm-serif-regular][boldened-15]}
- \doifunknownfontfeature {lm-serif-bold} {\definefontfeature[lm-serif-bold] [boldened-30]}
- \doifunknownfontfeature {lm-sans-regular} {\definefontfeature[lm-sans-regular] [boldened-10]}
- \doifunknownfontfeature {lm-sans-bold} {\definefontfeature[lm-sans-bold] [boldened-20]}
- \doifunknownfontfeature {lm-mono-regular} {\definefontfeature[lm-mono-regular] [boldened-20]}
- \doifunknownfontfeature {lm-mono-bold} {\definefontfeature[lm-mono-bold] [boldened-30]}
- \doifunknownfontfeature {lm-math-regular} {\definefontfeature[lm-math-regular] [boldened-15]}
- \doifunknownfontfeature {lm-math-bold} {\definefontfeature[lm-math-bold] [boldened-30]}
+ \definefontfeature[lm-rm-regular][effect={width=0.15,delta=1.00}]
+ \definefontfeature[lm-rm-bold] [effect={width=0.30,delta=1.00}]
+ \definefontfeature[lm-ss-regular][effect={width=0.10,delta=1.00}]
+ \definefontfeature[lm-ss-bold] [effect={width=0.20,delta=1.00}]
+ \definefontfeature[lm-tt-regular][effect={width=0.20,delta=1.00}]
+ \definefontfeature[lm-tt-bold] [effect={width=0.30,delta=1.00}]
\starttypescript [\s!serif] [modern-latin]
% \loadfontgoodies[lm]
- \definefontsynonym [Serif] [\s!file:lmroman10-regular] [\s!features={\s!default,lm-serif-regular}]
- \definefontsynonym [SerifItalic] [\s!file:lmroman10-italic] [\s!features={\s!default,lm-serif-regular}]
- \definefontsynonym [SerifSlanted] [\s!file:lmromanslant10-regular] [\s!features={\s!default,lm-serif-regular}]
- \definefontsynonym [SerifBold] [\s!file:lmroman10-regular] [\s!features={\s!default,lm-serif-bold}]
- \definefontsynonym [SerifBoldItalic] [\s!file:lmroman10-italic] [\s!features={\s!default,lm-serif-bold}]
- \definefontsynonym [SerifBoldSlanted][\s!file:lmromanslant10-regular] [\s!features={\s!default,lm-serif-bold}]
+ \definefontsynonym [Serif] [\s!file:lmroman10-regular] [\s!features={\s!default,lm-rm-regular}]
+ \definefontsynonym [SerifItalic] [\s!file:lmroman10-italic] [\s!features={\s!default,lm-rm-regular}]
+ \definefontsynonym [SerifSlanted] [\s!file:lmromanslant10-regular] [\s!features={\s!default,lm-rm-regular}]
+ \definefontsynonym [SerifBold] [\s!file:lmroman10-regular] [\s!features={\s!default,lm-rm-bold}]
+ \definefontsynonym [SerifBoldItalic] [\s!file:lmroman10-italic] [\s!features={\s!default,lm-rm-bold}]
+ \definefontsynonym [SerifBoldSlanted][\s!file:lmromanslant10-regular] [\s!features={\s!default,lm-rm-bold}]
\stoptypescript
\starttypescript [\s!sans] [modern-latin]
% \loadfontgoodies[lm]
- \definefontsynonym [Sans] [\s!file:lmsans10-regular] [\s!features={\s!default,lm-sans-regular}]
- \definefontsynonym [SansItalic] [\s!file:lmsans10-oblique] [\s!features={\s!default,lm-sans-regular}]
- \definefontsynonym [SansSlanted] [\s!file:lmsans10-oblique] [\s!features={\s!default,lm-sans-regular}]
- \definefontsynonym [SansBold] [\s!file:lmsans10-regular] [\s!features={\s!default,lm-sans-bold}]
- \definefontsynonym [SansBoldItalic] [\s!file:lmsans10-oblique] [\s!features={\s!default,lm-sans-bold}]
- \definefontsynonym [SansBoldSlanted][\s!file:lmsans10-oblique] [\s!features={\s!default,lm-sans-bold}]
+ \definefontsynonym [Sans] [\s!file:lmsans10-regular] [\s!features={\s!default,lm-ss-regular}]
+ \definefontsynonym [SansItalic] [\s!file:lmsans10-oblique] [\s!features={\s!default,lm-ss-regular}]
+ \definefontsynonym [SansSlanted] [\s!file:lmsans10-oblique] [\s!features={\s!default,lm-ss-regular}]
+ \definefontsynonym [SansBold] [\s!file:lmsans10-regular] [\s!features={\s!default,lm-ss-bold}]
+ \definefontsynonym [SansBoldItalic] [\s!file:lmsans10-oblique] [\s!features={\s!default,lm-ss-bold}]
+ \definefontsynonym [SansBoldSlanted][\s!file:lmsans10-oblique] [\s!features={\s!default,lm-ss-bold}]
\stoptypescript
\starttypescript [\s!mono] [modern-latin]
% \loadfontgoodies[lm]
- \definefontsynonym [Mono] [\s!file:lmmono10-regular] [\s!features={\s!default,lm-mono-regular}]
- \definefontsynonym [MonoItalic] [\s!file:lmmono10-italic] [\s!features={\s!default,lm-mono-regular}]
- \definefontsynonym [MonoSlanted] [\s!file:lmmonoslant10-regular] [\s!features={\s!default,lm-mono-regular}]
- \definefontsynonym [MonoBold] [\s!file:lmmono10-regular] [\s!features={\s!default,lm-mono-bold}]
- \definefontsynonym [MonoBoldItalic] [\s!file:lmmono10-italic] [\s!features={\s!default,lm-mono-bold}]
- \definefontsynonym [MonoBoldSlanted][\s!file:lmmonoslant10-regular] [\s!features={\s!default,lm-mono-bold}]
+ \definefontsynonym [Mono] [\s!file:lmmono10-regular] [\s!features={\s!default,lm-tt-regular}]
+ \definefontsynonym [MonoItalic] [\s!file:lmmono10-italic] [\s!features={\s!default,lm-tt-regular}]
+ \definefontsynonym [MonoSlanted] [\s!file:lmmonoslant10-regular] [\s!features={\s!default,lm-tt-regular}]
+ \definefontsynonym [MonoBold] [\s!file:lmmono10-regular] [\s!features={\s!default,lm-tt-bold}]
+ \definefontsynonym [MonoBoldItalic] [\s!file:lmmono10-italic] [\s!features={\s!default,lm-tt-bold}]
+ \definefontsynonym [MonoBoldSlanted][\s!file:lmmonoslant10-regular] [\s!features={\s!default,lm-tt-bold}]
\stoptypescript
\starttypescript [\s!math] [modern-latin]
\loadfontgoodies[lm]
- \definefontsynonym [MathRoman] [\v!file:latinmodern-math-regular.otf] [\s!features={\s!math\mathsizesuffix,lm-math,lm-math-regular,mathextra},\s!goodies=lm]
- \definefontsynonym [MathRomanBold] [\v!file:latinmodern-math-regular.otf] [\s!features={\s!math\mathsizesuffix,lm-math,lm-math-bold,mathextra},\s!goodies=lm]
+ \definefontsynonym [LMMathRoman-Regular] [\v!file:latinmodern-math-regular.otf] [\s!features={\s!math\mathsizesuffix,lm-math,mathextra},\s!goodies=lm]
+ \definefontsynonym [LMMathRoman-Bold] [\v!file:latinmodern-math-regular.otf] [\s!features={\s!math\mathsizesuffix,lm-math,mathextra},\s!goodies=lm]
\stoptypescript
- \starttypescript [modern-latin,modernlatin]
+ \starttypescript [modern-latin]
\definetypeface [\typescriptone] [\s!rm] [\s!serif] [modern-latin] [\s!default]
\definetypeface [\typescriptone] [\s!ss] [\s!sans] [modern-latin] [\s!default]
\definetypeface [\typescriptone] [\s!tt] [\s!mono] [modern-latin] [\s!default]
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-opendyslexic.mkiv b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-opendyslexic.mkiv
index c3b8a3ef2b5..770d43c6ce4 100644
--- a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-opendyslexic.mkiv
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-opendyslexic.mkiv
@@ -29,15 +29,10 @@
\definefontsynonym [\s!SansBoldItalic] [\s!file:opendyslexicalta-bolditalic.otf] [\s!features=\s!default]
\stoptypescript
- \starttypescript [\s!mono] [opendyslexic] [\s!name]
- \setups[\s!font:\s!fallback:\s!mono]
- \definefontsynonym [\s!Mono] [\s!file:opendyslexicmono-regular.otf] [\s!features=\s!none]
- \stoptypescript
-
\starttypescript[opendyslexic]
\definetypeface [opendyslexic] [\s!rm] [\s!serif] [opendyslexic] [\s!default]
\definetypeface [opendyslexic] [\s!ss] [\s!sans] [opendyslexic] [\s!default]
- \definetypeface [opendyslexic] [\s!tt] [\s!mono] [opendyslexic] [\s!default]% [rscale=1.065]
+ \definetypeface [opendyslexic] [\s!tt] [\s!mono] [dejavu] [\s!default]% [rscale=1.065]
\definetypeface [opendyslexic] [\s!mm] [\s!math] [xits] [\s!default]% [rscale=1.020]
\stoptypescript
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-plex.mkiv b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-plex.mkiv
deleted file mode 100644
index 44334bcbd1e..00000000000
--- a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-plex.mkiv
+++ /dev/null
@@ -1,370 +0,0 @@
-%D \module
-%D [ file=type-imp-plex,
-%D version=2018.09.11,
-%D title=\CONTEXT\ Typescript Macros,
-%D subtitle=Plex fonts,
-%D author={Hans Hagen & Taco Hoekwater},
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% Taco will make a special (more verbose) one for the ConTeXt journal! That setup will also have
-% adapted interline spacing matching the larger ascenders.
-
-% thin, extralight, light, regular, text, medium, semibold, bold
-
-% [IBMPlexMono|IBMPlexSans|IBMPlexSerif|IBMPlexSansCondensed]-[Thin|ExtraLight|Light||Text|Medium|SemiBold|Bold].otf
-% [IBMPlexMono|IBMPlexSans|IBMPlexSerif|IBMPlexSansCondensed]-[Thin|ExtraLight|Light||Text|Medium|SemiBold|Bold]Italic.otf
-
-% [IBMPlexSans][Hebrew]-[Thin|Light||Text|Medium|SemiBold|Bold|].otf
-
-\loadtypescriptfile[bookman]
-
-\starttypescriptcollection[plex]
-
- \definetypescriptprefix [n:plexserif] [IBMPlexSerif]
- \definetypescriptprefix [n:plexsans] [IBMPlexSans]
- \definetypescriptprefix [n:plexmono] [IBMPlexMono]
-
- \definetypescriptprefix [n:narrowplexserif] [IBMPlexSerif]
- \definetypescriptprefix [n:narrowplexsans] [IBMPlexSansCondensed]
- \definetypescriptprefix [n:narrowplexmono] [IBMPlexMono]
-
- \definetypescriptprefix [f:plexserif] [\s!default]
- \definetypescriptprefix [f:plexsans] [\s!default]
- \definetypescriptprefix [f:plexmono] [\s!none]
-
- \definetypescriptprefix [f:narrowplexserif] [\s!default]
- \definetypescriptprefix [f:narrowplexsans] [\s!default]
- \definetypescriptprefix [f:narrowplexmono] [\s!none]
-
- % thin
-
- \starttypescript [\s!sans,\s!serif,\s!mono] [plex-thin] [\s!name]
- \setups[\s!font:\s!fallback:\typescriptone]
- \definefontsynonym [\typescriptprefix{\typescriptone}] [\s!file:\typescriptprefix{n:plex\typescriptone}-thin] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!Italic] [\s!file:\typescriptprefix{n:plex\typescriptone}-thinitalic] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!Bold] [\s!file:\typescriptprefix{n:plex\typescriptone}-light] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!BoldItalic] [\s!file:\typescriptprefix{n:plex\typescriptone}-light] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \stoptypescript
-
- % extralight
-
- \starttypescript [\s!sans,\s!serif,\s!mono] [plex-extralight] [\s!name]
- \setups[\s!font:\s!fallback:\typescriptone]
- \definefontsynonym [\typescriptprefix{\typescriptone}] [\s!file:\typescriptprefix{n:plex\typescriptone}-extralight] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!Italic] [\s!file:\typescriptprefix{n:plex\typescriptone}-extralightitalic] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!Bold] [\s!file:\typescriptprefix{n:plex\typescriptone}-regular] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!BoldItalic] [\s!file:\typescriptprefix{n:plex\typescriptone}-italic] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \stoptypescript
-
- % light
-
- \starttypescript [\s!sans,\s!serif,\s!mono] [plex-light] [\s!name]
- \setups[\s!font:\s!fallback:\typescriptone]
- \definefontsynonym [\typescriptprefix{\typescriptone}] [\s!file:\typescriptprefix{n:plex\typescriptone}-light] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!Italic] [\s!file:\typescriptprefix{n:plex\typescriptone}-lightitalic] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!Bold] [\s!file:\typescriptprefix{n:plex\typescriptone}-text] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!BoldItalic] [\s!file:\typescriptprefix{n:plex\typescriptone}-textitalic] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \stoptypescript
-
- % regular
-
- \starttypescript [\s!sans,\s!serif,\s!mono] [plex] [\s!name]
- \setups[\s!font:\s!fallback:\typescriptone]
- \definefontsynonym [\typescriptprefix{\typescriptone}] [\s!file:\typescriptprefix{n:plex\typescriptone}-regular] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!Italic] [\s!file:\typescriptprefix{n:plex\typescriptone}-italic] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!Bold] [\s!file:\typescriptprefix{n:plex\typescriptone}-medium] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!BoldItalic] [\s!file:\typescriptprefix{n:plex\typescriptone}-mediumitalic] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \stoptypescript
-
- % text
-
- \starttypescript [\s!sans,\s!serif,\s!mono] [plex-text] [\s!name]
- \setups[\s!font:\s!fallback:\typescriptone]
- \definefontsynonym [\typescriptprefix{\typescriptone}] [\s!file:\typescriptprefix{n:plex\typescriptone}-text] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!Italic] [\s!file:\typescriptprefix{n:plex\typescriptone}-textitalic] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!Bold] [\s!file:\typescriptprefix{n:plex\typescriptone}-semibold] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!BoldItalic] [\s!file:\typescriptprefix{n:plex\typescriptone}-semibolditalic] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \stoptypescript
-
- % medium
-
- \starttypescript [\s!sans,\s!serif,\s!mono] [plex-medium] [\s!name]
- \setups[\s!font:\s!fallback:\typescriptone]
- \definefontsynonym [\typescriptprefix{\typescriptone}] [\s!file:\typescriptprefix{n:plex\typescriptone}-medium] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!Italic] [\s!file:\typescriptprefix{n:plex\typescriptone}-mediumitalic] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!Bold] [\s!file:\typescriptprefix{n:plex\typescriptone}-bold] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!BoldItalic] [\s!file:\typescriptprefix{n:plex\typescriptone}-bolditalic] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \stoptypescript
-
- % semibold
-
- \starttypescript [\s!sans,\s!serif,\s!mono] [plex-semibold] [\s!name]
- \setups[\s!font:\s!fallback:\typescriptone]
- \definefontsynonym [\typescriptprefix{\typescriptone}] [\s!file:\typescriptprefix{n:plex\typescriptone}-semibold] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!Italic] [\s!file:\typescriptprefix{n:plex\typescriptone}-semibolditalic] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!Bold] [\s!file:\typescriptprefix{n:plex\typescriptone}-extra] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!BoldItalic] [\s!file:\typescriptprefix{n:plex\typescriptone}-extraitalic] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \stoptypescript
-
- % bold
-
- \starttypescript [\s!sans,\s!serif,\s!mono] [plex-bold] [\s!name]
- \setups[\s!font:\s!fallback:\typescriptone]
- \definefontsynonym [\typescriptprefix{\typescriptone}] [\s!file:\typescriptprefix{n:plex\typescriptone}-bold] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!Italic] [\s!file:\typescriptprefix{n:plex\typescriptone}-bolditalic] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!Bold] [\s!file:\typescriptprefix{n:plex\typescriptone}-bold] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!BoldItalic] [\s!file:\typescriptprefix{n:plex\typescriptone}-bolditalic] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \stoptypescript
-
- % done
-
- \starttypescript[plex,plex-thin,plex-extralight,plex-light,plex,plex-text,plex-medium,plex-semibold,plex-bold]
- \definetypeface [\typescriptone] [\s!rm] [\s!serif] [\typescriptone] [\s!default]
- \definetypeface [\typescriptone] [\s!ss] [\s!sans] [\typescriptone] [\s!default]
- \definetypeface [\typescriptone] [\s!tt] [\s!mono] [\typescriptone] [\s!default]
- \definetypeface [\typescriptone] [\s!mm] [\s!math] [bookman] [\s!default] [\s!rscale=1.03]
- \stoptypescript
-
- % Here's Taco's variant as used in the ConTeXt Group Journal.
-
- \definefontfeature[plexwidened][extend=\luaexpr{1/0.85}] % An odd floating point number to correct monospace.
-
- \definetypescriptprefix [f:scplexserif] [\s!default,plexwidened]
- \definetypescriptprefix [f:scplexsans] [\s!default,plexwidened]
- \definetypescriptprefix [f:scplexmono] [plexwidened]
-
- \definetypescriptprefix [f:scnarrowplexserif] [\s!default,plexwidened]
- \definetypescriptprefix [f:scnarrowplexsans] [\s!default,plexwidened]
- \definetypescriptprefix [f:scnarrowplexmono] [plexwidened]
-
- \starttypescript [\s!sans,\s!serif,\s!mono] [ibmplex-thin] [\s!name]
- \setups[\s!font:\s!fallback:\typescriptone]
- \definefontsynonym [\typescriptprefix{\typescriptone}] [\s!file:\typescriptprefix{n:plex\typescriptone}-thin] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!Italic] [\s!file:\typescriptprefix{n:plex\typescriptone}-thinitalic] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!Bold] [\s!file:\typescriptprefix{n:plex\typescriptone}-text] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!BoldItalic] [\s!file:\typescriptprefix{n:plex\typescriptone}-textitalic] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}Widened] [\s!file:\typescriptprefix{n:plex\typescriptone}-thin] [\s!features=\typescriptprefix{f:scplex\typescriptone}]
- \definefontfallback[Fake\typescriptprefix{\typescriptone}Caps] [\typescriptprefix{\typescriptone}Widened] [0x0000-0xFFFF] [\s!rscale=0.85,method=uppercase]
- \definefontsynonym [\typescriptprefix{\typescriptone}Caps] [\s!file:\typescriptprefix{n:plex\typescriptone}-thin] [\s!fallbacks=Fake\typescriptprefix{\typescriptone}Caps]
- \stoptypescript
-
- \starttypescript [\s!sans,\s!serif,\s!mono] [ibmplex-extralight] [\s!name]
- \setups[\s!font:\s!fallback:\typescriptone]
- \definefontsynonym [\typescriptprefix{\typescriptone}] [\s!file:\typescriptprefix{n:plex\typescriptone}-extralight] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!Italic] [\s!file:\typescriptprefix{n:plex\typescriptone}-extralightitalic] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!Bold] [\s!file:\typescriptprefix{n:plex\typescriptone}-medium] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!BoldItalic] [\s!file:\typescriptprefix{n:plex\typescriptone}-mediumitalic] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}Widened] [\s!file:\typescriptprefix{n:plex\typescriptone}-extralight] [\s!features=\typescriptprefix{f:scplex\typescriptone}]
- \definefontfallback[Fake\typescriptprefix{\typescriptone}Caps] [\typescriptprefix{\typescriptone}Widened] [0x0000-0xFFFF] [\s!rscale=0.85,method=uppercase]
- \definefontsynonym [\typescriptprefix{\typescriptone}Caps] [\s!file:\typescriptprefix{n:plex\typescriptone}-extralight] [\s!fallbacks=Fake\typescriptprefix{\typescriptone}Caps]
- \stoptypescript
-
- \starttypescript [\s!sans,\s!serif,\s!mono] [ibmplex-light] [\s!name]
- \setups[\s!font:\s!fallback:\typescriptone]
- \definefontsynonym [\typescriptprefix{\typescriptone}] [\s!file:\typescriptprefix{n:plex\typescriptone}-light] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!Italic] [\s!file:\typescriptprefix{n:plex\typescriptone}-lightitalic] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!Bold] [\s!file:\typescriptprefix{n:plex\typescriptone}-semibold] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!BoldItalic] [\s!file:\typescriptprefix{n:plex\typescriptone}-semibolditalic] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}Widened] [\s!file:\typescriptprefix{n:plex\typescriptone}-light] [\s!features=\typescriptprefix{f:scplex\typescriptone}]
- \definefontfallback[Fake\typescriptprefix{\typescriptone}Caps] [\typescriptprefix{\typescriptone}Widened] [0x0000-0xFFFF] [\s!rscale=0.85,method=uppercase]
- \definefontsynonym [\typescriptprefix{\typescriptone}Caps] [\s!file:\typescriptprefix{n:plex\typescriptone}-light] [\s!fallbacks=Fake\typescriptprefix{\typescriptone}Caps]
- \stoptypescript
-
- \starttypescript [\s!sans,\s!serif,\s!mono] [ibmplex] [\s!name]
- \setups[\s!font:\s!fallback:\typescriptone]
- \definefontsynonym [\typescriptprefix{\typescriptone}] [\s!file:\typescriptprefix{n:plex\typescriptone}-regular] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!Italic] [\s!file:\typescriptprefix{n:plex\typescriptone}-italic] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!Bold] [\s!file:\typescriptprefix{n:plex\typescriptone}-bold] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!BoldItalic] [\s!file:\typescriptprefix{n:plex\typescriptone}-bolditalic] [\s!features=\typescriptprefix{f:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}Widened] [\s!file:\typescriptprefix{n:plex\typescriptone}-regular] [\s!features=\typescriptprefix{f:scplex\typescriptone}]
- \definefontfallback[Fake\typescriptprefix{\typescriptone}Caps] [\typescriptprefix{\typescriptone}Widened] [0x0000-0xFFFF] [\s!rscale=0.85,method=uppercase]
- \definefontsynonym [\typescriptprefix{\typescriptone}Caps] [\s!file:\typescriptprefix{n:plex\typescriptone}-regular] [\s!fallbacks=Fake\typescriptprefix{\typescriptone}Caps]
- \stoptypescript
-
- % narrow
-
- \starttypescript [\s!sans,\s!serif,\s!mono] [ibmplexnarrow-thin] [\s!name]
- \setups[\s!font:\s!fallback:\typescriptone]
- \definefontsynonym [\typescriptprefix{\typescriptone}] [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-thin] [\s!features=\typescriptprefix{f:narrowplex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!Italic] [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-thinitalic] [\s!features=\typescriptprefix{f:narrowplex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!Bold] [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-text] [\s!features=\typescriptprefix{f:narrowplex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!BoldItalic] [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-textitalic] [\s!features=\typescriptprefix{f:narrowplex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}Widened] [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-thin] [\s!features=\typescriptprefix{f:scnarrowplex\typescriptone}]
- \definefontfallback[Fake\typescriptprefix{\typescriptone}Caps] [\typescriptprefix{\typescriptone}Widened] [0x0000-0xFFFF] [\s!rscale=0.85,method=uppercase]
- \definefontsynonym [\typescriptprefix{\typescriptone}Caps] [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-thin] [\s!fallbacks=Fake\typescriptprefix{\typescriptone}Caps]
- \stoptypescript
-
- \starttypescript [\s!sans,\s!serif,\s!mono] [ibmplexnarrow-extralight] [\s!name]
- \setups[\s!font:\s!fallback:\typescriptone]
- \definefontsynonym [\typescriptprefix{\typescriptone}] [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-extralight] [\s!features=\typescriptprefix{f:narrowplex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!Italic] [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-extralightitalic] [\s!features=\typescriptprefix{f:narrowplex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!Bold] [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-medium] [\s!features=\typescriptprefix{f:narrowplex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!BoldItalic] [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-mediumitalic] [\s!features=\typescriptprefix{f:narrowplex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}Widened] [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-extralight] [\s!features=\typescriptprefix{f:scnarrowplex\typescriptone}]
- \definefontfallback[Fake\typescriptprefix{\typescriptone}Caps] [\typescriptprefix{\typescriptone}Widened] [0x0000-0xFFFF] [\s!rscale=0.85,method=uppercase]
- \definefontsynonym [\typescriptprefix{\typescriptone}Caps] [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-extralight] [\s!fallbacks=Fake\typescriptprefix{\typescriptone}Caps]
- \stoptypescript
-
- \starttypescript [\s!sans,\s!serif,\s!mono] [ibmplexnarrow-light] [\s!name]
- \setups[\s!font:\s!fallback:\typescriptone]
- \definefontsynonym [\typescriptprefix{\typescriptone}] [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-light] [\s!features=\typescriptprefix{f:narrowplex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!Italic] [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-lightitalic] [\s!features=\typescriptprefix{f:narrowplex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!Bold] [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-semibold] [\s!features=\typescriptprefix{f:narrowplex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!BoldItalic] [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-semibolditalic] [\s!features=\typescriptprefix{f:narrowplex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}Widened] [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-light] [\s!features=\typescriptprefix{f:scnarrowplex\typescriptone}]
- \definefontfallback[Fake\typescriptprefix{\typescriptone}Caps] [\typescriptprefix{\typescriptone}Widened] [0x0000-0xFFFF] [\s!rscale=0.85,method=uppercase]
- \definefontsynonym [\typescriptprefix{\typescriptone}Caps] [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-light] [\s!fallbacks=Fake\typescriptprefix{\typescriptone}Caps]
- \stoptypescript
-
- \starttypescript [\s!sans,\s!serif,\s!mono] [ibmplexnarrow] [\s!name]
- \setups[\s!font:\s!fallback:\typescriptone]
- \definefontsynonym [\typescriptprefix{\typescriptone}] [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-regular] [\s!features=\typescriptprefix{f:narrowplex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!Italic] [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-italic] [\s!features=\typescriptprefix{f:narrowplex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!Bold] [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-bold] [\s!features=\typescriptprefix{f:narrowplex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!BoldItalic] [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-bolditalic] [\s!features=\typescriptprefix{f:narrowplex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}Widened] [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-regular] [\s!features=\typescriptprefix{f:scnarrowplex\typescriptone}]
- \definefontfallback[Fake\typescriptprefix{\typescriptone}Caps] [\typescriptprefix{\typescriptone}Widened] [0x0000-0xFFFF] [\s!rscale=0.85,method=uppercase]
- \definefontsynonym [\typescriptprefix{\typescriptone}Caps] [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-regular] [\s!fallbacks=Fake\typescriptprefix{\typescriptone}Caps]
- \stoptypescript
-
-
- % For now, as some day plex will have cjk, hebrew, devanagari and arabic. The abstraction is not needed but
- % this way we can add more id needed without much code.
-
- \definetypescriptprefix [tf:plexsans] [SansHebrewFallback]
- \definetypescriptprefix [bf:plexsans] [SansHebrewFallbackBold]
-
- \definetypescriptprefix [n:plexsans-hebrew] [IBMPlexSansHebrew]
-
- \definefontfallback [SansHebrewFallback] [SansHebrew] [0x0590-0x05ff] [check=yes,force=no]
- \definefontfallback [SansHebrewFallbackBold] [SansHebrewBold] [0x0590-0x05ff] [check=yes,force=no]
-
- \starttypescript [\s!sans] [ibmplex-thin] [\s!name]
- \definefontsynonym [\typescriptprefix{\typescriptone}] [\s!file:\typescriptprefix{n:plex\typescriptone}-thin]
- [\s!features=\typescriptprefix{f:plex\typescriptone},
- \s!fallbacks=\typescriptprefix{tf:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!Bold] [\s!file:\typescriptprefix{n:plex\typescriptone}-text]
- [\s!features=\typescriptprefix{f:plex\typescriptone},
- \s!fallbacks=\typescriptprefix{bf:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}Hebrew] [\s!file:\typescriptprefix{n:plex\typescriptone-hebrew}-thin]
- [\s!features=hebrew]
- \definefontsynonym [\typescriptprefix{\typescriptone}Hebrew\s!Bold] [\s!file:\typescriptprefix{n:plex\typescriptone-hebrew}-text]
- [\s!features=hebrew]
- \stoptypescript
-
- \starttypescript [\s!sans] [ibmplex-extralight] [\s!name]
- \definefontsynonym [\typescriptprefix{\typescriptone}] [\s!file:\typescriptprefix{n:plex\typescriptone}-extralight]
- [\s!features=\typescriptprefix{f:plex\typescriptone},
- \s!fallbacks=\typescriptprefix{tf:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!Bold] [\s!file:\typescriptprefix{n:plex\typescriptone}-medium]
- [\s!features=\typescriptprefix{f:plex\typescriptone},
- \s!fallbacks=\typescriptprefix{bf:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}Hebrew] [\s!file:\typescriptprefix{n:plex\typescriptone-hebrew}-extralight]
- [\s!features=hebrew]
- \definefontsynonym [\typescriptprefix{\typescriptone}Hebrew\s!Bold] [\s!file:\typescriptprefix{n:plex\typescriptone-hebrew}-medium]
- [\s!features=hebrew]
- \stoptypescript
-
- \starttypescript [\s!sans] [ibmplex-light] [\s!name]
- \definefontsynonym [\typescriptprefix{\typescriptone}] [\s!file:\typescriptprefix{n:plex\typescriptone}-light]
- [\s!features=\typescriptprefix{f:plex\typescriptone},
- \s!fallbacks=\typescriptprefix{tf:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!Bold] [\s!file:\typescriptprefix{n:plex\typescriptone}-semibold]
- [\s!features=\typescriptprefix{f:plex\typescriptone},
- \s!fallbacks=\typescriptprefix{bf:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}Hebrew] [\s!file:\typescriptprefix{n:plex\typescriptone-hebrew}-light]
- [\s!features=hebrew]
- \definefontsynonym [\typescriptprefix{\typescriptone}Hebrew\s!Bold] [\s!file:\typescriptprefix{n:plex\typescriptone-hebrew}-semibold]
- [\s!features=hebrew]
- \stoptypescript
-
- \starttypescript [\s!sans] [ibmplex] [\s!name]
- \definefontsynonym [\typescriptprefix{\typescriptone}] [\s!file:\typescriptprefix{n:plex\typescriptone}-regular]
- [\s!features=\typescriptprefix{f:plex\typescriptone},
- \s!fallbacks=\typescriptprefix{tf:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!Bold] [\s!file:\typescriptprefix{n:plex\typescriptone}-bold]
- [\s!features=\typescriptprefix{f:plex\typescriptone},
- \s!fallbacks=\typescriptprefix{bf:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}Hebrew] [\s!file:\typescriptprefix{n:plex\typescriptone-hebrew}-regular]
- [\s!features=hebrew]
- \definefontsynonym [\typescriptprefix{\typescriptone}Hebrew\s!Bold] [\s!file:\typescriptprefix{n:plex\typescriptone-hebrew}-bold]
- [\s!features=hebrew]
- \stoptypescript
-
- % narrow
-
- \starttypescript [\s!sans] [ibmplexnarrow-thin] [\s!name]
- \definefontsynonym [\typescriptprefix{\typescriptone}] [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-thin]
- [\s!features=\typescriptprefix{f:narrowplex\typescriptone},
- \s!fallbacks=\typescriptprefix{tf:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!Bold] [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-text]
- [\s!features=\typescriptprefix{f:narrowplex\typescriptone},
- \s!fallbacks=\typescriptprefix{bf:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}Hebrew] [\s!file:\typescriptprefix{n:narrowplex\typescriptone-hebrew}-thin]
- [\s!features=hebrew]
- \definefontsynonym [\typescriptprefix{\typescriptone}Hebrew\s!Bold] [\s!file:\typescriptprefix{n:narrowplex\typescriptone-hebrew}-text]
- [\s!features=hebrew]
- \stoptypescript
-
- \starttypescript [\s!sans] [ibmplexnarrow-extralight] [\s!name]
- \definefontsynonym [\typescriptprefix{\typescriptone}] [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-extralight]
- [\s!features=\typescriptprefix{f:narrowplex\typescriptone},
- \s!fallbacks=\typescriptprefix{tf:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!Bold] [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-medium]
- [\s!features=\typescriptprefix{f:narrowplex\typescriptone},
- \s!fallbacks=\typescriptprefix{bf:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}Hebrew] [\s!file:\typescriptprefix{n:narrowplex\typescriptone-hebrew}-extralight]
- [\s!features=hebrew]
- \definefontsynonym [\typescriptprefix{\typescriptone}Hebrew\s!Bold] [\s!file:\typescriptprefix{n:narrowplex\typescriptone-hebrew}-medium]
- [\s!features=hebrew]
- \stoptypescript
-
- \starttypescript [\s!sans] [ibmplexnarrow-light] [\s!name]
- \definefontsynonym [\typescriptprefix{\typescriptone}] [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-light]
- [\s!features=\typescriptprefix{f:narrowplex\typescriptone},
- \s!fallbacks=\typescriptprefix{tf:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!Bold] [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-semibold]
- [\s!features=\typescriptprefix{f:narrowplex\typescriptone},
- \s!fallbacks=\typescriptprefix{bf:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}Hebrew] [\s!file:\typescriptprefix{n:narrowplex\typescriptone-hebrew}-light]
- [\s!features=hebrew]
- \definefontsynonym [\typescriptprefix{\typescriptone}Hebrew\s!Bold] [\s!file:\typescriptprefix{n:narrowplex\typescriptone-hebrew}-semibold]
- [\s!features=hebrew]
- \stoptypescript
-
- \starttypescript [\s!sans] [ibmplexnarrow] [\s!name]
- \definefontsynonym [\typescriptprefix{\typescriptone}] [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-regular]
- [\s!features=\typescriptprefix{f:narrowplex\typescriptone},
- \s!fallbacks=\typescriptprefix{tf:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}\s!Bold] [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-bold]
- [\s!features=\typescriptprefix{f:narrowplex\typescriptone},
- \s!fallbacks=\typescriptprefix{bf:plex\typescriptone}]
- \definefontsynonym [\typescriptprefix{\typescriptone}Hebrew] [\s!file:\typescriptprefix{n:narrowplex\typescriptone-hebrew}-regular]
- [\s!features=hebrew]
- \definefontsynonym [\typescriptprefix{\typescriptone}Hebrew\s!Bold] [\s!file:\typescriptprefix{n:narrowplex\typescriptone-hebrew}-bold]
- [\s!features=hebrew]
- \stoptypescript
-
- % The main definition, inspired by discussion at the 2018 ConTeXt meeting after a talk by Taco. Here
- % we default to sans serif. Taco: take your choice of math!
-
- \starttypescript[ibmplex,ibmplex-thin,ibmplex-extralight,ibmplex-light]
- \definetypeface [\typescriptone] [\s!ss] [\s!sans] [\typescriptone] [\s!default]
- \definetypeface [\typescriptone] [\s!rm] [\s!serif] [\typescriptone] [\s!default]
- \definetypeface [\typescriptone] [\s!tt] [\s!mono] [\typescriptone] [\s!default]
- \definetypeface [\typescriptone] [\s!mm] [\s!math] [bookman] [\s!default] [\s!rscale=1.03]
- \stoptypescript
-
- \starttypescript[ibmplexnarrow,ibmplexnarrow-thin,ibmplexnarrow-extralight,ibmplexnarrow-light]
- \definetypeface [\typescriptone] [\s!ss] [\s!sans] [\typescriptone] [\s!default]
- \definetypeface [\typescriptone] [\s!rm] [\s!serif] [\typescriptone] [\s!default]
- \definetypeface [\typescriptone] [\s!tt] [\s!mono] [\typescriptone] [\s!default]
- \definetypeface [\typescriptone] [\s!mm] [\s!math] [bookman] [\s!default] [\s!rscale=1.03]
- \stoptypescript
-
-\stoptypescriptcollection
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-source.mkiv b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-source.mkiv
index ab94727e80d..91396f96529 100644
--- a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-source.mkiv
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-source.mkiv
@@ -17,38 +17,38 @@
\starttypescript [\s!serif] [source] [\s!name]
\setups[\s!font:\s!fallback:\s!serif]
- \definefontsynonym [\s!Serif] [\s!file:SourceSerifPro-Regular] [\s!features=\s!default]
- \definefontsynonym [\s!SerifBold] [\s!file:SourceSerifPro-Bold] [\s!features=\s!default]
- % \definefontsynonym [\s!SerifBold] [\s!file:SourceSerifPro-Semibold] [\s!features=\s!default]
- \definefontsynonym [\s!SerifItalic] [\s!file:SourceSerifPro-Regular] [\s!features={\s!default,source-serif-slanted}]
- \definefontsynonym [\s!SerifBoldItalic] [\s!file:SourceSerifPro-Bold] [\s!features={\s!default,source-serif-slanted}]
+ \definefontsynonym [\s!Serif] [\s!file:SourceSerifPro-Regular.ttf] [\s!features=\s!default]
+ \definefontsynonym [\s!SerifBold] [\s!file:SourceSerifPro-Bold.ttf] [\s!features=\s!default]
+ % \definefontsynonym [\s!SerifBold] [\s!file:SourceSerifPro-Semibold.ttf] [\s!features=\s!default]
+ \definefontsynonym [\s!SerifItalic] [\s!file:SourceSerifPro-Regular.ttf] [\s!features={\s!default,source-serif-slanted}]
+ \definefontsynonym [\s!SerifBoldItalic] [\s!file:SourceSerifPro-Bold.ttf] [\s!features={\s!default,source-serif-slanted}]
\stoptypescript
\starttypescript [\s!sans] [source] [\s!name]
\setups[\s!font:\s!fallback:\s!sans]
- % \definefontsynonym [\s!Sans] [\s!file:SourceSansPro-ExtraLight] [\s!features=\s!default]
- % \definefontsynonym [\s!Sans] [\s!file:SourceSansPro-Light] [\s!features=\s!default]
- \definefontsynonym [\s!Sans] [\s!file:SourceSansPro-Regular] [\s!features=\s!default]
- % \definefontsynonym [\s!SansBold] [\s!file:SourceSansPro-Semibold] [\s!features=\s!default]
- \definefontsynonym [\s!SansBold] [\s!file:SourceSansPro-Bold] [\s!features=\s!default]
- % \definefontsynonym [\s!SansBold] [\s!file:SourceSansPro-Black] [\s!features=\s!default]
- % \definefontsynonym [\s!SansItalic] [\s!file:SourceSansPro-ExtraLightItalic] [\s!features=\s!default]
- % \definefontsynonym [\s!SansItalic] [\s!file:SourceSansPro-LightItalic] [\s!features=\s!default]
- \definefontsynonym [\s!SansItalic] [\s!file:SourceSansPro-Italic] [\s!features=\s!default]
- % \definefontsynonym [\s!SansBoldItalic] [\s!file:SourceSansPro-SemiboldItalic] [\s!features=\s!default]
- \definefontsynonym [\s!SansBoldItalic] [\s!file:SourceSansPro-BoldItalic] [\s!features=\s!default]
- % \definefontsynonym [\s!SansBoldItalic] [\s!file:SourceSansPro-BlackItalic] [\s!features=\s!default]
+ % \definefontsynonym [\s!Sans] [\s!file:SourceSansPro-ExtraLight.ttf] [\s!features=\s!default]
+ % \definefontsynonym [\s!Sans] [\s!file:SourceSansPro-Light.ttf] [\s!features=\s!default]
+ \definefontsynonym [\s!Sans] [\s!file:SourceSansPro-Regular.ttf] [\s!features=\s!default]
+ % \definefontsynonym [\s!SansBold] [\s!file:SourceSansPro-Semibold.ttf] [\s!features=\s!default]
+ \definefontsynonym [\s!SansBold] [\s!file:SourceSansPro-Bold.ttf] [\s!features=\s!default]
+ % \definefontsynonym [\s!SansBold] [\s!file:SourceSansPro-Black.ttf] [\s!features=\s!default]
+ % \definefontsynonym [\s!SansItalic] [\s!file:SourceSansPro-ExtraLightItalic.ttf] [\s!features=\s!default]
+ % \definefontsynonym [\s!SansItalic] [\s!file:SourceSansPro-LightItalic.ttf] [\s!features=\s!default]
+ \definefontsynonym [\s!SansItalic] [\s!file:SourceSansPro-Italic.ttf] [\s!features=\s!default]
+ % \definefontsynonym [\s!SansBoldItalic] [\s!file:SourceSansPro-SemiboldItalic.ttf] [\s!features=\s!default]
+ \definefontsynonym [\s!SansBoldItalic] [\s!file:SourceSansPro-BoldItalic.ttf] [\s!features=\s!default]
+ % \definefontsynonym [\s!SansBoldItalic] [\s!file:SourceSansPro-BlackItalic.ttf] [\s!features=\s!default]
\stoptypescript
\starttypescript [\s!mono] [source] [\s!name]
\setups[\s!font:\s!fallback:\s!mono]
- % \definefontsynonym [\s!Mono] [\s!file:SourceCodePro-ExtraLight] [\s!features=\s!none]
- % \definefontsynonym [\s!Mono] [\s!file:SourceCodePro-Light] [\s!features=\s!none]
- \definefontsynonym [\s!Mono] [\s!file:SourceCodePro-Regular] [\s!features=\s!none]
- % \definefontsynonym [\s!MonoBold] [\s!file:SourceCodePro-Medium] [\s!features=\s!none]
- % \definefontsynonym [\s!MonoBold] [\s!file:SourceCodePro-Semibold] [\s!features=\s!none]
- \definefontsynonym [\s!MonoBold] [\s!file:SourceCodePro-Bold] [\s!features=\s!none]
- % \definefontsynonym [\s!MonoBold] [\s!file:SourceCodePro-Black] [\s!features=\s!none]
+ % \definefontsynonym [\s!Mono] [\s!file:SourceCodePro-ExtraLight.ttf] [\s!features=\s!none]
+ % \definefontsynonym [\s!Mono] [\s!file:SourceCodePro-Light.ttf] [\s!features=\s!none]
+ \definefontsynonym [\s!Mono] [\s!file:SourceCodePro-Regular.ttf] [\s!features=\s!none]
+ % \definefontsynonym [\s!MonoBold] [\s!file:SourceCodePro-Medium.ttf] [\s!features=\s!none]
+ % \definefontsynonym [\s!MonoBold] [\s!file:SourceCodePro-Semibold.ttf] [\s!features=\s!none]
+ \definefontsynonym [\s!MonoBold] [\s!file:SourceCodePro-Bold.ttf] [\s!features=\s!none]
+ % \definefontsynonym [\s!MonoBold] [\s!file:SourceCodePro-Black.ttf] [\s!features=\s!none]
\stoptypescript
\starttypescript [\s!math][source][\s!name]
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-texgyre.mkiv b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-texgyre.mkiv
index 583da77c1a7..2bec4c2a8ee 100644
--- a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-texgyre.mkiv
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-texgyre.mkiv
@@ -20,11 +20,6 @@
\starttypescriptcollection[texgyre]
- \doifunknownfontfeature {pagella-math-bold} {\definefontfeature[pagella-math-bold][boldened]}
- \doifunknownfontfeature {schola-math-bold} {\definefontfeature[schola-math-bold] [boldened]}
- \doifunknownfontfeature {bonum-math-bold} {\definefontfeature[bonum-math-bold] [boldened]}
- \doifunknownfontfeature {termes-math-bold} {\definefontfeature[termes-math-bold] [boldened]}
-
\definetypescriptprefix [f:pagella] [pagella]
\definetypescriptprefix [f:termes] [termes]
\definetypescriptprefix [f:heros] [heros]
@@ -247,8 +242,7 @@
\starttypescript [\s!math][times,termes][\s!all]
% \loadfontgoodies[texgyre]
% \definefontsynonym[\s!MathRoman][file:texgyre-termes-math-regular.otf][\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=texgyre]
- \definefontsynonym[\s!MathRoman] [file:texgyretermes-math.otf][\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=termes-math]
- \definefontsynonym[\s!MathRomanBold][file:texgyretermes-math.otf][\s!features={\s!math\mathsizesuffix,termes-math-bold,mathextra},\s!goodies=schola-math]
+ \definefontsynonym[\s!MathRoman][file:texgyretermes-math.otf][\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=termes-math]
\stoptypescript
\stoptypescriptcollection
@@ -276,8 +270,7 @@
\starttypescript [\s!math][palatino,pagella][\s!all]
% \loadfontgoodies[texgyre]
% \definefontsynonym[\s!MathRoman][file:texgyre-pagella-math-regular.otf][\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=texgyre]
- \definefontsynonym[\s!MathRoman] [file:texgyrepagella-math.otf][\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=pagella-math]
- \definefontsynonym[\s!MathRomanBold][file:texgyrepagella-math.otf][\s!features={\s!math\mathsizesuffix,pagella-math-bold,mathextra},\s!goodies=schola-math]
+ \definefontsynonym[\s!MathRoman][file:texgyrepagella-math.otf][\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=pagella-math]
\stoptypescript
\stoptypescriptcollection
@@ -289,8 +282,7 @@
\starttypescript [\s!math][bookman,bonum][\s!all]
% \loadfontgoodies[texgyre]
% \definefontsynonym[\s!MathRoman][file:texgyre-bonum-math-regular.otf][\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=texgyre]
- \definefontsynonym[\s!MathRoman] [file:texgyrebonum-math.otf][\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=bonum-math]
- \definefontsynonym[\s!MathRomanBold][file:texgyrebonum-math.otf][\s!features={\s!math\mathsizesuffix,bonum-math-bold,mathextra},\s!goodies=schola-math]
+ \definefontsynonym[\s!MathRoman][file:texgyrebonum-math.otf][\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=bonum-math]
\stoptypescript
\stoptypescriptcollection
@@ -300,8 +292,7 @@
\starttypescript [\s!math][schoolbook,schola][\s!all]
% \loadfontgoodies[texgyre]
% \definefontsynonym[\s!MathRoman][file:texgyre-schola-math-regular.otf][\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=texgyre]
- \definefontsynonym[\s!MathRoman] [file:texgyreschola-math.otf][\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=schola-math]
- \definefontsynonym[\s!MathRomanBold][file:texgyreschola-math.otf][\s!features={\s!math\mathsizesuffix,schola-math-bold,mathextra},\s!goodies=schola-math]
+ \definefontsynonym[\s!MathRoman][file:texgyreschola-math.otf][\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=schola-math]
\stoptypescript
\stoptypescriptcollection
diff --git a/Master/texmf-dist/tex/context/interface/mkii/keys-cs.xml b/Master/texmf-dist/tex/context/interface/mkii/keys-cs.xml
index f4e65c527f7..521393c17f1 100644
--- a/Master/texmf-dist/tex/context/interface/mkii/keys-cs.xml
+++ b/Master/texmf-dist/tex/context/interface/mkii/keys-cs.xml
@@ -140,7 +140,6 @@
<cd:variable name='chemicals' value='chemicals'/>
<cd:variable name='chemistry' value='chemistry'/>
<cd:variable name='cite' value='cite'/>
- <cd:variable name='closed' value='closed'/>
<cd:variable name='color' value='barevne'/>
<cd:variable name='column' value='column'/>
<cd:variable name='columns' value='sloupce'/>
@@ -422,7 +421,7 @@
<cd:variable name='positive' value='positiv'/>
<cd:variable name='postponing' value='odlozit'/>
<cd:variable name='postscript' value='postscript'/>
- <cd:variable name='precedingpage' value='precedingpage'/>
+ <cd:variable name='precedingpage' value='followingpage'/>
<cd:variable name='preference' value='nastaveni'/>
<cd:variable name='preview' value='nahled'/>
<cd:variable name='previous' value='predchozi'/>
@@ -590,7 +589,6 @@
<cd:variable name='understrike' value='understrike'/>
<cd:variable name='understrikes' value='understrikes'/>
<cd:variable name='unframed' value='unframed'/>
- <cd:variable name='unicode' value='unicode'/>
<cd:variable name='unit' value='jednotka'/>
<cd:variable name='units' value='jednotky'/>
<cd:variable name='unknown' value='neznamy'/>
@@ -861,7 +859,7 @@
<cd:constant name='headseparator' value='headseparator'/>
<cd:constant name='headstyle' value='stylhlavicky'/>
<cd:constant name='height' value='vyska'/>
- <cd:constant name='hfactor' value='hfaktor'/>
+ <cd:constant name='hfactor' value='vfaktor'/>
<cd:constant name='hfil' value='hfil'/>
<cd:constant name='hidenumber' value='hidenumber'/>
<cd:constant name='hoffset' value='hoffset'/>
@@ -1035,7 +1033,6 @@
<cd:constant name='otherstext' value='otherstext'/>
<cd:constant name='outermargin' value='outermargin'/>
<cd:constant name='overprint' value='overprint'/>
- <cd:constant name='ownerpassword' value='ownerpassword'/>
<cd:constant name='ownnumber' value='vlastnicislo'/>
<cd:constant name='page' value='stranka'/>
<cd:constant name='pageboundaries' value='hranicestranky'/>
@@ -1249,7 +1246,6 @@
<cd:constant name='textstyle' value='styltextu'/>
<cd:constant name='textwidth' value='sirkatextu'/>
<cd:constant name='threshold' value='threshold'/>
- <cd:constant name='time' value='time'/>
<cd:constant name='title' value='titul'/>
<cd:constant name='titlecolor' value='barvatitulek'/>
<cd:constant name='titlecommand' value='titlecommand'/>
@@ -1278,14 +1274,12 @@
<cd:constant name='up' value='up'/>
<cd:constant name='urlalternative' value='urlalternativa'/>
<cd:constant name='urlspace' value='prostorurl'/>
- <cd:constant name='userpassword' value='userpassword'/>
<cd:constant name='validate' value='validovat'/>
<cd:constant name='values' value='values'/>
<cd:constant name='vcommand' value='vprikaz'/>
<cd:constant name='vcompact' value='vcompact'/>
<cd:constant name='vector' value='vector'/>
<cd:constant name='veroffset' value='offsethlavicky'/>
- <cd:constant name='vfactor' value='vfaktor'/>
<cd:constant name='vfil' value='vfil'/>
<cd:constant name='viewerprefix' value='viewerprefix'/>
<cd:constant name='voffset' value='voffset'/>
diff --git a/Master/texmf-dist/tex/context/interface/mkii/keys-de.xml b/Master/texmf-dist/tex/context/interface/mkii/keys-de.xml
index 701dc246b2b..f399f128a40 100644
--- a/Master/texmf-dist/tex/context/interface/mkii/keys-de.xml
+++ b/Master/texmf-dist/tex/context/interface/mkii/keys-de.xml
@@ -140,7 +140,6 @@
<cd:variable name='chemicals' value='chemicals'/>
<cd:variable name='chemistry' value='chemistry'/>
<cd:variable name='cite' value='cite'/>
- <cd:variable name='closed' value='closed'/>
<cd:variable name='color' value='farbe'/>
<cd:variable name='column' value='column'/>
<cd:variable name='columns' value='spalten'/>
@@ -422,7 +421,7 @@
<cd:variable name='positive' value='positiv'/>
<cd:variable name='postponing' value='verschieben'/>
<cd:variable name='postscript' value='postscript'/>
- <cd:variable name='precedingpage' value='precedingpage'/>
+ <cd:variable name='precedingpage' value='followingpage'/>
<cd:variable name='preference' value='einstellung'/>
<cd:variable name='preview' value='vorschau'/>
<cd:variable name='previous' value='vorig'/>
@@ -590,7 +589,6 @@
<cd:variable name='understrike' value='understrike'/>
<cd:variable name='understrikes' value='understrikes'/>
<cd:variable name='unframed' value='unframed'/>
- <cd:variable name='unicode' value='unicode'/>
<cd:variable name='unit' value='einheit'/>
<cd:variable name='units' value='einheiten'/>
<cd:variable name='unknown' value='unbekannt'/>
@@ -1035,7 +1033,6 @@
<cd:constant name='otherstext' value='otherstext'/>
<cd:constant name='outermargin' value='outermargin'/>
<cd:constant name='overprint' value='overprint'/>
- <cd:constant name='ownerpassword' value='ownerpassword'/>
<cd:constant name='ownnumber' value='eigenenummer'/>
<cd:constant name='page' value='seite'/>
<cd:constant name='pageboundaries' value='seitenbegrenzung'/>
@@ -1249,7 +1246,6 @@
<cd:constant name='textstyle' value='textstil'/>
<cd:constant name='textwidth' value='textbreite'/>
<cd:constant name='threshold' value='threshold'/>
- <cd:constant name='time' value='time'/>
<cd:constant name='title' value='titel'/>
<cd:constant name='titlecolor' value='titelfarbe'/>
<cd:constant name='titlecommand' value='titlecommand'/>
@@ -1278,14 +1274,12 @@
<cd:constant name='up' value='up'/>
<cd:constant name='urlalternative' value='urlalternative'/>
<cd:constant name='urlspace' value='urlspatium'/>
- <cd:constant name='userpassword' value='userpassword'/>
<cd:constant name='validate' value='validieren'/>
<cd:constant name='values' value='values'/>
<cd:constant name='vcommand' value='vbefehl'/>
<cd:constant name='vcompact' value='vcompact'/>
<cd:constant name='vector' value='vector'/>
<cd:constant name='veroffset' value='kopfoffset'/>
- <cd:constant name='vfactor' value='vfaktor'/>
<cd:constant name='vfil' value='vfil'/>
<cd:constant name='viewerprefix' value='viewerprefix'/>
<cd:constant name='voffset' value='voffset'/>
diff --git a/Master/texmf-dist/tex/context/interface/mkii/keys-en.xml b/Master/texmf-dist/tex/context/interface/mkii/keys-en.xml
index a3606e38b11..dccff3a987d 100644
--- a/Master/texmf-dist/tex/context/interface/mkii/keys-en.xml
+++ b/Master/texmf-dist/tex/context/interface/mkii/keys-en.xml
@@ -140,7 +140,6 @@
<cd:variable name='chemicals' value='chemicals'/>
<cd:variable name='chemistry' value='chemistry'/>
<cd:variable name='cite' value='cite'/>
- <cd:variable name='closed' value='closed'/>
<cd:variable name='color' value='color'/>
<cd:variable name='column' value='column'/>
<cd:variable name='columns' value='columns'/>
@@ -422,7 +421,7 @@
<cd:variable name='positive' value='positive'/>
<cd:variable name='postponing' value='postponing'/>
<cd:variable name='postscript' value='postscript'/>
- <cd:variable name='precedingpage' value='precedingpage'/>
+ <cd:variable name='precedingpage' value='followingpage'/>
<cd:variable name='preference' value='preference'/>
<cd:variable name='preview' value='preview'/>
<cd:variable name='previous' value='previous'/>
@@ -1034,7 +1033,6 @@
<cd:constant name='otherstext' value='otherstext'/>
<cd:constant name='outermargin' value='outermargin'/>
<cd:constant name='overprint' value='overprint'/>
- <cd:constant name='ownerpassword' value='ownerpassword'/>
<cd:constant name='ownnumber' value='ownnumber'/>
<cd:constant name='page' value='page'/>
<cd:constant name='pageboundaries' value='pageboundaries'/>
@@ -1248,7 +1246,6 @@
<cd:constant name='textstyle' value='textstyle'/>
<cd:constant name='textwidth' value='textwidth'/>
<cd:constant name='threshold' value='threshold'/>
- <cd:constant name='time' value='time'/>
<cd:constant name='title' value='title'/>
<cd:constant name='titlecolor' value='titlecolor'/>
<cd:constant name='titlecommand' value='titlecommand'/>
@@ -1277,14 +1274,12 @@
<cd:constant name='up' value='up'/>
<cd:constant name='urlalternative' value='urlalternative'/>
<cd:constant name='urlspace' value='urlspace'/>
- <cd:constant name='userpassword' value='userpassword'/>
<cd:constant name='validate' value='validate'/>
<cd:constant name='values' value='values'/>
<cd:constant name='vcommand' value='vcommand'/>
<cd:constant name='vcompact' value='vcompact'/>
<cd:constant name='vector' value='vector'/>
<cd:constant name='veroffset' value='veroffset'/>
- <cd:constant name='vfactor' value='vfactor'/>
<cd:constant name='vfil' value='vfil'/>
<cd:constant name='viewerprefix' value='viewerprefix'/>
<cd:constant name='voffset' value='voffset'/>
diff --git a/Master/texmf-dist/tex/context/interface/mkii/keys-fr.xml b/Master/texmf-dist/tex/context/interface/mkii/keys-fr.xml
index 452f3316a40..ab256770cc1 100644
--- a/Master/texmf-dist/tex/context/interface/mkii/keys-fr.xml
+++ b/Master/texmf-dist/tex/context/interface/mkii/keys-fr.xml
@@ -140,7 +140,6 @@
<cd:variable name='chemicals' value='chemicals'/>
<cd:variable name='chemistry' value='chemistry'/>
<cd:variable name='cite' value='cite'/>
- <cd:variable name='closed' value='closed'/>
<cd:variable name='color' value='couleur'/>
<cd:variable name='column' value='colonne'/>
<cd:variable name='columns' value='colonnes'/>
@@ -422,7 +421,7 @@
<cd:variable name='positive' value='positif'/>
<cd:variable name='postponing' value='postponing'/>
<cd:variable name='postscript' value='postscript'/>
- <cd:variable name='precedingpage' value='precedingpage'/>
+ <cd:variable name='precedingpage' value='followingpage'/>
<cd:variable name='preference' value='preference'/>
<cd:variable name='preview' value='previsualisation'/>
<cd:variable name='previous' value='precedent'/>
@@ -1034,7 +1033,6 @@
<cd:constant name='otherstext' value='otherstext'/>
<cd:constant name='outermargin' value='margeexterieure'/>
<cd:constant name='overprint' value='overprint'/>
- <cd:constant name='ownerpassword' value='ownerpassword'/>
<cd:constant name='ownnumber' value='numeroproprio'/>
<cd:constant name='page' value='page'/>
<cd:constant name='pageboundaries' value='limitespage'/>
@@ -1248,7 +1246,6 @@
<cd:constant name='textstyle' value='styletexte'/>
<cd:constant name='textwidth' value='largeurtexte'/>
<cd:constant name='threshold' value='threshold'/>
- <cd:constant name='time' value='time'/>
<cd:constant name='title' value='titre'/>
<cd:constant name='titlecolor' value='couleurtitre'/>
<cd:constant name='titlecommand' value='titlecommand'/>
@@ -1277,14 +1274,12 @@
<cd:constant name='up' value='up'/>
<cd:constant name='urlalternative' value='alternativeurl'/>
<cd:constant name='urlspace' value='espaceurl'/>
- <cd:constant name='userpassword' value='userpassword'/>
<cd:constant name='validate' value='valider'/>
<cd:constant name='values' value='values'/>
<cd:constant name='vcommand' value='vcommande'/>
<cd:constant name='vcompact' value='vcompact'/>
<cd:constant name='vector' value='vector'/>
<cd:constant name='veroffset' value='veroffset'/>
- <cd:constant name='vfactor' value='vfactor'/>
<cd:constant name='vfil' value='vfil'/>
<cd:constant name='viewerprefix' value='viewerprefix'/>
<cd:constant name='voffset' value='voffset'/>
diff --git a/Master/texmf-dist/tex/context/interface/mkii/keys-it.xml b/Master/texmf-dist/tex/context/interface/mkii/keys-it.xml
index 2ebcb4a9d99..da79706198d 100644
--- a/Master/texmf-dist/tex/context/interface/mkii/keys-it.xml
+++ b/Master/texmf-dist/tex/context/interface/mkii/keys-it.xml
@@ -140,7 +140,6 @@
<cd:variable name='chemicals' value='chemicals'/>
<cd:variable name='chemistry' value='chemistry'/>
<cd:variable name='cite' value='cite'/>
- <cd:variable name='closed' value='closed'/>
<cd:variable name='color' value='colore'/>
<cd:variable name='column' value='colonna'/>
<cd:variable name='columns' value='colonne'/>
@@ -422,7 +421,7 @@
<cd:variable name='positive' value='positivo'/>
<cd:variable name='postponing' value='posporre'/>
<cd:variable name='postscript' value='postscript'/>
- <cd:variable name='precedingpage' value='precedingpage'/>
+ <cd:variable name='precedingpage' value='followingpage'/>
<cd:variable name='preference' value='preferenza'/>
<cd:variable name='preview' value='anteprima'/>
<cd:variable name='previous' value='precedente'/>
@@ -590,7 +589,6 @@
<cd:variable name='understrike' value='understrike'/>
<cd:variable name='understrikes' value='understrikes'/>
<cd:variable name='unframed' value='unframed'/>
- <cd:variable name='unicode' value='unicode'/>
<cd:variable name='unit' value='unita'/>
<cd:variable name='units' value='unita'/>
<cd:variable name='unknown' value='ignoto'/>
@@ -1035,7 +1033,6 @@
<cd:constant name='otherstext' value='otherstext'/>
<cd:constant name='outermargin' value='margineesterno'/>
<cd:constant name='overprint' value='overprint'/>
- <cd:constant name='ownerpassword' value='ownerpassword'/>
<cd:constant name='ownnumber' value='numeroproprio'/>
<cd:constant name='page' value='pagina'/>
<cd:constant name='pageboundaries' value='limitipagina'/>
@@ -1249,7 +1246,6 @@
<cd:constant name='textstyle' value='stiletesto'/>
<cd:constant name='textwidth' value='ampiezzatesto'/>
<cd:constant name='threshold' value='threshold'/>
- <cd:constant name='time' value='time'/>
<cd:constant name='title' value='titolo'/>
<cd:constant name='titlecolor' value='coloretitolo'/>
<cd:constant name='titlecommand' value='titlecommand'/>
@@ -1278,14 +1274,12 @@
<cd:constant name='up' value='up'/>
<cd:constant name='urlalternative' value='alternativaurl'/>
<cd:constant name='urlspace' value='spaziourl'/>
- <cd:constant name='userpassword' value='userpassword'/>
<cd:constant name='validate' value='verifica'/>
<cd:constant name='values' value='values'/>
<cd:constant name='vcommand' value='vcomando'/>
<cd:constant name='vcompact' value='vcompact'/>
<cd:constant name='vector' value='vector'/>
<cd:constant name='veroffset' value='veroffset'/>
- <cd:constant name='vfactor' value='vfactor'/>
<cd:constant name='vfil' value='vfil'/>
<cd:constant name='viewerprefix' value='viewerprefix'/>
<cd:constant name='voffset' value='voffset'/>
diff --git a/Master/texmf-dist/tex/context/interface/mkii/keys-nl.xml b/Master/texmf-dist/tex/context/interface/mkii/keys-nl.xml
index 1104e14c1e3..212685d44d9 100644
--- a/Master/texmf-dist/tex/context/interface/mkii/keys-nl.xml
+++ b/Master/texmf-dist/tex/context/interface/mkii/keys-nl.xml
@@ -140,7 +140,6 @@
<cd:variable name='chemicals' value='chemicals'/>
<cd:variable name='chemistry' value='chemie'/>
<cd:variable name='cite' value='cite'/>
- <cd:variable name='closed' value='gesloten'/>
<cd:variable name='color' value='kleur'/>
<cd:variable name='column' value='kolom'/>
<cd:variable name='columns' value='kolommen'/>
@@ -189,7 +188,6 @@
<cd:variable name='extremestretch' value='extremestretch'/>
<cd:variable name='fact' value='gegeven'/>
<cd:variable name='february' value='februari'/>
- <cd:variable name='field' value='veld'/>
<cd:variable name='figure' value='figuur'/>
<cd:variable name='figures' value='figuren'/>
<cd:variable name='file' value='file'/>
@@ -802,7 +800,7 @@
<cd:constant name='family' value='soort'/>
<cd:constant name='features' value='features'/>
<cd:constant name='fences' value='fences'/>
- <cd:constant name='field' value='veld'/>
+ <cd:constant name='field' value='field'/>
<cd:constant name='fieldbackgroundcolor' value='veldachtergrondkleur'/>
<cd:constant name='fieldframecolor' value='veldkaderkleur'/>
<cd:constant name='fieldlayer' value='veldlaag'/>
@@ -857,7 +855,6 @@
<cd:constant name='headerstate' value='hoofdstatus'/>
<cd:constant name='headlabel' value='koplabel'/>
<cd:constant name='headnumber' value='kopnummer'/>
- <cd:constant name='headseparator' value='kopscheider'/>
<cd:constant name='headstyle' value='kopletter'/>
<cd:constant name='height' value='hoogte'/>
<cd:constant name='hfactor' value='hfactor'/>
@@ -1034,7 +1031,6 @@
<cd:constant name='otherstext' value='otherstext'/>
<cd:constant name='outermargin' value='buitenmarge'/>
<cd:constant name='overprint' value='overprint'/>
- <cd:constant name='ownerpassword' value='ownerpassword'/>
<cd:constant name='ownnumber' value='eigennummer'/>
<cd:constant name='page' value='pagina'/>
<cd:constant name='pageboundaries' value='paginaovergangen'/>
@@ -1085,7 +1081,6 @@
<cd:constant name='preview' value='preview'/>
<cd:constant name='previous' value='vorige'/>
<cd:constant name='previousnumber' value='vorigenummer'/>
- <cd:constant name='print' value='print'/>
<cd:constant name='printable' value='printbaar'/>
<cd:constant name='process' value='proces'/>
<cd:constant name='profile' value='profile'/>
@@ -1171,10 +1166,8 @@
<cd:constant name='sidemethod' value='zijmethode'/>
<cd:constant name='sidespaceafter' value='zijnawit'/>
<cd:constant name='sidespacebefore' value='zijvoorwit'/>
- <cd:constant name='sidespaceinbetween' value='zijtussenwit'/>
<cd:constant name='sidethreshold' value='sidethreshold'/>
<cd:constant name='sign' value='teken'/>
- <cd:constant name='simplecommand' value='simpelcommando'/>
<cd:constant name='size' value='formaat'/>
<cd:constant name='slantedfeatures' value='slantedfeatures'/>
<cd:constant name='slantedfont' value='slantedfont'/>
@@ -1248,7 +1241,6 @@
<cd:constant name='textstyle' value='tekstletter'/>
<cd:constant name='textwidth' value='tekstbreedte'/>
<cd:constant name='threshold' value='threshold'/>
- <cd:constant name='time' value='tijd'/>
<cd:constant name='title' value='titel'/>
<cd:constant name='titlecolor' value='titelkleur'/>
<cd:constant name='titlecommand' value='titelcommando'/>
@@ -1277,14 +1269,12 @@
<cd:constant name='up' value='up'/>
<cd:constant name='urlalternative' value='urlvariant'/>
<cd:constant name='urlspace' value='urlspatie'/>
- <cd:constant name='userpassword' value='userpassword'/>
<cd:constant name='validate' value='valideer'/>
<cd:constant name='values' value='waarden'/>
<cd:constant name='vcommand' value='vcommando'/>
<cd:constant name='vcompact' value='vcomprimeer'/>
<cd:constant name='vector' value='vector'/>
<cd:constant name='veroffset' value='kopoffset'/>
- <cd:constant name='vfactor' value='vfactor'/>
<cd:constant name='vfil' value='vfil'/>
<cd:constant name='viewerprefix' value='viewerprefix'/>
<cd:constant name='voffset' value='voffset'/>
diff --git a/Master/texmf-dist/tex/context/interface/mkii/keys-pe.xml b/Master/texmf-dist/tex/context/interface/mkii/keys-pe.xml
index bd42a83ddc4..e587e1d6e59 100644
--- a/Master/texmf-dist/tex/context/interface/mkii/keys-pe.xml
+++ b/Master/texmf-dist/tex/context/interface/mkii/keys-pe.xml
@@ -140,7 +140,6 @@
<cd:variable name='chemicals' value='chemicals'/>
<cd:variable name='chemistry' value='chemistry'/>
<cd:variable name='cite' value='cite'/>
- <cd:variable name='closed' value='closed'/>
<cd:variable name='color' value='ØąŲ†ÚŊ'/>
<cd:variable name='column' value='ØģØŠŲˆŲ†'/>
<cd:variable name='columns' value='ØģØŠŲˆŲ†Ų‡Ø§'/>
@@ -422,7 +421,7 @@
<cd:variable name='positive' value='Ų…ØŦØĻØŠ'/>
<cd:variable name='postponing' value='؊اØŪÛŒØą'/>
<cd:variable name='postscript' value='ŲūØģ؊‌اØģÚĐØąÛŒŲūØŠ'/>
- <cd:variable name='precedingpage' value='precedingpage'/>
+ <cd:variable name='precedingpage' value='followingpage'/>
<cd:variable name='preference' value='ØŠØąØŽÛŒØ­'/>
<cd:variable name='preview' value='ŲūیØī‌ØŊیØŊ'/>
<cd:variable name='previous' value='Ų‚ØĻŲ„ÛŒ'/>
@@ -1034,7 +1033,6 @@
<cd:constant name='otherstext' value='otherstext'/>
<cd:constant name='outermargin' value='حاØīیŲ‡â€ŒØŪØ§ØąØŽÛŒ'/>
<cd:constant name='overprint' value='overprint'/>
- <cd:constant name='ownerpassword' value='ownerpassword'/>
<cd:constant name='ownnumber' value='ØīŲ…Ø§ØąŲ‡â€ŒØŪŲˆØŊ'/>
<cd:constant name='page' value='ØĩŲØ­Ų‡'/>
<cd:constant name='pageboundaries' value='Ų…ØąØēŲ‡Ø§ÛŒâ€ŒØĩŲØ­Ų‡'/>
@@ -1248,7 +1246,6 @@
<cd:constant name='textstyle' value='ØģØĻÚĐ‌Ų…ØŠŲ†'/>
<cd:constant name='textwidth' value='ØđØąØķ‌Ų…ØŠŲ†'/>
<cd:constant name='threshold' value='threshold'/>
- <cd:constant name='time' value='time'/>
<cd:constant name='title' value='ØđŲ†ŲˆØ§Ų†'/>
<cd:constant name='titlecolor' value='ØąŲ†ÚŊ‌ØđŲ†ŲˆØ§Ų†'/>
<cd:constant name='titlecommand' value='ŲØąŲ…اŲ†â€ŒØđŲ†ŲˆØ§Ų†'/>
@@ -1277,14 +1274,12 @@
<cd:constant name='up' value='up'/>
<cd:constant name='urlalternative' value='urlalternative'/>
<cd:constant name='urlspace' value='urlspace'/>
- <cd:constant name='userpassword' value='userpassword'/>
<cd:constant name='validate' value='؊اییØŊاØđØŠØĻØ§Øą'/>
<cd:constant name='values' value='values'/>
<cd:constant name='vcommand' value='vcommand'/>
<cd:constant name='vcompact' value='vcompact'/>
<cd:constant name='vector' value='vector'/>
<cd:constant name='veroffset' value='ØĒŲØģ؊‌ØđŲ…'/>
- <cd:constant name='vfactor' value='vfactor'/>
<cd:constant name='vfil' value='vfil'/>
<cd:constant name='viewerprefix' value='viewerprefix'/>
<cd:constant name='voffset' value='ØĒŲØģ؊‌Øđ'/>
diff --git a/Master/texmf-dist/tex/context/interface/mkii/keys-ro.xml b/Master/texmf-dist/tex/context/interface/mkii/keys-ro.xml
index 5f165f88be4..c0308086c5c 100644
--- a/Master/texmf-dist/tex/context/interface/mkii/keys-ro.xml
+++ b/Master/texmf-dist/tex/context/interface/mkii/keys-ro.xml
@@ -140,7 +140,6 @@
<cd:variable name='chemicals' value='chemicals'/>
<cd:variable name='chemistry' value='chemistry'/>
<cd:variable name='cite' value='cite'/>
- <cd:variable name='closed' value='closed'/>
<cd:variable name='color' value='culoare'/>
<cd:variable name='column' value='coloana'/>
<cd:variable name='columns' value='coloane'/>
@@ -422,7 +421,7 @@
<cd:variable name='positive' value='positiv'/>
<cd:variable name='postponing' value='postponing'/>
<cd:variable name='postscript' value='postscript'/>
- <cd:variable name='precedingpage' value='precedingpage'/>
+ <cd:variable name='precedingpage' value='followingpage'/>
<cd:variable name='preference' value='preferinta'/>
<cd:variable name='preview' value='previzualizare'/>
<cd:variable name='previous' value='precedent'/>
@@ -590,7 +589,6 @@
<cd:variable name='understrike' value='understrike'/>
<cd:variable name='understrikes' value='understrikes'/>
<cd:variable name='unframed' value='unframed'/>
- <cd:variable name='unicode' value='unicode'/>
<cd:variable name='unit' value='unitate'/>
<cd:variable name='units' value='unitati'/>
<cd:variable name='unknown' value='necunoscut'/>
@@ -1035,7 +1033,6 @@
<cd:constant name='otherstext' value='otherstext'/>
<cd:constant name='outermargin' value='outermargin'/>
<cd:constant name='overprint' value='overprint'/>
- <cd:constant name='ownerpassword' value='ownerpassword'/>
<cd:constant name='ownnumber' value='numarpropriu'/>
<cd:constant name='page' value='pagina'/>
<cd:constant name='pageboundaries' value='marginipagina'/>
@@ -1249,7 +1246,6 @@
<cd:constant name='textstyle' value='stiltext'/>
<cd:constant name='textwidth' value='latimetext'/>
<cd:constant name='threshold' value='threshold'/>
- <cd:constant name='time' value='time'/>
<cd:constant name='title' value='titlu'/>
<cd:constant name='titlecolor' value='culoaretitlu'/>
<cd:constant name='titlecommand' value='titlecommand'/>
@@ -1278,14 +1274,12 @@
<cd:constant name='up' value='up'/>
<cd:constant name='urlalternative' value='urlalternativ'/>
<cd:constant name='urlspace' value='spatiuurl'/>
- <cd:constant name='userpassword' value='userpassword'/>
<cd:constant name='validate' value='verifica'/>
<cd:constant name='values' value='values'/>
<cd:constant name='vcommand' value='comandav'/>
<cd:constant name='vcompact' value='vcompact'/>
<cd:constant name='vector' value='vector'/>
<cd:constant name='veroffset' value='veroffset'/>
- <cd:constant name='vfactor' value='vfactor'/>
<cd:constant name='vfil' value='vfil'/>
<cd:constant name='viewerprefix' value='viewerprefix'/>
<cd:constant name='voffset' value='voffset'/>
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/context-en.xml b/Master/texmf-dist/tex/context/interface/mkiv/context-en.xml
index 73af42a963d..4cfb3c7fec4 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/context-en.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/context-en.xml
@@ -780,7 +780,6 @@
<cd:constant type="global"/>
<cd:constant default="yes" type="public"/>
<cd:constant type="private"/>
- <cd:constant type="pickup"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -794,7 +793,6 @@
<cd:constant type="global"/>
<cd:constant type="public"/>
<cd:constant default="yes" type="private"/>
- <cd:constant type="pickup"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -866,23 +864,23 @@
<cd:constant type="cd:file"/>
</cd:parameter>
<cd:parameter name="intent">
- <cd:constant type="CoatedâĢFOGRA39âĢ(ISOâĢ12647-2:2004)"/>
+ <cd:constant type="Coated FOGRA39 (ISO 12647-2:2004)"/>
<cd:constant type="GRACoL2006_Coated1v2.icc"/>
- <cd:constant type="ISOâĢCoatedâĢv2âĢ300%âĢ(ECI)"/>
- <cd:constant type="ISOâĢCoatedâĢv2âĢ(ECI)"/>
+ <cd:constant type="ISO Coated v2 300% (ECI)"/>
+ <cd:constant type="ISO Coated v2 (ECI)"/>
<cd:constant type="ISOnewspaper26v4"/>
<cd:constant type="ISOnewspaper26v4_gr"/>
- <cd:constant type="ISOâĢUncoated"/>
- <cd:constant type="ISOâĢUncoatedâĢYellowish"/>
- <cd:constant type="ISOâĢWebâĢCoated"/>
- <cd:constant type="JapanâĢColorâĢ2001âĢCoated"/>
- <cd:constant type="JapanâĢColorâĢ2002âĢNewspaper"/>
- <cd:constant type="JapanâĢWebâĢCoatedâĢ(Ad)"/>
- <cd:constant type="SNAPâĢ2007"/>
+ <cd:constant type="ISO Uncoated"/>
+ <cd:constant type="ISO Uncoated Yellowish"/>
+ <cd:constant type="ISO Web Coated"/>
+ <cd:constant type="Japan Color 2001 Coated"/>
+ <cd:constant type="Japan Color 2002 Newspaper"/>
+ <cd:constant type="Japan Web Coated (Ad)"/>
+ <cd:constant type="SNAP 2007"/>
<cd:constant type="SWOP2006_Coated3v2.icc"/>
<cd:constant type="SWOP2006_Coated5v2.icc"/>
- <cd:constant type="UncoatedâĢFOGRA29âĢ(ISOâĢ12647-2:2004)"/>
- <cd:constant type="WebâĢCoatedâĢFOGRA28âĢ(ISOâĢ12647-2:2004)"/>
+ <cd:constant type="Uncoated FOGRA29 (ISO 12647-2:2004)"/>
+ <cd:constant type="Web Coated FOGRA28 (ISO 12647-2:2004)"/>
<cd:constant type="PSR_LWC_PLUS_V2_PT"/>
<cd:constant type="PSR_LWC_STD_V2_PT"/>
<cd:constant type="PSR_SC_PLUS_V2_PT"/>
@@ -1446,31 +1444,9 @@
<cd:parameter name="after">
<cd:constant type="cd:command"/>
</cd:parameter>
- <cd:parameter name="left">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="right">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="alternative">
- <cd:constant default="yes" type="paragraph"/>
- <cd:constant type="text"/>
- </cd:parameter>
<cd:parameter name="inner">
<cd:constant type="cd:command"/>
</cd:parameter>
- <cd:parameter name="setups">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="align">
- <cd:constant type="left"/>
- <cd:constant type="right"/>
- <cd:constant type="middle"/>
- <cd:constant type="flushleft"/>
- <cd:constant type="flushright"/>
- <cd:constant type="inner"/>
- <cd:constant type="outer"/>
- </cd:parameter>
<cd:parameter name="style">
<cd:constant type="cd:style"/>
<cd:constant type="cd:command"/>
@@ -1491,11 +1467,6 @@
<cd:constant type="-"/>
<cd:constant type="cd:name"/>
</cd:keywords>
- <cd:assignments list="yes" optional="yes">
- <cd:parameter name="cd:key">
- <cd:constant type="cd:value"/>
- </cd:parameter>
- </cd:assignments>
</cd:arguments>
</cd:command>
<cd:command category="structure" file="strc-blk.mkiv" level="style" name="hideblocks">
@@ -1566,13 +1537,6 @@
</cd:assignments>
</cd:arguments>
</cd:command>
- <cd:command category="structure" file="strc-blk.mkiv" level="document" name="blockuservariable">
- <cd:arguments>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:key"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
</cd:interface>
<cd:interface file="i-bookmark.xml">
<cd:command category="pdf" file="strc-bkm.mkiv" level="style" name="setupbookmark">
@@ -1607,7 +1571,6 @@
<cd:constant method="range" prefix="cd:section" type="cd:section"/>
<cd:constant method="range" prefix="cd:section" type="*"/>
<cd:constant method="range" prefix="cd:section" type="all"/>
- <cd:constant type="current"/>
</cd:parameter>
<cd:parameter name="sectionblock">
<cd:constant type="yes"/>
@@ -1922,17 +1885,6 @@
<cd:content/>
</cd:arguments>
</cd:command>
- <cd:command file="supp-box.mkiv" level="system" name="linebox">
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
- </cd:command>
- <cd:command file="supp-box.mkiv" level="system" name="shiftbox">
- <cd:arguments>
- <cd:dimension/>
- <cd:content/>
- </cd:arguments>
- </cd:command>
<cd:command file="supp-box.mkiv" level="system" name="inlinedbox">
<cd:arguments>
<cd:content/>
@@ -3023,10 +2975,6 @@
<cd:parameter name="after">
<cd:constant type="cd:command"/>
</cd:parameter>
- <cd:parameter name="strip">
- <cd:constant default="yes" type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
</cd:assignments>
</cd:arguments>
</cd:command>
@@ -3045,7 +2993,7 @@
</cd:command>
<cd:command category="buffer" file="buff-ini.mkiv" level="document" name="getbuffer">
<cd:arguments>
- <cd:keywords list="yes" optional="yes">
+ <cd:keywords optional="yes">
<cd:constant type="cd:buffer"/>
</cd:keywords>
</cd:arguments>
@@ -3064,7 +3012,7 @@
</cd:keywords>
</cd:arguments>
</cd:command>
- <cd:command category="buffer" file="buff-ini.mkiv" generated="yes" level="document" name="buffer" type="environment" variant="instance">
+ <cd:command evel="document" file="buff-ini.mkiv" generated="yes" lcategory="buffer" name="buffer" type="environment" variant="instance">
<cd:sequence>
<cd:instance value="buffer"/>
</cd:sequence>
@@ -3792,13 +3740,6 @@
</cd:keywords>
</cd:arguments>
</cd:command>
- <cd:command category="characters fonts" file="char-ini.mkiv" level="style" name="textormathchars">
- <cd:arguments>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:character"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
<cd:command category="characters" file="char-ini.mkiv" level="style" name="chardescription">
<cd:arguments>
<cd:keywords delimiters="braces">
@@ -3855,35 +3796,9 @@
</cd:arguments>
</cd:command>
<cd:command category="alignment" file="typo-tal.mkiv" level="system" name="resetcharacteralign"/>
- <cd:command category="alignment" file="typo-tal.mkiv" level="system" name="nocharacteralign"/>
- <cd:command category="alignment" file="typo-tal.mkiv" level="system" name="setcharacteraligndetail">
- <cd:arguments>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:text"/>
- <cd:constant method="apply" prefix="number" type="cd:text"/>
- <cd:constant method="apply" prefix="text" type="cd:text"/>
- </cd:keywords>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
<cd:command category="alignment" file="typo-tal.mkiv" level="system" name="alignmentcharacter"/>
<cd:command category="alignment" file="typo-tal.mkiv" level="system" name="characteralign" type="environment">
<cd:arguments>
- <cd:assignments list="yes">
- <cd:inherit name="setupcharacteralign"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
- <cd:command category="alignment" file="typo-tal.mkiv" level="system" name="characteralign" type="environment" variant="argument">
- <cd:arguments>
<cd:keywords optional="yes">
<cd:constant type="cd:text"/>
<cd:constant method="apply" prefix="number" type="cd:text"/>
@@ -3896,31 +3811,6 @@
<cd:content/>
</cd:arguments>
</cd:command>
- <cd:command category="alignment" file="typo-tal.mkiv" level="style" name="setupcharacteralign">
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="leftwidth">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rightwidth">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="leftsample">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="rightsample">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="character">
- <cd:constant type="cd:text"/>
- <cd:constant method="apply" prefix="number" type="cd:text"/>
- <cd:constant method="apply" prefix="text" type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
- <cd:command category="alignment" file="typo-tal.mkiv" level="system" name="setfirstpasscharacteralign"/>
- <cd:command category="alignment" file="typo-tal.mkiv" level="system" name="setsecondpasscharacteralign"/>
</cd:interface>
<cd:interface file="i-characterspacing.xml">
<cd:command category="fonts" file="typo-spa.mkiv" level="style" name="definecharacterspacing">
@@ -4791,7 +4681,7 @@
</cd:keywords>
</cd:arguments>
</cd:command>
- <cd:command category="colors" file="colo-ini.mkiv" level="style" name="transparent" type="environment">
+ <cd:command category="colors" file="colo-ini.mkiv" name="transparent" type="environment">
<cd:arguments>
<cd:keywords>
<cd:constant type="cd:color"/>
@@ -4897,7 +4787,7 @@
</cd:arguments>
</cd:command>
<cd:command begin="save" category="colors" end="restore" file="colo-ini.mkiv" level="system" name="color" type="environment"/>
- <cd:command category="colors" file="colo-ini.mkiv" level="style" name="definepalet">
+ <cd:command category="colors" file="colo-ini.mkiv" name="definepalet">
<cd:arguments>
<cd:keywords>
<cd:constant type="cd:name"/>
@@ -5221,10 +5111,10 @@
<cd:constant type="no"/>
</cd:parameter>
<cd:parameter name="align">
- <cd:inherit type="setupalign"/>
+ <cd:constant type="setupalign"/>
</cd:parameter>
<cd:parameter name="tolerance">
- <cd:inherit type="setuptolerance"/>
+ <cd:constant type="setuptolerance"/>
</cd:parameter>
<cd:parameter name="blank">
<cd:inherit name="blank"/>
@@ -5257,7 +5147,7 @@
</cd:assignments>
</cd:arguments>
</cd:command>
- <cd:command category="columns" file="page-mul.mkiv" level="document" name="columnspan" type="environment">
+ <cd:command category="columns" file="page-mul.mkiv" name="columnspan" type="environment">
<cd:arguments>
<cd:assignments list="yes" optional="yes">
<cd:inherit name="setupcolumnspan"/>
@@ -5764,16 +5654,6 @@
<cd:csname/>
</cd:arguments>
</cd:command>
- <cd:command file="mult-aux.mkiv" level="system" name="installmacrostack">
- <cd:arguments>
- <cd:csname/>
- </cd:arguments>
- </cd:command>
- <cd:command file="mult-aux.mkiv" level="system" name="installglobalmacrostack">
- <cd:arguments>
- <cd:csname/>
- </cd:arguments>
- </cd:command>
</cd:interface>
<cd:interface file="i-comment.xml">
<cd:command category="pdf" file="scrn-wid.mkvi" level="style" name="definecomment">
@@ -6747,7 +6627,6 @@
<cd:constant method="range" prefix="cd:section" type="cd:section"/>
<cd:constant method="range" prefix="cd:section" type="*"/>
<cd:constant method="range" prefix="cd:section" type="all"/>
- <cd:constant type="current"/>
</cd:parameter>
<cd:parameter name="numberorder">
<cd:constant type="reverse"/>
@@ -7332,7 +7211,6 @@
<cd:arguments>
<cd:keywords list="yes" optional="yes">
<cd:constant type="cd:name"/>
- <cd:constant method="range" prefix="cd:name" type="cd:number"/>
</cd:keywords>
<cd:assignments list="yes">
<cd:parameter name="before">
@@ -7580,7 +7458,6 @@
<cd:constant type="serried"/>
<cd:constant type="hanging"/>
<cd:constant type="top"/>
- <cd:constant type="empty"/>
<cd:constant type="command"/>
<cd:constant type="cd:name"/>
</cd:parameter>
@@ -7664,10 +7541,6 @@
<cd:parameter name="headcolor">
<cd:constant type="cd:color"/>
</cd:parameter>
- <cd:parameter name="aligntitle">
- <cd:constant default="yes" type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
</cd:assignments>
</cd:arguments>
</cd:command>
@@ -8085,52 +7958,6 @@
</cd:keywords>
</cd:arguments>
</cd:command>
- <cd:command category="structure" file="file-job.mkvi" level="style" name="doifelsedocumentvariable">
- <cd:arguments>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:key"/>
- </cd:keywords>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:true"/>
- </cd:keywords>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:false"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
- <cd:command category="structure" file="file-job.mkvi" level="style" name="doifdocumentvariableelse">
- <cd:arguments>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:key"/>
- </cd:keywords>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:true"/>
- </cd:keywords>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:false"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
- <cd:command category="structure" file="file-job.mkvi" level="style" name="doifdocumentvariable">
- <cd:arguments>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:key"/>
- </cd:keywords>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:true"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
- <cd:command category="structure" file="file-job.mkvi" level="style" name="doifnotdocumentvariable">
- <cd:arguments>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:key"/>
- </cd:keywords>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:true"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
</cd:interface>
<cd:interface file="i-dummy.xml">
<cd:command file="mult-aux.mkiv" level="system" name="getdummyparameters">
@@ -8227,7 +8054,7 @@
<cd:constant type="cd:number"/>
</cd:parameter>
<cd:parameter name="rulethickness">
- <cd:constant type="cd:dimension"/>
+ <cd:constant type="cd:number"/>
</cd:parameter>
<cd:parameter name="alternative">
<cd:constant default="yes" type="normal"/>
@@ -8364,7 +8191,6 @@
<cd:constant type="serried"/>
<cd:constant type="hanging"/>
<cd:constant default="yes" type="top"/>
- <cd:constant type="empty"/>
<cd:constant type="command"/>
<cd:constant type="cd:name"/>
</cd:parameter>
@@ -8448,10 +8274,6 @@
<cd:parameter name="headcolor">
<cd:constant type="cd:color"/>
</cd:parameter>
- <cd:parameter name="aligntitle">
- <cd:constant default="yes" type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
<cd:inherit name="setupcounter"/>
</cd:assignments>
</cd:arguments>
@@ -9715,21 +9537,6 @@
</cd:keywords>
</cd:arguments>
</cd:command>
- <cd:command category="rules" file="spac-flr.mkiv" level="style" name="fillupto">
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="sym"/>
- <cd:constant type="symbol"/>
- <cd:constant type="rule"/>
- <cd:constant type="width"/>
- <cd:constant type="space"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
<cd:command category="rules" file="spac-flr.mkiv" level="style" name="checkedfiller">
<cd:arguments>
<cd:keywords delimiters="braces">
@@ -10292,10 +10099,10 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="ntop">
- <cd:constant type="cd:number"/>
+ <cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="nbottom">
- <cd:constant type="cd:number"/>
+ <cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="step">
<cd:constant type="small"/>
@@ -10311,7 +10118,6 @@
<cd:constant default="yes" type="yes"/>
<cd:constant type="no"/>
</cd:parameter>
- <cd:inherit name="setupframed"/>
</cd:assignments>
</cd:arguments>
</cd:command>
@@ -10325,7 +10131,7 @@
</cd:assignments>
</cd:arguments>
</cd:command>
- <cd:command category="structure fonts counter" file="strc-flt.mkvi" level="style" name="setupcaption">
+ <cd:command category="structure fonts counter" file="strc-flt.mkvi" level="style" name="setupfloatcaption">
<cd:arguments>
<cd:keywords list="yes" optional="yes">
<cd:constant type="cd:name"/>
@@ -10347,7 +10153,6 @@
<cd:constant type="low"/>
<cd:constant type="high"/>
<cd:constant type="grid"/>
- <cd:constant type="lines"/>
<cd:constant type="overlay"/>
<cd:constant type="inner"/>
<cd:constant type="outer"/>
@@ -10387,13 +10192,6 @@
<cd:parameter name="distance">
<cd:constant type="cd:dimension"/>
</cd:parameter>
- <cd:parameter name="headstyle">
- <cd:constant type="cd:style"/>
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="headcolor">
- <cd:constant type="cd:color"/>
- </cd:parameter>
<cd:parameter name="headseparator">
<cd:constant type="cd:text"/>
</cd:parameter>
@@ -10449,27 +10247,26 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:inherit name="setupcounter"/>
- <cd:inherit name="setupframed"/>
</cd:assignments>
</cd:arguments>
</cd:command>
- <cd:command category="structure fonts counter" file="strc-flt.mkvi" level="style" name="setupcaptions">
+ <cd:command category="structure fonts counter" file="strc-flt.mkvi" level="style" name="setupcaption">
<cd:arguments>
<cd:keywords list="yes" optional="yes">
<cd:constant type="cd:name"/>
</cd:keywords>
<cd:assignments list="yes">
- <cd:inherit name="setupcaption"/>
+ <cd:inherit name="setupfloatcaption"/>
</cd:assignments>
</cd:arguments>
</cd:command>
- <cd:command category="structure background" file="strc-flt.mkvi" level="style" name="setupfloatframed">
+ <cd:command category="structure fonts counter" file="strc-flt.mkvi" level="style" name="setupcaptions">
<cd:arguments>
<cd:keywords list="yes" optional="yes">
<cd:constant type="cd:name"/>
</cd:keywords>
<cd:assignments list="yes">
- <cd:inherit name="setupframed"/>
+ <cd:inherit name="setupfloatcaption"/>
</cd:assignments>
</cd:arguments>
</cd:command>
@@ -11133,53 +10930,6 @@
<cd:content/>
</cd:arguments>
</cd:command>
- <cd:command category="structure" file="page-ffl.mkiv" level="style" name="definefacingfloat">
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes" optional="yes">
- <cd:inherit name="setupfacingfloat"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
- <cd:command category="structure" file="page-ffl.mkiv" level="style" name="setupfacingfloat">
- <cd:arguments>
- <cd:keywords list="yes" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="inbetween">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="page">
- <cd:inherit name="page"/>
- </cd:parameter>
- <cd:parameter name="spaceinbetween">
- <cd:inherit name="blank"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:constant type="cd:style"/>
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="color">
- <cd:constant type="cd:color"/>
- </cd:parameter>
- <cd:inherit name="setupframed"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
- <cd:command category="structure" file="page-ffl.mkiv" level="document" name="facingfloat" type="environment">
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
- <cd:command category="structure" file="tabl-tsp.mkiv" level="document" name="splittext" type="environment"/>
</cd:interface>
<cd:interface file="i-fontfamily.xml">
<cd:command category="fonts" file="font-sel.mkvi" level="style" name="definefontfamily">
@@ -11451,20 +11201,12 @@
<cd:constant type="cd:number"/>
<cd:constant type="cd:name"/>
</cd:parameter>
- <cd:parameter name="target">
- <cd:constant type="cd:number"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
<cd:parameter name="features">
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="factor">
<cd:constant type="cd:number"/>
</cd:parameter>
- <cd:parameter name="method">
- <cd:constant type="lowercase"/>
- <cd:constant type="uppercase"/>
- </cd:parameter>
</cd:assignments>
</cd:arguments>
</cd:command>
@@ -11719,7 +11461,7 @@
</cd:keywords>
</cd:arguments>
</cd:command>
- <cd:command category="fonts" file="font-fea.mkvi" level="style" name="subtractfeature" variant="direct">
+ <cd:command ategory="fonts" clevel="style" file="font-fea.mkvi" name="subtractfeature" variant="direct">
<cd:arguments>
<cd:keywords delimiters="braces">
<cd:constant type="cd:name"/>
@@ -11833,45 +11575,6 @@
</cd:keywords>
</cd:arguments>
</cd:command>
- <cd:command category="fonts conditional" file="font-fea.mkvi" level="system" name="doifelsefontfeature">
- <cd:arguments>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:true"/>
- </cd:keywords>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:false"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
- <cd:command category="fonts conditional" file="font-fea.mkvi" level="system" name="doiffontfeatureelse">
- <cd:arguments>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:true"/>
- </cd:keywords>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:false"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
- <cd:command category="fonts conditional" file="font-fea.mkvi" level="system" name="doifunknownfontfeature">
- <cd:arguments>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:true"/>
- </cd:keywords>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:false"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
<cd:command category="fonts" file="font-fea.mkvi" level="system" name="doaddfeature">
<cd:arguments>
<cd:keywords delimiters="braces" list="yes">
@@ -12416,7 +12119,7 @@
</cd:keywords>
</cd:arguments>
</cd:command>
- <cd:command category="fonts" file="font-ini.mkiv" level="style" name="switchstyleonly">
+ <cd:command ategory="fonts" clevel="style" file="font-ini.mkiv" name="switchstyleonly">
<cd:arguments>
<cd:keywords>
<cd:constant type="rm"/>
@@ -13570,9 +13273,6 @@
<cd:constant type="-"/>
<cd:constant type="cd:reference"/>
</cd:keywords>
- <cd:keywords delimiters="braces" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
</cd:arguments>
</cd:command>
<cd:command category="mathematics" file="strc-mat.mkiv" level="document" name="placeformula" type="environment">
@@ -13611,9 +13311,6 @@
<cd:keywords delimiters="braces">
<cd:constant type="cd:text"/>
</cd:keywords>
- <cd:keywords delimiters="braces" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
</cd:arguments>
</cd:command>
<cd:command category="mathematics" file="strc-mat.mkiv" level="document" name="placesubformula">
@@ -13623,9 +13320,6 @@
<cd:constant type="-"/>
<cd:constant type="cd:reference"/>
</cd:keywords>
- <cd:keywords delimiters="braces" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
</cd:arguments>
</cd:command>
<cd:command category="mathematics" file="strc-mat" level="document" name="formulanumber">
@@ -13841,25 +13535,21 @@
<cd:parameter name="topframe">
<cd:constant default="yes" type="on"/>
<cd:constant type="off"/>
- <cd:constant type="small"/>
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="bottomframe">
<cd:constant default="yes" type="on"/>
<cd:constant type="off"/>
- <cd:constant type="small"/>
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="leftframe">
<cd:constant default="yes" type="on"/>
<cd:constant type="off"/>
- <cd:constant type="small"/>
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="rightframe">
<cd:constant default="yes" type="on"/>
<cd:constant type="off"/>
- <cd:constant type="small"/>
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="region">
@@ -13876,8 +13566,6 @@
<cd:constant default="yes" type="on"/>
<cd:constant type="off"/>
<cd:constant type="overlay"/>
- <cd:constant type="small"/>
- <cd:constant type="closed"/>
<cd:constant type="none"/>
</cd:parameter>
<cd:parameter name="background">
@@ -13925,9 +13613,6 @@
<cd:constant default="yes" type="broad"/>
<cd:constant type="cd:dimension"/>
</cd:parameter>
- <cd:parameter name="minheight">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
<cd:parameter name="align">
<cd:inherit name="setupalign"/>
</cd:parameter>
@@ -14370,17 +14055,6 @@
</cd:keywords>
</cd:arguments>
</cd:command>
- <cd:command category="background rules" level="system" name="doifelseframed">
- <cd:arguments>
- <cd:csname/>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:true"/>
- </cd:keywords>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:false"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
</cd:interface>
<cd:interface file="i-framedtable.xml">
<cd:command category="tables" file="tabl-frm.mkiv" level="style" name="defineframedtable">
@@ -14686,16 +14360,6 @@
<cd:constant type="no"/>
<cd:constant type="cd:number"/>
</cd:parameter>
- <cd:parameter name="transform">
- <cd:constant default="yes" type="auto"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="userpassword">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="ownerpassword">
- <cd:constant type="cd:text"/>
- </cd:parameter>
</cd:assignments>
</cd:arguments>
</cd:command>
@@ -15014,20 +14678,6 @@
</cd:keywords>
</cd:arguments>
</cd:command>
- <cd:command category="graphics" file="pack-box.mkiv" level="style" name="overlayimage">
- <cd:arguments>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
- <cd:command category="graphics" file="pack-box.mkiv" level="style" name="clippedoverlayimage">
- <cd:arguments>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
</cd:interface>
<cd:interface file="i-grid.xml">
<cd:command category="layout" file="page-grd.mkiv" level="document" name="showgrid">
@@ -15044,7 +14694,6 @@
<cd:constant default="yes" type="right"/>
<cd:constant type="left"/>
<cd:constant type="outer"/>
- <cd:constant type="inner"/>
<cd:constant default="yes" type="columns"/>
</cd:keywords>
</cd:arguments>
@@ -15275,12 +14924,6 @@
<cd:parameter name="color">
<cd:constant type="cd:color"/>
</cd:parameter>
- <cd:parameter name="rulecolor">
- <cd:constant type="cd:color"/>
- </cd:parameter>
- <cd:parameter name="rulethickness">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
</cd:assignments>
</cd:arguments>
</cd:command>
@@ -15508,7 +15151,6 @@
<cd:constant type="quotation"/>
<cd:constant type="sentence"/>
<cd:constant type="intersentence"/>
- <cd:constant type="final"/>
<cd:constant type="cd:name"/>
</cd:keywords>
</cd:arguments>
@@ -15547,12 +15189,10 @@
<cd:command category="whitespace" file="spac-hor.mkiv" level="style" name="thinspace"/>
<cd:command category="whitespace" file="spac-hor.mkiv" level="style" name="negthinspace"/>
<cd:command category="whitespace" file="spac-hor.mkiv" level="style" name="enspace"/>
- <cd:command category="whitespace" file="spac-hor.mkiv" level="style" name="negenspace"/>
<cd:command category="whitespace" file="spac-hor.mkiv" level="style" name="enskip"/>
<cd:command category="whitespace" file="spac-hor.mkiv" level="style" name="quad"/>
<cd:command category="whitespace" file="spac-hor.mkiv" level="style" name="qquad"/>
<cd:command category="whitespace" file="spac-hor.mkiv" level="style" name="emspace"/>
- <cd:command category="whitespace" file="spac-hor.mkiv" level="style" name="negemspace"/>
<cd:command category="whitespace" file="spac-hor.mkiv" level="system" name="dotfskip">
<cd:arguments>
<cd:keywords delimiters="braces">
@@ -16817,7 +16457,6 @@
<cd:constant type="paper"/>
<cd:constant type="attachment"/>
<cd:constant type="layer"/>
- <cd:constant type="title"/>
</cd:parameter>
<cd:parameter name="copies">
<cd:constant type="cd:number"/>
@@ -18251,40 +17890,6 @@
</cd:assignments>
</cd:arguments>
</cd:command>
- <cd:command catgeory="fonts whitespace" file="typo-pnc.mkic" level="style" name="defineperiodkerning">
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes" optional="yes">
- <cd:inherit name="setupperiodkerning"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
- <cd:command catgeory="fonts whitespace" file="typo-pnc.mkic" level="style" name="setupperiodkerning">
- <cd:arguments>
- <cd:keywords list="yes" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="factor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
- <cd:command catgeory="fonts whitespace" file="typo-pnc.mkic" level="style" name="setperiodkerning">
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="reset"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
- <cd:command catgeory="fonts whitespace" file="typo-pnc.mkic" level="style" name="resetperiodkerning"/>
</cd:interface>
<cd:interface file="i-label.xml">
<cd:command category="structure" file="strc-lab.mkiv" level="style" name="definelabel">
@@ -18389,7 +17994,6 @@
<cd:constant type="serried"/>
<cd:constant type="hanging"/>
<cd:constant type="top"/>
- <cd:constant type="empty"/>
<cd:constant type="command"/>
<cd:constant default="yes" type="intext"/>
<cd:constant type="cd:name"/>
@@ -18474,10 +18078,6 @@
<cd:parameter name="headcolor">
<cd:constant type="cd:color"/>
</cd:parameter>
- <cd:parameter name="aligntitle">
- <cd:constant default="yes" type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
<cd:inherit name="setupcounter"/>
</cd:assignments>
</cd:arguments>
@@ -18761,9 +18361,6 @@
<cd:parameter name="date">
<cd:inherit name="currentdate"/>
</cd:parameter>
- <cd:parameter name="time">
- <cd:inherit name="currenttime"/>
- </cd:parameter>
<cd:parameter name="patterns">
<cd:constant type="cd:file"/>
</cd:parameter>
@@ -18788,7 +18385,6 @@
</cd:parameter>
<cd:parameter name="font">
<cd:constant type="auto"/>
- <cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="bidi">
<cd:constant type="left"/>
@@ -18921,13 +18517,6 @@
</cd:keywords>
</cd:arguments>
</cd:command>
- <cd:command category="language" file="lang-ini.mkiv" level="document" name="language" type="environment">
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:language"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
<cd:command category="language" file="lang-ini.mkiv" level="style" name="mainlanguage">
<cd:arguments>
<cd:keywords>
@@ -19531,7 +19120,6 @@
</cd:parameter>
<cd:parameter name="cropoffset">
<cd:constant type="cd:dimension"/>
- <cd:constant type="auto"/>
</cd:parameter>
<cd:parameter name="trimoffset">
<cd:constant type="cd:dimension"/>
@@ -19725,7 +19313,7 @@
</cd:command>
<cd:command category="layout" file="page-run.mkiv" level="document" name="showmargins"/>
<cd:command category="layout" file="page-spr.mkiv" level="document" name="spread" type="environment"/>
- <cd:command category="layout conditional" file="page-ini.mkiv" level="system" name="doifelsetopofpage">
+ <cd:command category="layout conditional" file="page-lay.mkiv" level="system" name="doifelsetopofpage">
<cd:arguments>
<cd:keywords delimiters="braces">
<cd:constant type="cd:true"/>
@@ -19735,7 +19323,7 @@
</cd:keywords>
</cd:arguments>
</cd:command>
- <cd:command category="layout conditional" file="page-ini.mkiv" level="system" name="doiftopofpageelse">
+ <cd:command category="layout conditional" file="page-lay.mkiv" level="system" name="doiftopofpageelse">
<cd:arguments>
<cd:keywords delimiters="braces">
<cd:constant type="cd:true"/>
@@ -19746,107 +19334,6 @@
</cd:arguments>
</cd:command>
</cd:interface>
- <cd:interface file="i-linefiller.xml">
- <cd:command category="rules metapost" file="node-rul.mkiv" level="style" name="definelinefiller">
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes" optional="yes">
- <cd:inherit name="setuplinefiller"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
- <cd:command category="rules metapost" file="node-rul.mkiv" level="style" name="setuplinefiller">
- <cd:arguments>
- <cd:keywords list="yes" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="location">
- <cd:constant type="left"/>
- <cd:constant type="right"/>
- <cd:constant default="yes" type="both"/>
- </cd:parameter>
- <cd:parameter name="scope">
- <cd:constant type="left"/>
- <cd:constant type="right"/>
- <cd:constant default="yes" type="local"/>
- <cd:constant type="global"/>
- </cd:parameter>
- <cd:parameter name="color">
- <cd:constant type="cd:color"/>
- </cd:parameter>
- <cd:parameter name="height">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="depth">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="threshold">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rulethickness">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="textstyle">
- <cd:constant type="cd:style"/>
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="textcolor">
- <cd:constant type="cd:color"/>
- </cd:parameter>
- <cd:parameter name="align">
- <cd:inherit name="setupalign"/>
- </cd:parameter>
- <cd:parameter name="mp">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="before">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="after">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
- <cd:command category="rules metapost" file="node-rul.mkiv" level="style" name="setuplinefillers">
- <cd:arguments>
- <cd:keywords list="yes" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="setuplinefiller"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
- <cd:command category="rules metapost" file="node-rul.mkiv" level="style" name="linefiller" type="environment">
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="filler"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes" optional="yes">
- <cd:inherit name="setuplinefiller"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
- <cd:command category="rules metapost" file="node-rul.mkiv" level="style" name="setlinefiller">
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="filler"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
- </cd:interface>
<cd:interface file="i-linenumber.xml">
<cd:command category="structure" file="page-lin.mkvi" level="style" name="definelinenumbering">
<cd:arguments>
@@ -20338,6 +19825,7 @@
<cd:parameter name="width">
<cd:constant type="fit"/>
<cd:constant type="broad"/>
+ <cd:constant type="auto"/>
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="height">
@@ -20534,7 +20022,6 @@
<cd:constant method="range" prefix="cd:section" type="cd:section"/>
<cd:constant method="range" prefix="cd:section" type="*"/>
<cd:constant method="range" prefix="cd:section" type="all"/>
- <cd:constant type="current"/>
</cd:parameter>
<cd:parameter name="pageprefixconnector">
<cd:constant type="cd:command"/>
@@ -20665,7 +20152,7 @@
<cd:constant type="cd:list"/>
</cd:keywords>
<cd:assignments list="yes" optional="yes">
- <cd:inherit name="setupcombinedlist"/>
+ <cd:inherit name="setuplist"/>
</cd:assignments>
</cd:arguments>
</cd:command>
@@ -20675,55 +20162,7 @@
<cd:constant type="cd:list"/>
</cd:keywords>
<cd:assignments list="yes">
- <cd:parameter name="criterium">
- <cd:constant default="yes" type="local"/>
- <cd:constant type="intro"/>
- <cd:constant type="reference"/>
- <cd:constant method="range" prefix="cd:sectionblock" type="reference"/>
- <cd:constant type="all"/>
- <cd:constant method="range" prefix="cd:sectionblock" type="all"/>
- <cd:constant type="text"/>
- <cd:constant method="range" prefix="cd:sectionblock" type="text"/>
- <cd:constant type="current"/>
- <cd:constant method="range" prefix="cd:sectionblock" type="current"/>
- <cd:constant type="here"/>
- <cd:constant type="previous"/>
- <cd:constant method="range" prefix="cd:sectionblock" type="previous"/>
- <cd:constant type="component"/>
- <cd:constant type="cd:section"/>
- <cd:constant method="range" prefix="cd:sectionblock" type="cd:section"/>
- </cd:parameter>
- <cd:parameter name="reference">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="extras">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="order">
- <cd:constant type="command"/>
- <cd:constant type="all"/>
- <cd:constant type="title"/>
- </cd:parameter>
- <cd:parameter name="alternative">
- <cd:constant type="a"/>
- <cd:constant default="yes" type="b"/>
- <cd:constant type="c"/>
- <cd:constant type="d"/>
- <cd:constant type="e"/>
- <cd:constant type="f"/>
- <cd:constant type="g"/>
- <cd:constant type="left"/>
- <cd:constant type="right"/>
- <cd:constant type="top"/>
- <cd:constant type="bottom"/>
- <cd:constant type="command"/>
- <cd:constant type="none"/>
- <cd:constant type="interactive"/>
- <cd:constant type="paragraph"/>
- <cd:constant type="horizontal"/>
- <cd:constant type="vertical"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
+ <cd:inherit name="setuplist"/>
</cd:assignments>
</cd:arguments>
</cd:command>
@@ -20733,7 +20172,7 @@
<cd:constant type="cd:list"/>
</cd:keywords>
<cd:assignments list="yes" optional="yes">
- <cd:inherit name="setupcombinedlist"/>
+ <cd:inherit name="setuplist"/>
</cd:assignments>
</cd:arguments>
</cd:command>
@@ -20744,7 +20183,7 @@
</cd:sequence>
<cd:arguments>
<cd:assignments list="yes">
- <cd:inherit name="setupcombinedlist"/>
+ <cd:inherit name="setuplist"/>
</cd:assignments>
</cd:arguments>
<cd:instances>
@@ -20758,7 +20197,7 @@
</cd:sequence>
<cd:arguments>
<cd:assignments list="yes" optional="yes">
- <cd:inherit name="setupcombinedlist"/>
+ <cd:inherit name="setuplist"/>
</cd:assignments>
</cd:arguments>
<cd:instances>
@@ -20772,7 +20211,7 @@
</cd:sequence>
<cd:arguments>
<cd:assignments list="yes" optional="yes">
- <cd:inherit name="setupcombinedlist"/>
+ <cd:inherit name="setuplist"/>
</cd:assignments>
</cd:arguments>
<cd:instances>
@@ -22178,7 +21617,6 @@
<cd:parameter name="align">
<cd:constant default="yes" type="l2r"/>
<cd:constant type="r2l"/>
- <cd:constant type="righttoleft"/>
</cd:parameter>
<cd:parameter name="bidi">
<cd:constant type="yes"/>
@@ -22254,17 +21692,6 @@
<cd:parameter name="ampersand">
<cd:constant type="normal"/>
</cd:parameter>
- <cd:parameter name="collapsing">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant default="yes" type="3"/>
- <cd:constant type="none"/>
- <cd:constant type="reset"/>
- </cd:parameter>
- <cd:parameter name="kernpairs">
- <cd:constant type="yes"/>
- <cd:constant default="yes" type="no"/>
- </cd:parameter>
</cd:assignments>
</cd:arguments>
</cd:command>
@@ -22875,9 +22302,6 @@
<cd:parameter name="method">
<cd:constant type="auto"/>
</cd:parameter>
- <cd:parameter name="size">
- <cd:constant type="cd:number"/>
- </cd:parameter>
<cd:parameter name="factor">
<cd:constant type="none"/>
<cd:constant type="auto"/>
@@ -23134,14 +22558,6 @@
<cd:constant value="mathmatrix"/>
</cd:instances>
</cd:command>
- <cd:command category="mathematics tables" file="math-ali.mkiv" generated="yes" level="document" name="mathmatrix">
- <cd:sequence>
- <cd:variable value="mathmatrix"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
- </cd:command>
<cd:command category="mathematics tables" file="math-ali.mkiv" level="document" name="matrices" type="environment">
<cd:arguments>
<cd:assignments list="yes" optional="yes">
@@ -25391,10 +24807,6 @@
<cd:parameter name="headcolor">
<cd:constant type="cd:color"/>
</cd:parameter>
- <cd:parameter name="aligntitle">
- <cd:constant default="yes" type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
<cd:inherit name="setupcounter"/>
</cd:assignments>
</cd:arguments>
@@ -25753,7 +25165,6 @@
</cd:command>
<cd:command category="structure notes" file="strc-not.mkvi" level="style" name="postponenotes"/>
<cd:command category="structure notes" file="strc-not.mkvi" level="style" name="flushnotes"/>
- <cd:command category="structure notes" file="strc-not.mkvi" name="postponingnotes" type="environment"/>
<cd:command category="structure notes conditional" file="strc-not.mkvi" level="system" name="doifelsenoteonsamepage">
<cd:arguments>
<cd:keywords delimiters="braces">
@@ -26641,81 +26052,6 @@
</cd:arguments>
</cd:command>
</cd:interface>
- <cd:interface file="i-pagecolumns.xml">
- <cd:command category="structure layout" file="page-pcl.mkiv" level="style" name="definepagecolumns">
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes" optional="yes">
- <cd:inherit name="setuppagecolumns"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
- <cd:command category="structure layout" file="page-pcl.mkiv" level="style" name="setuppagecolumns">
- <cd:arguments>
- <cd:keywords list="yes" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="separator">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="direction">
- <cd:constant default="yes" type="normal"/>
- <cd:constant type="reverse"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="maxwidth">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="align">
- <cd:inherit name="setupalign"/>
- </cd:parameter>
- <cd:parameter name="blank">
- <cd:inherit name="blank"/>
- </cd:parameter>
- <cd:parameter name="color">
- <cd:constant type="cd:color"/>
- </cd:parameter>
- <cd:parameter name="setups">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="page">
- <cd:inherit name="page"/>
- </cd:parameter>
- <cd:inherit name="setupframed"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
- <cd:command category="structure layout" file="page-pcl.mkiv" level="document" name="pagecolumns" type="environment" variant="name">
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
- <cd:command category="structure layout" file="page-pcl.mkiv" level="document" name="pagecolumns" type="environment">
- <cd:arguments>
- <cd:assignments list="yes" optional="yes">
- <cd:inherit name="setuppagecolumns"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
- <cd:command category="structure layout" file="page-pcl.mkiv" generated="yes" level="document" name="pagecolumns" type="environment" variant="instance">
- <cd:sequence>
- <cd:instance value="pagecolumns"/>
- </cd:sequence>
- </cd:command>
- </cd:interface>
<cd:interface file="i-pagecomment.xml">
<cd:command category="pdf" file="page-com.mkiv" level="style" name="setuppagecomment">
<cd:arguments>
@@ -26782,7 +26118,7 @@
</cd:command>
</cd:interface>
<cd:interface file="i-pagegrid.xml">
- <cd:command category="layout" file="page-cst.mkiv" level="style" name="definecolumnset">
+ <cd:command category="layout" file="page-cst.mkiv" level="style" name="definepagegrid">
<cd:arguments>
<cd:keywords>
<cd:constant type="cd:name"/>
@@ -26791,15 +26127,14 @@
<cd:constant type="cd:name"/>
</cd:keywords>
<cd:assignments list="yes" optional="yes">
- <cd:inherit name="setupcolumnset"/>
+ <cd:inherit name="setuppagegrid"/>
</cd:assignments>
</cd:arguments>
</cd:command>
- <cd:command category="layout" file="page-cst.mkiv" level="style" name="setupcolumnset">
+ <cd:command category="layout" file="page-cst.mkiv" level="style" name="setuppagegrid">
<cd:arguments>
<cd:keywords list="yes" optional="yes">
<cd:constant type="cd:name"/>
- <cd:constant method="range" prefix="cd:name" type="cd:number"/>
</cd:keywords>
<cd:assignments list="yes">
<cd:parameter name="n">
@@ -26838,27 +26173,43 @@
</cd:assignments>
</cd:arguments>
</cd:command>
- <cd:command category="layout" file="page-cst.mkiv" generated="yes" level="document" name="columnset" type="environment" variant="example">
+ <cd:command category="layout" file="page-cst.mkiv" generated="yes" level="document" name="pagegrid" type="environment" variant="example">
<cd:sequence>
- <cd:variable value="columnset"/>
+ <cd:variable value="pagegrid"/>
</cd:sequence>
<cd:arguments>
<cd:assignments list="yes" optional="yes">
- <cd:inherit name="setupcolumnset"/>
+ <cd:inherit name="setuppagegrid"/>
</cd:assignments>
</cd:arguments>
</cd:command>
- <cd:command category="layout" file="page-cst.mkiv" level="document" name="columnset" type="environment">
+ <cd:command category="layout" file="page-cst.mkiv" level="document" name="pagegrid" type="environment">
<cd:arguments>
<cd:keywords optional="yes">
<cd:constant type="cd:name"/>
</cd:keywords>
<cd:assignments list="yes" optional="yes">
- <cd:inherit name="setupcolumnset"/>
+ <cd:inherit name="setuppagegrid"/>
</cd:assignments>
</cd:arguments>
</cd:command>
- <cd:command category="layout" file="page-cst.mkiv" level="style" name="definecolumnsetspan">
+ <cd:command category="layout" file="page-cst.mkiv" level="document" name="setpagegrid">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="c">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="r">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant default="yes" type="none"/>
+ </cd:parameter>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+ <cd:command category="layout" file="page-cst.mkiv" level="style" name="definepagegridspan">
<cd:arguments>
<cd:keywords>
<cd:constant type="cd:name"/>
@@ -26867,11 +26218,11 @@
<cd:constant type="cd:name"/>
</cd:keywords>
<cd:assignments list="yes" optional="yes">
- <cd:inherit name="setupcolumnsetspan"/>
+ <cd:inherit name="setuppagegridspan"/>
</cd:assignments>
</cd:arguments>
</cd:command>
- <cd:command category="layout" file="page-cst.mkiv" level="style" name="setupcolumnsetspan">
+ <cd:command category="layout" file="page-cst.mkiv" level="style" name="setuppagegridspan">
<cd:arguments>
<cd:keywords list="yes" optional="yes">
<cd:constant type="cd:name"/>
@@ -26897,24 +26248,24 @@
</cd:assignments>
</cd:arguments>
</cd:command>
- <cd:command category="layout" file="page-cst.mkiv" level="document" name="columnsetspan" type="environment">
+ <cd:command category="layout" file="page-cst.mkiv" level="document" name="pagegridspan" type="environment">
<cd:arguments>
<cd:keywords>
<cd:constant type="cd:name"/>
</cd:keywords>
<cd:assignments list="yes" optional="yes">
- <cd:inherit name="setupcolumnsetspan"/>
+ <cd:inherit name="setuppagegridspan"/>
</cd:assignments>
</cd:arguments>
</cd:command>
- <cd:command category="layout" file="page-cst.mkiv" level="style" name="columnsetspanwidth">
+ <cd:command category="layout" file="page-cst.mkiv" level="style" name="pagegridspanwidth">
<cd:arguments>
<cd:keywords delimiters="braces">
<cd:constant type="cd:number"/>
</cd:keywords>
</cd:arguments>
</cd:command>
- <cd:command category="layout" file="page-cst.mkiv" level="style" name="definecolumnsetarea">
+ <cd:command category="layout" file="page-cst.mkiv" level="style" name="definepagegridarea">
<cd:arguments>
<cd:keywords>
<cd:constant type="cd:name"/>
@@ -26923,11 +26274,11 @@
<cd:constant type="cd:name"/>
</cd:keywords>
<cd:assignments list="yes" optional="yes">
- <cd:inherit name="setupcolumnsetarea"/>
+ <cd:inherit name="setuppagegridarea"/>
</cd:assignments>
</cd:arguments>
</cd:command>
- <cd:command category="layout" file="page-cst.mkiv" level="style" name="setupcolumnsetarea">
+ <cd:command category="layout" file="page-cst.mkiv" level="style" name="setuppagegridarea">
<cd:arguments>
<cd:keywords list="yes" optional="yes">
<cd:constant type="cd:name"/>
@@ -26967,7 +26318,7 @@
</cd:assignments>
</cd:arguments>
</cd:command>
- <cd:command category="layout" file="page-cst.mkiv" level="style" name="setupcolumnsetareatext">
+ <cd:command category="layout" file="page-cst.mkiv" level="style" name="setuppagegridareatext">
<cd:arguments>
<cd:keywords>
<cd:constant type="cd:name"/>
@@ -26977,7 +26328,7 @@
</cd:keywords>
</cd:arguments>
</cd:command>
- <cd:command category="layout" file="page-cst.mkiv" level="style" name="setupcolumnsetlines">
+ <cd:command category="layout" file="page-cst.mkiv" level="style" name="setuppagegridlines">
<cd:arguments>
<cd:keywords>
<cd:constant type="cd:name"/>
@@ -26993,7 +26344,7 @@
</cd:keywords>
</cd:arguments>
</cd:command>
- <cd:command category="layout" file="page-cst.mkiv" level="style" name="setupcolumnsetstart">
+ <cd:command category="layout" file="page-cst.mkiv" level="style" name="setuppagegridstart">
<cd:arguments>
<cd:keywords>
<cd:constant type="cd:name"/>
@@ -27489,18 +26840,6 @@
</cd:command>
</cd:interface>
<cd:interface file="i-pagestate.xml">
- <cd:command file="spac-pag.mkiv" level="system" name="signalrightpage"/>
- <cd:command file="spac-pag.mkiv" level="system" name="doifelserightpage">
- <cd:arguments>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:true"/>
- </cd:keywords>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:false"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
- <cd:command file="spac-pag.mkiv" level="system" name="rightpageorder"/>
<cd:command file="core-dat.mkiv" level="system" name="definepagestate">
<cd:arguments>
<cd:keywords>
@@ -27560,65 +26899,19 @@
</cd:keywords>
</cd:arguments>
</cd:command>
- <cd:command file="core-dat.mkiv" level="system" name="pagestaterealpageorder">
- <cd:arguments>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:name"/>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
- <cd:command file="core-dat.mkiv" level="system" name="autopagestaterealpage">
- <cd:arguments>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
- <cd:command file="core-dat.mkiv" level="system" name="setautopagestaterealpageno">
- <cd:arguments>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
- <cd:command file="core-dat.mkiv" level="system" name="autopagestaterealpageorder">
- <cd:arguments>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
</cd:interface>
<cd:interface file="i-pagemarks.xml">
- <cd:command file="page-ini.mkiv" level="style" name="markpage">
+ <cd:command file="page-lay.mkiv" level="style" name="markpage">
<cd:arguments>
<cd:keywords>
<cd:constant type="cd:name"/>
</cd:keywords>
- <cd:keywords list="yes" optional="yes">
+ <cd:keywords optional="yes">
<cd:constant method="none" prefix="cd:sign" type="cd:number"/>
</cd:keywords>
</cd:arguments>
</cd:command>
- <cd:command file="page-ini.mkiv" level="style" name="markedpages">
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
- <cd:command file="page-ini.mkiv" level="style" name="markpages" type="environment">
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
- <cd:command category="conditional" file="page-ini.mkiv" level="style" name="doifelsemarkedpage">
+ <cd:command category="conditional" file="page-lay.mkiv" level="style" name="doifelsemarkedpage">
<cd:arguments>
<cd:keywords delimiters="braces">
<cd:constant type="cd:name"/>
@@ -33362,7 +32655,6 @@
<cd:constant method="range" prefix="cd:section" type="cd:section"/>
<cd:constant method="range" prefix="cd:section" type="*"/>
<cd:constant method="range" prefix="cd:section" type="all"/>
- <cd:constant type="current"/>
</cd:parameter>
<cd:parameter name="numberconversion">
<cd:constant type="cd:name"/>
@@ -33539,10 +32831,6 @@
<cd:constant type="all"/>
<cd:constant type="packed"/>
</cd:parameter>
- <cd:parameter name="check">
- <cd:constant default="yes" type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
<cd:parameter name="criterium">
<cd:constant type="local"/>
<cd:constant type="text"/>
@@ -33577,7 +32865,6 @@
<cd:constant method="range" prefix="cd:section" type="cd:section"/>
<cd:constant method="range" prefix="cd:section" type="*"/>
<cd:constant method="range" prefix="cd:section" type="all"/>
- <cd:constant type="current"/>
</cd:parameter>
<cd:parameter name="pageprefixconnector">
<cd:constant type="cd:command"/>
@@ -33683,12 +32970,6 @@
<cd:parameter name="pagecolor">
<cd:constant type="cd:color"/>
</cd:parameter>
- <cd:parameter name="pageleft">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="pageright">
- <cd:constant type="cd:command"/>
- </cd:parameter>
<cd:parameter name="n">
<cd:constant type="cd:number"/>
</cd:parameter>
@@ -33753,10 +33034,6 @@
<cd:constant default="yes" type="no"/>
<cd:constant type="all"/>
</cd:parameter>
- <cd:parameter name="check">
- <cd:constant default="yes" type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
<cd:parameter name="criterium">
<cd:constant type="local"/>
<cd:constant type="text"/>
@@ -33791,7 +33068,6 @@
<cd:constant method="range" prefix="cd:section" type="cd:section"/>
<cd:constant method="range" prefix="cd:section" type="*"/>
<cd:constant method="range" prefix="cd:section" type="all"/>
- <cd:constant type="current"/>
</cd:parameter>
<cd:parameter name="pageprefixconnector">
<cd:constant type="cd:command"/>
@@ -33897,12 +33173,6 @@
<cd:parameter name="pagecolor">
<cd:constant type="cd:color"/>
</cd:parameter>
- <cd:parameter name="pageleft">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="pageright">
- <cd:constant type="cd:command"/>
- </cd:parameter>
<cd:parameter name="n">
<cd:constant type="cd:number"/>
</cd:parameter>
@@ -34470,89 +33740,6 @@
</cd:arguments>
</cd:command>
</cd:interface>
- <cd:interface file="i-ruby.xml">
- <cd:command category="fonts" file="typo-rub.mkiv" level="style" name="defineruby">
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes" optional="yes">
- <cd:inherit name="setupruby"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
- <cd:command category="fonts" file="typo-rub.mkiv" level="style" name="setupruby">
- <cd:arguments>
- <cd:keywords list="yes" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="location">
- <cd:constant default="yes" type="top"/>
- <cd:constant type="left"/>
- <cd:constant type="right"/>
- <cd:constant type="none"/>
- </cd:parameter>
- <cd:parameter name="align">
- <cd:constant type="auto"/>
- <cd:constant type="flushleft"/>
- <cd:constant default="yes" type="middle"/>
- <cd:constant type="flushright"/>
- </cd:parameter>
- <cd:parameter name="stretch">
- <cd:constant type="yes"/>
- <cd:constant default="yes" type="no"/>
- </cd:parameter>
- <cd:parameter name="hoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="voffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="none"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="left">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="right">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:constant type="cd:style"/>
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="color">
- <cd:constant type="cd:color"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
- <cd:command category="fonts" file="typo-rub.mkiv" level="document" name="ruby">
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
- <cd:command category="fonts" file="typo-rub.mkiv" level="document" name="ruby" type="environment">
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
- </cd:interface>
<cd:interface file="i-scale.xml">
<cd:command category="graphics" file="grph-trf.mkiv" level="style" name="definescale">
<cd:arguments>
@@ -34599,7 +33786,6 @@
<cd:constant type="fit"/>
<cd:constant type="broad"/>
<cd:constant type="max"/>
- <cd:constant type="min"/>
<cd:constant type="auto"/>
<cd:constant type="default"/>
</cd:parameter>
@@ -34607,7 +33793,6 @@
<cd:constant type="fit"/>
<cd:constant type="broad"/>
<cd:constant type="max"/>
- <cd:constant type="min"/>
<cd:constant type="auto"/>
<cd:constant type="default"/>
</cd:parameter>
@@ -34615,7 +33800,6 @@
<cd:constant type="fit"/>
<cd:constant type="broad"/>
<cd:constant type="max"/>
- <cd:constant type="min"/>
<cd:constant type="auto"/>
<cd:constant type="default"/>
</cd:parameter>
@@ -34741,32 +33925,6 @@
</cd:keywords>
</cd:arguments>
</cd:command>
- <cd:command category="language" file="scrp-ini.mkvi" level="style" name="setlocalscript">
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="hangul"/>
- <cd:constant type="hanzi"/>
- <cd:constant type="nihongo"/>
- <cd:constant type="ethiopic"/>
- <cd:constant type="thai"/>
- <cd:constant type="test"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
- <cd:command category="language" file="scrp-ini.mkvi" level="style" name="setglobalscript">
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="hangul"/>
- <cd:constant type="hanzi"/>
- <cd:constant type="nihongo"/>
- <cd:constant type="ethiopic"/>
- <cd:constant type="thai"/>
- <cd:constant type="test"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
<cd:command category="language" file="scrp-ini.mkvi" level="system" name="resetscript"/>
<cd:command category="language" file="scrp-ini.mkvi" name="script" type="environment">
<cd:arguments>
@@ -34868,7 +34026,6 @@
<cd:constant method="range" prefix="cd:section" type="cd:section"/>
<cd:constant method="range" prefix="cd:section" type="*"/>
<cd:constant method="range" prefix="cd:section" type="all"/>
- <cd:constant type="current"/>
</cd:parameter>
<cd:parameter name="referenceprefix">
<cd:constant type="+"/>
@@ -35771,16 +34928,6 @@
</cd:keywords>
</cd:arguments>
</cd:command>
- <cd:command file="core-env.mkiv" level="system" name="copysetups">
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
<cd:command file="core-env.mkiv" level="system" name="showsetupsdefinition">
<cd:arguments>
<cd:keywords>
@@ -36541,7 +35688,10 @@
<cd:variable value="startstop"/>
</cd:sequence>
</cd:command>
- <cd:command category="structure" file="core-sys.mkiv" level="document" name="" type="environment">
+ <cd:command category="structure" file="core-sys.mkiv" level="document" name="startstop" type="environment">
+ <cd:sequence>
+ <cd:string value="​"/>
+ </cd:sequence>
<cd:arguments>
<cd:keywords optional="yes">
<cd:constant type="cd:name"/>
@@ -36757,7 +35907,6 @@
</cd:arguments>
</cd:command>
<cd:command file="spac-ver.mkiv" level="system" name="setfontstrut"/>
- <cd:command file="spac-ver.mkiv" level="system" name="settightstrut"/>
<cd:command file="spac-ver.mkiv" level="system" name="setcapstrut"/>
<cd:command file="spac-ver.mkiv" level="system" name="setnostrut"/>
<cd:command file="spac-ver.mkiv" level="document" name="showstruts"/>
@@ -36935,11 +36084,6 @@
<cd:keywords>
<cd:constant type="cd:name"/>
</cd:keywords>
- <cd:assignments list="yes" optional="yes">
- <cd:parameter name="font">
- <cd:constant type="cd:font"/>
- </cd:parameter>
- </cd:assignments>
</cd:arguments>
</cd:command>
<cd:command category="symbols" file="symb-ini.mkiv" level="style" name="setupsymbolset">
@@ -38575,13 +37719,6 @@
</cd:keywords>
</cd:arguments>
</cd:command>
- <cd:command file="syst-aux.mkiv" level="system" name="firstinlist">
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:command"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
<cd:command file="syst-aux.mkiv" level="system" name="dogetcommacommandelement">
<cd:arguments>
<cd:keywords delimiters="none">
@@ -39516,7 +38653,7 @@
</cd:command>
<cd:command file="syst-aux.mkiv" level="system" name="increment" variant="argument">
<cd:arguments>
- <cd:keywords delimiters="parenthesis" list="yes">
+ <cd:keywords delimiters="parentheses" list="yes">
<cd:constant type="cd:csname"/>
<cd:constant type="cd:number"/>
</cd:keywords>
@@ -39529,7 +38666,7 @@
</cd:command>
<cd:command file="syst-aux.mkiv" level="system" name="decrement" variant="argument">
<cd:arguments>
- <cd:keywords delimiters="parenthesis" list="yes">
+ <cd:keywords delimiters="parentheses" list="yes">
<cd:constant type="cd:csname"/>
<cd:constant type="cd:number"/>
</cd:keywords>
@@ -39733,24 +38870,6 @@
<cd:delimiter name="fi"/>
</cd:arguments>
</cd:command>
- <cd:command file="syst-aux.mkiv" level="system" name="doifelseassignmentcs">
- <cd:arguments>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:csname/>
- <cd:csname/>
- </cd:arguments>
- </cd:command>
- <cd:command file="syst-aux.mkiv" level="system" name="doifassignmentelsecs">
- <cd:arguments>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:csname/>
- <cd:csname/>
- </cd:arguments>
- </cd:command>
<cd:command file="syst-aux.mkiv" level="system" name="convertargument">
<cd:arguments>
<cd:keywords delimiters="none">
@@ -41993,36 +41112,6 @@
</cd:keywords>
</cd:arguments>
</cd:command>
- <cd:command file="syst-lua.mkiv" level="system" name="expandeddoif">
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:true"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
- <cd:command file="syst-lua.mkiv" level="system" name="expandeddoifnot">
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:true"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
- <cd:command file="syst-lua.mkiv" level="system" name="expandeddoifelse">
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:true"/>
- </cd:keywords>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:false"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
<cd:command file="syst-lua.mkiv" level="system" name="expdoifelsecommon">
<cd:arguments>
<cd:keywords delimiters="braces" list="yes">
@@ -42302,74 +41391,6 @@
<cd:constant type="grid"/>
<cd:constant type="cd:dimension"/>
</cd:parameter>
- <cd:parameter name="blank">
- <cd:constant type="preference"/>
- <cd:constant type="samepage"/>
- <cd:constant type="max"/>
- <cd:constant type="force"/>
- <cd:constant type="enable"/>
- <cd:constant type="disable"/>
- <cd:constant type="nowhite"/>
- <cd:constant type="packed"/>
- <cd:constant type="back"/>
- <cd:constant type="overlay"/>
- <cd:constant type="always"/>
- <cd:constant type="weak"/>
- <cd:constant type="strong"/>
- <cd:constant type="default"/>
- <cd:constant type="before"/>
- <cd:constant type="inbetween"/>
- <cd:constant type="after"/>
- <cd:constant type="fixed"/>
- <cd:constant type="flexible"/>
- <cd:constant type="none"/>
- <cd:constant type="small"/>
- <cd:constant type="medium"/>
- <cd:constant type="big"/>
- <cd:constant type="line"/>
- <cd:constant type="halfline"/>
- <cd:constant type="quarterline"/>
- <cd:constant type="formula"/>
- <cd:constant type="white"/>
- <cd:constant type="height"/>
- <cd:constant type="depth"/>
- <cd:constant type="standard"/>
- <cd:constant method="factor" prefix="cd:number" type="small"/>
- <cd:constant method="factor" prefix="cd:number" type="medium"/>
- <cd:constant method="factor" prefix="cd:number" type="big"/>
- <cd:constant method="factor" prefix="cd:number" type="line"/>
- <cd:constant method="factor" prefix="cd:number" type="halfline"/>
- <cd:constant method="factor" prefix="cd:number" type="quarterline"/>
- <cd:constant method="factor" prefix="cd:number" type="formula"/>
- <cd:constant method="factor" prefix="cd:number" type="white"/>
- <cd:constant method="factor" prefix="cd:number" type="height"/>
- <cd:constant method="factor" prefix="cd:number" type="depth"/>
- <cd:constant method="range" prefix="category" type="cd:number"/>
- <cd:constant method="range" prefix="order" type="cd:number"/>
- <cd:constant method="range" prefix="penalty" type="cd:number"/>
- <cd:constant type="cd:dimension"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="headstyle">
- <cd:constant type="cd:style"/>
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="headcolor">
- <cd:constant type="cd:color"/>
- </cd:parameter>
- <cd:parameter name="background">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="backgroundcolor">
- <cd:constant type="cd:color"/>
- </cd:parameter>
- <cd:parameter name="foregroundstyle">
- <cd:constant type="cd:style"/>
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="foregroundcolor">
- <cd:constant type="cd:color"/>
- </cd:parameter>
<cd:parameter name="align">
<cd:constant type="left"/>
<cd:constant type="middle"/>
@@ -42535,7 +41556,7 @@
</cd:keywords>
</cd:arguments>
</cd:command>
- <cd:command category="xml" file="strc-tag.mkiv" level="document" name="element" type="environment">
+ <cd:command category="xml" file="strc-tag.mkiv" name="element" type="environment">
<cd:arguments>
<cd:keywords delimiters="braces">
<cd:constant type="cd:name"/>
@@ -42610,13 +41631,6 @@
</cd:assignments>
</cd:arguments>
</cd:command>
- <cd:command category="xml" file="strc-tag.mkiv" level="style" name="ignoretagsinexport">
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
</cd:interface>
<cd:interface file="i-textbackground.xml">
<cd:command category="background" file="anch-bck.mkiv" level="style" name="definetextbackground">
@@ -43029,7 +42043,7 @@
<cd:constant type="edge"/>
</cd:keywords>
<cd:assignments list="yes">
- <cd:inherit name="setuplayouttext"/>
+ <cd:inherit name="setuplayoutelement"/>
</cd:assignments>
</cd:arguments>
</cd:command>
@@ -43041,7 +42055,7 @@
<cd:constant type="edge"/>
</cd:keywords>
<cd:assignments list="yes">
- <cd:inherit name="setuplayouttext"/>
+ <cd:inherit name="setuplayoutelement"/>
</cd:assignments>
</cd:arguments>
</cd:command>
@@ -43053,7 +42067,7 @@
<cd:constant type="edge"/>
</cd:keywords>
<cd:assignments list="yes">
- <cd:inherit name="setuplayouttext"/>
+ <cd:inherit name="setuplayoutelement"/>
</cd:assignments>
</cd:arguments>
</cd:command>
@@ -43065,7 +42079,7 @@
<cd:constant type="edge"/>
</cd:keywords>
<cd:assignments list="yes">
- <cd:inherit name="setuplayouttext"/>
+ <cd:inherit name="setuplayoutelement"/>
</cd:assignments>
</cd:arguments>
</cd:command>
@@ -43077,7 +42091,7 @@
<cd:constant type="edge"/>
</cd:keywords>
<cd:assignments list="yes">
- <cd:inherit name="setuplayouttext"/>
+ <cd:inherit name="setuplayoutelement"/>
</cd:assignments>
</cd:arguments>
</cd:command>
@@ -43497,44 +42511,6 @@
</cd:keywords>
</cd:arguments>
</cd:command>
- <cd:command file="toks-aux.mkiv" level="style" name="definetokenlist">
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
- <cd:command file="toks-aux.mkiv" level="style" name="tokenlist" type="environment">
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
- <cd:command file="toks-aux.mkiv" level="style" name="gettokenlist">
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
- <cd:command file="toks-aux.mkiv" level="style" name="resettokenlist">
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
- <cd:command file="toks-aux.mkiv" level="style" name="settokenlist">
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
</cd:interface>
<cd:interface file="i-tolerance.xml">
<cd:command category="whitespace" file="spac-hor.mkiv" level="style" name="setuptolerance">
@@ -44264,108 +43240,6 @@
</cd:assignments>
</cd:arguments>
</cd:command>
- <cd:command category="symbols" file="core-con.mkiv" level="style" name="spaceddigitsmethod"/>
- <cd:command category="symbols" file="core-con.mkiv" level="style" name="spaceddigitssymbol"/>
- <cd:command category="symbols" file="core-con.mkiv" level="style" name="spaceddigitsseparator"/>
- <cd:command category="symbols" file="core-con.mkiv" level="document" name="spaceddigits">
- <cd:arguments>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
- </cd:interface>
- <cd:interface file="i-userdata.xml">
- <cd:command category="structure" file="strc-usr.mkiv" level="style" name="defineuserdata">
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes" optional="yes">
- <cd:inherit name="setupuserdata"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
- <cd:command category="structure" file="strc-usr.mkiv" level="style" name="setupuserdata">
- <cd:arguments>
- <cd:keywords list="yes" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="before">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="after">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="align">
- <cd:inherit name="setupalign"/>
- </cd:parameter>
- <cd:parameter name="setups">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:constant type="cd:style"/>
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="color">
- <cd:constant type="cd:color"/>
- </cd:parameter>
- <cd:parameter name="alternative">
- <cd:constant type="default"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="cd:key">
- <cd:constant type="cd:value"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
- <cd:command category="structure" file="strc-usr.mkiv" level="document" name="userdata" type="environment">
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes" optional="yes">
- <cd:parameter name="cd:key">
- <cd:constant type="cd:value"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
- <cd:command category="structure" file="strc-usr.mkiv" level="style" name="defineuserdataalternative">
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes" optional="yes">
- <cd:inherit name="setupuserdataalternative"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
- <cd:command category="structure" file="strc-usr.mkiv" level="style" name="setupuserdataalternative">
- <cd:arguments>
- <cd:keywords list="yes" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="renderingsetup">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="cd:key">
- <cd:constant type="cd:value"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
- <cd:command category="structure" file="strc-usr.mkiv" level="style" name="getuserdata"/>
- <cd:command category="structure" file="strc-usr.mkiv" level="style" name="getinlineuserdata"/>
</cd:interface>
<cd:interface file="i-variables.xml">
<cd:command file="core-env.mkiv" level="style" name="setvariables">
@@ -45232,7 +44106,7 @@
</cd:keywords>
</cd:arguments>
</cd:command>
- <cd:command category="verbatim conditional" file="buff-ver.mkiv" level="system" name="doifelsetypingfile">
+ <cd:command category="verbatim" file="buff-ver.mkiv" level="system conditional" name="doifelsetypingfile">
<cd:arguments>
<cd:keywords delimiters="braces">
<cd:constant type="cd:file"/>
@@ -45245,7 +44119,7 @@
</cd:keywords>
</cd:arguments>
</cd:command>
- <cd:command category="verbatim conditional" file="buff-ver.mkiv" level="system" name="doiftypingfileelse">
+ <cd:command category="verbatim" file="buff-ver.mkiv" level="system conditional" name="doiftypingfileelse">
<cd:arguments>
<cd:keywords delimiters="braces">
<cd:constant type="cd:file"/>
@@ -45545,19 +44419,19 @@
<cd:arguments>
<cd:keywords optional="yes">
<cd:constant default="yes" type="makeup"/>
- <cd:constant type="reset"/>
- <cd:constant type="boxes"/>
<cd:constant type="all"/>
+ <cd:constant type="boxes"/>
+ <cd:constant type="line"/>
+ <cd:constant type="glyph"/>
+ <cd:constant type="fontkern"/>
<cd:constant type="hbox"/>
<cd:constant type="vbox"/>
<cd:constant type="vtop"/>
<cd:constant type="kern"/>
<cd:constant type="glue"/>
<cd:constant type="penalty"/>
- <cd:constant type="fontkern"/>
<cd:constant type="strut"/>
<cd:constant type="whatsit"/>
- <cd:constant type="glyph"/>
<cd:constant type="simple"/>
<cd:constant type="simplehbox"/>
<cd:constant type="simplevbox"/>
@@ -45566,11 +44440,7 @@
<cd:constant type="math"/>
<cd:constant type="italic"/>
<cd:constant type="origin"/>
- <cd:constant type="discretionary"/>
- <cd:constant type="expansion"/>
- <cd:constant type="line"/>
- <cd:constant type="space"/>
- <cd:constant type="depth"/>
+ <cd:constant type="reset"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -45579,8 +44449,6 @@
<cd:command file="trc-vis.mkiv" level="document" name="showglyphs"/>
<cd:command file="trc-vis.mkiv" level="document" name="showfontkerns"/>
<cd:command file="trc-vis.mkiv" level="document" name="showfontitalics"/>
- <cd:command file="trc-vis.mkiv" level="document" name="showglyphdata"/>
- <cd:command file="trc-vis.mkiv" level="document" name="showfontexpansion"/>
<cd:command file="trc-vis.mkiv" level="system" name="setvisualizerfont">
<cd:arguments>
<cd:keywords optional="yes">
@@ -45697,7 +44565,6 @@
<cd:constant type="enable"/>
<cd:constant type="disable"/>
<cd:constant type="nowhite"/>
- <cd:constant type="packed"/>
<cd:constant type="back"/>
<cd:constant type="overlay"/>
<cd:constant type="always"/>
@@ -45786,20 +44653,6 @@
<cd:command category="whitespace" file="spac-ver.mkiv" level="system" name="smallskip"/>
<cd:command category="whitespace" file="spac-ver.mkiv" level="system" name="medskip"/>
<cd:command category="whitespace" file="spac-ver.mkiv" level="system" name="bigskip"/>
- <cd:command category="whitespace" file="spac-ver.mkiv" level="system" name="checkedblank">
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:inherit name="blank"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
- <cd:command category="whitespace" file="spac-ver.mkiv" level="system" name="prerollblank">
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:inherit name="blank"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
</cd:interface>
<cd:interface file="i-whitespace.xml">
<cd:command category="whitespace" file="spac-ver.mkiv" level="style" name="setupwhitespace">
@@ -45833,7 +44686,7 @@
</cd:keywords>
</cd:arguments>
</cd:command>
- <cd:command category="whitespace" file="spac-ver.mkiv" level="document" name="unpacked" type="environment"/>
+ <cd:command category="whitespace" file="spac-ver.mkiv" name="unpacked" type="environment"/>
<cd:command category="whitespace" file="spac-ver.mkiv" level="document" name="linecorrection" type="environment">
<cd:arguments>
<cd:keywords list="yes" optional="yes">
@@ -45842,7 +44695,7 @@
</cd:keywords>
</cd:arguments>
</cd:command>
- <cd:command category="whitespace" file="spac-ver.mkiv" level="document" name="locallinecorrection" type="environment">
+ <cd:command category="whitespace" file="spac-ver.mkiv" name="locallinecorrection" type="environment">
<cd:arguments>
<cd:keywords list="yes" optional="yes">
<cd:constant type="blank"/>
@@ -45850,7 +44703,6 @@
</cd:keywords>
</cd:arguments>
</cd:command>
- <cd:command category="alignment" file="spac-ver.mkiv" level="system" name="forgetparskip"/>
</cd:interface>
<cd:interface file="i-xml.xml">
<cd:command category="xml" file="lxml-ini.mkiv" level="style" name="xmlmain">
@@ -46819,45 +45671,6 @@
</cd:keywords>
</cd:arguments>
</cd:command>
- <cd:command category="xml" file="lxml-ini.mkiv" level="style" name="xmldoifatt">
- <cd:arguments>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:node"/>
- </cd:keywords>
- <cd:string/>
- <cd:string/>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:true"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
- <cd:command category="xml" file="lxml-ini.mkiv" level="style" name="xmldoifnotatt">
- <cd:arguments>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:node"/>
- </cd:keywords>
- <cd:string/>
- <cd:string/>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:true"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
- <cd:command category="xml" file="lxml-ini.mkiv" level="style" name="xmldoifelseatt">
- <cd:arguments>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:node"/>
- </cd:keywords>
- <cd:string/>
- <cd:string/>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:true"/>
- </cd:keywords>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:false"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
<cd:command category="xml" file="lxml-ini.mkiv" level="style" name="xmldoifselfempty">
<cd:arguments>
<cd:keywords delimiters="braces">
@@ -47244,25 +46057,6 @@
<cd:parameter name="distance">
<cd:constant type="cd:dimension"/>
</cd:parameter>
- <cd:parameter name="aligncharacter">
- <cd:constant type="yes"/>
- <cd:constant default="yes" type="no"/>
- </cd:parameter>
- <cd:parameter name="alignmentleftsample">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="alignmentrightsample">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="alignmentleftwidth">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="alignmentrightwidth">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="alignmentcharacter">
- <cd:constant type="cd:text"/>
- </cd:parameter>
<cd:inherit name="setupframed"/>
</cd:assignments>
</cd:arguments>
@@ -47322,20 +46116,6 @@
</cd:assignments>
</cd:arguments>
</cd:command>
- <cd:command category="tables" file="tabl-xtb.mkvi" level="document" name="xcolumn" type="environment">
- <cd:arguments>
- <cd:assignments list="yes" optional="yes">
- <cd:inherit name="setupxtable"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
- <cd:command category="tables" file="tabl-xtb.mkvi" level="document" name="xcolumn" type="environment" variant="name">
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
<cd:command category="tables" file="tabl-xtb.mkvi" level="document" name="xcell" type="environment">
<cd:arguments>
<cd:keywords optional="yes">
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-attribute.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-attribute.xml
index 0ea4ce7c0d5..96a680e1929 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-attribute.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-attribute.xml
@@ -30,7 +30,6 @@
<cd:constant type="global"/>
<cd:constant type="public" default="yes"/>
<cd:constant type="private"/>
- <cd:constant type="pickup"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -43,7 +42,6 @@
<cd:constant type="global"/>
<cd:constant type="public"/>
<cd:constant type="private" default="yes"/>
- <cd:constant type="pickup"/>
</cd:keywords>
</cd:arguments>
</cd:command>
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-backend.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-backend.xml
index d0bdb485346..5db77b5bdd1 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-backend.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-backend.xml
@@ -18,23 +18,23 @@
<cd:constant type="cd:file"/>
</cd:parameter>
<cd:parameter name="intent">
- <cd:constant type="Coated&blank;FOGRA39&blank;(ISO&blank;12647-2:2004)"/>
+ <cd:constant type="Coated FOGRA39 (ISO 12647-2:2004)"/>
<cd:constant type="GRACoL2006_Coated1v2.icc"/>
- <cd:constant type="ISO&blank;Coated&blank;v2&blank;300&percnt;&blank;(ECI)"/>
- <cd:constant type="ISO&blank;Coated&blank;v2&blank;(ECI)"/>
+ <cd:constant type="ISO Coated v2 300% (ECI)"/>
+ <cd:constant type="ISO Coated v2 (ECI)"/>
<cd:constant type="ISOnewspaper26v4"/>
<cd:constant type="ISOnewspaper26v4_gr"/>
- <cd:constant type="ISO&blank;Uncoated"/>
- <cd:constant type="ISO&blank;Uncoated&blank;Yellowish"/>
- <cd:constant type="ISO&blank;Web&blank;Coated"/>
- <cd:constant type="Japan&blank;Color&blank;2001&blank;Coated"/>
- <cd:constant type="Japan&blank;Color&blank;2002&blank;Newspaper"/>
- <cd:constant type="Japan&blank;Web&blank;Coated&blank;(Ad)"/>
- <cd:constant type="SNAP&blank;2007"/>
+ <cd:constant type="ISO Uncoated"/>
+ <cd:constant type="ISO Uncoated Yellowish"/>
+ <cd:constant type="ISO Web Coated"/>
+ <cd:constant type="Japan Color 2001 Coated"/>
+ <cd:constant type="Japan Color 2002 Newspaper"/>
+ <cd:constant type="Japan Web Coated (Ad)"/>
+ <cd:constant type="SNAP 2007"/>
<cd:constant type="SWOP2006_Coated3v2.icc"/>
<cd:constant type="SWOP2006_Coated5v2.icc"/>
- <cd:constant type="Uncoated&blank;FOGRA29&blank;(ISOâĢ12647-2:2004)"/>
- <cd:constant type="Web&blank;Coated&blank;FOGRA28&blank;(ISO&blank;12647-2:2004)"/>
+ <cd:constant type="Uncoated FOGRA29 (ISO 12647-2:2004)"/>
+ <cd:constant type="Web Coated FOGRA28 (ISO 12647-2:2004)"/>
<cd:constant type="PSR_LWC_PLUS_V2_PT"/>
<cd:constant type="PSR_LWC_STD_V2_PT"/>
<cd:constant type="PSR_SC_PLUS_V2_PT"/>
@@ -86,4 +86,4 @@
</cd:arguments>
</cd:command>
-</cd:interface> \ No newline at end of file
+</cd:interface>
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-block.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-block.xml
index 3416a96ee81..fa526250641 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-block.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-block.xml
@@ -24,25 +24,9 @@
<cd:parameter name="after">
<cd:constant type="cd:command"/>
</cd:parameter>
- <cd:parameter name="left">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="right">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="alternative">
- <cd:constant type="paragraph" default="yes"/>
- <cd:constant type="text"/>
- </cd:parameter>
<cd:parameter name="inner">
<cd:constant type="cd:command"/>
</cd:parameter>
- <cd:parameter name="setups">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="align">
- <cd:resolve name="value-alignsimple"/>
- </cd:parameter>
<cd:parameter name="style">
<cd:resolve name="value-style"/>
</cd:parameter>
@@ -63,7 +47,6 @@
<cd:constant type="-"/>
<cd:constant type="cd:name"/>
</cd:keywords>
- <cd:resolve name="assignment-userdata-list-optional"/>
</cd:arguments>
</cd:command>
@@ -120,10 +103,4 @@
</cd:arguments>
</cd:command>
- <cd:command name="blockuservariable" level="document" category="structure" file="strc-blk.mkiv">
- <cd:arguments>
- <cd:resolve name="argument-key"/>
- </cd:arguments>
- </cd:command>
-
-</cd:interface>
+</cd:interface> \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-boxes.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-boxes.xml
index e89be4fd06c..dd5c3052928 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-boxes.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-boxes.xml
@@ -246,19 +246,6 @@
</cd:arguments>
</cd:command>
- <cd:command name="linebox" level="system" file="supp-box.mkiv">
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="shiftbox" level="system" file="supp-box.mkiv">
- <cd:arguments>
- <cd:dimension/>
- <cd:content/>
- </cd:arguments>
- </cd:command>
-
<cd:command name="inlinedbox" level="system" file="supp-box.mkiv">
<cd:arguments>
<cd:content/>
@@ -1141,4 +1128,4 @@
</cd:arguments>
</cd:command>
-</cd:interface>
+</cd:interface> \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-buffer.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-buffer.xml
index f08cb8ca447..2ec89f57103 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-buffer.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-buffer.xml
@@ -65,10 +65,6 @@
<cd:parameter name="after">
<cd:constant type="cd:command"/>
</cd:parameter>
- <cd:parameter name="strip">
- <cd:constant type="yes" default="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
</cd:assignments>
</cd:arguments>
</cd:command>
@@ -85,7 +81,7 @@
<cd:command name="getbuffer" level="document" category="buffer" file="buff-ini.mkiv">
<cd:arguments>
- <cd:resolve name="keyword-buffer-list-optional"/>
+ <cd:resolve name="keyword-buffer-optional"/>
</cd:arguments>
</cd:command>
@@ -101,7 +97,7 @@
</cd:arguments>
</cd:command>
- <cd:command name="buffer" type="environment" generated="yes" variant="instance" category="buffer" level="document" file="buff-ini.mkiv">
+ <cd:command name="buffer" type="environment" generated="yes" variant="instance" lcategory="buffer" evel="document" file="buff-ini.mkiv">
<cd:sequence>
<cd:instance value="buffer"/>
</cd:sequence>
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-character.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-character.xml
index 61d6a32a677..c391836d5df 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-character.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-character.xml
@@ -87,12 +87,6 @@
</cd:arguments>
</cd:command>
- <cd:command name="textormathchars" level="style" category="characters fonts" file="char-ini.mkiv">
- <cd:arguments>
- <cd:resolve name="argument-character"/>
- </cd:arguments>
- </cd:command>
-
<cd:command name="chardescription" level="style" category="characters" file="char-ini.mkiv">
<cd:arguments>
<cd:resolve name="argument-number"/>
@@ -147,4 +141,4 @@
<cd:command name="textplus" level="document" category="characters" file="enco-ini.mkiv"/>
-</cd:interface>
+</cd:interface> \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-characteralign.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-characteralign.xml
index b95ff8487b3..3e9f81722d1 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-characteralign.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-characteralign.xml
@@ -24,33 +24,10 @@
<cd:command name="resetcharacteralign" level="system" category="alignment" file="typo-tal.mkiv"/>
- <cd:command name="nocharacteralign" level="system" category="alignment" file="typo-tal.mkiv"/>
-
- <cd:command name="setcharacteraligndetail" level="system" category="alignment" file="typo-tal.mkiv">
- <cd:arguments>
- <cd:resolve name="argument-number"/>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:text" prefix="number" method="apply"/>
- <cd:constant type="cd:text" prefix="text" method="apply"/>
- </cd:keywords>
- <cd:resolve name="argument-dimension"/>
- <cd:resolve name="argument-dimension"/>
- </cd:arguments>
- </cd:command>
-
<cd:command name="alignmentcharacter" level="system" category="alignment" file="typo-tal.mkiv"/>
<cd:command name="characteralign" type="environment" category="alignment" level="system" file="typo-tal.mkiv">
<cd:arguments>
- <cd:assignments list="yes">
- <cd:inherit name="setupcharacteralign"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="characteralign" type="environment" variant="argument" category="alignment" level="system" file="typo-tal.mkiv">
- <cd:arguments>
<cd:keywords optional="yes">
<cd:constant type="cd:text"/>
<cd:constant type="cd:text" prefix="number" method="apply"/>
@@ -65,32 +42,4 @@
</cd:arguments>
</cd:command>
- <cd:command name="setupcharacteralign" level="style" category="alignment" file="typo-tal.mkiv">
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="leftwidth">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rightwidth">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="leftsample">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="rightsample">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="character">
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:text" prefix="number" method="apply"/>
- <cd:constant type="cd:text" prefix="text" method="apply"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setfirstpasscharacteralign" level="system" category="alignment" file="typo-tal.mkiv"/>
-
- <cd:command name="setsecondpasscharacteralign" level="system" category="alignment" file="typo-tal.mkiv"/>
-
</cd:interface> \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-color.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-color.xml
index 4dd76d0b3af..80da11f3b66 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-color.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-color.xml
@@ -263,7 +263,7 @@
</cd:arguments>
</cd:command>
- <cd:command name="transparent" type="environment" level="style" category="colors" file="colo-ini.mkiv">
+ <cd:command name="transparent" type="environment" category="colors" file="colo-ini.mkiv">
<cd:arguments>
<cd:resolve name="keyword-color"/>
</cd:arguments>
@@ -366,7 +366,7 @@
<cd:command name="color" type="environment" begin="save" end="restore" level="system" category="colors" file="colo-ini.mkiv"/>
- <cd:command name="definepalet" level="style" category="colors" file="colo-ini.mkiv">
+ <cd:command name="definepalet" category="colors" file="colo-ini.mkiv">
<cd:arguments>
<cd:resolve name="keyword-name"/>
<cd:assignments list="yes">
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-columns.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-columns.xml
index bbc022ac67a..9fdd209c0b9 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-columns.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-columns.xml
@@ -34,10 +34,10 @@
<cd:constant type="no"/>
</cd:parameter>
<cd:parameter name="align">
- <cd:inherit type="setupalign"/>
+ <cd:constant type="setupalign"/>
</cd:parameter>
<cd:parameter name="tolerance">
- <cd:inherit type="setuptolerance"/>
+ <cd:constant type="setuptolerance"/>
</cd:parameter>
<cd:parameter name="blank">
<cd:inherit name="blank"/>
@@ -73,7 +73,7 @@
</cd:arguments>
</cd:command>
- <cd:command name="columnspan" type="environment" level="document" category="columns" file="page-mul.mkiv">
+ <cd:command name="columnspan" type="environment" category="columns" file="page-mul.mkiv">
<cd:arguments>
<cd:assignments list="yes" optional="yes">
<cd:inherit name="setupcolumnspan"/>
@@ -108,4 +108,4 @@
</cd:arguments>
</cd:command>
-</cd:interface>
+</cd:interface> \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-commandhandler.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-commandhandler.xml
index 6accac8657b..40da525f339 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-commandhandler.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-commandhandler.xml
@@ -311,16 +311,4 @@
</cd:arguments>
</cd:command>
- <cd:command name="installmacrostack" level="system" file="mult-aux.mkiv">
- <cd:arguments>
- <cd:csname/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="installglobalmacrostack" level="system" file="mult-aux.mkiv">
- <cd:arguments>
- <cd:csname/>
- </cd:arguments>
- </cd:command>
-
</cd:interface>
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-common-keyword.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-common-keyword.xml
index 8469dab2f85..97ac50caadf 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-common-keyword.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-common-keyword.xml
@@ -792,21 +792,4 @@
</cd:keywords>
</cd:define>
- <!-- * -->
- <!-- \... [...] -->
- <!-- -->
- <!-- * SCRIPT -->
-
- <cd:define name="keyword-script">
- <cd:keywords>
- <cd:constant type="hangul"/>
- <cd:constant type="hanzi"/>
- <cd:constant type="nihongo"/>
- <cd:constant type="ethiopic"/>
- <cd:constant type="thai"/>
- <cd:constant type="test"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:define>
-
</cd:interface> \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-common-value.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-common-value.xml
index a6884185ff2..c362779c4c4 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-common-value.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-common-value.xml
@@ -100,7 +100,6 @@
<cd:constant type="cd:section" prefix="cd:section" method="range"/>
<cd:constant type="*" prefix="cd:section" method="range"/>
<cd:constant type="all" prefix="cd:section" method="range"/>
- <cd:constant type="current"/>
</cd:define>
<!-- numbersegments = ... -->
@@ -315,41 +314,6 @@
<cd:constant type="de-AT"/>
<cd:constant type="ru-iso9"/>
<cd:constant type="ocs-scn"/>
- <!--
- <cd:constant type="en"/>
- <cd:constant type="nl"/>
- <cd:constant type="fr"/>
- <cd:constant type="de"/>
- <cd:constant type="deo"/>
- <cd:constant type="fi"/>
- <cd:constant type="sl"/>
- <cd:constant type="ru"/>
- <cd:constant type="uk"/>
- <cd:constant type="be"/>
- <cd:constant type="bg"/>
- <cd:constant type="cu"/>
- <cd:constant type="pl"/>
- <cd:constant type="cz"/>
- <cd:constant type="cs"/>
- <cd:constant type="sk"/>
- <cd:constant type="hr"/>
- <cd:constant type="sr"/>
- <cd:constant type="no"/>
- <cd:constant type="da"/>
- <cd:constant type="sv"/>
- <cd:constant type="is"/>
- <cd:constant type="gr"/>
- <cd:constant type="la"/>
- <cd:constant type="it"/>
- <cd:constant type="ro"/>
- <cd:constant type="es"/>
- <cd:constant type="pt"/>
- <cd:constant type="lt"/>
- <cd:constant type="hu"/>
- <cd:constant type="et"/>
- <cd:constant type="kr"/>
- <cd:constant type="jp"/>
- -->
<cd:constant type="cd:language"/>
</cd:define>
@@ -719,55 +683,4 @@
<cd:constant type="cd:name"/>
</cd:define>
- <!-- blank -->
-
- <cd:define name="value-blank">
- <cd:constant type="preference"/>
- <cd:constant type="samepage"/>
- <cd:constant type="max"/>
- <cd:constant type="force"/>
- <cd:constant type="enable"/>
- <cd:constant type="disable"/>
- <cd:constant type="nowhite"/>
- <cd:constant type="packed"/>
- <cd:constant type="back"/>
- <cd:constant type="overlay"/>
- <cd:constant type="always"/>
- <cd:constant type="weak"/>
- <cd:constant type="strong"/>
- <cd:constant type="default"/>
- <cd:constant type="before"/>
- <cd:constant type="inbetween"/>
- <cd:constant type="after"/>
- <cd:constant type="fixed"/>
- <cd:constant type="flexible"/>
- <cd:constant type="none"/>
- <cd:constant type="small"/>
- <cd:constant type="medium"/>
- <cd:constant type="big"/>
- <cd:constant type="line"/>
- <cd:constant type="halfline"/>
- <cd:constant type="quarterline"/>
- <cd:constant type="formula"/>
- <cd:constant type="white"/>
- <cd:constant type="height"/>
- <cd:constant type="depth"/>
- <cd:constant type="standard"/>
- <cd:constant type="small" prefix="cd:number" method="factor"/>
- <cd:constant type="medium" prefix="cd:number" method="factor"/>
- <cd:constant type="big" prefix="cd:number" method="factor"/>
- <cd:constant type="line" prefix="cd:number" method="factor"/>
- <cd:constant type="halfline" prefix="cd:number" method="factor"/>
- <cd:constant type="quarterline" prefix="cd:number" method="factor"/>
- <cd:constant type="formula" prefix="cd:number" method="factor"/>
- <cd:constant type="white" prefix="cd:number" method="factor"/>
- <cd:constant type="height" prefix="cd:number" method="factor"/>
- <cd:constant type="depth" prefix="cd:number" method="factor"/>
- <cd:constant type="cd:number" prefix="category" method="range"/>
- <cd:constant type="cd:number" prefix="order" method="range"/>
- <cd:constant type="cd:number" prefix="penalty" method="range"/>
- <cd:constant type="cd:dimension"/>
- <cd:constant type="cd:name"/>
- </cd:define>
-
</cd:interface>
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-context.pdf b/Master/texmf-dist/tex/context/interface/mkiv/i-context.pdf
index 7f468c41699..39538aa7bcd 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-context.pdf
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-context.pdf
Binary files differ
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-context.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-context.xml
index 01adac436e1..ba09abcbae4 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-context.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-context.xml
@@ -116,7 +116,6 @@
<cd:interfacefile filename="i-language.xml"/>
<cd:interfacefile filename="i-layer.xml"/>
<cd:interfacefile filename="i-layout.xml"/>
- <cd:interfacefile filename="i-linefiller.xml"/>
<cd:interfacefile filename="i-linenumber.xml"/>
<cd:interfacefile filename="i-lines.xml"/>
<cd:interfacefile filename="i-linetable.xml"/>
@@ -152,7 +151,6 @@
<cd:interfacefile filename="i-output.xml"/>
<cd:interfacefile filename="i-overlay.xml"/>
<cd:interfacefile filename="i-pagebreak.xml"/>
- <cd:interfacefile filename="i-pagecolumns.xml"/>
<cd:interfacefile filename="i-pagecomment.xml"/>
<cd:interfacefile filename="i-pagefigure.xml"/>
<cd:interfacefile filename="i-pagegrid.xml"/>
@@ -189,7 +187,6 @@
<cd:interfacefile filename="i-renderingwindow.xml"/>
<cd:interfacefile filename="i-replacement.xml"/>
<cd:interfacefile filename="i-rotatation.xml"/>
- <cd:interfacefile filename="i-ruby.xml"/>
<cd:interfacefile filename="i-scale.xml"/>
<cd:interfacefile filename="i-script.xml"/>
<cd:interfacefile filename="i-section.xml"/>
@@ -227,7 +224,6 @@
<cd:interfacefile filename="i-twopassdata.xml"/>
<cd:interfacefile filename="i-typography.xml"/>
<cd:interfacefile filename="i-unit.xml"/>
- <cd:interfacefile filename="i-userdata.xml"/>
<cd:interfacefile filename="i-variables.xml"/>
<cd:interfacefile filename="i-verbatim.xml"/>
<cd:interfacefile filename="i-version.xml"/>
@@ -238,4 +234,4 @@
<cd:interfacefile filename="i-xml.xml"/>
<cd:interfacefile filename="i-xtable.xml"/>
-</cd:interface>
+</cd:interface> \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-contextname.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-contextname.xml
deleted file mode 100644
index 3e289f3f5ca..00000000000
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-contextname.xml
+++ /dev/null
@@ -1,2353 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<?context-directive job ctxfile x-setups.ctx ?>
-
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
-
- <cd:command name="quotedbl" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="texthash" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textdollar" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textpercent" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textampersand" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="quotesingle" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textcomma" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="texthyphen" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textperiod" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textslash" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textat" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="dotlessI" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="dotlessJ" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textbackslash" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textasciicircum" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textunderscore" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textgrave" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="idotaccent" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textbraceleft" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textbar" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textbraceright" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textasciitilde" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="nobreakspace" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="exclamdown" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textcent" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textsterling" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textcurrency" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textyen" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textbrokenbar" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="sectionmark" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textdiaeresis" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="copyright" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ordfeminine" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="leftguillemot" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textlognot" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="softhyphen" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="registered" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textmacron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textdegree" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textpm" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="twosuperior" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="threesuperior" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textmu" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="paragraphmark" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="periodcentered" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textcedilla" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="onesuperior" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ordmasculine" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="rightguillemot" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="onequarter" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="onehalf" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="threequarter" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="questiondown" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Agrave" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Aacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Acircumflex" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Atilde" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Adiaeresis" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Aring" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="AEligature" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ccedilla" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Egrave" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Eacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ecircumflex" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ediaeresis" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Igrave" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Iacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Icircumflex" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Idiaeresis" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Eth" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ntilde" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ograve" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Oacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ocircumflex" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Otilde" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Odiaeresis" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textmultiply" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ostroke" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ugrave" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Uacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ucircumflex" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Udiaeresis" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Yacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Thorn" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ssharp" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="agrave" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="aacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="acircumflex" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="atilde" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="adiaeresis" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="aring" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="aeligature" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ccedilla" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="egrave" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="eacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ecircumflex" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ediaeresis" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="igrave" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="iacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="icircumflex" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="idiaeresis" level="document" category="characters" file="char-def.lua"/>
-
- comment="contextname=eth" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ntilde" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ograve" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="oacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ocircumflex" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="otilde" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="odiaeresis" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textdiv" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ostroke" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ugrave" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="uacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ucircumflex" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="udiaeresis" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="yacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="thorn" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ydiaeresis" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Amacron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="amacron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Abreve" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="abreve" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Aogonek" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="aogonek" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Cacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ccircumflex" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ccircumflex" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Cdotaccent" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cdotaccent" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ccaron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ccaron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Dcaron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="dcaron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Dstroke" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="dstroke" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Emacron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="emacron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ebreve" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ebreve" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Edotaccent" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="edotaccent" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Eogonek" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="eogonek" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ecaron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ecaron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Gcircumflex" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="gcircumflex" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Gbreve" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="gbreve" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Gdotaccent" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="gdotaccent" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Gcommaaccent" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="gcommaaccent" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Hcircumflex" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="hcircumflex" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Hstroke" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="hstroke" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Itilde" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="itilde" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Imacron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="imacron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ibreve" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ibreve" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Iogonek" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="iogonek" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Idotaccent" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="dotlessi" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="IJligature" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ijligature" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Jcircumflex" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="jcircumflex" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Kcommaaccent" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="kcommaaccent" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="kkra" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Lacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="lacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Lcommaaccent" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="lcommaaccent" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Lcaron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="lcaron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ldotmiddle" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ldotmiddle" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Lstroke" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="lstroke" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Nacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="nacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ncommaaccent" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ncommaaccent" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ncaron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ncaron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="napostrophe" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Neng" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="neng" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Omacron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="omacron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Obreve" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="obreve" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ohungarumlaut" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ohungarumlaut" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="OEligature" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="oeligature" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Racute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="racute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Rcommaaccent" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="rcommaaccent" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Rcaron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="rcaron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Sacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="sacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Scircumflex" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="scircumflex" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Scedilla" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="scedilla" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Scaron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="scaron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Tcedilla" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="tcedilla" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Tcaron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="tcaron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Tstroke" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="tstroke" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Utilde" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="utilde" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Umacron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="umacron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ubreve" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ubreve" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Uring" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="uring" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Uhungarumlaut" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="uhungarumlaut" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Uogonek" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="uogonek" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Wcircumflex" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="wcircumflex" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ycircumflex" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ycircumflex" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ydiaeresis" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Zacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="zacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Zdotaccent" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="zdotaccent" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Zcaron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="zcaron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="slong" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="bstroke" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Bhook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Chook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="chook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Dafrican" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Dhook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Schwa" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Fhook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="fhook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ghook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Istroke" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Khook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="khook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="lbar" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ohorn" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ohorn" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Phook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="phook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Thook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="thook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Uhorn" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="uhorn" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Uhook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Yhook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="yhook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Zstroke" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="zstroke" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="DZcaronligature" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Dzcaronligature" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="dzcaronligature" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="LJligature" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ljligature" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ljligature" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="NJligature" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Njligature" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="njligature" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Acaron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="acaron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Icaron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="icaron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ocaron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ocaron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ucaron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ucaron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Udiaeresismacron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="udiaeresismacron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Udiaeresisacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="udiaeresisacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Udiaeresiscaron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="udiaeresiscaron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Udiaeresisgrave" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="udiaeresisgrave" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Adiaeresismacron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="adiaeresismacron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Adotaccentmacron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="adotaccentmacron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="AEmacron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="aemacron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Gstroke" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="gstroke" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Gcaron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="gcaron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Kcaron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="kcaron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Oogonek" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="oogonek" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Oogonekmacron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="oogonekmacron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="jcaron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="DZligature" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Dzligature" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="dzligature" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Gacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="gacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ngrave" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ngrave" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Aringacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="aringacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="AEacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="aeacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ostrokeacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ostrokeacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Adoublegrave" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="adoublegrave" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ainvertedbreve" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ainvertedbreve" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Edoublegrave" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="edoublegrave" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Einvertedbreve" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="einvertedbreve" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Idoublegrave" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="idoublegrave" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Iinvertedbreve" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="iinvertedbreve" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Odoublegrave" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="odoublegrave" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Oinvertedbreve" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="oinvertedbreve" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Rdoublegrave" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="rdoublegrave" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Rinvertedbreve" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="rinvertedbreve" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Udoublegrave" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="udoublegrave" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Uinvertedbreve" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="uinvertedbreve" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Scommaaccent" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="scommaaccent" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Tcommaaccent" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="tcommaaccent" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Hcaron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="hcaron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="dcurl" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Zhook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="zhook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Adotaccent" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="adotaccent" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ecedilla" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ecedilla" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Odiaeresismacron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="odiaeresismacron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Otildemacron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="otildemacron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Odotaccent" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="odotaccent" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Odotaccentmacron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="odotaccentmacron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ymacron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ymacron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="lcurl" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ncurl" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="tcurl" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="dotlessj" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Astroke" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Cstroke" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cstroke" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Lbar" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="bhook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ccurl" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="dtail" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="dhook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="schwa" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="schwahook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="dotlessjstroke" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textcircumflex" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textcaron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textbreve" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textdotaccent" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textring" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textogonek" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="texttilde" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="texthungarumlaut" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textbottomdot" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textbottomcomma" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greektonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekdialytikatonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekAlphatonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekEpsilontonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekEtatonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekIotatonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekOmicrontonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekUpsilontonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekOmegatonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekiotadialytikatonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekAlpha" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekBeta" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekGamma" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekDelta" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekEpsilon" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekZeta" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekEta" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekTheta" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekIota" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekKappa" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekLambda" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekMu" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekNu" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekXi" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekOmicron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekPi" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekRho" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekSigma" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekTau" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekUpsilon" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekPhi" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekChi" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekPsi" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekOmega" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekIotadialytika" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekUpsilondialytika" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekalphatonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekepsilontonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greeketatonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekiotatonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekupsilondialytikatonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekalpha" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekbeta" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekgamma" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekdelta" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekepsilon" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekzeta" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greeketa" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greektheta" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekiota" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekkappa" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greeklambda" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekmu" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greeknu" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekxi" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekomicron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekpi" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekrho" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekfinalsigma" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greeksigma" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greektau" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekupsilon" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekphi" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekchi" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekpsi" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekomega" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekiotadialytika" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekupsilondiaeresis" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekomicrontonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekupsilontonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekomegatonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekthetaalt" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekphialt" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekpialt" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekkoppa" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekstigma" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekdigamma" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greeknumkoppa" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greeksampi" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekrhoalt" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greeksigmalunate" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekepsilonalt" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekSigmalunate" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicEgrave" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicYO" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicDJE" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicGJE" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicIE" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicDZE" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicII" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicYI" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicJE" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicLJE" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicNJE" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicTSHE" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicKJE" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicIgrave" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicUSHRT" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicDZHE" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicA" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicB" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicV" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicG" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicD" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicE" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicZH" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicZ" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicI" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicISHRT" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicK" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicL" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicM" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicN" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicO" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicP" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicR" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicS" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicT" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicU" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicF" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicH" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicC" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicCH" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicSH" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicSHCH" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicHRDSN" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicERY" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicSFTSN" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicEREV" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicYU" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicYA" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillica" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicb" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicv" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicg" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicd" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillice" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrilliczh" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicz" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillici" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicishrt" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillick" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicl" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicm" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicn" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillico" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicp" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicr" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillics" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillict" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicu" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicf" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillich" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicc" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicch" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicsh" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicshch" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillichrdsn" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicery" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicsftsn" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicerev" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicyu" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicya" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicegrave" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicyo" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicdje" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicgje" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicie" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicdze" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicii" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicyi" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicje" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrilliclje" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicnje" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillictshe" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillickje" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicigrave" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicushrt" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicdzhe" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicOMEGA" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicomega" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicYAT" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicyat" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicEiotified" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrilliceiotified" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicLITTLEYUS" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrilliclittleyus" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicLITTLEYUSiotified" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrilliclittleyusiotified" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicBIGYUS" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicbigyus" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicBIGYUSiotified" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicbigyusiotified" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicKSI" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicksi" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicPSI" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicpsi" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicFITA" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicfita" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicIZHITSA" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicizhitsa" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicIZHITSAdoublegrave" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicizhitsadoublegrave" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicUK" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicuk" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicOMEGAround" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicomegaround" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicOMEGAtitlo" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicomegatitlo" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicOT" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicot" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicKOPPA" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillickoppa" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicTITLO" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicPALATALIZATION" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicDASIAPNEUMATA" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicPSILIPNEUMATA" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicISHRTtail" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicishrttail" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicSEMISOFT" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicsemisoft" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicERtick" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicertick" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicGHEupturn" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicgheupturn" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicGHEstroke" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicghestroke" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicGHEmidhook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicghemidhook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicZHEdescender" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrilliczhedescender" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicZDSC" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrilliczdsc" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicKADC" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillickadc" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicKAvertstroke" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillickavertstroke" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicKAstroke" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillickastroke" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicKAbashkir" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillickabashkir" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicENDC" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicendc" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicENGHE" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicenghe" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicPEmidhook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicpemidhook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicHA" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicha" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicSDSC" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicsdsc" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicTEDC" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillictedc" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicYstr" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicystr" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicYstrstroke" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicystrstroke" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicHADC" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillichadc" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicTETSE" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillictetse" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicCHEDC" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicchedc" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicCHEvertstroke" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicchevertstroke" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicSHHA" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicshha" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicCHEabkhasian" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrilliccheabkhasian" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicCHEDCabkhasian" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicchedcabkhasian" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicPALOCHKA" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicZHEbreve" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrilliczhebreve" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicKAhook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillickahook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicELtail" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrilliceltail" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicENhook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicenhook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicENtail" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicentail" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicCHEkhakassian" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicchekhakassian" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicEMtail" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicemtail" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicAbreve" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicabreve" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicAdiaeresis" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicadiaeresis" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicAE" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicae" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicEbreve" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicebreve" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicSCHWA" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicschwa" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicSCHWAdiaeresis" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicschwadiaeresis" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicZHEdiaeresis" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrilliczhediaeresis" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicZEdiaeresis" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrilliczediaeresis" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicDZEabkhasian" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicdzeabkhasian" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicImacron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicimacron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicIdiaeresis" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicidiaeresis" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicOdiaeresis" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicodiaeresis" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicObarred" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicobarred" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicObarreddiaeresis" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicobarreddiaeresis" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicEdiaeresis" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicediaeresis" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicUmacron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicumacron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicUdiaeresis" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicudiaeresis" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicUdoubleacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicudoubleacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicCHEdiaeresis" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicchediaeresis" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicYERUdiaeresis" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="cyrillicyerudiaeresis" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="hebrewAlef" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="hebrewBet" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="hebrewGimel" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="hebrewDalet" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="hebrewHe" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="hebrewVav" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="hebrewZayin" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="hebrewHet" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="hebrewTet" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="hebrewYod" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="hebrewKaffinal" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="hebrewKaf" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="hebrewLamed" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="hebrewMemfinal" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="hebrewMem" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="hebrewNunfinal" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="hebrewNun" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="hebrewSamekh" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="hebrewAyin" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="hebrewPefinal" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="hebrewPe" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="hebrewTsadifinal" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="hebrewTsadi" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="hebrewQof" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="hebrewResh" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="hebrewShin" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="hebrewTav" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Adotbelow" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="adotbelow" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ahook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ahook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Acircumflexacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="acircumflexacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Acircumflexgrave" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="acircumflexgrave" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Acircumflexhook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="acircumflexhook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Acircumflextilde" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="acircumflextilde" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Acircumflexdotbelow" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="acircumflexdotbelow" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Abreveacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="abreveacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Abrevegrave" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="abrevegrave" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Abrevehook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="abrevehook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Abrevetilde" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="abrevetilde" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Abrevedotbelow" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="abrevedotbelow" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Edotbelow" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="edotbelow" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ehook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ehook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Etilde" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="etilde" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ecircumflexacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ecircumflexacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ecircumflexgrave" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ecircumflexgrave" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ecircumflexhook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ecircumflexhook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ecircumflextilde" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ecircumflextilde" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ecircumflexdotbelow" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ecircumflexdotbelow" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ihook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ihook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Idotbelow" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="idotbelow" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Odotbelow" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="odotbelow" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ohook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ohook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ocircumflexacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ocircumflexacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ocircumflexgrave" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ocircumflexgrave" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ocircumflexhook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ocircumflexhook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ocircumflextilde" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ocircumflextilde" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ocircumflexdotbelow" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ocircumflexdotbelow" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ohornacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ohornacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ohorngrave" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ohorngrave" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ohornhook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ohornhook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ohorntilde" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ohorntilde" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ohorndotbelow" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ohorndotbelow" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Udotbelow" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="udotbelow" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Uhook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="uhook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Uhornacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="uhornacute" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Uhorngrave" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="uhorngrave" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Uhornhook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="uhornhook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Uhorntilde" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="uhorntilde" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Uhorndotbelow" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="uhorndotbelow" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ygrave" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ygrave" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ydotbelow" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ydotbelow" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Yhook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="yhook" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="Ytilde" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ytilde" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekalphapsili" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekalphadasia" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekalphapsilivaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekalphadasiavaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekalphapsilitonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekalphadasiatonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekalphapsiliperispomeni" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekalphadasiaperispomeni" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekAlphapsili" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekAlphadasia" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekAlphapsilivaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekAlphadasiavaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekAlphapsilitonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekAlphadasiatonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekAlphapsiliperispomeni" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekAlphadasiaperispomeni" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekepsilonpsili" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekepsilondasia" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekepsilonpsilivaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekepsilondasiavaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekepsilonpsilitonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekepsilondasiatonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekEpsilonpsili" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekEpsilondasia" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekEpsilonpsilivaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekEpsilondasiavaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekEpsilonpsilitonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekEpsilondasiatonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greeketapsili" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greeketadasia" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greeketapsilivaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greeketadasiavaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greeketapsilitonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greeketadasiatonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greeketapsiliperispomeni" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greeketadasiaperispomeni" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekEtapsili" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekEtadasia" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekEtapsilivaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekEtadasiavaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekEtapsilitonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekEtadasiatonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekEtapsiliperispomeni" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekEtadasiaperispomeni" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekiotapsili" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekiotadasia" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekiotapsilivaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekiotadasiavaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekiotapsilitonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekiotadasiatonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekiotapsiliperispomeni" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekiotadasiaperispomeni" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekIotapsili" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekIotadasia" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekIotapsilivaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekIotadasiavaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekIotapsilitonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekIotadasiatonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekIotapsiliperispomeni" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekIotadasiaperispomeni" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekomicronpsili" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekomicrondasia" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekomicronpsilivaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekomicrondasiavaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekomicronpsilitonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekomicrondasiatonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekOmicronpsili" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekOmicrondasia" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekOmicronpsilivaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekOmicrondasiavaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekOmicronpsilitonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekOmicrondasiatonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekupsilonpsili" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekupsilondasia" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekupsilonpsilivaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekupsilondasiavaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekupsilonpsilitonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekupsilondasiatonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekupsilonpsiliperispomeni" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekupsilondasiaperispomeni" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekUpsilondasia" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekUpsilondasiavaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekUpsilondasiatonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekUpsilondasiaperispomeni" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekomegapsili" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekomegadasia" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekomegapsilivaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekomegadasiavaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekomegapsilitonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekomegadasiatonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekomegapsiliperispomeni" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekomegadasiaperispomeni" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekOmegapsili" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekOmegadasia" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekOmegapsilivaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekOmegadasiavaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekOmegapsilitonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekOmegadasiatonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekOmegapsiliperispomeni" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekOmegadasiaperispomeni" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekalphavaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekalphaoxia" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekepsilonvaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekepsilonoxia" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greeketavaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greeketaoxia" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekiotavaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekiotaoxia" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekomicronvaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekomicronoxia" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekupsilonvaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekupsilonoxia" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekomegavaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekomegaoxia" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekalphaiotasubpsili" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekalphaiotasubdasia" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekalphaiotasubpsilivaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekalphaiotasubdasiavaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekalphaiotasubpsilitonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekalphaiotasubdasiatonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekalphaiotasubpsiliperispomeni" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekalphaiotasubdasiaperispomeni" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekAlphaiotasubpsili" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekAlphaiotasubdasia" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekAlphaiotasubpsilivaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekAlphaiotasubdasiavaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekAlphaiotasubpsilitonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekAlphaiotasubdasiatonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekAlphaiotasubpsiliperispomeni" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekAlphaiotasubdasiaperispomeni" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greeketaiotasubpsili" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greeketaiotasubdasia" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greeketaiotasubpsilivaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greeketaiotasubdasiavaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greeketaiotasubpsilitonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greeketaiotasubdasiatonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greeketaiotasubpsiliperispomeni" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greeketaiotasubdasiaperispomeni" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekEtaiotasubpsili" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekEtaiotasubdasia" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekEtaiotasubpsilivaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekEtaiotasubdasiavaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekEtaiotasubpsilitonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekEtaiotasubdasiatonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekEtaiotasubpsiliperispomeni" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekEtaiotasubdasiaperispomeni" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekomegaiotasubpsili" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekomegaiotasubdasia" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekomegaiotasubpsilivaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekomegaiotasubdasiavaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekomegaiotasubpsilitonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekomegaiotasubdasiatonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekomegaiotasubpsiliperispomeni" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekomegaiotasubdasiaperispomeni" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekOmegaiotasubpsili" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekOmegaiotasubdasia" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekOmegaiotasubpsilivaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekOmegaiotasubdasiavaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekOmegaiotasubpsilitonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekOmegaiotasubdasiatonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekOmegaiotasubpsiliperispomeni" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekOmegaiotasubdasiaperispomeni" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekalphavrachy" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekalphamacron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekalphaiotasubvaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekalphaiotasub" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekalphaiotasubtonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekalphaperispomeni" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekalphaiotasubperispomeni" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekAlphavrachy" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekAlphamacron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekAlphavaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekAlphatonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekAlphaiotasub" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekCoronis" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekprosgegrammeni" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekpsili" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekperispomeni" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekdialytikaperispomeni" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greeketaiotasubvaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greeketaiotasub" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greeketaiotasubtonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greeketaperispomeni" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greeketaiotasubperispomeni" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekEpsilonvaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekEpsilontonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekEtavaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekEtatonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekEtaiotasub" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekpsilivaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekpsilitonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekpsiliperispomeni" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekiotavrachy" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekiotamacron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekiotadialytikavaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekiotadialytikatonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekiotaperispomeni" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekiotadialytikaperispomeni" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekIotavrachy" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekIotamacron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekIotavaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekIotatonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekdasiavaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekdasiatonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekdasiaperispomeni" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekupsilonvrachy" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekupsilonmacron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekupsilondialytikavaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekupsilondialytikatonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekrhopsili" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekrhodasia" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekupsilonperispomeni" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekupsilondialytikaperispomeni" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekUpsilonvrachy" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekUpsilonmacron" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekUpsilonvaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekUpsilontonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekRhodasia" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekdialytikavaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekdialytikatonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekvaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekomegaiotasubvaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekomegaiotasub" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekomegaiotasubtonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekomegaperispomeni" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekomegaiotasubperispomeni" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekOmicronvaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekOmicrontonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekOmegavaria" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekOmegatonos" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekOmegaiotasub" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekoxia" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="greekdasia" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="enspace" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="emspace" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="threeperemspace" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="fourperemspace" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="sixperemspace" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="figurespace" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="punctuationspace" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="breakablethinspace" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="hairspace" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="zerowidthspace" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="zwnj" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="zwj" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textminus" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="endash" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="emdash" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="texthorizontalbar" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="quoteleft" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="quoteright" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="quotesinglebase" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="quotedblleft" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="quotedblright" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="quotedblbase" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textdag" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textddag" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textbullet" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textellipsis" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="narrownobreakspace" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="perthousand" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="guilsingleleft" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="guilsingleright" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textfraction" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="medspace" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textdong" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="texteuro" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textcelsius" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textnumero" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textcircledP" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="trademark" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textounce" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textohm" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textmho" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textkelvin" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="textAngstrom" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="onethird" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="twothirds" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="onefifth" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="twofifths" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="threefifths" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="fourfifths" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="onesixth" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="fivesixths" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="oneeighth" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="threeeighths" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="fiveeighths" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="seveneighths" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="romanI" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="romanII" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="romanIII" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="romanIV" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="romanV" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="romanVI" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="romanVII" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="romanVIII" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="romanIX" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="romanX" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="romanXI" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="romanXII" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="romanL" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="romanC" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="romanD" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="romanM" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="romani" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="romanii" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="romaniii" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="romaniv" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="romanv" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="romanvi" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="romanvii" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="romanviii" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="romanix" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="romanx" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="romanxi" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="romanxii" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="romanl" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="romanc" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="romand" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="romanm" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="carriagereturn" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ideographicspace" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ideographichalffillspace" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ffligature" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="filigature" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="flligature" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="ffiligature" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="fflligature" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="stligature" level="document" category="characters" file="char-def.lua"/>
-
- <cd:command name="zerowidthnobreakspace" level="document" category="characters" file="char-def.lua"/>
-
-</cd:interface> \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-delimitedtext.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-delimitedtext.xml
index ce1767b1c48..c34052644f3 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-delimitedtext.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-delimitedtext.xml
@@ -16,10 +16,7 @@
<cd:command name="setupdelimitedtext" level="style" category="language" file="typo-del.mkiv">
<cd:arguments>
- <cd:keywords list="yes" optional="yes">
- <cd:constant type="cd:name"/>
- <cd:constant type="cd:number" prefix="cd:name" method="range"/>
- </cd:keywords>
+ <cd:resolve name="keyword-name-list-optional"/>
<cd:assignments list="yes">
<cd:parameter name="before">
<cd:constant type="cd:command"/>
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-description.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-description.xml
index 9d71bd1a109..f2cf33e82b6 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-description.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-description.xml
@@ -55,7 +55,6 @@
<cd:constant type="serried"/>
<cd:constant type="hanging"/>
<cd:constant type="top"/>
- <cd:constant type="empty"/>
<cd:constant type="command"/>
<cd:constant type="cd:name"/>
</cd:parameter>
@@ -130,10 +129,6 @@
<cd:parameter name="headcolor">
<cd:constant type="cd:color"/>
</cd:parameter>
- <cd:parameter name="aligntitle">
- <cd:constant type="yes" default="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
<!-- end construction values -->
</cd:assignments>
</cd:arguments>
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-document.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-document.xml
index 178f7e9fec5..fcd9e040b67 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-document.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-document.xml
@@ -218,34 +218,4 @@
</cd:arguments>
</cd:command>
- <cd:command name="doifelsedocumentvariable" level="style" category="structure" file="file-job.mkvi">
- <cd:arguments>
- <cd:resolve name="argument-key"/>
- <cd:resolve name="argument-true"/>
- <cd:resolve name="argument-false"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="doifdocumentvariableelse" level="style" category="structure" file="file-job.mkvi">
- <cd:arguments>
- <cd:resolve name="argument-key"/>
- <cd:resolve name="argument-true"/>
- <cd:resolve name="argument-false"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="doifdocumentvariable" level="style" category="structure" file="file-job.mkvi">
- <cd:arguments>
- <cd:resolve name="argument-key"/>
- <cd:resolve name="argument-true"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="doifnotdocumentvariable" level="style" category="structure" file="file-job.mkvi">
- <cd:arguments>
- <cd:resolve name="argument-key"/>
- <cd:resolve name="argument-true"/>
- </cd:arguments>
- </cd:command>
-
</cd:interface> \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-effect.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-effect.xml
index b71306fff0b..d20a62cd40b 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-effect.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-effect.xml
@@ -26,7 +26,7 @@
<cd:constant type="cd:number"/>
</cd:parameter>
<cd:parameter name="rulethickness">
- <cd:constant type="cd:dimension"/>
+ <cd:constant type="cd:number"/>
</cd:parameter>
<cd:parameter name="alternative">
<cd:constant type="normal" default="yes"/>
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-enumeration.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-enumeration.xml
index 0f286b8b531..149f4f61307 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-enumeration.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-enumeration.xml
@@ -101,7 +101,6 @@
<cd:constant type="serried"/>
<cd:constant type="hanging"/>
<cd:constant type="top" default="yes"/>
- <cd:constant type="empty"/>
<cd:constant type="command"/>
<cd:constant type="cd:name"/>
</cd:parameter>
@@ -176,10 +175,6 @@
<cd:parameter name="headcolor">
<cd:constant type="cd:color"/>
</cd:parameter>
- <cd:parameter name="aligntitle">
- <cd:constant type="yes" default="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
<!-- end construction values -->
<cd:inherit name="setupcounter"/>
</cd:assignments>
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-file.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-file.xml
index bf12e5825f1..df649e8e080 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-file.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-file.xml
@@ -407,4 +407,4 @@
</cd:arguments>
</cd:command>
-</cd:interface> \ No newline at end of file
+</cd:interface>
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-filler.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-filler.xml
index d9a43378e07..69cc37fca68 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-filler.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-filler.xml
@@ -99,20 +99,6 @@
</cd:arguments>
</cd:command>
- <cd:command name="fillupto" level="style" category="rules" file="spac-flr.mkiv">
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="sym"/>
- <cd:constant type="symbol"/>
- <cd:constant type="rule"/>
- <cd:constant type="width"/>
- <cd:constant type="space"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:resolve name="argument-text"/>
- </cd:arguments>
- </cd:command>
-
<cd:command name="checkedfiller" level="style" category="rules" file="spac-flr.mkiv">
<cd:arguments>
<cd:keywords delimiters="braces">
@@ -221,4 +207,4 @@
</cd:arguments>
</cd:command>
-</cd:interface>
+</cd:interface> \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-fittingpage.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-fittingpage.xml
index 7fc3a6cffcc..8c20035682d 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-fittingpage.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-fittingpage.xml
@@ -100,4 +100,4 @@
</cd:arguments>
</cd:command>
-</cd:interface> \ No newline at end of file
+</cd:interface>
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-floats.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-floats.xml
index 77a0f00a1b6..0ecb99c16aa 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-floats.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-floats.xml
@@ -186,10 +186,10 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="ntop">
- <cd:constant type="cd:number"/>
+ <cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="nbottom">
- <cd:constant type="cd:number"/>
+ <cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="step">
<cd:constant type="small"/>
@@ -206,7 +206,6 @@
<cd:constant type="no"/>
</cd:parameter>
<!-- end root only -->
- <cd:inherit name="setupframed"/>
</cd:assignments>
</cd:arguments>
</cd:command>
@@ -232,151 +231,9 @@
</cd:arguments>
</cd:command>
- <cd:command name="setupfloatcaption" level="style" category="structure fonts counter" file="strc-flt.mkvi">
- <cd:arguments>
- <cd:resolve name="keyword-name-list-optional"/>
- <cd:assignments list="yes">
- <cd:parameter name="suffix">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="suffixseparator">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="suffixstopper">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="location">
- <cd:constant type="left"/>
- <cd:constant type="right"/>
- <cd:constant type="middle"/>
- <cd:constant type="low"/>
- <cd:constant type="high"/>
- <cd:constant type="grid"/>
- <cd:constant type="lines"/>
- <cd:constant type="overlay"/>
- <cd:constant type="inner"/>
- <cd:constant type="outer"/>
- <cd:constant type="innermargin"/>
- <cd:constant type="outermargin"/>
- <cd:constant type="leftmargin"/>
- <cd:constant type="rightmargin"/>
- <cd:constant type="lefthanging"/>
- <cd:constant type="righthanging"/>
- <cd:constant type="hang"/>
- <cd:constant type="top"/>
- <cd:constant type="bottom" default="yes"/>
- <cd:constant type="stretch"/>
- <cd:constant type="tolerant"/>
- <cd:constant type="verytolerant"/>
- <cd:constant type="none"/>
- <cd:constant type="default"/>
- </cd:parameter>
- <cd:parameter name="command">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="numbercommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="textcommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="spacebefore">
- <cd:inherit name="blank"/>
- </cd:parameter>
- <cd:parameter name="spaceinbetween">
- <cd:inherit name="blank"/>
- </cd:parameter>
- <cd:parameter name="spaceafter">
- <cd:inherit name="blank"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="headstyle">
- <cd:resolve name="value-style"/>
- </cd:parameter>
- <cd:parameter name="headcolor">
- <cd:constant type="cd:color"/>
- </cd:parameter>
- <cd:parameter name="headseparator">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="inbetween">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="value-style"/>
- </cd:parameter>
- <cd:parameter name="color">
- <cd:constant type="cd:color"/>
- </cd:parameter>
- <cd:parameter name="topoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="bottomoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="number">
- <cd:constant type="yes" default="yes"/>
- <cd:constant type="no"/>
- <cd:constant type="none"/>
- </cd:parameter>
- <cd:parameter name="group">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="leftmargin">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rightmargin">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="innermargin">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="outermargin">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="align">
- <cd:inherit name="setupalign"/>
- </cd:parameter>
- <cd:parameter name="width">
- <cd:constant type="fit" default="yes"/>
- <cd:constant type="max"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="minwidth">
- <cd:constant type="fit" default="yes"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="maxwidth">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:inherit name="setupcounter"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcaption" level="style" category="structure fonts counter" file="strc-flt.mkvi">
- <cd:arguments>
- <cd:resolve name="keyword-name-list-optional"/>
- <cd:assignments list="yes">
- <cd:inherit name="setupfloatcaption"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcaptions" level="style" category="structure fonts counter" file="strc-flt.mkvi">
- <cd:arguments>
- <cd:resolve name="keyword-name-list-optional"/>
- <cd:assignments list="yes">
- <cd:inherit name="setupfloatcaption"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
-->
- <cd:command name="setupcaption" level="style" category="structure fonts counter" file="strc-flt.mkvi">
+ <cd:command name="setupfloatcaption" level="style" category="structure fonts counter" file="strc-flt.mkvi">
<cd:arguments>
<cd:resolve name="keyword-name-list-optional"/>
<cd:assignments list="yes">
@@ -396,7 +253,6 @@
<cd:constant type="low"/>
<cd:constant type="high"/>
<cd:constant type="grid"/>
- <cd:constant type="lines"/>
<cd:constant type="overlay"/>
<cd:constant type="inner"/>
<cd:constant type="outer"/>
@@ -436,12 +292,7 @@
<cd:parameter name="distance">
<cd:constant type="cd:dimension"/>
</cd:parameter>
- <cd:parameter name="headstyle">
- <cd:resolve name="value-style"/>
- </cd:parameter>
- <cd:parameter name="headcolor">
- <cd:constant type="cd:color"/>
- </cd:parameter>
+ <!-- headstyle headcolor headseparator -->
<cd:parameter name="headseparator">
<cd:constant type="cd:text"/>
</cd:parameter>
@@ -496,39 +347,24 @@
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:inherit name="setupcounter"/>
- <cd:inherit name="setupframed"/>
</cd:assignments>
</cd:arguments>
</cd:command>
- <cd:command name="setupcaptions" level="style" category="structure fonts counter" file="strc-flt.mkvi">
+ <cd:command name="setupcaption" level="style" category="structure fonts counter" file="strc-flt.mkvi">
<cd:arguments>
<cd:resolve name="keyword-name-list-optional"/>
<cd:assignments list="yes">
- <cd:inherit name="setupcaption"/>
+ <cd:inherit name="setupfloatcaption"/>
</cd:assignments>
</cd:arguments>
</cd:command>
- <!--
-
- <cd:command name="definefloatframed" level="style" category="structure background" file="strc-flt.mkvi">
- <cd:arguments>
- <cd:resolve name="keyword-name"/>
- <cd:resolve name="keyword-name-optional"/>
- <cd:assignments list="yes" optional="yes">
- <cd:inherit name="setupfloatframed"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- -->
-
- <cd:command name="setupfloatframed" level="style" category="structure background" file="strc-flt.mkvi">
+ <cd:command name="setupcaptions" level="style" category="structure fonts counter" file="strc-flt.mkvi">
<cd:arguments>
<cd:resolve name="keyword-name-list-optional"/>
<cd:assignments list="yes">
- <cd:inherit name="setupframed"/>
+ <cd:inherit name="setupfloatcaption"/>
</cd:assignments>
</cd:arguments>
</cd:command>
@@ -960,46 +796,4 @@
</cd:arguments>
</cd:command>
- <cd:command name="definefacingfloat" level="style" category="structure" file="page-ffl.mkiv">
- <cd:arguments>
- <cd:resolve name="keyword-name"/>
- <cd:resolve name="keyword-name-optional"/>
- <cd:assignments list="yes" optional="yes">
- <cd:inherit name="setupfacingfloat"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfacingfloat" level="style" category="structure" file="page-ffl.mkiv">
- <cd:arguments>
- <cd:resolve name="keyword-name-list-optional"/>
- <cd:assignments list="yes">
- <cd:parameter name="inbetween">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="page">
- <cd:inherit name="page"/>
- </cd:parameter>
- <cd:parameter name="spaceinbetween">
- <cd:inherit name="blank"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="value-style"/>
- </cd:parameter>
- <cd:parameter name="color">
- <cd:constant type="cd:color"/>
- </cd:parameter>
- <cd:inherit name="setupframed"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="facingfloat" type="environment" level="document" category="structure" file="page-ffl.mkiv">
- <cd:arguments>
- <cd:resolve name="keyword-name"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="splittext" type="environment" level="document" category="structure" file="tabl-tsp.mkiv"/>
-
</cd:interface>
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-fonts.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-fonts.xml
index 721bfca6313..1e6e169a4f9 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-fonts.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-fonts.xml
@@ -31,20 +31,12 @@
<cd:constant type="cd:number"/>
<cd:constant type="cd:name"/>
</cd:parameter>
- <cd:parameter name="target">
- <cd:constant type="cd:number"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
<cd:parameter name="features">
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="factor">
<cd:constant type="cd:number"/>
</cd:parameter>
- <cd:parameter name="method">
- <cd:constant type="lowercase"/>
- <cd:constant type="uppercase"/>
- </cd:parameter>
</cd:assignments>
</cd:arguments>
</cd:command>
@@ -340,7 +332,7 @@
</cd:arguments>
</cd:command>
- <cd:command name="subtractfeature" variant="direct" level="style" category="fonts" file="font-fea.mkvi">
+ <cd:command name="subtractfeature" variant="direct" clevel="style" ategory="fonts" file="font-fea.mkvi">
<cd:arguments>
<cd:resolve name="argument-name"/>
</cd:arguments>
@@ -429,30 +421,8 @@
<cd:resolve name="argument-false"/>
</cd:arguments>
</cd:command>
- <cd:command name="doifcurrentfonthasfeatureelse" level="system" category="fonts conditional" file="font-fea.mkvi">
- <cd:arguments>
- <cd:resolve name="argument-name"/>
- <cd:resolve name="argument-true"/>
- <cd:resolve name="argument-false"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="doifelsefontfeature" level="system" category="fonts conditional" file="font-fea.mkvi">
- <cd:arguments>
- <cd:resolve name="argument-name"/>
- <cd:resolve name="argument-true"/>
- <cd:resolve name="argument-false"/>
- </cd:arguments>
- </cd:command>
- <cd:command name="doiffontfeatureelse" level="system" category="fonts conditional" file="font-fea.mkvi">
- <cd:arguments>
- <cd:resolve name="argument-name"/>
- <cd:resolve name="argument-true"/>
- <cd:resolve name="argument-false"/>
- </cd:arguments>
- </cd:command>
- <cd:command name="doifunknownfontfeature" level="system" category="fonts conditional" file="font-fea.mkvi">
+ <cd:command name="doifcurrentfonthasfeatureelse" level="system" category="fonts conditional" file="font-fea.mkvi">
<cd:arguments>
<cd:resolve name="argument-name"/>
<cd:resolve name="argument-true"/>
@@ -965,7 +935,7 @@
</cd:arguments>
</cd:command>
- <cd:command name="switchstyleonly" level="style" category="fonts" file="font-ini.mkiv">
+ <cd:command name="switchstyleonly" clevel="style" ategory="fonts" file="font-ini.mkiv">
<cd:arguments>
<cd:keywords>
<cd:constant type="rm"/>
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-formula.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-formula.xml
index 72693fb6cc7..07127a6297c 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-formula.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-formula.xml
@@ -274,7 +274,6 @@
<cd:command name="placeformula" level="document" category="mathematics" file="strc-mat.mkiv">
<cd:arguments>
<cd:resolve name="keyword-formulareference-list-optional"/>
- <cd:resolve name="argument-text-optional"/>
</cd:arguments>
</cd:command>
@@ -304,14 +303,12 @@
<cd:arguments>
<cd:resolve name="keyword-formulareference-list-optional"/>
<cd:resolve name="argument-text"/>
- <cd:resolve name="argument-text-optional"/>
</cd:arguments>
</cd:command>
<cd:command name="placesubformula" level="document" category="mathematics" file="strc-mat.mkiv">
<cd:arguments>
<cd:resolve name="keyword-formulareference-list-optional"/>
- <cd:resolve name="argument-text-optional"/>
</cd:arguments>
</cd:command>
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-framed.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-framed.xml
index 5e96ba80d2e..a4667dd2ec9 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-framed.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-framed.xml
@@ -57,25 +57,21 @@
<cd:parameter name="topframe">
<cd:constant type="on" default="yes"/>
<cd:constant type="off"/>
- <cd:constant type="small"/>
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="bottomframe">
<cd:constant type="on" default="yes"/>
<cd:constant type="off"/>
- <cd:constant type="small"/>
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="leftframe">
<cd:constant type="on" default="yes"/>
<cd:constant type="off"/>
- <cd:constant type="small"/>
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="rightframe">
<cd:constant type="on" default="yes"/>
<cd:constant type="off"/>
- <cd:constant type="small"/>
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="region">
@@ -92,8 +88,6 @@
<cd:constant type="on" default="yes"/>
<cd:constant type="off"/>
<cd:constant type="overlay"/>
- <cd:constant type="small"/>
- <cd:constant type="closed"/>
<cd:constant type="none"/>
</cd:parameter>
<cd:parameter name="background">
@@ -138,9 +132,6 @@
<cd:constant type="broad" default="yes"/>
<cd:constant type="cd:dimension"/>
</cd:parameter>
- <cd:parameter name="minheight">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
<cd:parameter name="align">
<cd:inherit name="setupalign"/>
</cd:parameter>
@@ -636,12 +627,4 @@
</cd:arguments>
</cd:command>
- <cd:command name="doifelseframed" level="system" category="background rules">
- <cd:arguments>
- <cd:csname/>
- <cd:resolve name="argument-true"/>
- <cd:resolve name="argument-false"/>
- </cd:arguments>
- </cd:command>
-
</cd:interface> \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-graphics.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-graphics.xml
index a71291a2a60..d90be9e7bb9 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-graphics.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-graphics.xml
@@ -236,16 +236,6 @@
<!-- only passed by the system: -->
<cd:constant type="cd:number"/>
</cd:parameter>
- <cd:parameter name="transform">
- <cd:constant type="auto" default="yes"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="userpassword">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="ownerpassword">
- <cd:constant type="cd:text"/>
- </cd:parameter>
</cd:assignments>
</cd:arguments>
</cd:command>
@@ -534,16 +524,4 @@
</cd:arguments>
</cd:command>
- <cd:command name="overlayimage" level="style" category="graphics" file="pack-box.mkiv">
- <cd:arguments>
- <cd:resolve name="argument-file"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="clippedoverlayimage" level="style" category="graphics" file="pack-box.mkiv">
- <cd:arguments>
- <cd:resolve name="argument-file"/>
- </cd:arguments>
- </cd:command>
-
</cd:interface> \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-grid.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-grid.xml
index 9b072127bf4..bd96388f348 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-grid.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-grid.xml
@@ -18,7 +18,6 @@
<cd:constant type="right" default="yes"/>
<cd:constant type="left"/>
<cd:constant type="outer"/>
- <cd:constant type="inner"/>
<cd:constant type="columns" default="yes"/>
</cd:keywords>
</cd:arguments>
@@ -175,12 +174,6 @@
<cd:parameter name="color">
<cd:constant type="cd:color"/>
</cd:parameter>
- <cd:parameter name="rulecolor">
- <cd:constant type="cd:color"/>
- </cd:parameter>
- <cd:parameter name="rulethickness">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
</cd:assignments>
</cd:arguments>
</cd:command>
@@ -193,4 +186,4 @@
</cd:arguments>
</cd:command>
-</cd:interface>
+</cd:interface> \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-hspace.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-hspace.xml
index 31c21586487..c1626e7b193 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-hspace.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-hspace.xml
@@ -35,7 +35,6 @@
<cd:constant type="quotation"/>
<cd:constant type="sentence"/>
<cd:constant type="intersentence"/>
- <cd:constant type="final"/>
<cd:constant type="cd:name"/>
</cd:keywords>
</cd:arguments>
@@ -93,8 +92,6 @@
<cd:command name="enspace" level="style" category="whitespace" file="spac-hor.mkiv"/>
- <cd:command name="negenspace" level="style" category="whitespace" file="spac-hor.mkiv"/>
-
<cd:command name="enskip" level="style" category="whitespace" file="spac-hor.mkiv"/>
<cd:command name="quad" level="style" category="whitespace" file="spac-hor.mkiv"/>
@@ -103,8 +100,6 @@
<cd:command name="emspace" level="style" category="whitespace" file="spac-hor.mkiv"/>
- <cd:command name="negemspace" level="style" category="whitespace" file="spac-hor.mkiv"/>
-
<cd:command name="dotfskip" level="system" category="whitespace" file="spac-hor.mkiv">
<cd:arguments>
<cd:resolve name="argument-dimension"/>
@@ -167,4 +162,4 @@
</cd:arguments>
</cd:command>
-</cd:interface>
+</cd:interface> \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-interactionscreen.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-interactionscreen.xml
index 7ead396b843..bf26cd96257 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-interactionscreen.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-interactionscreen.xml
@@ -47,7 +47,6 @@
<cd:constant type="paper"/>
<cd:constant type="attachment"/>
<cd:constant type="layer"/>
- <cd:constant type="title"/>
</cd:parameter>
<cd:parameter name="copies">
<cd:constant type="cd:number"/>
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-kerning.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-kerning.xml
index 64a2513b960..b45e916f2b2 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-kerning.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-kerning.xml
@@ -90,36 +90,4 @@
</cd:arguments>
</cd:command>
- <cd:command name="defineperiodkerning" level="style" catgeory="fonts whitespace" file="typo-pnc.mkic">
- <cd:arguments>
- <cd:resolve name="keyword-name"/>
- <cd:resolve name="keyword-name-optional"/>
- <cd:assignments list="yes" optional="yes">
- <cd:inherit name="setupperiodkerning"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupperiodkerning" level="style" catgeory="fonts whitespace" file="typo-pnc.mkic">
- <cd:arguments>
- <cd:resolve name="keyword-name-list-optional"/>
- <cd:assignments list="yes">
- <cd:parameter name="factor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setperiodkerning" level="style" catgeory="fonts whitespace" file="typo-pnc.mkic">
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="reset"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="resetperiodkerning" level="style" catgeory="fonts whitespace" file="typo-pnc.mkic"/>
-
</cd:interface> \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-label.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-label.xml
index a1d36ef4364..a09360aa722 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-label.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-label.xml
@@ -101,7 +101,6 @@
<cd:constant type="serried"/>
<cd:constant type="hanging"/>
<cd:constant type="top"/>
- <cd:constant type="empty"/>
<cd:constant type="command"/>
<cd:constant type="intext" default="yes"/>
<cd:constant type="cd:name"/>
@@ -177,10 +176,6 @@
<cd:parameter name="headcolor">
<cd:constant type="cd:color"/>
</cd:parameter>
- <cd:parameter name="aligntitle">
- <cd:constant type="yes" default="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
<!-- end construction values -->
<cd:inherit name="setupcounter"/>
</cd:assignments>
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-language.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-language.xml
index de8835a790a..35706132103 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-language.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-language.xml
@@ -37,9 +37,6 @@
<cd:parameter name="date">
<cd:inherit name="currentdate"/>
</cd:parameter>
- <cd:parameter name="time">
- <cd:inherit name="currenttime"/>
- </cd:parameter>
<cd:parameter name="patterns">
<cd:constant type="cd:file"/>
</cd:parameter>
@@ -64,7 +61,6 @@
</cd:parameter>
<cd:parameter name="font">
<cd:constant type="auto"/>
- <cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="bidi">
<cd:constant type="left"/>
@@ -178,12 +174,6 @@
</cd:arguments>
</cd:command>
- <cd:command name="language" type="environment" level="document" category="language" file="lang-ini.mkiv">
- <cd:arguments>
- <cd:resolve name="keyword-language"/>
- </cd:arguments>
- </cd:command>
-
<cd:command name="mainlanguage" level="style" category="language" file="lang-ini.mkiv">
<cd:arguments>
<cd:resolve name="keyword-language"/>
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-layout.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-layout.xml
index 4370cc4f558..19b233988c9 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-layout.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-layout.xml
@@ -197,7 +197,6 @@
</cd:parameter>
<cd:parameter name="cropoffset">
<cd:constant type="cd:dimension"/>
- <cd:constant type="auto"/>
</cd:parameter>
<cd:parameter name="trimoffset">
<cd:constant type="cd:dimension"/>
@@ -368,14 +367,14 @@
<cd:command name="spread" type="environment" level="document" category="layout" file="page-spr.mkiv"/>
- <cd:command name="doifelsetopofpage" level="system" category="layout conditional" file="page-ini.mkiv">
+ <cd:command name="doifelsetopofpage" level="system" category="layout conditional" file="page-lay.mkiv">
<cd:arguments>
<cd:resolve name="argument-true"/>
<cd:resolve name="argument-false"/>
</cd:arguments>
</cd:command>
- <cd:command name="doiftopofpageelse" level="system" category="layout conditional" file="page-ini.mkiv">
+ <cd:command name="doiftopofpageelse" level="system" category="layout conditional" file="page-lay.mkiv">
<cd:arguments>
<cd:resolve name="argument-true"/>
<cd:resolve name="argument-false"/>
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-linefiller.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-linefiller.xml
deleted file mode 100644
index ab53e64b028..00000000000
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-linefiller.xml
+++ /dev/null
@@ -1,105 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<?context-directive job ctxfile x-setups.ctx ?>
-
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
-
- <cd:command name="definelinefiller" level="style" category="rules metapost" file="node-rul.mkiv">
- <cd:arguments>
- <cd:resolve name="keyword-name"/>
- <cd:resolve name="keyword-name-optional"/>
- <cd:assignments list="yes" optional="yes">
- <cd:inherit name="setuplinefiller"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplinefiller" level="style" category="rules metapost" file="node-rul.mkiv">
- <cd:arguments>
- <cd:resolve name="keyword-name-list-optional"/>
- <cd:assignments list="yes">
- <cd:parameter name="location">
- <cd:constant type="left"/>
- <cd:constant type="right"/>
- <cd:constant type="both" default="yes"/>
- </cd:parameter>
- <cd:parameter name="scope">
- <cd:constant type="left"/>
- <cd:constant type="right"/>
- <cd:constant type="local" default="yes"/>
- <cd:constant type="global"/>
- </cd:parameter>
- <cd:parameter name="color">
- <cd:constant type="cd:color"/>
- </cd:parameter>
- <cd:parameter name="height">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="depth">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="threshold">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rulethickness">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <!-- cd:parameter name="method">
- <cd:constant type="cd:number"/>
- </cd:parameter -->
- <cd:parameter name="textstyle">
- <cd:resolve name="value-style"/>
- </cd:parameter>
- <cd:parameter name="textcolor">
- <cd:constant type="cd:color"/>
- </cd:parameter>
- <cd:parameter name="align">
- <cd:inherit name="setupalign"/>
- </cd:parameter>
- <cd:parameter name="mp">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="before">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="after">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplinefillers" level="style" category="rules metapost" file="node-rul.mkiv">
- <cd:arguments>
- <cd:resolve name="keyword-name-list-optional"/>
- <cd:assignments list="yes">
- <cd:inherit name="setuplinefiller"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="linefiller" type="environment" level="style" category="rules metapost" file="node-rul.mkiv">
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="filler"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes" optional="yes">
- <cd:inherit name="setuplinefiller"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setlinefiller" level="style" category="rules metapost" file="node-rul.mkiv">
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="filler"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
-</cd:interface>
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-list.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-list.xml
index a3ae226767e..8d4863dd28f 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-list.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-list.xml
@@ -55,9 +55,7 @@
<cd:parameter name="width">
<cd:constant type="fit"/>
<cd:constant type="broad"/>
- <!--
- <cd:constant type="auto"/>
- -->
+ <cd:constant type="auto"/>
<cd:constant type="cd:dimension"/>
</cd:parameter>
<cd:parameter name="height">
@@ -388,7 +386,7 @@
<cd:resolve name="keyword-name"/>
<cd:resolve name="keyword-list-list"/>
<cd:assignments list="yes" optional="yes">
- <cd:inherit name="setupcombinedlist"/>
+ <cd:inherit name="setuplist"/>
</cd:assignments>
</cd:arguments>
</cd:command>
@@ -397,55 +395,7 @@
<cd:arguments>
<cd:resolve name="keyword-list"/>
<cd:assignments list="yes">
- <cd:parameter name="criterium">
- <cd:constant type="local" default="yes"/>
- <cd:constant type="intro"/>
- <cd:constant type="reference"/>
- <cd:constant type="reference" prefix="cd:sectionblock" method="range"/>
- <cd:constant type="all"/>
- <cd:constant type="all" prefix="cd:sectionblock" method="range"/>
- <cd:constant type="text"/>
- <cd:constant type="text" prefix="cd:sectionblock" method="range"/>
- <cd:constant type="current"/>
- <cd:constant type="current" prefix="cd:sectionblock" method="range"/>
- <cd:constant type="here"/>
- <cd:constant type="previous"/>
- <cd:constant type="previous" prefix="cd:sectionblock" method="range"/>
- <cd:constant type="component"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="cd:section" prefix="cd:sectionblock" method="range"/>
- </cd:parameter>
- <cd:parameter name="reference">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="extras">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="order">
- <cd:constant type="command"/>
- <cd:constant type="all"/>
- <cd:constant type="title"/>
- </cd:parameter>
- <cd:parameter name="alternative">
- <cd:constant type="a"/>
- <cd:constant type="b" default="yes"/>
- <cd:constant type="c"/>
- <cd:constant type="d"/>
- <cd:constant type="e"/>
- <cd:constant type="f"/>
- <cd:constant type="g"/>
- <cd:constant type="left"/>
- <cd:constant type="right"/>
- <cd:constant type="top"/>
- <cd:constant type="bottom"/>
- <cd:constant type="command"/>
- <cd:constant type="none"/>
- <cd:constant type="interactive"/>
- <cd:constant type="paragraph"/>
- <cd:constant type="horizontal"/>
- <cd:constant type="vertical"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
+ <cd:inherit name="setuplist"/>
</cd:assignments>
</cd:arguments>
</cd:command>
@@ -454,7 +404,7 @@
<cd:arguments>
<cd:resolve name="keyword-list"/>
<cd:assignments list="yes" optional="yes">
- <cd:inherit name="setupcombinedlist"/>
+ <cd:inherit name="setuplist"/>
</cd:assignments>
</cd:arguments>
</cd:command>
@@ -466,7 +416,7 @@
</cd:sequence>
<cd:arguments>
<cd:assignments list="yes">
- <cd:inherit name="setupcombinedlist"/>
+ <cd:inherit name="setuplist"/>
</cd:assignments>
</cd:arguments>
<cd:instances>
@@ -481,7 +431,7 @@
</cd:sequence>
<cd:arguments>
<cd:assignments list="yes" optional="yes">
- <cd:inherit name="setupcombinedlist"/>
+ <cd:inherit name="setuplist"/>
</cd:assignments>
</cd:arguments>
<cd:instances>
@@ -496,7 +446,7 @@
</cd:sequence>
<cd:arguments>
<cd:assignments list="yes" optional="yes">
- <cd:inherit name="setupcombinedlist"/>
+ <cd:inherit name="setuplist"/>
</cd:assignments>
</cd:arguments>
<cd:instances>
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-math.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-math.xml
index ae8fa1c3e4c..af9d87cb80c 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-math.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-math.xml
@@ -35,7 +35,6 @@
<cd:parameter name="align">
<cd:constant type="l2r" default="yes"/>
<cd:constant type="r2l"/>
- <cd:constant type="righttoleft"/>
</cd:parameter>
<cd:parameter name="bidi">
<cd:constant type="yes"/>
@@ -110,17 +109,6 @@
<cd:parameter name="ampersand">
<cd:constant type="normal"/>
</cd:parameter>
- <cd:parameter name="collapsing">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="3" default="yes"/>
- <cd:constant type="none"/>
- <cd:constant type="reset"/>
- </cd:parameter>
- <cd:parameter name="kernpairs">
- <cd:constant type="yes"/>
- <cd:constant type="no" default="yes"/>
- </cd:parameter>
</cd:assignments>
</cd:arguments>
</cd:command>
@@ -511,4 +499,4 @@
</cd:arguments>
</cd:command>
-</cd:interface> \ No newline at end of file
+</cd:interface>
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-mathfence.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-mathfence.xml
index 5e1abec2b64..76151fae4c4 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-mathfence.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-mathfence.xml
@@ -43,9 +43,6 @@
<cd:parameter name="method">
<cd:constant type="auto"/>
</cd:parameter>
- <cd:parameter name="size">
- <cd:constant type="cd:number"/>
- </cd:parameter>
<cd:parameter name="factor">
<cd:constant type="none"/>
<cd:constant type="auto"/>
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-mathmatrix.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-mathmatrix.xml
index 581a6928ac7..bd1452cdca6 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-mathmatrix.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-mathmatrix.xml
@@ -90,15 +90,6 @@
-->
- <cd:command name="mathmatrix" generated="yes" level="document" category="mathematics tables" file="math-ali.mkiv">
- <cd:sequence>
- <cd:variable value="mathmatrix"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
- </cd:command>
-
<cd:command name="matrices" type="environment" level="document" category="mathematics tables" file="math-ali.mkiv">
<cd:arguments>
<cd:assignments list="yes" optional="yes">
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-mathname.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-mathname.xml
deleted file mode 100644
index 63dab099192..00000000000
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-mathname.xml
+++ /dev/null
@@ -1,1091 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<?context-directive job ctxfile x-setups.ctx ?>
-
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
-
- <cd:command name="mathhash" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="mathdollar" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="mathpercent" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="mathampersand" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="lparent" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="rparent" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="ast" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="mathhyphen" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="colon" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="lt" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="gt" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="lbracket" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="backslash" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="rbracket" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Hat" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="grave" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="lbrace" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="bar" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="rbrace" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="yen" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="S" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="ddot" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="bar" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="pm" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="acute" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="P" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="centerdot" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="times" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="eth" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="div" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="lambdabar" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="hat" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="check" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="breve" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="dot" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="ring" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="tilde" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="widehat" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="widetilde" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="not" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Alpha" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Beta" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Gamma" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Delta" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Epsilon" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Zeta" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Eta" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Theta" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Iota" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Kappa" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Lambda" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Mu" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Nu" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Xi" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Omicron" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Pi" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Rho" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Sigma" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Tau" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Upsilon" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Phi" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Chi" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Psi" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Omega" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="alpha" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="beta" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="gamma" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="delta" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="varepsilon" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="zeta" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="eta" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="theta" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="iota" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="kappa" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="lambda" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="mu" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="nu" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="xi" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="omicron" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="pi" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="rho" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="varsigma" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="sigma" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="tau" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="upsilon" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="varphi" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="chi" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="psi" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="omega" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="varTheta" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="phi" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="varpi" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="digamma" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="varkappa" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="epsilon" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="backepsilon" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="bullet" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="prime" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="doubleprime" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="tripleprime" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="reversedprime" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="reverseddoubleprime" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="reversedtripleprime" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="quadrupleprime" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="invisibletimes" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="positivesign" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="negativesign" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="vec" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="dddot" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="bigsquare" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="bigdiamond" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="actuarial" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="complexes" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Eulerconst" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Plankconst" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Im" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="ell" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="naturalnumbers" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="wp" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="primes" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="rationals" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Re" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="reals" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="integers" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="ohm" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="mho" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="turnediota" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Angstrom" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Finv" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="aleph" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="beth" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="gimel" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="daleth" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Game" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="sansLturned" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="sansLmirrored" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Yup" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="differentialD" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="differentiald" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="exponentiale" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="imaginaryi" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="imaginaryj" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="PropertyLine" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="upand" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="uparrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="downarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="leftrightarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="updownarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="nwarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="nearrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="searrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="swarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="nleftarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="nrightarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="leftwavearrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="rightwavearrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="twoheadleftarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="twoheaduparrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="twoheadrightarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="twoheaddownarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="leftarrowtail" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="rightarrowtail" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="mapsfrom" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="mapsup" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="mapsto" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="mapsdown" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="updownarrowbar" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="hookleftarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="hookrightarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="looparrowleft" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="looparrowright" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="leftrightsquigarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="nleftrightarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="downzigzagarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Lsh" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Rsh" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Ldsh" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Rdsh" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="linefeed" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="carriagereturn" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="curvearrowleft" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="curvearrowright" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="barovernorthwestarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="barleftarrowrightarrowbar" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="leftharpoonup" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="leftharpoondown" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="upharpoonleft" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="rightharpoonup" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="rightharpoondown" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="downharpoonright" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="downharpoonleft" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="rightleftarrows" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="updownarrows" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="leftrightarrows" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="leftleftarrows" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="upuparrows" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="rightrightarrows" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="downdownarrows" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="leftrightharpoons" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="rightleftharpoons" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="nLeftarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="nLeftrightarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="nRightarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Leftarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Uparrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Downarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Leftrightarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Updownarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Nwarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Nearrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Searrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Swarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Lleftarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Rrightarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="leftsquigarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="nHuparrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="nHdownarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="leftdasharrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="updasharrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="downdasharrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="barleftarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="rightarrowbar" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="leftwhitearrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="upwhitearrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="rightwhitearrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="downwhitearrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="whitearrowupfrombar" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="circleonrightarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="downuparrows" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="rightthreearrows" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="nvleftarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="nvrightarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="nvleftrightarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="nVleftarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="nVrightarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="nVleftrightarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="leftarrowtriangle" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="rightarrowtriangle" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="leftrightarrowtriangle" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="forall" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="complement" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="partial" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="exists" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="nexists" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="emptyset" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="nabla" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="in" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="prod" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="coprod" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="sum" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="mp" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="dotplus" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="diagup" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="diagdown" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="ast" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="circ" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="propto" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="infty" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="rightangle" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="angle" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="measuredangle" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="sphericalangle" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="divides" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="nparallel" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="cap" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="cup" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="oint" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="oiint" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="oiiint" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="intclockwise" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="ointclockwise" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="ointctrclockwise" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="therefore" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="because" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="colon" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="squaredots" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="dotminus" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="minuscolon" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="sim" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="backsim" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="wr" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="nsim" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="eqsim" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="simeq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="nsimeq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="approxnEq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="approx" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="napprox" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="approxeq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="asymp" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Bumpeq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="doteq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="fallingdotseq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="risingdotseq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="colonequals" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="equalscolon" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="eqcirc" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="circeq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="wedgeeq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="veeeq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="stareq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="triangleq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="definedeq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="measuredeq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="questionedeq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="equiv" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="nequiv" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="leqq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="geqq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="lneqq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="gneqq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="ll" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="gg" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="between" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="nasymp" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="nless" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="ngtr" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="nleq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="ngeq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="lesssim" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="gtrsim" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="nlesssim" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="ngtrsim" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="lessgtr" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="gtrless" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="nlessgtr" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="ngtrless" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="prec" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="succ" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="preccurlyeq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="succcurlyeq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="precsim" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="succsim" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="nprec" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="nsucc" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="subset" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="supset" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="nsubset" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="nsupset" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="subseteq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="supseteq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="nsubseteq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="nsupseteq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="subsetneq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="supsetneq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="uplus" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="sqsubset" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="sqsupset" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="sqsubseteq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="sqsupseteq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="sqcap" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="sqcup" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="oplus" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="ominus" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="otimes" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="oslash" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="odot" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="circledcirc" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="circledast" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="circledequals" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="circleddash" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="boxplus" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="boxminus" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="boxtimes" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="boxdot" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="vdash" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="dashv" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="top" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="models" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="vDash" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Vdash" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Vvdash" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="VDash" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="nvdash" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="nvDash" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="nVdash" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="nVDash" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="multimap" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="intercal" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="veebar" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="barwedge" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="bigwedge" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="bigvee" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="bigcap" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="bigcup" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="diamond" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="star" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="divideontimes" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="ltimes" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="rtimes" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="leftthreetimes" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="rightthreetimes" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="curlyvee" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="curlywedge" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Subset" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Supset" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="pitchfork" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="lessdot" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="gtrdot" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="lesseqgtr" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="gtreqless" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="eqless" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="eqgtr" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="curlyeqprec" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="curlyeqsucc" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="npreccurlyeq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="nsucccurlyeq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="nsqsubseteq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="nsqsupseteq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="sqsubsetneq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="sqsupsetneq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="lnsim" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="gnsim" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="precnsim" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="succnsim" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="ntriangleright" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="ntriangleleft" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="ntrianglelefteq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="ntrianglerighteq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="vdots" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="cdots" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="udots" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="ddots" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="lceil" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="rceil" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="lfloor" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="rfloor" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="ulcorner" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="urcorner" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="llcorner" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="lrcorner" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="frown" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="smile" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="lmoustache" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="rmoustache" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="overbracket" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="underbracket" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="overparent" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="underparent" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="overbrace" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="underbrace" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="circledR" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="circledS" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="blacksquare" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="blacktriangle" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="blacktriangleright" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="triangleright" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="blacktriangledown" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="blacktriangleleft" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="triangleleft" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="lozenge" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="bigcirc" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="bigstar" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="spadesuit" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="heartsuit" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="diamondsuit" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="clubsuit" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="blacklozenge" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="flat" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="natural" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="sharp" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="checkmark" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="maltese" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="llbracket" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="rrbracket" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="langle" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="rangle" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="llangle" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="rrangle" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="lgroup" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="rgroup" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="longleftarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="longrightarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="longleftrightarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Longleftarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Longrightarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Longleftrightarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="longmapsfrom" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="longmapsto" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Longmapsfrom" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Longmapsto" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="longrightsquigarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Mapsfrom" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Mapsto" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Uuparrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="Ddownarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="dashedleftarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="dashedrightarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="dottedrightarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="twoheadrightarrowtail" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="nwsearrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="neswarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="lhooknwarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="rhooknearrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="lhooksearrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="rhookswarrow" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="bigodot" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="bigoplus" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="bigotimes" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="bigudot" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="biguplus" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="bigsqcap" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="bigsqcup" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="bigtimes" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="amalg" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="coloncolonequals" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="eqeq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="eqeqeq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="leqslant" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="geqslant" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="lessapprox" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="gtrapprox" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="lneq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="rneq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="lnapprox" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="gnapprox" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="lesseqqgtr" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="gtreqqless" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="eqslantless" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="eqslantgtr" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="preceq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="succeq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="precneq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="succneq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="preceqq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="succeqq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="precneqq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="succneqq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="precapprox" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="succapprox" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="precnapprox" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="succnapprox" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="subseteqq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="supseteqq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="subsetneqq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="supsetneqq" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="backprime" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="imath" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="jmath" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="vartheta" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="varkappa" level="document" category="character mathematics" file="char-def.lua"/>
-
- <cd:command name="varrho" level="document" category="character mathematics" file="char-def.lua"/>
-
-</cd:interface> \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-narrow.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-narrow.xml
index a229a2112bd..5133b63020e 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-narrow.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-narrow.xml
@@ -75,7 +75,7 @@
<cd:constant type="right" prefix="cd:number" method="factor"/>
<cd:constant type="reset"/>
<cd:constant type="reverse"/>
- </cd:keywords>
+ </cd:keywords>
</cd:arguments>
</cd:command>
@@ -100,7 +100,7 @@
<cd:constant type="right" prefix="cd:number" method="factor"/>
<cd:constant type="reset"/>
<cd:constant type="reverse"/>
- </cd:keywords>
+ </cd:keywords>
</cd:arguments>
</cd:command>
@@ -118,7 +118,7 @@
<cd:constant type="right" prefix="cd:number" method="factor"/>
<cd:constant type="reset"/>
<cd:constant type="reverse"/>
- </cd:keywords>
+ </cd:keywords>
</cd:arguments>
</cd:command>
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-note.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-note.xml
index 03e53a0e3f5..9bcf43d5b6e 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-note.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-note.xml
@@ -183,10 +183,6 @@
<cd:parameter name="headcolor">
<cd:constant type="cd:color"/>
</cd:parameter>
- <cd:parameter name="aligntitle">
- <cd:constant type="yes" default="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
<!-- end construction values -->
<cd:inherit name="setupcounter"/>
</cd:assignments>
@@ -471,8 +467,6 @@
<cd:command name="flushnotes" level="style" category="structure notes" file="strc-not.mkvi"/>
- <cd:command name="postponingnotes" type="environment" category="structure notes" file="strc-not.mkvi"/>
-
<cd:command name="doifelsenoteonsamepage" level="system" category="structure notes conditional" file="strc-not.mkvi">
<cd:arguments>
<cd:resolve name="argument-name"/>
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-pagecolumns.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-pagecolumns.xml
deleted file mode 100644
index 07ab20abba8..00000000000
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-pagecolumns.xml
+++ /dev/null
@@ -1,90 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<?context-directive job ctxfile x-setups.ctx ?>
-
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
-
- <cd:command name="definepagecolumns" level="style" category="structure layout" file="page-pcl.mkiv">
- <cd:arguments>
- <cd:resolve name="keyword-name"/>
- <cd:resolve name="keyword-name-optional"/>
- <cd:assignments list="yes" optional="yes">
- <cd:inherit name="setuppagecolumns"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppagecolumns" level="style" category="structure layout" file="page-pcl.mkiv">
- <cd:arguments>
- <cd:resolve name="keyword-name-list-optional"/>
- <cd:assignments list="yes">
- <cd:parameter name="separator">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="direction">
- <cd:constant type="normal" default="yes"/>
- <cd:constant type="reverse"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="maxwidth">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <!--
- <cd:parameter name="maxheight">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="step">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- -->
- <cd:parameter name="align">
- <cd:inherit name="setupalign"/>
- </cd:parameter>
- <cd:parameter name="blank">
- <cd:inherit name="blank"/>
- </cd:parameter>
- <!--
- <cd:parameter name="profile">
- <cd:inherit name="setprofile"/>
- </cd:parameter>
- -->
- <cd:parameter name="color">
- <cd:constant type="cd:color"/>
- </cd:parameter>
- <cd:parameter name="setups">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="page">
- <cd:inherit name="page"/>
- </cd:parameter>
- <cd:inherit name="setupframed"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="pagecolumns" type="environment" variant="name" level="document" category="structure layout" file="page-pcl.mkiv">
- <cd:arguments>
- <cd:resolve name="keyword-name-optional"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="pagecolumns" type="environment" level="document" category="structure layout" file="page-pcl.mkiv">
- <cd:arguments>
- <cd:assignments list="yes" optional="yes">
- <cd:inherit name="setuppagecolumns"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="pagecolumns" type="environment" generated="yes" variant="instance" level="document" category="structure layout" file="page-pcl.mkiv">
- <cd:sequence>
- <cd:instance value="pagecolumns"/>
- </cd:sequence>
- </cd:command>
-
-</cd:interface>
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-pagegrid.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-pagegrid.xml
index f25e72f7255..8e53ef8fc7f 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-pagegrid.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-pagegrid.xml
@@ -4,84 +4,19 @@
<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
- <!--
-
- <cd:command name="definepagegrid" level="style" category="layout" file="page-cst.mkiv">
- <cd:arguments>
- <cd:resolve name="keyword-name"/>
- <cd:resolve name="keyword-name-optional"/>
- <cd:assignments list="yes" optional="yes">
- <cd:inherit name="setuppagegrid"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- -->
-
- <cd:command name="definecolumnset" level="style" category="layout" file="page-cst.mkiv">
+ <cd:command name="definepagegrid" level="style" category="layout" file="page-cst.mkiv">
<cd:arguments>
<cd:resolve name="keyword-name"/>
<cd:resolve name="keyword-name-optional"/>
<cd:assignments list="yes" optional="yes">
- <cd:inherit name="setupcolumnset"/>
+ <cd:inherit name="setuppagegrid"/>
</cd:assignments>
</cd:arguments>
</cd:command>
- <!--
-
- <cd:command name="setuppagegrid" level="style" category="layout" file="page-cst.mkiv">
- <cd:arguments>
- <cd:keywords list="yes" optional="yes">
- <cd:constant type="cd:name"/>
- <cd:constant type="cd:number" prefix="cd:name" method="range"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nleft">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nright">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="width">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="auto"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="lines">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="maxwidth">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="maxheight">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="direction">
- <cd:constant type="normal" default="yes"/>
- <cd:constant type="reverse"/>
- </cd:parameter>
- <cd:parameter name="page">
- <cd:inherit name="page"/>
- </cd:parameter>
- <cd:inherit name="setupframed"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- -->
-
- <cd:command name="setupcolumnset" level="style" category="layout" file="page-cst.mkiv">
+ <cd:command name="setuppagegrid" level="style" category="layout" file="page-cst.mkiv">
<cd:arguments>
- <cd:keywords list="yes" optional="yes">
- <cd:constant type="cd:name"/>
- <cd:constant type="cd:number" prefix="cd:name" method="range"/>
- </cd:keywords>
+ <cd:resolve name="keyword-name-list-optional"/>
<cd:assignments list="yes">
<cd:parameter name="n">
<cd:constant type="cd:number"/>
@@ -92,7 +27,6 @@
<cd:parameter name="nright">
<cd:constant type="cd:number"/>
</cd:parameter>
- <!-- begin of values which can be set for each column -->
<cd:parameter name="width">
<cd:constant type="cd:dimension"/>
<cd:constant type="auto"/>
@@ -100,7 +34,6 @@
<cd:parameter name="distance">
<cd:constant type="cd:dimension"/>
</cd:parameter>
- <!-- end of values which can be set for each column -->
<cd:parameter name="lines">
<cd:constant type="cd:number"/>
</cd:parameter>
@@ -122,121 +55,57 @@
</cd:arguments>
</cd:command>
- <!--
-
- <cd:command name="pagegrid" type="environment" generated="yes" variant="example" level="document" category="layout" file="page-cst.mkiv">
- <cd:sequence>
- <cd:variable value="pagegrid"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes" optional="yes">
- <cd:inherit name="setuppagegrid"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="pagegrid" type="environment" level="document" category="layout" file="page-cst.mkiv">
- <cd:arguments>
- <cd:resolve name="keyword-name-optional"/>
- <cd:assignments list="yes" optional="yes">
- <cd:inherit name="setuppagegrid"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- -->
-
- <cd:command name="columnset" type="environment" generated="yes" variant="example" level="document" category="layout" file="page-cst.mkiv">
+ <cd:command name="pagegrid" type="environment" generated="yes" variant="example" level="document" category="layout" file="page-cst.mkiv">
<cd:sequence>
- <cd:variable value="columnset"/>
+ <cd:variable value="pagegrid"/>
</cd:sequence>
<cd:arguments>
<cd:assignments list="yes" optional="yes">
- <cd:inherit name="setupcolumnset"/>
+ <cd:inherit name="setuppagegrid"/>
</cd:assignments>
</cd:arguments>
</cd:command>
- <cd:command name="columnset" type="environment" level="document" category="layout" file="page-cst.mkiv">
+ <cd:command name="pagegrid" type="environment" level="document" category="layout" file="page-cst.mkiv">
<cd:arguments>
<cd:resolve name="keyword-name-optional"/>
<cd:assignments list="yes" optional="yes">
- <cd:inherit name="setupcolumnset"/>
+ <cd:inherit name="setuppagegrid"/>
</cd:assignments>
</cd:arguments>
</cd:command>
- <!--
-
- <cd:command name="setpagegrid" level="document" category="layout" file="page-cst.mkiv">
- <cd:arguments>
- <cd:assignments list="yes" optional="yes">
- <cd:parameter name="c">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="r">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="none" default="yes"/>
+ <cd:command name="setpagegrid" level="document" category="layout" file="page-cst.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="c">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="r">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="none" default="yes"/>
+ <!--
<cd:constant type="wide"/>
- </cd:parameter>
- </cd:assignments>
- <cd:content/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definepagegridspan" level="style" category="layout" file="page-cst.mkiv">
- <cd:arguments>
- <cd:resolve name="keyword-name"/>
- <cd:resolve name="keyword-name-optional"/>
- <cd:assignments list="yes" optional="yes">
- <cd:inherit name="setuppagegridspan"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- -->
+ -->
+ </cd:parameter>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
- <cd:command name="definecolumnsetspan" level="style" category="layout" file="page-cst.mkiv">
+ <cd:command name="definepagegridspan" level="style" category="layout" file="page-cst.mkiv">
<cd:arguments>
<cd:resolve name="keyword-name"/>
<cd:resolve name="keyword-name-optional"/>
<cd:assignments list="yes" optional="yes">
- <cd:inherit name="setupcolumnsetspan"/>
+ <cd:inherit name="setuppagegridspan"/>
</cd:assignments>
</cd:arguments>
</cd:command>
- <!--
-
- <cd:command name="setuppagegridspan" level="style" category="layout" file="page-cst.mkiv">
- <cd:arguments>
- <cd:resolve name="keyword-name-list-optional"/>
- <cd:assignments list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="value-style"/>
- </cd:parameter>
- <cd:parameter name="color">
- <cd:constant type="cd:color"/>
- </cd:parameter>
- <cd:parameter name="before">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="after">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:inherit name="setupframed"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- -->
-
- <cd:command name="setupcolumnsetspan" level="style" category="layout" file="page-cst.mkiv">
+ <cd:command name="setuppagegridspan" level="style" category="layout" file="page-cst.mkiv">
<cd:arguments>
<cd:resolve name="keyword-name-list-optional"/>
<cd:assignments list="yes">
@@ -260,111 +129,32 @@
</cd:arguments>
</cd:command>
- <!--
-
- <cd:command name="pagegridspan" type="environment" level="document" category="layout" file="page-cst.mkiv">
- <cd:arguments>
- <cd:resolve name="keyword-name"/>
- <cd:assignments list="yes" optional="yes">
- <cd:inherit name="setuppagegridspan"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- -->
-
- <cd:command name="columnsetspan" type="environment" level="document" category="layout" file="page-cst.mkiv">
+ <cd:command name="pagegridspan" type="environment" level="document" category="layout" file="page-cst.mkiv">
<cd:arguments>
<cd:resolve name="keyword-name"/>
<cd:assignments list="yes" optional="yes">
- <cd:inherit name="setupcolumnsetspan"/>
+ <cd:inherit name="setuppagegridspan"/>
</cd:assignments>
</cd:arguments>
</cd:command>
- <!--
-
- <cd:command name="pagegridspanwidth" level="style" category="layout" file="page-cst.mkiv">
- <cd:arguments>
- <cd:resolve name="argument-number"/>
- </cd:arguments>
- </cd:command>
-
- -->
-
- <cd:command name="columnsetspanwidth" level="style" category="layout" file="page-cst.mkiv">
+ <cd:command name="pagegridspanwidth" level="style" category="layout" file="page-cst.mkiv">
<cd:arguments>
<cd:resolve name="argument-number"/>
</cd:arguments>
</cd:command>
- <!--
-
- <cd:command name="definepagegridarea" level="style" category="layout" file="page-cst.mkiv">
- <cd:arguments>
- <cd:resolve name="keyword-name"/>
- <cd:resolve name="keyword-name-optional"/>
- <cd:assignments list="yes" optional="yes">
- <cd:inherit name="setuppagegridarea"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- -->
-
- <cd:command name="definecolumnsetarea" level="style" category="layout" file="page-cst.mkiv">
+ <cd:command name="definepagegridarea" level="style" category="layout" file="page-cst.mkiv">
<cd:arguments>
<cd:resolve name="keyword-name"/>
<cd:resolve name="keyword-name-optional"/>
<cd:assignments list="yes" optional="yes">
- <cd:inherit name="setupcolumnsetarea"/>
+ <cd:inherit name="setuppagegridarea"/>
</cd:assignments>
</cd:arguments>
</cd:command>
- <!--
-
- <cd:command name="setuppagegridarea" level="style" category="layout" file="page-cst.mkiv">
- <cd:arguments>
- <cd:resolve name="keyword-name-list-optional"/>
- <cd:assignments list="yes">
- <cd:parameter name="state">
- <cd:constant type="start"/>
- <cd:constant type="stop" default="yes"/>
- <cd:constant type="repeat"/>
- </cd:parameter>
- <cd:parameter name="x">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="value-style"/>
- </cd:parameter>
- <cd:parameter name="color">
- <cd:constant type="cd:color"/>
- </cd:parameter>
- <cd:parameter name="clipoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rightoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:inherit name="setupframed"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- -->
-
- <cd:command name="setupcolumnsetarea" level="style" category="layout" file="page-cst.mkiv">
+ <cd:command name="setuppagegridarea" level="style" category="layout" file="page-cst.mkiv">
<cd:arguments>
<cd:resolve name="keyword-name-list-optional"/>
<cd:assignments list="yes">
@@ -402,38 +192,14 @@
</cd:arguments>
</cd:command>
- <!--
-
- <cd:command name="setuppagegridareatext" level="style" category="layout" file="page-cst.mkiv">
- <cd:arguments>
- <cd:resolve name="keyword-name"/>
- <cd:resolve name="keyword-text"/>
- </cd:arguments>
- </cd:command>
-
- -->
-
- <cd:command name="setupcolumnsetareatext" level="style" category="layout" file="page-cst.mkiv">
+ <cd:command name="setuppagegridareatext" level="style" category="layout" file="page-cst.mkiv">
<cd:arguments>
<cd:resolve name="keyword-name"/>
<cd:resolve name="keyword-text"/>
</cd:arguments>
</cd:command>
- <!--
-
- <cd:command name="setuppagegridlines" level="style" category="layout" file="page-cst.mkiv">
- <cd:arguments>
- <cd:resolve name="keyword-name"/>
- <cd:resolve name="keyword-number"/>
- <cd:resolve name="keyword-number"/>
- <cd:resolve name="keyword-number"/>
- </cd:arguments>
- </cd:command>
-
- -->
-
- <cd:command name="setupcolumnsetlines" level="style" category="layout" file="page-cst.mkiv">
+ <cd:command name="setuppagegridlines" level="style" category="layout" file="page-cst.mkiv">
<cd:arguments>
<cd:resolve name="keyword-name"/>
<cd:resolve name="keyword-number"/>
@@ -442,20 +208,7 @@
</cd:arguments>
</cd:command>
- <!--
-
- <cd:command name="setuppagegridstart" level="style" category="layout" file="page-cst.mkiv">
- <cd:arguments>
- <cd:resolve name="keyword-name"/>
- <cd:resolve name="keyword-number"/>
- <cd:resolve name="keyword-number"/>
- <cd:resolve name="keyword-number"/>
- </cd:arguments>
- </cd:command>
-
- -->
-
- <cd:command name="setupcolumnsetstart" level="style" category="layout" file="page-cst.mkiv">
+ <cd:command name="setuppagegridstart" level="style" category="layout" file="page-cst.mkiv">
<cd:arguments>
<cd:resolve name="keyword-name"/>
<cd:resolve name="keyword-number"/>
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-pagemarks.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-pagemarks.xml
index 4d41bbfdd2a..036f518b99e 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-pagemarks.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-pagemarks.xml
@@ -4,28 +4,16 @@
<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
- <cd:command name="markpage" level="style" file="page-ini.mkiv">
+ <cd:command name="markpage" level="style" file="page-lay.mkiv">
<cd:arguments>
<cd:resolve name="keyword-name"/>
- <cd:keywords list="yes" optional="yes">
+ <cd:keywords optional="yes">
<cd:constant type="cd:number" prefix="cd:sign" method="none"/>
</cd:keywords>
</cd:arguments>
</cd:command>
- <cd:command name="markedpages" level="style" file="page-ini.mkiv">
- <cd:arguments>
- <cd:resolve name="keyword-name"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="markpages" type="environment" level="style" file="page-ini.mkiv">
- <cd:arguments>
- <cd:resolve name="keyword-name"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="doifelsemarkedpage" level="style" category="conditional" file="page-ini.mkiv">
+ <cd:command name="doifelsemarkedpage" level="style" category="conditional" file="page-lay.mkiv">
<cd:arguments>
<cd:resolve name="argument-name"/>
<cd:resolve name="argument-true"/>
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-pagestate.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-pagestate.xml
index e705ba7e715..941068399fe 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-pagestate.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-pagestate.xml
@@ -4,17 +4,6 @@
<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
- <cd:command name="signalrightpage" level="system" file="spac-pag.mkiv"/>
-
- <cd:command name="doifelserightpage" level="system" file="spac-pag.mkiv">
- <cd:arguments>
- <cd:resolve name="argument-true"/>
- <cd:resolve name="argument-false"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="rightpageorder" level="system" file="spac-pag.mkiv"/>
-
<cd:command name="definepagestate" level="system" file="core-dat.mkiv">
<cd:arguments>
<cd:resolve name="keyword-name"/>
@@ -67,32 +56,4 @@
</cd:arguments>
</cd:command>
- <cd:command name="pagestaterealpageorder" level="system" file="core-dat.mkiv">
- <cd:arguments>
- <cd:resolve name="argument-name"/>
- <cd:keywords delimiters="braces">
- <cd:constant type="cd:name"/>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="autopagestaterealpage" level="system" file="core-dat.mkiv">
- <cd:arguments>
- <cd:resolve name="argument-name"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setautopagestaterealpageno" level="system" file="core-dat.mkiv">
- <cd:arguments>
- <cd:resolve name="argument-name"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="autopagestaterealpageorder" level="system" file="core-dat.mkiv">
- <cd:arguments>
- <cd:resolve name="argument-name"/>
- </cd:arguments>
- </cd:command>
-
-</cd:interface>
+</cd:interface> \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-readme.pdf b/Master/texmf-dist/tex/context/interface/mkiv/i-readme.pdf
index a0a875e51a6..ee6712cfd09 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-readme.pdf
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-readme.pdf
Binary files differ
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-register.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-register.xml
index 7ba3a0f7c8e..4d8010559c7 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-register.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-register.xml
@@ -49,10 +49,6 @@
<cd:constant type="all"/>
<cd:constant type="packed"/>
</cd:parameter>
- <cd:parameter name="check">
- <cd:constant type="yes" default="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
<cd:parameter name="criterium">
<cd:constant type="local"/>
<cd:constant type="text"/>
@@ -166,12 +162,6 @@
<cd:parameter name="pagecolor">
<cd:constant type="cd:color"/>
</cd:parameter>
- <cd:parameter name="pageleft">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="pageright">
- <cd:constant type="cd:command"/>
- </cd:parameter>
<cd:parameter name="n">
<cd:constant type="cd:number"/>
</cd:parameter>
@@ -225,10 +215,6 @@
<cd:constant type="no" default="yes"/>
<cd:constant type="all"/>
</cd:parameter>
- <cd:parameter name="check">
- <cd:constant type="yes" default="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
<cd:parameter name="criterium">
<cd:constant type="local"/>
<cd:constant type="text"/>
@@ -342,12 +328,6 @@
<cd:parameter name="pagecolor">
<cd:constant type="cd:color"/>
</cd:parameter>
- <cd:parameter name="pageleft">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="pageright">
- <cd:constant type="cd:command"/>
- </cd:parameter>
<cd:parameter name="n">
<cd:constant type="cd:number"/>
</cd:parameter>
@@ -564,7 +544,7 @@
</cd:keywords>
<cd:index list="yes"/>
</cd:arguments>
- </cd:command>
+ </cd:command>
<cd:command name="stopregister" level="document" category="structure" file="strc-reg.mkiv">
<cd:arguments>
@@ -684,4 +664,4 @@
</cd:arguments>
</cd:command>
-</cd:interface>
+</cd:interface> \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-ruby.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-ruby.xml
index 4422029b80c..10bcff22e12 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-ruby.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-ruby.xml
@@ -22,7 +22,6 @@
<cd:constant type="top" default="yes"/>
<cd:constant type="left"/>
<cd:constant type="right"/>
- <cd:constant type="none"/>
</cd:parameter>
<cd:parameter name="align">
<cd:constant type="auto"/>
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-scale.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-scale.xml
index 36a46479e9d..3d26ed76fa0 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-scale.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-scale.xml
@@ -44,7 +44,6 @@
<cd:constant type="fit"/>
<cd:constant type="broad"/>
<cd:constant type="max"/>
- <cd:constant type="min"/>
<cd:constant type="auto"/>
<cd:constant type="default"/>
</cd:parameter>
@@ -52,7 +51,6 @@
<cd:constant type="fit"/>
<cd:constant type="broad"/>
<cd:constant type="max"/>
- <cd:constant type="min"/>
<cd:constant type="auto"/>
<cd:constant type="default"/>
</cd:parameter>
@@ -60,7 +58,6 @@
<cd:constant type="fit"/>
<cd:constant type="broad"/>
<cd:constant type="max"/>
- <cd:constant type="min"/>
<cd:constant type="auto"/>
<cd:constant type="default"/>
</cd:parameter>
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-script.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-script.xml
index affa2658bf1..9af0174921e 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-script.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-script.xml
@@ -47,19 +47,15 @@
<cd:command name="setscript" level="style" category="language" file="scrp-ini.mkvi">
<cd:arguments>
- <cd:resolve name="keyword-script"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setlocalscript" level="style" category="language" file="scrp-ini.mkvi">
- <cd:arguments>
- <cd:resolve name="keyword-script"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setglobalscript" level="style" category="language" file="scrp-ini.mkvi">
- <cd:arguments>
- <cd:resolve name="keyword-script"/>
+ <cd:keywords>
+ <cd:constant type="hangul"/>
+ <cd:constant type="hanzi"/>
+ <cd:constant type="nihongo"/>
+ <cd:constant type="ethiopic"/>
+ <cd:constant type="thai"/>
+ <cd:constant type="test"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
</cd:arguments>
</cd:command>
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-section.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-section.xml
index b4229d5fd7f..f3cf13d3e7b 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-section.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-section.xml
@@ -518,4 +518,4 @@
<cd:command name="headsetupspacing" level="system" category="structure" file="strc-ren.mkiv"/>
-</cd:interface> \ No newline at end of file
+</cd:interface>
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-setups.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-setups.xml
index a3773e8f77d..df7281e74ed 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-setups.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-setups.xml
@@ -64,13 +64,6 @@
</cd:arguments>
</cd:command>
- <cd:command name="copysetups" level="system" file="core-env.mkiv">
- <cd:arguments>
- <cd:resolve name="keyword-name"/>
- <cd:resolve name="keyword-name"/>
- </cd:arguments>
- </cd:command>
-
<cd:command name="showsetupsdefinition" level="system" file="core-env.mkiv">
<cd:arguments>
<cd:resolve name="keyword-name"/>
@@ -228,4 +221,4 @@
</cd:arguments>
</cd:command>
-</cd:interface>
+</cd:interface> \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-startstop.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-startstop.xml
index ba0abb0b7d8..c7780488c0c 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-startstop.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-startstop.xml
@@ -57,32 +57,10 @@
</cd:sequence>
</cd:command>
- <!--
-
- Variant 1: <cd:string value="zero width space"/>
-
- <cd:command name="startstop" type="environment" level="document" category="structure" file="core-sys.mkiv">
- <cd:sequence>
- <cd:string value="​"/>
- </cd:sequence>
- <cd:arguments>
- <cd:resolve name="keyword-name-optional"/>
- </cd:arguments>
- </cd:command>
-
- Variant 2: <cd:delimiter name="stop"/>
-
- <cd:command name="start" level="document" category="structure" file="core-sys.mkiv">
- <cd:arguments>
- <cd:resolve name="keyword-name-optional"/>
- <cd:resolve name="string-content"/>
- <cd:delimiter name="stop"/>
- </cd:arguments>
- </cd:command>
-
- -->
-
- <cd:command name="" type="environment" level="document" category="structure" file="core-sys.mkiv">
+ <cd:command name="startstop" type="environment" level="document" category="structure" file="core-sys.mkiv">
+ <cd:sequence>
+ <cd:string value="​"/><!-- value="zero width space -->
+ </cd:sequence>
<cd:arguments>
<cd:resolve name="keyword-name-optional"/>
</cd:arguments>
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-strut.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-strut.xml
index d686d6ee0d2..0653dd21426 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-strut.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-strut.xml
@@ -52,8 +52,6 @@
<cd:command name="setfontstrut" level="system" file="spac-ver.mkiv"/>
- <cd:command name="settightstrut" level="system" file="spac-ver.mkiv"/>
-
<cd:command name="setcapstrut" level="system" file="spac-ver.mkiv"/>
<cd:command name="setnostrut" level="system" file="spac-ver.mkiv"/>
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-symbol.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-symbol.xml
index 498684cad77..123e98cbf2c 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-symbol.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-symbol.xml
@@ -119,11 +119,6 @@
<cd:command name="symbolset" type="environment" level="style" category="symbols" file="symb-ini.mkiv">
<cd:arguments>
<cd:resolve name="keyword-name"/>
- <cd:assignments list="yes" optional="yes">
- <cd:parameter name="font">
- <cd:constant type="cd:font"/>
- </cd:parameter>
- </cd:assignments>
</cd:arguments>
</cd:command>
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-system.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-system.xml
index c8abff23827..44def10e077 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-system.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-system.xml
@@ -1007,12 +1007,6 @@
</cd:arguments>
</cd:command>
- <cd:command name="firstinlist" level="system" file="syst-aux.mkiv">
- <cd:arguments>
- <cd:resolve name="keyword-command-list"/>
- </cd:arguments>
- </cd:command>
-
<cd:command name="dogetcommacommandelement" level="system" file="syst-aux.mkiv">
<cd:arguments>
<cd:resolve name="string-number"/>
@@ -1647,7 +1641,7 @@
<cd:command name="increment" variant="argument" level="system" file="syst-aux.mkiv">
<cd:arguments>
- <cd:keywords delimiters="parenthesis" list="yes">
+ <cd:keywords delimiters="parentheses" list="yes">
<cd:constant type="cd:csname"/>
<cd:constant type="cd:number"/>
</cd:keywords>
@@ -1662,7 +1656,7 @@
<cd:command name="decrement" variant="argument" level="system" file="syst-aux.mkiv">
<cd:arguments>
- <cd:keywords delimiters="parenthesis" list="yes">
+ <cd:keywords delimiters="parentheses" list="yes">
<cd:constant type="cd:csname"/>
<cd:constant type="cd:number"/>
</cd:keywords>
@@ -1840,22 +1834,6 @@
</cd:arguments>
</cd:command>
- <cd:command name="doifelseassignmentcs" level="system" file="syst-aux.mkiv">
- <cd:arguments>
- <cd:resolve name="argument-text"/>
- <cd:csname/>
- <cd:csname/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="doifassignmentelsecs" level="system" file="syst-aux.mkiv">
- <cd:arguments>
- <cd:resolve name="argument-text"/>
- <cd:csname/>
- <cd:csname/>
- </cd:arguments>
- </cd:command>
-
<cd:command name="convertargument" level="system" file="syst-aux.mkiv">
<cd:arguments>
<cd:resolve name="string-text"/>
@@ -3623,31 +3601,6 @@
</cd:arguments>
</cd:command>
- <cd:command name="expandeddoif" level="system" file="syst-lua.mkiv">
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- <cd:resolve name="argument-true"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="expandeddoifnot" level="system" file="syst-lua.mkiv">
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- <cd:resolve name="argument-true"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="expandeddoifelse" level="system" file="syst-lua.mkiv">
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- <cd:resolve name="argument-true"/>
- <cd:resolve name="argument-false"/>
- </cd:arguments>
- </cd:command>
-
<cd:command name="expdoifelsecommon" level="system" file="syst-lua.mkiv">
<cd:arguments>
<cd:resolve name="argument-text-list"/>
@@ -3690,4 +3643,4 @@
</cd:arguments>
</cd:command>
-</cd:interface>
+</cd:interface> \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-tabulation.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-tabulation.xml
index 6768b9b4cf6..3efc34f42ef 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-tabulation.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-tabulation.xml
@@ -38,27 +38,6 @@
<cd:constant type="grid"/>
<cd:constant type="cd:dimension"/>
</cd:parameter>
- <cd:parameter name="blank">
- <cd:resolve name="value-blank"/>
- </cd:parameter>
- <cd:parameter name="headstyle">
- <cd:resolve name="value-style"/>
- </cd:parameter>
- <cd:parameter name="headcolor">
- <cd:constant type="cd:color"/>
- </cd:parameter>
- <cd:parameter name="background">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="backgroundcolor">
- <cd:constant type="cd:color"/>
- </cd:parameter>
- <cd:parameter name="foregroundstyle">
- <cd:resolve name="value-style"/>
- </cd:parameter>
- <cd:parameter name="foregroundcolor">
- <cd:constant type="cd:color"/>
- </cd:parameter>
<cd:parameter name="align">
<cd:constant type="left"/>
<cd:constant type="middle"/>
@@ -297,4 +276,4 @@
-->
-</cd:interface>
+</cd:interface> \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-tagging.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-tagging.xml
index d07b32ec1e0..3e0d49d8063 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-tagging.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-tagging.xml
@@ -25,7 +25,7 @@
</cd:arguments>
</cd:command>
- <cd:command name="element" type="environment" level="document" category="xml" file="strc-tag.mkiv">
+ <cd:command name="element" type="environment" category="xml" file="strc-tag.mkiv">
<cd:arguments>
<cd:resolve name="argument-name"/>
<cd:resolve name="assignment-userdata-list-optional"/>
@@ -72,10 +72,4 @@
</cd:arguments>
</cd:command>
- <cd:command name="ignoretagsinexport" level="style" category="xml" file="strc-tag.mkiv">
- <cd:arguments>
- <cd:resolve name="keyword-name-list"/>
- </cd:arguments>
- </cd:command>
-
-</cd:interface>
+</cd:interface> \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-texts.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-texts.xml
index f0f515fbc2c..bd1b128b38c 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-texts.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-texts.xml
@@ -165,75 +165,6 @@
</cd:arguments>
</cd:command>
- <!--
-
- <cd:command name="setuptop" level="style" category="layout" file="page-txt.mkvi">
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="text"/>
- <cd:constant type="margin"/>
- <cd:constant type="edge"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="setuplayoutelement"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupheader" level="style" category="layout" file="page-txt.mkvi">
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="text"/>
- <cd:constant type="margin"/>
- <cd:constant type="edge"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="setuplayoutelement"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptext" level="style" category="layout" file="page-txt.mkvi">
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="text"/>
- <cd:constant type="margin"/>
- <cd:constant type="edge"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="setuplayoutelement"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfooter" level="style" category="layout" file="page-txt.mkvi">
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="text"/>
- <cd:constant type="margin"/>
- <cd:constant type="edge"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="setuplayoutelement"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbottom" level="style" category="layout" file="page-txt.mkvi">
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="text"/>
- <cd:constant type="margin"/>
- <cd:constant type="edge"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="setuplayoutelement"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- -->
-
<cd:command name="setuptop" level="style" category="layout" file="page-txt.mkvi">
<cd:arguments>
<cd:keywords optional="yes">
@@ -242,7 +173,7 @@
<cd:constant type="edge"/>
</cd:keywords>
<cd:assignments list="yes">
- <cd:inherit name="setuplayouttext"/>
+ <cd:inherit name="setuplayoutelement"/>
</cd:assignments>
</cd:arguments>
</cd:command>
@@ -255,7 +186,7 @@
<cd:constant type="edge"/>
</cd:keywords>
<cd:assignments list="yes">
- <cd:inherit name="setuplayouttext"/>
+ <cd:inherit name="setuplayoutelement"/>
</cd:assignments>
</cd:arguments>
</cd:command>
@@ -268,7 +199,7 @@
<cd:constant type="edge"/>
</cd:keywords>
<cd:assignments list="yes">
- <cd:inherit name="setuplayouttext"/>
+ <cd:inherit name="setuplayoutelement"/>
</cd:assignments>
</cd:arguments>
</cd:command>
@@ -281,7 +212,7 @@
<cd:constant type="edge"/>
</cd:keywords>
<cd:assignments list="yes">
- <cd:inherit name="setuplayouttext"/>
+ <cd:inherit name="setuplayoutelement"/>
</cd:assignments>
</cd:arguments>
</cd:command>
@@ -294,7 +225,7 @@
<cd:constant type="edge"/>
</cd:keywords>
<cd:assignments list="yes">
- <cd:inherit name="setuplayouttext"/>
+ <cd:inherit name="setuplayoutelement"/>
</cd:assignments>
</cd:arguments>
</cd:command>
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-token.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-token.xml
index 09e2ad3d6df..129f472ba1a 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-token.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-token.xml
@@ -28,35 +28,4 @@
</cd:arguments>
</cd:command>
- <cd:command name="definetokenlist" level="style" file="toks-aux.mkiv">
- <cd:arguments>
- <cd:resolve name="keyword-name"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="tokenlist" type="environment" level="style" file="toks-aux.mkiv">
- <cd:arguments>
- <cd:resolve name="keyword-name"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="gettokenlist" level="style" file="toks-aux.mkiv">
- <cd:arguments>
- <cd:resolve name="keyword-name"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="resettokenlist" level="style" file="toks-aux.mkiv">
- <cd:arguments>
- <cd:resolve name="keyword-name"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="settokenlist" level="style" file="toks-aux.mkiv">
- <cd:arguments>
- <cd:resolve name="keyword-name"/>
- <cd:resolve name="argument-text"/>
- </cd:arguments>
- </cd:command>
-
</cd:interface> \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-unit.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-unit.xml
index c8092a4ed2b..9efa452ebc5 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-unit.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-unit.xml
@@ -125,16 +125,4 @@
</cd:arguments>
</cd:command>
- <cd:command name="spaceddigitsmethod" level="style" category="symbols" file="core-con.mkiv"/> <!-- alternative methods : 1 default, 2 and 3 only when > 4 -->
-
- <cd:command name="spaceddigitssymbol" level="style" category="symbols" file="core-con.mkiv"/> <!-- extra splitter symbol : {,} -->
-
- <cd:command name="spaceddigitsseparator" level="style" category="symbols" file="core-con.mkiv"/><!-- separator symbol : {\Uchar{"2008}} -->
-
- <cd:command name="spaceddigits" level="document" category="symbols" file="core-con.mkiv">
- <cd:arguments>
- <cd:resolve name="argument-number"/>
- </cd:arguments>
- </cd:command>
-
</cd:interface> \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-userdata.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-userdata.xml
deleted file mode 100644
index e9617f0bc18..00000000000
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-userdata.xml
+++ /dev/null
@@ -1,85 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<?context-directive job ctxfile x-setups.ctx ?>
-
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
-
- <cd:command name="defineuserdata" level="style" category="structure" file="strc-usr.mkiv">
- <cd:arguments>
- <cd:resolve name="keyword-name"/>
- <cd:resolve name="keyword-name-optional"/>
- <cd:assignments list="yes" optional="yes">
- <cd:inherit name="setupuserdata"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupuserdata" level="style" category="structure" file="strc-usr.mkiv">
- <cd:arguments>
- <cd:resolve name="keyword-name-list-optional"/>
- <cd:assignments list="yes">
- <cd:parameter name="before">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="after">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="align">
- <cd:inherit name="setupalign"/>
- </cd:parameter>
- <cd:parameter name="setups">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="value-style"/>
- </cd:parameter>
- <cd:parameter name="color">
- <cd:constant type="cd:color"/>
- </cd:parameter>
- <cd:parameter name="alternative">
- <cd:constant type="default"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="cd:key">
- <cd:constant type="cd:value"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="userdata" type="environment" level="document" category="structure" file="strc-usr.mkiv">
- <cd:arguments>
- <cd:resolve name="keyword-name-optional"/>
- <cd:resolve name="assignment-userdata-list-optional"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineuserdataalternative" level="style" category="structure" file="strc-usr.mkiv">
- <cd:arguments>
- <cd:resolve name="keyword-name"/>
- <cd:resolve name="keyword-name-optional"/>
- <cd:assignments list="yes" optional="yes">
- <cd:inherit name="setupuserdataalternative"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupuserdataalternative" level="style" category="structure" file="strc-usr.mkiv">
- <cd:arguments>
- <cd:resolve name="keyword-name-list-optional"/>
- <cd:assignments list="yes">
- <cd:parameter name="renderingsetup">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="cd:key">
- <cd:constant type="cd:value"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="getuserdata" level="style" category="structure" file="strc-usr.mkiv"/>
-
- <cd:command name="getinlineuserdata" level="style" category="structure" file="strc-usr.mkiv"/>
-
-</cd:interface>
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-verbatim.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-verbatim.xml
index 830b8bb110d..e8abc1f66a8 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-verbatim.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-verbatim.xml
@@ -321,7 +321,7 @@
</cd:arguments>
</cd:command>
- <cd:command name="doifelsetypingfile" category="verbatim conditional" level="system" file="buff-ver.mkiv">
+ <cd:command name="doifelsetypingfile" category="verbatim" level="system conditional" file="buff-ver.mkiv">
<cd:arguments>
<cd:resolve name="argument-file"/>
<cd:resolve name="argument-true"/>
@@ -329,7 +329,7 @@
</cd:arguments>
</cd:command>
- <cd:command name="doiftypingfileelse" category="verbatim conditional" level="system" file="buff-ver.mkiv">
+ <cd:command name="doiftypingfileelse" category="verbatim" level="system conditional" file="buff-ver.mkiv">
<cd:arguments>
<cd:resolve name="argument-file"/>
<cd:resolve name="argument-true"/>
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-visualizer.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-visualizer.xml
index 81d02f4fbaf..daaad28cd3d 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-visualizer.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-visualizer.xml
@@ -112,19 +112,19 @@
<cd:arguments>
<cd:keywords optional="yes">
<cd:constant type="makeup" default="yes"/>
- <cd:constant type="reset"/>
- <cd:constant type="boxes"/>
<cd:constant type="all"/>
+ <cd:constant type="boxes"/>
+ <cd:constant type="line"/>
+ <cd:constant type="glyph"/>
+ <cd:constant type="fontkern"/>
<cd:constant type="hbox"/>
<cd:constant type="vbox"/>
<cd:constant type="vtop"/>
<cd:constant type="kern"/>
<cd:constant type="glue"/>
<cd:constant type="penalty"/>
- <cd:constant type="fontkern"/>
<cd:constant type="strut"/>
<cd:constant type="whatsit"/>
- <cd:constant type="glyph"/>
<cd:constant type="simple"/>
<cd:constant type="simplehbox"/>
<cd:constant type="simplevbox"/>
@@ -133,11 +133,7 @@
<cd:constant type="math"/>
<cd:constant type="italic"/>
<cd:constant type="origin"/>
- <cd:constant type="discretionary"/>
- <cd:constant type="expansion"/>
- <cd:constant type="line"/>
- <cd:constant type="space"/>
- <cd:constant type="depth"/>
+ <cd:constant type="reset"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -152,10 +148,6 @@
<cd:command name="showfontitalics" level="document" file="trc-vis.mkiv"/>
- <cd:command name="showglyphdata" level="document" file="trc-vis.mkiv"/>
-
- <cd:command name="showfontexpansion" level="document" file="trc-vis.mkiv"/>
-
<cd:command name="setvisualizerfont" level="system" file="trc-vis.mkiv">
<cd:arguments>
<cd:resolve name="keyword-font-optional"/>
@@ -164,4 +156,4 @@
<cd:command name="resetvisualizers" level="system" file="trc-vis.mkiv"/>
-</cd:interface>
+</cd:interface> \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-vspace.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-vspace.xml
index 5e970d317c6..ce6d5ac083a 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-vspace.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-vspace.xml
@@ -24,7 +24,52 @@
<cd:command name="vspacing" level="system" category="whitespace" file="spac-ver.mkiv">
<cd:arguments>
<cd:keywords list="yes" optional="yes">
- <cd:resolve name="value-blank"/>
+ <cd:constant type="preference"/>
+ <cd:constant type="samepage"/>
+ <cd:constant type="max"/>
+ <cd:constant type="force"/>
+ <cd:constant type="enable"/>
+ <cd:constant type="disable"/>
+ <cd:constant type="nowhite"/>
+ <cd:constant type="packed"/>
+ <cd:constant type="back"/>
+ <cd:constant type="overlay"/>
+ <cd:constant type="always"/>
+ <cd:constant type="weak"/>
+ <cd:constant type="strong"/>
+ <cd:constant type="default"/>
+ <cd:constant type="before"/>
+ <cd:constant type="inbetween"/>
+ <cd:constant type="after"/>
+ <cd:constant type="fixed"/>
+ <cd:constant type="flexible"/>
+ <cd:constant type="none"/>
+ <cd:constant type="small"/>
+ <cd:constant type="medium"/>
+ <cd:constant type="big"/>
+ <cd:constant type="line"/>
+ <cd:constant type="halfline"/>
+ <cd:constant type="quarterline"/>
+ <cd:constant type="formula"/>
+ <cd:constant type="white"/>
+ <cd:constant type="height"/>
+ <cd:constant type="depth"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="small" prefix="cd:number" method="factor"/>
+ <cd:constant type="medium" prefix="cd:number" method="factor"/>
+ <cd:constant type="big" prefix="cd:number" method="factor"/>
+ <cd:constant type="line" prefix="cd:number" method="factor"/>
+ <cd:constant type="halfline" prefix="cd:number" method="factor"/>
+ <cd:constant type="quarterline" prefix="cd:number" method="factor"/>
+ <cd:constant type="formula" prefix="cd:number" method="factor"/>
+ <cd:constant type="white" prefix="cd:number" method="factor"/>
+ <cd:constant type="height" prefix="cd:number" method="factor"/>
+ <cd:constant type="depth" prefix="cd:number" method="factor"/>
+ <cd:constant type="cd:number" prefix="category" method="range"/>
+ <cd:constant type="cd:number" prefix="order" method="range"/>
+ <cd:constant type="cd:number" prefix="penalty" method="range"/>
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="cd:name"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -76,7 +121,51 @@
<cd:command name="blank" level="document" category="whitespace" file="spac-ver.mkiv">
<cd:arguments>
<cd:keywords list="yes" optional="yes">
- <cd:resolve name="value-blank"/>
+ <cd:constant type="preference"/>
+ <cd:constant type="samepage"/>
+ <cd:constant type="max"/>
+ <cd:constant type="force"/>
+ <cd:constant type="enable"/>
+ <cd:constant type="disable"/>
+ <cd:constant type="nowhite"/>
+ <cd:constant type="back"/>
+ <cd:constant type="overlay"/>
+ <cd:constant type="always"/>
+ <cd:constant type="weak"/>
+ <cd:constant type="strong"/>
+ <cd:constant type="default"/>
+ <cd:constant type="before"/>
+ <cd:constant type="inbetween"/>
+ <cd:constant type="after"/>
+ <cd:constant type="fixed"/>
+ <cd:constant type="flexible"/>
+ <cd:constant type="none"/>
+ <cd:constant type="small"/>
+ <cd:constant type="medium"/>
+ <cd:constant type="big"/>
+ <cd:constant type="line"/>
+ <cd:constant type="halfline"/>
+ <cd:constant type="quarterline"/>
+ <cd:constant type="formula"/>
+ <cd:constant type="white"/>
+ <cd:constant type="height"/>
+ <cd:constant type="depth"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="small" prefix="cd:number" method="factor"/>
+ <cd:constant type="medium" prefix="cd:number" method="factor"/>
+ <cd:constant type="big" prefix="cd:number" method="factor"/>
+ <cd:constant type="line" prefix="cd:number" method="factor"/>
+ <cd:constant type="halfline" prefix="cd:number" method="factor"/>
+ <cd:constant type="quarterline" prefix="cd:number" method="factor"/>
+ <cd:constant type="formula" prefix="cd:number" method="factor"/>
+ <cd:constant type="white" prefix="cd:number" method="factor"/>
+ <cd:constant type="height" prefix="cd:number" method="factor"/>
+ <cd:constant type="depth" prefix="cd:number" method="factor"/>
+ <cd:constant type="cd:number" prefix="category" method="range"/>
+ <cd:constant type="cd:number" prefix="order" method="range"/>
+ <cd:constant type="cd:number" prefix="penalty" method="range"/>
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="cd:name"/>
</cd:keywords>
</cd:arguments>
</cd:command>
@@ -124,20 +213,4 @@
<cd:command name="bigskip" level="system" category="whitespace" file="spac-ver.mkiv"/>
- <cd:command name="checkedblank" level="system" category="whitespace" file="spac-ver.mkiv">
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:inherit name="blank"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="prerollblank" level="system" category="whitespace" file="spac-ver.mkiv">
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:inherit name="blank"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
</cd:interface>
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-whitespace.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-whitespace.xml
index a44b08f1d9c..f1a8ce84e3c 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-whitespace.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-whitespace.xml
@@ -39,7 +39,7 @@
</cd:arguments>
</cd:command>
- <cd:command name="unpacked" type="environment" level="document" category="whitespace" file="spac-ver.mkiv"/>
+ <cd:command name="unpacked" type="environment" category="whitespace" file="spac-ver.mkiv"/>
<cd:command name="linecorrection" type="environment" level="document" category="whitespace" file="spac-ver.mkiv">
<cd:arguments>
@@ -50,7 +50,7 @@
</cd:arguments>
</cd:command>
- <cd:command name="locallinecorrection" type="environment" level="document" category="whitespace" file="spac-ver.mkiv">
+ <cd:command name="locallinecorrection" type="environment" category="whitespace" file="spac-ver.mkiv">
<cd:arguments>
<cd:keywords list="yes" optional="yes">
<cd:constant type="blank"/>
@@ -59,6 +59,4 @@
</cd:arguments>
</cd:command>
- <cd:command name="forgetparskip" category="alignment" level="system" file="spac-ver.mkiv"/>
-
</cd:interface> \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-xml.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-xml.xml
index 1786e1bf60d..d09913f7c8d 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-xml.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-xml.xml
@@ -664,34 +664,6 @@
</cd:arguments>
</cd:command>
- <cd:command name="xmldoifatt" level="style" category="xml" file="lxml-ini.mkiv">
- <cd:arguments>
- <cd:resolve name="argument-node"/>
- <cd:string/>
- <cd:string/>
- <cd:resolve name="argument-true"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="xmldoifnotatt" level="style" category="xml" file="lxml-ini.mkiv">
- <cd:arguments>
- <cd:resolve name="argument-node"/>
- <cd:string/>
- <cd:string/>
- <cd:resolve name="argument-true"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="xmldoifelseatt" level="style" category="xml" file="lxml-ini.mkiv">
- <cd:arguments>
- <cd:resolve name="argument-node"/>
- <cd:string/>
- <cd:string/>
- <cd:resolve name="argument-true"/>
- <cd:resolve name="argument-false"/>
- </cd:arguments>
- </cd:command>
-
<cd:command name="xmldoifselfempty" level="style" category="xml" file="lxml-ini.mkiv">
<cd:arguments>
<cd:resolve name="argument-node"/>
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-xtable.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-xtable.xml
index 7ee0df3f28f..c921e1a8d64 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-xtable.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-xtable.xml
@@ -77,25 +77,6 @@
<cd:parameter name="distance">
<cd:constant type="cd:dimension"/>
</cd:parameter>
- <cd:parameter name="aligncharacter">
- <cd:constant type="yes"/>
- <cd:constant type="no" default="yes"/>
- </cd:parameter>
- <cd:parameter name="alignmentleftsample">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="alignmentrightsample">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="alignmentleftwidth">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="alignmentrightwidth">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="alignmentcharacter">
- <cd:constant type="cd:text"/>
- </cd:parameter>
<cd:inherit name="setupframed"/>
</cd:assignments>
</cd:arguments>
@@ -155,33 +136,6 @@
</cd:arguments>
</cd:command>
- <!--
-
- <cd:command name="xcolumn" type="environment" level="document" category="tables" file="tabl-xtb.mkvi">
- <cd:arguments>
- <cd:resolve name="keyword-name-optional"/>
- <cd:assignments list="yes" optional="yes">
- <cd:inherit name="setupxtable"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- -->
-
- <cd:command name="xcolumn" type="environment" level="document" category="tables" file="tabl-xtb.mkvi">
- <cd:arguments>
- <cd:assignments list="yes" optional="yes">
- <cd:inherit name="setupxtable"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="xcolumn" type="environment" variant="name" level="document" category="tables" file="tabl-xtb.mkvi">
- <cd:arguments>
- <cd:resolve name="keyword-name-optional"/>
- </cd:arguments>
- </cd:command>
-
<cd:command name="xcell" type="environment" level="document" category="tables" file="tabl-xtb.mkvi">
<cd:arguments>
<cd:resolve name="keyword-name-optional"/>
@@ -290,4 +244,4 @@
<cd:command name="currentxtablecolumn" level="system" category="tables" file="tabl-xtb.mkvi"/>
-</cd:interface>
+</cd:interface> \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/modules/common/s-abbreviations-logos.tex b/Master/texmf-dist/tex/context/modules/common/s-abbreviations-logos.tex
index 00719a66807..c14265cc085 100644
--- a/Master/texmf-dist/tex/context/modules/common/s-abbreviations-logos.tex
+++ b/Master/texmf-dist/tex/context/modules/common/s-abbreviations-logos.tex
@@ -157,7 +157,6 @@
\logo [LINUX] {linux}
\logo [LISP] {Lisp}
\logo [LMX] {lmx}
-\logo [LMTX] {lmtx}
\logo [LPEG] {lpeg}
\logo [LUA] {Lua}
\logo [LUAJIT] {LuaJIT}
@@ -206,7 +205,6 @@
\logo [OTEX] {Oriental \TeXsuffix}
\logo [OTF] {otf}
\logo [OTP] {otp}
-\logo [OSX] {os-x}
\logo [OVF] {ovf}
\logo [PASCAL] {Pascal}
\logo [PCTEX] {pc\TeXsuffix}
@@ -235,7 +233,6 @@
\logo [PSTOPAGE] {pstopage}
\logo [PSTOPDF] {pstopdf}
\logo [PSTRICKS] {pstricks}
-\logo [PYTHON] {Python}
\logo [RAID] {raid}
\logo [RAM] {ram}
\logo [RCA] {RCA}
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/m-asymptote.lua b/Master/texmf-dist/tex/context/modules/mkiv/m-asymptote.lua
index 39a0d987bee..de8d032c8fb 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/m-asymptote.lua
+++ b/Master/texmf-dist/tex/context/modules/mkiv/m-asymptote.lua
@@ -1,6 +1,6 @@
if not modules then modules = { } end modules ['m-asymptote'] = {
version = 1.001,
- comment = "companion to m-asymptote.mkiv",
+ comment = "companion to m-pstricks.mkiv",
author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
copyright = "PRAGMA ADE / ConTeXt Development Team",
license = "see context related readme files"
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/m-asymptote.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/m-asymptote.mkiv
index 9cd4037fb58..c236ceee503 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/m-asymptote.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/m-asymptote.mkiv
@@ -76,51 +76,51 @@
\starttext
\startasymptote[demo-1]
-settings.prc = true ;
+settings.prc=true;
-import graph3 ;
-import palette ;
+import graph3;
+import palette;
-size(6cm,6cm) ;
-size3(5cm,0) ;
+size(6cm,6cm);
+size3(5cm,0);
-currentprojection = orthographic(3,-6,12) ;
-currentlight = light(8,10,2) ;
+currentprojection=orthographic(3,-6,12);
+currentlight=light(8,10,2);
-real g(pair z) { return 1-z.x^2-z.y^2 ; }
-real f(pair z) { return -2z.x+2 ; }
+real g(pair z) {return 1-z.x^2-z.y^2;}
+real f(pair z) {return -2z.x+2;}
-real x(real t) { return t ; }
-real y(real t) { return 0 ; }
-real z(real t) { return 1-t^2 ; }
-real a(real t) { return 1 ; }
-real b(real t) { return t ; }
-real c(real t) { return -t^2 ; }
+real x(real t) {return t;}
+real y(real t) {return 0;}
+real z(real t) {return 1-t^2;}
+real a(real t) {return 1;}
+real b(real t) {return t;}
+real c(real t) {return -t^2;}
-path3 p=graph(x,y,z,-2,2,operator ..) ;
-path3 o=graph(a,b,c,-2,2,operator ..) ;
+path3 p=graph(x,y,z,-2,2,operator ..);
+path3 o=graph(a,b,c,-2,2,operator ..);
-surface r = surface(f, (0,-1), (2,1), nx = 3, Spline) ;
-surface s = surface(g, (-2,-2), (2,2), nx = 5, Spline) ;
+surface r=surface(f,(0,-1),(2,1),nx=3,Spline);
+surface s=surface(g,(-2,-2),(2,2),nx=5,Spline);
-path3 q = (-2,-2,-7) -- (2,-2,-7) -- (2,2,-7) -- (-2,2,-7) -- cycle ;
+path3 q=(-2,-2,-7)--(2,-2,-7)--(2,2,-7)--(-2,2,-7)--cycle;
-draw(q) ;
+draw(q);
-draw(p, blue+thick(), Arrow3) ;
-draw(o, blue+thick(), Arrow3) ;
+draw(p,blue+thick(),Arrow3);
+draw(o,blue+thick(),Arrow3);
-draw(s, lightgray + opacity(0.8), nolight, meshpen = black + thick()) ;
-draw(r, lightgray + opacity(0.8), nolight, meshpen = black + thick()) ;
+draw(s,lightgray+opacity(0.8),nolight,meshpen=black+thick());
+draw(r,lightgray+opacity(0.8),nolight,meshpen=black+thick());
-draw((1,0,0) -- (2,0,-2), black, Arrow3) ;
-draw((1,0,0) -- (1,1,0), black, Arrow3) ;
+draw((1,0,0)--(2,0,-2),black,Arrow3);
+draw((1,0,0)--(1,1,0),black,Arrow3);
\stopasymptote
\startasymptote[demo-2]
-size(6cm,6cm) ;
+size(6cm,6cm);
-fill((1cm,2cm) -- (3cm,3cm) -- (4cm,0cm) -- cycle);
+fill((1cm,2cm)--(3cm,3cm)--(4cm,0cm)--cycle);
\stopasymptote
% see end of grph-inc.mkiv for some more options:
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/m-chart.lua b/Master/texmf-dist/tex/context/modules/mkiv/m-chart.lua
index cde563fb3af..bcf80bdfc9a 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/m-chart.lua
+++ b/Master/texmf-dist/tex/context/modules/mkiv/m-chart.lua
@@ -926,16 +926,18 @@ local function getchart(settings,forced_x,forced_y,forced_nx,forced_ny)
return chart
end
-local function makechart_indeed(chart)
+local function makechart(chart)
local settings = chart.settings
local chartsettings = settings.chart
--
+ context.begingroup()
+ context.forgetall()
+ --
local g = ctx_startgraphic {
instance = "metafun",
format = "metafun",
method = "scaled",
definitions = "",
- wrapped = true,
}
--
ctx_tographic(g,"if unknown context_flow : input mp-char.mpiv ; fi ;")
@@ -1010,16 +1012,7 @@ local function makechart_indeed(chart)
ctx_tographic(g,"flow_end_chart ;")
ctx_stopgraphic(g)
--
-end
-
--- We need to wrap because of tex.runtoks!
-
-local function makechart(chart)
- context.hbox()
- context.bgroup()
- context.forgetall()
- context(function() makechart_indeed(chart) end)
- context.egroup()
+ context.endgroup()
end
local function splitchart(chart)
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/m-chart.mkvi b/Master/texmf-dist/tex/context/modules/mkiv/m-chart.mkvi
index 4c5ea7e021c..0463e4acd26 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/m-chart.mkvi
+++ b/Master/texmf-dist/tex/context/modules/mkiv/m-chart.mkvi
@@ -185,14 +185,11 @@
{\dodoubleempty\module_charts_process}
\def\module_charts_process[#name][#settings]%
-% {\hpack\bgroup % \vbox removed, \hpack prevents issues with tex.runtoks
- {\bgroup % \vbox removed, \hpack prevents issues with tex.runtoks
+ {\bgroup % \vbox removed
\insidefloattrue
\dontcomplain
\setupFLOWchart[#settings]%
\usebodyfontparameter\FLOWchartparameter
-% \meta_process_graphic_start
-% \meta_start_current_graphic
\clf_flow_make_chart
chart {
name {#name}
@@ -251,8 +248,6 @@
after {}
}
\relax
-% \meta_stop_current_graphic
-% \meta_process_graphic_stop
\egroup}
\unexpanded\def\FLOWcharts
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/m-format.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/m-format.mkiv
index 3a0a5bebd51..f9dd348a49c 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/m-format.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/m-format.mkiv
@@ -217,7 +217,7 @@
\doglobal\newcounter\formatlinesubcounter
\reshapebox
{\doglobal\increment\formatlinesubcounter}
- \glet\formatlinemaxcounter\formatlinesubcounter
+ \global\let\formatlinemaxcounter\formatlinesubcounter
\reshapebox
{\doglobal\decrement\formatlinesubcounter
\ifnum\formatlinesubcounter=\zerocount
@@ -303,7 +303,7 @@
\doglobal\newcounter\formatlinesubcounter
\reshapebox
{\doglobal\increment\formatlinesubcounter}%
- \glet\formatlinemaxcounter\formatlinesubcounter
+ \global\let\formatlinemaxcounter\formatlinesubcounter
\reshapebox
{\doglobal\decrement\formatlinesubcounter
\ifnum\formatlinesubcounter=\zerocount
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/m-matrix.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/m-matrix.mkiv
index 4a0bd712d49..9cac6967277 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/m-matrix.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/m-matrix.mkiv
@@ -23,8 +23,6 @@
\startluacode
-local tonumber, type = tonumber, type
-
local settings_to_hash = utilities.parsers.settings_to_hash
local formatters = string.formatters
local copy = table.copy
@@ -116,7 +114,7 @@ function matrix.typeset(m,options)
if type(m[1]) ~= "table" then
m = { copy(m) }
end
- for i=1,#m do
+ for i=1, #m do
local mi = m[i]
for j=1,#mi do
context.NC()
@@ -166,11 +164,9 @@ function matrix.swapcolumns(t, i, j)
return t
end
-matrix.swapC = matrix.swapcolumns
-matrix.swapR = matrix.swaprows
-matrix.swapcolumns = matrix.swapcolumns
-matrix.swaprows = matrix.swaprows
-matrix.swap = matrix.swaprows
+matrix.swapC = matrix.swapcolumns
+matrix.swapR = matrix.swaprows
+matrix.swap = matrix.swaprows
-- replace i-th row with factor * (i-th row)
@@ -303,7 +299,7 @@ local function determinant(m)
end
return s*d
else
- return "error: not a square matrix"
+ return "error: not a square matrix" -- not context(..)
end
end
@@ -375,7 +371,7 @@ matrix.rowEchelon = rowechelon
-- make matrices until its determinant is not 0
-local function make(m,n,low,high) -- m and n swapped
+function matrix.make(m,n,low,high) -- m and n swapped
if not n then
n = 10
end
@@ -405,9 +401,6 @@ local function make(m,n,low,high) -- m and n swapped
end
end
-matrix.make = make
-matrix.makeR = matrix.make
-
-- extract submatrix by using
local function submatrix(t,i,j)
@@ -427,11 +420,10 @@ local function submatrix(t,i,j)
end
matrix.submatrix = submatrix
-matrix.subMatrix = submatrix
-- calculating determinant using Laplace Expansion
-local function laplace(t) -- not sure if this is the most effient but
+function matrix.laplace(t) -- not sure if this is the most effient but
local factors = { 1 } -- it's not used for number crunching anyway
local data = copy(t)
local det = 0
@@ -469,8 +461,6 @@ local function laplace(t) -- not sure if this is the most effient but
return det
end
-matrix.laplace = laplace
-
-- solve the linear equation m X = c
local function solve(m,c)
@@ -528,74 +518,6 @@ end
matrix.inverse = inverse
--- create zero and identity matrix
-
-local function makeM(k,v)
- local tt = { }
- for i=1,k do
- local temp = { }
- for j=1,k do
- temp[j] = 0
- end
- tt[i] = temp
- end
- if v and v > 0 then
- for i=1,k do
- tt[i][i] = 1
- end
- end
- return tt
-end
-
-matrix.makeM = makeM
-matrix.makeidentity = makeM
-matrix.makezero = makeM
-
--- append the rows of the second matrix to the bottom of the first matrix
-
-local function joinrows(t1, t2)
- local nt1 = #t1
- local nt2 = #t2
- if (nt1*nt2 > 0) and (#t1[1] ~= #t2[1]) then
- return "error: different number of columns"
- else
- for i=1,nt2 do
- t1[nt1+i] = t2[i]
- end
- return t1
- end
-end
-
-matrix.joinrows = joinrows
-matrix.joinRows = joinrows
-
--- append the columns of the second matrix to the right of the first matrix
-
-local function joincolumns(t1, t2)
- local nt1 = #t1
- local nt2 = #t2
- if nt1 == 0 then
- return t2
- end
- if nt2 == 0 then
- return t1
- end
- if nt1 ~= nt2 then
- return "error: different number of rows"
- end
- nt3 = #t2[1]
- for i=1,nt1 do
- local temp = t2[i]
- for j= 1, nt3 do
- insert(t1[i],temp[j])
- end
- end
- return t1
-end
-
-matrix.joincolumns = joincolumns
-matrix.joinColumns = joincolumns
-
\stopluacode
\stopmodule
@@ -648,7 +570,6 @@ document.DemoMatrixC = {
\startbuffer
\ctxmodulematrix{typeset(moduledata.matrix.symbolic("a", "m", "n"))}
-$\qquad\qquad$
\ctxmodulematrix{typeset(moduledata.matrix.symbolic("a", "m", "n", 4, 8))}
\stopbuffer
@@ -660,10 +581,9 @@ $\qquad\qquad$
\startbuffer
\startluacode
- moduledata.matrix.typeset(moduledata.matrix.makeR(4,3, 0,5))
+ moduledata.matrix.typeset(moduledata.matrix.make(4,3, 0,5))
context.qquad()
- context("\\qquad")
- moduledata.matrix.typeset(moduledata.matrix.makeR(5,5,-1,5))
+ moduledata.matrix.typeset(moduledata.matrix.make(5,5,-1,5))
\stopluacode
\stopbuffer
@@ -671,7 +591,7 @@ $\qquad\qquad$
\stopsubject
-\startsubject[title={Swap two rows (ex: 2 and 4)}]
+\startsubject[title={Swap two rows (2 and 4)}]
\startbuffer
\startluacode
@@ -685,13 +605,13 @@ $\qquad\qquad$
\stopsubject
-\startsubject[title={Swap two columns (ex: 1 and 3)}]
+\startsubject[title={Swap two columns (2 and 4)}]
\startbuffer
\startluacode
moduledata.matrix.typeset(document.DemoMatrixA)
context("$\\qquad \\Rightarrow \\qquad$")
- moduledata.matrix.typeset(moduledata.matrix.swapcolumns(document.DemoMatrixA,1, 3))
+ moduledata.matrix.typeset(moduledata.matrix.swapcolumns(document.DemoMatrixA,2, 4))
\stopluacode
\stopbuffer
@@ -806,7 +726,7 @@ context(moduledata.matrix.inner({ 1, 2, 3 }, { 3, 1, 2, 4 }))
}
moduledata.matrix.typeset(m, {fences="bars"})
context("$\\qquad = \\qquad$")
- context(moduledata.matrix.determinant(m))
+ moduledata.matrix.determinant(m)
\stopluacode
\stopbuffer
@@ -944,51 +864,4 @@ context(moduledata.matrix.inner({ 1, 2, 3 }, { 3, 1, 2, 4 }))
\stopsubject
-\startsubject[title={make matrices(zero, identiry, random}]
-
-\startbuffer
-\startluacode
- moduledata.matrix.typeset(moduledata.matrix.makeM(3, 0))
- context.qquad()
- moduledata.matrix.typeset(moduledata.matrix.makeM(3, 1))
- context.qquad()
- moduledata.matrix.typeset(moduledata.matrix.makeR(4,3))
-\stopluacode
-\stopbuffer
-
-\getbuffer[demo]
-
-\stopsubject
-
-\startsubject[title={join rows, join columns}]
-
-\startbuffer
-\startluacode
- local mat1 = moduledata.matrix.makeR(3, 4)
- local mat2 = moduledata.matrix.makeR(4, 3)
-
- context("Appending as columns: ")
- context.blank()
- moduledata.matrix.typeset(mat1)
- context("$\\&$")
- moduledata.matrix.typeset(mat1)
- context("\\quad $\\Rightarrow$ \\quad")
- moduledata.matrix.joinColumns(mat1, mat1)
- moduledata.matrix.typeset(mat1)
- context.blank()
- context("Appending as rows: ")
- context.blank()
- moduledata.matrix.typeset(mat2)
- context("$\\&$")
- moduledata.matrix.typeset(mat2)
- context("\\quad $\\Rightarrow$ \\quad")
- moduledata.matrix.joinRows(mat2, mat2)
- moduledata.matrix.typeset(mat2)
-\stopluacode
-\stopbuffer
-
-\getbuffer[demo]
-
-\stopsubject
-
\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/m-maybe.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/m-maybe.mkiv
deleted file mode 100644
index d019828f5bb..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkiv/m-maybe.mkiv
+++ /dev/null
@@ -1,57 +0,0 @@
-%D \module
-%D [ file=m-maybe,
-%D version=2018.07.26,
-%D title=\CONTEXT\ Extra Modules,
-%D subtitle=Maybe some day,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D The code here is not in the core and might never be as it's probably not
-%D of much use and|/|or can interfere.
-
-\unprotect
-
-% \showframe
-% \starttext
-% \tweakpagegoal[-\lineheight]
-% \dorecurse{40}{\inleftmargin{!}\input ward\par}
-% \stoptext
-
-\def\page_scale_text_box_indeed#1%
- {\scratchheight\ht#1\relax
- \scratchwidth \wd#1\relax
- \setbox#1\vpack\bgroup
- \hpack\bgroup
- \scale
- [\c!height=\dimexpr\textheight-\d_page_adapts_delta\relax,
- \c!width=\scratchwidth]
- {\box#1}%
- \egroup
- \egroup
- \global\d_page_adapts_delta\zeropoint
- \glet\page_scale_text_box\gobbleoneargument
- \ht#1\scratchheight
- \wd#1\scratchwidth}
-
-\unexpanded\def\tweakpagegoal[#1]%
- {\ifx\currentoutputroutine\s!singlecolumn
- \global\d_page_adapts_delta\dimexpr#1\relax
- \ifdim\d_page_adapts_delta=\zeropoint
- \glet\page_scale_text_box\gobbleoneargument
- \else
- \glet\page_scale_text_box\page_scale_text_box_indeed
- \fi
- \else
- \global\d_page_adapts_delta\zeropoint
- \glet\page_scale_text_box\gobbleoneargument
- \fi
- \page_otr_command_set_vsize}
-
-\protect
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/m-old-columnsets.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/m-old-columnsets.mkiv
deleted file mode 100644
index d840cbc916c..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkiv/m-old-columnsets.mkiv
+++ /dev/null
@@ -1,7 +0,0 @@
-\writeline
-\writestatus{system}{Using old columnset mechanism.}
-\writeline
-
-\input page-set.mkiv
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/m-old-multicolumns.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/m-old-multicolumns.mkiv
deleted file mode 100644
index a2fb1503b74..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkiv/m-old-multicolumns.mkiv
+++ /dev/null
@@ -1,7 +0,0 @@
-\writeline
-\writestatus{system}{Using old multicolumn mechanism.}
-\writeline
-
-\input page-mul.mkiv
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/m-oldfun.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/m-oldfun.mkiv
index 7ec779c41cb..3f2ec0263ed 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/m-oldfun.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/m-oldfun.mkiv
@@ -355,14 +355,14 @@
\ifdim\wd2=\zeropoint
\setbox0\emptybox
\setbox2\emptybox
- \expandafter\grabfirstline
+ \@EA\grabfirstline
\else\ifdim\wd2>\hsize
\hbox to \hsize{\strut\unhbox0}#2\egroup
\break##1\
\egroup
\else
\setbox0\box2
- \doubleexpandafter\grabfirstline
+ \@EAEAEA\grabfirstline
\fi\fi}%
\grabfirstline}
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/m-oldnum.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/m-oldnum.mkiv
index a240cdb58c3..382c56eb674 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/m-oldnum.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/m-oldnum.mkiv
@@ -189,15 +189,28 @@
%D Although we could do with one pass, a second pass for
%D handling the stored sequence is more readable.
-\def\dohandledigits
- {\mathcode`\,="002C \mathcode`\.="002E % pretty hard coded
- \expandafter\handletokens\collecteddigits\with\scandigits
- \ifcase\powerdigits\else\digitpowerseparator^{\savedpowerdigits}\fi}
+\ifnum\texengine=\luatexengine
-\chardef\mathaxisfontid\zerocount
+ \def\dohandledigits
+ {\mathcode`\,="002C \mathcode`\.="002E % pretty hard coded
+ \expandafter\handletokens\collecteddigits\with\scandigits
+ \ifcase\powerdigits\else\digitpowerseparator^{\savedpowerdigits}\fi}
+
+ \chardef\mathaxisfontid\zerocount
+
+\else
+
+ \def\dohandledigits
+ {\mathcode`\,="013B \mathcode`\.="013A % pretty hard coded
+ \expandafter\handletokens\collecteddigits\with\scandigits
+ \ifcase\powerdigits\else\digitpowerseparator^{\savedpowerdigits}\fi}
+
+ \chardef\mathaxisfontid\plustwo
+
+\fi
\def\doscandigit#1%
- {\ifcase\skipdigit\expandafter\hbox\else\expandafter\hphantom\fi\bgroup
+ {\ifcase\skipdigit\@EA\hbox\else\@EA\hphantom\fi\bgroup
\mathematics % brr, needed because of stored punctuation
{\ifnum\digitinputmode=#1\relax
\ifcase\digitoutputmode
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/m-punk.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/m-punk.mkiv
index 29a6d8cca75..08a0663592e 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/m-punk.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/m-punk.mkiv
@@ -104,20 +104,19 @@ function metapost.characters.process(mpxformat, name, instances, scalefactor)
for i=1,instances do
characters = { }
descriptions = { }
- metapost.process {
- mpx = mpxformat,
- -- trialrun = false,
- flusher = flusher,
- -- multipass = false,
- -- isextrapass = false,
- askedfig = "all",
- -- incontext = false,
- data = {
+ metapost.process(
+ mpxformat,
+ {
"randomseed := " .. i*10 .. ";",
"scale_factor := " .. scalefactor .. " ;",
data
},
- }
+ false,
+ flusher,
+ false,
+ false,
+ "all"
+ )
lists[i] = {
characters = characters,
descriptions = descriptions,
@@ -211,18 +210,18 @@ metapost.characters.flusher = flusher
statistics.register("metapost font generation", function()
local time = statistics.elapsedtime(flusher)
if total > 0 then
- return string.format("%i glyphs, %s seconds runtime, %0.3f glyphs/second", total, time, total/tonumber(time))
+ return string.format("%i glyphs, %.3f seconds runtime, %0.3f glyphs/second", total, time, total/time)
else
- return string.format("%i glyphs, %s seconds runtime", total, time)
+ return string.format("%i glyphs, %.3f seconds runtime", total, time)
end
end)
statistics.register("metapost font loading",function()
local time = statistics.elapsedtime(metapost.characters)
if variants > 0 then
- return string.format("%s seconds, %i instances, %0.3f instances/second", time, variants, variants/tonumber(time))
+ return string.format("%.3f seconds, %i instances, %0.3f instances/second", time, variants, variants/time)
else
- return string.format("%s seconds, %i instances", time, variants)
+ return string.format("%.3f seconds, %i instances", time, variants)
end
end)
\stopluacode
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/m-scite.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/m-scite.mkiv
index 9182fa2ecb5..48f1022ad59 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/m-scite.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/m-scite.mkiv
@@ -102,8 +102,7 @@ local function exportcolors()
local function black(f)
return (f[1] == f[2]) and (f[2] == f[3]) and (f[3] == 0)
end
--- local result, r = { f_mapping }, 1
-local result, r = { }, 0
+ local result, r = { f_mapping }, 1
for k, v in table.sortedhash(lexer.context.styles) do
local fore = v.fore
if fore and not black(fore) then
@@ -227,7 +226,7 @@ local function lexdata(data,lexname)
end
data = indent(data)
end
- -- io.savedata("temp.log",data)
+io.savedata("temp.logs ",data)
assignbuffer("lex",data)
end
@@ -289,7 +288,6 @@ visualizers.register("cld", visualizer)
visualizers.register("tex", visualizer)
visualizers.register("lua", visualizer)
visualizers.register("mps", visualizer)
-visualizers.register("pdf", visualizer)
visualizers.register("xml", visualizer)
visualizers.register("bibtex",visualizer)
visualizers.register("btx", visualizer)
@@ -298,7 +296,6 @@ visualizers.register("cpp", visualizer)
visualizers.register("txt", visualizer)
visualizers.register("bnf", visualizer)
visualizers.register("sql", visualizer)
-visualizers.register("json", visualizer)
\stopluacode
@@ -307,13 +304,11 @@ visualizers.register("json", visualizer)
\definetyping[BTX] [option=bibtex]
\definetyping[MPS] [option=mps]
\definetyping[MP] [option=mps]
-\definetyping[PDF] [option=pdf]
\definetyping[CPP] [option=web]
\definetyping[WEB] [option=web]
\definetyping[TXT] [option=txt]
\definetyping[BNF] [option=bnf] % I might use this in the metafun manual.
\definetyping[SQL] [option=sql] % To be tested in an upcoming manual.
-\definetyping[JSON][option=json] % To be tested in an upcoming manual.
\definetyping[NONE][option=none]
% This is a preliminary interface.
@@ -324,11 +319,11 @@ visualizers.register("json", visualizer)
\unexpanded\def\buff_scite_slxb#1%
{\hangindent\numexpr#1+2\relax\scitespaceskip
- \begstrut\hskip#1\scitespaceskip
+ \hskip#1\scitespaceskip
\hangafter 1\relax}
\unexpanded\def\buff_scite_slxe
- {\endstrut\par}
+ {\par}
\unexpanded\def\buff_scite_slxs {\hskip\scitespaceskip\relax}
\unexpanded\def\buff_scite_slxf#1{\hskip#1\scitespaceskip\relax}
@@ -337,7 +332,6 @@ visualizers.register("json", visualizer)
{\scitespaceskip\interwordspace % \fontcharwd\font`0\relax % brrrrr
\let\slxb\gobbleoneargument
\let\slxe\space
- \let\slxbreak\relax
\let\installscitecommandsinline\relax}
\unexpanded\def\installscitecommandsdisplay
@@ -348,24 +342,10 @@ visualizers.register("json", visualizer)
\clf_sciteinstallcommands
-\let\slxb \gobbleoneargument
-\let\slxe \space
-\let\slxbreak\relax
-
-\let\slxL \letterleftbrace
-\let\slxR \letterrightbrace
-\let\slxM \letterdollar
-\let\slxV \letterbar
-\let\slxU \letterhat
-\let\slxD \letterunderscore
-\let\slxH \letterhash
-\let\slxB \letterbackslash
-\let\slxP \letterpercent
-\let\slxT \lettertilde
-\let\slxS \fixedspace
-
-\let\slxS \buff_scite_slxs
-\let\slxF \buff_scite_slxf
+\installscitecommandsinline
+
+\let\slxS\buff_scite_slxs
+\let\slxF\buff_scite_slxf
\def\module_scite_inherit_typing
{\buff_verbatim_initialize_typing_one
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/m-units.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/m-units.mkiv
index 4f25fffc62d..f85a8ba8a5e 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/m-units.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/m-units.mkiv
@@ -212,7 +212,7 @@
\setbox2\hbox{m}%
\ifdim\wd0=\wd2
\endgroup
- \doubleexpandafter\gobbleoneargument
+ \@EAEAEA\gobbleoneargument
\else
\endgroup
\fi
@@ -220,8 +220,8 @@
\unexpanded\def\dimension#1%
{\begingroup
- \glet\savedthedimensionprefix\thedimensionprefix
- \glet\savedthedimensionpower\thedimensionpower
+ \global\let\savedthedimensionprefix\thedimensionprefix
+ \global\let\savedthedimensionpower\thedimensionpower
\unexpanded\def\dimension##1{\global\nesteddimensiontrue}%
\let\dimensionprefix\dimension
\let\dimensionmidfix\dimension
@@ -229,8 +229,8 @@
\let\dimensionpower \dimension
\global\nesteddimensionfalse
\setbox\scratchbox\hbox{\ustartmathmode#1\ustopmathmode}% pre-roll
- \glet\thedimensionprefix\savedthedimensionprefix
- \glet\thedimensionpower \savedthedimensionpower
+ \global\let\thedimensionprefix\savedthedimensionprefix
+ \global\let\thedimensionpower \savedthedimensionpower
\endgroup
\ifnesteddimension#1\else\dodimension{#1}\fi}
@@ -278,8 +278,8 @@
\else
\hskip\dimensionpowersignal
\fi
- \glet\thedimensionprefix\empty
- \glet\thedimensionpower\empty}
+ \global\let\thedimensionprefix\empty
+ \global\let\thedimensionpower\empty}
%D \macros
%D {dontbreakdimension,
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/ppchtex.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/ppchtex.mkiv
index 5348d2e1a77..d1167d4143a 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/ppchtex.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/ppchtex.mkiv
@@ -1747,7 +1747,7 @@
\def\dosimplechemicalA#1#2#3% % evt: {#1,\relax}
{\let\chemicalspace=\relax
- \expandafter\dosimplechemical\expandafter{\@@chemicalchemicaloffset,#1}{#2}{#3}%
+ \@EA\dosimplechemical\@EA{\@@chemicalchemicaloffset,#1}{#2}{#3}%
\egroup}
\def\dosimplechemicalB#1#2#3%
@@ -1849,9 +1849,9 @@
\setevalue{\??chemical\c!text\the\levchemical}{\the\txtchemical}%
\txtchemical=0
\dodochemical[#1][#2]%
- % \expandafter\txtchemical\expandafter\csname\??chemical\c!text\the\levchemical\endcsname
+ % \@EA\txtchemical\@EA\csname\??chemical\c!text\the\levchemical\endcsname
\txtchemical\csname\??chemical\c!text\the\levchemical\endcsname
- \expandafter\let\expandafter\unknownchemical\csname\??chemical\s!unknown\the\levchemical\endcsname
+ \@EA\let\@EA\unknownchemical\csname\??chemical\s!unknown\the\levchemical\endcsname
\advance\levchemical -1
%\egroup
\ignorespaces}
@@ -2099,7 +2099,7 @@
\verchemical=\getvalue{\s!chemical y1}\relax
\else
\restorechemicalvalues{\getvalue{\s!chemical n\the\chemicalstack}}%
- %\expandafter\let\expandafter\@@chemicalpostponed\expandafter=\csname\s!chemical p\the\chemicalstack\endcsname
+ %\@EA\let\@EA\@@chemicalpostponed\@EA=\csname\s!chemical p\the\chemicalstack\endcsname
\let\@@chemicalpostponed=\relax
\horchemical=\getvalue{\s!chemical x\the\chemicalstack}\relax
\verchemical=\getvalue{\s!chemical y\the\chemicalstack}\relax
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-article-basic.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/s-article-basic.mkiv
index 67786738193..69a5779611e 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-article-basic.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-article-basic.mkiv
@@ -11,21 +11,6 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-
-% \usemodule[article-basic,article-titletop]
-% \usemodule[article-basic,article-titlepage]
-%
-% \startdocument
-% [title={Some title},
-% subject={Some Subject},
-% author={Hans \& Ton},
-% affiliation={PRAGMA ADE},
-% date=\currentdate]
-%
-% \samplefile{ward}
-%
-% \stopdocument
-
\startmodule[article-basic]
\unprotect
@@ -85,10 +70,6 @@
\setuplist
[\c!interaction=\v!all]
-\setupdocument
- [\c!before=\directsetup{document:titlepage}]
-
\protect
\stopmodule
-
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-article-titlepage.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/s-article-titlepage.mkiv
deleted file mode 100644
index abfb957c2fa..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-article-titlepage.mkiv
+++ /dev/null
@@ -1,65 +0,0 @@
-%D \module
-%D [ file=s-article-titlepage,
-%D version=2018.05.20,
-%D title=\CONTEXT\ Style File,
-%D subtitle=Article Title Page,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\startmodule[article-titlepage]
-
-\unprotect
-
-% \startalignment[middle]
-% \let\\=\par
-% \bfb
-% \setupinterlinespace
-% \documentvariable {subject}
-% \par
-% \stopalignment
-
-\defineframed
- [titlepageframed]
- [\c!frame=\v!off,
- \c!align=\v!middle]
-
-\startsetups document:titlepage
- \startstandardmakeup[\c!align=\v!middle]
- \doifdocumentvariable {title} {
- \dontleavehmode \titlepageframed
- [\c!foregroundstyle=\bfd\setupinterlinespace]
- {\documentvariable {title}}
- }
- \doifdocumentvariable {subject} {
- \blank[2*\v!big]
- \dontleavehmode \titlepageframed
- [\c!foregroundstyle=\bfb\setupinterlinespace]
- {\documentvariable {subject}}
- }
- \doifdocumentvariable {author} {
- \blank[4*\v!big]
- \dontleavehmode \titlepageframed
- [\c!foregroundstyle=\bfa\setupinterlinespace]
- {\documentvariable {author}}
- }
- \vfill
- \doifdocumentvariable {affiliation} {
- \dontleavehmode \titlepageframed
- [\c!foregroundstyle=\bfa\setupinterlinespace]
- {\documentvariable {affiliation}}
- }
- \doifdocumentvariable {date} {
- \blank[\v!big]
- \dontleavehmode \titlepageframed
- [\c!foregroundstyle=\bfa\setupinterlinespace]
- {\documentvariable {date}}
- }
- \stopstandardmakeup
-\stopsetups
-
-\stopmodule
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-article-titletop.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/s-article-titletop.mkiv
deleted file mode 100644
index e68bed79ba7..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-article-titletop.mkiv
+++ /dev/null
@@ -1,68 +0,0 @@
-%D \module
-%D [ file=s-article-titletop,
-%D version=2018.05.20,
-%D title=\CONTEXT\ Style File,
-%D subtitle=Article Top Title,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\startmodule[article-titletop]
-
-\unprotect
-
-\defineframed
- [titlepageframed]
- [\c!frame=\v!off,
- \c!align=\v!middle]
-
-\startsetups document:titlepage
- \setupheader[\c!state=\v!high]
- \start
- \forgetall
- \startalignment[\v!middle]
- \doifdocumentvariable {title} {
- \dontleavehmode \titlepageframed
- [\c!foregroundstyle=\bfd\setupinterlinespace]
- {\documentvariable {title}}
- \par
- }
- \doifdocumentvariable {subject} {
- \dontleavehmode \titlepageframed
- [\c!foregroundstyle=\bfb\setupinterlinespace]
- {\documentvariable {subject}}
- \par
- }
- \doifdocumentvariable {author} {
- \dontleavehmode \titlepageframed
- [\c!foregroundstyle=\bfa\setupinterlinespace]
- {\documentvariable {author}}
- \par
- }
- \doifdocumentvariable {affiliation} {
- \dontleavehmode \titlepageframed
- [\c!foregroundstyle=\bfa\setupinterlinespace]
- {\documentvariable {affiliation}}
- \par
- }
- \doifdocumentvariable {date} {
- \dontleavehmode \titlepageframed
- [\c!foregroundstyle=\bfa\setupinterlinespace]
- {\documentvariable {date}}
- \par
- }
- \blank[3*\v!big]
- \stopalignment
- \stop
-\stopsetups
-
-\setupdocument
- [\c!before=\directsetup{document:titlepage}]
-
-\protect
-
-\stopmodule
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-cgj.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/s-cgj.mkiv
deleted file mode 100644
index 2950a799d9b..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-cgj.mkiv
+++ /dev/null
@@ -1,714 +0,0 @@
-%D \module
-%D [file=s-cgj.mkiv,
-%D version=2018.09.28,
-%D title=Context group style file,
-%D subtitle=CG-journal base style,
-%D author={Adrian Egger, W. Egger, Taco Hoekwater},
-%D date=\currentdate,
-%D copyright={Context Group}]
-
-%D \type {\enablemode[draft]} has to come before loading the style. Maybe some
-%D day I'll make something more official and then some \type {everydraft} or so.
-
-% Fixme and todo ...
-
-\startmodule[cgj]
-
-\definecolor[NoteColor][g=1,r=.25,b=.25]
-\definecolor[WarnColor][r=1,g=.25,b=.25]
-
-\unexpanded\def\todo#1%
- {\startframedtext[background=color,backgroundcolor=NoteColor]
- \dontleavehmode\start\bf TODO:\stop~~#1\par
- \stopframedtext}
-
-\unexpanded\def\fixme#1%
- {\startframedtext[background=color,backgroundcolor=WarnColor]
- \dontleavehmode\start\bf FIXME:\stop~~#1\par
- \stopframedtext }
-
-%D Base set of variables. The actual values are set in the file
-%D CG-journal.
-
-\setvariables
- [CG-Journal]
- [Title={Journal},
- RunningTitle={Journal},
- SubTitle={From the base set of variables},
- Version=1.0,
- NOFColumns=2]
-
-\startmode[onecolumn,fullwidth]
- \setvariables
- [CG-Journal]
- [NOFColumns=1]
-\stopmode
-
-% Fonts setup.
-
-\usetypescriptfile[plex]
-
-\starttypescript [cgj]
- \definetypeface [cgj] [rm] [serif][ibmplex-light] [default]
- \definetypeface [cgj] [ss] [sans] [ibmplex-light] [default]
- \definetypeface [cgj] [mm] [math] [palatino] [default]
- \definetypeface [cgj] [tt] [mono] [ibmplex] [default][rscale=0.9]
-\stoptypescript
-
-\starttypescript [cgj-light]
- \definetypeface [cgj-light] [rm] [serif][ibmplex-extralight] [default]
- \definetypeface [cgj-light] [ss] [sans] [ibmplex-extralight] [default]
- \definetypeface [cgj-light] [mm] [math] [palatino] [default]
- \definetypeface [cgj-light] [tt] [mono] [ibmplex-extralight] [default][rscale=0.9]
-\stoptypescript
-
-\starttypescript [cgj-extralight]
- \definetypeface [cgj-extralight] [rm] [serif][ibmplex-thin] [default]
- \definetypeface [cgj-extralight] [ss] [sans] [ibmplex-thin] [default]
- \definetypeface [cgj-extralight] [mm] [math] [palatino] [default]
- \definetypeface [cgj-extralight] [tt] [mono] [ibmplex-thin] [default][rscale=0.9]
-\stoptypescript
-
-\usebodyfont
- [cgj-light,cgj-extralight]
-
-\setupbodyfont
- [cgj,ss,10pt]
-
-\definebodyfontenvironment[10pt][interlinespace=13pt]
-\definebodyfontenvironment[12pt][interlinespace=16pt]
-\definebodyfontenvironment[16pt][interlinespace=20pt]
-
-\setupinterlinespace
- [line=13pt]
-
-\let\sl\it
-
-%D Path to the logos
-
-\setupexternalfigures
- [directory=./Logos,
- location={global,local,default}]
-
-%D Logos: black logo only.
-
-\useexternalfigure
- [Logo]
- [cg_corp_logo_loop_black_cmyk]
- [width=30mm,
- height=19mm]
-
-%D Black logo with text
-
-\useexternalfigure
- [LogoText]
- [cg_corp_logo_text_black_cmyk]
- [width=50mm,
- height=35.2mm]
-
-%D Colors
-
-\definecolor[CGlightblue][c=1,m=.15,y=0,k=0]
-\definecolor[CGdeepblue] [c=1,m=.8,y=0,k=.3]
-\definecolor[CGgray] [c=0,m=0,y=0,k=.1]
-
-%D Article styles
-
-\definealternativestyle
- [Articleheading]
- [{\switchtobodyfont[16pt,ss]\bf}]
-
-\definealternativestyle
- [Articlesubheading]
- [{\switchtobodyfont[16pt,ss]\tf}]
-
-\definealternativestyle
- [Authorname]
- [{\switchtobodyfont[12pt,ss]\it}]
-
-\definealternativestyle
- [Sectionheading]
- [{\switchtobodyfont[12pt,ss]\bf\setupinterlinespace[line=12pt]}]
-
-\definealternativestyle
- [Subsectionheading]
- [{\switchtobodyfont[cgj-light,10pt,ss]\bf\setupinterlinespace[line=10pt]}]
-
-\definealternativestyle
- [IntroCopy]
- [{\switchtobodyfont[12pt,ss]\tf}]
-
-\definealternativestyle
- [PagenumberStyle]
- [{\switchtobodyfont[cgj-light,10pt,ss]\bf}]
-
-%D Headerstyles:Breadcrumbs
-
-\definealternativestyle
- [BreadcrumbMd]
- [{\switchtobodyfont[cgj-light,10pt,ss]\bf}]
-
-\definealternativestyle
- [BreadcrumbRg]
- [{\switchtobodyfont[cgj,10pt,ss]}]
-
-\definealternativestyle
- [BreadcrumbLt]
- [{\switchtobodyfont[10pt,ss]\tf}]
-
-\definealternativestyle
- [BreadcrumbTh]
- [{\switchtobodyfont[cgj-light,10pt,ss]\tf}]
-
-%D Captionstyles
-
-\definealternativestyle
- [Captionheading]
- [{\switchtobodyfont[8pt,ss]\bf\setupinterlinespace[line=8pt]}]
-
-\definealternativestyle
- [Captiontext]
- [{\switchtobodyfont[8pt,ss]\tf\setupinterlinespace[line=8pt]}]
-
-%D Article signature
-
-\definealternativestyle
- [Signaturestyle]
- [{\switchtobodyfont[10pt,ss]\it}]
-
-%D Article footnotes
-
-\definealternativestyle
- [Articlefootnotes]
- [{\switchtobodyfont[8pt,ss]\tf}]
-
-%D Index and TOC styles
-
-\definealternativestyle
- [IndexContents]
- [{\switchtobodyfont[16pt,ss]\bf\setupinterlinespace[line=18pt]}]
-
-\definealternativestyle
- [IndexArticleTitle]
- [{\switchtobodyfont[12pt,ss]\tf\setupinterlinespace[line=20pt]}]
-
-\definealternativestyle
- [IndexNumber]
- [{\switchtobodyfont[12pt,ss]\bf\setupinterlinespace[line=20pt]}]
-
-\definealternativestyle
- [IndexAuthor]
- [{\switchtobodyfont[12pt,ss]\it\setupinterlinespace[line=20pt]}]
-
-%D Math: still missing.
-
-%D Verbatim
-
-\definealternativestyle
- [DisplayMonospaced]
- [\tt]
-
-\definealternativestyle
- [DisplayMonospacedX]
- [{\switchtobodyfont[8pt,tt]}]
-
-\definealternativestyle
- [DisplayMonospacedS]
- [{\switchtobodyfont[9pt,tt]\setupinterlinespace[line=10pt]}]
-
-%D Blank adjustment
-
-\defineblank[CGblank] [6pt]
-\defineblank[BigCGblank] [24pt]
-\defineblank[MediumCGblank][12pt]
-
-%D Paper definition
-
-\definepapersize
- [Journal]
- [width=210mm,
- height=266mm]
-
-\setuppapersize
- [Journal]
- [Journal]
-
-%D General layout
-
-\definelayout
- [General]
- [topspace=18mm,
- backspace=28mm,
- header=5mm,
- headerdistance=7mm,
- footer=5mm,
- footerdistance=5mm,
- width=157mm,
- height=224mm,
- marking=on]
-
-\definelayout
- [Content]
- [topspace=18mm,
- backspace=28mm,
- header=5mm,
- headerdistance=7mm,
- footer=0mm,
- footerdistance=0mm,
- width=157mm,
- height=224mm,
- margindistance=4mm,
- rightmargin=21mm,
- leftmargin=21mm,
- marking=on]
-
-\definelayout
- [Imprint]
- [topspace=18mm,
- backspace=28mm,
- header=5mm,
- headerdistance=7mm,
- footer=5mm,
- footerdistance=5mm,
- width=107mm,
- height=224mm,
- margindistance=4mm,
- rightmargin=45.3mm,
- leftmargin=21mm,
- marking=on]
-
-\definelayout
- [SingleColumn]
- [topspace=18mm,
- backspace=55mm,
- header=5mm,
- headerdistance=7mm,
- footer=5mm,
- footerdistance=5mm,
- width=130mm,
- height=224mm,
- margindistance=4mm,
- leftmargin=48mm,
- rightmargin=21mm,
- marking=on]
-
-%D Pagenumbering: Pagenumber is set in the footer
-
-\setuppagenumbering
- [location=,
- alternative=doublesided]
-
-%D Head-definitions
-
-\setuphead
- [title]
- [style=Articleheading,
- after={\blank[BigCGblank]},
- page=yes]
-
-\setuphead
- [part]
- [placehead=no,
- after=,
- before=,
- page=no,
- numbercommand=,
- expansion=yes]
-
-\setuphead
- [section]
- [style=Sectionheading,
- before={\blank[BigCGblank]},
- after={\blank[CGblank]},
- sectionstopper={.},
- distance=4pt,
- align={flushleft,nothyphenated},
- resetnumber=yes,
- continue=yes]
-
-\setuphead
- [subsection]
- [style=Subsectionheading,
- before={\blank[CGblank]},
- after={\blank[CGblank]},
- sectionstopper=,
- distance=4pt,
- align={flushleft,nothyphenated},
- resetnumber=yes,
- continue=yes]
-
-\setuphead
- [subject]
- [style=Sectionheading,
- before={\blank[BigCGblank]},
- after=]
-
-\setuphead
- [subsubject]
- [style=Subsectionheading,
- before={\blank[CGblank]},
- after={\blank[CGblank]},
- sectionstopper=]
-
-%D A special head for the footnote section in multicolumn mode excuse the low-level
-%D rule, I wanted it to look like the start of footnotes in single column mode. (TH)
-
-\definehead
- [footnotesubject]
- [subject]
-
-\setuphead
- [footnotesubject]
- [style=Sectionheading,
- before={\kern -13pt},
- after={\smash{\lower 13pt\hbox{\vrule width 2.5cm height 1pt depth 0pt}}}]
-
-
-%D The setup of the columns is done at the moment columns are started (see end
-%D of file)
-
-%D Index/TOC page setups
-
-\definelistalternative
- [CGJ:Index]
- [renderingsetup=CGJ:Indexheading]
-
-\definelistalternative
- [CGJ:Index:Chapter]
- [renderingsetup=CGJ:Indexheading:Chapter]
-
-\startsetups[CGJ:Indexheading:Chapter]
- \listparameter{before}
- \vbox \listboxproperties{all} {
- \forgetall
- \dontleavehmode
- \listrenderingsynchronize
- \hbox to 15mm{
- \bgroup
- \useliststyleandcolor{numberstyle}{numbercolor}
- \currentlistentrypagenumber
- \egroup}
- \bgroup
- \useliststyleandcolor{textstyle}{textcolor}
- \smash{\currentlistentrytitle}%
- \egroup
- }
- \par
- \listparameter{after}
-\stopsetups
-
-\startsetups[CGJ:Indexheading]
- \listparameter{before}
- \vbox \listboxproperties{all} {
- \forgetall
- \dontleavehmode
- \listrenderingsynchronize
- \hbox to 15mm{
- \bgroup
- \useliststyleandcolor{numberstyle}{numbercolor}
- \currentlistentrypagenumber
- \egroup}
- \bgroup
- \useliststyleandcolor{textstyle}{textcolor}
- \currentlistentrytitle
- \egroup
- \par
- }
- \par
- \listparameter{after}
-\stopsetups
-
-\setuplist
- [part]
- [before={\blank[CGblank]},
- after=,
- style=IndexContents,
- numberstyle=\IndexNumber,
- textstyle=\IndexArticleTitle,
- prefix=no,
- alternative=CGJ:Index:Chapter]
-
-%D Captions
-
-\setupcaptions
- [suffix={.},
- headstyle=\Captionheading,
- style=\Captiontext,
- distance=6pt]
-
-\setupcaption[figure][way=bypart]
-\setupcaption[table] [way=bypart]
-
-%D Datacollection: article parameters (other fields and defaults)
-
-\unexpanded\def\CGJBibData[#1]%
- {\getparameters
- [CGJ]
- [SubTitle=,
- RunningAuthor=,
- RunningTitle=Example,
- Email=,
- Address=,
- Page=1,
- Title={My Article},
- Author={Example Author},
- Period=,
- Number=,
- Year=,
- TocAuthor=,
- TocTitle=,
- #1]%
- \doifnothing
- {\CGJRunningTitle}
- {\let\CGJRunningTitle\CGJTitle}%
- \doifnothing
- {\CGJRunningAuthor}
- {\let\CGJRunningAuthor\CGJAuthor}%
- \doifnothing
- {\CGJTocAuthor}
- {\let\CGJTocAuthor\CGJAuthor}%
- \doifnothing
- {\CGJTocTitle}
- {\let\CGJTocTitle\CGJTitle}%
- \setvariables
- [CGJToc]
- [Author=\CGJTocAuthor,
- Title=\CGJTocTitle]% for TOC
- }
-
-\unexpanded\def\dostartArticle[#1]
- {\CGJBibData[#1]
- \doifelse
- {\getvariable{CG-Journal}{NOFColumns}}
- {1}
- {\doifmodeelse{fullwidth}
- {\setuplayout[General]}
- {\setuplayout[SingleColumn]}}
- {\setupnotes[location=none]
- \setuplayout[General]}%
- \bgroup
- {\switchtobodyfont[16pt]\Articleheading\CGJTitle\par}
- {\doifsomething{\CGJSubTitle}
- {\switchtobodyfont[16pt]\Articlesubheading\CGJSubTitle\par}}
- {\doifsomething{\CGJAuthor}
- {\switchtobodyfont[12pt]\Authorname \CGJAuthor}\par}
- \part
- {\getvariable{CGJToc}{Title}%
- \doifsomething{\getvariable{CGJToc}{Author}}{ \emdash\ }%
- \IndexAuthor\getvariable{CGJToc}{Author}}
- \godown[13pt]%
- \egroup
- \par
- \hyphenpenalty1000\relax}
-
-\unexpanded\def\startArticle
- {\dosingleempty\dostartArticle}
-
-\def\signArticle
- {}
-
-%D In multicolumn mode, footnotes come are at the end of the article:
-
-\startsetups article:after
- \startfootnotesubject[title=]
- \placefootnotes
- \stopfootnotesubject
-\stopsetups
-
-\unexpanded\def\stopArticle
- {\doifelse{\getvariable{CG-Journal}{NOFColumns}}{1}
- {\par
- \signArticle}
- {\setups{article:after}
- \par
- \signArticle
- \stoppagecolumns}
- \page}
-
-\unexpanded\def\startAbstract
- {\bgroup
- \switchtobodyfont[12pt]
- \IntroCopy}
-
-\unexpanded\def\stopAbstract
- {\par
- \egroup
- \finishAbstract}
-
-\unexpanded\def\finishAbstract
- {\doifelse {\getvariable{CG-Journal}{NOFColumns}} {1}
- {\blank[BigCGblank]}
- {\vbox{\blank[BigCGblank]}%
- \par
- \startpagecolumns[balance=yes,distance=12pt,page=no,n=\getvariable{CG-Journal}{NOFColumns}]
- \setupitemgroup[itemize][packed]
- \setuplayout[grid=yes]} % grid mode only in columns
- }
-
-
-\unexpanded\def\noAbstract
- {\kern -24pt
- \finishAbstract}
-
-%D Headertexts
-
-\startsetups[Header:texts]
- \setupheadertexts
- [] [{{\BreadcrumbLt\CGJRunningTitle}{\BreadcrumbTh\doifsomething{\CGJRunningAuthor}{\ > }\CGJRunningAuthor}}] %odd
- [{\BreadcrumbMd contextgroup}{\BreadcrumbRg\ > \getvariable{CG-Journal}{RunningTitle}}] [] %even
-\stopsetups
-
-%D Footertexts
-
-\startsetups[Footer:texts]
- \setupfootertexts
- [] [\PagenumberStyle\pagenumber]
- [\PagenumberStyle\pagenumber] []
-\stopsetups
-
-%D Setup tolerance, stretch.
-
-\setuptolerance
- [tolerant,stretch]
-
-%D Setting up footnotes.
-
-\setupnotation
- [footnote]
- [way=bypart,
- rule=on]
-
-%D Adjustments to the container containing the footnotes.
-
-\setupnote
- [footnote]
- [frame=off,
- topframe=off ,
- framecolor=black,
- background=,
- rulecolor=black, %% the line above the inserts
- rulethickness=1pt,
- next={ },
- split=verystrict,
- scope=page,
- style=Articlefootnotes]
-
-\doifmodeelse {draft} {\setupnote[footnote][frame=on]}
-
-% Setup typing.
-
-\setupnarrower
- [middle=3mm,
- left=5mm]
-
-\definetextbackground
- [verbatim]
- [frame=off,
- background=color,
- backgroundcolor=CGgray,
- leftoffset=2mm,rightoffset=2mm,
- topoffset=2mm,bottomoffset=2mm,
- location=paragraph,
- align=flushleft]
-
-\doifmodeelse {draft} {\definetextbackground[verbatim][frame=on]}
-
-\definetextbackground
- [verbatimitem]
- [verbatim]
-
-\setuptextbackground
- [verbatimitem]
- [before=,
- after=,
- width=\the\dimexpr\hsize-10.5mm\relax]
-
-\startsetups typing:before
- \blank[MediumCGblank]
- \starttextbackground[verbatim]
-\stopsetups
-
-\startsetups typing:before:small
- \blank[MediumCGblank]
- \starttextbackground[verbatim]
-\stopsetups
-
-\startsetups typing:after
- \stoptextbackground
- \blank[MediumCGblank]
-\stopsetups
-
-\startsetups typing:before:item
- \starttextbackground[verbatimitem]
-\stopsetups
-
-\startsetups typing:after:item
- \stoptextbackground
-\stopsetups
-
-\setuptyping
- [typing]
- [style=DisplayMonospaced,
- before=\setups{typing:before},
- after=\setups{typing:after}]
-
-\setuptype
- [style=DisplayMonospaced]
-
-%D When verbatim becomes too large:
-
-\definetyping
- [smalltyping]
-
-\setuptyping
- [smalltyping]
- [style=DisplayMonospacedX,
- before=\setups{typing:before:small},
- after=\setups{typing:after}]
-
-\unexpanded\def\smalltypefile{\typefile[smalltyping][]}
-
-%D Bullet lists.
-
-\setupitemgroup
- [itemize]
- [each]
- []
- [symbol=1,
- indentnext=no,
- align=right,
- before={\blank[MediumCGblank]\startnarrower[left]},
- after={\stopnarrower\blank[MediumCGblank]},
- inbetween={\blank[CGblank]}]
-
-\definedescription
- [description]
- [location=hanging,
- width=broad,
- before={\blank},
- after={\blank}]
-
-\setupformula
- [align=flushleft,
- margin=5mm]
-
-\setupquotation
- [before={\blank[CGblank]\switchtobodyfont[10pt]},
- after={\blank[CGblank]}]
-
-\setupwhitespace
- [medium]
-
-\usemodule[abr-02,abr-03,abr-04]
-
-\unexpanded\def\Href#1{\underbar{\hyphenatedurl{#1}}}
-\unexpanded\def\CG {\ConTeXt\ group}
-
-\setnewconstant\kindofpagetextareas\plusone % partial page. HH: low level, no high level switch (yet)
-
-%D There is a draft mode, which enables all frames:
-
-\doifmode {draft} {\showframe}
-
-\stopmodule
-
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-evohome.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/s-evohome.mkiv
index 06fd6fb76cb..1577517e513 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-evohome.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-evohome.mkiv
@@ -198,19 +198,13 @@ function moduledata.evohome.history(specification)
local m = 0
for minute, d in next, hour do
local v = d[where]
- if v then
- a = a + v
- n = n + 1
- if v > m then
- m = v
- end
+ a = a + v
+ n = n + 1
+ if v > m then
+ m = v
end
end
- if n > 0 then
- a = a / n
- else
- a = 0
- end
+ a = a / n
local dx = xoffset + h
local dy = a/scale
local dm = m/scale
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-basics.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-basics.mkiv
index 370be35986b..e9d0a21a296 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-basics.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-basics.mkiv
@@ -1,5 +1,5 @@
%D \module
-%D [ file=s-fonts-basics, % was s-fnt-01,
+%D [ file=s-fnt-01,
%D version=2006.10.10, % guess
%D title=\CONTEXT\ Style File,
%D subtitle=Listing Glyphs in Large Fonts,
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-charts.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-charts.mkiv
index 3123cc0d0f0..e94b52a2e76 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-charts.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-charts.mkiv
@@ -15,7 +15,7 @@
%
% title : show unicode blocks
%
-% comment : show charts of a given font
+% comment : show charts of a given fgont
%
% end info
@@ -87,7 +87,7 @@
local settings = utilities.parsers.settings_to_hash(settings)
- local filename = settings.filename or settings.name or ""
+ local filename = settings.filename or ""
local fontid = true
local newpage = settings.page == interfaces.variables.yes
@@ -169,40 +169,36 @@
\starttext
- \showfontchart[filename=aegean,page=yes]
-% \showfontchart[filename=veramono.ttf,page=yes]
-% \showfontchart[filename=CoelacanthSubhdHeavy.otf,page=yes]
-
-% \showfontchart[filename=LucidaBrightOT.otf,page=yes]
-% \showfontchart[filename=LucidaBrightOT-Demi.otf,page=yes]
-% \showfontchart[filename=LucidaBrightOT-DemiItalic.otf,page=yes]
-% \showfontchart[filename=LucidaBrightOT-Italic.otf,page=yes]
-
-% \showfontchart[filename=LucidaSansOT.otf,page=yes]
-% \showfontchart[filename=LucidaSansOT-Demi.otf,page=yes]
-% \showfontchart[filename=LucidaSansOT-DemiItalic.otf,page=yes]
-% \showfontchart[filename=LucidaSansOT-Italic.otf,page=yes]
-
-% \showfontchart[filename=LucidaSansTypewriterOT.otf,page=yes]
-% \showfontchart[filename=LucidaSansTypewriterOT-Bold.otf,page=yes]
-% \showfontchart[filename=LucidaSansTypewriterOT-BoldOblique.otf,page=yes]
-% \showfontchart[filename=LucidaSansTypewriterOT-Oblique.otf,page=yes]
-
-% \showfontchart[filename=LucidaConsoleDK.otf,page=yes]
-% \showfontchart[filename=LucidaConsoleDK-Bold.otf,page=yes]
-% \showfontchart[filename=LucidaConsoleDK-BoldItalic.otf,page=yes]
-% \showfontchart[filename=LucidaConsoleDK-Italic.otf,page=yes]
-
-% \showfontchart[filename=LucidaGrandeMonoDK.otf,page=yes]
-% \showfontchart[filename=LucidaGrandeMonoDK-Bold.otf,page=yes]
-% \showfontchart[filename=LucidaGrandeMonoDK-BoldItalic.otf,page=yes]
-% \showfontchart[filename=LucidaGrandeMonoDK-Italic.otf,page=yes]
-
-% \showfontchart[filename=LucidaBrightMathOT.otf,page=yes]
-% \showfontchart[filename=LucidaBrightMathOT-Demi.otf,page=yes]
-
-% \showfontchart[filename=LucidaBlackletterOT.otf,page=yes]
-% \showfontchart[filename=LucidaCalligraphyOT.otf,page=yes]
-% \showfontchart[filename=LucidaHandwritingOT.otf,page=yes]
+ \showfontchart[filename=LucidaBrightOT.otf,page=yes]
+ \showfontchart[filename=LucidaBrightOT-Demi.otf,page=yes]
+ \showfontchart[filename=LucidaBrightOT-DemiItalic.otf,page=yes]
+ \showfontchart[filename=LucidaBrightOT-Italic.otf,page=yes]
+
+ \showfontchart[filename=LucidaSansOT.otf,page=yes]
+ \showfontchart[filename=LucidaSansOT-Demi.otf,page=yes]
+ \showfontchart[filename=LucidaSansOT-DemiItalic.otf,page=yes]
+ \showfontchart[filename=LucidaSansOT-Italic.otf,page=yes]
+
+ \showfontchart[filename=LucidaSansTypewriterOT.otf,page=yes]
+ \showfontchart[filename=LucidaSansTypewriterOT-Bold.otf,page=yes]
+ \showfontchart[filename=LucidaSansTypewriterOT-BoldOblique.otf,page=yes]
+ \showfontchart[filename=LucidaSansTypewriterOT-Oblique.otf,page=yes]
+
+ \showfontchart[filename=LucidaConsoleDK.otf,page=yes]
+ \showfontchart[filename=LucidaConsoleDK-Bold.otf,page=yes]
+ \showfontchart[filename=LucidaConsoleDK-BoldItalic.otf,page=yes]
+ \showfontchart[filename=LucidaConsoleDK-Italic.otf,page=yes]
+
+ \showfontchart[filename=LucidaGrandeMonoDK.otf,page=yes]
+ \showfontchart[filename=LucidaGrandeMonoDK-Bold.otf,page=yes]
+ \showfontchart[filename=LucidaGrandeMonoDK-BoldItalic.otf,page=yes]
+ \showfontchart[filename=LucidaGrandeMonoDK-Italic.otf,page=yes]
+
+ \showfontchart[filename=LucidaBrightMathOT.otf,page=yes]
+ \showfontchart[filename=LucidaBrightMathOT-Demi.otf,page=yes]
+
+ \showfontchart[filename=LucidaBlackletterOT.otf,page=yes]
+ \showfontchart[filename=LucidaCalligraphyOT.otf,page=yes]
+ \showfontchart[filename=LucidaHandwritingOT.otf,page=yes]
\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-complete.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-complete.mkiv
index 83aa708df51..afdd79b4ca8 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-complete.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-complete.mkiv
@@ -29,36 +29,23 @@
local descriptions = tfmdata.descriptions or { }
local data = characters.data
-- context.setuptabulate { header = "repeat" }
- -- context.starttabulatehead()
- -- NC() bold("unicode")
- -- NC() bold("visual")
- -- NC() bold("index")
- -- NC() bold("tounicode")
- -- NC() bold("unicodes")
- -- NC() bold("glyph")
- -- NC() bold("adobe")
- -- NC() bold("context")
- -- NC() NR()
- -- context.stoptabulatehead()
- context.starttabulate { "|l|c|p(8em)|l|l|p|p|p|" }
- NC() bold("unicode")
- NC() bold("visual")
- NC() bold("unicodes")
- NC() bold("tounicode")
- NC() bold("index")
- NC() bold("glyph")
- NC() bold("adobe")
- NC() bold("context")
- NC() NR()
+ context.starttabulatehead()
+ NC() bold("unicode")
+ NC() bold("visual")
+ NC() bold("index")
+ NC() bold("glyph")
+ NC() bold("adobe")
+ NC() bold("context")
+ NC() NR()
+ context.stoptabulatehead()
+ context.starttabulate { "|l|c|l|p|p|p|" }
for unicode, chr in fonts.iterators.characters(tfmdata) do
local des, dat = descriptions[unicode], data[unicode]
- local index = chr.index or 0
- local tounicode = chr.tounicode
- local isunicode = chr.unicode
- local cname = (dat and dat.contextname) or ""
- local aname = (dat and dat.adobename) or ""
- local gname = (des and des.name) or ""
- local mname = dat and dat.mathname
+ local index = chr.index or 0
+ local cname = (dat and dat.contextname) or ""
+ local aname = (dat and dat.adobename) or ""
+ local gname = (des and des.name) or ""
+ local mname = dat and dat.mathname
if type(mname) ~= "string" then
mname = ""
end
@@ -83,52 +70,12 @@
cname = mname
end
end
- NC()
- tttf()
- context("%05X",unicode)
- NC()
- char(unicode)
- NC()
- if isunicode then
- tttf()
- if type(isunicode) == "table" then
- for i=1,#isunicode do
- if i > 1 then
- if i % 2 ~= 0 then
- context.crlf()
- else
- context.space()
- end
- end
- context("%05X",isunicode[i])
- end
- else
- context("%05X",isunicode)
- end
- end
- NC()
- if tounicode then
- tttf()
- context(tounicode)
- end
- NC()
- tttf()
- context("%05X",index)
- NC()
- if gname ~= "" then
- tttf()
- escaped(gname)
- end
- NC()
- if aname ~= "" then
- tttf()
- context(aname)
- end
- NC()
- if cname ~= "" then
- tttf()
- context(cname)
- end
+ NC() tttf() context("U+%05X",unicode)
+ NC() char(unicode)
+ NC() tttf() context("%05X",index)
+ NC() if gname ~= "" then tttf() escaped(gname) end
+ NC() if aname ~= "" then tttf() context(aname) end
+ NC() if cname ~= "" then tttf() context(cname) end
NC() NR()
end
context.stoptabulate()
@@ -153,13 +100,14 @@
\font\TestFont=#1 at #2
\setuplayout[style=\TestFont]
\setupheadertexts[]
- \setupfootertexts[#1\space\endash\space\pagenumber]
+ \setupfootertexts[#1 -- \pagenumber]
+ \setupfootertexts[pagenumber]
\setuplayout[width=middle,height=middle,topspace=1cm,backspace=1cm]
\TestFont
\nonknuthmode
\startcolumns[n=#3]
- \TestFont
- \ctxlua { moduledata.fonts.complete.all() }
+ \TestFont
+ \ctxlua { moduledata.fonts.complete.all() }
\stopcolumns
\page
\endgroup}
@@ -177,16 +125,14 @@
\TestFontB \setupinterlinespace[line=1.2\dimexpr#2\relax] \raggedcenter
\nonknuthmode
\startcolumns[n=#3]
- \TestFontB
- \ctxlua { moduledata.fonts.complete.glyphs() }
+ \TestFontB
+ \ctxlua { moduledata.fonts.complete.glyphs() }
\stopcolumns
\page
\endgroup}
\continueifinputfile{s-fonts-complete.mkiv}
-\usemodule[art-01] \setuplayout[overview] \setupbodyfont[8pt]
-
\starttext
% \ShowCompleteFont{name:dejavusansmono}{10pt}{1}
@@ -194,7 +140,7 @@
% \ShowCompleteFont{name:officinasansbookitcregular}{10pt}{2}
% \ShowCompleteFont{name:officinaserifbookitcregular}{10pt}{2}
% \ShowCompleteFont{name:serpentineserifeflight}{10pt}{2}
-% \ShowCompleteFont{name:lmroman10-regular}{10pt}{1}
+\ShowCompleteFont{name:lmroman10-regular}{10pt}{1}
% \ShowCompleteFont{name:lmtypewriter10-regular}{10pt}{2}
% \ShowCompleteFont{lt55485}{10pt}{2}
% \ShowCompleteFont{lmr10}{10pt}{2}
@@ -211,13 +157,4 @@
% \ShowCompleteFont{name:palatinonovaregular}{11pt}{2}
% \ShowCompleteFont{pirat.ttf}{12pt}{1}
-\setuplayout[overview][footer=1cm] \setuplayout[overview]% \setupheadertexts[aegean.ttf]
-
-\ShowCompleteFont{file:aegean} {8pt}{1}
-% \ShowCompleteFont{file:tsukurimashouminchops}{8pt}{1}
-% \ShowCompleteFont{file:tsukurimashoumincho} {8pt}{1}
-% \ShowCompleteFont{file:tsukurimashoukakups} {8pt}{1}
-% \ShowCompleteFont{file:tsukurimashoukaku} {8pt}{1}
-% \ShowCompleteFont{file:akkadian} {8pt}{1}
-
\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-effects.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-effects.mkiv
deleted file mode 100644
index 9b712938bd0..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-effects.mkiv
+++ /dev/null
@@ -1,59 +0,0 @@
-%D \module
-%D [ file=s-fonts-basics, % was s-fnt-01,
-%D version=2006.10.10, % guess
-%D title=\CONTEXT\ Style File,
-%D subtitle=Listing Glyphs in Large Fonts,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This module is just a check for \type {luatex-basics-prepare}.
-
-\startmodule[fonts-effects]
-
-\startluacode
-moduledata.fonts = moduledata.fonts or { }
-moduledata.fonts.effects = moduledata.fonts.effects or { }
-
-function moduledata.fonts.effects.showfonteffect()
- local effect = fonts.hashes.properties[true].effect
- if effect then
- local context = context
- local BC, NC, EQ, NR = context.BC, context.NC, context.EQ, context.NR
- context.starttabulate { "||||||||" }
- BC() context("id") EQ() context(font.current())
- BC() context("factor") EQ() context(effect.factor)
- BC() context("wdelta") EQ() context(effect.wdelta)
- NC() NR()
- BC() context("effect") EQ() context(effect.effect)
- BC() context("hfactor") EQ() context(effect.hfactor)
- BC() context("hdelta") EQ() context(effect.hdelta)
- NC() NR()
- BC() context("width") EQ() context(effect.width)
- BC() context("vfactor") EQ() context(effect.vfactor)
- BC() context("ddelta") EQ() context(effect.ddelta)
- NC() NR()
- context.stoptabulate()
- end
-end
-\stopluacode
-
-\installmodulecommandluasingle \showfonteffect {moduledata.fonts.effects.showfonteffect}
-
-\stopmodule
-
-\continueifinputfile{s-fonts-effects.mkiv}
-
-\usemodule[art-01]
-
-\starttext
-
- \definedfont[Serif*default,boldened] An example.
-
- \showfonteffect
-
-\stopmodule
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-features.lua b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-features.lua
index 6c676ce2d24..6f4032948ac 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-features.lua
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-features.lua
@@ -11,7 +11,7 @@ moduledata.fonts.features = moduledata.fonts.features or { }
-- for the moment only otf
-local insert, remove, sortedhash = table.insert, table.remove, table.sortedhash
+local sortedhash = table.sortedhash
local v_yes = interfaces.variables.yes
local v_no = interfaces.variables.no
@@ -87,35 +87,66 @@ local function collectkerns(tfmdata,feature)
local lookuphash = resources.lookuphash
local feature = feature or "kern"
if sequences then
- for i=1,#sequences do
- local sequence = sequences[i]
- if sequence.features and sequence.features[feature] then
- local steps = sequence.steps
- for i=1,#steps do
- local step = steps[i]
- local format = step.format
- for unicode, hash in table.sortedhash(step.coverage) do
- local kerns = combinations[unicode]
- if not kerns then
- kerns = { }
- combinations[unicode] = kerns
- end
- for otherunicode, kern in table.sortedhash(hash) do
- if format == "pair" then
- local f = kern[1]
- local s = kern[2]
- if f then
- if s then
- -- todo
- else
- if not kerns[otherunicode] and f[3] ~= 0 then
- kerns[otherunicode] = f[3]
+
+ if true then
+
+ for i=1,#sequences do
+ local sequence = sequences[i]
+ if sequence.features and sequence.features[feature] then
+ local steps = sequence.steps
+ for i=1,#steps do
+ local step = steps[i]
+ local format = step.format
+ for unicode, hash in table.sortedhash(step.coverage) do
+ local kerns = combinations[unicode]
+ if not kerns then
+ kerns = { }
+ combinations[unicode] = kerns
+ end
+ for otherunicode, kern in table.sortedhash(hash) do
+ if format == "pair" then
+ local f = kern[1]
+ local s = kern[2]
+ if f then
+ if s then
+ -- todo
+ else
+ if not kerns[otherunicode] and f[3] ~= 0 then
+ kerns[otherunicode] = f[3]
+ end
end
+ elseif s then
+ -- todo
+ end
+ elseif format == "kern" then
+ if not kerns[otherunicode] and kern ~= 0 then
+ kerns[otherunicode] = kern
end
- elseif s then
- -- todo
end
- elseif format == "kern" then
+ end
+ end
+ end
+ end
+ end
+ end
+
+ else -- old loader
+
+ for i=1,#sequences do
+ local sequence = sequences[i]
+ if sequence.features and sequence.features[feature] then
+ local lookuplist = sequence.subtables
+ if lookuplist then
+ for l=1,#lookuplist do
+ local lookupname = lookuplist[l]
+ local lookupdata = lookuphash[lookupname]
+ for unicode, data in next, lookupdata do
+ local kerns = combinations[unicode]
+ if not kerns then
+ kerns = { }
+ combinations[unicode] = kerns
+ end
+ for otherunicode, kern in next, data do
if not kerns[otherunicode] and kern ~= 0 then
kerns[otherunicode] = kern
end
@@ -125,6 +156,7 @@ local function collectkerns(tfmdata,feature)
end
end
end
+
end
return combinations
@@ -198,90 +230,3 @@ function moduledata.fonts.features.showfeatureset(specification)
end
end
end
-
-local function collectligatures(tfmdata)
- local sequences = tfmdata.resources.sequences
-
- if not sequences then
- return
- end
-
- local series = { }
- local stack = { }
- local max = 0
-
- local function make(tree)
- for k, v in sortedhash(tree) do
- if k == "ligature" then
- local n = #stack
- if n > max then
- max = n
- end
- series[#series+1] = { v, unpack(stack) }
- else
- insert(stack,k)
- make(v)
- remove(stack)
- end
- end
- end
-
- for i=1,#sequences do
- local sequence = sequences[i]
- if sequence.type == "gsub_ligature" then
- local steps = sequence.steps
- for i=1,#steps do
- local step = steps[i]
- local coverage = step.coverage
- if coverage then
- make(coverage)
- end
- end
- end
- end
-
- return series, max
-end
-
-function moduledata.fonts.features.showallligatures(specification)
- specification = interfaces.checkedspecification(specification)
- local id, cs = fonts.definers.internal(specification,"<module:fonts:features:font>")
- local tfmdata = fonts.hashes.identifiers[id]
- local allligatures,
- max = collectligatures(tfmdata)
- local characters = tfmdata.characters
- local descriptions = tfmdata.descriptions
- if #allligatures > 0 then
- context.starttabulate { "|T|" .. string.rep("|",max) .. "|T|T|" }
- for i=1,#allligatures do
- local s = allligatures[i]
- local n = #s
- local u = s[1]
- local c = characters[u]
- local d = descriptions[u]
- NC()
- context("%U",u)
- NC()
- context("\\setfontid%i\\relax",id)
- context.char(u)
- NC()
- context("\\setfontid%i\\relax",id)
- for i=2,n do
- context.char(s[i])
- NC()
- end
- for i=n+1,max do
- NC()
- end
- context(d.name)
- NC()
- context(c.tounicode)
- NC()
- NR()
- end
- context.stoptabulate()
- else
- context("no ligatures found")
- context.par()
- end
-end
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-features.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-features.mkiv
index 2390c44df07..2dca059ff3d 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-features.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-features.mkiv
@@ -18,7 +18,6 @@
\installmodulecommandluasingle \showusedfeatures {moduledata.fonts.features.showused}
\installmodulecommandluasingle \showallkerns {moduledata.fonts.features.showallkerns}
\installmodulecommandluasingle \showbasekerns {moduledata.fonts.features.showbasekerns}
-\installmodulecommandluasingle \showallligatures {moduledata.fonts.features.showallligatures}
\installmodulecommandluasingle \showfeatureset {moduledata.fonts.features.showfeatureset}
\def\kernpairheight{.8\strutht}
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-shapes.lua b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-shapes.lua
index 868c22da114..748c5a92a60 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-shapes.lua
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-shapes.lua
@@ -58,6 +58,39 @@ function moduledata.fonts.shapes.showlist(specification) -- todo: ranges
for k, v in next, characters.data do
if chrs[k] then
NC() context("0x%05X",k)
+ NC() char(id,k) -- getvalue(cs) context.char(k)
+ NC() char(id,v.shcode)
+ NC() char(id,v.lccode or k)
+ NC() char(id,v.uccode or k)
+ NC() special(id,v.specials)
+ NC() context.tx(v.description)
+ NC() NR()
+ end
+ end
+ context.stoptabulate()
+ context.endgroup()
+end
+
+function moduledata.fonts.shapes.showlist(specification) -- todo: ranges
+ specification = interfaces.checkedspecification(specification)
+ local id, cs = fonts.definers.internal(specification,"<module:fonts:shapes:font>")
+ local chrs = fontdata[id].characters
+ context.begingroup()
+ context.tt()
+ context.starttabulate { "|l|c|c|c|c|l|l|" }
+ context.FL()
+ NC() context.bold("unicode")
+ NC() context.bold("glyph")
+ NC() context.bold("shape")
+ NC() context.bold("lower")
+ NC() context.bold("upper")
+ NC() context.bold("specials")
+ NC() context.bold("description")
+ NC() NR()
+ context.TL()
+ for k, v in next, characters.data do
+ if chrs[k] then
+ NC() context("0x%05X",k)
NC() char(id,k)
NC() char(id,v.shcode)
NC() char(id,v.lccode or k)
@@ -74,177 +107,220 @@ end
local descriptions = nil
local characters = nil
-
local function showglyphshape(specification)
- --
- local specification = interfaces.checkedspecification(specification)
- local id, cs = fonts.definers.internal(specification,"<module:fonts:shapes:font>")
- local tfmdata = fontdata[id]
- local characters = tfmdata.characters
- local descriptions = tfmdata.descriptions
- local parameters = tfmdata.parameters
- local anchors = fonts.helpers.collectanchors(tfmdata)
-
- local function showonecharacter(unicode)
- local c = characters [unicode]
- local d = descriptions[unicode]
- if c and d then
- local factor = (parameters.size/parameters.units)*((7200/7227)/65536)
- local llx, lly, urx, ury = unpack(d.boundingbox)
- llx, lly, urx, ury = llx*factor, lly*factor, urx*factor, ury*factor
- local width = (d.width or 0)*factor
- context.start()
- context.dontleavehmode()
- context.obeyMPboxdepth()
- context.startMPcode()
- context("numeric lw ; lw := .125bp ;")
- context("pickup pencircle scaled lw ;")
- if width < 0.01 then
- -- catches zero width marks
- context('picture p ; p := textext.drt("\\hskip5sp\\getuvalue{%s}\\gray\\char%s"); draw p ;',cs,unicode)
- else
- context('picture p ; p := textext.drt("\\getuvalue{%s}\\gray\\char%s"); draw p ;',cs,unicode)
- end
- context('draw (%s,%s)--(%s,%s)--(%s,%s)--(%s,%s)--cycle withcolor green ;',llx,lly,urx,lly,urx,ury,llx,ury)
- context('draw (%s,%s)--(%s,%s) withcolor green ;',llx,0,urx,0)
- context('draw boundingbox p withcolor .2white withpen pencircle scaled .065bp ;')
- context("defaultscale := 0.05 ; ")
- -- inefficient but non critical
- local slant = {
- function(v,dx,dy,txt,xsign,ysign,loc,labloc)
- local n = #v
- if n > 0 then
- local l = { }
- for i=1,n do
- local c = v[i]
- local h = c.height or 0
- local k = c.kern or 0
- l[i] = formatters["((%s,%s) shifted (%s,%s))"](xsign*k*factor,ysign*h*factor,dx,dy)
- end
- context("draw ((%s,%s) shifted (%s,%s))--%s dashed (evenly scaled 1/16) withcolor .5white;", xsign*v[1].kern*factor,lly,dx,dy,l[1])
- context("draw laddered (%..t) withcolor .5white ;",l) -- why not "--"
- context("draw ((%s,%s) shifted (%s,%s))--%s dashed (evenly scaled 1/16) withcolor .5white;", xsign*v[#v].kern*factor,ury,dx,dy,l[#l])
- for i=1,n do
- context("draw %s withcolor blue withpen pencircle scaled 2lw ;",l[i])
- end
+ specification = interfaces.checkedspecification(specification)
+ local id, cs = fonts.definers.internal(specification,"<module:fonts:shapes:font>")
+ local tfmdata = fontdata[id]
+ local charnum = tonumber(specification.character) or fonts.helpers.nametoslot(specification.character)
+ local characters = tfmdata.characters
+ local descriptions = tfmdata.descriptions
+ local parameters = tfmdata.parameters
+ local c = characters[charnum]
+ local d = descriptions[charnum]
+ if d then
+ local factor = (parameters.size/parameters.units)*((7200/7227)/65536)
+ local llx, lly, urx, ury = unpack(d.boundingbox)
+ llx, lly, urx, ury = llx*factor, lly*factor, urx*factor, ury*factor
+ local width, italic = (d.width or 0)*factor, (d.italic or 0)*factor
+ local top_accent, bot_accent = (d.top_accent or 0)*factor, (d.bot_accent or 0)*factor
+ local anchors, math = d.anchors, d.math
+ context.start()
+ context.dontleavehmode()
+ context.obeyMPboxdepth()
+ context.startMPcode()
+ context("numeric lw ; lw := .125bp ;")
+ context("pickup pencircle scaled lw ;")
+ if width < 0.01 then
+ -- catches zero width marks
+ context('picture p ; p := textext.drt("\\hskip5sp\\getuvalue{%s}\\gray\\char%s"); draw p ;',cs,charnum)
+ else
+ context('picture p ; p := textext.drt("\\getuvalue{%s}\\gray\\char%s"); draw p ;',cs,charnum)
+ end
+ context('draw (%s,%s)--(%s,%s)--(%s,%s)--(%s,%s)--cycle withcolor green ;',llx,lly,urx,lly,urx,ury,llx,ury)
+ context('draw (%s,%s)--(%s,%s) withcolor green ;',llx,0,urx,0)
+ context('draw boundingbox p withcolor .2white withpen pencircle scaled .065bp ;')
+ context("defaultscale := 0.05 ; ")
+ -- inefficient but non critical
+ local slant = {
+ function(v,dx,dy,txt,xsign,ysign,loc,labloc)
+ local n = #v
+ if n > 0 then
+ local l = { }
+ for i=1,n do
+ local c = v[i]
+ local h = c.height or 0
+ local k = c.kern or 0
+ l[i] = formatters["((%s,%s) shifted (%s,%s))"](xsign*k*factor,ysign*h*factor,dx,dy)
end
- end,
- function(v,dx,dy,txt,xsign,ysign,loc,labloc)
- local n = #v
- if n > 0 then
- local l = { }
- for i=1,n do
- local c = v[i]
- local h = c.height or 0
- local k = c.kern or 0
- l[i] = formatters["((%s,%s) shifted (%s,%s))"](xsign*k*factor,ysign*h*factor,dx,dy)
- end
- if loc == "top" then
- context('label.%s("\\type{%s}",%s shifted (0,-1bp)) ;',loc,txt,l[n])
- else
- context('label.%s("\\type{%s}",%s shifted (0,2bp)) ;',loc,txt,l[1])
- end
- for i=1,n do
- local c = v[i]
- local h = c.height or 0
- local k = c.kern or 0
- context('label.top("(%s,%s)",%s shifted (0,-2bp));',k,h,l[i])
- end
+ context("draw ((%s,%s) shifted (%s,%s))--%s dashed (evenly scaled 1/16) withcolor .5white;", xsign*v[1].kern*factor,lly,dx,dy,l[1])
+-- context("draw laddered (%s) withcolor .5white ;",table.concat(l,".."))
+ context("draw laddered (%..t) withcolor .5white ;",l)
+ context("draw ((%s,%s) shifted (%s,%s))--%s dashed (evenly scaled 1/16) withcolor .5white;", xsign*v[#v].kern*factor,ury,dx,dy,l[#l])
+ for i=1,n do
+ context("draw %s withcolor blue withpen pencircle scaled 2lw ;",l[i])
end
- end,
- }
- --
- local math = d.math
- if math then
- local kerns = math.kerns
- if kerns then
- for i=1,#slant do
- local s = slant[i]
- for k, v in next, kerns do
- if k == "topright" then
- -- s(v,width+italic,0,k,1,1,"top","ulft")
- s(v,width,0,k,1,1,"top","ulft")
- elseif k == "bottomright" then
- s(v,width,0,k,1,1,"bot","lrt")
- elseif k == "topleft" then
- s(v,0,0,k,-1,1,"top","ulft")
- elseif k == "bottomleft" then
- s(v,0,0,k,-1,1,"bot","lrt")
- end
- end
+ end
+ end,
+ function(v,dx,dy,txt,xsign,ysign,loc,labloc)
+ local n = #v
+ if n > 0 then
+ local l = { }
+ for i=1,n do
+ local c = v[i]
+ local h = c.height or 0
+ local k = c.kern or 0
+ l[i] = formatters["((%s,%s) shifted (%s,%s))"](xsign*k*factor,ysign*h*factor,dx,dy)
+ end
+ if loc == "top" then
+ context('label.%s("\\type{%s}",%s shifted (0,-1bp)) ;',loc,txt,l[n])
+ else
+ context('label.%s("\\type{%s}",%s shifted (0,2bp)) ;',loc,txt,l[1])
+ end
+ for i=1,n do
+ local c = v[i]
+ local h = c.height or 0
+ local k = c.kern or 0
+ context('label.top("(%s,%s)",%s shifted (0,-2bp));',k,h,l[i])
end
end
- local accent = math.accent
- if accent and accent ~= 0 then
- local a = accent * factor
- context('draw (%s,%s+1bp)--(%s,%s-1bp) withcolor blue;',a,ury,a,ury)
- context('label.bot("\\type{%s}",(%s,%s+1bp));',"accent",a,ury)
- context('label.top("%s",(%s,%s-1bp));',math.accent,a,ury)
+ end,
+ }
+ if math then
+ local kerns = math.kerns
+ if kerns then
+ for i=1,#slant do
+ local s = slant[i]
+ for k, v in next, kerns do
+ if k == "topright" then
+ s(v,width+italic,0,k,1,1,"top","ulft")
+ elseif k == "bottomright" then
+ s(v,width,0,k,1,1,"bot","lrt")
+ elseif k == "topleft" then
+ s(v,0,0,k,-1,1,"top","ulft")
+ elseif k == "bottomleft" then
+ s(v,0,0,k,-1,1,"bot","lrt")
+ end
+ end
end
end
- --
- local anchordata = anchors[unicode]
- if anchordata then
- local function show(txt,list)
- if list then
- for i=1,#list do
- local li = list[i]
- local x, y = li[1], li[2]
- local xx, yy = x*factor, y*factor
- context("draw (%s,%s) withcolor blue withpen pencircle scaled 2lw ;",xx,yy)
- context('label.top("\\infofont %s",(%s,%s-2.75bp)) ;',txt .. i,xx,yy)
- context('label.bot("\\infofont (%s,%s)",(%s,%s+2.75bp)) ;',x,y,xx,yy)
- end
+ end
+ local function show(x,y,txt)
+ local xx, yy = x*factor, y*factor
+ context("draw (%s,%s) withcolor blue withpen pencircle scaled 2lw ;",xx,yy)
+ context('label.top("\\type{%s}",(%s,%s-2bp)) ;',txt,xx,yy)
+ context('label.bot("(%s,%s)",(%s,%s+2bp)) ;',x,y,xx,yy)
+ end
+ if anchors then
+ local a = anchors.baselig
+ if a then
+ for k, v in next, a do
+ for i=1,#v do
+ local p = v[i]
+ show(p[1],p[2],k .. ":" .. i)
end
end
- --
- show("b",anchordata.base)
- show("m",anchordata.mark)
- show("l",anchordata.ligature)
- show("e",anchordata.entry)
- show("x",anchordata.exit)
end
- --
- local italic = d.italic
- if italic and italic ~= 0 then
- local i = italic * factor
- context('draw (%s,%s-1bp)--(%s,%s-0.5bp) withcolor blue ;',width,ury,width,ury)
- context('draw (%s,%s-1bp)--(%s,%s-0.5bp) withcolor blue ;',width+i,ury,width+i,ury)
- context('draw (%s,%s-1bp)--(%s,%s-1bp) withcolor blue ;',width,ury,width+i,ury)
- context('label.lft("\\type{%s}",(%s+2bp,%s-1bp));',"italic",width,ury)
- context('label.rt("%s",(%s-2bp,%s-1bp));',italic,width+i,ury)
+ local a = anchors.mark
+ if a then
+ for k, v in next, a do
+ show(v[1],v[2],k)
+ end
end
- context('draw origin withcolor red withpen pencircle scaled 2lw;')
- context("setbounds currentpicture to boundingbox currentpicture enlarged 1bp ;")
- context("currentpicture := currentpicture scaled 8 ;")
- context.stopMPcode()
- context.stop()
+ local a = anchors.basechar
+ if a then
+ for k, v in next, a do
+ show(v[1],v[2],k)
+ end
+ end
+ local ba = anchors.centry
+ if a then
+ for k, v in next, a do
+ show(v[1],v[2],k)
+ end
+ end
+ local a = anchors.cexit
+ if a then
+ for k, v in next, a do
+ show(v[1],v[2],k)
+ end
+ end
+ end
+ if italic ~= 0 then
+ context('draw (%s,%s-1bp)--(%s,%s-0.5bp) withcolor blue ;',width,ury,width,ury)
+ context('draw (%s,%s-1bp)--(%s,%s-0.5bp) withcolor blue ;',width+italic,ury,width+italic,ury)
+ context('draw (%s,%s-1bp)--(%s,%s-1bp) withcolor blue ;',width,ury,width+italic,ury)
+ context('label.lft("\\type{%s}",(%s+2bp,%s-1bp));',"italic",width,ury)
+ context('label.rt("%s",(%s-2bp,%s-1bp));',d.italic,width+italic,ury)
+ end
+ if top_accent ~= 0 then
+ context('draw (%s,%s+1bp)--(%s,%s-1bp) withcolor blue;',top_accent,ury,top_accent,ury)
+ context('label.bot("\\type{%s}",(%s,%s+1bp));',"top_accent",top_accent,ury)
+ context('label.top("%s",(%s,%s-1bp));',d.top_accent,top_accent,ury)
+ end
+ if bot_accent ~= 0 then
+ context('draw (%s,%s+1bp)--(%s,%s-1bp) withcolor blue;',bot_accent,lly,bot_accent,lly)
+ context('label.top("\\type{%s}",(%s,%s-1bp));',"bot_accent",top_accent,ury)
+ context('label.bot("%s",(%s,%s+1bp));',d.bot_accent,bot_accent,lly)
end
+ context('draw origin withcolor red withpen pencircle scaled 2lw;')
+ context("setbounds currentpicture to boundingbox currentpicture enlarged 1bp ;")
+ context("currentpicture := currentpicture scaled 8 ;")
+ context.stopMPcode()
+ context.stop()
+ -- elseif c then
+ -- lastdata, lastunicode = nil, nil
+ -- local factor = (7200/7227)/65536
+ -- context.startMPcode()
+ -- context("pickup pencircle scaled .25bp ; ")
+ -- context('picture p ; p := image(draw textext.drt("\\gray\\char%s");); draw p ;',charnum)
+ -- context('draw boundingbox p withcolor .2white withpen pencircle scaled .065bp ;')
+ -- context("defaultscale := 0.05 ; ")
+ -- local italic, top_accent, bot_accent = (c.italic or 0)*factor, (c.top_accent or 0)*factor, (c.bot_accent or 0)*factor
+ -- local width, height, depth = (c.width or 0)*factor, (c.height or 0)*factor, (c.depth or 0)*factor
+ -- local ury = height
+ -- if italic ~= 0 then
+ -- context('draw (%s,%s-1bp)--(%s,%s-0.5bp) withcolor blue;',width,ury,width,ury)
+ -- context('draw (%s,%s-1bp)--(%s,%s-0.5bp) withcolor blue;',width+italic,ury,width+italic,ury)
+ -- context('draw (%s,%s-1bp)--(%s,%s-1bp) withcolor blue;',width,ury,width+italic,height)
+ -- context('label.lft("\\type{%s}",(%s+2bp,%s-1bp));',"italic",width,height)
+ -- context('label.rt("%6.3f bp",(%s-2bp,%s-1bp));',italic,width+italic,height)
+ -- end
+ -- if top_accent ~= 0 then
+ -- context('draw (%s,%s+1bp)--(%s,%s-1bp) withcolor blue;',top_accent,ury,top_accent,height)
+ -- context('label.bot("\\type{%s}",(%s,%s+1bp));',"top_accent",top_accent,height)
+ -- context('label.top("%6.3f bp",(%s,%s-1bp));',top_accent,top_accent,height)
+ -- end
+ -- if bot_accent ~= 0 then
+ -- context('draw (%s,%s+1bp)--(%s,%s-1bp) withcolor blue;',bot_accent,lly,bot_accent,height)
+ -- context('label.top("\\type{%s}",(%s,%s-1bp));',"bot_accent",top_accent,height)
+ -- context('label.bot("%6.3f bp",(%s,%s+1bp));',bot_accent,bot_accent,height)
+ -- end
+ -- context('draw origin withcolor red withpen pencircle scaled 1bp;')
+ -- context("setbounds currentpicture to boundingbox currentpicture enlarged 1bp ;")
+ -- context("currentpicture := currentpicture scaled 8 ;")
+ -- context.stopMPcode()
+ else
+ -- lastdata, lastunicode = nil, nil
+ -- context("no such shape: 0x%05X",charnum)
end
+end
- local unicode = tonumber(specification.character) or
- fonts.helpers.nametoslot(specification.character)
+moduledata.fonts.shapes.showglyphshape = showglyphshape
- if unicode then
- showonecharacter(unicode)
- else
- context.modulefontsstartshowglyphshapes()
- for unicode, description in fonts.iterators.descriptions(tfmdata) do
- if unicode >= 0x110000 then
- break
- end
- context.modulefontsstartshowglyphshape(unicode,description.name or "",description.index or 0)
- showonecharacter(unicode)
- context.modulefontsstopshowglyphshape()
+function moduledata.fonts.shapes.showallglypshapes(specification)
+ specification = interfaces.checkedspecification(specification)
+ local id, cs = fonts.definers.internal(specification,"<module:fonts:shapes:font>")
+ local descriptions = fontdata[id].descriptions
+ for unicode, description in fonts.iterators.descriptions(tfmdata) do
+ if unicode >= 0x110000 then
+ break
end
- context.modulefontsstopshowglyphshapes()
+ context.modulefontsstartshowglyphshape(unicode,description.name or "",description.index or 0)
+ showglyphshape { number = id, character = unicode }
+ context.modulefontsstopshowglyphshape()
end
-
end
-moduledata.fonts.shapes.showglyphshape = showglyphshape
-moduledata.fonts.shapes.showallglypshapes = showglyphshape
-
function moduledata.fonts.shapes.showlastglyphshapefield(unicode,name)
if not descriptions then
-- bad news
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-shapes.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-shapes.mkiv
index 90b9c1f6496..53ed1b426ef 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-shapes.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-shapes.mkiv
@@ -30,7 +30,7 @@
\startsetups module:showallglyphshapes:start
\unexpanded\def\modulefontsstartshowglyphshape##1##2##3{
- \startTEXpage[\c!offset=\exheight] % ,\c!frame=\v!on]
+ \startTEXpage[\c!offset=\exheight]
\edef\lastshownglyphshapefieldunicode{##1}%
\edef\lastshownglyphshapefieldname {##2}%
\edef\lastshownglyphshapefieldindex {##3}%
@@ -58,15 +58,6 @@
\stopsetups
-\startsetups module:showallglyphshapes:stop
-
- % nothing
-
-\stopsetups
-
-\unexpanded\def\modulefontsstartshowglyphshapes{\setups[module:showallglyphshapes:start]}
-\unexpanded\def\modulefontsstopshowglyphshapes {\setups[module:showallglyphshapes:stop]}
-
\protect
% downward compatibility:
@@ -106,9 +97,6 @@
% \startTEXpage \ShowGlyphShape{simplenaskhi}{100bp}{0xF0299} \stopTEXpage
% \startTEXpage \ShowGlyphShape{simplenaskhi}{100bp}{NameMe.1190} \stopTEXpage
- \startTEXpage[offset=0pt]\ShowGlyphShape{file:stix2math.otf}{20bp}{0x1D44A}\stopTEXpage
- \startTEXpage[offset=0pt]\ShowGlyphShape{file:stix2math.otf}{20bp}{0x1D44C}\stopTEXpage
-
% \startTEXpage[offset=0pt]\ShowGlyphShape{name:cambria-math}{20bp}{0x00066}\stopTEXpage
% \startTEXpage[offset=0pt]\ShowGlyphShape{name:cambria-math}{20bp}{0x1D453}\stopTEXpage
% \startTEXpage[offset=0pt]\ShowGlyphShape{name:cambria-math}{20bp}{0x1D43F}\stopTEXpage
@@ -121,13 +109,10 @@
% \startTEXpage[offset=0pt]\ShowGlyphShape{name:cambria-math}{50bp}{0x1D45D}\stopTEXpage
% \page
-% \startTEXpage[offset=0pt]\ShowGlyphShape{file:husayninotebold.ttf}{50bp}{0xF034A}\stopTEXpage
-% \startTEXpage[offset=0pt]\ShowGlyphShape{file:husayninotebold.ttf}{50bp}{0x006DD}\stopTEXpage
-% \startTEXpage[offset=0pt]\ShowGlyphShape{file:husayninotebold.ttf}{50bp}{0x006DD}\stopTEXpage
-% \startTEXpage[offset=0pt]\ShowGlyphShape{file:arabtype.ttf}{50bp}{0x0FCA1}\stopTEXpage
+\startTEXpage[offset=0pt]\ShowGlyphShape{file:husayninotebold.ttf}{50bp}{0xF034A}\stopTEXpage
+\startTEXpage[offset=0pt]\ShowGlyphShape{file:husayninotebold.ttf}{50bp}{0x006DD}\stopTEXpage
% \showallglyphshapes[name=name:cambria-math,size=100bp]
-% \showallglyphshapes[name=name:arabtype,size=100bp]
% \showallglyphshapes[name=file:husayninotebold.ttf,size=100bp]
% \showallglyphshapes[name=name:dejavuserif,size=100bp]
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-statistics.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-statistics.mkiv
deleted file mode 100644
index 3b5cddd3cc9..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-statistics.mkiv
+++ /dev/null
@@ -1,80 +0,0 @@
-%D \module
-%D [ file=s-fonts-statistics,
-%D version=2018.03.21, % guess
-%D title=\CONTEXT\ Style File,
-%D subtitle=Listing font statistics,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\startmodule[fonts-statistics]
-
-\startluacode
-
-moduledata.fonts = moduledata.fonts or { }
-moduledata.fonts.statistics = moduledata.fonts.statistics or { }
-
-local context = context
-local ctx_NC, ctx_BC, ctx_NR = context.NC, context.BC, context.NR
-
-function moduledata.fonts.statistics.showusage()
- local t = table.load(tex.jobname.."-fonts-usage.lua")
- if t then
- local totalinstances = 0
- local totalfilesize = 0
- local totalfilenames = #t
- if totalfilenames > 0 then
- context.starttabulate { "|r|r|c||" }
- context.FL()
- ctx_BC() context("used")
- ctx_BC() context("filesize")
- ctx_BC() context("version")
- ctx_BC() context("filename")
- ctx_NR()
- context.ML()
- for i=1,#t do
- local ti = t[i]
- local version = tonumber(string.match(ti.version or "","^.-([%d%.]+)"))
- local instances = ti.instances or 1
- local filename = file.basename(ti.filename) or "unknown"
- local filesize = ti.size or 0
- totalinstances = totalinstances + instances
- totalfilesize = totalfilesize + filesize
- ctx_NC() context(instances)
- ctx_NC() context("%0m",filesize)
- ctx_NC() if version then context("%0.3f",version) end
- ctx_NC() context.type(filename)
- ctx_NR()
- end
- context.LL()
- ctx_BC() context(totalinstances)
- ctx_BC() context("%0m",totalfilesize)
- ctx_BC() context()
- ctx_BC() context("%i files loaded",totalfilenames)
- ctx_NR()
- context.stoptabulate()
- end
- end
-end
-
-\stopluacode
-
-\installmodulecommandluasingle \showfontusage {moduledata.fonts.statistics.showusage}
-
-\stopmodule
-
-\continueifinputfile{s-fonts-statistics.mkiv}
-
-\enabletrackers[fonts.usage]
-
-\starttext
-
- \input klein
-
- \showfontusage
-
-\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-system.lua b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-system.lua
index dc0f2e6a3f8..5b58a4a533f 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-system.lua
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-system.lua
@@ -30,19 +30,14 @@ if not modules then modules = { } end modules ['s-fonts-system'] = {
moduledata.fonts = moduledata.fonts or { }
moduledata.fonts.system = moduledata.fonts.system or { }
+local lower = string.lower
+
local context = context
local NC, NR, HL = context.NC, context.NR, context.HL
-local ctx_bold = context.bold
-local ctx_verbatim = context.verbatim
-local lpegmatch = lpeg.match
-local sortedhash = table.sortedhash
-local formatters = string.formatters
-local concat = table.concat
-local lower = string.lower
-local gsub = string.gsub
-local find = string.find
+local bold = context.bold
-local function allfiles(specification)
+function moduledata.fonts.system.showinstalled(specification)
+ specification = interfaces.checkedspecification(specification)
local pattern = lower(specification.pattern or "")
local list = fonts.names.list(pattern,false,true)
if list then
@@ -50,22 +45,14 @@ local function allfiles(specification)
for k, v in next, list do
files[file.basename(string.lower(v.filename))] = v
end
- return files
- end
-end
-
-function moduledata.fonts.system.showinstalled(specification)
- specification = interfaces.checkedspecification(specification)
- local files = allfiles(specification)
- if files then
context.starttabulate { "|Tl|Tl|Tl|Tl|Tl|Tl|" }
HL()
- NC() ctx_bold("filename")
- NC() ctx_bold("fontname")
- NC() ctx_bold("subfamily")
- NC() ctx_bold("variant")
- NC() ctx_bold("weight")
- NC() ctx_bold("width")
+ NC() bold("filename")
+ NC() bold("fontname")
+ NC() bold("subfamily")
+ NC() bold("variant")
+ NC() bold("weight")
+ NC() bold("width")
NC() NR()
HL()
for filename, data in table.sortedpairs(files) do
@@ -80,242 +67,3 @@ function moduledata.fonts.system.showinstalled(specification)
context.stoptabulate()
end
end
-
-function moduledata.fonts.system.cacheinstalled(specification)
- specification = interfaces.checkedspecification(specification)
- local files = allfiles(specification)
- if files then
- local threshold = tonumber(specification.threshold)
- local suffixes = specification.suffixes
- if suffixes then
- suffixes = utilities.parsers.settings_to_set(suffixes)
- else
- suffixes = { otf = true, ttf = true }
- end
- for filename, data in table.sortedpairs(files) do
- if string.find(filename," ") then
- -- skip this one
- elseif suffixes[file.suffix(filename)] then
- local fullname = resolvers.findfile(filename)
- context.start()
- context.type(fullname)
- context.par()
- if threshold and file.size(fullname) > threshold then
- logs.report("fonts","ignoring : %s",fullname)
- else
- logs.report("fonts","caching : %s",fullname)
- context.definedfont { filename }
- end
- context.stop()
- end
- end
- end
-end
-
-local splitter = lpeg.splitat(lpeg.S("._"),true)
-
-local method = 4
-
-function moduledata.fonts.system.showinstalledglyphnames(specification)
- specification = interfaces.checkedspecification(specification)
- local paths = caches.getreadablepaths()
- local files = { }
- local names = table.setmetatableindex("table")
- local f_u = formatters["%04X"]
- for i=1,#paths do
- local list = dir.glob(paths[i].."/fonts/o*/**.tmc")
- for i=1,#list do
- files[list[i]] = true
- end
- end
- for filename in table.sortedhash(files) do
- local fontname = file.nameonly(filename)
- logs.report("system","fontfile: %s",fontname)
- local data = table.load(filename)
- if data then
- if method == 1 then
- local unicodes = data.resources.unicodes
- if unicodes then
- for n, u in sortedhash(unicodes) do
- if u >= 0xF0000 or (u >= 0xE000 and u <= 0xF8FF) then
- -- skip
- else
- local f = lpegmatch(splitter,n) or n
- if #f > 0 then
- local t = names[f]
- t[u] = (t[u] or 0) + 1
- end
- end
- end
- end
- elseif method == 2 then
- local unicodes = data.resources.unicodes
- if unicodes then
- for n, u in sortedhash(unicodes) do
- if u >= 0xF0000 or (u >= 0xE000 and u <= 0xF8FF) then
- -- skip
- else
- local t = names[n]
- t[u] = (t[u] or 0) + 1
- end
- end
- end
- elseif method == 3 then
- local descriptions = data.descriptions
- if descriptions then
- for u, d in sortedhash(descriptions) do
- local n = d.name
- local u = d.unicode
- if n and u then
- if type(u) == "table" then
- local t = { }
- for i=1,#u do
- t[i] = f_u(u[i])
- end
- u = concat(t," ")
- end
- local t = names[n]
- t[u] = (t[u] or 0) + 1
- end
- end
- end
- elseif method == 4 then
- local descriptions = data.descriptions
- if descriptions then
- for u, d in sortedhash(descriptions) do
- local n = d.name
- local u = d.unicode
- if n and not u and not find(n,"^%.") then
- local n = names[n]
- n[#n+1] = fontname
- end
- end
- end
- else
- -- nothing
- end
- end
- end
- -- names[".notdef"] = nil
- -- names[".null"] = nil
- if method == 4 then
- if next(names) then
- context.starttabulate { "|l|pl|" }
- local f_u = formatters["%04X~(%i)"]
- local f_s = formatters["%s~(%i)"]
- for k, v in sortedhash(names) do
- NC() ctx_verbatim(k)
- NC() context("% t",v)
- NC() NR()
- end
- context.stoptabulate()
- end
- table.save("s-fonts-system-glyph-unknowns.lua",names)
- else
- if next(names) then
- context.starttabulate { "|l|pl|" }
- local f_u = formatters["%04X~(%i)"]
- local f_s = formatters["%s~(%i)"]
- for k, v in sortedhash(names) do
- local t = { }
- for k, v in sortedhash(v) do
- if type(k) == "string" then
- t[#t+1] = f_s(k,v)
- else
- t[#t+1] = f_u(k,v)
- end
- end
- NC() ctx_verbatim(k)
- NC() context("%, t",t)
- NC() NR()
- end
- context.stoptabulate()
- end
- table.save("s-fonts-system-glyph-names.lua",names)
- end
-end
-
--- -- --
-
--- local skip = {
--- "adobeblank",
--- "veramo",
--- "unitedstates",
--- "tirek",
--- "svbasicmanual",
--- "sahel",
--- "prsprorg",
--- "piratdia",
--- "notoserifthai",
--- "coelacanthsubhdheavy",
--- }
-
--- local function bad(name)
--- name = lower(name)
--- for i=1,#skip do
--- if find(name,skip[i]) then
--- return true
--- end
--- end
--- end
-
--- function moduledata.fonts.system.showprivateglyphnames(specification)
--- specification = interfaces.checkedspecification(specification)
--- local paths = caches.getreadablepaths()
--- local files = { }
--- local names = table.setmetatableindex("table")
--- local f_u = formatters["%04X"]
--- for i=1,#paths do
--- local list = dir.glob(paths[i].."/fonts/o*/**.tmc")
--- for i=1,#list do
--- files[list[i]] = true
--- end
--- end
--- for filename in table.sortedhash(files) do
--- logs.report("system","fontfile: %s",file.nameonly(filename))
--- local data = table.load(filename)
--- if data and data.format == "truetype" or data.format == "opentype" then
--- local basename = file.basename(data.resources.filename)
--- local cleanname = gsub(basename," ","")
--- if not bad(cleanname) then
--- local descriptions = data.descriptions
--- if descriptions then
--- local done = 0
--- for u, d in sortedhash(descriptions) do
--- local dn = d.name
--- local du = d.unicode
--- if dn and du and (u >= 0xF0000 or (u >= 0xE000 and u <= 0xF8FF)) and not find(dn,"notdef") then
--- if type(du) == "table" then
--- local t = { }
--- for i=1,#du do
--- t[i] = f_u(du[i])
--- end
--- du = concat(t," ")
--- end
--- if done == 0 then
--- logs.report("system","basename: %s",basename)
--- context.starttitle { title = basename }
--- context.start()
--- context.definefont( { "tempfont" }, { "file:" .. cleanname })
--- context.starttabulate { "|T||T|T|" }
--- end
--- NC() context("%U",u)
--- NC() context.tempfont() context.char(u) -- could be getglyph
--- NC() ctx_verbatim(dn)
--- NC() context(du)
--- NC() NR()
--- done = done + 1
--- end
--- end
--- if done > 0 then
--- logs.report("system","privates: %i",done)
--- context.stoptabulate()
--- context.stop()
--- context.stoptitle()
--- end
--- end
--- end
--- end
--- end
--- end
-
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-system.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-system.mkiv
index 9a0f7485d6f..6d9082a6bdc 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-system.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-system.mkiv
@@ -24,27 +24,16 @@
\registerctxluafile{s-fonts-system}{}
-\installmodulecommandluasingle \showinstalledfonts {moduledata.fonts.system.showinstalled}
-\installmodulecommandluasingle \cacheinstalledfonts {moduledata.fonts.system.cacheinstalled}
-\installmodulecommandluasingle \showinstalledglyphnames {moduledata.fonts.system.showinstalledglyphnames}
-%installmodulecommandluasingle \showprivateglyphnames {moduledata.fonts.system.showprivateglyphnames}
+\installmodulecommandluasingle \showinstalledfonts {moduledata.fonts.system.showinstalled}
\stopmodule
\continueifinputfile{s-fonts-system.mkiv}
-\usemodule[art-01] \setuplayout[overview] \setupbodyfont[6pt]
+\usemodule[art-01] \setuplayout[overview] \setupbodyfont[7pt]
\starttext
-% \showinstalledfonts
-
-% \enabletrackers[otf.keepnames]
-
-% \cacheinstalledfonts[suffixes={otf,ttf,afm}]
-% \cacheinstalledfonts[threshold=4000000,suffixes={otf,ttf,afm}]
-% \cacheinstalledfonts[threshold=2000000,suffixes={otf,ttf,afm}]
-
- \showinstalledglyphnames
+ \showinstalledfonts
\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-tables.lua b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-tables.lua
index 33cbc924c36..c32f4628c17 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-tables.lua
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-tables.lua
@@ -6,45 +6,18 @@ if not modules then modules = { } end modules ['s-fonts-tables'] = {
license = "see context related readme files"
}
-moduledata.fonts = moduledata.fonts or { }
-moduledata.fonts.tables = moduledata.fonts.tables or { }
-
-local setmetatableindex = table.setmetatableindex
-local sortedhash = table.sortedhash
-local sortedkeys = table.sortedkeys
-local concat = table.concat
-local insert = table.insert
-local remove = table.remove
-local formatters = string.formatters
-
-local tabletracers = moduledata.fonts.tables
-
-local new_glyph = nodes.pool.glyph
-local copy_node = nodes.copy
-local setlink = nodes.setlink
-local hpack = nodes.hpack
-local applyvisuals = nodes.applyvisuals
-
-local handle_positions = fonts.handlers.otf.datasetpositionprocessor
-local handle_injections = nodes.injections.handler
-
-local context = context
-local ctx_sequence = context.formatted.sequence
-local ctx_char = context.char
-local ctx_setfontid = context.setfontid
-local ctx_type = context.formatted.type
-local ctx_dontleavehmode = context.dontleavehmode
-local ctx_startPair = context.startPair
-local ctx_stopPair = context.stopPair
-local ctx_startSingle = context.startSingle
-local ctx_stopSingle = context.stopSingle
-local ctx_startSingleKern = context.startSingleKern
-local ctx_stopSingleKern = context.stopSingleKern
-local ctx_startPairKern = context.startPairKern
-local ctx_stopPairKern = context.stopPairKern
-
-local ctx_NC = context.NC
-local ctx_NR = context.NR
+moduledata.fonts = moduledata.fonts or { }
+moduledata.fonts.tables = moduledata.fonts.tables or { }
+
+local setmetatableindex = table.setmetatableindex
+local sortedhash = table.sortedhash
+local sortedkeys = table.sortedkeys
+local format = string.format
+local concat = table.concat
+
+local tabletracers = moduledata.fonts.tables
+
+local context = context
local digits = {
dflt = {
@@ -133,73 +106,53 @@ setmetatableindex(digits.dflt, function(t,k) return rawget(t,"dflt") end)
setmetatableindex(symbols.dflt, function(t,k) return rawget(t,"dflt") end)
setmetatableindex(punctuation.dflt, function(t,k) return rawget(t,"dflt") end)
--- scaled boolean string scale string float cardinal
-
-local function checked(specification)
- specification = interfaces.checkedspecification(specification)
- local id, cs = fonts.definers.internal(specification,"<module:fonts:features:font>")
- local tfmdata = fonts.hashes.identifiers[id]
- local resources = tfmdata.resources
- return tfmdata, id, resources
-end
-
-local function nothing()
- context("no entries")
- context.par()
-end
-
-local function typesettable(t,keys,synonyms,nesting,prefix,depth)
- if t and next(keys) then
+local function typesettable(t,keys,synonyms,nesting,prefix)
+ if t then
if not prefix then
context.starttabulate { "|Tl|Tl|Tl|" }
end
for k, v in sortedhash(keys) do
if k == "synonyms" then
elseif type(v) ~= "table" then
- ctx_NC()
+ context.NC()
if prefix then
context("%s.%s",prefix,k)
else
context(k)
end
- ctx_NC()
- -- print(v)
+ context.NC()
local tk = t[k]
- if v == "<boolean>" then
+ if v == "boolean" then
context(tostring(tk or false))
elseif not tk then
context("<unset>")
- elseif k == "filename" then
+ elseif v == "filename" then
context(file.basename(tk))
- -- elseif v == "basepoints" then
- -- context("%sbp",tk)
- elseif v == "<scaled>" then
+ elseif v == "basepoints" then
+ context("%sbp",tk)
+ elseif v == "scaledpoints" then
context("%p",tk)
- elseif v == "<table>" then
+ elseif v == "table" then
context("<table>")
- else
+ else -- if v == "integerscale" then
context(tostring(tk))
end
- ctx_NC()
- local synonym = (not prefix and synonyms[k]) or (prefix and synonyms[formatters["%s.%s"](prefix,k)])
+ context.NC()
+ local synonym = (not prefix and synonyms[k]) or (prefix and synonyms[format("%s.%s",prefix,k)])
if synonym then
- context("(% t)",synonym)
+ context(format("(%s)",concat(synonym," ")))
end
- ctx_NC()
- ctx_NR()
+ context.NC()
+ context.NR()
elseif nesting == false then
context("<table>")
- elseif next(v) then
- typesettable(t[k],v,synonyms,nesting,k,true)
+ else -- true or nil
+ typesettable(t[k],v,synonyms,nesting,k)
end
end
if not prefix then
context.stoptabulate()
end
- return
- end
- if not depth then
- nothing()
end
end
@@ -222,342 +175,51 @@ end
tabletracers.typeset = typeset
--- function tabletracers.showproperties(nesting)
--- local tfmdata = fonts.hashes.identifiers[true]
--- typeset(tfmdata.properties,fonts.constructors.keys.properties,nesting)
--- end
-
--- function tabletracers.showparameters(nesting)
--- local tfmdata = fonts.hashes.identifiers[true]
--- typeset(tfmdata.parameters,fonts.constructors.keys.parameters,nesting)
--- end
-
-function tabletracers.showproperties(specification)
- local tfmdata = checked(specification)
- if tfmdata then
- typeset(tfmdata.properties,fonts.constructors.keys.properties)
- else
- nothing()
- end
-end
-
-function tabletracers.showparameters(specification)
- local tfmdata = checked(specification)
- if tfmdata then
- typeset(tfmdata.parameters,fonts.constructors.keys.parameters)
- else
- nothing()
- end
+function tabletracers.showproperties(nesting)
+ local tfmdata = fonts.hashes.identifiers[font.current()]
+ typeset(tfmdata.properties,fonts.constructors.keys.properties,nesting)
end
-local f_u = formatters["%U"]
-local f_p = formatters["%p"]
-
-local function morept(t)
- local r = { }
- for i=1,t do
- r[i] = f_p(t[i])
- end
- return concat(r," ")
+function tabletracers.showparameters(nesting)
+ local tfmdata = fonts.hashes.identifiers[font.current()]
+ typeset(tfmdata.parameters,fonts.constructors.keys.parameters,nesting)
end
-local function noprefix(kind)
- kind = string.gsub(kind,"^gpos_","")
- kind = string.gsub(kind,"^gsub_","")
- return kind
-end
-
-local function banner(index,i,format,kind,order,chain)
- if chain then
- ctx_sequence("sequence: %i, step %i, format: %s, kind: %s, features: % t, chain: %s",
- index,i,format,noprefix(kind),order,noprefix(chain))
- else
- ctx_sequence("sequence: %i, step %i, format: %s, kind: %s, features: % t",
- index,i,format,noprefix(kind),order)
- end
-end
-
-function tabletracers.showpositionings(specification)
-
- local tfmdata, fontid, resources = checked(specification)
-
+function tabletracers.showpositionings()
+ local tfmdata = fonts.hashes.resources[font.current()]
+ local resources = tfmdata.resources
if resources then
-
- local direction = "TLT"
-
- local sequences = resources.sequences
- local marks = resources.marks
-
- if tonumber(direction) == -1 or direction == "TRT" then
- direction = "TRT"
- else
- direction = "TLT"
- end
-
- local visuals = "fontkern,glyph,box"
-
- local datasets = fonts.handlers.otf.dataset(tfmdata,fontid,0)
-
- local function process(dataset,sequence,kind,order,chain)
- local steps = sequence.steps
- local order = sequence.order or order
- local index = sequence.index
- for i=1,#steps do
- local step = steps[i]
- local format = step.format
- banner(index,i,format,kind,order,chain)
- if kind == "gpos_pair" then
- local format = step.format
- if "kern" or format == "move" then
- for first, seconds in sortedhash(step.coverage) do
- local done = false
- local zero = 0
- for second, kern in sortedhash(seconds) do
- if kern == 0 then
- zero = zero + 1
- else
- if not done then
- ctx_startPairKern()
- end
- local one = new_glyph(fontid,first)
- local two = new_glyph(fontid,second)
- local raw = setlink(copy_node(one),copy_node(two))
- local pos = setlink(done and one or copy_node(one),copy_node(two))
- pos, okay = handle_positions(pos,fontid,direction,dataset)
- pos = handle_injections(pos)
- applyvisuals(raw,visuals)
- applyvisuals(pos,visuals)
- pos = hpack(pos,"exact",nil,direction)
- raw = hpack(raw,"exact",nil,direction)
- ctx_NC() if not done then context(f_u(first)) end
- ctx_NC() if not done then ctx_dontleavehmode() context(one) end
- ctx_NC() context(f_u(second))
- ctx_NC() ctx_dontleavehmode() context(two)
- ctx_NC() context("%p",kern)
- ctx_NC() ctx_dontleavehmode() context(raw)
- ctx_NC() ctx_dontleavehmode() context(pos)
- ctx_NC() ctx_NR()
- done = true
- end
- end
- if done then
- ctx_stopPairKern()
- end
- if zero > 0 then
- ctx_type("zero: %s",zero)
- end
- end
- elseif format == "pair" then
- for first, seconds in sortedhash(step.coverage) do
- local done = false
- local allnull = 0
- local allzero = 0
- local zeronull = 0
- local nullzero = 0
- for second, pair in sortedhash(seconds) do
- local pfirst = pair[1]
- local psecond = pair[2]
- if not pfirst and not psecond then
- allnull = allnull + 1
- elseif pfirst == true and psecond == true then
- allzero = allzero + 1
- elseif pfirst == true and not psecond then
- zeronull = zeronull + 1
- elseif not pfirst and psecond == true then
- nullzero = nullzero + 1
- else
- if pfirst == true then
- pfirst = "all zero"
- elseif pfirst then
- pfirst = morept(pfirst)
- else
- pfirst = "no first"
- end
- if psecond == true then
- psecond = "all zero"
- elseif psecond then
- psecond = morept(psecond)
- else
- psecond = "no second"
- end
- if not done then
- ctx_startPair()
- end
- local one = new_glyph(fontid,first)
- local two = new_glyph(fontid,second)
- local raw = setlink(copy_node(one),copy_node(two))
- local pos = setlink(done and one or copy_node(one),copy_node(two))
- pos, okay = handle_positions(pos,fontid,direction,dataset)
- pos = handle_injections(pos)
- applyvisuals(raw,visuals)
- applyvisuals(pos,visuals)
- pos = hpack(pos,"exact",nil,direction)
- raw = hpack(raw,"exact",nil,direction)
- ctx_NC() if not done then context(f_u(first)) end
- ctx_NC() if not done then ctx_dontleavehmode() context(one) end
- ctx_NC() context(f_u(second))
- ctx_NC() ctx_dontleavehmode() context(two)
- ctx_NC() context(pfirst)
- ctx_NC() context(psecond)
- ctx_NC() ctx_dontleavehmode() context(raw)
- ctx_NC() ctx_dontleavehmode() context(pos)
- ctx_NC() ctx_NR()
- done = true
- end
- end
- if done then
- ctx_stopPair()
- end
- if allnull > 0 or allzero > 0 or zeronull > 0 or nullzero > 0 then
- ctx_type("both null: %s, both zero: %s, zero and null: %s, null and zero: %s",
- allnull,allzero,zeronull,nullzero)
- end
- end
- else
- -- maybe
- end
- elseif kind == "gpos_single" then
- local format = step.format
- if format == "kern" or format == "move" then
- local done = false
- local zero = 0
- for first, kern in sortedhash(step.coverage) do
- if kern == 0 then
- zero = zero + 1
- else
- if not done then
- ctx_startSingleKern()
- end
- local one = new_glyph(fontid,first)
- local raw = copy_node(one)
- local pos = copy_node(one)
- pos, okay = handle_positions(pos,fontid,direction,dataset)
- pos = handle_injections(pos)
- applyvisuals(raw,visuals)
- applyvisuals(pos,visuals)
- pos = hpack(pos,"exact",nil,direction)
- raw = hpack(raw,"exact",nil,direction)
- ctx_NC() context(f_u(first))
- ctx_NC() ctx_dontleavehmode() context(one)
- ctx_NC() context("%p",kern)
- ctx_NC() ctx_dontleavehmode() context(raw)
- ctx_NC() ctx_dontleavehmode() context(pos)
- ctx_NC() ctx_NR()
- done = true
- end
- end
- if done then
- ctx_stopSingleKern()
- end
- if zero > 0 then
- ctx_type("zero: %i",zero)
- end
- elseif format == "single" then
- local done = false
- local zero = 0
- local null = 0
- for first, single in sortedhash(step.coverage) do
- if single == false then
- null = null + 1
- elseif single == true then
- zero = zero + 1
- else
- single = morept(single)
- if not done then
- ctx_startSingle()
- end
- local one = new_glyph(fontid,first)
- local raw = copy_node(one)
- local pos = copy_node(one)
- pos, okay = handle_positions(pos,fontid,direction,dataset)
- pos = handle_injections(pos)
- applyvisuals(raw,visuals)
- applyvisuals(pos,visuals)
- raw = hpack(raw,"exact",nil,direction)
- pos = hpack(pos,"exact",nil,direction)
- ctx_NC() context(f_u(first))
- ctx_NC() ctx_dontleavehmode() context(one)
- ctx_NC() context(single)
- ctx_NC() ctx_dontleavehmode() context(raw)
- ctx_NC() ctx_dontleavehmode() context(pos)
- ctx_NC() ctx_NR()
- done = true
- end
- end
- if done then
- ctx_stopSingle()
- end
- if null > 0 then
- if zero > 0 then
- ctx_type("null: %i, zero: %i",null,zero)
- else
- ctx_type("null: %i",null)
- end
- else
- if null > 0 then
- ctx_type("both zero: %i",zero)
- end
- end
- else
- -- todo
- end
- end
- end
- end
-
- local done = false
-
- for d=1,#datasets do
- local dataset = datasets[d]
- local sequence = dataset[3]
- local kind = sequence.type
- if kind == "gpos_contextchain" or kind == "gpos_context" then
- local steps = sequence.steps
- for i=1,#steps do
- local step = steps[i]
- local rules = step.rules
- if rules then
- for i=1,#rules do
- local rule = rules[i]
- local lookups = rule.lookups
- if lookups then
- for i=1,#lookups do
- local lookup = lookups[i]
- if lookup then
- local look = lookup[1]
- local dnik = look.type
- if dnik == "gpos_pair" or dnik == "gpos_single" then
- process(dataset,look,dnik,sequence.order,kind)
- end
- end
- end
- end
- end
+ local features = resources.features
+ if features then
+ local gpos = features.gpos
+ if gpos and next(gpos) then
+ context.starttabulate { "|Tl|Tl|Tlp|" }
+ for feature, scripts in sortedhash(gpos) do
+ for script, languages in sortedhash(scripts) do
+ context.NC()
+ context(feature)
+ context.NC()
+ context(script)
+ context.NC()
+ context(concat(sortedkeys(languages)," "))
+ context.NC()
+ context.NR()
end
end
- done = true
- elseif kind == "gpos_pair" or kind == "gpos_single" then
- process(dataset,sequence,kind)
- done = true
+ context.stoptabulate()
+ else
+ context("no entries")
+ context.par()
end
end
-
- if done then
- return
- end
-
end
-
- nothing()
-
end
local dynamics = true
-function tabletracers.showsubstitutions(specification)
-
- local tfmdata, fontid, resources = checked(specification)
-
+function tabletracers.showsubstitutions()
+ local tfmdata = fonts.hashes.identifiers[font.current()]
+ local resources = tfmdata.resources
if resources then
local features = resources.features
if features then
@@ -567,8 +229,8 @@ function tabletracers.showsubstitutions(specification)
for feature, scripts in sortedhash(gsub) do
for script, languages in sortedhash(scripts) do
for language in sortedhash(languages) do
- local tag = formatters["dummy-%s-%s-%s"](feature,script,language)
- local fnt = formatters["file:%s*%s"](file.basename(tfmdata.properties.filename),tag)
+ local tag = format("dummy-%s-%s-%s",feature,script,language)
+ local fnt = format("file:%s*%s",file.basename(tfmdata.properties.filename),tag)
context.definefontfeature (
{ tag },
{
@@ -597,13 +259,13 @@ function tabletracers.showsubstitutions(specification)
local data = makes_sense[i]
local script = data.script
local language = data.language
- ctx_NC()
+ context.NC()
context(data.feature)
- ctx_NC()
+ context.NC()
context(script)
- ctx_NC()
+ context.NC()
context(language)
- ctx_NC()
+ context.NC()
if not dynamics then
context.startfont { data.fontname }
else
@@ -617,160 +279,85 @@ function tabletracers.showsubstitutions(specification)
if not dynamics then
context.stopfont()
end
- ctx_NC()
- ctx_NR()
+ context.NC()
+ context.NR()
end
context.stoptabulate()
- return
+ else
+ context("no entries")
+ context.par()
end
end
end
end
-
- nothing()
-
end
-function tabletracers.showunicodevariants(specification)
-
- local tfmdata, fontid, resources = checked(specification)
+function tabletracers.showunicodevariants()
- if resources then
+ local variants = fonts.hashes.variants[true]
- local variants = fonts.hashes.variants[fontid]
-
- if variants then
- context.starttabulate { "|c|c|c|c|c|c|c|" }
- for selector, unicodes in sortedhash(variants) do
- local done = false
- for unicode, variant in sortedhash(unicodes) do
- ctx_NC()
- if not done then
- context("%U",selector)
- done = true
- end
- ctx_NC()
- context("%U",unicode)
- ctx_NC()
- context("%c",unicode)
- ctx_NC()
- context("%U",variant)
- ctx_NC()
- context("%c",variant)
- ctx_NC()
- context("%c%c",unicode,selector)
- ctx_NC()
- context.startoverlay()
- context("{\\color[trace:r]{%c}}{\\color[trace:ds]{%c}}",unicode,variant)
- context.stopoverlay()
- ctx_NC()
- ctx_NR()
+ if variants then
+ context.starttabulate { "|c|c|c|c|c|c|c|" }
+ for selector, unicodes in sortedhash(variants) do
+ local done = false
+ for unicode, variant in sortedhash(unicodes) do
+ context.NC()
+ if not done then
+ context("%U",selector)
+ done = true
end
+ context.NC()
+ context("%U",unicode)
+ context.NC()
+ context("%c",unicode)
+ context.NC()
+ context("%U",variant)
+ context.NC()
+ context("%c",variant)
+ context.NC()
+ context("%c%c",unicode,selector)
+ context.NC()
+ context.startoverlay()
+ context("{\\color[trace:r]{%c}}{\\color[trace:ds]{%c}}",unicode,variant)
+ context.stopoverlay()
+ context.NC()
+ context.NR()
end
- context.stoptabulate()
- return
end
-
+ context.stoptabulate()
end
- nothing()
-
end
+function tabletracers.showall(specification) -- not interfaced
+ specification = interfaces.checkedspecification(specification)
-local function collectligatures(steps)
-
- local series = { }
- local stack = { }
- local max = 0
-
- local function make(tree)
- for k, v in sortedhash(tree) do
- if k == "ligature" then
- local n = #stack
- if n > max then
- max = n
- end
- series[#series+1] = { v, unpack(stack) }
- else
- insert(stack,k)
- make(v)
- remove(stack)
- end
- end
+ if specification.title then
+ context.starttitle { title = specification.title }
end
- for i=1,#steps do
- local step = steps[i]
- local coverage = step.coverage
- if coverage then
- make(coverage)
- end
- end
+ context.startsubject { title = "Properties" }
+ tabletracers.showproperties()
+ context.stopsubject()
- return series, max
-end
+ context.startsubject { title = "Parameters" }
+ tabletracers.showparameters()
+ context.stopsubject()
-local function banner(index,kind,order)
- ctx_sequence("sequence: %i, kind: %s, features: % t",index,noprefix(kind),order)
-end
-
-function tabletracers.showligatures(specification)
+ context.startsubject { title = "Positioning features" }
+ tabletracers.showpositionings()
+ context.stopsubject()
- local tfmdata, fontid, resources = checked(specification)
+ context.startsubject { title = "Substitution features" }
+ tabletracers.showsubstitutions()
+ context.stopsubject()
- if resources then
+ context.startsubject { title = "Unicode variants" }
+ tabletracers.showunicodevariants()
+ context.stopsubject()
- local characters = tfmdata.characters
- local descriptions = tfmdata.descriptions
- local sequences = resources.sequences
- if sequences then
- local done = true
- for index=1,#sequences do
- local sequence = sequences[index]
- local kind = sequence.type
- if kind == "gsub_ligature" then
- local list, max = collectligatures(sequence.steps)
- if #list > 0 then
- banner(index,kind,sequence.order or { })
- context.starttabulate { "|T|" .. string.rep("|",max) .. "|T|T|" }
- for i=1,#list do
- local s = list[i]
- local n = #s
- local u = s[1]
- local c = characters[u]
- local d = descriptions[u]
- ctx_NC()
- context("%U",u)
- ctx_NC()
- ctx_setfontid(fontid)
- ctx_char(u)
- ctx_NC()
- ctx_setfontid(fontid)
- for i=2,n do
- ctx_char(s[i])
- ctx_NC()
- end
- for i=n+1,max do
- ctx_NC()
- end
- context(d.name)
- ctx_NC()
- context(c.tounicode)
- ctx_NC()
- ctx_NR()
- end
- context.stoptabulate()
- done = true
- end
- end
- end
- if done then
- return
- end
- end
+ if title then
+ context.stoptitle()
end
- nothing()
-
end
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-tables.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-tables.mkiv
index f1340c3eac4..64fe76f0e4b 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-tables.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-tables.mkiv
@@ -17,28 +17,10 @@
\registerctxluafile{s-fonts-tables}{}
-\definetabulate[Pair] [|T|cw(3em)|T|cw(3em)|Tw(10em)|Tw(10em)|cw(4em)|cw(4em)|]
-\definetabulate[Single] [|T|cw(3em)|Tw(10em)|cw(4em)|cw(4em)|]
-\definetabulate[SingleKern][|T|cw(3em)|Trw(5em)|cw(4em)|cw(4em)|]
-\definetabulate[PairKern] [|T|cw(3em)|T|cw(3em)|Trw(5em)|cw(4em)|cw(4em)|]
-
-\definehead
- [sequence]
- [subsubject]
- [style=\ttbf]
-
-\definecolor
- [bbcolor]
- [t=.5,a=1,s=.5]
-
-\definefontfeature
- [boundingbox]
- [boundingbox={background,bbcolor}]
-
+\installmodulecommandluasingle \showfonttables {moduledata.fonts.tables.showall}
\installmodulecommandluasingle \showfontproperties {moduledata.fonts.tables.showproperties}
\installmodulecommandluasingle \showfontparameters {moduledata.fonts.tables.showparameters}
\installmodulecommandluasingle \showfontpositionings {moduledata.fonts.tables.showpositionings}
-\installmodulecommandluasingle \showfontligatures {moduledata.fonts.tables.showligatures}
\installmodulecommandluasingle \showfontsubstitutions {moduledata.fonts.tables.showsubstitutions}
\installmodulecommandluasingle \showfontunicodevariants{moduledata.fonts.tables.showunicodevariants}
@@ -52,5 +34,5 @@
[cambria]
\starttext
- \showfontproperties[name=cambria]
+ \showfonttables[title=Cambria]
\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-variable.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-variable.mkiv
index 2cd612c7577..d1bf8b69d63 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-variable.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-variable.mkiv
@@ -72,28 +72,28 @@
\char983040\relax\par
\stopbuffer
-% \showfontvariations
-% [font=file:adobevfprototype.otf]
+ \showfontvariations
+ [font=file:adobevfprototype.otf]
-% \showfontvariations
-% [font=file:avenirnextvariable.ttf]
+ \showfontvariations
+ [font=file:avenirnextvariable.ttf]
-% \showfontvariations
-% [font=file:DecoVar-VF.ttf]
+ \showfontvariations
+ [font=file:DecoVar-VF.ttf]
% \showfontvariations
% [font=file:VotoSerifGX.ttf,
% max=15]
-% \showfontvariations
-% [font=file:Selawik-Variable.ttf]
+ \showfontvariations
+ [font=file:Selawik-Variable.ttf]
-% \showfontvariations
-% [font=file:LibreFranklinGX-Romans.ttf]
+ \showfontvariations
+ [font=file:LibreFranklinGX-Romans.ttf]
- % \showfontvariations
- % [font=file:Zycon.ttf,
- % sample={\getbuffer[zycon]}]
+ \showfontvariations
+ [font=file:Zycon.ttf,
+ sample={\getbuffer[zycon]}]
% \showfontvariations
% [font=file:kairossansvariable.ttf]
@@ -104,8 +104,8 @@
% \showfontvariations
% [font=file:AmstelvarAlpha-VF.ttf]
- % \showfontvariations
- % [font=file:bahnschrift.ttf]
+ \showfontvariations
+ [font=file:bahnschrift.ttf]
% \showfontvariations
% [font=file:sitka.ttc]
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-languages-hyphenation.lua b/Master/texmf-dist/tex/context/modules/mkiv/s-languages-hyphenation.lua
index 65fd1ab1443..6d3cf3d3e83 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-languages-hyphenation.lua
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-languages-hyphenation.lua
@@ -29,8 +29,7 @@ local newrule = nodepool.rule
local newglue = nodepool.glue
local insert_node_after = nuts.insert_after
-
-local nextglyph = nuts.traversers.glyph
+local traverse_by_id = nuts.traverse_id
local tonut = nodes.tonut
local tonode = nodes.tonode
@@ -130,7 +129,7 @@ end
local function getlanguage(head,l,left,right)
local t = { }
- for n in nextglyph, tonut(head) do
+ for n in traverse_by_id(glyph_code,tonut(head)) do
t[n] = {
getlang(n),
getfield(n,"left"),
@@ -149,7 +148,7 @@ function moduledata.languages.hyphenation.showhyphens(head)
local marked = { }
local cached = { }
-- somehow assigning -1 fails
- for n in nextglyph, tonut(head) do
+ for n in traverse_by_id(glyph_code,tonut(head)) do
cached[n] = {
getlang(n),
getfield(n,"left"),
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-languages-system.lua b/Master/texmf-dist/tex/context/modules/mkiv/s-languages-system.lua
index d1805057799..3b422db9f2e 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-languages-system.lua
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-languages-system.lua
@@ -19,7 +19,7 @@ local ctx_bold = context.bold
function moduledata.languages.system.loadinstalled()
context.start()
- for k, v in sortedhash(registered) do
+ for k, v in table.sortedhash(registered) do
context.language{ k }
end
context.stop()
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-maps.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/s-maps.mkiv
index 28e88af987f..c7541babc81 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-maps.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-maps.mkiv
@@ -135,11 +135,11 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% 3 versions of layout with matching headers
-\definepapersize
+\definepapersize
[maps]
[width=21cm,height=26.5cm]
-\setuppapersize
+\setuppapersize
[maps][maps]
\setuplayout[
@@ -360,9 +360,9 @@
\xdef\MapsNumber{\the\numexpr (\the\year-1990)*2+1\relax}%
\fi }%
\doifnothing\MapsRunningAuthor
- {\glet\MapsRunningAuthor\MapsAuthor}%
+ {\global\let\MapsRunningAuthor\MapsAuthor}%
\doifnothing\MapsRunningTitle
- {\glet\MapsRunningTitle\MapsTitle}}%
+ {\global\let\MapsRunningTitle\MapsTitle}}%
\def\dostartArticle[#1]{%
\MapsBibData[#1]
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-present-dark.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/s-present-dark.mkiv
deleted file mode 100644
index a3b6f6e14af..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-present-dark.mkiv
+++ /dev/null
@@ -1,357 +0,0 @@
-%D \module
-%D [ file=s-present-dark, % tug-2001
-%D version=2018.09.25, % 2000.*.*
-%D title=\CONTEXT\ Style File,
-%D subtitle=Presentation Environment Dark,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\startmodule[present-dark]
-
-%D The original document dates from 2000 and was meant for a presentation at \TUG\
-%D 2001. It used widgets and in particular check fields and push buttons.
-%D \JAVASCRIPT\ was used to show or hide them when rolling over, and appearances
-%D changed in a subtle way. It actually worked quite well at that time.
-%D
-%D However, over time these widgets proved to be sort of unstable. For instance we
-%D used the parent|-|child model of which (inheritance and appearance) behaviour
-%D changed over time. We're talking of a few decades ago when \TEX\ was one of the
-%D few (maybe only) tools that could actually support everything that the manual
-%D introduced: the \quote {standard} seemed to be ahead of the viewer. Anyway, we
-%D adapted but it meant that old document in principle were not always future proof.
-%D
-%D We used in this document a push button in the background of the menu so that it
-%D could become visible when rolled over. There were no layers in \PDF\ at that
-%D time! Nowadays such a trick doesn't work well because of the way a viewer
-%D intercepts regions. One gets kind of erratic behaviour when applying \JAVASCRIPT.
-%D
-%D I spent quite some time to test if we could still do the same without side
-%D effects and in the process also noticed that some functionality in \JAVASCRIPT\
-%D seems broken (or changed due to maybe security issues). So, in the end I decided
-%D to simplify the approach and use layers to pop up the menu when the mouse goes
-%D over it but no longer hide it when the mouse leaves that area. It just doesn't
-%D work too well otherwise.
-
-%D We start with the layout. We basically have three areas: edge, margin and text.
-%D Each are more or less the same width.
-
-\setuppapersize
- [S6][S6]
-
-\setuplayout
- [backspace=380pt,
- topspace=20pt,
- leftedge=100pt,
- leftedgedistance=10pt,
- leftmargin=230pt,
- leftmargindistance=20pt,
- header=0pt,
- footer=0pt,
- width=200pt,
- backspace=360pt,
- width=220pt,
- leftmargin=210pt,
- height=middle]
-
-%D The bodyfont is the Latin Modern Variable (of course at that time we used
-%D the Computer Modern predecessors). We still apply protrusion and expansion.
-%D The new \quotation {Modern Latin} look also works ok on screen.
-
-\definefontfeature
- [default]
- [default]
- [expansion=pure,
- protrusion=pure]
-
-\setupalign
- [verytolerant,stretch,hanging] % space
-
-\setupbodyfont
- [modernvariable,11pt]
-
-% \setupbodyfont
-% [modernlatin,11pt]
-
-\setupinmargin
- [style=,
- color=]
-
-%D We use some predefined \JAVASCRIPT\ functions. These are rather old helpers.
-%D Normally only the libraries (sets of functions) that are used will be
-%D embedded.
-
-\useJSscripts[fld]
-\useJSscripts[nav]
-
-%D The remarks that will pop up. By default they are not visible. Clicking
-%D on the page (or menu item) will show them step by step.
-
-\newcounter\bofremarks
-\newcounter\nofremarks
-
-\setupfield
- [remark]
- [offset=overlay,
- option={readonly,hidden},
- color=,
- style=,
- frame=off]
-
-\defineframed
- [remarkable]
- [frame=off,
- backgroundcolor=white,
- background=RollBackground]
-
-\starttexdefinition unexpanded remark #1#2
-
- \doglobal\increment\nofremarks
-
- \definesymbol
- [remark:x:\nofremarks]
- [\remarkable{#1}]
-
- \definesymbol
- [remark:y:\nofremarks]
- [\remarkable{#2}]
-
- \definefield
- [remark:x:\nofremarks][check][remark]
- [remark:x:\nofremarks]
- [remark:x:\nofremarks]
-
- \definefield
- [remark:y:\nofremarks][check][remark]
- [remark:y:\nofremarks]
- [remark:y:\nofremarks]
-
- \inleft
- [scope=local]
- {
- \hpack to \hsize {
- \hss
- \linebox {
- \fitfield[remark:y:\nofremarks]
- }
- }
- }
-
- \bgroup
-
- \setbox\scratchbox\hbox {
- #1
- }
-
- \hpack to \wd\scratchbox {
- \wd\scratchbox\zeropoint
- \box\scratchbox
- \hss
- \linebox {
- \fitfield[remark:x:\nofremarks]
- }
- \hss
- }
-
- \egroup
-
-\stoptexdefinition
-
-%D We use lots of backgrounds. The \METAPOST\ graphics are a bit overkill
-%D but we keep them.
-
-\setupbackgrounds
- [text]
- [background=StepFields]
-
-\defineoverlay
- [StepFields]
- [\directsetup{syncrefs}\overlaybutton{ShowRemark}]
-
-\setupbackgrounds
- [page]
- [background=PageBackground]
-
-%D Just look in \type {java-imp-fld.mkiv} how \type {HideFields} and
-%D alike are defined. They are defined references to \JAVASCRIPT\ calls.
-
-\setupinteraction
- [state=start,
- click=no,
- menu=on,
- style=,
- color=,
- frame=off,
- contrastcolor=]
-
-\setupinteractionscreen
- [option=max]
-
-\setupbackgrounds
- [paper]
- [background=color,
- backgroundcolor=black]
-
-\defineoverlay
- [PageBackground]
- [\useMPgraphic{PageBackground}]
-
-\startuseMPgraphic{PageBackground}
- StartPage ;
- numeric w ; w := 1.25 * PaperWidth ;
- numeric n ; n := 2.50 * PageNumber ;
- numeric d ; d := (1 + (PageNumber-1)/5) * 5pt ;
- fill Page
- withcolor black ;
- for i=1 upto 500 :
- draw
- center Page
- randomized w
- rotatedaround(center Page,n)
- withpen pencircle
- scaled (uniformdeviate d)
- withcolor
- (yellow randomized (.3,.8))
- ;
- endfor ;
- StopPage ;
-\stopuseMPgraphic
-
-\defineoverlay
- [TextBackground]
- [\uniqueMPgraphic{TextBackground}]
-
-\startuniqueMPgraphic{TextBackground}
- fill
- OverlayBox
- withcolor black ;
- draw
- OverlayBox
- withpen pencircle scaled 1pt
- withcolor OverlayColor ;
-\stopuniqueMPgraphic
-
-\defineoverlay
- [RollBackground]
- [\uniqueMPgraphic{RollBackground}]
-
-\startuniqueMPgraphic{RollBackground}
- fill
- OverlayBox
- withcolor black ;
- draw
- OverlayBox
- withpen pencircle scaled 1pt
- withcolor OverlayColor ;
-\stopuniqueMPgraphic
-
-\setupinteractionmenu
- [left]
- [state=start,
- width=\leftedgewidth,
- frame=on,
- framecolor=white,
- rulethickness=1pt,
- foregroundcolor=white,
- background=RollBackground]
-
-\startsetups syncrefs
- \normalexpanded {
- \definereference
- [ShowRemark]
- [StepFields{remark:x,\bofremarks,\nofremarks},
- StepFields{remark:y,\bofremarks,\nofremarks}]
- }
-\stopsetups
-
-%D The menu buttons used to be rollover buttons but are now normal simple
-%D ones (more predictable).
-
-\defineviewerlayer
- [buttons]
-
-\startinteractionmenu[left]
- \vfill
- \directsetup{syncrefs}
- \startviewerlayer[buttons]
- \startbut [previouspage,HideFields] Previous \stopbut
- \startbut [nextpage,HideFields] Next \stopbut
- \startbut [ShowRemark] Remark \stopbut
- \startbut [HideFields] Reset \stopbut
- \startbut [CloseDocument,HideFields] Quit \stopbut
- \stopviewerlayer
-\stopinteractionmenu
-
-\setupinteraction
- [closeaction=ForgetChanges,
- openpageaction={HideFields,HideLayer{buttons}},
- closepageaction={HideFields,HideLayer{buttons}}]
-
-\defineoverlay
- [ShowMenu]
- [\overlayrollbutton{VideLayer{buttons}}{}]
-
-\setupbackgrounds
- [text][leftedge]
- [backgroundoffset=10pt,
- background=ShowMenu]
-
-%D The environment has been adapted a bit. Instead of taking two
-%D arguments we now use a key|-|value approach. The remark is shown
-%D when one rolls over the title (author).
-
-\defineframedtext
- [MainText]
- [frame=off,
- offset=10pt,
- width=\textwidth,
- before=,
- after=,
- color=,
- foregroundcolor=white,
- background=TextBackground,
- backgroundcolor=white]
-
-\starttexdefinition unexpanded StartIdea
- \dosingleempty{\texdefinition{StartIdeaIndeed}}
-\stoptexdefinition
-
-\starttexdefinition StartIdeaIndeed [#1]
- \let\bofremarks\nofremarks
- \increment\bofremarks
- \startstandardmakeup
- \setvariables[Idea][#1]
- \startMainText
- \setupalign[verytolerant,stretch,hanging]
-\stoptexdefinition
-
-\starttexdefinition unexpanded StopIdea
- \doifvariable {Idea} {text} {
- \blank
- \rightaligned {
- \doifelsevariable {Idea} {remark} {
- \tooltip
- [left]
- {\getvariable{Idea}{title}}
- {\getvariable{Idea}{remark}}
- } {
- \getvariable{Idea}{title}
- }
- }
- }
- \stopMainText
- \vfill
- \stopstandardmakeup
-\stoptexdefinition
-
-\stopmodule
-
-\continueifinputfile{s-present-dark.mkiv}
-
-\usemodule[present-common]
-
-\inputpresentationfile{tug/2001/tug-2001-ideas.tex}
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-present-steps.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/s-present-steps.mkiv
deleted file mode 100644
index 432650a5ed9..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-present-steps.mkiv
+++ /dev/null
@@ -1,177 +0,0 @@
-%D \module
-%D [ file=s-present-steps,
-%D version=2018.05.17,
-%D title=\CONTEXT\ Style File,
-%D subtitle=Presentation Environment Repeated Steps,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This a preliminary module, a quick hack and not entirely proper \CONTEXT, but
-%D let's see what more is needed.
-
-\startmodule[present-steps]
-
-\startluacode
-
-moduledata.steps = moduledata.steps or { }
-
-local steps = moduledata.steps
-local data = { }
-local name = "unknown"
-local set = 0
-local settings = nil
-
-function steps.startsteps(buffername)
- set = set + 1
- data = { }
- name = buffername
-end
-
-function steps.stopsteps()
- local n = 0
- for i=1,#data do
- local state = "once"
- local done = 0
- while true do
- context.startprocessingsteps()
- for j=1,i do
- local step = data[j]
- local nested = step.nested
- local content = step.content
- local last = (i == #data) and (j == i) and 1 or 0
- local option = step.option
- local flush = true
- if option == interfaces.variables["title"] then
- if i > 1 then
- flush = false
- end
- elseif option == interfaces.variables["repeat"] then
- if i == 1 then
- flush = false
- end
- end
- if flush then
- if j < i or nested == 0 then
- context(function()
- buffers.assign("step",content)
- context.processstep("step",i,0,last)
- -- context.writestatus("step a",string.formatters["%i %i %i"](i,0,last))
- end)
- state = "done"
- else
- done = done + 1
- local d = done
- context(function()
- buffers.assign("step",content)
- context.processstep("step",i,d,last)
- -- context.writestatus("step b",string.formatters["%i %i %i"](i,d,last))
- end)
- if done == nested then
- state = "done"
- n = n + nested
- else
- state = "busy"
- end
- end
- end
- end
- context.stopprocessingsteps()
- if state == "done" then
- break
- end
- end
- end
-end
-
-function steps.startstep(str)
- settings = utilities.parsers.settings_to_hash(str)
-end
-
-function steps.stopstep()
- settings.content = buffers.getcontent(name)
- settings.nested = tonumber(settings.n) or 0
- data[#data+1] = settings
-end
-
-function steps.startsubstep(str)
- local d = data[#data]
- d.nested = d.nested + 1
-end
-
-function steps.stopsubstep()
-end
-
-\stopluacode
-
-\definebuffer
- [step]
-
-\def\currentstep {0}
-\def\currentsubstep{0}
-
-\unexpanded\def\startprocessingsteps
- {\global\wantedsubstep\zerocount}
-
-\unexpanded\def\stopprocessingsteps
- {}
-
-\unexpanded\def\processstep#1#2#3#4%
- {\par
- \edef\currentstep {#2}%
- \edef\currentsubstep{#3}%
- \ifcase#4\relax
- \setupreferencing[prefix=#2:#3]
- \getbuffer[#1]%
- \par
- \else
- \setupreferencing[prefix=]
- \getbuffer[#1]%
- \page
- \fi}
-
-\let\normalstartstep\startstep
-
-\newcount\wantedsubstep
-
-\unexpanded\def\startsteps
- {\ctxlua{moduledata.steps.startsteps("\thedefinedbuffer{step}")}}
-
-\unexpanded\def\stopsteps
- {\ctxlua{moduledata.steps.stopsteps()}}
-
-\unexpanded\def\startstep
- {\dosingleempty\startstepindeed}
-
-\def\startstepindeed[#1]%
- {\ctxlua{moduledata.steps.startstep("#1")}%
- \normalstartstep}
-
-\unexpanded\def\stopstep
- {\ctxlua{moduledata.steps.stopstep()}}
-
-\let\stopsubstep\relax
-
-\unexpanded\def\startsubstep#1\stopsubstep
- {\ctxlua{moduledata.steps.startsubstep()}%
- \ifcase\currentsubstep\relax
- #1%
- \else
- \global\advance\wantedsubstep\plusone
- \ifnum\currentsubstep>\wantedsubstep\else
- #1%
- \fi
- \fi
- \ctxlua{moduledata.steps.stopsubstep()}}
-
-\stopmodule
-
-\continueifinputfile{s-present-steps.mkiv}
-
-\usemodule[present-common]
-
-\inputpresentationfile{examples/present-steps-001.tex}
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-references-identify.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/s-references-identify.mkiv
deleted file mode 100644
index 85187be9dc0..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-references-identify.mkiv
+++ /dev/null
@@ -1,69 +0,0 @@
-%D \module
-%D [ file=s-references-identity,
-%D version=2018.09.15,
-%D title=\CONTEXT\ Style File,
-%D subtitle=Analyze References,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% begin info
-%
-% title : analyze reference
-%
-% comment : show the building blocks of a reference (list)
-%
-% end info
-
-\startmodule[references-identify]
-
-\startluacode
-
-moduledata.references = moduledata.references or { }
-
-local context = context
-local NC, NR = context.NC, context.NR
-local bold = context.bold
-local text = context
-
-function moduledata.references.show(str)
- local t = structures.references.identify(str)
- context.starttabulate { "|T|T|T|" }
- for i=1,#t do
- if i == 1 then
- context.FL()
- else
- context.ML()
- end
- local ti = t[i]
- NC() bold(i) NC() bold("reference") NC() bold(ti.reference) NC() NR()
- NC() NC() text("kind") NC() text(ti.kind) NC() NR()
- NC() NC() text("operation") NC() text(ti.operation) NC() NR()
- NC() NC() text("arguments") NC() text(ti.arguments) NC() NR()
- NC() NC() text("special") NC() text(ti.special) NC() NR()
- end
- context.LL()
- context.stoptabulate()
-end
-
-\stopluacode
-
-\installmodulecommandluasingle \showreference {moduledata.references.show}
-
-\stopmodule
-
-\continueifinputfile{s-references-identify.mkiv}
-
-\usemodule[art-01]
-
-\starttext
-
- \showreference[page(123),StartMovie{mymovie}]
- \showreference[JS(Forget_Changes),CloseDocument]
- \showreference[manual::contents]
-
-\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-xml-analyzers.lua b/Master/texmf-dist/tex/context/modules/mkiv/s-xml-analyzers.lua
index 93c6c37b661..6e7f7f2baf9 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-xml-analyzers.lua
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-xml-analyzers.lua
@@ -230,12 +230,6 @@ local f_template = formatters [ [[
%% setups
-\xmlregistersetup{xml:presets:all}
-
-\starttext
- \xmlprocessfile{main}{somefile.xml}{}
-\stoptext
-
%s
]] ]
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-youless.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/s-youless.mkiv
index e218e6110b4..d8b6e2ff6cd 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-youless.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-youless.mkiv
@@ -33,26 +33,7 @@
moduledata.youless = { }
- local defaults = {
- electricity = {
- unit = "watt",
- maxunit = "maxwatt",
- },
- watt = {
- unit = "watt",
- maxunit = "maxwatt",
- },
- pulse = {
- unit = "watt",
- maxunit = "maxwatt",
- },
- gas = {
- unit = "liters",
- maxunit = "maxliters",
- },
- }
-
- local function process(specification,thevariant)
+ local function process(specification)
local data, message = utilities.youless.analyze(specification.filename or "youless-electricity.lua")
@@ -61,32 +42,12 @@
return
end
+ local year = tonumber(specification.year) or os.today().year
+ local years = data.years
local variant = data.variant
local unit = specification.unit
local maxunit = specification.maxunit
- if thevariant then
- if variant ~= thevariant then
- context("invalid variant")
- return
- end
- elseif variant then
- local d = defaults[variant]
- if d then
- unit = d.unit
- maxunit = d.maxunit
- else
- context("unknown variant")
- return
- end
- else
- context("invalid variant")
- return
- end
-
- local year = tonumber(specification.year) or os.today().year
- local month = tonumber(specification.month)
- local years = data.years
local max = specification[maxunit]
if not max then
@@ -99,19 +60,16 @@
end
end
- local firstmonth = month or 1
- local lastmonth = month or 12
-
local max = max
local delta = round(max/10)
local scale = round(delta/20)
local mark = 3
for y=year,year do
- local year = years[y]
+ local year = years[y]
if year then
local grand = 0
- for m=firstmonth,lastmonth do
+ for m=1,12 do
local month = year.months[m]
if month then
context.startMPpage { offset = "10pt" }
@@ -209,7 +167,7 @@
function moduledata.youless.electricity(specification)
specification.unit = "watt"
specification.maxunit = "maxwatt"
- process(specification,"electricity")
+ process(specification)
end
moduledata.youless.watt = moduledata.youless.electricity
@@ -217,16 +175,12 @@
function moduledata.youless.gas(specification)
specification.unit = "liters"
specification.maxunit = "maxliters"
- process(specification,"gas")
+ process(specification)
end
function moduledata.youless.pulse(specification)
specification.unit = "watt"
specification.maxunit = "maxwatt"
- process(specification,"pulse")
- end
-
- function moduledata.youless.graphics(specification)
process(specification)
end
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/x-asciimath.lua b/Master/texmf-dist/tex/context/modules/mkiv/x-asciimath.lua
index 677ab0ce562..b0d45659e30 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/x-asciimath.lua
+++ b/Master/texmf-dist/tex/context/modules/mkiv/x-asciimath.lua
@@ -132,12 +132,6 @@ local reserved = {
["overbar"] = { false, "\\overline", "unary" },
["overline"] = { false, "\\overline", "unary" },
["underline"] = { false, "\\underline", "unary" },
- ["overbrace"] = { false, "\\overbrace", "unary" },
- ["underbrace"]= { false, "\\underbrace", "unary" },
- ["overset"] = { false, "\\overset", "unary" },
- ["underset"] = { false, "\\underset", "unary" },
- ["obrace"] = { false, "\\overbrace", "unary" },
- ["ubrace"] = { false, "\\underbrace", "unary" },
["ul"] = { false, "\\underline", "unary" },
["vec"] = { false, "\\overrightarrow", "unary" },
["dot"] = { false, "\\dot", "unary" }, -- 0x2D9
@@ -149,7 +143,6 @@ local reserved = {
["-"] = { true, "-" },
["*"] = { true, "⋅" },
["**"] = { true, "⋆" },
- ["////"] = { true, "⁄⁄" }, -- crap
["//"] = { true, "⁄" }, -- \slash
["\\"] = { true, "\\" },
["xx"] = { true, "×" },
@@ -756,14 +749,11 @@ end
reserved.P = nil
reserved.S = nil
-
local isbinary = {
["\\frac"] = true,
["\\root"] = true,
["\\asciimathroot"] = true,
["\\asciimathstackrel"] = true,
- ["\\overset"] = true,
- ["\\underset"] = true,
}
local isunary = { -- can be taken from reserved
@@ -782,10 +772,6 @@ local isunary = { -- can be taken from reserved
["\\dot"] = true, --
["\\ddot"] = true, --
- ["\\overbrace"] = true,
- ["\\underbrace"] = true,
- ["\\obrace"] = true,
- ["\\ubrace"] = true,
}
local isfunny = {
@@ -1729,14 +1715,8 @@ local function collapse_fractions_2(t)
while i < n do
local current = t[i]
if current == "⁄" and i > 1 then -- \slash
- if i < n and t[i+1] == "⁄" then
- -- crap for
- t[m] = "{" .. s_left .. t[i-1] .. s_mslash .. s_mslash .. t[i+2] .. s_right .. "}"
- i = i + 3
- else
- t[m] = "{" .. s_left .. t[i-1] .. s_mslash .. t[i+1] .. s_right .. "}"
- i = i + 2
- end
+ t[m] = "{" .. s_left .. t[i-1] .. s_mslash .. t[i+1] .. s_right .. "}"
+ i = i + 2
if i < n then
m = m + 1
t[m] = t[i]
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/x-mathml.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/x-mathml.mkiv
index adc49431407..ea7f7d2e9ce 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/x-mathml.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/x-mathml.mkiv
@@ -350,7 +350,7 @@
%
% \def\postponedMMLactions
% {\global\setfalse\somepostponedMMLactions
-% \expandafter\global\expandafter\@@postponedMMLactions\expandafter\emptytoks
+% \@EA\global\@EA\@@postponedMMLactions\@EA\emptytoks
% \the\@@postponedMMLactions}
\startxmlsetups mml:apply
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/x-setups-basics.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/x-setups-basics.mkiv
index 51c9253975b..be96466b8bc 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/x-setups-basics.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/x-setups-basics.mkiv
@@ -66,13 +66,6 @@
\unprotect
-% We might apply this locally!
-
-\setupxml
- [\c!entities=\v!yes]
-
-% So far.
-
\defineregister
[texmacro]
@@ -517,11 +510,14 @@
{\doifelsenextoptionalcs\cmd_show_setup_yes\cmd_show_setup_nop}
\def\cmd_show_setup_yes[#1]%
- {\cmd_show_setup_nop{#1}}
+ {\iffirstargument
+ \cmd_show_setup_nop{#1}%
+ \else
+ \expandafter\cmd_show_setup_nop
+ \fi}
\def\cmd_show_setup_nop#1% this will trigger 'used'
- {\begingroup
- \registersort[texcommand][#1]%
+ {\registersort[texcommand][#1]%
\ifconditional\c_cmd_show_setup
\writestatus{setup}{#1 / \rawsynonymname{texcommand}{#1}}%
\fi
@@ -538,8 +534,7 @@
\let\m_cmd_instance\empty
\fi
\stopelement
- \stopelement
- \endgroup}
+ \stopelement}
\unexpanded\def\placesetup {\placelistofsorts[texcommand][\c!criterium=\v!used]}
\unexpanded\def\placeallsetups{\placelistofsorts[texcommand][\c!criterium=\v!all ]}
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/x-setups-overview.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/x-setups-overview.mkiv
index 512db3bd14f..f6dff12f5f2 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/x-setups-overview.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/x-setups-overview.mkiv
@@ -102,9 +102,8 @@
numeric h, w; boolean mapping ; path p, q, r ; color f, d ; pair s ;
h := OverlayHeight ; w := 2*OverlayWidth ;
r := unitsquare xyscaled (w,h) ;
- fill r withcolor resolvedcolor("lightgray") ;
- % mapping := lua.mp.processingmode("setups:mapping") ;
- mapping := lua.mp("processingmode","setups:mapping") ;
+ fill r withcolor \MPcolor{lightgray} ;
+ mapping := lua.mp.processingmode("setups:mapping") ;
if mapping :
set_grid(w,h,w/8,w/160) ;
pickup pensquare yscaled (w/80) ;
@@ -115,8 +114,8 @@
forever :
s := center r randomized (w,h) ;
if new_on_grid(xpart s, ypart s) :
- d := .5[resolvedcolor("LocalColor"),resolvedcolor("lightgray")] randomized (.5,.9) ;
- f := resolvedcolor("lightgray") randomized (.5,.9) ;
+ d := .5[\MPcolor{LocalColor},\MPcolor{lightgray}] randomized (.5,.9) ;
+ f := \MPcolor{lightgray} randomized (.5,.9) ;
s := (dx,dy) ;
if mapping :
p := (-w/4,0) -- (w/4,0) ;
diff --git a/Master/texmf-dist/tex/context/patterns/common/lang-agr.rme b/Master/texmf-dist/tex/context/patterns/common/lang-agr.rme
index 39c557d1624..72692b84973 100644
--- a/Master/texmf-dist/tex/context/patterns/common/lang-agr.rme
+++ b/Master/texmf-dist/tex/context/patterns/common/lang-agr.rme
@@ -1,34 +1,17 @@
% generated by mtxrun --script pattern --convert
-% title: Unicode hyphenation patterns for Ancient Greek.
-% copyright: Dimitrios Filippou, (c) 2008-2016
-% notice: >
-% This file is part of the hyph-utf8 package.
-% See http://www.hyphenation.org for more information.
-% language:
-% name: Ancient Greek
-% tag: grc
-% licence:
-% name: LPPL
-% url: http://www.latex-project.org/lppl/
-% changes:
-% -
-% date: 2016-05-12
-% author: Arthur Reutenauer
-% description: added support for curly beta
-% -
-% date: 2011-09-12
-% author: Dimitrios Filippou
-% description: updated headers and added the LPPL licence statement
-% -
-% date: 2008-06-06
-% author: Dimitrios Filippou
-% description: removed guillemets (Âŧ)
-% -
-% date: 2008-05-27
-% author: Dimitrios Filippou
-%
-% ==========================================
+% ****************************************************************
+%
+% File name: hyph-grc.tex
+%
+% Created: June 6, 2008
+% Last modified: Sept. 12, 2011
+%
+% Unicode hyphenation patterns for Ancient Greek.
+%
+% Author: Dimitrios Filippou, (c) 2008-2011
+% Licence: LaTeX Project Public Licence
+%
% This file was first created by mechanical translation from
% GRAhyph5.tex via "elhyph-utf8 -a -c" (version 0.1 by Peter
% Heslin -- p.j.heslin at durham dot ac dot uk). Some additions
diff --git a/Master/texmf-dist/tex/context/patterns/common/lang-bg.rme b/Master/texmf-dist/tex/context/patterns/common/lang-bg.rme
index 25a3e2ca5a5..6229f0647b0 100644
--- a/Master/texmf-dist/tex/context/patterns/common/lang-bg.rme
+++ b/Master/texmf-dist/tex/context/patterns/common/lang-bg.rme
@@ -1,890 +1,85 @@
% generated by mtxrun --script pattern --convert
-% copyright: Copyright (C) 2000, 2004, 2017 by Anton Zinoviev <anton@lml.bas.bg>
+% copyright: Copyright (c) 1994-2008, Georgi Boshnakov
% title: Bulgarian hyphenation patterns
-% version: 21 October 2017
+% version: 1.7, July 2008
% language:
% name: Bulgarian
-% tag: bg
+% code: bg
% notice: >
% This file is part of the hyph-utf8 package.
% See http://www.hyphenation.org for more information.
% authors:
-% -
-% name: Anton Zinoviev
-% contact: anton:lml.bas.bg
+% -
+% name: Georgi Boshnakov
+% contact: manchester.ac.uk:georgi.boshnakov
% licence:
+% - This file is available under any of these licences:
+% -
+% name: LPPL
+% version: 1.0
+% later_authorised: true
+% url: https://latex-project.org/lppl/lppl-1-0.html
+% -
+% name: MIT
+% url: https://opensource.org/licenses/MIT
% text: >
-% This software may be used, modified, copied, distributed, and sold,
-% both in source and binary form provided that the above copyright
-% notice and these terms are retained. The name of the author may not
-% be used to endorse or promote products derived from this software
-% without prior permission. THIS SOFTWARE IS PROVIDES "AS IS" AND
-% ANY EXPRESS OR IMPLIED WARRANTIES ARE DISCLAIMED. IN NO EVENT
-% SHALL THE AUTHOR BE LIABLE FOR ANY DAMAGES ARISING IN ANY WAY OUT
-% OF THE USE OF THIS SOFTWARE.
+% Permission is hereby granted, free of charge, to any person
+% obtaining a copy of this software and associated documentation
+% files (the "Software"), to deal in the Software without
+% restriction, including without limitation the rights to use,
+% copy, modify, merge, publish, distribute, sublicense, and/or sell
+% copies of the Software, and to permit persons to whom the
+% Software is furnished to do so, subject to the following
+% conditions:
+%
+% The above copyright notice and this permission notice shall be
+% included in all copies or substantial portions of the Software.
+%
+% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+% EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+% OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+% NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+% HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+% WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+% FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+% OTHER DEALINGS IN THE SOFTWARE.
% hyphenmins:
-% typesetting:
+% for_typesetting:
% left: 2
% right: 2
-% changes: See below
+% changes:
+% -
+% date: 2008-06
+% description: Changed encoding to UTF-8
+% -
+% date: 2006-05
+% description: Added copyright notice
+% -
+% date: 2000-06
+% description: Minor changes
+% -
+% date: 1994
+% description: First version
% ==========================================
-% Copyright (C) 2000,2004,2017 by Anton Zinoviev <anton@lml.bas.bg>
+% Note: The original name of this file was 'bghyphsi.tex' which is
+% part of the package 'bghyphen'. The package 'bghyphen' is now
+% obsolete but it is still available on CTAN and currently (June 2008)
+% gives the same hyphenation results.
%
-% This software may be used, modified, copied, distributed, and sold,
-% both in source and binary form provided that the above copyright
-% notice and these terms are retained. The name of the author may not
-% be used to endorse or promote products derived from this software
-% without prior permission. THIS SOFTWARE IS PROVIDES "AS IS" AND
-% ANY EXPRESS OR IMPLIED WARRANTIES ARE DISCLAIMED. IN NO EVENT
-% SHALL THE AUTHOR BE LIABLE FOR ANY DAMAGES ARISING IN ANY WAY OUT
-% OF THE USE OF THIS SOFTWARE.
%
-% Bulgarian hyphenation patterns
%
-% Generated by ./hyph-bg.sh --safe-morphology --standalone-tex
+% To make TeX use these patterns:
%
-% Both left and right hyphenmins should be set to 2.
+% (1) Make sure that the hyph-utf8 package is present in your TeX
+% system.
+%
+% (2) generate the necessary formats (TeX, LaTeX, pdfLaTeX, etc),
+% instructing TeX to load 'loadhyph-bg.tex' for Bulgarian
+% hyphenation.
+%
+% The LaTeX babel package sets \lefthyphenmin and \righthyphenmin to 2
+% when the language is switched to Bulgarian. Developers who write
+% support for Bulgarian outside LaTeX and/or babel need to take care
+% of this.
%
-% % Automated Bulgarian Hyphenation
-% % Anton Zinoviev
-% % 21 October 2017
-%
-% Principles of the Bulgarian hyphenation
-% =======================================
-%
-% One specificity of the Bulgarian language is that the average length
-% of the words is greater than in English. When typesetting a Bulgarian
-% text, hyphenation is more important than when typesetting an English
-% text. Knuth's algorithm for line-breaking is such that in most
-% English paragraphs no hyphenation will be used. With a Bulgarian
-% text, however, even the Knuth's algorithm will use hyphenation in most
-% paragraphs. Hyphenation becomes an absolute necessity if we want to
-% obtain nice, justified paragraphs when using a software with dumb
-% line-breaking algorithm, such as LibreOffice.
-%
-% According to Decree 936 of the Council of Ministers promulgated on 27
-% November 1950, the Institute for Bulgarian Language at the Bulgarian
-% Academy of Sciences is authorised to publish the rules of the
-% orthography of the Bulgarian language (within certain limits).
-%
-% Hyphenation rules between 1945 and 1983
-% ---------------------------------------
-%
-% Between 1945 and 1983 Bulgarian used syllable hyphenation with two
-% morphological exceptions: hyphenation is preferred between a prefix
-% and a stem and at the boundary of compound words. The following were
-% the rules governing the hyphenation:
-%
-% 1. One letter does not stay alone. Words of one syllable can not be
-% hyphenated.
-% 2. No hyphenation before or after ŅŒ.
-% 3. In a sequence of vowels at least one vowel stays before the
-% hyphen.
-% 4. A single consonant between two vowels links with the second vowel.
-% For example ÐŋÐū-ÐŧÐĩ /po-le/, Ņ€Ð°-ÐąÐū-Ņ‚а /ra-bo-ta/.
-% 5. In a sequence of consonants between two vowels, at least one
-% consonant stays with the second vowel. For example Ņ‚Ðĩ-ŅŅ‚Ðū /te-sto/
-% or Ņ‚ÐĩŅ-Ņ‚Ðū /tes-to/.[^b]
-% 6. In a sequence of consonants between two vowels, if the first
-% consonant is sonorant (Ðđ /y/, Ðŧ /l/, О /m/, Ð― /n/, Ņ€ /r/), then it
-% stays with the first vowel. For example ÐģÐĩŅ€-ÐīÐ°Ð― /ger-dan/, ŅÐĩÐ―-КÐļ
-% /sen-ki/.
-% 7. The hyphenation separates two successive equal consonants. For
-% example ÐēŅ€ÐĩОÐĩÐ―-Ð―Ðū /vremen-no/, ÐŋŅ€ÐūÐŧÐĩŅ‚-Ņ‚а /prolet-ta/.
-% 8. When the letters ÐīÐķ /dzh/ and Ðīз /dz/ denote a single consonant,
-% then they are not separated. For example ÐąÐūŅ-ÐīÐķÐļŅ /boya-dzhiya/
-% but not ÐąÐūŅÐī-ÐķÐļŅ /boyad-zhiya/. When these letters denote two
-% consonants, then the normal rules apply: Ð―Ð°Ðī-ÐķÐļÐēŅÐēаО
-% /nad-zhivyavam/.
-% 9. Word prefixes may not be broken. Compound words are hyphenated
-% either at the boundary of the components or the hyphenation rules
-% are applied to each of the components separately. For example:
-% ÐŋŅ€ÐĩÐī-ŅƒÐŋŅ€ÐĩÐķÐīаÐēаО /pred-uprezhdavam/ (not ÐŋŅ€Ðĩ-ÐīŅƒÐŋŅ€ÐĩÐķÐīаÐēаО
-% /pre-duprezhdavam/), ÐŋŅ€ÐĩÐī-ÐļзÐēÐĩŅŅ‚ÐļÐĩ /pred-izvestie/ (not
-% ÐŋŅ€Ðĩ-ÐīÐļзÐēÐĩŅŅ‚ÐļÐĩ /pre-dizvestie/), за-ÐīÐēÐļÐķÐēаО /za-dvizhvam/ (not
-% заÐī-ÐēÐļÐķÐēаО /zad-vizhvam/), аÐēŅ‚Ðū-КÐŧŅƒÐą /avto-klub/ (not аÐēŅ‚ÐūК-ÐŧŅƒÐą
-% /avtok-lub/), ÐēаКŅƒŅƒÐž-аÐŋаŅ€Ð°Ņ‚ /vakuum-aparat/ (not ÐēаКŅƒŅƒ-ОаÐŋаŅ€Ð°Ņ‚
-% /vakuu-maparat/).
-%
-% In some rare cases the proper application of rule 9 depends on the
-% semantics of the word. For example ÐŋŅ€Ðĩ-ÐīŅ€ÐĩŅˆÐ° /pre-dresha/ 'change
-% clothes' but ÐŋŅ€ÐĩÐī-Ņ€ÐĩŅˆÐ° /pred-resha/ 'predetermine' or ÐŋŅ€ÐĩŅ-ÐŋÐļŅ‚Ðĩ
-% /pres-pite/ 'the snow-drifts' but ÐŋŅ€Ðĩ-ŅÐŋÐļŅ‚Ðĩ /pre-spite/ 'sleep for a
-% while/overnight'.
-%
-% [^b]: In several publications this rule is formulated with the
-% additional restriction that the sequence of consonants begins with
-% an obstruent. I believe this restriction is unintentional. It
-% makes no sense to forbid a hyphenation of the form AB-A but to
-% permit ABB-A (A denotes a vowel and B – a consonant).
-%
-% Hyphenation rules between 1983 and 2012
-% ---------------------------------------
-%
-% The Orthographic dictionary published by the Institute for Bulgarian
-% language in 1983 introduced new hyphenation rules. The complexity of
-% the previous rules was the main reason for the change. The new rules
-% aimed at two objectives: simplicity and unambiguity.
-%
-% The new rules are:
-%
-% 1. A consonant between two vowels links with the second vowel. For
-% example ÐēÐļ-ŅÐū-Ņ‡Ðļ-Ð―Ð° /vi-so-chi-na/.
-% 2. In a sequence of two or more consonants between two vowels, at
-% least one consonant stays with first vowel and at least one with
-% the second vowel. For example ŅÐĩŅ-Ņ‚Ņ€Ð° /ses-tra/ and ŅÐĩŅŅ‚-Ņ€Ð°
-% /sest-ra/.
-% 3. Two equal consonants are separated. For example ÐŋÐŧÐĩÐ―-Ð―ÐļК
-% /plen-nik/.
-% 4. In a sequence of two or more vowels, the first vowel stays before
-% the hyphen. For example ÐŋŅ€Ðĩ-ÐūÐīÐūÐŧÐĩŅ /pre-odoleya/ and ÐŋŅ€ÐĩÐū-ÐīÐūÐŧÐĩŅ
-% /preo-doleya/.
-% 5. In a sequence of three or more vowels, the last vowel stays after
-% the hyphen. For example ОаÐū-ÐļзŅŠÐž /mao-izam/ but not ОаÐūÐļ-зŅŠÐž
-% /maoi-zam/.
-% 6. The letter Ðđ /y/ between a vowel and a consonant stays with the
-% vowel. For example ОаÐđ-Ка /may-ka/.
-% 7. When a sequence of two or more consonants follows Ðđ /y/ then at
-% least one consonant links with Ðđ /y/. For example аÐđŅ-ÐąÐĩŅ€Ðģ
-% /ays-berg/ (not аÐđ-ŅÐąÐĩŅ€Ðģ /ay-sberg/).
-% 8. The letter Ðđ /y/ between two vowels links with the second vowel.
-% For example Оа-ÐđÐūŅ€ /ma-yor/.
-% 9. No hyphenation before or after ŅŒ.
-% 10. When the letters ÐīÐķ /dzh/ denote a single consonant, then they are
-% not separated. For example ŅŅƒ-ÐīÐķŅƒÐš /su-dzhuk/ (not ŅŅƒÐī-ÐķŅƒÐš
-% /sud-zhuk/) but Ð―Ð°Ðī-ÐķÐļÐēÐĩŅ /nad-zhiveya/.
-% 11. There must be at least one vowel before and after the hyphen.
-% 12. One letter does not stay alone.
-%
-% The total disregard of the morphology by these rules leads to some
-% strange results. For example ÐŋŅ€Ðĩ-ÐīÐļзÐēÐĩŅŅ‚ÐļÐĩ /pre-dizvestie/ is
-% permitted and ÐŋŅ€ÐĩÐī-ÐļзÐēÐĩŅŅ‚ÐļÐĩ /pred-izvestie/ is forbidden, заÐī-ÐēÐļÐķÐēаО
-% /zad-vizhvam/ is permitted and за-ÐīÐēÐļÐķÐēаО /za-dvizhvam/ is forbidden,
-% аÐēŅ‚ÐūК-ÐŧŅƒÐą /avtok-lub/ is permitted and аÐēŅ‚Ðū-КÐŧŅƒÐą /avto-klub/ is
-% forbidden, ÐēаКŅƒŅƒ-ОаÐŋаŅ€Ð°Ņ‚ /vakuu-maparat/ is permitted and
-% ÐēаКŅƒŅƒÐž-аÐŋаŅ€Ð°Ņ‚ /vakuum-aparat/ is forbidden. Because of this, the new
-% rules were not universally accepted. The old rules are still
-% mentioned in various places in Internet, they are included even in
-% some grammar books published by the publishing houses of the Ministry
-% of Education and of Sofia University. The software developers,
-% however, soon came into love with the new hyphenation rules.
-%
-% Hyphenation rules after 2012
-% ----------------------------
-%
-% In 2012 new rules came into force. There are two differences with
-% respect to the previous rules:
-%
-% 1. Rule 5 of the previous rules is revoked. For example ОаÐūÐļ-зŅŠÐž
-% /maoi-zam/ becomes a valid hyphenation.
-% 2. The new rules permit morphologically based hyphenation (however it
-% is not obligatory). For example ÐŋŅ€ÐĩÐī-ÐļзÐēÐĩŅŅ‚ÐļÐĩ /pred-izvestie/,
-% за-ÐīÐēÐļÐķÐēаО /za-dvizhvam/, аÐēŅ‚Ðū-КÐŧŅƒÐą /avto-klub/, ÐēаКŅƒŅƒÐž-аÐŋаŅ€Ð°Ņ‚
-% /vakuum-aparat/ are valid hyphenations.
-%
-% Good hyphenation is a complex matter and it seems the linguists at the
-% Institute for Bulgarian Language have recognised this. They no longer
-% attempt to provide universal rules about everything. Instead, they
-% provide some very permissible rules while the good application of
-% these rules is leaved to the discretion and the experience of the
-% printers and the developers of hyphenation software.
-%
-% It makes sense to use at least two different sets of hyphenation rules
-% for Bulgarian. In most cases a more restrictive version should be
-% used, one which attempts to eliminate the controversial cases of
-% hyphenation. When typesetting a Bulgarian text in a narrow newspaper
-% column, however, it will be appropriate to use more liberal
-% hyphenation rules. It should be noted that one of the reasons for the
-% hyphenation reform in 1983 was the desire to fix the chaotic
-% hyphenation in the Bulgarian newspapers at that time.
-%
-% Computer implementations
-% ========================
-%
-% Mathematical analysis of the Bulgarian hyphenation
-% --------------------------------------------------
-%
-% The earliest mathematical analysis of the Bulgarian hyphenation rules
-% belongs to Veska Noncheva.[^1] In 1988 she proposed a mathematical
-% formalisation of the hyphenation rules in a table with 22 rows.[^2]
-%
-% [^1]: <http://www.researchgate.net/profile/Veska_Noncheva>
-%
-% [^2]: НÐūÐ―Ņ‡ÐĩÐēа В. АÐŧÐģÐūŅ€ÐļŅ‚ŅŠÐž за аÐēŅ‚ÐūОаŅ‚ÐļŅ‡Ð―Ðū ÐŋŅ€ÐĩÐ―Ð°ŅŅÐ―Ðĩ Ð―Ð° ÐīŅƒÐžÐļ Ðē
-% ÐąŅŠÐŧÐģаŅ€ŅÐšÐļŅ ÐĩзÐļК. МаŅ‚ÐĩОаŅ‚ÐļКа Ðļ ОаŅ‚ÐĩОаŅ‚ÐļŅ‡ÐĩŅÐšÐū
-% ÐūÐąŅ€Ð°Ð·ÐūÐēÐ°Ð―ÐļÐĩ. ÐĄÐą. ÐīÐūКÐŧаÐīÐļ Ð―Ð° 17. ПК Ð―Ð° ÐĄÐœÐ‘. ÐĄ., БАН, 1988, 479-482.
-%
-% In the same year Eugene Belogay[^3] proposed an alternative
-% formalisation with only 9 rules.[^4] Belogay proved that his rules are
-% consistent and that they form a minimal set. The rules of Belogay
-% have negative character – every hyphenation which is not forbidden by
-% a rule is possible hyphenation.
-%
-% [^3]: <http://www.linkedin.com/in/belogay>
-%
-% [^4]: БÐĩÐŧÐūÐģаÐđ Е. АÐŧÐģÐūŅ€ÐļŅ‚ŅŠÐž за аÐēŅ‚ÐūОаŅ‚ÐļŅ‡Ð―Ðū ÐŋŅ€ÐĩÐ―Ð°ŅŅÐ―Ðĩ Ð―Ð° ÐīŅƒÐžÐļ. КÐūОÐŋŅŽŅ‚ŅŠŅ€
-% за ÐēаŅ (1988) 3, 12-14.
-%
-% The following are the first 7 rules, as formulated by Belogay:
-%
-% 1. Б-А
-% 2. А-ББ
-% 3. Б-ÐĒÐĒ, ÐĒÐĒ-Б
-% 4. ААА-Б
-% 5. Ðđ-ББ
-% 6. Б-ŅŒ
-% 7. Ðī-Ðķ
-%
-% Here А denotes an arbitrary vowel letter, Б denotes an arbitrary
-% consonant letter (including ŅŒ and Ðđ), ÐĒÐĒ denotes a sequence of two
-% equal consonant letters and the letters Ðđ, ŅŒ, Ðī and Ðķ denote
-% themselves. For example the rule "Б-А" says that we are not permitted
-% to separate a consonant letter from immediately following vowel
-% letter.
-%
-% The eighth rule of Belogay says that hyphenation is forbidden before
-% the first and after the last vowel letter. The ninth rule of Belogay
-% says that hyphenation is forbidden immediately after the first or
-% immediately before the last letter of the word.
-%
-% Notice that is is very easy to translate the rules of Belogay in the
-% form, required for the hyphenation algorithm of Knuth and Liang used
-% in TeX.[^a] Let us remind that this algorithm matches the word with a
-% set of string patterns in which the odd numbers say hyphenation is
-% permitted in this position and even numbers say the hyphenation is
-% forbidden. When two patterns give conflicting numbers for the same
-% position, then the greater number wins.
-%
-% First, since the rules of Belogay are negative (they say where
-% hyphenation is forbidden, not where it is permitted), we have to
-% permit the hyphenation everywhere:
-%
-% 1. А1
-% 2. Б1
-%
-% Then, the first seven rules of Belogay obtain the form:
-%
-% 1. Б2А
-% 2. А2ББ
-% 3. Б2ÐĒÐĒ ÐĒÐĒ2Б
-% 4. ААА2Б
-% 5. Ðđ2ББ
-% 6. Б2ŅŒ
-% 7. Ðī2Ðķ
-%
-% Since no Bulgarian word starts with more that four consonants and no
-% Bulgarian word ends with more than three consonants, the eighth rule
-% of Belogay can be translated in the following way:
-%
-% 1. .Б2
-% 2. .ББ2
-% 3. .БББ2
-% 4. 2Б.
-% 5. 2ББ.
-%
-% The ninth rule of Belogay means that left and right hyphen mins should
-% be set to 2.
-%
-% The work of Eugene Belogay was not limited to merely a mathematical
-% analysis of the Bulgarian hyphenation rules. In his paper he
-% published a short algorithm in Pascal which implements these rules.
-% It didn't take long for this algorithm to be used in various text
-% processing software. The algorithm of Belogay was famous for many
-% years. Even as late as 1997 in one book about TeX, the author didn't
-% care to give any explanations but simply wrote about "the algorithm of
-% Belogay" as something well known to the reader.[^5]
-%
-% [^a]: Liang, Franklin Mark. Word Hy-phen-a-tion by
-% Com-put-er (Doctoral Dissertation). Stanford University, 1983
-%
-% [^5]: ВаŅÐļÐŧÐĩÐē В. ÐĢÐŧŅ‚ÐļОаŅ‚ÐļÐēÐ―ÐļŅŅ‚ ÐĒÐĩÐĨ. ÐĢÐīÐūÐēÐūÐŧŅŅ‚ÐēÐļÐĩŅ‚Ðū Ðīа ÐŋŅ€Ð°ÐēÐļО
-% ÐŋŅ€ÐĩÐīÐŋÐĩŅ‡Ð°Ņ‚Ð―а ÐŋÐūÐīÐģÐūŅ‚ÐūÐēКа ŅÐ°ÐžÐļ. ÐĄÐūŅ„ÐļŅ, Ð˜Ð―Ņ‚ÐĩÐŧа, 1997, 36
-%
-% Bulgarian hyphenation in TeX
-% ----------------------------
-%
-% One unfortunate design decision of Knuth was that the hyphenation
-% algorithm of TeX applied the hyphenation patterns not to the input
-% character codes but to the internal codes of the glyphs in the font.
-% This created a problem for the Cyrillic languages because in TeX the
-% Cyrillic fonts did not have standardised encoding. Perhaps this is
-% one of the reasons why the earliest implementations of the Bulgarian
-% hyphenation in TeX did not rely on the internal hyphenation algorithm
-% of TeX. Instead, external tools were used to insert soft hyphens in
-% all Bulgarian words. For example such a tool would replace the word
-% ŅŅ€ÐļŅ‡ÐšÐūÐŋŅ€ÐĩÐ―Ð°ŅŅÐ―Ðĩ /srichkoprenasyane/ with
-% ŅŅ€ÐļŅ‡\\-КÐūÐŋ\\-Ņ€Ðĩ\\-Ð―Ð°\\-ŅŅ\\-Ð―Ðĩ /srich\\-kop\\-re\\-na\\-sya\\-ne/.
-% The saying "To every disadvantage there is a corresponding advantage"
-% is true – since Cyrillic and Latin letters use different character
-% codes, an external tool could easily insert soft hyphens in all
-% Bulgarian words while leaving the TeX commands intact.
-%
-% The earliest known attempt to use the hyphenation algorithm of TeX for
-% Bulgarian was made by Ognyan Tonev in 1990.[^6] He described his work
-% as "a not very good translation of the rules. I work in this
-% direction. But I don't have a 100% working complect of patterns. So,
-% the copy I send to you[^7] is only a beta-version." The hyphenation
-% patterns of Tonev don't work correctly and it seems he never completed
-% his work.
-%
-% [^6]: The author of this text was unable to find current information
-% about Ognyan Tonev in Internet. Apparently in 1990 he worked in
-% the Center of Informatics and Computer Technology of the Bulgarian
-% Academy of Sciences.
-%
-% [^7]: To Yannis Haralambous,
-% <http://perso.telecom-bretagne.eu/yannisharalambous>
-%
-% The first usable Bulgarian hyphenation patterns for TeX were developed
-% by Georgi Boshnakov[^8] in 1994. In order to solve the encoding
-% problem, Boshnakov had developed TeX fonts supporting the MIK encoding
-% (the prevalent encoding at that time in Bulgaria). This allowed him
-% to introduce a fully working implementation only a few months after
-% LaTeX2e became the official LaTeX version. Later Boshnakov modified
-% his work with the Babel system. The hyphenation patterns of Boshnakov
-% did their job well enough, so that for almost quarter a century after
-% their initial creation, they remained the only Bulgarian hyphenation
-% patterns in the standard distributions of TeX and CTAN.
-%
-% [^8]: <http://www.maths.manchester.ac.uk/~gb/>
-%
-% There are some similarities between the patterns of Boshnakov and the
-% patterns of Belogay. The following are the main differences.
-%
-% First, Boshnakov used an ingenious and more compact implementation of
-% the second and the third rule. Instead of {А2ББ, Б2ÐĒÐĒ, ÐĒÐĒ2Б}, or
-% 8×22×22+22×22+22×22=4840 patterns in total, Boshnakov has patterns of
-% the form 2Б3Б2 and 4ÐĒ3ÐĒ4, or only 22×22=484 in total, with the same
-% effect.
-%
-% The second main difference between the patterns of Boshnakov and the
-% patterns of Belogay concerns the letter combination ÐīÐķ /dzh/. In
-% Bulgarian this letter combination can denote either a single
-% consonant, or a sequence of two consonants and the hyphenation rules
-% change respectively. Unfortunately, it is impossible to know the
-% meaning of ÐīÐķ /dzh/ without a vocabulary. The solution of Belogay was
-% a cautious one – his rules do the hyphenation in a way which will be
-% correct regardless of whether ÐīÐķ /dzh/ is a single consonant or a
-% sequence of two consonant. On the other hand, the approach of
-% Boshnakov is a bold one – since ÐīÐķ /dzh/ is more often a single
-% consonant, his rules assume that it is always a single consonant. The
-% number of the cases when this decision leads to bad hyphenations is
-% insignificant in comparison with the cases in which we obtain improved
-% hyphenation.
-%
-% The third main difference between the patterns of Boshnakov and the
-% patterns of Belogay concerns the eighth rule – its implementation in
-% the rules of Boshnakov is rather limited which leads to wrong
-% hyphenations like ÐąŅ€Ðļ-ÐīÐķ /bri-dzh/. A full implementation of this
-% rule would require 11660 patterns in total and this would be too much
-% for the computers in 1994.
-%
-% Later developments
-% ------------------
-%
-% In 1995 Atanas Topalov defended a Masters thesis in the Faculty of
-% Mathematics and Informatics at Sofia University titled "Algorithms and
-% software about text processing".[^9] One of the main topics in his
-% thesis was the Bulgarian hyphenation. Topalov criticised vehemently
-% the official hyphenation rules and their total disregard of the
-% morphology. He wrote:
-%
-% > If we look at the history of the problems of the hyphenation, we
-% > will discover something very strange. Instead of the expected
-% > involvement with the depths and aspiration for more admissible and
-% > satisfactory style, we can find a growing tendency for
-% > simplification. One unpleasant discovery is that the development of
-% > the hyphenation software stays firmly on the principle "let us do
-% > the easiest thing". The earliest works which have been studied are
-% > from 1978. It turned out that they present the best approach
-% > concerning the automated hyphenation. The authors have chosen the
-% > most difficult but the most correct (from literary point of view)
-% > method for hyphenation, namely the morphological approach.
-%
-% Topalov proposed his own hyphenation algorithm. The hyphenation it
-% generated was smooth and easy to read. One obvious defect of the
-% algorithm of Topalov was that it contradicted the official hyphenation
-% rules at that time. One can argue, however, that his algorithm is
-% compatible with the current hyphenation rules.
-%
-% [^9]: The thesis of Atanas Topalov can be accessed at the author's
-% website <http://www.mind-print.com>
-%
-% In 1999 Svetla Koeva[^10] wrote a paper about the automated Bulgarian
-% hyphenation.[^11] At that time she was a junior member of the
-% Department of Computational Linguistics at the Institute for Bulgarian
-% Language but now she is a director of the whole institute. The paper
-% of Koeva contains a list of hyphenation patterns which can be used as
-% a basis of automated hyphenation. In 2004 with the help of Stoyan
-% Mihov[^12] the rules of Koeva were formalised with regular relations
-% and rewriting rules. They were implemented in a software product
-% named ItaEst which provided Bulgarian hyphenation and grammar checking
-% for various software products of Microsoft and Apple.
-%
-% [^10]: <http://dcl.bas.bg/svetla_koeva/>
-%
-% [^11]: КÐūÐĩÐēа, ÐĄÐēÐĩŅ‚Ðŧа. ПŅ€Ð°ÐēÐļÐŧа за ÐŋŅ€ÐĩÐ―Ð°ŅŅÐ―Ðĩ Ð―Ð° Ņ‡Ð°ŅŅ‚Ðļ ÐūŅ‚ ÐīŅƒÐžÐļŅ‚Ðĩ Ð―Ð° Ð―ÐūÐē
-% Ņ€ÐĩÐī. БŅŠÐŧÐģаŅ€ŅÐšÐļ ÐĩзÐļК. 1999/2000, 1, 84-86
-%
-% [^12]: <http://lml.bas.bg/~stoyan/>
-%
-% The main differences between the hyphenation of Koeva and the official
-% hyphenation rules effective after 2012 is that the separation of a
-% long sequence of consonants between two vowels is done according to
-% the rules valid before 1983. For example ŅÐĩ-ŅŅ‚Ņ€Ð° /se-stra/ and
-% аÐđ-ŅÐąÐĩŅ€Ðģ /ay-sberg/ are permitted. The main difference between the
-% hyphenation of Koeva and the official hyphenation rules effective
-% before 1983 is that the rules of Koeva disregard the morphology of the
-% words. The following rule of Koeva is specific: in a sequence of two
-% sonorant consonants between two vowels, we are permitted to separate
-% the first vowel from the first consonant, for example ОаŅ‚ÐĩŅ€Ðļа-ÐŧÐ―Ð°
-% /materia-lna/.
-%
-% In 2000 Anton Zinoviev[^13] created new hyphenation patterns for TeX.
-% He didn't know about the previous work of Boshnakov and he didn't
-% bother to make his work available in the various TeX distributions and
-% CTAN. His work was used mostly by the local Linux enthusiasts and the
-% colleagues of Zinoviev. In 2001 Radostin Radnev[^14] created a free
-% grammar dictionary of Bulgarian[^15] where he used the hyphenation
-% patterns of Zinoviev. From there the work of Zinoviev propagated to
-% OpenOffice, LibreOffice and various online dictionaries, including
-% <http://bg.wiktionary.org> and <http://rechnik.chitanka.info>.
-%
-% [^13]: The author of this text.
-%
-% [^14]: <http://bg.linkedin.com/in/radostinradnev>
-%
-% [^15]: <http://bgoffice.sourceforge.net/>
-%
-% The following are the main differences between the hyphenation of
-% Zinoviev and the hyphenation of Boshnakov.
-%
-% First, the eighth rule of Belogay is fully implemented.
-%
-% Second, the rules of Zinoviev try to detect when the letters ÐīÐķ /dzh/
-% (and Ðīз /dz/) denote a single consonant and when they denote a
-% sequence of two consonants. By default, however, Zinoviev (like
-% Boshnakov) assumes that ÐīÐķ /dzh/ is a single consonant and hyphenates
-% accordingly.
-%
-% Third, the rules of Zinoviev disable some cases of unpleasant
-% hyphenations:
-%
-% 1. In a consonant sequence like Ņ‚ŅŅ‚ /tst/, the two equal consonants Ņ‚
-% /t/ are separated. For example ÐąŅ€Ð°Ņ‚ŅŅ‚-ÐēÐū /bratst-vo/ is forbidden
-% while ÐąŅ€Ð°Ņ‚Ņ-Ņ‚ÐēÐū /brats-tvo/ and ÐąŅ€Ð°Ņ‚-ŅŅ‚ÐēÐū /brat-stvo/ are
-% permitted.
-% 2. The hyphenation is forbidden after a sonorant consonant following
-% an obstruent consonant. For example ÐūŅ‚О-Ņ€Ð° /otm-ra/ is forbidden
-% and ÐūŅ‚-ОŅ€Ð° /ot-mra/ is permitted.
-% 3. The hyphenation separates two consecutive kindred voiced/voiceless
-% consonants. For example ŅŅƒÐąÐŋ-Ņ€ÐūÐīŅƒÐšŅ‚ /subp-roduct/ is forbidden and
-% ŅŅƒÐą-ÐŋŅ€ÐūÐīŅƒÐšŅ‚ /sub-product/ is permitted.
-%
-% At the start of his work on the Bulgarian hyphenation, Zinoviev had
-% the opportunity to discuss the hyphenation with Svetla Koeva. He
-% remembers that some cases of unpleasant hyphenation were suggested to
-% him by Koeva. Unfortunately, he hasn't taken notes so now he doesn't
-% know which cases of unpleasant hyphenation have been suggested to him
-% by Koeva and which are his own findings.
-%
-% The present work
-% ================
-%
-% Motivation
-% ----------
-%
-% The present work was carried out on the initiative of the leader of
-% the Bulgarian localisation team of Mozilla, who contacted Zinoviev,
-% Boshnakov and the maintainers of the TeX hyphenation patterns.[^17]
-% This work pursues the following main objectives:
-%
-% 1. to update the hyphenation patterns in accordance with the current
-% hyphenation rules;
-% 2. to generate the hyphenation patterns by a publicly available
-% script;
-% 3. to make the hyphenation patterns customisable;
-% 4. to provide documentation for the future developers.
-%
-% [^16]: <http://mozillians.org/en-US/u/stoyan/>
-%
-% [^17]: <http://hyphenation.org>
-%
-% The current official hyphenating rules for Bulgarian are rather
-% liberal. Very often, in a long sequence of consonants we are
-% permitted to split the word at any position, for example аÐģÐĩÐ―-Ņ‚-Ņ-Ņ‚-ÐēÐū
-% /agen-t-s-t-vo/. This is prone to many unusual and unexpected results
-% that interrupt the attention of the reader or deceive his expectations
-% during the movement of his eyes to the next line. On the other hand,
-% in order to produce nice justified paragraphs there is no need for so
-% many hyphenation possibilities. It would be sufficient even if only
-% one possible separation between any two syllables was permitted.
-%
-% Therefore, it makes sense to use a more restrictive version of the
-% Bulgarian hyphenation, one which eliminates the controversial cases of
-% hyphenation. Only when typesetting a Bulgarian text in a very narrow
-% newspaper column it will be appropriate to use a more liberal version.
-% It should be noted that some specialised English dictionaries also
-% separate the word-division positions into two categories – preferred
-% positions and less recommended positions.
-%
-% There are two methods to determine the optimal division within a
-% sequence of consonants between two vowels:
-%
-% * we can hyphenate according to the syllables in the word or
-% * we can hyphenate morphologically.
-%
-% Hyphenation according to the syllables in the word
-% --------------------------------------------------
-%
-% Let us look at the properties of the Bulgarian syllables. All
-% syllables have the following structure:
-%
-% > onset - nucleus - code
-%
-% The nucleus in Bulgarian is always a vowel. Both the onset and the
-% code are (possibly empty) sequences of consonants.
-%
-% The Bulgarian syllables adhere to the Sonority Sequencing Principle.
-% According to this principle, the consonants within the onset have
-% raising sonority and the consonants within the code have decreasing
-% sonority.
-%
-% Several grammar books agree that the following sonority scale is valid
-% for Bulgarian:
-%
-% > voiceless obtrusive < voiced obtrusive < sonorant consonant < vowel
-%
-% According to the investigations of the author, the only exception to
-% this law is due to the letter Ðē /v/ which is a voiced obtrusive but it
-% can be used also as a voiceless obtrusive. This exception is due to a
-% spelling particularity of the Bulgarian language. Whenever the letter
-% Ðē /v/ seemingly violates the Sonority Sequencing Principle, in the
-% spoken language this letter is read as Ņ„ /f/, that is as a voiceless
-% obtrusive (for example the word ÐūŅ‚ÐēŅŅÐšŅŠÐīÐĩ /otvsyakade/ is read as
-% ÐūŅ‚Ņ„ŅŅÐšŅŠÐīÐĩ /otfsyakade/).[^18]
-%
-% [^18]: No Primitive Slavonic word contains the phoneme Ņ„ /f/.
-% Therefore, we can safely assume that in the Primitive Slavonic
-% language the consonant Ņ„ /f/ was a positional variant of the consonant
-% Ðē /v/.
-%
-% The author has found that the sonorant consonants in Bulgarian have
-% their own sonority scale:
-%
-% > О /m/ < Ð― /n/ < Ðŧ /l/ < Ņ€ /r/ < Ðđ /y/
-%
-% Only a few words such as ÐķÐ°Ð―Ņ€ /zhanr/ and Ņ…ÐļÐžÐ― /himn/ violate this
-% scale. Such words are always loan-words and their pronunciation is
-% somewhat problematic for the native Bulgarian speakers.
-%
-% In addition to the Sonority Sequencing Principle, the consonant
-% clusters within the Bulgarian syllable adhere to the following
-% additional principles:
-%
-% 1. Both in the onset and in the code, the labial and dorsal plosives
-% precede the coronal plosives and affricates.
-% 2. If the onset or the code contains two plosives or affricates, then
-% there are no fricatives between them. Few words with the Latin
-% root 'text' are exceptions: КÐūÐ―Ņ‚ÐĩКŅŅ‚ /kontekst/.
-% 3. If the onset or the code contains two fricatives other than Ðē /v/,
-% then there are no plosives or affricates between them.
-% 4. If the onset or the code contains two plosives or affricates, then
-% they both have equal sonority (both are voiced, or both are
-% voiceless).
-% 5. If the onset or the code contains two fricatives other than Ðē /v/,
-% then they both have equal sonority (both are voiced, or both are
-% voiceless).
-% 6. Neither the onset, nor the code may contain two labial plosives, or
-% two coronal plosives or affricates or two dorsal plosives.
-% 7. Neither the onset, nor the code may contain two equal consonants
-% with the exception of Ðē /v/ (for example ÐēŅ‚ÐēŅŠŅ€ÐīÐļ /vtvardi/).[^19]
-%
-% [^19]: Actually, the letter Ðē /v/ is not a real exception because in
-% all such cases this letter denotes two different consonants – Ðē /v/
-% and Ņ„ /f/. Only in the Russian loan-word ÐēзÐēÐūÐī /vzvod/ the two
-% letters Ðē /v/ denote a repeating consonant Ðē /v/.
-%
-% From all these properties of the Bulgarian syllable we can deduce the
-% following hyphenation rules:
-%
-% 1. In a sequence МК where М is a consonant with higher sonority than
-% K, we are not permitted to hyphenate before М. Exception: when М
-% is Ðē /v/ and К is a voiceless consonant.
-% 2. In a sequence КМ where М is a consonant with higher sonority than
-% K, we are not permitted to hyphenate after М.
-% 3. In a sequence KBT where K and T are plosives or affricates and B is
-% fricative, we separate K from T.
-% 4. In a sequence CKB where K is a plosive or affricate and C and B are
-% fricatives other than Ðē /v/, we separate C from B.
-% 5. If in a consonant sequence a coronal plosive or affricate ÐĒ is
-% followed by a labial or dorsal plosive К, then we separate ÐĒ from К.
-% 6. If a consonant sequence contains two plosives or affricates, one
-% voiced and one voiceless, then we separate them.
-% 7. If a consonant sequence contains two fricatives other than Ðē /v/,
-% one voiced and one voiceless, then we separate them.
-% 8. If a consonant sequence contains two labial plosives or two coronal
-% plosives or affricates or two dorsal plosives then they are
-% separated.
-% 9. If a consonant sequence contains two equal consonants (not
-% necessarily consecutive), then they are separated.
-%
-% With so many prohibitive rules, a question arises: if we apply all
-% these rules, aren't we going to eliminate too many hyphenation
-% possibilities? The answer is no. It can be demonstrated that between
-% any two consecutive syllables at least one separation point will be
-% permitted.
-%
-%
-% Hyphenation according to the morphology
-% ---------------------------------------
-%
-% Between 1983 and 2012 the official orthographic rules of the
-% Bulgarian language forbade morphologically based hyphenation. After
-% 2012 such hyphenation is permitted (but not obligatory).
-%
-% The most important case when it is very desirable to use
-% morphologically based hyphenation is the case of the compound words.
-% Divisions such as аÐēŅ‚ÐūК-ÐŧŅƒÐą /avtok-lub/ and ÐēаКŅƒŅƒ-ОаÐŋаŅ€Ð°Ņ‚
-% /vakuu-maparat/ are extremely irritating even if they are formally
-% correct. Unfortunately, we do not have a vocabulary of the compound
-% Bulgarian words that would permit us to produce rules for automated
-% hyphenation. Therefore, the current Bulgarian hyphenation patterns do
-% not attempt to apply morphological hyphenation to such words.
-%
-% Second in importance (but far more significant in terms of numbers) is
-% the case with the word prefixes. While the eyes of the reader still
-% look at the start of the word, the word is still unknown to him. At
-% this point, it is very important not to deceive his expectations. For
-% example, when the reader sees Ð―Ð°Ðī- /nad-/ at the end of the line, he
-% will expect that this is the prefix Ð―Ð°Ðī- /nad-/ with semantics 'attain
-% more than'. This expectation will be fooled if this wasn't really a
-% prefix, but a deceiving (while formally correct) hyphenation of the
-% word Ð―Ð°ÐīŅ€ÐĩОŅ /nadremya/ 'have dozed enough' where the real prefix is
-% not Ð―Ð°Ðī- /nad-/ but Ð―Ð°- /na-/ with semantics 'achieve a state after
-% accumulation'. Such hyphenation distracts the reader and makes the
-% reading more difficult.
-%
-% Third in importance is the case with the word suffixes. With respect
-% to the hyphenation rules we can divide the suffixes into three
-% categories:
-%
-% 1. Suffixes starting with a vowel, for example -аŅ€ /-ar/. It is not
-% appropriate to follow the morphology with such suffixes because
-% this will contradict the whole hyphenation tradition of the
-% Bulgarian language. For example КŅ€Ð°Ðē-аŅ€ /krav-ar/ is unwarranted.
-% 2. Suffixes starting with one consonant, for example -Ка /-ka/.
-% Usually with such suffixes the syllable boundary in the word
-% coincides with morpheme boundary so no specific cares are
-% necessary, for example КŅ€Ð°ÐēаŅ€-Ка /kravar-ka/. The exceptions are
-% rare, for example: ÐūÐąÐĩК-Ņ‚Ð―аŅ‚а /obek-tnata/ instead of ÐūÐąÐĩКŅ‚-Ð―Ð°Ņ‚а
-% /obekt-nata/.
-% 3. Suffixes starting with more than one consonant (-ŅÐšÐļ /-ski/, -ŅŅ‚ÐēÐū
-% /-stvo/). It is possible to use morphological hyphenation rules
-% with such suffixes.
-%
-% Even if it is possible to use morphological hyphenation with the
-% suffixes of the third category, it turns out, this is not as useful as
-% it is with the case of the prefixes. When the eyes of the reader have
-% reached this part of the word, the word is already more or less known
-% to the reader. Therefore, at this point the morphological hyphenation
-% does not provide any significant advantages in comparison to the
-% simpler hyphenation based only on the syllables in the word. Consider
-% for example the word ÐģÐĩŅ€ÐūÐđŅ-Ņ‚ÐēÐū /geroys-tvo/ with suffix -ŅŅ‚ÐēÐū
-% /-stvo/. When the reader sees ÐģÐĩŅ€ÐūÐđŅ- /geroys-/ at the end of the
-% line this will give him an early clue that the suffix of the word is
-% -ŅŅ‚ÐēÐū /-stvo/. Such non-morphological hyphenation does not deceive
-% the expectations of the reader. On the contrary, it makes the reading
-% easier because it gives clues to the reader about what follows on the
-% next line.
-%
-% Because of these considerations, the current Bulgarian hyphenation
-% patterns do not attempt to use morphological hyphenation with respect
-% to the suffixes of the words. Though it would be useful to implement
-% rules about the suffixes of the second cateogory. Hopefully, some
-% future version will have such rules.
-%
-% Occasionally,[^20] a fourth morphological requirement is stated: that
-% hyphenation should conform with the boundary between the word and the
-% definitive articles -Ņ‚а /-ta/ and -Ņ‚Ðĩ /-te/ (postfixed in Bulgarian).
-% There is no need to pay attention to this rule because it seems to be
-% satisfied by its own nature. The author has searched in a dictionary
-% with over 860000 Bulgarian words for cases when the hyphenation rules
-% would hyphenate badly with respect to the definitive article. He was
-% unable to find even one such case with the hyphenation rules valid
-% after 1983 and only about 10 cases with the rules valid before 1983
-% (one of them is ÐķÐļÐēÐūÐŋÐļ-ŅŅ‚а /zhivopi-sta/ instead of ÐķÐļÐēÐūÐŋÐļŅ-Ņ‚а
-% /zhivopis-ta/).
-%
-% One unavoidable characteristic of any morphologically based automated
-% hyphenation is that it can create wrong hyphenations. Because of
-% this, one useful option is to use the morphology in a safe way – to
-% use it in order to forbid bad hyphenations but to create no new
-% hyphenation possibilities solely on the basis of the morphology.
-%
-% Take for example the word ÐīÐūзŅ€ÐĩŅ /dozreya/ 'ripen fully'. According
-% to the phonological rules, we should hyphenate it as ÐīÐūз-Ņ€ÐĩŅ
-% /doz-reya/. According to the morphology, however, we should hyphenate
-% as ÐīÐū-зŅ€ÐĩŅ /do-zreyq/ because this word is formed with the prefix ÐīÐū-
-% /do-/ with semantics 'complete or supplement' and this semantics would
-% be lost if the reader sees ÐīÐūз- /doz-/ at the end of the line.
-% Therefore, there are three methods to hyphenate this word:
-%
-% 1. ÐīÐūз-Ņ€ÐĩŅ /doz-reya/ when morphology is not used;
-% 2. ÐīÐū-зŅ€ÐĩŅ /do-zreya/ when morphology is fully used;
-% 3. ÐīÐūзŅ€ÐĩŅ /dozreya/ (no hyphenation) when morphology is used in a safe
-% way.
-%
-% The option to use the morphology in a safe way is very attractive when
-% the software uses a smart line-breaking algorithm which can produce
-% good results even with less hyphenation possibilities. TeX is one
-% such software. It should be noted that this option does not eliminate
-% too many hyphenation possibilities because the morpheme boundaries
-% most of the time are also syllable boundaries.
-%
-% [^20]: ПŅ€Ð°ÐēÐūÐŋÐļŅÐĩÐ― Ðļ ÐŋŅ€Ð°ÐēÐūÐģÐūÐēÐūŅ€ÐĩÐ― Ð―Ð°Ņ€ŅŠŅ‡Ð―ÐļК. ÐĄŅŠŅŅ‚аÐē. ИÐēÐ°Ð― ÐĨаÐīÐķÐūÐē,
-% ÐĶÐē. МÐļÐ―ÐšÐūÐē; РÐĩÐī. ИÐē. ÐĨаÐīÐķÐūÐē Ðļ ÐīŅ€. ÐĄÐūŅ„ÐļŅ, БŅŠÐŧÐģ. ÐšÐ―., 1945
-%
-% The following are results of a statistics about the quality of the
-% morphological rules (the number after the sign Âą is the expected
-% standard deviation of our estimations):
-%
-% With the option `--morphology`:
-%
-% * in 0.1% Âą0.3% of the dictionary words the morphological patterns
-% create very wrong hyphenation;
-% * in 89.8% Âą0.1% of the dictionary words the morphological patterns
-% hyphenate identically with the case when no morphology patterns are
-% used;
-% * in 0.3% Âą0.2% of the dictionary words the morphological patterns
-% hyphenate differently in comparison to the case when no morphology
-% patterns are used and the word is hyphenated in a way which
-% contradicts the morphology;
-% * in 0.6% Âą0.1% of the dictionary words the morphological patterns
-% hyphenate differently in comparison to the case when no morphology
-% patterns are used and there is a possible hyphenation which is
-% compatible with the word morphology but which is nevertheless
-% forbidden by the morphology patterns.
-%
-% With the option `--safe-morphology`:
-%
-% * in 0% of the dictionary words the morphological patterns create very
-% wrong hyphenation;
-% * in 90.0% Âą0.1% of the dictionary words the morphological patterns
-% hyphenate identically with the case when no morphology patterns are
-% used;
-% * in 0.3% Âą0.2% of the dictionary words the morphological patterns
-% hyphenate differently in comparison to the case when no morphology
-% patterns are used and the word is hyphenated in a way which
-% contradicts the morphology;
-% * in 0.6% Âą0.1% of the dictionary words the morphological patterns
-% hyphenate differently in comparison to the case when no morphology
-% patterns are used and there is a possible hyphenation which is
-% compatible both with the word morphology and with the syllable
-% boundaries but which is nevertheless forbidden by the morphology
-% patterns.
-%
-% Notice that the morphological patterns create a different hyphenation
-% only in about 10% of the words. The following explanation can be
-% given for this surprising fact. First, the natural evolution of the
-% human languages tends to simplify the complex sequences of consonants.
-% Therefore, no morpheme contains a complex sequence of consonants. And
-% second, the Bulgarian orthography is morphological. This means that
-% the morphemes are written according to their actual pronunciation,
-% however the simplifications in the spoken languages which take place
-% at the morpheme boundaries are not taken into account in the
-% orthography. The independent operation of these two factors leads to
-% the result that most of the time the morpheme boundaries coincide with
-% the conventional syllable boundaries. The main exception to this is
-% when a morpheme starts with a vowel, in this case its syllable will
-% include one or more consonants of the preceeding morpheme. The second
-% exception is when a morpheme ends with a vowel and the next morpheme
-% starts with a sequence of two or more consonants.
-%
-% Usage of the script `hyph-bg.sh`
-% --------------------------------
-%
-% The `hyph-bg.sh` is all-in-one script which can generate both
-% documentation (this text) and Bulgarian hyphenation patterns. When
-% given the option `--help` the script gives short usage instructions:
-%
-% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-% hyph-bg.sh --help
-% Show this info
-% hyph-bg.sh [--doc-html | --doc-latex | --doc-txt]
-% Print documentation in various formats
-% hyph-bg.sh [other options]
-% Generate Bulgarian hyphenation patterns
-%
-% Options when generating hyphenation patterns:
-%
-% --standalone-tex
-% Produce hyphenation patterns for TeX with \patterns{ ... }.
-%
-% --no-hyphen-mins
-% Hyphenation patterns which do not require hyphen mins.
-% Otherwise: both left and right hyphen mins should be set to 2.
-%
-% --safe-dz
-% Do not try to guess whether DZ is a single consonant or not.
-% Only use hyphenation which will be correct in both cases.
-%
-% --permissible
-% Permit any formally correct hyphenation, including unnatural
-% divisions, such as studen-tstvo. Useful for educational tools
-% or when typesetting Bulgarian text in a very short column.
-%
-% --morphology
-% Apply morphology when hyphenating, for example: za-dvizhvam.
-% May hyphenate incorrectly in some cases.
-%
-% --safe-morphology
-% Apply morphology when hyphenating. Never hyphenates incorrectly
-% but may prohibit some correct hyphenations.
-%
-% --no-morphology
-% Disregard the morphology. Default.
-%
-% --1945
-% Hyphenate according to the rules effective between 1945 and 1982
-%
-% --1983
-% Hyphenate according to the rules effective between 1983 and 2011
-%
-% --2012
-% Hyphenate according to the rules effective after 2012. Default.
-% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-%
-% The following are the recommended ways to generate hyphenation
-% patterns by this script:
-%
-% `hyph-bg.sh --standalone-tex --safe-morphology`
-% : For TeX. Apply the morphology in a safe way when the software
-% uses a smart line-breaking algorithm.
-%
-% `hyph-bg.sh`
-% : For most other software.
-%
-% `hyph-bg.sh --no-hyphen-mins`
-% : The current versions of Mozilla (as of 2017) seem to ignore the
-% hyphen mins in words that contain a dash.
-%
-% `hyph-bg.sh --morphology`
-% : For professional typography with human proof-reader.
-%
-% `hyph-bg.sh --permissible`
-% : For educational tools and online dictionaries which can show only one
-% kind of hyphenation.
-%
-% Notice that some specialised English dictionaries separate the
-% word-division positions into two categories – preferred positions and
-% less recommended positions. It would be best if the Bulgarian online
-% dictionaries could do the same. For example hyphen "-" can be used to
-% display the preferred positions and dot "." – the less recommended
-% positions. If a word-division position is permitted only by the
-% patterns of `hyph-bg.sh --permissible`, then this position is less
-% recommended.
-%
-
-\message{Bulgarian hyphenation patterns (options: --safe-morphology --standalone-tex, version 21 October 2017)}
diff --git a/Master/texmf-dist/tex/context/patterns/common/lang-de.rme b/Master/texmf-dist/tex/context/patterns/common/lang-de.rme
index 241a9312c10..d1b549fc71b 100644
--- a/Master/texmf-dist/tex/context/patterns/common/lang-de.rme
+++ b/Master/texmf-dist/tex/context/patterns/common/lang-de.rme
@@ -1,64 +1,23 @@
% generated by mtxrun --script pattern --convert
-% title: German Hyphenation Patterns (Reformed Orthography, 2006)
-%
-% notice: TeX-Trennmuster fÞr die reformierte (2006) deutsche Rechtschreibung
-%
-% version: 2018-03-31
-%
-% authors:
-% -
-% name: Deutschsprachige Trennmustermannschaft
-% contact: trennmuster@dante.de
-%
-% copyright: Copyright (c) 2013-2018
-% Stephan Hennig, Werner Lemberg, GÞnter Milde,
-% Sander van Geloven, Georg Pfeiffer, Gisbert W. Selke,
-% Tobias Wendorf
-%
-% licence:
-% name: MIT
-% url: http://opensource.org/licenses/mit-license.php
-% text: >
-% Permission is hereby granted, free of charge, to any person
-% obtaining a copy of this software and associated documentation
-% files (the “Software”), to deal in the Software without
-% restriction, including without limitation the rights to use,
-% copy, modify, merge, publish, distribute, sublicense, and/or
-% sell copies of the Software, and to permit persons to whom the
-% Software is furnished to do so, subject to the following
-% conditions:
+% dehyphn-x-2014-05-21.pat
+
+\message{German Hyphenation Patterns (Reformed Orthography, 2006) `dehyphn-x' 2014-05-21 (WL)}
+
+% TeX-Trennmuster fÞr die reformierte (2006) deutsche Rechtschreibung
%
-% The above copyright notice and this permission notice shall be
-% included in all copies or substantial portions of the Software.
%
-% THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND,
-% EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-% OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-% NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-% HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-% WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-% FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-% OTHER DEALINGS IN THE SOFTWARE.
+% Copyright (C) 2007, 2008, 2009, 2011, 2012, 2013, 2014 Werner Lemberg <wl@gnu.org>
%
-% source: http://repo.or.cz/w/wortliste.git?a=commit;h=8b9a428c271e064f0047a364c532308f0fd4051f
+% 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.
%
-% language:
-% name: German, reformed spelling
-% tag: de-1996
%
-% hyphenmins:
-% generation:
-% left: 2
-% right: 2
-% typesetting:
-% left: 2
-% right: 2
+% The word list is available from
%
-% ===========================================================================
-
-\message{German Hyphenation Patterns (Reformed Orthography, 2006) `dehyphn-x' 2018-03-31 (WL)}
-
+% http://repo.or.cz/w/wortliste.git?a=commit;h=3a97953c0ddd099a1785ea7927cbf24e639090b0
%
% The used patgen parameters are
%
diff --git a/Master/texmf-dist/tex/context/patterns/common/lang-deo.rme b/Master/texmf-dist/tex/context/patterns/common/lang-deo.rme
index 87bf0b9aeeb..c4fed100981 100644
--- a/Master/texmf-dist/tex/context/patterns/common/lang-deo.rme
+++ b/Master/texmf-dist/tex/context/patterns/common/lang-deo.rme
@@ -1,64 +1,23 @@
% generated by mtxrun --script pattern --convert
-% title: German Hyphenation Patterns (Traditional Orthography)
-%
-% notice: TeX-Trennmuster fÞr die traditionelle deutsche Rechtschreibung
-%
-% version: 2018-03-31
-%
-% authors:
-% -
-% name: Deutschsprachige Trennmustermannschaft
-% contact: trennmuster@dante.de
-%
-% copyright: Copyright (c) 2013-2018
-% Stephan Hennig, Werner Lemberg, GÞnter Milde,
-% Sander van Geloven, Georg Pfeiffer, Gisbert W. Selke,
-% Tobias Wendorf
-%
-% licence:
-% name: MIT
-% url: http://opensource.org/licenses/mit-license.php
-% text: >
-% Permission is hereby granted, free of charge, to any person
-% obtaining a copy of this software and associated documentation
-% files (the “Software”), to deal in the Software without
-% restriction, including without limitation the rights to use,
-% copy, modify, merge, publish, distribute, sublicense, and/or
-% sell copies of the Software, and to permit persons to whom the
-% Software is furnished to do so, subject to the following
-% conditions:
+% dehypht-x-2014-05-21.pat
+
+\message{German Hyphenation Patterns (Traditional Orthography) `dehypht-x' 2014-05-21 (WL)}
+
+% TeX-Trennmuster fÞr die traditionelle deutsche Rechtschreibung
%
-% The above copyright notice and this permission notice shall be
-% included in all copies or substantial portions of the Software.
%
-% THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND,
-% EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-% OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-% NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-% HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-% WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-% FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-% OTHER DEALINGS IN THE SOFTWARE.
+% Copyright (C) 2008, 2009, 2011, 2012, 2013, 2014 Werner Lemberg <wl@gnu.org>
%
-% source: http://repo.or.cz/w/wortliste.git?a=commit;h=8b9a428c271e064f0047a364c532308f0fd4051f
+% 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.
%
-% language:
-% name: German, traditional spelling
-% tag: de-1901
%
-% hyphenmins:
-% generation:
-% left: 2
-% right: 2
-% typesetting:
-% left: 2
-% right: 2
+% The word list is available from
%
-% ===========================================================================
-
-\message{German Hyphenation Patterns (Traditional Orthography) `dehypht-x' 2018-03-31 (WL)}
-
+% http://repo.or.cz/w/wortliste.git?a=commit;h=3a97953c0ddd099a1785ea7927cbf24e639090b0
%
% The used patgen parameters are
%
diff --git a/Master/texmf-dist/tex/context/patterns/common/lang-fr.rme b/Master/texmf-dist/tex/context/patterns/common/lang-fr.rme
index 7ca6aa0359e..2ee36d062e9 100644
--- a/Master/texmf-dist/tex/context/patterns/common/lang-fr.rme
+++ b/Master/texmf-dist/tex/context/patterns/common/lang-fr.rme
@@ -1,15 +1,12 @@
% generated by mtxrun --script pattern --convert
-% copyright: Daniel Flipo and Bernard Gaulle 1994-2002, Arthur Reutenauer 2016
+% copyright: Daniel Flipo, Bernard Gaulle 1994-2002
% title: French hyphenation patterns
-% version: V2.13 2016/05/12
-% language:
-% name: French
-% tag: fr
+% version: V2.12 2002/12/11
% notice: >
% This file is part of the hyph-utf8 package.
% See http://www.hyphenation.org for more information.
-% licence:
+% license:
% name: MIT
% url: https://opensource.org/licenses/MIT
% text: >
diff --git a/Master/texmf-dist/tex/context/patterns/common/lang-la.rme b/Master/texmf-dist/tex/context/patterns/common/lang-la.rme
index 98435331f2a..9929f463e45 100644
--- a/Master/texmf-dist/tex/context/patterns/common/lang-la.rme
+++ b/Master/texmf-dist/tex/context/patterns/common/lang-la.rme
@@ -1,78 +1,34 @@
% generated by mtxrun --script pattern --convert
-% title: Hyphenation patterns for modern and medieval Latin
-% copyright: Copyright (c) 1999-2016 Claudio Beccari
-% e-mail claudio dot beccari at gmail dot com
-% notice: This file is part of the hyph-utf8 package.
-% See http://www.hyphenation.org for more information.
-% language:
-% name: Latin
-% tag: la
-% version: 3.201 2016-08-28
-% licence:
-% - This file is available under any of the following licences:
-% -
-% name: MIT
-% url: https://opensource.org/licenses/MIT
-% text: >
-% Permission is hereby granted, free of charge, to any person
-% obtaining a copy of this software and associated documentation
-% files (the “Software”), to deal in the Software without
-% restriction, including without limitation the rights to use,
-% copy, modify, merge, publish, distribute, sublicense, and/or sell
-% copies of the Software, and to permit persons to whom the
-% Software is furnished to do so, subject to the following
-% conditions:
-%
-% The above copyright notice and this permission notice shall be
-% included in all copies or substantial portions of the Software.
-%
-% THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND,
-% EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-% OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-% NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-% HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-% WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-% FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-% OTHER DEALINGS IN THE SOFTWARE.
-% -
-% name: LPPL
-% version: 1
-% or_later: true
-% url: https://latex-project.org/lppl/
-% changes:
-% -
-% date: 1999
-% version: 1.0
-% author: Claudio Beccari
-% description: First public release
-% -
-% date: 2007-04-16
-% version: 3.1
-% author: Claudio Beccari
-% -
-% date: 2010-05-31
-% author: Claudio Beccari
-% description: Removal of OT1 support
-% -
-% date: 2010-06-01
-% version: 3.2
-% author: Claudio Beccari
-% description: Removal of pattern 2'2
-% -
-% date: 2016-08-28
-% version: 3.201
-% author: Claudio Beccari
-% description: updated header with MIT licence notice;
-% added few missing patterns
-%
-% ==========================================
+%
+% ********** hyph-la.tex *************
+%
+% Copyright 1999-2014 Claudio Beccari
+% [latin hyphenation patterns]
+%
+% -----------------------------------------------------------------
+% IMPORTANT NOTICE:
+%
+% 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.
+% -----------------------------------------------------------------
+%
% Patterns for the latin language mainly in modern spelling
% (u when u is needed and v when v is needed); medieval spelling
% with the ligatures \ae and \oe and the (uncial) lowercase `v'
% written as a `u' is also supported; apparently there is no conflict
% between the patterns of modern Latin and those of medieval Latin.
%
+%
+% Prepared by Claudio Beccari
+% Politecnico di Torino
+% Torino, Italy
+% e-mail claudio dot beccari at gmail.com
+%
+% \versionnumber{3.2a} \versiondate{2014/06/04}
+%
% For more information please read the babel-latin documentation.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -142,7 +98,11 @@
% Read the documentation coming with the discription of the Latin language
% interface of Babel in order to see the shortcuts and the facilities
% introduced in order to facilitate the insertion of "compound word marks"
-% which are very useful for inserting etymological break points.
+% which are very useful for inserting etimological break points.
%
% Happy Latin and multilingual typesetting!
%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \message{Latin Hyphenation Patterns Version 3.2a <2014/06/04>}
+%
diff --git a/Master/texmf-dist/tex/context/patterns/common/lang-th.rme b/Master/texmf-dist/tex/context/patterns/common/lang-th.rme
index 69b66fa7502..306a3d9721d 100644
--- a/Master/texmf-dist/tex/context/patterns/common/lang-th.rme
+++ b/Master/texmf-dist/tex/context/patterns/common/lang-th.rme
@@ -1,20 +1,21 @@
% generated by mtxrun --script pattern --convert
-% title: Hyphenation patterns for Thai
-% copyright: Copyright 2012-2013 Theppitak Karoonboonyanan <theppitak at gmail.com>
-% notice: This file is part of the hyph-utf8 package.
-% See http://www.hyphenation.org for more information.
-% language:
-% name: Thai
-% tag: th
-% licence:
-% name: LPPL
-% version: 1.3
-% or_later: true
-% status: maintained
-% maintainer: Theppitak Karoonboonyanan
-% url: https://latex-project.org/lppl/
-% ==========================================
-% https://linux.thai.net/projects/thailatex
-% https://github.com/tlwg/thailatex
+% Thai hyphenation patterns
+%
+% Copyright 2012-2013 Theppitak Karoonboonyanan <theppitak at gmail.com>
+%
+% 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 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Theppitak Karoonboonyanan.
+%
+% http://linux.thai.net/projects/thailatex
+% http://linux.thai.net/svn/software/thailatex/trunk
%
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-agr.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-agr.pat
index 4064ae88318..521cdf3b6f6 100644
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-agr.pat
+++ b/Master/texmf-dist/tex/context/patterns/mkii/lang-agr.pat
@@ -2,7 +2,7 @@
% for comment and copyright, see lang-agr.rme
-% used: ' Ęž ΐ ÎŽ έ ÎŪ ÎŊ ΰ Îą Îē Îģ Îī Îĩ Îķ η Îļ Îđ Κ Îŧ Ξ Î― Îū Îŋ π ρ ς σ τ υ φ χ ψ ω ϊ ϋ ό ύ ώ ϐ Ïē ᾀ ខ ᾂ ឃ ᾄ ᾅ ᾆ ᾇ ថ ᾑ ᾒ ᾓ ᾔ ᾕ áž  ឥ ážĒ ážĢ ážĪ ážĨ ážĶ ឧ áž° ážą ážē ážģ ážī ážĩ ážķ áž· á―€ á― á―‚ á―ƒ á―„ á―… á― á―‘ á―’ á―“ á―” á―• á―– á―— á―  á―Ą á―Ē á―Ģ á―Ī á―Ĩ á―Ķ á―§ á―° á―ą á―ē á―ģ á―ī á―ĩ á―ķ á―· á―ļ á―đ á―š á―ŧ á―ž á―― áū€ áū áū‚ áūƒ áū„ áū… áū† áū‡ áū áū‘ áū’ áū“ áū” áū• áū– áū— áū  áūĄ áūĒ áūĢ áūĪ áūĨ áūĶ áū§ áūē áūģ áūī áūķ áū· áū― áūŋ áŋ‚ áŋƒ áŋ„ áŋ† áŋ‡ áŋ’ áŋ“ áŋ– áŋ— áŋĒ áŋĢ áŋĪ áŋĨ áŋĶ áŋ§ áŋē áŋģ áŋī áŋķ áŋ·
+% used: ' Ęž ΐ ÎŽ έ ÎŪ ÎŊ ΰ Îą Îē Îģ Îī Îĩ Îķ η Îļ Îđ Κ Îŧ Ξ Î― Îū Îŋ π ρ ς σ τ υ φ χ ψ ω ϊ ϋ ό ύ ώ Ïē ᾀ ខ ᾂ ឃ ᾄ ᾅ ᾆ ᾇ ថ ᾑ ᾒ ᾓ ᾔ ᾕ áž  ឥ ážĒ ážĢ ážĪ ážĨ ážĶ ឧ áž° ážą ážē ážģ ážī ážĩ ážķ áž· á―€ á― á―‚ á―ƒ á―„ á―… á― á―‘ á―’ á―“ á―” á―• á―– á―— á―  á―Ą á―Ē á―Ģ á―Ī á―Ĩ á―Ķ á―§ á―° á―ą á―ē á―ģ á―ī á―ĩ á―ķ á―· á―ļ á―đ á―š á―ŧ á―ž á―― áū€ áū áū‚ áūƒ áū„ áū… áū† áū‡ áū áū‘ áū’ áū“ áū” áū• áū– áū— áū  áūĄ áūĒ áūĢ áūĪ áūĨ áūĶ áū§ áūē áūģ áūī áūķ áū· áū― áūŋ áŋ‚ áŋƒ áŋ„ áŋ† áŋ‡ áŋ’ áŋ“ áŋ– áŋ— áŋĒ áŋĢ áŋĪ áŋĨ áŋĶ áŋ§ áŋē áŋģ áŋī áŋķ áŋ·
\patterns{
Îą1
@@ -283,7 +283,6 @@
Îŋ3Ï…á―·
Îŋ3υáŋ–
4Îē.
-4ϐ.
4Îģ.
4Îī.
4Îķ.
@@ -303,7 +302,6 @@
4ψ.
4'
4Îē'
-4ϐ'
4Îģ'
4Îī'
4Îķ'
@@ -321,7 +319,6 @@
4χ'
4ψ'
.Îē4
-.ϐ4
.Îģ4
.Îī4
.Îķ4
@@ -339,7 +336,6 @@
.χ4
.ψ4
2Îē1Îē
-2ϐ1ϐ
2Îģ1Îģ
2Îī1Îī
2Îķ1Îķ
@@ -357,29 +353,17 @@
2χ1χ
2ψ1ψ
2Îē1Îģ
-2ϐ1Îģ
2Îē1Îķ
-2ϐ1Îķ
2Îē1Îļ
-2ϐ1Îļ
2Îē1Κ
-2ϐ1Κ
2Îē1Îū
-2ϐ1Îū
2Îē1π
-2ϐ1π
2Îē1σ
-2ϐ1σ
2Îē1τ
-2ϐ1τ
2Îē1φ
-2ϐ1φ
2Îē1χ
-2ϐ1χ
2Îē1ψ
-2ϐ1ψ
2Îģ1Îē
-2Îģ1ϐ
2Îģ1Îķ
2Îģ1Îļ
2Îģ1Κ
@@ -391,7 +375,6 @@
2Îģ1χ
2Îģ1ψ
2Îī1Îē
-2Îī1ϐ
2Îī1Îģ
2Îī1Îķ
2Îī1Îļ
@@ -405,7 +388,6 @@
2Îī1χ
2Îī1ψ
2Îķ1Îē
-2Îķ1ϐ
2Îķ1Îģ
2Îķ1Îī
2Îķ1Îļ
@@ -422,7 +404,6 @@
2Îķ1χ
2Îķ1ψ
2Îļ1Îē
-2Îļ1ϐ
2Îļ1Îģ
2Îļ1Îī
2Îļ1Îķ
@@ -435,7 +416,6 @@
2Îļ1χ
2Îļ1ψ
2Κ1Îē
-2Κ1ϐ
2Κ1Îģ
2Κ1Îī
2Κ1Îķ
@@ -447,7 +427,6 @@
2Κ1χ
2Κ1ψ
2Îŧ1Îē
-2Îŧ1ϐ
2Îŧ1Îģ
2Îŧ1Îī
2Îŧ1Îķ
@@ -464,7 +443,6 @@
2Îŧ1χ
2Îŧ1ψ
2Ξ1Îē
-2Ξ1ϐ
2Ξ1Îģ
2Ξ1Îī
2Ξ1Îķ
@@ -480,7 +458,6 @@
2Ξ1χ
2Ξ1ψ
2Î―1Îē
-2Î―1ϐ
2Î―1Îģ
2Î―1Îī
2Î―1Îķ
@@ -498,7 +475,6 @@
2Î―1χ
2Î―1ψ
2Îū1Îē
-2Îū1ϐ
2Îū1Îģ
2Îū1Îī
2Îū1Îķ
@@ -515,7 +491,6 @@
2Îū1χ
2Îū1ψ
2π1Îē
-2π1ϐ
2π1Îģ
2π1Îī
2π1Îķ
@@ -527,7 +502,6 @@
2π1χ
2π1ψ
2ρ1Îē
-2ρ1ϐ
2ρ1Îģ
2ρ1Îī
2ρ1Îķ
@@ -551,7 +525,6 @@
2σ1ρ
2σ1ψ
2τ1Îē
-2τ1ϐ
2τ1Îģ
2τ1Îī
2τ1Îķ
@@ -564,7 +537,6 @@
2τ1χ
2τ1ψ
2φ1Îē
-2φ1ϐ
2φ1Îģ
2φ1Îī
2φ1Îķ
@@ -576,7 +548,6 @@
2φ1χ
2φ1ψ
2χ1Îē
-2χ1ϐ
2χ1Îģ
2χ1Îī
2χ1Îķ
@@ -588,7 +559,6 @@
2χ1φ
2χ1ψ
2ψ1Îē
-2ψ1ϐ
2ψ1Îģ
2ψ1Îī
2ψ1Îķ
@@ -605,15 +575,10 @@
2ψ1φ
2ψ1χ
4ÎēÎī'
-4ϐÎī'
4ÎēÎŧ'
-4ϐÎŧ'
4ÎēΞ'
-4ϐΞ'
4ÎēÎ―'
-4ÏÎ―'
4Îēρ'
-4ϐρ'
4ÎģÎī'
4ÎģÎŧ'
4ÎģΞ'
@@ -623,7 +588,6 @@
4ÎīÎ―'
4Îīρ'
4ÎķÎē'
-4Îķϐ'
4ÎļÎŧ'
4ÎŧΞ'
4ÎļÎ―'
@@ -640,7 +604,6 @@
4πρ'
4πτ'
4σÎē'
-4σϐ'
4σÎģ'
4σÎī'
4σÎļ'
@@ -677,10 +640,7 @@
áž€ÎžÏ€ÎąÎŧÎđ2Î―1
កΞφÎŊ2σ1Îē
áž€ÎžÏ†á―·2σ1Îē
-កΞφÎŊ2σ1ϐ
-áž€ÎžÏ†á―·2σ1ϐ
កΞφÎđ2σ1Îē
-កΞφÎđ2σ1ϐ
កΞφÎŊ2σ1ω
áž€ÎžÏ†á―·2σ1ω
កΞφÎđ2σ1ώ
@@ -911,10 +871,7 @@
ᾀ2Î―1ÎąÏ€ÎąÏ…Îī
ᾀ2Î―1ÎąÏ€ÏŒÎē
ᾀ2Î―1ÎąÏ€á―đÎē
-ᾀ2Î―1ÎąÏ€ÏŒÏ
-ᾀ2Î―1ÎąÏ€á―đϐ
ᾀ2Î―1ÎąÏ€ÎŋÎē
-ᾀ2Î―1ÎąÏ€Îŋϐ
ᾀ2Î―1ÎąÏ€ÏŒÎģ
ᾀ2Î―1ÎąÏ€á―đÎģ
ᾀ2Î―1ÎąÏ€ÎŋÎģ
@@ -993,8 +950,6 @@
ᾀ2Î―1ÎąÏƒÏ„Îĩá―·
ᾀ3Î―2ÎąÏƒÏ„ÎĩÎŊÎē
ᾀ3Î―2ÎąÏƒÏ„Îĩá―·Îē
-ᾀ3Î―2ÎąÏƒÏ„ÎĩÎŊϐ
-ᾀ3Î―2ÎąÏƒÏ„Îĩá―·Ï
ᾀ3Î―2ΎστÎĩÎđρ
ᾀ3Î―2á―ąÏƒÏ„ÎĩÎđρ
ᾀ3Î―2ÎąÏƒÏ„ÎĩÎŊρ
@@ -1213,10 +1168,7 @@
ᾀ2Î―1ÎĩÎŧá―ŧτρ
ᾀ2Î―1έΞÎē
ᾀ2Î―1á―ģΞÎē
-ᾀ2Î―1έΞϐ
-ᾀ2Î―1á―ģΞϐ
ᾀ2Î―1ÎĩΞÎē
-ᾀ2Î―1ÎĩΞϐ
ᾀ2Î―1έΞÎĩτ
ᾀ2Î―1á―ģΞÎĩτ
ᾀ2Î―1ÎĩΞέτ
@@ -1572,22 +1524,13 @@
ᾀ3Î―2ÎŋÎŧÎŋ
ᾀ2Î―1ÎŋΞÎēρÎŊ
ᾀ2Î―1ÎŋΞÎēÏá―·
-ᾀ2Î―1ÎŋΞϐρÎŊ
-ᾀ2Î―1ÎŋÎžÏÏá―·
ᾀ2Î―1ÎŋΞÎēρáŋ–
-ᾀ2Î―1ÎŋΞϐρáŋ–
ᾄ2Î―1ÎŋΞÎēρÎŋ
-ᾄ2Î―1ÎŋΞϐρÎŋ
ᾀ2Î―1όΞÎēρÎŋ
ᾀ2Î―1á―đΞÎēρÎŋ
-ᾀ2Î―1όΞϐρÎŋ
-ᾀ2Î―1á―đΞϐρÎŋ
ᾀ2Î―1όΞÎēρω
ᾀ2Î―1á―đΞÎēρω
-ᾀ2Î―1όΞϐρω
-ᾀ2Î―1á―đΞϐρω
ᾄ2Î―1ÎŋΞÎēÏÎą
-ᾄ2Î―1ÎŋÎžÏÏÎą
ᾀ2Î―1ÎŋΞÎŪÎŧ
ᾀ2Î―1ÎŋΞá―ĩÎŧ
ᾀ2Î―1ÎŋΞηÎŧ
@@ -1772,7 +1715,6 @@
.ÎģÎĩÏÎą2σ1φ
.ÎīÎą2σ1π
.ÎīÎđÎąÎžÏ†Îđ2σ1Îē
-.ÎīÎđÎąÎžÏ†Îđ2σ1ϐ
.ÎīÎđέ2Κ1ρÎŋ
.ÎīÎđá―ģ2Κ1ρÎŋ
.ÎīÎđÎĩ2Κ1ρό
@@ -1982,10 +1924,7 @@
Îīá―ŧ3σ2ÎĩÎŋ.
.ÎīυσÎĩÎŊ2σ1Îē
.ÎīυσÎĩá―·2σ1Îē
-.ÎīυσÎĩÎŊ2σ1ϐ
-.ÎīυσÎĩá―·2σ1ϐ
.ÎīυσÎĩÎđ2σ1Îē
-.ÎīυσÎĩÎđ2σ1ϐ
.Îīυσέ2Κ1
.Îīυσá―ģ2Κ1
.ÎīυσÎĩ2Κ1
@@ -2239,8 +2178,6 @@
ថ3Κ2ρá―ŧψ
ថ3Κ2ρύÎē
ថ3Κ2ρá―ŧÎē
-ថ3Κ2ρύϐ
-ថ3Κ2ρá―ŧϐ
ថ3Κ2ρύφ
ថ3Κ2ρá―ŧφ
ថ3Κ2ρυσ
@@ -2524,7 +2461,6 @@
ថπá―ģ2Κ1τρ
ថπÎĩ2Îū1
ថπÎĩ2σ1Îē
-ថπÎĩ2σ1ϐ
ថπÎđπρό2σ1Îļ
ថπÎđπρá―đ2σ1Îļ
ថπÎđπρÎŋ2σ1Îļ
@@ -2627,10 +2563,7 @@
.ÎšÏ…Î―á―đ2σ1Îą
.ÎšÏ…Î―ÏŒ2σ1Îē
.ÎšÏ…Î―á―đ2σ1Îē
-.ÎšÏ…Î―ÏŒ2σ1ϐ
-.ÎšÏ…Î―á―đ2σ1ϐ
.ÎšÏ…Î―Îŋ2σ1Îē
-.ÎšÏ…Î―Îŋ2σ1ϐ
.ÎšÏ…Î―ÏŒ2σ1Îŋ
.ÎšÏ…Î―á―đ2σ1Îŋ
.ÎšÏ…Î―Îŋ2σ1Îŋ
@@ -2827,10 +2760,7 @@
.πρÎŋ2σ1
.πρÎŋ3σ2ÎŽÎē
.πρÎŋ3σ2á―ąÎē
-.πρÎŋ3σ2Ύϐ
-.πρÎŋ3σ2á―ąÏ
.πρÎŋ3σ2ÎąÎē
-.πρÎŋ3σ2ÎąÏ
.πρÎŋσÎĩÎđ2σ1
.πρÎŋ3σ2ÎĩÎŊ
.πρÎŋ3σ2Îĩá―·
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-bg.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-bg.pat
index ceba66813a9..2a0a8a0f175 100644
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-bg.pat
+++ b/Master/texmf-dist/tex/context/patterns/mkii/lang-bg.pat
@@ -2,6892 +2,1666 @@
% for comment and copyright, see lang-bg.rme
-% used: а Ðą Ðē Ðģ Ðī Ðĩ Ðķ з Ðļ Ðđ К Ðŧ О Ð― Ðū Ðŋ Ņ€ Ņ Ņ‚ Ņƒ Ņ„ Ņ… Ņ† Ņ‡ Ņˆ Ņ‰ ŅŠ ŅŽ Ņ
+% used: а Ðą Ðē Ðģ Ðī Ðĩ Ðķ з Ðļ Ðđ К Ðŧ О Ð― Ðū Ðŋ Ņ€ Ņ Ņ‚ Ņƒ Ņ„ Ņ… Ņ† Ņ‡ Ņˆ Ņ‰ ŅŠ ŅŒ ŅŽ Ņ
\patterns{
-.Ð°Ð―Ņ‚Ðļа4
-.Ð°Ð―Ņ‚ÐļÐą4
-.Ð°Ð―Ņ‚ÐļÐē4
-.Ð°Ð―Ņ‚ÐļÐģ4
-.Ð°Ð―Ņ‚ÐļÐī4
-.Ð°Ð―Ņ‚ÐļÐĩ4
-.Ð°Ð―Ņ‚ÐļÐķ4
-.Ð°Ð―Ņ‚Ðļз4
-.Ð°Ð―Ņ‚ÐļÐļ4
-.Ð°Ð―Ņ‚ÐļÐđ4
-.Ð°Ð―Ņ‚ÐļК4
-.Ð°Ð―Ņ‚ÐļÐŧ4
-.Ð°Ð―Ņ‚ÐļО4
-.Ð°Ð―Ņ‚ÐļÐ―4
-.Ð°Ð―Ņ‚ÐļÐū4
-.Ð°Ð―Ņ‚ÐļÐŋ4
-.Ð°Ð―Ņ‚ÐļŅ€4
-.Ð°Ð―Ņ‚ÐļŅ4
-.Ð°Ð―Ņ‚ÐļŅ‚4
-.Ð°Ð―Ņ‚ÐļŅƒ4
-.Ð°Ð―Ņ‚ÐļŅ„4
-.Ð°Ð―Ņ‚ÐļŅ…4
-.Ð°Ð―Ņ‚ÐļŅ†4
-.Ð°Ð―Ņ‚ÐļŅˆ4
-.Ð°Ð―Ņ‚ÐļŅ‰4
-.Ð°Ð―Ņ‚ÐļŅŠ4
-.Ð°Ð―Ņ‚ÐļŅŽ4
-.Ð°Ð―Ņ‚ÐļŅ4
-.ÐąÐą8
-.ÐąÐē8
-.ÐąÐģ8
-.ÐąÐī8
-.ÐąÐķ8
-.ÐąÐ·8
-.ÐąÐš8
-.ÐąÐŧ8
-.ÐąÐž8
-.ÐąÐ―8
-.ÐąÐŋ8
-.ÐąŅ€8
-.ÐąŅ8
-.ÐąŅ‚8
-.ÐąŅ„8
-.ÐąŅ…8
-.ÐąŅ†8
-.ÐąŅ‡8
-.ÐąŅˆ8
-.ÐąŅ‰8
-.ÐēÐą8
-.ÐēÐąÐą8
-.ÐēÐąÐē8
-.ÐēÐąÐģ8
-.ÐēÐąÐī8
-.ÐēÐąÐķ8
-.ÐēÐąÐ·8
-.ÐēÐąÐš8
-.ÐēÐąÐŧ8
-.ÐēÐąÐž8
-.ÐēÐąÐ―8
-.ÐēÐąÐŋ8
-.ÐēÐąŅ€8
-.ÐēÐąŅ8
-.ÐēÐąŅ‚8
-.ÐēÐąŅ„8
-.ÐēÐąŅ…8
-.ÐēÐąŅ†8
-.ÐēÐąŅ‡8
-.ÐēÐąŅˆ8
-.ÐēÐąŅ‰8
-.ÐēÐē8
-.ÐēÐēÐą8
-.ÐēÐēÐē8
-.ÐēÐēÐģ8
-.ÐēÐēÐī8
-.ÐēÐēÐķ8
-.ÐēÐēз8
-.ÐēÐēК8
-.ÐēÐēÐŧ8
-.ÐēÐēО8
-.ÐēÐēÐ―8
-.ÐēÐēÐŋ8
-.ÐēÐēŅ€8
-.ÐēÐēŅ8
-.ÐēÐēŅ‚8
-.ÐēÐēŅ„8
-.ÐēÐēŅ…8
-.ÐēÐēŅ†8
-.ÐēÐēŅ‡8
-.ÐēÐēŅˆ8
-.ÐēÐēŅ‰8
-.ÐēÐģ8
-.ÐēÐģÐą8
-.ÐēÐģÐē8
-.ÐēÐģÐģ8
-.ÐēÐģÐī8
-.ÐēÐģÐķ8
-.ÐēÐģз8
-.ÐēÐģК8
-.ÐēÐģÐŧ8
-.ÐēÐģО8
-.ÐēÐģÐ―8
-.ÐēÐģÐŋ8
-.ÐēÐģŅ€8
-.ÐēÐģŅ8
-.ÐēÐģŅ‚8
-.ÐēÐģŅ„8
-.ÐēÐģŅ…8
-.ÐēÐģŅ†8
-.ÐēÐģŅ‡8
-.ÐēÐģŅˆ8
-.ÐēÐģŅ‰8
-.ÐēÐī8
-.ÐēÐīÐą8
-.ÐēÐīÐē8
-.ÐēÐīÐģ8
-.ÐēÐīÐī8
-.ÐēÐīÐķ8
-.ÐēÐīз8
-.ÐēÐīК8
-.ÐēÐīÐŧ8
-.ÐēÐīО8
-.ÐēÐīÐ―8
-.ÐēÐīÐŋ8
-.ÐēÐīŅ€8
-.ÐēÐīŅ8
-.ÐēÐīŅ‚8
-.ÐēÐīŅ„8
-.ÐēÐīŅ…8
-.ÐēÐīŅ†8
-.ÐēÐīŅ‡8
-.ÐēÐīŅˆ8
-.ÐēÐīŅ‰8
-.ÐēÐķ8
-.ÐēÐķÐą8
-.ÐēÐķÐē8
-.ÐēÐķÐģ8
-.ÐēÐķÐī8
-.ÐēÐķÐķ8
-.ÐēÐķз8
-.ÐēÐķК8
-.ÐēÐķÐŧ8
-.ÐēÐķО8
-.ÐēÐķÐ―8
-.ÐēÐķÐŋ8
-.ÐēÐķŅ€8
-.ÐēÐķŅ8
-.ÐēÐķŅ‚8
-.ÐēÐķŅ„8
-.ÐēÐķŅ…8
-.ÐēÐķŅ†8
-.ÐēÐķŅ‡8
-.ÐēÐķŅˆ8
-.ÐēÐķŅ‰8
-.Ðēз8
-.ÐēÐ·Ðą8
-.ÐēзÐē8
-.ÐēзÐģ8
-.ÐēзÐī8
-.ÐēзÐķ8
-.Ðēзз8
-.ÐēзК8
-.ÐēзÐŧ8
-.ÐēзО8
-.ÐēÐ·Ð―8
-.ÐēзÐŋ8
-.ÐēзŅ€8
-.ÐēзŅ8
-.ÐēзŅ‚8
-.ÐēзŅ„8
-.ÐēзŅ…8
-.ÐēзŅ†8
-.ÐēзŅ‡8
-.ÐēзŅˆ8
-.ÐēзŅ‰8
-.ÐēК8
-.ÐēÐšÐą8
-.ÐēКÐē8
-.ÐēКÐģ8
-.ÐēКÐī8
-.ÐēКÐķ8
-.ÐēКз8
-.ÐēКК8
-.ÐēКÐŧ8
-.ÐēКО8
-.ÐēÐšÐ―8
-.ÐēКÐŋ8
-.ÐēКŅ€8
-.ÐēКŅ8
-.ÐēКŅ‚8
-.ÐēКŅ„8
-.ÐēКŅ…8
-.ÐēКŅ†8
-.ÐēКŅ‡8
-.ÐēКŅˆ8
-.ÐēКŅ‰8
-.ÐēÐŧ8
-.ÐēÐŧÐą8
-.ÐēÐŧÐē8
-.ÐēÐŧÐģ8
-.ÐēÐŧÐī8
-.ÐēÐŧÐķ8
-.ÐēÐŧз8
-.ÐēÐŧК8
-.ÐēÐŧÐŧ8
-.ÐēÐŧО8
-.ÐēÐŧÐ―8
-.ÐēÐŧÐŋ8
-.ÐēÐŧŅ€8
-.ÐēÐŧŅ8
-.ÐēÐŧŅ‚8
-.ÐēÐŧŅ„8
-.ÐēÐŧŅ…8
-.ÐēÐŧŅ†8
-.ÐēÐŧŅ‡8
-.ÐēÐŧŅˆ8
-.ÐēÐŧŅ‰8
-.ÐēО8
-.ÐēÐžÐą8
-.ÐēОÐē8
-.ÐēОÐģ8
-.ÐēОÐī8
-.ÐēОÐķ8
-.ÐēОз8
-.ÐēОК8
-.ÐēОÐŧ8
-.ÐēОО8
-.ÐēÐžÐ―8
-.ÐēОÐŋ8
-.ÐēОŅ€8
-.ÐēОŅ8
-.ÐēОŅ‚8
-.ÐēОŅ„8
-.ÐēОŅ…8
-.ÐēОŅ†8
-.ÐēОŅ‡8
-.ÐēОŅˆ8
-.ÐēОŅ‰8
-.ÐēÐ―8
-.ÐēÐ―Ðą8
-.ÐēÐ―Ðē8
-.ÐēÐ―Ðģ8
-.ÐēÐ―Ðī8
-.ÐēÐ―Ðķ8
-.ÐēÐ―Ð·8
-.ÐēÐ―Ðš8
-.ÐēÐ―Ðŧ8
-.ÐēÐ―Ðž8
-.ÐēÐ―Ð―8
-.ÐēÐ―Ðŋ8
-.ÐēÐ―Ņ€8
-.ÐēÐ―Ņ8
-.ÐēÐ―Ņ‚8
-.ÐēÐ―Ņ„8
-.ÐēÐ―Ņ…8
-.ÐēÐ―Ņ†8
-.ÐēÐ―Ņ‡8
-.ÐēÐ―Ņˆ8
-.ÐēÐ―Ņ‰8
-.ÐēÐŋ8
-.ÐēÐŋÐą8
-.ÐēÐŋÐē8
-.ÐēÐŋÐģ8
-.ÐēÐŋÐī8
-.ÐēÐŋÐķ8
-.ÐēÐŋз8
-.ÐēÐŋК8
-.ÐēÐŋÐŧ8
-.ÐēÐŋО8
-.ÐēÐŋÐ―8
-.ÐēÐŋÐŋ8
-.ÐēÐŋŅ€8
-.ÐēÐŋŅ8
-.ÐēÐŋŅ‚8
-.ÐēÐŋŅ„8
-.ÐēÐŋŅ…8
-.ÐēÐŋŅ†8
-.ÐēÐŋŅ‡8
-.ÐēÐŋŅˆ8
-.ÐēÐŋŅ‰8
-.ÐēŅ€8
-.ÐēŅ€Ðą8
-.ÐēŅ€Ðē8
-.ÐēŅ€Ðģ8
-.ÐēŅ€Ðī8
-.ÐēŅ€Ðķ8
-.ÐēŅ€Ð·8
-.ÐēŅ€Ðš8
-.ÐēŅ€Ðŧ8
-.ÐēŅ€Ðž8
-.ÐēŅ€Ð―8
-.ÐēŅ€Ðŋ8
-.ÐēŅ€Ņ€8
-.ÐēŅ€Ņ8
-.ÐēŅ€Ņ‚8
-.ÐēŅ€Ņ„8
-.ÐēŅ€Ņ…8
-.ÐēŅ€Ņ†8
-.ÐēŅ€Ņ‡8
-.ÐēŅ€Ņˆ8
-.ÐēŅ€Ņ‰8
-.ÐēŅ8
-.ÐēŅÐą8
-.ÐēŅÐē8
-.ÐēŅÐģ8
-.ÐēŅÐī8
-.ÐēŅÐķ8
-.ÐēŅÐ·8
-.ÐēŅÐš8
-.ÐēŅÐŧ8
-.ÐēŅÐž8
-.ÐēŅÐ―8
-.ÐēŅÐŋ8
-.ÐēŅŅ€8
-.ÐēŅŅ8
-.ÐēŅŅ‚8
-.ÐēŅŅ„8
-.ÐēŅŅ…8
-.ÐēŅŅ†8
-.ÐēŅŅ‡8
-.ÐēŅŅˆ8
-.ÐēŅŅ‰8
-.ÐēŅ‚8
-.ÐēŅ‚Ðą8
-.ÐēŅ‚Ðē8
-.ÐēŅ‚Ðģ8
-.ÐēŅ‚Ðī8
-.ÐēŅ‚Ðķ8
-.ÐēŅ‚з8
-.ÐēŅ‚К8
-.ÐēŅ‚Ðŧ8
-.ÐēŅ‚О8
-.ÐēŅ‚Ð―8
-.ÐēŅ‚Ðŋ8
-.ÐēŅ‚Ņ€8
-.ÐēŅ‚Ņ8
-.ÐēŅ‚Ņ‚8
-.ÐēŅ‚Ņ„8
-.ÐēŅ‚Ņ…8
-.ÐēŅ‚Ņ†8
-.ÐēŅ‚Ņ‡8
-.ÐēŅ‚Ņˆ8
-.ÐēŅ‚Ņ‰8
-.ÐēŅ„8
-.ÐēŅ„Ðą8
-.ÐēŅ„Ðē8
-.ÐēŅ„Ðģ8
-.ÐēŅ„Ðī8
-.ÐēŅ„Ðķ8
-.ÐēŅ„з8
-.ÐēŅ„К8
-.ÐēŅ„Ðŧ8
-.ÐēŅ„О8
-.ÐēŅ„Ð―8
-.ÐēŅ„Ðŋ8
-.ÐēŅ„Ņ€8
-.ÐēŅ„Ņ8
-.ÐēŅ„Ņ‚8
-.ÐēŅ„Ņ„8
-.ÐēŅ„Ņ…8
-.ÐēŅ„Ņ†8
-.ÐēŅ„Ņ‡8
-.ÐēŅ„Ņˆ8
-.ÐēŅ„Ņ‰8
-.ÐēŅ…8
-.ÐēŅ…Ðą8
-.ÐēŅ…Ðē8
-.ÐēŅ…Ðģ8
-.ÐēŅ…Ðī8
-.ÐēŅ…Ðķ8
-.ÐēŅ…з8
-.ÐēŅ…К8
-.ÐēŅ…Ðŧ8
-.ÐēŅ…О8
-.ÐēŅ…Ð―8
-.ÐēŅ…Ðŋ8
-.ÐēŅ…Ņ€8
-.ÐēŅ…Ņ8
-.ÐēŅ…Ņ‚8
-.ÐēŅ…Ņ„8
-.ÐēŅ…Ņ…8
-.ÐēŅ…Ņ†8
-.ÐēŅ…Ņ‡8
-.ÐēŅ…Ņˆ8
-.ÐēŅ…Ņ‰8
-.ÐēŅ†8
-.ÐēŅ†Ðą8
-.ÐēŅ†Ðē8
-.ÐēŅ†Ðģ8
-.ÐēŅ†Ðī8
-.ÐēŅ†Ðķ8
-.ÐēŅ†Ð·8
-.ÐēŅ†Ðš8
-.ÐēŅ†Ðŧ8
-.ÐēŅ†Ðž8
-.ÐēŅ†Ð―8
-.ÐēŅ†Ðŋ8
-.ÐēŅ†Ņ€8
-.ÐēŅ†Ņ8
-.ÐēŅ†Ņ‚8
-.ÐēŅ†Ņ„8
-.ÐēŅ†Ņ…8
-.ÐēŅ†Ņ†8
-.ÐēŅ†Ņ‡8
-.ÐēŅ†Ņˆ8
-.ÐēŅ†Ņ‰8
-.ÐēŅ‡8
-.ÐēŅ‡Ðą8
-.ÐēŅ‡Ðē8
-.ÐēŅ‡Ðģ8
-.ÐēŅ‡Ðī8
-.ÐēŅ‡Ðķ8
-.ÐēŅ‡Ð·8
-.ÐēŅ‡Ðš8
-.ÐēŅ‡Ðŧ8
-.ÐēŅ‡Ðž8
-.ÐēŅ‡Ð―8
-.ÐēŅ‡Ðŋ8
-.ÐēŅ‡Ņ€8
-.ÐēŅ‡Ņ8
-.ÐēŅ‡Ņ‚8
-.ÐēŅ‡Ņ„8
-.ÐēŅ‡Ņ…8
-.ÐēŅ‡Ņ†8
-.ÐēŅ‡Ņ‡8
-.ÐēŅ‡Ņˆ8
-.ÐēŅ‡Ņ‰8
-.ÐēŅˆ8
-.ÐēŅˆÐą8
-.ÐēŅˆÐē8
-.ÐēŅˆÐģ8
-.ÐēŅˆÐī8
-.ÐēŅˆÐķ8
-.ÐēŅˆÐ·8
-.ÐēŅˆÐš8
-.ÐēŅˆÐŧ8
-.ÐēŅˆÐž8
-.ÐēŅˆÐ―8
-.ÐēŅˆÐŋ8
-.ÐēŅˆŅ€8
-.ÐēŅˆŅ8
-.ÐēŅˆŅ‚8
-.ÐēŅˆŅ„8
-.ÐēŅˆŅ…8
-.ÐēŅˆŅ†8
-.ÐēŅˆŅ‡8
-.ÐēŅˆŅˆ8
-.ÐēŅˆŅ‰8
-.ÐēŅ‰8
-.ÐēŅ‰Ðą8
-.ÐēŅ‰Ðē8
-.ÐēŅ‰Ðģ8
-.ÐēŅ‰Ðī8
-.ÐēŅ‰Ðķ8
-.ÐēŅ‰Ð·8
-.ÐēŅ‰Ðš8
-.ÐēŅ‰Ðŧ8
-.ÐēŅ‰Ðž8
-.ÐēŅ‰Ð―8
-.ÐēŅ‰Ðŋ8
-.ÐēŅ‰Ņ€8
-.ÐēŅ‰Ņ8
-.ÐēŅ‰Ņ‚8
-.ÐēŅ‰Ņ„8
-.ÐēŅ‰Ņ…8
-.ÐēŅ‰Ņ†8
-.ÐēŅ‰Ņ‡8
-.ÐēŅ‰Ņˆ8
-.ÐēŅ‰Ņ‰8
-.ÐēŅŠ2за4
-.ÐēŅŠ2Ð·Ðą4
-.ÐēŅŠ2зÐē4
-.ÐēŅŠ2зÐģ4
-.ÐēŅŠ2зÐī4
-.ÐēŅŠ2зÐĩ4
-.ÐēŅŠ5з4ÐĩÐŧ
-.ÐēŅŠ5з4Ðĩ5Ðŧа
-.ÐēŅŠ5з4Ðĩ5ÐŧŅŠŅ‚
-.ÐēŅŠ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зŅ‚4
-.ÐēŅŠ2зŅƒ4
-.ÐēŅŠ2зŅ„4
-.ÐēŅŠ2зŅ…4
-.ÐēŅŠ2зŅ†4
-.ÐēŅŠ2зŅ‡4
-.ÐēŅŠ2зŅˆ4
-.ÐēŅŠ2зŅ‰4
-.ÐēŅŠ2зŅŠ4
-.ÐēŅŠ2зŅŽ4
-.ÐēŅŠ2зŅ4
-.ÐģÐą8
-.ÐģÐē8
-.ÐģÐģ8
-.ÐģÐī8
-.ÐģÐķ8
-.Ðģз8
-.ÐģК8
-.ÐģÐŧ8
-.ÐģО8
-.ÐģÐ―8
-.ÐģÐŋ8
-.ÐģŅ€8
-.ÐģŅ8
-.ÐģŅ‚8
-.ÐģŅ„8
-.ÐģŅ…8
-.ÐģŅ†8
-.ÐģŅ‡8
-.ÐģŅˆ8
-.ÐģŅ‰8
-.ÐīÐą8
-.ÐīÐē8
-.ÐīÐģ8
-.ÐīÐī8
-.ÐīÐķ8
-.Ðīз8
-.ÐīК8
-.ÐīÐŧ8
-.ÐīО8
-.ÐīÐ―8
-.ÐīÐūа4
-.ÐīÐūÐą4
-.ÐīÐū4Ðą5ÐŧÐĩŅŅ‚
-.ÐīÐū4Ðą5Ņ€
-.ÐīÐū4Ðą6Ņ€Ðū
-.ÐīÐūÐē4
-.ÐīÐūÐģ4
-.ÐīÐū4Ðģ5О
-.ÐīÐūÐī4
-.ÐīÐūÐĩ4
-.ÐīÐūÐķ4
-.ÐīÐūз4
-.ÐīÐūÐļ4
-.ÐīÐūК4
-.ÐīÐū4К5Ðŧ
-.ÐīÐū4К5Ņ‚
-.ÐīÐūÐŧ4
-.ÐīÐū4Ðŧ5Ð―
-.ÐīÐū4Ðŧ5Ņ‡
-.ÐīÐūО4
-.ÐīÐūÐ―4
-.ÐīÐū4Ð―5Ðģ
-.ÐīÐū4Ð―5Ðī
-.ÐīÐū4Ð―5Ðķ
-.ÐīÐū4Ð―5К
-.ÐīÐū4Ð―5Ņ
-.ÐīÐū4Ð―5Ņ‡
-.ÐīÐūÐū4
-.ÐīÐūÐŋ4
-.ÐīÐūŅ€4
-.ÐīÐūŅ4
-.ÐīÐū4Ņ5Ņ‚Ðū
-.ÐīÐūŅ‚4
-.ÐīÐūŅƒ4
-.ÐīÐūŅ„4
-.ÐīÐūŅ…4
-.ÐīÐūŅ†4
-.ÐīÐūŅ‡4
-.ÐīÐūŅˆ4
-.ÐīÐūŅ‰4
-.ÐīÐūŅŠ4
-.ÐīÐūŅŽ4
-.ÐīÐūŅ4
-.ÐīÐŋ8
-.ÐīŅ€8
-.ÐīŅ8
-.ÐīŅ‚8
-.ÐīŅ„8
-.ÐīŅ…8
-.ÐīŅ†8
-.ÐīŅ‡8
-.ÐīŅˆ8
-.ÐīŅ‰8
-.ÐķÐą8
-.ÐķÐē8
-.ÐķÐģ8
-.ÐķÐī8
-.ÐķÐķ8
-.Ðķз8
-.ÐķК8
-.ÐķÐŧ8
-.ÐķО8
-.ÐķÐ―8
-.ÐķÐŋ8
-.ÐķŅ€8
-.ÐķŅ8
-.ÐķŅ‚8
-.ÐķŅ„8
-.ÐķŅ…8
-.ÐķŅ†8
-.ÐķŅ‡8
-.ÐķŅˆ8
-.ÐķŅ‰8
-.заа4
-.Ð·Ð°Ðą4
-.заÐē4
-.заÐģ4
-.заÐī4
-.за4Ðī5ÐģŅ€Ð°Ð―
-.за4Ðī5ÐģŅ€ÐūÐą
-.за4Ðī5КŅƒÐŧÐļŅ
-.за4Ðī5ОÐļÐ―
-.за4Ðī5ОÐūŅ€
-.за4Ðī5Ð―
-.заÐĩ4
-.заÐķ4
-.заз4
-.заÐļ4
-.заК4
-.заÐŧ4
-.за4Ðŧ5Ðŋ
-.заО4
-.Ð·Ð°Ð―4
-.за4Ð―5Ðī
-.заÐū4
-.заÐŋ4
-.за4Ðŋ5Ņ‚
-.заŅ€4
-.за4Ņ€5з
-.заŅ4
-.заŅ‚4
-.заŅƒ4
-.заŅ„4
-.заŅ…4
-.заŅ†4
-.заŅ‡4
-.заŅˆ4
-.заŅ‰4
-.заŅŠ4
-.заŅŽ4
-.заŅ4
-.Ð·Ðą8
-.зÐē8
-.зÐģ8
-.зÐī8
-.зÐķ8
-.зз8
-.зК8
-.зÐŧ8
-.зО8
-.Ð·Ð―8
-.зÐŋ8
-.зŅ€8
-.зŅ8
-.зŅ‚8
-.зŅ„8
-.зŅ…8
-.зŅ†8
-.зŅ‡8
-.зŅˆ8
-.зŅ‰8
-.Ðļза4
-.ÐļÐ·Ðą4
-.ÐļзÐē4
-.ÐļзÐģ4
-.ÐļзÐī4
-.ÐļзÐĩ4
-.ÐļзÐķ4
-.Ðļзз4
-.ÐļзÐļ4
-.ÐļзÐđ4
-.ÐļзК4
-.ÐļзÐŧ4
-.ÐļзО4
-.ÐļÐ·Ð―4
-.ÐļзÐū2ÐąÐą4
-.ÐļзÐū2ÐąÐē4
-.ÐļзÐū2ÐąÐģ4
-.ÐļзÐū2ÐąÐī4
-.ÐļзÐū2ÐąÐķ4
-.ÐļзÐū2ÐąÐ·4
-.ÐļзÐū4ÐąÐļ
-.ÐļзÐū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ÐąŅˆ4
-.ÐļзÐū2ÐąŅ‰4
-.ÐļзÐūŅ…К
-.ÐļзÐŋ4
-.ÐļзÐŋÐūа4
-.ÐļзÐŋÐūÐą4
-.ÐļзÐŋÐūÐē4
-.ÐļзÐŋÐūÐģ4
-.ÐļзÐŋÐūÐī4
-.ÐļзÐŋÐūÐĩ4
-.ÐļзÐŋÐūÐķ4
-.ÐļзÐŋÐūз4
-.ÐļзÐŋÐūÐļ4
-.ÐļзÐŋÐūÐđ4
-.ÐļзÐŋÐūК4
-.ÐļзÐŋÐūÐŧ4
-.ÐļзÐŋÐū4Ðŧ5з
-.ÐļзÐŋÐūО4
-.ÐļзÐŋÐū4О5Ðŋ
-.ÐļзÐŋÐūÐ―4
-.ÐļзÐŋÐūÐū4
-.ÐļзÐŋÐūÐŋ4
-.ÐļзÐŋÐūŅ€4
-.ÐļзÐŋÐū4Ņ€5Ņ‚
-.ÐļзÐŋÐūŅ4
-.ÐļзÐŋÐūŅ‚4
-.ÐļзÐŋÐūŅƒ4
-.ÐļзÐŋÐūŅ„4
-.ÐļзÐŋÐūŅ…4
-.ÐļзÐŋÐūŅ†4
-.ÐļзÐŋÐūŅ‡4
-.ÐļзÐŋÐūŅˆ4
-.ÐļзÐŋÐūŅ‰4
-.ÐļзÐŋÐūŅŠ4
-.ÐļзÐŋÐūŅŽ4
-.ÐļзÐŋÐūŅ4
-.ÐļзŅ€4
-.ÐļзŅ4
-.ÐļзŅ‚4
-.ÐļзŅƒ4
-.ÐļзŅ„4
-.ÐļзŅ…4
-.ÐļзŅ†4
-.ÐļзŅ‡4
-.ÐļзŅˆ4
-.ÐļзŅ‰4
-.ÐļзŅŠ4
-.ÐļзŅŽ4
-.ÐļзŅ4
-.ÐšÐą8
-.КÐē8
-.КÐģ8
-.КÐī8
-.КÐķ8
-.Кз8
-.КК8
-.КÐŧ8
-.КО8
-.ÐšÐ―8
-.КÐŋ8
-.КŅ€8
-.КŅ8
-.КŅ‚8
-.КŅ„8
-.КŅ…8
-.КŅ†8
-.КŅ‡8
-.КŅˆ8
-.КŅ‰8
-.ÐŧÐą8
-.ÐŧÐē8
-.ÐŧÐģ8
-.ÐŧÐī8
-.ÐŧÐķ8
-.Ðŧз8
-.ÐŧК8
-.ÐŧÐŧ8
-.ÐŧО8
-.ÐŧÐ―8
-.ÐŧÐŋ8
-.ÐŧŅ€8
-.ÐŧŅ8
-.ÐŧŅ‚8
-.ÐŧŅ„8
-.ÐŧŅ…8
-.ÐŧŅ†8
-.ÐŧŅ‡8
-.ÐŧŅˆ8
-.ÐŧŅ‰8
-.ÐžÐą8
-.ОÐē8
-.ОÐģ8
-.ОÐī8
-.ОÐķ8
-.Оз8
-.ОК8
-.ОÐŧ8
-.ОО8
-.ÐžÐ―8
-.ОÐŋ8
-.ОŅ€8
-.ОŅ8
-.ОŅ‚8
-.ОŅ„8
-.ОŅ…8
-.ОŅ†8
-.ОŅ‡8
-.ОŅˆ8
-.ОŅ‰8
-.Ð―Ð°Ð°4
-.Ð―Ð°Ðą4
-.Ð―Ð°Ðē4
-.Ð―Ð°Ðģ4
-.Ð―Ð°4Ðģ5ÐŧÐū
-.Ð―Ð°2ÐīÐą4
-.Ð―Ð°2ÐīÐē4
-.Ð―Ð°2ÐīÐģ4
-.Ð―Ð°2ÐīÐī4
-.Ð―Ð°2Ðī3Ðķ4
-.Ð―Ð°3Ðī4ÐķаÐē
-.Ð―Ð°3Ðī4ÐķаŅ
-.Ð―Ð°2Ðīз4
-.Ð―Ð°4ÐīÐļ4ÐģŅ€
-.Ð―Ð°2ÐīК4
-.Ð―Ð°2ÐīÐŧ4
-.Ð―Ð°2ÐīО4
-.Ð―Ð°2ÐīÐ―4
-.Ð―Ð°2ÐīÐŋ4
-.Ð―Ð°2ÐīŅ€4
-.Ð―Ð°Ðī4Ņ€Ð°Ņ‰
-.Ð―Ð°Ðī4Ņ€ÐĩÐą
-.Ð―Ð°Ðī4Ņ€ÐĩО
-.Ð―Ð°Ðī4Ņ€ÐūÐą
-.Ð―Ð°Ðī4Ņ€ŅƒŅ
-.Ð―Ð°Ðī4Ņ€ŅŠÐ―
-.Ð―Ð°Ðī4Ņ€ŅÐž
-.Ð―Ð°2ÐīŅ4
-.Ð―Ð°2ÐīŅ‚4
-.Ð―Ð°2ÐīŅ„4
-.Ð―Ð°2ÐīŅ…4
-.Ð―Ð°2ÐīŅ†4
-.Ð―Ð°2ÐīŅ‡4
-.Ð―Ð°2ÐīŅˆ4
-.Ð―Ð°2ÐīŅ‰4
-.Ð―Ð°Ðĩ4
-.Ð―Ð°Ðķ4
-.Ð―Ð°Ð·4
-.Ð―Ð°Ðļ4
-.Ð―Ð°Ðš4
-.Ð―Ð°Ðŧ4
-.Ð―Ð°Ðž4
-.Ð―Ð°Ð―4
-.Ð―Ð°Ðū4
-.Ð―Ð°Ðŋ4
-.Ð―Ð°Ņ€4
-.Ð―Ð°4Ņ€5Ðģ
-.Ð―Ð°4Ņ€5К
-.Ð―Ð°Ņ4
-.Ð―Ð°Ņ‚4
-.Ð―Ð°Ņƒ4
-.Ð―Ð°Ņ„4
-.Ð―Ð°Ņ…4
-.Ð―Ð°Ņ†4
-.Ð―Ð°Ņ‡4
-.Ð―Ð°Ņˆ4
-.Ð―Ð°Ņ‰4
-.Ð―Ð°ŅŠ4
-.Ð―Ð°ŅŽ4
-.Ð―Ð°Ņ4
-.Ð―Ðą8
-.Ð―Ðē8
-.Ð―Ðģ8
-.Ð―Ðī8
-.Ð―Ðķ8
-.Ð―Ð·8
-.Ð―Ðš8
-.Ð―Ðŧ8
-.Ð―Ðž8
-.Ð―Ð―8
-.Ð―Ðŋ8
-.Ð―Ņ€8
-.Ð―Ņ8
-.Ð―Ņ‚8
-.Ð―Ņ„8
-.Ð―Ņ…8
-.Ð―Ņ†8
-.Ð―Ņ‡8
-.Ð―Ņˆ8
-.Ð―Ņ‰8
-.Ðūа4
-.Ðūа5зÐļŅ
-.ÐūÐąÐ°4ÐģÐ―
-.ÐūÐąÐą4
-.ÐūÐąÐē4
-.ÐūÐąÐģ4
-.ÐūÐąÐī4
-.ÐūÐąÐķ4
-.ÐūÐąÐ·4
-.ÐūÐąÐļ4ÐģŅ€
-.ÐūÐąÐš4
-.ÐūÐąÐŧ4
-.ÐūÐą4ÐŧаÐģÐū
-.ÐūÐą4ÐŧаÐķ
-.ÐūÐąÐž4
-.ÐūÐąÐ―4
-.ÐūÐąÐū4ÐąŅ‰
-.ÐūÐąÐūз4Ð―
-.ÐūÐąÐūз4Ņ€
-.ÐūÐąÐūŅ4Ð―
-.ÐūÐąÐūŅÐūÐą
-.ÐūÐąÐŋ4
-.ÐūÐąŅ€4
-.ÐūÐą4Ņ€ÐĩО
-.ÐūÐą4Ņ€ŅƒÐŧ
-.ÐūÐą4Ņ€ŅŠŅ
-.ÐūÐąŅ4
-.ÐūÐąŅ‚4
-.ÐūÐąŅƒ4зÐī
-.ÐūÐąŅƒŅÐŧ
-.ÐūÐąŅ„4
-.ÐūÐąŅ…4
-.ÐūÐąŅ†4
-.ÐūÐąŅ‡4
-.ÐūÐąŅˆ4
-.ÐūÐąŅ‰4
-.ÐūÐą4Ņ‰5Ð―
-.ÐūÐąŅ4ŅÐ―
-.ÐūÐē4
-.ÐūÐē4ÐīÐūÐē
-.ÐūÐē4ÐŧаÐī
-.ÐūÐē5Ņ†
-.ÐūÐē5Ņ‡
-.ÐūÐģ4
-.ÐūÐģ5Ð―
-.ÐūÐī4
-.ÐūÐĩ4
-.ÐūÐķ4
-.Ðūз4
-.ÐūзÐī4Ņ€
-.ÐūÐļ4
-.ÐūÐđ4
-.ÐūК4
-.ÐūК5ŅÐļ
-.ÐūК5Ņ‚
-.ÐūÐŧ4
-.ÐūÐŧ5Ņ‚аŅ€
-.ÐūО4
-.ÐūО5ÐŧÐĩŅ‚
-.ÐūО5Ð―Ðļ
-.ÐūÐ―4
-.ÐūÐ―5ÐąÐ°Ņˆ
-.ÐūÐ―5ÐīŅƒÐŧ
-.ÐūÐ―5зÐļ
-.ÐūÐ―5КÐū
-.ÐūÐ―5ÐŧаÐđÐ―
-.ÐūÐ―5Ņ‚Ðū
-.ÐūÐū4
-.ÐūÐŋ4
-.ÐūÐŋ5Ņ‚
-.ÐūÐŋ5Ņ†Ðļ
-.ÐūŅ€4
-.ÐūŅ€5Ðą
-.ÐūŅ€5Ðģ
-.ÐūŅ€5Ðī
-.ÐūŅ€5К
-.ÐūŅ€5Ðŧ
-.ÐūŅ€5Ð―
-.ÐūŅ€5Ņ‚
-.ÐūŅ€5Ņ„
-.ÐūŅ€5Ņ…
-.ÐūŅ4
-.ÐūŅ5ÐžÐ°Ð―
-.ÐūŅ5ОÐļÐ―
-.ÐūŅ5ОÐļŅ†
-.ÐūŅ5ОÐļŅ‡
-.ÐūŅ5ОÐū
-.ÐūŅ5Ņ‚Ðĩ
-.ÐūŅ5Ņ‚Ņ€Ðū
-.ÐūŅ5Ņ†Ðļ
-.ÐūŅ‚Ðą4
-.ÐūŅ‚Ðē4
-.ÐūŅ‚Ðģ4
-.ÐūŅ‚Ðī4
-.ÐūŅ‚Ðķ4
-.ÐūŅ‚з4
-.ÐūŅ‚Ðļ4Ðē
-.ÐūŅ‚Ðļ4Ðī
-.ÐūŅ‚К4
-.ÐūŅ‚Ðŧ4
-.ÐūŅ‚О4
-.ÐūŅ‚Ð―4
-.ÐūŅ‚Ðŋ4
-.ÐūŅ‚Ņ€4
-.ÐūŅ‚Ņ4
-.ÐūŅ‚Ņ‚4
-.ÐūŅ‚Ņƒ4Ņ‡
-.ÐūŅ‚Ņ„4
-.ÐūŅ‚Ņ…4
-.ÐūŅ‚Ņ†4
-.ÐūŅ‚Ņ‡4
-.ÐūŅ‚Ņˆ4
-.ÐūŅ‚Ņ‰4
-.ÐūŅƒ4
-.ÐūŅ„4
-.ÐūŅ…4
-.ÐūŅ…5Ðēа
-.ÐūŅ…5Ка
-.ÐūŅ…5Ð―Ð°
-.ÐūŅ†4
-.ÐūŅ‡4
-.ÐūŅˆ4
-.ÐūŅ‰4
-.ÐūŅŠ4
-.ÐūŅŽ4
-.ÐūŅ4
-.ÐŋÐą8
-.ÐŋÐē8
-.ÐŋÐģ8
-.ÐŋÐī8
-.ÐŋÐķ8
-.Ðŋз8
-.ÐŋК8
-.ÐŋÐŧ8
-.ÐŋО8
-.ÐŋÐ―8
-.ÐŋÐūа4
-.ÐŋÐūÐą4
-.ÐŋÐūÐē4
-.ÐŋÐūÐģ4
-.ÐŋÐū2ÐīÐą4
-.ÐŋÐū2ÐīÐē4
-.ÐŋÐūÐī4ÐēÐūŅƒ
-.ÐŋÐū2ÐīÐģ4
-.ÐŋÐū2ÐīÐī4
-.ÐŋÐū2Ðī3Ðķ4
-.ÐŋÐū3Ðī4ÐķаÐē
-.ÐŋÐū3Ðī4ÐķŅƒŅ€
-.ÐŋÐū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ÐīÐŋ4
-.ÐŋÐū2ÐīŅ€4
-.ÐŋÐūÐī4Ņ€ÐĩО
-.ÐŋÐūÐī4Ņ€ŅŠÐ―
-.ÐŋÐūÐī4Ņ€ŅŠÐŋ
-.ÐŋÐūÐī4Ņ€ŅÐž
-.ÐŋÐū2ÐīŅ4
-.ÐŋÐū2ÐīŅ‚4
-.ÐŋÐū2ÐīŅƒ4ÐŋŅ€
-.ÐŋÐū2ÐīŅƒ4Ņ‡
-.ÐŋÐū2ÐīŅ„4
-.ÐŋÐū2ÐīŅ…4
-.ÐŋÐū2ÐīŅ†4
-.ÐŋÐū2ÐīŅ‡4
-.ÐŋÐū2ÐīŅˆ4
-.ÐŋÐū2ÐīŅ‰4
-.ÐŋÐūÐĩ4
-.ÐŋÐūÐķ4
-.ÐŋÐūз4
-.ÐŋÐūзаа4
-.ÐŋÐūÐ·Ð°Ðą4
-.ÐŋÐūзаÐē4
-.ÐŋÐūзаÐģ4
-.ÐŋÐūзаÐī4
-.ÐŋÐūзаÐĩ4
-.ÐŋÐūзаÐķ4
-.ÐŋÐūзаз4
-.ÐŋÐūзаÐļ4
-.ÐŋÐūзаÐđ4
-.ÐŋÐūзаК4
-.ÐŋÐūзаÐŧ4
-.ÐŋÐūзаО4
-.ÐŋÐūÐ·Ð°Ð―4
-.ÐŋÐūзаÐū4
-.ÐŋÐūзаÐŋ4
-.ÐŋÐūзаŅ€4
-.ÐŋÐūзаŅ4
-.ÐŋÐūзаŅ‚4
-.ÐŋÐūзаŅƒ4
-.ÐŋÐūзаŅ„4
-.ÐŋÐūзаŅ…4
-.ÐŋÐūзаŅ†4
-.ÐŋÐūзаŅ‡4
-.ÐŋÐūзаŅˆ4
-.ÐŋÐūзаŅ‰4
-.ÐŋÐūзаŅŠ4
-.ÐŋÐūзаŅŽ4
-.ÐŋÐūзаŅ4
-.ÐŋÐūÐļ4
-.ÐŋÐūÐļ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зО4
-.ÐŋÐūÐļ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зŅ‰4
-.ÐŋÐūÐļ2зŅŠ4
-.ÐŋÐūÐļ2зŅŽ4
-.ÐŋÐūÐļ2зŅ4
-.ÐŋÐūÐđ4
-.ÐŋÐūК4
-.ÐŋÐūÐŧ4
-.ÐŋÐū4Ðŧ5з
-.ÐŋÐū4Ðŧ5К
-.ÐŋÐū4Ðŧ5Ņ
-.ÐŋÐūО4
-.ÐŋÐū4О5Ðŋ
-.ÐŋÐūÐ―4
-.ÐŋÐūÐ―Ð°Ð°4
-.ÐŋÐūÐ―Ð°Ðą4
-.ÐŋÐūÐ―Ð°Ðē4
-.ÐŋÐūÐ―Ð°Ðģ4
-.ÐŋÐūÐ―Ð°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ÐīŅ€4
-.ÐŋÐūÐ―Ð°Ðī4Ņ€Ð°Ņ‰
-.ÐŋÐūÐ―Ð°Ðī4Ņ€ÐĩÐą
-.ÐŋÐūÐ―Ð°Ðī4Ņ€ÐĩО
-.ÐŋÐūÐ―Ð°Ðī4Ņ€ÐūÐą
-.ÐŋÐūÐ―Ð°Ðī4Ņ€ŅƒŅ
-.ÐŋÐūÐ―Ð°Ðī4Ņ€ŅŠÐ―
-.ÐŋÐūÐ―Ð°Ðī4Ņ€ŅÐž
-.ÐŋÐūÐ―Ð°2ÐīŅ4
-.ÐŋÐūÐ―Ð°2ÐīŅ‚4
-.ÐŋÐūÐ―Ð°2ÐīŅ„4
-.ÐŋÐūÐ―Ð°2ÐīŅ…4
-.ÐŋÐūÐ―Ð°2ÐīŅ†4
-.ÐŋÐūÐ―Ð°2ÐīŅ‡4
-.ÐŋÐūÐ―Ð°2ÐīŅˆ4
-.ÐŋÐūÐ―Ð°2ÐīŅ‰4
-.ÐŋÐūÐ―Ð°Ðĩ4
-.ÐŋÐūÐ―Ð°Ðķ4
-.ÐŋÐūÐ―Ð°Ð·4
-.ÐŋÐūÐ―Ð°Ðļ4
-.ÐŋÐūÐ―Ð°Ðđ4
-.ÐŋÐūÐ―Ð°Ðš4
-.ÐŋÐūÐ―Ð°Ðŧ4
-.ÐŋÐūÐ―Ð°Ðž4
-.ÐŋÐūÐ―Ð°Ð―4
-.ÐŋÐūÐ―Ð°Ðū4
-.ÐŋÐūÐ―Ð°Ðŋ4
-.ÐŋÐūÐ―Ð°Ņ€4
-.ÐŋÐūÐ―Ð°Ņ4
-.ÐŋÐūÐ―Ð°Ņ‚4
-.ÐŋÐūÐ―Ð°Ņƒ4
-.ÐŋÐūÐ―Ð°Ņ„4
-.ÐŋÐūÐ―Ð°Ņ…4
-.ÐŋÐūÐ―Ð°Ņ†4
-.ÐŋÐūÐ―Ð°Ņ‡4
-.ÐŋÐūÐ―Ð°Ņˆ4
-.ÐŋÐūÐ―Ð°Ņ‰4
-.ÐŋÐūÐ―Ð°ŅŠ4
-.ÐŋÐūÐ―Ð°ŅŽ4
-.ÐŋÐūÐ―Ð°Ņ4
-.ÐŋÐū4Ð―5Ņ‚
-.ÐŋÐūÐūа4
-.ÐŋÐūÐū4ÐąÐ°Ðī
-.ÐŋÐūÐū4ÐąÐ°ÐķÐī
-.ÐŋÐūÐū2ÐąÐą4
-.ÐŋÐūÐū2ÐąÐē4
-.ÐŋÐūÐū2ÐąÐģ4
-.ÐŋÐūÐū2ÐąÐī4
-.ÐŋÐūÐū2ÐąÐķ4
-.ÐŋÐūÐū2ÐąÐ·4
-.ÐŋÐūÐū2ÐąÐļ4ÐģŅ€
-.ÐŋÐūÐū4ÐąÐļК
-.ÐŋÐūÐū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ÐąŅˆ4
-.ÐŋÐūÐū2ÐąŅ‰4
-.ÐŋÐūÐū2ÐąŅ4ŅÐ―
-.ÐŋÐūÐūÐē4
-.ÐŋÐūÐūÐģ4
-.ÐŋÐūÐūÐī4
-.ÐŋÐūÐūÐĩ4
-.ÐŋÐūÐūÐķ4
-.ÐŋÐūÐūз4
-.ÐŋÐūÐūÐļ4
-.ÐŋÐūÐūÐđ4
-.ÐŋÐūÐūК4
-.ÐŋÐūÐūÐŧ4
-.ÐŋÐūÐūО4
-.ÐŋÐūÐūÐ―4
-.ÐŋÐūÐūÐū4
-.ÐŋÐūÐūÐŋ4
-.ÐŋÐūÐūŅ€4
-.ÐŋÐūÐūŅ4
-.ÐŋÐūÐū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Ņ‚Ņ4
-.ÐŋÐūÐū2Ņ‚Ņ‚4
-.ÐŋÐūÐū2Ņ‚Ņƒ4Ņ‡
-.ÐŋÐūÐū2Ņ‚Ņ„4
-.ÐŋÐūÐū2Ņ‚Ņ…4
-.ÐŋÐūÐū2Ņ‚Ņ†4
-.ÐŋÐūÐū2Ņ‚Ņ‡4
-.ÐŋÐūÐū2Ņ‚Ņˆ4
-.ÐŋÐūÐū2Ņ‚Ņ‰4
-.ÐŋÐūÐūŅƒ4
-.ÐŋÐūÐūŅ„4
-.ÐŋÐūÐūŅ…4
-.ÐŋÐūÐūŅ†4
-.ÐŋÐūÐūŅ‡4
-.ÐŋÐūÐūŅˆ4
-.ÐŋÐūÐūŅ‰4
-.ÐŋÐūÐū4Ņ‰5Ņ€
-.ÐŋÐūÐūŅŠ4
-.ÐŋÐūÐūŅŽ4
-.ÐŋÐūÐūŅ4
-.ÐŋÐūÐŋ4Ņ€Ðļа4
-.ÐŋÐūÐŋ4Ņ€ÐļÐą4
-.ÐŋÐūÐŋ4Ņ€ÐļÐē4
-.ÐŋÐūÐŋ4Ņ€ÐļÐģ4
-.ÐŋÐūÐŋ4Ņ€ÐļÐī4
-.ÐŋÐūÐŋ4Ņ€ÐļÐĩ4
-.ÐŋÐūÐŋ4Ņ€ÐļÐķ4
-.ÐŋÐūÐŋ4Ņ€Ðļз4
-.ÐŋÐūÐŋ4Ņ€ÐļÐļ4
-.ÐŋÐūÐŋ4Ņ€ÐļÐđ4
-.ÐŋÐūÐŋ4Ņ€ÐļК4
-.ÐŋÐūÐŋ4Ņ€ÐļÐŧ4
-.ÐŋÐūÐŋ4Ņ€ÐļО4
-.ÐŋÐūÐŋ4Ņ€ÐļÐ―4
-.ÐŋÐūÐŋ4Ņ€ÐļÐū4
-.ÐŋÐūÐŋ4Ņ€ÐļÐŋ4
-.ÐŋÐūÐŋ4Ņ€ÐļŅ€4
-.ÐŋÐūÐŋ4Ņ€ÐļŅ4
-.ÐŋÐūÐŋ4Ņ€ÐļŅ‚4
-.ÐŋÐūÐŋ4Ņ€ÐļŅƒ4
-.ÐŋÐūÐŋ4Ņ€ÐļŅ„4
-.ÐŋÐūÐŋ4Ņ€ÐļŅ…4
-.ÐŋÐūÐŋ4Ņ€ÐļŅ†4
-.ÐŋÐūÐŋ4Ņ€ÐļŅ‡4
-.ÐŋÐūÐŋ4Ņ€ÐļŅˆ4
-.ÐŋÐūÐŋ4Ņ€ÐļŅ‰4
-.ÐŋÐūÐŋ4Ņ€ÐļŅŠ4
-.ÐŋÐūÐŋ4Ņ€ÐļŅŽ4
-.ÐŋÐūÐŋ4Ņ€ÐļŅ4
-.ÐŋÐūŅ€4
-.ÐŋÐū4Ņ€5Ð―
-.ÐŋÐū4Ņ€5Ņ‚
-.ÐŋÐū4Ņ€5Ņ„
-.ÐŋÐū4Ņ€5Ņ†
-.ÐŋÐūŅ4
-.ÐŋÐū4Ņ4Ņ‚
-.ÐŋÐūŅ‚4
-.ÐŋÐū4Ņ‚5Ð―
-.ÐŋÐūŅƒ4
-.ÐŋÐūŅ„4
-.ÐŋÐūŅ…4
-.ÐŋÐūŅ†4
-.ÐŋÐūŅˆ4
-.ÐŋÐūŅ‰4
-.ÐŋÐūŅŠ4
-.ÐŋÐūŅŽ4
-.ÐŋÐūŅ4
-.ÐŋÐŋ8
-.ÐŋŅ€8
-.ÐŋŅ€Ðĩа4
-.ÐŋŅ€ÐĩÐą4
-.ÐŋŅ€ÐĩÐē4
-.ÐŋŅ€ÐĩÐēŅŠ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зО4
-.ÐŋŅ€ÐĩÐēŅŠ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зŅ‰4
-.ÐŋŅ€ÐĩÐēŅŠ2зŅŠ4
-.ÐŋŅ€ÐĩÐēŅŠ2зŅŽ4
-.ÐŋŅ€ÐĩÐēŅŠ2зŅ4
-.ÐŋŅ€ÐĩÐģ4
-.ÐŋŅ€Ðĩ2ÐīÐą4
-.ÐŋŅ€Ðĩ2ÐīÐē4
-.ÐŋŅ€Ðĩ2ÐīÐģ4
-.ÐŋŅ€Ðĩ2ÐīÐī4
-.ÐŋŅ€Ðĩ2ÐīÐķ4
-.ÐŋŅ€Ðĩ2Ðīз4
-.ÐŋŅ€Ðĩ2ÐīÐļ4Ð·Ðą4
-.ÐŋŅ€Ðĩ2ÐīÐļ4зÐē4
-.ÐŋŅ€Ðĩ2ÐīÐļ4Ð―Ņ„аŅ€
-.ÐŋŅ€Ðĩ2ÐīÐļ4ŅŅ‚ÐūŅ€
-.ÐŋŅ€Ðĩ2ÐīК4
-.ÐŋŅ€Ðĩ2ÐīÐŧ4
-.ÐŋŅ€Ðĩ2ÐīО4
-.ÐŋŅ€Ðĩ2ÐīÐ―4
-.ÐŋŅ€Ðĩ2ÐīÐū4ÐąÐĩÐī
-.ÐŋŅ€Ðĩ2ÐīÐū4КŅ‚ÐūО
-.ÐŋŅ€Ðĩ2ÐīÐūÐŋ4Ņ€ÐĩÐī
-.ÐŋŅ€Ðĩ2ÐīÐūŅ4ÐēÐūÐą
-.ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚а4
-.ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚Ðą4
-.ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚Ðē4
-.ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚Ðģ4
-.ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚Ðī4
-.ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚Ðĩ4
-.ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚Ðķ4
-.ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚з4
-.ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚Ðļ4
-.ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚Ðđ4
-.ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚К4
-.ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚Ðŧ4
-.ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚О4
-.ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚Ð―4
-.ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚Ðū4
-.ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚Ðŋ4
-.ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚Ņ€4
-.ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚Ņ4
-.ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚Ņ‚4
-.ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚Ņƒ4
-.ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚Ņ„4
-.ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚Ņ…4
-.ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚Ņ†4
-.ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚Ņ‡4
-.ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚Ņˆ4
-.ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚Ņ‰4
-.ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚ŅŠ4
-.ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚ŅŽ4
-.ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚Ņ4
-.ÐŋŅ€Ðĩ2ÐīÐūŅ…4Ņ€
-.ÐŋŅ€Ðĩ2ÐīÐŋ4
-.ÐŋŅ€Ðĩ2ÐīŅ€4
-.ÐŋŅ€ÐĩÐī4Ņ€ÐĩО
-.ÐŋŅ€Ðĩ2Ðī4Ņ€ÐĩŅˆ
-.ÐŋŅ€ÐĩÐī4Ņ€ŅÐž
-.ÐŋŅ€Ðĩ2ÐīŅ4
-.ÐŋŅ€Ðĩ2ÐīŅ‚4
-.ÐŋŅ€Ðĩ2ÐīŅƒ4ÐąÐĩÐī
-.ÐŋŅ€Ðĩ2ÐīŅƒ4ÐąÐĩÐķÐī
-.ÐŋŅ€Ðĩ2ÐīŅƒÐģаÐī
-.ÐŋŅ€Ðĩ2ÐīŅƒÐžÐļŅ
-.ÐŋŅ€Ðĩ2ÐīŅƒÐžÐļŅˆ
-.ÐŋŅ€Ðĩ2ÐīŅƒ4ÐŋŅ€
-.ÐŋŅ€Ðĩ2ÐīŅƒŅÐĩ
-.ÐŋŅ€Ðĩ2ÐīŅƒŅ4Ðŧ
-.ÐŋŅ€Ðĩ2ÐīŅƒ4Ņ‚Ņ€ÐļÐ―
-.ÐŋŅ€Ðĩ2ÐīŅƒ4Ņ‡ÐļÐŧ
-.ÐŋŅ€Ðĩ2ÐīŅ„4
-.ÐŋŅ€Ðĩ2ÐīŅ…4
-.ÐŋŅ€Ðĩ2ÐīŅ†4
-.ÐŋŅ€Ðĩ2ÐīŅ‡4
-.ÐŋŅ€Ðĩ2ÐīŅˆ4
-.ÐŋŅ€Ðĩ2ÐīŅ‰4
-.ÐŋŅ€Ðĩ2ÐīŅ4Ðē
-.ÐŋŅ€Ðĩ2ÐīŅ4ŅŅ‚
-.ÐŋŅ€ÐĩÐĩ4
-.ÐŋŅ€ÐĩÐķ4
-.ÐŋŅ€Ðĩ4Ðķ5Ðī
-.ÐŋŅ€Ðĩзаа4
-.ÐŋŅ€ÐĩÐ·Ð°Ðą4
-.ÐŋŅ€ÐĩзаÐē4
-.ÐŋŅ€ÐĩзаÐģ4
-.ÐŋŅ€ÐĩзаÐī4
-.ÐŋŅ€ÐĩзаÐĩ4
-.ÐŋŅ€ÐĩзаÐķ4
-.ÐŋŅ€Ðĩзаз4
-.ÐŋŅ€ÐĩзаÐļ4
-.ÐŋŅ€ÐĩзаÐđ4
-.ÐŋŅ€ÐĩзаК4
-.ÐŋŅ€ÐĩзаÐŧ4
-.ÐŋŅ€ÐĩзаО4
-.ÐŋŅ€ÐĩÐ·Ð°Ð―4
-.ÐŋŅ€ÐĩзаÐū4
-.ÐŋŅ€ÐĩзаÐŋ4
-.ÐŋŅ€ÐĩзаŅ€4
-.ÐŋŅ€ÐĩзаŅ4
-.ÐŋŅ€ÐĩзаŅ‚4
-.ÐŋŅ€ÐĩзаŅƒ4
-.ÐŋŅ€ÐĩзаŅ„4
-.ÐŋŅ€ÐĩзаŅ…4
-.ÐŋŅ€ÐĩзаŅ†4
-.ÐŋŅ€ÐĩзаŅ‡4
-.ÐŋŅ€ÐĩзаŅˆ4
-.ÐŋŅ€ÐĩзаŅ‰4
-.ÐŋŅ€ÐĩзаŅŠ4
-.ÐŋŅ€ÐĩзаŅŽ4
-.ÐŋŅ€ÐĩзаŅ4
-.ÐŋŅ€Ðĩ2Ð·Ðą4
-.ÐŋŅ€Ðĩ2зÐē4
-.ÐŋŅ€Ðĩ2зÐģ4
-.ÐŋŅ€Ðĩ2зÐī4
-.ÐŋŅ€Ðĩ2зÐķ4
-.ÐŋŅ€Ðĩ2зз4
-.ÐŋŅ€Ðĩ2зК4
-.ÐŋŅ€Ðĩ2зÐŧ4
-.ÐŋŅ€Ðĩ2зО4
-.ÐŋŅ€Ðĩ2Ð·Ð―4
-.ÐŋŅ€Ðĩ4з5Ðū4КÐĩÐ°Ð―
-.ÐŋŅ€Ðĩ2зÐŋ4
-.ÐŋŅ€Ðĩз4Ņ€
-.ÐŋŅ€Ðĩ4з5Ņ€Ð°Ðž
-.ÐŋŅ€Ðĩ4з5Ņ€ÐĩÐī
-.ÐŋŅ€Ðĩ2зŅ4
-.ÐŋŅ€Ðĩ2зŅ‚4
-.ÐŋŅ€Ðĩ2зŅ„4
-.ÐŋŅ€Ðĩ2зŅ…4
-.ÐŋŅ€Ðĩ2зŅ†4
-.ÐŋŅ€Ðĩ2зŅ‡4
-.ÐŋŅ€Ðĩ2зŅˆ4
-.ÐŋŅ€Ðĩ2зŅ‰4
-.ÐŋŅ€ÐĩÐļ4
-.ÐŋŅ€ÐĩÐļ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зО4
-.ÐŋŅ€ÐĩÐļ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зŅ‰4
-.ÐŋŅ€ÐĩÐļ2зŅŠ4
-.ÐŋŅ€ÐĩÐļ2зŅŽ4
-.ÐŋŅ€ÐĩÐļ2зŅ4
-.ÐŋŅ€ÐĩÐđ4
-.ÐŋŅ€ÐĩК4
-.ÐŋŅ€ÐĩÐŧ4
-.ÐŋŅ€ÐĩО4
-.ÐŋŅ€ÐĩÐ―4
-.ÐŋŅ€ÐĩÐ―Ð°Ð°4
-.ÐŋŅ€ÐĩÐ―Ð°Ðą4
-.ÐŋŅ€ÐĩÐ―Ð°Ðē4
-.ÐŋŅ€ÐĩÐ―Ð°Ðģ4
-.ÐŋŅ€ÐĩÐ―Ð°Ðī4
-.ÐŋŅ€ÐĩÐ―Ð°Ðĩ4
-.ÐŋŅ€ÐĩÐ―Ð°Ðķ4
-.ÐŋŅ€ÐĩÐ―Ð°Ð·4
-.ÐŋŅ€ÐĩÐ―Ð°Ðļ4
-.ÐŋŅ€ÐĩÐ―Ð°Ðđ4
-.ÐŋŅ€ÐĩÐ―Ð°Ðš4
-.ÐŋŅ€ÐĩÐ―Ð°Ðŧ4
-.ÐŋŅ€ÐĩÐ―Ð°Ðž4
-.ÐŋŅ€ÐĩÐ―Ð°Ð―4
-.ÐŋŅ€ÐĩÐ―Ð°Ðū4
-.ÐŋŅ€ÐĩÐ―Ð°Ðŋ4
-.ÐŋŅ€ÐĩÐ―Ð°Ņ€4
-.ÐŋŅ€ÐĩÐ―Ð°Ņ4
-.ÐŋŅ€ÐĩÐ―Ð°Ņ‚4
-.ÐŋŅ€ÐĩÐ―Ð°Ņƒ4
-.ÐŋŅ€ÐĩÐ―Ð°Ņ„4
-.ÐŋŅ€ÐĩÐ―Ð°Ņ…4
-.ÐŋŅ€ÐĩÐ―Ð°Ņ†4
-.ÐŋŅ€ÐĩÐ―Ð°Ņ‡4
-.ÐŋŅ€ÐĩÐ―Ð°Ņˆ4
-.ÐŋŅ€ÐĩÐ―Ð°Ņ‰4
-.ÐŋŅ€ÐĩÐ―Ð°ŅŠ4
-.ÐŋŅ€ÐĩÐ―Ð°ŅŽ4
-.ÐŋŅ€ÐĩÐ―Ð°Ņ4
-.ÐŋŅ€ÐĩÐū4
-.ÐŋŅ€ÐĩÐŋ4
-.ÐŋŅ€ÐĩŅ€4
-.ÐŋŅ€ÐĩŅ4
-.ÐŋŅ€Ðĩ4Ņ5Ð―Ðū
-.ÐŋŅ€Ðĩ4Ņ5Ðŋа
-.ÐŋŅ€Ðĩ4Ņ4ÐŋÐļ
-.ÐŋŅ€Ðĩ4Ņ5Ņ†
-.ÐŋŅ€ÐĩŅ‚4
-.ÐŋŅ€ÐĩŅƒ4
-.ÐŋŅ€ÐĩŅ„4
-.ÐŋŅ€ÐĩŅ…4
-.ÐŋŅ€ÐĩŅ†4
-.ÐŋŅ€ÐĩŅ‡4
-.ÐŋŅ€Ðĩ4Ņ‡5К
-.ÐŋŅ€ÐĩŅ‰4
-.ÐŋŅ€ÐĩŅŠ4
-.ÐŋŅ€ÐĩŅŽ4
-.ÐŋŅ€ÐĩŅ4
-.ÐŋŅ€Ðļа4
-.ÐŋŅ€ÐļÐą4
-.ÐŋŅ€ÐļÐē4
-.ÐŋŅ€ÐļÐģ4
-.ÐŋŅ€ÐļÐī4
-.ÐŋŅ€ÐļÐĩ4
-.ÐŋŅ€ÐļÐķ4
-.ÐŋŅ€Ðļз4
-.ÐŋŅ€Ðļ4з5О
-.ÐŋŅ€ÐļÐļ4
-.ÐŋŅ€ÐļÐđ4
-.ÐŋŅ€ÐļК4
-.ÐŋŅ€ÐļÐŧ4
-.ÐŋŅ€ÐļО4
-.ÐŋŅ€Ðļ4О5К
-.ÐŋŅ€ÐļÐ―4
-.ÐŋŅ€Ðļ4Ð―5Ņ‚
-.ÐŋŅ€Ðļ4Ð―5Ņ†
-.ÐŋŅ€ÐļÐū4
-.ÐŋŅ€ÐļÐŋ4
-.ÐŋŅ€Ðļ4Ðŋ5Ðē
-.ÐŋŅ€Ðļ4Ðŋ5К
-.ÐŋŅ€Ðļ4Ðŋ5Ð―
-.ÐŋŅ€ÐļŅ€4
-.ÐŋŅ€ÐļŅ4
-.ÐŋŅ€ÐļŅ‚4
-.ÐŋŅ€Ðļ4Ņ‚5Ņ‡
-.ÐŋŅ€ÐļŅƒ4
-.ÐŋŅ€ÐļŅ„4
-.ÐŋŅ€ÐļŅ…4
-.ÐŋŅ€Ðļ4Ņ…5Ð―
-.ÐŋŅ€ÐļŅ†4
-.ÐŋŅ€ÐļŅ‡4
-.ÐŋŅ€ÐļŅˆ4
-.ÐŋŅ€Ðļ4Ņˆ5К
-.ÐŋŅ€ÐļŅ‰4
-.ÐŋŅ€ÐļŅŠ4
-.ÐŋŅ€ÐļŅŽ4
-.ÐŋŅ€ÐļŅ4
-.ÐŋŅ€Ðūа4
-.ÐŋŅ€ÐūÐą4
-.ÐŋŅ€Ðū4Ðą5Ðē
-.ÐŋŅ€Ðū4Ðą5К
-.ÐŋŅ€Ðū4Ðą5ÐŧÐĩО
-.ÐŋŅ€ÐūÐē4
-.ÐŋŅ€ÐūÐģ4
-.ÐŋŅ€ÐūÐī4
-.ÐŋŅ€ÐūÐĩ4
-.ÐŋŅ€ÐūÐķ4
-.ÐŋŅ€Ðūз4
-.ÐŋŅ€ÐūÐļ4
-.ÐŋŅ€ÐūК4
-.ÐŋŅ€Ðū4К5Ņ
-.ÐŋŅ€ÐūÐŧ4
-.ÐŋŅ€ÐūО4
-.ÐŋŅ€ÐūÐ―4
-.ÐŋŅ€ÐūÐū4
-.ÐŋŅ€ÐūÐŋ4
-.ÐŋŅ€ÐūŅ€4
-.ÐŋŅ€ÐūŅ4
-.ÐŋŅ€Ðū4Ņ5Ðą
-.ÐŋŅ€Ðū4Ņ4Ņ‚
-.ÐŋŅ€Ðū4Ņ5Ņ„
-.ÐŋŅ€ÐūŅ‚4
-.ÐŋŅ€ÐūŅƒ4
-.ÐŋŅ€ÐūŅ…4
-.ÐŋŅ€ÐūŅ†4
-.ÐŋŅ€ÐūŅ‡4
-.ÐŋŅ€ÐūŅˆ4
-.ÐŋŅ€ÐūŅ‰4
-.ÐŋŅ€ÐūŅŠ4
-.ÐŋŅ€ÐūŅŽ4
-.ÐŋŅ€ÐūŅ4
-.ÐŋŅ8
-.ÐŋŅ‚8
-.ÐŋŅ„8
-.ÐŋŅ…8
-.ÐŋŅ†8
-.ÐŋŅ‡8
-.ÐŋŅˆ8
-.ÐŋŅ‰8
-.Ņ€Ð°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зО4
-.Ņ€Ð°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зŅ‰4
-.Ņ€Ð°2зŅŠ4
-.Ņ€Ð°2зŅŽ4
-.Ņ€Ð°2зŅ4
-.Ņ€Ðą8
-.Ņ€Ðē8
-.Ņ€Ðģ8
-.Ņ€Ðī8
-.Ņ€Ðķ8
-.Ņ€Ð·8
-.Ņ€Ðš8
-.Ņ€Ðŧ8
-.Ņ€Ðž8
-.Ņ€Ð―8
-.Ņ€Ðŋ8
-.Ņ€Ņ€8
-.Ņ€Ņ8
-.Ņ€Ņ‚8
-.Ņ€Ņ„8
-.Ņ€Ņ…8
-.Ņ€Ņ†8
-.Ņ€Ņ‡8
-.Ņ€Ņˆ8
-.Ņ€Ņ‰8
-.ŅÐą8
-.ŅÐē8
-.ŅÐģ8
-.ŅÐī8
-.ŅÐķ8
-.ŅÐ·8
-.ŅÐš8
-.ŅÐŧ8
-.ŅÐž8
-.ŅÐ―8
-.ŅÐŋ8
-.ŅŅ€8
-.ŅŅ8
-.ŅŅ‚8
-.ŅŅ„8
-.ŅŅ…8
-.ŅŅ†8
-.ŅŅ‡8
-.ŅŅˆ8
-.ŅŅ‰8
-.Ņ‚Ðą8
-.Ņ‚Ðē8
-.Ņ‚Ðģ8
-.Ņ‚Ðī8
-.Ņ‚Ðķ8
-.Ņ‚з8
-.Ņ‚К8
-.Ņ‚Ðŧ8
-.Ņ‚О8
-.Ņ‚Ð―8
-.Ņ‚Ðŋ8
-.Ņ‚Ņ€8
-.Ņ‚Ņ8
-.Ņ‚Ņ‚8
-.Ņ‚Ņ„8
-.Ņ‚Ņ…8
-.Ņ‚Ņ†8
-.Ņ‚Ņ‡8
-.Ņ‚Ņˆ8
-.Ņ‚Ņ‰8
-.ŅƒÐ°4
-.ŅƒÐą4
-.ŅƒÐē4
-.ŅƒÐģ4
-.ŅƒÐī4
-.ŅƒÐĩ4
-.ŅƒÐķ4
-.ŅƒÐķ5КÐļ
-.ŅƒÐ·4
-.ŅƒÐ·5ÐąÐĩ
-.ŅƒÐļ4
-.ŅƒÐđ4
-.ŅƒÐđ5ÐīÐļŅ
-.ŅƒÐđ5ÐīŅƒ
-.ŅƒÐš4
-.ŅƒÐŧ4
-.ŅƒÐŧ5Ņ‚
-.ŅƒÐ―4
-.ŅƒÐ―5ÐģаŅ€
-.ŅƒÐ―5Ņ†Ðļ
-.ŅƒÐū4
-.ŅƒÐŋ4
-.ŅƒŅ€4
-.ŅƒŅ€5ÐąÐ°
-.ŅƒŅ€5Ðē
-.ŅƒŅ€5Ð―
-.ŅƒŅ€5ŅŅƒÐ·
-.ŅƒŅ€5Ņ‚Ðļ
-.ŅƒŅ4
-.ŅƒŅ5Ņ‚а
-.ŅƒŅ5Ņ‚Ðĩ
-.ŅƒŅ5Ņ‚Ðļ
-.ŅƒŅ‚4
-.ŅƒŅ‚5Ņ€Ðĩ.
-.ŅƒŅ‚5Ņ€ÐĩŅˆ
-.ŅƒŅ‚5Ņ€ÐļÐ―
-.ŅƒŅ‚4Ņ€Ðū
-.ŅƒŅƒ4
-.ŅƒŅ„4
-.ŅƒŅ…4
-.ŅƒŅ†4
-.ŅƒŅ‡4
-.ŅƒŅ‡5Ņ‚ÐļÐē
-.ŅƒŅˆ4
-.ŅƒŅˆ5Ð―Ðū
-.ŅƒŅ‰4
-.ŅƒŅŠ4
-.ŅƒŅŽ4
-.ŅƒŅŽ5Ņ‚Ðĩ
-.ŅƒŅ4
-.Ņ„Ðą8
-.Ņ„Ðē8
-.Ņ„Ðģ8
-.Ņ„Ðī8
-.Ņ„Ðķ8
-.Ņ„з8
-.Ņ„К8
-.Ņ„Ðŧ8
-.Ņ„О8
-.Ņ„Ð―8
-.Ņ„Ðŋ8
-.Ņ„Ņ€8
-.Ņ„Ņ8
-.Ņ„Ņ‚8
-.Ņ„Ņ„8
-.Ņ„Ņ…8
-.Ņ„Ņ†8
-.Ņ„Ņ‡8
-.Ņ„Ņˆ8
-.Ņ„Ņ‰8
-.Ņ…Ðą8
-.Ņ…Ðē8
-.Ņ…Ðģ8
-.Ņ…Ðī8
-.Ņ…Ðķ8
-.Ņ…з8
-.Ņ…К8
-.Ņ…Ðŧ8
-.Ņ…О8
-.Ņ…Ð―8
-.Ņ…Ðŋ8
-.Ņ…Ņ€8
-.Ņ…Ņ8
-.Ņ…Ņ‚8
-.Ņ…Ņ„8
-.Ņ…Ņ…8
-.Ņ…Ņ†8
-.Ņ…Ņ‡8
-.Ņ…Ņˆ8
-.Ņ…Ņ‰8
-.Ņ†Ðą8
-.Ņ†Ðē8
-.Ņ†Ðģ8
-.Ņ†Ðī8
-.Ņ†Ðķ8
-.Ņ†Ð·8
-.Ņ†Ðš8
-.Ņ†Ðŧ8
-.Ņ†Ðž8
-.Ņ†Ð―8
-.Ņ†Ðŋ8
-.Ņ†Ņ€8
-.Ņ†Ņ8
-.Ņ†Ņ‚8
-.Ņ†Ņ„8
-.Ņ†Ņ…8
-.Ņ†Ņ†8
-.Ņ†Ņ‡8
-.Ņ†Ņˆ8
-.Ņ†Ņ‰8
-.Ņ‡Ðą8
-.Ņ‡Ðē8
-.Ņ‡Ðģ8
-.Ņ‡Ðī8
-.Ņ‡Ðķ8
-.Ņ‡Ð·8
-.Ņ‡Ðš8
-.Ņ‡Ðŧ8
-.Ņ‡Ðž8
-.Ņ‡Ð―8
-.Ņ‡Ðŋ8
-.Ņ‡Ņ€8
-.Ņ‡Ņ8
-.Ņ‡Ņ‚8
-.Ņ‡Ņ„8
-.Ņ‡Ņ…8
-.Ņ‡Ņ†8
-.Ņ‡Ņ‡8
-.Ņ‡Ņˆ8
-.Ņ‡Ņ‰8
-.ŅˆÐą8
-.ŅˆÐē8
-.ŅˆÐģ8
-.ŅˆÐī8
-.ŅˆÐķ8
-.ŅˆÐ·8
-.ŅˆÐš8
-.ŅˆÐŧ8
-.ŅˆÐž8
-.ŅˆÐ―8
-.ŅˆÐŋ8
-.ŅˆŅ€8
-.ŅˆŅ8
-.ŅˆŅ‚8
-.ŅˆŅ„8
-.ŅˆŅ…8
-.ŅˆŅ†8
-.ŅˆŅ‡8
-.ŅˆŅˆ8
-.ŅˆŅ‰8
-.Ņ‰Ðą8
-.Ņ‰Ðē8
-.Ņ‰Ðģ8
-.Ņ‰Ðī8
-.Ņ‰Ðķ8
-.Ņ‰Ð·8
-.Ņ‰Ðš8
-.Ņ‰Ðŧ8
-.Ņ‰Ðž8
-.Ņ‰Ð―8
-.Ņ‰Ðŋ8
-.Ņ‰Ņ€8
-.Ņ‰Ņ8
-.Ņ‰Ņ‚8
-.Ņ‰Ņ„8
-.Ņ‰Ņ…8
-.Ņ‰Ņ†8
-.Ņ‰Ņ‡8
-.Ņ‰Ņˆ8
-.Ņ‰Ņ‰8
-а1
+1а1
+1Ðą1
+1Ðē1
+1Ðģ1
+1Ðī1
+1Ðĩ1
+1Ðķ1
+1з1
+1Ðļ1
+1Ðđ1
+1К1
+1Ðŧ1
+1О1
+1Ð―1
+1Ðū1
+1Ðŋ1
+1Ņ€1
+1Ņ1
+1Ņ‚1
+1Ņƒ1
+1Ņ„1
+1Ņ…1
+1Ņ†1
+1Ņ‡1
+1Ņˆ1
+1Ņ‰1
+1ŅŠ1
+0ŅŒ0
+1ŅŽ1
+1Ņ1
+Ðą4а
+Ðą4Ðĩ
+Ðą4Ðļ
+Ðą4Ðū
+Ðą4Ņƒ
+Ðą4ŅŠ
+Ðą4ŅŽ
+Ðą4Ņ
+Ðē4а
+Ðē4Ðĩ
+Ðē4Ðļ
+Ðē4Ðū
+Ðē4Ņƒ
+Ðē4ŅŠ
+Ðē4ŅŽ
+Ðē4Ņ
+Ðģ4а
+Ðģ4Ðĩ
+Ðģ4Ðļ
+Ðģ4Ðū
+Ðģ4Ņƒ
+Ðģ4ŅŠ
+Ðģ4ŅŽ
+Ðģ4Ņ
+Ðī4а
+Ðī4Ðĩ
+Ðī4Ðļ
+Ðī4Ðū
+Ðī4Ņƒ
+Ðī4ŅŠ
+Ðī4ŅŽ
+Ðī4Ņ
+Ðķ4а
+Ðķ4Ðĩ
+Ðķ4Ðļ
+Ðķ4Ðū
+Ðķ4Ņƒ
+Ðķ4ŅŠ
+Ðķ4ŅŽ
+Ðķ4Ņ
+з4а
+з4Ðĩ
+з4Ðļ
+з4Ðū
+з4Ņƒ
+з4ŅŠ
+з4ŅŽ
+з4Ņ
+Ðđ4а
+Ðđ4Ðĩ
+Ðđ4Ðļ
+Ðđ4Ðū
+Ðđ4Ņƒ
+Ðđ4ŅŠ
+Ðđ4ŅŽ
+Ðđ4Ņ
+К4а
+К4Ðĩ
+К4Ðļ
+К4Ðū
+К4Ņƒ
+К4ŅŠ
+К4ŅŽ
+К4Ņ
+Ðŧ4а
+Ðŧ4Ðĩ
+Ðŧ4Ðļ
+Ðŧ4Ðū
+Ðŧ4Ņƒ
+Ðŧ4ŅŠ
+Ðŧ4ŅŽ
+Ðŧ4Ņ
+О4а
+О4Ðĩ
+О4Ðļ
+О4Ðū
+О4Ņƒ
+О4ŅŠ
+О4ŅŽ
+О4Ņ
+Ð―4а
+Ð―4Ðĩ
+Ð―4Ðļ
+Ð―4Ðū
+Ð―4Ņƒ
+Ð―4ŅŠ
+Ð―4ŅŽ
+Ð―4Ņ
+Ðŋ4а
+Ðŋ4Ðĩ
+Ðŋ4Ðļ
+Ðŋ4Ðū
+Ðŋ4Ņƒ
+Ðŋ4ŅŠ
+Ðŋ4ŅŽ
+Ðŋ4Ņ
+Ņ€4а
+Ņ€4Ðĩ
+Ņ€4Ðļ
+Ņ€4Ðū
+Ņ€4Ņƒ
+Ņ€4ŅŠ
+Ņ€4ŅŽ
+Ņ€4Ņ
+Ņ4а
+Ņ4Ðĩ
+Ņ4Ðļ
+Ņ4Ðū
+Ņ4Ņƒ
+Ņ4ŅŠ
+Ņ4ŅŽ
+Ņ4Ņ
+Ņ‚4а
+Ņ‚4Ðĩ
+Ņ‚4Ðļ
+Ņ‚4Ðū
+Ņ‚4Ņƒ
+Ņ‚4ŅŠ
+Ņ‚4ŅŽ
+Ņ‚4Ņ
+Ņ„4а
+Ņ„4Ðĩ
+Ņ„4Ðļ
+Ņ„4Ðū
+Ņ„4Ņƒ
+Ņ„4ŅŠ
+Ņ„4ŅŽ
+Ņ„4Ņ
+Ņ…4а
+Ņ…4Ðĩ
+Ņ…4Ðļ
+Ņ…4Ðū
+Ņ…4Ņƒ
+Ņ…4ŅŠ
+Ņ…4ŅŽ
+Ņ…4Ņ
+Ņ†4а
+Ņ†4Ðĩ
+Ņ†4Ðļ
+Ņ†4Ðū
+Ņ†4Ņƒ
+Ņ†4ŅŠ
+Ņ†4ŅŽ
+Ņ†4Ņ
+Ņ‡4а
+Ņ‡4Ðĩ
+Ņ‡4Ðļ
+Ņ‡4Ðū
+Ņ‡4Ņƒ
+Ņ‡4ŅŠ
+Ņ‡4ŅŽ
+Ņ‡4Ņ
+Ņˆ4а
+Ņˆ4Ðĩ
+Ņˆ4Ðļ
+Ņˆ4Ðū
+Ņˆ4Ņƒ
+Ņˆ4ŅŠ
+Ņˆ4ŅŽ
+Ņˆ4Ņ
+Ņ‰4а
+Ņ‰4Ðĩ
+Ņ‰4Ðļ
+Ņ‰4Ðū
+Ņ‰4Ņƒ
+Ņ‰4ŅŠ
+Ņ‰4ŅŽ
+Ņ‰4Ņ
+ŅŒ4а
+ŅŒ4Ðĩ
+ŅŒ4Ðļ
+ŅŒ4Ðū
+ŅŒ4Ņƒ
+ŅŒ4ŅŠ
+ŅŒ4ŅŽ
+ŅŒ4Ņ
4Ðą3Ðą4
-8ÐąÐą.
-4ÐąÐąÐą4
-ÐąÐąÐē4
-ÐąÐąÐģ4
-ÐąÐąÐī4
-ÐąÐąÐķ4
-ÐąÐąÐ·4
-4ÐąÐąÐš4
-ÐąÐąÐŧ4
-ÐąÐąÐž4
-ÐąÐąÐ―4
-4ÐąÐąÐŋ4
-ÐąÐąŅ€4
-ÐąÐąŅ4
-4ÐąÐąŅ‚4
-ÐąÐąŅ„4
-ÐąÐąŅ…4
-4ÐąÐąŅ†4
-4ÐąÐąŅ‡4
-ÐąÐąŅˆ4
-ÐąÐąŅ‰4
-2Ðą3Ðē
-8ÐąÐē.
-4ÐąÐēÐą4
-4ÐąÐēÐē
-4ÐąÐēÐģ4
-4ÐąÐēÐī4
-4ÐąÐēК4
-4ÐąÐēÐŋ4
-4ÐąÐēŅ‚4
-4ÐąÐēŅ„
-4ÐąÐēŅ†4
-4ÐąÐēŅ‡4
-2Ðą3Ðģ
-8ÐąÐģ.
-4ÐąÐģÐą4
-4ÐąÐģÐģ
-4ÐąÐģК4
-4ÐąÐģÐŋ4
-4ÐąÐģŅ‚4
-4ÐąÐģŅ†4
-4ÐąÐģŅ‡4
-2Ðą3Ðī
-8ÐąÐī.
-4ÐąÐīÐą4
-4ÐąÐīÐģ
-4ÐąÐīÐī
-4ÐąÐīК4
-4ÐąÐīÐŋ4
-4ÐąÐīŅ‚4
-4ÐąÐīŅ†4
-4ÐąÐīŅ‡4
-2Ðą3Ðķ
-8ÐąÐķ.
-4ÐąÐķÐą4
-4ÐąÐķÐģ4
-4ÐąÐķÐī4
-4ÐąÐķÐķ
-4ÐąÐķК4
-4ÐąÐķÐŋ4
-4ÐąÐķŅ
-4ÐąÐķŅ‚4
-4ÐąÐķŅ„
-4ÐąÐķŅ…
-4ÐąÐķŅ†4
-4ÐąÐķŅ‡4
-4ÐąÐķŅˆ
-2Ðą3з
-8ÐąÐ·.
-4ÐąÐ·Ðą4
-4ÐąÐ·Ðģ4
-4ÐąÐ·Ðī4
-4ÐąÐ·Ð·
-4ÐąÐ·Ðš4
-4ÐąÐ·Ðŋ4
-4ÐąÐ·Ņ
-4ÐąÐ·Ņ‚4
-4ÐąÐ·Ņ„
-4ÐąÐ·Ņ…
-4ÐąÐ·Ņ†4
-4ÐąÐ·Ņ‡4
-4ÐąÐ·Ņˆ
-ÐąÐđ4
-4Ðą3К4
-8ÐąÐš.
-4ÐąÐšÐą4
-ÐąÐšÐē4
-4ÐąÐšÐģ4
-4ÐąÐšÐī4
-ÐąÐšÐķ4
-ÐąÐšÐ·4
-4ÐąÐšÐš4
-ÐąÐšÐŧ4
-ÐąÐšÐž4
-ÐąÐšÐ―4
-4ÐąÐšÐŋ4
-ÐąÐšŅ€4
-ÐąÐšŅ4
-4ÐąÐšŅ‚4
-ÐąÐšŅ„4
-ÐąÐšŅ…4
-4ÐąÐšŅ†4
-4ÐąÐšŅ‡4
-ÐąÐšŅˆ4
-ÐąÐšŅ‰4
-2Ðą3Ðŧ4
-8ÐąÐŧ.
-4ÐąÐŧÐą4
-4ÐąÐŧК4
-4ÐąÐŧÐŧ
-4ÐąÐŧÐŋ4
-4ÐąÐŧŅ‚4
-4ÐąÐŧŅ†4
-4ÐąÐŧŅ‡4
-2Ðą3О4
-8ÐąÐž.
-4ÐąÐžÐą4
-4ÐąÐžÐš4
-4ÐąÐžÐž
-4ÐąÐžÐŋ4
-4ÐąÐžŅ‚4
-4ÐąÐžŅ†4
-4ÐąÐžŅ‡4
-2Ðą3Ð―4
-8ÐąÐ―.
-4ÐąÐ―Ðą4
-4ÐąÐ―Ðš4
-4ÐąÐ―Ð―
-4ÐąÐ―Ðŋ4
-4ÐąÐ―Ņ‚4
-4ÐąÐ―Ņ†4
-4ÐąÐ―Ņ‡4
-4Ðą3Ðŋ4
-8ÐąÐŋ.
-4ÐąÐŋÐą4
-ÐąÐŋÐē4
-4ÐąÐŋÐģ4
-4ÐąÐŋÐī4
-ÐąÐŋÐķ4
-ÐąÐŋз4
-4ÐąÐŋК4
-ÐąÐŋÐŧ4
-ÐąÐŋО4
-ÐąÐŋÐ―4
-4ÐąÐŋÐŋ4
-ÐąÐŋŅ€4
-ÐąÐŋŅ4
-4ÐąÐŋŅ‚4
-ÐąÐŋŅ„4
-ÐąÐŋŅ…4
-4ÐąÐŋŅ†4
-4ÐąÐŋŅ‡4
-ÐąÐŋŅˆ4
-ÐąÐŋŅ‰4
-2Ðą3Ņ€4
-8ÐąŅ€.
-4ÐąŅ€Ðą4
-4ÐąŅ€Ðš4
-4ÐąŅ€Ðŋ4
-4ÐąŅ€Ņ€
-4ÐąŅ€Ņ‚4
-4ÐąŅ€Ņ†4
-4ÐąŅ€Ņ‡4
-4Ðą3Ņ
-8ÐąŅ.
-4ÐąŅÐą4
-4ÐąŅÐģ4
-4ÐąŅÐī4
-4ÐąŅÐķ
-4ÐąŅÐ·
-4ÐąŅÐš4
-4ÐąŅÐŋ4
-4ÐąŅŅ
-4ÐąŅŅ‚4
-4ÐąŅŅ†4
-4ÐąŅŅ‡4
-4Ðą3Ņ‚4
-8ÐąŅ‚.
-4ÐąŅ‚Ðą4
-ÐąŅ‚Ðē4
-4ÐąŅ‚Ðģ4
-4ÐąŅ‚Ðī4
-ÐąŅ‚Ðķ4
-ÐąŅ‚з4
-4ÐąŅ‚К4
-ÐąŅ‚Ðŧ4
-ÐąŅ‚О4
-ÐąŅ‚Ð―4
-4ÐąŅ‚Ðŋ4
-ÐąŅ‚Ņ€4
-ÐąŅ‚Ņ4
-4ÐąŅ‚Ņ‚4
-ÐąŅ‚Ņ„4
-ÐąŅ‚Ņ…4
-4ÐąŅ‚Ņ†4
-4ÐąŅ‚Ņ‡4
-ÐąŅ‚Ņˆ4
-ÐąŅ‚Ņ‰4
-4Ðą3Ņ„
-8ÐąŅ„.
-4ÐąŅ„Ðą4
-4ÐąŅ„Ðē
-4ÐąŅ„Ðģ4
-4ÐąŅ„Ðī4
-4ÐąŅ„Ðķ
-4ÐąŅ„з
-4ÐąŅ„К4
-4ÐąŅ„Ðŋ4
-4ÐąŅ„Ņ‚4
-4ÐąŅ„Ņ„
-4ÐąŅ„Ņ†4
-4ÐąŅ„Ņ‡4
-4Ðą3Ņ…
-8ÐąŅ….
-4ÐąŅ…Ðą4
-4ÐąŅ…Ðģ4
-4ÐąŅ…Ðī4
-4ÐąŅ…Ðķ
-4ÐąŅ…з
-4ÐąŅ…К4
-4ÐąŅ…Ðŋ4
-4ÐąŅ…Ņ‚4
-4ÐąŅ…Ņ…
-4ÐąŅ…Ņ†4
-4ÐąŅ…Ņ‡4
-4Ðą3Ņ†4
-8ÐąŅ†.
-4ÐąŅ†Ðą4
-ÐąŅ†Ðē4
-4ÐąŅ†Ðģ4
-4ÐąŅ†Ðī4
-ÐąŅ†Ðķ4
-ÐąŅ†Ð·4
-4ÐąŅ†Ðš4
-ÐąŅ†Ðŧ4
-ÐąŅ†Ðž4
-ÐąŅ†Ð―4
-4ÐąŅ†Ðŋ4
-ÐąŅ†Ņ€4
-ÐąŅ†Ņ4
-4ÐąŅ†Ņ‚4
-ÐąŅ†Ņ„4
-ÐąŅ†Ņ…4
-4ÐąŅ†Ņ†4
-4ÐąŅ†Ņ‡4
-ÐąŅ†Ņˆ4
-ÐąŅ†Ņ‰4
-4Ðą3Ņ‡4
-8ÐąŅ‡.
-4ÐąŅ‡Ðą4
-ÐąŅ‡Ðē4
-4ÐąŅ‡Ðģ4
-4ÐąŅ‡Ðī4
-ÐąŅ‡Ðķ4
-ÐąŅ‡Ð·4
-4ÐąŅ‡Ðš4
-ÐąŅ‡Ðŧ4
-ÐąŅ‡Ðž4
-ÐąŅ‡Ð―4
-4ÐąŅ‡Ðŋ4
-ÐąŅ‡Ņ€4
-ÐąŅ‡Ņ4
-4ÐąŅ‡Ņ‚4
-ÐąŅ‡Ņ„4
-ÐąŅ‡Ņ…4
-4ÐąŅ‡Ņ†4
-4ÐąŅ‡Ņ‡4
-ÐąŅ‡Ņˆ4
-ÐąŅ‡Ņ‰4
-4Ðą3Ņˆ
-8ÐąŅˆ.
-4ÐąŅˆÐą4
-4ÐąŅˆÐģ4
-4ÐąŅˆÐī4
-4ÐąŅˆÐķ
-4ÐąŅˆÐ·
-4ÐąŅˆÐš4
-4ÐąŅˆÐŋ4
-4ÐąŅˆŅ‚4
-4ÐąŅˆŅ†4
-4ÐąŅˆŅ‡4
-4ÐąŅˆŅˆ
-4Ðą3Ņ‰
-8ÐąŅ‰.
-4ÐąŅ‰Ðą4
-4ÐąŅ‰Ðš4
-4ÐąŅ‰Ðŋ4
-4ÐąŅ‰Ņ‚4
-4ÐąŅ‰Ņ†4
-4ÐąŅ‰Ņ‡4
-4ÐąŅ‰Ņ‰
-2Ðē3Ðą
-8ÐēÐą.
-4ÐēÐąÐą
-4ÐēÐąÐē4
-4ÐēÐąÐš
-4ÐēÐąÐŋ
-4ÐēÐąŅ‚
-4ÐēÐąŅ„4
-4ÐēÐąŅ†
-4ÐēÐąŅ‡
+2Ðą3Ðē2
+2Ðą3Ðģ2
+2Ðą3Ðī2
+2Ðą3Ðķ2
+2Ðą3з2
+2Ðą3Ðđ2
+2Ðą3К2
+2Ðą3Ðŧ2
+2Ðą3О2
+2Ðą3Ð―2
+2Ðą3Ðŋ2
+2Ðą3Ņ€2
+2Ðą3Ņ2
+2Ðą3Ņ‚2
+2Ðą3Ņ„2
+2Ðą3Ņ…2
+2Ðą3Ņ†2
+2Ðą3Ņ‡2
+2Ðą3Ņˆ2
+2Ðą3Ņ‰2
+2Ðē3Ðą2
4Ðē3Ðē4
-8ÐēÐē.
-ÐēÐēÐą4
-4ÐēÐēÐē4
-ÐēÐēÐģ4
-ÐēÐēÐī4
-ÐēÐēÐķ4
-ÐēÐēз4
-ÐēÐēК4
-ÐēÐēÐŧ4
-ÐēÐēО4
-ÐēÐēÐ―4
-ÐēÐēÐŋ4
-ÐēÐēŅ€4
-ÐēÐēŅ4
-ÐēÐēŅ‚4
-4ÐēÐēŅ„4
-ÐēÐēŅ…4
-ÐēÐēŅ†4
-ÐēÐēŅ‡4
-ÐēÐēŅˆ4
-ÐēÐēŅ‰4
-2Ðē3Ðģ
-8ÐēÐģ.
-4ÐēÐģÐē4
-4ÐēÐģÐģ
-4ÐēÐģК
-4ÐēÐģÐŋ
-4ÐēÐģŅ‚
-4ÐēÐģŅ„4
-4ÐēÐģŅ†
-4ÐēÐģŅ‡
-2Ðē3Ðī
-8ÐēÐī.
-4ÐēÐīÐą
-4ÐēÐīÐē4
-4ÐēÐīÐģ
-4ÐēÐīÐī
-4ÐēÐīК
-4ÐēÐīÐŋ
-4ÐēÐīŅ‚
-4ÐēÐīŅ„4
-4ÐēÐīŅ†
-4ÐēÐīŅ‡
-2Ðē3Ðķ
-8ÐēÐķ.
-4ÐēÐķÐē4
-4ÐēÐķÐķ
-4ÐēÐķŅ
-4ÐēÐķŅ„4
-4ÐēÐķŅ…
-4ÐēÐķŅˆ
-2Ðē3з
-8Ðēз.
-4ÐēзÐē4
-4Ðēзз
-4ÐēзŅ
-4ÐēзŅ„4
-4ÐēзŅ…
-4ÐēзŅˆ
-ÐēÐđ4
-2Ðē3К
-8ÐēК.
-4ÐēÐšÐą
-4ÐēКÐē4
-4ÐēКÐģ
-4ÐēКÐī
-4ÐēКК
-4ÐēКŅ„4
-2Ðē3Ðŧ4
-8ÐēÐŧ.
-4ÐēÐŧÐē4
-4ÐēÐŧÐŧ
-4ÐēÐŧŅ„4
-2Ðē3О4
-8ÐēО.
-4ÐēОÐē4
-4ÐēОО
-4ÐēОŅ„4
-2Ðē3Ð―4
-8ÐēÐ―.
-4ÐēÐ―Ðē4
-4ÐēÐ―Ð―
-4ÐēÐ―Ņ„4
-2Ðē3Ðŋ
-8ÐēÐŋ.
-4ÐēÐŋÐą
-4ÐēÐŋÐē4
-4ÐēÐŋÐģ
-4ÐēÐŋÐī
-4ÐēÐŋÐŋ
-4ÐēÐŋŅ„4
-2Ðē3Ņ€4
-8ÐēŅ€.
-4ÐēŅ€Ðē4
-4ÐēŅ€Ņ€
-4ÐēŅ€Ņ„4
-2Ðē3Ņ
-8ÐēŅ.
-4ÐēŅÐē4
-4ÐēŅÐķ
-4ÐēŅÐ·
-4ÐēŅŅ
-4ÐēŅŅ„4
-2Ðē3Ņ‚
-8ÐēŅ‚.
-4ÐēŅ‚Ðą
-4ÐēŅ‚Ðē4
-4ÐēŅ‚Ðģ
-4ÐēŅ‚Ðī
-4ÐēŅ‚К
-4ÐēŅ‚Ðŋ
-4ÐēŅ‚Ņ‚
-4ÐēŅ‚Ņ„4
-4ÐēŅ‚Ņ†
-4ÐēŅ‚Ņ‡
-4Ðē3Ņ„4
-8ÐēŅ„.
-ÐēŅ„Ðą4
-4ÐēŅ„Ðē4
-ÐēŅ„Ðģ4
-ÐēŅ„Ðī4
-4ÐēŅ„Ðķ4
-4ÐēŅ„з4
-ÐēŅ„К4
-ÐēŅ„Ðŧ4
-ÐēŅ„О4
-ÐēŅ„Ð―4
-ÐēŅ„Ðŋ4
-ÐēŅ„Ņ€4
-ÐēŅ„Ņ4
-ÐēŅ„Ņ‚4
-4ÐēŅ„Ņ„4
-ÐēŅ„Ņ…4
-ÐēŅ„Ņ†4
-ÐēŅ„Ņ‡4
-ÐēŅ„Ņˆ4
-ÐēŅ„Ņ‰4
-2Ðē3Ņ…
-8ÐēŅ….
-4ÐēŅ…Ðē4
-4ÐēŅ…Ðķ
-4ÐēŅ…з
-4ÐēŅ…Ņ„4
-4ÐēŅ…Ņ…
-2Ðē3Ņ†
-8ÐēŅ†.
-4ÐēŅ†Ðą
-4ÐēŅ†Ðē4
-4ÐēŅ†Ðģ
-4ÐēŅ†Ðī
-4ÐēŅ†Ðš
-4ÐēŅ†Ðŋ
-4ÐēŅ†Ņ‚
-4ÐēŅ†Ņ„4
-4ÐēŅ†Ņ†
-4ÐēŅ†Ņ‡
-2Ðē3Ņ‡
-8ÐēŅ‡.
-4ÐēŅ‡Ðą
-4ÐēŅ‡Ðē4
-4ÐēŅ‡Ðģ
-4ÐēŅ‡Ðī
-4ÐēŅ‡Ðš
-4ÐēŅ‡Ðŋ
-4ÐēŅ‡Ņ‚
-4ÐēŅ‡Ņ„4
-4ÐēŅ‡Ņ†
-4ÐēŅ‡Ņ‡
-2Ðē3Ņˆ
-8ÐēŅˆ.
-4ÐēŅˆÐē4
-4ÐēŅˆÐķ
-4ÐēŅˆÐ·
-4ÐēŅˆŅ„4
-4ÐēŅˆŅˆ
-2Ðē3Ņ‰
-8ÐēŅ‰.
-4ÐēŅ‰Ðē4
-4ÐēŅ‰Ņ„4
-4ÐēŅ‰Ņ‰
-2Ðģ3Ðą
-8ÐģÐą.
-4ÐģÐąÐą
-4ÐģÐąÐģ4
-4ÐģÐąÐš4
-4ÐģÐąÐŋ4
-4ÐģÐąŅ‚4
-4ÐģÐąŅ†4
-4ÐģÐąŅ‡4
-2Ðģ3Ðē
-8ÐģÐē.
-4ÐģÐēÐą4
-4ÐģÐēÐē
-4ÐģÐēÐģ4
-4ÐģÐēÐī4
-4ÐģÐēК4
-4ÐģÐēÐŋ4
-4ÐģÐēŅ‚4
-4ÐģÐēŅ„
-4ÐģÐēŅ†4
-4ÐģÐēŅ‡4
+2Ðē3Ðģ2
+2Ðē3Ðī2
+2Ðē3Ðķ2
+2Ðē3з2
+2Ðē3Ðđ2
+2Ðē3К2
+2Ðē3Ðŧ2
+2Ðē3О2
+2Ðē3Ð―2
+2Ðē3Ðŋ2
+2Ðē3Ņ€2
+2Ðē3Ņ2
+2Ðē3Ņ‚2
+2Ðē3Ņ„2
+2Ðē3Ņ…2
+2Ðē3Ņ†2
+2Ðē3Ņ‡2
+2Ðē3Ņˆ2
+2Ðē3Ņ‰2
+2Ðģ3Ðą2
+2Ðģ3Ðē2
4Ðģ3Ðģ4
-8ÐģÐģ.
-ÐģÐģÐą4
-ÐģÐģÐē4
-4ÐģÐģÐģ4
-ÐģÐģÐī4
-ÐģÐģÐķ4
-ÐģÐģз4
-4ÐģÐģК4
-ÐģÐģÐŧ4
-ÐģÐģО4
-ÐģÐģÐ―4
-4ÐģÐģÐŋ4
-ÐģÐģŅ€4
-ÐģÐģŅ4
-4ÐģÐģŅ‚4
-ÐģÐģŅ„4
-ÐģÐģŅ…4
-4ÐģÐģŅ†4
-4ÐģÐģŅ‡4
-ÐģÐģŅˆ4
-ÐģÐģŅ‰4
-2Ðģ3Ðī
-8ÐģÐī.
-4ÐģÐīÐą
-4ÐģÐīÐģ4
-4ÐģÐīÐī
-4ÐģÐīК4
-4ÐģÐīÐŋ4
-4ÐģÐīŅ‚4
-4ÐģÐīŅ†4
-4ÐģÐīŅ‡4
-2Ðģ3Ðķ
-8ÐģÐķ.
-4ÐģÐķÐą4
-4ÐģÐķÐģ4
-4ÐģÐķÐī4
-4ÐģÐķÐķ
-4ÐģÐķК4
-4ÐģÐķÐŋ4
-4ÐģÐķŅ
-4ÐģÐķŅ‚4
-4ÐģÐķŅ„
-4ÐģÐķŅ…
-4ÐģÐķŅ†4
-4ÐģÐķŅ‡4
-4ÐģÐķŅˆ
-2Ðģ3з
-8Ðģз.
-4ÐģÐ·Ðą4
-4ÐģзÐģ4
-4ÐģзÐī4
-4Ðģзз
-4ÐģзК4
-4ÐģзÐŋ4
-4ÐģзŅ
-4ÐģзŅ‚4
-4ÐģзŅ„
-4ÐģзŅ…
-4ÐģзŅ†4
-4ÐģзŅ‡4
-4ÐģзŅˆ
-ÐģÐđ4
-4Ðģ3К4
-8ÐģК.
-4ÐģÐšÐą4
-ÐģКÐē4
-4ÐģКÐģ4
-4ÐģКÐī4
-ÐģКÐķ4
-ÐģКз4
-4ÐģКК4
-ÐģКÐŧ4
-ÐģКО4
-ÐģÐšÐ―4
-4ÐģКÐŋ4
-ÐģКŅ€4
-ÐģКŅ4
-4ÐģКŅ‚4
-ÐģКŅ„4
-ÐģКŅ…4
-4ÐģКŅ†4
-4ÐģКŅ‡4
-ÐģКŅˆ4
-ÐģКŅ‰4
-2Ðģ3Ðŧ4
-8ÐģÐŧ.
-4ÐģÐŧÐģ4
-4ÐģÐŧК4
-4ÐģÐŧÐŧ
-4ÐģÐŧÐŋ4
-4ÐģÐŧŅ‚4
-4ÐģÐŧŅ†4
-4ÐģÐŧŅ‡4
-2Ðģ3О4
-8ÐģО.
-4ÐģОÐģ4
-4ÐģОК4
-4ÐģОО
-4ÐģОÐŋ4
-4ÐģОŅ‚4
-4ÐģОŅ†4
-4ÐģОŅ‡4
-2Ðģ3Ð―4
-8ÐģÐ―.
-4ÐģÐ―Ðģ4
-4ÐģÐ―Ðš4
-4ÐģÐ―Ð―
-4ÐģÐ―Ðŋ4
-4ÐģÐ―Ņ‚4
-4ÐģÐ―Ņ†4
-4ÐģÐ―Ņ‡4
-4Ðģ3Ðŋ4
-8ÐģÐŋ.
-4ÐģÐŋÐą4
-ÐģÐŋÐē4
-4ÐģÐŋÐģ4
-4ÐģÐŋÐī4
-ÐģÐŋÐķ4
-ÐģÐŋз4
-4ÐģÐŋК4
-ÐģÐŋÐŧ4
-ÐģÐŋО4
-ÐģÐŋÐ―4
-4ÐģÐŋÐŋ4
-ÐģÐŋŅ€4
-ÐģÐŋŅ4
-4ÐģÐŋŅ‚4
-ÐģÐŋŅ„4
-ÐģÐŋŅ…4
-4ÐģÐŋŅ†4
-4ÐģÐŋŅ‡4
-ÐģÐŋŅˆ4
-ÐģÐŋŅ‰4
-2Ðģ3Ņ€4
-8ÐģŅ€.
-4ÐģŅ€Ðģ4
-4ÐģŅ€Ðš4
-4ÐģŅ€Ðŋ4
-4ÐģŅ€Ņ€
-4ÐģŅ€Ņ‚4
-4ÐģŅ€Ņ†4
-4ÐģŅ€Ņ‡4
-4Ðģ3Ņ
-8ÐģŅ.
-4ÐģŅÐą4
-4ÐģŅÐģ4
-4ÐģŅÐī4
-4ÐģŅÐķ
-4ÐģŅÐ·
-4ÐģŅÐš4
-4ÐģŅÐŋ4
-4ÐģŅŅ
-4ÐģŅŅ‚4
-4ÐģŅŅ†4
-4ÐģŅŅ‡4
-4Ðģ3Ņ‚4
-8ÐģŅ‚.
-4ÐģŅ‚Ðą4
-ÐģŅ‚Ðē4
-4ÐģŅ‚Ðģ4
-4ÐģŅ‚Ðī4
-ÐģŅ‚Ðķ4
-ÐģŅ‚з4
-4ÐģŅ‚К4
-ÐģŅ‚Ðŧ4
-ÐģŅ‚О4
-ÐģŅ‚Ð―4
-4ÐģŅ‚Ðŋ4
-ÐģŅ‚Ņ€4
-ÐģŅ‚Ņ4
-4ÐģŅ‚Ņ‚4
-ÐģŅ‚Ņ„4
-ÐģŅ‚Ņ…4
-4ÐģŅ‚Ņ†4
-4ÐģŅ‚Ņ‡4
-ÐģŅ‚Ņˆ4
-ÐģŅ‚Ņ‰4
-4Ðģ3Ņ„
-8ÐģŅ„.
-4ÐģŅ„Ðą4
-4ÐģŅ„Ðē
-4ÐģŅ„Ðģ4
-4ÐģŅ„Ðī4
-4ÐģŅ„Ðķ
-4ÐģŅ„з
-4ÐģŅ„К4
-4ÐģŅ„Ðŋ4
-4ÐģŅ„Ņ‚4
-4ÐģŅ„Ņ„
-4ÐģŅ„Ņ†4
-4ÐģŅ„Ņ‡4
-4Ðģ3Ņ…
-8ÐģŅ….
-4ÐģŅ…Ðą4
-4ÐģŅ…Ðģ4
-4ÐģŅ…Ðī4
-4ÐģŅ…Ðķ
-4ÐģŅ…з
-4ÐģŅ…К4
-4ÐģŅ…Ðŋ4
-4ÐģŅ…Ņ‚4
-4ÐģŅ…Ņ…
-4ÐģŅ…Ņ†4
-4ÐģŅ…Ņ‡4
-4Ðģ3Ņ†4
-8ÐģŅ†.
-4ÐģŅ†Ðą4
-ÐģŅ†Ðē4
-4ÐģŅ†Ðģ4
-4ÐģŅ†Ðī4
-ÐģŅ†Ðķ4
-ÐģŅ†Ð·4
-4ÐģŅ†Ðš4
-ÐģŅ†Ðŧ4
-ÐģŅ†Ðž4
-ÐģŅ†Ð―4
-4ÐģŅ†Ðŋ4
-ÐģŅ†Ņ€4
-ÐģŅ†Ņ4
-4ÐģŅ†Ņ‚4
-ÐģŅ†Ņ„4
-ÐģŅ†Ņ…4
-4ÐģŅ†Ņ†4
-4ÐģŅ†Ņ‡4
-ÐģŅ†Ņˆ4
-ÐģŅ†Ņ‰4
-4Ðģ3Ņ‡4
-8ÐģŅ‡.
-4ÐģŅ‡Ðą4
-ÐģŅ‡Ðē4
-4ÐģŅ‡Ðģ4
-4ÐģŅ‡Ðī4
-ÐģŅ‡Ðķ4
-ÐģŅ‡Ð·4
-4ÐģŅ‡Ðš4
-ÐģŅ‡Ðŧ4
-ÐģŅ‡Ðž4
-ÐģŅ‡Ð―4
-4ÐģŅ‡Ðŋ4
-ÐģŅ‡Ņ€4
-ÐģŅ‡Ņ4
-4ÐģŅ‡Ņ‚4
-ÐģŅ‡Ņ„4
-ÐģŅ‡Ņ…4
-4ÐģŅ‡Ņ†4
-4ÐģŅ‡Ņ‡4
-ÐģŅ‡Ņˆ4
-ÐģŅ‡Ņ‰4
-4Ðģ3Ņˆ
-8ÐģŅˆ.
-4ÐģŅˆÐą4
-4ÐģŅˆÐģ4
-4ÐģŅˆÐī4
-4ÐģŅˆÐķ
-4ÐģŅˆÐ·
-4ÐģŅˆÐš4
-4ÐģŅˆÐŋ4
-4ÐģŅˆŅ‚4
-4ÐģŅˆŅ†4
-4ÐģŅˆŅ‡4
-4ÐģŅˆŅˆ
-4Ðģ3Ņ‰
-8ÐģŅ‰.
-4ÐģŅ‰Ðģ4
-4ÐģŅ‰Ðš4
-4ÐģŅ‰Ðŋ4
-4ÐģŅ‰Ņ‚4
-4ÐģŅ‰Ņ†4
-4ÐģŅ‰Ņ‡4
-4ÐģŅ‰Ņ‰
-4Ðī3Ðą4
-8ÐīÐą.
-4ÐīÐąÐą4
-ÐīÐąÐē4
-4ÐīÐąÐģ4
-4ÐīÐąÐī4
-ÐīÐąÐķ4
-ÐīÐąÐ·4
-4ÐīÐąÐš4
-ÐīÐąÐŧ4
-ÐīÐąÐž4
-ÐīÐąÐ―4
-4ÐīÐąÐŋ4
-ÐīÐąŅ€4
-ÐīÐąŅ4
-4ÐīÐąŅ‚4
-ÐīÐąŅ„4
-ÐīÐąŅ…4
-4ÐīÐąŅ†4
-4ÐīÐąŅ‡4
-ÐīÐąŅˆ4
-ÐīÐąŅ‰4
-2Ðī3Ðē
-8ÐīÐē.
-4ÐīÐēÐą4
-4ÐīÐēÐē
-4ÐīÐēÐģ4
-4ÐīÐēÐī4
-4ÐīÐēК4
-4ÐīÐēÐŋ4
-4ÐīÐēŅ‚4
-4ÐīÐēŅ„
-4ÐīÐēŅ†4
-4ÐīÐēŅ‡4
-4Ðī3Ðģ4
-8ÐīÐģ.
-4ÐīÐģÐą4
-ÐīÐģÐē4
-4ÐīÐģÐģ4
-4ÐīÐģÐī4
-ÐīÐģÐķ4
-ÐīÐģз4
-4ÐīÐģК4
-ÐīÐģÐŧ4
-ÐīÐģО4
-ÐīÐģÐ―4
-4ÐīÐģÐŋ4
-ÐīÐģŅ€4
-ÐīÐģŅ4
-4ÐīÐģŅ‚4
-ÐīÐģŅ„4
-ÐīÐģŅ…4
-4ÐīÐģŅ†4
-4ÐīÐģŅ‡4
-ÐīÐģŅˆ4
-ÐīÐģŅ‰4
+2Ðģ3Ðī2
+2Ðģ3Ðķ2
+2Ðģ3з2
+2Ðģ3Ðđ2
+2Ðģ3К2
+2Ðģ3Ðŧ2
+2Ðģ3О2
+2Ðģ3Ð―2
+2Ðģ3Ðŋ2
+2Ðģ3Ņ€2
+2Ðģ3Ņ2
+2Ðģ3Ņ‚2
+2Ðģ3Ņ„2
+2Ðģ3Ņ…2
+2Ðģ3Ņ†2
+2Ðģ3Ņ‡2
+2Ðģ3Ņˆ2
+2Ðģ3Ņ‰2
+2Ðī3Ðą2
+2Ðī3Ðē2
+2Ðī3Ðģ2
4Ðī3Ðī4
-8ÐīÐī.
-4ÐīÐīÐą4
-ÐīÐīÐē4
-4ÐīÐīÐģ4
-4ÐīÐīÐī4
-ÐīÐīÐķ4
-ÐīÐīз4
-4ÐīÐīК4
-ÐīÐīÐŧ4
-ÐīÐīО4
-ÐīÐīÐ―4
-4ÐīÐīÐŋ4
-ÐīÐīŅ€4
-ÐīÐīŅ4
-4ÐīÐīŅ‚4
-ÐīÐīŅ„4
-ÐīÐīŅ…4
-4ÐīÐīŅ†4
-4ÐīÐīŅ‡4
-ÐīÐīŅˆ4
-ÐīÐīŅ‰4
-8ÐīÐķ.
-4ÐīÐķÐą4
-2ÐīÐķÐē
-4ÐīÐķÐģ4
-4ÐīÐķÐī4
-4ÐīÐķÐķ
-2ÐīÐķз
-4ÐīÐķК4
-2ÐīÐķÐŧ
-2ÐīÐķО
-2ÐīÐķÐ―
-4ÐīÐķÐŋ4
-2ÐīÐķŅ€
-4ÐīÐķŅ
-4ÐīÐķŅ‚4
-4ÐīÐķŅ„
-4ÐīÐķŅ…
-4ÐīÐķŅ†4
-4ÐīÐķŅ‡4
-4ÐīÐķŅˆ
-2ÐīÐķŅ‰
-8Ðīз.
-4ÐīÐ·Ðą4
-2ÐīзÐē
-4ÐīзÐģ4
-4ÐīзÐī4
-2ÐīзÐķ
-4Ðīзз
-4ÐīзК4
-2ÐīзÐŧ
-2ÐīзО
-2ÐīÐ·Ð―
-4ÐīзÐŋ4
-2ÐīзŅ€
-4ÐīзŅ
-4ÐīзŅ‚4
-4ÐīзŅ„
-4ÐīзŅ…
-4ÐīзŅ†4
-4ÐīзŅ‡4
-4ÐīзŅˆ
-2ÐīзŅ‰
-ÐīÐđ4
-4Ðī3К4
-8ÐīК.
-4ÐīÐšÐą4
-ÐīКÐē4
-4ÐīКÐģ4
-4ÐīКÐī4
-ÐīКÐķ4
-ÐīКз4
-4ÐīКК4
-ÐīКÐŧ4
-ÐīКО4
-ÐīÐšÐ―4
-4ÐīКÐŋ4
-ÐīКŅ€4
-ÐīКŅ4
-4ÐīКŅ‚4
-ÐīКŅ„4
-ÐīКŅ…4
-4ÐīКŅ†4
-4ÐīКŅ‡4
-ÐīКŅˆ4
-ÐīКŅ‰4
-2Ðī3Ðŧ4
-8ÐīÐŧ.
-4ÐīÐŧÐą4
-4ÐīÐŧÐģ4
-4ÐīÐŧÐī4
-4ÐīÐŧК4
-4ÐīÐŧÐŧ
-4ÐīÐŧÐŋ4
-4ÐīÐŧŅ‚4
-4ÐīÐŧŅ†4
-4ÐīÐŧŅ‡4
-2Ðī3О4
-8ÐīО.
-4ÐīÐžÐą4
-4ÐīОÐģ4
-4ÐīОÐī4
-4ÐīОК4
-4ÐīОО
-4ÐīОÐŋ4
-4ÐīОŅ‚4
-4ÐīОŅ†4
-4ÐīОŅ‡4
-2Ðī3Ð―4
-8ÐīÐ―.
-4ÐīÐ―Ðą4
-4ÐīÐ―Ðģ4
-4ÐīÐ―Ðī4
-4ÐīÐ―Ðš4
-4ÐīÐ―Ð―
-4ÐīÐ―Ðŋ4
-4ÐīÐ―Ņ‚4
-4ÐīÐ―Ņ†4
-4ÐīÐ―Ņ‡4
-4Ðī3Ðŋ4
-8ÐīÐŋ.
-4ÐīÐŋÐą4
-ÐīÐŋÐē4
-4ÐīÐŋÐģ4
-4ÐīÐŋÐī4
-ÐīÐŋÐķ4
-ÐīÐŋз4
-4ÐīÐŋК4
-ÐīÐŋÐŧ4
-ÐīÐŋО4
-ÐīÐŋÐ―4
-4ÐīÐŋÐŋ4
-ÐīÐŋŅ€4
-ÐīÐŋŅ4
-4ÐīÐŋŅ‚4
-ÐīÐŋŅ„4
-ÐīÐŋŅ…4
-4ÐīÐŋŅ†4
-4ÐīÐŋŅ‡4
-ÐīÐŋŅˆ4
-ÐīÐŋŅ‰4
-2Ðī3Ņ€4
-8ÐīŅ€.
-4ÐīŅ€Ðą4
-4ÐīŅ€Ðģ4
-4ÐīŅ€Ðī4
-4ÐīŅ€Ðš4
-4ÐīŅ€Ðŋ4
-4ÐīŅ€Ņ€
-4ÐīŅ€Ņ‚4
-4ÐīŅ€Ņ†4
-4ÐīŅ€Ņ‡4
-4Ðī3Ņ
-8ÐīŅ.
-4ÐīŅÐą4
-4ÐīŅÐģ4
-4ÐīŅÐī4
-4ÐīŅÐķ
-4ÐīŅÐ·
-4ÐīŅÐš4
-4ÐīŅÐŋ4
-4ÐīŅŅ
-4ÐīŅŅ‚4
-4ÐīŅŅ†4
-4ÐīŅŅ‡4
-4Ðī3Ņ‚4
-8ÐīŅ‚.
-4ÐīŅ‚Ðą4
-ÐīŅ‚Ðē4
-4ÐīŅ‚Ðģ4
-4ÐīŅ‚Ðī4
-ÐīŅ‚Ðķ4
-ÐīŅ‚з4
-4ÐīŅ‚К4
-ÐīŅ‚Ðŧ4
-ÐīŅ‚О4
-ÐīŅ‚Ð―4
-4ÐīŅ‚Ðŋ4
-ÐīŅ‚Ņ€4
-ÐīŅ‚Ņ4
-4ÐīŅ‚Ņ‚4
-ÐīŅ‚Ņ„4
-ÐīŅ‚Ņ…4
-4ÐīŅ‚Ņ†4
-4ÐīŅ‚Ņ‡4
-ÐīŅ‚Ņˆ4
-ÐīŅ‚Ņ‰4
-4Ðī3Ņ„
-8ÐīŅ„.
-4ÐīŅ„Ðą4
-4ÐīŅ„Ðē
-4ÐīŅ„Ðģ4
-4ÐīŅ„Ðī4
-4ÐīŅ„Ðķ
-4ÐīŅ„з
-4ÐīŅ„К4
-4ÐīŅ„Ðŋ4
-4ÐīŅ„Ņ‚4
-4ÐīŅ„Ņ„
-4ÐīŅ„Ņ†4
-4ÐīŅ„Ņ‡4
-4Ðī3Ņ…
-8ÐīŅ….
-4ÐīŅ…Ðą4
-4ÐīŅ…Ðģ4
-4ÐīŅ…Ðī4
-4ÐīŅ…Ðķ
-4ÐīŅ…з
-4ÐīŅ…К4
-4ÐīŅ…Ðŋ4
-4ÐīŅ…Ņ‚4
-4ÐīŅ…Ņ…
-4ÐīŅ…Ņ†4
-4ÐīŅ…Ņ‡4
-4Ðī3Ņ†4
-8ÐīŅ†.
-4ÐīŅ†Ðą4
-ÐīŅ†Ðē4
-4ÐīŅ†Ðģ4
-4ÐīŅ†Ðī4
-ÐīŅ†Ðķ4
-ÐīŅ†Ð·4
-4ÐīŅ†Ðš4
-ÐīŅ†Ðŧ4
-ÐīŅ†Ðž4
-ÐīŅ†Ð―4
-4ÐīŅ†Ðŋ4
-ÐīŅ†Ņ€4
-ÐīŅ†Ņ4
-4ÐīŅ†Ņ‚4
-ÐīŅ†Ņ„4
-ÐīŅ†Ņ…4
-4ÐīŅ†Ņ†4
-4ÐīŅ†Ņ‡4
-ÐīŅ†Ņˆ4
-ÐīŅ†Ņ‰4
-4Ðī3Ņ‡4
-8ÐīŅ‡.
-4ÐīŅ‡Ðą4
-ÐīŅ‡Ðē4
-4ÐīŅ‡Ðģ4
-4ÐīŅ‡Ðī4
-ÐīŅ‡Ðķ4
-ÐīŅ‡Ð·4
-4ÐīŅ‡Ðš4
-ÐīŅ‡Ðŧ4
-ÐīŅ‡Ðž4
-ÐīŅ‡Ð―4
-4ÐīŅ‡Ðŋ4
-ÐīŅ‡Ņ€4
-ÐīŅ‡Ņ4
-4ÐīŅ‡Ņ‚4
-ÐīŅ‡Ņ„4
-ÐīŅ‡Ņ…4
-4ÐīŅ‡Ņ†4
-4ÐīŅ‡Ņ‡4
-ÐīŅ‡Ņˆ4
-ÐīŅ‡Ņ‰4
-4Ðī3Ņˆ
-8ÐīŅˆ.
-4ÐīŅˆÐą4
-4ÐīŅˆÐģ4
-4ÐīŅˆÐī4
-4ÐīŅˆÐķ
-4ÐīŅˆÐ·
-4ÐīŅˆÐš4
-4ÐīŅˆÐŋ4
-4ÐīŅˆŅ‚4
-4ÐīŅˆŅ†4
-4ÐīŅˆŅ‡4
-4ÐīŅˆŅˆ
-4Ðī3Ņ‰
-8ÐīŅ‰.
-4ÐīŅ‰Ðą4
-4ÐīŅ‰Ðģ4
-4ÐīŅ‰Ðī4
-4ÐīŅ‰Ðš4
-4ÐīŅ‰Ðŋ4
-4ÐīŅ‰Ņ‚4
-4ÐīŅ‰Ņ†4
-4ÐīŅ‰Ņ‡4
-4ÐīŅ‰Ņ‰
-Ðĩ1
-2Ðķ3Ðą
-8ÐķÐą.
-4ÐķÐąÐą
-4ÐķÐąÐķ4
-4ÐķÐąÐ·4
-4ÐķÐąÐš
-4ÐķÐąÐŋ
-4ÐķÐąŅ4
-4ÐķÐąŅ‚
-4ÐķÐąŅ„4
-4ÐķÐąŅ…4
-4ÐķÐąŅ†
-4ÐķÐąŅ‡
-4ÐķÐąŅˆ4
-2Ðķ3Ðē
-8ÐķÐē.
-4ÐķÐēÐē
-4ÐķÐēÐķ4
-4ÐķÐēŅ4
-4ÐķÐēŅ„4
-4ÐķÐēŅ…4
-4ÐķÐēŅˆ4
-2Ðķ3Ðģ
-8ÐķÐģ.
-4ÐķÐģÐģ
-4ÐķÐģÐķ4
-4ÐķÐģз4
-4ÐķÐģК
-4ÐķÐģÐŋ
-4ÐķÐģŅ4
-4ÐķÐģŅ‚
-4ÐķÐģŅ„4
-4ÐķÐģŅ…4
-4ÐķÐģŅ†
-4ÐķÐģŅ‡
-4ÐķÐģŅˆ4
-2Ðķ3Ðī
-8ÐķÐī.
-4ÐķÐīÐą
-4ÐķÐīÐģ
-4ÐķÐīÐī
-4ÐķÐīÐķ4
-4ÐķÐīз4
-4ÐķÐīК
-4ÐķÐīÐŋ
-4ÐķÐīŅ4
-4ÐķÐīŅ‚
-4ÐķÐīŅ„4
-4ÐķÐīŅ…4
-4ÐķÐīŅ†
-4ÐķÐīŅ‡
-4ÐķÐīŅˆ4
+3Ðī4Ðķ
+2Ðī3з2
+2Ðī3Ðđ2
+2Ðī3К2
+2Ðī3Ðŧ2
+2Ðī3О2
+2Ðī3Ð―2
+2Ðī3Ðŋ2
+2Ðī3Ņ€2
+2Ðī3Ņ2
+2Ðī3Ņ‚2
+2Ðī3Ņ„2
+2Ðī3Ņ…2
+2Ðī3Ņ†2
+2Ðī3Ņ‡2
+2Ðī3Ņˆ2
+2Ðī3Ņ‰2
+2Ðķ3Ðą2
+2Ðķ3Ðē2
+2Ðķ3Ðģ2
+2Ðķ3Ðī2
4Ðķ3Ðķ4
-8ÐķÐķ.
-ÐķÐķÐą4
-ÐķÐķÐē4
-ÐķÐķÐģ4
-ÐķÐķÐī4
-4ÐķÐķÐķ4
-ÐķÐķз4
-ÐķÐķК4
-ÐķÐķÐŧ4
-ÐķÐķО4
-ÐķÐķÐ―4
-ÐķÐķÐŋ4
-ÐķÐķŅ€4
-4ÐķÐķŅ4
-ÐķÐķŅ‚4
-4ÐķÐķŅ„4
-4ÐķÐķŅ…4
-ÐķÐķŅ†4
-ÐķÐķŅ‡4
-4ÐķÐķŅˆ4
-ÐķÐķŅ‰4
-2Ðķ3з
-8Ðķз.
-4ÐķзÐķ4
-4Ðķзз
-4ÐķзŅ4
-4ÐķзŅ„4
-4ÐķзŅ…4
-4ÐķзŅˆ4
-ÐķÐđ4
-4Ðķ3К
-8ÐķК.
-4ÐķÐšÐą
-4ÐķКÐģ
-4ÐķКÐī
-4ÐķКÐķ4
-4ÐķКз4
-4ÐķКК
-4ÐķКŅ4
-4ÐķКŅ„4
-4ÐķКŅ…4
-4ÐķКŅˆ4
-2Ðķ3Ðŧ4
-8ÐķÐŧ.
-4ÐķÐŧÐķ4
-4ÐķÐŧÐŧ
-4ÐķÐŧŅ4
-4ÐķÐŧŅ„4
-4ÐķÐŧŅ…4
-4ÐķÐŧŅˆ4
-2Ðķ3О4
-8ÐķО.
-4ÐķОÐķ4
-4ÐķОО
-4ÐķОŅ4
-4ÐķОŅ„4
-4ÐķОŅ…4
-4ÐķОŅˆ4
-2Ðķ3Ð―4
-8ÐķÐ―.
-4ÐķÐ―Ðķ4
-4ÐķÐ―Ð―
-4ÐķÐ―Ņ4
-4ÐķÐ―Ņ„4
-4ÐķÐ―Ņ…4
-4ÐķÐ―Ņˆ4
-4Ðķ3Ðŋ
-8ÐķÐŋ.
-4ÐķÐŋÐą
-4ÐķÐŋÐģ
-4ÐķÐŋÐī
-4ÐķÐŋÐķ4
-4ÐķÐŋз4
-4ÐķÐŋÐŋ
-4ÐķÐŋŅ4
-4ÐķÐŋŅ„4
-4ÐķÐŋŅ…4
-4ÐķÐŋŅˆ4
-2Ðķ3Ņ€4
-8ÐķŅ€.
-4ÐķŅ€Ðķ4
-4ÐķŅ€Ņ€
-4ÐķŅ€Ņ4
-4ÐķŅ€Ņ„4
-4ÐķŅ€Ņ…4
-4ÐķŅ€Ņˆ4
-4Ðķ3Ņ4
-8ÐķŅ.
-ÐķŅÐą4
-ÐķŅÐē4
-ÐķŅÐģ4
-ÐķŅÐī4
-4ÐķŅÐķ4
-4ÐķŅÐ·4
-ÐķŅÐš4
-ÐķŅÐŧ4
-ÐķŅÐž4
-ÐķŅÐ―4
-ÐķŅÐŋ4
-ÐķŅŅ€4
-4ÐķŅŅ4
-ÐķŅŅ‚4
-4ÐķŅŅ„4
-4ÐķŅŅ…4
-ÐķŅŅ†4
-ÐķŅŅ‡4
-4ÐķŅŅˆ4
-ÐķŅŅ‰4
-4Ðķ3Ņ‚
-8ÐķŅ‚.
-4ÐķŅ‚Ðą
-4ÐķŅ‚Ðģ
-4ÐķŅ‚Ðī
-4ÐķŅ‚Ðķ4
-4ÐķŅ‚з4
-4ÐķŅ‚К
-4ÐķŅ‚Ðŋ
-4ÐķŅ‚Ņ4
-4ÐķŅ‚Ņ‚
-4ÐķŅ‚Ņ„4
-4ÐķŅ‚Ņ…4
-4ÐķŅ‚Ņ†
-4ÐķŅ‚Ņ‡
-4ÐķŅ‚Ņˆ4
-4Ðķ3Ņ„4
-8ÐķŅ„.
-ÐķŅ„Ðą4
-4ÐķŅ„Ðē4
-ÐķŅ„Ðģ4
-ÐķŅ„Ðī4
-4ÐķŅ„Ðķ4
-4ÐķŅ„з4
-ÐķŅ„К4
-ÐķŅ„Ðŧ4
-ÐķŅ„О4
-ÐķŅ„Ð―4
-ÐķŅ„Ðŋ4
-ÐķŅ„Ņ€4
-4ÐķŅ„Ņ4
-ÐķŅ„Ņ‚4
-4ÐķŅ„Ņ„4
-4ÐķŅ„Ņ…4
-ÐķŅ„Ņ†4
-ÐķŅ„Ņ‡4
-4ÐķŅ„Ņˆ4
-ÐķŅ„Ņ‰4
-4Ðķ3Ņ…4
-8ÐķŅ….
-ÐķŅ…Ðą4
-ÐķŅ…Ðē4
-ÐķŅ…Ðģ4
-ÐķŅ…Ðī4
-4ÐķŅ…Ðķ4
-4ÐķŅ…з4
-ÐķŅ…К4
-ÐķŅ…Ðŧ4
-ÐķŅ…О4
-ÐķŅ…Ð―4
-ÐķŅ…Ðŋ4
-ÐķŅ…Ņ€4
-4ÐķŅ…Ņ4
-ÐķŅ…Ņ‚4
-4ÐķŅ…Ņ„4
-4ÐķŅ…Ņ…4
-ÐķŅ…Ņ†4
-ÐķŅ…Ņ‡4
-4ÐķŅ…Ņˆ4
-ÐķŅ…Ņ‰4
-4Ðķ3Ņ†
-8ÐķŅ†.
-4ÐķŅ†Ðą
-4ÐķŅ†Ðģ
-4ÐķŅ†Ðī
-4ÐķŅ†Ðķ4
-4ÐķŅ†Ð·4
-4ÐķŅ†Ðš
-4ÐķŅ†Ðŋ
-4ÐķŅ†Ņ4
-4ÐķŅ†Ņ‚
-4ÐķŅ†Ņ„4
-4ÐķŅ†Ņ…4
-4ÐķŅ†Ņ†
-4ÐķŅ†Ņ‡
-4ÐķŅ†Ņˆ4
-4Ðķ3Ņ‡
-8ÐķŅ‡.
-4ÐķŅ‡Ðą
-4ÐķŅ‡Ðģ
-4ÐķŅ‡Ðī
-4ÐķŅ‡Ðķ4
-4ÐķŅ‡Ð·4
-4ÐķŅ‡Ðš
-4ÐķŅ‡Ðŋ
-4ÐķŅ‡Ņ4
-4ÐķŅ‡Ņ‚
-4ÐķŅ‡Ņ„4
-4ÐķŅ‡Ņ…4
-4ÐķŅ‡Ņ†
-4ÐķŅ‡Ņ‡
-4ÐķŅ‡Ņˆ4
-4Ðķ3Ņˆ4
-8ÐķŅˆ.
-ÐķŅˆÐą4
-ÐķŅˆÐē4
-ÐķŅˆÐģ4
-ÐķŅˆÐī4
-4ÐķŅˆÐķ4
-4ÐķŅˆÐ·4
-ÐķŅˆÐš4
-ÐķŅˆÐŧ4
-ÐķŅˆÐž4
-ÐķŅˆÐ―4
-ÐķŅˆÐŋ4
-ÐķŅˆŅ€4
-4ÐķŅˆŅ4
-ÐķŅˆŅ‚4
-4ÐķŅˆŅ„4
-4ÐķŅˆŅ…4
-ÐķŅˆŅ†4
-ÐķŅˆŅ‡4
-4ÐķŅˆŅˆ4
-ÐķŅˆŅ‰4
-4Ðķ3Ņ‰
-8ÐķŅ‰.
-4ÐķŅ‰Ðķ4
-4ÐķŅ‰Ņ4
-4ÐķŅ‰Ņ„4
-4ÐķŅ‰Ņ…4
-4ÐķŅ‰Ņˆ4
-4ÐķŅ‰Ņ‰
-2з3Ðą
-8Ð·Ðą.
-4Ð·ÐąÐą
-4Ð·ÐąÐķ4
-4Ð·ÐąÐ·4
-4Ð·ÐąÐš
-4Ð·ÐąÐŋ
-4Ð·ÐąŅ4
-4Ð·ÐąŅ‚
-4Ð·ÐąŅ„4
-4Ð·ÐąŅ…4
-4Ð·ÐąŅ†
-4Ð·ÐąŅ‡
-4Ð·ÐąŅˆ4
-2з3Ðē
-8зÐē.
-4зÐēÐē
-4зÐēз4
-4зÐēŅ4
-4зÐēŅ„4
-4зÐēŅ…4
-4зÐēŅˆ4
-2з3Ðģ
-8зÐģ.
-4зÐģÐģ
-4зÐģÐķ4
-4зÐģз4
-4зÐģК
-4зÐģÐŋ
-4зÐģŅ4
-4зÐģŅ‚
-4зÐģŅ„4
-4зÐģŅ…4
-4зÐģŅ†
-4зÐģŅ‡
-4зÐģŅˆ4
-2з3Ðī
-8зÐī.
-4зÐīÐą
-4зÐīÐģ
-4зÐīÐī
-4зÐīÐķ4
-4зÐīз4
-4зÐīК
-4зÐīÐŋ
-4зÐīŅ4
-4зÐīŅ‚
-4зÐīŅ„4
-4зÐīŅ…4
-4зÐīŅ†
-4зÐīŅ‡
-4зÐīŅˆ4
-2з3Ðķ
-8зÐķ.
-4зÐķÐķ
-4зÐķз4
-4зÐķŅ4
-4зÐķŅ„4
-4зÐķŅ…4
-4зÐķŅˆ4
+2Ðķ3з2
+2Ðķ3Ðđ2
+2Ðķ3К2
+2Ðķ3Ðŧ2
+2Ðķ3О2
+2Ðķ3Ð―2
+2Ðķ3Ðŋ2
+2Ðķ3Ņ€2
+2Ðķ3Ņ2
+2Ðķ3Ņ‚2
+2Ðķ3Ņ„2
+2Ðķ3Ņ…2
+2Ðķ3Ņ†2
+2Ðķ3Ņ‡2
+2Ðķ3Ņˆ2
+2Ðķ3Ņ‰2
+2з3Ðą2
+2з3Ðē2
+2з3Ðģ2
+2з3Ðī2
+2з3Ðķ2
4з3з4
-8зз.
-Ð·Ð·Ðą4
-ззÐē4
-ззÐģ4
-ззÐī4
-ззÐķ4
-4ззз4
-ззК4
-ззÐŧ4
-ззО4
-Ð·Ð·Ð―4
-ззÐŋ4
-ззŅ€4
-4ззŅ4
-ззŅ‚4
-4ззŅ„4
-4ззŅ…4
-ззŅ†4
-ззŅ‡4
-4ззŅˆ4
-ззŅ‰4
-зÐđ4
-4з3К
-8зК.
-4Ð·ÐšÐą
-4зКÐģ
-4зКÐī
-4зКÐķ4
-4зКз4
-4зКК
-4зКŅ4
-4зКŅ„4
-4зКŅ…4
-4зКŅˆ4
-2з3Ðŧ4
-8зÐŧ.
-4зÐŧз4
-4зÐŧÐŧ
-4зÐŧŅ4
-4зÐŧŅ„4
-4зÐŧŅ…4
-4зÐŧŅˆ4
-2з3О4
-8зО.
-4зОз4
-4зОО
-4зОŅ4
-4зОŅ„4
-4зОŅ…4
-4зОŅˆ4
-2з3Ð―4
-8Ð·Ð―.
-4Ð·Ð―Ð·4
-4Ð·Ð―Ð―
-4Ð·Ð―Ņ4
-4Ð·Ð―Ņ„4
-4Ð·Ð―Ņ…4
-4Ð·Ð―Ņˆ4
-4з3Ðŋ
-8зÐŋ.
-4зÐŋÐą
-4зÐŋÐģ
-4зÐŋÐī
-4зÐŋÐķ4
-4зÐŋз4
-4зÐŋÐŋ
-4зÐŋŅ4
-4зÐŋŅ„4
-4зÐŋŅ…4
-4зÐŋŅˆ4
-2з3Ņ€4
-8зŅ€.
-4зŅ€Ð·4
-4зŅ€Ņ€
-4зŅ€Ņ4
-4зŅ€Ņ„4
-4зŅ€Ņ…4
-4зŅ€Ņˆ4
-4з3Ņ4
-8зŅ.
-зŅÐą4
-зŅÐē4
-зŅÐģ4
-зŅÐī4
-4зŅÐķ4
-4зŅÐ·4
-зŅÐš4
-зŅÐŧ4
-зŅÐž4
-зŅÐ―4
-зŅÐŋ4
-зŅŅ€4
-4зŅŅ4
-зŅŅ‚4
-4зŅŅ„4
-4зŅŅ…4
-зŅŅ†4
-зŅŅ‡4
-4зŅŅˆ4
-зŅŅ‰4
-4з3Ņ‚
-8зŅ‚.
-4зŅ‚Ðą
-4зŅ‚Ðģ
-4зŅ‚Ðī
-4зŅ‚Ðķ4
-4зŅ‚з4
-4зŅ‚К
-4зŅ‚Ðŋ
-4зŅ‚Ņ4
-4зŅ‚Ņ‚
-4зŅ‚Ņ„4
-4зŅ‚Ņ…4
-4зŅ‚Ņ†
-4зŅ‚Ņ‡
-4зŅ‚Ņˆ4
-4з3Ņ„4
-8зŅ„.
-зŅ„Ðą4
-4зŅ„Ðē4
-зŅ„Ðģ4
-зŅ„Ðī4
-4зŅ„Ðķ4
-4зŅ„з4
-зŅ„К4
-зŅ„Ðŧ4
-зŅ„О4
-зŅ„Ð―4
-зŅ„Ðŋ4
-зŅ„Ņ€4
-4зŅ„Ņ4
-зŅ„Ņ‚4
-4зŅ„Ņ„4
-4зŅ„Ņ…4
-зŅ„Ņ†4
-зŅ„Ņ‡4
-4зŅ„Ņˆ4
-зŅ„Ņ‰4
-4з3Ņ…4
-8зŅ….
-зŅ…Ðą4
-зŅ…Ðē4
-зŅ…Ðģ4
-зŅ…Ðī4
-4зŅ…Ðķ4
-4зŅ…з4
-зŅ…К4
-зŅ…Ðŧ4
-зŅ…О4
-зŅ…Ð―4
-зŅ…Ðŋ4
-зŅ…Ņ€4
-4зŅ…Ņ4
-зŅ…Ņ‚4
-4зŅ…Ņ„4
-4зŅ…Ņ…4
-зŅ…Ņ†4
-зŅ…Ņ‡4
-4зŅ…Ņˆ4
-зŅ…Ņ‰4
-4з3Ņ†
-8зŅ†.
-4зŅ†Ðą
-4зŅ†Ðģ
-4зŅ†Ðī
-4зŅ†Ðķ4
-4зŅ†Ð·4
-4зŅ†Ðš
-4зŅ†Ðŋ
-4зŅ†Ņ4
-4зŅ†Ņ‚
-4зŅ†Ņ„4
-4зŅ†Ņ…4
-4зŅ†Ņ†
-4зŅ†Ņ‡
-4зŅ†Ņˆ4
-4з3Ņ‡
-8зŅ‡.
-4зŅ‡Ðą
-4зŅ‡Ðģ
-4зŅ‡Ðī
-4зŅ‡Ðķ4
-4зŅ‡Ð·4
-4зŅ‡Ðš
-4зŅ‡Ðŋ
-4зŅ‡Ņ4
-4зŅ‡Ņ‚
-4зŅ‡Ņ„4
-4зŅ‡Ņ…4
-4зŅ‡Ņ†
-4зŅ‡Ņ‡
-4зŅ‡Ņˆ4
-4з3Ņˆ4
-8зŅˆ.
-зŅˆÐą4
-зŅˆÐē4
-зŅˆÐģ4
-зŅˆÐī4
-4зŅˆÐķ4
-4зŅˆÐ·4
-зŅˆÐš4
-зŅˆÐŧ4
-зŅˆÐž4
-зŅˆÐ―4
-зŅˆÐŋ4
-зŅˆŅ€4
-4зŅˆŅ4
-зŅˆŅ‚4
-4зŅˆŅ„4
-4зŅˆŅ…4
-зŅˆŅ†4
-зŅˆŅ‡4
-4зŅˆŅˆ4
-зŅˆŅ‰4
-4з3Ņ‰
-8зŅ‰.
-4зŅ‰Ð·4
-4зŅ‰Ņ4
-4зŅ‰Ņ„4
-4зŅ‰Ņ…4
-4зŅ‰Ņˆ4
-4зŅ‰Ņ‰
-Ðļ1
-4Ðđ1Ðą
-4Ðđ1Ðē
-4Ðđ1Ðģ
-4Ðđ1Ðī
-4Ðđ1Ðķ
-4Ðđ1з
-4Ðđ1К
-4Ðđ1Ðŧ
-4Ðđ1О
-4Ðđ1Ð―
-4Ðđ1Ðŋ
-4Ðđ1Ņ€
-4Ðđ1Ņ
-4Ðđ1Ņ‚
-4Ðđ1Ņ„
-4Ðđ1Ņ…
-4Ðđ1Ņ†
-4Ðđ1Ņ‡
-4Ðđ1Ņˆ
-4Ðđ1Ņ‰
-4К3Ðą4
-8ÐšÐą.
-4ÐšÐąÐą4
-ÐšÐąÐē4
-4ÐšÐąÐģ4
-4ÐšÐąÐī4
-ÐšÐąÐķ4
-ÐšÐąÐ·4
-4ÐšÐąÐš4
-ÐšÐąÐŧ4
-ÐšÐąÐž4
-ÐšÐąÐ―4
-4ÐšÐąÐŋ4
-ÐšÐąŅ€4
-ÐšÐąŅ4
-4ÐšÐąŅ‚4
-ÐšÐąŅ„4
-ÐšÐąŅ…4
-4ÐšÐąŅ†4
-4ÐšÐąŅ‡4
-ÐšÐąŅˆ4
-ÐšÐąŅ‰4
-2К3Ðē4
-8КÐē.
-4КÐēÐą4
-4КÐēÐē
-4КÐēÐģ4
-4КÐēÐī4
-4КÐēК4
-4КÐēÐŋ4
-4КÐēŅ‚4
-4КÐēŅ„
-4КÐēŅ†4
-4КÐēŅ‡4
-4К3Ðģ4
-8КÐģ.
-4КÐģÐą4
-КÐģÐē4
-4КÐģÐģ4
-4КÐģÐī4
-КÐģÐķ4
-КÐģз4
-4КÐģК4
-КÐģÐŧ4
-КÐģО4
-КÐģÐ―4
-4КÐģÐŋ4
-КÐģŅ€4
-КÐģŅ4
-4КÐģŅ‚4
-КÐģŅ„4
-КÐģŅ…4
-4КÐģŅ†4
-4КÐģŅ‡4
-КÐģŅˆ4
-КÐģŅ‰4
-4К3Ðī4
-8КÐī.
-4КÐīÐą4
-КÐīÐē4
-4КÐīÐģ4
-4КÐīÐī4
-КÐīÐķ4
-КÐīз4
-4КÐīК4
-КÐīÐŧ4
-КÐīО4
-КÐīÐ―4
-4КÐīÐŋ4
-КÐīŅ€4
-КÐīŅ4
-4КÐīŅ‚4
-КÐīŅ„4
-КÐīŅ…4
-4КÐīŅ†4
-4КÐīŅ‡4
-КÐīŅˆ4
-КÐīŅ‰4
-2К3Ðķ4
-8КÐķ.
-4КÐķÐą4
-4КÐķÐģ4
-4КÐķÐī4
-4КÐķÐķ
-4КÐķК4
-4КÐķÐŋ4
-4КÐķŅ
-4КÐķŅ‚4
-4КÐķŅ„
-4КÐķŅ…
-4КÐķŅ†4
-4КÐķŅ‡4
-4КÐķŅˆ
-2К3з4
-8Кз.
-4ÐšÐ·Ðą4
-4КзÐģ4
-4КзÐī4
-4Кзз
-4КзК4
-4КзÐŋ4
-4КзŅ
-4КзŅ‚4
-4КзŅ„
-4КзŅ…
-4КзŅ†4
-4КзŅ‡4
-4КзŅˆ
-КÐđ4
+2з3Ðđ2
+2з3К2
+2з3Ðŧ2
+2з3О2
+2з3Ð―2
+2з3Ðŋ2
+2з3Ņ€2
+2з3Ņ2
+2з3Ņ‚2
+2з3Ņ„2
+2з3Ņ…2
+2з3Ņ†2
+2з3Ņ‡2
+2з3Ņˆ2
+2з3Ņ‰2
+2Ðđ3Ðą2
+2Ðđ3Ðē2
+2Ðđ3Ðģ2
+2Ðđ3Ðī2
+2Ðđ3Ðķ2
+2Ðđ3з2
+4Ðđ3Ðđ4
+2Ðđ3К2
+2Ðđ3Ðŧ2
+2Ðđ3О2
+2Ðđ3Ð―2
+2Ðđ3Ðŋ2
+2Ðđ3Ņ€2
+2Ðđ3Ņ2
+2Ðđ3Ņ‚2
+2Ðđ3Ņ„2
+2Ðđ3Ņ…2
+2Ðđ3Ņ†2
+2Ðđ3Ņ‡2
+2Ðđ3Ņˆ2
+2Ðđ3Ņ‰2
+2К3Ðą2
+2К3Ðē2
+2К3Ðģ2
+2К3Ðī2
+2К3Ðķ2
+2К3з2
+2К3Ðđ2
4К3К4
-8КК.
-4ÐšÐšÐą4
-ККÐē4
-4ККÐģ4
-4ККÐī4
-ККÐķ4
-ККз4
-4ККК4
-ККÐŧ4
-ККО4
-ÐšÐšÐ―4
-ККÐŋ4
-ККŅ€4
-ККŅ4
-ККŅ‚4
-ККŅ„4
-ККŅ…4
-ККŅ†4
-ККŅ‡4
-ККŅˆ4
-ККŅ‰4
-2К3Ðŧ4
-8КÐŧ.
-4КÐŧÐą4
-4КÐŧÐģ4
-4КÐŧÐī4
-4КÐŧК4
-4КÐŧÐŧ
-2К3О4
-8КО.
-4ÐšÐžÐą4
-4КОÐģ4
-4КОÐī4
-4КОК4
-4КОО
-2К3Ð―4
-8ÐšÐ―.
-4ÐšÐ―Ðą4
-4ÐšÐ―Ðģ4
-4ÐšÐ―Ðī4
-4ÐšÐ―Ðš4
-4ÐšÐ―Ð―
-2К3Ðŋ
-8КÐŋ.
-4КÐŋÐą4
-4КÐŋÐģ4
-4КÐŋÐī4
-4КÐŋК4
-4КÐŋÐŋ
-2К3Ņ€4
-8КŅ€.
-4КŅ€Ðą4
-4КŅ€Ðģ4
-4КŅ€Ðī4
-4КŅ€Ðš4
-4КŅ€Ņ€
-2К3Ņ
-8КŅ.
-4КŅÐą4
-4КŅÐģ4
-4КŅÐī4
-4КŅÐķ
-4КŅÐ·
-4КŅÐš4
-4КŅÐŋ4
-4КŅŅ
-4КŅŅ‚4
-4КŅŅ†4
-4КŅŅ‡4
-2К3Ņ‚
-8КŅ‚.
-4КŅ‚Ðą4
-4КŅ‚Ðģ4
-4КŅ‚Ðī4
-4КŅ‚К4
-4КŅ‚Ðŋ
-4КŅ‚Ņ‚
-4КŅ‚Ņ†
-4КŅ‚Ņ‡
-2К3Ņ„
-8КŅ„.
-4КŅ„Ðą4
-4КŅ„Ðē
-4КŅ„Ðģ4
-4КŅ„Ðī4
-4КŅ„Ðķ
-4КŅ„з
-4КŅ„К4
-4КŅ„Ðŋ4
-4КŅ„Ņ‚4
-4КŅ„Ņ„
-4КŅ„Ņ†4
-4КŅ„Ņ‡4
-2К3Ņ…
-8КŅ….
-4КŅ…Ðą4
-4КŅ…Ðģ4
-4КŅ…Ðī4
-4КŅ…Ðķ
-4КŅ…з
-4КŅ…К4
-4КŅ…Ðŋ4
-4КŅ…Ņ‚4
-4КŅ…Ņ…
-4КŅ…Ņ†4
-4КŅ…Ņ‡4
-2К3Ņ†
-8КŅ†.
-4КŅ†Ðą4
-4КŅ†Ðģ4
-4КŅ†Ðī4
-4КŅ†Ðš4
-4КŅ†Ðŋ
-4КŅ†Ņ‚
-4КŅ†Ņ†
-4КŅ†Ņ‡
-2К3Ņ‡
-8КŅ‡.
-4КŅ‡Ðą4
-4КŅ‡Ðģ4
-4КŅ‡Ðī4
-4КŅ‡Ðš4
-4КŅ‡Ðŋ
-4КŅ‡Ņ‚
-4КŅ‡Ņ†
-4КŅ‡Ņ‡
-2К3Ņˆ
-8КŅˆ.
-4КŅˆÐą4
-4КŅˆÐģ4
-4КŅˆÐī4
-4КŅˆÐķ
-4КŅˆÐ·
-4КŅˆÐš4
-4КŅˆÐŋ4
-4КŅˆŅ‚4
-4КŅˆŅ†4
-4КŅˆŅ‡4
-4КŅˆŅˆ
-2К3Ņ‰
-8КŅ‰.
-4КŅ‰Ðą4
-4КŅ‰Ðģ4
-4КŅ‰Ðī4
-4КŅ‰Ðš4
-4КŅ‰Ņ‰
-4Ðŧ3Ðą
-8ÐŧÐą.
-4ÐŧÐąÐą
-4ÐŧÐąÐš
-4ÐŧÐąÐŧ4
-4ÐŧÐąÐŋ
-4ÐŧÐąŅ‚
-4ÐŧÐąŅ†
-4ÐŧÐąŅ‡
-4Ðŧ3Ðē
-8ÐŧÐē.
-4ÐŧÐēÐē
-4ÐŧÐēÐŧ4
-4ÐŧÐēŅ„
-4Ðŧ3Ðģ
-8ÐŧÐģ.
-4ÐŧÐģÐģ
-4ÐŧÐģК
-4ÐŧÐģÐŧ4
-4ÐŧÐģÐŋ
-4ÐŧÐģŅ‚
-4ÐŧÐģŅ†
-4ÐŧÐģŅ‡
-4Ðŧ3Ðī
-8ÐŧÐī.
-4ÐŧÐīÐą
-4ÐŧÐīÐģ
-4ÐŧÐīÐī
-4ÐŧÐīК
-4ÐŧÐīÐŧ4
-4ÐŧÐīÐŋ
-4ÐŧÐīŅ‚
-4ÐŧÐīŅ†
-4ÐŧÐīŅ‡
-4Ðŧ3Ðķ
-8ÐŧÐķ.
-4ÐŧÐķÐķ
-4ÐŧÐķÐŧ4
-4ÐŧÐķŅ
-4ÐŧÐķŅ„
-4ÐŧÐķŅ…
-4ÐŧÐķŅˆ
-4Ðŧ3з
-8Ðŧз.
-4Ðŧзз
-4ÐŧзÐŧ4
-4ÐŧзŅ
-4ÐŧзŅ„
-4ÐŧзŅ…
-4ÐŧзŅˆ
-4Ðŧ3К
-8ÐŧК.
-4ÐŧÐšÐą
-4ÐŧКÐģ
-4ÐŧКÐī
-4ÐŧКК
-4ÐŧКÐŧ4
+2К3Ðŧ2
+2К3О2
+2К3Ð―2
+2К3Ðŋ2
+2К3Ņ€2
+2К3Ņ2
+2К3Ņ‚2
+2К3Ņ„2
+2К3Ņ…2
+2К3Ņ†2
+2К3Ņ‡2
+2К3Ņˆ2
+2К3Ņ‰2
+2Ðŧ3Ðą2
+2Ðŧ3Ðē2
+2Ðŧ3Ðģ2
+2Ðŧ3Ðī2
+2Ðŧ3Ðķ2
+2Ðŧ3з2
+2Ðŧ3Ðđ2
+2Ðŧ3К2
4Ðŧ3Ðŧ4
-8ÐŧÐŧ.
-ÐŧÐŧÐą4
-ÐŧÐŧÐē4
-ÐŧÐŧÐģ4
-ÐŧÐŧÐī4
-ÐŧÐŧÐķ4
-ÐŧÐŧз4
-ÐŧÐŧК4
-4ÐŧÐŧÐŧ4
-ÐŧÐŧО4
-ÐŧÐŧÐ―4
-ÐŧÐŧÐŋ4
-ÐŧÐŧŅ€4
-ÐŧÐŧŅ4
-ÐŧÐŧŅ‚4
-ÐŧÐŧŅ„4
-ÐŧÐŧŅ…4
-ÐŧÐŧŅ†4
-ÐŧÐŧŅ‡4
-ÐŧÐŧŅˆ4
-ÐŧÐŧŅ‰4
-4Ðŧ3О
-8ÐŧО.
-4ÐŧОÐŧ4
-4ÐŧОО
-4Ðŧ3Ð―
-8ÐŧÐ―.
-4ÐŧÐ―Ðŧ4
-4ÐŧÐ―Ð―
-4Ðŧ3Ðŋ
-8ÐŧÐŋ.
-4ÐŧÐŋÐą
-4ÐŧÐŋÐģ
-4ÐŧÐŋÐī
-4ÐŧÐŋÐŧ4
-4ÐŧÐŋÐŋ
-2Ðŧ3Ņ€4
-8ÐŧŅ€.
-4ÐŧŅ€Ðŧ4
-4ÐŧŅ€Ņ€
-4Ðŧ3Ņ
-8ÐŧŅ.
-4ÐŧŅÐķ
-4ÐŧŅÐ·
-4ÐŧŅÐŧ4
-4ÐŧŅŅ
-4Ðŧ3Ņ‚
-8ÐŧŅ‚.
-4ÐŧŅ‚Ðą
-4ÐŧŅ‚Ðģ
-4ÐŧŅ‚Ðī
-4ÐŧŅ‚К
-4ÐŧŅ‚Ðŧ4
-4ÐŧŅ‚Ðŋ
-4ÐŧŅ‚Ņ‚
-4ÐŧŅ‚Ņ†
-4ÐŧŅ‚Ņ‡
-4Ðŧ3Ņ„
-8ÐŧŅ„.
-4ÐŧŅ„Ðē
-4ÐŧŅ„Ðķ
-4ÐŧŅ„з
-4ÐŧŅ„Ðŧ4
-4ÐŧŅ„Ņ„
-4Ðŧ3Ņ…
-8ÐŧŅ….
-4ÐŧŅ…Ðķ
-4ÐŧŅ…з
-4ÐŧŅ…Ðŧ4
-4ÐŧŅ…Ņ…
-4Ðŧ3Ņ†
-8ÐŧŅ†.
-4ÐŧŅ†Ðą
-4ÐŧŅ†Ðģ
-4ÐŧŅ†Ðī
-4ÐŧŅ†Ðš
-4ÐŧŅ†Ðŧ4
-4ÐŧŅ†Ðŋ
-4ÐŧŅ†Ņ‚
-4ÐŧŅ†Ņ†
-4ÐŧŅ†Ņ‡
-4Ðŧ3Ņ‡
-8ÐŧŅ‡.
-4ÐŧŅ‡Ðą
-4ÐŧŅ‡Ðģ
-4ÐŧŅ‡Ðī
-4ÐŧŅ‡Ðš
-4ÐŧŅ‡Ðŧ4
-4ÐŧŅ‡Ðŋ
-4ÐŧŅ‡Ņ‚
-4ÐŧŅ‡Ņ†
-4ÐŧŅ‡Ņ‡
-4Ðŧ3Ņˆ
-8ÐŧŅˆ.
-4ÐŧŅˆÐķ
-4ÐŧŅˆÐ·
-4ÐŧŅˆÐŧ4
-4ÐŧŅˆŅˆ
-4Ðŧ3Ņ‰
-8ÐŧŅ‰.
-4ÐŧŅ‰Ðŧ4
-4ÐŧŅ‰Ņ‰
-4О3Ðą
-8ÐžÐą.
-4ÐžÐąÐą
-4ÐžÐąÐš
-4ÐžÐąÐž4
-4ÐžÐąÐŋ
-4ÐžÐąŅ‚
-4ÐžÐąŅ†
-4ÐžÐąŅ‡
-4О3Ðē
-8ОÐē.
-4ОÐēÐē
-4ОÐēО4
-4ОÐēŅ„
-4О3Ðģ
-8ОÐģ.
-4ОÐģÐģ
-4ОÐģК
-4ОÐģО4
-4ОÐģÐŋ
-4ОÐģŅ‚
-4ОÐģŅ†
-4ОÐģŅ‡
-4О3Ðī
-8ОÐī.
-4ОÐīÐą
-4ОÐīÐģ
-4ОÐīÐī
-4ОÐīК
-4ОÐīО4
-4ОÐīÐŋ
-4ОÐīŅ‚
-4ОÐīŅ†
-4ОÐīŅ‡
-4О3Ðķ
-8ОÐķ.
-4ОÐķÐķ
-4ОÐķО4
-4ОÐķŅ
-4ОÐķŅ„
-4ОÐķŅ…
-4ОÐķŅˆ
-4О3з
-8Оз.
-4Озз
-4ОзО4
-4ОзŅ
-4ОзŅ„
-4ОзŅ…
-4ОзŅˆ
-4О3К
-8ОК.
-4ÐžÐšÐą
-4ОКÐģ
-4ОКÐī
-4ОКК
-4ОКО4
-2О3Ðŧ4
-8ОÐŧ.
-4ОÐŧÐŧ
-4ОÐŧО4
+2Ðŧ3О2
+2Ðŧ3Ð―2
+2Ðŧ3Ðŋ2
+2Ðŧ3Ņ€2
+2Ðŧ3Ņ2
+2Ðŧ3Ņ‚2
+2Ðŧ3Ņ„2
+2Ðŧ3Ņ…2
+2Ðŧ3Ņ†2
+2Ðŧ3Ņ‡2
+2Ðŧ3Ņˆ2
+2Ðŧ3Ņ‰2
+2О3Ðą2
+2О3Ðē2
+2О3Ðģ2
+2О3Ðī2
+2О3Ðķ2
+2О3з2
+2О3Ðđ2
+2О3К2
+2О3Ðŧ2
4О3О4
-8ОО.
-ÐžÐžÐą4
-ООÐē4
-ООÐģ4
-ООÐī4
-ООÐķ4
-ООз4
-ООК4
-ООÐŧ4
-4ООО4
-ÐžÐžÐ―4
-ООÐŋ4
-ООŅ€4
-ООŅ4
-ООŅ‚4
-ООŅ„4
-ООŅ…4
-ООŅ†4
-ООŅ‡4
-ООŅˆ4
-ООŅ‰4
-2О3Ð―4
-8ÐžÐ―.
-4ÐžÐ―Ðž4
-4ÐžÐ―Ð―
-4О3Ðŋ
-8ОÐŋ.
-4ОÐŋÐą
-4ОÐŋÐģ
-4ОÐŋÐī
-4ОÐŋО4
-4ОÐŋÐŋ
-2О3Ņ€4
-8ОŅ€.
-4ОŅ€Ðž4
-4ОŅ€Ņ€
-4О3Ņ
-8ОŅ.
-4ОŅÐķ
-4ОŅÐ·
-4ОŅÐž4
-4ОŅŅ
-4О3Ņ‚
-8ОŅ‚.
-4ОŅ‚Ðą
-4ОŅ‚Ðģ
-4ОŅ‚Ðī
-4ОŅ‚К
-4ОŅ‚О4
-4ОŅ‚Ðŋ
-4ОŅ‚Ņ‚
-4ОŅ‚Ņ†
-4ОŅ‚Ņ‡
-4О3Ņ„
-8ОŅ„.
-4ОŅ„Ðē
-4ОŅ„Ðķ
-4ОŅ„з
-4ОŅ„О4
-4ОŅ„Ņ„
-4О3Ņ…
-8ОŅ….
-4ОŅ…Ðķ
-4ОŅ…з
-4ОŅ…О4
-4ОŅ…Ņ…
-4О3Ņ†
-8ОŅ†.
-4ОŅ†Ðą
-4ОŅ†Ðģ
-4ОŅ†Ðī
-4ОŅ†Ðš
-4ОŅ†Ðž4
-4ОŅ†Ðŋ
-4ОŅ†Ņ‚
-4ОŅ†Ņ†
-4ОŅ†Ņ‡
-4О3Ņ‡
-8ОŅ‡.
-4ОŅ‡Ðą
-4ОŅ‡Ðģ
-4ОŅ‡Ðī
-4ОŅ‡Ðš
-4ОŅ‡Ðž4
-4ОŅ‡Ðŋ
-4ОŅ‡Ņ‚
-4ОŅ‡Ņ†
-4ОŅ‡Ņ‡
-4О3Ņˆ
-8ОŅˆ.
-4ОŅˆÐķ
-4ОŅˆÐ·
-4ОŅˆÐž4
-4ОŅˆŅˆ
-4О3Ņ‰
-8ОŅ‰.
-4ОŅ‰Ðž4
-4ОŅ‰Ņ‰
-Ð―Ð°2Ðī3з
-4Ð―3Ðą
-8Ð―Ðą.
-4Ð―ÐąÐą
-4Ð―ÐąÐš
-4Ð―ÐąÐ―4
-4Ð―ÐąÐŋ
-4Ð―ÐąŅ‚
-4Ð―ÐąŅ†
-4Ð―ÐąŅ‡
-4Ð―3Ðē
-8Ð―Ðē.
-4Ð―ÐēÐē
-4Ð―ÐēÐ―4
-4Ð―ÐēŅ„
-4Ð―3Ðģ
-8Ð―Ðģ.
-4Ð―ÐģÐģ
-4Ð―ÐģК
-4Ð―ÐģÐ―4
-4Ð―ÐģÐŋ
-4Ð―ÐģŅ‚
-4Ð―ÐģŅ†
-4Ð―ÐģŅ‡
-4Ð―3Ðī
-8Ð―Ðī.
-4Ð―ÐīÐą
-4Ð―ÐīÐģ
-4Ð―ÐīÐī
-4Ð―ÐīК
-4Ð―ÐīÐ―4
-4Ð―ÐīÐŋ
-4Ð―ÐīŅ‚
-4Ð―ÐīŅ†
-4Ð―ÐīŅ‡
-4Ð―3Ðķ
-8Ð―Ðķ.
-4Ð―ÐķÐķ
-4Ð―ÐķÐ―4
-4Ð―ÐķŅ
-4Ð―ÐķŅ„
-4Ð―ÐķŅ…
-4Ð―ÐķŅˆ
-4Ð―3з
-8Ð―Ð·.
-4Ð―Ð·Ð·
-4Ð―Ð·Ð―4
-4Ð―Ð·Ņ
-4Ð―Ð·Ņ„
-4Ð―Ð·Ņ…
-4Ð―Ð·Ņˆ
-4Ð―3К
-8Ð―Ðš.
-4Ð―ÐšÐą
-4Ð―ÐšÐģ
-4Ð―ÐšÐī
-4Ð―ÐšÐš
-4Ð―ÐšÐ―4
-2Ð―3Ðŧ4
-8Ð―Ðŧ.
-4Ð―ÐŧÐŧ
-4Ð―ÐŧÐ―4
-4Ð―3О
-8Ð―Ðž.
-4Ð―ÐžÐž
-4Ð―ÐžÐ―4
+2О3Ð―2
+2О3Ðŋ2
+2О3Ņ€2
+2О3Ņ2
+2О3Ņ‚2
+2О3Ņ„2
+2О3Ņ…2
+2О3Ņ†2
+2О3Ņ‡2
+2О3Ņˆ2
+2О3Ņ‰2
+2Ð―3Ðą2
+2Ð―3Ðē2
+2Ð―3Ðģ2
+2Ð―3Ðī2
+2Ð―3Ðķ2
+2Ð―3з2
+2Ð―3Ðđ2
+2Ð―3К2
+2Ð―3Ðŧ2
+2Ð―3О2
4Ð―3Ð―4
-8Ð―Ð―.
-Ð―Ð―Ðą4
-Ð―Ð―Ðē4
-Ð―Ð―Ðģ4
-Ð―Ð―Ðī4
-Ð―Ð―Ðķ4
-Ð―Ð―Ð·4
-Ð―Ð―Ðš4
-Ð―Ð―Ðŧ4
-Ð―Ð―Ðž4
-4Ð―Ð―Ð―4
-Ð―Ð―Ðŋ4
-Ð―Ð―Ņ€4
-Ð―Ð―Ņ4
-Ð―Ð―Ņ‚4
-Ð―Ð―Ņ„4
-Ð―Ð―Ņ…4
-Ð―Ð―Ņ†4
-Ð―Ð―Ņ‡4
-Ð―Ð―Ņˆ4
-Ð―Ð―Ņ‰4
-4Ð―3Ðŋ
-8Ð―Ðŋ.
-4Ð―ÐŋÐą
-4Ð―ÐŋÐģ
-4Ð―ÐŋÐī
-4Ð―ÐŋÐ―4
-4Ð―ÐŋÐŋ
-2Ð―3Ņ€4
-8Ð―Ņ€.
-4Ð―Ņ€Ð―4
-4Ð―Ņ€Ņ€
-4Ð―3Ņ
-8Ð―Ņ.
-4Ð―ŅÐķ
-4Ð―ŅÐ·
-4Ð―ŅÐ―4
-4Ð―ŅŅ
-4Ð―3Ņ‚
-8Ð―Ņ‚.
-4Ð―Ņ‚Ðą
-4Ð―Ņ‚Ðģ
-4Ð―Ņ‚Ðī
-4Ð―Ņ‚К
-4Ð―Ņ‚Ð―4
-4Ð―Ņ‚Ðŋ
-4Ð―Ņ‚Ņ‚
-4Ð―Ņ‚Ņ†
-4Ð―Ņ‚Ņ‡
-4Ð―3Ņ„
-8Ð―Ņ„.
-4Ð―Ņ„Ðē
-4Ð―Ņ„Ðķ
-4Ð―Ņ„з
-4Ð―Ņ„Ð―4
-4Ð―Ņ„Ņ„
-4Ð―3Ņ…
-8Ð―Ņ….
-4Ð―Ņ…Ðķ
-4Ð―Ņ…з
-4Ð―Ņ…Ð―4
-4Ð―Ņ…Ņ…
-4Ð―3Ņ†
-8Ð―Ņ†.
-4Ð―Ņ†Ðą
-4Ð―Ņ†Ðģ
-4Ð―Ņ†Ðī
-4Ð―Ņ†Ðš
-4Ð―Ņ†Ð―4
-4Ð―Ņ†Ðŋ
-4Ð―Ņ†Ņ‚
-4Ð―Ņ†Ņ†
-4Ð―Ņ†Ņ‡
-4Ð―3Ņ‡
-8Ð―Ņ‡.
-4Ð―Ņ‡Ðą
-4Ð―Ņ‡Ðģ
-4Ð―Ņ‡Ðī
-4Ð―Ņ‡Ðš
-4Ð―Ņ‡Ð―4
-4Ð―Ņ‡Ðŋ
-4Ð―Ņ‡Ņ‚
-4Ð―Ņ‡Ņ†
-4Ð―Ņ‡Ņ‡
-4Ð―3Ņˆ
-8Ð―Ņˆ.
-4Ð―ŅˆÐķ
-4Ð―ŅˆÐ·
-4Ð―ŅˆÐ―4
-4Ð―ŅˆŅˆ
-4Ð―3Ņ‰
-8Ð―Ņ‰.
-4Ð―Ņ‰Ð―4
-4Ð―Ņ‰Ņ‰
-Ðū1
-4Ðŋ3Ðą4
-8ÐŋÐą.
-4ÐŋÐąÐą4
-ÐŋÐąÐē4
-4ÐŋÐąÐģ4
-4ÐŋÐąÐī4
-ÐŋÐąÐķ4
-ÐŋÐąÐ·4
-4ÐŋÐąÐš4
-ÐŋÐąÐŧ4
-ÐŋÐąÐž4
-ÐŋÐąÐ―4
-4ÐŋÐąÐŋ4
-ÐŋÐąŅ€4
-ÐŋÐąŅ4
-4ÐŋÐąŅ‚4
-ÐŋÐąŅ„4
-ÐŋÐąŅ…4
-4ÐŋÐąŅ†4
-4ÐŋÐąŅ‡4
-ÐŋÐąŅˆ4
-ÐŋÐąŅ‰4
-2Ðŋ3Ðē4
-8ÐŋÐē.
-4ÐŋÐēÐą4
-4ÐŋÐēÐē
-4ÐŋÐēÐģ4
-4ÐŋÐēÐī4
-4ÐŋÐēК4
-4ÐŋÐēÐŋ4
-4ÐŋÐēŅ‚4
-4ÐŋÐēŅ„
-4ÐŋÐēŅ†4
-4ÐŋÐēŅ‡4
-4Ðŋ3Ðģ4
-8ÐŋÐģ.
-4ÐŋÐģÐą4
-ÐŋÐģÐē4
-4ÐŋÐģÐģ4
-4ÐŋÐģÐī4
-ÐŋÐģÐķ4
-ÐŋÐģз4
-4ÐŋÐģК4
-ÐŋÐģÐŧ4
-ÐŋÐģО4
-ÐŋÐģÐ―4
-4ÐŋÐģÐŋ4
-ÐŋÐģŅ€4
-ÐŋÐģŅ4
-4ÐŋÐģŅ‚4
-ÐŋÐģŅ„4
-ÐŋÐģŅ…4
-4ÐŋÐģŅ†4
-4ÐŋÐģŅ‡4
-ÐŋÐģŅˆ4
-ÐŋÐģŅ‰4
-4Ðŋ3Ðī4
-8ÐŋÐī.
-4ÐŋÐīÐą4
-ÐŋÐīÐē4
-4ÐŋÐīÐģ4
-4ÐŋÐīÐī4
-ÐŋÐīÐķ4
-ÐŋÐīз4
-4ÐŋÐīК4
-ÐŋÐīÐŧ4
-ÐŋÐīО4
-ÐŋÐīÐ―4
-4ÐŋÐīÐŋ4
-ÐŋÐīŅ€4
-ÐŋÐīŅ4
-4ÐŋÐīŅ‚4
-ÐŋÐīŅ„4
-ÐŋÐīŅ…4
-4ÐŋÐīŅ†4
-4ÐŋÐīŅ‡4
-ÐŋÐīŅˆ4
-ÐŋÐīŅ‰4
-2Ðŋ3Ðķ4
-8ÐŋÐķ.
-4ÐŋÐķÐą4
-4ÐŋÐķÐģ4
-4ÐŋÐķÐī4
-4ÐŋÐķÐķ
-4ÐŋÐķК4
-4ÐŋÐķÐŋ4
-4ÐŋÐķŅ
-4ÐŋÐķŅ‚4
-4ÐŋÐķŅ„
-4ÐŋÐķŅ…
-4ÐŋÐķŅ†4
-4ÐŋÐķŅ‡4
-4ÐŋÐķŅˆ
-2Ðŋ3з4
-8Ðŋз.
-4ÐŋÐ·Ðą4
-4ÐŋзÐģ4
-4ÐŋзÐī4
-4Ðŋзз
-4ÐŋзК4
-4ÐŋзÐŋ4
-4ÐŋзŅ
-4ÐŋзŅ‚4
-4ÐŋзŅ„
-4ÐŋзŅ…
-4ÐŋзŅ†4
-4ÐŋзŅ‡4
-4ÐŋзŅˆ
-ÐŋÐđ4
-2Ðŋ3К
-8ÐŋК.
-4ÐŋÐšÐą4
-4ÐŋКÐģ4
-4ÐŋКÐī4
-4ÐŋКК
-4ÐŋКÐŋ4
-2Ðŋ3Ðŧ4
-8ÐŋÐŧ.
-4ÐŋÐŧÐą4
-4ÐŋÐŧÐģ4
-4ÐŋÐŧÐī4
-4ÐŋÐŧÐŧ
-4ÐŋÐŧÐŋ4
-2Ðŋ3О4
-8ÐŋО.
-4ÐŋÐžÐą4
-4ÐŋОÐģ4
-4ÐŋОÐī4
-4ÐŋОО
-4ÐŋОÐŋ4
-2Ðŋ3Ð―4
-8ÐŋÐ―.
-4ÐŋÐ―Ðą4
-4ÐŋÐ―Ðģ4
-4ÐŋÐ―Ðī4
-4ÐŋÐ―Ð―
-4ÐŋÐ―Ðŋ4
-ÐŋÐū2Ðī3з
+2Ð―3Ðŋ2
+2Ð―3Ņ€2
+2Ð―3Ņ2
+2Ð―3Ņ‚2
+2Ð―3Ņ„2
+2Ð―3Ņ…2
+2Ð―3Ņ†2
+2Ð―3Ņ‡2
+2Ð―3Ņˆ2
+2Ð―3Ņ‰2
+2Ðŋ3Ðą2
+2Ðŋ3Ðē2
+2Ðŋ3Ðģ2
+2Ðŋ3Ðī2
+2Ðŋ3Ðķ2
+2Ðŋ3з2
+2Ðŋ3Ðđ2
+2Ðŋ3К2
+2Ðŋ3Ðŧ2
+2Ðŋ3О2
+2Ðŋ3Ð―2
4Ðŋ3Ðŋ4
-8ÐŋÐŋ.
-4ÐŋÐŋÐą4
-ÐŋÐŋÐē4
-4ÐŋÐŋÐģ4
-4ÐŋÐŋÐī4
-ÐŋÐŋÐķ4
-ÐŋÐŋз4
-ÐŋÐŋК4
-ÐŋÐŋÐŧ4
-ÐŋÐŋО4
-ÐŋÐŋÐ―4
-4ÐŋÐŋÐŋ4
-ÐŋÐŋŅ€4
-ÐŋÐŋŅ4
-ÐŋÐŋŅ‚4
-ÐŋÐŋŅ„4
-ÐŋÐŋŅ…4
-ÐŋÐŋŅ†4
-ÐŋÐŋŅ‡4
-ÐŋÐŋŅˆ4
-ÐŋÐŋŅ‰4
-2Ðŋ3Ņ€4
-8ÐŋŅ€.
-4ÐŋŅ€Ðą4
-4ÐŋŅ€Ðģ4
-4ÐŋŅ€Ðī4
-ÐŋŅ€Ðĩ2Ðī2Ðķ
-ÐŋŅ€Ðĩ2Ðī3з
-4ÐŋŅ€Ðŋ4
-4ÐŋŅ€Ņ€
-2Ðŋ3Ņ
-8ÐŋŅ.
-4ÐŋŅÐą4
-4ÐŋŅÐģ4
-4ÐŋŅÐī4
-4ÐŋŅÐķ
-4ÐŋŅÐ·
-4ÐŋŅÐš4
-4ÐŋŅÐŋ4
-4ÐŋŅŅ
-4ÐŋŅŅ‚4
-4ÐŋŅŅ†4
-4ÐŋŅŅ‡4
-2Ðŋ3Ņ‚
-8ÐŋŅ‚.
-4ÐŋŅ‚Ðą4
-4ÐŋŅ‚Ðģ4
-4ÐŋŅ‚Ðī4
-4ÐŋŅ‚К
-4ÐŋŅ‚Ðŋ4
-4ÐŋŅ‚Ņ‚
-4ÐŋŅ‚Ņ†
-4ÐŋŅ‚Ņ‡
-2Ðŋ3Ņ„
-8ÐŋŅ„.
-4ÐŋŅ„Ðą4
-4ÐŋŅ„Ðē
-4ÐŋŅ„Ðģ4
-4ÐŋŅ„Ðī4
-4ÐŋŅ„Ðķ
-4ÐŋŅ„з
-4ÐŋŅ„К4
-4ÐŋŅ„Ðŋ4
-4ÐŋŅ„Ņ‚4
-4ÐŋŅ„Ņ„
-4ÐŋŅ„Ņ†4
-4ÐŋŅ„Ņ‡4
-2Ðŋ3Ņ…
-8ÐŋŅ….
-4ÐŋŅ…Ðą4
-4ÐŋŅ…Ðģ4
-4ÐŋŅ…Ðī4
-4ÐŋŅ…Ðķ
-4ÐŋŅ…з
-4ÐŋŅ…К4
-4ÐŋŅ…Ðŋ4
-4ÐŋŅ…Ņ‚4
-4ÐŋŅ…Ņ…
-4ÐŋŅ…Ņ†4
-4ÐŋŅ…Ņ‡4
-2Ðŋ3Ņ†
-8ÐŋŅ†.
-4ÐŋŅ†Ðą4
-4ÐŋŅ†Ðģ4
-4ÐŋŅ†Ðī4
-4ÐŋŅ†Ðš
-4ÐŋŅ†Ðŋ4
-4ÐŋŅ†Ņ‚
-4ÐŋŅ†Ņ†
-4ÐŋŅ†Ņ‡
-2Ðŋ3Ņ‡
-8ÐŋŅ‡.
-4ÐŋŅ‡Ðą4
-4ÐŋŅ‡Ðģ4
-4ÐŋŅ‡Ðī4
-4ÐŋŅ‡Ðš
-4ÐŋŅ‡Ðŋ4
-4ÐŋŅ‡Ņ‚
-4ÐŋŅ‡Ņ†
-4ÐŋŅ‡Ņ‡
-2Ðŋ3Ņˆ
-8ÐŋŅˆ.
-4ÐŋŅˆÐą4
-4ÐŋŅˆÐģ4
-4ÐŋŅˆÐī4
-4ÐŋŅˆÐķ
-4ÐŋŅˆÐ·
-4ÐŋŅˆÐš4
-4ÐŋŅˆÐŋ4
-4ÐŋŅˆŅ‚4
-4ÐŋŅˆŅ†4
-4ÐŋŅˆŅ‡4
-4ÐŋŅˆŅˆ
-2Ðŋ3Ņ‰
-8ÐŋŅ‰.
-4ÐŋŅ‰Ðą4
-4ÐŋŅ‰Ðģ4
-4ÐŋŅ‰Ðī4
-4ÐŋŅ‰Ðŋ4
-4ÐŋŅ‰Ņ‰
-4Ņ€3Ðą
-8Ņ€Ðą.
-4Ņ€ÐąÐą
-4Ņ€ÐąÐš
-4Ņ€ÐąÐŋ
-4Ņ€ÐąŅ€4
-4Ņ€ÐąŅ‚
-4Ņ€ÐąŅ†
-4Ņ€ÐąŅ‡
-4Ņ€3Ðē
-8Ņ€Ðē.
-4Ņ€ÐēÐē
-4Ņ€ÐēŅ€4
-4Ņ€ÐēŅ„
-4Ņ€3Ðģ
-8Ņ€Ðģ.
-4Ņ€ÐģÐģ
-4Ņ€ÐģК
-4Ņ€ÐģÐŋ
-4Ņ€ÐģŅ€4
-4Ņ€ÐģŅ‚
-4Ņ€ÐģŅ†
-4Ņ€ÐģŅ‡
-4Ņ€3Ðī
-8Ņ€Ðī.
-4Ņ€ÐīÐą
-4Ņ€ÐīÐģ
-4Ņ€ÐīÐī
-4Ņ€ÐīК
-4Ņ€ÐīÐŋ
-4Ņ€ÐīŅ€4
-4Ņ€ÐīŅ‚
-4Ņ€ÐīŅ†
-4Ņ€ÐīŅ‡
-4Ņ€3Ðķ
-8Ņ€Ðķ.
-4Ņ€ÐķÐķ
-4Ņ€ÐķŅ€4
-4Ņ€ÐķŅ
-4Ņ€ÐķŅ„
-4Ņ€ÐķŅ…
-4Ņ€ÐķŅˆ
-4Ņ€3з
-8Ņ€Ð·.
-4Ņ€Ð·Ð·
-4Ņ€Ð·Ņ€4
-4Ņ€Ð·Ņ
-4Ņ€Ð·Ņ„
-4Ņ€Ð·Ņ…
-4Ņ€Ð·Ņˆ
-4Ņ€3К
-8Ņ€Ðš.
-4Ņ€ÐšÐą
-4Ņ€ÐšÐģ
-4Ņ€ÐšÐī
-4Ņ€ÐšÐš
-4Ņ€ÐšŅ€4
-4Ņ€3Ðŧ
-8Ņ€Ðŧ.
-4Ņ€ÐŧÐŧ
-4Ņ€ÐŧŅ€4
-4Ņ€3О
-8Ņ€Ðž.
-4Ņ€ÐžÐž
-4Ņ€ÐžŅ€4
-4Ņ€3Ð―
-8Ņ€Ð―.
-4Ņ€Ð―Ð―
-4Ņ€Ð―Ņ€4
-4Ņ€3Ðŋ
-8Ņ€Ðŋ.
-4Ņ€ÐŋÐą
-4Ņ€ÐŋÐģ
-4Ņ€ÐŋÐī
-4Ņ€ÐŋÐŋ
-4Ņ€ÐŋŅ€4
+2Ðŋ3Ņ€2
+2Ðŋ3Ņ2
+2Ðŋ3Ņ‚2
+2Ðŋ3Ņ„2
+2Ðŋ3Ņ…2
+2Ðŋ3Ņ†2
+2Ðŋ3Ņ‡2
+2Ðŋ3Ņˆ2
+2Ðŋ3Ņ‰2
+2Ņ€3Ðą2
+2Ņ€3Ðē2
+2Ņ€3Ðģ2
+2Ņ€3Ðī2
+2Ņ€3Ðķ2
+2Ņ€3з2
+2Ņ€3Ðđ2
+2Ņ€3К2
+2Ņ€3Ðŧ2
+2Ņ€3О2
+2Ņ€3Ð―2
+2Ņ€3Ðŋ2
4Ņ€3Ņ€4
-8Ņ€Ņ€.
-Ņ€Ņ€Ðą4
-Ņ€Ņ€Ðē4
-Ņ€Ņ€Ðģ4
-Ņ€Ņ€Ðī4
-Ņ€Ņ€Ðķ4
-Ņ€Ņ€Ð·4
-Ņ€Ņ€Ðš4
-Ņ€Ņ€Ðŧ4
-Ņ€Ņ€Ðž4
-Ņ€Ņ€Ð―4
-Ņ€Ņ€Ðŋ4
-4Ņ€Ņ€Ņ€4
-Ņ€Ņ€Ņ4
-Ņ€Ņ€Ņ‚4
-Ņ€Ņ€Ņ„4
-Ņ€Ņ€Ņ…4
-Ņ€Ņ€Ņ†4
-Ņ€Ņ€Ņ‡4
-Ņ€Ņ€Ņˆ4
-Ņ€Ņ€Ņ‰4
-4Ņ€3Ņ
-8Ņ€Ņ.
-4Ņ€ŅÐķ
-4Ņ€ŅÐ·
-4Ņ€ŅŅ€4
-4Ņ€ŅŅ
-4Ņ€3Ņ‚
-8Ņ€Ņ‚.
-4Ņ€Ņ‚Ðą
-4Ņ€Ņ‚Ðģ
-4Ņ€Ņ‚Ðī
-4Ņ€Ņ‚К
-4Ņ€Ņ‚Ðŋ
-4Ņ€Ņ‚Ņ€4
-4Ņ€Ņ‚Ņ‚
-4Ņ€Ņ‚Ņ†
-4Ņ€Ņ‚Ņ‡
-4Ņ€3Ņ„
-8Ņ€Ņ„.
-4Ņ€Ņ„Ðē
-4Ņ€Ņ„Ðķ
-4Ņ€Ņ„з
-4Ņ€Ņ„Ņ€4
-4Ņ€Ņ„Ņ„
-4Ņ€3Ņ…
-8Ņ€Ņ….
-4Ņ€Ņ…Ðķ
-4Ņ€Ņ…з
-4Ņ€Ņ…Ņ€4
-4Ņ€Ņ…Ņ…
-4Ņ€3Ņ†
-8Ņ€Ņ†.
-4Ņ€Ņ†Ðą
-4Ņ€Ņ†Ðģ
-4Ņ€Ņ†Ðī
-4Ņ€Ņ†Ðš
-4Ņ€Ņ†Ðŋ
-4Ņ€Ņ†Ņ€4
-4Ņ€Ņ†Ņ‚
-4Ņ€Ņ†Ņ†
-4Ņ€Ņ†Ņ‡
-4Ņ€3Ņ‡
-8Ņ€Ņ‡.
-4Ņ€Ņ‡Ðą
-4Ņ€Ņ‡Ðģ
-4Ņ€Ņ‡Ðī
-4Ņ€Ņ‡Ðš
-4Ņ€Ņ‡Ðŋ
-4Ņ€Ņ‡Ņ€4
-4Ņ€Ņ‡Ņ‚
-4Ņ€Ņ‡Ņ†
-4Ņ€Ņ‡Ņ‡
-4Ņ€3Ņˆ
-8Ņ€Ņˆ.
-4Ņ€ŅˆÐķ
-4Ņ€ŅˆÐ·
-4Ņ€ŅˆŅ€4
-4Ņ€ŅˆŅˆ
-4Ņ€3Ņ‰
-8Ņ€Ņ‰.
-4Ņ€Ņ‰Ņ€4
-4Ņ€Ņ‰Ņ‰
-2Ņ3Ðą4
-8ŅÐą.
-4ŅÐąÐą
-4ŅÐąÐķ4
-4ŅÐąÐ·4
-4ŅÐąÐš
-4ŅÐąÐŋ
-4ŅÐąŅ4
-4ŅÐąŅ‚
-4ŅÐąŅ„4
-4ŅÐąŅ…4
-4ŅÐąŅ†
-4ŅÐąŅ‡
-4ŅÐąŅˆ4
-2Ņ3Ðē4
-8ŅÐē.
-4ŅÐēÐē
-4ŅÐēÐķ4
-4ŅÐēз4
-4ŅÐēŅ4
-4ŅÐēŅ„
-2Ņ3Ðģ4
-8ŅÐģ.
-4ŅÐģÐģ
-4ŅÐģÐķ4
-4ŅÐģз4
-4ŅÐģК
-4ŅÐģÐŋ
-4ŅÐģŅ4
-4ŅÐģŅ‚
-4ŅÐģŅ„4
-4ŅÐģŅ…4
-4ŅÐģŅ†
-4ŅÐģŅ‡
-4ŅÐģŅˆ4
-2Ņ3Ðī4
-8ŅÐī.
-4ŅÐīÐą
-4ŅÐīÐģ
-4ŅÐīÐī
-4ŅÐīÐķ4
-4ŅÐīз4
-4ŅÐīК
-4ŅÐīÐŋ
-4ŅÐīŅ4
-4ŅÐīŅ‚
-4ŅÐīŅ„4
-4ŅÐīŅ…4
-4ŅÐīŅ†
-4ŅÐīŅ‡
-4ŅÐīŅˆ4
-4Ņ3Ðķ4
-8ŅÐķ.
-ŅÐķÐą4
-ŅÐķÐē4
-ŅÐķÐģ4
-ŅÐķÐī4
-4ŅÐķÐķ4
-4ŅÐķз4
-ŅÐķК4
-ŅÐķÐŧ4
-ŅÐķО4
-ŅÐķÐ―4
-ŅÐķÐŋ4
-ŅÐķŅ€4
-4ŅÐķŅ4
-ŅÐķŅ‚4
-4ŅÐķŅ„4
-4ŅÐķŅ…4
-ŅÐķŅ†4
-ŅÐķŅ‡4
-4ŅÐķŅˆ4
-ŅÐķŅ‰4
-4Ņ3з4
-8ŅÐ·.
-ŅÐ·Ðą4
-ŅÐ·Ðē4
-ŅÐ·Ðģ4
-ŅÐ·Ðī4
-4ŅÐ·Ðķ4
-4ŅÐ·Ð·4
-ŅÐ·Ðš4
-ŅÐ·Ðŧ4
-ŅÐ·Ðž4
-ŅÐ·Ð―4
-ŅÐ·Ðŋ4
-ŅÐ·Ņ€4
-4ŅÐ·Ņ4
-ŅÐ·Ņ‚4
-4ŅÐ·Ņ„4
-4ŅÐ·Ņ…4
-ŅÐ·Ņ†4
-ŅÐ·Ņ‡4
-4ŅÐ·Ņˆ4
-ŅÐ·Ņ‰4
-ŅÐđ4
-2Ņ3К
-8ŅÐš.
-4ŅÐšÐą
-4ŅÐšÐģ
-4ŅÐšÐī
-4ŅÐšÐķ4
-4ŅÐšÐ·4
-4ŅÐšÐš
-4ŅÐšŅ4
-4ŅÐšŅ„4
-4ŅÐšŅ…4
-4ŅÐšŅˆ4
-2Ņ3Ðŧ4
-8ŅÐŧ.
-4ŅÐŧÐķ4
-4ŅÐŧз4
-4ŅÐŧÐŧ
-4ŅÐŧŅ4
-2Ņ3О4
-8ŅÐž.
-4ŅÐžÐķ4
-4ŅÐžÐ·4
-4ŅÐžÐž
-4ŅÐžŅ4
-2Ņ3Ð―4
-8ŅÐ―.
-4ŅÐ―Ðķ4
-4ŅÐ―з4
-4ŅÐ―Ð―
-4ŅÐ―Ņ4
-2Ņ3Ðŋ
-8ŅÐŋ.
-4ŅÐŋÐą
-4ŅÐŋÐģ
-4ŅÐŋÐī
-4ŅÐŋÐķ4
-4ŅÐŋз4
-4ŅÐŋÐŋ
-4ŅÐŋŅ4
-4ŅÐŋŅ„4
-4ŅÐŋŅ…4
-4ŅÐŋŅˆ4
-2Ņ3Ņ€4
-8ŅŅ€.
-4ŅŅ€Ðķ4
-4ŅŅ€Ð·4
-4ŅŅ€Ņ€
-4ŅŅ€Ņ4
+2Ņ€3Ņ2
+2Ņ€3Ņ‚2
+2Ņ€3Ņ„2
+2Ņ€3Ņ…2
+2Ņ€3Ņ†2
+2Ņ€3Ņ‡2
+2Ņ€3Ņˆ2
+2Ņ€3Ņ‰2
+2Ņ3Ðą2
+2Ņ3Ðē2
+2Ņ3Ðģ2
+2Ņ3Ðī2
+2Ņ3Ðķ2
+2Ņ3з2
+2Ņ3Ðđ2
+2Ņ3К2
+2Ņ3Ðŧ2
+2Ņ3О2
+2Ņ3Ð―2
+2Ņ3Ðŋ2
+2Ņ3Ņ€2
4Ņ3Ņ4
-8ŅŅ.
-ŅŅÐą4
-ŅŅÐē4
-ŅŅÐģ4
-ŅŅÐī4
-4ŅŅÐķ4
-4ŅŅÐ·4
-ŅŅÐš4
-ŅŅÐŧ4
-ŅŅÐž4
-ŅŅÐ―4
-ŅŅÐŋ4
-ŅŅŅ€4
-4ŅŅŅ4
-ŅŅŅ‚4
-ŅŅŅ„4
-ŅŅŅ…4
-ŅŅŅ†4
-ŅŅŅ‡4
-ŅŅŅˆ4
-ŅŅŅ‰4
-2Ņ3Ņ‚
-8ŅŅ‚.
-4ŅŅ‚Ðą
-4ŅŅ‚Ðģ
-4ŅŅ‚Ðī
-4ŅŅ‚Ðķ4
-4ŅŅ‚з4
-4ŅŅ‚К
-4ŅŅ‚Ðŋ
-4ŅŅ‚Ņ4
-4ŅŅ‚Ņ‚
-4ŅŅ‚Ņ„4
-4ŅŅ‚Ņ…4
-4ŅŅ‚Ņ†
-4ŅŅ‚Ņ‡
-4ŅŅ‚Ņˆ4
-2Ņ3Ņ„
-8ŅŅ„.
-4ŅŅ„Ðē
-4ŅŅ„Ðķ4
-4ŅŅ„з4
-4ŅŅ„Ņ4
-4ŅŅ„Ņ„
-2Ņ3Ņ…
-8ŅŅ….
-4ŅŅ…Ðķ4
-4ŅŅ…з4
-4ŅŅ…Ņ4
-4ŅŅ…Ņ…
-2Ņ3Ņ†
-8ŅŅ†.
-4ŅŅ†Ðą
-4ŅŅ†Ðģ
-4ŅŅ†Ðī
-4ŅŅ†Ðķ4
-4ŅŅ†Ð·4
-4ŅŅ†Ðš
-4ŅŅ†Ðŋ
-4ŅŅ†Ņ4
-4ŅŅ†Ņ‚
-4ŅŅ†Ņ„4
-4ŅŅ†Ņ…4
-4ŅŅ†Ņ†
-4ŅŅ†Ņ‡
-4ŅŅ†Ņˆ4
-2Ņ3Ņ‡
-8ŅŅ‡.
-4ŅŅ‡Ðą
-4ŅŅ‡Ðģ
-4ŅŅ‡Ðī
-4ŅŅ‡Ðķ4
-4ŅŅ‡Ð·4
-4ŅŅ‡Ðš
-4ŅŅ‡Ðŋ
-4ŅŅ‡Ņ4
-4ŅŅ‡Ņ‚
-4ŅŅ‡Ņ„4
-4ŅŅ‡Ņ…4
-4ŅŅ‡Ņ†
-4ŅŅ‡Ņ‡
-4ŅŅ‡Ņˆ4
-2Ņ3Ņˆ
-8ŅŅˆ.
-4ŅŅˆÐķ4
-4ŅŅˆÐ·4
-4ŅŅˆŅ4
-4ŅŅˆŅˆ
-2Ņ3Ņ‰
-8ŅŅ‰.
-4ŅŅ‰Ðķ4
-4ŅŅ‰Ð·4
-4ŅŅ‰Ņ4
-4ŅŅ‰Ņ‰
-4Ņ‚3Ðą4
-8Ņ‚Ðą.
-4Ņ‚ÐąÐą4
-Ņ‚ÐąÐē4
-4Ņ‚ÐąÐģ4
-4Ņ‚ÐąÐī4
-Ņ‚ÐąÐķ4
-Ņ‚ÐąÐ·4
-4Ņ‚ÐąÐš4
-Ņ‚ÐąÐŧ4
-Ņ‚ÐąÐž4
-Ņ‚ÐąÐ―4
-4Ņ‚ÐąÐŋ4
-Ņ‚ÐąŅ€4
-Ņ‚ÐąŅ4
-4Ņ‚ÐąŅ‚4
-Ņ‚ÐąŅ„4
-Ņ‚ÐąŅ…4
-4Ņ‚ÐąŅ†4
-4Ņ‚ÐąŅ‡4
-Ņ‚ÐąŅˆ4
-Ņ‚ÐąŅ‰4
-2Ņ‚3Ðē4
-8Ņ‚Ðē.
-4Ņ‚ÐēÐą4
-4Ņ‚ÐēÐē
-4Ņ‚ÐēÐģ4
-4Ņ‚ÐēÐī4
-4Ņ‚ÐēК4
-4Ņ‚ÐēÐŋ4
-4Ņ‚ÐēŅ‚4
-4Ņ‚ÐēŅ„
-4Ņ‚ÐēŅ†4
-4Ņ‚ÐēŅ‡4
-4Ņ‚3Ðģ4
-8Ņ‚Ðģ.
-4Ņ‚ÐģÐą4
-Ņ‚ÐģÐē4
-4Ņ‚ÐģÐģ4
-4Ņ‚ÐģÐī4
-Ņ‚ÐģÐķ4
-Ņ‚Ðģз4
-4Ņ‚ÐģК4
-Ņ‚ÐģÐŧ4
-Ņ‚ÐģО4
-Ņ‚ÐģÐ―4
-4Ņ‚ÐģÐŋ4
-Ņ‚ÐģŅ€4
-Ņ‚ÐģŅ4
-4Ņ‚ÐģŅ‚4
-Ņ‚ÐģŅ„4
-Ņ‚ÐģŅ…4
-4Ņ‚ÐģŅ†4
-4Ņ‚ÐģŅ‡4
-Ņ‚ÐģŅˆ4
-Ņ‚ÐģŅ‰4
-4Ņ‚3Ðī4
-8Ņ‚Ðī.
-4Ņ‚ÐīÐą4
-Ņ‚ÐīÐē4
-4Ņ‚ÐīÐģ4
-4Ņ‚ÐīÐī4
-Ņ‚ÐīÐķ4
-Ņ‚Ðīз4
-4Ņ‚ÐīК4
-Ņ‚ÐīÐŧ4
-Ņ‚ÐīО4
-Ņ‚ÐīÐ―4
-4Ņ‚ÐīÐŋ4
-Ņ‚ÐīŅ€4
-Ņ‚ÐīŅ4
-4Ņ‚ÐīŅ‚4
-Ņ‚ÐīŅ„4
-Ņ‚ÐīŅ…4
-4Ņ‚ÐīŅ†4
-4Ņ‚ÐīŅ‡4
-Ņ‚ÐīŅˆ4
-Ņ‚ÐīŅ‰4
-2Ņ‚3Ðķ4
-8Ņ‚Ðķ.
-4Ņ‚ÐķÐą4
-4Ņ‚ÐķÐģ4
-4Ņ‚ÐķÐī4
-4Ņ‚ÐķÐķ
-4Ņ‚ÐķК4
-4Ņ‚ÐķÐŋ4
-4Ņ‚ÐķŅ
-4Ņ‚ÐķŅ‚4
-4Ņ‚ÐķŅ„
-4Ņ‚ÐķŅ…
-4Ņ‚ÐķŅ†4
-4Ņ‚ÐķŅ‡4
-4Ņ‚ÐķŅˆ
-2Ņ‚3з4
-8Ņ‚з.
-4Ņ‚Ð·Ðą4
-4Ņ‚зÐģ4
-4Ņ‚зÐī4
-4Ņ‚зз
-4Ņ‚зК4
-4Ņ‚зÐŋ4
-4Ņ‚зŅ
-4Ņ‚зŅ‚4
-4Ņ‚зŅ„
-4Ņ‚зŅ…
-4Ņ‚зŅ†4
-4Ņ‚зŅ‡4
-4Ņ‚зŅˆ
-Ņ‚Ðđ4
-4Ņ‚3К4
-8Ņ‚К.
-4Ņ‚ÐšÐą4
-Ņ‚КÐē4
-4Ņ‚КÐģ4
-4Ņ‚КÐī4
-Ņ‚КÐķ4
-Ņ‚Кз4
-4Ņ‚КК4
-Ņ‚КÐŧ4
-Ņ‚КО4
-Ņ‚ÐšÐ―4
-4Ņ‚КÐŋ4
-Ņ‚КŅ€4
-Ņ‚КŅ4
-4Ņ‚КŅ‚4
-Ņ‚КŅ„4
-Ņ‚КŅ…4
-4Ņ‚КŅ†4
-4Ņ‚КŅ‡4
-Ņ‚КŅˆ4
-Ņ‚КŅ‰4
-2Ņ‚3Ðŧ4
-8Ņ‚Ðŧ.
-4Ņ‚ÐŧÐą4
-4Ņ‚ÐŧÐģ4
-4Ņ‚ÐŧÐī4
-4Ņ‚ÐŧК4
-4Ņ‚ÐŧÐŧ
-4Ņ‚ÐŧÐŋ4
-4Ņ‚ÐŧŅ‚4
-4Ņ‚ÐŧŅ†4
-4Ņ‚ÐŧŅ‡4
-2Ņ‚3О4
-8Ņ‚О.
-4Ņ‚ÐžÐą4
-4Ņ‚ОÐģ4
-4Ņ‚ОÐī4
-4Ņ‚ОК4
-4Ņ‚ОО
-4Ņ‚ОÐŋ4
-4Ņ‚ОŅ‚4
-4Ņ‚ОŅ†4
-4Ņ‚ОŅ‡4
-2Ņ‚3Ð―4
-8Ņ‚Ð―.
-4Ņ‚Ð―Ðą4
-4Ņ‚Ð―Ðģ4
-4Ņ‚Ð―Ðī4
-4Ņ‚Ð―К4
-4Ņ‚Ð―Ð―
-4Ņ‚Ð―Ðŋ4
-4Ņ‚Ð―Ņ‚4
-4Ņ‚Ð―Ņ†4
-4Ņ‚Ð―Ņ‡4
-4Ņ‚3Ðŋ4
-8Ņ‚Ðŋ.
-4Ņ‚ÐŋÐą4
-Ņ‚ÐŋÐē4
-4Ņ‚ÐŋÐģ4
-4Ņ‚ÐŋÐī4
-Ņ‚ÐŋÐķ4
-Ņ‚Ðŋз4
-4Ņ‚ÐŋК4
-Ņ‚ÐŋÐŧ4
-Ņ‚ÐŋО4
-Ņ‚ÐŋÐ―4
-4Ņ‚ÐŋÐŋ4
-Ņ‚ÐŋŅ€4
-Ņ‚ÐŋŅ4
-4Ņ‚ÐŋŅ‚4
-Ņ‚ÐŋŅ„4
-Ņ‚ÐŋŅ…4
-4Ņ‚ÐŋŅ†4
-4Ņ‚ÐŋŅ‡4
-Ņ‚ÐŋŅˆ4
-Ņ‚ÐŋŅ‰4
-2Ņ‚3Ņ€4
-8Ņ‚Ņ€.
-4Ņ‚Ņ€Ðą4
-4Ņ‚Ņ€Ðģ4
-4Ņ‚Ņ€Ðī4
-4Ņ‚Ņ€Ðš4
-4Ņ‚Ņ€Ðŋ4
-4Ņ‚Ņ€Ņ€
-4Ņ‚Ņ€Ņ‚4
-4Ņ‚Ņ€Ņ†4
-4Ņ‚Ņ€Ņ‡4
-2Ņ‚3Ņ
-8Ņ‚Ņ.
-4Ņ‚ŅÐą4
-4Ņ‚ŅÐģ4
-4Ņ‚ŅÐī4
-4Ņ‚ŅÐķ
-4Ņ‚ŅÐ·
-4Ņ‚ŅÐš4
-4Ņ‚ŅÐŋ4
-4Ņ‚ŅŅ
-4Ņ‚ŅŅ‚4
-4Ņ‚ŅŅ†4
-4Ņ‚ŅŅ‡4
+2Ņ3Ņ‚2
+2Ņ3Ņ„2
+2Ņ3Ņ…2
+2Ņ3Ņ†2
+2Ņ3Ņ‡2
+2Ņ3Ņˆ2
+2Ņ3Ņ‰2
+2Ņ‚3Ðą2
+2Ņ‚3Ðē2
+2Ņ‚3Ðģ2
+2Ņ‚3Ðī2
+2Ņ‚3Ðķ2
+2Ņ‚3з2
+2Ņ‚3Ðđ2
+2Ņ‚3К2
+2Ņ‚3Ðŧ2
+2Ņ‚3О2
+2Ņ‚3Ð―2
+2Ņ‚3Ðŋ2
+2Ņ‚3Ņ€2
+2Ņ‚3Ņ2
4Ņ‚3Ņ‚4
-8Ņ‚Ņ‚.
-4Ņ‚Ņ‚Ðą4
-Ņ‚Ņ‚Ðē4
-4Ņ‚Ņ‚Ðģ4
-4Ņ‚Ņ‚Ðī4
-Ņ‚Ņ‚Ðķ4
-Ņ‚Ņ‚з4
-4Ņ‚Ņ‚К4
-Ņ‚Ņ‚Ðŧ4
-Ņ‚Ņ‚О4
-Ņ‚Ņ‚Ð―4
-4Ņ‚Ņ‚Ðŋ4
-Ņ‚Ņ‚Ņ€4
-Ņ‚Ņ‚Ņ4
-4Ņ‚Ņ‚Ņ‚4
-Ņ‚Ņ‚Ņ„4
-Ņ‚Ņ‚Ņ…4
-4Ņ‚Ņ‚Ņ†4
-4Ņ‚Ņ‚Ņ‡4
-Ņ‚Ņ‚Ņˆ4
-Ņ‚Ņ‚Ņ‰4
-2Ņ‚3Ņ„
-8Ņ‚Ņ„.
-4Ņ‚Ņ„Ðą4
-4Ņ‚Ņ„Ðē
-4Ņ‚Ņ„Ðģ4
-4Ņ‚Ņ„Ðī4
-4Ņ‚Ņ„Ðķ
-4Ņ‚Ņ„з
-4Ņ‚Ņ„К4
-4Ņ‚Ņ„Ðŋ4
-4Ņ‚Ņ„Ņ‚4
-4Ņ‚Ņ„Ņ„
-4Ņ‚Ņ„Ņ†4
-4Ņ‚Ņ„Ņ‡4
-2Ņ‚3Ņ…
-8Ņ‚Ņ….
-4Ņ‚Ņ…Ðą4
-4Ņ‚Ņ…Ðģ4
-4Ņ‚Ņ…Ðī4
-4Ņ‚Ņ…Ðķ
-4Ņ‚Ņ…з
-4Ņ‚Ņ…К4
-4Ņ‚Ņ…Ðŋ4
-4Ņ‚Ņ…Ņ‚4
-4Ņ‚Ņ…Ņ…
-4Ņ‚Ņ…Ņ†4
-4Ņ‚Ņ…Ņ‡4
-4Ņ‚3Ņ†4
-8Ņ‚Ņ†.
-4Ņ‚Ņ†Ðą4
-Ņ‚Ņ†Ðē4
-4Ņ‚Ņ†Ðģ4
-4Ņ‚Ņ†Ðī4
-Ņ‚Ņ†Ðķ4
-Ņ‚Ņ†Ð·4
-4Ņ‚Ņ†Ðš4
-Ņ‚Ņ†Ðŧ4
-Ņ‚Ņ†Ðž4
-Ņ‚Ņ†Ð―4
-4Ņ‚Ņ†Ðŋ4
-Ņ‚Ņ†Ņ€4
-Ņ‚Ņ†Ņ4
-4Ņ‚Ņ†Ņ‚4
-Ņ‚Ņ†Ņ„4
-Ņ‚Ņ†Ņ…4
-4Ņ‚Ņ†Ņ†4
-4Ņ‚Ņ†Ņ‡4
-Ņ‚Ņ†Ņˆ4
-Ņ‚Ņ†Ņ‰4
-4Ņ‚3Ņ‡4
-8Ņ‚Ņ‡.
-4Ņ‚Ņ‡Ðą4
-Ņ‚Ņ‡Ðē4
-4Ņ‚Ņ‡Ðģ4
-4Ņ‚Ņ‡Ðī4
-Ņ‚Ņ‡Ðķ4
-Ņ‚Ņ‡Ð·4
-4Ņ‚Ņ‡Ðš4
-Ņ‚Ņ‡Ðŧ4
-Ņ‚Ņ‡Ðž4
-Ņ‚Ņ‡Ð―4
-4Ņ‚Ņ‡Ðŋ4
-Ņ‚Ņ‡Ņ€4
-Ņ‚Ņ‡Ņ4
-4Ņ‚Ņ‡Ņ‚4
-Ņ‚Ņ‡Ņ„4
-Ņ‚Ņ‡Ņ…4
-4Ņ‚Ņ‡Ņ†4
-4Ņ‚Ņ‡Ņ‡4
-Ņ‚Ņ‡Ņˆ4
-Ņ‚Ņ‡Ņ‰4
-2Ņ‚3Ņˆ
-8Ņ‚Ņˆ.
-4Ņ‚ŅˆÐą4
-4Ņ‚ŅˆÐģ4
-4Ņ‚ŅˆÐī4
-4Ņ‚ŅˆÐķ
-4Ņ‚ŅˆÐ·
-4Ņ‚ŅˆÐš4
-4Ņ‚ŅˆÐŋ4
-4Ņ‚ŅˆŅ‚4
-4Ņ‚ŅˆŅ†4
-4Ņ‚ŅˆŅ‡4
-4Ņ‚ŅˆŅˆ
-2Ņ‚3Ņ‰
-8Ņ‚Ņ‰.
-4Ņ‚Ņ‰Ðą4
-4Ņ‚Ņ‰Ðģ4
-4Ņ‚Ņ‰Ðī4
-4Ņ‚Ņ‰Ðš4
-4Ņ‚Ņ‰Ðŋ4
-4Ņ‚Ņ‰Ņ‚4
-4Ņ‚Ņ‰Ņ†4
-4Ņ‚Ņ‰Ņ‡4
-4Ņ‚Ņ‰Ņ‰
-Ņƒ1
-2Ņ„3Ðą4
-8Ņ„Ðą.
-4Ņ„ÐąÐą
-4Ņ„ÐąÐē4
-4Ņ„ÐąÐķ4
-4Ņ„ÐąÐ·4
-4Ņ„ÐąÐš
-4Ņ„ÐąÐŋ
-4Ņ„ÐąŅ4
-4Ņ„ÐąŅ‚
-4Ņ„ÐąŅ„4
-4Ņ„ÐąŅ…4
-4Ņ„ÐąŅ†
-4Ņ„ÐąŅ‡
-4Ņ„ÐąŅˆ4
-4Ņ„3Ðē4
-8Ņ„Ðē.
-Ņ„ÐēÐą4
-4Ņ„ÐēÐē4
-Ņ„ÐēÐģ4
-Ņ„ÐēÐī4
-4Ņ„ÐēÐķ4
-4Ņ„Ðēз4
-Ņ„ÐēК4
-Ņ„ÐēÐŧ4
-Ņ„ÐēО4
-Ņ„ÐēÐ―4
-Ņ„ÐēÐŋ4
-Ņ„ÐēŅ€4
-Ņ„ÐēŅ4
-Ņ„ÐēŅ‚4
-4Ņ„ÐēŅ„4
-Ņ„ÐēŅ…4
-Ņ„ÐēŅ†4
-Ņ„ÐēŅ‡4
-Ņ„ÐēŅˆ4
-Ņ„ÐēŅ‰4
-2Ņ„3Ðģ4
-8Ņ„Ðģ.
-4Ņ„ÐģÐē4
-4Ņ„ÐģÐģ
-4Ņ„ÐģÐķ4
-4Ņ„Ðģз4
-4Ņ„ÐģК
-4Ņ„ÐģÐŋ
-4Ņ„ÐģŅ4
-4Ņ„ÐģŅ‚
-4Ņ„ÐģŅ„4
-4Ņ„ÐģŅ…4
-4Ņ„ÐģŅ†
-4Ņ„ÐģŅ‡
-4Ņ„ÐģŅˆ4
-2Ņ„3Ðī4
-8Ņ„Ðī.
-4Ņ„ÐīÐą
-4Ņ„ÐīÐē4
-4Ņ„ÐīÐģ
-4Ņ„ÐīÐī
-4Ņ„ÐīÐķ4
-4Ņ„Ðīз4
-4Ņ„ÐīК
-4Ņ„ÐīÐŋ
-4Ņ„ÐīŅ4
-4Ņ„ÐīŅ‚
-4Ņ„ÐīŅ„4
-4Ņ„ÐīŅ…4
-4Ņ„ÐīŅ†
-4Ņ„ÐīŅ‡
-4Ņ„ÐīŅˆ4
-4Ņ„3Ðķ4
-8Ņ„Ðķ.
-Ņ„ÐķÐą4
-4Ņ„ÐķÐē4
-Ņ„ÐķÐģ4
-Ņ„ÐķÐī4
-4Ņ„ÐķÐķ4
-4Ņ„Ðķз4
-Ņ„ÐķК4
-Ņ„ÐķÐŧ4
-Ņ„ÐķО4
-Ņ„ÐķÐ―4
-Ņ„ÐķÐŋ4
-Ņ„ÐķŅ€4
-4Ņ„ÐķŅ4
-Ņ„ÐķŅ‚4
-4Ņ„ÐķŅ„4
-4Ņ„ÐķŅ…4
-Ņ„ÐķŅ†4
-Ņ„ÐķŅ‡4
-4Ņ„ÐķŅˆ4
-Ņ„ÐķŅ‰4
-4Ņ„3з4
-8Ņ„з.
-Ņ„Ð·Ðą4
-4Ņ„зÐē4
-Ņ„зÐģ4
-Ņ„зÐī4
-4Ņ„зÐķ4
-4Ņ„зз4
-Ņ„зК4
-Ņ„зÐŧ4
-Ņ„зО4
-Ņ„Ð·Ð―4
-Ņ„зÐŋ4
-Ņ„зŅ€4
-4Ņ„зŅ4
-Ņ„зŅ‚4
-4Ņ„зŅ„4
-4Ņ„зŅ…4
-Ņ„зŅ†4
-Ņ„зŅ‡4
-4Ņ„зŅˆ4
-Ņ„зŅ‰4
-Ņ„Ðđ4
-2Ņ„3К
-8Ņ„К.
-4Ņ„ÐšÐą
-4Ņ„КÐē4
-4Ņ„КÐģ
-4Ņ„КÐī
-4Ņ„КÐķ4
-4Ņ„Кз4
-4Ņ„КК
-4Ņ„КŅ4
-4Ņ„КŅ„4
-4Ņ„КŅ…4
-4Ņ„КŅˆ4
-2Ņ„3Ðŧ4
-8Ņ„Ðŧ.
-4Ņ„ÐŧÐē4
-4Ņ„ÐŧÐķ4
-4Ņ„Ðŧз4
-4Ņ„ÐŧÐŧ
-4Ņ„ÐŧŅ„4
-2Ņ„3О4
-8Ņ„О.
-4Ņ„ОÐē4
-4Ņ„ОÐķ4
-4Ņ„Оз4
-4Ņ„ОО
-4Ņ„ОŅ„4
-2Ņ„3Ð―4
-8Ņ„Ð―.
-4Ņ„Ð―Ðē4
-4Ņ„Ð―Ðķ4
-4Ņ„Ð―з4
-4Ņ„Ð―Ð―
-4Ņ„Ð―Ņ„4
-2Ņ„3Ðŋ
-8Ņ„Ðŋ.
-4Ņ„ÐŋÐą
-4Ņ„ÐŋÐē4
-4Ņ„ÐŋÐģ
-4Ņ„ÐŋÐī
-4Ņ„ÐŋÐķ4
-4Ņ„Ðŋз4
-4Ņ„ÐŋÐŋ
-4Ņ„ÐŋŅ4
-4Ņ„ÐŋŅ„4
-4Ņ„ÐŋŅ…4
-4Ņ„ÐŋŅˆ4
-2Ņ„3Ņ€4
-8Ņ„Ņ€.
-4Ņ„Ņ€Ðē4
-4Ņ„Ņ€Ðķ4
-4Ņ„Ņ€Ð·4
-4Ņ„Ņ€Ņ€
-4Ņ„Ņ€Ņ„4
-2Ņ„3Ņ
-8Ņ„Ņ.
-4Ņ„ŅÐē4
-4Ņ„ŅÐķ4
-4Ņ„ŅÐ·4
-4Ņ„ŅŅ
-4Ņ„ŅŅ„4
-2Ņ„3Ņ‚
-8Ņ„Ņ‚.
-4Ņ„Ņ‚Ðą
-4Ņ„Ņ‚Ðē4
-4Ņ„Ņ‚Ðģ
-4Ņ„Ņ‚Ðī
-4Ņ„Ņ‚Ðķ4
-4Ņ„Ņ‚з4
-4Ņ„Ņ‚К
-4Ņ„Ņ‚Ðŋ
-4Ņ„Ņ‚Ņ4
-4Ņ„Ņ‚Ņ‚
-4Ņ„Ņ‚Ņ„4
-4Ņ„Ņ‚Ņ…4
-4Ņ„Ņ‚Ņ†
-4Ņ„Ņ‚Ņ‡
-4Ņ„Ņ‚Ņˆ4
+2Ņ‚3Ņ„2
+2Ņ‚3Ņ…2
+2Ņ‚3Ņ†2
+2Ņ‚3Ņ‡2
+2Ņ‚3Ņˆ2
+2Ņ‚3Ņ‰2
+2Ņ„3Ðą2
+2Ņ„3Ðē2
+2Ņ„3Ðģ2
+2Ņ„3Ðī2
+2Ņ„3Ðķ2
+2Ņ„3з2
+2Ņ„3Ðđ2
+2Ņ„3К2
+2Ņ„3Ðŧ2
+2Ņ„3О2
+2Ņ„3Ð―2
+2Ņ„3Ðŋ2
+2Ņ„3Ņ€2
+2Ņ„3Ņ2
+2Ņ„3Ņ‚2
4Ņ„3Ņ„4
-8Ņ„Ņ„.
-Ņ„Ņ„Ðą4
-4Ņ„Ņ„Ðē4
-Ņ„Ņ„Ðģ4
-Ņ„Ņ„Ðī4
-4Ņ„Ņ„Ðķ4
-4Ņ„Ņ„з4
-Ņ„Ņ„К4
-Ņ„Ņ„Ðŧ4
-Ņ„Ņ„О4
-Ņ„Ņ„Ð―4
-Ņ„Ņ„Ðŋ4
-Ņ„Ņ„Ņ€4
-Ņ„Ņ„Ņ4
-Ņ„Ņ„Ņ‚4
-4Ņ„Ņ„Ņ„4
-Ņ„Ņ„Ņ…4
-Ņ„Ņ„Ņ†4
-Ņ„Ņ„Ņ‡4
-Ņ„Ņ„Ņˆ4
-Ņ„Ņ„Ņ‰4
-2Ņ„3Ņ…
-8Ņ„Ņ….
-4Ņ„Ņ…Ðē4
-4Ņ„Ņ…Ðķ4
-4Ņ„Ņ…з4
-4Ņ„Ņ…Ņ„4
-4Ņ„Ņ…Ņ…
-2Ņ„3Ņ†
-8Ņ„Ņ†.
-4Ņ„Ņ†Ðą
-4Ņ„Ņ†Ðē4
-4Ņ„Ņ†Ðģ
-4Ņ„Ņ†Ðī
-4Ņ„Ņ†Ðķ4
-4Ņ„Ņ†Ð·4
-4Ņ„Ņ†Ðš
-4Ņ„Ņ†Ðŋ
-4Ņ„Ņ†Ņ4
-4Ņ„Ņ†Ņ‚
-4Ņ„Ņ†Ņ„4
-4Ņ„Ņ†Ņ…4
-4Ņ„Ņ†Ņ†
-4Ņ„Ņ†Ņ‡
-4Ņ„Ņ†Ņˆ4
-2Ņ„3Ņ‡
-8Ņ„Ņ‡.
-4Ņ„Ņ‡Ðą
-4Ņ„Ņ‡Ðē4
-4Ņ„Ņ‡Ðģ
-4Ņ„Ņ‡Ðī
-4Ņ„Ņ‡Ðķ4
-4Ņ„Ņ‡Ð·4
-4Ņ„Ņ‡Ðš
-4Ņ„Ņ‡Ðŋ
-4Ņ„Ņ‡Ņ4
-4Ņ„Ņ‡Ņ‚
-4Ņ„Ņ‡Ņ„4
-4Ņ„Ņ‡Ņ…4
-4Ņ„Ņ‡Ņ†
-4Ņ„Ņ‡Ņ‡
-4Ņ„Ņ‡Ņˆ4
-2Ņ„3Ņˆ
-8Ņ„Ņˆ.
-4Ņ„ŅˆÐē4
-4Ņ„ŅˆÐķ4
-4Ņ„ŅˆÐ·4
-4Ņ„ŅˆŅ„4
-4Ņ„ŅˆŅˆ
-2Ņ„3Ņ‰
-8Ņ„Ņ‰.
-4Ņ„Ņ‰Ðē4
-4Ņ„Ņ‰Ðķ4
-4Ņ„Ņ‰Ð·4
-4Ņ„Ņ‰Ņ„4
-4Ņ„Ņ‰Ņ‰
-2Ņ…3Ðą4
-8Ņ…Ðą.
-4Ņ…ÐąÐą
-4Ņ…ÐąÐķ4
-4Ņ…ÐąÐ·4
-4Ņ…ÐąÐš
-4Ņ…ÐąÐŋ
-4Ņ…ÐąŅ4
-4Ņ…ÐąŅ‚
-4Ņ…ÐąŅ„4
-4Ņ…ÐąŅ…4
-4Ņ…ÐąŅ†
-4Ņ…ÐąŅ‡
-4Ņ…ÐąŅˆ4
-2Ņ…3Ðē4
-8Ņ…Ðē.
-4Ņ…ÐēÐē
-4Ņ…ÐēÐķ4
-4Ņ…Ðēз4
-4Ņ…ÐēŅ„
-4Ņ…ÐēŅ…4
-2Ņ…3Ðģ4
-8Ņ…Ðģ.
-4Ņ…ÐģÐģ
-4Ņ…ÐģÐķ4
-4Ņ…Ðģз4
-4Ņ…ÐģК
-4Ņ…ÐģÐŋ
-4Ņ…ÐģŅ4
-4Ņ…ÐģŅ‚
-4Ņ…ÐģŅ„4
-4Ņ…ÐģŅ…4
-4Ņ…ÐģŅ†
-4Ņ…ÐģŅ‡
-4Ņ…ÐģŅˆ4
-2Ņ…3Ðī4
-8Ņ…Ðī.
-4Ņ…ÐīÐą
-4Ņ…ÐīÐģ
-4Ņ…ÐīÐī
-4Ņ…ÐīÐķ4
-4Ņ…Ðīз4
-4Ņ…ÐīК
-4Ņ…ÐīÐŋ
-4Ņ…ÐīŅ4
-4Ņ…ÐīŅ‚
-4Ņ…ÐīŅ„4
-4Ņ…ÐīŅ…4
-4Ņ…ÐīŅ†
-4Ņ…ÐīŅ‡
-4Ņ…ÐīŅˆ4
-4Ņ…3Ðķ4
-8Ņ…Ðķ.
-Ņ…ÐķÐą4
-Ņ…ÐķÐē4
-Ņ…ÐķÐģ4
-Ņ…ÐķÐī4
-4Ņ…ÐķÐķ4
-4Ņ…Ðķз4
-Ņ…ÐķК4
-Ņ…ÐķÐŧ4
-Ņ…ÐķО4
-Ņ…ÐķÐ―4
-Ņ…ÐķÐŋ4
-Ņ…ÐķŅ€4
-4Ņ…ÐķŅ4
-Ņ…ÐķŅ‚4
-4Ņ…ÐķŅ„4
-4Ņ…ÐķŅ…4
-Ņ…ÐķŅ†4
-Ņ…ÐķŅ‡4
-4Ņ…ÐķŅˆ4
-Ņ…ÐķŅ‰4
-4Ņ…3з4
-8Ņ…з.
-Ņ…Ð·Ðą4
-Ņ…зÐē4
-Ņ…зÐģ4
-Ņ…зÐī4
-4Ņ…зÐķ4
-4Ņ…зз4
-Ņ…зК4
-Ņ…зÐŧ4
-Ņ…зО4
-Ņ…Ð·Ð―4
-Ņ…зÐŋ4
-Ņ…зŅ€4
-4Ņ…зŅ4
-Ņ…зŅ‚4
-4Ņ…зŅ„4
-4Ņ…зŅ…4
-Ņ…зŅ†4
-Ņ…зŅ‡4
-4Ņ…зŅˆ4
-Ņ…зŅ‰4
-Ņ…Ðđ4
-2Ņ…3К
-8Ņ…К.
-4Ņ…ÐšÐą
-4Ņ…КÐģ
-4Ņ…КÐī
-4Ņ…КÐķ4
-4Ņ…Кз4
-4Ņ…КК
-4Ņ…КŅ4
-4Ņ…КŅ„4
-4Ņ…КŅ…4
-4Ņ…КŅˆ4
-2Ņ…3Ðŧ4
-8Ņ…Ðŧ.
-4Ņ…ÐŧÐķ4
-4Ņ…Ðŧз4
-4Ņ…ÐŧÐŧ
-4Ņ…ÐŧŅ…4
-2Ņ…3О4
-8Ņ…О.
-4Ņ…ОÐķ4
-4Ņ…Оз4
-4Ņ…ОО
-4Ņ…ОŅ…4
-2Ņ…3Ð―4
-8Ņ…Ð―.
-4Ņ…Ð―Ðķ4
-4Ņ…Ð―з4
-4Ņ…Ð―Ð―
-4Ņ…Ð―Ņ…4
-2Ņ…3Ðŋ
-8Ņ…Ðŋ.
-4Ņ…ÐŋÐą
-4Ņ…ÐŋÐģ
-4Ņ…ÐŋÐī
-4Ņ…ÐŋÐķ4
-4Ņ…Ðŋз4
-4Ņ…ÐŋÐŋ
-4Ņ…ÐŋŅ4
-4Ņ…ÐŋŅ„4
-4Ņ…ÐŋŅ…4
-4Ņ…ÐŋŅˆ4
-2Ņ…3Ņ€4
-8Ņ…Ņ€.
-4Ņ…Ņ€Ðķ4
-4Ņ…Ņ€Ð·4
-4Ņ…Ņ€Ņ€
-4Ņ…Ņ€Ņ…4
-2Ņ…3Ņ
-8Ņ…Ņ.
-4Ņ…ŅÐķ4
-4Ņ…ŅÐ·4
-4Ņ…ŅŅ
-4Ņ…ŅŅ…4
-2Ņ…3Ņ‚
-8Ņ…Ņ‚.
-4Ņ…Ņ‚Ðą
-4Ņ…Ņ‚Ðģ
-4Ņ…Ņ‚Ðī
-4Ņ…Ņ‚Ðķ4
-4Ņ…Ņ‚з4
-4Ņ…Ņ‚К
-4Ņ…Ņ‚Ðŋ
-4Ņ…Ņ‚Ņ4
-4Ņ…Ņ‚Ņ‚
-4Ņ…Ņ‚Ņ„4
-4Ņ…Ņ‚Ņ…4
-4Ņ…Ņ‚Ņ†
-4Ņ…Ņ‚Ņ‡
-4Ņ…Ņ‚Ņˆ4
-2Ņ…3Ņ„
-8Ņ…Ņ„.
-4Ņ…Ņ„Ðē
-4Ņ…Ņ„Ðķ4
-4Ņ…Ņ„з4
-4Ņ…Ņ„Ņ„
-4Ņ…Ņ„Ņ…4
+2Ņ„3Ņ…2
+2Ņ„3Ņ†2
+2Ņ„3Ņ‡2
+2Ņ„3Ņˆ2
+2Ņ„3Ņ‰2
+2Ņ…3Ðą2
+2Ņ…3Ðē2
+2Ņ…3Ðģ2
+2Ņ…3Ðī2
+2Ņ…3Ðķ2
+2Ņ…3з2
+2Ņ…3Ðđ2
+2Ņ…3К2
+2Ņ…3Ðŧ2
+2Ņ…3О2
+2Ņ…3Ð―2
+2Ņ…3Ðŋ2
+2Ņ…3Ņ€2
+2Ņ…3Ņ2
+2Ņ…3Ņ‚2
+2Ņ…3Ņ„2
4Ņ…3Ņ…4
-8Ņ…Ņ….
-Ņ…Ņ…Ðą4
-Ņ…Ņ…Ðē4
-Ņ…Ņ…Ðģ4
-Ņ…Ņ…Ðī4
-4Ņ…Ņ…Ðķ4
-4Ņ…Ņ…з4
-Ņ…Ņ…К4
-Ņ…Ņ…Ðŧ4
-Ņ…Ņ…О4
-Ņ…Ņ…Ð―4
-Ņ…Ņ…Ðŋ4
-Ņ…Ņ…Ņ€4
-Ņ…Ņ…Ņ4
-Ņ…Ņ…Ņ‚4
-Ņ…Ņ…Ņ„4
-4Ņ…Ņ…Ņ…4
-Ņ…Ņ…Ņ†4
-Ņ…Ņ…Ņ‡4
-Ņ…Ņ…Ņˆ4
-Ņ…Ņ…Ņ‰4
-2Ņ…3Ņ†
-8Ņ…Ņ†.
-4Ņ…Ņ†Ðą
-4Ņ…Ņ†Ðģ
-4Ņ…Ņ†Ðī
-4Ņ…Ņ†Ðķ4
-4Ņ…Ņ†Ð·4
-4Ņ…Ņ†Ðš
-4Ņ…Ņ†Ðŋ
-4Ņ…Ņ†Ņ4
-4Ņ…Ņ†Ņ‚
-4Ņ…Ņ†Ņ„4
-4Ņ…Ņ†Ņ…4
-4Ņ…Ņ†Ņ†
-4Ņ…Ņ†Ņ‡
-4Ņ…Ņ†Ņˆ4
-2Ņ…3Ņ‡
-8Ņ…Ņ‡.
-4Ņ…Ņ‡Ðą
-4Ņ…Ņ‡Ðģ
-4Ņ…Ņ‡Ðī
-4Ņ…Ņ‡Ðķ4
-4Ņ…Ņ‡Ð·4
-4Ņ…Ņ‡Ðš
-4Ņ…Ņ‡Ðŋ
-4Ņ…Ņ‡Ņ4
-4Ņ…Ņ‡Ņ‚
-4Ņ…Ņ‡Ņ„4
-4Ņ…Ņ‡Ņ…4
-4Ņ…Ņ‡Ņ†
-4Ņ…Ņ‡Ņ‡
-4Ņ…Ņ‡Ņˆ4
-2Ņ…3Ņˆ
-8Ņ…Ņˆ.
-4Ņ…ŅˆÐķ4
-4Ņ…ŅˆÐ·4
-4Ņ…ŅˆŅ…4
-4Ņ…ŅˆŅˆ
-2Ņ…3Ņ‰
-8Ņ…Ņ‰.
-4Ņ…Ņ‰Ðķ4
-4Ņ…Ņ‰Ð·4
-4Ņ…Ņ‰Ņ…4
-4Ņ…Ņ‰Ņ‰
-4Ņ†3Ðą4
-8Ņ†Ðą.
-4Ņ†ÐąÐą4
-Ņ†ÐąÐē4
-4Ņ†ÐąÐģ4
-4Ņ†ÐąÐī4
-Ņ†ÐąÐķ4
-Ņ†ÐąÐ·4
-4Ņ†ÐąÐš4
-Ņ†ÐąÐŧ4
-Ņ†ÐąÐž4
-Ņ†ÐąÐ―4
-4Ņ†ÐąÐŋ4
-Ņ†ÐąŅ€4
-Ņ†ÐąŅ4
-4Ņ†ÐąŅ‚4
-Ņ†ÐąŅ„4
-Ņ†ÐąŅ…4
-4Ņ†ÐąŅ†4
-4Ņ†ÐąŅ‡4
-Ņ†ÐąŅˆ4
-Ņ†ÐąŅ‰4
-2Ņ†3Ðē4
-8Ņ†Ðē.
-4Ņ†ÐēÐą4
-4Ņ†ÐēÐē
-4Ņ†ÐēÐģ4
-4Ņ†ÐēÐī4
-4Ņ†ÐēК4
-4Ņ†ÐēÐŋ4
-4Ņ†ÐēŅ‚4
-4Ņ†ÐēŅ„
-4Ņ†ÐēŅ†4
-4Ņ†ÐēŅ‡4
-4Ņ†3Ðģ4
-8Ņ†Ðģ.
-4Ņ†ÐģÐą4
-Ņ†ÐģÐē4
-4Ņ†ÐģÐģ4
-4Ņ†ÐģÐī4
-Ņ†ÐģÐķ4
-Ņ†Ðģз4
-4Ņ†ÐģК4
-Ņ†ÐģÐŧ4
-Ņ†ÐģО4
-Ņ†ÐģÐ―4
-4Ņ†ÐģÐŋ4
-Ņ†ÐģŅ€4
-Ņ†ÐģŅ4
-4Ņ†ÐģŅ‚4
-Ņ†ÐģŅ„4
-Ņ†ÐģŅ…4
-4Ņ†ÐģŅ†4
-4Ņ†ÐģŅ‡4
-Ņ†ÐģŅˆ4
-Ņ†ÐģŅ‰4
-4Ņ†3Ðī4
-8Ņ†Ðī.
-4Ņ†ÐīÐą4
-Ņ†ÐīÐē4
-4Ņ†ÐīÐģ4
-4Ņ†ÐīÐī4
-Ņ†ÐīÐķ4
-Ņ†Ðīз4
-4Ņ†ÐīК4
-Ņ†ÐīÐŧ4
-Ņ†ÐīО4
-Ņ†ÐīÐ―4
-4Ņ†ÐīÐŋ4
-Ņ†ÐīŅ€4
-Ņ†ÐīŅ4
-4Ņ†ÐīŅ‚4
-Ņ†ÐīŅ„4
-Ņ†ÐīŅ…4
-4Ņ†ÐīŅ†4
-4Ņ†ÐīŅ‡4
-Ņ†ÐīŅˆ4
-Ņ†ÐīŅ‰4
-2Ņ†3Ðķ4
-8Ņ†Ðķ.
-4Ņ†ÐķÐą4
-4Ņ†ÐķÐģ4
-4Ņ†ÐķÐī4
-4Ņ†ÐķÐķ
-4Ņ†ÐķК4
-4Ņ†ÐķÐŋ4
-4Ņ†ÐķŅ
-4Ņ†ÐķŅ‚4
-4Ņ†ÐķŅ„
-4Ņ†ÐķŅ…
-4Ņ†ÐķŅ†4
-4Ņ†ÐķŅ‡4
-4Ņ†ÐķŅˆ
-2Ņ†3з4
-8Ņ†Ð·.
-4Ņ†Ð·Ðą4
-4Ņ†Ð·Ðģ4
-4Ņ†Ð·Ðī4
-4Ņ†Ð·Ð·
-4Ņ†Ð·Ðš4
-4Ņ†Ð·Ðŋ4
-4Ņ†Ð·Ņ
-4Ņ†Ð·Ņ‚4
-4Ņ†Ð·Ņ„
-4Ņ†Ð·Ņ…
-4Ņ†Ð·Ņ†4
-4Ņ†Ð·Ņ‡4
-4Ņ†Ð·Ņˆ
-Ņ†Ðđ4
-4Ņ†3К4
-8Ņ†Ðš.
-4Ņ†ÐšÐą4
-Ņ†ÐšÐē4
-4Ņ†ÐšÐģ4
-4Ņ†ÐšÐī4
-Ņ†ÐšÐķ4
-Ņ†ÐšÐ·4
-4Ņ†ÐšÐš4
-Ņ†ÐšÐŧ4
-Ņ†ÐšÐž4
-Ņ†ÐšÐ―4
-4Ņ†ÐšÐŋ4
-Ņ†ÐšŅ€4
-Ņ†ÐšŅ4
-4Ņ†ÐšŅ‚4
-Ņ†ÐšŅ„4
-Ņ†ÐšŅ…4
-4Ņ†ÐšŅ†4
-4Ņ†ÐšŅ‡4
-Ņ†ÐšŅˆ4
-Ņ†ÐšŅ‰4
-2Ņ†3Ðŧ4
-8Ņ†Ðŧ.
-4Ņ†ÐŧÐą4
-4Ņ†ÐŧÐģ4
-4Ņ†ÐŧÐī4
-4Ņ†ÐŧК4
-4Ņ†ÐŧÐŧ
-4Ņ†ÐŧÐŋ4
-4Ņ†ÐŧŅ‚4
-4Ņ†ÐŧŅ†4
-4Ņ†ÐŧŅ‡4
-2Ņ†3О4
-8Ņ†Ðž.
-4Ņ†ÐžÐą4
-4Ņ†ÐžÐģ4
-4Ņ†ÐžÐī4
-4Ņ†ÐžÐš4
-4Ņ†ÐžÐž
-4Ņ†ÐžÐŋ4
-4Ņ†ÐžŅ‚4
-4Ņ†ÐžŅ†4
-4Ņ†ÐžŅ‡4
-2Ņ†3Ð―4
-8Ņ†Ð―.
-4Ņ†Ð―Ðą4
-4Ņ†Ð―Ðģ4
-4Ņ†Ð―Ðī4
-4Ņ†Ð―К4
-4Ņ†Ð―Ð―
-4Ņ†Ð―Ðŋ4
-4Ņ†Ð―Ņ‚4
-4Ņ†Ð―Ņ†4
-4Ņ†Ð―Ņ‡4
-4Ņ†3Ðŋ4
-8Ņ†Ðŋ.
-4Ņ†ÐŋÐą4
-Ņ†ÐŋÐē4
-4Ņ†ÐŋÐģ4
-4Ņ†ÐŋÐī4
-Ņ†ÐŋÐķ4
-Ņ†Ðŋз4
-4Ņ†ÐŋК4
-Ņ†ÐŋÐŧ4
-Ņ†ÐŋО4
-Ņ†ÐŋÐ―4
-4Ņ†ÐŋÐŋ4
-Ņ†ÐŋŅ€4
-Ņ†ÐŋŅ4
-4Ņ†ÐŋŅ‚4
-Ņ†ÐŋŅ„4
-Ņ†ÐŋŅ…4
-4Ņ†ÐŋŅ†4
-4Ņ†ÐŋŅ‡4
-Ņ†ÐŋŅˆ4
-Ņ†ÐŋŅ‰4
-2Ņ†3Ņ€4
-8Ņ†Ņ€.
-4Ņ†Ņ€Ðą4
-4Ņ†Ņ€Ðģ4
-4Ņ†Ņ€Ðī4
-4Ņ†Ņ€Ðš4
-4Ņ†Ņ€Ðŋ4
-4Ņ†Ņ€Ņ€
-4Ņ†Ņ€Ņ‚4
-4Ņ†Ņ€Ņ†4
-4Ņ†Ņ€Ņ‡4
-2Ņ†3Ņ
-8Ņ†Ņ.
-4Ņ†ŅÐą4
-4Ņ†ŅÐģ4
-4Ņ†ŅÐī4
-4Ņ†ŅÐķ
-4Ņ†ŅÐ·
-4Ņ†ŅÐš4
-4Ņ†ŅÐŋ4
-4Ņ†ŅŅ
-4Ņ†ŅŅ‚4
-4Ņ†ŅŅ†4
-4Ņ†ŅŅ‡4
-4Ņ†3Ņ‚4
-8Ņ†Ņ‚.
-4Ņ†Ņ‚Ðą4
-Ņ†Ņ‚Ðē4
-4Ņ†Ņ‚Ðģ4
-4Ņ†Ņ‚Ðī4
-Ņ†Ņ‚Ðķ4
-Ņ†Ņ‚з4
-4Ņ†Ņ‚К4
-Ņ†Ņ‚Ðŧ4
-Ņ†Ņ‚О4
-Ņ†Ņ‚Ð―4
-4Ņ†Ņ‚Ðŋ4
-Ņ†Ņ‚Ņ€4
-Ņ†Ņ‚Ņ4
-4Ņ†Ņ‚Ņ‚4
-Ņ†Ņ‚Ņ„4
-Ņ†Ņ‚Ņ…4
-4Ņ†Ņ‚Ņ†4
-4Ņ†Ņ‚Ņ‡4
-Ņ†Ņ‚Ņˆ4
-Ņ†Ņ‚Ņ‰4
-2Ņ†3Ņ„
-8Ņ†Ņ„.
-4Ņ†Ņ„Ðą4
-4Ņ†Ņ„Ðē
-4Ņ†Ņ„Ðģ4
-4Ņ†Ņ„Ðī4
-4Ņ†Ņ„Ðķ
-4Ņ†Ņ„з
-4Ņ†Ņ„К4
-4Ņ†Ņ„Ðŋ4
-4Ņ†Ņ„Ņ‚4
-4Ņ†Ņ„Ņ„
-4Ņ†Ņ„Ņ†4
-4Ņ†Ņ„Ņ‡4
-2Ņ†3Ņ…
-8Ņ†Ņ….
-4Ņ†Ņ…Ðą4
-4Ņ†Ņ…Ðģ4
-4Ņ†Ņ…Ðī4
-4Ņ†Ņ…Ðķ
-4Ņ†Ņ…з
-4Ņ†Ņ…К4
-4Ņ†Ņ…Ðŋ4
-4Ņ†Ņ…Ņ‚4
-4Ņ†Ņ…Ņ…
-4Ņ†Ņ…Ņ†4
-4Ņ†Ņ…Ņ‡4
+2Ņ…3Ņ†2
+2Ņ…3Ņ‡2
+2Ņ…3Ņˆ2
+2Ņ…3Ņ‰2
+2Ņ†3Ðą2
+2Ņ†3Ðē2
+2Ņ†3Ðģ2
+2Ņ†3Ðī2
+2Ņ†3Ðķ2
+2Ņ†3з2
+2Ņ†3Ðđ2
+2Ņ†3К2
+2Ņ†3Ðŧ2
+2Ņ†3О2
+2Ņ†3Ð―2
+2Ņ†3Ðŋ2
+2Ņ†3Ņ€2
+2Ņ†3Ņ2
+2Ņ†3Ņ‚2
+2Ņ†3Ņ„2
+2Ņ†3Ņ…2
4Ņ†3Ņ†4
-8Ņ†Ņ†.
-4Ņ†Ņ†Ðą4
-Ņ†Ņ†Ðē4
-4Ņ†Ņ†Ðģ4
-4Ņ†Ņ†Ðī4
-Ņ†Ņ†Ðķ4
-Ņ†Ņ†Ð·4
-4Ņ†Ņ†Ðš4
-Ņ†Ņ†Ðŧ4
-Ņ†Ņ†Ðž4
-Ņ†Ņ†Ð―4
-4Ņ†Ņ†Ðŋ4
-Ņ†Ņ†Ņ€4
-Ņ†Ņ†Ņ4
-4Ņ†Ņ†Ņ‚4
-Ņ†Ņ†Ņ„4
-Ņ†Ņ†Ņ…4
-4Ņ†Ņ†Ņ†4
-4Ņ†Ņ†Ņ‡4
-Ņ†Ņ†Ņˆ4
-Ņ†Ņ†Ņ‰4
-4Ņ†3Ņ‡4
-8Ņ†Ņ‡.
-4Ņ†Ņ‡Ðą4
-Ņ†Ņ‡Ðē4
-4Ņ†Ņ‡Ðģ4
-4Ņ†Ņ‡Ðī4
-Ņ†Ņ‡Ðķ4
-Ņ†Ņ‡Ð·4
-4Ņ†Ņ‡Ðš4
-Ņ†Ņ‡Ðŧ4
-Ņ†Ņ‡Ðž4
-Ņ†Ņ‡Ð―4
-4Ņ†Ņ‡Ðŋ4
-Ņ†Ņ‡Ņ€4
-Ņ†Ņ‡Ņ4
-4Ņ†Ņ‡Ņ‚4
-Ņ†Ņ‡Ņ„4
-Ņ†Ņ‡Ņ…4
-4Ņ†Ņ‡Ņ†4
-4Ņ†Ņ‡Ņ‡4
-Ņ†Ņ‡Ņˆ4
-Ņ†Ņ‡Ņ‰4
-2Ņ†3Ņˆ
-8Ņ†Ņˆ.
-4Ņ†ŅˆÐą4
-4Ņ†ŅˆÐģ4
-4Ņ†ŅˆÐī4
-4Ņ†ŅˆÐķ
-4Ņ†ŅˆÐ·
-4Ņ†ŅˆÐš4
-4Ņ†ŅˆÐŋ4
-4Ņ†ŅˆŅ‚4
-4Ņ†ŅˆŅ†4
-4Ņ†ŅˆŅ‡4
-4Ņ†ŅˆŅˆ
-2Ņ†3Ņ‰
-8Ņ†Ņ‰.
-4Ņ†Ņ‰Ðą4
-4Ņ†Ņ‰Ðģ4
-4Ņ†Ņ‰Ðī4
-4Ņ†Ņ‰Ðš4
-4Ņ†Ņ‰Ðŋ4
-4Ņ†Ņ‰Ņ‚4
-4Ņ†Ņ‰Ņ†4
-4Ņ†Ņ‰Ņ‡4
-4Ņ†Ņ‰Ņ‰
-4Ņ‡3Ðą4
-8Ņ‡Ðą.
-4Ņ‡ÐąÐą4
-Ņ‡ÐąÐē4
-4Ņ‡ÐąÐģ4
-4Ņ‡ÐąÐī4
-Ņ‡ÐąÐķ4
-Ņ‡ÐąÐ·4
-4Ņ‡ÐąÐš4
-Ņ‡ÐąÐŧ4
-Ņ‡ÐąÐž4
-Ņ‡ÐąÐ―4
-4Ņ‡ÐąÐŋ4
-Ņ‡ÐąŅ€4
-Ņ‡ÐąŅ4
-4Ņ‡ÐąŅ‚4
-Ņ‡ÐąŅ„4
-Ņ‡ÐąŅ…4
-4Ņ‡ÐąŅ†4
-4Ņ‡ÐąŅ‡4
-Ņ‡ÐąŅˆ4
-Ņ‡ÐąŅ‰4
-2Ņ‡3Ðē4
-8Ņ‡Ðē.
-4Ņ‡ÐēÐą4
-4Ņ‡ÐēÐē
-4Ņ‡ÐēÐģ4
-4Ņ‡ÐēÐī4
-4Ņ‡ÐēК4
-4Ņ‡ÐēÐŋ4
-4Ņ‡ÐēŅ‚4
-4Ņ‡ÐēŅ„
-4Ņ‡ÐēŅ†4
-4Ņ‡ÐēŅ‡4
-4Ņ‡3Ðģ4
-8Ņ‡Ðģ.
-4Ņ‡ÐģÐą4
-Ņ‡ÐģÐē4
-4Ņ‡ÐģÐģ4
-4Ņ‡ÐģÐī4
-Ņ‡ÐģÐķ4
-Ņ‡Ðģз4
-4Ņ‡ÐģК4
-Ņ‡ÐģÐŧ4
-Ņ‡ÐģО4
-Ņ‡ÐģÐ―4
-4Ņ‡ÐģÐŋ4
-Ņ‡ÐģŅ€4
-Ņ‡ÐģŅ4
-4Ņ‡ÐģŅ‚4
-Ņ‡ÐģŅ„4
-Ņ‡ÐģŅ…4
-4Ņ‡ÐģŅ†4
-4Ņ‡ÐģŅ‡4
-Ņ‡ÐģŅˆ4
-Ņ‡ÐģŅ‰4
-4Ņ‡3Ðī4
-8Ņ‡Ðī.
-4Ņ‡ÐīÐą4
-Ņ‡ÐīÐē4
-4Ņ‡ÐīÐģ4
-4Ņ‡ÐīÐī4
-Ņ‡ÐīÐķ4
-Ņ‡Ðīз4
-4Ņ‡ÐīК4
-Ņ‡ÐīÐŧ4
-Ņ‡ÐīО4
-Ņ‡ÐīÐ―4
-4Ņ‡ÐīÐŋ4
-Ņ‡ÐīŅ€4
-Ņ‡ÐīŅ4
-4Ņ‡ÐīŅ‚4
-Ņ‡ÐīŅ„4
-Ņ‡ÐīŅ…4
-4Ņ‡ÐīŅ†4
-4Ņ‡ÐīŅ‡4
-Ņ‡ÐīŅˆ4
-Ņ‡ÐīŅ‰4
-2Ņ‡3Ðķ4
-8Ņ‡Ðķ.
-4Ņ‡ÐķÐą4
-4Ņ‡ÐķÐģ4
-4Ņ‡ÐķÐī4
-4Ņ‡ÐķÐķ
-4Ņ‡ÐķК4
-4Ņ‡ÐķÐŋ4
-4Ņ‡ÐķŅ
-4Ņ‡ÐķŅ‚4
-4Ņ‡ÐķŅ„
-4Ņ‡ÐķŅ…
-4Ņ‡ÐķŅ†4
-4Ņ‡ÐķŅ‡4
-4Ņ‡ÐķŅˆ
-2Ņ‡3з4
-8Ņ‡Ð·.
-4Ņ‡Ð·Ðą4
-4Ņ‡Ð·Ðģ4
-4Ņ‡Ð·Ðī4
-4Ņ‡Ð·Ð·
-4Ņ‡Ð·Ðš4
-4Ņ‡Ð·Ðŋ4
-4Ņ‡Ð·Ņ
-4Ņ‡Ð·Ņ‚4
-4Ņ‡Ð·Ņ„
-4Ņ‡Ð·Ņ…
-4Ņ‡Ð·Ņ†4
-4Ņ‡Ð·Ņ‡4
-4Ņ‡Ð·Ņˆ
-Ņ‡Ðđ4
-4Ņ‡3К4
-8Ņ‡Ðš.
-4Ņ‡ÐšÐą4
-Ņ‡ÐšÐē4
-4Ņ‡ÐšÐģ4
-4Ņ‡ÐšÐī4
-Ņ‡ÐšÐķ4
-Ņ‡ÐšÐ·4
-4Ņ‡ÐšÐš4
-Ņ‡ÐšÐŧ4
-Ņ‡ÐšÐž4
-Ņ‡ÐšÐ―4
-4Ņ‡ÐšÐŋ4
-Ņ‡ÐšŅ€4
-Ņ‡ÐšŅ4
-4Ņ‡ÐšŅ‚4
-Ņ‡ÐšŅ„4
-Ņ‡ÐšŅ…4
-4Ņ‡ÐšŅ†4
-4Ņ‡ÐšŅ‡4
-Ņ‡ÐšŅˆ4
-Ņ‡ÐšŅ‰4
-2Ņ‡3Ðŧ4
-8Ņ‡Ðŧ.
-4Ņ‡ÐŧÐą4
-4Ņ‡ÐŧÐģ4
-4Ņ‡ÐŧÐī4
-4Ņ‡ÐŧК4
-4Ņ‡ÐŧÐŧ
-4Ņ‡ÐŧÐŋ4
-4Ņ‡ÐŧŅ‚4
-4Ņ‡ÐŧŅ†4
-4Ņ‡ÐŧŅ‡4
-2Ņ‡3О4
-8Ņ‡Ðž.
-4Ņ‡ÐžÐą4
-4Ņ‡ÐžÐģ4
-4Ņ‡ÐžÐī4
-4Ņ‡ÐžÐš4
-4Ņ‡ÐžÐž
-4Ņ‡ÐžÐŋ4
-4Ņ‡ÐžŅ‚4
-4Ņ‡ÐžŅ†4
-4Ņ‡ÐžŅ‡4
-2Ņ‡3Ð―4
-8Ņ‡Ð―.
-4Ņ‡Ð―Ðą4
-4Ņ‡Ð―Ðģ4
-4Ņ‡Ð―Ðī4
-4Ņ‡Ð―К4
-4Ņ‡Ð―Ð―
-4Ņ‡Ð―Ðŋ4
-4Ņ‡Ð―Ņ‚4
-4Ņ‡Ð―Ņ†4
-4Ņ‡Ð―Ņ‡4
-4Ņ‡3Ðŋ4
-8Ņ‡Ðŋ.
-4Ņ‡ÐŋÐą4
-Ņ‡ÐŋÐē4
-4Ņ‡ÐŋÐģ4
-4Ņ‡ÐŋÐī4
-Ņ‡ÐŋÐķ4
-Ņ‡Ðŋз4
-4Ņ‡ÐŋК4
-Ņ‡ÐŋÐŧ4
-Ņ‡ÐŋО4
-Ņ‡ÐŋÐ―4
-4Ņ‡ÐŋÐŋ4
-Ņ‡ÐŋŅ€4
-Ņ‡ÐŋŅ4
-4Ņ‡ÐŋŅ‚4
-Ņ‡ÐŋŅ„4
-Ņ‡ÐŋŅ…4
-4Ņ‡ÐŋŅ†4
-4Ņ‡ÐŋŅ‡4
-Ņ‡ÐŋŅˆ4
-Ņ‡ÐŋŅ‰4
-2Ņ‡3Ņ€4
-8Ņ‡Ņ€.
-4Ņ‡Ņ€Ðą4
-4Ņ‡Ņ€Ðģ4
-4Ņ‡Ņ€Ðī4
-4Ņ‡Ņ€Ðš4
-4Ņ‡Ņ€Ðŋ4
-4Ņ‡Ņ€Ņ€
-4Ņ‡Ņ€Ņ‚4
-4Ņ‡Ņ€Ņ†4
-4Ņ‡Ņ€Ņ‡4
-2Ņ‡3Ņ
-8Ņ‡Ņ.
-4Ņ‡ŅÐą4
-4Ņ‡ŅÐģ4
-4Ņ‡ŅÐī4
-4Ņ‡ŅÐķ
-4Ņ‡ŅÐ·
-4Ņ‡ŅÐš4
-4Ņ‡ŅÐŋ4
-4Ņ‡ŅŅ
-4Ņ‡ŅŅ‚4
-4Ņ‡ŅŅ†4
-4Ņ‡ŅŅ‡4
-4Ņ‡3Ņ‚4
-8Ņ‡Ņ‚.
-4Ņ‡Ņ‚Ðą4
-Ņ‡Ņ‚Ðē4
-4Ņ‡Ņ‚Ðģ4
-4Ņ‡Ņ‚Ðī4
-Ņ‡Ņ‚Ðķ4
-Ņ‡Ņ‚з4
-4Ņ‡Ņ‚К4
-Ņ‡Ņ‚Ðŧ4
-Ņ‡Ņ‚О4
-Ņ‡Ņ‚Ð―4
-4Ņ‡Ņ‚Ðŋ4
-Ņ‡Ņ‚Ņ€4
-Ņ‡Ņ‚Ņ4
-4Ņ‡Ņ‚Ņ‚4
-Ņ‡Ņ‚Ņ„4
-Ņ‡Ņ‚Ņ…4
-4Ņ‡Ņ‚Ņ†4
-4Ņ‡Ņ‚Ņ‡4
-Ņ‡Ņ‚Ņˆ4
-Ņ‡Ņ‚Ņ‰4
-2Ņ‡3Ņ„
-8Ņ‡Ņ„.
-4Ņ‡Ņ„Ðą4
-4Ņ‡Ņ„Ðē
-4Ņ‡Ņ„Ðģ4
-4Ņ‡Ņ„Ðī4
-4Ņ‡Ņ„Ðķ
-4Ņ‡Ņ„з
-4Ņ‡Ņ„К4
-4Ņ‡Ņ„Ðŋ4
-4Ņ‡Ņ„Ņ‚4
-4Ņ‡Ņ„Ņ„
-4Ņ‡Ņ„Ņ†4
-4Ņ‡Ņ„Ņ‡4
-2Ņ‡3Ņ…
-8Ņ‡Ņ….
-4Ņ‡Ņ…Ðą4
-4Ņ‡Ņ…Ðģ4
-4Ņ‡Ņ…Ðī4
-4Ņ‡Ņ…Ðķ
-4Ņ‡Ņ…з
-4Ņ‡Ņ…К4
-4Ņ‡Ņ…Ðŋ4
-4Ņ‡Ņ…Ņ‚4
-4Ņ‡Ņ…Ņ…
-4Ņ‡Ņ…Ņ†4
-4Ņ‡Ņ…Ņ‡4
-4Ņ‡3Ņ†4
-8Ņ‡Ņ†.
-4Ņ‡Ņ†Ðą4
-Ņ‡Ņ†Ðē4
-4Ņ‡Ņ†Ðģ4
-4Ņ‡Ņ†Ðī4
-Ņ‡Ņ†Ðķ4
-Ņ‡Ņ†Ð·4
-4Ņ‡Ņ†Ðš4
-Ņ‡Ņ†Ðŧ4
-Ņ‡Ņ†Ðž4
-Ņ‡Ņ†Ð―4
-4Ņ‡Ņ†Ðŋ4
-Ņ‡Ņ†Ņ€4
-Ņ‡Ņ†Ņ4
-4Ņ‡Ņ†Ņ‚4
-Ņ‡Ņ†Ņ„4
-Ņ‡Ņ†Ņ…4
-4Ņ‡Ņ†Ņ†4
-4Ņ‡Ņ†Ņ‡4
-Ņ‡Ņ†Ņˆ4
-Ņ‡Ņ†Ņ‰4
+2Ņ†3Ņ‡2
+2Ņ†3Ņˆ2
+2Ņ†3Ņ‰2
+2Ņ‡3Ðą2
+2Ņ‡3Ðē2
+2Ņ‡3Ðģ2
+2Ņ‡3Ðī2
+2Ņ‡3Ðķ2
+2Ņ‡3з2
+2Ņ‡3Ðđ2
+2Ņ‡3К2
+2Ņ‡3Ðŧ2
+2Ņ‡3О2
+2Ņ‡3Ð―2
+2Ņ‡3Ðŋ2
+2Ņ‡3Ņ€2
+2Ņ‡3Ņ2
+2Ņ‡3Ņ‚2
+2Ņ‡3Ņ„2
+2Ņ‡3Ņ…2
+2Ņ‡3Ņ†2
4Ņ‡3Ņ‡4
-8Ņ‡Ņ‡.
-4Ņ‡Ņ‡Ðą4
-Ņ‡Ņ‡Ðē4
-4Ņ‡Ņ‡Ðģ4
-4Ņ‡Ņ‡Ðī4
-Ņ‡Ņ‡Ðķ4
-Ņ‡Ņ‡Ð·4
-4Ņ‡Ņ‡Ðš4
-Ņ‡Ņ‡Ðŧ4
-Ņ‡Ņ‡Ðž4
-Ņ‡Ņ‡Ð―4
-4Ņ‡Ņ‡Ðŋ4
-Ņ‡Ņ‡Ņ€4
-Ņ‡Ņ‡Ņ4
-4Ņ‡Ņ‡Ņ‚4
-Ņ‡Ņ‡Ņ„4
-Ņ‡Ņ‡Ņ…4
-4Ņ‡Ņ‡Ņ†4
-4Ņ‡Ņ‡Ņ‡4
-Ņ‡Ņ‡Ņˆ4
-Ņ‡Ņ‡Ņ‰4
-2Ņ‡3Ņˆ
-8Ņ‡Ņˆ.
-4Ņ‡ŅˆÐą4
-4Ņ‡ŅˆÐģ4
-4Ņ‡ŅˆÐī4
-4Ņ‡ŅˆÐķ
-4Ņ‡ŅˆÐ·
-4Ņ‡ŅˆÐš4
-4Ņ‡ŅˆÐŋ4
-4Ņ‡ŅˆŅ‚4
-4Ņ‡ŅˆŅ†4
-4Ņ‡ŅˆŅ‡4
-4Ņ‡ŅˆŅˆ
-2Ņ‡3Ņ‰
-8Ņ‡Ņ‰.
-4Ņ‡Ņ‰Ðą4
-4Ņ‡Ņ‰Ðģ4
-4Ņ‡Ņ‰Ðī4
-4Ņ‡Ņ‰Ðš4
-4Ņ‡Ņ‰Ðŋ4
-4Ņ‡Ņ‰Ņ‚4
-4Ņ‡Ņ‰Ņ†4
-4Ņ‡Ņ‰Ņ‡4
-4Ņ‡Ņ‰Ņ‰
-2Ņˆ3Ðą4
-8ŅˆÐą.
-4ŅˆÐąÐą
-4ŅˆÐąÐķ4
-4ŅˆÐąÐ·4
-4ŅˆÐąÐš
-4ŅˆÐąÐŋ
-4ŅˆÐąŅ4
-4ŅˆÐąŅ‚
-4ŅˆÐąŅ„4
-4ŅˆÐąŅ…4
-4ŅˆÐąŅ†
-4ŅˆÐąŅ‡
-4ŅˆÐąŅˆ4
-2Ņˆ3Ðē4
-8ŅˆÐē.
-4ŅˆÐēÐē
-4ŅˆÐēÐķ4
-4ŅˆÐēз4
-4ŅˆÐēŅ„
-4ŅˆÐēŅˆ4
-2Ņˆ3Ðģ4
-8ŅˆÐģ.
-4ŅˆÐģÐģ
-4ŅˆÐģÐķ4
-4ŅˆÐģз4
-4ŅˆÐģК
-4ŅˆÐģÐŋ
-4ŅˆÐģŅ4
-4ŅˆÐģŅ‚
-4ŅˆÐģŅ„4
-4ŅˆÐģŅ…4
-4ŅˆÐģŅ†
-4ŅˆÐģŅ‡
-4ŅˆÐģŅˆ4
-2Ņˆ3Ðī4
-8ŅˆÐī.
-4ŅˆÐīÐą
-4ŅˆÐīÐģ
-4ŅˆÐīÐī
-4ŅˆÐīÐķ4
-4ŅˆÐīз4
-4ŅˆÐīК
-4ŅˆÐīÐŋ
-4ŅˆÐīŅ4
-4ŅˆÐīŅ‚
-4ŅˆÐīŅ„4
-4ŅˆÐīŅ…4
-4ŅˆÐīŅ†
-4ŅˆÐīŅ‡
-4ŅˆÐīŅˆ4
-4Ņˆ3Ðķ4
-8ŅˆÐķ.
-ŅˆÐķÐą4
-ŅˆÐķÐē4
-ŅˆÐķÐģ4
-ŅˆÐķÐī4
-4ŅˆÐķÐķ4
-4ŅˆÐķз4
-ŅˆÐķК4
-ŅˆÐķÐŧ4
-ŅˆÐķО4
-ŅˆÐķÐ―4
-ŅˆÐķÐŋ4
-ŅˆÐķŅ€4
-4ŅˆÐķŅ4
-ŅˆÐķŅ‚4
-4ŅˆÐķŅ„4
-4ŅˆÐķŅ…4
-ŅˆÐķŅ†4
-ŅˆÐķŅ‡4
-4ŅˆÐķŅˆ4
-ŅˆÐķŅ‰4
-4Ņˆ3з4
-8ŅˆÐ·.
-ŅˆÐ·Ðą4
-ŅˆÐ·Ðē4
-ŅˆÐ·Ðģ4
-ŅˆÐ·Ðī4
-4ŅˆÐ·Ðķ4
-4ŅˆÐ·Ð·4
-ŅˆÐ·Ðš4
-ŅˆÐ·Ðŧ4
-ŅˆÐ·Ðž4
-ŅˆÐ·Ð―4
-ŅˆÐ·Ðŋ4
-ŅˆÐ·Ņ€4
-4ŅˆÐ·Ņ4
-ŅˆÐ·Ņ‚4
-4ŅˆÐ·Ņ„4
-4ŅˆÐ·Ņ…4
-ŅˆÐ·Ņ†4
-ŅˆÐ·Ņ‡4
-4ŅˆÐ·Ņˆ4
-ŅˆÐ·Ņ‰4
-ŅˆÐđ4
-2Ņˆ3К
-8ŅˆÐš.
-4ŅˆÐšÐą
-4ŅˆÐšÐģ
-4ŅˆÐšÐī
-4ŅˆÐšÐķ4
-4ŅˆÐšÐ·4
-4ŅˆÐšÐš
-4ŅˆÐšŅ4
-4ŅˆÐšŅ„4
-4ŅˆÐšŅ…4
-4ŅˆÐšŅˆ4
-2Ņˆ3Ðŧ4
-8ŅˆÐŧ.
-4ŅˆÐŧÐķ4
-4ŅˆÐŧз4
-4ŅˆÐŧÐŧ
-4ŅˆÐŧŅˆ4
-2Ņˆ3О4
-8ŅˆÐž.
-4ŅˆÐžÐķ4
-4ŅˆÐžÐ·4
-4ŅˆÐžÐž
-4ŅˆÐžŅˆ4
-2Ņˆ3Ð―4
-8ŅˆÐ―.
-4ŅˆÐ―Ðķ4
-4ŅˆÐ―з4
-4ŅˆÐ―Ð―
-4ŅˆÐ―Ņˆ4
-2Ņˆ3Ðŋ
-8ŅˆÐŋ.
-4ŅˆÐŋÐą
-4ŅˆÐŋÐģ
-4ŅˆÐŋÐī
-4ŅˆÐŋÐķ4
-4ŅˆÐŋз4
-4ŅˆÐŋÐŋ
-4ŅˆÐŋŅ4
-4ŅˆÐŋŅ„4
-4ŅˆÐŋŅ…4
-4ŅˆÐŋŅˆ4
-2Ņˆ3Ņ€4
-8ŅˆŅ€.
-4ŅˆŅ€Ðķ4
-4ŅˆŅ€Ð·4
-4ŅˆŅ€Ņ€
-4ŅˆŅ€Ņˆ4
-2Ņˆ3Ņ
-8ŅˆŅ.
-4ŅˆŅÐķ4
-4ŅˆŅÐ·4
-4ŅˆŅŅ
-4ŅˆŅŅˆ4
-2Ņˆ3Ņ‚
-8ŅˆŅ‚.
-4ŅˆŅ‚Ðą
-4ŅˆŅ‚Ðģ
-4ŅˆŅ‚Ðī
-4ŅˆŅ‚Ðķ4
-4ŅˆŅ‚з4
-4ŅˆŅ‚К
-4ŅˆŅ‚Ðŋ
-4ŅˆŅ‚Ņ4
-4ŅˆŅ‚Ņ‚
-4ŅˆŅ‚Ņ„4
-4ŅˆŅ‚Ņ…4
-4ŅˆŅ‚Ņ†
-4ŅˆŅ‚Ņ‡
-4ŅˆŅ‚Ņˆ4
-2Ņˆ3Ņ„
-8ŅˆŅ„.
-4ŅˆŅ„Ðē
-4ŅˆŅ„Ðķ4
-4ŅˆŅ„з4
-4ŅˆŅ„Ņ„
-4ŅˆŅ„Ņˆ4
-2Ņˆ3Ņ…
-8ŅˆŅ….
-4ŅˆŅ…Ðķ4
-4ŅˆŅ…з4
-4ŅˆŅ…Ņ…
-4ŅˆŅ…Ņˆ4
-2Ņˆ3Ņ†
-8ŅˆŅ†.
-4ŅˆŅ†Ðą
-4ŅˆŅ†Ðģ
-4ŅˆŅ†Ðī
-4ŅˆŅ†Ðķ4
-4ŅˆŅ†Ð·4
-4ŅˆŅ†Ðš
-4ŅˆŅ†Ðŋ
-4ŅˆŅ†Ņ4
-4ŅˆŅ†Ņ‚
-4ŅˆŅ†Ņ„4
-4ŅˆŅ†Ņ…4
-4ŅˆŅ†Ņ†
-4ŅˆŅ†Ņ‡
-4ŅˆŅ†Ņˆ4
-2Ņˆ3Ņ‡
-8ŅˆŅ‡.
-4ŅˆŅ‡Ðą
-4ŅˆŅ‡Ðģ
-4ŅˆŅ‡Ðī
-4ŅˆŅ‡Ðķ4
-4ŅˆŅ‡Ð·4
-4ŅˆŅ‡Ðš
-4ŅˆŅ‡Ðŋ
-4ŅˆŅ‡Ņ4
-4ŅˆŅ‡Ņ‚
-4ŅˆŅ‡Ņ„4
-4ŅˆŅ‡Ņ…4
-4ŅˆŅ‡Ņ†
-4ŅˆŅ‡Ņ‡
-4ŅˆŅ‡Ņˆ4
+2Ņ‡3Ņˆ2
+2Ņ‡3Ņ‰2
+2Ņˆ3Ðą2
+2Ņˆ3Ðē2
+2Ņˆ3Ðģ2
+2Ņˆ3Ðī2
+2Ņˆ3Ðķ2
+2Ņˆ3з2
+2Ņˆ3Ðđ2
+2Ņˆ3К2
+2Ņˆ3Ðŧ2
+2Ņˆ3О2
+2Ņˆ3Ð―2
+2Ņˆ3Ðŋ2
+2Ņˆ3Ņ€2
+2Ņˆ3Ņ2
+2Ņˆ3Ņ‚2
+2Ņˆ3Ņ„2
+2Ņˆ3Ņ…2
+2Ņˆ3Ņ†2
+2Ņˆ3Ņ‡2
4Ņˆ3Ņˆ4
-8ŅˆŅˆ.
-ŅˆŅˆÐą4
-ŅˆŅˆÐē4
-ŅˆŅˆÐģ4
-ŅˆŅˆÐī4
-4ŅˆŅˆÐķ4
-4ŅˆŅˆÐ·4
-ŅˆŅˆÐš4
-ŅˆŅˆÐŧ4
-ŅˆŅˆÐž4
-ŅˆŅˆÐ―4
-ŅˆŅˆÐŋ4
-ŅˆŅˆŅ€4
-ŅˆŅˆŅ4
-ŅˆŅˆŅ‚4
-ŅˆŅˆŅ„4
-ŅˆŅˆŅ…4
-ŅˆŅˆŅ†4
-ŅˆŅˆŅ‡4
-4ŅˆŅˆŅˆ4
-ŅˆŅˆŅ‰4
-2Ņˆ3Ņ‰
-8ŅˆŅ‰.
-4ŅˆŅ‰Ðķ4
-4ŅˆŅ‰Ð·4
-4ŅˆŅ‰Ņˆ4
-4ŅˆŅ‰Ņ‰
-2Ņ‰3Ðą4
-8Ņ‰Ðą.
-4Ņ‰ÐąÐą
-4Ņ‰ÐąÐš
-4Ņ‰ÐąÐŋ
-4Ņ‰ÐąŅ‚
-4Ņ‰ÐąŅ†
-4Ņ‰ÐąŅ‡
-4Ņ‰ÐąŅ‰4
-2Ņ‰3Ðē4
-8Ņ‰Ðē.
-4Ņ‰ÐēÐē
-4Ņ‰ÐēŅ„
-4Ņ‰ÐēŅ‰4
-2Ņ‰3Ðģ4
-8Ņ‰Ðģ.
-4Ņ‰ÐģÐģ
-4Ņ‰ÐģК
-4Ņ‰ÐģÐŋ
-4Ņ‰ÐģŅ‚
-4Ņ‰ÐģŅ†
-4Ņ‰ÐģŅ‡
-4Ņ‰ÐģŅ‰4
-2Ņ‰3Ðī4
-8Ņ‰Ðī.
-4Ņ‰ÐīÐą
-4Ņ‰ÐīÐģ
-4Ņ‰ÐīÐī
-4Ņ‰ÐīК
-4Ņ‰ÐīÐŋ
-4Ņ‰ÐīŅ‚
-4Ņ‰ÐīŅ†
-4Ņ‰ÐīŅ‡
-4Ņ‰ÐīŅ‰4
-2Ņ‰3Ðķ4
-8Ņ‰Ðķ.
-4Ņ‰ÐķÐķ
-4Ņ‰ÐķŅ
-4Ņ‰ÐķŅ„
-4Ņ‰ÐķŅ…
-4Ņ‰ÐķŅˆ
-4Ņ‰ÐķŅ‰4
-2Ņ‰3з4
-8Ņ‰Ð·.
-4Ņ‰Ð·Ð·
-4Ņ‰Ð·Ņ
-4Ņ‰Ð·Ņ„
-4Ņ‰Ð·Ņ…
-4Ņ‰Ð·Ņˆ
-4Ņ‰Ð·Ņ‰4
-Ņ‰Ðđ4
-2Ņ‰3К
-8Ņ‰Ðš.
-4Ņ‰ÐšÐą
-4Ņ‰ÐšÐģ
-4Ņ‰ÐšÐī
-4Ņ‰ÐšÐš
-4Ņ‰ÐšŅ‰4
-2Ņ‰3Ðŧ4
-8Ņ‰Ðŧ.
-4Ņ‰ÐŧÐŧ
-4Ņ‰ÐŧŅ‰4
-2Ņ‰3О4
-8Ņ‰Ðž.
-4Ņ‰ÐžÐž
-4Ņ‰ÐžŅ‰4
-2Ņ‰3Ð―4
-8Ņ‰Ð―.
-4Ņ‰Ð―Ð―
-4Ņ‰Ð―Ņ‰4
-2Ņ‰3Ðŋ
-8Ņ‰Ðŋ.
-4Ņ‰ÐŋÐą
-4Ņ‰ÐŋÐģ
-4Ņ‰ÐŋÐī
-4Ņ‰ÐŋÐŋ
-4Ņ‰ÐŋŅ‰4
-2Ņ‰3Ņ€4
-8Ņ‰Ņ€.
-4Ņ‰Ņ€Ņ€
-4Ņ‰Ņ€Ņ‰4
-2Ņ‰3Ņ
-8Ņ‰Ņ.
-4Ņ‰ŅÐķ
-4Ņ‰ŅÐ·
-4Ņ‰ŅŅ
-4Ņ‰ŅŅ‰4
-2Ņ‰3Ņ‚
-8Ņ‰Ņ‚.
-4Ņ‰Ņ‚Ðą
-4Ņ‰Ņ‚Ðģ
-4Ņ‰Ņ‚Ðī
-4Ņ‰Ņ‚К
-4Ņ‰Ņ‚Ðŋ
-4Ņ‰Ņ‚Ņ‚
-4Ņ‰Ņ‚Ņ†
-4Ņ‰Ņ‚Ņ‡
-4Ņ‰Ņ‚Ņ‰4
-2Ņ‰3Ņ„
-8Ņ‰Ņ„.
-4Ņ‰Ņ„Ðē
-4Ņ‰Ņ„Ðķ
-4Ņ‰Ņ„з
-4Ņ‰Ņ„Ņ„
-4Ņ‰Ņ„Ņ‰4
-2Ņ‰3Ņ…
-8Ņ‰Ņ….
-4Ņ‰Ņ…Ðķ
-4Ņ‰Ņ…з
-4Ņ‰Ņ…Ņ…
-4Ņ‰Ņ…Ņ‰4
-2Ņ‰3Ņ†
-8Ņ‰Ņ†.
-4Ņ‰Ņ†Ðą
-4Ņ‰Ņ†Ðģ
-4Ņ‰Ņ†Ðī
-4Ņ‰Ņ†Ðš
-4Ņ‰Ņ†Ðŋ
-4Ņ‰Ņ†Ņ‚
-4Ņ‰Ņ†Ņ†
-4Ņ‰Ņ†Ņ‡
-4Ņ‰Ņ†Ņ‰4
-2Ņ‰3Ņ‡
-8Ņ‰Ņ‡.
-4Ņ‰Ņ‡Ðą
-4Ņ‰Ņ‡Ðģ
-4Ņ‰Ņ‡Ðī
-4Ņ‰Ņ‡Ðš
-4Ņ‰Ņ‡Ðŋ
-4Ņ‰Ņ‡Ņ‚
-4Ņ‰Ņ‡Ņ†
-4Ņ‰Ņ‡Ņ‡
-4Ņ‰Ņ‡Ņ‰4
-2Ņ‰3Ņˆ
-8Ņ‰Ņˆ.
-4Ņ‰ŅˆÐķ
-4Ņ‰ŅˆÐ·
-4Ņ‰ŅˆŅˆ
-4Ņ‰ŅˆŅ‰4
+2Ņˆ3Ņ‰2
+2Ņ‰3Ðą2
+2Ņ‰3Ðē2
+2Ņ‰3Ðģ2
+2Ņ‰3Ðī2
+2Ņ‰3Ðķ2
+2Ņ‰3з2
+2Ņ‰3Ðđ2
+2Ņ‰3К2
+2Ņ‰3Ðŧ2
+2Ņ‰3О2
+2Ņ‰3Ð―2
+2Ņ‰3Ðŋ2
+2Ņ‰3Ņ€2
+2Ņ‰3Ņ2
+2Ņ‰3Ņ‚2
+2Ņ‰3Ņ„2
+2Ņ‰3Ņ…2
+2Ņ‰3Ņ†2
+2Ņ‰3Ņ‡2
+2Ņ‰3Ņˆ2
4Ņ‰3Ņ‰4
-8Ņ‰Ņ‰.
-Ņ‰Ņ‰Ðą4
-Ņ‰Ņ‰Ðē4
-Ņ‰Ņ‰Ðģ4
-Ņ‰Ņ‰Ðī4
-Ņ‰Ņ‰Ðķ4
-Ņ‰Ņ‰Ð·4
-Ņ‰Ņ‰Ðš4
-Ņ‰Ņ‰Ðŧ4
-Ņ‰Ņ‰Ðž4
-Ņ‰Ņ‰Ð―4
-Ņ‰Ņ‰Ðŋ4
-Ņ‰Ņ‰Ņ€4
-Ņ‰Ņ‰Ņ4
-Ņ‰Ņ‰Ņ‚4
-Ņ‰Ņ‰Ņ„4
-Ņ‰Ņ‰Ņ…4
-Ņ‰Ņ‰Ņ†4
-Ņ‰Ņ‰Ņ‡4
-Ņ‰Ņ‰Ņˆ4
-4Ņ‰Ņ‰Ņ‰4
-ŅŠ1
-ŅŽ1
-Ņ1} \ No newline at end of file
+ааа4
+ааÐĩ4
+ааÐļ4
+ааÐū4
+ааŅƒ4
+ааŅŠ4
+ааŅŽ4
+ааŅ4
+аÐĩа4
+аÐĩÐĩ4
+аÐĩÐļ4
+аÐĩÐū4
+аÐĩŅƒ4
+аÐĩŅŠ4
+аÐĩŅŽ4
+аÐĩŅ4
+аÐļа4
+аÐļÐĩ4
+аÐļÐļ4
+аÐļÐū4
+аÐļŅƒ4
+аÐļŅŠ4
+аÐļŅŽ4
+аÐļŅ4
+аÐūа4
+аÐūÐĩ4
+аÐūÐļ4
+аÐūÐū4
+аÐūŅƒ4
+аÐūŅŠ4
+аÐūŅŽ4
+аÐūŅ4
+аŅƒÐ°4
+аŅƒÐĩ4
+аŅƒÐļ4
+аŅƒÐū4
+аŅƒŅƒ4
+аŅƒŅŠ4
+аŅƒŅŽ4
+аŅƒŅ4
+аŅŠÐ°4
+аŅŠÐĩ4
+аŅŠÐļ4
+аŅŠÐū4
+аŅŠŅƒ4
+аŅŠŅŠ4
+аŅŠŅŽ4
+аŅŠŅ4
+аŅŽÐ°4
+аŅŽÐĩ4
+аŅŽÐļ4
+аŅŽÐū4
+аŅŽŅƒ4
+аŅŽŅŠ4
+аŅŽŅŽ4
+аŅŽŅ4
+аŅÐ°4
+аŅÐĩ4
+аŅÐļ4
+аŅÐū4
+аŅŅƒ4
+аŅŅŠ4
+аŅŅŽ4
+аŅŅ4
+Ðĩаа4
+ÐĩаÐĩ4
+ÐĩаÐļ4
+ÐĩаÐū4
+ÐĩаŅƒ4
+ÐĩаŅŠ4
+ÐĩаŅŽ4
+ÐĩаŅ4
+ÐĩÐĩа4
+ÐĩÐĩÐĩ4
+ÐĩÐĩÐļ4
+ÐĩÐĩÐū4
+ÐĩÐĩŅƒ4
+ÐĩÐĩŅŠ4
+ÐĩÐĩŅŽ4
+ÐĩÐĩŅ4
+ÐĩÐļа4
+ÐĩÐļÐĩ4
+ÐĩÐļÐļ4
+ÐĩÐļÐū4
+ÐĩÐļŅƒ4
+ÐĩÐļŅŠ4
+ÐĩÐļŅŽ4
+ÐĩÐļŅ4
+ÐĩÐūа4
+ÐĩÐūÐĩ4
+ÐĩÐūÐļ4
+ÐĩÐūÐū4
+ÐĩÐūŅƒ4
+ÐĩÐūŅŠ4
+ÐĩÐūŅŽ4
+ÐĩÐūŅ4
+ÐĩŅƒÐ°4
+ÐĩŅƒÐĩ4
+ÐĩŅƒÐļ4
+ÐĩŅƒÐū4
+ÐĩŅƒŅƒ4
+ÐĩŅƒŅŠ4
+ÐĩŅƒŅŽ4
+ÐĩŅƒŅ4
+ÐĩŅŠÐ°4
+ÐĩŅŠÐĩ4
+ÐĩŅŠÐļ4
+ÐĩŅŠÐū4
+ÐĩŅŠŅƒ4
+ÐĩŅŠŅŠ4
+ÐĩŅŠŅŽ4
+ÐĩŅŠŅ4
+ÐĩŅŽÐ°4
+ÐĩŅŽÐĩ4
+ÐĩŅŽÐļ4
+ÐĩŅŽÐū4
+ÐĩŅŽŅƒ4
+ÐĩŅŽŅŠ4
+ÐĩŅŽŅŽ4
+ÐĩŅŽŅ4
+ÐĩŅÐ°4
+ÐĩŅÐĩ4
+ÐĩŅÐļ4
+ÐĩŅÐū4
+ÐĩŅŅƒ4
+ÐĩŅŅŠ4
+ÐĩŅŅŽ4
+ÐĩŅŅ4
+Ðļаа4
+ÐļаÐĩ4
+ÐļаÐļ4
+ÐļаÐū4
+ÐļаŅƒ4
+ÐļаŅŠ4
+ÐļаŅŽ4
+ÐļаŅ4
+ÐļÐĩа4
+ÐļÐĩÐĩ4
+ÐļÐĩÐļ4
+ÐļÐĩÐū4
+ÐļÐĩŅƒ4
+ÐļÐĩŅŠ4
+ÐļÐĩŅŽ4
+ÐļÐĩŅ4
+ÐļÐļа4
+ÐļÐļÐĩ4
+ÐļÐļÐļ4
+ÐļÐļÐū4
+ÐļÐļŅƒ4
+ÐļÐļŅŠ4
+ÐļÐļŅŽ4
+ÐļÐļŅ4
+ÐļÐūа4
+ÐļÐūÐĩ4
+ÐļÐūÐļ4
+ÐļÐūÐū4
+ÐļÐūŅƒ4
+ÐļÐūŅŠ4
+ÐļÐūŅŽ4
+ÐļÐūŅ4
+ÐļŅƒÐ°4
+ÐļŅƒÐĩ4
+ÐļŅƒÐļ4
+ÐļŅƒÐū4
+ÐļŅƒŅƒ4
+ÐļŅƒŅŠ4
+ÐļŅƒŅŽ4
+ÐļŅƒŅ4
+ÐļŅŠÐ°4
+ÐļŅŠÐĩ4
+ÐļŅŠÐļ4
+ÐļŅŠÐū4
+ÐļŅŠŅƒ4
+ÐļŅŠŅŠ4
+ÐļŅŠŅŽ4
+ÐļŅŠŅ4
+ÐļŅŽÐ°4
+ÐļŅŽÐĩ4
+ÐļŅŽÐļ4
+ÐļŅŽÐū4
+ÐļŅŽŅƒ4
+ÐļŅŽŅŠ4
+ÐļŅŽŅŽ4
+ÐļŅŽŅ4
+ÐļŅÐ°4
+ÐļŅÐĩ4
+ÐļŅÐļ4
+ÐļŅÐū4
+ÐļŅŅƒ4
+ÐļŅŅŠ4
+ÐļŅŅŽ4
+ÐļŅŅ4
+Ðūаа4
+ÐūаÐĩ4
+ÐūаÐļ4
+ÐūаÐū4
+ÐūаŅƒ4
+ÐūаŅŠ4
+ÐūаŅŽ4
+ÐūаŅ4
+ÐūÐĩа4
+ÐūÐĩÐĩ4
+ÐūÐĩÐļ4
+ÐūÐĩÐū4
+ÐūÐĩŅƒ4
+ÐūÐĩŅŠ4
+ÐūÐĩŅŽ4
+ÐūÐĩŅ4
+ÐūÐļа4
+ÐūÐļÐĩ4
+ÐūÐļÐļ4
+ÐūÐļÐū4
+ÐūÐļŅƒ4
+ÐūÐļŅŠ4
+ÐūÐļŅŽ4
+ÐūÐļŅ4
+ÐūÐūа4
+ÐūÐūÐĩ4
+ÐūÐūÐļ4
+ÐūÐūÐū4
+ÐūÐūŅƒ4
+ÐūÐūŅŠ4
+ÐūÐūŅŽ4
+ÐūÐūŅ4
+ÐūŅƒÐ°4
+ÐūŅƒÐĩ4
+ÐūŅƒÐļ4
+ÐūŅƒÐū4
+ÐūŅƒŅƒ4
+ÐūŅƒŅŠ4
+ÐūŅƒŅŽ4
+ÐūŅƒŅ4
+ÐūŅŠÐ°4
+ÐūŅŠÐĩ4
+ÐūŅŠÐļ4
+ÐūŅŠÐū4
+ÐūŅŠŅƒ4
+ÐūŅŠŅŠ4
+ÐūŅŠŅŽ4
+ÐūŅŠŅ4
+ÐūŅŽÐ°4
+ÐūŅŽÐĩ4
+ÐūŅŽÐļ4
+ÐūŅŽÐū4
+ÐūŅŽŅƒ4
+ÐūŅŽŅŠ4
+ÐūŅŽŅŽ4
+ÐūŅŽŅ4
+ÐūŅÐ°4
+ÐūŅÐĩ4
+ÐūŅÐļ4
+ÐūŅÐū4
+ÐūŅŅƒ4
+ÐūŅŅŠ4
+ÐūŅŅŽ4
+ÐūŅŅ4
+ŅƒÐ°Ð°4
+ŅƒÐ°Ðĩ4
+ŅƒÐ°Ðļ4
+ŅƒÐ°Ðū4
+ŅƒÐ°Ņƒ4
+ŅƒÐ°ŅŠ4
+ŅƒÐ°ŅŽ4
+ŅƒÐ°Ņ4
+ŅƒÐĩа4
+ŅƒÐĩÐĩ4
+ŅƒÐĩÐļ4
+ŅƒÐĩÐū4
+ŅƒÐĩŅƒ4
+ŅƒÐĩŅŠ4
+ŅƒÐĩŅŽ4
+ŅƒÐĩŅ4
+ŅƒÐļа4
+ŅƒÐļÐĩ4
+ŅƒÐļÐļ4
+ŅƒÐļÐū4
+ŅƒÐļŅƒ4
+ŅƒÐļŅŠ4
+ŅƒÐļŅŽ4
+ŅƒÐļŅ4
+ŅƒÐūа4
+ŅƒÐūÐĩ4
+ŅƒÐūÐļ4
+ŅƒÐūÐū4
+ŅƒÐūŅƒ4
+ŅƒÐūŅŠ4
+ŅƒÐūŅŽ4
+ŅƒÐūŅ4
+ŅƒŅƒÐ°4
+ŅƒŅƒÐĩ4
+ŅƒŅƒÐļ4
+ŅƒŅƒÐū4
+ŅƒŅƒŅƒ4
+ŅƒŅƒŅŠ4
+ŅƒŅƒŅŽ4
+ŅƒŅƒŅ4
+ŅƒŅŠÐ°4
+ŅƒŅŠÐĩ4
+ŅƒŅŠÐļ4
+ŅƒŅŠÐū4
+ŅƒŅŠŅƒ4
+ŅƒŅŠŅŠ4
+ŅƒŅŠŅŽ4
+ŅƒŅŠŅ4
+ŅƒŅŽÐ°4
+ŅƒŅŽÐĩ4
+ŅƒŅŽÐļ4
+ŅƒŅŽÐū4
+ŅƒŅŽŅƒ4
+ŅƒŅŽŅŠ4
+ŅƒŅŽŅŽ4
+ŅƒŅŽŅ4
+ŅƒŅÐ°4
+ŅƒŅÐĩ4
+ŅƒŅÐļ4
+ŅƒŅÐū4
+ŅƒŅŅƒ4
+ŅƒŅŅŠ4
+ŅƒŅŅŽ4
+ŅƒŅŅ4
+ŅŠÐ°Ð°4
+ŅŠÐ°Ðĩ4
+ŅŠÐ°Ðļ4
+ŅŠÐ°Ðū4
+ŅŠÐ°Ņƒ4
+ŅŠÐ°ŅŠ4
+ŅŠÐ°ŅŽ4
+ŅŠÐ°Ņ4
+ŅŠÐĩа4
+ŅŠÐĩÐĩ4
+ŅŠÐĩÐļ4
+ŅŠÐĩÐū4
+ŅŠÐĩŅƒ4
+ŅŠÐĩŅŠ4
+ŅŠÐĩŅŽ4
+ŅŠÐĩŅ4
+ŅŠÐļа4
+ŅŠÐļÐĩ4
+ŅŠÐļÐļ4
+ŅŠÐļÐū4
+ŅŠÐļŅƒ4
+ŅŠÐļŅŠ4
+ŅŠÐļŅŽ4
+ŅŠÐļŅ4
+ŅŠÐūа4
+ŅŠÐūÐĩ4
+ŅŠÐūÐļ4
+ŅŠÐūÐū4
+ŅŠÐūŅƒ4
+ŅŠÐūŅŠ4
+ŅŠÐūŅŽ4
+ŅŠÐūŅ4
+ŅŠŅƒÐ°4
+ŅŠŅƒÐĩ4
+ŅŠŅƒÐļ4
+ŅŠŅƒÐū4
+ŅŠŅƒŅƒ4
+ŅŠŅƒŅŠ4
+ŅŠŅƒŅŽ4
+ŅŠŅƒŅ4
+ŅŠŅŠÐ°4
+ŅŠŅŠÐĩ4
+ŅŠŅŠÐļ4
+ŅŠŅŠÐū4
+ŅŠŅŠŅƒ4
+ŅŠŅŠŅŠ4
+ŅŠŅŠŅŽ4
+ŅŠŅŠŅ4
+ŅŠŅŽÐ°4
+ŅŠŅŽÐĩ4
+ŅŠŅŽÐļ4
+ŅŠŅŽÐū4
+ŅŠŅŽŅƒ4
+ŅŠŅŽŅŠ4
+ŅŠŅŽŅŽ4
+ŅŠŅŽŅ4
+ŅŠŅÐ°4
+ŅŠŅÐĩ4
+ŅŠŅÐļ4
+ŅŠŅÐū4
+ŅŠŅŅƒ4
+ŅŠŅŅŠ4
+ŅŠŅŅŽ4
+ŅŠŅŅ4
+ŅŽÐ°Ð°4
+ŅŽÐ°Ðĩ4
+ŅŽÐ°Ðļ4
+ŅŽÐ°Ðū4
+ŅŽÐ°Ņƒ4
+ŅŽÐ°ŅŠ4
+ŅŽÐ°ŅŽ4
+ŅŽÐ°Ņ4
+ŅŽÐĩа4
+ŅŽÐĩÐĩ4
+ŅŽÐĩÐļ4
+ŅŽÐĩÐū4
+ŅŽÐĩŅƒ4
+ŅŽÐĩŅŠ4
+ŅŽÐĩŅŽ4
+ŅŽÐĩŅ4
+ŅŽÐļа4
+ŅŽÐļÐĩ4
+ŅŽÐļÐļ4
+ŅŽÐļÐū4
+ŅŽÐļŅƒ4
+ŅŽÐļŅŠ4
+ŅŽÐļŅŽ4
+ŅŽÐļŅ4
+ŅŽÐūа4
+ŅŽÐūÐĩ4
+ŅŽÐūÐļ4
+ŅŽÐūÐū4
+ŅŽÐūŅƒ4
+ŅŽÐūŅŠ4
+ŅŽÐūŅŽ4
+ŅŽÐūŅ4
+ŅŽŅƒÐ°4
+ŅŽŅƒÐĩ4
+ŅŽŅƒÐļ4
+ŅŽŅƒÐū4
+ŅŽŅƒŅƒ4
+ŅŽŅƒŅŠ4
+ŅŽŅƒŅŽ4
+ŅŽŅƒŅ4
+ŅŽŅŠÐ°4
+ŅŽŅŠÐĩ4
+ŅŽŅŠÐļ4
+ŅŽŅŠÐū4
+ŅŽŅŠŅƒ4
+ŅŽŅŠŅŠ4
+ŅŽŅŠŅŽ4
+ŅŽŅŠŅ4
+ŅŽŅŽÐ°4
+ŅŽŅŽÐĩ4
+ŅŽŅŽÐļ4
+ŅŽŅŽÐū4
+ŅŽŅŽŅƒ4
+ŅŽŅŽŅŠ4
+ŅŽŅŽŅŽ4
+ŅŽŅŽŅ4
+ŅŽŅÐ°4
+ŅŽŅÐĩ4
+ŅŽŅÐļ4
+ŅŽŅÐū4
+ŅŽŅŅƒ4
+ŅŽŅŅŠ4
+ŅŽŅŅŽ4
+ŅŽŅŅ4
+ŅÐ°Ð°4
+ŅÐ°Ðĩ4
+ŅÐ°Ðļ4
+ŅÐ°Ðū4
+ŅÐ°Ņƒ4
+ŅÐ°ŅŠ4
+ŅÐ°ŅŽ4
+ŅÐ°Ņ4
+ŅÐĩа4
+ŅÐĩÐĩ4
+ŅÐĩÐļ4
+ŅÐĩÐū4
+ŅÐĩŅƒ4
+ŅÐĩŅŠ4
+ŅÐĩŅŽ4
+ŅÐĩŅ4
+ŅÐļа4
+ŅÐļÐĩ4
+ŅÐļÐļ4
+ŅÐļÐū4
+ŅÐļŅƒ4
+ŅÐļŅŠ4
+ŅÐļŅŽ4
+ŅÐļŅ4
+ŅÐūа4
+ŅÐūÐĩ4
+ŅÐūÐļ4
+ŅÐūÐū4
+ŅÐūŅƒ4
+ŅÐūŅŠ4
+ŅÐūŅŽ4
+ŅÐūŅ4
+ŅŅƒÐ°4
+ŅŅƒÐĩ4
+ŅŅƒÐļ4
+ŅŅƒÐū4
+ŅŅƒŅƒ4
+ŅŅƒŅŠ4
+ŅŅƒŅŽ4
+ŅŅƒŅ4
+ŅŅŠÐ°4
+ŅŅŠÐĩ4
+ŅŅŠÐļ4
+ŅŅŠÐū4
+ŅŅŠŅƒ4
+ŅŅŠŅŠ4
+ŅŅŠŅŽ4
+ŅŅŠŅ4
+ŅŅŽÐ°4
+ŅŅŽÐĩ4
+ŅŅŽÐļ4
+ŅŅŽÐū4
+ŅŅŽŅƒ4
+ŅŅŽŅŠ4
+ŅŅŽŅŽ4
+ŅŅŽŅ4
+ŅŅÐ°4
+ŅŅÐĩ4
+ŅŅÐļ4
+ŅŅÐū4
+ŅŅŅƒ4
+ŅŅŅŠ4
+ŅŅŅŽ4
+ŅŅŅ4
+Ðđ4ÐąÐą
+Ðđ4ÐąÐē
+Ðđ4ÐąÐģ
+Ðđ4ÐąÐī
+Ðđ4ÐąÐķ
+Ðđ4ÐąÐ·
+Ðđ4ÐąÐđ
+Ðđ4ÐąÐš
+Ðđ4ÐąÐŧ
+Ðđ4ÐąÐž
+Ðđ4ÐąÐ―
+Ðđ4ÐąÐŋ
+Ðđ4ÐąŅ€
+Ðđ4ÐąŅ
+Ðđ4ÐąŅ‚
+Ðđ4ÐąŅ„
+Ðđ4ÐąŅ…
+Ðđ4ÐąŅ†
+Ðđ4ÐąŅ‡
+Ðđ4ÐąŅˆ
+Ðđ4ÐąŅ‰
+Ðđ4ÐēÐą
+Ðđ4ÐēÐē
+Ðđ4ÐēÐģ
+Ðđ4ÐēÐī
+Ðđ4ÐēÐķ
+Ðđ4Ðēз
+Ðđ4ÐēÐđ
+Ðđ4ÐēК
+Ðđ4ÐēÐŧ
+Ðđ4ÐēО
+Ðđ4ÐēÐ―
+Ðđ4ÐēÐŋ
+Ðđ4ÐēŅ€
+Ðđ4ÐēŅ
+Ðđ4ÐēŅ‚
+Ðđ4ÐēŅ„
+Ðđ4ÐēŅ…
+Ðđ4ÐēŅ†
+Ðđ4ÐēŅ‡
+Ðđ4ÐēŅˆ
+Ðđ4ÐēŅ‰
+Ðđ4ÐģÐą
+Ðđ4ÐģÐē
+Ðđ4ÐģÐģ
+Ðđ4ÐģÐī
+Ðđ4ÐģÐķ
+Ðđ4Ðģз
+Ðđ4ÐģÐđ
+Ðđ4ÐģК
+Ðđ4ÐģÐŧ
+Ðđ4ÐģО
+Ðđ4ÐģÐ―
+Ðđ4ÐģÐŋ
+Ðđ4ÐģŅ€
+Ðđ4ÐģŅ
+Ðđ4ÐģŅ‚
+Ðđ4ÐģŅ„
+Ðđ4ÐģŅ…
+Ðđ4ÐģŅ†
+Ðđ4ÐģŅ‡
+Ðđ4ÐģŅˆ
+Ðđ4ÐģŅ‰
+Ðđ4ÐīÐą
+Ðđ4ÐīÐē
+Ðđ4ÐīÐģ
+Ðđ4ÐīÐī
+Ðđ4ÐīÐķ
+Ðđ4Ðīз
+Ðđ4ÐīÐđ
+Ðđ4ÐīК
+Ðđ4ÐīÐŧ
+Ðđ4ÐīО
+Ðđ4ÐīÐ―
+Ðđ4ÐīÐŋ
+Ðđ4ÐīŅ€
+Ðđ4ÐīŅ
+Ðđ4ÐīŅ‚
+Ðđ4ÐīŅ„
+Ðđ4ÐīŅ…
+Ðđ4ÐīŅ†
+Ðđ4ÐīŅ‡
+Ðđ4ÐīŅˆ
+Ðđ4ÐīŅ‰
+Ðđ4ÐķÐą
+Ðđ4ÐķÐē
+Ðđ4ÐķÐģ
+Ðđ4ÐķÐī
+Ðđ4ÐķÐķ
+Ðđ4Ðķз
+Ðđ4ÐķÐđ
+Ðđ4ÐķК
+Ðđ4ÐķÐŧ
+Ðđ4ÐķО
+Ðđ4ÐķÐ―
+Ðđ4ÐķÐŋ
+Ðđ4ÐķŅ€
+Ðđ4ÐķŅ
+Ðđ4ÐķŅ‚
+Ðđ4ÐķŅ„
+Ðđ4ÐķŅ…
+Ðđ4ÐķŅ†
+Ðđ4ÐķŅ‡
+Ðđ4ÐķŅˆ
+Ðđ4ÐķŅ‰
+Ðđ4Ð·Ðą
+Ðđ4зÐē
+Ðđ4зÐģ
+Ðđ4зÐī
+Ðđ4зÐķ
+Ðđ4зз
+Ðđ4зÐđ
+Ðđ4зК
+Ðđ4зÐŧ
+Ðđ4зО
+Ðđ4Ð·Ð―
+Ðđ4зÐŋ
+Ðđ4зŅ€
+Ðđ4зŅ
+Ðđ4зŅ‚
+Ðđ4зŅ„
+Ðđ4зŅ…
+Ðđ4зŅ†
+Ðđ4зŅ‡
+Ðđ4зŅˆ
+Ðđ4зŅ‰
+Ðđ4ÐđÐą
+Ðđ4ÐđÐē
+Ðđ4ÐđÐģ
+Ðđ4ÐđÐī
+Ðđ4ÐđÐķ
+Ðđ4Ðđз
+Ðđ4ÐđÐđ
+Ðđ4ÐđК
+Ðđ4ÐđÐŧ
+Ðđ4ÐđО
+Ðđ4ÐđÐ―
+Ðđ4ÐđÐŋ
+Ðđ4ÐđŅ€
+Ðđ4ÐđŅ
+Ðđ4ÐđŅ‚
+Ðđ4ÐđŅ„
+Ðđ4ÐđŅ…
+Ðđ4ÐđŅ†
+Ðđ4ÐđŅ‡
+Ðđ4ÐđŅˆ
+Ðđ4ÐđŅ‰
+Ðđ4ÐšÐą
+Ðđ4КÐē
+Ðđ4КÐģ
+Ðđ4КÐī
+Ðđ4КÐķ
+Ðđ4Кз
+Ðđ4КÐđ
+Ðđ4КК
+Ðđ4КÐŧ
+Ðđ4КО
+Ðđ4ÐšÐ―
+Ðđ4КÐŋ
+Ðđ4КŅ€
+Ðđ4КŅ
+Ðđ4КŅ‚
+Ðđ4КŅ„
+Ðđ4КŅ…
+Ðđ4КŅ†
+Ðđ4КŅ‡
+Ðđ4КŅˆ
+Ðđ4КŅ‰
+Ðđ4ÐŧÐą
+Ðđ4ÐŧÐē
+Ðđ4ÐŧÐģ
+Ðđ4ÐŧÐī
+Ðđ4ÐŧÐķ
+Ðđ4Ðŧз
+Ðđ4ÐŧÐđ
+Ðđ4ÐŧК
+Ðđ4ÐŧÐŧ
+Ðđ4ÐŧО
+Ðđ4ÐŧÐ―
+Ðđ4ÐŧÐŋ
+Ðđ4ÐŧŅ€
+Ðđ4ÐŧŅ
+Ðđ4ÐŧŅ‚
+Ðđ4ÐŧŅ„
+Ðđ4ÐŧŅ…
+Ðđ4ÐŧŅ†
+Ðđ4ÐŧŅ‡
+Ðđ4ÐŧŅˆ
+Ðđ4ÐŧŅ‰
+Ðđ4ÐžÐą
+Ðđ4ОÐē
+Ðđ4ОÐģ
+Ðđ4ОÐī
+Ðđ4ОÐķ
+Ðđ4Оз
+Ðđ4ОÐđ
+Ðđ4ОК
+Ðđ4ОÐŧ
+Ðđ4ОО
+Ðđ4ÐžÐ―
+Ðđ4ОÐŋ
+Ðđ4ОŅ€
+Ðđ4ОŅ
+Ðđ4ОŅ‚
+Ðđ4ОŅ„
+Ðđ4ОŅ…
+Ðđ4ОŅ†
+Ðđ4ОŅ‡
+Ðđ4ОŅˆ
+Ðđ4ОŅ‰
+Ðđ4Ð―Ðą
+Ðđ4Ð―Ðē
+Ðđ4Ð―Ðģ
+Ðđ4Ð―Ðī
+Ðđ4Ð―Ðķ
+Ðđ4Ð―Ð·
+Ðđ4Ð―Ðđ
+Ðđ4Ð―Ðš
+Ðđ4Ð―Ðŧ
+Ðđ4Ð―Ðž
+Ðđ4Ð―Ð―
+Ðđ4Ð―Ðŋ
+Ðđ4Ð―Ņ€
+Ðđ4Ð―Ņ
+Ðđ4Ð―Ņ‚
+Ðđ4Ð―Ņ„
+Ðđ4Ð―Ņ…
+Ðđ4Ð―Ņ†
+Ðđ4Ð―Ņ‡
+Ðđ4Ð―Ņˆ
+Ðđ4Ð―Ņ‰
+Ðđ4ÐŋÐą
+Ðđ4ÐŋÐē
+Ðđ4ÐŋÐģ
+Ðđ4ÐŋÐī
+Ðđ4ÐŋÐķ
+Ðđ4Ðŋз
+Ðđ4ÐŋÐđ
+Ðđ4ÐŋК
+Ðđ4ÐŋÐŧ
+Ðđ4ÐŋО
+Ðđ4ÐŋÐ―
+Ðđ4ÐŋÐŋ
+Ðđ4ÐŋŅ€
+Ðđ4ÐŋŅ
+Ðđ4ÐŋŅ‚
+Ðđ4ÐŋŅ„
+Ðđ4ÐŋŅ…
+Ðđ4ÐŋŅ†
+Ðđ4ÐŋŅ‡
+Ðđ4ÐŋŅˆ
+Ðđ4ÐŋŅ‰
+Ðđ4Ņ€Ðą
+Ðđ4Ņ€Ðē
+Ðđ4Ņ€Ðģ
+Ðđ4Ņ€Ðī
+Ðđ4Ņ€Ðķ
+Ðđ4Ņ€Ð·
+Ðđ4Ņ€Ðđ
+Ðđ4Ņ€Ðš
+Ðđ4Ņ€Ðŧ
+Ðđ4Ņ€Ðž
+Ðđ4Ņ€Ð―
+Ðđ4Ņ€Ðŋ
+Ðđ4Ņ€Ņ€
+Ðđ4Ņ€Ņ
+Ðđ4Ņ€Ņ‚
+Ðđ4Ņ€Ņ„
+Ðđ4Ņ€Ņ…
+Ðđ4Ņ€Ņ†
+Ðđ4Ņ€Ņ‡
+Ðđ4Ņ€Ņˆ
+Ðđ4Ņ€Ņ‰
+Ðđ4ŅÐą
+Ðđ4ŅÐē
+Ðđ4ŅÐģ
+Ðđ4ŅÐī
+Ðđ4ŅÐķ
+Ðđ4ŅÐ·
+Ðđ4ŅÐđ
+Ðđ4ŅÐš
+Ðđ4ŅÐŧ
+Ðđ4ŅÐž
+Ðđ4ŅÐ―
+Ðđ4ŅÐŋ
+Ðđ4ŅŅ€
+Ðđ4ŅŅ
+Ðđ4ŅŅ‚
+Ðđ4ŅŅ„
+Ðđ4ŅŅ…
+Ðđ4ŅŅ†
+Ðđ4ŅŅ‡
+Ðđ4ŅŅˆ
+Ðđ4ŅŅ‰
+Ðđ4Ņ‚Ðą
+Ðđ4Ņ‚Ðē
+Ðđ4Ņ‚Ðģ
+Ðđ4Ņ‚Ðī
+Ðđ4Ņ‚Ðķ
+Ðđ4Ņ‚з
+Ðđ4Ņ‚Ðđ
+Ðđ4Ņ‚К
+Ðđ4Ņ‚Ðŧ
+Ðđ4Ņ‚О
+Ðđ4Ņ‚Ð―
+Ðđ4Ņ‚Ðŋ
+Ðđ4Ņ‚Ņ€
+Ðđ4Ņ‚Ņ
+Ðđ4Ņ‚Ņ‚
+Ðđ4Ņ‚Ņ„
+Ðđ4Ņ‚Ņ…
+Ðđ4Ņ‚Ņ†
+Ðđ4Ņ‚Ņ‡
+Ðđ4Ņ‚Ņˆ
+Ðđ4Ņ‚Ņ‰
+Ðđ4Ņ„Ðą
+Ðđ4Ņ„Ðē
+Ðđ4Ņ„Ðģ
+Ðđ4Ņ„Ðī
+Ðđ4Ņ„Ðķ
+Ðđ4Ņ„з
+Ðđ4Ņ„Ðđ
+Ðđ4Ņ„К
+Ðđ4Ņ„Ðŧ
+Ðđ4Ņ„О
+Ðđ4Ņ„Ð―
+Ðđ4Ņ„Ðŋ
+Ðđ4Ņ„Ņ€
+Ðđ4Ņ„Ņ
+Ðđ4Ņ„Ņ‚
+Ðđ4Ņ„Ņ„
+Ðđ4Ņ„Ņ…
+Ðđ4Ņ„Ņ†
+Ðđ4Ņ„Ņ‡
+Ðđ4Ņ„Ņˆ
+Ðđ4Ņ„Ņ‰
+Ðđ4Ņ…Ðą
+Ðđ4Ņ…Ðē
+Ðđ4Ņ…Ðģ
+Ðđ4Ņ…Ðī
+Ðđ4Ņ…Ðķ
+Ðđ4Ņ…з
+Ðđ4Ņ…Ðđ
+Ðđ4Ņ…К
+Ðđ4Ņ…Ðŧ
+Ðđ4Ņ…О
+Ðđ4Ņ…Ð―
+Ðđ4Ņ…Ðŋ
+Ðđ4Ņ…Ņ€
+Ðđ4Ņ…Ņ
+Ðđ4Ņ…Ņ‚
+Ðđ4Ņ…Ņ„
+Ðđ4Ņ…Ņ…
+Ðđ4Ņ…Ņ†
+Ðđ4Ņ…Ņ‡
+Ðđ4Ņ…Ņˆ
+Ðđ4Ņ…Ņ‰
+Ðđ4Ņ†Ðą
+Ðđ4Ņ†Ðē
+Ðđ4Ņ†Ðģ
+Ðđ4Ņ†Ðī
+Ðđ4Ņ†Ðķ
+Ðđ4Ņ†Ð·
+Ðđ4Ņ†Ðđ
+Ðđ4Ņ†Ðš
+Ðđ4Ņ†Ðŧ
+Ðđ4Ņ†Ðž
+Ðđ4Ņ†Ð―
+Ðđ4Ņ†Ðŋ
+Ðđ4Ņ†Ņ€
+Ðđ4Ņ†Ņ
+Ðđ4Ņ†Ņ‚
+Ðđ4Ņ†Ņ„
+Ðđ4Ņ†Ņ…
+Ðđ4Ņ†Ņ†
+Ðđ4Ņ†Ņ‡
+Ðđ4Ņ†Ņˆ
+Ðđ4Ņ†Ņ‰
+Ðđ4Ņ‡Ðą
+Ðđ4Ņ‡Ðē
+Ðđ4Ņ‡Ðģ
+Ðđ4Ņ‡Ðī
+Ðđ4Ņ‡Ðķ
+Ðđ4Ņ‡Ð·
+Ðđ4Ņ‡Ðđ
+Ðđ4Ņ‡Ðš
+Ðđ4Ņ‡Ðŧ
+Ðđ4Ņ‡Ðž
+Ðđ4Ņ‡Ð―
+Ðđ4Ņ‡Ðŋ
+Ðđ4Ņ‡Ņ€
+Ðđ4Ņ‡Ņ
+Ðđ4Ņ‡Ņ‚
+Ðđ4Ņ‡Ņ„
+Ðđ4Ņ‡Ņ…
+Ðđ4Ņ‡Ņ†
+Ðđ4Ņ‡Ņ‡
+Ðđ4Ņ‡Ņˆ
+Ðđ4Ņ‡Ņ‰
+Ðđ4ŅˆÐą
+Ðđ4ŅˆÐē
+Ðđ4ŅˆÐģ
+Ðđ4ŅˆÐī
+Ðđ4ŅˆÐķ
+Ðđ4ŅˆÐ·
+Ðđ4ŅˆÐđ
+Ðđ4ŅˆÐš
+Ðđ4ŅˆÐŧ
+Ðđ4ŅˆÐž
+Ðđ4ŅˆÐ―
+Ðđ4ŅˆÐŋ
+Ðđ4ŅˆŅ€
+Ðđ4ŅˆŅ
+Ðđ4ŅˆŅ‚
+Ðđ4ŅˆŅ„
+Ðđ4ŅˆŅ…
+Ðđ4ŅˆŅ†
+Ðđ4ŅˆŅ‡
+Ðđ4ŅˆŅˆ
+Ðđ4ŅˆŅ‰
+Ðđ4Ņ‰Ðą
+Ðđ4Ņ‰Ðē
+Ðđ4Ņ‰Ðģ
+Ðđ4Ņ‰Ðī
+Ðđ4Ņ‰Ðķ
+Ðđ4Ņ‰Ð·
+Ðđ4Ņ‰Ðđ
+Ðđ4Ņ‰Ðš
+Ðđ4Ņ‰Ðŧ
+Ðđ4Ņ‰Ðž
+Ðđ4Ņ‰Ð―
+Ðđ4Ņ‰Ðŋ
+Ðđ4Ņ‰Ņ€
+Ðđ4Ņ‰Ņ
+Ðđ4Ņ‰Ņ‚
+Ðđ4Ņ‰Ņ„
+Ðđ4Ņ‰Ņ…
+Ðđ4Ņ‰Ņ†
+Ðđ4Ņ‰Ņ‡
+Ðđ4Ņ‰Ņˆ
+Ðđ4Ņ‰Ņ‰
+Ðą4ŅŒ
+Ðē4ŅŒ
+Ðģ4ŅŒ
+Ðī4ŅŒ
+Ðķ4ŅŒ
+з4ŅŒ
+Ðđ4ŅŒ
+К4ŅŒ
+Ðŧ4ŅŒ
+О4ŅŒ
+Ð―4ŅŒ
+Ðŋ4ŅŒ
+Ņ€4ŅŒ
+Ņ4ŅŒ
+Ņ‚4ŅŒ
+Ņ„4ŅŒ
+Ņ…4ŅŒ
+Ņ†4ŅŒ
+Ņ‡4ŅŒ
+Ņˆ4ŅŒ
+Ņ‰4ŅŒ
+ŅŒ4ŅŒ
+.Ðīз4Ðē
+.ÐīÐķ4Ņ€
+.ÐīÐķ4Ðŧ
+.ÐēÐģ4Ðŧ
+.ÐēÐī4Ðŧ
+.ÐēÐģ4Ņ€
+.ÐēÐģ4Ð―
+.ÐēÐŋ4Ðŧ
+.ÐēК4Ðŧ
+.ÐēК4Ņ€
+.ÐēŅ‚4Ņ€
+.ŅÐģ4Ðŧ
+.зÐī4Ņ€
+.ŅÐģ4Ņ€
+.ŅÐą4Ņ€
+.ŅÐī4Ņ€
+.ÐķÐī4Ņ€
+.ŅÐš4Ðŧ
+.ŅÐŋ4Ðŧ
+.ŅÐŋ4Ņ€
+.ŅŅ‚4Ņ€
+.ŅÐš4Ņ€
+.ŅˆÐŋ4Ņ€
+.ŅÐš4Ðē
+.Ðēз4Ņ€
+.ÐēŅ4Ðŧ
+.ÐēŅ4О
+.ÐēŅ4Ņ€
+.ŅÐē4Ņ€
+.ŅŅ…4Ðŧ
+.ŅŅ…4Ņ€
+.Ņ…Ðē4Ņ€
+.ÐēŅ4Ņ‚
+.ŅŅ…4Ðē
+.ŅÐž4Ņ€
+Ð―4КŅ‚.
+Ð―4КŅ.
+К4ŅŅ‚.} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-de.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-de.pat
index 86885faac18..a5e2e163382 100644
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-de.pat
+++ b/Master/texmf-dist/tex/context/patterns/mkii/lang-de.pat
@@ -6,3493 +6,2178 @@
\patterns{
.ab1a
+.abi4
.ab3l
.abo2
.ab3ol
.ab1or
-.ab3s2
-.ab3u
-.ade3n
-.ae3
-.aft2
+.ack2
+.ag4n
.ag4r
.ag2u
.ai2s
.akt2a
.al2e
.al3k
-.al3lei
-.al5len
-.al3li
-.al3se
+.al5l4en
.al4tei
-.al4tel
-.alter6s5
-.alt3s4
-.al4tu
+.alt3s
.ampe4
-.amt2s1
+.amt2s
.amt4sc
-.ana1c
-.an4a3t
.an3d2
.anden6k
-.an1er
+.and4ri
.ang2
-.an3g4li
-.an3go
+.an3gli
.angs4
.angst3
-.ani2s
-.an3k4
-.an3na
.an3s2
.an4si.
-.an4tar
+.an4tag
+.an3th
.an3z2
+.apo1
.ap5p6le.
+.aps2
.ari1e
-.ar3k2a
+.ark2a
.ar4m3ac
-.ar4mun
.ar2sc
-.ar4tan
.ar4t3ei
.arter4
.ar6t5erh
-.ar2t1r
-.arz2
-.asbe2
+.as3t
.as4ta
-.as3tr
-.ata1
-.at2h
-.at4r
+.at4h
.au3d
.au4f3
-.au2s3
-.auß2
-.ax2
+.au4s3
+.ausch3
+.ax4
.ÃĪm3
.ÃĪr6schl
-.ÃĪt2h
.ÃĪt2s
-.bahn3
-.bah6ner
-.bal3t
-.baus4
.be3erb
-.beige4
-.bel2a
.be3r2a
-.ber2e
-.ber4g3a
+.be3r2e
+.berg3a
+.ber6gab
.ber6g5e6b
+.ber4gl
.ber4g3r
-.ber4tr
-.bi4os
-.bi2t
-.bit1a
-.blau3
.boge2
-.bogen3
-.bogens6
.bo4s3k
.bu4ser
-.bu3ta
.by4t
-.ca2s3t
-.ce2ra
-.ch6
-.char8mes
+.ch2
.chi3er
.dab4
.da2r1
-.dar3in
+.da4rin
.dar2m1
.da4te.
.da4tes
.de2al
.de1i
-.dein2
-.de3lo
+.de4in.
.de8ments
-.de3na
-.den4ka
-.den4kl
-.den4ko
.de1o2
.de3r4en
.de1s
+.des2e
.de3sk
.des2t
-.di3el
-.di4en
.dien4e
-.dien6st
-.dienst7a8d
-.do3b
.do2mo
.do1pe
-.dor2f1
-.do2tr
-.dy2s3
+.dorf1
+.dÞ1b
+.dys1
.ebe2r1
-.eg2o
-.eh2e
.ehe1i
-.ehe5n
+.ei4ds
.ei3e2
-.ei3f2e
-.ei3k
.ei4na
-.ein3d
-.ei2ne2
-.ein3eb
-.ein6erl
-.ein3sp
-.eise4
+.einen6g
.ei2sp
-.eis3s2
-.ei2s5t
+.ei4st
.ei4tr
.eke2
-.ek3li
.el2a
.el2bi
-.el2bl
.elb3s
-.el4fei
-.el2fl
.em3m2
.en1
-.en4da
-.en4d3er4
+.en4d3er
+.en5der.
.en2d3r
.end3s
-.en4dÞ
-.en3ga
.en2gl
-.enk2
.enn2
.enns3
-.ent3
-.en2ta
+.en2t3
.en4tei
-.en7thalp
-.en4tio
-.en4t1r
-.en5trop
-.ents4
-.er4bei
+.en4tr
.er8brecht
+.erb3s
.er2bu
+.er2da
.er4dan
+.er4dar
+.er4dei
.erden6k
-.er4d3er
+.er4der
.er1e
.ere3c
-.er2em
.erf4
.er1i
-.ers2
.er8stein
.erster6
.er8stritt.
.er8stritten.
-.er4z3el
.er4zen4
+.esel4s
.es3p
-.es3ta2
-.est6e
-.es3th
-.es3t3r
+.es3ta
+.es5t4e
+.est2h
+.es3to
+.es5tr
.et2s
-.eu3
-.eug4
-.eur4
+.eu1
+.eu3g4
+.eu3t
+.eve4r
.ext4
-.fe3la
+.fe4i
.fer4no
-.fi3d
.fi3est
.fi4le.
.fi4len
.fi2s
-.flu2g1
+.flug1
+.for2t
.fs4
.fu2sc
-.ga2me
-.gan4ga
-.ga2s1
-.gas3e
-.ga4sp
.ga4t
.gd2
-.gebe4a
.geb2l
-.gee4
-.gel4b3r
.gel2d1
-.ge3lu
-.ge3m
.ge5nar
-.ge3n4e
+.ge3n2e
.gene7cke
-.ge3n2o
-.ge3r4a
-.ger2e
-.ge3ro
-.ger4s
-.ge3sa
-.glan2
-.glanz3
-.gol6der
+.ge3r2a
+.ge3r2e
+.ge3u
.gs4
-.gus2
-.halt4e
+.guss1
.hau2t1
.he2
-.he4bei
.he3fe
-.he3le
-.he4r3an
-.he3rat
-.her6b5ra
-.he3rer
+.her3an
.he3ri
.he6r5inn
+.hi4n
.hin3u
-.hips4
-.hi4s
-.hof1
-.ho4fen
+.hi2s
.ho4met
.ia4
.im2a
.ima4ge
.im5m2
.in1
-.ind2
+.in3e
.in3gl
-.ink2
-.in3n2e
-.in3sk
-.in3t2
+.ink4
+.inn2e
.inu1
-.io4d
.ioni1
.ire3
.is2a
-.is3ta
-.it2h
-.iv2
-.joni1
-.ka2b3l
+.ka2b5l
.ka2i
-.kal2a
-.ka3le
-.ka3t2a
-.kat3i
-.ka4ti4o
+.kamp2
+.ka4t3io
.ki4e
-.klang3
-.ko3b
+.kle4i
.kopf1
-.kor4da
-.kraf2
-.ks4
+.ks2
.kus2
-.la3be
-.lan8de8mi
.le4ar
-.le4gas
-.le3n2i
.lich8t7er8s
.li2f
+.li4tu
.li4ve.
.lo4g3in
-.lo2sc
-.los3s4
-.lo2tr
.lo3ver
-.luster6
.lus4tr
-.lut2h
-.ly2s3
.ma3d
-.ma3ge
+.ma3la
.mal4e
.ma2st
-.mat4c
-.ma5tr
-.matu3
.md2
.mel2a
-.me3ne
.me3no
.men8schl
.men8schw
-.mes4sp
-.mi2f
-.mik4
-.mil2z1
-.mi2s
+.men3t4
.mi4t1
.mm2
-.mutter5
-.na3no
-.na3t
.nÃĪs1c
-.nebe4n
-.ner2f
-.ne1ro
-.ne2s
-.nich2
-.nicht5e
+.ne4s
.ni4e
-.ni3k4l
-.no2th
-.nul2
+.nob4
+.no4th
.nus2
.oa3
.ob1a
.obe2
-.ober5ei
-.ob3i4t
-.och3
-.of2e
.oper4
.or2a
-.ord4e
-.or3g
-.or3k2
.ort2
.orts3e
-.os3s
-.os4ta4
+.os5t6alg
.oste2
.ost5end
.os8ten8de
.oste6re
-.os8terwe
-.os4tes
-.os2t3i
-.os4tig
-.os4t3r
-.os4tu
-.ot1a
-.ou2t
-.ou4te
+.ost3r
.ozo4
.Ãķd2
-.Ãķl3l
-.pab4
-.part4h
+.pa4r1e
+.par3t4h
.pe2c
-.pe3la
-.pe3le
-.pe3na
+.pes4te
.pf4
-.ph4
+.ph2
.poka2
-.po4st
-.postei6
.pro1
.ps2
.rabe4
-.ra3ch4e
.ra3me
-.rau2m
-.rau8schl
-.rÃĪu3sc
-.re3ale
+.ram3s
.reb3s2
.re3cha
-.re5insz
-.reis6e5i
-.rei4s5t
+.rein4t
.reli1
+.reli3e
.res6tr
-.ri4as
-.richt6e
+.ri2as
+.rich5te
.ro4a
-.ro3be
-.ro2e
-.ro2h
-.ro3m
-.rom4a
-.ro2st
-.ro2t3r
-.rÃķ2s
-.ruf3s
-.ruh2r1
+.ro3m2a
+.rÃķ2s1
.runder6
.rÞ1b
.rÞ6cker6
-.sa3br
.sali3e
-.sami1
-.sau1c
-.sau4er
-.sau5er.
+.sami3
.sch4
-.schaf8t7end
-.scheiner8
.se3ck
-.se2e
-.seein4
-.se2ha
-.sen4f
-.sen5s
-.se3re
-.se1ro
+.sen3s
+.ser2u
.se2t1
.sha2
-.si4en
-.si3gn
.si4te
.ski1e
-.skis2
-.sour2
-.spani7er.
.spiege8lei
-.st4
-.stau8be8cken.
-.ste2i
-.steiner8k
+.st6
.sto4re
-.stro6ma
.sucher6
.tage4s
-.ta3mi
-.tan4k3a
.tan4k3l
-.ta3ra
-.tar3t2
-.ta2t1h
.ta2to
-.ta4tor
-.ta2t1u
.te2e
.te2f
-.tehe3
-.teiler8s
-.tei8l7ersc
-.te3le
.te3no
-.te1ra
.te2s
.te4st
-.test3r
.th4
.ti2a
+.tid1
.ti2e
-.ti2me
+.ti4me.
.ti4mes
-.ti3r
.ti2s
-.tischen8
-.ti8sch7end
-.tite4
-.tode4
-.to4der
-.todes3
-.to2n
-.to4nat
-.ton3i
+.ti5ta
.to4nin
-.tons2
.to4pl
-.to2pr
.to2w
.tri3es
.tro2s
-.ts4
-.tse3
-.tu3ra
+.ts2
.tu3ri
-.turm1
-.tur4ma
-.ub2
-.ufe2
-.ufer3
-.ul2b3
+.uf2e2
+.ufer1
.um3
-.uma2
-.ume2
.umo2
.un3a2
.un3d
-.un3g2
+.une2
+.un3g
.uni4t
.un3s
.uns4t
-.ur3a2d
-.uran6fa
-.ur1c
-.ur1e
-.ur4inf
-.ur3o4m
-.ur1o2p
+.ur1
+.ur2i
+.urin4s
+.ur3o2m
+.uro2p
.ur3s2
.ut2a
.ut3r
+.Þbe4
.ve5n2e
-.voll1
+.vi2e
.vo4r
.wah4l
.wa2s
-.weg5s
-.weine4
.wei4ta
.welter8e
.welter8k
-.wer6ker
-.wer4kr
-.wer4tr
-.wetterer8
.wi4e
.wor2
.wort5en6
.wor8tend
.wor4tu
-.wur2f1
.xe3
.ya4l
-.zel4la
-.zelle4
-.zel6leb
-.zeug4i
+.za2s
.zi2e
-.zie4l3u
-.zin4ka
-.zin4s3c
.zin4st
-.zuch2
-.zug3l
-.zu4gra
-.zu2pf
.zwe2
-.zweigen8
-.zwei8g7end
a1ab
aa2be
aa1c
-a1a2ce
aa2gr
-a1akt
-aals2t
-a1a2n
-a2ans
-a1aq
+2a1a2n
2a2ar
-aa2r3a
-aar3b
-aar3d
-aa3rea
-aa2rei
-aarf4
-aar3g2
+aa2r1a
+aar3f4
aar3k4
-aart4
-1aas
+aar5sc
aas5t
aata2
aa2th
-aa4t3r
+aa2t3r
aat4s3
2a3au
a1ÃĪ
a1b
2aba
-3abad
-abais4
-ab1alt
-a3b2am
-ab2ant
-ab1au
+ab4am
+ab1auf
ab1ÃĪ
-ab2ÃĪr
ab2ÃĪu
-2abbat
-2abbin
1abd
-2a3be.
-2a3bec
-2abee
-ab1eic
-abe3i4d
+ab1eb
+abe1e
+abei1
ab1eil
-ab1ein
-2ab2el
+4abel
abe2la2
-2a3ben.
-1abent
-2aber
-a2berd
-a3bere
-a3beri
+a3ber
ab1er2k
ab1er2r
ab1er2z
-4abes
-abe2s1e
ab3esse
2abet
2abew
1abf
+3abfi
1abg
-3abga
1abh
2abi
-4abil
ab1ins
ab1ir
-abi3st
ab1it
-abi4tur
1abk
ab1l
1a2bla
-a3blat
1a2blÃĪ
-a2b3led
-3ab3lei
-a3blem
-2ablet
+2able
+ab4le.
ab3li
-a2blin
-ab4lit
-2ablo
-1a2blÃķ
+ab4lo
+3a2blÃķ
a2blu
1abn
-2abo
-3a2bo.
+a2bo.
ab2of
-3a2bon
-4abot
-2abÃķ
+1a2bon
+2a3bor
ab3r
+a3bra
a4brÃĪ
-a2bre
-ab4ros
-2abrÃķ
-a4bs
-1ab5sc
-1ab3s2p
+2abrÞ
+1abs
+2abs.
+abs2a
+2absar
+ab3s2i
+ab3s2p
abst2
-3absta
-1abstu
+2abst.
+ab3ste
ab3sz
1abtei
-abte2s
-3abtr
-2abu
-abu3g4
-a2bum
+2a3bu
ab1ur
2abÞ
1abw
2aby
aby4t
-3abz
-2ac.
-2a3ca
-1ac1c
-2acci
+1abz
+2aca
+2ac1c
a1cem
-a1cen
-a2ceo
+2ach.
ach1a
a1chal
-a3chari
-ach3as
ach3au
2achb
2a1che
-a2ch1e4c
+a2ch1e2c
ach1ei
-ach4ei.
-a2chep
a4cherf
-ach5erfa
-a4ch3erh
-a4ch3erl
+a4cherk
a4cherÃķ
a4ch3erw
-2achf
-2a1chi
-a2chim
+a1chi
ach3l
-2ach3m
+ach3m
ach3n
a1cho
a3cho.
-a2cho2r
-ach3Ãķf
-4ach3r
-2achsc
-achs4el
+ach1o2b
+ach1or
+ach3Ãķ
+ach3r
ach3s2i
-ach3skr
-achs4or
ach3su
a4cht
-ach4tak
-ach6terf
-ach8tersp
-ach6t5erw
-ach4t1o
-acht5rat
+acht7ersc
+ach2t1o
ach8traum
ach8trÃĪume.
ach8trÃĪumen.
ach6trit
-acht6s5al
-ach4tum
a1chu
ach1u2f
ach3Þ
2achv
-4ach1w
-a2chy
+2ach1w
a1ci
+ac1in
+2ack.
a1ckar
-a3ckel
a2ckin
-ack2sp
-acksta4
-2a1cl
+ack2se
+ack3sl
+ack3sta4
+a1cl
acon4n
2acu
a1ç
a1d
-2ad.
2ada.
-4adab
-ad2abr
+a3d2ab
ad2ag
-ad1an
-3adap
-4a3d2a2r3
-2adas
-2adat
-a2d1au
-a3dau.
+ada2m
+ad3ama
+a2d1an
+3a4dap
+a3d2ar3
+4adav
1a2dÃĪ
ad1c
1add
2ade.
ade2al
-a3dec
-a3dee
-adefi2
-2adeg
-a3dell
-4a3den
-aden1a
-ade4nat
-adeo2
-ade1ra
-a2d1erk
+adefi4
+a2dein
+2aden
+ade1r2a
+a2deri
4ade1s
ade3s2p
ades4s
+ade5str
2adf
-4adh
-4adi
+2adh
+4a3di
adi3en
-adi3er.
-adie4sc
-adi4st
-3adj
-2adli
-3admi
-4admu
+5adj
+2ado
ad2ob
-ado2n
-ado4na
-a2dop
-ad2os
2adp
2adq
-a2dre
2ad3rec
-ad3rei
-ad3run
+ad4res
2ads2
ad3st
ad3sz
-2ad2t1
-ad4te2
-1adv
-2a3dy
-2a1e1
+ad2t1
+adta2
+ad4te
+ad4tr
+2adu
+2a1e
ae2b
-a2ec
-ae2ck
-ae2d
-ae2i
+ae2c
+a3e2d
+a3ei
a2ek
-a2el
a3el.
-a4ela
-a4ele
-a4eli
+a2ela
+a2ele
+a2eli
a3els
-ae2m
ae2o3
-aeop2
-ae2p
-a3er.
+a3e2p
+ae1r
3a2er2o1
-aes2a
-ae2sc
+ae2s
+ae4sc
aes5t
+a2et
a2ew
ae2x
-2afa
-af1ab
-a2f1a2n
+af1a
+a2fak
+a2fan
a3far
-a2f1au
-2afÃĪ
-a2f1ÃĪn
+af4at
+a2fau
2afe
a2f1ec
-a4fentl
-a4f1ep
-aff4a
+a2fent
+af1erl
+a2fex
+af2fei
af2f3l
-aff2s
-aff4th
+af4flu
2afi
-afi6kanz
-afi4kat
-afi2t
2af3l
-af1la
-a1f4lu
-2afo
-a2f3oc
-a2ford
-a2f1ort
afo1s
-2afra
-af3rau
+a2fÃķ
+af3ra
af3rÃĪ
af3re
-2afro
af3rÃķ
-af4rÞ
af3s2a
-af3s2h
-af2si
af2sp
-afs4t
+2aft
af2t1a
-af3tat
af2tei
-af2te2l
-aft4erk
+af4t3erl
af2t1o
-af2tÃķ
-aft3r
-af2tra
-aft5rei
-aft4stÃĪ
+af2t3r
+af4t5re
af2tur
a2f3ur
-2afÞ
-afÞr3
a1g
-2ag.
2aga
ag1a2b
ag1a2d
ag1ar
-a2g1au
-ag2del
-ag2dr
+ag1au
+ag2di
ag2du
-4age.
-age4l3ei
-age4ler
-4a3gen.
+2age.
+age1i
+age4na
age4neb
a2gent
+a4gentu
+ag2er
+age4ral
2ages
-age4sam
-age4s3in
-ages3p
-ages6sen
-ages3ti
+age2sa
+age4sel
+age4si
+age2s3p
+ag3esse
+age4s3ti
+ag3gl
3aggr
-a2g1id
-a2gim
+3a2git
2a2gl
-ag4lan
-ag4las
-ag3le
+ag6la
a4glÃķ
-2agm
ag2n
-ag4nat
-a4gnÃĪ
+a2gna
ag4ne.
ag4nu
-ago3b
-ag3rat
a2g3re
-a2gri
-ag3rie
-ag3rin
-2ags
+a2g3ri
+ag4ro
+agsa2
ag3s2ah
ag4sam
-ag3s4eid
-ag7s8porta
-agst2
-ag1ste
-ag3stÃķ
+ag4set
+ags3p
+ag4spo
+ag3sta
+ag3ste
2agt
ag2th
-2agu
a2gund
2ah.
2a1ha
-ah2an
ah4at
-a1hÃĪ
2a1he
ahe1in
-a2h1er2h
+a2h1erh
ahe1s
-ahe3u
a1h2i
ahin3
-ah2l3a2
-ah2l1ÃĪ
-ah2l1ei
-ah2lel
-ahle4na
-ah4l3erd
+ahl3a2
+ah4l1ei
ah4l3erh
-ahl1o2
ah2lÃķ
ahl3sz
-ahme1i
-ahme3s
-ah3mu
-ah4n3a
-ah3nee
-ah2nef
-ahn3el
-ah4nerd
+ah4n1a
ahner4e
-ahner6le
-ahner4n
-ah2nin
-ah2no
-1a2hor
+ahnt2
+1ahor
ah1os
-ah3Ãķs
-4ahr
+a2h3Ãķ
ahr1a
-ah3r2e
-ahren6sc
-ahre4s
-ahr6tage
-ahr6teng
-ahr2ti
-ahr4tro
-ahr4tun
+ah3re
+ahre4s3
+ah3ri
+ahrta4
+ahr6tri
ah2ta
-ah2te2l
-ah2t1ex
-ah4t3r
-aht3s6
+aht3h
+ah4t5r
+aht3s
a1hu
ah1w
a1hy
-2ai.
-ai1a4
-a1ia.
-2aib
-ai2bl
+ai3a
+aian3
aid2s
-ai1e4
-ai3en3
+ai1e2
+aien3
aif4
ai1fr
-a4i3g4
+ai3g4
a3ik.
ai3ke
-ai2lar
-ail3d4
-ai2lei
-ail3g
+aik4r
+a2il
ai2lo
-4ain
+aim2o
ain2a
a1ind
-ai5n4e
-ain3s
-ains2p
-3airb
+ain4e
+a1ing
+ain3sp
+2ais
ai2sa
a3isch.
-ai5schw
ai3s2e
-ais4se.
ait4
a3iv.
a3ivl
a3ivs
a1j
-a2jat
aje2
ajekt4o
2ak.
-2aka.
-2aka3b
-akab4r
-a2kad
+1a2k4ad
2akal
2a3kam
-2akan
2akar
ak4at
-akat1a
-aka4tak
-1akaz
-4akÃĪ
+1a2kaz
2akb
2akc
2akd
2a1ke
a2kef
-a2k1em
-a2kent
-a2kes
-ak2et
+aken2n
a2keu
2a1ki
-ak1ins
-aki1s
-1akku
2ak3l
-a1k4la
ak4li
-3aklÃķ
-a1kna
-2ako
+4ako
2a1kr
4akra
-ak3res
-a3k4ri
+ak3rau
3akro
-ak3rÞ
2aks
ak3sh
-ak2t1a2b
+2akta
+ak5tan
2aktb
-ak2tel
-akt2er
-2aktg
2aktik
-2aktis
-2aktm
-ak2to4b
-ak2tÃķ
ak2t3r
ak5t4ri
2aktsi
-2aktsp
2aktst
-2aktw
-a1ku
-2akun
-a2kup
-2akur
-aku2s
-4akÞ
+2a1ku
+a2kun
+4a3kÞ
1akz
-3akze
a1la
2ala.
-2alabo
+al1ab
+al3abs
+ala3ch2
al1af
+ala2g
al1age
-2alai
-al1akr
+a3lal
al1am
+al3ame
+alami5
+al3amp
al1ana
-2aland
-a2lang
+a2l1ang
+al1ans
al1anz
-al1app
+a2lar
a3lar.
-al3arc
a3lare
-2al1arr
-a2lart
-ala2s
+al2arm
+al3arr
+ala4s
al1asi
al1ass
-a3lat.
-al4atm
-alat3z
+2alat
al1au
al3aug
a1lÃĪ
-a2l1ÃĪm
-al1ÃĪn
-al1ÃĪrm
-al1ÃĪu
-3albat
-al2bÃĪr
-alber4e
+al1ÃĪm
+alb3ein
al4berh
al4b3er4w
al2b1l
+alb3li
al2boh
-al2bon
+al2br
alb3ru
-alb3st
-al4dan
+alb3s
al2dÃĪ
-al4d3erl
-al4d3ern
-alde2s
-ald3inn
-al2dra
-al2drÃĪ
-alds2
+al2dr
+alds2t
2ale
-4a3le.
-ale4ar
-a2l1e2b
-al1eck
-a4l1ef
+ale4a
+3a2l1e2b
+3a4l1ef
+a4l1eh
a2l1ei
-a3l2eic
a4lein
a2l1el
-3a2lema
-a2l1e2mi
-4a3len.
-alende4
-al3endr
-a4l3ends
+alen1
+al3ends
a2leng
-al2enn
+a3lentf
ale2p
al1epo
-4aler.
-a2l1erb
-aler2e
-a2l1erf
-a2l1er2h
-aler4kl
-a2l3erl
-al1erm
-aler4mi
-a2l1er4r
-al2ers
+al1erf
+a2l1erh
+al3erl
+3alerm
a2l1ert
-3a4l3erwÃĪ
-4ales
-a2l1e4sk
-a2less
-a4leth
+3alerz
+a2l1esk
+ale4t
+al1eta
+al1eth
a2l1eu
+a4leur
+3a2lex
alf4r
3algi
al2gli
-al3glo
-1algo
-3algor
-alg4r
2ali
-al2imb
-al1imm
+ali4ene
ali4nal
-al1ind
-alin4ge
-a2l1in2q
al1ins
-alken1
-al2klÃķ
+a2linv
+alk1ar
al2kne
-al2kof
1alkoh
alk3s2
alks4t
-al2lab
-al3lad
-al2l1an
-al2l1a2r
-al3le.
-al4lec
-3allee
+al2l1a2b
+al2l3a4r
+al2l1au
al3lend
-all3erk
-aller4z
+all5erfa
al3les
-al2lid
+1allgÃĪ
alli5er.
alli7ers.
al2lob
-al2lop
-al2lÃķf
-al2map
al4m3ast
-almo6de.
-2alo.
-a2l1ob
+3almb
+2alo
+a2l1o2b
3a2loe
-a2l1of
-4alog
alo2ga
-alo2gr
-al1ont
-al1ort
-2alos
+al1orc
a2l1Ãķ
+al3Ãķf
al2Ãķs
-3alp.
3alpe.
1alph
-al2pho
-alrat4
-al3sak
-al6schei
-alsch3s
-al3ska
+al3skl
al5s6terb
-al2stu
-al2sum
-al2t1ak
-alt3alg
+al3sun
+al4tak
al3tam
-al2tan
-al2tat
-al2tau
-1altÃĪ
-alt3eis
-alt3elt
-al4temu
-al4t3er5f
-al2teu
-al2tid
-al2tin
+al3tar
+alt3eig
+al4t3er3f
+al3ti
alt1op
-al2tÃķ
-al4t3rat
-al2tre
-al4t3ri
-al2t3ro
+al4tÃķ
+al2tri
+alt3ric
+al2tro
+alt2se
alt4stÞ
a1lu
-alu3b4
-al2u3f
-alu3g
-al1u2k
+al2uf
a2lum
al1umb
-a2l1ur
-a3lus
+al1ur
4aly
-al2zar
-al2zau
-al3zen
-alz4erk
+alzer4z
al2zw
2am.
-am2a
-ama2ba
-ama3d2
+2am2a
+amab4
+amad2
ama3g
-a2malg
-2a3m4an
-1a2maz
2amÃĪ
+2am4e
4ame.
a2meb
-2amel
-am4e4n1
-amen6spr
-ame3r2a
-amera3u
-a2m1erf
-1a2meri
-ame5r2u
-2ame1s
+ame2n1
+amer2a
+am5erf
+a2meri
+ame3ru
a4mesh
-2a3met
+a3met
+a2mew
2amf
-a3mi.
-a3mie
-ami2k
-am4ing
-2a3mir
-2a3mis
-2amit
+2amir
+ami3ta
+ami3ti
2amk
2aml
-2amm.
-am2mab
-am2m1ac
+4amm.
2ammal
-am4mant
am2mar
am2mei
-ammes3
-am2mid
-ammi2e
am2min
-am2mor
-am2m1Ãķ
+2amml
+2ammt
ammu2
amni1
a2mÃķ
-2ampe.
-2ampen
-am4pf
-amp2f1a2
-2am2ple
-2ampo
+amp2fa2
am3pr
-amp3s2
2am2s
am3sa
-4amsc
am4schl
-3amse
-am3s2h
-am3so
-am3sp
-am3su
+am3str
1amt.
-am2t1a2
-am4tau
+am2t1a
am2t1ÃĪ
-am2tei
-amt3eig
am4tel
-am2tem
-amter4
-am4terh
+2amtem
am4t3ern
-am2t1ex
-am2tis
-am2tit
-am2to
-am6tou
-am2tÃķ
+am4tÃķ
am2t3r
am4tre
-am4tri
-am2t1u
-2amtv
+am2tu
2amu
-3a2mul
2ana.
2anab
ana3c
-4an2ad
-anadi1
-an2ag
-2a3nak
+anadi3
+a3nak
an1alg
ana4lin
2anam
-an2a3ma
2anan
-an4and
-2ana1s
-a5nat.
-ana4th
-a5n4atm
-a2nato
-ana4tr
-a5nats
-an3aug
-1a2n1ÃĪs
+2ana1s4
+an1ath
+an4atm
+an1ÃĪs
1anb
-2anbas
-2anbÃķ
2anbu
an3ch
2and.
3an3d2ac
-and3arm
-and3ei
-anden6ga
-an4d3ent
-and5erob
-ande4sc
-an2d1ex
+an4d3ei
+ande2s
+an2dex
+an4drau
+an2d3rÞ
and4sas
-and4seh
-and2so
-and6spar
and6spas
+and3ste
and2su
-4andu2
-an2d1ur
-andy1
+2andu
+and1ur
2ane
an3e2c
a3nee
an2ei.
an3eif
-3aneig
-a4neis
-3a2n1e4k
-ane2l
-an1e2mi
-a2nemo
-aner4fa
-a3nerg
-an2erh
-a4nerke
-4anern
-a4nerz.
-an4erze
+an1e4k
+3a4n1erb
an1eth
-3anex
1anf
-2anf.
-2anfab
-3anfÃĪ
-an3fe
2anfi
-an4fj
-anf3le
-4anfors
-anf5rau
-2anfs
an3f2u
4ang.
-1anga
-2anga.
an2g1ar
-2angas
-2ange.
-1angeb
+3angeb
an2g1ei
an4g3erf
-an4g3er4h
-an4g3er4w
+an4g3erl
+an4gerw
an4g3erz
+2angf
2angh
2angie
ang1l
an2gla
-ang5n
+2ango
ang1r
-ang3ra
-1an3gri
-2angs.
-ang4sto
-angt2
+an4g3ra
+4angs.
+ang4s3po
1anh
2a3ni
an2i3d
ani3els
ani5ers.
-anig2
-ani3ke
3a4nim
-a4nind
-ani2o
-an3i4on
-a4niso
+a4nins
2anj
2ank.
-an2kab
-an2k1ak
-an2kan
+an2k1an
+3ankÃĪ
an2kei
-2an3ken
-ank5erfa
-an3kes
-2anki
-an2kid
-an2klÃķ
+an3kl
+an4klÃķ
an2klu
-ank3no
-an4k3opf
-an2kor
+an2k3no
ank1r
ank3ra
-an4kras
ank3rÃĪ
-an2kro
-2anks
-ank3se
-anks2p
-2ankt4
+ankt4
1anl
-2anlad
-3anlag
-2anmo
1anmu
-2ann.
-1annah
-an2nar
-an3ne
-an4nef
-an4nei
-an4nene
-annen3s4
-ann2er
-2anns
-ann4s3p
-2annt
-2ano.
-1an1od
-2anof
-2anog
-2a3nol
-ano2la
-1a2nom
-a3nom.
-2anoo
+2ann
+3an3na
+ann2ab
+3annÃĪ
+an3n2e
+ann4sto
+an1od
+a3nol
a2n1or
-ano2ri
-2a3nos
+a3nos
2a1nÃķ
-2anpu
+2anpr
1anr
-2anrÃķ
-an4same
-an3sar
1an3s2ÃĪ
-3anschr
+1ansc
+ans2en
+an2seu
+2ansk
an3skr
-ans1pa
-ans3pon
+an3s1pa
1anspr
-1anst
an3s2z
2ant.
-ant3ar
-anta4re
-an3t2ÃĪ
+an2t3a4r
1antÃĄ
-3antei
-an3tha
-2antie
-3antise
-anton2
+1antei
+3antenn
+an3t4he
+1anthr
+an3ti
+2anto
1antr
ant3rin
+an2tro
1antw
-2anu
-anu3r
+2a1nu
anu1s
a1nÞ
1anw
-2anwi
-an2zÃĪ
+2anwet
2anzb
-2anzd
1anzei
-anz3elf
anze2n
-2anzes
2anzg
-2anzh
-anzi2d
an2z1i4n
-2anzk
-2anzm
-2anzr
2anzs
-2anzt
1anzÞ
-3anzÞn
-2anzv
2anzw
+an2zwa
an2zwi
-2anzy
2ao
-aof4
-ao3i
+ao1i
a1op
-aopf4
a1or
-a1os5
-aost2
+a1os3
+ao3t2
a3ot.
-ao3t4s
-2a1Ãķ2
+a1Ãķ
a1p
-4ap.
-ap4a
-apa3b
-a2pe.
+2ap.
+2apa
+2ape
+a2pef
a3pel
a2pÃĐ
a2pf
-ap2fa
-1apfel
-2apfes
+a3p2fa
a3pfl
-a2pht
-2api
-2apl
-ap4la
-a3plÃĪ
-ap3le
-ap3li
+a3phÃĪ
+a2ph3t
+2ap3l
ap2n
-3a2pos
a2pot
+ap2pf
+3appl
ap3pu
2apr
-ap2so
-aps4ter
-ap5t2
+3apri
2a3pu
+2aq
2ar.
a1ra
a3ra.
ar2ab
-2ar3abb
-ar3abf
ar3abt
ara3d2
-ar3adr
-ara3ge
-2a2r3al
-a3r4ale
+a2r3al
a3rali
-a3ralo
2aran
a2r1ang
+a2r1ans
a2r1anz
-2arap
-a4r3app
+a2r3app
2a2rar
-ara2st
-ar2asy
-4arat
a2r1au
a1rÃĪ
-ar1ÃĪs
1arb
2arb.
-2arba
-ar2bak
-ar2b3at
+4arba
ar2bau
-4arbef
-ar4b3ein
+ar2bec
2arbek
2arben
-2arber
-arb3erl
4arbi
-2ar2bl
-2arbo
-2arb1r
+ar2bl
+2arbr
+ar2bre
2arbs2
-arb3sk
-arb3so
-2arb3t2
+2arbt
2arbu
+ar2b3un
1ar1c
-2archl
-2archr
-ar2dau
-arde4i
-ar2dop
-ar2d3r
-ar2du
+ar2dro
+2are
a2rea
-are5aler
-a2reb4
-aree2
ar1eff
-a2reh
+a4reg
ar1ehr
-2arei
-a3rei.
-ar1eid
-a3reie
-a3reih
-areim3
a2rein
-arein4b
-arein4s
-arein4t
-a2rele
+a4rek
4arem
+a3ren
4aren.
-aren6sem
are3r2a
-arer2e
-a4r3erei
-a2rerg
-a2rer3h
+ar2erf
+a2r1erh
a2reri
-a2rerk
-a2rerl
-a2rert
-ar2erw
-2ares
-ar2et
are3u
-a2rev
+ar2ew
+2arf
+ar2fÃĪ
arf1r
-arf3ra
-arf2sp
-4arg.
-ar3gan
+ar2f3ra
ar2gl
-ar4gn
-2arg4o
+ar2gn
ar3g4r
-arg4s
2arh
2ari
ar2ia
-a2rid
-ari3e2n
+ari3e4n
ari3erd
ari3erg
+ar1im
arin3it
-arin3s4
+arin5s4
ar1int
-a3r4io
-ar2ir
-ar4is
-ari2su
a3riu
ar2kal
+ark3amt
ar2k1ar
ark3aue
-arker2
-ar2kil
-2ark3l
+ar2k3l
ar4klag
-ar2kle
-ar2klo
-ark4lÃķ
-ar2koa
ar2kor
-ark3s4a
-ark2se
+ar4k3ri
+ark3sa
ark3she
ark4tre
ar2les
-ar3mad
-arm1au
+2arma
ar3m2ÃĪ
-ar2m1eg
-ar2m1ei
-arm2or
-ar2mum
-4armÞ
-4arn
+ar3m2or
ar2nan
-arn2el
-ar3ni
-a1ro
-arob2
-4aroc
-aro8ckeng
-ar1o2d
-ar1of
-aro2fe
-2a3rol
-aro3m
+arn2e
+2a1ro
+ar1ob
+a2r1o2d
+a2r1of
a2r1op
a2ror
-aros3
-aro4st
-1a2rou
-a2r1Ãķ4
2arp
-arr1ac
-ar2r1ad
-ar2r1as
-arre4n1
+2arr
+ar2r3ad
+ar3re
+arre4n
ar2rh
-2arri
-ar2r3or
-ar3se
+arr3he
+2arsa
+ar4schl
+arse3
ar3s2h
-ar3s2i
-ars3ka
-ars4kat
+2arsi
+ar2st
ar3sta
-ar2tau
-2artb
ar3t2e
-2artei
-2artex
-ar3t2i
+ar2the
+ar3ti
+artin2
2arto
-art3r
-art4res
-ar2tri
+ar4t3ram
+art3re
2arts
-art3ske
-art2sp
2artuc
-2arty
2aru
-a2r1uh
+ar1uh
ar1um
-a3rumm
a2rÞ
2arv
arwa2
-2a3r2y
-2arza
-ar2zau
+2ary
ar2zÃĪ
2arze
-2arzi
-ar2zÃķ
1arzt
-arz4tei
-arz4tem
-arz4ti
-arz2t3r
-2arzu
ar2z1w
-2asa
-a4s3aa
-a2s3af
-a3sag
-a3s2al
-asal2t1
-as1am
-as3art
-asa2s
-as3at
-asau4f
-a4s3aug
-a2sÃĪ
-as3ÃĪt
-asbes2
-a6sca
+as1ala
+as3au
+a2s1ÃĪ
+a2sca
a4schec
-a4schef
-a4sch3ei
-a6scher6g
-a3s4chi
+a3schi
+asch1l
a2schm
-2ascht
a3schu
-a4schum
-2asd
-4ase
+4as2e
a2seb
-a2sec
-a2s1ef
-as1eie
-as1emi
-a3sen.
-ase4na
-ase4n3o
-asen6sem
-as2er
-as4erd
-ase2re
-aser6geb
-a4s3erke
-as4es
-ase4t
-a2sex
-2asf
-asges4
-2ash
+a2s3e2m
+a3s4es
+2asg
+4ash
a3s2hi
-as3hir
-2asig
-a2s3i2k
-2asim
asin2g
-as1inn
-2asis
+4asis
aska3s
-as3ku
-2aso
-as3ob
-as1of
-a3sol
-a3som
-as1o2p
+a3skop
+a2s1o2f
as1or
-a4soz
a2sÃķ
a2s1p
aspek6to
as2ph
-a3s2pi
-as3pik
-as3pio
-a4spir
-2aspr
-as2pra
-2as3sa
-ass2a3b
-ass6aus.
-ass2e
-ass3ein
-asse3le
-ass2i
-as3ski
-as3so
-as2spo
-as2spr
+as2pi
+as2po
+a3spu
+as3s2a
+as3s2e
+as4s3ei
+as3s2i
+as2s1p
as2st
-as3sta
-as3stei
-as3sti
+ass3ti
as3str
as3stu
-2asta
-a3stad
-a1stas
-as3tat
-a3stÃĪ
+2as3ta
+a1s4tas
+as4tau
as3te
-ast2el
-ast2er
-as4t3ese
-as4tex
as2th
-ast2id
-as3tie
-as3til
+as3ti
as3to
as4tof
-ast3orc
-a1str
-ast3re
-as3t4ren
-as6t5ritt
-ast5roll
-as3tub
-2asu
-as2ur
-asu4s3
+2astr
+as4trau
+ast3rÃĪu
+as6t3re
+asu2s
a2sÞ
aswa2s
-1asy
-3asyl
-2asys
+3a2syl
a1ß
-aße4
-aß2en3
+aße2
+aßen3
2a1t
-4ata
-at1abe
-at1abr
-at2a1f
-a5ta3g
-at2ago
-ata3la
+ata1
+at1ab
+at2af
+at4ag
+a2t1akt
+ata3l
a3tam
at1apf
-at2ast
-at3att
-a2t1au
+at1au
+a2taus
+a2tÃĪ
at1ÃĪn
-4atb
at2c
a2teb
-a3tec
-ateien6d
+a3te1c
+ateien4
at1eig
-3a2teli
-3a2temg
+a2teli
at2en
-ate4na
-aten3s4e
a2tep
-4ater
-ate3r4al
-ate3ran
-at4ere
-atern2
-ater3st
+ater3s2
ate2ru
-4ates
-ates4sa
-a3tet
-at2eu
-a2tew
-4atha
-at3hag
-at3hal
-a3t2heb
-ath3in.
+at2h
+at3ha
+athe1
3athl
a4thr
-at2hu
-at3hÞ
4a3ti
-ati4kab
-ati6k5erw
-a4tinf
-at2is
-ati2sa
-ati2se
-a4tiso
-atis3s
-ati6v5erf
-3atla
-4atli
+atil4s
+ati2st
3atm
-4atma
-4atmÃĪ
4atmus
-a2t1ob
-3a2t4om
-atom1e
-ato2mo
-at1op
-at1ort
-a3to3s
+ato4man
+4ator
+a2t1ort
+at1Ãķ
+4atr
atra4t
-a2t3rau
-a2t3rÃĪ
+at3rÃĪ
at3re
-at3rin
at3rom
-at4ron
-at3rot
at3rÞ
at2sa
at4schn
at2se
-ats1e2h
+at4set
at2si
-ats1in
-at2s1o
+at2so
at2s1p
-ats3tÃĪt
-at2su
at3ta
3attac
-at4tad
-at4t1ak
-atta2l
-at4tale
-at4tals
-at4tang
-at4tar
+at4tak
+att3ang
at4tau
at2tÃĪ
-4atte.
-at2t3ec
at2tei
-at3t2el
-4at5ter
-at3thÃĪ
-at3ti
-4atto
-at2tob
+at3t4hÃĪ
at2t3rÃĪ
-att3s2
-at3t2u
-4atu
+att3s
a3tub
atu2n
a3tÞ
-atze4l
-atz3ela
-atz3elt
-at2zem
-at2z1er
-a3tzere
+atz1er
+at4zerk
+at4zerw
at2z1in
+at2zo
atz3t2
at2z1w
a2u
2au.
-2au3a2
+2au1a2
2aub
au2bab
-au2ban
-au2b1au
aube4n
-au2beu
-au2blÃĪ
au2bli
au2blo
-au2blu
-aub2si
-2auc
+4auc
+auch3ta
au2dr
2aue
aue2b
-au2ere
-aue3rei
+au5erein
auer3Ãķ
-au5erst.
-au3ert
aue2s
au2fa
-auf1ak
auf1an
2aufe.
2aufeh
-4aufen.
-3aufent
auf1er
-au4fer4k
-au2feu
+au4ferk
auff4
-auf3ind
-1aufla
-1aufn
-2aufo
-auf3ski
-auf3t2
+3aufn
+auft2
2auft.
2aug
-au2ga
-au3g2ar
-4augeb
4augeh
-4augel
-aug2er
-4augl
-4augr
-au3gu
-au3h
-2au1i
+4au1i
au2is
-4auj
-auk3t
+2auj
aule2s
-aul4les
au3lÞ
4aum
au2mal
-aume4n
-au4m3ent
-au2m1e2r1
+aum2ei
+au2m1e4r1
aum3eri
-au2m1id
-au4mil
-au4mit
au2m1o
-aumo2r
aum3p2
aum3s6
-au4mun
4aun
au3n2a
aun2e
-au4n3ei
+au4nei
au2nio
-au2no
-au3nu
+au1nu
a4unz
+au1o
2aup2
-2aur2
-au1rh
-aurÞ3
+aup4ter
+2au3r2
au2s1ah
ausan8ne.
-au2sas
au2sau
-2ausc
-au6schmi
+4ausc
+au4schm
1ausd
-2ause.
-au4s1eh
2ausen
-au4s3erb
-au4serf
-au4s3erk
aus3erp
-au4serw
+au4s3erw
+3ausf
1ausg
-au2sin
-au2sis
1ausl
au2so
-aus1or
au2spr
1ausr
-auss2
3aussag
+auss2e
aus4se.
-aus3st
-aust2a
+auss2t
2auste
-au5stein
aust2o
aus5tri
-3ausÞ
-1ausw
+1ausÞ
1ausz
-auße2
2aut.
-au2tab
au2t1ÃĪu
-2autb
2aute
-au4t1e2l
au4ten4g
au4t3erh
-aut5ero
-2autg
-au2thy
1auto
au4trÃķ
2auts
2auu
-2auv
-auve4
2auw
2aux
2auz
auz2w
2a1Þ
-a1v
-av2a
-a3vang
-avas4
-ava3t2
-avener4
-2avi
-a2v3r
+2a1v
+a3v4a
+ava3t4
+a2vr
2a1w
awi3e
-a2wr
a1x
-ax2am
-a2xans
-a3x2e
-a3xid
-a2xio
-axis1
+ax4am
+ax2e
2a1ya
a1yeu
-ayma4
-ay1of
-ays2
+ays4
aysi1
ay3t
-a1z
-az4a
-a3za3d
-3azal
-a3z2i
+2a1z
+a3z2a
+aza3d
+az2i
az2o
-a3z2u
-az2zen
-az2zw
+az2u
ÃĪ1a
-1ÃĪÃĪ
-2ÃĪ1b
+ÃĪand4
+ÃĪ1b
ÃĪ2b3l
ÃĪb2s
-ÃĪbte1
-ÃĪ1ce
ÃĪ1che
ÃĪche1e
-ÃĪche4n
ÃĪ1chi
ÃĪch3l
ÃĪ2chr
-ÃĪch4sa
-ÃĪch2s1o
ÃĪch2sp
-ÃĪch2st
-ÃĪcht4e
+ÃĪch4st
ÃĪ1chu
ÃĪ1ck
+ÃĪ3ck2e
ÃĪ1d
ÃĪ2da
-ÃĪde1s2
ÃĪ2d1ia
-ÃĪ2d3r
+ÃĪ2dr
ÃĪd2s
-ÃĪd3te
2ÃĪ1e
-ÃĪe4k
-ÃĪ3eu
-ÃĪe2x
+ÃĪf2e
ÃĪfe4n
-ÃĪf2fl
-ÃĪfig3
+ÃĪf2f3l
ÃĪf3l
ÃĪf3r
ÃĪf4ro
ÃĪf2s
-ÃĪf3t2e
ÃĪft4s3
ÃĪ1g
-ÃĪ2g1a
-1ÃĪ2gÃĪ
-ÃĪgd2
-ÃĪgen4e
-ÃĪge2r3a
+ÃĪge1i
+ÃĪge2ra
ÃĪge3s
ÃĪ2g3l
ÃĪg2n
ÃĪ2g3r
ÃĪg4ra
-ÃĪgst2
-ÃĪg3sta
ÃĪg3str
1ÃĪ2gy
ÃĪh1a
2ÃĪ3he
-ÃĪ4h1ei
-ÃĪher8gebn
-ÃĪher5t
-ÃĪ1hi
-ÃĪh1in
+ÃĪ3hi
ÃĪhl1a
ÃĪh3l2e
ÃĪh4l3e4be
-ÃĪh5ler
2ÃĪhm
ÃĪh3na
ÃĪh3ne
1ÃĪhnl
2ÃĪhr
-ÃĪh2rel
ÃĪh3ri
2ÃĪhs
-2ÃĪht
+2ÃĪh3t
ÃĪ1hu
ÃĪh1w
2ÃĪi
ÃĪ1im
-ÃĪ2is
-ÃĪ3is.
+ÃĪ1is.
ÃĪ3isch.
-ÃĪ3isk
+ÃĪ1isk
ÃĪ1j
ÃĪ1k
-ÃĪka2la
-ÃĪk3l
-ÃĪ2kle
-ÃĪk4li
+ÃĪ2k3l
ÃĪ2k3r
ÃĪ1la
ÃĪlbe2
-ÃĪl4bl
-ÃĪlk3
-ÃĪlks4
+ÃĪl2bl
+2ÃĪle
ÃĪl2l1a
ÃĪl2p3
ÃĪl4schl
ÃĪl2st
-ÃĪlt2e
-ÃĪlte1i
ÃĪ1lu
-2ÃĪm4a3
-ÃĪ3me
-ÃĪmer2s
ÃĪmi3en
2ÃĪml
ÃĪmoni3e
2ÃĪmp
-ÃĪmp7f4e
ÃĪm2s
ÃĪmt2e
-ÃĪmter3
2ÃĪn.
+ÃĪn5de
ÃĪn2dr
-2ÃĪn2e
+2ÃĪne
ÃĪne2n1
ÃĪne1s
-2ÃĪn2f5
+ÃĪn2f5
ÃĪnft2
-4ÃĪn3g2e
-ÃĪnge4ra
-2ÃĪn2gl
-ÃĪng3le
+2ÃĪnge
+2ÃĪn2g3l
ÃĪn2gr
ÃĪng3se
2ÃĪ3ni
-ÃĪn3k2e
+ÃĪnk2e
ÃĪn2k3l
ÃĪn2kr
ÃĪnk2s
-2ÃĪnn
-ÃĪn3n4e2
+ÃĪnn4e2
+ÃĪno3
2ÃĪns
-ÃĪn4s1a
ÃĪn2s1c
ÃĪns2e
+ÃĪnse3h
2ÃĪnz
ÃĪ1on
-ÃĪo3s2
ÃĪ1pa
-1ÃĪpfel
ÃĪp2pl
ÃĪp2pr
ÃĪp2s1c
ÃĪp4st
1ÃĪq
-ÃĪ2r3a4
+ÃĪ2r3a2
ÃĪr4af
ÃĪr1ÃĪ
ÃĪr2b3le
ÃĪr1c
-2ÃĪrd
-ÃĪrde4s
-2ÃĪre
+4ÃĪre
ÃĪ2r1ei
-ÃĪ2r1e2l
-ÃĪre2m
-ÃĪr1emi
ÃĪre2n
-ÃĪ2rene
-ÃĪ2rerh
-ÃĪr2es
-ÃĪrf2s
-ÃĪr3ge
-ÃĪrg4s
-ÃĪ2r1ind
+ÃĪ2r1ene
+ÃĪr2gr
ÃĪr1int
-ÃĪr3ke
+ÃĪr2k3l
ÃĪrk2s
-ÃĪrm3arm
-ÃĪrm3at
-ÃĪrme1e
-ÃĪrm3ent
+ÃĪr4ment
ÃĪrm2s
-ÃĪr1ob
-ÃĪr1of
+ÃĪr1o2
ÃĪ1rÃķ
-ÃĪr3re
ÃĪrse2
-ÃĪr2seb
-ÃĪr4seh
-ÃĪrs1er
-ÃĪr2si
-ÃĪr3spu
+ÃĪr4si
ÃĪr2st
-ÃĪr3str
-2ÃĪrt
ÃĪrt4e
ÃĪr2th
ÃĪrt2s3
ÃĪ2rÞ
-1ÃĪrz
-ÃĪr2zu
ÃĪr2zw
-2ÃĪ3s2e
-ÃĪse3g
-ÃĪse1i4
-ÃĪse5ref
+ÃĪ5s4e
+ÃĪse3g2
ÃĪser4ei
ÃĪse4ren
ÃĪser2i
+ÃĪse3t
+ÃĪskop2
+ÃĪskopf3
ÃĪ3s2kr
ÃĪ2s1p
-2ÃĪs2s1c
+ÃĪs6s1c
ÃĪss2e
-ÃĪss5erkr
-ÃĪss5ersa
-ÃĪss3erw
-ÃĪs2sp
+ÃĪs4s3erk
ÃĪs2s3t
-ÃĪ4s3t
-ÃĪst4e
-1ÃĪsth
+ÃĪ4s3t2
ÃĪs4tr
ÃĪ3su
ÃĪ1ß
ÃĪß1erk
-ÃĪß1ers
-ÃĪ2t3a2
-2ÃĪ3te
-ÃĪte3a
-ÃĪte1e
+ÃĪ2t1a2
+ÃĪ3te
ÃĪte1i
-ÃĪte3l2
+ÃĪtein2
ÃĪte2n
-ÃĪteo2
-ÃĪter4bl
-ÃĪt2et
-ÃĪt1id
+ÃĪt2h
ÃĪt1ob
ÃĪ2t3r
-ÃĪt4s3a
+ÃĪt2sa
ÃĪt2sÃĪ
ÃĪt4schl
ÃĪt4schr
-ÃĪt2s1i2
+ÃĪt2s1i
ÃĪts3l
-ÃĪts1or
ÃĪt2s1p
ÃĪt2s3t
-ÃĪt2su
ÃĪt2tei
-ÃĪtte4n
ÃĪt4tr
-ÃĪtze3l
ÃĪt2zw
-2ÃĪub
ÃĪu2b3l
ÃĪu2br
ÃĪu1c
-ÃĪu3d
ÃĪude3
-ÃĪuder2
-2ÃĪ2uf
+ÃĪu3el
+ÃĪ2uf
+ÃĪuf2e
1ÃĪug
ÃĪug3l
-2ÃĪul
+4ÃĪul
2ÃĪum
ÃĪu2ma
-ÃĪum3p
-ÃĪumpf4
ÃĪum4s5
2ÃĪ2un
ÃĪun2e
-ÃĪu3nu
-2ÃĪu3r2
-ÃĪure1
+ÃĪu1nu
+2ÃĪu3r
2ÃĪ3us.
-2ÃĪusc
-ÃĪu4schi
ÃĪu4schm
-ÃĪu3s2e
-ÃĪuse1i
+ÃĪu3se
ÃĪ3usg
ÃĪ3usk
ÃĪ3usn
-ÃĪu2s1p
+ÃĪu2sp
ÃĪus2s1c
1ÃĪuß
-ÃĪut2e
ÃĪu2tr
-ÃĪ1v
-ÃĪ2vi
+4ÃĪ1v
1ÃĪx
ÃĪ1z
-ÃĪ3ze
ÃĒ1t
ÃĄ1n
-3ba.
-b2aa
-b3a2ba
-2babf
-2babg
ba2bl
-ba2br
-2b1abs
-bach7t4e
-ba4ck3er
-back3s4
-ba3d2e
-bade1i
-2b1adel
-2b1adl
-2b1adm
+2babs
+bach5t4e
+backs4
b1a2dr
-ba2du
2b1af
3bah
-bah6nene
-bai3d
+bah2nu
+bahr2e
bais2
-b2ak
ba2ka
ba2k1er
ba2k1i
-ba2k5l
-ba2k3r
-ba2lab
-ba2l1ak
-ba3lal
-ba2lau
-baler2
-ba4l3erk
-balk4a
-balke4
+bak1l
+bak1r
+ba2kra
+3bal
+bal2a
bal4l3eh
-bal4l3ei
bal6lerg
-ball6erk
-2b1am
-b2a3ma
+2b3am
ba2me
-4bamt
ban2a
3b2and
-band1a
-ban4dal
-ban4dan
-ban4dar
-ban6deng
ban2dr
ba3n2e
-2banf
b1ang
ban3gl
-ban4k1a
-banker4
-ban2kl
-ban2kn
+ban2k1a
+ban4kl
ban2kr
-ban2ku
2banl
-b1anna
-ban2o
2b1ans
-b1ant
-2banw
+ban3t
b1anz
-ba2r3ab
-ba2rad
-bar3ast
-ba2rat
+bar3b
bar3de
ba2rei
-ba3r2en
-barer5ei
-barer4t
-barf4
-3bar2s
-bar3sc
-b1arz
+bar2en
+bar3ins
+bar3n
bar3zw
-3b2as
-ba3sa
+3bas
+ba3s2a
ba2sc
-bas2i
-bas4sa
-bas4st
ba2st
ba4t3ent
-bat2o
-3bau.
-bau3b
bauer4l
bauer4s
-bauer4w
-bau1fl
-bau1fr
-bau3g2
-b2auk
-bau3r
+bau3g
bau1s
bau3s2k
+bau3sp
baus4t
-b1a2x
ba1yo
3b2ÃĪ1c
-3b2ÃĪd
-2b1ÃĪh
-b2ÃĪl
-2bÃĪrz
+b2ÃĪr
b2ÃĪs
-2bÃĪug
4b1b
b3be
-bbe4n3
+bben3
bbens2
bbe4p
-bb3le.
+bb3ler
bb2lÃķ
-b3brec
b3bru
bbru2c
bb2s
bbu1
-4b1c
-2b5d2
-bdÃĪ4
-bdÃĪn3
+2b1c
+2b3d4
bde1s
-bdome4
1be.
3bea
-be3ab
be3an
-beat2m
-be3au
-be4au.
+be3ar
3beb
-b1ebb
+b2ebe
1be1c
-2becht
-2b1e2del
+be2del
bedi4
-be1e2h
-bee2l
-be3ela
-bee4rei
-be1erh
+be1eh
be1erl
-be1ert
be1eta
-bef4
-2b1eff
-be3g4
-be2he.
-beh5ri
-bei3b
+3bef4
+be3g2
2b1eier
bei1f4
bei4ge.
-beige4l
-beige4p
-bei3k4
-bei3l2a
+beik4
+beil2
+bei3la
2b1eime
+b2ein
be1ind
-be1inh
-bein6hal
-bein4hi
+be1in2h
bei3sc
beis2e
bei1s4t
-beit4e
beit2s
-beit4sk
-beits3p
3bek
3bel
-be3lag
be3las
bel3d
be3lec
-4be2lek
+be3lei
be2l1en
-bel3ere
be2let
-bel3f
-beli4e
+be3li
bel3la
-belle4n3
-bel3li
-bel3om
-be2lÃķf
+be2l3Ãķ
bel3sz
-belt2
-bel4un
-1bem4
-3b2em.
-3b2e3ma
-2b1emp
-2bemul
-1ben
-be5nabe
+bel3t4
+1bem
+1ben.
ben3ar
be4nas
-be4nat
-be2nÃĪ
-b2ene
+be4nÃĪ
+ben3dor
be3nei
-be4n3end
-be4ners
-ben2eu
3beng
-be2nid
-be4nis
+be3n2i
ben3n
-5benp
-b2ens
-ben4s3pa
+ben2se
+ben4spa
ben4spr
benst4
-3bensz
-2b1entb
-2bentd
-4benteu
-2bentf
-ben3th
-ben6thei
+ben2su
+2bentb
+b2enti
ben5t4r
-2b1ents
-2b3entw
+b1ents
+2bentw
ben3un
-b2en3z2
+ben3z2
be1o
-2b1epi
-2bepoc
be1ra
-be2rak
-be2r3am
+be2rab
be2ran
-bera2s
berb2
-berbla4
-ber3d
-be2r1e2b
-be4reck
+berd4
+ber4ei.
be4r3eiw
-bere2m
-be4rene
-ber4erg
-ber4erw
-bere4sc
-bere4t
-berf4
-ber4g3af
-ber4gal
-ber4gli
+be4rerk
+bere4s
+ber6gan.
ber4hab
-beri2d
ber4in.
-be5r6inne
-berin4s
-be2ri4o
ber3iss
-ber3ko
-ber3kr
-ber3n2a
-bern2e
+ber3na
b1ernt
-be2rÃķ
-3bers.
-ber5se
+be1rop
ber3st4a
-bert2a
-bert2e
-bert2i
-berz2
-ber3ze
+be3rum
ber2zÃķ
-3b2e1s
-be3sa
-bes4abb
-bes2am
-bes2an
-be4sap
-be4sar
-bes2au
-be2sep
+3be1s
+bes2a
be2s1er
-be2s1id
+be3slo
bes2po
-bes3sa
bess4e
b3esst.
bes3sz
-be4stab
beste2
be6stein
-bester4
-bes6terh
-be4s5tol
-bes4t3o4r
-bes3tos
+be4s3tol
best4r
-be4s3trÃĪ
-be4s3tur
-be2sur
be3s4ze
3bet
-be3tam
+be2tap
be3tha
-be3thi
-bet2sp
-be1un
be1ur
-3bev
-3b2ew2
-2b3e2x
-3b2ez
-2b5f4
+3b2ew
+2b1ex
+1bez
+4b5f4
bfal2
-bfal3t
2b1g2
-b5ga
bge3
-bgel2e
-bge5n
bges4
2b1h2
-b5hÃĪ
+bhut2
1bi
-bi1ak
-bi2ar
-3bib2
+bi3ak
+bib2
bibe2
-biber1
-bi2c
-bi3do
bien3s
-bieres4
bie2s
-biet2s
3bietu
-biga1
bik2a
bi2ke.
bi2kes
-bi2kre
3bil
-bil2an
-bil3ans
-bil4deb
-bi2lei
-4billu
+bil2a
+bi2lau
+4b1illu
bi2lu
-2bimp
2b1inb
bin2e
-bine4n
-b1inf
-bin4fo
-bin2g3a
+2b1inf
+bin3gl
2b1inh
-bi2n3ok
-bin4ol
2b1int
-2b1inv
-bi2o3
-bioi2
+bi2o1
+bio3d
+bi3on
biri1
-3bis
-bi3si
+bi3se
b1iso
+bi2sol
bi2sp
bis2s1c
-bi2st
-bi3sta
-bi1s4tr
+bi2s5t
b2it.
-b2ita
+b2it2a
b2ite
-b2iti
-bit4r
+bi3ti
bi2tu
-bi3z2
+b2i3tus
+biz2
4b1j
bjek4to
-2b5k4
-bl4
+2b1k4
+bl2
2bl.
bla3b4
-2b1lac
b3lad
+b5lag
b2lanc
-blas3er
+3blat
b2latt
-b2lau.
-b3laus4
2b3law
-2b1lÃĪn
b2lÃĪse
-3blÃĪt
b2le
-3ble2a
+3blea
b3leb
3blec
-b3leg
-4bleh
-b4lei.
+2b3leg
+2bleh
2b3leid
-2bleih
-b3lein
-blei3sc
-2bleit
-ble3l
-ble2n
-b3lenk
+4b3lein
+blei7sc
+3blem
+3ble4n
b3lese
-2blesu
-ble3s4z
-3blet
+ble3sz
+b4let
b3leu
2blich
3blick
b2lie
-2blief
-4blig
-b2lind
-2b5ling4
-b2lis
-2blis.
+2blig
+bling4
+b4lis
b2lit
-b3lite
+3blitz
b2lo
-b4lo.
-3b4loc
-b4loi
+b4loc
b3los
-3b4lum
2blun
-b2lus
3blut
-blu4tem
-blut1o
3blÞ
2b1m
-4b5n2
-bnas4
+4b3n2
bni2
bnis1
bo4a
bo5as
-b1o2b
-bo3ben
-bob3r
+b1ob3
+bo2bl
+bo2br
bo2c
bo3ch2
bo3d2
boe1
-bo2e3i
+bo2ei
2b1of
bo3fe
-bo3he
-boh2ra
-boh3rer
-boh2u
bo1is
-bo2lan
-bo2lau
-bol5le
+bo2l1an
3bon.
-bo3n2a
-bon2da
-bon2d1e
+bond1
+bon2de
bo2ne
3bons
-boo4l
-boo2ti
b1op
-3bor.
-bo1ra
-bor2an
-bo2r3as
-bo2rau
+bo1r2a
bo4rÃĪ
-bor2da
bor2d3r
bo2rei
bo4rig
-bor3m
bor2s
b1ort
-bor4ter
-bor6t5rat
-bo4ruh
+bor2t3r
bo2sc
-bo3se
bo4s3p
-bos3t
-3bot
bote3n4e
bo3th
bot2st
-bot5t
-bo2xo
-b1oz
bÃķ2b3
2bÃķf
-2b1Ãķl
-bÃķlk3
-2b1p4
+b1Ãķl
+2b1p2
bpa2g
2b1q
b2r4
2br.
b4ra.
2b3rad
-2b4rah
+b4rah
b4ra3k
-brast4
-2b3rat.
-brat3er4
-bra6terg
-2b3ratg
+bra1st4
3brÃĪ
-4brÃĪd
brÃĪ4u
2bre.
+3brea
6b5rechte
-2b3red
2b3ref
2breg
b3reif
-2brek
-breli1
-b4rem
-b4ren.
-2b3rent
-2breo
+3brem
2b3rep
b4rer
-b4res.
-b3rest
-b4ret
-bret6t5en
-b4rez
-bri2da
-brie4fa
2b3riem
-b4rien
bri2er
-b3ries
-2brigk
-b4rina
-2b3rind
b4rio
-b4risc
-b3ritt
-brob2
-2b3roh
+b3roh
2b3rol
-bro2ma
b4ron
-2b3rost
-bro4tr
-brot3t4
-2b3rou
-3b4rÃķ
b4ruc
-2bruf
-b4rum
-2b3rund
-brus4
-brust3
+bru4s
+brust1
bru2th
3brÞ
-4b3rÞb
-2b1s
+4b1s
b2s1ad
-bs2am
-bs3amb
-b4s3amt
-bsau2r
-b4s3ÃĪr
-b3s2ÃĪu
-b3sc
+bs3ar
+bsat2
+b3sÃĪ
+b4sÃĪr
+bs2ÃĪu
+b5sc
+bs2ca
bsch2
-b4schan
+b6schan
b6schef
-bs2chi
-b4sco
-bs2cu
+bs4cu
+b3se.
bse2b
b3sel.
bse2n1
-b3sen.
-b2s1ent
-bs1erf
-bs1erg
+b4s1erf
bs3e4r3in
bs1erk
-bs1ers
+b4s1ers
b3s2es
-b2sim
bsi4t
-b4ski
bs2ku
+b4sl
b2s1of
-b3s2oh
-b3sol
-b4sop
bso2r
b2sÃķ
b3s2pi
bs2pl
-bs2pu
+b3s2pu
bss2
bs2t
bst1a2b
+bst3ac
bst1ak
-bst3ank
-bs4t1as
-b3stÃĪ
bs3tÃĪt
-bst3emi
bst1er
-bst1h
-bst3ink
b2stip
b3sto
-b4stob
+b4s4tob
b4stod
-bs4tol
-b4stor
b3stÃķ
b4strac
b2s3trÃĪ
-b4s3treu
+bs3treu
bs4tri
bst3ro
b3stÞ
b4stÞb
b2s1un
-bs2zep
-bs2zi
-4b1t
-b3t2a
-bta2s
+4b3t
btast3r
b5te
-b2t1h
-bt2i
-bti2s
+b4th
+btil4
bt4r
-btran2
-bts2
-b3tÞ1
-buche4
-bu4chec
-bucher4
-bu6ch5ers
+b4ts2
+btÞ1
bu2chi
-buch3s4p
bu2e3
bu2f
bug3
-bu2gr
-bul2l3a
-2bumf
+bul2la
2b3umk
-2buml
-2b3umr
-bun4a
-bun4d3er
bunde4s
-b1une
bung4
-b3un3gn
-2b1unh
-bur1c
-b2ure
+b3ungn
b2urg
-burg1a
-bur4gan
-bur4gar
-bur4gin
-bur2gr
-bu3r2i
-2burn
-b3ursa
-burts3
+bu3r4i
+4burn
bu2sa
-bu2sc
-bus3cha
-bu3sche
-bu6schei
-bu6sch5el
-busch3w
-bu3shi
+bu4s3cha
+bu4schl
+bu4sch3m
+bu4schw
+bus1er
bu2sin
bu2s1p
-buster4
-bu2su
-but2a
-buto3re
-2bÞb
+bu2s1u
+bu3tan
bÞ1c
bÞgel3e
2b1v
-4b5w
-3b2y1
-bya2
-byo2
-by3p2
-bys4
-2b1z4
-b5ze
+2b1w
+by1
+by3p
+bys2
+2b1z2
bzeit1
-1c2a
-cab4
-ca3bl
-3ca2c
+1ca
+2c1ab
+ca2ch
ca2e3
-ca3g2
+ca3g4
ca1h
-cal2a
-cala3b
-cal2f3
cal3t
3cam
-2can
-cana3
+c4an
ca2pe
-car5n2
+3car
+car3n
carri1
-car2s
ca3s2a3
-cas5to
-ca3t2h
+cas3t
+ca3t4h
ca1y2
cÃĪ3
cÃĪs2
-c1b
2cc
c1ce
c1ch2
c2d2
c3do
2cec
+ceco4
1ced
ce2dr
2cef
ce1i
-ce3in
2cek
-3cels
-cen3a
-ce3nu
-cen3un
-ceo2
+1cen
1cer
-cer3a
-cere1
-cere3u
-ce3r2i
-ce4ris
-ce1ro
-ce3s4h
+cere3
+ce3s2h
1cet
-ceta2
-cet1am
+2ceta2
ce1u
1cÃĐ
-c1f
-c1g4
-c2h
+2c1f
+c4h
4ch.
2chab
-ch3a2b3i
+ch3a2bi
cha2ck
2chaf
-2ch1a2g
2ch1ak
-chal6l5ei
-chan4a
+ch2anb
3chanc
-chan3f
ch1ang
-4chanl
+ch3anst
4chanz
-3chao
+1chao
4char.
-3chara
-3chard
+1chara
3charta
cha2sc
-chasi1
-1chato
-2chatt
-ch5austr
-chau3t
-ch1ÃĪh
+3chato
+4chatu
ch1ÃĪrm
ch1ÃĪs
1chÃĒ
2chb
2chc
2chd
-che3b4
ch3e4ben
-ch3echt
-ch1edi
-che2el
1chef
3chef.
che4fer
+3chefi
3chefs
-2cheh
2chei
ch1eim
4chelem
che4ler
-3chemi
-2chemp
-che4neb
-che4nid
-che2no
4chents
4chentw
-che2r3a
-4ch3erbs
+cher3a
+che3rei
6chergeb
-4cherke
cher6zie
-ch3es4s
-ches5t
-4ch1e4ta
+ch3ess
+2cheta
2ch3e4x
1chÃĐ
2chf
2chg
2chh
-1chia
+1ch1ia
+2chic
chi3na
4chind
3chines
2chinf
2chinh
-2ch1ins
-2ch1int
+ch1ins
+ch1int
2ch1inv
-1chip.
1chiru
-2chiso
2chj
2chk
-2chl4
+2chl2
ch2le
-chle2i
-ch3lein
-ch4len
-4chli
ch2lu
-4ch2m4
+4ch2m
4chn4
chner8ei.
2chob
cho2f
ch1off
-chof4s
ch1oh
-cho3l2a
+chol2a
ch1orc
-cho4rei
-ch1ori
-ch2os
-ch3Ãķl
-3chÃķr
2chp
ch2r4
-2chra
-ch3rad
-2chre
+4chre
+chre3s
ch3rh
-4chrit
-3chromo
-3chron
-ch5ros
+1chron
4chs
-ch2spo
-ch4stal
+chst3ri
2cht
-ch2tru
2chuf
2chuh
2chum
2ch1unf
-2chunm
2chunt
-2chur
-ch1urs
-2chut
-chut4t
4chÞ
2chv
4chw
@@ -3500,3604 +2185,2255 @@ chut4t
2chz
ci1c
ci1es
-c1ind
-cins2
-c1int
-ci2s1
-1ci3t2
+ci2s
c1j
-c2k
+c4k
4ck.
-c4k1a
+ck1a
1cka.
-2cka2b
-2cka2c
-ck2ad
-1ck2ag
+2ckac
2ckal
-cka2m
-2ckan
-2ckap
+2ck3an
cka4r1
-1ckat
ck1ÃĪ
2ckb
2ckc
2ckd
1cke
-2cke2c
-2ck1ef
4ckeff
-2ck1eh
+2ckeh
+ck1ehe
4ck1ei
-2ckemp
-cke4na
-6ckensem
+4ckense
4ckentf
4ckentw
cke2ra
ck2ere
6ckergeb
-4ck3er4hÃķ
-ckerk4
-cker6lau
+ck1erh
+4ckerhÃķ
+4ckerke
ck2ern
-2cke2ro
-ck1err
-6ckerzeu
-4ckese
-ck2et
-4ckex
+2ckero
+2ck1er2r
+2ckerz
+2ck1ese
+2ckex
2ckf
2ckg
2ckh
1cki
-2ck1i2d
+2ck1id
+ck1im
ck1in
-4ckint
-3ck4is
+3ckis
2ckk
2ck3l
2ckm
-2ck5n
-2ck3o2
-ckos6t
-ck3Ãķ2
+2ck3n
+ck1o2
2ckp
2ck3r
4cks
-cks2al
-ck4spen
+ck4stro
2ckt
-ck3te
+ckt2e
ck3t2i
1cku
-2ck1uh
-ck1um
+2ck1um3
2ckunt
2ck1up
-2ckÞ
2ckv
2ckw
1cky
2ckz
-c2l2
+c4l2
cle4a
clet4
-clin2g
-cli2p1
-clip3a
-clo1c
+clo1
clo2ck
-clo3f
1clu
-clu4b
c2m2
-c3me
-c3mu
-1c2o
+3co
co2c
co3ch
co2d2
co3di
-cof3f2
-coi4
+coff4
+coi2
co1it
co2ke
-co3la3
-co2leu
-co3l2o
+co2le
+col2o
com4te.
comtes4
con2ne
-co2o
-coo1p
-co1p
+co2pe
co1ra
-cor2da
-co4re
-cor3t
+cor3d
+co3re
cos3t
co4te
-cou3si
cÃī4
2cp
2c1q
-1c2r2
-c3rÃĪ
-c4re2
+1c4r2
+cre2
cre4mes
-3crew
-2cri
-cros4
-2cry
+cry2
2cs
cs2a
-cs4f
-c4si
-cst2
-c1s2ti
+c2si
c1s4tr
-4c5t
-cti2
-cti4o2
-ction3
+4c1t
+cte3e
+c3ti2
+cti4o
ctur6
-c6tz
-1c4u
-2cua
-cu2e
+3cu
cu2p3
-cup1e
cussi4
-c1w
-2cx
1cy
-c1z
+2c1z
3da.
da1a
2d1ab
-d3a2bak
d2abÃĪ
-d2abe
-d3a2ben
-d3a2bi
-da3blu
-d3a2bo
-dab4ra
-da2bri
-da3brie
-d2ab4rÞ
-d1ac
+da2ben
+3d2abl
+da2bre
+dab4rÞ
+2d1ac
+d2ac.
dach3a
da2cho
+dach1s
4d3achse
-2d1ad
-da2de
-da2do
-da2d4r
d1af
-2daff
-da1f4l
-dafo4n
d1ag
-dagi4
-dag2o
-da1h
+dagi2
dah3l
-dail5
+da1ho
+3d2ai
da1in
-2d1air
da1is
-da2kro
dal2a
-2d1a2lar
+2d1alar
dal3b2
-4d1all
-da2lop
da3lÃķ
-2d1alp
-d1al3t
-2dalte
-da1lÞ
-3dam
-da2mei
+d1alt
d1amma
-4d1ammÃĪ
+2d1ammÃĪ
damo3
-d2amp
-damp7f8erf
-4d1amt
-3d2an.
-d1ana
-da2nan
-da4n4at
-2danb
+d4amp
+dampf8erf
+2d1amt
+d2an.
+2d1ana
dan4ce.
-d1and2
-2danda
-d2andy
-3dane
-4d3anei
-2danf
+2d1an3d2
+d3anei
d1ang
-2danh
-dan2kl
+2dange
+3dank
+dan4kl
+dan5kla
dan2k1o
dan2kr
-2danl
-d1ann
-2danna
-d1a2no
2d1ans
-2dantw
+4dantw
2danw
-d1anz
d2anz.
-2danzi
-2danzÞ
+4danzi
2d1ap
-d2apa
d2aph
-da2po
-da3pos
4dapp
-d3apte
-4daq
-da4r1a
+da2r3a
2darb2
-2d3arc
-dar2d1e
-dare2
-daren1
-dar3g
-dark2a
-3darl
-dar2m1a
+dark4
+3d2arl
+dar2ma
dar2m1i
-dar4mu
-da2r3o
-3dars
-2d1art
-dar2th
-dar2tr
+da2ro
+d3arr
+3d2ar3s
+d1art
+2dart.
da2ru
+d2arw
d1arz
-da1s2
-da3sh
-d1as3p
-das3s
+da1s
+dasch2
+da3s2h
das4t
-dat2e2
-da3tei
-4d3a2tel
+3dat
+dat2a
+da3t2e2
date4n
-da2th
-2d3atl
-4datm
-d3ato
-dat2st
-2d3atta
-3daub
-2daud
-dau3e2
-dauer3e
-daue6rei
-2d3au2f
-2d3aug
-2dauk
-da3unt
-2d1aus3
-dau2ß
-3daw
-d1ax
-3dÃĪc
-2d1ÃĪg
+4d3atl
+4d1atm
+3dau3e
+4d1au2f
+d3aug
+4d1aus3
+2d1ax
2d1ÃĪh
2d1ÃĪmt
-dÃĪn3a
2d1ÃĪnd
+2d1ÃĪng
2d1ÃĪp
-2dÃĪq
-2dÃĪrz
+2d1ÃĪrz
2d1ÃĪ2u
dÃĪ3us
-2dÃĪx
-4d1b4
-dbau2c
-dbauch3
-dbe2e
+2d1b4
dbu2c
2dc
-d3ch
-4d1d2
-d3da
+d1ch
+dco4r
+2d1d2
+ddar2
d3dÃĪ
-d3de
d3dh
+d5do
1de
-dea2d
-de3ar
+de2ad
de3a2t
-deb4
-3debÞ
-de1c
+3deb4
+4d1e2ben
+3de1c
de4ca.
de2cka
-de2del
-de2dit
-2de3e4
-def4a
-de2fa.
+de3e4
2d1eff
-def4l
deg2
-degene7
de3gl
-deh2a
dehe2
-3dehn
de3ho
2d1ehr
d1ei
3d2eic
-de3i4den
-de3il
-3d2eim
-4deime
+3d2e1im
dein2d
+dein2s
de3inse
-de3inst
-dein6sta
-dein6sti
-4d3einw
-de3io
-2deise
-d4e1ism
-dei2sp
-2dekz
-de2l1ac
-del4ade
-de3lak
+de2l1a4g
de4l3aug
-del3ÃĪnd
-del3b2
-del3d
+del1ÃĪn
del1ec
-3de3leg
delei4g
2delek
2delem
-de2len
-deler2
-deler4r
-2delf.
+deler4
2delfm
-3delik
-del2la
-dell3au
-del2l1ÃĪ
delle2
del4l3eb
del4lei
-del4l3er
de2l1ob
de2lop
-del2se
+de3lor
+de2lÃķ
+del2s5e
del2so
del2s1p
+del5ster
del3t4
dem2ar
-2d1emb
dement4
de6mentg
-dem5ents
-de3min
-2d1emot
2d1emp
-d2emu
-d4en.
-den2am
+d2en.
dend2
-de2n1e2d
de4n3end
-de2nep
4denerg
-de3n2es
4d3en4ge.
+d2enh
de2ni
-denk3li
-dens4am
-den6scho
-dense2
+den4k3li
+den2kn
4den4sem
-den6sere
+den4sen
den6s5tau
-2dentd
-2dentf
-2dentg
den3th
-2dentn
2dentw
-2dentz
-den6zers
-de2ob
+de1nu
2deol
-dep4l
-2depoc
+de1on
+depi2
d4er.
-der3af
-de2rak
-dera2n
-de3rand
-de2r3ap
-de1r2a4s
-de4r3asi
+de1rad
+de2rap
der2bl
-4d1erbs
2derdb
-de2r1e2b
+de2re2b
de4reck
de4r3ei4s
-5d4erem
-d4eren
-de4r3end
-5d4erer
-der4erf
-derer3n
-der3ero
+derer3
+de3r4erb
+de3r4erf
+de4r3ero
derer4t
derer6ze
-5d4eres
-de2r3eu
-derf4
-d4erfl
-d3erheb
-d2erhÞ
-de2r3id
+d4erfi
+d2erh
+4der4hÃķh
+d4erhÞ
+3derie
derin4f
-de6rinnu
-derin8teg
-der3k2
4derklÃĪ
-d2erm
+derm2
+4derneu
de1ro
-derÃķ2
-der3r
-derst2
-der3sta
-dert7ende.
-derter6e
+de2rop
+4der4sat
+der4spa
+der3tau
+der6t5en6d
dert4ra
-6dertrag
-der8trage
-3de3ru
+6der6trag
+de3ru
de4ruh
de4rum
-2d1erz.
-2d1erzv
+des1
d2es.
de2sa
-des1ah
+desa4g
de4sam
-de2s1ÃĪn
+des2ÃĪc
de2seb
-de4se2h
+de4seh
de2sei
-de4seil
-2d1esel
des3elt
-de3sem
-de3s4end
-desen3e
-de2set
+de2sen1
+de4set
de2sin
-des1o
de2sor
-de2s1p
+de2sp
de3spe
-de3spu
-dess2
-dess4t
+des3s2
dest5alt
-des6temp
-de5stern
-des4tex
-de1sto
+de2sto
dest5rat
-de3stri
+de4stre
des4tum
de2su
-des1un
-3desw
det2
-de3ta
deten4t
-2d1e2th
2d1etw
-2d1eul
de1un
de1url
de3us
-2d1e2vid
-devil2
-de1x2a
-de2xer
+devil4
+d1exi
de2xis
-2dexpe
-2dexpo
-2d1f6
+2dexp
+2d1f4
2d1g2
-dgas3tr
+dga2
d2ge.
-dger2
-dge3s
-d2gesh
-dge2t3a
dge4t1e
2d1h2
dha1s4
-4dho
-d3hu
+d2his
1di
-di4ap
-di2a3s4
-diat4
+di4ab
+di2ad
+di4am
di4ath
3dic
di1ce
-di3chl
-dicht6er
-di4ck3el
-4d3i2co
-3dida
-d1ide
-2didee
-di2den
-2didy
+dich1
di2e
-di3e4d
-di3enb
+di3e2d
die4neb
-diener6l
-di3e2ni
-dienst5r
-die2p
-di3ers.
-dies1c
-di3e4th
-3dif
-3dig
-dige2s
-dig4n
+di3eni
+di3ens.
+di3ern
+die2s3c
+diet3
+die2th
+dige4s
dik2a
-dil2s3
+dil2s5
2d1imb
-2dimp
-din4a
+2d1imp
+din2a
2d1ind
-di3n2e
2d1inf
-3ding
2d1inh
-di3ni
-2d1inj
-2d1ink
+2d1in1it
+4d3inner
2d1ins
-2d3int
-2d1inv
-di2o3b
-dion3in
-dion3s4
-di3ora
-dios2
-di2osk
-di1p2
-di3pt
-d1i2ra
+2d1int
+di2ob
+dion3s
+di1p
di4re.
di2ren
-di2rin
di2ris
2d1irl
-2d1irr
di2s1a2
-2d1iso
di2sp
di3s4per
2d1isr
dist2
-di1s4ta
-di2s3te
+di2ste
di4stra
-di4sz
di2ta
-dite1c
+di4teng
di4t3erl
di4t3erm
di4t3ers
-di1the
-di2tin
-di2tob
+di2th
di4t3r
dit3s
-di2t1u
-di5v2
+di2tu
+di5v
di3z2
2d1j
-d2jar
2d1k4
4d1l2
d3la
-dla3g
-dlap4
d3le
dle2ra
-dli4f
+dli2f
dl3m
dl3s
2d3m2
-4d3n2
+4d5n2
dni2
dnis1
-do5at
-2d1ob
-3d2oba
-dob2s
-d1of
-do2fe
-2d1oh
-do3ha
+d1ob
+d2oba
+2dobe
+dob4l
+d2obr
+2d1o2f
dole4
-doll2
-dol3la
-d3o2ly
-3dom
-do2mal
+doll2a
do2mar
-domen1
-do4ming
-4domn
-do2mu
-don2a
-do3nan
+do5na
+donau1
doni1e
-4dony
+do2o
2dope
2d1opf
-do1r4a
-2d1orc
+d2opp
+d2o3r4a
+2dorc
2d1ord
dor2f1a
dor2fÃĪ
-dor2f1i
dor2fl
-dor2fo
dor2fr
-dor2f3u
2d1org
-d2orn
+dori1
2dort
+dor2ta
dor4ter
-dor4tr
-d1os2
d2os.
-2d3osm
dos3s
-dos4t1
-dost3a
-dosten4
-do4stu
-do3ta
-do2tof
+dost1
+dot6h
+do2t1o
do3un
-dow2s
-d2o3x2
d1Ãķ
dÃķ2d
-dÃķ2f
-dÃķl1
-dÃķll2
+dÃķ2l1
d2Ãķn
3d2Ãķr
dÃķ2s1c
-4d3p2
-dpass3
-dpol4n
-dpost1
+2d3p2
2d1q
d2r4
3d4ra.
-3d4rab
-4d3rad
+2d3rad
+drag4
2drahm
-2d3rak
-3d4ral
-d3ramp
+d3rai
+3d4ram
d3rand
-dran3k
2d3rast
-dra4tin
-2draub
+d3raub
2d3rauc
-d4rauf
-2draum
2draup
2drÃĪd
d4rÃĪh
2d3rÃĪt
2d3rÃĪu
-4dre.
-2d3rea
+4d5re.
d4rea.
d4reas
3d4reck
-2d3ref
-4dreg
+2dref
+2dreg
3d4reh
-dre2ha
2d3reic
-3d4reie
d4reiv
-d4rej
-dreli1
4drem
4d3ren
-d4reo
-4d3rep
+2d3rep
4d3rer
4dres.
d4resc
-dres6sei
-dres6sel
-d4rew
-2drez
2d3rh
-d4ria
-4d3ric
-d3rieg
-3drif
-4d3riff
-d4rift
-4d3rind
-2d3rip
-2d3risi
-2driss
-2d3ritu
-2d3rob
-d3rod
-2drogg
-2drohr
-3d4rohu
-2d3roll
+d3ri
+d4ri.
+3d4ria
+2d5ric
+d4rid
+d4rif
+d4rik
+d4rin.
+d4risc
+3d4rit
+4dritu
+d3rob
+d3roc
+2d3rod
+d4roi
2d3rose
-d4ross
2d3rost
2d3rot
-2d3rou
+d3rou
2d3rov
-d3row
-drÃķ2sc
+d3rÃķ
+drÃķ2s1
d5rub
3d4ruc
2d3rud
2d3ruh
+2d3rui
+4drund
+drunge3
2d5rut
drÞ1b
drÞ5cke
-3d4rÞs
2d1s
4ds.
-4dsa
-ds3ab
-d2s1ad
-ds1al
-d2salk
-d2sall
d4s1amt
d2san
-ds3ane
ds3assi
-dsau2
-d2saut
+d2sau2
ds1ÃĪn
-ds2ÃĪu
4dsb
d4schef
d4schin
-d3s4co
-d2scr
d2s1e2b
-dse2e
d2s1ef
ds1ehr
-ds4eign
-d2sein
-d2s1emb
-dsen3er
+d3sei
+ds2eig
+d4seins
d2s1eng
d2s1ent
d2s1erf
d2serh
d2s1erk
-d2s1erl
ds1err
-d2s1ers
-d2s1ert
-d2serz
+d2s1erz
dse4t
-d2s1eta
-d2s1ev
-d2sex
-d3sha2
-ds2hak
-d4shal
+d4s1eta
+d3s2ha
d3sho
-d4shor
-4dsi
d2sid
d2s1im
d3s2inf
-ds2kal
-d3s2kel
-d4sko
+d3s2kan
+d3skul
4dsl
-d4sli
-d3soh
-d2sop
+d2s1op
dso2r
ds1ori
d2sÃķ
+d2s1par
ds1pas
-d2s1pat
d2spÃĪ
-d2s1pec
-ds2pen
-d4speri
-d2s3ph
-d3s2pi
-ds2por
-d6sporto
+ds2po
d3spri
d2spro
ds2pu
dss4
-dst2
+dst4
+d4stabe
d4stag
-d2stas
ds3tauf
d4s3tÃĪti
d2ste
-d3stec
+d4stea
d3stei
-d4steil
-d5stell
+d3stell
d4stem
-d4sten
d3s4tern
ds2ti
ds4til
-d4stoch
-ds4tol
-d5strei
-d3s4tro
-ds2tur
-dsu2m
+ds4tip
+ds2tu
+ds1ums
d2sun
-ds1url
ds2zen
2d1t
-dta2be
-d3t2ac
-dtach3
dta2d
-dt2ag
-dta2n
-dt3ane
-d3t2as
-dt2ax
d5tea
-dte3mo
-dt2et
d2th
d4thei
-d3to2
-d4tob
-dt2op
+dt3ho
+dto2
d3tÃķ
dt3r
dtran2
-dt3sa
-dt5st
-dtt4
-dt2un
-d3t2ur
+dt5s2
d3tÞ
-d3ty
1du
du1alv
du1ar
-du2b3li
-du1ce
-duel3la
+dub3l
+du2bli
du2f
2d1ufe
-duf4ter
-duf4to
-duf2tr
2d1uh
du1i
-du2in
-du2kr
-dul3art
2d1umb
2dumd
2d1u2m1e
2dumf
2dumg
-4d3umk
+2d3umk
2duml
d2ump
2dumr
-2d1ums
+d1ums
d2ums.
2d1umv
-du2n
-2d3und
+2d1un3d
+dund2a
2d1unf
dung4
-2dungl
-2d1uni
+2d1ungl
dun3ke
dun2kl
2dunr
dun2s
-2dunsi
dunst3r
2dunt
2dunw
-2d3unz
-du1os
-dup4
+du1o
dur2
dur3au
-durch3
-2d1urk
+5durc
2d1url
-2d1urn
-2d1ursa
-2d1ur3t
+2dursa
du4schn
du4schr
-du4sch3w
-1dÞ
+du4schw
+dus3t
2dÞb
-d3Þber
2d1v2
-2d1w
+4d1w
dwa2
-dwa4r
-dwer3te
-dwes2
dwest1
-1dy
-dy2l1
-dym3
-3dyn
-dy2s1c
-dy2sp
-4d3z2
+dy2s
+2d3z2
2e1a
-ea2be
-ea2b3l
-ea4br
+e3a2b
+eab3l
ea2c
+ea3der
eadli4
-e3a2dr
-ea2g
-ea3ga4
-ea3g4l
+ea2dr
+ea2g4
+ea3ga
+ea4ge
+ea3gl
eakt2
-e2akta
e3akto
ea2la
e3alei
-e4alem
-ea4l3ent
-ealen4z
ealer2
-e3a4lerg
-e3alex
-e3a2lin
-eal1o
-ea2lon
-ea2lop
+e4aler.
+ealer4t
e2alti2
-eal3tr
-ea2l3u2
eam3
-e2am4e
eam1o
-eamt2
-ea4na
-ean3a2r
-e3anf
+ea2na
e2ano
e3ar.
ea2ra
-ea3rat
-e2are
e4are.
-ea2r1ei
ea4rene
e4arer
e4ares
-ea2ro
-e3arz
-e3a2sc
-e3asf
-easin4
-ea4sp
+ea2sc
eas3s
-eate2
+eat4e2
eater1
-eat4mes
-eat2mu
-eat4mun
+e3ath
ea5tr
eat3s2
-e3at5t2
-eatu2
-e3aue
-e3auf
-eau2fe
-eau4fl
-e4aufo
-eau3n
-e2av
-e2az
+e3at5t4
+e3au2f
+e3aug
+eau1st
e3ÃĪ2
e1b
2eba
-e3bak
-eba2p
-e3bÃĪn
-2ebec
-ebe1er
-ebein7h
-eb2el
-ebe4ler
-ebe2lo
-ebels4t
-ebel5ste
-ebenen3
-ebe4ras
+e3b2ak
+2ebed
+ebe2i
+2ebel
+eb2en
+ebens3e
+ebe4rel
ebert4
-ebese2
-ebe4s3eh
-ebe2so
2ebet
-ebet4s
-2ebh
-2ebi
2ebl
-e3blÃĪ
-eb3le.
eb3ler
eb4leu
e3blie
eb3lo
eb2lÃķ
-2ebo
-e2bob
+2eb2o
ebot2
ebÃķ2s
2ebr
-e5brau
-eb4rea
+eb3rei
+eb4ru
eb2s1
-eb4sche
+eb6sche
ebse2
-ebs7panne
-ebs3tau
+ebs3pa
+eb3sta
eb4stÃĪt
ebs3tem
ebs3t2h
-ebs3ti
eb3str
-2ebu
-e2bunt
-ebu2t3
-eby4t
+2e3bu
+ebu2t1
2e3ca
-2e3ce
-ech1am
+e1ce
ech1ÃĪ
2e1che
ech1ei
-ech2en1
e6ch5erzi
-e1chi
ech3l
ech3m
ech3n
e2cho.
-ech3Ãķ2
-ech3r
-ech4ri
-echs4er
-echst5re
-ech3tab
+ech1o2b
+e2ch3r
ech3t4ei
-ech6terh
-echter8ha
e1chu
+ech1uh
ech1w
-2echz
e1ci
-eci2a
-ec4k
-ecke4n1
-e4ckerr
-eck3ser
+eci6a
+e1cka
+eck3se
eck4sta
2eckt
-3eckty
2e1cl
2eco
-2e3cr
+eco3d
+e3cr
ec1s
2ect
e1d
-ed2a
+e3d2a
ed2dr
-ed4e
+ed2e
ede2al
-ede3n4er
+ede3n2e
edens1
-eden4sa
eden4se
eden4sp
-edeo2
ede2r
-eder3a
-ede3rat
eder3t2
-edes2t
-ed2i
-e3di.
+edi4al
2edip
-edi6teng
e3d2o
ed2Ãķ
-e3drei
-ed4rÃķ
-ed2sal
+eds2ÃĪ
ed4seh
ed2s1es
-ed2si
ed2s1o
ed2s1p
-ed2sto
ed2s3tr
-ed2s1u
-edun3
-edund2
+ed2su
+edu2s
e3dy3
-edys4
-2ee
-ee3a4
+4ee
+ee3a2
eeb2l
-ee1c
-ee4ce
+ee2ce
+ee1ch
ee2cho
-e1e2ck
+ee2ck
eede3
-eede1s
eed3s2
-ee1e2
+ee1e
e1eff
eef4l
-eeg4
+eeg2
e1ei
-ee2i3e
+ee1im
eein4se
-eei4sc
-eeis3s
-e2ela
eel2e
-e3e2lek
-eele4n
-eel2Ãķ
-e2e3m2a
-e1emb
-ee3min
+ee2lek
+ee5len
e1emp
e1en
-eena2g
+eena2
+ee4nag
e2enÃĪ
e2enc
-een1e
-e3eng
-ee3ni
-e3enk
-e3enl
-e2eno4
+e2eno
een3s
-een2z
-ee3o
-e2ep
-ee3po
-eer4at
+e1e2pi
+ee2r3as
e1erbt
e1erd
-ee3re
-eer1ei
+ee3r2e
ee4r3en4g
-eer2e2s
-eere2t
-eer3eti
-e1ermÃĪ
+eere2s
ee1ro
ee1rÃķ
-e1erÃķf
eer2Ãķs
-ee3r2un
+eert2
+e1ertr
+ee3r2u
e1erz
-ee1s2
-ee3sh
+ee3s2
ees3k
-ee3sp
-ee3s4t
-e2et.
-ee3t2a
+ee3ta
ee4tat
-ee2th
-eet2i
-ee3t4r
-ee2tu
-ee1u2
+ee1u
+eeu2f
eewa4r
e1e2x
e1f
-e2f1ad
-e3fah
+2ef.
+2efa
+e2f1a2d
ef1ana
ef1ar
-e2farc
-ef3arm
e2fat
-2efÃĪ
-ef2ÃĪl
e2fÃĪu
2efe
+e3fe.
e2f1e2b
-e3fef
-efe4l3ei
+efell4
ef1em
-e2femi
-efe2n1
-3e2f1ene
e2fent
-efer5f
-eferin6d
+ef2er
efeuil4
+2eff.
3effek
1effi
ef2fl
-ef3flu
2efi
ef1id
e2f1ins
efi2s
+1efku
2efl
-ef4le
e3f4lu
-e3flÞ
2e3f2o
-2efr
-ef4reih
+e3fra
+ef3rea
ef3rol
ef3rom
-ef4ru
ef4rÞ
efs2
-efs4c
ef3so
ef3sp
ef2tan
ef2tei
-ef2tro
2efu
e2fum
+2efÞ
e1g
-ega2m
-e3g2anz
-egd4
+egas3
+eg1d4
e3ge
-egein3
-ege4lan
-ege4l3au
-ege8l7ei8er
ege4ler
-ege2lo
-eg2en
-ege4n1a
-ege6nero
+ege4n3a4
+ege4nec
ege2ra
-ege5stal
-ege4s3tr
+ege4str
ege1u
-2egi
-2egl
e2glo
e2glu
e2gn
eg3nÃĪ
eg3ni
-ego1p
eg4sal
-egsau3g
-eg3se
-eg4sei
-egse3l
-eg3si
-eg4sk
-egst2
+eg4san
+eg4se4r1
eg4sto
eg2th
egung4
egus3
2e1ha
eh1ach
-eh1ad
-eh2ade
-e3h2ah
eh2al
-ehalt4s
-e3hand
-e2harz
-e3haut
-e1hÃĪ
+e2hap
+eh2aus
+2e1hÃĪ
e1he
+eh4ec
eh1eff
-eh1ein
-eh1elt
-e4hense
-e4h3ente
-ehen6tr
-ehe3o
+eh2el
+ehe5na
+ehen6t3
1e2hep
-2eher
+e3her
ehe1ra
-e2h1er2f
-e2h1er2l
ehe3str
-2e1hi
-eh3im
+e1hi
+eh1int
eh1lam
-eh2l3au
eh1lÃĪ
ehl3ein
eh4lent
eh5l2er
-ehlo2
-ehl1or
-eh2lÃķ
+eh2lin
+eh3lo
ehl2se
ehls2t
2ehm
-eh2mab
-eh4mant
eh3mu
-eh3na
-eh3no
-2e1ho
-eho2f
-eho2l
-eh3oly
-2e3hÃķ
-ehÃķ4rer
-eh2r1a2
+e1ho
+e3hol
+ehr1a2
ehr1ÃĪ
ehr1e2c
eh2rei
-eh2rel
+ehr4erf
ehr6erle
-ehr4ern
ehre3s
-eh4rin
-eh1roc
+eh3ri
+eh1ro2
+ehr1ob
ehr1of
-eh1rÃķ
ehs2
eh3sh
+eh3sp
eh1ste
-2eh3t2
-eht3h
-eht4r
-2e1hu
-e2hum
-eh1unf
-e2huni
-e3hur
+2eht
+e1hu
+e2hunt
e1hÞ
eh3Þb
eh1w
e1hy
2ei3a2
-eia4t
ei2bar
-ei2bli
-ei4blu
+ei2bl
eibu4t
ei4b3ute
-e4ic
-ei1ce
ei2cho
+eich5te
e2id
ei2d1a
ei3de
-ei4deis
-eid5erre
+eid4ein
+ei4d3er4r
2eidn
-ei3do
-ei3dr
+ei3dra
+eid3sc
ei1e
-eie2b
-eie2d
-ei3e2l
-eie2m
-4ei3e2n3
+ei3el
+4ei3en3
eienge4
-ei3es
-eie2t
-4eif.
-ei1flo
+eif2e
1eifr
-eif3t
-2eig.
-2eiga
-eig2ar
-2eigÃĪ
-2eige.
-2eigeb
-2eigeh
+ei3g2a
4eigeno
-5eigensc
-4eig2er
+eig2er
2eiges
2eigew
-2eigi
+ei3gl
1ei2g3n
-ei2go
-ei4g3rat
-2eigre
-2eigrÃķ
2eigru
-2eigrÞ
-2eigs
2eigt
2eigu
-4eih
-ei2hum
-ei2kab
-ei2kak
-eik4am
eik2ar
-eik2i
-eik2l
-ei3k4la
-ei3klÃĪ
-eik2o
-e2il
-4eil.
-ei4l3ab
-ei2lam
-eila2n
-ei4l3ane
-ei4lang
-ei4lanz
+ei3kau
+eik4la
+e4il
+2eil.
ei2lar
+ei2lau
2eilb
-eil3d4
+eil3d
ei4lein
-eile2n1
-ei2let
+eilen1
eil3f4
-eilm2
-ei2lob
-eil2Ãķ
-2eim.
-ei2mab
-ei2m1ag
+eil3ins
+2eiln
+1eilzu
+ei2m1a4g
eim3all
-eim3alp
-ei2m1or
-2eimÃķ
-2eimp
-eim2p4l
-eim3sa
-ei2mur
+ei2mor
+e1imp
+eim2pl
e4i2n1a
-ei4na2d
-ei4nae
-ei4n3an
-ei4na4s
-ei4n3at
-ei2n3ÃĪ
-ein3d2e
-ein6derk
-e1indu
-2eineb
-einen4e
-ei4n3en4g
-ei6nen6se
-ein5erbe
-ei4nerf
-ei4nerk
-ein5er6la
-einer6sc
+ein3a2d
+ei4nas
+ei4nÃĪ
+ein3dr
+2eindu
+ei4neng
ei2neu
-ein4fiz
2einfo
ein4fo.
ein4fos
ein3g2
-3einger
-e2ingr
-e2inhÃĪ
-ei2nie
+ein4hab
e1init
-ein3k4
+eink4
ein6karn
3einkÃĪ
-e2inl
-ein3n2
-3einna
+3einkom
+einn2
+1einna
ei2n1o2
-1einri
-e6insa
+e4insa
3einsat
-e2insc
-5einschÃĪ
+e3insta
ein6stal
-ein6terv
-3eintÃķ
+ein4sz
1einu
-ei3o
-eio2p
-eio4s
+e4inver
+ei3o2
ei1p
eip2f
2eir
-eir2c
ei3re
e1irr
-e4is.
-ei2sa
-ei3sas
-ei6schwu
-e4ise
-ei4ser4g
-ei4s3er4l
-ei6s5erst
+e2is.
+ei2sa4
ei4s3erw
-1eisho
-ei3s2ky
-ei2so
eis2pe
-e2iss
-eisser6s
-4ei1sto
+eis4tel
+eis4th
+ei1sto
ei2sum
-ei2sur
-1eiswo
-e2it
-ei2t1a2b
-ei2tal
-ei2t1an
-ei2tap
+e4it
+ei2tab
+ei2tan
ei2tar
-ei4tat
2eitÃĪ
-ei2tÃĪn
-eite4ra
-ei4tess
-ei2t1h
-ei2tin
-eito2
-ei4trau
-ei4tro
-eitsa4g
-eit3t4
-4eitu
-ei4t1um
-ei2t1ur
-eit3z2
-eiv2
-eive4
-ei2zar
-eiz1in
-2e3j
+ei3te
+ei2th
+ei2tor
+ei2tro
+eitt4
+eit3um
+2eiu
+2e1j
e1k
-2ek.
-2e3k2a
+ek2a
1ekd
-ek2e
e3ke.
-e3ke4n
+e3ken
e3kes
e3key
e3k2l
-ek4lo
+ek3lip
ek4n
-e3k2o
-ekor4da
-2e3kr
-ek4s1p
-4ekt
-ek2tan
-ek5t6ante
-ekt3at
-ek2t1ÃĪ
-ek2te2l
+ek2o
+2ek4r
+2ekt
+ekt4ant
ekt3erf
-ekt3erk
+ekt3erg
ek4t3er4z
ekt2o
-ek2t3o4b
ek5tri
-2e3ku
-ekur2a
+ek2u
e3k2w
-1ekz
e1la
+ela4ben
+el3abi
el2abt
-el3abu
-ela2ck
+ela2c
el3ader
el1af
-ela4h
+ela2h
e2l1ak
-e2l1a2m
-el2a3mi
-e3lamp
-el1ana
-e4landa
+el3al
+e2l3a2m
+el4ami
+el4amp
+e6landa
e2lanm
-e4l1ans
-e2l1ant
-e4lanw
+el1ans
el1anz
2elao
e2l1ap
-e2l1ar
-el3a2ri
-ela2s
-el1a4si
+e2l1a2r
+el3ari
+ela4s
+el1asi
el1asp
-ela3su
-el3aufw
+el2ast
2e1lÃĪ
-2elbil
-2elbr
-2eld
-elda2r
-eld3ari
-eld4arm
-el4d3erf
+3elbis
+el2da
+eld3erh
elder4p
-elder4s
eld5erst
el3des
-elds2
-4e3le.
-2e3lea
-elea2r
-2e3leb
-4ele2c
-el1ech
-1elefa
-eleg3s
-4eleh
-el3ehe.
+eld3s2
+e3lea2
+ele2c
2elei
+e6l5ei6er.
e6l5ei6ern
-e2l1ein
-e3leine
-e5leit
+el1ein
+e4leinf
+e4leing
+e4leinh
1elek
-2eleko
e2l1el
1e2lem
-2e3lem.
-e3lema
-ele2mi
-e3lemm
-2el1emp
+e3lem.
+el1emp
2e3len.
-elen4k3l
e4lense
-e2l1ent
+e4l1ent
e3lep
-2eler
-e3ler.
-eler2a
-el1erd
-e6lereig
+e2l1erd
el1erf
e4ler4fa
-e4lerfi
-e2lerg
-el1erh
+e2l1erg
el1erk
-e2l1erl
+el1erl
+e4ler4la
e4l3ernÃĪ
-eler2Ãķ
+e4ler2Ãķ
e2l1err
-el3eru
-el1erw
-e2l1ess
-e2l1e4ta
-ele2ti
-elet4ta
-2el1ex
-e3lex.
+eles2
+el1ess
+e4l1e4ta
+e3leu
+2elev
+ele2x
1elf.
-elf2er
+el3fe
+elf4l
1elfm
-elf4r
1elft
+elg2a
elgi5er.
elgi5ers
-el3g2l
elg4r
e2l1id
-2e3lie
-eli3ef.
-2elig
+e3lie
e2lim
-elin3a
-eli3no
-el1ins
+el1ita
2elk
-el4larb
-ellar4t
-el3lÃĪr
+elk3s2c
+el3lan
+el3le
el5le.
-ell2ei
ell3ein
ell3eis
-el4lel
-el5lend
-ellenen5
-ell2er
-eller8fas
-eller7g
-ell3erh
-el3les
el2lim
-1ellip
-el2lor
-ell2Ãķ
+el3lin
ell3sp
-el3ma
-elm2e
-elm3ein
2eln
-el3na
+el5na
2elo
-e2l3oa
e2lof
e2lol
-e2lom
-e2lonk
-el1opf
+elon2
e2l1or
-e3lore
elo2ri
-e3lot
-e3l2ov
-2elÃķ
elÃķ2s
-el3p4
-el4s5ein
-el3sen
-els4tri
el2sum
-el4tans
-elte4m
el5ten.
-el4t3ent
elter4b
-elter4f
-elt3erh
-elter6le
-3elter4n
-elt5ero
-elter6sc
-elte2s
-el4tesc
-elt3eth
-el3the
-el5tri
-elts3pa
+3eltern
+elter4s
+elto2
+elt3r
+elt3s2k
+elts2p
2e1lu
-el1uf
-e2l1um
-e2l3u2r
-elu2s
+el1ur
el3use
-elu2t
-el3uto
e1lÞ
-2ely
e2lya
-el3z2ac
+2elz
el2zar
-el4zene
-elz1in
+elz2e
el2zwa
-2elzy
e1m
-e2m3a2b
-e2m1alk
-em3anf
-e2m1ano
-em1ans
-1emanz
-e4m1a4s3p
-em1au
-2e3mÃĪ
-em2ÃĪh
-1emba
-1embo
-1embry
-em2dÃĪ
-emd1r
-em2dra
-2eme
-e2m1e2b
-e2mef
-eme2i
-e2mele
-em2en
+2ema
+em1ad
+ema2k
+e2m3anf
+e2m1ans
+3emanz
+e3mÃĪs
+em4d3a2
+e3m2en
emen6gel
emen4t3h
-eme3r2i
-e2m1er2l
-em1erw
-e4mesu
-3e2meti
-e2m1i2d
-emi2ei
-e2mig
-emik2
-em1im
-2emin
-emi3n2a
-e3mind
+e2m1erw
+eme2s
+1e2meti
+e2m1im
+emi5na
em1int
-1e2mir
-e3misc
-emi3tr
+emi3ti
+2emm
emma3u
em2m1ei
-e2moa
-e3mol
-emo3s
+e2mop
1empf4
em3pfl
-em3po
-empo1s
em2sa
-em4scha
-em4sei
-em2sim
em2spr
em2st
-ems5tr
-ems3tro
em3t2
-1e2mul
-3emuls
-emune7
-e3mur
+1emul
2emÞ
-e2na
+e2n1a
4ena.
-e4na2b
-en3aba
-en3abo
-4ena2c
-en3ache
-e4n3ack
-enadi4
+2en2a2c
+en3ack
+e3nad
e4naf
4enah
-en3ak
-en1al
-enal2a
-e4nalb
-e3nale
-en2alg
+e4n3a2k
ena3l2i
-e4nalk
-e4nalm
-e4nalo
enal3p
-4en1am
-ena4n
+4enam
+en4ame
e4nand
-en3ane
-e4nant
+en3ang
e4nanz
-en1ap
-ena2pa
en3are
-en3ark
-en3aro
-en1as
-ena2sc
-e4nast
-2enat
-4e5nati
-e4natl
-enat4s
-e4n3att
-4enatu
-e4nau2f
-en3aug
-e4n3aur
-e6nausta
-e4naut
-en1a2x
-en1a4z
+ena4sc
+4enat
+en3att
+e3naue
en1ÃĪ
-en3ÃĪb
-e3nÃĪi
e2nÃĪr
-en2ÃĪ3s
-en3ÃĪst
-en2ce.
-end2ac
+en4ce.
+en3d2ac
en2dal
-en4dang
-2endel
-ende4lÃĪ
-en4d3es4s
-en2dex
-en2did
-en3d4ort
-end3s4au
-end3s2l
+en4d3ess
+end4ort
+end3rom
end3s2p
end3sz
-en3d2um
-en3d2Þ
+end2um
2ene.
-en3e4ben
+ene4ben
en1e2c
e2neff
-ene2h
en2eid
e3neien
-e4neige
-4eneigu
e4nein
-e4neis
e2n1el
ene4le
-2ene2m
-e2n1emi
+2enem
2enen
-e4nense
e4n1ent
en4entr
-en3envi
-en1ep
4e3ner.
-en2era
e2n1erd
-en3erei
e2nerf
-en4erfr
-1energ
-e2nerh
-e2nerk
+1e2nerg
+e4nerh
+e4nerk
e2n1erl
-e4nermi
e4n3ermo
4enern
-e4n3erne
-ene2ro
e2n1err
-en1ers
-4eners.
+e2n1ers
e2n1ert
-en4ert.
e2n3eru
e2n1erw
+e4nerz
2enes
-e3nes.
-e2n1e2sc
-e2n1esk
-e2n1ess
-en1eta
-e2n1eth
-en1eul
-e2n1e2v
-e4ne2x
+e4n3ess
en3f
+enf2a
enf2u
1engad
-1engag
-en3g2al
-enge3r4a
+3engag
+enge3ra
en3g2i
+en3glo
en3gn
-en3g2o
1engp
-eng4ra
eng3se
2eni
e3ni.
e3nic
-4e3nie
+e2nid
+e3nie
eni3er.
-eni3erp
eni5ers.
-en3i2ko
-en3ill
-eni4m
-en1ima
-en1imi
+e2n1i4m
e2n1in
e3nio
eni2Ãķ
-e2nir
-eni4sa
-e4n3iso
-e3nit2
-e3niv
-enk3aus
-3enkeli
-enk3erg
-en4k3erk
+e3nit
en3k2Þ
-en2nef
-en2nel
-en4ner4f
-enn3erg
-en4n3erl
-enn2i
-enni6ger
-2enniv
-enns2
-enn3ste
-e2n3oa
-e2n1ob
-e3nobel
-eno2br
+e2n1o2b
+enob4le
e2nof
-en3olm
+en1oh
+e3nol
eno2ma
-eno4n
+en1on
e2n1op
e2n1o2r
-en2ora
-eno4ri
-4enorm
-e2n1ost
-4e3not
+enost3
+e3not
eno2w
2e1nÃķ
en1Ãķ2d
-en3sabb
-en2san
+en3sac
+en2sau
en5sche
en2seb
-1ensem
-ensen3e
-ens3ere
-en3spo
-ens4por
+3ensem
+ensen1
+en2sep
+en4seta
+en3ska
+en3sp
+ens2po
enst5alt
en4s3tÃĪt
-ens4tel
-ens6temp
ens2th
2ensto
-enst2Þ
-en5t2ag
-en4tanm
-en4tanw
-en3t4ark
+e4nt
+ent4ag
+ent4ark
1entd
-en3t2el
-ente2n
-3entera
+en2teb
en4terb
1entf
2entfo
-1entg
+1entga
3entgeg
en2thi
-1enthu
-1enthÞ
-en4t1id
3entla
1entn
-en2tob
-entopf3
-en2t1os
-2entÃķ
en4t3rol
-1entsc
-1entso
-ent4sto
+3entspr
1entw
4entwet
-3entwic
1entz
-e2n1u
-e3nu.
-e4nu4r
-2enu4t
-e4nuto
+en1u
+2enut
e1nÞ
enÞ1st
4enwÞ
-2e1ny
-en3zare
-enz2ÃĪp
-1enzep
-enz3erg
+e1ny
+enz1ec
+en4z3erf
+en4z3erg
en4z3erk
-en4zerl
-en4z3erm
-enz5ersc
-enzi2d
-enzlan4
-enzo2l
-1enzy
e1Ãą
-4eo
+2eo
e1o2b1
-eo3ben
-eo3bl
-eo3bo
-eo3br
-eo1c
-eoch2
-eo3dr
e1of
-eo3g2
+eo2fe
e1oh
-eo3la
-e3o2ly
-e1on
-e3o2nat
-eo1o
+eo3m
+e1on.
+e1ond
+e1onf
+e1onh
+e1onl
+e1onr
+e1ons
+e1ope
e1opf
-eop4r
+eop4t
e1or
e3or.
-eo1ra
e3orb
-eorgi1
e3ors
-eort2
e3orw
eo1s2
e3os.
-eo3se
-e1oste
-e1ou4
-eo1ul
-e1Ãķ4
+eota2
+eo3ul
+e1ov
+e1Ãķ2
e1p
-2ep2a
epa2g
-epas6ser
-2eper
e3p2f4
-e5pfi
-1e2pid
-e2pig
-e2pik
-1e2pile
-e3pio
-1epis
-2epist
-1e2pit
+e2pis
+1episo
+2epl
ep3le
-1epoc
-eport4
-1e2pos.
-ep2p1a
-eppe3l
-ep2pl
+1e2poc
+ep2pa
+ep2pf
+ep4pl
ep2pr
-2epr
-ep3sh
+ept2a
ep2tal
-ept2an
-ep2tau
2e3pu
epu2s
-4e3q
+e1q
er1a
e3ra.
era2be
-e2r3a2ch
e3rad.
-e3radi
-e2radj
-e2radm
-e4radmi
-e4r3adr
+er3adm
eraf4a
era2g
-e1rah
e1rai
er3aic
-e3rake
-e1rald
-eral4eb
-er3alke
-e2r3all
-er2an.
-era4n4a
+e2rak
+e1ral
+er3all
eran3d
-e3rand.
-e4rangr
+e3rane
+er3anf
e2ranh
-e2rano
+er3anm
e1rap
-er3apa
er3apf
e2rar
-er3are
e3rari
-e3ras.
-era2si
-e1rast
+e1ras
+e2r3a4si
+er4ast
era2ß
-e4ratel
-e2ratl
+e2rath
+e3rati
+e2ratm
e1raub
-e1rauc
er3aue
erau2f
er3aug
-e2ra2v
e1raw
-e2r3ax
e1raz
e1rÃĪ
-er1ÃĪf
er1ÃĪh
-er1ÃĪ2m
-er1ÃĪp
+er1ÃĪm
e2r1ÃĪs
-er1ÃĪtz
-3erbarm
-erb2au
erb2e
-2erbru
-erb2sp
+erb4sp
er1c
er3chl
-erch2o
-erd2am
erda3me
1erdb
+er3de
2erdec
-2erdel
+erde3in
er4d3en4g
erd3erw
-erdes4t
-erdeu2
-1erdg
-erd3st
-2erdy
+erd3s
4ere.
-er3e4ben
-e3r2ech
+er1eb
+e3rech
er3echs
er1e2ck
er1edi
ere4dit
er1eff
-e2r1e2h
-ere4i
+er1e2h
4e3rei.
-e3reib
er1eig
-4ereih
-e4r3eime
-e4reink
-er3eis.
-er5eisar
-er3eisb
-er3eisf
-er3eisr
-erei5str
-e4rek
-er1e2l
-e2rele
+e2rein
+e4r3eis.
+ere2l
+er1ele
ere3lev
-ereli1
-2erem
-4erem.
-er1emi
-ere4mis
+2e3rem
e2remp
2eren
4e3ren.
e3rena
-eren1e
e4rense
+e4rentf
e4rentn
-e4rents
e3renz
eren8z7en8d
-er1epe
+er1ep
+2erer
4erer.
-2ererb
-erer3fa
-e4r3erfo
-e2rerh
-e2rerk
-e2rer2l
-erer5lau
-4erern.
-e4rerne
-e2rer2o
-erer4ri
+e2r3erf
+e2r1erh
+4erern
+e3rero
+er1err
er1ers
-4erers.
-e8rersche
e2rert
-2ererv
-2ererw
+er1erw
2eres
-4eres.
-ere2sp
er1ess
-eres3sk
-er1eta
-er1eu
+e4r3e4ti
+er1eul
ere4vid
erf2e
-4erform
-erf4r
+er3f4r
4erfÞr
-er4g3are
-4ergebi
3ergebn
-4ergebÞ
-4ergeha
4ergehÃĪ
-ergel4s3
-erg5elst
-4ergeni
-2ergn
-er2gop
+erg3el4s3
+1ergol
4ergrem
-erg1s
-erg3s2o
-ergs2p
+erg3s
ergs4t
-e4rh
+e2rh
1erhab
-er3hag
-2erhai
4erhals
-2erham
-2erhan
-2erhas
-er3hei
-2erher
+er3he
+4erhÃķhe
er3hu
+2erhÞ
2eri
e2riat
e3rib
4e3ric
-e4r3ico
-er1id
+er1i2de
4e3rie
-eri3en1
-e3ri3k
-erik4l
+eri3e4n3
+e3ri3k4
4e3rin.
-e2r1ind
+er1inb
e2r1ini
er1ink
-er1inl
+er1ins
er1int
-er1inz
-e2ri2on
-4eris
-e2riso
-e2risr
+e3rio
er1ita
-3eritr
-e3riv
2erk.
-2erkaj
-er3ker
1erklÃĪ
-2erkm
+er3ko
2erkre
-erk5t4
-er2kum
-2erl.
+erk3t
2erlag
3erlebn
-4erleh
-2erln
-er3m2
+4erln
+erm2e
ermen4s
-er4m3ers
-er4n3alt
-er3ne
-er4nene
-er4nerf
+erm3ers
er4nerk
-3erneue
-er2nob
-erno2r
ern1os
-2e1ro.
-e1roa
-er1ob
-ero2bl
-ero2br
+e1ro.
+er3oa
+er1o2b
e2r1o2f
e1rog
-e1roh
+e1r1oh
e1rok
e1rol
-er3oly
e1rom
-er3omb
-2e3ron
-e2r1oo
-er1op
-2e4ro4r
-eror2a
+e3ron
+er3ony
+er1o2p
+e4ro2r
e1ros
-1erosi
-e3rosit
e1rou
e1row
-er1o2x
-er1oz
+er1ox
+e1roz
erÃķ2d
-2erÃķh
-erÃķ4l
+2erÃķk
er1Ãķs
-erÃķ2sc
-er3p
+er3p4
er3rÃĪ
-2erren
-er3ro
2errÞ
-er3s2a
-ers4ana
-ersch4
+ersch2
er5schn
-4ersei
-ers2el
-er3sen
-er5s2i
+er3se
+ers2i
er3sk
-4ersted
-er3stel
-erst5ers
-4erstil
-ers4tod
-ers6tr
-er3swi
+er3smo
+er3sn
+er3sp
+er5stel
er3sz
-ert1ab
-er3tat
+ert2ak
+er6terei
er4t3erf
-er4t3er4g
er4ter4h
-er4ter4k
er4ters
-ert1h
-er2tho
-4ertÃķ
-er5tri
-4ertru
+er2t3ho
+4er3ti
+ert3ins
erts2e
-erts2p
+2ertÞr
2eru
-eruf4s3
-e4r3uhr
-er1u2m1
+eruf4s
+er1u2m
er1und
-e4rundu
erung4
-er1up.
-er3ur
-er3use
-e2r3uz
+er1uns
+er3uz
erÞ4b
3erweck
-er4zerk
-er4z3ers
es3ab
-e4sabe
+e3sac
e2s1a2d
-e3saf
es3ak
-e4s3all
-es1ami
-es3ampl
-es2ank
-es2anm
-es2anr
+es4ank
es3anz
-e3sap
-es2apa
-esa2ra
-e3sa2s
-es2ast
-esa2v
-es1ax
+e3s2as
+e4s3ato
+es3av
2esb
esbi5er.
-e3s2ce
+es2c
+es3cap
+e3sce
esch2
-es4chi
-e2s3ec
-es1ehr
-esein4s
+e3scha
+e2s3ein
es2el
-ese4nal
-ese4neu
-esen3o
-es2ens
-esen3sk
-esen3th
-eser4at
-ese4r1u2
-eses2k
-e2s3e2x
+es3eva
2esf
-2esh
+4esh
es2har
-es3he
-2esi
-esi1er
-e2s3i2k
-e2s1il
-esi2st
+es2id
+e2sil
+es1ini
+es3int
+es2ir
+es2is
es2kat
-e4s3ke
-e4s3kl
+e4ske
+es3kl
es3ku
-e4s3ky
+e4sky
es3l
+es4log
2esm
-e2s3oa
-e4s3ob
-e2s1od
-es2oh
eso2r
-es1ora
-eso3re
es2ort
-e3sot
-e3s2Ãķ
-4esp
-e3spal
-es4park
+es2Ãķ
+2esp
es2pek
-e4spers
-e2sph
-e3s2pi
+e3spi
e3s2por
+e3s4pra
2esr
-2ess.
-es2s1ag
essali3
-essau4s
-1essay
-2essÃĪ
-2es3sc
-ess6ere
-ess4erf
+es2sau
+es3sc
+es3se
+4essem
+ess4e3re
ess3erg
-ess5er6la
-2essk
2esso
es2sof
-2essp
es2s1pa
es2spu
-es4stab
-ess3tie
es3stu
estab4b
-esta3ge
-est1ak
-es4tanb
-es4tang
-e4stant
-e1st4ap
+es4t1ak
e1star
e4starb
-e2st1a4s
+1e2stas
e1stat
-e4stat.
-e4staum
-e4staus
-es2tec
-este4i
-est5eing
-est5eink
-est5einl
-e1ste2l
-es4t3emi
-e4sten
+e1s2tec
+e3stel
es4t3eng
-est5entr
-est5erha
-es4ter4Ãķ
-es4t3erz
+es4t3erh
es4t3ess
-es2th
-es2tid
-e4stig
e1stil
e2stip
-es2tis
estmo6de
-1estn
-e2stom
-e3strec
+est3ori
+e1str
es4tri
-e1strÃķ
+es3trop
e1stu
-est3ums
-es2tur
-e1s6tÞ
-e3sty
-e3suh
+e1s4tÞ
e2s1um
es3ums
-es3unt
-es1ur
-esu4s
-2es3w
+es3w
e3sy
es3z
-es4zene
-2e1ß
-e2ß1el
-e2ßent
-eße3re
-e2ß1er2g
-e2ß1erl
-eß3t
+e1ß
+eße3r2e
e1t
etab4
-eta2c
-2e3taf
-2etal
-et1ami
-et4an.
+et1am
+eta2mi
+3etap
et4at
-etat3r
et1ÃĪh
2e3te
-ete2e
-e4t1ef
e4t1ein
ete3ke
+et2en
eten3d2
ete2o
eter4hÃķ
-ete1ro
eter4tr
-ete2s
-2eth.
-et2ha
-e4t3hal
-e3the
-et2hi
-e4thik
-3ethn
-et2hu
-e4t1i2d
+et2h
+et3hal
+ethi1
+et3hÞ
+e3ti
eti2m
-etin1
-et1ini
-et2it
eti2ta
-eti2th
-et3l
-2e3to
-e2tob
-e4t1o2f
-et4on
-eto4n3al
+2eto
+eto2b
+e2t1of
etons4
-e4torg
-eto2s
+e2torg
+e3tÃķ
2etr
-et3rad
e4traum
-et3rec
-e2t3res
-et4ros
-ets2c
-etscher7e
+e6t3rec
+e2tres
+et4rig
etsch3w
-ets1p
-et2spe
-et2ste
+ets2p
+et3su
ett1a
-et2ta2b
+et2tab
et2tad
-et2tak
-et4tans
-ett2as
-et2tau
+et2t3au
et2tei
ette4n1
-ett4er
-et2t1h
+et2th
et2t3r
-et2t1um
-3e2tui
-e3tur
+et4tro
+ett3sz
+et4t1um
e3tÞ
etwa4r
-1e2tym
2etz
+et2zÃĪ
+et4z3ent
+etze4s
et2zw
eu1a2
eu3b4
-2euc
-euch4ta
-2eud
-eude1s
-eudi4e
-2eue
-eu2eb
-eue6r5eif
-eue6reis
-euerer6s
-euerer6t
-eu3eri
-eu3erk
-eu3err
+euen2g
+eu3erei
+eue6reif
+euer4ri
eu2esc
-4euf
+2euf
eu2fer
-eu2g1a
-euge4mi
-eu6gense
+eu2ga
+eu4gent
eu3g2er
-eugin2
-eugin4f
-eu4gin4g
-eu2gre
-eu2gri
eugs4
-eug3sp
-eu3h
-eu1id
-eu1in1
-e4uk
-1eukal
+eu1in
+1euk
eu2kÃĪ
-eulan2
-euland3
-eu3l2e
-eul2i
-2e1um
+e1um
e3um.
-eu3m4a
e3umb
-e3umf
e3uml
-e3um2s1
-eum5st
-e3umw
+e3um2s
+eum4sc
+eums1p
+eum3st
2eun
-eu2na
eun2e
eu4nei
+eun4er
e3un2g
eu2nio
-eu4nis
-eunk2
eun3ka
eu1o2
-eu1p
-e1up.
-eu3p2f
-e3upg
-eu4r1an
-eu4r3ast
-eura3t
-eu2rau
-eur1c
-e2ure
-euren2
-eu4rens
-eur4er
-eur3f4
+eu3p2
+e2u3r2e
1euro
-2eus
-e3usar
-eusch4o
-eus2i
-eu4sk
+eu2rys
+eu4sis
eu3sp
eust4
eu1sta
eu1sto
-eu1s4tr
+eu1str
2eut
-eut2e
eut2h
-3eu3tha
-eut2i
-eu5t2o
-eut6scha
eut6schn
-eut6schr
2eux
-eu2za
eu2zo
eu2z1w
e3Þ
-e1v
-e2vak
-e3var
-eva4s3
-2ev2e
-eve5ri
-evie3le
-2e3vor
+2e1v
+e2vela
+e2vent
+4ever
+eve5r2i
+e3vo
e1w
+2ewa
+e3wÃĪ
ewÃĪ2s
+2ewe
e2we.
-ewei4sc
-ewert4
-ewer3te
+ewinde3
e3wir
ewi2s
e3wit
+ew2s
2ex.
-1exam
ex3at
-2exc
-2exd
-e2xel
+1e2xem
ex1er
-2exes
e1xi
-2exik
-e2xil
+2exie
e2x1in
-e3xio
1exis
ex3l
-1exp
-2expu
-2exs
+3exp
2ext.
-2ex2ta
ex2tin
-1extr
-2extu
-2extv
+ex2tu
2exu
-e2xum
-2e1xy
-2ey1
-eyl2
-ey2n
-ey3no
+2e3xy
+ey1
+ey4n
eys4
e1z
e3z2a
-ez2ÃĪ
e2z1enn
e3zi
ezi2s
-e3z2o
ez2w
-ez3z2
ÃĐ1b
ÃĐ1c
ÃĐ1g
-ÃĐgi2
ÃĐ1h
-ÃĐ1l2
+ÃĐ1l
ÃĐlu2
-ÃĐ1m2
-ÃĐ1n
ÃĐ1o
ÃĐ1p
-ÃĐ1r2
+ÃĐ1r
ÃĐ1s
-ÃĐsi2s
-ÃĐ1t
+ÃĐ1t2
ÃĐ1u2
ÃĐ1v
ÃĐ1z2
ÃĻ1c
ÃĻ1m
-ÃĻne1
-ÃĻnes4
+ÃĻ1n
ÃĻ1r
-1ÃŦn
-ÃŦ1t
Ê1p
Ê4t
1fa
fab4
-2f1ab5b
+f1abe
fa2ben
-2fabf
-2fabg
-2f1a2b5l
-2fabn
-3f2abr
-2f1ab5s
-2fabw
+2f1a2bl
+fab5s
fa4cheb
-fa4chel
fa2ch1i
fa2cho
-fach3s4p
-fa2dan
-fa2del
f1ader
-fa2di
fa2dr
-fa3e
-fah6l5ent
-3fahre
-5fahrt
-fai3b
-f1a2ka
+f4ah
+faib4
fa2ke
-f3aktio
-f4akto
-3f2aku
-fa3la
-fa3le
+f2al
+fa3l2a
fal2kl
-fal2l1a
-fal4l3ei
-fall5ent
-fal6lerk
-faller6s
+fal6l5er6k
fal6scha
fal6schl
fal6schm
-fal2tr
-fa2mei
-f1amp
+fal3te
f1amt
-3f2an.
-fa2nar
-fand2a
-f2anf
-fan2ga
+2fanb
+2fanf
fan2gr
-2f1an3k
+2f1ank
2fanl
-4fann
f1anp
2fanr
+fan3s
2fanw
-2f1an3z
-2f1a2p
+f1an3z
+2f1ap
f2ar
-far2b1a
-far4bel
-far4b3er
-far4bin
-farb1l
-far2bo
-far2b3r
-far2b3u
-f3arc
-3fa5ri
-far2r1a
+far2br
+farb3s
+2f3arc
+3fari
farr3s
-2f3art
+f3art
2f3arz
fa3s4a
fa3sh
-fa2st
-2f1astr
-fa2ß
f3at
-f4at.
fa2to
-f4ats
2f1auf
f3aug
-fau2s
f1ausb
-faus4t3r
3f4av
fa2xa
1fÃĪ
-3fÃĪ1c
-fÃĪh4rin
-fÃĪh2ru
+fÃĪ1c
+fÃĪh2r1u
f1ÃĪlte
-2fÃĪq
-3fÃĪrb
2f1ÃĪrm
-2fÃĪrz
-fÃĪsser4
-fÃĪs6serk
-fÃĪs6serw
+f1ÃĪrz
fÃĪ2ßer
-2f1ÃĪtz
-2fÃĪug
-2fÃĪx
-4f1b4
-fbau1
-fber2
+2f1b2
2f1c
-f3ch
2f3d4
-fdien2
+fdie2
1fe
-3fe.
featu4
fe2c
f2ech
fe3che
-fe2del
+2f1eck
fe2dr
-fe2e1i
-feein5
+fe2ei
fe1em
-2f1e2he
-fehle2
+fef4l
feh4lei
-f2eie
-f2eind
+f4eie
2f1eing
-fe3ini
-fe3ins.
-fei4nu
+4f1einh
+fe1ini
2f1einw
f1eis
-fek4tin
-fe2l3a2
-fe2l1ÃĪ
-fel2da
-felde4m
-feld6erh
+fek2ta
+fe2l1a
+fel4da
fel2dr
2fe2lek
-2felem
fe2l1er
fe2les
+fel4lei
fe2l1o
-fel4s3oh
+fel4soh
fels2t
-felt4
-6fel6tern
+fel3t4
f2em.
-2femb
fem4m
2femp
-fen3a
+fen3a2
fe2nÃĪ
-fend2
-4fenerg
-fe2ni
fe2no
fen3s2a
-fen5s2c
+fens2c
fenst2
f1ent
-fen3t2a
-2f3entf
-f2enti
-4fentla
-f2ento
-2f3entw
-4f3entz
3fep
-fe2pi
f2er.
fe1ra
-fe2rab
-fer3a2d
-fe2ral
+fer2an
fe4rang
-fer4ant
-fe4ranz
+fe4r3anz
fe2rau
fe2r1ÃĪ
-2ferd.
-fer3da
-fer3d2e3
+ferde3
f2ere
-fe2r1e2b
-fe2rec
-3fer2ei
-4f3ereig
-fer3eis
-f4erel
-fer3ell
-fe4rer4g
-fer4fah
-fer4fol
-ferg4
-f4ergr
-feri2d
-ferie4n3
-feri4on
-4fer4leb
-f2ern.
-fer4nei
-fe2rÃķ
+fer2er
+fer3erz
+f1erfa
+fe2rid
+3ferk
+f2erl.
+4ferneu
+fe1ro
f4erpa
-f4erpf
-f4erpl
-f4erra
-fer4reg
-ferri2
f2ers.
f2ert
-fert4r
-f2erz
-fess2e
+f1erw
+fer8zeuge
fe2st
-fest3a4b
-fest3an
+fest1a
fest3ei
-fes4tel
-fes4t1o
-fes4t3r
-2f1e2ta
+2f1eta
fe4tag
3fete
-fe2th
-fet4t3a
-fetti3s
-2feu.
-feuer3Ãķ
+fet2t3a
+feuer3e
+feu4ru
3few
-2f1ex
-fe1y2
+f1ex
+2fexp
3fez
1fÃĐ
-4f1f
-ffab6s
-ff1a2d
-f3f2ak
+2f1f
ff3ar
-f3fas
-ffa2t
+ff4art
ff1au
-f2f1e2b
+ff2e
ffe2e
-f2f1ef
-f2f1ei
-ffe3in.
-f5fek
-ff1e2m
-f2femi
-ff2en
-ff3erle
+f2f3ef
+ff3ei
+ffe1in
+ffe2m
+f2f3emi
+ff4en
+f2fex
fff4
-ffi3k
-f2fim
-ffin3s
-ff1lag
-ff3le
+ff3lag
ff3li
+f3flu
f3flÞ
-ffo2r
-ff1ox
f3f4rÃĪ
-ff3ro
-ffs2am
-ff2s1p
-ffs3tie
-ffs3tut
-ff3stÞ
-ff3t2
-ffus3s
-f2fy
+ff2s
+ffs3tan
4f3g2
-fgeb2
fge3s
-fglim2
-4f3h2
+2f1h2
1fi
3fi.
-fi4ak
-fi2ar
fi3at
-fid4
-fi2do
-f2ie
-fi2e1i
+fid2
fien3
fi1er2f
-fi2gr
-fi2k1as
-fi2kel
fi2kin
-fi2kn
-fi2k1o4
-fi4k3r
-f2il
+fi3kl
+fik1o2
+fi2kob
+fi2kr
fi2l1an
+fil4auf
fil3d
fi2les
-fil2et
filg4
fi3li
fi4lin
fil2ip
-fil2ma
-fil2mÃĪ
-fil4med
-fil4mei
-fi2lo
-2fimp
-3f2in2a
-fin2e
-2f1inf
-fing2
-fing4s4
+f2ina
+fing4s
fi3ni
-f2ink
fin2s
fin3sc
-fin3sti
+fin3sp
2f1int
fi2o
fi3ol
fi2r
fi3ra
fi4re
-fir3me
-fi3s2a
-fi4sch3a
-fi6schei
+3fis
+fis2a
+fisch3a
fisch3o
-fi4schr
-fi4sch3w
-fi3s2h
-2f1iso
+fisch3w
fis2p
-fi2s3t
-fite2
-fi2tin
+fi2st
fit1o2
-fi4tor
-five4
-fi2xel
-fi2za
+fi2tor
+fi3tu
+3fiz
2f1j
-3f2jo
4f1k4
-fka4t3
f2l2
2fl.
f3lad
-f5land
-f4lans
+flan3d
f3lap
-f4lasc
-f3lats
-flauma4
1flÃĪ
3f4lÃĪc
-4flÃĪd
-2flÃĪh
-2f3lÃĪn
-2flÃĪr
+2f5lÃĪd
+f3lÃĪn
2f3lÃĪu
-f5le.
2f3leb
-f4lee
-2f5lein
-flek3
-flekt2
+2f3lein
f3ler
-f4lex
f3li.
3f4lim
-f3lind
fli4ne
-f3ling
-2f3lins
2f5lon
1f4lop
-1floß
1f4lot
flo2w
f3lÃķ
-4flÃķf
-f4lÃķg
-3f4luc
-f3luf
+4f5lÃķf
1f4lug
-1f4luss
-f4lut
-flut1o
+flu4ger
f4lÞ
f5lÞm
-fly1
-4f3m2
-fma5che
+2f1m2
fma2d
-4f3n2
+2f3n2
fni2s
1fo
-f1ob
-fo2be
-2fober
fob2l
2f1o2f
-5foli3
+foli3
+fol2k1
fo2na
-fo4nan
fon3au
-fon3dr
-fo4n3in
-fo2nop
-fons4
+fon2e
fo2nu
2f1op
+fo1ra
4f3org
+fo3rin
3form
for4m3a4g
-for4mas
-for4m3ei
-for4min
forni7er.
-for6schl
for4st
-for4t3ei
-for4ter
-for2t1h
-for2t3r
-fort3s2
+fort3
+for4tei
+for2th
+for2t1r
for3tu
-for2u
-fot4r
+f1o2x
1fÃķ
2fÃķ2f
2f1Ãķk
-4f1Ãķl
-fÃķr4s5
-4f3p4
+2f1Ãķl
+fÃķr2s
+4f1p2
2f1q
-f2r4
-f3ra.
+f2r2
+f4rac
frach6tr
-2f3rad
-2f3rah
+2f5rad
fra4m
f3rand
f5rap
-fras3ta
-f3rat
-1frau.
-f3rauc
-2frÃĪd
1f4rÃĪn
2fre.
f3rec
f3red
-2fref
-f4rei.
+2freg
f3reic
-f4reie
-frei1f
-f4reig
-frei3k2
-2frein
-2frek
-2f3rep
-2frest
+freik2
+frein2
+f3rep
3f4reu
2f3ric
-fricht6e
fri3d
fri2e
2frig
-f4ri3k
-f3rip
1fris
f4risc
-f4rist
-2f3roc
-2frol
-1f4ro2n
-fro4n1a
-f4rop
+f3roc
+1f4ron
+fro2na
fro2s
f3rot
-frÃķs2
f3ru
-f4ruc
f3rÞ
4f1s
-f2s1al
-f2sa2n
-fs3ane
-f4s3ar
-f2s1a2s
-fsa2t
-fs3ate
+fs1all
+fs4amm
+f2san
+fs3ar
+f2s1as
+f2sauf
+f2saus
f2saut
-fs2ÃĪn
f3sc
-f4sca
f4sce
f4schan
f4schef
-f4schro
-f4scr
-f2s1e2b
-fse2ei
+fs4co
+fs1e2b
f4s1ehr
-fse2n
-fs1en1e
+f2s1em
f2s1ent
f2s1er
fse4t
-f2s1eta
-f2s1i4d
-f3s2ky
+f4s1eta
+f3si
+f2si2d
+f3s2kie
f2s1o2
-f3soh
-f3sol
-f3spann
+f3span
f2s1pas
+fs1pen
f2sph
+f3spi
f3s2pl
f3s2por
+fs1pr
f2spre
+fs2pri
f2spro
-fs2pul
+fs2pru
fs3s4
fs2t
-fst2a
fs3tak
f2stas
-f3stat
-fs3tÃĪt
-f4stÃĪti
-f3stel
+f4s3tÃĪti
+f3stei
+f3s4tel
f3stern
fs3th
f2stip
-fs4tol
-fs4tor
-fst4r
+f3st4r
f4s3tres
fs3trÞ
-f4stÞte
+f3stÞ
+f4s3tÞte
f2s1un
f3sy
4f1t
f4ta.
+f2tab
ft1a2be
-ft1abl
ft1af
-ft2ag
-ft1ala
+f2t1al
ft1an
-f2t1ap
-ft1a2r
-ft3att
+ft1ar
+f3tat
f2t1ÃĪu
-fte2c
-ft1eck
-ft1edi
-ft1eh
-fte2he
+ft1e2h
ft1eig
ft1ein
ft1eis
-ft1eli
-fte3ma
-ft1emi
f4t1ent
-ft3erfÞ
-ft1erk
-f2t1erl
-f2t1erz
-f2t1e2ti
-f2t1ex
-f2t1h
-f4t3hei
+f4t1e4ti
+f2th
+f4thei
+ft3ho
f2t1id
-f3tik
-f2tim
-f2t1in
-ft2ing
-fto2
-f2t1of
+ft1op
f2t3ot
-f3t4ran
-f2t3res
-f3treu
-ft4rit
-ft3ro
-ft3ruh
+f3tÃķ
+f2t3ro
+f2trÃķ
+f3t4ru
ft2s1
+ftsa4g
ft4sam
ft3s2c
ft4sche
-ftse2
+ftse4
ft4seh
-ftsen1
ft3st
-ft4staf
-fts3tÃĪt
-ft4stei
-ft4stem
-ft6stier
-ft6s5treu
-ftstro4
-ft4stru
+ft4s3tan
+ft4s3tÃĪ
+fts2ti
+ft4stri
f2tum
-ft1urk
ft1url
f3tÞ
ftwa4
-ftwa6r
ft3z2
-ftze3d
1fu
3fuc
3fug
-f2uh
-fuku3
-fulb4
-f1um1
-fu2mei
-f2umm
-fund3er
-fun6derg
-fun6derh
+3f2uh
+f1um
2f1unf
fung4
-2fungl
2f1u2ni
fun2kl
fun2ko
fun2k3r
-fun2ku
2f1unm
-2funr
2funt
f2ur
-furch2
fu4re.
-2f3url
fus2sa
fus2s1p
fus2st
@@ -7105,782 +4441,479 @@ fu2ß1er
3fut
1fÞ
2fÞb
-fÞhl4sc
-fÞn2
fÞ2r
2f1v
-4f1w
-f1y
-4f1z
+2f1w
+1fy
+2f1z
fz2a
fzeiten6
-fzei8t7end
+fzei8tend
fz2Ãķ
-fzu2ga
-fz2w
+fzu3
+fzu4ga
+f3z2w
3ga.
2gabf
-2gabg
-2g1a2b3l
-gab2o
-g1abr
-gab4ri
-2gabsc
-g2abt.
-2gabtr
-ga3bu
-2gabw
+ga2b5l
+gab4r
2gabz
ga1c
-gade2r
-ga3d2i
-gadi4e
-ga2dr
-gae2
+2gadl
+2ga2dr
ga1fl
-5gag.
+ga3ge
+5gai
ga1k
ga2ka
-ga2ku
gal2a
-ga3laf
-ga2lar
-2g1alau
-2g1alb
-2g1alg
-gal3lo
-2g1alp
-2g1alta
-2g1altd
-g1a2lu
-ga2mec
-ga3mel
-gam3ma
-5g4amo
+2g1a2lau
+g1amb
+g4amo
2g1amt
-g1a2na
-2ganal
-gan3d4
-2ganf
-2ganga
+2ganb
+gan3d
4gangeb
gan2gr
-gang4sp
-gan2g1u
-2g1ank
+2ganh
+2g3anku
2ganl
-2ganmu
+g3anla
3g2ano
-ga2nob
-2ganr
-gans2
-g2ans.
-2g1ansi
-2ganst
2ganw
ga1ny
-2g1anz
-ga3pe
-2g1app
-ga1q
3gar.
-g2ara
+2garb
2garc
-3g2ard
-ga3ret
-ga3r2i
-2g3arm
+3gard
+2g1arm
ga3r2o
-gar2s
+3g2ars
2g1arti
ga3ru
2g1arz
-g2as.
ga2sa
-ga4s3al
-ga4sam
-gasche4
-gase2
-ga2sei
-ga2sel
-ga2se4m
+gas3ei
ga2si
ga2sor
-gas3s2
-5g4asse.
-g3asses
-6gassess
-ga2st
+ga3sp
+ga4spe
+ga4spr
+gas3s
+gas4ta
+gas5tan
ga4ste
gas4t3el
-ga4str
-gast3rÃĪ
-ga3t2a
-2gatm
+gat2a
+2g1atm
gat4r
gau1c
2g1auf
2g3aug
g2auk
-gau5ne
-2g1aus
+g1aus
2g1aut
-ga3z
2g1ÃĪp
-gÃĪr3th
-2gÃĪrz
+2g1ÃĪrz
+gÃĪs5
gÃĪ4u
-2g5b4
+2g1b2
gber2
gbi2
gby4t
2g1c
2gd
g1da
-g3d2ad
-gda3de
-g2d1ak
-g2d1an
-g2d1ar
g2d1au
-g1dÃĪ1
-g2dei4
-gd1els
-g2dent
g2d1er
-g2d1et
-g2d1in
+gd1in
g1do
-g2dop
g1dÃķ
-g1dr
-gd3re
-gd3ru
+gd3r
gd3s2
gdt4
+gd1ur
+1ge
ge3a2
-ge4ate
geb2a
+gebe4am
ge3ble
-geb4lin
-geb4lo
-gebot4
-3gebÞ
+geb4r
ge1c
-ge3ck
+ged4
ge1e2
ge3ec
ge2es
-geest3
-ge5fa
-3gefÃĪ
-4g1eff
-gef4l
-gef4r
-ge3fu
-g4eg
-gege2n1
-gegene4
-gegen3s4
+gef4
ge3g2l
-geg4r
-geher3l
-ge3ho
-2g1eid
-ge4ie2
+ge3ha
ge4ig
-g2eil
-ge1in1
-ge2inf
-gein4h
-2g1einr
+ge1im
+ge2in.
gein2s
+ge2int
gein2v
ge1ir
-2g1eise
+ge2is
+2g1eise2
gei3sh
-geis4s3c
-gei2st
-geist3r
2gek.
ge4lanz
gelb1r
gel4b3ra
-gelb3s
-gel4den
gelder4
-gel6derh
gel6ders
-ge3lec
-gele5cke
-ge2lef
-2ge2lek
-2gelem
-gelen1
-ge4lene
-gel3ere
-ge4lerk
+ge3le
+2ge4lek
geler3Ãķ
ge4l3ers
-ge2l1ev
-gel3f
-gel1i4m
-gel3la
-gell2i
-gel2Ãķ
+ge4less
+gell2a
+ge3lor
gel3sa
gels2p
gels2t
gel3ste
gel3sz
-gel3ta
-gelt4r
-gel3z2
+gel3t2a
+ge3lÞ
+gelz2
gem2
-ge4ma.
-gem6e
-4g1emp
-ge3mu
-g4en.
+gem4e
+ge3mi
+3gen
ge3na
-ge4n1ac
-ge4nad
-ge4nak
-ge4n3al
+ge4n3ac
ge4nam
-ge4nap
ge4nar
-ge4nat
+gen2as
gen4aug
-4genda.
-gend3in3
-4g3endmo
-gen2d3r
+gen2d1r
+gen1eb
+ge3nec
gen3eid
-gener4f
-4generg
-ge4n3ern
+gen3ern
gen6erwe
gener4z
-ge2nim
-gen3k4
gen3n
-ge2noc
gen4sam
-gen6semb
-gen3sk
gen3sz
-gen3tÃĪ
2gentf
-gen3t2h
-gen5tr
-2gentw
-gen3zw
-ge1oo
-geo2ri
-g2ep4
-ge3pl
-ge3po
+gen3th
+4gentw
+geo2r
+ge1ou
+ge3p4
ge1ra
ge2rab
-ge2rak
-ge2r3al
-ge3rann
-ge4rant
-ge4r3a2r
-ger2as
-2gerdg
-ge3rem
-ge4rene
+4g3ereig
ge4reng
ge4ren4s
ge4r3ent
ger2er
-gerin4d
gerin4f
ger4inn
gerin4t
-4ger4klÃĪ
-g3erlas
-ger5me
ger3no
-2g1ernt
ge1ro
-ge2rob
ge1r2Ãķ
-ger4sat
-4g3er4seh
+ger4sto
ge3r2u
-ge1s2
-g4es.
+g1erwa
+4g3erwer
+g2e1s2
ges3auf
-3ge3sc
-gesch4
-ge6sche.
-ge2s3eb
-4g3e4sel.
ges3elt
ge2s3er
-ge3sha
ge3si
-ge3so
-ge3spa
ges4pi
-ges3se
-ges3s4t
+ges3s2t
gest2
-gest4a
-ge3stak
-ges4tan
-ge3st6e
+ge3ste
ge4s3ter
ges3th
-ges6tier
-ge4s3tur
ge3t2a
-ge4tang
-ge4tant
-g1etap
-ge2thi
-ge5trei
-ge5tri
-ge5t4u
+2getap
+ge5tr
+ge3t4u
2g1e1ul
-ge3unk
-ge1urt
-ge3u4t
-4g1e2x
-2g5f4
-gfi2l
-2g1g
+2g1ex
+2g1f4
+4g1g
gga4t
-g5ge
+g3ge
gge2ne
-gg2l
-g3gla
-g3glo
+g2g3l
+gg4lo
g2g3n
gg4r
-ggs2
2g1h
4gh.
-gh2a
3ghale
gh2e
3g2het
3g2hie
gh1l
3gh2r
-ghs4
-gh3sc
g2hu
gh1w
gi3alo
-gich2
-gicht1
gie3g
gi2e1i
-gi2e3l
-giel2a
-gie5n2e
-gi4eno
-gie3res
+gi2el
+gien2e1
gie1st
gift5s
gi2gu
-gi2kel
-2g1ill
-gi2me.
+gi2m
gi4mes
-gi2met
-2gimp
-2gin2d
+2g1ind
gi3ne
-2g1inf
-2gin4h
+g1inf
+gin2ga
2g1ins
-gin2sa
-2g3int
-2gin2v
-gi2ob
2giok
2g3isel
-git2a
-gitt4e
+gi3t2a
gi3tu
gi4us
2g1j
-4g5k4
-gl2
+4g3k2
4gl.
+gl2a
4g1lab
-2g1lac
-2gladu
+g1lac
+g2lade
2g1lag
-2g1lam
2gland
-gla2s1c
-glas3t4
3g2laub
-2g1lauf
-2glÃĪnd
+4g1lauf
2glÃĪuf
-gl3b
g2l4e
-2g3le.
-3glea
+2gle.
+3gle3a
2g3leb
g3lec
-4g3led
-g3lee
-2g3leg
+g3leg
2gleh
-g4leic
+3gleic
4g3lein
-gleiter8s
glei4t5r
g3len
-4glenk
4g3ler
-glerei4
2gles
-3gles.
g3lese
-g2lia
+g4lia
2glib
3g2lid
-3g2lie
-4g3lieb
+g2lie
2glif
g2lik
-4glil
+2glil
g2lim
-2glin
+4glin
g2lio
2glis
-g2lit
-g3lite
+g3lisc
+3g2lit
g2liz
-g3lize
-g2loa
-g2lob
-g2loc
-2g3loch
-g2lok
+3g2loa
+3g2lob
+4g3loch
+glo3g
+3g4lok
g2lom
-g2lop
-2glorb
-2glos
-g2lot
-2glÃķch
+3g2lop
+g2lor
+3g2lot
2glÃķs
-2glÃķw
2gls
g1lu
2g3luf
-2gluk
-2g3lun
+2glun
+4glus
g2lut
-3g2lÞ
-g3lÞg
-2glw
-3g2ly
+g1lÞg
+g2ly
2g1m2
-gmen4tr
-gmi2s
g1n
2gn.
g2n2a
g4na.
-2gnac
-g4nad
-2g5nah
-gn4al
-gna4l3er3
-2gnanl
+4gnah
+3g4nat
3g2nÃĪ
-2gnb
-2gnc
-2gnd
gn2e
g3neh
-2gn3ent
+2gnel
gne2tr
-gneu1
-2gnf
+2gneu
2gng
-2gnh
g2nie
g2nif
g4nin
-2gnint
-2gni4s3
-gnise2
-2gnk
-2gnl
-2gnm
+2gni2s1
g2no
-3g4non
gno1r
g3not
2gnp
-2gnr
2gns
2gnt
2gnu
3g2num.
g2nÞ
-2gnv
-2gnw
g2ny
2gnz
go4a
goa3li
-g1ob
-gobe3l
-2gobj
-g2ob2l
-gob2s
2g1o2f
2gog
-2g1oh2
-goh3ren
+2g1oh
go1i
gol2a
-gol2da
-gol2fr
-3gon.
-go4nat
-gon2e
-3gons
-3g2opa
-gopf4
-go2pos
-2gopt
-gor2a
+2gonis
+2g1ope
+2g1opf
+g2o1ra
2g1ord
-2g1org
-go2si
-go2s3p
-go1ste
-2g1osz
-go3t2h
-got6terb
+2gorg
+go2s1
+go3st
+go3th
got6t5erg
-gotte4s
-3gou
go1y
-gÃķ2f
-g1Ãķl
-3gÃķt
-2g3p4
+2g1p2
2g1q
g2r4
-g4rab
-gra2ba
gra2bi
-gra4bl
+gra2bl
2g3radl
2g3rah
-2g3rak
-gram1
+4g3rak
grammen6
gram8m7end
-gram6mer
-g3rand.
-2gra2r
-grar1e
-gra4s3a
-gra4sh
-gra4sp
-gra2st
-2g3raub
grau3f
-2graum
-grau3sk
-2grÃĪd
grÃĪs1c
-g3rÃĪu
+2g3rÃĪu
2g5re.
g4reb
2g3rec
-g3rede
+2g3rede
g4re2e
-2g3ref
-gre2fr
-2grege
2g3reic
-grei4fr
-2g3reih
-g3rein
+2greim
+2g3rein
g3reit
-3g4rem
-3gren
-4g3renn
+g4rem
+2g3renn
gre3no
gren6z5ei
-grenz3w
g4rer
-2grese
-gres6ser6
g3ret
g3rev
2g3ric
gri2e
-2g3riem
g3riese
+3grif
2grig
-gril4la
-4g3ring
-4g3rinn
-gro2b3a
-gro3ber
+2g3ring
gro2bl
-gro2b3r
2groc
2groh
-2g3rol
+gron4
2g3rose
-g4ross
gros6sel
-g4rot
+gro4u
2grÃķh
-2gruf.
-g4ruft
-2g3ruh
-g3rui
+g4ruf
+2g3rui
2g3rum
grun2g
-3grup
-3grus
-3gruß
-2g3rut
+3g4rup
+2grut
2g3rÞc
+3g4rÞn
4g2s1
-gs3a2b
-g4sac
-g5sack
gsa2d
-gs3a2k
+g4s3a2k
g3sal
-g4s3alb
-g4sall
-g4salm
+gs3all
g4salt
-gs2am
-g4s3ama
-gs3amb
-g4s3amp
-gs3a4p
-gs3a2r
-g3sat
-gsau2g
-gsau4r
-gsa2v
-g3sÃĪu
+gs3ama
+gs3an
+gs3ar
g3s2c
g4sca
g4s3ce
gsch4
g4schef
-gs4chi
g4sco
+g4s3cr
gse2
-gs2e3h
-gs4eil
-gse4kl
+gse3e
+gs2eh
+g3s2eil
g3sel.
-g4sela
g3seln
-gs3em
gsen1
-g4s3ent
-g4s3er
-g3sere
-gser1i
-g4se4s
+gs3er
+gser5f
+gs5erk
gse4t
-g4seu
-gsfi2l
-gsgene4
-gs3ha
+g4seta
gsi2d
-gs3i2k
g3sil
-gs3io
-g4s3ita
-gs2ki1e
-gs3kr
+g4s3l
gso2
-g4s3o4b
-g3sol
-gs4on
-g4s3op
-g5s4orge
-gs4pant
-g4s3pas
-g3spei
+gsp4
g3s2pek
-g3s2pi
-g5s6pie
+g3spi
+gs4pie
+g4spin
g4s3pl
-g5s6port.
-g4s3pru
+g3s2por
+g4spru
gsrat4
gsrÞ2c
-gs3s4
+gs5s4
gs3ta
-g3s4tad
-g4stag
g3s4tan
-g4stanz
-g3star
-gs4tati
-gs3tÃĪ
-g3steh
-g3s4tein
-g3st2el
-gs4tell
-gste2r
+g3s4tar
+g3s4tati
+g4s3tÃĪ
+g5stÃĪm
+g3stel
+gst3ent
gst3err
g1steu
-gs2thy
-g3stif
-g3stil
-g3stim
+gst2he
g3stir
g3sto
-g4stoch
-g4stod
-g4stor
-gs3tÃķ
-gs4tÃķr
+g4stol
+gs3top
+g4s3tor
+g3stÃķ
gs3tr
gst4ra
-gs4tras
+g3s4tras
gs4trat
gst5reit
-gst4res
-g4streu
-gst3rit
-gst3ros
-g3stun
+gst4ri
+gs4t5rit
+gs4t3ros
+g3stu
+g4stur
gs3tÞ
-gs3un
+g4sw
g3sy
2g1t
g3te
-gtei3s
-gt1h
-gt2hy
-gt2i
+g3ti
gti2m
-g3to
gt4r
-gt4s
+gt2s
g3tÞ
-gu4ale
-gu3am
+1gu
gu1an.
gu1ant
gu1as
@@ -7891,660 +4924,400 @@ gu2e
guet4
2g1u2f
2g1uh
-gu3ins
+gu1ins
gu1is
-gum2e
3gumm
-gummi1
-gun2e
2g1unf
+g2ung.
gunge2
4gungew
-2gungl
-2g1u2ni
+2g1ungl
2g3unk
-2gunr
-gun2s
-2gunt
-3gur
-gure4
-4g1url
-gur2t3h
-gur2tr
+g2un4s
+2gunt2
+2g1url
gurt3s
-guru1
-gu2s
-gu4s3a
-gu3sc
+gu2s3a
guschi5
-gu3se
-guss1o
+gus4ser
gus2sp
gus2st
gu4st
-gust3a4b
-gus3te
-gus6t5en6d
-gus6terl
-gus4tr
gu2t
gut1a
-gut3er4h
-gut1h
-gut2s3p
+gu4t3erh
+gut3h
2gÞb
-3gÞr3
-gÞ2s3
+gÞr1
+gÞs3
2g1v
2g1w
-gy3n
-gy4na
2g3z2
-gzeu4gi
-2ha.
+3haa
hab2a
hab2e
-h3abf
-hab2i
-h1ablu
2habn
-h1a2br
-h1abs
-2habw
-ha4ch3en
+hab2st
ha2cho
-hacks4
-2hada
ha2del
-hade2n
+ha4din
h1adle
-h1a2dr
-ha3dri
-2hae
-ha3el
-ha4far
-haf2e
-h1affÃĪ
haf3f4l
-h2aft
-haf4to
-haf2tr
-haf4tre
haft4s3p
-hag2a
-h2agg
h1ah
-ha3ha
h2ahs
h2ai
-3hai.
+ha3ia
h2aj
2haka
ha1kl
2h2al.
-ha3l2al
halan4c
-h1a2lar
ha2lau
hal2ba
-hal4bel
-hal4bin
-hal2b3r
-hal2bu
+hal4bei
+hal4b3r
2hale
-2halh
-hal2i
-hal2l1a
-hal6lere
-haller6f
-hal6lerg
-ha3lo
-4halp
-hal4sk
-hal2sp
-hal4tal
-hal4tei
-hal2t3r
-hamot4
-2h1amt
+hal2la
+hal6lerf
+h1alp
+hal2st
+hal4t5r
+h1amt
h2an.
-2hana
-ha2nal
-ha2nan
-han2au
2hanb
-h2anbe
h2and
han2da
-han4d3er
-han2d3r
hand3s
-ha2nem
-han2f1
-han6g5end
-han4gro
-han2k1
-2hanl
-2hano
+han2kr
+h4ann
2hanr
-h1ansc
-2hanz
-2h1ap
-3h2ape
+2hant
+h1ap
ha2pl
-ha2po
ha2pr
h2a3ra
-ha4rab
2harb
-2harc
h2ard
-har2fr
h1arm.
har3ma
-h2arme
har4me.
-har4ne
-ha2rom
-2hars
-hart4e
+har4mes
har2th
h1arti
-har4tr
-har2za
h2as
-2has.
2ha3sa
-has4c
-has2h3
-has4sa
-hasser4
-has4s3t
-ha2str
-h1a2ß
-ha2ta
-hat2i
-h3atl
-ha2t3r
-2hats
+hasi1
hat5t2
-h3attr
-h1audi
-h1aufb
hau5f6lie
-hau3f4lo
2h1aufm
-h1aufs
-h3au3g2
h1aukt
hau2sa
hau4san
-hau2s1c
-h2ause
-hau4sel
-hau6s5ent
+hau2sc
hau4spa
-hau4spe
-haussen6
-hau4sur
-hau2t1a
-hau4t3r
-ha2ve.
-hÃĪde2
+hau5stei
+hau6terk
+2hauto
+hau2tr
h1ÃĪff
-2hÃĪi
-hÃĪ2kl
-2hÃĪrz
+h1ÃĪrz
hÃĪ6s5chen
-2h1ÃĪst
-2hÃĪug
hÃĪu2s1c
hÃĪ3usp
-2h3b4
-hba4ras
-hber2e
+2h3b2
+hba2r3a
2h1c
-2h3d2
+2h3d4
hdan2
2hea
he2ad
he3be
-heb3eis
-he2b3l
+he4b1ei
+he2bl
he3br
-he3bu
+he1ch
he3ch2e
-he3chi
-he1cho
-h3echs
+h3echt
he3cke
hed2g
-he2dit
-he1e4m
-hee2n
-hee2s
-he1e2t
-h2ef.
+he3di
+he2e3l
+hee4s
he2fan
-he2fau
+he2fÃĪ
he2f1ei
-he3f2em
hef3erm
2heff
he2fid
-he4f3in4g
-he2f5le
-2hefr
-hef4ra
-he2fre
-3heft
+he4f3ing
+he2f3l
+he2fr
+he3fri
he2fu
he3gu
-he2hel
-hei4a
h4eib
h1eie
h1eif
h1eig
he2im
-hei4mal
-hei4man
-hei4mar
-hei4mei
heim3p
hei4mu
2hein
-hei4na
heine2
-hei4n3eb
-hei6nene
-hei4n3er
-h3eintr
-2heio
-2he1ism
+4heio
+he1ism
he1ist
-h2eit
heit4s3
h1eiw
-hekt3a
-he2la
-he3lag
-hel1an
-hel3au
+he2l3a
hel1ec
-he2lek
-h3elem
-he2len
-h2elf
+h3e2lek
+he3len
+hel3ers
he3li
-hell2a
hel4l3au
hel4mei
he3lo
he4lof
-hel2or
he2lÃķ
-4helt
-h4em.
-2hema
-hem2b
-1hemd
-2heme2
-h2e3m2i
-he4mia
-h3e4miss
-1hemm
-2h3emp
+3hemd
+he3mi
+3hemm
+4h3emp
h2en.
-he4n3a2
+he4na2
+hen3a4g
he2nÃĪ
-hen3ebe
-henen1
+hend2s
+he2n1e2b
hen3end
-he4nene
-he4nens
hen3erg
-he4nerm
-he2n1e4t
-2henga
-hen4gag
-hen4kan
-hen4kau
-2heno
-heno3t
-hen4sem
+he2net
+heng2
+2heni
+he2no
+hen3sk
henst2
hen3str
-hent2a
-hen3te
-hen4ter
hen5tr
-hen4tri
h1ents
2h3entw
-h3entz
-he4n3u
-hen3z2
-2he2o
+hen3z
+4he2o
he3on
he3op
he3pa
he3ph
-h1e2pi
-hept2
h2er.
her3a2b
-he2rad
+he2ral
2herap
-he4r3a2r
-herau2
-herb2
-he2r1e2b
+he3ras
+herb1r
+her4b3ra
he4reck
-her4eif
-4he3reig
-he6reis.
-her7eises
+4hereig
+he4r3eis
he2rel
-he4rene
-he6rersc
he4rerw
-h1erfo
-her4fol
-6hergebn
-2herif
-herin4d
+h1er2fo
+h3erfÞ
+herg2
+her2ho
+4herif
herin4f
he6rin6nu
herin4s
+herin8ter
h1erke
-her4klÃĪ
-h5er6kran
-h6erlad
+h3erlau
2herm
he3ro
-he4r3o2b
-he4rof
-he4rop
-he4rot
-h1erÃķr
-hert4
+he4r3o4b
+h1erÃķ
+hert2
her3th
-her3um
-her4zap
-her6zeng
-h3erzeu
her2z1w
-he3s4a
-2hese
-he3si
-he3s2p
-hes6tÃĪ
+he1sta
+he2s5tr
he2tap
-he3tÃĪ
heter2
he3th
het2i
he3t4s
-he2u
+h2e2u
heu3g
-he3unt
3heusc
he3x
-he1x2a
-2hexp
-hey2
-he1ye
+he1x4a
+he1y2
1hÃĻ
2h3f4
-hfaller6
-hfan2
-hfel2l3
+hfell1
+hfel6ler
hfi2s
-hflei2
-2h3g4
-hga2s1
+2h3g2
+hget4
2h1h2
hhoh2
4hi.
2hia
-hi2ar
-h1iat
-2hic
+hi2ac
+hi2ang
+h2ias
hi1ce
-hich6t5er
-hicht6sp
-hi3d
-hid4e
-hi4dio
-2hido
+hich6ter
+2hi3d
+h2ide
+h1i4di
hi2e
hi3ens
-hie4rei
-hier3i
+hier1i
hie4rin
hiers2
hif3f4r
-hi2k3r
+hi2kr
hi2l3a4
-hile3n2
hil2fr
-h2im
-2hima
-h3i4mit
-h4imm
-h3impe
hi2n
-hi3nak
-hi3nam
-hi3nap
-hi5n2as
-h2inde
-hine2i
+h1indu
hi3nel
-hin2en5
+hin2en
h1inf
h1inh
-2hi3n2i
+hi3n2i
hin3n2
-hi3n2o
+hi3no
hin3s2
-hin2t1a
+hin4t1a
2hio
-hi3ob
hi4on
-hi2p3
-hi4pl
-hips2
-hi4pu
-hi2r
+hi3or
+2hip1
+hip3f
+hi2ph
+hi2pi
+h2i2r
hi3ra
2hi3re
hi3ri
-hir2m1a
-hir2mi
hirn1
hir4ner
+hi3ro
hir2s
-1hirt
-2his.
his2a
-hi4se
-h1i2so
-hi3tac
-hi2tan
-hi2tel
+hi2se
+hi2st
hi1th
-hi3t2i
-hit1r
-hi2tro
-hit3z2e
-hi2v1o
+hi3ti
+2hiu
2h1j
2h1k4
-hkamp2
-h2keu
-hki2n1
-h3kÃķ
2hl
-h4laf
hl2ag
-hla2gr
-hlan4d3a
-hl1ans
+hla2n
hl1anz
h1las
h1lat
h1laut
-h1lay
h3lÃĪche
+h3lÃĪd
+hl1ÃĪr
h1lÃĪs
h1lÃĪu
hlb4
hl3d4
-h3le.
-hle3a
h3leb
-h3led
hle3e
+h3lein
h2leis
-h3leist
-hl1el
h5len.
-hle4nas
-hlenen3
+hl2eng
hl2enn
-h4l3entr
-h4lents
-hl2enz
h3ler
-hle2r3a
-hl4ere
-h2lerg
-hler4hÃķ
-hl2erk
+hle2ra
+h2l1erg
h6l3er4nÃĪ
hle3run
hl1erw
h4lerz
h3les
h4lesi
-h4leud
-hlf4
+h3lex
hlg4
h2lie
-h3lied
h2lif
h2lim
hl1ind
-hling4s3
h2lip
h2lis
-h2lit1
-hl3l2
-hl3m2
+h3list
+h2lit
h2lo
-hl1ob
h3loc
-hl1o2f
-h3log
+hl1of
+hl1op
h4lor
-hlo2ra
-h3los.
+hlo2re
h3losi
-h4loss
-hlos4st
h2lÃķs
-hl4sar
-hl2ser
-hl3ska
-hl3s2lo
-hl5s6tern
-hls3tie
-hl5str
-hl2su
+hl3sku
+hl3slo
+hlst4
+hl3str
hl3t2
h3luf
h3luk
h3lumpe
h1lÞf
-hlz2
2h1m
-hm2a
-hm3abl
+h2mab
h3mad
h3mag
-h3mak
h3man
-h2mant
h3mar
-h4m3arc
h3mÃĪ
h4mÃĪc
h4mÃĪh
h4mÃĪl
-hm2e
h3me.
-h3med
-hme1e4
-hmeer4s
-h3mein
-h3meld
-hme3le
+hme1e
+hme1in
h3men
hmen2s
-hme4ran
-hme4rei
-hme1s2t
-h3mex
-hmi2e
-h3mind
-h3mini
-h3minz
-h3mirr
+hme2ra
h2mo
-h3mop
-h3mot
-h3m2Ãķ
-h4mÃķl
-hm3p2
+h4mon
+h3mÃķ
+hm3p4
hm2s
hm3sa
hms1p
h2mu
h3mul
-hmut4s
2hn
h2na
hna2c
-h3nag
h3nam
-h4nar
-hn3a2te
-h4natt
+hn1an
h3nau.
h2nÃĪ
hn1ÃĪh
-h3nÃĪs
+hn1ÃĪr
hn3d4
hn2e
hne3b
-hne2e3
-hn3eff
+hne2e
hn3eig
hn3ein
h2nel
-hne4n
-hn4eng
+hne4n1
hne4pf
h3ner
-hner4de
hner3ei
-h4n3e2ro
-h4n3ersa
+h4nersa
hn3ex
-hn3f4
-hnflei4
hnhof8stras
h2nic
h2nid
@@ -8552,149 +5325,104 @@ h2nie
hn1im
hn1in
h2nip
-hni4sa
-hnk4
-hnno2
-h2no2r
-hnra2
-hn3sa
-hn3s2p
-hnst2
-hns4to
+hn3k4
+h2nor
+hn3s2k
hnsuch4
+hn3ti
hnts2
+h1nu
+h2nuc
h2nul
-h2n1unf
-hn3z2
-ho4ar
-ho3bern
-ho2b3l
+hn1unf
+h3nunge
+ho2bl
ho2ch3
-ho4cha
-hoche2
ho2cka
ho6ckerl
hock3t
2hod
-2ho2e
-hoe3n
-ho3er
-ho2f1a2
-ho2fÃĪ
-ho2fed
-ho2feu
-hof3f4a
-ho2f3l
-ho2f1o
+hoe2
+ho2ef
+ho2fa
+hof3fa
ho2f3r
-ho2fu
2hoi
-ho2l1a2
-hol3ar
-1hole
+hol1au
+3hole
ho2l1ei
-ho2lem
hol3g4
-hol3k
-holl4
-hol3s
-2holy
-h3olym
-1holz
+ho4lor
+3hol3s
+h1o2ly
+3holz
hol6zene
hom2e
-ho2me.
ho2mec
ho2med
h2on
-hon2er
-ho1on
-hoo2r
+hond4
+hono3
+2hoo
2hop
ho1ra
-h1o2r2an
-ho2rau
-h1or3d
-2hore
-ho4rens
-ho3ret
+hor3d
2h1org
-hor3ta
-hor4ter
-h1ortu
-h2os.
-hose2
-ho2sei
+ho4sei
ho3sl
-ho4sla
ho2sp
-ho3spr
-ho4ßene
+ho4st
2hot.
ho3th
-2hotr
-2hot3s2
-1hou
-hou4s
+hotli4
+2hots2
+3hov
2ho2w1
-h1ox
+h1o2x
ho1y2
1h2Ãķ
-2hÃķ.
hÃķ2c
hÃķ3ck
-5hÃķhe
-2hÃķ2s1
+3hÃķhe
+h4Ãķr
+hÃķ2s1
h3Ãķst
-2h3p4
+2h3p2
h1q
2hr
hra2b
-hr3a2c
+hr1ac
hr3ad
-hr1a2g
-h1r4ah
h1rai
h1rane
-hr3ap
h3rÃĪu
-hrb4
hr1c
hr3d
h2rec
-h3r2ech
+h3rech
h3red
h3ref
-hr3eff
-h2r1eh
h4rei.
hrei4ba
-hrei4br
h3reic
-h3reif
-h4r3eig
-hr4eini
-h4reinl
-hrei3th
-hreli1
+h4r1eig
+h3rel
+h3ren
h3rep
-hrer6geb
-hr2erh
+hr4erbe
+hr4erbu
+hr2erg
hr2erk
-h4rerla
+h4rer4la
+h3rerle
h6rer6leb
+hr6erlei
hr2erm
-hrer3s
-hrer4sa
-hr2erw
hr2erz
-h3re2s3
-hress2
-hrest2
+h3re2s1
hre2t
h2r1eta
-h2r1eu
-h2rev
+h3rev
hrg2
h2ri
h3ric
@@ -8702,49 +5430,43 @@ h4rick
hri4e
h3riesl
h3rin
-h4r1ind
-hr1int
+h4rinh
+hr1ins
h4rist
-h5ritter
hr3l
-hr3m2
-h3rog
+hrm2
+h2rob
+h2rof
h3roh
-h1ro2l
-h4romat
+h3rol
h4rome
h4romi
-h4romo
h4ron
-h1ropa
-hro4r
+h2ror
h3rou
-h3rÃķ2s
hrr4
-hr4s1ac
-hr4s3and
+hr2s1ac
+hr4s3an
+hr2s3au
hr3schl
-hr2s1em
-hr2sen
-hr2s1er
-hr2set
-hr4sh
-hr2sin
+hr2s1en
+hr2ser
+hr4set
+hr4s1in
hrs3k
-hrs3l
hr4s1of
-hrst2
hr2su
-hr2tab
+hr4sw
+hr2t5ab
hr2tan
-hr2te2l
hr2th
-hr2top
-hrt3ric
-hrt2s
+hr2tor
+hrt3ri
+hr2tro
+hrt2sa
+hrt2se
h3ruh
hr1ums
-h3rut
h3rÞ
h4rÞb
h4ry
@@ -8752,665 +5474,401 @@ hrz2
4hs
h4s3acht
h2s1a2d
-h2s1alk
-h2sall
h4samt
h2san
-hs3and
-h2s1as
-h2sath
-h2sato
-h2saud
-h4s3aur
-h2saut
-h2sÃĪh
-h2sÃĪug
+h2sau
+h2s1ÃĪh
h4schan
-hs2cr
-h2s3ec
-hse4e
-h4s1ehr
-h2s1eie
-h4seind
-h6seinst
-h3sele
-hse4lin
-hs1emi
-h4sendw
-hsen5erg
-h2s1ent
-h2s1erf
-hs1erg
-h2serh
-h4serkl
+h2s1ec
+hse4ler
h2s1erl
-hs1ern
-h4sernÃĪ
-hs4erne
-h2serÃķ
-h2s1erw
-h2serz
-h2sex
-h3s2ext
-hsha2k
-h2s1i2d
-hs2im
+h3s2ex
h2s1ing
-h3s4inni
-h4s3ita
-hs2kal
-h3skand
-hs1of
-h2sop
-hs1org
+h2s1o2f
h2spac
-h4s3pani
h2s1par
-h2s1pat
-h3spec
-h3spei
-h3sperb
+h2spel
+h2sper
h2sph
-h3spoi
+hs2por
h2sprÃĪ
h2spro
-hss4
-h1st2a
-hs3tabl
-h3stad
+hss2
+h1sta
h2staf
hst3alt
-h3stan
-hst3arb
+hst2an
h2s3tau
-h2s3tÃĪu
h1stec
-h1stei
-h1stel
-h4stele
+h3stein
+h5stell
h3s4terb
-h3s4tern
+hst2he
h1s2ti
-h2stit
h1sto
-h2stol
h2stor
-h1str
-h4s3treu
-hstro2
-hs3tum
+h1s4tr
+hst3ran
h1stun
h1stÞ
h2s1u
hs2ung
4h1t
ht1a
-h2tab
-hta2bl
-h2ta2d
-ht2ag
-ht4akt.
-ht4akte
-h2tall
+h2tak
+h3t4akt.
+ht2al
h4talo
-h2talp
-h2talt
-h4ta2m
-h2ta2n
+ht3alt
+h4t3a2m
+h2ta4n
ht3ane
-ht2ank
-h2tap
-h2ta2r
-ht2a2s
-h2t3asi
+h3tank
+h3tann
+h2tar
+ht2as
+h2t3ass
h2tasy
-h2t3at
-h3tat.
-h3tate
+h2t3a2t
h2tau
-h3taum
+ht3aug
h4tax
-ht1ÃĪ
-h2tÃĪr
-ht3e4ber
+h2t1ÃĪr
ht1e2c
-hte3cha
-h2t1e2d
-ht1eff
-ht1e2he
+h2t1ef
+ht1eh
+hte2he
h2teif
-h2t1eig
-h4t3eilz
+h4teilz
h2t1eim
ht1ein
h2t1eis
h2t1eke
-h4t3elas
-hte6l5ei.
-h4telek
-h4t3elfe
h4t3elit
-hte4m
-h2t1emi
h2temp
-h4tenga
-h4t3engl
-h4t3enta
h4tentf
-h4tents
+h4t3ents
hter6de.
-hterer6s
-ht3erfo
ht3erfÞ
-h6terfÞl
-h6tergeb
ht3ergr
-hter6gri
-ht1erh
-hter6hÃĪl
-hter8hÃķhu
-h6terleb
+h2t1er2h
+ht5erken
+h4terkl
h6t5erleu
h6terneu
-ht5erspa
-hter8spar
-ht3erst
-h6tersta
-hter6tra
-ht3erwÃĪ
-ht3erze
-h4t1e2se
+h4t3er4re
+h6t5er6spa
+h4t3er4st
+ht6erste
+h2t1erz
+hte2s
+h4t1ese
h4t1ess
-h2teta
-hte4th
+hte3sta
h2t1eu
-h4textr
-h2t1h
+h2t1ex
+h2th
h4thei
-h3thera
-h3thes
-h4tho
-h2t1i2d
+hthe3u
h2t1im
-h2t1i6n3
-ht3ine
-h2t1is
-hti5t2
-htni2
-h2t1ob
-hto4d1
-h2t1o2f
-h4t3oly
-h2tope
-h4tord
-ht3rak
-h3tran
+h2t1in
+hto2
+h2toly
+h2torg
+h3tÃķp
+h4t3rak
ht3rand
-h4t3ras
-ht6rates
+h2t3ras
+h2t3rat
ht3rau
h4traub
ht6raume
-ht3rec
-h5treck
-ht3rei
-h2t3res
-ht3ric
-h4t3rieg
-h4t3rin
+h5trec
+h4tref
+ht3reif
+ht3reit
+ht4ri
+h4t5rieg
+h4t5rin
h2t3rol
h2t3ros
-ht3rÃķm
-ht3ru
+ht3rÃķs
+h2t3ru
h2t3rÞ
h4ts
-ht2sah
-ht2sal
-ht4s3a4n
-ht2scr
-ht4sein
-ht2sel
+ht4s3an
ht4s3end
-ht4seng
-htse2r1
-ht4s3eri
-htsha2
-ht3s4hak
-hts3kr
-ht2s1o
+ht2so
ht2sp
-hts3par
-hts3tÃĪt
+ht4spin
+ht3spri
+ht4stab
+hts2ti
hts4tie
-hts5trau
ht4s3tur
ht4s3tÞr
-ht2su
htt4
htti2
-h3tub
-htu2e
h2t1urs
h3tÞ
ht3z2
hu2b1a
-hu2b1ei
-hu4bel
-hu2b1en2
-hu2bi
+hu2b3ei
+hu2b1en
hu2b3l
-hu4b5r
+hu4b3r
hu2bu
hu1c
-hu2fa
-hu2h3a
+hu2h1a
hu2h1i
-h1uhr
-h1uhu
-hu2kÃĪ
-hu2k1in
huko1
huk3t4
-hu2l3a2
-hu4lab
+hu2l3a
hu2lÃĪ
-hule2
-hu2l1eb
-hu2l1ei
-hu2lem
-hu4l3eng
+hu2l3ei
+hu4leng
hu4lent
-hu2l1er
+hu2ler
hu2let
-hu2lid
hu2l1in
-hul3l2
hu2lo
-hu2lÃķ
-hul3s2
hu3m2a
-h1umh
h1ums
hu2n
h1una
-hun3d2e
-hunde3i
-hunde3s
-hun2e
-2hunf
-hung2
-hun3ge
hung4s
-hungsa4
-h1uni
-h1unm
-2hunt
+hu3ni1
h1ups
-2hur
-hur3g2
-hur2t3h
+2h2ur
+hurg2
hu3sa
hu2so
-hus2s3a
-hus3se
-hus4ser4
-hus2s1o
+hus4sa
hus2sp
-hus2st
hu2tab
+hu3t2h
hu2ti
-hu2t1o
-hu2t3r
hut2t
-hut3te
hut4zen
hut4z3er
-hut2zu
h2Þ
-h3Þber
h4Þbs
h3Þbu
-hÞf2
-hÞft1
hÞhne4
hÞs3
2h1v
-hvil2
-2hw2
+hvi2
+hvil4
+2hw
h2wall
hwe1c
h1weib
h1weih
-hweins3
-hwein6sa
-h2wirr
-1hyd4
-hy3dr
-hy2lor
-1hymn
-h1yo
-hy3os
-1hyp
+3hyg
+3hyp
hy2pe.
2hy2t
2h1z
hz2a
-h3z2o
+hz2o
hzug4
-h3z2w
-i3ad.
-iad2a
-i1adn
-ia3do
+i1a
+2ia.
+i4aa
+i2ab
+iab4l
+2iac
+i2af
iaf4l
-i2ago
-ia1h2
-i1ai
+i4a3g2
+i2ah
+i3ai
+i2aj
+i2ak
i3ak.
-i3ake
-ia2kei
-ia2kr
-i1akt
-i1al
-ia2l1a2
-ial3ar
-ial3as
+i3akt
+2ial
+i5al.
+ia2l1a4
ia2lÃĪ
-ial3b4
-ial3d4
-i3aleb
-i3alef
+ial3b
+ial3d
i3alei
-ia3lek
-i3alel
-i3aleng
i3alent
-i3alerb
-i3aler4f
+i3a4lerf
i3alerh
-i3a4lerm
-i3a2l1et
-i3alex
-i3a2lia
-i3alim
-i3a2lin
-i3al3l
-ial4ler
-iall2i
-i2alo
-ia2lon
-ia2lop
-ia2l1o2r
-ial3p
-ial3t2
-ia2l3u4
+ia4l3erm
+i3a2let
+i3a4lia
+ialk2
+i3all
+ial3la
+ia2lor
+ial3t4
+ia2lu
ial3z2
-i3am.
-ia3ma
-iampe4
-i1ams
-i1an.
-i1an2a
+i2am
+i4amo
+2ian
ia2nal
-ian3alt
-ia2nau
-i1anc
i3and2
-i3a2n1e2b
-ian2er
-i1ann
-i1ans
-ian2s1p
+ian2e
+i3ann
+i2ano
i3ant
i3anz
-ianza4
-ia1o
-ia2op
-ia3p
+i2ap
ia1q
-i1ar
i3ar.
ia2ra
-i2are
-iar3r
-i1as
-i3as.
+i2asc
ia3sh
i2asi
-ia3s2p
+i2a3sp
ias3s
iast4
i3at.
-i3at2h
-i4athe
+i3a4ta
+i4ate
+i3at4h
1iatr
i3ats
i3au
ia3un
-i2az
+2iav
2iÃĪ
-i1ÃĪ2m
+i1ÃĪm
i1ÃĪp
iÃĪr2
i1ÃĪr.
-iÃĪr3m
i1ÃĪrs
-iÃĪr3z
-i1ÃĪt
-i3ÃĪ4tem
-iÃĪ2ti
-iÃĪ4tr
-iÃĪt5s4
-i1ÃĪv
-4i1b
+i1ÃĪt.
+i1ÃĪta
+i1ÃĪt3s4
+2i1b
ib1art
i2b1auf
-i2b1aus
-i2baut
ib2bli
-i2b1eig
-i2b1eis
-ibe4n1
-i6ber6geb
-i4b3er4la
-ibe1ro
-i2bim
-i2b1in
-i2blad
-i2bleu
-i3blu
-i3b2o
+ib1ei
+i2beig
+i2beis
+ibela2
+ibe4n
+iben3a
+ibi2k
+i3bla
+i4blad
+i3blÃĪ
+i3ble
+i4bleu
+ib2o
i2bÃķ
-i2b3rau
-ib3ric
-i2b3roc
+i4brÃĪ
+ib3ren
ib2ser
ib4ste
-ib2un
-i2b3unk
-i2b3unt
-ibus1c
+i2bunk
+i2bunt
+ibu2s1
2ic
-i3ca
ic1c
ice1
-ich1a2
-ich6art.
+ich1a
ich1ÃĪ
i1che
ich1ei
-ich2er
-icherin5
i1chi
-ich1l
-ich3le
-ich3li
-i3ch6lo
-ich5m
-ich3n
+i2chin
+ich3l
+i3chlo
+ich3m
i1cho
-ich3ort
i2ch3r
-ich6sele
-ich2s1i
-ich4spe
-ich6stie
+ich3ter
ich2tr
i1chu
ich1w
i1ci
i3cke
-ickt2
i1cl
-ic3la
-ic3ra
-i3cu
i1d
-2ida
-id2ab
+id2ab4
i3d2ac
-id4al
-id1a2n
-i3d2ans
-i3d4at
+i3dam
id1au
-id2ax
-idÃĪ1
-id2e
-2i3de.
-i2dea
-1idee
-id3eis
-2idel
-idel4ÃĪ
-i4demul
-4i3den.
-ide4n1o
-iden4se
-ide3ran
-iderin8nu
-ide1rÃķ
-ider6reg
-2i3des
-ide5sa
+1i2dee
+idein3
+i4deis
+idel2ÃĪ
ide3so
-ides2p
-1i2di2o
-idi4on
-i4diot
-2idk
+1i2dio
idni3
-id2o
i2dol
-2idoo
-i2dÃķ
-i2d3r
-id4rÃĪ
-id4rit
-id4ro
-id4ru
+1idol.
+2i2dr
+i3d2sc
id2s1p
+id3str
idt4
1i2dy
-ie3a2
+ie3a4
ie2bÃĪ
ie2bl
-ieb3re
+ie2bre
ie2bri
-ie4b3rÞ
ieb4sto
+ieb4str
ie1c
ie2cho
-iech3t
ie2ck
-ie2d3an
-ie3de
ie2dr
ie1e2
-ief3akt
+ie2f1ak
ie2f1an
-ie2far
ie2fau
-ie2fÃĪh
-iefe2m
ief3f4
ief2i
ie2f3l
-ie4fonk
-ief1r
ie2fro
-ie2gl
-ieg5li
+ie4g5l
ie3g4n
-ie2g3re
-ieg4s5c
-ieg4se
-ieg4si
+ie2g3r
+ie3g4ra
+ieg4s3c
ieg4st
-ie3her
-ie2h1in
-ieh3r2
i1ei
-ie1ind
i2e2l1a
-iela2r
-ie2lÃĪs
-iel3d4
+ie3las
+iel3d
i2ele
-ie4l1e2b
iel1ec
-iel3eid
-ie2lek
-i4elen
-ie4lene
-ie4leng
-ieler4e
-ieler6fi
+ie3lerd
ieler8geb
-ieler6ke
-ieler6la
-ieler8lebn
-iel4erw
-ieles2
+ie4less
i2eli
-ieli2d
-i1ell2
-ie2lo2b
-ie2lop
-ie6lor
+i1ell
+ielo4b
i2els2
iel3sz
-ielt2
-iem2e
-iemis2
-i1en
+iel3ta
+2i1en
i3en.
i3ena
-ien1ag
-ien4am
-ie4nas
-i3enÃĪ
-i3end
+iena2b
+ie4n3a4g
+i3e2nÃĪ
+i3en3d
i2ene
ien1eb
-i3enec
-i3e2n1e4k
-iener6fo
-ien3er4g
-iener6la
-i3enex
+ie3ner
+ien4erf
+ie4n3erg
i3enf
-i3eng4
+i3eng
ienge4f
-ienge4z
i3enh
-ie2nid
-ie2nim
-ie4n3in
i3enj
i3enk
-i3enla
-i3enle
i3enm
i3enn
i3e2no
@@ -9418,2965 +5876,1846 @@ i3enÃķ
i3enp
i3enr
ien2s
-i3ens.
-i3ensa
-i3en3sc
-i3en3s2e
+ien3sc
+ien3s2e
ien3si
-ien3s2k
-i3en3s2p
+iens2k
iens6t5er
+iens4tr
ienst5rÃĪ
-i3en3sz
-ien4t3ar
-i3enth
-ien3tr
-i3enty
-ie3nu
-ie4num
+ien3sz
+ie1nu
i3env
i3enw
i3enz
-ie1o4
-ier3a
-ie2ra2d
+ie1o2
+ier3a2
ie2rap
-ierb4
-i3erbun
-ier3d
i2ere
-ie4reck
-iere5ins
-ie4r3eis
+ie3red
ie3r2er
-ierer3k
+ie4rerf
ie4r3erz
+ie3res
+i3ereu
ierf4
-ierg4
-i1ergi
i4eri
-ierk2
+ierin3
+ier3k2
i1ern
i3ern.
-iern2a
-i2erni
+i4erna
+i2er5ni
ie2rÃķ
-ier4re.
-ier4s3eh
-ier3sei
+ier4seh
iers2t
ier3sta
ier3ste
ier3te
-iert2i
-ier3z2
-2ies
-ie2san
-i2esc
-i2ese
iesen3s4
-ie3s4pa
-ies2pe
ie2spu
-ies6ser6g
-ies6serl
-ies2st
+ies2sp
+ies2s3t
+ie1sta
iest6e
-ie4stin
-ie1str
ie3su
-ie4t1ag
-ie2t1ak
-ie2tan
-ie2t1ap
-ie2tat
-ie2tau
-ie4tent
+ie2t1a
ie4t3erh
ie4t3ert
-i4ethe
-iet3her
-ie2t1ho
-ie2thy
-ie4tob
-ie2t1Ãķ4s
-ie2t3ri
+ie2t3ho
+ie2t1o
+ie4t1Ãķ4
+ie2tri
ie2t3ru
iet2se
i1ett
-iet3zw
ieu2e
ie1un
ie2w3u
-i1e2x
+i1ex
2if
-if3ange
if1ar
i2f3arm
if4at
-i2f1au
-if1ÃĪn
+if1au
i2fec
-i2f1ef
-ife4i
-if1ein
-if2e4n
-i2f1erg
+ife2i
+if2en
if1erh
-if2far
-if2f3l
-if2fro
-iff2s
-iff4ste
+if2fl
+iff4st
if3l
-if1lac
+i1f4la
if4lÃĪ
-iflo4
-if4los
i1flÞ
if3r
+if4ra
+i1frau
i1fre
-i2freg
-if4rev
+if4rei
+if4rÞ
if2s
if3sa
if3se
if3sp
-if3sta
-if2t3a
-if2ted
-if2t3ef
-if4t1ei
-if2te2l
-if2tep
-if4terk
-ifte2s
-if4t3esc
-if4th
-if2t1op
-if2t1r
+if2ta
+ift3erk
+if2top
if4t3ri
ift3sp
ifts2t
ift3sz
-if2tur
-i1fy
2i1g
-i2ganb
-i2garb
+iga3i
+i2g1ang
ig1art
-iga1s
-i2g3att
-igd2
-i6gebrau
+iga1s4
i4gefar
-ige4fÞg
-3i2gel.
-ige5lau
-i2geln
-ige4me
-ige4mis
ige4na
-ige6nene
-ige4nid
-ige2o
-ige2pa
ige2ra
-ig5erwer
+ige3ran
ig1erz
-iger4ze
-ige4sel
-i2g1ess
-ige4tra
-ige4tre
-ige4woh
-i2gim
+i2g1im
i2gl
-ig1lau
-i3glÃĪ
-i3gle
-ig3lim
+ig1lÃĪ
+i4glo
ig4na
i4gnÃĪ
i3g4neu
-ig4no
-igo1p
-ig3rad
-i2g3re
-ig4ren
-i2grou
-ig3s2ag
+i3g4no
+i3go
+ig4ra
+ig3rei
+ig3s2a
ig4sal
+igsau4g
ig3sÃĪ
-ig4schr
-ig3s2o
+ig4se
+ig3so
ig3sp
ig4spa
ig3stei
-ig4sti
ig4s3to
+ig4stÃķ
ig3str
-ig6stras
+igs4tra
+ig4stre
ig3s4tÞ
igung4
2i1h
+i2h1am
i2har
i3he
ihe1e
-ih1elt
ihe4n
-ihe3u
ih3m
ih3n
-ih3r2
+ih3r
ihs2
-ih1um.
+i2h1um
ih1w
ii2
ii3a4
i1ie
-i3ig
+i3i4g
i1im
-i3in
+i1in
i1i4s
i2is.
ii3t
-i1it.
i1j
-1i2js
2i1k
-ika2ge
-ik1aka
-ikaken3
-i2k1akt
-ik3amt
-i2k1ang
-i6kantei
+ik1ak
+ika4ka
+ik1amt
+i2k1ano
ikanten8n
+ik1anz
+i4kanze
ik1art
ik3att
i2k1au
-i3kaz
-ik1ÃĪh
-i2kÃĪr
+i2k1ÃĪr
4ike
-i2keb
-ik1ebe
-ike2c
-i2k1ed
-i2k1ef
i2k1ei
-ike4l1
-ike2n1
-ik1en2s
-ik1ent
-ike2ra
+ik2e2l1
i2k1e4r2e
-i2k1er2f
-i5kerfam
+ik1erf
+iker6fah
i2k1er2h
i2ker2l
-i2kero
-i2ke3ru
i2k1eta
-4iki
i3ki.
-ik1i2d
-i3kie
ik1in
-i2kins
-iki1s
+i2kind
i2k3l
-ik4lÃĪn
-i3k4leri
-i3k4let
-ik4lim
-i3klu
-i2kne
-ik3nu
-iko3be
-i2k1off
-iko1p2
-ik1or
-iko2ri
+i3kla
+i3k4lÃĪ
+i2kn
+ik3no
+ik2o3p4
iko1s
i2kÃķl
+ik3ra
ik3rÃĪ
ik3re
-i2kres
-ik4ris
-i3kro
-i2krÃķ
iks2
-ik3sa
-ik3ste
+ik3so
ik3sz
+ikt2e
ikt3erk
-ik4t3esk
-ik2t3re
-ikt2u
-i2k1uh
-i2kup
+ikt3r
+ik2tre
i3kus
-i2kÞ
i1la
-i2lab
-i2l1ac
+i2l3ab
+il1a2d
i2l1ak
-il1a2ma
-il1ang
-i2l1anm
-i2lano
+i2l3a2m
il1ans
-ilan6zer
-i2larb
il1asp
-i2l1au
-i3laub
-i3l4aufb
+il1au
+il4aufb
+il3aus
+i2laut
i1lÃĪ1
-i2lÃĪr
-2ilb
-ilb4l
+6ilb
il2c
-il5chen
il2da
-il2dÃĪ
-ild3ebe
+il4dac
il4d3en4t
-il3der
-ild4erp
-ilde2s
-ildi2
+il3d2er
ild1o
il2dor
il2dr
-4ile
il1e2c
il1ein
il1el
-i2lemb
-i2l1e2mi
-il1ent
-i4lentl
i4lents
-i2l1erd
-iler4ei
-i6lereig
-il1erf
-iler4fo
-i2ler2g
-i2l1er2h
-i4ler4kl
-il1err
-i4lerri
-i3l2erz
-ile4th
-il1ex
-ilf2
-ilfe3s
+i2l1erf
+i2l1erg
+i2l1err
+il2erz
il2f3l
il2f3re
ilf4s3
+ilg2a
il2gl
-2ilh
-2ili
-ili3e4n3
-iliga2
-ili4g3ab
-ilik4
+ili3e4n1
+ilig1a2
+ili4gab
i2l1ind
-i4l3init
-il1ins
i2l1ip
-ili1pf
-il3la
-ill2an
-il4lenn
+i3lip.
+i3lips
+2ill.
+il3l2a
il3l2er
-1illu
+ill2i
+2ills
il2mak
-il2m1ap
+il4mang
+il2m3at
il2m1au
-ilm1ei
il2min
-il2mor
2ilo
-il1ob
-il2oh
-il2op
-i2l1o2r
-i3lou
-i3lov
-il1ox
-ils3ent
-ils4to
+i2l1or
ilt2
il3th
-i1lu
+il3tr
+i1lu2
i2lum
ilung4
-i2l1ur
i3lus
-ilÞ4
-2ilv4
+ilv4
il2zar
-il2zau
ilz3erk
-il2zwa
-imad2
-ima1i
-im2al
-i2m3anh
-im1ans
-i2marc
-im3aren
+2im.
+i2manw
i2m1arm
-i2m1art
-im2as
im4at
ima2tr
imat5sc
ima4tur
-im1aus
-i2maut
-im3b
-1imbi
-i2meg
-im1ein
+2ime
i2mej
-i2mek
i2mele
i2melf
-im2en
-i2m1er2f
-i2m1er2l
-i2m1er2z
-i4me3sh
+i3men
+i2m1erf
+i2m1erz
+i4mesh
imes3s
i2meti
-i2mew
-imhau2
-i2mid
-im1i2de
-i2mim
-i2m1ind
-i2minf
+i2m1inf
i2m1ins
-im2mÃĪ
im2mei
-immen1
-imm3ent
-im6menth
+im4m3ent
1immo
-im2mor
2imo
-i2m1ob
-i2mo2p
-imo3re
-i2mÃķ
-1imp
+im1org
imp2fa
-im3pf2o
-imp2s
+1impo
+imp4s
im3pse
-im4set
-im3sph
+1impu
+im2st
+im3sta
2imt
-imt2e
-im3t2i
imt3s2
-imtu2
-4imu
-im2um
-im1urk
-2in.
-ina2be
-in3abu
+2imu
in1a2c
+in3ach.
i4nack
-in1ad
-i3nald
-inaler4
-ina6lere
-in2alp
-i2n1am
-in2an
-in3an.
-in3ana
-in3ann
-i2narb
-in3att
-i2n3au2
-2inÃĪ
-i2n1ÃĪh
-in2ÃĪr
+i2n1ad
+in2af
+in3am
+i3nap
+in2ars
+in2art
+ina4s
+i2n3au
+in1ÃĪh
in1ÃĪs
-2ind.
-inda2
-ind2ac
in2dal
in2dan
-2indÃĪ
-2inde.
-2inden
-ind5erke
-inder3t
-inde3sp
+in3dau
1index
-ind2i
-1indik
-in3dÃķ
+in3do
2indr
-ind3se
+ind4ri
+in3drÞ
1indus
in3d2Þ
2ine
-in1e2c
-i3nee
-i2neff
-in4elen
-ine2n1
-ine3nÃĪ
-i4nen4zy
-i5ner.
-i4n3erbi
-in4erha
-i4ner4he
-i3nerk
-i3n3erle
-i6ner6leb
+i2n1e2be
+in1ehe
+i2n1eng
+in3erbe
+i4nerbi
+in2erh
iner4lÃķ
i4n3er4tr
-i3nes
i4nesk
-in2et
in1eu
ine3un
-in3f4
-1infek
-1infiz
-1info
+ine2x
+in3f
+1info.
+1infos
2inga
-in2g1af
-in2g1ag
-in2g1al
-in2gam
-ing1ar
-2ingÃĪ
-3ingeni
-in3g2er
-in4g3er4w
-inges4
-2in2gl
-in3gla
-in3glÃĪ
-ing4s3am
-ings6por
+ing1af
+in2g1a4g
+in2gl
+ing4sam
+ings3pr
1inhab
2inhar
2inhau
-2inhe
-2ini.
-in2id
-ini3de
-2inie
+4inhe
+in2i3d
+i3nie
2inig
-inig2a
-ini3k4r
+ini3kr
+in2ir
2inis
ini3se
-init2
i3nitz
3inkarn
-1inkas
-inkels6t
-in4k3ent
-ink4er
-in2kro
in3k2Þ
inma4le
2inn.
-inne4n
-in4ner4m
+in4n3erm
2innl
in2nor
+inn4sta
1innta
2ino
in1od
-ino3e4
in3ols
in1or
-ino1s
-i3no3t
-i2n1ou
+ino1s4
+ino3t
i1nÃķ
in1Ãķ2d
+2inp
2inr
-2ins.
ins2am
-in6samt.
insch2
-2inse.
in2seb
-2insed
2insen
-2insk
-in3sof
-3instal
+ins3ert
+in3skan
+in3skr
in4s3tÃĪt
-4inst2e
-in3s4tip
-3instit
-ins4to
-4instra
-in4strÞ
+in3stel
+ins4tip
+in3su
1insuf
-ins3umz
-in2sur
-in3sz
+in4s3um
+in3s2z
2inta
-2inte.
1integ
-in3tei
-2intep
-2int2h
-inthi1
-int2o
-2intÃķ
-2in3t4r
-4intrÃĪ
+int2h
+in3t4r
in5tri
-3intrig
int3s
-i2n1u
-i4nuh
+in1u
+i3n2um
in3unz
-4inverm
-invil2
-i1ny2
-in3z2e
-inzel8ler
-in3z2i
-in3z2sc
-inz2u
-in3zw
+invil4
+i1ny
i1Ãą
2i1o
-iob2l
io1c
io2d
-io3da
-io3e4
-i2of
+i2oda
+io3e2
iof4l
-i2oh
-io1i
-io3k6r
+i2o3h
+io2i3d
+io3k4
i3ol.
-i3ols
i3om.
-io3me
i3oms
ion2
i3on.
-ion3an
+ional3a
io2n3au
-ion3d2
-io4nee
-i3ono
-io2nor
+ion3d
i3ons3
-ion4sa
-ion4sen
+ion4spi
+ion4stÃĪ
+ion3t
i2ony
-i2oo
i2o1p
-i3o4pf
+io4pf
+i3ops
i3opt
i2or
i3or.
i3orc
-ior2e
iore4n
-io1r2h
i3orp
i3ors
i3ort
-4ios
-i3os.
-io3sh
-ios2p
-i2o1st
-ios2u
-i2o3sz
-io3t
+io3s2
+i2ost
i3ot.
-iote3l
-iot4r
i3ots
i2ou
i2ov
-i3ox
-i2oz
+io2x
i3oz.
i1Ãķ2k
i1Ãķn
i1Ãķs.
-i1Ãķst
+2ip.
i1pa
-ip2an
i1pe
-i3ped
+ipen3
i3per
-2ipf2
-i3pfan
-ipfe2
iph2
2i1pi
-ipi3a
ipi3el
ipi3en
-ip4lu
-ip2pan
-ip3pe
-ipp1f
-ip4pl
+i3p4l
+ip2pf
+ip2pl
ip3pu
i1pr
-ip2sa
-ip2sei
-ip2sp
-ips3t
-ip4sta
-ip4stÞ
-ipt2a
-ipt2i
-ipt2u
+2ips
2ipu
2i1q
-i1r4a
-i3ra.
-2i3rad
-i3ras
-irat4
+i1r2a
+i3rad
+1i2rak
+irat2
i1rÃĪ
ir1ÃĪh
-ir2b3l
+ir2bl
ir1c
-ir2ch1o
-ir4e
+ir2e
i3ree
2irek
-ire4na
-i3rÃĐ
-irg4
+2irÃĐ
+ir2gl
+irg4s
ir2he
ir2i
-2i5rig
+2irig
2irk
-irke4n
-ir4kene
ir2k3l
-irk4s3c
-ir3k2u
irli4n
-ir2m1ag
ir2mak
-irm1au
+ir2mau
ir2mÃĪ
ir2m1ei
-irme4n1
-ir2m1o2
-irm4th
ir2mum
-ir4munt
+ir4m3unt
2irn
-ir2n3a
-ir4nat
+ir2nar
ir2no
-i3ro
+i1ro
+1iron
+iro2s
i1rÃķ
-irpla2
+irpla4
irre4l
-ir2rh
-ir3sche
+irr2h
ir4schl
ir4schm
-ir4sch3r
ir4sch3w
-ir3se3
-ir3s2h
+ir3se
+ir3sh
ir2st
irt2s3t
2iru
-ir1u2m
iru2s1
-i3r2Þ
-i2sac
-isa2m3
-i4samp
+i3sac
i4s1amt
is2ap
-isa2r
is3are
-i3sat
-is3att
i2sau
-is3auf
-isau2g
-i2sÃĪh
i2s1ÃĪn
2isb
i2sca
-i4schar
i3s2che
i4schef
i4sch3e4h
-isch3ei
-ische4m
-i6schemi
-i6scher6z
+i4sch3ei
i4schin
i5sching
-i2sch3l
+i2sch1l
+isch3le
i2schm
isch3ma
-i4schna
-i4sch3re
+isch3ob
+isch3re
isch3ru
-i3schu
-i4schÞb
-i4schwa
-i6schwir
i4schwo
isch3wu
-i4schwÞ
-i2scr
+i2s3cr
2ise
-ise3a
-ise1e
-iseh2a
+ise3e
+ise3ha
ise3hi
-is4eind
-is4eli
-i6sel6ter
+ise3inf
+i4seint
ise2n1
-ise4na
+ise4n3a
is2end
-i4senho
isen3s
-ise4r3ei
-is1erg
i2serh
-iser4he
i2s1erm
-i2s1es4s
-i3s2et
+iser2u
+i2s1ess
i4s3etat
-i3s2eu
-2isf
-4ish
-2isi
+is2has
isi2a
-i2s1i2d
-isi4de
-isik2
-i2sim
-isin3g4
-isi1s
-i4ski
-i4sku
-is3la
-3islam
-2isma
-2ismi
-ismu2
-is1of
-i3soh
-1i2sol
-2is4o2n1
+i2s1id
+i2s1of
+iso2n
isonen4
iso6nend
-isono2
-i2sop
-is1ort
-3isot
-i2s1ou
-2isp
+is1op
+3i2sot
is1pa
i2spar
-is2pat
is1pe
is1pic
+is2pit
is2por
i2spro
is3sa
is4s1ac
is4sau
-is6s5chen
-isser4f
-iss2po
+is4s3che
+is4sper
is2st
is3sta
is3sto
iss3tr
-is3strÃĪ
is3stu
is2sum
+is3t
is4tab
-ist3a2c
+ist3ac
+is5taf
+is4tam
ist2an
-is3tang
-i1stat
-is3tÃĪu
-ist4e
-i1stel
+i1s4tat
iste4n
istes3
-i1steu
-i1stil
-istin4f
-is3t6o
+i1s4teu
+i1s4til
is4toc
-is3tÃķr
-is3tr
+is4tÃķ
+is5tÃķr
ist4ra
-is4tro
-is4tru
-i1stÞ
-i3suf
-isu2m
+ist3re
+i1s4tÞ
isum3p
i2sÞ
-2isy
i1ß
-ißer2s
-iß3ersc
+iß1ers
it1ab.
-it1abs
ital1a
it1alt
-it1am
-ita3ne
-it3anr
-it1app
-it1a2re
+it1a2m
+it1an
+it2an.
+it3a4re
it1art
i3tat
it1au
i3tauc
-i2taut
+i4t1ax
4itÃĪ
-it1ÃĪnd
i2t1ÃĪs
itÃĪt2
-it1eff
i2t1ei
-it2eic
+i4teig
+it2eil
+i4tein
2itel
-ite4l1a
-i4telek
-i2t1emi
-i2temp
-ite2n
+ite2la
+ite4n
iten3s2
-i4tents
-i2tepo
-i6tereig
-i4t3er4fo
-iterin6d
-iter6klÃĪ
-it2erÃķ
-i8t7ersche
-i4t1esk
-i2t1ex
-i3text
+i4tepo
+i2tex
i5thr
-i2thy
-i5tic
i2t1id
-i5tig
1itii
-it1in1
-i3tis
-i4tiso
-iti3sp
-iti2v5a
-it5le
+iti4kan
+iti3k2e
+i2t1in1
+it2inn
+ition4
+i6tl
itmen2
-4ito
-it1ob
i5toc
-ito3d
i2t1of
-ito2p
-it2os
-4itr
-i2t3rad
-i3tradi
+i3tÃķ
it3raf
+it3ran
it3ras
it3rau
it3rÃĪu
it3re
-i4tren
-it4ret
-it3rob
it3rom
-i2t3run
-it3rut
-2its
+it4ron
+i3tru
+it3run
it2sa
-its1ag
-it2s1e
-it4se2h
-it4s3e2r1
-it4sh
-its1or
-it6stras
-it2sur
-2itt
-it2tan
+its1a4g
+it2s1e4
+its3er1
+it2so
+it2s1pe
+it2s3to
it2teb
-itt3hÃĪ
-it2tob
-it2top
it4tri
-itt3ric
-itt6schi
-itt4se4h
-itt4sei
-itt4sor
itt2sp
-itt4sti
it1uh
-it1ums
-it2ung
+i2t1um
i2tuns
-ituran4
it1urg
itut4
i3tÞ
-4ity1
-ityl2
-it2ze2c
-itz2er
-itz3erg
-it6zergr
-it4z3erl
-it2zÃķ
+2itz
+it2zÃĪ
+it4z3er4g
it2z1w
2i3u2
-i4u3l
-iu4m3
-iuma2
-ium4se
-ium4ste
-iun2
-i4up
-iu4r
-ius3t
-i1Þ4
+ium1
+i1Þ
2i1v
-i2v1ad
i2v1ak
-i2v1am
-iv1an
-i2v1ÃĪ
+iv1ang
i2veb
-i2v1ef
-iv1ei
iv1elt
ive4n
iv1ene
i2v1ent
-i2v1ep
-ive3re
-iv1erh
-iver4kl
iv1erl
-iver3s
-ive3s
-i2v1ex
-i2v1im
-i2v1ind
-iv1int
-i3vol
-ivo3re
-i2v1r
-i2vun
i2v1ur
-i2vÞ
2i1w
+iwur2
2i1x
i2xa
ix2em
i3xi
ixt2
-i1y
4i1z
-iz1a
-iz2ac
-i2zag
-i2zan
-i2zap
-i3z2as
-i2zau
-i2zÃĪ
-i3ze
+iz1ap
+iz1au
iz2ei
izei3c
-izeits4
-i2zele
ize2n
-i4zener
-i4zentz
-i4z1erl
-izid3
-iz1ir
-izo2f
+i2z1ene
+iz4er
+i2z1ir
+izo2b
i2zÃķ
-i2zuna
i2z1w
-i3z2wi
í1l
-j2a
-jab4
ja1c
-jah4r3ei
-jahr2s
-ja3l
-jal2a
+jah4rei
+jahr4s
+ja3l2a
ja3ne
jani1
jani3t4
-ja5ru
-jas2o
ja1st
-jat2
-2j1d4
-jda3
+2jat
je2a
jean2s
+je1c
je2g
-jek4ta
jek4ter
-jek4tin
-jekt3o2
jektor4
-jek6t3r
+jek2tr
je3na
je2p
-je3r
-jer2e
-jes3t
+je4s3t
je2t1a
-je4t3h
-je2tin
-je4tor
+je2t3h
je2t3r
jet3s2
jet3t
je2t1u2
-je3v
-je3wo
+je3w
+ji2a
+jit3
ji2v
-2j1m
joa3
jo2b1
job3r
-jo2da
jo2i
-jol2a
-jong2
-jo2p3
-jo1r2a
-jor3d2
-jo1s4
+joni1
+jo1ra
+jord2
jo2sc
-jost2
-3jou
-jou2l
-2j1t
-jty1
+jou4l
j2u
-ju2b3l
-jugen6
+ju2bl
+jugen2
jugend3
-ju1i
ju2k
-jul2i
jung3s4
ju3ni
-ju3r
-jur4a
jur2o
-jus3t
-ju3t2e1
+jus3
+jute1
2j1v
1ka
3ka.
+k1a2a
ka3ar
-2k1abb
kab2bl
-2kabd
-2k1a2ben
-2kabf
-2kabg
+ka2ben
2kabh
-2kabn
-2k3a2bo
-2k1abs
+2kabla
+2kablÃĪ
+2k1a2bo
+ka3b4r
+2kabs
2k1abt
-2kabw
-2kabz
ka1c
-kade2r
-2k1adm
+k2ad
+2k3ada
2k3a2dr
-3kadu
-2kadv
ka1f4l
ka1fr
kaf3t2
-kag2
-kaga3
-2k1age
-3kah
-ka1ho
+k2ag
ka1in
-kaken2
-ka1kl
-2k1akt.
+ka3ka
+kaken4
+ka1k4l
+2kakt
2kala.
-kala3b
-ka2l1a2d
ka2lan
-kal3d
-ka4l1eh
+ka3lei
+ka3len.
ka4lens
kal3eri
-3k2alk
-kal2k1a
-kal4kan
+kal2ka
kal2k3l
-kall2i
-2k1allt
-ka2lop
-ka2l1os
-kal4tex
-kal4th
+kal2kr
+k1all
+kalo5
+kal2tr
ka2lu
-k2amt
-kan4al
-ka4n1a2s
+k3ama
+kamp8ferf
+kan2al
+ka4n1a4s
ka2nau
-2kanb
-kan3d2
+kand4
2kanda
-2kandÃĪ
kan2e
-2kanf
-2kanim
+2k1ang
kank4
2kanl
-2kanom
-2k1anor
-2k1ans
+2k1anna
+k1ans
k2ans.
-kan4tar
-6k5antenn
-2k1anth
-ka3nu
-kan2um
+6kantenn
+ka3nu3
2kanw
-2k1anzu
-2kanzÞ
-ka2o1
-3kape
-ka3po
+k2anz.
+ka2o
+2k1apf
3kara
-2karbe
-2karc
+2karb
k2ard
-kar3d2a
-k1area
k2arg
-ka3r2i
+ka3ri
kari3es
k2ark
2k1arm
+karp3
kar2pf
k2ars
-k2ar3ta
-k1arti
-4kartik
+kar3t
+k2arta
+2k1arti
karu2
k2arw
-3k2asc
-kas2e
-kase1i
+3kas
+ka3se
kasi1
-kas2o
-ka4sp
+kas3s
ka2s3t
-2k1ast.
-ka4ste
-kas6tras
-3kasu
-ka3sz
-ka2tan
-3kateg
-k3atel
-ka3t2h
+ka3tan
+ka3t4h
ka4t3r
-2katt4
-kau4fer
+2katt
kau2f1o
-kauf6s5ag
+4kaufr
kauf4sp
-kaufs7tem
-kauf6sti
-k2aus.
-2k1auss
-kau2st
-2kausw
+kaufs5te
+k1aus
kau3t2
2kauto
-ka3ve
-2kaz
1kÃĪ
-kÃĪl3
-k1ÃĪmi
-2k1ÃĪnd
+k1ÃĪh
+k1ÃĪ2mi
+k1ÃĪn
kÃĪr2
-2k1ÃĪrg
kÃĪ2s1c
kÃĪse3
-4k3b4
+2k3b2
kbo4n
kbu2s
kby4
2k3c
-2k3d4
-ke2ben
+2k3d2
+kdamp2
2k1e1c
-ke2di
-2k1eff
-kefi2
+k1eff
+kefi4
kege2
ke2gl
ke2he.
-ke2hen
-kehrer4
kehr2s
kehr4s3o
2k1eic
2k1eig
-kei2li
-ke2im
-2k1ein
-kein4du
-kein4e
-k1ei1s
-2keise
+k1ein
+ke1in2d
+2keinh
+kei1s
+2k1eise
keit2
-keits1
ke2l1a
ke3l2ag
-ke4l3am
ke2lÃĪ
-kelb4
-keld4
-kel3eis
+kel3b4
2ke2lek
-ke2l1en
+ke2len
ke2l1er
-kel7l4e
-kell2i
-ke2l1o2
-ke2lÃķ
-kel3sk
-kel7s8tern
+2kelet
+kell4e
+kel3s2k
k4elt
-kelt4e
-2k1e2mi
2k1emp
k2en.
-ken1a
-ken3au
+ken3a
+ke4nac
ke2nÃĪ
kend4
ken3dr
-ke2n1e2b
-kenen1
-ke4nene
-ke4nens
-kener4n
-kene4t
4ken4gag
-k5en6gel.
-ke2nim
-ken3in
-4kenlad
-4kenlÃĪd
-kenn2a
-kenn2e
+2kenlÃĪ
ke2no
-k2ensa
-4ken4sem
-ken3si
-ken3s2k
-ken5s6tei
+ken4sem
+kens2k
+ken5stei
ken3sz
k3en4te.
-ken6ten.
-2kentf
-2kentg
+k3en4ten
ken3th
-2kentl
2k1ents
2kentw
2kentz
-ke3ny
-k2en3z2
-2ke1o2
-2kep
+2keo2
ke2pl
k2er.
-ke1ra
-ke2ran
-ke2rau
-ke2r1ÃĪ
-ker4ble
+ke1rad
k2erc
-2kerd
-ke2r1e2b
-ke2rec
ke3reig
-ker3ein
4kerfah
k4erfam
-ker2fo
k3ergeb
-2kergu
+ker6gebn
+k3er2hÃķ
ke6rin6nu
kerin6st
kerin4t
-k3erken
+ker4ken
k2erko
-k3erlau
+k2erl
+k4erl.
+ker4lau
k3er4leb
k6erlebe
-ker2na
-ker4nei
-4k3er4neu
-kern5eur
+k4erlÃķ
+ker4neu
k1ero
-k2e1rod
-2keros
ker4reg
k2ers.
-2kersa
-kert2
-ker6werb
kerz2
k1erz.
ker4zeu
2k1er2zi
-k2es.
-ke2sa
-k2esc
-k1ese
+k6es.
ke2sel
-kes2sa
ke4t1a
-ket2ag
-kete4
-ke4t1eb
-ke4tel
-2k1e2th
-ket3ha
-ke2tu
+ke2t3h
+ket3s
+ke1up
keu6schl
-2k1e2va
2k1e2x
-4k3f4
-2k3g2
-kga2s1
-kge3s
+2k3f4
+2k1g2
2k1h4
-k3he
kho3m
-k3hu
-ki1a
-ki2ad
-ki2ag
-ki3ak
-ki3a2r
+ki3a4
ki1c
-ki3d4r
-k2ids
-2kidy
+2k1i2de
+ki3dr
ki2el
-kie4lei
-kiel3o
-2kiern
-kier2s
-kier4st
-kie4z
+kie2l3o
ki1f4l
ki1f4r
ki3k4
-2ki3l2a
-2kilÃĪ
-2kim
-3kin.
-ki2nÃĪ
-4kindex
-2k1indi
-2k1indu
-2k1inf
+2kil2a
+ki3lo
+k2imi
+k2in.
k2ing
-kin2ga
-king3s
2kinh
-k2ini3
-kinik2
+k2ini
k2inn
ki3n4o3
-kinos2
kin3s
2k1inse
-k1inst
2k1int
ki3or
kio4s
3kir
-2k1i2so
kis2p
kis3s
kist2
kis4to
kiv2
-kive4
2kiz
+ki3zi
2k3j
2k1k4
-kkab4
kl4
4kl.
4kla.
-2k1lac
-klan2
-2kland
-klan3du
+4kland
k4lar
-k1last
-k1lauf
+4k1last
k3laug
-2klÃĪd
-k2lÃĪr
k2le
-4k3le.
+4kle.
kle2br
-k3leg
-2kleh
-klei2e
-k3leit
+k3lee
+4kleh
+k4leid
+4k3leit
k3lem.
-kle2o
2k3ler
kle2ra
2k3leu
kle3us
2klic
-k2lien
-k2lif
2klig
-3k2lim
+k2lim
k2lin
-k3lin.
-3k4lina
-k4link
k2lip
k2lir
k2lisc
2klist
klit2s
-2k3liz
+4kliz
2k3loc
-2klok
-3k4lop
+klo2i3
k3lor
+2klos.
klost6
-2klÃķc
-2klÃķf
-k2lÃķst
-k4lÃķt
+k2lÃķt
k1lu
-klu4b
k2lud
+kluf2
k2lug
-k2lum
klung4
-2klux
-2k1lÞc
+k1lÞc
2kly
2k1m
-4kma
-kma2la
k2n2
-k4nac
-2k5nach
-2k3nad
-2knah
-2k3nam
-2k3nÃĪp
+3knab
k3ne
k4nec
-kne1e
+k4nei
2knes
-2knetz
-2k5neu
-4kney
-2k3niv
-kno2b3l
-k4nol
-2knorm
-2knov
-2k3num
+kno4bl
+2k5nor
+k3nu
+3knÞ
1ko
-ko5ad
ko2al
-kobal2
2kobj
-kob4s
-kof3f2
-koffe3i
-kohl2e
-kohle3i
+2k1o2fe
+koff4
koh3lu
-koka3
-ko3l2a
+ko1i2
+kol4a
ko3le
-kol2k3
+kol2k5
3kom
-komer3
-4komn
ko4mu
k2on
-kone2
-ko2nem
+ko3n2e
kon3s4
-kont6e
-ko2nu
-ko3on
+ko3nu
2kop.
ko1pe
-2koper
-kopfa2
kop4fen
-kop6f5err
-kop3s
-ko3pte
-ko3r2a
-kor2ba
-kor2bl
-kor2br
+2kops
+2kopz
+ko1r2a
2k1orc
-korder4
kor6derg
-ko2rel
-2k1org
-kor2k1a
-kor3m
-kor4nac
-kor2n3ÃĪ
-kor4no2
-2korpi
+ko3ri
+kor4n1a
k2os
-k4os.
-ko4sk
ko2sp
-3k4ost
-ko2stÞ
-ko4ter
-ko3ti
-kot4r
-kot3s2
+ko3ta
+kots2
kot4tak
-k1ou
-ko3un
+2k1ou
3kow
ko2we
-2k1ox
+k1o2x
1kÃķ
-kÃķde2
-k2Ãķf
+kÃķ2f
k1Ãķl
2k1p2
2k3q
-k2r2
+k2r4
2k3rad
-2k3rah
k4ral
k3rats
2kraum
-k4raw
k4raz
k4rÃĪc
-2krÃĪd
k4rÃĪn
+2k3rÃĪt
2k3rÃĪum
-2k5re.
-2k3reak
-2k3real
-k4reb
+2kre.
2k3rec
2kred.
2k3rede
-2kredn
-2kredu
2k3ref
2kreg
-2k3reic
+k3reic
kre1i2e4
kreier4
-k3reif
-2k3reih
-2kreim
-krei6sei
-krei4st
-kreli1
-k3ren
-2kresu
+k3reih
2k3rh
2krib
2k3ric
-2k3ries
+k3ries
2krip
-k3risi
-krob4
-k4roch
-4k3roh
-k4rok
-k4ron
-k4rop
-2krot
-3kroth
-k3rou
-2krÃķh
+3kris
+3k4ron
2kruf
-2k3run
-4k1s
-ks3a2b
-ksa2k
+krÞ1b
+2k1s
k4s1amt
k2san
-ks3a2r
-ksa2s
+ks4ana
+ks3ar
k2sau
-ksau2f
-k2sav
-k2sÃĪh
-k3s2c
+k4s1ÃĪl
+ks2ÃĪn
ksch4
-k2s1e2b
-k2s1ec
-k3s2ed
-ks1ei
-ks2eid
-ks2eif
-k4seind
-kse2le
-k2s1eng
-k2s1ent
-ks1er
-ks2ere
-k2serf
-k2serg
-k2serk
-k2serl
-k2sers
-k2serw
-k2s1e2v
-k2sex
+ks1e2b
+k2sent
+ks1erl
+k2s1ers
+k2s1erw
ks3ha
-k4s1i2d
-ks2im
+k3shi
+k2s1id
k2s1in
-k2s1is
-k3s2ke
-ks3kl
-ks1o
-ks4on
-k2sop
-k2so2r
-k2sÃķ
+k2s1o2
ks1pa
-k2spal
-k3s2pat
-k2spÃĪ
+ks2pat
k3spe
-ks2pel
-ks2pen
-k2sph
ks2por
-ks2pul
-ks3s4
-kst2
+ks2pu
+ks3s2
+kst4
k2stal
k4s3tanz
k3stat4
-k3stÃĪl
-ks4tel
-ks2tep
-k4stier
-k2stit
-ks4tol
+k2stea
+ks2ti
k2stor
-k4strop
-k2stuc
+k2strÃĪ
k2stum
-k2stur
-k2stÞt
k2s1u
-k3sul
ks2zen
4k1t
-kt1abr
-kt1abs
k2t1ad
kt1akt
k3tal
kt1am
kt1an
-kt2and
-k2t1a2r
+k2t3a2r
kta4re
-kta3ri
-k2t1au
-kt3aug
+k2t3au
ktÃĪ3s
-kt1ein
-k2tek
-k4t1ela
-kte4n1
-kten3s2
+kte3e
+kt1ei
+k2temp
k2tent
-k4tentf
-k4tents
-kten3z
-kte2ra
-kte3ran
-kt4ere
k4t3erfo
-kt1erg
k2t1erh
-k2terÃķ
kte3ru
k2tex
-k2t1h
-k2t1i2d
-kti2me
-kt3ind
-kt1ing
-kt1ini
-kt3inn
-k2tint
-kti2s1e
-k2tiso
+k2th
+kt3ho
+k2t1id
+kt1im
+k2t1ing
+kt1ins
+ktion4
kti4ter
-kto3b
k2t1of
-kto5ren.
-k3t4ran
+k3top
+k4torga
+kt3orie
+kt4ran
kt3ras
-k2t3rau
k4tref
+kt4ro
ktro1s
kt3run
-kt3rÞ
-kt3s4a
-kt3sÃĪ
-kt3se
-kts2el
-ktsen1
-kt3si
-kts1o
-kt2sor
-kt3s2z
+kt3s2
+kts4t
ktt2
-k3tub
-kt1ums
k2tuns
k3tÞ
-kt3z2
-ku2al
+kt3z
ku1c
-kud4r
-3kug
-ku2h
+ku2h3
2k1uhr
-ku3la
+kul2a
ku3l2e
ku3l2i
4kulp
-kul4to
-kul2tr
-k2um.
-k2um4e
-2kumg
-2kuml
-kum2sa
-kum2sp
+2k3uml
+kum2s1
k2u3n2a
-kun3da
-kund2e
-kunden3
kung4
kun4s4
kunst3
2kunt
2kunw
-4k1up.
+2k1up.
kur2bl
ku2rei
kuri2e
kuri4er
-2k1urk
ku2ro
-kurs1c
kur2sp
kur2st
-2k1urt4
-kur3tsc
-kus3a2r
ku4schl
ku2sp
-2ku2s3t2
+kus3t
ku2su
-2kut.
-kut2a
-kuto3
1kÞ
kÞ1c
-3kÞne
-3kÞr
kÞr4s
-2k3v
+2k1v
2k1w
-k3wa
2k3z2
kze3l
3la.
-la3ar
-l1ab
3l2ab.
-lab2a
-la2bad
-l2abÃĪ
+la3ba
2labb
lab2br
-2labd
-lab2e
-4la2ben
-4labf
+4l3aben
+2labf
2labg
2labh
-3labi
-l3a2bit
-2la2b3l
-2labn
-3lab2o
-4labo.
-la3b4ra
-lab4res
-la2bri
+4l1a2bl
+lab2o
+l2abr
+lab4ra
+lab4ri
2labs
-la2bus
+l1abt
+3labu
2labw
-2labz
la1ce
la2ce.
-l4a3che
-lachter8f
-lacks2
1lad
-2l1ad2a
-2ladd
-3laden
-la3d2i
-2ladj
-2l1adl
+lad2i
+l1adl
2ladm
2l1a2dr
-3l2adu
+3ladu
+l1adv
2laf
la2fa
-la2f1ei
-la2f1er
-laf1r
laf3s
-laf3t4
-la2fu
-la2g1a
-lag3d
-l2ager
-lagerin5
-4lagg
+laf3t
+la2ga
la2gio
-lag3l
-la4g3n
-lago4
-la2gob
-lag3str
-2la3ho
-3lai
-lake2
-la2kin
+la2gn
+lago2
+la2g1ob
+lag3s2e
+2la1ho
+1lai
+la2kes
+la2k1i
l2akk
la1k4l
-la2kro
-lak3t2
2l1al
-la2la
-3lala.
-3lali
-4lalt
-lami3t
-lam2m1a
+4lalp
+l2ami
+la3min
1lammf
-la2mor
l2amp
-2l1amt
+4l1amt
lamt4s
la4mun
-la2na
-la3nan
-la4n4at
-la4nau
-2la2nÃĪ
-3l2and
-l4and.
-lan2da
-lan4dam
-land3au
-l4ande
-lan6derh
+l1anal
+la2nau
+2lanb
+5l2and
+lan2d1a2
+lan4d3au
lan6d5erw
lan6d5erz
-lan6d5inn
-l4an2dr
-lan3dri
-land3rÞ
-lan3erd
-laner4f
+lan2dr
+lan4ds
+laner2
2lanf
-lan4gan
-lan6g5esc
+lan2gl
lang3s4
-2lanha
+2lanhÃĪ
l2anhe
-3lan2i
-4lanl
-2l1ann
-l1ano
-la2nof
-2l1anp
+2lanl
+4lanli
+2l3ann
+l1anp
2lans2
-l1ansi
+4lansÃĪ
2lantr
-2lantw
-2lanw
lan2z1w
3lao
2l1apf
-la2ph
-2l1a2po
-lap2pl
+l1a2po2
+lap4pl
la2r1an
-2larc
-lar1e2b
la2r1ei
-la2rel
la4rene
-larf4
-lar3g
+3l2ar3g
lar3ini
-4l1a2rom
-l1art
-2lart.
-lart2h
+l2armi
+lar3s
+2l1ar3t
l3arti
-lart4r
-3laru
-l2as.
-la2sa
-la4sam
-la4sÃĪ
-lasche4
+la2ru
+la2sau
4lasd
-la3seb
-la2sei
-la2s1e2l
+la3se
+3lasg
2lash
-la2sin
-la2sis
+2lasi
la2so
-2la4sp
+2lasp
3lasser
-l2a2st
-las4t3an
-la4ste
-last3ri
-la4stu
+last1o
+lat2a
la3t2e
-2l3a4tel
-la5t2i
-2l3atl
-2latm
-lat2o
-la2tÃķ
+la4tel
+2l3ath
la2t3ra
-lat4ri
lat2s
-lat3st
-2lat2ta
+2lat2t1a
lat4tan
-lat4tex
lat4t3in
lat2t3r
-latzer4
1laub.
-lauben6s5
-lau2b3r
laub4se
+lauf1i
lau4fin
-2laufn
lau2fo
-lau4fri
1laug
-lau3gl
-2laun.
-la4us
-3l2aus.
-2l1ausb
-lau6scha
-2lausd
-2l1ausf
-2lausg
+l2aus.
2lausl
2lausr
2l1auss
-lau2st
-2lausw
-2lausz
2lauto
-lau2tr
-la3va
-lave4n
1law
lawa4
-1l2ax
-la4xel
-l2ay
-lay1s
+lay1
lÃĪ1c
-3lÃĪd
-4lÃĪf
+1lÃĪd
+2lÃĪf
2l1ÃĪhn
2lÃĪmt
1lÃĪnd
-2l1ÃĪpf
-2lÃĪq
-lÃĪr2ma
-l1ÃĪrme
-2lÃĪrz
+lÃĪr2m1a
+l1ÃĪrz
lÃĪ2s1c
-2lÃĪt
+4lÃĪt
2lÃĪub
2lÃĪuc
2lÃĪue
1lÃĪuf
-2lÃĪug
-2lÃĪx
1là
2l1b
l3bac
-l2bant
-lb3a2ri
-lbau1c
-lb1ÃĪrm
-lbb4
-lbby4
-lb2ei
-l4b3eink
-l4b3eise
-lbe4ral
-lberin5
-lbe7s
-l4b1e4ta
+lbb2
+l2b1ede
+lb3eise
+l4beta
l2b1id
l2b1ins
-lb4lad
-l3b2lat
+lb2lat
l3blÃĪ
lb3le
-l2bled
-l2blic
+l2bli
l3blo
-l3b2lÃķ
-l3b2lu
-l2b1o2ra
-lb3rea
+l3brec
+lb3rit
lb2s
lb3sa
lb3se
+lb4sh
lb3si
+lb4sk
lb3sp
-lbs4t
-lbst3ac
-lbst3ei
-lbst1u
-l2b1uf
-l3bum
-lbu4n
+lbs6t
+lbst1e
+lb4sto
+lb2u
+l2b3uf
lbzei2
2l1c
-l3ca
l3che
l4chei
-l4chent
+l5chen
l3chi
-lch3le
-lch3li
-l3chlo
+lch3l
+lch3m
lch3n
lch3r
-lch3s2
lch3Þ
lch1w
-l2ck
l3cl
-l3co
4l1d
ld3a2b1
-ld2ac
+l3d2ac
ld3a2ck
-l2daf
-lda2g
-l2d1ah
-lda2i
+l2d1a2d
+lda4g
l2d1ak
-l2d1al
-l2d3a4n
-ld1arm
-ld1ass
-l2d1au
-ld3aus
-l3dÃĪm
+ld1al
+l3dam
+ld1amm
+l2d1a2n
+ld3ane
+l2d1a2r
+ld3ari
+l3das
+ld1au
ld1ÃĪr
-ld1ÃĪs
-ld1ÃĪt
l3de.
-lde4ben
+l2deh
l2dei
-ldein7
-l2d1elf
-l2d1e2mi
-l2d1ems
-lde4na
-lden5erg
-l4dentl
+l2dele
l3der.
-l4d3er4fa
-l6der6geb
-ld1erh
-l4der4he
l3d2erl
-l6d5erlas
l3d2ern
l2d1er2p
lder4tr
-lde3sa
-l2d1es2s
+l2d1e2se
l2dex
l2d1id
-ld1i4mi
-l2d3ion
-ldo2b
-ld2on
-l2dop
+l2d1im
+l2dob
ldo2r
-l2d1ori
ld2os
-ldos5t
ld2Ãķ2
ld3r
-ld4ram
l2dran
-l2dre
-l3d4ris
-ld4ru
-l2drÞc
+ld4ros
+l3d4ru
+ld4rÞ
ld3sa
-lds4an
-ld3ska
ld3st
ldt4
ld3th
-ldt5s
-ld3tu
-l2d1ul
l2d1um
-ldwes4
-ldy2
1le
-le2ad
+3le.
+le2a
+le3an
le3ar
-le2as
-3leba
leben4s3
le2bl
-3lebr
-le2b3re
-lebs2
2lec
-lech1a
-le2chi
-lech7t6e
-le2dr
+lech5t4e
+3led
+4ledd
le2er
-lee4ret
-le3f2a
-2l1eff
-lef4o
-le2g1ab
-leg1as
+lef2a
+le2g1as
+le2gau
le2gÃĪ
le2gl
leg4r
-legs4
3leh
-4lehe.
-leh3r2e
+leh3re
4lehs
4leht
-lei4ble
+lei4bl
+lei2br
+l2eic
l2eid
-lei3ere
-lei4fan
-lei4fei
-leifer6g
-leif3s
-2l1eig
-lei3gl
-3leih
-lei4hau
-lei3l2
-leim3p
-3l2ein.
+4l1eig
+le2im
+l2ein.
l2eind
lein4du
-l4eine
+l2eine
lei6nerb
-le2inf
-le2ini
-2leink
-4l3einsa
-2leint
+4leink
+l2eint
l2einu
-le2is
-leisch5a
-lei8schei
-lei6scho
-lei6sern
-l1eisf
+lei6schw
leis6s5er
l4eist
-lei4str
lei4ßer
l2eit
lei2ta
-lei4to
+lei8t7er8sc
lei5tri
leit3s2
-leits4t
-3leko
+lekt2a
2lektr
-2lekz
3l2ela
-le2le
-le3lei
-2lelek
-4leleme
-le3len
-leler2
-leler4s
-le3les
-2lelf.
-2l1elfe
+2le2lek
l2eli
-l2em.
-le3mal
-le2mau
-le2m1ei
+lel3s
3lemes
-3lemet
-lem1o2
-le2mor
-2lemp
+le2m1o2
+4lemp
lem3s
-le2mu
-le4mun
-l4en.
-len1a
-len3ab
-le4na2d
-le4n3an
-le4n3a4t
+l1emu
+l2en.
+le4nad
le2nÃĪ
4lendet
-l1endp
+2lendu
4lendun
-le2n1ed
+le4n3end
4lenerg
-le4neur
-4leneuv
-len4gag
-len4kau
-len4k3lo
-len4klu
-l1enni
-len6sein
-4len4sem
-len3ska
+l1engl
+le3ni
+l2enk
+2l1enni
+le2no
+len4sem
len3sz
-2lentg
-2l1entk
-4lentla
-2lentn
-4l3en4tro
-4l3entw
+2lentf
+l1ents
+2l3entw
lent4wÃĪ
5lentwet
-2lentz
-2lenzy
-leo2f
-le1o2s
+len2zi
+le1os
2lep
+3lepa
3lepf
-4l1e2pi
-4lepoc
3lepr
l2er.
l2e1ra
-le2rag
-le2r3ap
-le2ra2s
+le2ra4g
+le2rap
le2rau
-le2r1ÃĪ
-le2r1e2b
-ler2e3c
-l3ereig
+lerb4
+l3erei4g
+ler6eign
le4r3ei4m
-le4r3eis
-le2rel
-le4reng
-le4rerg
le4rers
-le2re4t
-4l3erfas
2l1erfo
l2erfr
l2erfÞ
-l1erg
-l2erga
-l4ergef
+l3ergeb
3lergeh
-6lergen.
-l4erger
-l4erges
+l3ergen
3l4ergew
-2lergi
-l2ergl
-l2ergr
-4ler4heb
-4lerhol
+2l1ergi
lerin4s
lerk2
l2erka
-2lerke
-l1erkl
-4lerklÃĪ
-l4erkle
l2erko
-ler3kr
-ler3l
-5l6erlebe
-3l4erlei
-2lermÃĪ
-ler4nal
-ler4nar
-3l4erne
-ler4nei
+l4erlei
+le1ro
+le2rob
2l1erÃķ
3l2erra
-ler4ric
l4ers.
-l1ersa
+lers2k
lers2t
-ler4sto
-lert2
-ler4trÃĪ
-le2rup
l4erwa
-ler4wer
-2ler2wo
+2lerwo
2l1erz
-ler2zÃĪ
-l3erzeu
-ler2zo
-l4es.
+l2erza
+ler2zi
les2am
les2e
-lese1i
2l1esel
-le3s4h
+le3ser
+le3sh
lesi1
-le3s2k
-les4ki
-le3so
+le3sk
+les2ko
le2spo
-lest6
-le1sta
-les2te3
-lester6i
+les2t
+leste3
le1sto
-le1str
-3lesu
4lesw
2lesy
-le2tab
-2le2tap
-2le2tat
-l1e2th
-le3tha
-2lethi
-let2i
-letsche6
-let4top
-lett1r
-letts2
+le2tat
+2le3th
+let4tu
le2u
-4leue
-3le3u2f
-2l1eul
-le3unt
+4leud
2leuro
3leut
-l1e2vol
-2lex
-3lexd
-3lexik
+2lexe
le2xis
-1lÃĐ
+2lexz
2l1f
l3fah
-lf4at
+lfang3
l2f1ec
lfe1e
-lf3einh
-l2feis
-lf2en
-l4ferei
-lfe4rel
-lf1erl
-l3fi
+l4feis
l3f4lÃĪ
-lf3led
-lf4lÃķ
+lf3lo
l3f4lu
lf3ram
-lf3res
-lf4ru
-lf4rÞ
-lf2spe
-lf2sti
-lf2su
+lf2s
+lf4spe
+lf2tr
+lf4u
lfun2
lfur1
+l3fÞ
2l1g
+lg1art
l3gas
lga3t
+lg1d4
lgen2a
-lgene2
+lge3ra
lgerÃĪu3
l2geti
-l3g2i
lg2lÃķ
l3go
-lg4p
-l3gra
lg3re
l3gro
-lgung4
2l3h2
-4lhe
3lhi.
-4lhu
1li
-li1a
-lia2b
+3lia
+li3ac
li2ad
-li4am.
-lian2g
-li2ast
-3lib4
-libi1
+li3ak
+li3ar
+lia1s
+lib4
+libi3
li1c
-lich4ta
-lich4to
+li3chi
4lick
li2cka
-li2cl
-li3d2a
-l1ido
-l2idy
+lid2
+li3da
+2l1ido
+li4ds
+lid3sc
+l2ie
3lie.
-liebe4s3
-lie2br
-li1efa
-3liefer
-li1efk
-li3efl
-lie4n1a2
+liebe4s
li3ene
lien3s
-lien3t
-lie4rei
-lier4sp
-lie2s1c
+lie2s3c
+lie2st
3lig
-liga3s
-li4g3ers
-li4gl
lig4n
-li3ker
-lik2o
-likop4
+li2gre
+li3ke
lik2sp
lik4ter
-lik2ti
-lik4t1o2
-lik2u
li3l
lil2a
-li3m2a1
-limas4
-lima3t4
-2limm
+li3m2a
3limo
2limp
-lin2a
-li3nar
-2lindi
+li3n2a
+lin3al
2l1indu
li2nef
li2neh
li2nep
li2nes
2l1inf
+lings5
2l1inh
-li5nie
-lin1it
+2l1in1it
2l1inj
-lin4kan
-lin4kar
+lin2k1a
link2s
li2nol
+l2ins.
l2insa
-4linsel
+l2insc
2linsp
2linst
-2linsu
-2linsz
2l1int
-li3n2u
-2l1inv
+li1nu
+l1inv
2linz
li2o
li4om
-li3o2st
-3lipf
+li3os.
+li2p3a
3lipt
3lis.
li3s2a
-li3schm
li4schu
-lis2h
-li3shi
-3lisk
2l1isl
-2l1i2so
+2l1i4so
li2sp
-liss4
-3list
-lit4a
-l1i2tal
-li3t2ÃĪ
-l2i3t2e
-3liter
-li4t3r
+liss2
+lit2a
+li2tal
+li3te
+lit2h
lit1s2
-lit3se
lit3sz
li3tu
-li6tun
-li4tur
-litz4er
3liu
liv2e
-li2vea
-li2ves
-livi3e
-li3vr
+livi1
2lixi
-li4z3ÃĪ
+li2za
lizei3
-2l3j
+4l1j
2l1k
-l3kale
lk1alp
l3k2an
-l3kap
l3kar.
-lk1erd
-lke3r2e
+lken3t
lk2l
lk3lad
-l3k4las
lk3lic
+l2k3lÃķ
l3k4lu
-lk2men
+l3k2me
lk4ne
lk5ner
-lko2f
-lk1ofe
lkor2b1
-lk3roc
+lk4ra
+l2k3ru
lk2s1
-lk3sÃĪn
-lk3si
-lk4spe
+lk3sÃĪ
lks3t
-lkt2
+lk4stÃĪ
lk2Þ
4l1l
-l2labk
+ll1abb
+lla4ben
l2labt
-l3labu
-l3lage
-lla3gl
+ll1akt
+l3l2al
l2l1am
-lla2ma
-l3lame
-ll2ami
-ll2anb
-lla4ner
-l4lani
-l3lans.
-ll4anwa
+ll3a2ma
+lla2n
+ll2anw
ll1anz
-l4l3appl
+l3l2ap
ll1arm
-l4latm
-ll3att
-ll3aufg
+ll3aug
ll1aus
+l4lausf
ll1ÃĪm
-l2lÃĪr
llb4
llch4
ll3d4
-ll5ebene
-l3lec
ll1ech
-lle3er
l2l1ef
-ll1eic
ll1eim
-ll2eis
-l4leise
-lle2la
-lle2m
-l2l1emi
+ll2em
l3len.
-lle4na
+lle4n3a
llen3dr
-ll5en6dun
-l4lentf
+ll3en4du
+ll2eng
l4lents
-l3lep
l3ler.
lle2ra
-ll2ere
-l6ler6eig
+l6lereig
ller4fo
ller6geb
-l8lergene
+l6lergen
l4lergo
-ll3erho
-l4l3ermi
-l4l3ernt
+ll3ernt
ll3ertr
ll2es
-lle4th
-ll1exe
+l2lex
+llf4
llg4
-lli4gan
-l2limb
+llik4
+ll1imb
+ll1imp
l2l1ind
-l4linf
ll1ins
-ll3k4
+llk4
ll3l2
-ll5m2
-ll3n2
+ll5m
+lln2
ll1ob
l2lobe
-l2l1o2f
-ll3ol
-l2lope
+l2l1of
ll1opf
-ll1or
-l6lorb
-llor2g
-l2lo2ri
+l2l1o2r
+l3lor.
+l3lore
l2l1ou
l3low
-ll1ox
-ll2sÃĪu
-ll2s1es
-ll3ska
+ll3sÃĪ
+ll3sh
+ll3s2k
ll2spr
ll3t
-llt2e
-llt2i
llti2m
ll5t4r
llts2
+llu2f
ll1ur
llus5t6
-l3ly
ll3z2
2l1m
+l3ma.
l2m3a2b
-l2m1ad
-lm1a2ge
-lm1aka
-l2m1a2m
-l3mana
-lm1apf
+l2marc
lm1art
-lm3att
lm1ÃĪst
-lmbu2
lm1c
-lmd2
-lm3e4dit
-l2m1ef
-l2ment
+lm2ei
+lm3eins
+lme4na
l2m1e2p
-lmer2
-l2m1erf
-l2m1erl
l2m1erz
-l4messa
-l2m1i2d
lm1ind
lm1ins
-l2mof
-lm1orc
-lm3p2
+l2mÃķl
+lm3p
lmpf4
-lm3s2k
lms2t
lm3ste
lm3s2z
-lm3t4
-l2mum
-l4munt
-2ln
-ln2ab
-lna2r
+lm3t
+4ln
+lna4r
ln3are
lnd2
l3n2e
-lnes2s
-l2n1in
-lnus2
+l3ni
+l1nu
l1nÞ
-l1ny
1lo
lo4ak
-3lob.
-l2oba
-3lobb
-lobe2s
+3l2ob.
+lo2ber
2lobj
-l1o2bl
+2l1o2bl
l2obr
lob4ri
-lo4chel
-l1ofe
-lo2fen
-lo4gh
-lo2gl
-lo2gor
-lo2gre
-lo3ha
-loh2e
-4l1ohr
+l1o2fe
+lo1fl
+lof4r
+lo2gau
+lo3h2e
+2l1ohr
loi4r
3lok
-4l3okk
lo2k3r
-5loks
-l4ole
-2l3o2ly
-lomÃĪ3
+lol2a
+l1o2ly
lo2min
-lo2ner
-lo4nin
lo2n1o
lo2o
2lopf
-lop2p1a
2lopt
-lor3am
-lor2an
+lo1ra
+lo2rak
lo4rÃĪ
5lorb
-2l1orc
-2l1ord
-lo3r2en
-2l1org2
-lori4di
-2lort2
-l2os.
+2lorc
+l1ord
+lo3ren
+2l1or3g2
+3lorq
+3los.
lo4sa
3lose
lo4ske
lo2spe
-lo2spr
-los3t
+loss2e
lo4ste
-lo2st4r
-4loß
+los3t4r
lo2ta
lo3tha
loti4o
@@ -12387,407 +7726,246 @@ lo2ve
lÃķ2b3
2lÃķck
2lÃķd
-lÃķ2f
+l2Ãķ2f
2l3Ãķfe
-2l1Ãķhr
-2lÃķk
-2l1Ãķl3
-2lÃķp
-3lÃķsc
-3lÃķsu
+4lÃķg
+l1Ãķhr
+2l1Ãķ4l3
4lÃķß
-4lÃķz
2l1p
-lp2ar
-lpar2k1
-l4p1ÃĪr
+l3pa
+lpe2n3
lp2f
-lph4
-l3phÃĪ
-l2phir
-lp1ho
-l3phr
-lpt4
+l2p1ho
+lp3t4
l3pu
2l1q
2l3r2
-lrau2s
-lrebs2
-lro2h
-lrÃķ2
+lrat4s
+lre1s
+lrut4
+lrÞ1b
4l1s
-ls3a2b
+l3sac
l2s1a2d
-ls2al
+l3s2al
l4s1amb
-l4samp
-ls2amt
-l2san
-ls3ane
+l4samt
+l2sang
+l2sann
+l2sanz
l3sare
-ls3a2ri
-l3sark
-lsau2
-lsau4m
-lsau4r
-l3s2ÃĪm
-ls2ÃĪug
-ls1ÃĪus
-ls2c
+l2sau
+ls2ÃĪm
l4schin
l4schmÞ
-lschs2
l2s1e2b
-ls2ele
-ls1eli
-l2sent
-ls1er
-l2serf
-l2serg
+l2s1ec
+l2s1em
+ls1ere
+ls1erg
l2serh
-l2serk
-l2serl
-l2sers
-l2serw
-lse2t
-ls1eta
-ls2ext
-ls3ha
+ls1erl
+l2s1ers
+l2s1erw
+l3s2ex
+l4s3ha
l2s1id
-l2simp
-ls2kal
-l3s4kele
-ls2ky
-lso4b
-l2sop
+l2s1imp
+ls2log
+ls3ohne
l4s3ort.
-l3s2Ãķl
+ls2Ãķ
l2spac
-ls2pe
-l2s3ph
-l2s1pir
-l3s2pit
+l3s2pi
ls2po
-l3spri
ls2pu
l3spul
-ls3s4
+ls3s2
lst2a
lstab6
-ls3tabl
ls4taf
-lstahl3
-l2stas
-l4stat.
-l4state
l4s3tÃĪti
l2ste
-l3stea
l3stec
-l3steh
l3stei
-l4steil
l3stel
-l3stemp
-l4sten
-ls4t3erk
-l5s6terne
-l5s6terns
+l4stem
+ls6terne
+ls6terns
ls2tie
l2stit
-l4stoch
-ls4toi
-ls4tol
-ls4tru
-l2s3trÞ
+ls4tr
ls2tu
-ls4tÞm
-l3suf
ls1um
-l2s1un
-ls2und
-ls3unk
+l2sun
4l1t
l2tab
-lt1abs
ltag4
+lt1ak
lt1am
-l4tame
-ltampe4
-l3tan.
-ltan3d
-l2t1ap
-lt1ara
-ltar8beitn
-l3tark
+l4t3ame
+lt3and
+lt1ang
+l4tarm
lt1art
-ltar6tik
-l3tartu
-lt1au
-l4tauf
-lt3aut
-lt1ÃĪh
-ltbau1
-lte2c
+l2t3ato
+l2t1au
lt1eh
-l3tehu
-lt1eig
lt1ein
-lte3mi
+l2t1eis
+l4te4lem
lt2en
lten6gel
-lten4sp
-lt3ents
-lte4ral
-lter4fa
-l3t2erg
-l4terhe
+lter3a
+lter2f
+lt2erg
lter6ken
-lter4ku
+lter6leb
lter4nÃĪ
-lte2ro
lt2erÃķ
-lter4se
-l4t1es3k
-lt2est
-lte3str
-lt2et
-l2t1h
-lt3hag
+l4t1e4sk
+lte2th
+l2t1eu
+l2th
l3thas
-l4t3hei
-lthol2
-l3t2hu
-lt1ide
+lt3ho
+l3thu
ltimo4
-l3tine
-l2tiso
-l3t2i3t
-l2t1ob
-l2t1o2f
-l4tord
-l4torg
-l4t1o2ri
+l2tob
+l2t1of
+l2t1o2ri
lto2w
+l3tÃķ
lt1Ãķl
lt1Ãķs
-l4t1Ãķt
+lt1Ãķt
ltra3l
lt3rÃĪu
-lt3rec
-lt3rei
-lt3ris
-lt3rol
+l2t3re
+lt4rie
+lt3roc
+lt3ros
l2t3rÃķ
-l2t3rus
l4ts
-lt2se2l
-lt4s3ort
-lt2s1pe
-lt3s2ph
-lt2sti
-lt3t
-l3tub
+lt2so
+lt4stab
+ltt2
lt1uh
l2t1um
-lturan4
-lturen4
+ltu4ran
ltu2ri
l3tÞ
lu1an
-4lu2b3
+4lu4b3
luba2
lubs2
lu2dr
-lu2ec
lu2es
-lu2et
-1lu2f2
+1luf
2l1ufe
2luff
-lu3fo
-luft1a
-luft3e
-luf4tei
-luft3r
+luf2t1a
+luf2t1e
+luf2tr
lu2g1a
lu2g1e2b
-lu2gei
-lugen1
lu2gi
-lug3l
+lu4g3l
lu2go
lu2g3r
lug3sp
lu2gu
2l1uh
lu1id.
-lu4ig
-lu1is.
-lul2Ãķ
-2lumd
-lume4
+lume2
2lumf
-2lumg
-2l1umh
+2l1umj
2lumk
2luml
-l2ump
-1lumpe
-lum2ph
-2lumr
2l1ums
-lu3mu
-2l1umw
-2lumz
+l1umw
1lu2n
2l1una
-lund4
2l1unf
lung4sc
2l1uni
-2lunr
-2l1uns
2lunt
2lunw
4luo
-l2ura
-lu2r1an
-lu2rat
-lu2rei
-2lurg
-l2uri
-lu2ris
+2lur
l1urn
-lu2ro
-2lurs
l1urt
-lu4ru
-lu3sak
2luse
-lu3si
lu2sp
lus4s3a
lus2s1c
-lus4sel
-lus4s3er4
+lus6serf
+lus6serk
+lus6sers
lus2s1o
-lus4s1p
+lus2s1p
lus2s3t
lus4stÃĪ
-luss5tr
-1lu2st
-lus6terl
-lus4t1o2
+1lu4st
+lus4t1a
lust3re
lu2s1u
-lu2t1a4
-lu4tas
-lu4t3au
+lu2t1a
lu2tÃĪ
-lu2t1e4g
-lu2tel
+lu4teg
luter2
lu4t3erg
-luter4s
-lu6t5ersa
-lu2thy
-2luto
-lu2tob
lu2t1o2f
lu2top
-lu4t1or
lu4t3r
lut5schl
+3lux
2lÞb
-3lÞbd
-lÞck4e2
-lÞcker3
5lÞd
-lÞf3te
-lÞ2hel
lÞh1l
-2l1v2
-lva3
-l3vl
-lv3r
-4l3w4
+2l1v
+4l3w
2lx
1ly
-ly1a2
+ly1ar
ly3c
-ly3es
-ly1l
2lymp
3lyn
ly3no
ly1o
-ly3t
ly1u
2l1z
-l2z1ac
-l2z1ag
-l2zan
+l2z3ac
+l3z2an
l2z1ap
-l2zat
-lz1aus
-l2zÃĪp
-l2zÃĪr
-lze2l
-l2zele
-l4z3enth
-l2z1ep
-l2z1er2h
-l2zerz
-l2z1id
-lzi4m
-lz1imi
+lz1ar
+l2z1ÃĪr
+l3zen
+lz2erk
+lz1ind
lz3l
lzo2f
l2zÃķ
lz3t2
l2z1u4fe
-lzvol2
lz1w
lz2wec
-l2zwu
1ma
-3ma.
-maa2
m1ab
-m3a2bar
-m2abÃĪ
-2m3abb
m2abe
-2m3abf
-2mabg
-2mabh
2mabk
-m2abli
-2mabm
-ma2br
-m2a3b4ra
+3m2ab4r
2mabs
-2mabt
-2mabz
ma3chan
-mach2e
-mach8terh
-mach8t7ers
mach4tr
ma2ci
-mack2s
-2m1act
-mada2m
-m2adÃĪ
-ma2del
-ma3dj
-2m1adm
-2m1a2d4r
+ma3da
+m2ade
+2madm
+ma2d4r
ma4d2s
-mae4
-ma1f4
-mag2a
+ma1f
ma2ge.
ma2geb
ma2gef
@@ -12801,725 +7979,449 @@ ma2gew
2m1agg
magi5er.
magi5ers
-ma3gl
ma3g4n
2m1ago
-ma3ha
-mahl4st
-ma1ho
-mai4s3e
-ma2ke.
+mai4se
2m1akt
-mal2ag
mal1ak
ma4lakt
ma2lan
+ma4l3at
ma2lau
-ma2lÃĪr
-2mal2de
-m2aldi
ma3le
-ma4leb
mal2er
-ma4lex
mali1e
mal3lo
2mallt
-ma2lon
-ma2lop
-m2alp
-mal3t
malu4
ma2l3ut
-3malv
-ma2mid
mam3m
-2m1a2nal
-ma2nar
-2m1a4n4at
+2m1anal
ma2nau
-2m1anÃĪ
2manb
-man2ce
-3man3d4
+man4ce.
+man3d2
+man3ers
ma2net
m2anf
-mang2
-2man3ga
-m4angel
2m1angr
m2anh
-3manip
2manl
-m2anle
-3m2ann
-2manod
-2m1ansa
+m4ann
+2mansa
2mansÃĪ
-man2t1h
-2mantr
+2mantw
manu3
-ma4n1ut
-2manw
2manz
-m1anza
ma2or
-ma2phr
-ma2po
-ma1q
-m2ara
-4marag
-mar2an
+2m1apf
+m2app
2marb
mar3g2
-3ma1rh
ma3r2i
-m2ark
-mar2kr
-4mar2o
+4ma3r2o
maro3d
4marr
-mar6schl
mar6schm
mar6schr
-mar2sp
-mar2su
-2m1arti
ma3r2u
m1arz
3mas
-ma3s4a
-mas2e
-ma3s2p
-masse4n3
-mas4ta
+ma3s2pa
+4m1aspe
+massen3
mas4tel
-mas2ti
-mas4to
-mas4tr
-ma4s3z
+ma1s4tr
3maß
ma2ta2b
ma2tan
-ma2tÃĪ
-m3a2tel
+mat4c
+ma2tel
ma4t3erd
-ma4t3erz
-m4atme
-2matmo
-ma2to
-ma4tort
+ma5tri
mat3se
mat3sp
-matt4r
mat3url
2m1au2f
3maul
ma3un
-mau3r
-2maus
-mau2ta
+2mausg
m4ay
ma1yo
1mÃĪ
2m1ÃĪhn
-mÃĪh1r
-4m1ÃĪnd
+mÃĪ1i2
+2m1ÃĪnd
2mÃĪo
-2m1ÃĪp
-2mÃĪq
-mÃĪr1
-mÃĪr2kl
-mÃĪr2z1
+m1ÃĪrg
+3mÃĪß
mÃĪ3t4r
mÃĪu2s1c
2m1b2
mbe2e
-mber2e
-mbe3ri
-mbert4
-mbi3er.
-mb4l
-mble1i
-mb4r
-mbu3sc
+mb6l
+m3b4r
mby4t
2mc
m3ch
-4m1d
-m2dan
-m2d1a2s
-md1ÃĪr
-mde2a
+2m1d
+md1a
+m2d1ÃĪ
m2dei
-mde2m
-m2d1emi
-m2d1ent
-mder2
-m2d1erl
-md2Ãķ
-md3ras
-md3s2e
-mdt4
+mds2e
m2d1um
1me
-me3an
-me3at
meb4
me2ben
-3mebr
-me1c
-medi3e4
-me1e2m
-mee2n
+m2e1c
+medi3
+medie4
+medien3
+2medy
+me1ef
+mee2n1
mee4r3ei
-2m1eff
-mega3
-me4gel
+mega1
3meh
-meh6l3er
-mehrer4
2m1eif
2m1eig
-m2ei3l2
+mei3l2
mein4da
-meinde3
-meiner6k
-mei6nerl
-3m2einu
-3m2eist
+me1i4so
+3meist
me3lam
-me3l4ant
-me2l1au
-melb2
-mel3d2
-melde3i
+me2lau
+3meld
me2lek
-2melem
me2ler
melet4
2melf.
-3melk
-mel4k3ei
mell2
-3melo
-me2lob
mel2se
mel5t4
6mel6tern
-2m1e2mis
+2m1e2mi
2m1emp
-2m1e2mu
m2en.
-men3ab
-me3nage
-me4n3an
+mena2b
+me3nal
men3ar
-me4nas
men3au
-2m1endl
-menen1
-4men4gag
+2mendl
men3ge
-me2nim
-men3k4
-men2on
-men4se.
-men4sem
-6mensemb
-men4sen
-men4ser
-men4ses
-mensi4d
+m4ens
+men4sk
men2so
-menst4
-m4enta
-men4t3ak
-m4entei
-ment5eig
-men6t5ers
+men3ta
+men6tanz
2mentn
ment4sp
+4m3entwi
me1o
2meou
2meÃķ
-2mepa
-2m1e2pi
-3m4er.
+3m2er.
me1ra
-mera3l
-mer2a3s4
-me2r1e2b
+mera1f
+me2r3ap
me4rens
-mer4err
-mer4erw
-4m3er4gÃĪn
+mer2er
+4m3ergÃĪn
merin4d
merin4t
-4mer4klÃĪ
-mern3s2
m4ersh
-mer5sm
-mer6stel
-mer4sto
-mert4r
-merz6eng
+merz4en
3mes
+mes1a
me2sal
me4sÃĪ
4meser
-mes2po
-mes1pr
-2mes4sa
-mess3an
+2me3sh
+4m1essa
mes6ser6g
-mes4s1o
-mes2sp
+mes2s1o
+mes2s1p
mes2st
-mes3ta
+meste2
me1sto
-me3su
-me3sze
-me3ta
-meta1s
+4mesu
+m2et
+me3t2a
me3th
-meto1
-me2tÃķ
-me4trig
-met6t5en6d
-me3tu
meu1
2m1ex
-me2xe
1mÃĐ
2m1f4
-mfi2le
-4m1g2
-mgang4
-mglim2
-4m1h2
+mfi4l
+2m1g2
+2m1h4
1mi
-mi1a
-mia2b
-mi2am
-2m1iat
-mi1ÃĪ
+mi2ad
+mi3ak
mibi1
-mic1e
-mi1ch
-mi2ci
+mi1c
mi3da
-mi2di.
-mi3dr
-2midy
mie3dr
-mi3ele
-mi4e3no
+mi2e1i
+mie3l
mien3s
+mi2er
mierer4
-mie1s
-mie2ti
-mie4to
-mie2tr
-mi1f4
-3mige
-mi3h
-mik1an
-mi3ke
-mi4kel
-mi4kens
-mi3k4l
+mi4et
+mie4ti
+3mig
+mi2kar
+mi2ki
mi2ku
-3mil
mi3l2a
+3milb
+3milc
milch1
mil4che
mild4s
-mi3l2i
-mi3l2u
-4milz
-m2im2a
-2m1imm
-2mimp
-min2ac
-mi3nak
-min5anze
-m2inde
+2m1imp
minde4s
-2m1indu
-mi2nef
-miner1
-mi4n3e4ri
+min2en
min2eu
-2minfo
min2ga
-ming3s
-2minh
+ming3s4
mi3ni
-mini3k4
-mi3nod
-mi2nof
-2m1inse
-m1inst
-mi3nu
+min2o
+mi1nu
+3minz
+mi2o
mioni1
-mi1p
3mir.
+mi3ra
3miri
3mirs
3mirw
-3mirz
-3mis.
mi2sa
mi4scha
-misch3w
-mi3se1
-2m1i2so
-mis2pa
-mi2spe
-mis5sar
-mis4ser
-mis4st
-mis3te
-mi1sto
-mi1s4tr
-3misu
+mi4schn
+mi4sch3w
+mise1
+mi2ste
3mit
mi2ta
-mi2t1h
-mi2to
-mi2tr
+mi2th
+mi2t1r
mit3s2
mit5sa
-mit3ta
-mit3t2e
-mitte3s
+mi5tsu
mi2t1u
4mitz
-mi3v2
2m1j
4m1k4
-m3kn
+m3ka
+mk5re.
4m1l2
ml3c
-m3le
-ml3f
-ml3k
-m3lo
-ml3p
ml3s
-4m1m
-mma3a
+2m1m
+m2mab
m2m1ak
m2m1al
+mm1ang
m2m1ans
mm1anz
-m2m1ap
mm1art
-mma1st
-mm1aus
-mm1ÃĪu
+m2m1au
mmd2
-m2m1e2b
-m2m1ef
mm1ein
-mme2l1a2
mme4lin
-mm2ene
-mmen6te.
-mmen6ten
-m4mentl
-m4ments
+mme4na
m4mentw
-mme2r3a
+mme2ra
mme4rec
-mmer6geb
-mme2s
-mme3sc
-mme4sz
-m2m1eu
-mmi3el
+mme2sa
mm1inb
+mm1inf
mm1inh
-m2m1ins
+mm1ins
mm1int
-mm2is
mmi3sc
-mmisch4
mmi1s4t
-mmi5tw
-mm3m2
+m2m1Ãķ
mm3p2
mmpf4
mm2s
-mm3sa
-mm3s2i
-mm3so
-mm3s2p
+mm3si
+mm3sp
mm3sta
-mm3sti
+mm3str
mm3te
m2mum
-mm2un
-mmu3r
mmÞl2
mmÞll1
2m3n2
m4nesi
1mo
-2m1o2be
-3mobi
+moa3
2mobj
3m2od
-mo3de
-mode1s
+mode3s
mo2dr
-m1of
-mo2fe
-3mog
-2mog.
-mo2g1al
-3m2oh
-moh2a
-moi3r
+4mog.
+mo2gal
+3moh
+mo2i3
mo2k1l
-mol3d
3mom
mom2e
3m2on
-mo2nan
mo2nÃĪ
-mon4dac
-mon4del
-mon2do
-mond3r
-mo2ner
+mo3ne
+mo4n1er
mon2s3
-mon3sa
-mons4e
-mon3s4u
-mont2a
-mon3th
-mo1ny
-3m2o2o
-2mo1pe
-mo2per
-2m1opf
+mon3su
+3mo2o
+2m1ope
2mopt
mo1ra
-mor2an
-mor2d3a
+mo2rar
+2m1orc
+mor4d3a
mor2dr
-mo2rei
-mor3g
+mo2rer
morgen5s6
-mor3t2
3mos
-mo4ska
-mos3s
+mo3s4ta
moster4
-mos2ti
-mo3t2h
-mo5to
-mot4r
-mous4
-2m1ox
+3mot
+mo3ti
+m1o2x
mo1y
1mÃķ
-mÃķbe2
mÃķ2c
-2mÃķ2f
4mÃķk
-2m1Ãķl
+m1Ãķl
4m1p
mpa3ne
-mpe2la
-mpe4lin
-mpe2n
-m2p1ene
m2pf
-mpf1ef
-mp4f3erf
-mpf3erg
-mp6fer6ge
+mp4f3erg
mpf3erp
-mp6ferpr
-mp4f3err
-mp4f3er4z
+mpf3err
+mp4f3erz
mp2f3l
mpf1or
-mp2fr
-mp1haf
mp1hos
-mpin2
-m3plÃĪ
-mp3lei
+m3pi
+mpi3as.
m4p3lem.
m2p3len
m2p3les
-mp4lis
m3pon
-mpor6tag
-mpor6ter6
-mp3sh
-mp3str
+mp3ta
m3pu
2m1q
-2m3r4
-4m1s
-m2sam
+2m3r2
+2m1s
m2san
+ms3and
m4sap
ms1as
-m3sat
m2sau
-msau3e
m3sÃĪ
-m4s1ÃĪn
m3sc
msch2
m4sco
m3se
-m4s1e2d
m4s1ef
-m4seig
-m4sein
-m4se2le
-mse2n
-m4s1ene
-m4sent
-ms1erf
-ms2erh
-mse2t
-m4s1eu
+ms1erw
m4sex
-m2s1o2d
+ms1ini
mso2r
ms1ori
m2spÃĪ
m2sped
-m4spl
ms2po
m2spot
m2spro
ms2pu
-ms3s4
-mst2
-m6stag
-m3stÃĪ
-m3steh
-m3stei
+ms3s2
+m4stag
m3stel
-ms2ti
-m2stit
-m3s4to
-m3s4tr
+m3s2ti
+m3sto
+ms4tr
ms5trÃĪ
+ms5tren
m3s2tu
ms4tÞ
m2sÞ
-m4sw
m3sy
-m4szi
-4m1t
+2m1t
mt1ab
mt1ak
-mta2m
+m3tam
mt1ar
-mt3aug
-m2t1e2d
+mt3are
mt1ein
-mt1eis
mt1elt
-mt1emi
-m4tenga
-m4t3engl
-m4tentf
-m4tentg
-m4t3en4tr
-m4tents
-mter2
-m2t1erb
-m4t3erei
m2t1erf
-m2t1erg
-mt1erh
-m2t3e2r4i
-m2t1erk
+m4t1erg
m2t1erl
-mter4n
m2t1ers
m2t1ert
-m2teta
+m4t1eta
m2t1eu
-m2t1ev
-m2t1h
+m2th
mt3ho
-m2t1i2d
-m2tim
-m2t1in
-m2t1i2r
+m3ti
+m4t1im
+m4t1ins
+m4tint
mti2s
mtmen2
-mt1ob
-mt1op
-m2t1Ãķl
+m3tÃķ
+m4tÃķl
mt1Ãķs
-m2t3ro
m2trÃķ
-m4ts
+m4ts1
mt2sa
-mt3sco
-mt2s1e
-mt3send
+mt2se
mt3s2ka
-mt3s4kel
-mts3tÃĪt
-mt3stu
-mtt4
+mt2spr
+mt4s3tÃĪt
+mtt2
mt1um
-mtu3re
+mt1urt
m3tÞ
mt3z
1mu
mu1a
mu3cke
-mu4ckel
-2m1uh
+2m3uh
mu3la
-3muld
-mul4lau
-3mult
-3mumi
-m1ums
-mum2s1p
+2muls
3mun
-mundan4
-mun6derf
-mu2ner2
-4m1unf
+mun2d1a
+4m3unf
4m3ungeb
mu3ni
-mu4nin
-4mu4niv
-4munw
+m4unk
+m2unr
+munt2
4munz
+mu3ra
mu4r1u2f
-3m4us
+m4us
+3mus.
mu4s1a
+3musc
+3musi
mu2s1o
mu2sp
-mu2s3t2
-4must.
-must4e
+mus3t
mu2su
mut1au
-mut2st
+muts3t
+mut4str
1mÞ
2mÞb
3mÞh
mÞ2her
-mÞhl1a
mÞl4len
3mÞn
3mÞt
@@ -13529,1383 +8431,831 @@ mvoll1
2m1w2
mwa2
mwa4r
-mweg4s
mwel4
mwelt3
mwu1
-3my
-my1al
-my2s3
-2m1z2
-mzug4
+1my
+my4s
+2m1z
1na
3na.
2n1ab
-3naba
na2bÃĪ
-naben3s4
-n3abh
-3nabi
-n3abk
-na2b3l
-na2bor
+4nabg
+4nabh
+na2bl
+n2abo
na2br
-nab4rÞ
-4n3abs2
-na2bus
+4n3abs
+4nabt
3nac
-n4ac.
na2ch1
-nachen6
-na5chen.
-n3achse
-nach3sp
-nach8t7ersc
+na3chen
+nach3s
+nach8ters
nacht8raum
-n1ada
-na3dab
-3nade
-na3de.
-nadel1
-na2der
-4n1adl
-4n3adm
-n1a2dr
-3nae
-na3el
-2n1af
-na1fra
-nag2a
-na3ge.
+4nadd
+n2ade
+4n1a2dr
+n1af
+na1f4r
+3n2ag
na2gem
-4n1agg
-n1a2gi
-na3gin
-na3g4r
3n2ah
na2h1a
n4ahm
-4n3ahn
-4n3aho
+n3ahn
3nai
nai2e
n1aig
-4n3air
-nai4re
-n2ais
2n1ak
-3nakÃĪ
+na2ka
3nako
-na2kro
-4nakt
n2al.
na2l1a2
-nal3am
-na4lar
+na4lal
na2lÃĪ
-2n1albk
-n2ald
-nal3da
-nal3ei
-na4l3ent
-na6lerei
-na4ler4g
-na4lerm
-na4l3erw
-nales2
-nal1et
-nal1ex
-nalg2
-na2lid
+3n2ald
+n4ale
+na4lent
+na2let
+nal3l2a
+nalmo2
na2lop
nal2ph
n2als.
-nal3t
-nalt2a
-nal5tr
-n2alty
+nal3t4
na2lu
2naly
-na2mat
+n4am.
3name
na3me.
-4na2mei
-n4a3men
-namens3
-4n1a2mer
-na2mid
-na2min
+n4amen
+namen4s3
+4n3a2mer
na3m4n
-3n2amo
-n1amp
-nam4sp
+3namo
2n1amt
namt4s
-na4my
-n1an
-4na2n4a
-na4nat
-n3a2nÃĪ
-4n3anb
-n3and2
-nan1eu
-4n3anf
-4n3ang
-4nanh
+2n1an.
+4n1a2na
+4nanb
+n1and2
+4n1ang
+2nanh
2nani
-4n3ank
-4n3anl
-3n2ann
-4n3anna
-4nano
-nan2o3b
-4n3anp
+4nank
+2nanl
+3nann
+na3no
+n1anp
2nanr
-4n3ans
+4n1ans
2nantr
2nanw
-n2anz.
-nanzen4
-nan6zene
-nan6zeng
-nanzer4
-na3ot
-na2per
-n1apfe
-4napfel
-n3a2pr
-n1aq
+nap2si
n1ar
5nar.
na2r1a
2narc
n2ard
-n2are
-n4are.
+4narg
3nari
n2ark
n2arle
2narm
-n2aro
-na2rom
-n2arr
-n2ars
-2nart
-n2arta
-n2arth
+4nart
+n3arti
na3r2u
3nas
-n4as.
-na3sÃĪ
+n2as.
na4schw
-4n1a4sp
-nas2s1c
-4n1assi
-nas4ta
-na2str
-4na2sy
+4nasp
+4n1a2sy
nasyl2
3nat
-n4at.
-na4t3au
-nat1ei
-na2tem
-na2t2h
-4natm
-nat2o
-4natom
-5nator
-nat1r
+n4ata
+n3a3t4h
+na4the
+4n1atm
+nats1
nat4sa
-nats1e
-na3tu
+nat4sc
+4natt
n1au
+4nauf
nauf4fr
-nau2fr
+n3aug
5naui
3n2aul
4nausb
-4nausd
-4nausf
4nausg
-4nausl
n2auso
-4nausr
-4n3auss
+4nauss
4nausw
-4nausz
-3nav
-nave4
navi5er.
navi5ers
1nÃĪ
-2nÃĪb
-3n4ÃĪc
+3n2ÃĪc
3nÃĪe
-2n1ÃĪf
-3nÃĪg
-nÃĪ2hi
-3nÃĪhm
2n1ÃĪhn
-nÃĪ2hu
+3nÃĪi
2n1ÃĪ2m
2n1ÃĪn
-4nÃĪpfel
-2nÃĪq
-nÃĪr4s5t
+nÃĪr4s5
+n1ÃĪrz
+3nÃĪs
nÃĪ2sc
n2ÃĪss
2nÃĪu
3nÃĪ1um
2n3b4
-nbais4
nbe2in
-nber2e
+nbe3n
+nbe3r2e
nbes4
+nbu2s
nby4
2n1c
-n2c3ab
-n3can
-n3ce4n
-n3ces.
-n3chl
+n3ce2n3
nch3m
n2ck
-ncor2
-n3cr
-n3cu
-4n1d
-nda1f
+2n1d
nd2ag
-n3dai
n2d1ak
-n2dana
-n2dani
-n2danz
-nd1arr
-n3dat
-nd3att
-nd1au
-n2daut
-n2dax
-nd1ÃĪng
+n2danl
+nd1ann
+n2d1anz
+ndat2
+n2d1au
nd1c
nde4al.
-n2d1ede
-n3dee
n2dei
-nd3elfe
-ndel3l
-ndel4s3a
-ndel6s5en
-ndel7ster
-nde4mot
-nden3sk
+nde4lÃĪn
n4dentl
-n4dents
-nde3o2
-n5der.
-n5deren
-nd2erh
-n5deri
+n4d3ents
nder6lÃĪs
nde4rob
-n4de4ros
-n6der6sat
nder5ste
-n3d2es1
nde2se
-ndes3s
+nde4spe
ndi2a3
-nd1imm
+n2dob
+ndo2be
ndo1c
-n2dof
-ndo2n3a
-n2dopt
+nd1op
nd1or
-n2do2ri
-nd2os
-ndo1st
-n2d3ott
+ndo2ri
n2dÃķ
-nd2Ãķs
-nd4ram
n2d3rat
-nd3rau
n2d3re
-n2drif
-n2d3roc
-n2drod
-n2d3rÃķ
-n2drui
+n2drob
+nd3rol
+n2drÃķ
n2d3run
-nd4sene
+nd2sor
nd2spr
nd3th
+nd3ti
ndt4r
n2duns
-ndwa5re
ndy3
1ne
3ne.
ne2ap
-3neas
ne3at
-ne3au
-4n3ebene
ne2bl
2n1ebn
-neb4r
2nec
3neca
-3nece
-ne2ch
-ne1ck
-neck2a
-ne2dit
-2nee
-neei2
+3ned
+2nee3
+ne2e2i4
ne3ein
-ne3eis
-neen2
-nee1r
-neer2e
n1ef
-n2ef.
-n2e3f2a
-2nefr
-2n1egg
-neg4l
-n1e2go
-neg4r
-n1ehe
+neg4
2ne2he.
-2nehem
2nehen2
-nehe2r
3nehm
-4n3ehr
+4n1ehr
2n1ei
-3neia
-4neic
-nei4dei
-nei4dr
4neier
+4neif
3neigt
-3neigu
-nei4la
-4neing
-4neinh
-4neink
-4neinl
-4neinz
-4neip
-neiss4
+4n3eing
+4n3eink
ne2ke
-2n1eks
-nek3t2
-2nekz
-ne2la
+nek3t4
+ne2l
+3nela
nel3b
-n1e2le
+2n1ele
4nelek
4nelem
ne3len
-ne3lex
-nel2i
-ne3lid
-ne2lit
+ne3li
3nelk
n2ell
-nel2l1a
-nel4lei
-neller6f
-3ne3l2o
-3nelu
-3n2em.
-4n1emb
-4n3emp
+nel4la
+3ne3lo
+3ne3lu
+n2em.
+2n1emb
+nem4e
+n1e2mi
+2n3emp
2n1ems
-4nemu
3nen
n4en.
-n2en3a
-nen4am
-ne4nan
+n2en3a4
ne2nÃĪ
n2enb
n2enc
-nen4dar
4n1endb
4n1endd
4n1endf
n1endg
4n1endh
4n1endk
-n1endl
4n1endp
4n1endt
4n1endw
-nene2b
+ne2n1e2b
nen3ei
-nene4m
nenen1
ne4nene
-nen3erb
-ne2n3eu
n2enf
-4n1engb
+4nengb
+nen4ge.
nen4gen
-4n1engs
-4n1engt
-n1engu
+4nengs
+4nengt
n2enh
-ne4n3i
+ne2ni
n2enj
-n2enk2
-n2enm
-nen4nar
-ne2no4
-nen3s4e
+nen3k
+ne2no
+n2ens
+nens4e
nen3sk
-nen3s2p
5n2en3t2a
-4n1entb
-4nentd
-4nentf
-5n2enti
+n1entb
4n1entl
4nentn
5nentr
-4n1ents
+n1ents
4n3entw
4nentz
-ne4n3u
+ne2n3u
n2env
n2enw
-nenz4er
-ne2o3b
-ne2oh
-ne2or
-neos4
-ne2pen
+n2enz
+ne2ob
+ne1os
2nepf
-2ne2pi
-2nepo
+2n1epo
ne2pos
-nept4
-n4er.
+n2er.
ne1ra
ne2rab
-ne2rac
ne2r3af
-ne2rag
ne3r4al
-ne2ram
+ne2r3am
ne2ran
-ne2r3ap
-n2erat
-ne6ratio
-ne3rato
+ne2rap
ne2rau
-n2erb2a
-4n3erbe.
-4n3erben
-2nerdb
-ner4dig
+nerb2
+4nerbe.
+4nerben
+n1erbi
nere2
-ne2r1eb
-ne2rec
+ne2reb
n1erf
-4nerfas
-3nerfr
+4n5erfo
+nerfor4
2nerfÞ
-2ner3g4
3nergr
n1erh
4n3erhÃķ
3neri
n2erj
n1erk
-5nerka
-n2erkÃķ
n2erli
2n1erlÃķ
-n1ermi
-2n1ernÃĪ
-4n3erneu
-2n1ernt
-n1eros
-n1erÃķf
+ner4mit
+n2ern.
+n1ernÃĪ
+ner4neu
+4n1ernt
ne1rÃķs
-n2ers.
-2n1ersa
-3nerse
-ner4sk
-4n3ersts
-nert4
-3nert.
+n2erp
+3n2ers.
+n3ersa
+n2ert.
ne2rup
-3n2erv
-4nerwar
+n2erv
2n1erz
-n2es.
-ne2sal
-nes2an
-n4ese
+3n2es
+n4es.
+nes4c
ne2sei
-ne2s1ev
-2ne3sh
-ne3si
+ne2sev
+nesi1
ne3ska
-ne2s1of
-ne2s1or
+nes1o
+ne2sor
ne2s1pa
-4n1es2si
-nes4sig
+4n3essi
ne1sta
-ne2ste
nes3ti
-2n1est3r
-4nesyn
-3neß
-ne2tab
-2ne4tag
-net1ak
+ne2tad
+ne2t1ak
ne2t1an
-2ne2tap
-2ne2tat
-ne4te2l
+ne2tap
+n1etat
+ne2tau
ne2th
net3ha
-ne3ti
-ne4tin
-ne4tob
-n2ett
-net3ta
-net3te
-net3tr
-2n1e2tu
-net4zer
-net2z1i
+nett4sc
+n1e2tu
+net2zi
ne2u
neu1c
-neu4ere
neuer4f
neuer4k
-neuer4r
neuer4s
neuer4w
-neu3g4
+neu3g
2n1eup
neur2
-neu2ra
-neu3t
-3n2evi
n2ew
-ne3wa
2n1ex
-ne2xi
-5ney
3nez
-3nÃĐ
+1nÃĐ
2n1f
-n3f2al
+nf1ak
nfalt4
-n3f2ang
-nf4ar
-n3f2ÃĪ
-nfe2i
-n3f2en
-n3f2er
-nf2es
-n4fex
-nff4
+n3far
n3fi
nfi4le.
-nf4le
+nf4l
+nf5lin
nf2o
nfo1s
nf4r
-nf3s2
+nf3s
nf2tan
+nft2o
nf2t3r
nft4st
-nfts3tr
-nf3tu
n2f1u
4n1g
-n3gabe
-ng1abt
-n2g1a2c
-n2g1ad
+ng2abs
+n2g1ac
+ng1ad
n2g1ak
-ng1a2me
-ng3anda
-n2ganh
-n4ganl
-ng1ans
-ng1ant
-ng1are
-n3g2ars
-n2g1a2v
+n2g3a2m
+n2g1and
+ng2anf
+ng1anz
n2g1ÃĪl
-ng3d
-n2g1eif
+ng3d4
+n3gef
n2g1ein
-ngelb4
-nge3l4ei
-ngelt2
-n3g4en
-n5gene
-nge5nerw
-ngen3sa
+ng2en
+ngen2a
+n3ger
nge4ram
-n2g1erg
-nger4zÃĪ
-n3g4es
-nge3sa
-nge5t
-ngg3s
+n4g3erse
+nge4zÃĪn
+ng3g4
ng3hu
-n2g1id
-ng2lad
-ng2lÃĪs
+n2g1i2d
n2glic
-ng4lok
-n3glot
+n2glo
+n3g2loc
n2gn
ng3ne
-n4g3ni
-ng4nom
-ng2nu
-ng2ob
-n2g1op
-n2g1or
-ngo2ri
-n2gÃķ
-n2g3rai
-ng4ran
-n2g3rat
+ng1or
+n3gra
+ng3rat
ng3roc
-ng3rost
-ng4s3au
-ng4scr
+ngsa4g
+ngs3au
+ngs3c
ng4s3e4h
-ng4sek
-ng4sens
-ng4spar
-ngs5tan
-ngs4teu
-n4gt
+ngs3pa
ng3ts
n2gum
-ngung4
-ngzei4t
-4n3h2
+2n1h4
+n3han
+n3har
+n3hau
+n3hÃĪ
+n3he
nhe2r
+n3hu
1ni
-3n2ia
-ni3alo
-ni2ar
-nibb4
-nic4
-ni1ce
+3nia
+nib4l
+nich1s
+nicht5er
+nich8ters
n1id
3n2id.
-ni3da
ni2de
-2nidea
-ni3d4r
-2n3idy
-n2ie
+ni3dr
+n4ie
nie3b
ni1el
nie3l2a
nie4n3
ni3ene
-ni3eni
-nie4rei
-ni4erna
-nie2sa
-ni2eu
-nife4s3
-ni1fl
-niga2
-ni2g1ab
-ni2g1am
-ni2g1an
-4n3i2gel
-n4igen
+ni1ero
+nifes3
+nig2a
+2n3i2gel
2niget
-ni4gl
-nig3li
-ni2gn
+nig3r
+ni2gre
nig4sp
-nihi3
+3nik
+ni2kal
ni2kar
-3nike
-ni2kel
-ni3kerh
-ni2ki
-nik3ing
-ni2kor
-ni2k3r
-nik3t4
+ni3ker
+ni4k3ing
+ni3kl
+ni2kr
3n2il
-ni3l2a
-ni3l2i
-4nimp
+nim2o
+4n1imp
nin1
-3nin.
-3n2ina
-nin2ac
-ni2nal
-3n2inb
-2n1ind
+3n2in.
+n2in2a
+4n3ind
2ninf
-3n2ing
-ning4s
-2n1inh
-4n1ink2
-3nino
+3n2ing4
+4n1inh
ni2nor
-3n2inp
2n1ins
+n2ins.
4ninse
-4ninsu
4n1int
-ni3nu
-4n1inv
-3n2inw
+2n1inv
ni2ob
ni3ok
-ni3ora
+ni3ol
n2ip
-ni4ron
-n1irr
+ni3ra
3n2is
-ni4sam
-ni2san
-ni2sÃĪ
-nis3cha
ni4schw
ni2s1e
-4n3isol
-ni2som
-4nisot
-ni2sp
+ni3se.
+ni2s1p
ni3spi
nis3s4
-nis3tha
ni2s1u
2nit
-3nita
ni2ti
-4ni4tia
-nit2o
-3nitr
-nit3s
-nit6ter6g
-nit6t5er6k
-nit4tra
+nit4r
+nitts1
nitt4sa
-3niu
-ni3v2
+ni3tu
+ni3v
3nix
-2n1j
-4n1k
-nk1abr
-n2k1ac
-nka2ge
-n3kal
-n4kalg
-nk1ang
-nk1apf
-nk3art.
-nka3sc
-n2katm
-n2kato
-nk1aus
-n2kaut
-n2k1ÃĪh
+n1j
+2n1k
+n2k3ad
+n2k1ak
+n3k2al
+n4k3alg
+nk2am
+n2kans
+n2k3aus
+n2kÃĪh
n2k1ÃĪp
nke2c
-nk1ei
-nk2eil
nke4lei
-n4kelem
-nke4na
-nken4te
-n4k3erle
-nke4ros
-nk3ersa
-n3kesc
-nke2t
-nk1eti
-n2ketu
-nk1i2d
-n2kide
+n3k2er
+n4k3erfa
+nk4erg
nk1inh
n2k1ins
-n4klade
-n3klag
-nk3leis
-n2k3len
+nk3len
nk3les
n3klin
nk2lo
-nk4neb
-n2knis
-n2knit
-n2knu
-n2k1o4be
-n2kopt
-nko2r
-nkord2
-nk1ori
+nk4na
n2k1ort
+nk2Ãķf
n2kÃķl
-nk4rab
-nk3rÃĪt
-n4kre.
-n2k3rel
-n2kren
-nk3rep
-n2krez
-nk3ro
-n2krol
-nk2sal
-nk2se
-nk3sen
-nk2so
-nks2ti
+n2k3ro
+nk2s1al
+nks2ei
nk3s2z
nk2tak
nk2tan
-nk4tau
-nk4tent
-nk4terg
-nk4t3ern
-nkte3sk
-nkt2et
-nk2tin
nkt1it
-nk2top
-nkt1r
-nkt3ric
-nk2tro
+nk4top
nk2tru
-nkt4sen
-n2k1um
-nku2n
-nk1urh
n2kÞb
2n3l2
-nla3ge
-nle2ga
-2n1m2
-n3ma
-n3mÃĪ
+2n3m4
nmen2s
-n5mi
4n1n
+nna2be
n2nada
-nna2g
-n2nalg
-n2n1all
-nna3m
-n2nan
-nna3st
+n4n1all
+n2n1an
+n5nat
n2nau
-n3nec
-nn2ei.
-n3nelb
-nne4le
-nne4na
-nn2ens
-nner4ei
-n6n5ereig
+nn3d
+nn4ens
+n4nents
nner4fÞ
-nner6geb
-nn4ergr
nn2erh
nn2erk
-nner4la
-nn2ero
nne2rÃķ
-nn3erwa
-nner6war
+n4n3er4wa
nner2z
-nne4s1e
-nn2eu
+nne2s1e
+nne4st
nn2ex
nn3f
nng4
n3ni
-nnk2
-nn2o3b
-nn3obl
-nn3obs
n2nof
-n2nop
-nno2r
-nn1ori
-nn4sam
-nn3ser
+nn1o2r
+nn3sc
+nn3se
nn3s2p
+nn4s3pe
nnst4
-nn4stoc
-nn2stÃķ
-nn5t2a
nn2th
n2n1uf
n2n1unf
nn1ur
nnvoll4
-nnvol5le
1no
3no.
-no5at
-3n2oba
-n2obel
-2nobj
no2bla
-n2oble
+n2o3ble
3noblo
-3noblÃķ
2n1ob2s
-nobu2
-nobut3
-3noby
no1c
-noche4
noch4r
-2nod
-no2de
-no2ed
+2no2d
+no3dr
n1of
-no2fe
-2noff
-2n1oh
-3n2ohe
-no2kel
-2n3okk
-no3kr
+2n3o2fe
n3ole
no2leu
-no4lig
-no2liv
-2n3o2ly
-3no3me3
-no3mi
-3nomp
-non2e
-n1onk
-nons4
-n1ont
-2nony
-no2o
+n2on.
3n2opa
-3nopÃĪ
-no2per
-2n1o2pi
-2n1ops
-no3p2te
3nor.
nor2a
no2rad
-n2o3rak
+n2o1rak
no3ral
-no3rar
2norc
nor4da
-3nordb
-nor4des
-nor2d3r
-no3r2e
-2n1org
+nor2d5r
3norh
-3n2orl
3norm
-norm2a
-nor3mal
-3norÃķ
3nors
-2n1ort
+n1ort
3n2os.
-nos2e1
no3sh
-no5s2k
no2s3p
-2no2sti
+n2oste
nost1r
2nostv
nos2u
-no2tan
-no3tart
+no3tab
no2tÃĪ
-no4t1e2i
-no6t5entr
-no4ter2
-noterb3
-no4tex
-not1h
-no2tho
+no4t1ei
+no2tel
+no3t3h
+no4tha
no2t3in
-no2t3op
-no2t3r
+no2top
+no2tr
3nov
+3now
2n1o2x
3noz
2nÃķd
-4nÃķ2f
-4n1Ãķk
-4n1Ãķl
-n2Ãķr
+2nÃķ2f
+2n1Ãķk
+4n1Ãķ4l
1n2Ãķt
-4n3p4
-npa2ge
-npa2s
+2n3p4
+npa2g
npf4
npro1
npsy3
2n1q
-6n3r2
-nran2
-nrau4ma
+4n3r2
nrÃĪu3s
-nrebe2
-nreli1
-nre3s4z
-nro2h
-nrÃķ2s
-nrÞcker6
-4n1s
-n3sabo
+nre3sz
+nrÃķ2s1
+6n1s
n2s1a2d
-n2s1a2gi
-nsa2kr
-n2sall
-ns4alp
-n2salt
-ns4anat
-ns3ane
-n2sanm
-nsa2r
-ns2arg
-n3sark
-nsa2s
-ns4ath
-nsau4r
-nsau2s
-n2saut
-ns2av
-ns2ax
+n2s1all
+n2sang
+n2sant
+n3s2arg
+n2saus
n2s1ÃĪn
-ns2ÃĪug
n2s1ÃĪus
-n3sche.
-n4schef
-nsch5eul
+ns2ca
n4schl.
-nsch2o
-nscht4
n3schu
nsch7werd
-ns2cr
ns1eb
-nse4ein
-ns2eh
nse2ha2
nseh5ere
-n4seinf
-ns2ele
-ns3elem
-n2sem.
-n2sene
nsen4sp
-n2sepo
-n2s1erf
-n2s1erg
+ns1ent
+ns1erf
+ns1erg
n2serh
n2s1erk
-ns4erko
-ns1erl
-n4serle
-n4s3erne
-n2serÃķ
+n2s1erÃķ
ns1ers
-n4sersc
-ns3ertr
n2s1erw
-n2serz
-n2sety
-n2s1eu
-ns2ext
-nsfi2l
-ns3iden
-n3sim
-n4simp
-ns2inf
-n2sini
-nsinn2
-nsinns3
-n3sis
-n4siso
+n2s1erz
+n3sex
+nsfi4l
+n3sil
+n2simp
+n2s1ini
+nsinn4s
nsi4te
nsi2tr
-n3s2kal
-n3s2kel
-ns2kis
-n3skle
-n3s2ky
-n5smara
-n2s1o2d
-ns1of
-n4soff
-ns4om
-n4s3ont
+ns2kal
+ns2kel
n2s1op
n4s3ort.
-ns2pac
-nspa2g
-ns4pek
-ns2pel
+nsp4
+n2spat
n5s4pen
n4speri
-n2sph
+n4spers
+n4sph
n3s2pi
ns4pie
-ns4pir
n2spo
+ns3pon
n2sprÃĪ
n4s3prie
-n2spro
-n2sput
+n4spro
nsrÞ2
-ns3s4
-ns3tabl
-n3stad
-ns8tagent
+ns3s2
nst1ak
-n4stale
-ns4ta2n1
-n3stand
-nst3ane
-n3s4tar
+n3star
n2stas
+n3stat
n4stat.
-n6staten
-ns4tati
-n4stats
-n3stÃĪm
-n3s4tÃĪn
-nst5eife
-nst7einhe
+n4s3tate
+nst3eif
+n3stemm
ns4tent
-ns2tep
-nst5erge
+ns6terbe
n5s6terne
n5s6terns
-ns4teu
ns2ti
-n3s4tic
-n3stif
-n4stilg
-n3stim
-n2stob
+ns4tic
+ns4tob
nst5opfe
ns4tor
+n4strac
n4strie
-n4strik
-ns4trip
+nst4ru
ns4trun
ns2tu
-nst3u4t
-ns4tÞm
-n3suf
+nst2Þ
+nstÞ1b
+n2sty
ns2um
-ns1un
+n2s1un
ns2ung
-ns4unk
-ns2unw
-ns4unz
-ns1urs
-n2s1ut
+ns4unr
+ns4uns
n3sy
-ns4zene
+n4s3zi
2n1t
+nt3abs
n3t2a3c
-ntak4ta
-ntal1a
-nta4lin
-n4t1all
-nta2lo
-nt2alp
-n3ta3m
-n3t2anb
-nta3ne
-n4tansp
-nt1ant
+n3t2al
+nt1ang
n4tanza
-n3t2arb
+nt2arb
nt1ark
-n3t2arm
-nt1art
-ntar6tik
-nt3artu
-n2t1ass
-n2tath
-n3tatl
+nt4at
nt1ÃĪm
n2t1ÃĪu
nte3au
+nte2b
+nt1ebe
nte1e
nte3g6
nt1eh
-n3tehe
-n2teig
nt1ein
-n2t1eis
-nte4lin
-n2t1emo
-nt4en
-nte4na
+nte5lei
+nt2en
+nt4ene
nten6te.
-ntera2
-nte6r5eis
+n3ter
+nte4ras
nt4erh
-nt4erk
-nt4erm
nt4ern
-ntern4e
nt4ers
nt4ert
-nte3sa
-n4t1es4s
-nte2st
-n6testri
-n2te4ta
+n4t1ess
nteu3
-nteu6eri
nte3v
-nt1hel
-nt1hie
-n2thot
-n3thr
-nt4hu
-n2t5hum
-nt4hy
-n3t2i
+nt2her
+n2t3ho
+n3t4hu
nti3c
-ntim3p
-n4t3ind
-n4t3inf
-n4t3inh
+nti3k4l
+n2tinf
+n2t1inh
ntini1
-n5t2lem
+n3ti1t
+nt4lem
ntmen2
-ntmo4
-ntni2
-ntnis1
-nto3re
-n4torg
-n4t3o4rie
-n2t1Ãķl
-nt4ral
-nt1rau
-nt4raum
-nt3rea
+ntmo2
+n3to
+nton2s1
+n3tÃķ
nt3rec
n5t4ree
nt3reif
n5trep
-nt4repr
-nt3rich
-n4t3rieg
-n2troh
-n3trop
-n4tropi
+nt4rig
+n5trop
n2t3rÞ
n4ts
-nts2ah
-nt3s2p
-nts3par
-nt5spe
+nts2o
+nt4spar
nts2t
-nt2sur
-ntt2
-n3tub
+nt2s3to
+nt3su
+n3tu
+3n4tu.
+ntum4
+ntu2ra
ntu4re.
-ntu1s
+ntu4res
n3tÞ
nt3z
-1nu
-3nu1a
+1nu.
+1nu1a
nu4ale
-nu3a2r3
+nu3ar
nubi1
-2nu1c
-3nud
-nude2
+1nu1c
+1nud
3nue
nu2es
+nuf2
nu2fe
-3nug
+1nug
2n1uh
-3nuhi
-3nui
-n2uk4
-nu3kl
-n3u2kr
-null1a
-nulle2
-null3eb
+1nui
+nu3k4
n2um.
2n3umb
-n2ume
2numf
-4numg
-2numl
-3n2umm
-4numr
+2numg
+3numm
+2numr
2n1ums
-2n1umv
2n3umz
-nu4n
-4nuna
-2n1une
-3n2ung4
-4n3ungl
-4n1uni
-n3unk
-2nunr
-nun3s
-4nunt
-4nunv
-3nunz
-3nuo
+nu2n
+2nuna
+nunf2
+1n2ung4
+3nung.
+n3ungl
+2n1uni
+2nunt
+1nuo
2nup
-2nu2r
-nur2i
-nur3s
-nur2z
+2nur
3nu2s
nu3sc
nu3se
-nus1p
-nu3spo
-nuss3er4
-nus6serl
-3nut
-nu2t1a
-n3uto
-nu4top
+nus1i
+nu3sl
+1nut
+nu2ta
nu4t3r
-3nuu
-3nux
-3nuz
+1nuu
+1nux
+1nuz
3nÞ.
2nÞ4b
nÞr1c
@@ -14913,1218 +9263,753 @@ nÞr1c
1nÞt
2n1v2
n3ver
-n3vl
-nvoran4
-2n3w
+nvol7ler
+4n1w
1ny.
-2n1ya
-n2ya.
1nyh
+2nymu
n1yo
1nyr
1nys
1nyw
-4n1z
-n2zac
-n2z1a2g
-n2z3a2k
+2n1z
+n2z1a4g
n2zan
-nz3a4ne
-n3zani
-n2zar
-nza2s
-n2zat
n2z1au
-n2zÃĪn
-n2zÃĪr
-nze4la
-nzel6lig
-n6zenerg
-n3zeni
+nz1ÃĪn
+n2z1ÃĪr
+nzdi1s
+nze6l3a
n4zense
-n4zentl
-n4zents
-nz3erem
-n2z1erh
-nz1erl
-nzer4lÃķ
-n5z4err
-nz5erste
-nzer6tra
-n3z4es
-nze3sk
-nze2t
-nz1eta
-nze3u4t
-n2z1id
+n4zentw
+n4zentz
+nz3erwe
nzi2ga
-n2zinh
-n2z1ini
-nz1int
-nz1inv
+nzig4s
+nz1ini
nz3le
-n2z1op
-n2zÃķl
-nz3st
-nzt4r
-n2z1wa
+n2zor
+nz2Ãķl
+nz3s
+n2zurk
+nz1wa
n2z1wÃĪ
-n2zwet
-n2zwir
+n4zwir
n2zwÃķ
n2z1wu
Ãąo1
-Ãąor2
2o3a2
-o4a3bi
+o4abi
o4ac
oa3che
oa3chi
o4ad
oa3de
-oad4st
-oa3in
-o4a3ke
-oa4k5l
+oa4g
+o4a3i
+oa3ke
+oa4k1l
o4a3la
o4a3mi
-oa4n
-oan4a
-o4a3q
-o2a4r
o2as
3oa3se
-o5ass
o4at
-oa4tr
o5au
-2o1ÃĪ
+o1ÃĪ
o1b
-2ob.
-o3b2al
-ob2am
-ob2ar
-ob1auf
+ob2al
+obal2t1
+2oban
+o3bar
2o3b2ÃĪ
2obb
ob2e
-2obe.
+2o3be.
2obea
-2o3bec
-2obef
-o2b3ein
-2oben
-obe4na
+ob3ein
+obel2i
+2o3b4en
oben3d4
-1o2ber
-2o3ber.
-ober5eis
-ober3in
-oberin6g
+oben3se
+ober3in4
obe4ris
-2obev
-2obez
+2obew
2o3b2i
-3obj
-ob1la
+obi4t
+ob3ite
+1obj
+ob1l
ob3lei
-1ob3li
-2oblo2
-2ob2lÃķ
-ob2lu
-2obo
-ob1or
-2obÃķ
-ob3rei
-2obrÞ
-o4bs
+1o2b3li
+2o3blo2
+2o3bo
+o2b3re
ob3s2h
ob3sk
obs2p
+ob2sta
ob3sz
2o3bu
-o4bunt
obu2s
2o3bÞ
-o4bÞb
-2oby
-oby4t
+2oby4
2oc
o3ca
oc1c
-3occl
o1ce
och1a
ocha2b
-ocha2r
o1che
oche4b
-o2ch1e4c
-och1eh
+o2ch1ec
och1ei
-oche2l
ocher4k
-ochi4d
och3l
och3m
och1o
-ochÃķ2f
+och3Ãķ2
och3r
och1s
ocht4
+och3te
o1chu
ochu2f
-och3u4t
och1w
o1ci
-o1c4k
+o1ck
o2ckar
-o2ckau
o3cke
-o6ck5er6sc
+ock2er
o3cki
+o2cko
ock3sz
-ock3ta
o1cl
-o3cu
o1ç
o1d
-2od2a
-od3ak
+o3d2a
od2dr
-o3dec
-o3d2e3i
+o3d2e1i
odein3
-ode4l3ag
-ode4man
ode2n1
-o3der
-ode2s1e
+odene2
+odesi1
ode3sp
-od2et
o3dex
-od2i
2o3dia
-2odi3c
-2odif
-2o3dir
-2odn
-od2o
+odi4er
+o3dir
+o3div
o2don
-o2d3op
odo4s
-od2Ãķ
2odr
o2dre
odt4
2o3du
o3dy
-ody2m
-2o1e2
-oe3di
-oe4m
-oen1e
-oe3ri
-o2e3s
-oe4sc
-o2e3t2
+2o1e
+oe2b
+o2ec
+oe2d
+oe2h
+oe2l
+oe2n1
+o4es
+o2et
o3et.
o3ets
+oe2x
+o1ÃŦ
2ofa
-ofa2c
-of1a2d
-of1a2g
-of2an
+of1a2c
of1au
-2ofÃĪ
-o2f1e2b
-o2f1ec
-2ofee
o2f1ei
-2ofem
-o2fent
-2o3fer
-o4ferb
-2o3f2es
-o2f1e2t
-2ofeu
-of3eun
+of2en
+o3fer
of2f1a
-off3erz
of2f1in
1offiz
of2f3l
-of2f1o
+of2fo
of2f3r
offs2
off3sh
-off3si
-off3sp
of2fu
2ofi
-ofi3e2i
-ofi3k4l
-ofi3s4
-2o1fl
-of3le
-of3li
+of3l
+of1la
+of4lÃĪ
of4lÃķ
2ofo
-2ofÃķ
-2o1fr
+2o1f1r
+of3ra
of3rÃĪ
of4rÞ
-of2s1
+ofs1a
of4sam
-of3sÃĪ
-ofs2ch
-of4sen
-of3sta
-of4staf
-of3str
+of2spe
+of2spr
+of2s1u
2oft
-oft2a
of2tei
of3th
-oft4r
-2ofu
-of3ur
2o1g
o2g1ab
-o2g1ac
oga3d
+og1ala
og1ang
-og1ans
-o2g1e2i
-oge2li
-ogener4
-ogerÃĪtein8
-o2g1eth
-og2gl
+o2g1ei
+oge2l1i
o3gh
ogi2er
-ogin1
-o2g1ini
-og3ins
-og1l
-og3le
og2lo
-o3g4n
-og1o2ri
-ogs2
-og3sp
+og4n
+ogo4i
+og3s2p
og1ste
-og3sti
-2o1ha
-oh1alk
+o1ha
o1hÃĪ
o1he
-o3he.
-oh1eis
-o3hem
-o3hen.
+o2h1eis
ohen3s
-o3her.
-o3here
-oh1er4t
-oh1er2z
-o3hes
-2o1hi
-2ohl
+o2h1er4t
+o2h1er2z
+o1hi
ohl1a
-oh2la2d
-oh2lÃĪ
oh3lec
ohl1ei
+oh3len
oh3lep
-ohler2
oh4lerg
oh4l3erh
oh4lerw
oh3lo
-ohl1o2r
ohls2e
oh2lu
-1ohmi
-ohn1a
-oh4nac
+oh4n1ac
oh3nee
+3ohng
oh2ni
1ohnm
oh2n1o
-ohn3sk
-2o1ho
-oho2l1e
-ohol1o
+o1ho
+oho2la
oh1o2p
-2ohÃķ
-oh3Ãķl
+o2h3Ãķ
ohr3a
-oh2rel
-oh2rem
-ohren3s
-ohrer2
-oh4rerg
-oh3ri
oh4rin
-oh2rol
-ohr5t4r
+oh1ro
oh1s
-oh3sa
-oh3t
o1hu
oh1w
2o1hy
2oi
-o1id.
-o3i2da
-o1ids
+o1i2d
o3ie
-o1i2m
+o1im
+oimmu4
o1in
-o4ine
-oi2r
+oi2ra
+oi2re
+o2isc
o3isch.
-o4ische
o1ism
oiss2
oi1th
-o1i4tu
2o1j
-ojek8tori
2o1k
-ok2a
-oka3b2
-o2k3ac
-oka3i
oka2la
-okale2
-oka6lere
-okas4t
-ok2e
-oki4o
-ok2la
-ok3lau
+okale4
+3o2kel
+oki2o
ok1lÃĪ
ok2li
-ok2o
-oko4pt
-ok2so
+ok4n
+4okr
ok2s1p
-ok5t2
-3okw
+okt4
2ol
o1la
-ol3abu
-olaf4
-o2l1a2m
-ol1ant
+o2lab
+o2l1ak
ol2ar
-olar3s2
-o3l2as
-olast4
-ol1a2v
-4o1lÃĪ
-ol1ÃĪt
-ol2chr
-ol4d1am
-ol2dÃĪ
-ol2d1ed
-ol4d3eng
-old5ersa
-olde2s
-ol2deu
-ol2dim
-ol2d3o
-ol2dr
-4o3le.
-o2l1ef
+olars2
+ol1auf
+o1lÃĪ
+ol4dam
+ol4dr
ol1eie
-o2l1eis
-ol1emb
+ol1eis
oler2
-ol1erk
-ol1er3t
ole3s
-ol1ess
-ole2st
-ole4sti
-ole3u2
-ol1exz
+ol1ex
+o1lÃĐ
ol2fa
-ol2fem
-olf3ere
-ol2f3l
+ol2fl
olf1r
-ol2f3ra
-olft4
-olgege3
-olge4ne
+ol2fra
+olf3sp
ol2gl
ol2gr
ol2i
-olie4n1
-oli2er
oli3k4
-oli5tu
-3oliv
-ol3ke
ol2kl
-ol2k3re
-ol2kro
-olks3
-olk4sc
-olk4si
-ol2l1ac
-ol2l1ad
-ol2l1ak
-oll3am
-ol4lang
+olk3r
+ol2kre
+ol2lak
ol2l1au
-ol2l1e2b
-ol4l1e2c
+oll1e2c
ol2l1ei
ol2lel
-ol4l3erh
-ol4ler4k
-oll3erl
-ol4l3erw
-ol4l3ess
-ol2lop
-oll3s2a
+oll5ends
+ol4lerk
+oll3erw
oll3sp
-4olo
+o3lo
ol2of
-olo1p
+olo3p2
ol1ort
-ol2ov
-ol3s2k
-ol4ster
-ol3t2h
+ol2str
o1lu
-olu2th
-ol2y
-4o3lys
-ol2z1a2
-ol3zan
+3oly
+1olym
+ol2z1a
ol4z3ern
-ol2zim
-ol2zo
+ol2zin
ol2zw
-ol2zy
2om
o2mab
-oma2bl
-o2m1a2ge
-om1alg
-om1all
-oma4n3er
-o2m1ang
-om2anr
-om3ansc
-o4mante
-o2m1ap
-o2m1ar4s
-o2m1art
-omar4te
-o4ma2sy
-omat2i
-o4matom
+oma4ner
+om2anw
+om1art
o2m1au
o2meb
om1ebe
-o2m1ef
+ome3c
o2m1ei
+o3m2eis
o2mel
-o3meld
-omen5t6an
-o4mep
+o2mene
+o2mep
omer2
-om1erh
o2meru
om1erz
-omi2c3
+om2es
omiet1
-o3mig
-om1ind
+o2m1ind
om1ing
om1ins
o2m1int
om3ma
-omm2e
-3o4mn
-4omo
-o2m3oa
-o2m1org
-om1o2ri
+om1org
om3pf
oms2
-om3sk
-om3t2
-o2mum
+omtu3
o4munt
+omy1
2ona
-on3a2b
-on2ac
-ona3g
+ona2b
+o2nae
o3nal
-on3ann
-onan6z5ei
-o2n1ap
-o2n3arb
-ona3th
-4onatol
-onat2s
-o4n3at4t
+on1ap
+o2narb
+on4at
on2au
2onÃĪ
on1ÃĪh
+onbe3
2onc
-on2dan
-onde8rers
-onderer7t
-ond1r
-on2dra
-on4drin
-ond3sk
+onderer5
2one
-on1ec
-one2ck
-o3nee
-o2nef
-o3neig
-on3ein
-on1ema
-one2n1
-o4n3ends
-on2eng
-onen3s2
-on1ep
-o3ner.
+one4i
+one2n3
+onens2
on1erb
o2n1erd
-oner4fa
-o2nerh
-on4erka
-on1ers
-o3nes
+on1erg
+on1erÃķ
o3nett
-on2eu
on3f2
-on3gl
-ong4le
+on3g2l
ong4r
-ong3s2
-on2gue
+ong3s
4o3ni
on2i3d
-onie3g
-oni2ga
-on4ik
o4nikr
-o4nim
-o4nind
-o4ninh
-o4nins
-on3k4
-3onke
+o4n1im
+on3ing
+on3k2
onli4
onlo2c
-onna2
on3n2an
on3n2e
-2ono1
+ono1
o3nod
-o2nof
-ono2i
-o2n3oke
-o3nom
+o2noke
on1orc
-on3ord
ono3s
-ono3t2
-onrad3
ons1a
+onsa4g
on4sam
on2seb
-onsen1
-onse4t
-onsi2d
-ons3ing
+onse2l
+onsi2
ons3l
ons1p
-on4spin
-onst2a
-onst4r
-ons5tri
-on3ta
-on2t1eb
-on2te2l
-ont5end
-on4t3erl
-on2th
-on4t3rat
+onst2h
+on3t2a
+ont3ant
+on4t3end
+ont3erw
+on4t3ri
+o1nu
2onuk
-o3nur
-2onut
on3v
1ony
-o3ny.
-on3z2
-onze3in
+on3z
o1Ãą
-oo1c
-ooch2
-oo2gl
+oof2
oo2k3l
-oo2kn
-oo2mo
-oo2ne
o1op
-oop2s
o1or
-oor3d
oo4sk
oos3s4
oo2su
-oo2t1a
-oo4t1ei
-oo2t1h
oo2tr
-oot2st
-oot3t
-oo2tur
2o1Ãķ2
-2op.
o1pa
-op3adr
-op1akt
-opa2le
-op1ang
+opab4
+o2p3ad
+op3akt
+o3pan
opa5s
-opa3s4t
-2opÃĪ
-1ope
o1pec
-2o1ped
-op1ef
-2o1pei
-o1pek
-2opel
-2open
-2opep
-o2pera
-op1erh
-o1pes
+o1pei
+o1pe4n
+1oper
2opf.
op2f3a
op3fah
-op2fÃĪ
o2pfe
-op2fem
-op2fin
+op4ferd
+opf5erde
+opf1l
opf3la
op1flÞ
-op2fo
4oph2
o3phe
o1pi
opi5a4
opi3er.
opi5ers.
-opie4r3u
opin2
-2opl
-op3lag
-o2p5le
-o3p2n
-2opo
-opo2la
-op2pan
+op5lag
+o2p3le
+op3li
+2o3po
op4pl
-1oppo
op2p3r
-2oppt
2o1pr
-3o4psi
+1opsi
op3sz
-1opt4
-2opte
-op3th
-o2pum
-2opy
-2o1q
+1op3t4
+o1q
2or.
or1a
-2ora.
-o1raa
-2or3a2b
-o2rabb
-o2r3add
-or3adr
-o1r2ag
-o2rak
-1orake
-o1ral
-o4r3alm
+or3a2b
+o1rad
+2o1ral
+o2r3alm
or4alt
-or2am
-or3a2mi
-o1ran3d
-or4ane
-oran2f
-oran2m
-oran4ze
-or3ap
-2orar
-o1r2as
-o2ratt
-2orau4
-oraus6wa
-or2av
-2o1raw
-o1ray
+3oram
+or2and
+o2ranh
+or3arb
+o1ras
+or3att
o3rÃĪ
or1ÃĪnd
or1ÃĪt
+or2bar
orb2l
or1c
2orca
or2ce
-2ord.
4orda
-ord1am
-or2dar
-or2dau
-2ordb
-ord3eng
-orde4s
+or2d3am
+or4dar
+or4dau
+or4d3eng
or2deu
or4d3ing
or2d1ir
or2dit
1ordn
-or2do2
+or2do
2ordr
+2ords
ord3s2t
-ord3t
-2ordu
+or2dum
2ordw
2ore
ore2a
-o2r1e2b
+ore2b
o2r1e2ck
-ore2di
-o5ree
-o3ref
-or1eff
+o2r1ef
ore2h
-or1ei
-o3rei.
-o3reie
-o3r2eif
-o3r2eis
-oreli1
-orems2
-o3renn
-o3rep
-o2r1er
-o3r2ere
-o3r2ero
-ore4th
+or1eig
+o2rein
+or1er
+o2rerf
+or1eth
o2r1eu
2orf
-or2fac
-or2far
-org4a
-org2e
+orf3s4
+or3ga
2orget
-or3ghi
+or3g2h
2orgia
+orgi1e
or2gl
-or3gla
or3gle
or2gn
-or3gne
-2orgr
2orh
-2o3ria
-2o3r2id
-orid3i
-4o3rie.
-o3rien.
-o6rienti
+2o3ric
+4orie.
+o4rient
o3rier
-o3ril
-or1ima
-ori4mi
-2o3rin1
-o4r1ind
-o4rins
-2or4io
-o2riso
-2orit
-2ork
+4oril
+4orin1
+or1ins
+ork2a
+or2k3ar
ork4r
ork2s
-ork3sh
2orm
-or2mam
-or4mang
or4mans
-orm3asp
-or2m1eb
-or4m3erf
-or4m3er4g
-or2mor
-orm3ord
-or2mum
-ormu4n
-or4muni
-or4munt
-ormwa5
-or2n1a2c
-or2nal
-or2nan
-or2nar
+or4ment
+2orn
+or2na2c
+or2n3ar
+or2n3ÃĪ
or5ne.
-or3ni
-or4nin
-or3no1
+or3n2o1
2o1ro
-o2r1ob
-or3oly
+or1o2b
oro3n2a
-or1opf
-o2ro2r
-o3rou
-or1ox
2o1rÃķ
2orp
2orq
2orr
orr4a
-or3r2e
+or3re
+or3rh
2ors2
-or3s4a
+or3sa
or3sh
-or3si
-or3sk
-ors4tin
or3sz
or2t1ak
-or2t1an
-orta2r
+or4t1an
+or2t1au
+or2tÃĪr
or2tef
-orte4n
-or4ten5g
-ort3erb
+or4t3ent
+ort2er
or4t3ere
ort3erf
-ort3erg
-or4terk
-or4t3erl
-orter6sc
-or2t3e2v
+ort3erk
+ort5ersc
+or2t3ev
or2the
-or2tin
+ort3ins
or4t3off
-or4t1o2r
-or2tÃķ
-ort3rad
+or2tor
+or4tÃķ
or4trau
or4t3rÃĪu
-ort3re
+ort3ric
or2t1um
-2o3ru
+o3ru
or2uf
-or1uh
-orum4s
o4r3un
-oru2r
-o5rus
-o2rÞ
-or3z2e
-orzel5
-or2zw
+o2r3Þ
+o2rya
2o3s2a
os3ad
-osal2
-o4s3ami
+os4an
osa1s
-2osc
-o4s3ca
+o4sca
osch3ar
o3sche
osch3le
os4co
-2ose
-ose1e
-ose1in2
-os2el
+2o3se
+ose3e
+o2s1ei
ose2n
-o2s1er2k
+o4sents
os2ex
2osh
o3s2hi
-os2ho
-os4hu
+o1sho
2osi
-os4it
o3sk
-os2kal
+o4ska
+os3ke
o4ski
-2os2kl
+2oskl
2os2ko
-o4skr
-o4sky
-1osm
-os4mog
+os2lo
2oso
-osol1
-o2sÃķ
2os1p
-os2pac
os2pe
os3pec
-os3pero
-o3sphÃĪ
o3s2po
-os4pot
-os2pra
-2oss
os2sa
-os6s3a2c
-os3sag
-oss3ala
+oss1a2c
oss3and
os4sÃĪ
os2sei
-oss5enke
+os4s3en4k
os4s3enz
-os2s1ep
-os4s3er4b
-osser4e
-os4ser4f
-os4sik
-os4sim
-os2s1o2
+os2s3o
os4son
-os2sp
-oss1pa
+os2s3p
os2s3t
-ost1a
+ost1a2b
+os4t3am
ost3ang
-os5tarr
-ost4art
-os4tat
-ost3aut
-os4tÃĪ
-oste2c
-oste2n
+os3tarr
+osta4s
+ost1au
+os4tei
oster3e
-ost5erwe
-oster8wei
-ostes5s
-os4teu
-ost3eur
-os2t1h
-os2tid
+os6t5er6we
+os2t3h
os3til
-os4tim
-os2tin
-os3tina
-os2tit
-os3toc
-os4tor
+os3to
+os4tob
ost3ran
ost3rÃĪ
ost3re
ost3rot
ost3uf
-os2tug
-os4tÞc
2osu4
os1um
2o3sy
-o3s4ze
-2oß
+o3s2ze
o2ß1el
-o2ß1ent
-o2ß1en2z
-oßer2
-o2ß1erb
+o2ß1en2k
+o2ß1enz
o2ß1ere
o2ß1erf
-oß1is
2o1t
-o3tabe
-o2t3abi
-o2t1ah
-o2t1ak
-o3tal
-o3tam
-ot1ant
+ota2go
o3tark
-o2tarz
-ota2s
-ot1ast
o2t1au
-o3tau.
+ot3aug
ot1ÃĪ
-o3te
-o4teb
-ote1i
+o2teb
+o3tei
o4t1eib
-o4t1eic
-otei4n
-o4t1eis
-ot2el
-ote4l1a
-ote4lin
-otel3s2
-o4t1emi
-ot2em3p2
-ote4na
-o4tentb
-ot1erb
-o4t1er2l
-o4t1erw
-ot2e2s
-ot2har
-o2them
-o2t1hi
+ote1i4n
+ote3ine
+ote2l1a
+ote4lei
+ot2em3
+otemp2
+o2t1erw
+ote2s
+4ot2h
+ot4he
+ot5hel
+o4t3hi
+ot3ho
o2thr
-4oti
o2til
o2t1i2m
ot2in
-ot3inh
-otli4
-ot2o
-oto3b4
-ot3off
-oto2ph
-o2t1Ãķ
-otra3c
-o3t4ran
-ot3rat
-ot4rau
-ot3re
-ot3ric
-ot4rig
+otli2
+ot4ol
+ot1opf
+ot2or
+oto2ra
+oto1s
+o3tra
+o2t3re
ot3rin
-ot3rus
-ot2s3at
-ot3sch
-ots2en
-ots1o
+ot2sa
+ot3sc
ots1p
+ot4spa
ots2pe
ot2spr
-ots3tau
-ot3sti
-ot3stra
-ot2su
ott1a
-ot4tan
-ot4ta2s
+ot2tan
ot2teb
ot4terh
-ot4ter4k
-otte2s
-ot2t1h
-ot2tim
-ott2o
+ot4terk
+ot2th
ot2t3r
ot3t4ra
ot4tri
-ot3t4ru
-ot1url
o3tÞ
-ouff6
+o2u
+oub4
+ou2ce
ou1f4l
oug2
-ou4ge
+ou2ge
ou3gl
-o1uh
-ou1is.
-2oul
-ou2le.
-ou2les
-ou4li
-2o1um
-2o2u2n
+o3uh
+ou4le.
+o3um
+o3unds
oun4ge.
-4our
-oure2
-ou2ret
+2our
ouri4
-ourie4
-ourme4
our4ne.
-ou3sa
-ous2i
-ou3ti
-3outp
-out3s2
-ou3tu4
+ou3s2i
+outu4
+2ouv
2o1Þ
o1v
-ov2a
-2ovel
-o3ven
ove3s
+2ovi
oviso3
2ovo
2o1w
-o2w3al
o3wec
-o2wh
+owe2r1
o3wi
-o2wu
+o1x
2ox.
-o1x2a
-2oxe
-o2x1el
-2oxk
+ox2a
+ox2e
ox3l
-o1xo
-o2x1u
-1o2xy
+o2xu
+1oxy
o1yo
-oy1s2
-o1z2
-o3za
-1ozea
-2o3zen
+oy1s4
+2o1z
+o3z2a
+oz2e
ozen4ta
-ozes4sc
-4o3zi
-ozir3
-ozon1a
-2ozy
-oz3z
-Ãģr3
+o3zi
+ozon1
Ãģrd2
Ãķ1b
-Ãķ3b4a
+Ãķbe2la
+Ãķbe4li
Ãķb2l
-Ãķ2b3le
+Ãķ2ble
Ãķ2b3r
Ãķb2s3
Ãķ1c
Ãķch1l
Ãķ2chr
Ãķch2s
-Ãķch4ste
-Ãķchst5ei
-Ãķchst3r
Ãķchs4tu
-Ãķ3cke
Ãķ1d
-Ãķdel3l
-Ãķde1r
Ãķdi3
Ãķdien3
Ãķd2st
@@ -16133,45 +10018,37 @@ oz3z
1Ãķf
Ãķf2fl
Ãķf3l
-Ãķ1g
-Ãķge3le
Ãķgen2s1
-Ãķ2g3l
-Ãķ2g3r
+Ãķg3l
+Ãķg3r
Ãķ1he
-Ãķhe4n1
-Ãķhl2e4
-Ãķhre4
+Ãķh3l2e
Ãķh3ri
Ãķ1hu
Ãķ3ig.
Ãķ3isch.
Ãķ1ke
-1Ãķ2k2o3
+Ãķ2ko1
Ãķk3r
Ãķk2s
-Ãķ2l
3Ãķl.
Ãķl1a2
Ãķl1ei
Ãķl1em
Ãķl4en
Ãķl2f1ei
-Ãķlf2er
+Ãķlf3s
+Ãķl1im
Ãķl1in
-Ãķlk4e
Ãķl2k3l
-Ãķlks4
-Ãķll1a
-Ãķl3le
-3Ãķlm
+Ãķl3la
Ãķl2nar
Ãķl1o2
Ãķls2
Ãķl3sa
Ãķl3sz
-Ãķl3tu
-1Ãķlu
+Ãķ2l1u
+Ãķl2ung
Ãķlz2w
Ãķ1m
Ãķm2s
@@ -16182,10 +10059,10 @@ oz3z
Ãķn2s
Ãķn3sc
Ãķn3sp
+Ãķ1nu
Ãķo1
-Ãķo2ta
+Ãķot2
Ãķoti1
-2Ãķp
Ãķ1pe
Ãķpf3l
Ãķp4s3t
@@ -16193,701 +10070,449 @@ oz3z
Ãķr2b3l
Ãķr1c
Ãķr2dr
-Ãķr3dra
-Ãķ2r1ec
+Ãķ2r3ec
Ãķ2r1ei
Ãķ2r1e2l
-Ãķ2r1e2m
-Ãķre2n
-Ãķ2r1ene
-Ãķ2rent
-Ãķ3r2erb
-Ãķ2r1er2e
-Ãķ2rer2f
-Ãķ2rer2g
-Ãķr2erh
-Ãķ2rer2l
-Ãķr2err
-Ãķr2erw
+Ãķr2erg
+Ãķr2erk
+Ãķrer2l
Ãķ3r2erz
-Ãķr1ess
Ãķr2f3l
Ãķr2gl
-Ãķ2rim
+Ãķ2r1im
Ãķr2kl
Ãķrn2e
-Ãķrner4v
-Ãķr1o
-Ãķrpe2
+Ãķr1o2
Ãķrs2e
-Ãķr3sk
+Ãķr3s2k
Ãķrt2e
-Ãķr5tri
Ãķru4
Ãķ2r1une
Ãķ2sa
-2Ãķsc
-Ãķ2sch3a
-Ãķsche2
+Ãķ2scha
Ãķ4sch3ei
-Ãķscher4
-Ãķ6sch5erf
-Ãķ6sch5eri
-Ãķ2schi
-Ãķ2sch1l
+Ãķ2schl
Ãķ2sch3m
-Ãķ2schn
Ãķ2schw
-Ãķs1ei
-Ãķ2sein
-Ãķse3str
-Ãķ3set
-2Ãķsl
+Ãķ2s1ei
Ãķ2sp
Ãķs2s1c
Ãķs2st
Ãķ2st
-Ãķst1a2
Ãķs3te
Ãķs2th
Ãķs3tr
Ãķ3su
Ãķ1ß
-Ãķßen3
-Ãķß2ti
Ãķ1t
-Ãķ4t3a
-Ãķte4n1
-Ãķ2t3r
+Ãķ2t3a
+Ãķte4n3
+Ãķt2h
Ãķts2
Ãķt2sc
Ãķt2tr
-Ãķ1v2
+Ãķ1v
Ãķ1w
Ãķ1z
Ãķze3
Ãķzes4
+p2a
1pa.
1paa
-p1ab
-p2abe
-pab2l
-pab4rÞ
-2pabw
1pac
-1p2ad
-pae2
-pa3el
-pa2es
-pa1fr
-1pag4
+pa3da
+pa2dr
+pa1f4r
+pag4
pa3gh
pa1ho
1pak
-pa3ke
-pa1kl
-pak4to
+pa1k4l
+pak2to
3pala
pala3t
-3palÃĪ
-3pal2e
-pa3l2i
-1palm
+1palÃĪ
+pa3li
pal2ma
pal2mÃĪ
pal2m1o
2palt
-pal2t1a
-pal4tei
-pal2tr
-pa2m3a
pa2nar
-pa4n3at
+pa4nat
pan3d
-pand2a
pan4ds
pa2neu
-panf4
-pang4
-pa4nisl
pank4
2panl
2pann
-panne2
-pan4n3eb
-4pannu
1pa2no
pan3sl
-pan3t2h
-1panto
-2pantr
-panz2
-pan3ze
+pant2
+panz4
1pap
papi2
papieren8
papie8r7end
-pap2pr
-pap4s
-papst1
-pa1q
1para
-pa4r3aff
+pa2r3af
par3akt
-pa4rant
-pa3rap
-pa2rÃĪ
-2parb
-1p2arc
-par3d
-parer8geb
-1parf
-2parfÃķ
+1parc
+pa5reg
+pa5rek
+2par2er
+2parg
pargel6d
1park.
-park3am
+par4kam
par4kau
-par4kr
-1parks
-par3m2
-par3ne
-1pa2ro
+par2kr
+1paro
2parp
-2parr
-4parta
-3partei
-1parti
1partn
-3party
-par3z
-pas2e
-pa3sp
-pa4spe
-passer4
-pas6serg
-pas2s1p
+1party
+par3z2
+pa3s2p
pa4st
2paß
pat1a
pat4c
-pa5t4e2
-2patel
-1pat2h
+pate2
1pati
1pa5t4r
1pau
-2p1auf
+p3auf
pa3uni
-2pausz
-1pav
1pÃĪ
3pÃĪ2c
-pÃĪ3cke
-pÃĪ4ck3er
3pÃĪd
-pÃĪde2
-pÃĪ2d1er
3pÃĪr
3pÃĪs
pÃĪ4t1e2h
-pÃĪ4tent
-pÃĪ4tep
-pÃĪ4t3erb
-pÃĪ2t1h
+pÃĪ4t3ent
+pÃĪ2t3h
pÃĪ2to
-pÃĪ4tr
pÃĪt3s4
2p1b
2p3c
2p1d2
pda4
+p2e
1pe.
-pe2a2
+pe2a
pea4r
-p1e2b
pech1
-1peda
-1peel
+1ped
pe2en
-2pef
-4p1eff
-1peg
-pege2l
+pef4
pei1
-4peic
-1peil
-p2eim
-2peis
-1peit
-pekt2i
-1p4el
-3pel.
-pe4l3ab
-pe4lai
-pe2l1au
-pe2l3ax
-pe2l1ÃĪ
-pelb2
-pel3d4
-3pele
-pe4l1e2h
-pe2l1er
+2peic
+pe1im
+pekt4s
+2peku
+1pel
+pe2l1a4
+pe4lein
pe2let
-pe2leu
-peli2d
-peli4n
+pe4leu
+pe2lex
+pe3li4n
pe4l3ink
-pel3inn
-pel4ins
pel3k
-pel3l2a
pell4e
-pell2i
-pe2lob
-3pels2
-pel3sp
-pel3t2a
-pel4zin
+pel3t
1pem
-1pen
-pena2r
-pe4nas
+pena4
+pe3n2al
pe2nÃĪ
-pen3d2a
-pe4nen1
-pe4ni2t
+pen3da
+pe4nen
+1penn
pe2n1o
-pens2a
-3pen3si
-pen3s2o3
-pens2p
-pen3sz
-pent2a
-2pentw
-penty2
-penu2
-pen3z
+3pensi
+1pensu
+penz2
1pep
-pe3pi
pe1ra
-pe2rak
-per2am
-pe2rau
-pe2r1ÃĪ
-per1e2b
-perer2
-perer3z
-pe3r2id
-3pe3r4io
+per2an
1perle
-1perlh
-per4r3an
+per4na
+3pero
+per2r1a
1pers
2perse
2persi
3perso
-3persp
-peru2
-pe3run
1perÞ
-perwa4r
-pe3s2a
-pese2n
-1pes5s2
+perwa4
+pe3sa
+pes3s2
pe2st
-pes4ter
-pest1o
+pes2th
3pet
-pet4r
1pÃĐ
4pf.
-p2f1ab
+p2fab
p2fad
p2faf
pf1ai
p2f1ak
-pf1am
pf1ans
-p2fa2r
+p2fa4r
pf3are
p2f1au
-1pfÃĪ
-p2fÃĪr
-p2f1ÃĪu
-4pfe.
-p2fef
+4p3fe.
p2fei
pf1eim
pf1ein
-pf1e2m
p3fen.
-p4fener
-p3fens
-p3fent
-p4f1ep
-pfer5a
-p4ferde
-pfer6pro
-pf4es
-p2f1et
+p2fent
+p3fer.
+pf2erw
+p3f2es
pff4
-p2f1i2d
-pf1inn
p2f1in3s
-pfi2s
-pf1lam
pf4lan
+p2f3lÃĪ
pf4leg
pf3lei
pf3lo
-pfo2
-p2fob
-p2fom
p2for
-pf1ori
pf3r
pf1ra
-pf4rÞ
+3pf4ro
2pfs2
-pf3sa
-pf3se
pf3sl
-pfs4ti
pf3sz
-2pf3t2
-pft4r
-p2fum
-2p3g2
+2pf3t
+2pfÞ
+2p1g
pgra2
1ph
4ph.
-ph2a
-phal4te4
-p1hand
-3pha1s
-p1hau
-phÃĪ1
-3phÃĪn
-4phÃĪr
-4phb
+2phÃĪ
+2phb
2phd
2p1hei
-phen3d2
-phe4n1e
-phen3s2
+phen3d
+phen3s
2ph1ers
-4phf
-4phg
-p2hid
-phik1a
-phi4kan
+2phf
+2phg
+phien3
+phi2ka
2phk
ph2l
-4phm
+2phm
2phn
-p2ho.
-p2hob
+p3hop
2phÃķ
-ph2r
-4phs
-ph3t2
-2phthe
+ph4r
+2phs
+pht2
+2ph3the
phu4s
-phu3t
2p1hÞ
-3p2hy
-4phz
-p2i2a1
-piab4
-pia3k
-pi4ali
-pia3n
+2phz
+pi2a3
piap2
-pi1ce
-pid2
-pi2e1i
+pias4
+pi3chl
+p4id2
+piegelei8
pi2el
-piel3a
+piela2
+pie4lei
3pier
-pie2ra
-pie4reb
-pie4rei
-pi3gl
+3pik
1pil
pi3le
-3pilo
pil4zer
-pil2zw
-p2im
-3pin.
-pi2nad
-3ping
+2pind
+pin2e
pingen4
ping3s
-3pins.
3pinse
-pin3s2p
pi2o
-pi3oide
+pi3oi
pi3onu
-pi3os
-1pip
+3pip
pi2pe
-3pirate
pi3ri
3pirin
-1pis
-2piso
-pit2a
-pi3t2h
+3pis
+4piso
+pi3t2a
+pi1th
pit2s
-pit3z2e
+2pitz
pi2z1in
-2p1j
+p1j
2p1k2
pku2
-1p2l2
-2pl.
-3pla
-4p3lad
-p1lah
-pla3na
-p4lau
-pla2y1
-2p3le.
+pkur1
+1p2l4
+4pl.
+3p4la
+p5la.
+p5lad
+plan3g
+3plÃĪ
+2ple.
ple1c
ple2e
p4leg
-ple3n2
+ple5n2
2p3ler
-p4leu
2plig
-3p4lik
+p4lik
p4liz
-plo3n
+p4lo
2p3lu
-plu2s
-2p3m2
-2p1n2
+2p1m2
+2p1n
1p2o
-pob2
-2po1c
-3pock
+po3b4
+po1c
3pod
-3poe
-po2el
2poh
po2i
-po3id.
-po3ids
+po3id
3poin
-3pol
-po2lan
-po2l1au
-pold2e
+3pok
+3p4ol
+po2lau
po3li
-po3lo3p
-pol3z2
-pom2ph
+po4lor
2pond
-pont2
-po1ob
-po2p1ak
-po2p1ar
-po2p3l
-po3p2t
+po1o2b
+po2p3ak
+po2p3ar
+po1pe
+po2pl
+po3pt
po1rau
porf4
por3s
-3portal
-por2t1h
-3portio
-3porto.
-3portos
-3portr
+por4tin
por4tre
-3posi
-poss2
-po2sta
-pos4tag
-po2stÃĪ
+por6tri
+pos2e
+po4sta
+pos4t3ag
+po4stÃĪ
+po2s3te
post3ei
-pos3tel
-pos4tem
-pos4tr
+po2sto
+pos6tr
post3ra
-po2ta
-pot1ar
-3potÃĪ
+po3ta
3pote
-pot2h
-po2t3in
-pott1r
po2t1u
-po3un
po2w
-powe2
po3x
pÃķ2bl
pÃķ2c
-4p1p
-p2pab
-pp1ans
-p2pat
-pp1au
-ppe3e
-p2p1ei
-ppe2l1a
+2p1p
+p2p3a2b
+pp3anl
+ppe1e
ppeli5ne
-ppel3s
-pp2e2n1
-p2p1erz
-p2pf4
+ppe2n1
+ppf4
pp1fr
p2p1h
-pp3he
+p3p2ho
+p2p1ia
pp3l
-p4p1lac
-p4plan
-p2p1lÃĪ
+pp1lÃĪ
p2ple
pp3oh
-p2p1Ãķ4
-pp3p4
+ppp2
p2p3ra
-p2p5rÃĪ
p2pri
-pp3rol
-pp3rot
-p2p3ru
-p4ps
-pp3s4a
-pps2p
-pp3sy
-ppt4
-p4p1um
-ppyl2
-p2r4
+pp3sa
+ppt2
+p2r2
1prak
1prax
p4rÃĪ
1prÃĪd
-1prÃĪf
1prÃĪg
-1prÃĪl
3prÃĪm
-1prÃĪp
3prÃĪs
-1prÃĪv
2pre.
2prec
3pred
-2pree1
-pre2ei
-2preg
+pre2e1
1prei
3preis
prei4s3c
-prei6sei
-prei4s5t
2preiz
-1prem
-pren4ga
2p3rer
-1pres
-pre3sa
-press4e
+3p4res
pri4e
2prig
-pri2l1
-2pring
-prings4
-1prinz
+3prinz
pri2t1
priter4
-prit5t4
2pritz
-1priv
-1pro
+1p4ro
3prob
-pro3be
2proc
-7p4rod
-3p4rog
+3prod
+3prog
3proj
-4pross
+2pross
pro1st
-prot2e
-3proto
-2prott
-pro3x
-2prÃķ
+3prot
1prÞf
-1prÞg
2prÞh
2prÞn
2p1s
4ps.
-ps1ad
-ps2hi
-ps1od
+ps4an
+p3se
+p3s2h
+ps1id
p2sÃķ
-ps4pi
-pss4
+ps2po
p2st
p3sta
-pst1au
-p3stÃĪ
p3stea
p3stel
-ps2th
p3s2ti
-ps4to
-p3stÃķ
+pst3re
ps2tu
p3stÞ
3p2sy
-4psys
ps2ze
2p1t
pt1a
pt2ab
-pta2g
-p2t3a4t
-p2t1e2b
-pt3ec
-pt1ef
-pt1ei
-pt1emi
-4pten
-p4t1en2g
+pt3alb
+pt3at
+p3te
+p4t3ec
+p4t1ei
+pte4l
+p4tele
p4t1ent
-pt1ep
+p4t1ep
pt3erei
-pt1erw
-pt1erz
-p3tet
-p4teta
-p4t1e2ti
-p2t1h
-pt1id
-pti2de
+p4t1erw
+p4t1erz
+p2th
pt1in1
-pto2mo
-pto4na
-pto2p
+p4tos
pto2w
-pt3r
-p2tro
+p2t3r
pt3s2
-pt4sl
-pts4t
-pt1uh
+ptt2
pt1um
pt1urs
ptÞ4
3p2ty
-pt3z2
+pt3z
1pu
pu1a
pub4
@@ -16895,3897 +10520,2388 @@ pub4
pu2dr
2p1uh
2puk
-pu2kl
-pu2k1o
-pu2lin
pul2sp
-pul2st
-2pulw
-pum2pl
-3pun
-4pund
-pun2e
+2pund
+3punk
pun2s
-4punt
+2punt
2pur
-pu2ra
-pu2rei
-pus2h
-pu3she
+pu3ri
pu2s3t
-pu5t2e
-3put2s
-3putz
-puzi3
+3put
+put2s
1pÞf
2pÞl
-pÞl3l2
2p1v
2p1w
pwa4r
-3p4y1
-py3s
+3py1
+pys4
py3t
-2p1z2
+2p1z
qu4
-que3rel
-quer5n
que4te.
1queu
1ra.
-r1aa
+2r1aa
ra2ab
-2raac
-2raal
-ra3ar
-r2a1as
+3ra3ar
+3raau
r1ab
-ra2b1ar
-r2abÃĪ
-1rabbi
-rab2b3l
+ra2bar
+rab2bl
2rabd
-rabdru4
-ra2bei
-rab2er
-rab3erd
+r2ab2er
2rabf
2rabg
-2rabh
-1rabi
-2rabk
-r2able
-ra2bli
-ra4b5lo
-2ra2br
-2rabs4
+1r4abi
+ra2br
+2rabs
2rabt
+ra2bÞ
2r3abw
1raby
-2rabz
-ra2ce
+ra1ce
2r1acet
ra4cheb
-ra2cho
-2rachs
-rach6t5rÃĪ
+ra4chin
+racht3r
+rach6trÃĪ
ra2chu
r2ack
-1r2ad
+r2ad
r4ad.
-rada2
-ra2dac
-ra4d1am
-ra2dan
+ra2dam
2radap
-3radar
-ra2de4i
3radf
-3radh
-3radio
-4radit
-3rado
-3radp
-ra4d1r
-rad3ri
+r3a2d3r
rad5t4
+1ra2e
+ra3er
r2af
-raf3ahn
raf3ar
-rafe2
-ra2f1er
-raf3r
-raft5s
-rag2a
-ragein4
-rages4
-2ragg
-ra3g4le
-4ragm
+ra2fer
+ra3ge
+ra3gle
ra2gn
-r2ago
-rahle4n
-5r4ahm
-r1ahn
-2ra1ho
+3r2ahm
+2raho
4raht
r2ai
2raic
-rail2l
+rail4l
2r3air
-raka3
-1r4a3ke
-2rakk
3ra1k4l
ra2kre
ra2kro
2rakti
-1rakÞ
-2rakz
+3rakÞ
r2al
r4al.
ra2la2
-ra4l3ab
-ral1ak
-rala4s
-ra2lÃĪ
-ral3b4
+ral3ab
+rala4g
+r3alar
+ral3b
3r4ald
-ra4l3end
-ra4lent
-ra4l5ern
-ra3lex
+ra3le
+2ralg
r4ali
-ra2lid
-rali3er
-ra4lin4d
-ra4l3ing
-ralin6sp
-ralin4t
-2r3alk.
+rali5er.
+rali5ers
+ralk2
+ral3la
+rall2e
+2rallg
2r3alm.
-2ralp.
-4ralpe
+r3alp.
+2ralpe
r4als
-ral3sk
-ral3su
r3alt
-3r4al5t2h
-ra2l3u
+2ralta
+r4al5t2h
+ra2lu
3raly
rama3s
-ra2mei
ra2mer
-r2ami
-r2amm
+1r2ami
ram4man
-ram6mens
ram6m5ers
-ram4m3u
-2ramn
-3ramsc
+ram4mu
2r1amt
ramt4s
-2ramu
-2rana
-ran1ad
-ran3ade
-r1a2nal
-ra2nan
-ra2nar
-ra2nau
+r2an.
+ra5nat
2ranb
r2anbe
+4ranc
r4anda
r4ande
ran4dep
ran4d3er
-3r2andi
rand3s
-1raner
+4r3anei
+r4aner
2ranf
-2ranga
-ran6g5e6be
-3rangi
-r2angl
-rangs2
-rang3sp
-rang5ste
-rani3e
-r3a4nil
-ran3ka
+1rangi
+rani1e
ran2kr
-ran2kÞ
-4ranl
+2ranl
2r1anm
-r2anmi
r2anmu
-2ranna
-ran5ne
2r1anp
2ranr
-2rans
r2ans.
-r1ansc
+r2ansp
ran4spa
-4r5antei
-r1anth
-r2anto
+ran2th
2rantr
-1ranu
-2ranw
-r2anz.
+2r3anw
r2ap
-2rapa
-ra2par
2rapf
-2rapo
-ra2pok
-rap2pr
-2r3a2pri
-2r1aq
+ra2pri
r1ar
-r2ar1a
+r2ara
2rarb
-r2are
-3r4arei
-raren1
-rar3et
-rar1e2v
-r2arf4
-ra3rie
-rar3in
-ra3ris
-r3a4rist
-4r3arit
+3rarei
+rar3f4
+ra2r1in
r2ark
-raro2
-ra2rom
-2rart
-2rarz
-rar3zw
+2r3arz
+r2as
r4as.
ras2a
-ra3san
ra4schl
-r2asm
-ra3spr
-r2ast
-ra2sta
-ras4t3ei
-r3asth
-ras4to
-2rasyl
+2rasph
2raß
1rat
r4at.
-ra2t1an
-ra2t1ei
-r3a2tel
-ra4tid
-2ratm
+ra2t1a
rat2o
-2ratom
-ra5tor
rat4r
-r3att
-2ratta
-2rattr
+2r3atta
4ratz
-rat3ze
4rau.
3raub.
-rau3e4n
+4raud
+rau3e2n
2rauf
-rau3fÃĪ
-2rau3g2
+2raug
3raum
rau4m3ag
-rau5mes
+rau4man
rau2mi
3raup
4raur
2rausb
-3raus2c
-2rausd
-rau3se
-2rausf
2rausg
-raus8gewÃĪ
-2raush
-2rausl
rau2sp
-2rauss
-raus8sche
raus5se
-2rausv
-2rausw
-rau3ße
-2rauto
-raut1r
-rau4tra
-rau4tro
raut5s
1raÞ
r2ax
-raxi2
-r3axt
-r2ay
-ray1o
-r2az
-rÃĪch2s
+raxe3
3r2ÃĪd
4rÃĪf
rÃĪ1fr
4rÃĪg
2rÃĪh
-4rÃĪm
+2rÃĪm
3rÃĪn.
3rÃĪni
3rÃĪns
-2rÃĪp
-2rÃĪq
2r1ÃĪr
r2ÃĪr.
rÃĪ3ra
-rÃĪ1ro
-rÃĪ2sc
-rÃĪse2
-rÃĪte1s
+rÃĪ4sc
3rÃĪtse
-4rÃĪtz
rÃĪ2u
4rÃĪue
+4rÃĪun
rÃĪu2s
-rÃĪus4c
-rÃĪu7schen.
-2rÃĪuss
-2rÃĪuß
+rÃĪu5sche
4rÃĪut
-2rÃĪx
4r1b
-r2b3a2b1
-r3bac
-rba4del
-rb2al
-r3bam
-r2bang
-r2bant
+r2b1ab
+r2b1a2de
+r2bak
+rbal3a
+rba3re
rb1art
-r2barz
rb1auf
rbb2
rb1ech
-rbe3erf
-rbei3d2
-rbe3inf
-rb3einh
-rbe3int
+rbeid4
r4belÃĪ
-rbel2o
+r4belis
r3ben.
+rb1ent
rbe3r2e
-rber6gin
-rbe3rum
-rbe3sl
-r2bim
-r2binf
-r3bit
-rbit2a
-rbi3tu
-rb4la2d
+rber4gl
+rbla2d
r2blan
r8blasser
r4b3last
-r3blat
-r3blau
-r2b3le.
-r3blen
+r3blÃĪ
+r2ble.
rb3ler
r2bleu
rb2lin
rb2lÃķ
-rb2ob
-r2bonk
-rb3ras
-rb3rea
-r8b7rechts
-rb4sam
-rb2sei
-rb2ser
-rb2s1o
+rb2o
+rb4ri
+rb2s
+rb3se
+rb4sei
+rb3ska
+rbs1o
+rb3sp
rb4stÃĪ
-rb2su
rb2u
-rbÞ4b
+rbu2sc
rby4t
2rc
r1ce
r1che.
r1chen
-r1ch2i
+r1chi
rch3l
-r3chlo
rch3m
rch3r
-rch4ro
-rch1s4
+rch1s2
rch3sp
+rchst4
rch3t2a
-rchter6r
+rch6terg
+rch6terw
rch1w
r1ci
r2ck
r1cl
r1ç
-4r1d
+2r1d
+r3da
+r4dab
rd2ac
-r2daf
-r2d1ak
-r2d1a2l
-rd2amm
+r4daf
+r4d1ak
+r4d1al
+rd2am
rdani1
-r2dann
rd1ant
-rd1ara
-rd1ark
-r2darz
-rdÃĪr2
-r3de.
-r3dee
+rd1anz
+r4dap
r2dei
rd2ei.
+r4deis
r2d1elb
-r2de2le
-r2delf
-rdem6
+r3den
rden3d
-r4dengl
-r4dents
-rde3ob
-rde3ono
-rde3r4er
+rde3re
+rder4er
rderin6s
r4d3ernt
-r3des
rde3sp
-r2d1e2x
+rdgas3
+rdi3a2
+rdia4l
r2d1inn
-rd1iri
-rd1ita
-r2dof
+rd1it
+rdo2be
r3don
-rd3oss
-rdo4st
-r2d1oz
+rd1os
r2dÃķ
rd3rat
-r2drau
-rd3ris
-rd4rÃķ
-r3d4rÞ
-rd2sÃĪn
-rd3s2k
-rd3s2z
+rd4ri
rdt4
-rd3t2a
+rd3ta
rd3th
-rdt2s
-r2d1uk
-rdwa6r
+rdwa4
1re
3re.
-rea2d
-rea6l5erw
-4re2am
+re3aler
+re2am
re3at.
re3ats
-reatu3
2reÃĪ
re2b1a
re2b1l
reb1r
reb3ra
-reb3so
+re2bÞ
+r2ech
rech3ar
4rechs
2reck.
+re2cka
2recki
3red.
-re3da
4redd
2redi
-re2dik
-3redn
-3redu
-re1ebe
re1el
-re1em
-ree4mi
re1er
3refe
-4reff
-r2eff.
+2reff
3refl
3refo
3reg
+5reg.
rege4l3ÃĪ
-regene7ra
-4r1egg
-re3gi
+2reh
re2hac
-re2h1ar
-re4hen4e
re4h3ent
-re2hi
-reh1l4
+re2h1i
+rehl4
+reh3n
re2h1o
-re3hol
-3rehÃķ
-reh4th
-re2hÞ
r2ei.
-r2eib
-rei4bel
-rei4ble
-r2eic
-2reid
r2eie
-4reier.
-rei4fei
-4reifel
2reig
-3reigÃĪ
-3reigeh
-r4eigel
-6reigens
-3reigi
-4reign
-3reigru
rei3l2a
rei3l2i
-2r1eilt
3reim
reim2p
r1ein
-2rein2a
-rei3nal
-2reinb
-rein4du
-rei3n4e3c
-reinen5
-2reinf
-rein4fe
-re4info
-2reing
-2reinh
-4reinn
-4r3einr
-2reins
-4reinsa
-rein6sel
+4reinb
+rei3nec
+4reing
+r3eink
+4reinr
rein8s7tre
-rein4sz
-2reint
-rein6teg
re1in2v
-2reinw
-2reinz
-4reisar
-4reisb
-reises4
-2reisf
-2reish
-2reisr
reister6
-4reisu
-2reisw
-reit3s2
3rek
4re2ke
-4rekk
-5rekn
-2rekz
-r2el.
-r2ela
-re3lat
-2relb
+re3la
+2r1elb
rel2e
-relea4
-re5lei
-re2lek
-4relem
-r2elev
-2relf
-2relit
-2relix
-r2ell
-rel4lar
-rel4lei
+re3lei
+2re2lek
+2r1elf
re3lo
-r2els
-2relt
+2r1elt
relu2
-3r2em.
-2r1emb
-rem2da
-re2m1ei
-re3men
-2remi
-re3mig
-2rempf
-rems1c
-rem4str
-2rem2u
-r2en.
+r4em.
+r2emi
+4rempf
+4remu
+r4en.
r2ena
-2rena.
-re4nac
-re3nad
+rena2b
re3nal
-re4n3an
re2nÃĪ
-2r1endg
3rendi
ren3dr
-4renerg
-4rengag
-ren4gan
+re4n3end
+ren2gl
2rengp
-3renh
re2ni
-3renm
ren4nar
-ren6nene
-renrÞ2
-ren6sein
-rens2p
-2rentd
-6rentera
-2rentf
-3rentfo
-2rentg
-r3enthÃĪ
+ren3sau
+2r1entg
2r1entl
2r1ents
-2r3entw
-2rentz
+2rentw
+4rentz
r2enz
-ren6z5er6f
-renzer6l
-ren6z5er6s
-renzer6w
-ren4z3in
ren2zw
-re2ob
re3or
3repe
-4re2pen
-2repi
-re2pis
-2repoc
-2r1e2pos
+re4pis
+3repo
4repp
-3repu
-3r2er.
-rera2
+3r4er.
2r1erb
-3r4erber
rer2bi
+r4erbil
+r2erbr
2r1erd
-rere2
-4r3ereig
-r1erek
-re2r1ep
-r2erer
r1erf
-r3erfa
-4rerfah
-2rerfi
-2rerfo
-r2erfr
-rer2fÞ
+r2erfe
+r2erfl
r1erg
-4r3ergeb
-5rergebÞ
r4ergen
-3r4erges
-2rer2go
-rer2gr
-r4ergru
-r1erh
-rer2hÃķ
r1erk
-rer4kan
-rer2ke
4r3erken
-3r2erki
-3r2erko
-r1erl
-2r3er2la
-5r4erlag
-r3erleb
-r2erli
-2rerlÃķ
+r2erki
+2rerkl
+2r1erl
+5rerlag
2r1erm
rer2n
2r1ernÃĪ
-r1erne
-2r1erni
4r3erns
-4r1ernt
-re1ro
+4r3ernt
+r2e1ro
re2rob
-re4rosi
-2r1er2Ãķ
-r1erre
-rer4reg
-rer4rei
-r1erri
-5r2ers.
+r1erÃķ
+3r2ers.
2r1ersa
-rer3sc
-r6erschi
r2erse
2rersp
-rer2st
-r6erstad
-2rer4su
-r1ert4
+r1ert
r2erte
2rertr
-r1erw
-2rerwa
-rer4wac
-rer4wec
-r4erwes
2r1erz
-rer2zÃĪ
-3r2erzy
-3r2es.
+rer5ze
+r2erzy
+3r4es.
re2sa
-re4sam
-resche4
re4schw
3rese
-re4se2h
-re2s1of
-3resol
-3reson
-re2spa
-res2po
+3reso
2ress
-4resse
-res3sei
+ress2e
res6s5erw
-4ressu
+3rest
re1sta
-res4tas
-res6tent
-res4tex
-2res4tu
+re2s2tu
3resu
-re2t1ak
-2re2tap
-re2tau
-ret2e
-2r1e2th
-re2tra
-re4trol
+re2thy
re2u
-reu4eri
reu3g2
2reul
re3uni
-2reur
-4reuu
+2r1eur
2reÞ
-4r3eva
-2r1evid
+2r3evid
+r1ew
rewa4r
re2wi
-2rewo
-2r1e2x1
+4r3e2x1
3rez
-2rezi
+4rezi
1rÃĐ
-4r1f
-rf1a2ck
-r3fam
-rfe2i
+2r1f
r2fent
-r3f2es
-rff2
-rf3fe
+rf2es
rfi4le.
-r4fland
-r3f4lÃĪ
+r2flan
rf3lic
+rf3lin
rf4lÃķ
r3flÞ
-r2fo2b
rfolg4s
-r4frauc
+r3for
rf4ru
rf4rÞ
rf2sa
-rf4sam
rf2s1ÃĪ
-rf2su
+rf4s1id
+rf2spr
+rf2s3t
rf2ta
-rft4r
+rf3t4r
rf2u
-rfzu3
-2r1g
+4r1g
+rg2ab
r2g1a2d
r2g1ah
r2g1ak
-rga4ner
-r2g1ap
-r2garb
-rg3art.
-r2g1ask
-rgd2
+rg2an
rge4an
rge2bl
-r2g1e2c
-r3gel
-r4gelef
+rg2el
rge4l3er
rgen4z3w
-r4ge4tap
+rge4ral
+rge4tap
r2geto
rgi4sel
+r3gla
r2glan
-r3glanz
-rg5le.
r2gleu
r2glig
-r2g3lit
-rg2log
+rg2lÃķ
rg2lu
-r2g3na
-r2gne
-r2g3ni
-r2g3no
-r2g3oa
-r2gob
-r3gog
-rg3op
-r2g1or
+r2gna
+r2gno
+r2g1ob
rgÃķ2
r2g1Ãķd
r2g3ral
-rg4rau
r2greg
-r2g3res
+r2gres
r2gret
rg3rin
-r3grun
-rg3rÞs
-rg3sÃĪ
-rg3se
-rgs2ei
-rg4sel
-rg3s2i
rg3sp
-rgs2pe
-rgs2po
-rg3st
+rgs2ti
rgs4tr
-rgs2tu
-rg3su
+rg5s2tu
r1h4
2rh.
-r2hag
-2rhah
-2rhak
-r4haltb
-r3han
-2rhau
-2r3hÃĪ
-3r2he.
-r3hea
-2rheb
-2rhef
-2rhi
+2rha
+r2ha.
+r3hals
+2rhÃĪ
+3r4he.
+2r3her
+r2hoe
+r3hof
+rho2i3
2rhol
-r3hop
-2rhot
-2rhÃķl
+2rhÃķ
2rhs
rhu2s
-2rhÞ
1ri
-ri3ams
-ri1an
-ri2ano
+ri3am
ria1s
-ri2ast
+ri3at
rib2bl
ri1ce
ri1cha
-ri3chl
-richt8spo
-3richtu
-ri2con
+ri2dan
ri2dau
-2ride
-ri2d3e2l
-ri4dent
-r2i3di
+rid2g
2ridol
2ridy
r2ie
-4riefm
-rie2f3r
-rieg4s3
-ri2e1i
-riein1
+rie2fr
ri1el
-rie3l2a
ri3els
-ri4enÃĪ
-riene2
+riene4
ri3eni
rien3s
-rie4nu
+rie2nu
ri1er.
-rie3r2e
-riere4n
+ri4ere
ri3ers.
-rie3sa
+ri3esti
ri1eu
ri2f1a
-ri2fÃĪ
-ri2fei
-ri2fer
-rif6f5end
-rif4fer
+ri2f1ei
+ri2f1er
ri2f1o
ri2fr
rif3s
rif4ter
3rig
-4riga
-4r3i2gel
ri4gene
-4rigg
5rigj
rig1l
-ri4glÃĪ
-ri3g2o3
4rigr
-4rij
-ri2kar
-ri2kÃĪ
-ri2kin
-ri2kn
-ri4kone
-rik2op
-ri2kor
-2rima
-ri2mag
+rik1l
+ri4kla
+r2imb
ri2me.
-2rimm
-4rimp
+2rimp
rim2s
rim4sc
-rim4st
-ri3na
-r1inbe
-rin2c
-2r1indu
+r2i3na
+2r1ind
+rin4dex
+rin4diz
ri3n2e
rine1i
2r1inf
rin2fo
-3r2infr
-r2ing
rin2ga
-ring3le
+ring3l
rin2gr
-ring3sp
2r1inh
2rinit
-4rinj
-4rink
+2rink
rin2kl
-rin2ko
-rin2kr
-2rinl
+3rinn
6r5innenm
4r3inner
-2r1innr
+4rinnta
r1innu
-2r1in2q
-2r1ins
-rin4si
-rin2so
+2rins
+3r4ins.
+rin4so
+rin2sp
r4inspi
-3r2insy
2rint
-4rinte
-rin6tent
-rin4t5re
+rin4teg
+rin4t5r
2r1inv
-rin2va
-2rinz
-ri2ob
-r3ion
-ri3o2st
-ri2pl
-ri3po
4r1ir
r2is
ris2a
-ri3san
-ri4sch3o
+ri4scho
ri4schw
3risik
-ri3s2ko
-r3iso
-ri4s3p
-r3isr
+rismu2
+ri3so
+ri4s1p
3riss
-ri4s3t
+ri4st
ris6t5ers
-ris4th
-rist3r
r2it
r3i2tal
-rit3ant
-rit2i
-2ri3t4r
-ritt3a
-rit4tau
-rit6ter6f
-rit4to
-rit2t3r
-rit2u
-r1i4tum
+ri3t2i
+ri3t4r
+rit2tr
+5ritu
rix1
1rí
2r1j
2r1k
-rka2b3l
-rk1ah
-r2k1ak
-rk1all
rk2am
-rk1are
-rk1asp
+rk4ap
rkauf4s
-r2k1ÃĪh
-r3kel
-r4kelem
-rke2n1
-rken4er
-rken3s4t
-r2k1er2l
-rk5ersta
-r2k1er4w
-r3k2es
-r3ket
-rk1im
+r2kÃĪh
+r3kla
rk4las
rk4lau
-rk4lim
r2klis
rk2lo
rk2lu
-rk4ne
-r2kob
-r3kol
-r3kon
-rk2op
-rk1o2ri
-r2kou
-rk2Ãķ
+rk4n
+r2k5nu
rk3rÃĪu
+r2k3rea
r3kri
-rk3rin
-r2k3rom
-r2krou
-rk2sal
-rk2sei
-rk2sel
-rk2ser
-rk2so
+rk2s1e
rk2sp
rkstati6
rk4stec
-rk4stoc
rk2ta
-rk2tel
rk4t3eng
-rk4tent
rk4t3erf
-rk4terg
-rk4t3erl
rkt3ers
rk6tersc
rk4t3erw
rk4t3erz
-rk4teta
-rkt2i
-rk2t3in
-rk4t1o2
-rkto4b
+rk2tin
+rk2t1o2
rk2t3r
+rk3tra
rk4tri
-rk2tum
-rk1ums
+rk2um
rku2n
-r3kup
-rkur3s
-r3kus
-rku2sa
-r2kÞb
-2r1l
+rk1uni
+4r1l
rl2ab
-r3lag
-r5land
-rlan4d3i
+r5lag
+r5lan
r2l1ar
-r2l1a2sc
+r2l1a4sc
r2l3aug
-rle2a
+rl2e
+rle4a
r3lec
-r5lei.
-r3lep
-rl2et
-r3lex
-rlg4
+rle4i
+r3let
r3l2i
-rli4ne.
rli2s
r3l2o
-rlou1
-rl2Ãķ
rlÃķs3s
-rls2a
-rl2spr
+rl2s1p
rl3ste
-rl2s5to
+rl2s3to
rl3t
-r3l2u
-r3ly
+r3lu
rlz2
4r1m
r2mab
-r2m1ad
+r3m2ag
rma2la
-rm1ald
-rm1ami
+r2m1ald
r2m1ank
+rm1ans
rm1anz
-r4m3aph
-r2marc
-r2marz
-rma4s3pe
-rmas3se
-rmat2o
-rm2ÃĪr
+rm1a2p
+r2maph
rm3d2
-rm1ef
-r4m3einh
-rme4na
-rm2ene
-r2ment
+r2m1ef
r2meo
-rmer4fo
-r2m1erh
-r2m1erl
r2m1erp
-r2m1erw
rm2es
-rme1st
-rmes4z
-rmeta2
r2mide
-rmi6nanz
-rminen4
-rmi6neng
-r4mn
-r2m1ob
-rmon3s4
-rm1o2ri
+r2m1im
+r2m1o2ri
rmo1s
-rm3p2
rm3sa
-rm3s2k
-rm3t
+rm3sta
rmt2a
-rmu2n
-r4muna
-r2muni
+rm2u
+rm3ums
4rn
rna2b
-r3nad
-rn4ade
-r3nage
-r2n1all
rna4n
-rn4and
+rn2and
rn3ani
-r2nanz
+r2n1anz
rna2r
+rn2arb
rn3are
-r4n3ari
-r4n1ast
-r4n3att
+rn3ari
r2nau
-rn3aug
rnd4
-rn3de
rn3dr
+r3ne
+rn3e4ben
r4nef
-rn2eid
-r4neif
-r4neis
-rn1ema
+rn2ei
+rn3eif
+r4n3eis
rne2n
-r2n1ene
-rn2eng
-r4n1e2p
+r4n1ene
+r4nerf
r4n1erg
rn4erhi
-rner4ke
-rner4ku
-r4n1erl
r4n1ert
-r4n1erw
-r4nerz
+rner4ve
r5nes
-rn2e2t
-rnet1e
-rne4tem
-rne4ter
-rne4to
-rn2eu
+rn2et
rne3uf
r4nex
rn3f
-rn3g2
-rngene4
-r2nid
-r2n1in
-r4ninf
-r3nit
-rnk2
-rnn2
+rng2
+r3ni
+r4n1in
r3nod
-rn2oh
r2n1op
r2n1or
rn1Ãķ
-rnÃķ2d
rn3sa
rn3s2ÃĪ
-rnse4ha
-rn3s4p
-rns2u
+rn3s2p
rn3s2z
-rn3t2a
rn3t2e
+r1nu
rn1ur
r1nÞ
r1ny
-rnz2
-r2oba
+ro2bei
2robj
1robo
-ro2bo2r
-2robr
-ro2bre
2robs
ro1c
-roch2a
3rock.
r2o3de
-rod4r
-roe4
-2roff
-ro3fl
-4rog.
-ro3g2a
-3rogg
-ro2h1in
-roh1l2
-4rohn
-ro2hÃķ
-3rohr
-1roi
-ro3in
+ro3e4
+roh1l
+3r2ohr
+3roi
ro1ir
-rok2l
ro3le
-ro2liv
rol4lan
-rolle4
-rol6lerg
-rolls2
+rol3l4en
rol3s
2roly
4rom.
ro2mad
-ro2mal
-3roman.
-2romb
-romen3e
-ro2m1er
+ro2mer
4romm
-2romn
-rom3s
4romt
r2on
-ro3n4ab
-ro2nan
-3rond
ro4nerb
-4ronk
3ronn
rons2
ron4tan
-ron6tend
-ron4t3r
-ron2t1u
-ro1ny
-ro1o2f
-rop2a
-2rope
+4ro1ny
+ro1pe
2ropf
-1ropl
-2ropt
+ro3ph
r1or
+r2ora
ro2r3al
ro2rat
-2rorc
-ro2rel
-ro2ro
+ro2rei
+ro2r1o
ror3th
-rort2s
-ror2Þ
ro3sh
-ro5s2i
-ros4ko
-ros4sal
+ro3s2i
+ro3smo
ros4san
ros2s1c
-ros6senk
-ros4st
-ro1sta
-ros6t1r
-ro2sum
-4r3osz
+ro3sta
+rost1r
4roß
-roßen2
-ro4ßenk
-ro2ßi
-ro2tan
-ro4tas
-ro4t3au
+ro2ßu
+ro4tag
ro2tÃĪ
-ro2te3i
-ro2t1ho
-ro2tru
-rot3s
+ro2tei
+ro2tho
+ro4tri
rots2o
rot2ta
-ro3tu
-3roul
+ro3t2u
ro3unt
3rout
-2ro1x
-4roy
rÃķ2b3l
rÃķ2du
2rÃķ2f
3rÃķh
-2r1Ãķk
+r1Ãķk
1rÃķl
-2rÃķl.
-rÃķ3le
-rÃķl2l
-r1Ãķlp
3rÃķmi
+4rÃķp
r1Ãķr
r2Ãķs.
-rÃķs1c
r2Ãķse
-1rÃķsl
3rÃķtu
2r1p2
-r3pa
-r3pe
-rper3in
+r3p4a
+r3p4e
+rpe2re
+rpe4r3in
rpf4
r2pli
-rp4lu
-r3po
rpro1
-rp3se
rps3t
-r4p3t
+rp3t
r3pu
2r1q
-4r1r
+2r1r
rr2ab
-rr4at
+rr2ar
rrat2s
-rr1auf
rr1ÃĪm
rrb2
rr1c
+rr2e
+rre4ale
r5rega
-r5regi
-rr2ei
+r5rei
rre2le
rre2pa
-rrer2
-r2rerh
-r2rerl
rrer4s
-r3res
+rre2st
rre2ve
-r4rezi
-r3r2hen
-rr2hos
-r3r4i
-rri3k2
-rrm2
-rrn3au
-rr2o
-rr3obs
+r2rew
+rr2he
+r3r4hen
+rrik2
+rr2n3a
+r3r2o
+r4r3ob
rro3m
-rro2re
-rrr2
rr2st
-rr3str
rr3stu
rr2th
-r3r2u
+r3ru
r3r2Þ
-rrz2
-6r1s
-r3sabo
+rrÞ1b
+4r1s
r2s1a2d
-rs2al
r4samp
r4s1amt
rs2an
-r4sanf
r2s3ang
-rs3anm
-r4sanp
+rs3anp
rs3ant
-rs3anz
-rs3ar
-rs4ark
-r4sarm
-r4sch3e4b
+rs2au
+r3sche
r6scherl
r3schu
-r2s1ebe
-rse2e
-r2s1ef
+r3schw
r2sein
-rse2n
+rse2n1
rs2end
rse4ne
-r2sepi
rs1ere
-r2serh
+rs1erÃķ
rs1ers
-r2serz
+rs1erz
rse2t
rs1eta
-rs2ext
-r3s2hav
-r3shir
r3sho
-rs2hor
-r4shu
-rs2il
-rs2ka
-rs2kel
-rs2ki
-r4skir
+r3si
+r4sins
+rs2kal
+rs2kan
+rs2kie
+rs2kis
rs2kl
-r4skor
-r3s4kri
-r4sky
-rs4mog
-r3s4no
+r4sko
+r4skr
+r4sku
+rs3l
+rs4no
r3so
r4sob
-rs4om
+rson4e
r4s1op
-r4sorie
+r4sord
r4s3ort.
-rso2s
-rs1ost
-rs2p
-r3span
-r3spe
+rs2p4
+rs4pel
r2s3ph
-r3spi
-r3spl
-rs4por
-r2sput
+r5spi
rs3s2
-rst3abl
-r3stad
-rst3ala
-r4stale
-r4stans
r4stant
-r2stas
-r7stati
-r7statu
-r3stÃĪ
-rst5eing
-r6st5eint
-rst3emi
+r5statu
+r6st5eing
rs4temp
rster2
-rs4t4erb
-rst3erl
-r3s4tern
-rst3erw
-rs2tev
-rs2t1h
+rs4terb
+rs4t3erw
+rs2th
rs2ti
-r3s4tie
+r3stie
+r5stim
r2stin
rst3ing
r3stink
r2stip
-r2stit
r3sto
rs4tob
-rs4tol
-rs4tor
r4stot
-rs4tr
-r3stra
+r3stÃķ
+r3s4tr
+rst3ran
r6strang
-rs5tren
+r4strun
rs2tu
-rs4tuc
r3s4tÞ
-rsuch4s
-r3suf
-rs2ums
+r2sumf
+r3swi
r3sy
-r1ß
4r1t
-r2tabo
-rt1abs
-rta2ck
-r2t1a2d
-r2t3ae
-rt1akr
-r4t3albe
-rta3l2e
-r2t1all
-rtal4s3e
+rt4abl
+rtal2
+r2t1alm
+rtals1
rt1am
-rt2ame
+rt1ang
rt1ann
rt1ant
-r2tanw
r2t1ar
-rt3att
-r2taut
-rt3ÃĪh
-rt1ÃĪnd
-rt1ÃĪrm
+rt3a4re
+r2t3att
+rt1ÃĪr
rte1e2
-r3teh
+rtei3la
rt1ein
-rt4eind
-r4t3einh
-rte2i1s4
+rtei1s4
r2telf
-rtels4t
r2temo
rte2n1
rte4na
-rten3s4
-r4t3ents
-rten3z
-rteo2
+rten3s2
rt3erei
-r6tereig
-r4ter4fa
-r4ter4fo
+r4terfa
+r4terfo
rt1erh
-rt1erk
r4t3er4la
rter6mit
r4t3ernÃĪ
-r2ter2Ãķ
rter4re
rt1ers
-rt4ersp
-rt1erz
-rte3sk
-rt1he
-r2thel
-r2t1hi
+rte3s2k
+r2thi
rt2hum
r2t1id
-rtik2
r2t1ima
-r4t3inf
-rt2is
-rt2it
-rt3l
-rt3m
-r2t1ob
-rto1pf
-rt1orc
-r4torg
-r4trak
-rt3rams
-rt3rand
-rt3rati
+r2tinf
+rt4is
+rto1p
+rt1or
+rto2ri
+r3tÃķ
+r4t3rak
rt3rec
-rtre1s
-r4t3ris
-rt3rol
-rt3roma
-r3trop
-r2trou
+r5tri
+rt3ros
rtrÞ2c
-rt3sc
+r4ts
rt4s1eh
-rts2el
-rt3sex
-rts3ing
-rts1o
-rts1pa
-rt4s3tan
-rts4tie
-rt2su
+rt2so
+rt2spa
rt3t4
-rt1umb
-rt2u3na
r2t1urt
-rtu4t
-r2t3ute
r3tÞ
-rty1
-rt3z2
+rt3z
+rtz2a
1ru
ru1a
-ru4ale
ru3a2r3
-rube4
-ruben3
-rubens4
-rub2i
-rucht3s4
+rube2
+ruch3st
ru6ckerl
ru2cku
rude2a
ru2dr
-ru2et
3ruf
-ru2f1a
-ruff4
-ruf2s
+ru2fa
+ruf2s3
ruf4ter
-ru2g3r
-3ruhm
2r1uhr
-3ruin
-ru3ins
+ru1ins
ru1is
2rum
-ruma2
-4r3umd
-4r3umf
-4r3umg
+4rumf
ru2mi
-4r3uml
-4r3umsa
-4r3umw
+4ruml
+r2ums.
4rumz
2r1una
2rund
-run4d1a
-runden5e
-run4d3er
-run2e
-runei2
-4r1unf
-run2ga
+run2d1a
+r2unde
+rund3er
+run6derf
+run6der6l
+run6ders
+run6derw
+2r1unf
2rungl
-4r1u2ni
-r3unio
-ru4nis.
+2r1u2ni
+4r3unio
run2kr
-4r1unl
+2r1unl
2r1unm
4runn
-4runr
-r1unse
4r3unt
-4runw
-2rupd
+2runw
ru3pr
-4r1ur
+4r3ur
ru2ra
ru2r1e
5ruro
-r4us.
ru2si
-rus2p
rus2s1p
rus4st
ru2st
-ru2tab
-rute4
+ru3sta
+3rut
ru4tei
-ru4t1el
-ru2t1er
-ru4t1o2
+rut3h
+ru2t1o2
ru2t3r
-rut6scha
4ruz
-ru2z1w
+ru2zw
1rÞ
2rÞb
-4rÞbu
+rÞ1ben
rÞ1ch
-rÞ4ckel
-rÞ2hel
-rÞher2
-rÞh1l
+rÞck5sta
4rÞmm
rÞn3z
2r1v
-r3ve
-rv2el
rve4n1e
-rvenen4
-r4ventz
-rve3s
-r3v2o
2r1w
-rwe4gel
-r3wei
-rwelt4s
-r5werk
-r5wert
-r2wo.
-r3woh
-r3wort
+r5wei
rwun3s
4r1x
1ry
-2r1ya
ry2c
-rygi3
-ry1la
-ry2le
-ry1os
-ry3sth
rysti1
2r1z
rz2an
-rz3ant
r2zar
-r2zat
-rz2ÃĪn
+r2zas
+r3ze.
+rz1eck
r5zene
rz1eng
-r4zents
-rze2p
-rze2ra
-r2z1erd
+r4z3ents
r2z1erf
r2z1erg
-rz1erk
-r2z1erl
+r2z1erk
r2z1erw
-r2z1ess
rz1id
-rz1int
-rzir3
r3z2of
-r2z3ot
-rz2tan
+rz2Ãķ
rz3te
rz2th
-rzu4g3l
-r2zwÃĪ
+rz2t3ro
+rzug2u
+r3zÞ
+r3zwÃĪ
r3z2wec
-r2zwir
1sa
3sa.
3s2aa
2s1ab
-sab2ÃĪ
-4sabd
sa2be
3sabet
-sa2bit
sa2bl
-4sabm
-sa2bor
+sa3ble
sa2br
-4s3abs
-3sac
-4sacc
+4sabs
5sache
-sa2cho
-sachs2
+sa2cho2
sach3t
-s2ack
+5sack.
2s1ada
-sa2der
s1adm
2s1a2dr
3safa
-sa4fe
-4s3aff
+sa2fe
+2s3aff
+3safi
sa1f4r
-3s2aft
-saf4tr
3saga
-sag2e
-5sage.
-5sagen.
-4s3agent
-2s1agg
-sa2gio
+sa4gent
sag4n
-s1a2gr
-s2ahs
+sa2gr
3s2ai
sa3i2k1
sail2
-sai4r
2s1ak
sa2ka
-sak2e
3saki
-4sakk
-3sako
+3sakr
4sakt
3s2al.
-3s2al2a
-sa2l3an
-sa2lar
-sa3lat
-3s2alb
-sal3bl
-3s2ald
-sa4lerk
-3sali
+4s1alar
+sa4l3erb
sa2l1id
-s1all
-sal3la
-sal4le.
-3sal2o
-sal3or
+3salo
sal2se
-s1alt
-s2al3t2h
-3salz
+2s1alt
+3s2alz
3sam
-4s1a2mat
-4s1a2mei
-s2amen
-sa2min
+s3ameri
5samm
6s1amma
4s1amn
s1am3p4
-4samph
-sam4ta
-sam4to
-samt3st
+sam2to
s1an
s2an.
2s3a2na
-san4at
-sa2nÃĪ
-2s3anb
+s3anb
s2an2c
3s2and
s4and.
-san4dan
-san4d3ri
-sand3s
-sa2ner
+san4dar
+san4dri
3sang.
-4sanga
2s3anh
3sani
-3sanken
2s3anl
-2sa2no
-2s3anp
2s3ans
-s4anse
san4sk
-san3sp
-4santei
4s3antr
-4s3anw
-2sanz
+2s3anw
2s1ap
-sa2pe
s2aph
-sap3p
+sa2po
3sapr
-2s1aq
2s1ar
-3s4ar.
-3sara
+3sar.
+3s2ara
4s3arb
3s2ard
-s2are
-s3area
-3sarg
-sar2ga
-sa3rin
-s2ark
-sa2rom
-s2ars
-4sart
-sa4r1u2
-3sas.
-sas2a
-s1asc
-s1a4si
-2s1a4sp
-sas2tu
-4sa2sy
+3sari
+s3arr
+3s2ars
+4sarti
+s1asp
+4s3a2sy
+3sat
sat2a
-satan4
-sa4t3ant
-sat1ei
-2s3a4tem
-s3ath
-3sat2i
+4s3ath
4s3atl
-4satm
-sat2o
-sa4tol
+4s1atm
sa2tr
sa3ts
-s3atta
-4s3attr
-3satz
-5satza
-sat4zel
sat4z3en
-s1au
-3sau.
+s1a4u
+3s4au.
3sauc
-3sau2e
-2sauf
-4s3aufb
-3saug
-saug3le
+3saue
+sau8erste
+2s3aufb
sau2gr
3saum
3saur
sauri1
-2saus
-3saus.
-4s3ausb
-4s3ausf
-4sausg
-sau2sp
-4sauss
-3sauste
-4s3ausw
-2sauß
-s1av
-sa2ve
-sa2xi
-sa2y1
+2s3ausb
+s3ausw
+sa2vo
1sÃĪ
-3sÃĪb
-3s2ÃĪc
-3s2ÃĪg
-s1ÃĪh
-4s3ÃĪhn
+s3ÃĪhn
3sÃĪl
4s1ÃĪlt
2s1ÃĪm
-4s3ÃĪnd
-4s3ÃĪp
-2sÃĪq
+2s1ÃĪnd
2s1ÃĪr
-3s2ÃĪrg
3s2ÃĪt
3sÃĪul
-4sÃĪuß
+2sÃĪuß
4s3b4
-sba4ne
-sbau6men
-sber2e
+sba4n
+sbe3r2e
1sc
2sc.
-2scab
-2scac
-2scal
2scam
+s2cap
2scar
-2scat
2s1ce
-4s3cei
-4sch.
-3s4chal
-sch3ana
+6sch.
+2schak
+s4ch2al
4schanc
4schang
-4schao
-4schara
-4sch3ar5m
-s2chÃĪ
-2schÃĪq
+2schao
+s4chÃĪ
4schb
4schc
2schd
sch2e
-4schech
-sche2f
+3sche.
6schef.
-6schefi
6schefs
-s4chei
-4sch3ei.
-sch6ein.
-s4chema
+sch3ei.
4schemp
-sch5erfÞ
-sch5erla
3sches
4schess
4schex
2schf
2schg
2schh
-schi4d
schi4e
+s4chil
4schiru
3schis
2schk
s4chl
-sch4lac
sch4lag
4schle.
6schlein
-4schloc
-4schlÃķc
4schmas
-4schmed
2schmÃķ
4schmÞh
-2schmy
2schn.
-4schneb
4schobj
-4schorc
-4schÃķr
-4schp
+2schox
+s4chÃķ
+2schp
2schq
-4schrad
4schre.
4schrin
-4s3chris
sch3rom
4schron
4schrou
-4schs
+6schs
schs2e
sch3s2k
-schs4ti
+sch3sta
4sch3t
scht2a
-scht2i
+scht4r
s4chu
4schunt
+3schÞ
2schv
-sch4web
-4schweg
-6schwerk
+4schwaa
4schwet
-4schwid
-3schwu
+sch4wil
2schz
2scj
4s3cl
-2s3co
-4scoa
-3s4co2p
-scre4m
+2sco
+3s4cop
+3sco4r
+s2cr
2scs
2scu
-2scy
4s3d2
sda3me
-sde1s2
+sde1s
sdien4e
-sdi1st
+sd4r
1se
-3se.
se3at.
-seb2
-3sebÃĪ
2s1e2ben
+seb4r
2s1echo
-sech4st
-2s1echt
+s1echt
2s1e2ck
se2dik
3see
-see1i2
+se1ec
+se2e1i4
see3ig
-se2el
-see3len
-se3en.
-see3n2e
-se3enp
-se3er.
-see1ra
-seer2e
-se1erf
-se3e2r1i
+seein2
+se1er.
se1erk
-se1ers
-see3s4
-2s3eff
+se1erÃķ
+2s1eff
sef4l
-3s2eg
-4s3e2gal
+se2gal
se2gl
seg4r
3seh
seh1a
-se2hag
-se2hak
-se2hel
-seher4e
+se2ha4g
+se2han
+se3he
+se4h1ei
+se4hel
se4herk
-se2h1in
-seh3l
-se4h3Ãķ
-seh3ra
+se2hin
+seh1l
seh3re
-seh5r2i
seh1s
+seh3t
se2hÞb
-2sei.
-2s1eic
-2s1eid.
-sei3da
-4s3eifer
+2s1ei.
+2s1eie
2s1eig
-3seil
-s2eim
+sei3le
s1ein
5s4ein.
2seinb
sein4du
-2sei3n2e
-seine3i
-4seinfl
+sei3n2e
sein4fo
-2seing
-2s3einh
-2seini
-2seink
+4seing
+2seinh
+4seink
2seinl
2seinn
-sein4ne
-2s3einr
+4seinr
s4eins.
-4seinsc
+4seinsa
4seinsp
-sein8stit
-sein6str
-2seint
-sein4to
-4seintr
+4seinst
2seinw
-2s3einz
-2s1eis
-3s2eism
+4s1eis
3s2eit
-seit2s
3sek
-4s1e2kel
-4sekz
+4s1e2ke
s2el.
se2l1a
-3s2elb
-sel3d4
+se3lad
+sela4g
+se3lam
sel1ec
-se2lef
-2s3e2leg
-6selektr
-2selem
-se2ler
+4selem
+se4lerl
sel3ers
2self.
-selin4s
-s3e2lit
-2s1elix
-s2ell
-se2lob
+s1elix
+se2l3Ãķ
s2els
sel3sz
-selt2e
-selz2
-sem2e
-2s1e2mis
-2s3emp
-s4en.
-3sena
-se4nad
-se3nal
-se4nas
-sen3au
+sel3tr
+s4e3ma
+2s1emp
+3s2en.
+se4nag
se2nÃĪ
-s2enb
-4s1endl
-sen3d4r
-s1endw
-senen1
-4senerg
-se4ners
-s2enf
-3s4eni
-se2nid
-se2n1im
-3s2enk
-sen6keli
+2s1endl
+3seni
+3senk
se2no
-se4nott
-se4noz
-3sens
-s2ensa
-sen4s3e4h
-4sensem
-s4ensi
-sen4si4d
-senst2
-sen8s7turm
-sent2a
-sen3tÃĪ
-2sentd
+3s2ens
+s2ent.
+sen3ta
4sentf
-2sentg
-4sentla
-2sentn
-s2ento
-sen3tr
-4s1ents
+2s3entg
+s2enti
+2s1ents
2sentw
-4sentwu
-4sentwÞ
-4sentz
-se4n3u2
-sen3za
-sen4zer
-sen3zw
+2sentz
+se2n3u
seo2r
-se2pen
+4s1e2pos
3seq
-s4er.
-se2r3a2d
-ser3al
-se3rand
-ser3ÃĪus
-serb2
-s3erbe.
-serd2
-se2r1e2b
-se3reie
+3s4er.
+3sera
+ser3a2d
+se2r3al
+s3ereig
6sereign
se4r3eim
-se4rein
-sere2m
-5s4eren
se4r3enk
-s4erfe
-s1erfo
+ser2er
+2s1erfo
s2erfr
s3erfÞ
-4serfÞl
-serg2
-ser3ga
-ser3gl
-s2ergr
+4ser4fÞl
+s4ergr
s1erh
2serhÃķ
3seri
-5serie
serk4
-4s3ermit
+4s3erken
s2ern.
-s3erneu
2s3ernt
-sero4b
-2s1e2ros
-s1erot
-s1erÃķ
-2serÃķf
+se1rot
+4s3erÃķf
+ser3r
s2ers.
2sersa
4serseh
-ser6sehn
-4ser4set
-se3ru
-se4ruh
-ser2um
-s3e4rup
-5s4er3v
-s1erz
-3s4es.
-se3s4a
+s4ert.
+s2erta
+seru2
+se4r1uf
+se3rum
+se3rund
+3s4erv
+5ses.
se2sel
se3sk
-2s1essa
se1sta
-se3stec
-se3stei
-se5stemp
-sest3ri
se3su
-4s3e4tap
+3set
+4se4tap
se2tat
-2s1e2th
-set2i
-4s1e2tik
-3setz
-3seuc
-2s1eul
-seum4
+4s1e2th
se1u2n
-s1ex
-3sex.
-2sexa
+2s1ex
se2xe
-sex3en
-s2exi
-s2exo
4sexp
-sex3t4r
-2sexz
+sex3t2
1sÃĐ
4s3f4
sfal6l5er
-4s3g4
-sgang4
-sge3sa
-sge5t
+sflo4
+4s3g2
2s1h
4sh.
sh2a
-3sha.
-shal4li
-shalt2
-shalt4s
-4shan
+3s2ha.
+sha2k
+4s3han
+1shas
s3hÃĪ
-sh2e
-sh2i
+s3h2e
3shi.
-s2hip
+3shid
+4shil
shi4r
sh3n
-4s3hoc
-4s3hof
-4shom
+s3hoc
+4shof
3shop
sho4re
-3s4how
-4s3hÃķ
-sh4r2
+3show
+s3hÃķ
+sh4r
4shs
-s3hu
1si
-3si.
si3ach.
+si2ad
+si3am.
2siat
-5s4i1c
-si2cha
-2s1idea
-2sidee
+sib4
+5si1c
2s1ideo
-si3der
-s2i3do
-2sidy
+s2ido
3s4ie
-sie2bu
siege4s
+sieh1e
+sie4hes
sien3
si3ene
si1err
+sie2s
si1f4
3s4ig
si2g1a2
-si2g1ei
sig4n
+si3gnu
si2g3r
sig4st
si2k1ab
si2kak
-si2kar
si2k1ÃĪ
-si2k1el
-si4kens
sik3erl
-si2k3i
-sikin1
-si2k3n
-si2k3r
+si2ki
+si4k1l
+si2kr
sik3s
-sik3t2
+sik3t4
si2ku
-3silb
sil2br
-sil2e
-3sili
-s1ill
3silo
2s1imm
-sim4st
-3simu
si3n4a
2s1ind
2s1inf
-4s3infe
-s3infor
sing1a
-sin3g4le
-sin2g3r
-sings2
+sin3gl
+sing4le
+sin4gr
sing3sa
-sing3so
-2s1inh
-s1in1i
+4s1inh
+sin1i
sini1e
-s2ink
-sinner4
-2s1inno
-4s1inq
+2s1inq
2s1ins
-4sinso
-4sinst
+s2ins.
2s1int
4s1inv
+3sio
sion4
-sirn4
-2sirr
3siru
+3sis
si2sa
-si4sam
-s2isc
si4schu
-si2s1e2
-si2si
-s1i2so
-sis1or
-si2s3p
-sis3s4
-3s4ist
-si2su
+si2s1e
+si2s1o
+si2s1p
+sis3s
3s2it
-si2tal
si2tau
+sit3r
si2tra
-sit2u
-si2va
+si3tu
+siv1a
sive3
-siver2
-si4v3erf
-si2vin
-siv1o4
-si2vor
-siz2
+si2vr
1sí
-4s3j
+2s1j
2s1k2
4sk.
-sk4a
-4s3kab
-s3kad
-4skalk
-s3kalt
-4s3kam
-4skana
-4skanÃĪ
-3skanda
-4skann
-4skap
-4s3kar
-4s3kas
+3skala
+4skam
+4skanz
+s3kar
+4skas
+skas4tr
ska4te.
4skateg
ska4tes
-ska4to
-4skau
-4s3kÃĪ
+4skÃĪ
4skb
-ske2li
-4sken
-3skep
-4sker
-4s3ket
-s3kh
+s4kep
3s2ki.
-3s2kif
+s2kif
+s2kig
3s2kik
-s3kim
-s3kin
+4skir
ski1s
-s2kis.
3skiz
sk4l
4s3klas
3s2klav
-4s3klu
4sk4n
-4skoh
-4skol
4skom
-4s3kon
-3skop.
-sko2pr
-4skos
+4skor
4skow
-4s3kÃķ
-sk4r
-4s3kra
-s3kre
-4s3kro
+4skÃķ
+s3kro
4sks
-4sk3t2
-skto2
+4sk3t
3skulp
-4skun
-sku2s1
-4skÞ
-4skv
2s1l2
-sl4a
-s3lab
3slal
-sla2ma
+4slan
sla2ve
s2law
s3lÃĪ
sl3b
-4s3le
+s3le
sler3s
s3li
3s4lip
+sli4tu
+s3lo.
slo3be
-s3loc
-s4loga
-3s2low
-s3ly
-4s3m4
-sma3b4
-sma3sc
-sme3na
-smi2t3
+s3loe
+2s3m2
2s3n2
+4s5na
snab4
-sni4a
sni3er.
sni3ers
4s5not
+4snÃķ
1so
3so.
-2s3oas
+so4a
2s1o2b
-3s2o3ba
-4sobj
-4s3obo
so1c
-so2di
-so2do
so3et
-2s1o2fe
-2soffi
3soft
3sog
-sog4l
s1o2he
-3sohl
-sohle2
-2s3ohng
+4sohng
2s1ohr
-3soi2
-so3id
-2s3ok
-3sol.
+3sol
so3la
-so4lau
-3sold
-3sole
so2l1ei
-so3li
-sol2la
sol4ler
-so3l2o
-4s3o2ly
-3somm
+4so2ly
+3som
3s2on
-son2a
son3au
sone2
-son4gl
+son3end
son3sÃĪ
son2s1o
so3o
-2sope
-2s1opf
-3sopr
+2sopf
sop3s
-4s3ord
-sore2
+3sor.
+s1orc
+2s3ord
so2rei
-so2rel
-4s1orga
-so1rh
+so3ren
+2s1orga
+5s2orge
2s1o2rie
so2ro
-3sorp
-3s2orti
+3sors
so4ru
3sos
-s2os.
-4so4sk
-4sosm
-4so1st
-4s1osz
-3so3ß
-2sot
-so3t2h
-3sott
-soun2
-sound1
-so3unds
+s4os.
+4s1ost
+3soß
so3unt
-2s1out
3sov
+4s1o2ve
3sow
-2s1o2x
+2s1ox
3soz
-s1oze
1sÃķ
sÃķ2c
-2s1Ãķ2d
-2sÃķ2f
+sÃķ2f
2s1Ãķk
-2s1Ãķl
-2s1Ãķs
+s1Ãķ2l
+s1Ãķs
1sp2
2sp.
4spaa
-s2pace
-2spack
-2spag
-2spak
+4spak
2spala
-2spalÃĪ
-3spalt
-spa2m
-s2pan.
-3spannu
-s2pans
-3spant
-2spanz
-2spap
+spani7er.
+4spap
2s3para
-2sparo
+4sparo
5s6parten
-4spartn
-4sparty
+3sparu
3spaß
-3spat.
-2spati
4spatr
-2spau
-3s2paz
+4spau
+s2paz
s2pÃĪ
-2spÃĪd
3spÃĪh
2spÃĪr
-2spÃĪs
2s3pe.
-2speg
-4spein
+s3pel
4spensi
spe3p4
s2pera
-3s2perg
s1peri
-4sperle
2spero
s2perr
2spers
-2sperÞ
4spet
-3s4pez
-4s3pf4
+3s2pez
+4s3pf
2spha
-s2phÃĪ
-3sphÃĪr
+s4phÃĪ
s3phe
-s4phin
3s2pi4e
-4spier
-spier4r
+4spier4
spi2k
-4s3pil
+4spil
3spio
-4s3pip
-4s3pis
-2sp4l
+4spip
+4spis
+2spl
4spla
-4s3plÃĪ
+4splÃĪ
4sple
-sp5le.
3s2pli
-4s3plu
-2s3pn
+s3p4lu
+s3pn
2spod
-4spoe
2spog
s2poi
-4s3pok
+4spok
4spol
-s2pons
-4spoo
-2spop
-s2pore
-3s2porn
-spor6tag
4s3pos
-4spote
+s2pott
4spr.
-3s2prac
-2sprak
-2sprax
+s2prac
+s2pran
+4sprax
2sprÃĪm
4sprÃĪs
3s4prec
4spred
-4spreis
-5s2pren
-2s3pres
+s2pren
+2spres
s2pric
-3spring
-4sprinz
2sprob
-2sprog
-4sproj
-4sprop
+2sprop
3spross
-2sprot
-2sproz
-3sprÃķ
-3s2pru
-3sprÞc
-2sprÞf
-3sprÞn
-4s3ps
-2s4p3t
-2spub
-2spud
+3spru
+4sprÞf
+2s3ps
+2s4pt
3spuk
-3s2pule
2spun
2spup
-3s4pur
-spu4rer
-2spy
+3spur
+4sput
+4spy
2s1q
4s3r4
srat2s
-sre3cha
-sreli1
-sro2h
-srÃķ2s
+srat4sc
+sret3
+srÃķ2s1
srÞcker6
6s1s
-ss3abi
ssa3bo
-s5sack
-ss4agi
+s5saf
+s3sag
ss1aj
s3sal
-ss3alba
-s4sall
-s4samt
-s2sanf
-s4sang
-s4sano
+s4s1alb
+s4s3amt
+s4s3ang
+s2sano
s4sans
ss2ant
-s4sanz
-ss2ara
-ss2arg
-s3sars
-ssa1s
-s2s3att
-ssau3e
-ssau4r
+s4s3anz
+s3sa1s2
+ss3att
s3s2ÃĪ
s4sce
ssch2
-sschanker8
-s3schw
s4sco
-s2scr
-sse3a
ss1ec
-sse1ec
-sseh2a
-s2sein
-ss4eind
-sse3int
-sse2lÃķ
-s3sen
-ssen6kel
-ssen6sem
-ss1epe
-sse6ratt
-ss5ereig
-ss4ergr
-sser4hÃķ
-sser6mit
-sser4Ãķf
+s2s1ega
+sse3inf
+sse3in4t
+sse6r5att
+ss1erÃķ
ss3erse
-ss4eru
-sser6wei
-sses4sa
-s4s3estr
-s3set
+s3s2es
sse3ta
-s3si
-ss3i2ko
-s4sill
-s4simp
-s4sind
-s4sinf
-ssing3s
-s4sint
-s4s1isr
-s3skala
ss3l
-ssmut4
ss1off
ssoi4
-s3sol
-s4sop
-ss2pen
-ss2phi
-s3spi
-s3sprÃĪ
-s3spri
+s2s1op
+ss1ori
+s2sÃķl
+s3spe
+ss2po
s2spro
ssquet4
ss3s4
-sssau4
sst2a
-s3stad
-s4stag
-ss3tak
-s3stÃĪ
-sst2e
s3stel
-s3s2tep
-s3s4tern
-ss4teu
-sst2i
-ss2tie
-ss2t3in
-s3stof
-s3stop
-ss4tÃķr
-s3stran
-ss4tras
-s3s4trat
+ss2th
+ss2ti
+ss4tip
+s3s4tras
s3strec
-s3strom
-s3strÃķ
ss2tur
s3stÞ
-s2sumg
-s2sumr
-ss2ur
-s3sy
+ss1ums
s1t
4st.
s2ta
-2sta.
+4sta.
3staa
-3stab.
2stabb
-4stabel
-4stabit
-2stabl
-4stabt
-st2ac
-1stadt
-1staff
+s4t2ac
+sta2ck
+3s4tad
+3staff
2stag
-3stagl
-3s4tagr
-3s4tah
+3stah
2stak
-3staks
-2stala
-sta3lak
-2stalb
-s3ta3l2i
+2stale
+s3ta3li
2stalk
+st1alm
st1alp
-st1alr
-st1ami
-1stamm
-1stan
-2stanb
-s6tand
-2stanf
-st2ang
-2stanl
-s4tanm
-4st1ann
-s4tano
-st3ansp
+st1a2mi
+4stan.
+sta4na
+3stand
+2stani
+4s3tann
+2stans
2stanw
-sta3po1
-stapos4
-st1app
s4tar.
-sta6rens
4stari
-s4tark
-s4t2ars
-s4tart
-sta4sie
-stast4
-s3tat.
-2statb
-3stati
-s4tatis
-7statth
+s4tars
+st1asi
+2s3tat.
s4tau.
2stauf
-3s4taur
-4stausb
-4stausg
-4stausr
-4stauss
-s4taut
-s4t1a2ve
-4stax
-1s2tÃĪ
-3stÃĪb
-3stÃĪd
+2staum
+3staur
+2staus
+2stax
+3s2tÃĪ
4stÃĪg
-4stÃĪp
-5s4tÃĪr
-3stÃĪtt
-2s3tÃĪus
+4stÃĪlt
+s4tÃĪnd
+5stÃĪtt
+s3tÃĪus
2stb
2st3c
2std
4s5te.
-4steam
4stechn
-s2te2d
-st1edi
-2stee
+s2ted
+4stee
3s2teg
-ste2g3r
-1steh
-s2tei
-st4ei.
-4steic
+ste2gr
+3s4teh
+s2te4i
st1eid
3steig
-stei4gr
-2steil
+4steil
+3steilh
+steil4z
stei4na
-6steinga
-s4teins
-stein6sp
-s2tel
+1s2t2el
2stel.
-st1elb
-s3tele
-s3telf
-st2ell
-stel6l5ÃĪn
+stel4l3ÃĪ
2steln
2stels
2stem
+4stem.
ste4mar
-ste6ment
-3stemm
-2sten
+4sten
s5ten.
ste4na
s4t3ends
-s5t2ens
+st2ens
s4tentf
-s4tents
-st1e2po
+s2tep
2ster
-4s5ter.
-ste2r3a
-s6terben
-3sterbo
-s3teren
-3stereo
+6s5ter.
+st5erbie
+ste4rec
+ste6rers
st3erfÞ
-3steril
+st5ergeb
4sterm
-3s4ternb
-ster4zo
-4ste2s1
-ste3sc
-stes4se
-s4testn
+3sternc
+4stes
+ste2se
+stes6se.
+ste4st
2stet
-ste4tab
-ste4tag
-3s2teti
+s4teti
3s4tett
3s2teu
1steue
4steuf
-st3eun
-st1ev
-s2tew
+st3ev
4stex
-s2texa
2stf
2stg
-2sth
-st2hen
-s2t1hi
-st3ho
+4sth
+s4thÃĪ
+s3them
+s4thi
+s2t3ho
s2thu
-st1hy
2stia
2stib
-s2tic
-1stich
-st1i2d
+3stic
2stie.
-4stief.
-4stiefl
+s2tieg
+s2tiel
2stien
-1s2tif
+3s2tif
2stig
-sti4gel
-3s4tigm
-2s3tik
-s2t2il
-1s2tim
-3stimm
-4stimma
-2stimp
-st1inb
-2s4tinf
+2stik
+s2til
+3s4tim
+s4tinf
s3tinn
-s2tins
-2s2tint
+st1ins
2stio
-2stip.
-2stipp
-s2ti2r
-st1ira
-st1iri
-st1iro
-4stis
-2stite
+1s2ti2r
+2stis
+st1i4so
1stitu
2stiv
2stj
2stk
4stl
-st3le
-2stm
+4stm
2stn
s2to
2sto.
-sto2bl
-4stocht
-2stod
+s3tob
+2sto3d
4stod.
1stof
s4toff
-2stok
-4stole
-s4toll
-sto3mi
-2s3ton
-4stona
-3s4to4ne
-4stonl
+s4t3om
+4ston
4stoo
+s4tope
2stopo
-4stor.
-s4torb
+2stor.
2store
-2storf
-2s4torg
+2storg
2stori
-2storp
2stors
-2stort
-stos2t
+s3tort
+2stose
+sto3s2t
1stoß
4stote
-2stotr
4stou
2stow
2stoz
-1s2tÃķ
-4stÃķch
+1stÃķ
+2stÃķch
2s3tÃķl
-2stÃķn
-3stÃķr
2stÃķt
2stp
2stq
s2tr
-2strac
-4s3trad
-st4rade
-stra4fa
-4s3trag
-3strah
+2strad
+2s3trag
+1strah
4strahi
4strai
4strak
-2s5tral
-s3trank
+2stral
4strans
-1strap
-3stras
-3straß
-4straum
-4strÃĪc
+5straß
+4s3traum
4s5trÃĪg
4strÃĪne
-2stre.
-s4trea
-4stref
-4streib
-3st6reif
-2strep
-2stret
-4streuh
+4s5tref
+4s5treib
+5st4reif
+st3renn
2strib
-strie3s4
2s4trig
-1s4trik
+1s4tri2k
2s5tris
-1stro
-s3troc
-s3trog
-3s4troh
-s4trome
-4stropf
-2stros
-st4ross
+st3roll
+stro4ma
2strÃķp
1stru
2strua
-2strub
-s4trud
+2strug
3struk
-2strun
-4strup
-2strut
-1strÞ
-4s4t3s2
-stsi4d
-sts4t
+2st3run
+2strup
+2s4t3s2
+sts4k
2st3t4
st2u
-1stub
-4stuch
+5stub
+4stuc
3s4tud
2stue
3stuf
-2stug
-st3uga
-3stuh
-s2t3uk
-2stumo
+5stuh
2stum2s
stum4sc
2stumt
+stu2n
2stun.
-st3una
-5stund
-2stune
-2stung
+3s4tund
s2t3uni
4stunn
-2stuns
+2s3tuns
2stunt
-2stuÃķ
-stu3ra
-stu5re
-2st3url
-4sturn
+stu3re
+st3url
+2sturn
2st3urt
-3s2turz
-2stus
-1s2tut
+2s3tus
1stÞc
-4stÞch
-3s4tÞck
-3stÞh
-4stÞr.
-4stÞre
-3stÞrz
-1stÞt
-2stÞtc
+2stÞch
+2stÞr.
+3stÞt
2stv
2stw
-stwor2
-2sty
-4sty.
-1s2tyl
-4styp
-4stys
-2st3z2
+3s2tyl
+4st3z
1su
su1an
3su2b3
-su4ba
+su4ba2
4subi
-su4br
3su1c
su2cha
-su2cho
-3sud
-su2eb
+such4st
2s1u2f
-su3fi
2s1uh
su1is
su1it.
-su2k
-su3l2i
-3sulta
-sum1a
-su2man
+sul2a
+sul2i
+sult2
su2mar
+su2mau
3s2ume
-su2mei
su2mel
-sument4
-su6ments
-su2m1et
-2s3umf
-su2m1id
-su2min
-3s2umm
+su6m5ents
+s3umfe
+3summ
sum1o2
su2mor
s2ump
-s1ums
s3umsa
-2sumse
-s2umsp
-2s3umst
-2s3umwa
+s3umst
su2n
3sun.
-2s1una
sunder4
sun6d5erh
su4ne
-2s1unf
-6sungena
-2sungl
-sung4s
-4s1uni
-2s1unm
-2s1uns
-s4uns.
-s4unst
-2sunt
-2sunw
-s4unwa
-3sup
-4supd
+s1unf
+2s1uni
+4sunt
+3s2up
sup3p4
su2ra
-sure4
-su2rei
-su2rer
-3surf
-2s1urk
-su2r1o
-2surs
+2s1url
s1urt
-su2s
-su3s2a
-sus1e
-sus3i
-s3u2t
-su4te
-su3tr
+s4us1
+su2sp
+sus3s
3suv
-suz2
1sÞ
-2sÞ4b
+2sÞ2b
3sÞc
sÞ2d1
-sÞden4
-3sÞf
+sÞden2
3sÞn
3s2Þs
3sÞß
-4s3v2
-svoran4
+4s3v
2s1w
-4s3we
-swe6gers
+s3wa
+s3we
sweh2
4swie
4swil
-4swink
-4swis
-4swit
-s3wÞ
1s4y
-2syl1
-sy2lo
-sy2lu
+syl1
sym3
sy2n3
-3synd
-sy4no
-3sy4s3
+sy4na
+sy4nÃĪ
2s1z2
4s3za
4szÃĪ
4s3zei
-4szel
-3s2zena
-3s2ze3n2e
-4szent
-4szer
+s2zena
+3s4zene
+4s3zent
s2zes
-4szet
-4szeu
-3s2zew
-4s3zie
-4s3zo
-s3zs
+4s3zet
+s2zis
4s3zu
-4s3zÞ
-4szw
-2ß3a4
-2ß1ÃĪ
-2ß1b4
+s3zÞ
+4s3zw
+2ß1a2
+2ß1b2
2ß1c
-2ß1d2
+2ß1d
1ße
-2ß1e2b
2ß1ec
-2ß1ef
2ß1e2g
2ß1ei
-2ß1ek
-ße2la
-ße2le
-2ßelek
-2ß1emp
-ße4n3a2
-4ßenerg
+ße2l1a
ße2ni
-ß1enke
ße2no
-3ß2ente
2ßentz
-2ß1e2p
-ßer3b
-ßer2ei
-ßer2la
-2ß1er4se
+ß2ers.
+2ßerse
ßer3t
-ß1erw
-2ß1es2s
-2ß1est3r
-2ß1ex
-2ß1f4
+2ß1f
2ß3g2
ßge2bl
2ß1h
1ßi
ßi2g1a2
ßig4s
-2ß3i2k
-2ß1il
-2ß1im
2ß1in
-2ß1j
-2ß3k4
+ß1j
+2ß1k4
2ß1l
-ßler3s
+ßler3
2ß1m
-ßmut4
-2ß3n2
-2ß3o2
+2ß1n2
+ß1o2
ßos2
-2ß1Ãķ2
2ß1p2
-ß1q
2ß3r2
-ßrÃķ2
2ß3s4
-ßsau4
ßsch2
ßst2
2ß1t
-ßt1in
-ß3tÞ
+1ßu
2ß1um
-ß1unf
-2ßunt
-2ß1Þ4
+2ß1Þ
2ß1v
2ß1w
-2ß3z2
+2ß1z
1ta
3ta.
4taa
5taan
-4tab.
-3taba
-ta2b3an
+2tab.
+ta2b1an
2t1abb
-4tabd
3tabel
2taben
+ta4bend
2tabf
2tabg
2tabh
-2t3a2bit
2tabk
-2tabla
-4tabm
+3t6able
2t3abn
-2ta4br
+ta2br
4tabs
-t1abst
2t3abt
-3tabu
-4tabw
-4tabz
+ta2bÞ
+2tabw
+2tabz
2t1ac
-4tachs
3tacu
t1ada
-2tadd
-ta2der
tadi3
-tadi5o4
-t1adm
-ta2dol
2t1a2dr
ta3d2s
-4tadt
-tad4tr
-ta2er
3taf.
-3tafe
-4tafet
+3taf2e
4taff
t1afg
-t1afr
-3tag
+t1af4r
+3t2ag
ta2ga
-ta2g1e2i
-t3agent
-tage2s
-4t1agg
+ta2g1ei
+4t3a4gent
4ta3gl
-4t1a2go
-tag4san
-tags3c
+t3ago
tag4st
tah2
-tahls4t
+tah3le
+tahl3sk
+t2ai
ta3i2k
-tai2l1
+tai2l
ta1ins
tai4r
ta1ir.
-ta1i2s
-2t1a2ka
-ta3kes
-2t1akk
+t1a2ka
ta2kro
-tak4t1o2
-t2aktu
+tak6ta
+3taktb
+3takts
+3t2aktu
2takz
3t2al.
ta2la
-ta3lad
ta3lag
+ta3lak
tal3au
-3talbr
-tald4
-3tale
+t1alb.
+t1albk
+tal3d
+3t4ale
tal2en
-ta4l3end
-tal3eng
-ta4l3ens
-taler2
-ta4ler3g
-ta2let
+ta4lens
tal2ga
-tali6ene
-tal4l3ac
-tall3ei
tal2l1Ãķ4
-tall3s2
-2t1alm.
3talo
-ta2lop
-ta2l1o2r
-t1alta
-tal3th
-talt4r
-ta2lu
+ta2l1op
+2talt
2tam
-3tam.
3tame
-t2amen
-t1a2mer
-ta2mi
-tamm1a
-tam4m3er
+ta2mer
t1ampl
-3tams
-4t1amt
+t1amt
+3tan.
t1a2na
-tan3ab
-4tanal
-ta4nat
-2t1a2nÃĪ
2tanb
-3tanc
-tan3d4ar
-tan2d3r
-tand4st
-ta4nerf
+4t2and
+tand4ar
+ta3ne
4tanf
-2t1ang
-3tang.
-t3angeh
-t2ango
-tan4gra
-2tanh
-t2anho
-t4ani
-3tanj
-3tank
-tan2kl
-4tankr
-4t3anl
+2tang
+3tani
+t2ank
+t3ankl
+4tanl
t1anm
-2t1anna
-3t2anne
-t1ano
-2tanom
-2tanp
+2tanme
+4t1anna
+t2ano
t1ans
-t2ans.
-4tansi
-tan4tan
-t4ante.
-4tantei
-2tantr
+3t2ans.
+4t3ansi
+4t3ansp
2tanwa
2tanwÃĪ
t2anz.
t1anza
-4tanzei
-3tanzk
-3tanzr
-2t1anzu
-2tanzÞ
+tan6zerh
+t1anzu
tan2z1w
-tao2
ta3or
-t4ape
+ta2pe.
ta2pes
2tapf
ta2pl
-ta4poka
+2tappa
t2appe
-ta2ra
-2tarab
-3tarabb
-ta3rak
-3tar5al
-2taram
-tar3ap
-ta3ras
-t2arau
2tarb
-3tarba
-3tarbek
-3tarber
-3tarbi
-3tar3bl
-2tarc
-3tarchl
-3tarchr
-3t2ard
-ta2rel
-ta2r1er
-tar3g
-ta1r2h
-3tari
+ta4ren4s
+ta4r3ere
+5t4a3ri
2tark
-3tark4l
-3t2arko
-t2arl
2t1arm
-t2armÃĪ
-ta2rom
-2tarot
2tart
-3t2arta
-3tartei
-tar6ter6e
-3tartex
-3t2arth
t1arti
-3t4artis
-tar4to
-tar2tr
-3tarty
+tar2to
ta2ru
-t1arz
-2tarzt
-3t2as.
-ta3s2a
+2t1arz
+3tas.
+ta3sa
3tasc
-4t1asp
-2t3assi
+t1asp
3tast
-tas4tem
-tas4to
-t2asy
-t4at.
ta2ta2b
ta2tan
-3tatb
-t4ate
+ta2tau
tat1ei
-t5a2tel
ta2tem
-3taten
ta2t1er
-2t3atl
-2tatom
-2ta2tr
-3tatsa
-2tatt
-tau2b1a
-3taubh
-tau2bl
-tau2b3r
-tauchs4
-tauch5sp
+ta2th
+tat3he
+t3atl
+t4atm
+ta2tom
+4tatue
+ta2t1um
4taud
2t1auf
-3taufe.
-4taufk
-4t3aufl
+4taufg
tau3f4li
-4taufm
-t3au2f1o
-4taufp
-taufs2
-4taufw
-3taug
-4t3auge
+4taufn
t1auk
-3taume
-4t1ausb
+3taum
+t1ausb
3tausc
-tau6scha
-tau6schm
tau6schr
tau6schw
-2tausd
-t2aus2e
-4t1ausf
+t2ause
4t3ausg
t1ausk
4tausl
-2tausr
4t3auss
-2tausÞ
-2t5ausw
-4t3ausz
-4tauu
+4t1ausw
3tav
-4tava
-ta2van
3tax
-4t1axt
-3taz
+ta3xi
+taxi3s
1tÃĪ
-2tÃĪÃĪ
+3tÃĪa
4tÃĪb
tÃĪ1c
4tÃĪd
-t2ÃĪf
+3tÃĪe
3tÃĪg
-4tÃĪgÃĪ
4tÃĪgy
2tÃĪh
-4tÃĪll
2t1ÃĪlt
-4tÃĪ2m
+4tÃĪm
t1ÃĪmt
t1ÃĪngs
3tÃĪnz
-4t1ÃĪp
-2tÃĪq
-tÃĪ4reng
+t1ÃĪp
+t2ÃĪr.
tÃĪ2ru
-2tÃĪrz
tÃĪ2s
t2ÃĪt
-3tÃĪtigk
4tÃĪtt
2tÃĪug
2tÃĪuß
2tÃĪx
1tà
-4t3b4
+4t3b2
tbauer4
-tber2e
+tbe3r2e
+tblock5e
tblocken8
-tby4t
4t1c
t3cha
t3che
tch2i
tch3l
-t3chr
t2ch1u
tch1w
t4ck
t3cl
-tcor2
t3cr
-4t3d2
-tdar2m1
+4t3d4
tdun2
1te
3te.
te2a2
-te3ab
-tea3c
-te3ag
2teak
te3al
-3team
te3an
-te3ar
-tea4s
3teba
-t4ebb
-2t1e2ben
+3t4ebb
+4t1e2ben
t2ech
-2techd
+te3cha
2teche
-2techk
-2techm
3techn
2techt
te2chu
2teck
-te3cker
+te2cka
+teck2e
te2cki
-2t1ecu
-te2dit
+te2de
te1em
-teen1
-te2er.
+te2en3
te1erw
te2es
-3tefa
2teff
2t1egg
+teg3re
2teh
3teha
-te2hac
3tehÃĪ
-3tehi
-te2him
-3tehÃķ
-t1ehr
-te3hu
3tei.
-3teic
-tei1fl
2teign
teik4
-3t2eil
-tei6lent
-teim2
+3teil
+4teilhe
2tein
-teinen4
-tei6nens
-tein6hab
-t3einkÞ
-2t1eis.
+tein3e4c
+t3einge
+t3einla
+4teinn
+t1eis.
t1eisb
-te5isch.
-teit4
-t1eiw
-tei3z
te2kel
-3teko
-tekt4
+tekt2
3tel.
-3te2la
-tel3ab
-tel1ac
-te3lan
-te4lant
-tel1au
-te2lÃĪ
+3tela
+te2l3ab
+te2l1ac
+te2l1au
telb4
-3telbr
-3tel3d4
-tel1ec
-tel3ehr
+tel3d4
+3te3le
+tel1eb
+tele4be
+te4l1ec
+te4l1eh
+te4lein
2telem
-tel3eng
-te2ler
-tele3s
-te2leu
+te4lerd
+te4leu
4t3elf.
3telg
-3telh
-tel1in
+te2l1in
te2lit
3telk
-tel3le
+tell2e
tel6lein
-tel3li
4tellu
3teln
-te2lob
-te3lom
te4lost
te2l1Ãķ
3telp
@@ -20793,1844 +12909,1132 @@ te2l1Ãķ
tel3s2k
3telt4
tel3ta
-3telw
+tel3th
3tem.
-3t2ema
-te2man
-te2m1ap
-te2mau
-2tem2bo
te2m1ei
-te2m1er
-te2mi
-tem3i2m
-tem3ing
-2temm
-te2mo
-tem1o2r
+te2min
+2temme
+te2m1o2r
3temper
2tempf
-4tempfi
-tem3s6
-te2mu
-te4mun
+tem3s
+te4m1u
3ten
t6en.
-ten1a2
-te4nad
-te4n3an
-ten3ar
+tena2b
+te4n3a2d
+te4n3a4g
te4nas
-te4nat
-ten3au
-te2n3ÃĪ
+te4n3au
+te2nÃĪ
+ten3ÃĪh
+t4enb
ten3da
-4t3endal
-tend4an
-4tendap
-4t5endf
+4t3endf
+t6endi
4t1endl
t6endo
-4t5endp
+4t3endp
ten3d4r
te2n1e2b
te2nef
-te2neh
ten3ei
te3n4ei.
-tenei4d
-tene4m
-tenen1
-te4n3end
-te4nene
-te4neng
-te4nens
-4t3energ
-te4n3ern
-tenf4
+4tenerg
+te2net
4t1eng.
-teng2a
ten4gag
4t3engla
+t4enh
te2ni
-te4nil
-ten1im
te4n3in
-tenk4
-ten3n2
-te2nol
-te2nos
-te3nÃķ
-6t3ensem
-tens2p
+t4enj
+t4enm
+ten3n
+tens2e
+4tensem
tens3th
+t4enta
t1entb
4tentd
-4t3entl
-4t3entn
-t1ents
-4t5entw
+t4ente
+4tentn
+tent3ri
+4t3entw
4tentz
-t2enz
-ten4z3er
-teo2f
-2tep.
-2t1e2pi
-2teppu
-tept2
-3t4er.
-t4era
+ten6zerh
+ten3zw
+t1e2pi
+3t6er.
ter3a2c
-te2rad
-te1ral
-ter3alg
-te3r4ane
-te2r3ap
-tera4s
-4terbos
-2t1erbs
-2t1erbt
+te1raf
+ter3am
+te3ran.
+te3rand
+ter3a4s
+4terbs
+4terbt
3terc
4t3erde.
-ter3d2s
-3tere.
-te2r1e2b
-te2rec
-t3ereig
-te5rek
-3tere2m
-te4rema
-te4r3end
-te4rene
+te2re2b
+te4r3eif
+te2rel
+ter3end
te4reng
-te4r3ent
-teren5th
-2tereo
-3terer
-terer3k
-terer6ku
-terer3l
-te4r3erp
-te4rers
-te4rerw
-3teres
+te4rerk
+terer4z
+4t3erfol
t4erfr
-terg2
+4terfÞl
+3terg2
ter3ga
-6tergebn
-t6ergem
-t6erges
-t6ergew
-ter3gl
-6tergrei
+6ter6grei
t4ergru
-t6erhall
-t6erhau
-t4erhÃĪu
-t4erhei
-7t2erhi
-t2erho
-6terhÃķhu
-t2erhu
+t4eri
te3ria
-4terii
-ter3iko
-2teril
-teri4o
-te2r3it
-teri4ta
+te2rid
+ter3k
+5terkla
4terklÃĪ
-t4erlÃĪ
-t4erli
-ter4lÃķs
-3term
-t2ern.
-ter4nar
-2t6ernc
+2t3erlÃķ
+ter4mer
+3termi
+ter4n3ar
+2ternc
+t3erneu
t4ero
-te1rob
-ter4obe
-2teros
-t1e2r1Ãķ
-t4erp
-t4erra
+t1erÃķ
ter4re.
-t4erro
t4ers.
-t2erse
+ter3sc
+ter4ser
+terst4
t4erst.
-t6erstad
-ter6stat
-t4erstÃĪ
-t4ersti
-t4erstr
-t4erstu
-t4erstÞ
+5t4ersti
+5t4erstu
tert2
-ter3ta
-ter4trÃĪ
-t4eru2
+teru2
te4r1uf
-te3rung
-t4erv
-4t3erwÃĪh
-ter3z2a
+ter3za
2t1erzb
-t4erzei
-4terzeu
-ter3zw
+3t2erzu
3tes
-t2es.
-tesa2k
-tes2c
-tes2ka
-tes4pen
+tesa2c
+te2san
+4t1e2sel
+te2sep
+tes1er
te2spr
-2t1essa
+tes3si
+t2est
tes3tan
-te3stei
-tes4tel
+test3ei
tester4
tes6terg
-tes6t5erh
tes6terk
-2testn
-testo3
-t3est3ri
+testes4
te2su
-tet2
-3tet.
-t1eta
-te4tabl
-2te2tap
-2te2tat
-3tete
-teten3
-2t1e2th
-te3tho
+3tet2
+t2et.
+te2tat
+4teth
4tetl
-tet3ti
+teu3ere
+teu3eri
3teuf
3teum
-3te1u2n
-4teunu
-2t1eup
+te1un
3teur.
-te2va
+teu2r3a
+5teus
te2vi
-tewa2s
-3tewo
-2texam
+te1xa
2t1e2xe
2t1e2xi
4texp
-tex4ta
+3text
2t1exz
-tÃĻ2
-4t3f6
+4t1f4
+tfi2l
4t1g2
-tga4s3er
-tga2su
-t3ge
-tge4nen3
-tger2a
-tger2i
-tg4r
+tger2
+t1h
4th.
-2t1h2a
-3tha.
-3t2hag
-4thak
+2th4a
+3t4ha.
+t2hag
+t3hai
+t2hak
3thal.
-3thalh
-t4hali
-t2hals
-t2han.
-t3hand
-t3hap
4t3hau
-2t1hÃĪ
-3thÃĪi
-4thÃĪl
-2thb
+2t3hÃĪ
th2e
-1the.
-3t4hea
-2t1heb
-2t1hef
-2t1hei
-the1in
-4theit
+1t2he.
+3thea
+2theb
+t2hec
+2t3hei
+t4hein
t2hek
-3thema
-2themd
-2themm
+t2hem
1then
-t1henn
+t4hene
+t4heni
3theo
-t1herd
-thero1
-t1herr
-2t1herz
-4t1hess
+t2hes
+3these
t2heu
-2thf
-1th2i
-3thi.
-thic3k4
-thi3er.
-2t1hil
-2t1him
-2t1hin
-thi3nu
-2t1hir
+1thi
+thi3er
+t2hik
+2t3hil
+2t3him
+t3hir
2thk
-2th3l
+4th3l
4th3m
-thmu2
-2th3n2
-1tho
-2t1hob
-tho3chr
-t1hof
-2t1hoh
-t1holt
-2tholz
-t2hon
-4thops
-tho1s
-t1hose
-t1hot
-4thote
-2thou
-t1hov
-4thÃķ
+2th3n
+1t2ho
+t4ho.
+2t3hoc
+t3hof
+2t3hoh
+t4hol.
+t4holo
+t3hor
+2t3hot
+thou2
+2thov
+4t3hÃķ
2thp
1th2r2
2ths
-2tht2
-t1hu
2thub
-2thuh
-4t3hun
-2thut
-2t1hÞ
+4thun
+2thÞ
2thv
+t2hy
1ti
-t4ia
-ti3ac
-ti1ag
-tial2l
-ti3alo
-ti1a2m
-3tib
-3ticc
+ti2ad
+ti3a2m
+3tib4
+2tic
ti1ce
-3ticket
-t2id.
-2tidee
-ti4d3en4d
-ti3dy
+tiden2
+ti4dend
3tief.
-4tiefel
-3tiefl
tie2fr
-2tieg4
+tieg4
2tieh
-ti2e1i
ti1el
ti2el.
tiel3a
-ti3e4n1
-tien3s
+ti3e4n3
3tier
-tie4rei
-tie4reu
+tie4rec
ti2ern
-tie3s2t
-2tieß
+ti1et
ti1eu
3tif.
-ti3fe
-ti1f4r
-tifter6k
-3tig
+ti1fr
+4tift
+3t4ig
ti4gerz
-ti2git
-tigs4tr
-tih2
-3tij
+3tik
ti2kam
ti2kar
-tiken2
-ti4kent
-ti3k4ere
-ti3kerl
ti2kin
-ti4klu
-ti2kn
-ti2kop
-tik1r
ti2kra
ti2krÃĪ
-ti4krei
-tik5t
+ti2kÞ
ti2lar
-til3d
+ti2lau
ti2lei
ti2lel
3tilg
-2tillu
-ti2lÃķ
+ti2l3Ãķ
+til3s
tilt4
ti2lu
ti2ma2g
-tim4man
-t3immat
-timmer4
-tim6merg
-3timo
-2timp
-tim2s
-3tin.
-t4ina
-ti3naf
-ti3nak
-ti2n3an
-t1ind
-ti5n2e
-tine1i
-2t1inf
-3ting
-tin2ga
+t2imi
+tim2m1a
+4t1imp
+3t2in.
+ti3na
+t1inb
+4t1ind
+ti3n2e
+t1inf
+tin2g1a
ting3l
ting3s
-2t1inh
-3tinis
t1in1it
-t1inka
+2t1inj
tin2k1l
-tin2kn
-tin2kr
-t1inku
-t2inn
-ti2nor
-t1ins
-3tins.
-t3insa
-t2insÃĪ
-4t3inse
-tin4spa
-tin4sum
-t1int
-3tinte.
-ti3nu
-tin2um
+3t2ins.
+4t1inse
+2t1int
+ti1nu
4t1inv
3tio
-ti2osk
-tioxi3
-3tip.
-2tipe
-ti3p4l
-3tipp
-3tips
+3tip
ti4que.
-3tirad
ti1rh
-ti4ron
-3t2isc
-ti6schei
-ti4schu
+3tis
+ti4scha
tisch3w
ti2sei
-tis2el
-ti3sk
-2t1isl
-t1iso
ti2sp
-t1isr
-tiss4
-ti3s2th
-tis3ti
-ti1s4tr
-ti2s1u
-t1it2a
-ti2tal
-3ti3te
-ti1th
-3titi
+ti1sta
+3ti3t2e
+ti3ti
2ti3tu
-3tiu
-tium4s
+tiu4
+tium2
3tiv
ti2van
+tive3
ti2vel
ti4vene
tiver2
-ti4verh
-ti4verk
ti4verl
ti2v1o
-ti4v3r
+ti2v3r
ti2za
-ti2zir
2t1j
4t3k4
-4t1l2
-tlan2g
+4t3l
tl4e
-t2lef
-tlei6der
-tle2ra
-6t3li
-tlings5
-tlit1
-t3lo
-t5lÃķ
+5tlem
+tle2r3a
+6t5li
tlung4
-4t1m4
+4t3m2
tmal2
-tma2st
-tmen8schl
-tmen6t5
-tments4
-t3mo
+tmen6t3
tmo4des
-4t3n4
+4t3n2
t5na
tnes2
1to
3to.
to4as
to5at
-t2oba
4tobj
tob2l
t1obs
-3tobt
to1c
t3ochs
3tocht
-to6ck5ent
-3t4od
-tod1er2
-to4dun
-tof4fa
-tof6f5ent
-tof4f3er
-2toffi
-toff3s
-3tog
-2t3ohr
-3toi
-4toi.
+to6ckent
+3tod
+tode2
+4to2d1er
+tode4s
+to4d1u
toi4r
-4toiz
-5toj
-3tok4
-3tol
-to3le
-4tolp
+3tok
+to3la
+3tole
4tolz
-tomar4b
-to4mene
-3tomi
-to2min
-3tomo
-to2m1u
-to4mun
-to2nan
-ton3au
-tond2
-to2n2eh
-toner6ke
-to2nob
-2tony
+tom1e2
+2tomg
+3ton
+to2nau
+to2neh
3too
-3top.
-to2pad
to2pak
-to2pan
-to3pas
to2pat
-top1hi
3topo
-2to4pt
-3tor
-t4or.
-tora2g
+2topt
+3tor.
+to1ra
+to2rau
to4rÃĪn
4torc
t1ord
-t2ordi
-4t3ordn
-t4ore
-to2rei
+3tore
to2rel
-to2rem
-to6renna
-tor4fan
-t1or3g
-4torga
-t5orient
-torin4s
+t1org
+t3orga
+3torin
tor3int
-5tork
to2rÃķ
-t4ors
-4t1ort.
-tor3t2a
-t1orth
-4tortn
-4tort2s
-to4ru
-to3rÞ
-to4rÞb
-4tory
+3tors
+t1ort.
+to2ru
+t2orw
to3sc
-to3s2e
-to3s2h
-to4ska
-to3s2p
+3tose
+to3sh
+to4sk
+tos2p
4toss
-3to1st2
+3tost4
+to1sta
4toß
-to1ßu
-to2tÃĪ
-3tote
+3to3te
to2tho
3totr
tots2
-5t2ou
-touil2
+3t4ou
+touil4
to3un
3tow
-to1x
-3toz
-1tÃķ
+2tÃķ
3tÃķch
-4tÃķck
-2t1Ãķ2d
-2tÃķ2f
+4tÃķf
4t1Ãķk
-2tÃķl.
-3tÃķn
-t2Ãķr
+tÃķ4l
+5tÃķn
t1Ãķst
+4tÃķß
3tÃķt
-2t3p4
+4t3p2
tpf4
-tpi2n
2t1q
1t2r4
2tr.
5tra.
3trac
tra3cha
-tra3chl
-2t3rad.
-2trade
+t3rad.
tra4dem
-4t3radie
-tra4fah
tra4far
-t4rag
3trahi
4trahl
-2trahm
+6trahm
5t4rai
3trak
-4t3rake
-t4rakt
3tral
-tral3l
+2t3rams
3t4ran.
-4trand
-4trang
-t3rann
-5t4rans
-tra2st
+2trand
+3trank
+t1rann
+3trans
+t3rase
+t3rasi
4traß
-4traub.
-4trauc
t4raue
-t4rauf
2traup
-4trauß
5trÃĪc
-2trÃĪd
3trÃĪg
3trÃĪne
-4trÃĪng
4trÃĪs
4trÃĪß
-2trÃĪuc
-4trÃĪus
-4trÃĪuß
4t5re.
-2trea
-t3reak
+tre4ale
4treb
tre2br
4trec
t3rech
t4reck
-5treck.
-tre5cke
-2t3red
+6t3red
3tref
4trefe
-5treff
-4trefl
4trefo
4treg
-t3reh
t4rei.
3t4reib
4treic
-4treif
-2t3reig
+2treif
+t3reig
2t3reih
-2treim
-4t3rein
+t3rein
2t3reis
-tre7isch.
-4treit
+6treit
t3reiz
2trek
-4t3rel
+6t3rel
t4rem
t4ren.
3trend
4trendi
-3trennu
t3rent
2trepe
-2t3repo
-3trepp
-t3repr
+2trepo
+t4repr
t4rer
-5t4res.
-tre2ta
-t4rete
-tret3r
-2t3rett
+t4res.
+t4ret
+tre2t3r
+t5rett
+t4reu
3treuh
-4t3rev
-t4rex
-4trez
+2t3rev
+2trez
5t4rÃĐ
2t3rh
3tri
-t4rib
4tric
-t4rick
-t4rid2
5trieb
-trie3fr
-tri4ena
+2trieg
tri2er
tri4ers
-trie1s
-4trig.
5trigg
-tri3gl
-t4rik
-tri4ke.
-tri4kes
-5triko
-4t3rind
+t3rind
4tring
tri3ni
-4t3rinn
+4trinn
t4rip
4tript
-4t3riv
+t4rit
tri2x
trizi1
-5tro.
-tro3b4
+3tro.
4trock.
3troe
-tro4kes
-trol4la
-6trom.
-tro4men
+t4roi
+tro2ke
+4trom.
tro2mi
-4tromk
-4troms
-4tromv
3tron
-tro3na
+2t3roo
t4rop
-tro1pe
3tropf
-5tros.
-tro5sm
-3trost
-t1rot.
-2trout
3troy
-4t3rÃķc
+t3rÃķc
2trÃķh
-6trÃķm
3trÃķp
3trÃķs
-4t3rÃķss
+4trÃķss
3trÃķt
3trua
-3trub
-2t3ruc
-4truf
+2truf
4truk
trum2
-t3rumÃĪ
trums1
-t3rund
-3trunk
+2t3rund
+3t4runk
5t4rup
-t3russ
-2trut1
tru2th
-4truw
trÞ1be
trÞ1bu
2t3rÞc
trÞcker6
t4rÞg
-3trÞmm
try1
2ts
-4ts.
-ts3ab
-t4sachs
+tsa4b
+t3s2ac
t2s1a2d
-ts1ahn
-t2sall
-t2salt
-t4samp
-t4s1amt
+t2s1ah
+ts1al
+t4s1amt4
t2san
-ts3ane
-tsa2r
-ts3are
-ts3ari
-t2s1a2s3
+ts3ar
+ts1as
t2sau
-ts2av
-t2sÃĪh
-ts1ÃĪn
-ts1ÃĪus
-t4scham
-t6schart
+t2s1ÃĪh
+t2s1ÃĪn
+t3s2cha
+t4schar
t3sche
t4schef
-t3schl
+ts4chem
tsch4li
t4schro
-t3schÞ
ts4cor
t2s1e2b
-tse2e
-t2sef
-tse4he.
-ts2eil
-t3seme
-ts1eng
-ts2ens
+t3seil
+t4seind
+ts1em
+tse2n1
+t2s1eng
t2s1ent
-t2s1ep
t2s1er
t6s5essen
-tse2t
-ts1eta
-t2s1eti
-t2s1e2v
-t2sex
-t3sexi
-ts3he
t2s1i2d
-t2s3i2k
-t2sim
tsing4
-t2sini
-ts1ir
-4tsk
-t3skal
-ts4kele
-tski2
-t4s3ko
+ts1ini
+t2s1ir
+ts3kr
t1slal
-ts1off
-t2s1op
+ts1o
tso2r
-ts1orc
-t2s1ori
-ts3ort.
+t3sou
t2sÃķ
-t2spac
-t2spal
-ts1pas
-t2spat
-ts3pate
+t3spal
+ts1par
+ts4pare
t2spÃĪ
-t3sped
-t3spei
-t3s2pek
-ts4pend
+ts2ped
+t3spek
t2sph
t3s2pi
-t4s3pic
-t4spins
-ts3ple
-t2spo
-t3s2pon
+ts2pon
t3s2por
-t2spro
-ts2pul
-ts2put
+t4sprei
ts3s4
-4t1st4
-t4stabe
+t1st4
t2staf
t4stag
ts3tak
-t4stale
-t4s3tanz
-t4stas
-t4stat.
-t4s3tÃĪti
+ts4tal
+ts3tÃĪti
t2stea
-t3stein
-ts4terb
+t2s3tep
t3s4tern
t3s4tero
-t4sth
-t3stif
-t3stim
+t2stip
t4stit
-t4stoch
-t4stoi
-ts4tol
-t4ston
-t3strec
-t4stren
-t4strie
+ts3trad
+t2s3trÃĪ
+t4streu
+t2stri
+tstro2
+t4strop
+t2s3trÞ
ts2tu
-t5stub
-ts4tÞm
-t4sty
-ts1u
-t2su.
-5tsubi
-t2sumg
-t2sums
-t2sumv
-t2sumz
-t2s3un
-tswa2s
-t3sy
+t2s1u
+1tsub
+t3sy4
4t1t
tt1ab
+tta2be
tt2ac
-tt3achs
-tt1ad
-tt2ag
-tta6g5ess
-t4t1ah
-tta2ke
+tta6gess
+tt1ak
tt2al
-t4tan4a
-t2tanm
+tt3ank
tt2ant
-t4t1ap
tt1art
-tt3atr
-tt1ÃĪh
+tta1s
tt1ebe
tt1eif
tt1ein
-t2t1eis
-tte4l1a2
-tte4l3e4b
+tt1eis
+t3tel
+tte2la
+tte4leb
tte4len
-tte4lin
ttel1o
-ttels4t
-ttel5ste
-t2temu
-tte4na
-tten6sem
-t4tentb
-tten3te
-t4tentf
-t4tents
-tten3z
-t2teo
-tt4ere
-tt3erfo
-tte4rik
-tte2ro
-tt2erÃķ
-tt4es1
-tte4s3a2
-tte4s3ÃĪ2
-tte2so
-ttest4r
+tte4rec
+ttes1
+tte4sa
+tte2sÃĪ4
tt2hÃĪu
-tt1hi
-t2t1ho
-t2ti4d
-t4t3igi
-t2tins
-tt2int
-t2tiso
-t6t3la
-t4torg
-t2trou
+t2t3ho
+t3ti
+t3to
+tto1s
+t3tÃķ
+t3tro
tt3rÞ
-ttschi4
-tts1eh
tt2sen
+tt2sor
tts1p
tt2spe
tt2spr
-tt4s3tÃĪt
-tt2sum
-tt3s2z
-tt5t2
-tt1u2f
+tt2sti
+tt5t
+t3tu
+tt2un
t3tÞ
-tt3z2
1tu
-3tua
-tu4ale
tu1alm
-tu1alv
-tu3ant
+tu3an
2tub2
tuba3b
3tuc
tu2chi
-tu1cho
2tud
-tudie4n3
3tue
-tu2ere
-2tuf
+4tuf
tuf2e
tu3fen
t3u2fer
-3tuff
-tu2gan
+tuff3
4tuh
-tuh4ler
-tu1ist
-tu2kr
-tul2i
-3tum.
-tum2b5l
-3tume
-4t3umf
+tu2is
+2tuk
+t3u2kr
+tul2a
+t2um.
+3t2ume
+2t3umf
2t3umg
2t1umh
2t3umk
-2tuml
-3t2umo
2t3umr
-4t3umsat
-2t1umsc
tum2si
tum2so
-tum4s5tr
+tums5tr
2t3umt
2t1umw
2t3umz
3tun.
2t1una
2t1und
-tund2e
-tun2en
+3t4une
2t3unf
3tung
t3unga
tung4s5
2tunif
-2tu2nio
-2tuniv
-2t1unm
-3tunn
-t1u2no
-t3uns
-3tuns.
-4t3unt
-2t1unv
-2t1up.
-t1upg
-tu2r1ag
-tu2ran
-turan4l
-tu2ras
-tu2rau
+2t1u2nio
+2t3unt
+t1up.
+tu2r1a4g
tu2rÃĪ
tur1c
-tu2r1e2b
+tu2re.
tu2rei
-tur3eis
-tu4rene
tu2r1er
-tu4res
-tu2re4t
-tu2r3e2v
-tur3f4
-tur3g2
-tur1in1
-tur4mun
+tu2res
+tu2r1e4t
+turin1
3turn
-tu2r3o
+tu2ro
tu4ru
-3tus
tu2sa
tu4schl
-tu2se
tu2so
-tu3t2a
-tuto5
-tuto3re
+tu3ta
2tÞ
4tÞb
-tÞ3ber.
3tÞch
tÞck2s
3tÞf
-4tÞh
3tÞm
3tÞr.
tÞr1c
3tÞre
3tÞrg
3tÞr3s
-3tÞrw
-4tÞrz
-3tÞtc
-3tÞte
+3tÞten
4tÞtz
-4t1v2
-t3vo
-tvoran4
-4t3w4
-t5wa2
+4t3v
+4t3w
+twa2
twi4e
-t4wist
-1ty
-2t1ya
+1ty1
3typ
-ty2p1a
-ty1s2
-2t1z
-t2za2
+ty2pa
+tys4
+6t1z
+t2za4
tz1ag
-tz3ar
+tz1al
+tz1ar
tz1au
-t2z1ÃĪ
-t3zÃĪh
-tz1ec
-t2z1e2d
-tz1ehr
+tz1ÃĪ
+t3ze.
+t2z1e2c
t2z1eie
-t4z1eis
-tze2m
-tz1emi
+t2z1eis
tze4n1
tz2ene
-tzen5s4t
-tzen3ta
-t4zentg
-t4zentl
-t4zents
-tze4reb
-tzer6gre
-tz1erw
-tz2er3z
-tz3erzi
-tze2s3
-tz1e2t
-t2z1i2d
-tzi4m
-tz1imi
-tz1int
-tz1inv
-t2z3om
-t2zop
+tz3ents
+tz1erl
+tz2ers
+t3ze2s
+tz1ind
+t2zor
+tz2Ãķ
tz2th
-tz4tin
-tzu2gu
-t2zuni
-tzwan4d3
+tz2tin
tz1wÃĪ
tz1wi
-t3zwie
tz1wu
2ua
-u3a2b
+u1a2b
u3a2c
-ua2dan
-uad4r
-ua2g
+uad4
u1al.
-u1a2l1a
-u1a2l1ÃĪ
+ua2lau
u1alb
-u1ald
-u3aleb
-u3a4lent
-u3aler2
-ua4lerg
-ual3erk
-u3a2let
+u3alet
u1alf
-u1alg
-u1alh
-u3a2lid
-u1aln
-ua2l1o2
-u1alp
+u3a2lo
u1alr
u1als
-u1al5t4
+u1alt
ua2lu
-u1alw
u1alz
-u1am
-uan2a
+u3am
u1ans
u3ar.
uara2b
u1ars
-uar4t3an
ua3sa
-uasi1
ua2th
uat2i
-uat2o
u3au
u1ay
u1ÃĪm
-uÃĪ2s
u1ÃĪu
2u1b
-u2barb
-ubb4l
-ube2be
-ube2e
-u2b1ehe
-u4b3eins
-u2b1e2m
-ube4n1a
-uben3o
-ub2er
-u4b3erde
-ubert4
-ub4es
-ub1eul
-u3bit
+u8be8cken.
+u3b4i
+ubi3os.
ub2l
-ub3lÃĪu
ub3lic
-ub3lu
-ub4lut
-u2bob
+u2b3lu
u2bop
-u2boz
+ub3rÃĪ
u2b3rit
-ub4rÞ
ub2san
-ubsau2
-ub4s3che
ub2s1o
-ub2sp
-ubst2
-ub3t2h
-4uc
+ub2spa
+u2bÞb
+2uc
uc1c
+u1ce
uch1a
u1cha.
uch1ÃĪ
u1che
-uch1ec
-u2ched
+u2ch1e4c
uch1ei
-ucherin8t
u3ches
u1chi
-uch3im
+uch1il
uch1in
uch3l
uch3m
uch3n
-uch1op
u2ch3r
-uch4sel
uch2so
-uch2sp
-uch2ta
-uch3tan
-uch6t5erf
-uch6t5ert
+uch4spr
+uchst4
+uch4tor
+uch2t3r
u1chu
uch3Þ
uch1w
u1ci
-uck3elf
u2ckem
u4ckent
uck2er
-ucker8geb
-u2ck3i
-uck4sti
+uck3erl
+u3ckerr
+u2cki
u1cl
2u1d
-u3d4a
-uda3d
-ud2e
-ude3i4
-udein7
-ude2n1
-uden3e
+u3d2a
uden3s2
+uder2e
udert4
-udes2
udi3en
uditi4
-ud2o
-u3dob
-u2d3on
+u2don
ud3ra
u3dru
-4u1e
-ueb4l
-ue1ch
+2u1e
ue2ck
u2ed
-ue2en4
+ue2en
u2eg
-u2eh
-ue2ke
u4ela
-ue2lek
+ue2le
ueli4
-uel2la
-u3eln
ue2mi
uen1
-u3en.
-ue4n3a2
ue2nÃĪ
-u3end
-uene2
-ue2neb
ue2ner
-uen4gag
-uenge2
-uenge4m
-uengene7
-uenge4s
+uenge4
uen2gl
u3e2ni
-uenk4
ue2no
-uen6zene
uen2zu
u2ep
-ue2r3a2
-uera4t
+ue2r3a
ue2r1ÃĪ
-uerb2
uer6baut
-uer3d2
-uere2
-ue2rec
-u5ereinn
-uer3eis
-uer3ela
-u3eremp
-u3e4r3ent
-ue3r4erb
-u3ererf
-ue4rer4g
-uerer4h
-uerer4k
-uerer4m
-ue6rersc
-uerer6sp
-ue6rerst
-uer3esk
-ue2re4t
+u2ere2
+u3e2rec
+u3ered
+u3ereh
+ue3reig
+u3erer
+ue4rerg
u3erex
uer3g2
-uer4geb
u3erh
-ueri2d
-ue2r1i4m
+u4erinn
u3erin4t
-u3erl.
-u3ern
uer4nan
-uer4nar
-uer4ne
+uer2ne
+uer4ner
uern3s4t
-ue2r3o4
+uer3o
uer2Ãķ
-u3errÞ
+u3err
uer3sc
-uerst6
uer3t2
-u3eruh
u3erum
u3erunf
u3erunt
-uer3z2
ue2ta
ue4tek
-ue2tik
-uety2
-u2ev
-ue2x1
-uf1ab
u3fac
ufa2ck
u3fah
+uf1ak
u3fal
-ufall4
-u3fam
-ufa2n
-uf3ane
-u2f3a2r
+uf3ar
u3fas
-uf1aß
-ufa2t
uf1au
-u2f1ÃĪn
u2f1ÃĪs
u2f1ÃĪ2ß
u2f1ei
-ufel4s3a
u2f1em
-4ufen
u3fen.
u2fent
-u2ferf
u2f1erh
-u4ferla
u4ferle
-u4ferne
-u2f1et
+uf2ern
2uff
-uf3fe
uff4l
uf2fro
-u2f1id
-u2fim
-u2f1ins
uf3l
u2fob
ufo2r
uf1ori
uf3r
-uf5sÃĪ
+uf3sÃĪ
+uf4sin
+uf4so
uf2spo
-uf4stab
-2uft
-ufta2b
-uft1eb
+uf2t1eb
uft3erd
-uft3er4g
-ufter4l
-uft3s4
+uft3s2
u2fum
2u1g
-ug2abe
u4gabte
-ug1a2d
+ug1af
ug1ak
-u2gana
-u2ganb
-u2gani
-u2g1ans
-u2gant
-ug1ap
-u2g1ar
-uga2s
+u2g1ap
+uga4s
ug1au
ug3d2
-u3ge.
-u2g1ec
-ug1e2i
-u2geig
-u2gein
-uge4lob
-ug1emi
-ugene2
-ugen3s2
+u2g1ei
u2g1erf
u2g1erl
-u2gerr
-u2gerv
-u3ges.
-u2g1esk
-ug2et
-ugg2
+ug4es
ugge4st
-ug2gl
-ugg4t
ug3hu
-u2g1i2d
-u2gim
-ug1in
u2g1l
-u4glÃĪ
-u6gleitb
-u6gleitu
-u4glic
-u4glis
-ug3liz
+ug3lad
u4g3lo
+u3g2lÃķ
u4glu
-u4g3n
+u2g3n
ugo3
-u2go4b
-ug3oc
-u3gon
-ugo4p
-ug1o4r
-u3gos
+ug1or
u2gÃķ
-u2g3rÃĪ
-u2greg
u4g3reis
-u2gres
-u2g3rie
ug3ro
-u2grou
+u2grol
+ug4ros
ug3rÞs
-ug3span
-ug4spe
-ugs4por
+ug3se
+ug4ser
+ug3si
+ug3spa
ug4spr
ug4spu
-ugst2
-ug3sta
-ug3stÃĪ
-ugs4to
-ug3s4tr
-ug3stu
-ug4stur
+ug5stÃĪ
+ug3str
ug3s4tÞ
-u2gum
-ugu3te
u2gÞ
u1h
-uh2a
-2u3he
-uhe3a2
-uhe1e2
-uhe1s
-2uhi
-2uhl
+uhe3s6
uh1la
-uh2lar
uh1lÃĪ
-uh4l3ent
-uhl3erb
uh2li
-uhl2Ãķ
-2uhm
-uhme2
+uhme4
uhr1a
-uhrei4s
-uh2r3er3
-2uh3ri
+uh2rer
+uh3ri
uh4rin
-uh2r3o
+uhrt4
uh2ru
uh4rÞ
uhs4
-uh3t2
-u2hu
-2uhÞ
uh1w
2ui
-ui2a
-ui1ch
-ui2che
+ui2ch
ui4cker
-u1idd
u1ie
ui1em
u3ig
u4ige
uil4les
-u1im
-u3in.
+u1in.
+u1is.
u3isch.
u3ischs
-uis2e
uisi4n
-uis3t
-uit3s
+ui4s5t
u1j
-uji3
uk2a
-ukÃĪ2
-uk1ÃĪh
u3kÃĪu
-u1k2e
-uke2n1
+u1ke
u1ki
u1k2l
-ukle1
+ukle1i
uk4n
-u2k1ob
-uko2m1
-ukom3a
uk2Ãķ
u1k4r
uk2ta
-uk2t1el
-uk4tent
-uk2t1er
-uk2tin
-uk4t3o4ri
-uk4t3r
-uk2tum
+uk2t1in
+uk2t3r
u1ku
uku2s
uk2Þ
u1l
+ul1ab3
ul1am
-ulan2e
-ul2ar
ula2s
ul1ÃĪm
-ulb4l
-ul4dan
+ulb4
ul2dr
uld2se
2ule
u2l1el
-ul1emb
ule4n
+ul1erf
ul1er2h
+ul1erw
+ule2sa
ules3t
ule2t
ul1eta
-2ul3f4
+u2lex
+ul3f4
ulg4
-2uli
-ul1id
uli2k
ul1ins
-uli1p
ul3ka
ul2kn
-ull1au
-ul3len
-ul3l2i
-ul2lo
-ull3s2
-ulm2e
-ulni2
+ul2les
+ull3s
ulo2i
-u2lop
-u2l1or
-ulp1h
-ul2pha
+ul1or
+ul2p1h
ul2sa
ul4sam
-ul2s1ec
-ul2sei
-ul2ser
uls2th
-ul2sum
-4ult2a
-ul3tan
-ult3ar
-ul2tau
-ulter4m
-ul3ti
+2ulta
ul4tri
ult3s
u2lÞ
ul2vr
ulz2w
-2uma.
-u2maa3
-u2mab
-u2m1ad
-u2m1a2k
+u2m3a2k
um1all
-um1ang
um1anz
-u2m1ap
-um1ar
-u2marc
-u2marm
-u2mart
-u2matl
-u2matm
-um1aus
+u2m1art
+u2m1aus
u2maut
u2m1ÃĪh
-1umd2
-u3me.
-u2m1ef
-u2m1ein
-ume2n1e
-um5engel
+1um3d2
+um2en
+ument4s
umer2a
-u2m1erf
+um1erf
um1erg
-u3merk
-u2m1erl
+um1erl
um1erw
-umes2t
1umf
-4umfi
1umg
-um1ind
um1inh
+u2m1ins
um1ir
-umi2t
-um1ite
1umk
1uml
-2umme
-um2mei
-um3mi
-um1ob
-u3mol
-um3ot
-ump2fa
-ump4fin
+2umm
+umm2a
+u2mÃķl
umpf4li
um2pho
+um2p3le
1umr
-um4s3an
-1umsat
-um4s1er
+um4san
+3umsat
+um4ser
um2sim
-um4sk
um2s1pe
-um2sum
+um2s1u
um3t2
-u2mum
-u2m1u2r
+um2un
+u2m1ur
1umz
un1
4un.
-2una.
+4una.
1unab
-un2a3br
-un2ag
-un2al
+un4al
u3n2am
u2n3an
-u2nap
-u2narb
-2un2a1s4
+4un2as
un3at
-un2ÃĪr
-2und.
-un2da
-unda2b
-un2dÃĪn
+1unda
+un4dab
1undd
-2unde
un3de.
-underer6
+un4dei
und3erf
-und3erÃķ
-underten8
-under8tend
-und3erz
un2dex
1undf
2undg
un2did
-un2dim
1undn
-undo2b
-un2dop
un2dor
-4un2d3r
-und3s
+un2d3r
4unds.
-2undsc
+und3sp
+und3st
un2d1um
undÞ4
1undv
1undz
-u3ne2
-un3eid
+u3ne
+une2b
+une2d
+une2h
+un2ei.
un3ein
-un2emi
-une4n1
+un3eis
unen2t
-une3re
-une3ri
-u4nerk
-u4n3erz.
-un2es4
-unf2
-un3fa
+u4n3erz
+unes4
unft4s
-un2gab
-un2gam
-un2gat
-3ungena
-unger4e
1unget
1ungew
ung5h
-1ungl
-un2glu
-un2go
+1unglÞ
+un3gn
un2gr
ung3ri
-ungs3
ung4sa
ungs5tr
-u3nic
un2id
un3ide
-4unie
-3u2nif
-uni3k4
+1u2nif
+unik4
un2im
-1unio
-un2ir
-un3iro
+uni2r
+2unis
un3isl
u3n2it
-1u2niv
+3u2niv
2unk
un2k1a2
-un3ker
-un2k1es
-un2ket
+un2kei
un2kne
-un2ko2p
-un2kro
-unk3s2
+unks2
unk4tit
-unk2tr
+unk2t3r
+3unku
unlÃķ2
unna2
-un4n1ad
-unn2e
-unne4n
-u2nob
+un2n3ad
+un3n2e
uno4r
un2os
1unr
@@ -22640,389 +14044,219 @@ unsch5el
un3se
1un3si
un3sk
-un4ski
un3sp
-unsta4g
-unste4c
uns4t1r
-4unsy
-4unsz
1unt
un3ta
-un3te
unte4ri
-4unti
+2unth
+2unto
un3tr
unt3s
2untu
-3unty
-2u2nu
-u3nuc
unvol2
unvoll3
1unw
-4unwÃĪ
-3unwe
-u2ny
2unz
-un3z2a
-unz2e
2uo
u1o2b
u3of
-u1or
u3or.
-uo2r3a
-uor3c
-u3oret
-uo2ris
+u1or3c
u3ors
-uor5t
uos2
u1os.
uote2
-u1ox
-uÃķ2d
-u1Ãķk
u1pa
-3upd
u1pe2
uper1
-uperer4
up2fa
-u2pfe2
-u2pfi
-up2fu
-u3p4i
+u2pf2e
+u2pf1i
+u3pi
up4lu
-u3po
-2upp
up2pl
u1pr
-upra3
-u2p3ras
-up4t3a2
-upten1
-up4tene
+upt3a2
upt3erf
upt3erg
-upt3erk
-upt3ers
-up4tin
-up4t1o
+upt1o
up4tr
u1q
-4ur.
+2ur.
u1ra
u2rab
u3raba
ura2be
-u2r1akt
-u2ral4t
-u2r1am
-ura4na
-u3rand
-uran6fÃĪn
-ur1ang
+ural4t
+u2r1a2m
+ur3ame
+u2r1ana
+uran4fa
+uran4fo
+u2r1ang
uran4ge
ur2anh
-uran5s
-ur1anz
-ur3ap
-u2r3ar
-ura4ri
-u3rasc
-ur1asp
-ura4str
-ur4ate
-u2r1att
-ur1au
+u2r1an5s
+u2rar
+ur3a4ren
+u2r3att
+u2r1au
2u1rÃĪ
-ur1ÃĪl
-ur1ÃĪ2m
ur1ÃĪn
ur3b2a
-2urc
urch1
-urcht3e
urd2
-ur3da
ur3di
-ure1e
ur1eff
-ur1eig
u2rele
-ure2n
-ure4na
-u4ren4se
-u4rentn
-u2r1ep
-urer3h
-urer3k
-ur2ert
-u2rerw
-ur1eta
-ur2e3th
-ure3u
+ure4n
+u4r1ep
+ur1erh
+ur1erw
2urf
-ur2f3l
-ur2fro
-urf4spr
urf3t
-ur6gense
-urg3inn
-urg1l
-ur2gla
ur2gri
urgros4
-urg1s4
+urg3s4
uri2c
-ur1ide
-uri3en
-u2r1ind
-urin6sek
-urin8stin
-u2ri2so
-ur3ku
+u2r1im
+ur1ini
+ur3ins
+ur1int
+urk2s
ur3l
ur4matt
-ur2m1au
-urm2ei
-ur4mern
-urmet1
-ur2mum
-ur2mun
-ur3n2e
-2u1ro
-urob2l
-ur1off
-uroh2
-uro1s4
-urost2
-2u1rÃķ
-ur3p4
-2urr
+4u1ro
+u3rol
+uro1s
+u1rÃķ
+ur3p
ur3re
-ur2rh
-3ursac
+ur3sac
ur2san
-ursau4
-ur2s1er
-ur4s1of
-ur2spa
-ur3sze
+ur2s3au
+ur2ser
+urst4r
+ur4sw
+ur3s2ze
urt2
-2urta
-ur2tai
-urt3ein
-ur2tro
-urts2c
+ur3ti
u3ru
-uruf4
urÞ2
ur2z1a2
ur2zÃĪ
-ur2z1ec
-ur2zep
+ur2zec
ur2zi
-ur2z1op
-urzt4
+ur2z1o
ur2z1w
2us
-us3a2b
-usa2gi
-u4s1amb
-u4samt
-u2sang
-us2ann
-us3ark
-usa2s3
-us1ast
-u2sÃĪh
-u2s1ÃĪs
-u4schab
-u4schak
-u3sche.
-u4schef
-usch5eic
-u4sch3eu
-u3schi
-usch3mÞ
-u3schu
+u2saf
+us4ann
+u6schent
+u5schmu
usch5wer
-u3s2e3b
u2s1ec
-use2ei
u2s1ei
-u4sen4se
-u4sentl
+u3seid
u3sep
-use4rec
-u2s1erl
+use1ra
u2serp
-us1erw
u2s1ese
-u2sex
-u2sid
usi3er.
usi5ers.
-u3sik
-usi4kat
-us1inn
+us1is.
us3kl
us3oc
-us1oh
-u3sol
-u2sop
-us1orc
+u3soh
+u2s1op
us1ou
u2spac
us3part
u2s1pas
-u3spec
-u3spek
-u2sph
+u2spat
+us1pe
+u3s2pek
us1pic
-u3spit
-u3s4piz
+u5s4piz
u2spo
us2por
u2spu
-usrich7
-us2s1ad
-us2s3eb
usse4g
-usse4n
-us2sep
-us5ser.
-uss3erf
-usser4z
-us4sesp
+uss5erfa
+usser6kl
+uss5er6su
us2sez
-uss3k
us2sof
-us2sum
-u1stad
+ust3abe
u1stal
us3tau
-us4tein
-u1stel
-ust3erl
us2th
-us3ther
-us3tin
+ust2in
us3tr
-us4tras
+u5s4tras
us6tris
u1stu
u2stun
u2stur
-u2sumd
-u2sumg
-u2sumz
-u3sur
-3usus
+us2ur
u2sÞ
2uß
-uß1u
2u1t
-4ut.
-u3taf
-u2t1alt
-u4t1a2m
-ut2ans
+ut1alt
+ut3a2m
u2t1ap
u2t1ar
-uta2s
-u2taut
-ut1ÃĪh
-u2tÃĪr
-ut3c
-ut1e2d
-u3teh
+u2t1ÃĪr
+u3te
+u4t1ed
+ut1e4ge
ut1ei.
ut1eie
-ut1ein
-u3tek
-ut1ela
-u3tem
ute2n1
-uten2a
u2tent
-u4tentf
-utera2
-ute4ral
-ute5r4er
-ute6ring
-uter3k
-ute4ros
+uter4er
+u4t3er4sa
ut2es
ut2et
-u2t2ev
-u2t1ex
-utfi2
-ut3hal
-ut3hei
-ut1hel
-u2t1hi
-u2t1ho
+u4tev
+u4t1ex
+utfi4
+ut2he
+u2thi
+u2t3ho
u2thu
-u2t1id
-u4tigel
-uti2vi
utli4n
+uto1
+uto4ber
uto3c
-u5to3m
-uto1p
-uto3pa
+ut1opf
u2tops
-utor2a
-u4tord
-uto2re
-uto4rin
-uto3s2
-4utou
-u2tÃķl
-4utr
+ut4or
+utos4
+u3tÃķ
ut3rea
-u2trou
ut3rÞ
-4uts
-utsau2
-ut2sÃĪu
+ut3s2a
+ut2s1ÃĪ
ut4schl
ut4schm
-ut4scho
ut4schÃķ
-ut3ser
-ut3s2k
-uts2p
-ut3sta
-utt4er
-ut5t2l
+ut3si
+ut2spa
+utt4an
+ut3te
+ut5t4l
utts2
-utu2b
-u2tum
-utu4n
-u2t1une
utu4re
-utu3ro
utu5ru
u3tÞ
-u6tz
-ut2zeh
utz3eng
-utz2er
-ut2zet
ut2z1in
-ut2zis
-ut2zÃķ
+ut2zo
ut2z1w
-2u1u4
+2u1u2
uufe2
-uum1
-uuma4
-uume2
u1Þ2
2u1v4
u2ve.
@@ -23031,441 +14265,292 @@ u1w
2u1x
ux2e
ux2o
-ux3oe
-ux3t4
-u1y
-u2yo
+ux3t
+u1ya
2u1z
-uze2
-u2z1ec
-u2z1ene
-uz2er
-uzo2f
uz3ot
uz1we
-uz3z2
+uz3z4
1Þb
Þb1ÃĪ
2Þbc
2Þbd
Þbe2
Þbe3c
-Þbe3le
-Þbe4na
-Þbe3ne
-Þber1
+Þbe4n3
+Þber3
Þ4bet
Þb3l
-Þb5r
+Þb3r
Þb2s3t
2Þc
Þ1che
Þch3l
Þch2s1c
-Þcht4e
-Þ3cke4n
+Þch5t4e
+Þ3cken
Þck1er
Þck3eri
-Þcker6ke
Þ4ckers
-Þ2ckin
-Þ2ckum
+Þck4spe
+2Þd
Þ4d3a4
-Þde2c
-Þde2l
Þ3den.
Þden2g
Þ3d2ens
-Þd3o4
+Þd1o4
Þd3r
Þd3s2
+Þdsa1
Þd3t4
-Þdu2
-Þe2
-Þeb3
-Þ1ei
-2Þf
+Þdwes2
Þ2f1a
-Þ2f1ÃĪ
Þ2f1ei
-Þ2fent
Þfer2
Þ2f1erg
Þf2fl
Þ2f1i
Þf3l
-Þ2fo
-Þ2fum
+Þf2to
Þ1g
-Þg2e
-Þge2l1a2
-Þge2lÃĪ
-Þge4lec
Þge6lei6s
-Þge2lo
-Þgen3s
Þ2g3l
Þ2gn
-Þg3s2
-Þg4s3t
-Þh3a2
+Þg3s
+Þg4st
+Þh1a
Þ1he
Þ2h1ei
-Þ2h3e4m
-Þ3hem.
Þ2h1eng
-Þ2h1ent
-Þ2h1erf
+Þh1erf
Þ2h1er2k
Þ2h1er2z
-Þ2hex
-Þh1i4
+Þh1i
Þhla2
-Þh1lÃĪ
-Þh2lel
-Þhl2er
-Þh2lÃķ
-Þhl4sk
-Þhl4sta
-Þhl4sti
+Þhl1ac
+Þh1lam
+Þh3l2e
+Þhl2se
Þh3mo
Þh3ne
Þhn2s
-Þh1o2
+Þh1o
Þh3r2e
Þhr3ei.
-Þhre2n1
-Þhren3s4
Þh1ro
Þhr3ta
Þh1s
Þhs2p
Þh3t
-Þht2a
+Þh4th
Þht4r
Þ1hu
Þh1w
Þ1k2
Þl1a
Þl2c
-Þ3l2e
-Þ4l3ef
-Þle2r3a2
-Þl2l1a2
+Þ3l4e
+Þl2l1a
Þl2l1ei
-Þll2er
-Þl2lid
Þl2lo
Þl2lÃķ
-Þlls2
-Þ2lÃķ
Þ1lu
-Þ2ma
Þ2ment
-Þme2ra
-Þ2m1id
-Þ2m1in
-Þ2m1u
-2Þn
-Þ4n3a2
+4Þn
+Þ2n1a
Þn2da
Þn2dr
Þnd3s
-Þ2n1erd
-Þnf1
-Þnf3li
+Þnen3
+Þn2f1a
+Þn2f1ei
+Þn2fli
+Þn2fr
Þn2g3l
+Þnn2s
Þn2s
Þn3sc
Þn3se
Þn3sp
-Þn3sta
-Þnster3
Þn3str
+Þnt2
+Þ1nu
Þn2za
-Þn2z1i
-Þnzu2
-Þn2zun
Þn2zw
Þ1pe
Þpf3l
Þ1pi
Þp2pl
-2Þr
Þr1a
Þ2r1ei
-Þ2r1e2l
-Þr2f1er
Þr2fl
Þr2fr
Þr4g3en4g
-Þrge4ra
-Þrk2e
-Þ3r2o3
-Þrom2
-Þror2
+Þ1r2o3
Þrr2
Þr2s
Þr3sc
Þr3se
-Þr3si
Þr3sp
-Þr3sta
-Þrte2l3
Þrt2h
-Þr2z1in
Þr2zÃķ
-Þr2z1w
+Þr2zw
Þs2a
Þ2schl
-Þ3s2e
-Þse1e2
-Þse3l2
-Þse4n
-Þse3r4
+Þse3h
+Þse3l
Þse1s
-Þs4s3a
Þs2s1c
Þss2e
-Þs4s3o
Þs2st
-Þst3a
-Þste2n
+Þ2st
2Þ1ß
2Þt
Þ2t1al
-Þte3m
-Þte4n
-Þten3s
-Þtent4
-Þten3z2
-Þte2ra
-Þte2r1e
-Þterich6
-Þter3n
-Þ2t1h
Þ2t3r
-Þt2se
-Þt2st
-Þtte4n
+Þt2s1
Þt2tr
-Þt3zen
-Þt2zw
Þ1v
Þ1z
-3va.
2v1ab
-vab4r
va1c
-va1f4
-va3g
-vag2a
-va4gh
-va2la
-2valu
-v2an.
-2vanb
+val2s
2vang
-v2ans
2varb
-v1arm
-vas2
-2v1ass
-va1st
+va1s
v4at
-va2t1a4
-va6tag
-va4tan
+va2t3a4
va2tei
-va4t3eng
-va4tess
va2t3h
-va4tid
-vati3k2
-va4tim
+vatik2
va4t1in
vati8ons.
-va4tord
-va4t3r
+va2t3r
vat3s4
va2t1u
2v1au
2v1b
-2v1c
-2v1d2
+2v1d
1ve2
-ve3an
ve3ar
-veau3
-veau1s
-ve3b4
+ve3b
+ve3c
ve3d
-ve3fa
ve3g
-ve3h2
-2veig
-v2eil
-2vein
-veit2
+ve3h
+ve4i
+2v1ein
+veit4
veits3
ve3la
-2velan
-vel2ar
ve4l1au
-v1ele
-ve3lei
-ve3l2i
+ve3le
+ve3li
ve3lo
-vel2o1p
ve3ma
-ve3me
-2v1emp
-2vemu
+2ve3mu
ve3nal
-ve4nas
ven2c
ve3ne
+venen4d
ve3ni
-ve4nin
ve3nÃķ
-ven6t3ag
-vent4sk
-2veo
-ve3of
-ve4pi
+ve3o
ver1
ver3a
ve3rad
-2veral
ve3rand
-ve3r4ane
-vera4s
-ver6bart
-ver3b2l
-ver3d2
+ve3ras
+ver3b2
+ver5d2
vere2
+ve4rek
verf4
-ver3g4
+verg4
ve3ri
ve4rin
ver3k
-vern2
-ver4sep
-vert4
+ver3st
+vert2
ver5te
-ver3u4
-ve3rus
+ver3u
ves1
-ve3sa
-2ve3s2c
+2ve3sc
2ve3s2e
ves3ti
ve3ta
vete1
-vete3r
-ve3ti
+ve3to
ve3tr
-ve3t2s
2veÞ
ve3v
-ve3w
+ve3x2
2v1f4
2v1g
2v1h
-vi1an
vi3ar
vi4a3t
-vi2ÃĪ
vi2c
vi3de
vid3s2t
-3vie
-vie2h1a
+vie2h3a
vi2el
-viela2
-viele2
-vi2er
+vi3en
vie4rec
vie2w1
vig2
2vii
-v2il
vi2l1a
-vi2lÃĪ
vi4l1e2h
-vi2lei
-viler4
-vi4lers
vi2l1in
-vi2ma2
+2v1i2m
+vima2
vi4na
-vin3d
-ving3
-vings4
-v1ins
+vin2s
+2v1int
vi3sa
vise4
-vi3s2i
vi3s2o
vi2sp
vis2u
-viv2
-viz2
-vize5
2v1k
-2v1l4
-v3le
-v2lie
+2v1l2
2v1m
-vm2e
-2v1n2
-1vo
+2v1n
2v1ob
-vo2be
-vob4l
-voge2l3
+vo3ga
vo2gu
-vol2a
-vol4l1a
-vollen6
-vol6lend
-vol6ler6t
+3vol
+voll1a
+vollen4
+vol6l5end
+voller4
+vol6lerw
vol2li
2v1op
vo2r1
-vo4r3a
-voran8schl
+vor3a
+vor3e
vor3g
vo3ri
-vo4rie
vo5rig
-vorm2
vormen4
-vor3o
-vort4
-vot2a
-voy1
+3voy
vÃķ2c
2v1p
-vr2
-v1ra
-v2ree
-3v2ri
+v2r
+2v3ra
+v3re
+v4ree
+2v3ro
2vs
-vs2c
vs2e
-vs2p
v1sta
v1steu
v3s2z
-2v1t
-vue3
-vu2enu
+2v3t
vu2et
2vumf
-2vumg
-2vumk
-v1Þ
2v1v
2v1w
2v1z
@@ -23473,296 +14558,189 @@ w2a
1waa
wab2bl
wa3che
-wach8stub
+wach6stu
wach4t4r
-1wack
waffe2
waffel3
1wag
wa5ge
-3wage4n
+3wagen
wa2g3n
wa3go
1wah
wahl5ent
wah4ler
-wah2l1i
+wah2li
+wai2b
1wal
-wa2lar
2walb
-wal4d3a
-wal4din
-wal2dr
+wal4da
wa2les
-wa3li
-wal2m1
-wals2
-walt1a
-wal6tere
-wal6terl
-wal4to
-wal4tur
+2walm
+wal2ta
+wal2to
+walt4st
3walz
wa3na
-wan2d1a2
wandels6
-wan2dr
w3anf
-2wang
-wan3g2e
wang4s
1wann
wan6z5en6d
-wan4zer
wa2p
1war2e
ware1i
-wa5ren
-1warn
-war4ni
+war3ste
wart4e
-war2th
-war2za
1was
wa3sa
-was2c
wa4scha
wa3sche
-wa4sch3l
-wa4schw
wa3se
wa3sh
-was3s
-wass4e2
-wa3su
-w2ÃĪ
+wass4e
1wÃĪh
1wÃĪl
2wÃĪng
1wÃĪs
wÃĪs2c
-wÃĪss4e
-2w3ÃĪu
2w1b2
wbu2
2w1c
2w1d
we2a
-we2b1a
-webe1i
-we2b3l
-we2bo
-we2b3r
-webs2c
+we2ba
+4webeb
+we2bl
+web3s
we3cke.
we5cken.
we3ckes
-we2e2
+we2e4
weed3
we2fl
1weg
we2g1a
-we4g1ei
-weg5ersc
-we4g3l
+we2g3l
we4gn
-we2g1o2
-we4g3r
-weg3s2
-wegs4t
+we2g3r
+weg3s4
1weh
-weh4r3er4
-wei2bl
-weib4r
+we4i
+wei4bl
2weie
weifel6d
-wei4fre
-wei2gr
-weigs4
-wei3k4
+weik4
3weil
-weinsau6
wei3sc
-weis6sel
-weis6spi
-wei2t1r
-wei5ze
-wel5le4
+weis4s3p
+weis4t
+wei3str
+wei4tr
wel6schl
wel6schr
wel2t1
-wel4t3a2
-welte4
+wel4t3a4
wel6t5en6d
-wel4th
-welt3i
-wel4to
-wel6t3r
-wen3a2
-wendes4
+wen3a4
wen2gl
-we3n2i
-wen2ka
-wen4kla
+we3ni
wen4k3ri
-we2r3a2
-wer5be
-werbe3i
+we2r3a
wer2bl
-werb2s
1werbu
-wer3d2
+werd2
5werdens
1werdu
werer2
wer2fl
-2werg
-wer2ga
-wer6gels
-wer2g3o
-wer2gr
-werin2
-we3rins
-we2ri4o
+wer4gel
+we4r3io
1werk.
-wer2k1a
+wer2ka
1werke
-wer2ki
-wer2k3l
-wer2kn
-wer2k3o
-wer4k3re
+wer2kl
wer2ku
we2rÃķ
wer2s
-wer3sp
wer2t1a
-wer2tÃĪ
-wert3ei
-wer6teig
+wer4t3ei
wer6t5erm
-wer2th
-wer4tin
-wer4t1o2
-wer4tre
-wer6t3ri
-wer4tum
-1wes2e
-we2sp
+wer2to
+1wese
+we2s1p
we4st
-wes4t1a
-weste2
+west1a
west3ei
-wes6ten6d
-wes4tex
-wes2ti
-wes4t1o2
-wes4t3r
+wes2th
+west1o2
+west3r
wes4tu
1wet
-2wets
+wet2s
wett3s
-2w3ey
-2w1f
+2w1ey
2w1g
-whi4
-w3ho
-w2i
-wicht4s
+2w3h
wi1cka
1wid
wi2e
-2wieb
-1wied
wie3l
-wie3n2e
+wien2e
+wie2st
wik2
-1wild
+1wil
wim2ma
-wim6ment
-wim4m3u
-win2a
+wim4mu
win4d3e4c
-win3del
-win6d5erz
-1win2d3r
+win2dr
+win2e
2wing
-win2g3r
-win2kl
win8n7er8sc
-win2no
-win3s
-wint2
1wi4r
-wire3
-wi5s2e
+wi3s2e
wi2sp
1wiss
-wiss4z
wi3th
-1witz.
1witzl
-wiz2
2w1k
2w1l
2w1m
2wn
-wns2a
-wn3sh
+wn3s
1wo1c
wo2cha
-woch2e4
+woche4
1woh
woh4lei
-woh4na
1wolf
-wolf2s3
-wol2la
+wolf4s3
wol4ler
wor3a
-wor3d
-wo4r3i
-worn2
-wort1a
-wor4tel
-wor6terh
-wor4t3r
-wort3s2
+wo2r3i
+wor2t3r
wo4r3u
-wor3Þ
-3wos
wot2
1wÃķc
-wÃķl2fo
wÃķrt2h
2w1p
w2r
-w3re
w3ro
2w1s
-ws2e
-w3s2h
w3s2k
ws2t
-w4s1u
2w1t
wti2
w2u
1wuc
wuch4sc
-wuch4st
-w3u2f
wul2
wul3se
-wund4e
-wung3r
-wungs4
+wun2da
+wun4g3r
wun2s
-wunsch5l
4wur.
wur2fa
-wur2f1o
-wur2fr
wur2s
1wurst
wus2
@@ -23771,773 +14749,466 @@ wus3te
1wÞh
wÞl2
wÞn3
-1wÞrf
-1wÞrst
2w1w
2w1z
x1a
1xa.
2xa2b
-1x2ac
1x2ad
1xae
xa1fl
-1x2a3g2
-2xal
-xal2l
-xa2m
-1xane
-1xani
-x2an3t2
+1x2ag
+x3a2m
+xand4
x2anz
-xa2r
1x2as
-xa2z
-2x1b4
+2x1b
+2xc
x1ce
x1ch
x1cl
4x1d
-xda4
-xdy2
1xe
-3xe.
-2x1e4g
+x1e4g
2xek
xe2l
-3xel.
-x1ele
-xe3lei
x1em
3x2em.
-2xemp
-x2ems
x2en
-3xen.
xen3s2
-3x2er.
+x2er.
x2ere
-2x1erl
-xer2la
-x2ern
xers2
-x2ers.
3xes
-2x1eu
-2x1ex
+2x3eu
2x1f
2x1g
2x1h
+xib4
xi1c
xich2
2xid
-xi2dan
xide2
-xi2dei
-xi2d3em
+xi2d1em
x1i2do
-3x2ie
xie3l
xi3g
-xi2ler
-xili3a
+xil1
+xil2a
xi2lo
-xi2l1u
-xim2
+xi2lu
xin3s2
-x2is
-xi2sa
-xi2s1e
-xi2sp
-xis3s2
-xis3t
+x2i2s1
+xi3s2c
+xiso2
+xis3s
xis4tÃĪ
-xi2su
-3xit
-xi3te
-x1i4tu
-xive4
+x1i2tu
x1j
-4x1k2
-xkal2
+2x1k2
4x2l2
x3lÃĪ
x3le
2x1m
2x1n
-2xod
-2xoe4
-x1o2r
-xos2
-2x1Ãķ2
+x1or
4x1p
xpor6ter
-xpor4t3r
x1q
-x1r
+2x1r
2x3s2
4x1t
-xt1a
-xta2b3
-x3tan
-xt2ant
-x3tas
-x2t1ÃĪ
-x3tÃĪt
+x2t1a
+x3t2as
+xt1ÃĪ
+x2tÃĪn
xtblo4
-xtblock5
x2t1e2d
-xt1ein
-x2t1el
+x2t1ei
x4tent
x2t1er2f
-x2t1ev
-xtfi2
-x2t1h
-x2t1id
-xti2la
-x2til2l
-x2t1o4
-x4tor
+x2t3ev
+xtfi4
+x2t1il2l
xtra3b4
x2t3ran
-x2trau
-xt3rec
xt3s2
-x2t1um
-x2t1un
+xt1u
+x3t2ur
1xu
xu1a
-xu2n
-2xunt
-xu2s3
-xusa2
-xuss4
+x1u2n
+xu2s
2xv
2x1w
+2xy
3xy.
+3xys
x1z
2y1ab
-1ya2c
-y2ach
-ya1h
+1yac
y1al.
+y1a2m
yan2g
y1ank
-ya1q
-ya3ra
-yas2
-yas3t
y1ÃĪt
y1b
-ybe2r
-y1c
+y1c2
y2chi
y3chis
ych3n
-y1d
-yd2o
-ydri2
-ydrid3
-ydro3
+y1d4
y1e
-y2ec
-ye2d
y2ef
-y2el2
yen4n
-yera2
y2ere
-yer2n1
-y2es
-y4es.
+y2es.
yes2p
ye2th
y1f2
y1g
ygi2
-ygie3
+ygie5
yg2l
y1h
-y3ho
yhr2
-2y1i4
+y1i4
y1j
y1k2
yke3n
-yk4l
yk3s2
-yl1a2
-yl2a3g
-y1l2ak
-yla4l
-y2lam
-yl3ane
-y1lant
+y1l
+y2l3a2m
yl4ante
-yl4anti
-yl2as
-ylau2
yl3c
-yle2
-y2le.
-yl1em
-y2l1es3
-y2l1e4t
+y4le.
yli4n
-ylo1i2
-yloid3
yloni1
-yl2op
-yl1ora
yl3s2
-yl5t
-ym2a
-ym4an
-ym4ar
-ym4as
-ym4e
+y2l1u
+yma4t
ymp4
ym2pha
-ympi1e
-ynÃĪ4r
-yn2eu
-ynk2
-y2n1o2
-yno4t
-yn2oz
-yn3t2
-yob2
-y2od
-yoga3
+ympi1
+y2n1o
+yno4d
+ynt2
+y1nu
+y1of
yom2
-yon2a
+yon4i
y1ont
-yo2pe
-yo1s
-y2ost
+y1os
y1ou
-2y1p
-ypa2b3
-ypa2n
-yp2e2
-ype4r3o2
+y1p
+ypa2
+yp3an
+ype2
y2pf
-y2p1i2d
+y3ph
y2p1in
-y2plo
-y3po3
+ypo3
y4p3s
-yp3th
-ypu2
-y2p1um
-y1q
y1r
y3r2e
y3ri
+yri2a
yri1e
-yri3en
-y3ro
-yros3t
+y3r4o
yrr2
-2ys
ys2an
-ysch4
-ys2e1
-ysein2
+ys2c
+yse1
+y3s2h
y4s3l
ysme3
ys2po
ys1pr
-yst2e
-yst2h
-ys2the
-ys3to
-ys3tr
-ys4tra
-y4stro
-y3s2ty
-ysu2
-y2s1ur
+ys3t2
+y1s4ty
+y2s1u2
y3s2z
-y1t
+y1t2
y2te.
y2tes
-yt2h
-ythe1
y3to1
-ytos2
-y4t3r
yu2r
-yur2e3
+yure3
y1v
y1w
y1y
y1z2
-yze3r2i
-2z1a2b
+2z3a2b
zab3l
za1c
-2z1ach
-zach2s
2z1a2d
2z1af
za3gr
3z2ah
-zah3len
-zah4ner4
-z1ak
-4z3akk
-2z1al
-4z3ald
-3zali
-2z1a2m
-z1a2n
-4z3a4n4a
-2z3anb
-za3ne
+zah4ner
+2z3a2k
+2z1all
+2z1am
+z1an
+za2na
2z3anf
-2z3angs
+3zani
3z2ank
-zan2ka
-z3anl
-2z3anr
+zan4kl
+2z3anl
zanti1
-za4pf
-z1aq
-z1ar
-3zar.
2zarb
-za3re
-2zarm
-3z2aro
-z2arr
-zar2t1r
-2z1as
-za2sc
-zast4
-z3at
-zat2e
-za2to
+2zarc
+2z1arm
+z1arti
+zar2tr
+2z1arz
+z1as
+za1st4
+2z3at3
3zaub
-2z1au2f
-2z3aug
+z1au2f
+z3aug
3zaun
-z3aur
-2z1aut
zÃĪ2
-2z1ÃĪc
-z2ÃĪh
-zÃĪ3hi
-3zÃĪhn
+2z1ÃĪ4c
+3z2ÃĪh
2z1ÃĪm
-z1ÃĪn
-z1ÃĪp
-z1ÃĪr
-2z1ÃĪus
-2zÃĪuß
-4z3b4
-zber2e
+2zÃĪngs
+2z1ÃĪp
+z1ÃĪrg
+z1ÃĪrm
+4z1b4
zbÞ1b
zbÞbe3
2z3c
2z3d2
zdan2
zdÃĪ1
-zdi1st
-3ze.
-2zea
2z1e2ben
-ze1c
-2z1e2cho
-ze1e2
-zeeu3
+2zecho
+ze1e
2z1eff
-z1e2ga
zehe4
zehen1
zeh2l
-ze3ho
-zei1f4
zeik4
-zeil2
zei3la
zeile4
2z1ein
-ze3in.
-z2e1ind
-zei4ne
-4z3einh
-ze3inse
-ze2i1s4
+zei1s6
zei3sk
-3zeit
+zeist4
zei2t1a
+zeit5end
zei4t3er
-zei4to
zei2tr
zeit3ri
-zek4
-ze2l1a
-zela2d
-zel3a2n
-ze2l1ÃĪ
-zel3d4
-4ze2lek
-4zelem
+ze2l1a2
ze2len
ze2l1er
ze2l1in
-2z1e2lit
-zel3la
-zel4lab
-zel4l3ac
-zel4lar
-zel6lein
-zel6ler6t
-zeller6z
-zell3s2
-zelm4
-ze2l1o
+zell2a
zels2
-zel3sa
zel3sz
-zel2ti
-zembe2
+zel3t2h
+zel3tr
+zelu2
2z1emp
5zen.
-ze4n1ac
-ze4nas
-zen3au
+ze4n3ac
ze2nÃĪ
-ze3n2em
-zenen1
-4zenge.
-z4engl
-2zengp
-2zeni
-ze2nid
-zenk2
zen3n
-ze2n3o
-ze4not
-4zen4sem
-zen4ser
-zens2p
-z2entn
-z1ents
-2zentw
-2zentz
+ze2no
+zens2e
+zen4sem
+zen5s4tr
+zent3s
zen4z3er
-zen2zw
-zeo4r
-3z2er.
-ze2rad
-ze1ral
-ze2rat
-z2ere
-ze5rek
-zer2em
-z2erfe
-z3erfÞl
+z2er.
+ze2r3a
+ze2re2b
2z1ergÃĪ
4z3ergeb
-z4erges
-z4ergl
-zer4gon
-4z1ergu
-3z2erhe
-2z3erhÃķ
-zerin6te
-z2erko
-3zerl.
-zer4lau
-zer4le.
-4zerleb
-zer4len
+z3erhal
+2zerhÃķ
+zerin4t
+zerk2
+z2erl.
2zerlÃķ
-3z2ern
-zer4nan
-zer4n3e4b
-zer4nei
-2z1erÃķ
-zer2Ãķf
+z2ern
+zer4neb
+zer4n3ei
2z1erq
-4z3erreg
zers2
-z2ers.
-2z1er4sa
-zerta2
+2z1ersa
+4z3erste
+4z3erstr
+3zert
+zert1a4
zer4t3ag
zert4an
-zer6teng
zer6tere
zer6terl
zer4tin
-zer2to
-6z5ertrag
zer6trau
-z1erwe
4zerwei
-z1erz
-zer2ze
-3z2es.
+2z1erz
+3z2erza
ze2sÃĪ
-ze3sch
-zes1e
+ze3sc
+ze3sku
ze2sp
-ze4spo
-zes2sa
zessen4
zes6s5end
-zes6sent
-zes4ser4
zes2sp
zes2st
-ze1sta
-ze3stau
-ze1str
-z2et.
-2zeta
-2ze2th
+ze2s3t
+ze3sta
ze2tr
2zetts
-zeu4gem
-zeu2g3r
-2z1eul
-ze1ur
-2z1e2x1
-4z3f4
-zfeue2
-2z3g4
+2z1ex
+2z1f4
+2z1g2
zger2a
-zger4s3
-2z1h2
+2z1h
z2hen
zhir3
zi3alo
-zi2ar
-zich2o
+zi3ar
zi2dei
-zie4ler
-zie2l1i
-zien3s
+zid3r
+zie4lei
zi1erh
-zi1es
-zi3ess
-zig4s
-z2il
+ziers1
+zi1es.
zil2e
-2zimp
+2z1imp
zim4t3
-2z1ind
zin2e
zin3ei
+zin4er
2z1inf
-z1inh
-zi4n3in
+2z1inh
zin1it
-2z1inj
-zin4na
-zin4o
zin2sa
zin4ser
4zinsuf
-2zint
+z1int
+2z1inv
zi2o3
+zi3op
zirk2
zirk6s
-z1iso
-zi2sp
-zisse4
zi3s2z
-zi1th
-zithe2
-zi4t1o2
-zit2u
+zi1t2h
+zi2t1o2
ziv2
2z1j
-4z1k4
+2z1k4
2z1l2
-zlei3ti
-zle1s
-z3ly
-2z3m2
-zme2e
+2z1m2
2z3n2
-z3oas
2z1ob
2z1of
zo2gl
-zog4s3
2z1oh
-zol2la
-zoller4
-zol6lerl
-zol6lert
-zonal2
-zon3au
-zon5s4
-zon4t3er
+3zol
+zon4ter
zo2o
-2zope
-2z1o2r
-zo3re
-3z2orn
+2z1ope
+z1or
+zo2ri
zor4ne
2z1osz
-2z1ou
-2z1o2z
2zÃķ2f
2z1Ãķk
z1Ãķl
-2zÃķl.
-3z2Ãķll
-2zÃķls
2zÃķn
-4z3p4
+2z3p4
2z1q
-4z3r2
-2z1s4
+2z3r2
+4z1s2
z3sa
-zsau2
z3sh
z3sk
-zspor2
-4zst2
z3sz
2z1t
-zta2n
-zt3ane
z2t1au
z4tehe
-ztein1
-zt3eins
-zt2el
-zte3ma
-z4t1ent
-z4t1erz
-zte3str
-zt2et
-zt1he
-z3them
z3t2her
-zt1hi
zt3ho
-z3thr
-z3thy
-z3ti
+z3tic
+zt1ins
+z3tÃķ
zt3rec
-zt3ric
zt3s2
z3tÞ
zu1
zu3a
-zub4
+zu3b4
3zuc
-zuch2e
-zucht3r
+zu4ch
+zu3cke
zud4
zudi4
zu2el
-zu3e2r1
-zue2t
zu3f4
-zug2em
+zu2g1ar
zu4gent
-zug2i
zu3gl
-zu4gla
-zu4glÃķ
-zu2go
+zug1un
2z1uhr
-zu3hu
-zui2
zu3k
-zul2
2z1um.
-zum2a
-2z1umb
zumen2
2zumf
2zumg
-zum2i
-2zumk
2zuml
2zumr
2z1ums
-zum2u
-2zunab
zun2e
-2z1unem
-zunf4
zung4
-4zunget
-2zungl
-z1uni
-2zu2nio
-2zuniv
-2zunr
-2z1uns
2zunt
-zuo2
zup2fi
-zu3pl
zu3r2a
-2z1urk
+z1urk
2z1url
-2z1urn
2z1urs
2z1urt
zu3s4
-zusch4
-zu5t2
-zut4r
-zut4u
-zut3z
+zu5t
+zut2a
zuz2
-2zÞ4b
-3zÞc
+2zÞb
zÞr1c
2z1v
zw2
z1wac
2zwag
-4zwah
-4zwap
+2zwah
+zwan2d1
+z2wang
z1war
-2zwa2s
-2zwÃĪs
-2z1wed
+2zwas
+4zwÃĪl
2zweg
2zweh
z2weig
-2zweil
-zweiter6
2z1wel
2z1wen
2z1wer
+z2werg
2z1wes
-z2wic
-zwi4e
-3zwing
-2zwirt
-z2wisc
-2zwiss
+2zwet
+2zwir
z2wit
2z1wo
z1wÃķr
z1wur
2z1wÞ
-zy1an.
-zy2le
-2z1z
-z3z2a
-zza3b4
-z4z3al
-zz4at
-z2z1id
-z2z1in1
+4z1z
+z3z4a
zzi1s4
-zz2Ãķ
-zzug4s} \ No newline at end of file
+z3z2o
+zz2Ãķ} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-deo.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-deo.pat
index cc2d7f1e10e..ef5ac5c4d5f 100644
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-deo.pat
+++ b/Master/texmf-dist/tex/context/patterns/mkii/lang-deo.pat
@@ -10,11 +10,7 @@
.abo2
.ab3ol
.ab1or
-.ab3s2
-.ab3u
-.ade3n
-.ae3
-.aft2
+.ack2
.ag2a
.ag4r
.ag2u
@@ -22,174 +18,115 @@
.akt2a
.al2e
.al3k
-.al3lei
-.al5len
-.al3se
+.al5l4en
.al4tei
-.al4tel
-.alter6s5
-.alt1s
-.al2tu
+.alt3s
.ampe4
-.amt2s
-.amt4sc
-.ana1c
-.an4a3t
+.amt4s1
.an3d2
.anden6k
.and4ri
-.an1er
.ang2
.an3gli
-.an3go
.ang4s2
.angst3
-.ani2s
-.an3k4
-.an3na
.an3s2
.an4si.
-.an4tar
+.an4tag
+.an3th
.an3z2
.aos4
.ap5p6le.
+.aps2
.ari1e
-.ar3k2a
+.ark2a
.ar4m3ac
-.ar4mun
.ar2sc
-.ar4tan
.ar4t3ei
.arter4
.ar6t5erh
-.ar2t1r
-.arz2
.as6sest
.as2t
.ata1
-.at2h
-.at4r
+.at4h
.au3d
.au4f3
.aufs2
.au2s1
+.ausch3
.au6stes
-.auß2
.ax2
.ÃĪm3
.ÃĪr6schl
-.ÃĪt2h
.ÃĪt2s
.ÃĪu3
-.bahn3
-.bah6ner
-.bal3t
-.baus4
.be3erb
-.beige4
-.bel2a
.be3r2a
-.ber2e
-.ber4g3a
-.berga6s
+.be3r2e
+.berg3a
+.ber6gab
.ber6g5e6b
+.ber4gl
.ber4g3r
-.ber4tr
-.bi4os
-.bi2t
-.bit1a
.boge2
.bo4s3k
.bu4ser
.bus3se
-.bussy4
-.bu3ta
-.ce2ra
-.ch6
-.char8mes
+.bu7s8ser.
+.ch2
.chi3er
.dab4
.da2r1
-.dar3in
+.da4rin
.dar2m1
.da4te.
.da4tes
.de2al
.de1i
-.dein2
+.de4in.
.de8ments
-.de3na
-.den4ka
-.den4kl
-.den4ko
.de1o2
.de3r4en
.derma3
.dermas6
.de3sk
-.di3el
-.di4en2
-.dienst7a8d
-.do3b
+.dien2
.do2mo
.do1pe
-.dor2f1
-.do2tr
-.dys3
+.dorf1
+.dÞ1b
.ebe2r1
-.eh2e
.ehe1i
-.ehe5n
+.ei4ds
.ei3e2
-.ei3f2e
-.ei3k
.ei4na
-.einbus6
-.ein3d
-.ei2ne2
-.ein3eb
-.ein6erl
-.eins2
-.ein3sp
-.eise4
+.einen6g
.ei2sp
-.eis3s2
.ei4s1t
.ei2tr
.eke2
-.ek3li
+.el2a
.el2bi
-.el2bl
-.el4fei
-.el2fl
.em3m2
.en1
-.en4da
-.en4d3er4
+.en4d3er
+.en5der.
.en2d3r
-.en4dÞ
-.en3ga
.en2gl
-.enk2
.enn2
-.ent3
-.en2ta
-.en4tei
-.en7thalp
-.en4tio
-.en2t1r
-.ents2
+.en2t3
.epi1
.ep3p
-.er4bei
.er8brecht
.er2bu
+.er2da
.er4dan
+.er4dar
+.er4dei
.erden6k
-.er4d3er
+.er4der
.er1e
.ere3c
-.er2em
.erf4
.er1i
.ers2
@@ -198,429 +135,247 @@
.er8sterb
.er8stritt.
.er8stritten.
-.ert2
-.er4z3el
.er4zen4
+.esel4s
.es3p
.es2st
.es2t
-.esta2
-.est6e
-.est3r
+.est4e
+.est2h
.et2s
-.eu3
-.eug4
-.eur4
+.eu1
+.eu3g4
+.eu3t
+.eve4r
.ext4
-.fÃĪs3se
-.fe3la
+.fe4i
.fer4no
-.fi3d4
+.fe4sta
+.fid2
.fi4le.
.fi4len
.fi2s
.flÃķ8s7se.
.flÃķ8s7sen.
-.flÃķ8s7ses
-.flu2g1
+.flÃķ8sses
.fs4
.fu2sc
-.ga2me
-.gan4ga
-.gangs4
-.ga4s3e
-.ga6sten
-.ga4su
.ga2t
.gd2
-.gebe4a
.geb2l
-.gel4b3r
.gel2d1
-.ge3lu
-.ge3m
.ge5nar
-.ge3n4e
-.ge3n2o
-.gente4
-.ge3r4a
-.ger2e
-.ge3ro
+.ge3n2e
+.ge3r2a
+.ge3r2e
.ge3s2
-.glan2
-.glanz3
-.gla4s3t
-.gol6der
+.get4
+.ge3u
.grif8fes
-.gus2
+.guss1
.haft3s
-.hal5le
-.halt4e
+.hal2s
.hau2t1
.he2
-.he4bei
.he3fe
-.he3le
-.he4r3an
-.he3rat
-.her6b5ra
-.he3rer
+.her3an
.he3ri
.he6r5inn
+.hi4n
.hin3u
-.hof1
-.ho4fen
.ho4met
-.hÃķch2
.ia2
.il3
.im2a
.ima4ge
.im5m2
.in1
-.ind2
+.in3e
.in3gl
-.ink2
-.in3n2e
-.in3sk
-.in3t2
+.ink4
+.inn2e
.inu1
-.io4d
.ioni1
.ire3
.is2a
-.it2h
-.iv2
-.joni1
-.ka2b3l
+.ka2b5l
.ka2i
-.kal2a
-.ka3le
-.ka3t2a
-.kat3i
-.ka4ti4o
+.kamp2
+.ka4t3io
.ken6num
.ker3s
.ki4e
-.klang3
-.ko3b
+.kle4i
.kopf1
-.kor4da
-.kraf2
-.ks4
+.ks2
.kus2
-.la3be
-.lan8de8mi
.le4ar
-.le4gas
-.le3n2i
.lich8t7er8s
.li2f
-.li3po
.li4ve.
.lo4g3in
-.lo2sc
-.los3s2
-.lo2tr
.lo3ver
.lÃķ4ss
-.lus2
-.luster6
+.lÃķs3se
.lu4str
-.lut2h
-.ly2s3
.ma3d
-.ma3ge
+.ma3la
.mal4e
-.mas8sen.
.ma4str
-.mat4c
-.matu3
.md2
.mel2a
-.me3ne
.me3no
.men8schl
.men8schw
-.mes4sp
-.mi2f
-.mik4
-.mil2z1
-.mi2t1
+.men3t4
+.mi2t
+.mi4ti
.mm2
-.na3no
-.na3t
.nÃĪs5c
-.nebe4n
-.ner2f
-.ne1ro
-.nich2
-.nicht5e
.ni2e
-.ni3k4l
+.nob4
.no2c
.no2s
-.no2th
+.no4th
.nul2
.nus2
-.oa5s
.ob1a
.obe2
-.ober5ei
-.ob3i2t
-.och3
-.of2e
.ohr5s
.oper4
.or2a
-.ord4e
-.or3g
-.or3k2
.ort2
.orts3e
-.os3s
-.osta4
+.ort4st
+.os5t6alg
.oste2
.ost5end
.osten8de
.oste6re
-.ost3i
.ost3r
-.ot1a
-.ou2t
.ozo4
.Ãķl3l
-.pab4
-.part4h
+.pa4r1e
+.par3t4h
.pe2c
-.pe3la
-.pe3le
-.pe3na
.pe4ste
.pf4
-.ph4
+.ph2
.poka2
-.postei6
-.po8steig
-.po4sto
.po4str
.ps2
.rabe4
-.ra3ch4e
.ra3me
.ra4sp
.ra4s3s
-.rau2m
-.rau8schl
-.rÃĪu3sc
-.re3ale
-.rebs2
+.reb3s2
.re3cha
-.re5insz
-.reis6e5i
-.rei6str
-.res2t
-.re4stu
-.ri4as
-.richt6e
-.ri4f
+.rein4t
+.reli1
+.reli3e
+.ri2as
+.rich5te
.ro4a
-.ro3be
-.ro2e
-.ro2ha
-.ro3m
-.rom4a
-.ro2t3r
-.ro3tu
-.rÃķ2sc
+.ro3m4a
+.rÃķ2s1c
.rÃķ4ss
.rÃķs3se
-.ruf3s
-.ruh2r1
.runder6
.ru5s6ses
.rÞ1b
.rÞcker6
.rÞ4ss
-.sa3br
.sali1
-.sali3e
-.sami1
+.sami3
.sas2
-.sa5sse
-.sau1c
-.sau4er
-.sau5er.
-.sÃĪ5s4
+.sa3sse
+.sÃĪs4
.sch4
-.schaf8t7end
-.scheiner8
.scho7s8se.
.scho7s8ses.
-.se2e
-.seein4
-.se2ha
-.sein2
-.sen4f
.sen3s
-.se3re
-.se1ro
+.ser2u
.se2t1
.sha2
-.si4en
-.si3gn
-.sini3
.si2te
.ski1e
-.sour2
-.spani7er.
+.spas4
.spÃĪ5s4
.spiege8lei
-.st4
-.stau8becken.
-.ste2i
-.steiner8k
+.st6
.sto4re
.stras4
-.stro6ma
.sucher6
-.sy5s
-.tage4s
-.ta3mi
-.tan4k3a
.tan4k3l
-.ta3ra
-.tar3t2
-.ta2t1h
.ta2to
-.ta4tor
-.ta2t1u
.te2e
.te2f
-.tehe3
-.teiler8s
-.tei8l7ersc
-.te3le
.te3no
-.te1ra
-.tes4t
-.te6stei
-.te6stel
-.test3r
.th4
.ti2a
+.tid1
.ti2e
-.ti2me
+.ti4me.
.ti4mes
-.ti3r
.ti2s
-.tischen8
-.ti8sch7end
-.tite4
-.tode2
-.to4der
-.todes3
-.to2n
-.to4nat
-.to3nes
-.ton3i
.to4nin
-.tons2
.to4pl
-.to2pr
.to2w
.tras3
.tra4ss
.tri3e4s
-.trockenmas8
-.ts4
-.tse3
-.tu3ra
+.ts2
.tu3ri
-.turm1
-.tur4ma
-.ub2
-.ufe2
-.ufer3
-.ul2b3
+.uf2e2
+.ufer1
.um3
-.ume2
.umo2
.ums2
.un3a2
.un3d
.une4
-.un3g2
+.un3g
.uni2t
-.ur3a2d
+.ur1
.ural4
-.uran6fa
-.ur1c
-.ur1e
-.ur4inf
-.ur3o4m
-.ur1o2p
+.ur2i
+.urin4s
+.ur3o2m
+.uro2p
.ur3s2
.ut2a
.ut3r
+.Þbe4
.ve5n2e
-.vol2
+.vi2e
.vo4r
.wah4l
.wa2s
.weg5s
-.weine4
-.wei4ta
.welter8e
.welter8k
-.wer6ker
-.wer4kr
-.wer4tr
-.wetterer8
.wi4e
.wor2
.wort5en6
-.wur2f1
.xe3
.ya4l
.zeit3s
.zel4la4
.zelle4
.zel6lei
-.zel4li
-.zeug4i
.zi2e
-.zie4l3u
-.zin4ka
-.zin4s3c
.zin4st
.zol2
-.zuch2
-.zug3l
-.zu4gra
-.zu2pf
-.zweigen8
-.zwei8g7end
a1ab
aa2be
aa1c
-a1a2ce
aa2gr
-a1akt
-a1a2n
-a2ans
-a1aq
+2a1a2n
2a2ar
-aa2r3a
-aar3b
-aar3d
-aa3rea
-aa2rei
-aarf4
-aar3g2
+aa2r1a
+aar3f4
aar3k4
-aart4
-1aas
+aar5sc
aas1t
aa2th
aa2t3r
@@ -629,1533 +384,975 @@ aat4s1
a1ÃĪ
a1b
2aba
-3abad
-ab1alt
-a3b2am
-ab2ant
-ab1au
-ab2aut
+ab1auf
ab1ÃĪ
-ab2ÃĪr
ab2ÃĪu
-2abbat
-2abbin
1abd
-2a3be.
-2a3bec
-2abee
-ab1eic
-abe3i4d
+ab1eb
+abe1e
ab1eil
-ab1ein
-2ab2el
+4abel
abe2la
-abela4d
-abe2le
-2aben.
-1abent
-2aber
-a2berd
a3beri
ab1er2k
ab1er2r
ab1er2z
-4abes
-abe2s1e
ab3esse
abes2t
ab1eß
2abet
2abew
1abf
+3abfi
1abg
-3abga
1abh
2abi
-4abil
ab1ins
ab1ir
ab1it
1abk
ab1l
1a2bla
-a3blat
1a2blÃĪ
-a2b3led
-3ab3lei
-a3blem
-2ablet
+2able
+ab4le.
ab3li
-a2blin
-ab4lit
-2ablo
-1a2blÃķ
+ab4lo
+3a2blÃķ
a2blu
abma3s
1abn
-2abo
-3a2bo.
+a2bo.
ab2of
-3a2bon
-4abot
-2abÃķ
+1a2bon
+2abor
ab3r
+a3bra
a4brÃĪ
-a2bre
-ab4ros
-2abrÃķ
-a4bs
-1absc
-1ab3s2p
-abs2t2
-1abstu
+2abrÞ
+1abs
+2abs.
+abs2a
+2absar
+ab3s2i
+ab3s2p
+abs4t2
+2abst.
+ab3sz
1abtei
-3abtr
-2abu
-abu3g4
-a2bum
+2a3bu
ab1ur
2abÞ
1abw
2aby
-3abz
-2ac.
-2a3ca
-1ac1c
-2acci
-ace1
+1abz
+2aca
+2ac1c
a1cem
-a1cen
-a1cet
+2ach.
ach1a
a1chal
-a3chari
-ach3as
ach3au
2achb
-a1che
+2a1che
a2ch1e2c
ach1ei
-ach4ei.
-a2chep
a4cherf
-ach5erfa
-a4ch3erh
-a4ch3erl
+a4cherk
a4cherÃķ
a4ch3erw
-2achf
-2a1chi
-a2chim
+a1chi
ach3l
-2ach3m
+ach3m
ach3n
a1cho
a3cho.
-a2cho2r
-ach3Ãķf
-4ach3r
-2achsc
-achs4el
+ach1o2b
+ach1or
+ach3Ãķ
+ach3r
ach3s2i
-ach3skr
-achs4or
ach3su
a4cht
-ach4tak
-ach6terf
-ach8tersp
-ach6t5erw
+acht7ersc
ach2t1o
-acht5rat
ach8traum
ach8trÃĪume.
ach8trÃĪumen.
ach6trit
-acht6s5al
-ach4tum
a1chu
ach1u2f
ach3Þ
2achv
-4ach1w
-a2chy
+2ach1w
a1ci
+ac1in
+2ack.
ackmu4
ackmus3
-ack2sp
-acksta4
-2a1cl
+ack2se
+ack3sl
+ack3sta4
+a1cl
a3co
acon4n
2acu
a1ç
a1d
-2ad.
2ada.
-4adab
-ad2abr
+a3d2ab
ad2ag
adai4
-ad1an
-3adap
-4a3d2a2r3
-2adas
-2adat
-a2d1au
-a3dau.
+ada2m
+ad3ama
+a2d1an
+3a4dap
+a3d2ar3
+4adav
1a2dÃĪ
ad1c
1add
2ade.
ade2al
-a3dec
-a3dee
-adefi2
-2adeg
-a3dell
-4aden
-a3den1a
-ade4nat
-adeo2
-ade1ra
-a2d1erk
+adefi4
+a2dein
+2aden
+ade1r2a
+a2deri
4ades2
ade3sp
-ades4s
+ades6s
2adf
-4adh
-4adi
+2adh
+4a3di
adi3en
-adi3er.
-adie4sc
-3adj
-2adli
-4admu
+5adj
+2ado
ad2ob
-ado2n
-ado4na
-a2dop
2adp
2adq
-a2dre
2ad3rec
-ad3rei
-ad3run
+ad4res
2ads2
ad3sz
-2ad2t1
-adte2
-ad4tor
-1adv
-2a3dy
+ad2t1
+adta2
+2adu
2a1e1
ae2b
-a2ec
-ae2d4
-ae2i
+a3e2d
+a3e2i
a2ek
-a2el
a3el.
-a4ela
-a4ele
-a4eli
+a2ela
+a2ele
+a2eli
a3els
-ae2m
ae2o3
-aeop2
-ae2p
-3a4er2o
-a2es2
-ae2sc
-ae2ta
+a3e2p
+3a2er2o
+ae4sc
+a2et
a2ew
ae2x
-2afa
-af1ab
-a2f1a2n
+af1a
+a2fak
+a2fan
a3far
-a2f1au
-2afÃĪ
-a2f1ÃĪn
+af4at
+a2fau4
2afe
a2f1ec
-a4fentl
-a4f1ep
-aff4a
+a2fent
+af1erl
+a2fex
+af2fei
af2f3l
-aff4th
+af4flu
2afi
-afi6kanz
-afi4kat
-afi2t
2af3l
-af1la
-a1f4lu
-2afo
-a2f3oc
-a2ford
-a2f1ort
-2afra
-af3rau
+a2fÃķ
+af3ra
af3rÃĪ
af3re
-2afro
af3rÃķ
-af4rÞ
af3s2a
-af3sh
-af2si
af2sp
+2aft
af2t1a
-af3tat
af2tei
-af2te2l
-aft4erk
+af4t3erl
af2t1o
-af2tÃķ
-aft3r
-af2tra
-aft5rei
+af2t3r
+aft5re
af2tur
a2f3ur
-2afÞ
a1g
-2ag.
2aga
ag1a2b
ag1a2d
ag1am
ag1ar
-a2g1au
-ag2del
-ag2dr
+ag1au
+ag2di
ag2du
-4age.
-age4l3ei
-age4ler
-2agen.
+2age.
+age1i
+age4na
age4neb
a2gent
+a4gentu
+ag2er
+age4ral
2ages
-age4sam
-age4s3in
-age4so
-ages3p
+age2sa
+age4sel
+age4si
+age2s3p
ages5s
-ages6sen
-age4s3ti
+ag3esse
+age6stem
+ag3gl
3aggr
-a2g1id
-a2gim
+3a2git
2a2gl
-ag4lan
-ag4las
-ag3le
+ag4la
a4glÃķ
-2agm
ag2n
-ag4nat
-a4gnÃĪ
+a2gna
ag4ne.
ag4nu
-ago3b
-ag3rat
a2g3re
-a2gri
-ag3rie
-ag3rin
-2ags
+a2g3ri
+ag4ro
+agsa2
ag3sah
ag4sam
-ag3s4eid
-ag2sp
-ag7s8porta
+ag3sc
+ags3p
+ag6spo
+ag4sti
ag2s1tr
2agt
ag2th
-2agu
a2gund
2ah.
2a1ha
-ah2an
ah4at
-a1hÃĪ
2a1he
ahe1in
-a2h1er2h
-ahe3u
+a2h1erh
a1h2i
ahin3
-ah2l3a2
-ah2l1ÃĪ
-ah2l1ei
-ah2lel
-ahle4na
-ah4l3erd
+ahl3a4
+ah4l1ei
ah4l3erh
-ahl1o2
ah2lÃķ
ahl3sz
-ahme1i
-ah3mu
-ah4n3a
-ah2nÃĪ
-ah3nee
-ah2nef
-ahn3el
-ah4nerd
+ah4n1a
ahner4e
-ahner6le
-ahner4n
-ah2nin
-ah2no
-1a2hor
-ah1os
-ah3Ãķs
-4ahr
+ahnt2
+1ahor
+ah1o2s
+a2h3Ãķ
ahr1a
-ah3r2e
-ahren6sc
+ah3re
ahre4s3
-ahr2ti
+ah3ri
+ahrta4
ahr4tri
-ahr4tro
-ahr4tun
ah2ta
-ah2te2l
-ah2t1ex
-ah2t3r
+aht3h
+ah2t5r
aht1s
a1hu
ah1w
a1hy
-2ai.
-ai1a4
-a1ia.
-2aib
-ai2bl
+2ai
+ai3a4
+aian3
aid4s
aids1t
-ai1e4
-ai3en1
+ai1e2
aif4
ai1fr
-a4i3g4
+ai3g4
a3ik.
ai3ke
-ai2lar
-ail3d4
-ai2lei
-ail3g
+aik4r
ai2lo
-4ain
+aim2o
ain2a
a1ind
-ai5n4e
-ain3s
-ains2p
+ain4e
+a1ing
+ain3sp
3airb
ai2sa
a3isch.
-ai5schw
ai3s2e
+aiss2
ais3sen
ais5st
-ai2sti
ait4
a3iv.
a3ivl
a3ivs
a1j
-a2jat
ajekt4o
2ak.
-2aka.
-2aka3b
-akab4r
-a2kad
+1a2k4ad
2akal
2a3kam
-2akan
2akar
ak4at
-akat1a
-aka4tak
-1akaz
-4akÃĪ
+1a2kaz
2akb
2akc
2akd
2a1ke
a2kef
-a2k1em
-a2kent
-a2kes
-ak2et
+aken2n
a2keu
2a1ki
-ak1ins
-1akku
2ak3l
-a1k4la
ak4li
-3aklÃķ
-a1kna
-2ako
+4ako
2a1kr
-ak3res
-a3k4ri
+ak3rau
3akro3
-ak3rÞ
2aks
ak3sh
-ak2t1a2b
-ak4tag
-ak3tan
+2akta
2aktb
-ak2tel
-ak3ten
-akt2er
-2aktg
+ak3te
+ak4tei
2aktik
-2aktis
-2aktm
-ak2to4b
-ak2tÃķ
ak2t3r
ak3t4ri
2aktsi
-2aktsp
2aktst
-2aktw
-a1ku
-2akun
-a2kup
-2akur
-2akÞ
+2a1ku
+a2kun
+2a3kÞ
1akz
-3akze
a1la
-2ala.
-2alabo
+2a5la.
+al1ab
+ala3ch2
al1af
+ala2g
al1age
-2alai
-al1akr
+a3lal
al1am
+alami5
+al3amp
al1ana
-2aland
-a2lang
+a2l1ang
+al1ans
al1anz
-al1app
+a2lar
a3lar.
-al3arc
a3lare
-2al1arr
-a2lart
+al2arm
+al3arr
ala2s
al1asi
al1ass
-a3lat.
-al4atm
-alat5t
-alat3z
+2alat
al1au
al3aug
a1lÃĪ
-a2l1ÃĪm
-al1ÃĪn
-al1ÃĪrm
-al1ÃĪu
-3albat
-al2bÃĪr
-alber4e
+al1ÃĪm
+alb3ein
al4berh
al4b3er4w
al2b1l
+alb3li
al2boh
-al2bon
+al2br
alb3ru
-alb5st
-al4dan
+alb3s
al2dÃĪ
-al4d3erl
-al4d3ern
-alde2s
-ald3inn
-al2dra
-al2drÃĪ
-alds2
+al2dr
2ale
-4a3le.
-ale4ar
-a2l1e2b
-al1eck
-a4l1ef
+ale4a
+3a2l1e2b
+3a4l1ef
+a4l1eh
a2l1ei
-a3l2eic
a4lein
a2l1el
-5a2lema
-a2l1e2mi
-4a3len.
-alende4
-al3endr
-a4l3ends
+alen1
+al3ends
a2leng
-al2enn
+a3lentf
ale2p
al1epo
-4aler.
-a2l1erb
-aler2e
-a2l1erf
-a2l1er2h
-aler4kl
-a2l3erl
-al1erm
-aler4mi
-a2l1er4r
-al2ers
+al1erf
+a2l1erh
+al3erl
+3alerm
a2l1ert
-3a4l3erwÃĪ
-4ales
-a2l1e4sk
-a2less
-a4leth
+3alerz
+a2l1esk
+ale4t
+al1eta
+al1eth
a2l1eu
+a4leur
+3a2lex
alf4r
3algi
al2gli
-al3glo
1algo
-3algor
-alg4r
2ali
+ali4ene
al2imb
-al1imm
ali4nal
-al1ind
-alin4ge
-a2l1in2q
al1ins
-alken1
-al2klÃķ
+a2linv
+alk1ar
al2kne
-al2kof
1alkoh
alk3s2
-al2lab
-al3la3d
-alla4me
+al2l1ab
+alla3d
al2lan
-al2l1a2r
+al2l3a4r
al6later
-al2lÃĪ
+al2lÃĪn
al3lÃĪu
-al3le.
al4lec
-3allee
alle4gi
al4leh
+al5lein
al3lend
-all3erk
-aller4z
+all5erfa
al3les
alle3se
al2leu
-al2lid
+1allgÃĪ
alli5er.
alli7ers.
al2lob
al2lo2c
-al2lop
-al2lo2s
+al2lo2k
+al4lo2s
al2lÃķ2
all3Ãķse
al2luf
allu4s
al2lÞ4s
-al2map
-al3mas
al4m3ast
-almo6de.
-2alo.
-a2l1ob
+3almb
+2alo
+a2l1o2b
3a2loe
-a2l1of
-4alog
alo2ga
-alo2gr
-al1ont
-al1ort
-2alos
+al1orc
a2l1Ãķ
+al3Ãķf
al2Ãķs
-3alp.
3alpe.
1alph
-al2pho
-alrat4
-al3sak
-al6schei
-al4sh
al3skl
-al2stu
+als2to
al2sum
-al2t1ak
-alt3alg
-al2t1an
-al2tat
-al2tau
-1altÃĪ
-alt3eis
-alt3elt
-al4temu
-al4t3er5f
-al2teu
-al2tid
-al2tin
+al3sun
+al4tak
+al3tar
+alt3eig
+al4t3er3f
alt1op
al2tÃķ
-al4t3rat
-al2tre
-al2t3ri
-al2t3ro
+al2tri
+alt3ric
+al2tro
+alt2se
alt4stÞ
a1lu
-alu3b4
-al2u3f
-alu3g
-al1u2k
+al2uf
a2lum
al1umb
-a2l1ur
-a3lus
+al1ur
4aly
-al2zar
-al2zau
-al3zen
-alz4erk
+alzer4z
al2zw
-am2a
-ama2ba
-ama3d2
+2am.
+2am2a
+amab4
+amad2
ama3g
-2amah
-a2malg
-2a3m4an
-2amar
-ama4sta
-1a2maz
2amÃĪ
-4ame.
+am2e
+2ame.
a2meb
2amel
-am2e4n1
-amen6s5pr
-ame3r2a
-amera3u
-a2m1erf
-3a2meri
-ame5r2u
-2ames
+am4e2n1
+amer2a
+am3erf
+a2meri
+ame3ru
a4mesh
-2a3met
-2amf
-a3mi.
-a3mie
-ami2k
-2a3mir
-2a3mis
-2amit
-2amk
+a3met
+a2mew
+2amir
+ami3t2a
+ami3ti
2aml
2amm.
-am2mab
am2ma2c
2ammal
-amma2n
+amma4n
am2mar
am2mas
amma4sc
am2maß
am4ma4te
+am2mÃĪ
ammen8ge.
-ammes3
-am2mid
-ammi2e
am2min
am2mit
-am4mo2d
-am2m1Ãķ
+2amml
+am4mod
+2ammt
ammu2
-amm3unt
-am4mus
am4mÞ
amni1
a2mÃķ
-2ampe.
-2ampen
-amp2f1a2
-2am2ple
-2ampo
+amp2fa2
am3pr
-4amsc
+2ams
am4schl
-1amse
-am3sh
1amt.
-am2t1a2
+am2t1a
am2t1ÃĪ
-am2tei
-amt3eig
am2tel
-2amtem
-am4terh
am4t3ern
-am2t1ex
-am2tis
-am2tit
-am2to
-am4tou
am2tÃķ
am2t3r
-am2t1u
-2amtv
+am2tu
2amu
-3a2mul
2ana.
2anab
ana3c
-an2ad
-anadi1
-an2ag
-2a3nak
+anadi3
+a3nak
an1alg
ana4lin
2anam
-an2a3ma
2anan
-an4and
2anas
-a5nat.
-ana4th
-a5n4atm
-a2nato
-ana2tr
-a5nats
-an3aug
-1a2n1ÃĪs
+an1ath
+an4atm
+an1ÃĪs
1anb
-2anbas
-2anbÃķ
2anbu
an3ch
2and.
3an3d2ac
-and3arm
-and3ei
-anden6ga
-an4d3ent
-and5erob
-ande2s
-an2d1ex
+an4d3ei
+ande4sc
+an2dex
+an4drau
+an2d3rÞ
and4sas
-and4seh
-and2so
-and6spar
and6spas
and6s5paß
and2su
-4andu2
-an2d1ur
+2andu
+and1ur
2ane
an3ec
a3nee
an2ei.
an3eif
-3aneig
-a4neis
-3a2n1e4k
-ane2l
-an1e2mi
-a2nemo
-aner4fa
-a3nerg
-an2erh
-a4nerke
-4anern
-a4nerz.
-an4erze
+an1e4k
+3a4n1erb
an1eth
-3anex
1anf
-2anf.
-2anfab
-3anfÃĪ
-an3fe
2anfi
-an4fj
-anf3le
-4anfors
-anf5rau
-2anfs
+anft3s
an3f2u
4ang.
-1anga
-2anga.
an2g1ar
-2angas
-2ange.
-1angeb
-1angeh
+3angeb
an2g1ei
an4g3erf
-an4g3er4h
-an4g3er4w
+an4g3erl
+an4gerw
an4g3erz
+2angf
2angh
2angie
ang1l
an2gla
-ang5n
+2ango
ang1r
-ang3ra
-1an3gri
+an4g3ra
4angs.
-ang4sto
-angt2
+ang3sc
+ang6s3po
1anh
2a3ni
an2i3d
-4anie
ani3els
ani5ers.
-anig2
-ani3ke
3a4nim
-a4nind
-ani2o
-an3i4on
-a4niso
-anis2t
+a4nins
2anj
2ank.
-an2kab
-an2k1ak
-an2kan
+an2k1an
+3ankÃĪ
an2kei
-2an3ken
-ank5erfa
-an3kes
-2anki
-an2kid
-an2klÃķ
+an3kl
+an4klÃķ
an2klu
-ank3no
-an4k3opf
-an2kor
+an2k3no
ank1r
ank3ra
-an4kras
ank3rÃĪ
-an2kro
-2anks2
-ank3se
-2ankt4
-3ankÞ
+ankt4
1anl
-2anlad
-3anlag
anma3s2
-2anmo
1anmu
-2ann.
-1annah
-an2nar
-an3ne
-an4nef
-an4nei
-an4nene
-ann2er
-2anns
-ann4s3p
-2annt
-2ano.
-1an1od
-2anof
-2anog
-2a3nol
-ano2la
-1a2nom
-a3nom.
-2anoo
+2ann
+3an3na
+ann2ab
+3annÃĪ
+an3n2e
+ann4sto
+an1od
+a3nol
a2n1or
-ano2ri
-2a3nos
+a3nos
2a1nÃķ
-2anpu
1anr
-2anrÃķ
-an4same
-an3s4ar
1an3s2ÃĪ
1ansc
+ans2en
+an2seu
+2ansk
an3skr
-ans1pa
-ans3pon
+an3s1pa
1anspr
-1anst
an3s2z
2ant.
-ant3ar
-anta4re
-an3t2ÃĪ
+an2t3a4r
1antÃĄ
-3antei
-an3tha
-2antie
-3antise
-anton2
+1antei
+3antenn
+an3t4he
+1anthr
+2anto
+anton4
3antr
ant3rin
+an2tro
1antw
-2anu
-anu3r
-anu3s
-anus3s
+2a1nu
+anu1s
a1nÞ
1anw
-2anwi
-an2zÃĪ
+2anwet
2anzb
-2anzd
1anzei
-anz3elf
anze2n
-2anzes
2anzg
-2anzh
-anzi2d
an2z1i4n
-2anzk
-2anzm
-2anzr
2anzs
-2anzt
1anzÞ
-3anzÞn
-2anzv
2anzw
+an2zwa
an2zwi
-2anzy
2ao
-aof4
-ao3i4
+ao1i4
a1op
-aopf4
a1or
a1os3
-aost2
+ao3t2
a3ot.
-ao3t2s
-2a1Ãķ2
+a1Ãķ
a1p
-4ap.
-ap4a
-apa3b
-a2pe.
+2ap.
+2a3pa
+2ape
+a2pef
a3pel
a2pÃĐ
a2pf
ap2fa
-1apfel
-2apfes
a3pfl
-a2pht
-2api
-2apl
+a3phÃĪ
+a2ph3t
+2ap3l
ap4la
-a3plÃĪ
-ap3le
-ap3li
ap2n
-3a2pos
a2pot
-1appro
+ap2pf
+3appl
2apr
-ap2so
-ap4ster
-ap3t2
+3apri
+ap2str
2a3pu
+2aq
2ar.
a1ra
a3ra.
ar2ab
-2ar3abb
-ar3abf
ar3abt
ara3d2
-ar3adr
-ara3ge
-2a2r3al
-a3rale
+a2r3al
a3ra3li
-a3ralo
2aran
a2r1ang
+a2r1ans
a2r1anz
-2arap
-a4r3app
+a2r3app
2a2rar
-ar2asy
-4arat
a2r1au
a1rÃĪ
-ar1ÃĪs
1arb
2arb.
-2arba
-ar2bak
-ar2b3at
+4arba
ar2bau
-4arbef
-ar4b3ein
+ar2bec
2arbek
2arben
-2arber
4arbi
-2ar2bl
-2arbo
-2arb1r
+ar2bl
+2arbr
+ar2bre
2arbs2
-arb3se
-arb3sk
-arb3so
-2arb3t2
+2arbt
2arbu
+ar2b3un
1ar1c
-2archl
-2archr
-ar2dau
-arde4i
-ar2dop
-ar2d3r
-ar2du
-2are.
+ar2dro
+2are
a2rea
-are5aler
-a2reb4
-aree2
ar1eff
-a2reh
+a4reg
ar1ehr
-2arei
-a3rei.
-ar1eid
-a3reie
-a3reih
-areim3
a2rein
-arein4b
-arein4s
-arein4t
-a2rele
4arem
+a3ren
4aren.
-aren6sem
are3r2a
-arer2e
-a4r3erei
-a2rerg
-a2rer3h
+ar2erf
+a2r1erh
a2reri
-a2rerk
-a2rerl
-a2rert
-ar2erw
-2ares
-ar2et
are3u
-a2rev
+ar2ew
+2arf
+ar2fÃĪ
arf1r
-arf3ra
-arf2sp
-4arg.
-ar3gan
+ar2f3ra
ar2gl
-ar4gn
-2arg4o
+ar2gn
ar3g4r
2arh
-2ari
+2a3ri
ar2ia
-a2rid
-ari3e2n
+ari3e4n
ari3erd
ari3erg
+ari5ers.
+ar1im
arin3it
-ar1int
-a3r4io
-ar2ir
-ar4is
-ari2su
-a3riu
+a4r1int
+a4rinw
ar2kal
+ark3amt
ar2k1ar
ark3aue
-arker2
-ar2kil
-2ark3l
+ar2k3l
ar4klag
-ar2kle
-ar2klo
-ark4lÃķ
-ar2koa
ar2kor
-ark3s2a
-ark2se
+ar4k3ri
+ark3sa
ark3she
-arku2
ar2les
-ar3mad
-arm1au
+2arma
ar3m2ÃĪ
-ar2m1eg
-ar2m1ei
-arm2or
-ar2mum
-4armÞ
-4arn
+ar3m2or
ar2nan
-arn2el
-ar3ni
-a1ro
-arob2
-4aroc
-ar1o2d
-ar1of
-aro2fe
-2a3rol
-aro3m
+arn2e
+2a1ro
+ar1ob
+a2r1o2d
+a2r1of
a2r1op
a2ror
-1a2rou
-a2r1Ãķ4
2arp
-arr1ac
+2arr
ar2r3ad
-ar2r1as
-ar4rek
-arre4n1
+ar2rek
+arre4n
ar2rh
-2arri
-ar2r3or
+arr3he
+2arsa
+ar4schl
+arse3
ar3s2h
-ar3s2i
-ar3sse
-ar2tau
-2artb
+2arsi
ar3t2e
-2artei
artel6li6
-2artex
-art2i
+ar2the
+artin2
2arto
-art3r
-art4res
-ar2tri
+ar4t3ram
+art3re
2arts
-art3ske
2artuc
-2arty
2aru
-a2r1uh
+ar1uh
ar1um
-a3rumm
a2rÞ
2arv
arwa2
-2a3r2y
-2arza
-ar2zau
+2ary
ar2zÃĪ
2arze
-2arzi
-ar2zÃķ
1arzt
-arz2t3r
-2arzu
ar2z1w
-2asa
-a4s3aa
as2ad
-a4s3af
-a3s2al
-asal2t1
-as1am
-as3art
-asa2s2
+as1ala
+asas2
asa3sse
-as3at
-asau4f
-a4s3aug
+as3au
asau2s1
-as3ÃĪt
a2sca
a4schec
-a4schef
-a4sch3ei
-a6scher6g
-as4chi
+asch3la
a2schm
-2ascht
a3schu
-a4schum
-2asd
-4a3se
+4a3s2e
a4seb
-a4sec
-a4s1ef
-as1eie
-a5sen.
-ase4na
-ase4n3o
-asens2
-asen6sem
-as1ent
-as2er
-as4erd
-ase2re
-aser6geb
-a4s3erke
-as4es
-ase2t
-as1eta
+as3e2m
+a5s4es
a4sex
-2asf
-2ash
+2asg
+4ash
a4s3ha
-as2hi
-as3hir
-2asig
-a2s3i2k
-2asim
+as4hi
asin2g
-as1inn
-2asis
-as3ku
+4a5sis
+asi4st
+a3skop
a4s3l
a4sn
-2a1so
-as3ob
-as1of
+a1so1
+as1o2f
a3sol
-a3som
-aso2p
as1or
-a4soz
as1p
-as3pe
aspek6to
-a4spel
a4s2ph
as2pi
-as3pik
-as4pin
-as3pio
-a4spir
a4spl
-2aspr
-as2pra
-as3sa
-ass2a3b
-ass6aus.
+as2po
+a1spu
+as3s2a
ass2e
-ass3ein
+as2s3ei
as3sel
-asse3le
as3ser
asserma6
-a4ss2i
-as3sin
-as3ski
-as3so
-as2spo
-as2spr
+as3s2i
+as2s1p
as4st
-as5sta
-as5stei
+ass1ti
+ass1to
as5str
as5stu
2asta
-a4stab
-a3stÃĪ
-a4s1tec
-as2tee
-ast2el
-a4stemp
+a4stec
a4s3tep
-ast2er
-a4st3ese
-as2tex
-a4s2th
-ast2id
-as2to
-a2stoc
-ast3orc
+as2ter
+a4stese
+2astr
as4trau
-a2st3re
-ast4ren
-a6stritt
-a3stro
+a4strÃĪ
+ast3rÃĪu
+a2s2t3re
a4strol
-ast5roll
-a4s1tub
-a4stuf
a2stum
-2a1su
-as2ur
-a3su4s3
+a3su
+asu2s
a4sw
aswa2s
-1asy
-3a4syl
-2asys
-as3z
-aße4
-aß2en3
-a2ß1er
-aß2th
+3a2syl
+aße2
+aßen3
2a1t
-4ata
-at1abe
-at1abr
+at1ab
at2a1f
-a3ta3g
-at2ago
-a3tah
-ata3la
+at4ag
+a2t1akt
+ata3l
a3tam
-at1ang
-at3ank
at1apf
-at2ast
-at3att
-a2t1au
+at1au
+a2taus
+a2tÃĪ
at1ÃĪn
-4atb
at2c
a2teb
-ateien6d
+ate1c
+ateien4
at1eig
-3a2teli
-a3tell
-3atemg
+a4teli
at2en
-ate4na
-atens4
a2tep
-4ater
-ate3r4al
-ate3ran
-at4ere
-atern2
ate2ru
-at2eu
-a2tew
-4atha
-at3hag
-at3hal
-a3t2heb
-ath3in.
+atex3
+at2h
+at3ha
+athe1
3athl
a4thr
-at2hu
-at3hÞ
4a3ti
-ati4kab
-ati6k5erw
-a4tinf
-at2is
-ati2sa
-ati2se
-a4tiso
-atis3s
-ati6v5erf
-3atla
-4atli
+atingma5
3atm
-4atma
-4atmÃĪ
-at3mu
4atmus
-a2t1ob
-a3tod
-a3tog
-a3tol
-3a2t4om
-atom1e
-ato2mo
-at1op
-a3tor
-at1ort
-a3tos
-a3tra.
-atra2t
-a2t3rau
-a2t3rÃĪ
+ato4man
+4ator
+a2t1ort
+a2t1Ãķ
+4atr
+atra4t
+at3rÃĪ
at3re
-at3rin
at3rom
-a3t4ron
-at3rot
at3rÞ
at2sa
at4schn
at2se
-ats1e2h
+at4set
at2si
-ats1in
-at2s1o
ats1p
-ats3tÃĪt
at3ta
3attac
-at4tad
-at2ta2g
-at4t1ak
+at4tak
at2ta2l
-at4tang
-at4tar
+att3ang
at4tau
at2tÃĪ
-4atte.
-at2tec
+at4tec
at2tei
-at3t2el
-at4temp
-4at5ter
-attes2
-at3thÃĪ
-4atto
-at2tob
+at3t4hÃĪ
at2t3rÃĪ
-att3s2
-at3t2u
-at2ty2
-at4typ
-4atu
+att3s
+at3tu
atu2n
-atze4l
-atz3ela
-atz3elt
-at2zem
-at2z1er
-a3tzere
-at2z1i
+atz1er
+at4zerk
+at4zerw
+at2zi
+atz1in
+at2zo
atz3t2
at2z1w
a2u
@@ -2163,225 +1360,146 @@ a2u
2au1a2
2aub
au2bab
-au2ban
-au2b1au
-au2bei
aube4n
-au2beu
-au2blÃĪ
au2bli
au2blo
-au2blu
-aub2si
-aubu4s
-2auc
+4auc
+auch3ta
au2dr
2aue
aue2b
+au3en.
au2ere
-aue3rei
+au5erein
auer3Ãķ
-au5erst.
-au3ert
au2fa
-auf1ak
auf1an
-aufas2
3aufber
2aufe.
2aufeh
-4aufen.
-3aufent
auf1er
-au4fer4k
-au2feu
+au4ferk
auff4
-auf3ind
-1aufla
-1aufn
-2aufo
-auf3ski
-auf3t2
+3aufn
+auft2
2auft.
-5aufzeic
-3aufzug
-1aufzÞ
2aug
-au2ga
-au3g2ar
-4augeb
4augeh
-4augel
-aug2er
-4augl
-4augr
-au3gu
2auh
au3ha
-auh1u
-2au1i
+au2hu
+4au1i
au2is
-4auj
-auk3t
+2auj
aule2s
-aul4les
au3lÞ
2aum
au2mal
-aume4n
-au4m3ent
-au2m1e2r1
+aum2ei
+au2m1e4r1
aum3eri
-au2m1id
-au4mil
-au4mit
au2m1o
-aumo2r
aum3p2
aum3s2
-au4mun
4aun
au3n2a
aun2e
-au4n3ei
+au4nei
au2nio
-au2no
-au3nu
+au1nu
a4unz
2aup2
-2aur2
-au1rh
-au4sag
+aup4ter
+2au3r2
au2s1ah
ausan8ne.
-au2sas
au2sau
-2ausc
-au6schmi
+4ausc
+au4schm
1ausd
-2ause.
-au4s1eh
-2au3sen
-au4s3erb
-au4serf
-au4s3erk
+2ausen
aus3erp
-au4serw
+au4s3erw
+1ausf
1ausg
-au2sin
-au4sis
1ausl
au2so
-aus1or
au2spr
1ausr
-auss2
-3aussag
+1auss2
au3sse
aus4se.
au8ssende
aus4ser
-aus4ses
-au2st2a
-aus3tau
+au2sta
2auste
au4stec
aus3tie
aust2o
-au2stÃķ
aus3tri
-3ausÞ
-1ausw
+1ausÞ
1ausz
-auße2
+au3ße
a4ut
-au2tab
au2t1ÃĪu
-2autb
-au2t1e2l
-au3ten.
-auten4g
+au4ten4g
au4t3erh
-aut5ero
-au3tet
-2autg
-au2thy
1auto
au2trÃķ
2auts
2auu
-2auv
-auve4
2auw
2aux
2auz
auz2w
2a1Þ
-a1v
-av2a
-a3vang
-ava3t2
-avener4
-2avi
-a2v3r
+2a1v
+a3v4a
+ava3t4
+a3vi
+a2vr
av2s
2a1w
-awi3e
-a2wr
+awi3
+awi1e
a1x
ax2am
-a2xans
-a3x2e
-a3xid
-a2xio
-axi2s1
+ax2e
+axi2s
2a1ya
a1yeu
-ayma2
-ay1of
aysi1
ay3t
-a1z
-az4a
-a3za3d
-3azal
-a3z2i
+2a1z
+a3z2a3
+az2i
az2o
-a3z2u
-az2zen
-az2zw
+az2u
ÃĪ1a
-1ÃĪÃĪ
-2ÃĪ1b
+ÃĪand4
+ÃĪ1b
+ÃĪ5be
ÃĪ2b3l
ÃĪb2s
-ÃĪbte3
-ÃĪ1ce
ÃĪ1che
ÃĪche1e
-ÃĪche4n
ÃĪchenma5
ÃĪchenmas8
ÃĪ1chi
ÃĪch3l
ÃĪ2chr
-ÃĪch4sa
-ÃĪch2s1o
ÃĪch2sp
-ÃĪcht4e
ÃĪ1chu
+ÃĪck2e
ÃĪ1d
ÃĪ2da
ÃĪ2d1ia
ÃĪ2dr
ÃĪd2s
-ÃĪd3te
2ÃĪ1e
-ÃĪe4k
-ÃĪ3eu
-ÃĪe2x
+ÃĪf2e
ÃĪfe4n
-ÃĪf2fl
+ÃĪf2f3l
ÃĪf3l
ÃĪf3r
ÃĪf4ro
@@ -2389,246 +1507,180 @@ az2zw
ÃĪft2
ÃĪft4s
ÃĪ1g
-ÃĪ2g1a
-1ÃĪ2gÃĪ
-ÃĪgd2
ÃĪ5ge
-ÃĪgen4e
-ÃĪge2r3a
+ÃĪge1i
+ÃĪge2ra
ÃĪ2g3l
ÃĪg2n
ÃĪ2g3r
ÃĪg4ra
ÃĪg2s
-ÃĪg3sta
+ÃĪg3sc
ÃĪg3str
1ÃĪ2gy
ÃĪh1a
-2ÃĪ1he
-ÃĪh1ein
-ÃĪher8gebn
-ÃĪher3t
+2ÃĪ3he
ÃĪ1hi
-ÃĪh1in
ÃĪhl1a
ÃĪh3l2e
ÃĪh4l3e4be
-ÃĪh5ler
-4ÃĪhm
+2ÃĪhm
ÃĪh3na
ÃĪh3ne
1ÃĪhnl
2ÃĪhr
-ÃĪh2rel
ÃĪh3ri
2ÃĪh2s
-2ÃĪht
+2ÃĪh3t
ÃĪ1hu
ÃĪh1w
2ÃĪi
ÃĪ1im
-ÃĪ2is
-ÃĪ3is.
+ÃĪ1is.
ÃĪ3isch.
-ÃĪ3isk
+ÃĪ1isk
ÃĪ1j
ÃĪ1k
-ÃĪka2la
-ÃĪk3l
-ÃĪ2kle
-ÃĪk4li
+ÃĪ2k3l
ÃĪ2k3r
ÃĪ1la
ÃĪlbe2
-ÃĪl4bl
-ÃĪlk3
-ÃĪlks2
+ÃĪl2bl
+ÃĪ5le
ÃĪl2l1a
ÃĪl2p3
ÃĪl4schl
-ÃĪlt2e
-ÃĪlte1i
ÃĪ1lu
-2ÃĪm4a3
-ÃĪmer2s
ÃĪmi3en
2ÃĪml
ÃĪm2ma4
ÃĪmmas2
ÃĪmoni3e
2ÃĪmp
-ÃĪmp7f4e
ÃĪm2s
ÃĪmt2e
-ÃĪmter3
2ÃĪn.
+ÃĪn5de
ÃĪn2dr
-2ÃĪn2e
+2ÃĪne
ÃĪne2n1
-2ÃĪn2f3
+ÃĪn2f5
ÃĪnft2
-4ÃĪn3g2e
-ÃĪnge4ra
-2ÃĪn2gl
-ÃĪng3le
+2ÃĪnge
+2ÃĪn2g3l
ÃĪn2gr
-ÃĪngs2
ÃĪng3se
2ÃĪ3ni
-ÃĪn3k2e
+ÃĪnk2e
ÃĪn2k3l
ÃĪn2kr
-2ÃĪnn
-ÃĪn3n4e2
+ÃĪnn4e2
+ÃĪno3
2ÃĪns
-ÃĪn4s1a
ÃĪn2s1c
ÃĪns2e
+ÃĪnse3h
2ÃĪnz
ÃĪ1on
-ÃĪo3s2
ÃĪ1pa
-1ÃĪpfel
ÃĪp2pl
ÃĪp2pr
ÃĪp2s1c
1ÃĪq
-ÃĪ2r3a4
+ÃĪ2r3a2
ÃĪr4af
ÃĪr1ÃĪ
ÃĪr2b3le
ÃĪr1c
-2ÃĪrd
-ÃĪrde4s
-2ÃĪre
+4ÃĪre
ÃĪ2r1ei
-ÃĪ2r1e2l
-ÃĪre2m
-ÃĪr1emi
ÃĪre2n
-ÃĪ2rene
-ÃĪ2rerh
-ÃĪr2es
-ÃĪr3ge
-ÃĪ2r1ind
+ÃĪ2r1ene
+ÃĪr2gr
ÃĪr1int
-ÃĪr3ke
-ÃĪrm3arm
-ÃĪrm3at
-ÃĪrme1e
-ÃĪrm3ent
-ÃĪrno2
-ÃĪr1ob
-ÃĪr1of
-ÃĪr1op
+ÃĪr2k3l
+ÃĪr4ment
+ÃĪrme3s
+ÃĪr1o
ÃĪ1rÃķ
-ÃĪr3re
ÃĪrse2
ÃĪr2seb
-ÃĪr4seh
-ÃĪrs1er
ÃĪr2si
-ÃĪr3spu
-2ÃĪrt
ÃĪrt4e
ÃĪr2th
ÃĪrt4s1
ÃĪ2rÞ
-1ÃĪrz
-ÃĪrz3te
-ÃĪr2zu
ÃĪr2zw
ÃĪ1s
ÃĪs4c
-2ÃĪ3s2e
-ÃĪse3g
-ÃĪse1i4
-ÃĪse5ref
+ÃĪ3s4e
+ÃĪse3g2
ÃĪser4ei
ÃĪse4ren
ÃĪser2i
+ÃĪse3t
ÃĪ5si
+ÃĪskop2
+ÃĪskopf3
ÃĪ3s2kr
ÃĪ2s1p
ÃĪ3s2s
-2ÃĪs4s1c
+ÃĪs4s1c
ÃĪss2e
-ÃĪss5erkr
-ÃĪs3sern
-ÃĪss5ersa
-ÃĪss3erw
+ÃĪss3erk
ÃĪ5sses
-ÃĪs4sh
ÃĪs4s1t
-ÃĪs4t4e
-1ÃĪsth
+ÃĪst2
+ÃĪs2te
ÃĪ2str
ÃĪ1ß
-2ÃĪßc
ÃĪß1erk
-ÃĪß1ers
-ÃĪ2t3a2
-2ÃĪ3te
-ÃĪte3a
-ÃĪte1e
+ÃĪ2t1a2
+ÃĪ3te
ÃĪte1i
-ÃĪte3l2
+ÃĪtein2
ÃĪte2n
-ÃĪteo2
-ÃĪter4bl
-ÃĪte3se
-ÃĪt2et
-ÃĪ2th
+ÃĪ2t2h
ÃĪ1ti
-ÃĪt1id
ÃĪ1to
ÃĪt1ob
ÃĪt3r
-ÃĪt4sa
-ÃĪts3au
+ÃĪt2sa
ÃĪt2sÃĪ
ÃĪt4schl
ÃĪt4schr
-ÃĪt2s1i2
+ÃĪt2s1i
ÃĪts3l
-ÃĪts1or
ÃĪts1p
-ÃĪt4s1t
-ÃĪts3te
+ÃĪt2s1t
+ÃĪt4s3te
+ÃĪt4sti
ÃĪt2tei
-ÃĪtte4n
ÃĪt2tr
ÃĪ1tu
-ÃĪtze3l
ÃĪt2zw
ÃĪu2b3l
ÃĪu2br
ÃĪu1c
-ÃĪu3d
ÃĪude3
-ÃĪuder2
-2ÃĪ2uf
+ÃĪu3el
+ÃĪ2uf
+ÃĪuf2e
1ÃĪug
ÃĪu4g3l
2ÃĪul
2ÃĪum
ÃĪu2ma
-ÃĪum3p
-ÃĪumpf4
ÃĪum2s1
2ÃĪ2un
ÃĪun2e
-ÃĪu3nu
-2ÃĪu3r2
-ÃĪure1
+ÃĪu1nu
+2ÃĪu3r
ÃĪu1s
2ÃĪ3us.
-2ÃĪusc
-ÃĪu4schi
+ÃĪu4schÃĪ
ÃĪu4schm
-ÃĪu6schÞ
-ÃĪu3s2e
-ÃĪuse1i
+ÃĪu3se
ÃĪ3usg
ÃĪ3usk
ÃĪ3usn
@@ -2636,843 +1688,534 @@ az2zw
ÃĪu3s2s
ÃĪuss1c
1ÃĪuß
-ÃĪut2e
ÃĪu2tr
-ÃĪ1v
-ÃĪ2vi
+4ÃĪ1v
1ÃĪx
ÃĪ1z
-ÃĪ3ze
ÃĒ1t
ÃĄ1n
-5ba.
-b2aa
-b3a2ba
-2babf
-2babg
ba2bl
-ba2br
-2b1abs
-bach7t4e
-back3er
-back3s2
-ba3d2e
-bade1i
-2b1adel
-2b1adl
-2b1adm
+2babs
+bach5t4e
+backs2
b1a2dr
-ba2du
2b1af
-3bah
-bah6nene
-bai3d
+bah2nu
+bahr2e
bais2
-b2ak
ba2ka
ba2k1er
ba2k1i
-ba2k5l
-ba2k3r
-ba2lab
-ba2l1ak
-ba3lal
-ba2lau
-baler2
-ba4l3erk
-balk4a
-balke4
+bak1l
+bak1r
+ba2kra
+3bal
+bal2a
bal4lan
balle4b
-bal4l3ei
bal6lerg
-ball6erk
bal4li4g
-bal4lo4k
-ballÃķ3s
+bal4lok
+bal3lÃķ3
2b1am
-b2a3ma
ba2me
-4bamt
ban2a
3b2and
-band1a
-ban4dal
-ban4dan
-ban4dar
-ban6deng
ban2dr
ba3n2e
-2banf
b1ang
ban3gl
-ban4k1a
-banker4
-ban2kl
-ban2kn
+ban2k1a
+ban4kl
ban2kr
-ban2ku
2banl
-b1anna
-ban2o
2b1ans
-b1ant
-2banw
+ban3t
b1anz
-ba2r3ab
-ba2rad
-bar3ast
-ba2rat
+bar3b
bar3de
ba2rei
-ba3r2en
-barer5ei
-barer4t
-barf4
-3bars
-b1arz
+bar2en
+ba4r3ins
+bar3n
bar3zw
-3b2as
+3bas
ba3s2a
ba2sc
-bas2i
-bas4sa
-bas6st
-bas4t
ba2str
-ba2ß1
ba4t3ent
-bat2o
-3bau.
-bau3b
bauer4l
bauer4s
-bauer4w
-bau3fa
-bau1fl
-bau1fr
-bau3g2
-b2auk
-bau3r
+bau3g
bau3s2k
-bau3sta
-b1a2x
+bau3sp
ba1yo
3b2ÃĪc
bÃĪ1ch
-3b2ÃĪd
-2b1ÃĪh
-b2ÃĪl
-2bÃĪrz
+b2ÃĪr
b2ÃĪ4s3
-2bÃĪug
4b1b
-bbe4n
bbe4p
b4be2se
-bb3le.
+bb3ler
bb2lÃķ
-b3brec
b3bru
bbru2c
bb2s
bbu1
-4b1c
-2b5d4
-bdÃĪ4
-bdÃĪn3
-bdome4
+2b1c
+bch2
+2b3d4
1be.
3bea
-be3ab
be3an
-beat2m
-be3au
-be4au.
+be3ar
3beb
-b1ebb
+b2ebe
1bec
be1ch
-2becht
-2b1e2del
+be2del
bedi4
-be1e2h
-bee2l
-be3ela
-bee4rei
-be1erh
+be1eh
be1erl
-be1ert
be1eta
-bef4
-2b1eff
-be3g4
-be2he.
-beh5ri
-bei3b
+3bef4
+be3g2
2b1eier
bei1f4
bei4ge.
-beige4l
-beige4p
-bei3k4
-bei3l2a
+beik4
+beil2
+bei3la
2b1eime
+be1imm
+b2ein
be1ind
-be1inh
-bein6hal
-bein4hi
+be1in2h
bei3s2
-bei5st
-beit4e
beit2s
-beit4sk
-beit4sp
3bek
3bel
-be3lag
be3las
bel3d
be3lec
-4be2lek
+be3lei
be2l1en
-bel3ere
be2let
-bel3f
+be3li
bel3la
-belle4n3
+bel3lÃĪ
bel3li
-bel3om
-be2lor
-be2lÃķf
+be2l3Ãķ
bel3sz
-belt2
-bel4un
-1bem4
-3b2em.
-3b2e3ma
-2b1emp
-2bemul
-1ben
-3ben.
-be5nabe
+bel3t4
+1bem
+bema5sse
+bemas8sen
+1ben.
ben3ar
be4nas
-be4nat
-be2nÃĪ4
-bend3s2
-b2ene
+be4nÃĪ
+ben3dor
be3nei
-be4n3end
-be4ners
-ben2eu
3beng
-be2nid
-be4nis
+be3n2i
ben3n
-5benp
-b2ens
-ben4s3pa
+ben2se
+ben4spa
ben4spr
benst4
+ben2su
3bensv
-3bensz
-2b1entb
-2bentd
-4benteu
-2bentf
-ben3th
-ben6thei
+2bentb
+b2enti
bent4r
-2b1ents
-2b3entw
-be2nu
+b1ents
+2bentw
ben3un
-b2en3z2
+ben3z2
be1o
-2b1epi
-2bepoc
be1ra
-be2rak
-be2r3am
+be2rab
be2ran
-bera4s
+beras4s
berb2
-berbla4
-ber3d
-be2r1e2b
-be4reck
+berd4
+ber4ei.
be4r3eiw
-bere2m
-be4rene
-ber4erg
-ber4erw
-bere4sc
-bere2t
-berf4
-ber4g3af
-ber4gal
-ber4gli
+be4rerk
+bere4s
+ber6gan.
ber4hab
-beri2d
ber4in.
-be5r6inne
-berin4s
-be2ri4o
ber3iss
-ber3ko
-ber3kr
bermas4
berma7sse
-ber3n2a
-bern2e
+ber3na
b1ernt
-be2rÃķ4
-3bers.
-ber5se
+be1rop
+berÃķ4
ber3st4a
-ber3t2a
-bert2e
-bert2i
-berz2
-ber3ze
+be3rum
ber2zÃķ
-3b2es
-be3sa
-bes4abb
-bes2am
-be4sap
-be4sar
-bes2au
-be2sep
+3bes
+bes2a
be2s1er
-be2s1id
+be5slo
bes2po
-bes3sa
bess4e
b3esst.
bes3sz
beste2
be6stein
-bester4
-be6sterh
be4s3tol
-be4st3o4r
+be4stor
best4r
-be4strÃĪ
-be4s3tur
-be2sur
be3s2ze
3bet
-be3tam
+be2tap
be3tha
-be3thi
bet2to
-be1un
be1ur
-3bev
-3b2ew2
-2b3e2x
-3b2ez
-2b5f4
+3b2ew
+2b1ex
+1bez
+4b5f4
bfal2
bflÃķ4
bflÃķs3
2b1g2
-b5ga
bgas1
bga4st
-bga4su
bge3
-bgel2e
-bge5n
bges2
2b1h2
-b5hÃĪ
+bhut2
1bi
-bi1ak
-bi2ar
-3bib2
+bi3ak
+bib2
bibe2
-biber1
-bi2c
-bi3do
-bieres4
bie4str
-biet4s
3bietu
-biga1
bik2a
bi2ke.
bi2kes
-bi2kre
3bil
-bil4deb
-bi2lei
-4billu
+bil2a
+bi2lau
+4b1illu
bi2lu
-2bimp
2b1inb
bin2e
-bine4n
-b1inf
-bin4fo
-bin2g3a
+2b1inf
+bin3gl
2b1inh
-bi2n3ok
-bin4ol
2b1int
-2b1inv
-bi2o3
-bioi2
+bi2o1
+bio3d
+bi3on
biri1
-3bis
-bis2a
-bi3si
+bi3se
b1iso
+bi2sol
bi2sp
bis4s1c
-bi3sta
-bi2s1to
-bi3str
+bis3si
bi2stu
bi2stÞ
b2it.
b2ita
b2ite
-b2iti
-bit4r
-bit2ta2
+bit4ta4
bi2tu
bi3tum
-bi3z2
-2b1j
+b2i3tus
+biz2
+4b1j
bjek4to
-2b5k4
-bl4
+2b1k4
+bl2
2bl.
bla3b4
-2b3lac
b3lad
+b5lag
b2lanc
-blas3er
+3blat
b2latt
-b2lau.
-b3laus
2b3law
-2b1lÃĪn
b2lÃĪse
-3blÃĪt
b2le
-3ble2a
+3blea
b3leb
3blec
-b3leg
-4bleh
-b4lei.
+2b3leg
+2bleh
2b3leid
-2bleih
-b3lein
-blei3s
-2bleit
-ble3l
-ble2n
-b3lenk
+4b3lein
+blei7s
+3blem
+3ble4n
b3lese
-2blesu
ble3sz
-3blet
+b4let
b3leu
2blich
3blick
b2lie
-2blief
-4blig
-b2lind
-2b5ling4
-b2lis
-2blis.
+2blig
+b4lis
b2lit
-b3lite
+3blitz
b2lo
-b4lo.
-3b4loc
-b4loi
+b4loc
b3los2
blo3sse
-3b4lum
+blÃķs4s
2blun
-b2lus
3blut
-blut1o
3blÞ
2b1m
bmas2
-4b5n2
-bnas4
+4b3n2
bni2
bnis1
bo4a
bo5as
-b1o2b
-bo3ben
-bob3r
+b1ob3
+bo2bl
+bo2br
bo1ch2
bo3d2
boe1
-bo2e3i
+bo2ei
2b1of
bo3fe
-bo3he
-boh2ra
-boh3rer
-boh2u
bo1is
-bo2lan
-bo2lau
-bol3le
+bo2l1an
3bon.
-bo3n2a
-bon2da
-bon2d1e
+bond1
+bon2de
bo2ne
3bons
-boo4l
-boo2ti
b1op
-3bor.
-bo1ra
-bor2an
-bo2r3as
+bo1r2a
bo4rÃĪ
-bor2da
bor2d3r
bo2rei
bo4rig
-bor3m
b1ort
-bor4ter
-bor6t5rat
-bo4ruh
+bor2t3r
bo2sc
bo3se
bo4s3p
-3bot
bote3n4e
bo3th
-bot2so
bot2st
-bot3t
-bo2xo
-b1oz
bÃķ2b3
2bÃķf
-2b1Ãķl
-2b1p4
+b1Ãķl
+2b1p2
bpa2g
2b1q
b2r4
2br.
b4ra.
2b3rad
-2b4rah
+b4rah
b4ra3k
+bra4sp
bra4ss
brast4
-2b3rat.
-brat3er4
-bra6terg
-2b3ratg
3brÃĪ
-4brÃĪd
brÃĪ4u
2bre.
+3brea
6b5rechte
-2b3red
2b3ref
2breg
b3reif
-2brek
-b4rem
-b4ren.
-2b3rent
-2breo
+b3rek
+3brem
2b3rep
b4rer
-b4res.
-b3rest
-b4ret
-bret6t5en
-b4rez
-bri2da
-brie4fa
2b3riem
-b4rien
bri2er
-b3ries
-2brigk
-b4rina
-2b3rind
b4rio
-b4risc
-2briß
-b3ritt
-brob2
-2b3roh
+bro1
+b3roh
2b3rol
-bro2ma
b4ron
-2b3rost
-bro2tr
-brot3t4
-2b3rou
-3b4rÃķ
b4ruc
-2bruf
-b4rum
-2b3rund
bru4s
-brust3
+brust1
bru2th
3brÞ
-4b3rÞb
brÞ4ss
-2b1s
+4b1s
b2sad
-bs1amb
-b4samt
+bs3ar
bsas2
bsa3sse
-bsau2r
-b4s3ÃĪr
-b3sÃĪu
+bsat2z
+b3sÃĪ
+b4sÃĪr
b5sc
-bsch2a
+bs2ca
b6schan
b6schef
-b6sco
+bs4cu
b3se.
bs1e2b
b3sel.
+bs1ele
bse2n1
b3sen.
-b2s1ent
+bs1ent
bs1er
+b2serf
bs3e4r3in
+b2sers
b3ses
-b2sim
+b3set
bsi2t
-b4s3ki
-bs3kr
+b4sl
b2s1of
-b3s2oh
-b3sol
-b4sop
+bs1op
bso2r
b2sÃķ
b3s2pi
bs2pl
-bs2pu
-bss2
+b3s2pu
+b4ss2
+bs2t
bst1a2b
-bs2t1ak
-bst3ank
-bs2t1a4s
-bs2tau
-b3stÃĪ
-bs1tÃĪt
-bst3emi
+bst3ac
+bs3tag
+bst1ak
+bs3tÃĪt
bst1er
b4stern
-bs2t1h
-bst3ink
-b2stip
+b2s3tip
b3sto
b4stob
b4stod
-b4stor
b3stÃķ
-bs2tr
b3stra
b2s3trÃĪ
-b4s3treu
-bst3ro
-bs2tu
+bs3treu
+b2st3ro
b3stÞ
b4stÞb
b2s1un
-b3sz
-bs2zep
-bs2zi
4b1t
b3ta
bta4st3r
b5te
-b2t1h
-bt2i
-bti2s
+b2th
bt4r
-btran2
bts2
btÞ1
-bu4chec
-bucher4
-bu6ch5ers
bu3ches
bu2chi
-buch3s4p
bu2e3
bu2f
bug3
-bu2gr
-bull3a
-2bumf
2b3umk
-2buml
-2b3umr
-bun4a
-bun4d3er
bunde4s
-b1une
-b3un3gn
-2b1unh
-bur1c
-b2ure
+b3ungn
b2urg
-burg1a
-bur4gan
-bur4gar
-bur4gin
-bur2gr
-bu3r2i
-2burn
-b3ursa
+bu3r4i
+4burn
burt4s
bu2sa
-bu2sc
-bus3cha
-bu3sche
-bu6schei
-bu6sch5el
-busch3w
-bu3shi
+bu4s3cha
+bu4schl
+bu4sch3m
+bu4schw
+bus1er
bu2si
bu2s1p
-bu4sses
-bussy2
-buster4
+bu4s3ses
bu6s5term
bu2s1tr
-bu2su
-but2a
-buto3re
-2bÞb
+bu2s1u
+bu3tan
bÞ1c
bÞgel3e
bÞ3s4
2b1v
-4b5w
-3b2y1
-bya4
-byo2
-by3p2
+2b1w
+bwel3
+by1
+by3p
bys2
-2b1z4
-b5ze
+2b1z2
bzeit1
bzu1
-1c2a
-cab4
-ca3bl
-3ca2c
+1ca
+2c1ab
+ca2ch
ca2e3
-ca3g2
+ca3g4
ca1h
-cal2a
-cala3b
-cal2f3
-cal3t2
-2can
-cana3
+cal3t
+c4an
ca2pe
-car3n2
+3car
+car3n
carri1
-car3tr
ca3s2a3
-ca3t2h
+cas2t
+ca3t4h
ca1y2
cÃĪ3
cÃĪs2
-c1b
2cc
c1ce
c1ch2
c2d2
c3do
2cec
+ceco4
1ced
ce2dr
-ce1e
2cef
ce1i
-ce3in
2cek
-3cels
-cen3a
-ce3nu
-cen3un
-ceo2
+1cen
+ce1nu
1cer
-cer3a
-cere1
-cere3u
-ce3r2i
-ce4ris
+cere3
ce1ro
-ce3s4h
-cet1am
+ce3s2h
+1cet
+2ceta
ce1u
1cÃĐ
c1f
-c1g4
-c2h
+c4h
4ch.
2chab
-ch3a2b3i
-2chac
-2ch1a2g
-ch1ah
+ch3a2bi
2ch1ak
-chan4a
+ch2anb
3chanc
-chan3f
ch1ang
-4chanl
+ch3anst
2chanz
1chao
2char.
1chara
-3chard
3charta
cha2sc
-chasi1
1chato
-2chatt
-2chatu
-ch5austr
-chau3t
-ch1ÃĪh
ch1ÃĪrm
ch1ÃĪs
1chÃĒ
2chb
6chc
2chd
-che3b4
ch3e4ben
-ch3echt
-ch1edi
-che2el
1chef
3chef.
che4fer
@@ -3481,4516 +2224,2839 @@ che4fer
ch1eim
4chelem
che4ler
-1chemi
-3chemik
-2chemp
-che4neb
-che4nid
-che2no
4chents
4chentw
-che2r3a
-4ch3erbs
+cher3a
+che3rei
6chergeb
-4cherke
cher6zie
-ch3es2s
-4ch1e2ta
+ch3ess
+2cheta
2ch3e4x
1chÃĐ
2chf
2chg
2chh
-1chia
+1ch1ia
chi3na
4chind
3chines
2chinf
2chinh
-2ch1ins
-2ch1int
+ch1ins
+ch1int
2ch1inv
-1chip.
1chiru
-2chiso
2chj
2chk
-2chl4
+2chl2
ch2le
-chle2i
-ch3lein
-4chli
ch2lu
-4ch2m4
+4ch2m
2chn4
chner8ei.
ch2neu
2chob
cho2f
ch1off
-chof2s
ch1oh
-cho3l2a
+chol2a
ch1orc
-cho4rei
-ch1ori
-ch2os
-ch3Ãķl
-2chÃķn
-3chÃķr
2chp
ch2r4
-2chra
-ch3rad
-chra3g
2chre
chre3s
ch3rh
-2chrit
-3chromo
-3chron
-ch5ros
+1chron
4chs
ch4stal
+chst3ri
2cht
-ch2tru
2chuf
2chuh
2ch1unf
-2chunm
2chunt
-2chur
-ch1urs
-2chut
2chÞ
2chv
2chw
-1chy
+5chy
2chz
ci1c
ci1es
-c1ind
-cins2
-c1int
-ci2s1
-1ci3t2
+cil3l
+ci2s
c1j
-4c2k
-c4k1a
-cka2b
-ck2ad
-ck2ag
-cka2m
+4c4k
+ck1a
+ck3an
cka4r1
ck1ÃĪ
-ck1ef
-ck1eh
+ck1ehe
ck1ei
-cke4na
cke2ra
ck2ere
-ck3er4hÃķ
-ckerk4
-cker6lau
+ck1erh
ck2ern
-cke2ro
-ck1err
-ck2et
-cket2t
-ck1i2d
+ck1er2r
+ck1ese
+ck1id
+ck1im
ck1in
-ck4is
ck3l
-ck5n
-ck3o4
-ck3Ãķ2
+ck3n
+ck1o2
ck3r
-cks2al
-ck4spen
-ck3te
-ck3t2i
-ck1uh
-ck1um
+ck4stro
+ckt2e
+ckt2i
+ck1um3
ck1up
-c2l2
+c4l2
cle4a
clet2
-clin2g
-cli2p1
-clip3a
-clo1c
-clo3f
+clo1
1clu
-clu4b
c2m2
-c3me
-c3mu
1co
co1ch
-3co2d2
-co4de.
+co2d2
co3di
-cof3f2
-coi4
+coff4
+coi2
co1it
co2ke
-co3la1
-co2leu
-co3l2o
+co2le
+col2o
com4te.
comtes4
con2ne
-co2o
-coo1p
-co1p
+co2pe
co1ra
-cor2da
-co4re
+cor3d
+co3re
cor3t
cos4
co2te
-cou3si
2cp
c1q
-1c2r2
-cra4s
-c3rÃĪ
-c4re2
-2cree
-cre4me
-2cri
-cros4
-2cry
+1c4r2
+cre2
+cre4mes
+cry2
2c1s2
-cs4f
-c4si
-cst2
+c2si
4c1t
+cte3e
cti2
-cti4o2
-ction5
+cti4o
ctur6
-1c4u
-2cua
-cu2e
+3cu
cu2p3
-cup1e
cussi4
-c1w
-2cx
-3cy
+1cy
c1z
3da.
da1a
2d1ab
-d3a2bak
d2abÃĪ
-d2abe
-d3a2ben
-d3a2bi
-da3blu
-d3a2bo
-dab4ra
-da2bri
-da3brie
-d2ab4rÞ
-d1ac
+da2ben
+3d2abl
+da2bre
+dab4rÞ
+2d1ac
+d2ac.
dach3a
da2cho
4d3achse
-2d1ad
-da2de
-da2do
-da2d4r
d1af
-2daff
-da1f4l
-dafo4n
d1ag
-dagi4o
-dag2o
-da1h
+dagi2o
dah3l
-dail5
+da1ho
+3dai2
da1in
-2d1air
da1is
-da2kro
dal2a
-2d1a2lar
+2d1alar
dal3b2
-4d1all
-da2lop
da3lÃķ
-2d1alp
-d1al3t2
-2dalte
-da1lÞ
-3dam
-da2mei
+d1alt
d1amma
-4d1ammÃĪ
+2d1ammÃĪ
damo3
d2amp
-damp7f8erf
-4d1amt
-3d2an.
-d1ana
-da2nan
-da4n4at
-2danb
+dampf8erf
+2d1amt
+d2an.
+2d1ana
dan4ce.
-d1and2
-2danda
-d2andy
-3dane
-4d3anei
-2danf
+2d1an3d2
+d3anei
d1ang
-2danh
-dan2kl
+2dange
+3dank
+dan4kl
+dan5kla
dan2k1o
dan2kr
-2danl
-d1ann
-2danna
-d1a2no
2d1ans
-2dantw
+4dantw
2danw
-d1anz
d2anz.
-2danzi
-2danzÞ
+4danzi
2d1ap
-d2apa
d2aph
-da2po
-da3pos
4dapp
-d3apte
-2daq
-da4r1a
-dara4s
+da2r3a
2darb2
-2d3arc
-dar2d1e
-dare2
-daren1
-dar3g
-dark2a
-3darl
-dar2m1a
+dark4
+3d2arl
+dar2ma
dar2m1i
-dar4mu
-da2r3o
-3dars4
-2d1art
-dar2th
-dar2tr
+da2ro
+d3arr
+3d2ars
+d1art
+2dart.
da2ru
+d2arw
d1arz
-das2
-da3sh
-d1asp
-das3s
+dasch4
+da3s2h
+3dat
+dat2a
dat2e2
da3tei
-4d3a2tel
date4n
-da2th
-2d3atl
-4datm
-d3ato
-dat2st
-2d3atta
-3daub
-2daud
-dau3e2
-dauer3e
-daue6rei
-2d3au2f
-2d3aug
-2dauk
-da3unt
-2d1aus
-dau4ss
-dau2ß
-3daw
-d1ax
-3dÃĪc
-2d1ÃĪg
+4d3atl
+4d1atm
+3dau3e
+4d1au2f
+d3aug
+4d1aus
+2d1ax
2d1ÃĪh
2d1ÃĪmt
-dÃĪn3a
2d1ÃĪnd
+2d1ÃĪng
2d1ÃĪp
-2dÃĪq
-2dÃĪrz
+2d1ÃĪrz
2d1ÃĪ2u
dÃĪ3us
-2dÃĪx
-4d1b4
-dbau2c
-dbauch3
-dbe2e
+2d1b4
dbu2c
dbu3s
2dc
-d3ch
-4d1d2
-d3da
+d1ch
+dco4r
+2d1d2
+ddar2m
d3dÃĪ
-d3de
d3dh
d5do
1de
-dea2d
-de3ar
+de2ad
de3a2t
-deb4
-3debÞ
+3deb4
+4d1e2ben
+3dec
de1ch
-deco3
-de2del
-de2dit
-2de3e4
-def4a
-de2fa.
+de3e4
2d1eff
-def4l
deg2
-degene7
de3gl
-deh2a
dehe2
-3dehn
de3ho
2d1ehr
d1ei
3d2eic
-de3i4den
-de3il
-3d2eim
-4deime
+3d2e1im
dein2d
+dein2s
de3inse
-de3inst
-dein6sta
-dein6sti
-4d3einw
-de3io
-2deise
-d4e1ism
-dei2sp
-2dekz
-de2l1ac
-del4ade
-de3lak
+de2l1a4g
de4l3aug
-del3ÃĪnd
-del3b2
-del3d
+del1ÃĪn
del1ec
-3de3leg
delei4g
-2delek
+2d1elek
2delem
-de2len
-deler2
-deler4r
-2delf.
+deler4
2delfm
-3delik
-della3d
del4lan
-del4lar
-dell3au
-del2l1ÃĪ
dell3eb
del4lei
del4ler
del2lÃķ2
de2l1ob
de2lop
-del2se
+de3lor
+de2lÃķ
+del2s5e
del2so
del2s1p
-del3t
+del3t4
dem2ar
-2d1emb
dement4
de6mentg
-dem5ents
-de3min
-2d1emot
2d1emp
-d2emu
-d4en.
-den2am
-de2n1e2d
+d2en.
de4n3end
-de2nep
4denerg
-de3n2es
4d3en4ge.
+d2enh
de2ni
-denk3li
-deno2s
-deno4st
-dens4am
-den6s5cho
-dense2
+den4k3li
+den2kn
4den4sem
-den6sere
+den4s3en
den6s5tau
-2dentd
-den3te
-2dentf
-2dentg
den3th
-2dentn
2dentw
-2dentz
-den6zers
-de2ob
+de1nu
2deol
-dep4l
-2depoc
+de1on
+depi4so
d4er.
-der3af
-de2rak
-dera2n
-de3rand
-de2r3ap
-de1r2as
-de4r3asi
+de1rad
+de2rap
der2bl
-4d1erbs
2derdb
-de2r1e2b
+de2re2b
de4reck
-de3reie
de4r3ei4s
-5d4erem
-d4eren
-de4r3end
-5d4erer
-der4erf
-derer3n
-der3ero
+derer3
+de3r4erb
+de3r4erf
+de4r3ero
derer4t
-5d4eres
-de2r3eu
-derf4
-d4erfl
-d3erheb
-d2erhÞ
-de2r3id
+derer6ze
+d4erfi
+d2erh
+4der4hÃķh
+d4erhÞ
+3derie
derin4f
-de6rinnu
-derin8teg
-der3k2
4derklÃĪ
-d4erlan
-d2erm
+der3m2
+4derneu
de1ro
+de2rop
derÃķ4
der3r
-derst2
-der3sta
-dert7ende.
-derter6e
+4der4sat
+der4spa
+der6t5en6d
dert4ra
-6dertrag
-der8trage
-3de3ru
+6der6trag
+de3ru
de4ruh
de4rum
-2d1erz.
-2d1erzv
d2es.
-de2sa
-de4s1ag
-des1ah
-de4s1am
+de2s1a
+de4sa4g
+de4sam
des3an
-de2s1ÃĪn
-de2seb
-de4s1e2h
-de2sei
-de4s3eil
-2d1esel
-des3elt
-de3sem
-de3s4end
-desen3e
-de3sens
-des3erm
-de2s1et
-de2s1in
+des1ÃĪn
+de4seh
+des1en1
+des1et
+des1in
3desk
des1o
de2sor
de2s1p
de3spe
-dess2
-des3se
-des5st
-de6st5alt
+des5s2
+dest5alt
+de4stam
de6stant
-de8steige
-de8steins
-des4tex
+de4stei
de4stit
-de6st5rat
-de4stre
-de2su
-des1un
-3desw
-de3ta
+dest5rat
+de3stri
+de3stro
+de2s1u
deten4t
-2d1e2th
2d1etw
-2d1eul
-deum3
de1un
de1url
de3us
-2d1e2vid
-devil2
-de1x2a
-de2xer
+devil4
+d1exi
de2xis
-2dexpe
-2dexpo
-2d1f6
+2dexp
+2d1f4
2d1g2
-dga4s3tr
d2ge.
-dger2
-dge3s
-d2gesh
-dge2t3a
+dge2ta
dge4t1e
2d1h2
-4dho
-d3hu
+d2his
1di
-di4ap
-di2a3s
-diat4
+di4ab
+di2ad
+di4am
di4ath
3dic
di1ce
-di3chl
-dicht6er
-dick3el
-4d3i2co
-3dida
-d1ide
-2didee
-di2den
-2didy
+dich1
+dich5ter
di2e
-di3e4d
-di3enb
+di3e2d
di3end
die4neb
-diener6l
-di3e2ni
-dienst5r
-die2p
-di3ers.
-dies3c
-di3e4th
-3dif
-3dig
-dig4n
+di3eni
+di3ens.
+di3ern
+die4s3c
+diet3
+die2th
+dige4s
dik2a
-dil2s1
+dil2s3
2d1imb
-2dimp
-din4a
+2d1imp
+din2a
2d1ind
-di3n2e
2d1inf
-3ding
2d1inh
-di3ni
-2d1inj
-2d1ink
+2d1in1it
+4d3inner
2d1ins
-2d3int
-2d1inv
-di2o3b
-dion3in
-dion5s2
-di3ora
-dios2
-di2osk
-di1p2
-di3pt
-d1i2ra
+2d1int
+di2ob
+dion5s
+di1p
di4re.
di2ren
-di2rin
di2ris
2d1irl
-2d1irr
di4s1a2
-2d1iso
di2sp
di3s4per
2d1isr
dist2
di2s1to
di4s3tra
-di4sz
di2ta
-dite1c
+di4teng
di4t3erl
di4t3erm
di4t3ers
-di2tin
-di2tob
di2t3r
-dit3s
-di2t1u
-di5v2
+dit1s
+di2tu
+di5v
diz2
2d1j
-d2jar
2d1k4
4d1l2
-dla3g
-dlap4
d3le
dle2ra
-dli4f
+dli2f
dl3m
dl3s
2d3m2
-4d3n2
+4d5n2
dni2
dnis1
dni3v
-do5at
-2d1ob
-3d2oba
+d1ob
+d2oba
+2dobe
+dob4l
+d2obr
do1chi
-d1of
-do2fe
-2d1oh
-do3ha
-doll2
-dol3la
-d3oly
-3dom
-do2mal
+2d1o2f
+doll2a
do2mar
-domen1
-do3mi
-do4ming
-4domn
-do2mu
-do3n2a
-do5nan
+do5na
doni1
-4dony
-2d1ope
+do2o
+2dope
2d1opf
-do1r4a
-2d1orc
+d2opp
+d2o3r4a
+2dorc
2d1ord
dor2f1a
dor2fÃĪ
-dor2f1i
dor2fl
-dor2fo
dor2fr
-dor2f3u
2d1org
-d2orn
+dori1
2dort
+dor2ta
dor4ter
-dor2tr
d2os.
-do3se
-dos2k
-2dosm
+dos3s
dost1
-dost3a
-dosten4
-do3ta
-do2tof
+do4sta
+dot6h
+do2t1o
do3un
-dow2s
-d2o3x2
d1Ãķ
dÃķ2d
-dÃķ2f
-dÃķl3
+dÃķ2l3
dÃķlla3
d2Ãķn
3d2Ãķr
dÃķ2s1c
2d3p2
-dpass3
-dpol4n
-dpo4st1
2d1q
d2r4
3d4ra.
-3d4rab
-4d3rad
+2d3rad
2drahm
-2d3rak
-3d4ral
-d3ramp
+d3rai
+3d4ram
d3rand
-dran3k
-dra4s3s
2d3rast
-dra4tin
-2draub
+d3raub
2d3rauc
-d4rauf
-2draum
2draup
2drÃĪd
d4rÃĪh
2d3rÃĪt
2d3rÃĪu
-4dre.
-2d3rea
+4d5re.
d4rea.
d4reas
3d4reck
-2d3ref
-4dreg
+2dref
+2dreg
3d4reh
-dre2ha
2d3reic
-3d4reie
-drei3s
d4reiv
-d4rej
4drem
4d3ren
-d4reo
-4d3rep
+2d3rep
4d3rer
4dres.
d4resc
-dres6sei
-dres6sel
-d4rew
-2drez
2d3rh
d3ri
3d4ri.
-d4ria
-d4rib
-4d5ric
+3d4ria
+2d5ric
d4rid
-d4rie
-d5rieg
-3drif
-4driff
-d4rift
+d4rif
d4rik
-d4ril
d4rin.
-4d5rind
-2drip
d4risc
-2drisi
-2driss
2driß
-d4rit
-2d5ritu
-d4rix
-2d3rob
-d3rod
-2drogg
-2drohr
-3d4rohu
-2d3roll
+3d4rit
+4dritu
+d3rob
+d3roc
+2d3rod
+d4roi
2d3rose
-d4ross
2d3rost
2d3rot
-2d3rou
+d3rou
2d3rov
-d3row
-drÃķ2sc
+d3rÃķ
+drÃķ2s1
d5rub
3d4ruc
2d3rud
2d3ruh
+2d3rui
+4drund
+drunge3
2d5rut
drÞ1b
-3d4rÞs
2d1s
4ds.
-ds3ab
-d2sad
-ds1al
-d2salk
-d2sall
d4s1amt
d2san
-ds3ane
ds3assi
-dsau2
-d2saut
+d2sau2
ds1ÃĪn
-ds2ÃĪu
4dsb
d4schef
d4schin
-d3s2co
-d2scr
d2s1e2b
-dse2e
d2s1ef
ds1ehr
-ds4eign
-d2sein
-d2s1emb
-dsen3er
+d3sei
+ds2eig
+d4seins
d2s1eng
d2s1ent
d2s1erf
d2serh
d2s1erk
-d2s1erl
ds1err
-d2s1ers
-d2s1ert
-d2serz
+d2s1erz
dse2t
d2s1eta
-d2s1ev
-d2sex
-d3sha2
-ds2hak
-d4shal
+d3s2ha
d3sho
-d4shor
d2sid
d2s1im
d3s2inf
-d3s2kal
-d3s2kel
+d3s2kan
+d3skul
4dsl
-d4sli
-d3soh
-d2sop
+d2s1op
dso2r
ds1ori
d2sÃķ
-ds1pa4s3
-d2s1pat
+d2s1par
+ds1pa4s
d2spÃĪ
-d2s1pec
-ds2pen
-d4speri
-d2s3ph
-d3s2pi
-ds2por
-d6sporto
+ds2pe
+ds2po
d3spri
d2spro
ds2pu
dss2
-dst2
+ds3si
+dst4
d4stabe
-d2stas
ds3tauf
d4s3tÃĪti
d4stea
-d4stele
ds2til
+ds2tip
d2s1tis
-d4stoch
d2stod
dstras4
-d4stren
-d3s2tro
-dsu2m
+ds1ums
d2sun
ds2zen
2d1t
-dta2be
-d3t2ac
-dtach3
dta2d
-d3t2ag
-dta2n
-dt3ane
-d3t2as
-dt2ax
+dtam3m
d3tea
-dte3mo
-dt2et
d2th
d4thei
-d3to2
-d4tob
-dt2op
-d3tÃķ
+dt3ho
+dto2
dt3r
dtran2
-dt1s
-dt3sa
-dt5st
-dtt4
-dt2un
-d3t2ur
-d3ty
+dt5s2
1du
du1alv
du1ar
-du2b3li
-du1ce
-duel3la
+dub3l
+du2bli
du2f
2d1ufe
-duf4ter
-duf2to
-duf2tr
2d1uh
du1i
-du2in
-du2kr
-dul3art
2d1umb
2dumd
2d1u2m1e
2dumf
2dumg
-4d3umk
+2d3umk
2duml
d2ump
2dumr
-2d1ums
+d1ums
d2ums.
2d1umv
-du2n
-2d3und
+2d1un3d
+dund2a
2d1unf
-2dungl
-2d1uni
+2d1ungl
dun3ke
dun2kl
2dunr
-2dunsi
dun4st3r
2dunt
2dunw
-2d3unz
-du1os
-dup4
-dur2c
-durch3
-2d1urk
+du1o
+5dur2c
2d1url
-2d1urn
-2d1ursa
-2d1urt
+2dursa
du4schn
du4schr
-du4sch3w
-dus2t
-1dÞ
+du4schw
2dÞb
-d3Þber
+3dÞf
+3dÞn
2d1v2
-2d1w
+4d1w
dwa2
-dwa4r
-dwer3te
-dwe2s
-dwe4st1
-1dy
-dy2l1
-dym3
-3dyn
+dwest1
+dy1
dy2s1
-4d3z2
+2d3z2
2e1a
-ea2be
-ea2b3l
-ea4br
+e3a2b
+eab3l
+ea3der
eadli4
-e3a2dr
-ea2g
-ea3ga2
-ea3g4l
+ea2dr
+ea2g4
+ea3ga
+ea4ge
+ea3gl
eakt2
-e2akta
e3akto
ea2la
e3alei
-e4alem
-ea4l3ent
-ealen4z
ealer2
-e3a4lerg
-e3alex
-e3a2lin
+e4aler.
eal5le
eal3lÃķ
eallÃķ3s
-eal1o
-ea2lon
-ea2lop
e2alti2
-eal3tr
-ea2l3u2
-eam3a
e2ame
+eam3m
eam1o
-eams2
-eam3t2
-ea4na
-ean3a2r
-e3anf
+eam3t
+ea2na
e2ano
e3ar.
ea2ra
-ea3rat
-e2are
e4are.
-ea2r1ei
ea4rene
e4arer
e4ares
-ea2ro
-e3arz
-e3a2sc
-e3asf
-easin4
-ea2sp
+ea2sc
eas5s
-eate2
-ea3te.
-ea3ten
+eat4e2
eater1
-eat4mes
-eat2mu
-eat4mun
-eat3s
+e3ath
+eat3s2
e3at3t4
-eatu2
-e3aue
-e3auf
-eau2fe
-eau4fl
-e4aufo
-eau3n
+e3au2f
+e3aug
eaus3s
-e2av
-e2az
+eau3st
e3ÃĪ4
e1b
2eba
-e3bak
-eba2p
-e3bÃĪn
-2ebec
-ebe1er
-ebein7h
-eb2el
-ebe4ler
-ebe2lo
-ebenen3
+e3b2ak
+2ebed
+ebe2i
+2ebel
+eb2en
+e3ben.
+ebens3e
e3ber
-ebe4ras
+ebe4rel
ebert4
-ebese2
-ebe4s3eh
-ebe2so
2ebet
-ebet4s
-2ebh
-2ebi
2ebl
eb2laß
-e3blÃĪ
-eb3le.
eb3ler
eb4leu
e3blie
eb3lo
eb2lÃķ
-2ebo
-e2bob
+2eb2o
ebÃķ2s
2ebr
-e5brau
-eb4rea
+eb3rei
+eb4ru
eb2s
eb6sche
ebse2
-ebs1in
+ebs1i
ebs1o
ebs1p
-ebs7panne
-ebs3tau
+ebs3pa
eb4stÃĪt
ebs3t2h
-ebs1ti
-eb4stot
+eb4s3ti
+eb4s3tot
eb3str
-eb4sz
-2ebu
-e2bunt
+ebs1u
+2e3bu
ebus3s
-ebu2t3
+ebu2t1
2eca
-2e1ce
-ech1am
+e1ce
ech1ÃĪ
2e1che
ech1ei
-ech2en1
e6ch5erzi
-e1chi
ech3l
ech3m
ech3n
e2cho.
-ech3Ãķ2
-ech3r
-ech4ri
-echs4er
-echst5re
-ech3tab
+ech1o2b
+e2ch3r
ech3t4ei
-ech6terh
-echter8ha
e1chu
+ech1uh
ech1w
-2echz
e1ci
-eci2a
-ec4k
-ecke4n1
-eck3ser
+eci6a
+eck3se
eck4sta
2eckt
-3eckty
2e1cl
2eco
-2e3cr
+eco3d
2ect
e1d
-ed2a
+e3d2a
ed2dr
-ed4e
+ed2e
ede2al
-ede3n4er
-eden4sa
-eden4s3e
+ede3n2e
+eden4se
eden4s3p
-edeo2
ede2r
-eder3a
-ede3rat
-ederer4
edert2
-ed2i
-e3di.
+edi4al
2edip
edma3
edmas2
e3d2o
ed2Ãķ
-e3drei
-ed2sal
+eds2ÃĪ
ed4seh
ed2s1es
-ed2si
ed2s1o
ed2s1p
-ed2sto
-ed2s1tr
-ed2s1u
-edun3
-edund2
+ed2s3tr
+ed2su
+edu2s
e3dy3
-edys2
-2ee
-ee3a4
+4ee
+ee3a2
eeb2l
-ee1c
ee2ce
+ee1ch
ee2cho
-e1eck
+eede3
eed3s2
-ee1e2
+ee1e
e1eff
eef4l
-eeg4
+eeg2
e1ei
-ee2i3e
+ee1im
eein4se
-eei4sc
-eei3se
-eeis3s
-e2ela
+eei5se
eel2e
-e3e2lek
-eele4n
-eel2Ãķ
-e2e3m2a
-eemas3s
-e1emb
-ee3min
+e1e2lek
+ee5len
e1emp
e1en
-eena2g
+eena2
+ee4nag
e2enÃĪ
e2enc
-een1e
-e3eng
-ee3ni
-e3enk
-e3enl
e2eno
een3s
-een2z
-ee3o
-e2ep
-ee3po
-eer4at
+e1e2pi
+eera4
+ee2r3as
e1erbt
e1erd
-ee3re2
-eer1ei
+ee3r2e
ee4r3en4g
-eer2e4s1
-eer3eti
-e1ermÃĪ
+eere4s1
ee1ro
ee1rÃķ
-e1erÃķf
eer2Ãķs
-ee3r2un
+eert2
+e1ertr
+ee3r2u
e1erz
+ees2
ee3sh
-ee3sp
-ees2t
-e2et.
-ee3t2a
+ees3k
+ee3ta
ee4tat
-ee2th
-eet2i
-ee3t4r
-ee2tu
-ee1u2
+ee1u
+eeu2f
eewa4r
-eeweis4
e1e2x
e1f
-e2f1ad
-e3fah
+2ef.
+2efa
+e2f1a2d
ef1ana
ef1ar
-e2farc
-ef3arm
e2fat
-2efÃĪ
-ef2ÃĪl
+efÃĪs4
efÃĪ5sse
e2fÃĪu
2efe
+e3fe.
e2f1e2b
-e3fef
-efe4l3ei
+efell4
ef1em
-e2femi
-efe2n1
-3e2f1ene
e2fent
-efer5f
-eferin6d
-efer5r
+ef2er
efeuil4
+2eff.
ef2fÃĪ2
3effek
1effi
ef2fl
-ef3flu
2efi
ef1id
e2f1ins
efi2s
+1efku
2efl
-ef4le
e3f4lu
-e3flÞ
2e3f2o
-2efr
-ef4reih
+e3fra
+ef3rea
ef3rol
ef3rom
-ef4ru
ef4rÞ
efs2
-ef3sc
ef3so
ef3sp
ef2tan
ef2tei
-ef2tro
2efu
e2fum
+2efÞ
e1g
-ega2m
-e3g2anz
-egd4
+eg1d4
e3ge
-egein3
-ege4lan
-ege4l3au
-ege8l7ei8er
ege4ler
-ege2lo
-eg2en
-ege4n1a
-ege6nero
+ege4n3a4
+ege4nec
ege2ra
-ege5stal
ege4s3to
-ege4s3tr
+ege4str
ege1u
-2egi
-e3gio
-2egl
e2glo
e2glu
e2gn
eg3nÃĪ
eg3ni
-ego1p
egro5sse
eg4sal
-egsau3g
+eg4san
eg3se
eg4sei
-egs2e3l
-eg3si
-egs2of
+egs3e4r1
egs2pe
-egst2
eg4sto
+egs3tÞ
eg2th
2e1ha
eh1ach
-eh1ad
-eh2ade
-e3h2ah
eh2al
-ehalt4s
-e3hand
-e2harz
-e3haut
-e1hÃĪ
+e2hap
+eh2aus
+2e1hÃĪ
ehÃĪs3
e1he
+eh4ec
eh1eff
-eh1ein
-eh1elt
-e4hense
-e4h3ente
-ehen4tr
-ehe3o
+eh2el
+ehe5na
+ehen2t3
1e2hep
-2eher
+e3her
ehe1ra
-e2h1er2f
-e2h1er2l
-2e1hi
-eh3im
+e1hi
+eh1int
ehis4
-ehl1a
eh1lam
-eh2l3au
eh1lÃĪ
ehl3ein
eh4lent
eh5l2er
-ehlo2
-ehl1or
-eh2lÃķ
+eh2lin
+eh3lo
ehl2se
2ehm
-eh2mab
-eh4mant
eh3mu
-eh3na
-eh3no
-2e1ho
-eho2f
-eho2l
-eh3oly
-2e3hÃķ
-ehÃķ4rer
-eh2r1a4
+e1ho
+e3hol
+ehr1a2
ehr1ÃĪ
ehr1ec
eh2rei
-eh2rel
+ehr4erf
ehr6erle
-ehr4ern
ehre3s
-eh4rin
-eh1roc
+eh3ri
+eh1ro2
+ehr1ob
ehr1of
-eh1rÃķ
eh2s2
-eh3sa
eh3se
eh3sh
eh3si
eh3so
eh3sp
-ehst2
eh3sta
-eh3sto
-eh3str
-2eh3t2
-eht3h
-eht4r
-2e1hu
-e2hum
-eh1unf
-e2huni
-e3hur
+2eht
+e1hu
+e2hunt
e1hÞ
eh3Þb
eh1w
e1hy
2ei3a2
-eia4t
ei2bar
-ei2bli
-ei4blu
-eibu2t
+ei2bl
+eibu4t
ei4b3ute
-e4ic
-ei1ce
ei2cho
+eich5te
e2id
ei2d1a
ei3de
-ei4deis
-eid5erre
+eid4ein
+ei4d3er4r
2eidn
-ei3do
-ei3dr
+ei3dra
ei1e
-eie2b
-eie2d
-ei3e2l
-eie2m
-4ei3e2n1
+ei3el
+4ei3en
eienge4
-ei3e4s
-eie2t
-4eif.
-ei1flo
+eie4s
+eif2e
1eifr
-eif3t
-2eig.
-2eiga
-eig2ar
-2eigÃĪ
-2eige.
-2eigeb
-2eigeh
+ei3g2a
4eigeno
-5eigensc
-4eig2er
+eig2er
2eiges
2eigew
-2eigi
+ei3gl
1ei2g3n
-ei2go
-ei4g3rat
-2eigre
-2eigrÃķ
2eigru
-2eigrÞ
-2eigs
2eigt
2eigu
-4eih
-ei2hum
-ei2kab
-ei2kak
-eik4am
eik2ar
-eik2i
-eik2l
-ei3k4la
-ei3klÃĪ
-eik2o
-e2il
+ei3kau
+eik4la
+e4il
2eil.
-ei4l3ab
-ei2lam
-eila2n
-ei4l3ane
-ei4lang
-ei4l3anz
ei2lar
+ei2lau
2eilb
-eil3d4
+eil3d
ei4lein
-eile2n1
-ei2let
+eilen1
eil3f4
-eilm2
-ei2lob
-eil2Ãķ
-2eim.
-ei2mab
-ei2m1ag
+ei4l3ins
+2eiln
+1eilzu
+ei2m1a4g
eim3all
-eim3alp
-eima4to
-ei2m1or
-2eimÃķ
-2eimp
-eim2p4l
-eim3sa
-ei2mur
+ei2mor
+e1imp
+eim2pl
e4i2n1a
-ei4na2d
-ei4nae
-ei4n3an
-ei4na4s
-ei4n3at
-ei2n3ÃĪ
-ein3d2e
-ein6derk
-e1indu
-2eineb
-einen4e
-ei4n3en4g
-ei6nen6se
-ein5erbe
-ei4nerf
-ei4nerk
-ein5er6la
-einer6sc
+ein3a2d
+ei4nas
+ei4nÃĪ
+ein3dr
+2eindu
+ei4neng
ei2neu
-ein4fiz
-5einflus
-5einfluß
2einfo
ein4fo.
ein4fos
ein3g2
-3einger
-e2ingr
-e2inhÃĪ
-ei2nie
+ein4hab
e1init
-ein3k4
+eink4
ein6karn
3einkÃĪ
-e2inl
+3einkom
ein3n2
-ei2n1o4
+1einna
+ei2n1o2
1einri
-e6insa
-einsas6s
+e4insa
+einsas4
einsa7sse
3einsat
-e2insc
-5einschÃĪ
+e3insta
ein6stal
-ein6terv
-3eintÃķ
-3eintrÃĪ
+ein4sz
1einu
-ei3o
-eio2p
-eio2s
+e4inver
+ei3o2
ei1p
eip2f
2eir
-eir2c
ei3re
e1irr
-e4is.
-ei2sa
-ei3sas
-ei6schwu
-e4ise
-ei4ser4g
-ei4s3er4l
-ei6s5erst
+e2is.
+ei2sa4
+ei6schin
ei4s3erw
-1eisho
-ei3s2ky
-ei2so
eis2pe
-e2i3s2s
-eisser6s
-4eisto
+ei3spru
+ei3s2s
+ei2str
eistra6s
ei2sum
-ei2sur
-1eiswo
-e2it
-ei2t1a2b
-ei2tal
+e4it
+ei2tab
ei2t1an
-ei2tap
ei2tar
-ei4tat
2eitÃĪ
-ei2tÃĪn
-ei3tei
-eite4ra
-ei2t1h
-ei2tin
-eito2
-ei4trau
+ei3te
+ei2th
+ei2tor
ei2tro
-eit4sa4g
-eit3t4
-ei2t1um
-ei2t1ur
-eit3z2
-eiv2
-eive4
-ei2zar
-ei2z1in
-2e3j
+eitt4
+eit3um
+2eiu
+2e1j
e1k
-2ek.
-2e3k2a
+ek2a
1ekd
-ek2e
e3ke.
-e3ke4n
+e3ken
e3kes
e3key
e3k2l
-ek4lo
+ek3lip
ek4n
-e3k2o
-ekor4da
-e3kr
-ek4s1p
+ek2o
+2ek4r
2ekt
-ek5t6ante
-ekt3at
-ek2t1ÃĪ
-ek2te2l
+ekt4ant
ekt3erf
-ekt3erk
+ekt3erg
ek4t3er4z
ekt2o
-ek2t3o4b
-2e3ku
-ekur2a
+ek2u
e3k2w
-1ekz
e1la
+ela4ben
+el3abi
el2abt
-el3abu
-el3ader
+el3a4der
+e3ladu
el1af
-ela4h
+ela2h
e2l1ak
+el3al
e2l1a2m
-el2a3mi
-e3lamp
-el1ana
e4landa
e2lanm
-e4lans
-e2l1ant
-e4lanw
+el1ans
el1anz
2elao
e2l1ap
-e2l1ar
-el3a2ri
-el1a4si
+e2l1a4r
+el3ari
+el1asi
el1asp
-el3aufw
+el2ast
2e1lÃĪ
-e3lÃĪd
-2elbil
-2elbr
-2eld
-elda2r
-eld3ari
-eld4arm
-el4d3erf
-eld3erl
+3elbis
+el2da
+eld3erh
elder4p
-elder4s
eld5erst
el3des
-elds2
-4e3le.
-2e3lea
-elea2r
-2e3leb
-4ele2c
-el1ech
-1elefa
-4eleh
-el3ehe.
+eld3s2
+e3lea
2elei
+e6l5ei6er.
e6l5ei6ern
-e2l1ein
-e3leine
-e5leit
-1elek
-2eleko
+el1ein
+e4leinf
+e4leing
+e4leinh
e2l1el
1e2lem
-2e3lem.
-e3lema
-ele2mi
-e3lemm
-2el1emp
+e3lem.
+el1emp
2e3len.
-elen4k3l
e4lense
-e2l1ent
+e4l1ent
e3lep
-2eler
-e3ler.
-eler2a
-el1erd
-e6lereig
+e2l1erd
el1erf
e4ler4fa
-e4lerfi
-e2lerg
-el1erh
+e2l1erg
el1erk
-e2l1erl
+el1erl
+e4ler4la
e4l3ernÃĪ
-eler2Ãķ
+e4ler2Ãķ
e2l1err
-el3eru
-el1erw
-e2l1ess
-e2l1e2ta
-ele2ti
-elet4ta
-2el1ex
-e3lex.
+eles2
+el1ess
+e4l1e2ta
+e3leu
+2elev
+ele2x
1elf.
-elf2er
+el3fe
+elf4l
1elfm
-elf4r
1elft
+elg2a
elgi5er.
elgi5ers
-el3g2l
elg4r
e2l1id
-2e3lie
-elif3
-2elig
+e3lie
e2lim
-elin3a
-eli3no
-el1ins
+el1ita
2elk
elks2
-ella5den
+elk3sc
+ella3d
+el3lan
el2lap
-el4larb
-ellar4t
ella2s
-el3le.
-ell2ei
+el2lÃĪ
+el3lÃĪd
ell3ein
-el4lel
-ellenen5
-ell2er
-eller8fas
-eller7g
-ell3erh
+el3ler
+el2leu
el3lie
el2lil
-1ellip
-el2lo2g
-el2lor
+el3l2in
+el2log
el2lot
-ell2Ãķ
ell3sp
-ellu2m
+el2lu2m
el2lÞ
-el3m2a
-elm2e
-elm3ein
2eln
-el3na
+el5na
2elo
-e2l3oa
e2lof
e2lol
-e2lom
-e2lonk
-el1opf
-el1or
+elon2
+e2l1or
elo2ri
-e3lot
-e3l2ov
-2elÃķ
-el3p4
-el4s5ein
-el3sent
el2sum
-el4tans
+elt2ak
el3te.
-elte4m
el5ten.
-el4t3ent
elter4b
-elter4f
-elt3erh
-elter6le
-3elter4n
-elt5ero
-elter6sc
-elt3eth
-el3the
-elt1r
+3eltern
+elter4s
+el3tes
+elto2
+elt3r
+elt1s2
elt3se
+elt3sk
2e1lu
-el1uf
-e2l1um
-e2l3u2r
+el1ur
el3use
-elu2t
-el3uto
e1lÞ
-2ely
e2lya
-el3z2ac
+2elz
el2zar
-el4zene
-elz1in
+elz2e
el2zwa
-2elzy
e1m
-e2m3a2b
-e2m1alk
-em3anf
-e2m1ano
+2ema
+em1ad
+ema2k
+e2m3anf
e2m1ans
-1emanz
-e4m3a2sp
-emas2s
-ema3sse
-e3maß
-em1au
-2e3mÃĪ
-em2ÃĪh
-1emba
-1embo
-1embry
-em2dÃĪ
-emd1r
-em2dra
-2eme
-e2m1e2b
-e2mef
-eme2i
-e2mele
-em2en
+3emanz
+emas8sens
+em4d3a2
+e3m2en
emen6gel
emen4t3h
-eme3r2i
-e2m1er2l
-em1erw
-3e2meti
-e2m1i2d
-emi2ei
-e2mig
-emik2
-em1im
-2emin
-emi3n2a
-e3mind
+e2m1erw
+1e2meti
+e2m1im
+emi5na
em1int
-1e2mir
-e3misc
+emi3ti
+2emm
+em2map
emma3u
-em2mec
-e2moa
-e3mol
-emo3s
+e2mop
1empf4
em3pfl
-em3po
em2sa
-em4scha
-em2sim
+em3se
em2spr
-ems1tr
em3t2
-1e2mul
-3emuls
-emune7
-e3mur
-e3mus
+1emul
2emÞ
-emÞ3s2
-e2na
+emÞ3s4
+e2n1a
4ena.
-e4na2b
-en3aba
-en3abo
-4enac
-e4n3ack
-enadi4
+2en2ac
+en3ack
+e3nad
e4naf
4enah
-en3ak
-en1al
-enal2a
-e4nalb
-e3nale
-en2alg
+e4n3a2k
ena3l2i
-e4nalk
-e4nalm
-e4nalo
enal3p
-4en1am
-ena4n
+4enam
+en2ame
e4nand
-en3ane
-e4nant
+en3ang
e4nanz
-en1ap
-ena2pa
en3are
-en3ark
-en3aro
-en1as
-ena2sc
-e4na4st
-2enat
-4e5nati
-e4natl
-enat4s
-e4n3att
-4enatu
-e4nau2f
-en3aug
-e4n3aur
-e6nausta
-e4naut
-en1a2x
-en1a4z
+ena4sc
+4enat
+en3att
+e3naue
en1ÃĪ
-en3ÃĪb
-e3nÃĪi
e2nÃĪr
-en2ÃĪ3s
-en3ÃĪst
+enÃĪ4s
enbu4s3
en2ce.
-end2ac
+en3d2ac
en2dal
-en4dang
-2endel
-ende4lÃĪ
endermas8
-en4d3es4s
-en2dex
-en2did
-en3d4ort
+en4d3ess
+end4ort
end3rom
-end3s2l
end3s2p
end3sz
-en3d2um
-en3d2Þ
+end2um
2ene.
-en3e4ben
+ene4ben
en1ec
e2neff
-ene2h
en2eid
e3neien
-e4neige
-4eneigu
e4nein
-e4neis
e2n1el
ene4le
-2ene2m
-e2n1emi
+2enem
2enen
-e4nense
e4n1ent
en4entr
-en3envi
-en1ep
4e3ner.
-en2era
e2n1erd
-en3erei
e2nerf
-en4erfr
-1energ
-e2nerh
-e2nerk
+1e2nerg
+e4nerh
+e4nerk
e2n1erl
-e4nermi
e4n3ermo
4enern
-e4n3erne
-ene2ro
e2n1err
-en1ers
-4eners.
+e2n1ers
e2n1ert
-en4ert.
e2n3eru
e2n1erw
+e4nerz
2enes
-e3nes.
-e2n1e2sc
-e2n1esk
-e2n1ess
-en1eta
-e2n1eth
-en1eul
-e2n1e2v
-e4ne2x
+e2n3ess
en3f
-enft2
+enf2a
enf2u
1engad
-1engag
-en3g2al
-enge3r4a
+3engag
+enge3ra
en3g2i
+en3glo
en3gn
-en3g2o
1engp
-eng4ra
-eng1s2
+eng1s
+eng3sc
eng3se
2eni
e3ni.
e3nic
-4e3nie
+e2nid
+e3nie
eni3er.
-eni3erp
eni5ers.
-en3i2ko
-en3ill
-eni4m
-en1ima
-en1imi
+e2n1i4m
e2n1in
e3nio
eni2Ãķ
-e2nir
-eni4sa
-e4n3iso
-e3nit2
-e3niv
-enk3aus
-3enkeli
-enk3erg
-en4k3erk
+e3nit
en3k2Þ
-en2nef
-en2nel
-en4ner4f
-enn3erg
-en4n3erl
-enn2i
-enni6ger
-2enniv
-e2n3oa
-e2n1ob
-e3nobel
-eno2br
+e2n1o2b
+enob4le
e2nof
-en3oli
-en3olm
+en1oh
+e3nol
eno2ma
-eno4n
+en1on
e2n1op
e2n1o2r
-en2ora
-eno4ri
-4enorm
-e2n1ost
-4e3not
+eno2s
+enost3
+e3not
eno2w
2e1nÃķ
en1Ãķ2d
-en3sabb
-en2san
-ensas4s
+en3sac
+ensas2
ensa5sse
+en2sau
en5sche
en2seb
-1ensem
-en4sen3e
-ens3ere
-en3spo
-ens4por
-ens4tak
+3ensem
+ensen1
+en2sep
+en3ska
+en3s2po
enst5alt
en4s3tÃĪt
-ens4tel
-en6stele
en6s5test
2ensto
-enst2Þ
-en2sun
-en3t2ag
-2entan
-en4tanm
-en4tanw
-en3t4ark
+ens5trie
+e4nt
+ent4ag
+ent4ark
1entd
-en3t2el
-ente2n
-3entera
+en2teb
en4terb
en3tes
1entf
2entfo
-1entg
+1entga
3entgeg
en2thi
-1enthu
-1enthÞ
-en2t1id
3entla
1entn
-en2tob
-entopf3
-en2t1os
-2entÃķ
en4t3rol
-1entsc
-1entso
-ent4sto
+3entspr
1entw
4entwet
-3entwic
1entz
en1u
-e2nuf
-e2num
-enu4r
-2enu2t
-e4nuto
+2enut
e1nÞ
4enwÞ
-2e1ny
-en3zare
-enz2ÃĪp
-1enzep
-enz3erg
+e1ny
+enz1ec
+en4z3erf
+en4z3erg
en4z3erk
-en4zerl
-en4z3erm
-enz5ersc
-enzi2d
-enzlan4
-enzo2l
-1enzy
e1Ãą
-4eo
+2eo
e1o2b1
-eo3ben
-eo3bl
-eo3bo
-eo3br
-eo1c
-eoch2
-eo3dr
e1of
-eo3g2
+eo2fe
e1oh
-eo3la
-e3o2ly
-e1on
-e3o2nat
-eo1o
+eo3m
+e1on.
+e1ond
+e1onf
+e1onh
+e1onl
+e1onr
+e1ons
e1ope
e1opf
-eop4r
+eop4t
e1or
e3or.
-eo1ra
e3orb
-eorgi1
e3ors
-eort4
e3orw
eos2
e3os.
-eo3se
-e1o4ste
-e1ou2
-eo1ul
+eota2
+eo3ul
+e1ov
e1Ãķ2
e1p
-2ep2a
epa2g
-epas6ser
-2eper
e3p2f4
-e5pfi
-eph2
-1e2pid
-e2pig
-e2pik
-1e2pile
-e3pio
-1epis
-2epist
-1e2pit
+e2pis
+1episo
+2epl
ep3le
-1epoc
-eport4
-1e2pos.
+1e2poc
ep2pa
-eppe3l
+ep2pf
ep2pin
-ep2pl
+ep4pl
ep2pr
-2epr
-ep3sh
+ept2a
ep2tal
-ept2an
-ep2tau
2e3pu
epu2s
-2e3q
+e1q
er1a
e3ra.
era2be
-era3ber
-era2c
-e2rach
e3rad.
-e3radi
-e2radj
-e2r3adm
-e4radmi
-e4r3adr
+er3adm
eraf4a
era2g
-e1rah
e1rai
er3aic
-e3rake
-e1rald
-eral4eb
-er3alke
-e2r3all
-era4mat
-er2an.
-era4n4a
-eran3d4
-e3rand.
-e4rangr
+e2rak
+e1ral
+er3all
+eran3d
+e3rane
+er3anf
e2ranh
-e2rano
+er3anm
e1rap
-er3apa
er3apf
e2rar
-er3are
e3rari
-e3ras.
-era2si
-era4sie
-era2sp
+e1ras
+e2r3a6si
+era4sp
era4s3s
-e1rast
+er4ast
era2ß
-e4ratel
+e2rath
+e3rati
+e2ratm
e1raub
-e1rauc
er3aue
erau2f
er3aug
-e2ra2v
e1raw
-e2r3ax
e1raz
e1rÃĪ
-er1ÃĪf
er1ÃĪh
-er1ÃĪ2m
-er1ÃĪp
+er1ÃĪm
e2r1ÃĪ4s
-er1ÃĪtz
-3erbarm
-erb2au
erb2e
-2erbru
erb2sp
er1c
er3chl
-erch2o
-erd4am
erda3me
1erdb
+er3de
2erdec
-2erdel
+erde3in
er4d3en4g
erd3erw
-erdeu2
-1erdg
-2erdy
4ere.
-er3e4ben
-e3r2ech
+er1eb
+e3rech
er3echs
er1eck
er1edi
ere4dit
er1eff
-e2r1e2h
-ere4i
-4e3rei.
-e3reib
+er1e2h
+2e3rei.
er1eig
-4ereih
-e3reik
-e4r3eime
-e4reink
-er3eis.
-er5eisar
-er3eisb
-er3eisf
-er3eisr
-erei5str
-e4rek
-er1e2l
-e2rele
+e2rein
+e4r3eis.
+ere2l
+er1ele
ere3lev
-2erem
-4erem.
-er1emi
-ere4mis
+2e3rem
e2remp
2eren
-4e3ren.
+e3ren.
e3rena
-eren1e
e4rense
+e4rentf
e4rentn
-e4rents
e3renz
eren8z7en8d
-er1epe
-4erer.
-2ererb
-e4r3erfo
-e2rerh
-e2rerk
-e2rer2l
-erer5lau
-4erern.
-e4rerne
-e2rer2o
-erer4ri
+er1ep
+2erer.
+e2r3erf
+e2r1erh
+2erern
+e3rero
+er1err
er1ers
-4erers.
-e8rersche
e2rert
-2ererv
-2ererw
+er1erw
2eres
-4eres.
er1ess
-eres3sk
er1eß
-er1eta
-er1eu
+e4r3e4ti
+er1eul
ere4vid
erf2e
-4erform
-erf4r
+er3f4r
4erfÞr
-er4g3are
-4ergebi
3ergebn
-4ergebÞ
-4ergeha
4ergehÃĪ
-erg5elst
-4ergeni
-2ergn
-er2gop
+erg3els
+1ergol
4ergrem
-erg1s2o
-ergs2p
-e4rh
+e2rh
1erhab
-er3hag
-2erhai
4erhals
-2erham
-2erhan
-2erhas
-er3hei
-2erher
+er3he
+4erhÃķhe
er3hu
+2erhÞ
2eri
e2riat
e3rib
4e3ric
-e4r3ico
-er1id
-4e3rie
-eri3en1
-erien7s
-e3ri3k
-erik4l
+er1i2de
+e3rie
+eri3e4n3
+eri5ers.
+e3ri3k4
4e3rin.
-e2r1ind
+er1inb
e2r1ini
er1ink
-er1inl
+er1ins
er1int
-er1inz
-e2ri2on
-4eris
-e2riso
-e2risr
+e3rio
er1ita
-3eritr
-e3riv
2erk.
-2erkaj
-er3ker
1erklÃĪ
-2erkm
+2erkli
+er3ko
2erkre
-erk3t4
-er2kum
-2erl.
+erk3t
2erlag
3erlebn
-4erleh
-2erln
-er3m2
+4erln
+erm2e
ermen4s
-er4m3ers
-er4n3alt
-er3ne
-er4nene
-er4nerf
+erm3ers
er4nerk
-3erneue
-er2nob
-erno2r
ern1os
-2e1ro.
-e1roa
-er1ob
-ero2bl
-ero2br
+e1ro.
+er3oa
+er1o2b
e2r1o2f
e1rog
-e1roh
+e1r1oh
e1rok
e1rol
-er3oly
e1rom
-er3omb
-2e3ron
-e2r1oo
+e3ron
+er3ony
er1op
-2e4ro4r
-eror2a
+e4ro2r
e1ros
-1erosi
-e3rosit
e1rou
e1row
-er1o2x
-er1oz
+er1ox
+e1roz
erÃķ2d
-2erÃķh
-erÃķ4l
-er1Ãķ2s
-er3p
-er4rade
+2erÃķk
+er1Ãķs
+er3p4
er3rÃĪ
-2erren
-er3ro
+er5rei
+erri3er
2errÞ
-er3s2a
-ers4ana
-ersch4
+ers2a
+ersch2
er5schn
-4ersei
-ers2el
-er5s2i
+er3se
+er5sen
+er3s2i
er3sk
ersma3s4
-4ersted
-er6st5ers
-4erstil
-er3swi
+er5smo
+er3sn
+er3sp
+er3sto
er3sz
-er2t1ab
-er3tat
+ert2ak
+er6terei
er4t3erf
-er4t3er4g
er4ter4h
-er4ter4k
er4ters
-ert1h
-er2tho
-4ertÃķ
-4ertru
+er2t3ho
+4erti
+ert3ins
ert3s2e
-ert1s2p
+2ertÞr
2eru
eruf4s
-e4r3uhr
-er1u2m1
+er1u2m
er1und
-e4rundu
-er1up.
-er3ur
-er3use
-e2r3uz
+er1uns
+er3uz
erÞ4b
3erweck
-er4zerk
-er4z3ers
e1s
-es3ab
-es2abb
-e4sabe
+e4s3ab
e3sac
esa2d
-e3saf
-e4sall
-es1ami
es2an
es4and
-es3anf
+es4ank
es3ant
-esa2ra
-e3sa1s2
-esa3ss
-esa5sse
-esa2v
-es1ax
+e3s2as
+esa3sse
+esas6sen
+esa6sset
+e4s3ato
+es3av
esÃĪs4
es2ÃĪu
2esb
esbi5er.
-e3s2ce
-es2chi
+e3sc
+es2ca
+es3cap
+es2ce
esch2l
esch2n
e4sco
+e4scu
e3se.
es1ebe
-e2s1ec
es1ehr
-esein4s
-es2el
-ese4nal
-ese4neu
-e3senk
-esen3o
-esen3sk
-esen3th
-eser4at
-ese4r1u2
-eses2k
-es3e2x
+e2sein
+es3eva
2esf
-2esh
+4esh
es3ha
-es4ham
es4har
-es3he
-2esi
-esi1er
-e4s3i2k
+e3sig
e2s1il
+es1ini
e4s3ins
-e4siso
+es3int
es2kat
e4s3ke
-e4s3kl
-e4s3ky
+e4sky
e4s3l
+es4log
2esm
e4sn
-e2s3oa
-e4sob
-e2s1od
-es2oh
-es2opa
eso2r
-es1ora
-eso3re
es2ort
-e3sot
-e3s2Ãķ
-4esp
-e3spal
-es4park
+es2Ãķ
+2esp
es2pek
-e4spers
-e4sph
-e3s2pi
+e3spi
e3s2por
+e3s4pra
e3s2pu
2esr
-2ess.
-es4s1ag
essali3
-essau4s
-1essay
-2essÃĪ
-2essc
-e4ssel
-e4ssent
-ess6ere
-ess4erf
-e4ss3erg
-es4serh
-e4sserl
-ess5er6la
-2essk
+es2sau
+4essem
+ess4e3re
+ess3erg
+es3si
2esso
es2sof
-2essp
es2s1pa
es2spu
-es4stab
es4ste
estab4b
-e4stabs
-esta3ge
est1ak
-es2tan
-est4ap
+e3stan
e4starb
-es2t1a4s
-e3stat
+1e2stas
es2tau
-e4staum
-es2te.
+es2te
este2c
-este4i
-est5eing
-e6st5eink
-e6st5einl
-este2l
-e4stele
-e4st3emi
e4st3eng
-est5entr
-est5erha
-e4ster4Ãķ
-e4st3erz
-estes2
+e4st3erh
e4st3ess
+e5stev
e3sti
-e4stid
e4stip
estmo6de
-1estn
e2stod
-e4strad
-es3trak
-e5strec
-e5strick
+est3ori
+2estro
+es3trop
es2tu
-est3ums
e3s2tÞ
-e3s2ty
-e3suh
+es2ty
e2s1um
es1ur
-esu4s
-2e4sw
+e4sw
e3sy
-e2ß1el
-e2ßent
-eße3re
-e2ß1erg
-e2ß1erl
+eße3r2e
e1t
e3ta.
etab4
-et2a2c
-2e3taf
-2etal
-etalla4
-etal6lag
+etal4la4
etal6li6n
-et1ami
-e3t4an.
+et1am
+eta2mi
+1etap
+etari1
et4at
-etat3r
et1ÃĪh
2e3te
-ete2e
-e4t1ef
e4t1ein
ete3ke
+et2en
eten3d2
ete2o
eter4hÃķ
-ete1ro
eter4tr
-ete4sp
-2eth.
-et2ha
-e4t3hal
-e3the
-et2hi
-e4thik
-3ethn
-et2hu
-e4t1i2d
+et2h
+et3hal
+ethi1
+et3hÞ
+e3ti
eti2m
-etin1
-et1ini
-et2it
eti2ta
-eti2th
-2e3to
-e2tob
-e4t1o2f
-et4on
-eto4n3al
-etons4
-e4torg
+2eto
+eto2b
+e2t1of
+e2torg
2etr
-et3rad
e4traum
et3rec
-e2t3res
-et4ros
-ets2c
-etscher7e
+e4tres
etsch3w
-ets1p
+et1s2p
et1su
-ett1a
-et2ta2b
+etta2
+et2tab
et2tad
-et2tak
-ett2as
+etta3ge
+et2ta4s
et2tau
et2tÃĪ
et2tei
ette4n1
+et4teu
et4th
et2tÃķ4
et2t3r
+et4tro
+ett3sz
et2t1um
et2tur
et2tÞ4
-3e2tui
-e3tur
etwa4r
-1e2tym
2etz
+et2zÃĪ
+et4z3ent
etze4s
et2zw
eu1a2
eu3b4
-2euc
-euch4ta
-2eud
-eudi4e
-2eue
-eu2eb
-eue6r5eif
-eue6reis
-eueren4
-euerer6s
-euerer6t
-eu3eri
-eu3erk
-eu3err
-eue3s
+euen2g
+eue6reif
+euer4ri
eu2e5sc
-4euf
+2euf
eu2fer
-eu2g1a
-euge4mi
-eu6gense
+eu2ga
+eu4gent
eu3g2er
-eugin2
-eugin4f
-eu4gin4g
-eu2gre
-eu2gri
eug1s2
-eu3h
-eu1id
-eu1in1
-e4uk
-1eukal
+eu1in
+1euk
eu2kÃĪ
-eulan2
-euland3
-eu3l2e
-eul2i
-2e1um
+e1um
e3um.
-eu3m4a
-euma3s2
e3umb
-e3umf
e3uml
e3um2s
eums1p
eum3st
-e3umw
2eun
-eu2na
eun2e
eu4nei
+eun4er
e3un2g
eu2nio
-eu4nis
-eunk2
eun3ka
eu1o2
-eu1p
-e1up.
-eup2f
-e3upg
-eu4r1an
-eu4r3ast
-eura3t
-eu2rau
-eur1c
-e2ure
-euren2
-eu4rens
-eur4er
-eur3f4
+eu1p2
+e2u3r2e
1euro
-2eu1s4
-e3usar
-eusch4o
-eu4s5k
+eu2rys
+eu1s4
+eu4sis
eu3sp
eu3ss
eust4
2eut
-eut2e
-eu5ted
eut2h
-3eu3tha
-eut2i
-eu3t2o
-eut6scha
eut6schn
-eut6schr
2eux
-eu2za
eu2zo
eu2z1w
e3Þ
-e1v
-e2vak
-e3var
-2ev2e
-eve5ri
-evie3le
-2e3vor
+2e1v
+e2vela
+e2vent
+4ever
+eve5r2i
+e3vo
ev2s
e1w
-ewÃĪ4
+2ewa
+e3wÃĪ4
ewÃĪ6s
+2ewe
e2we.
-ewei4sc
-ewert4
-ewer3te
e3wir
ewi2s
e3wit
+ew2s
2ex.
-1exam
ex3at
-2exc
-2exd
-e2xel
+1e2xem
ex1er
-2exes
e1xi
-2exik
-e2xil
+2exie
e2x1in
-e3xio
1exis
ex3l
-1exp
-2expu
-2exs
+3exp
2ext.
-2ex2ta
ex2tin
-1extr
-2extu
-2extv
+ex2tu
2exu
-e2xum
-2e1xy
-ey1l2
+2e3xy
ey2n
-ey3no
eys2
e1z
e3z2a
-ez2ÃĪ
e2z1enn
e3zi
ezi2s
-e3z2o
ez2w
-ez3z2
ÃĐ1b
ÃĐ1c
ÃĐ1g
-ÃĐgi2
ÃĐ1h
-ÃĐ1l2
+ÃĐ1l
ÃĐlu2
-ÃĐ1m2
-ÃĐ1n
ÃĐ1o
ÃĐ1p
-ÃĐ1r2
+ÃĐ1r
ÃĐ1s
-ÃĐ1t
+ÃĐ1t2
ÃĐ1u2
ÃĐ1v
ÃĐ1z2
ÃĻ1c
ÃĻ1m
+ÃĻ1n
ÃĻ1r
-1ÃŦn
-ÃŦ1t
Ê1p
1fa
+3fa.
fab4
-2f1ab5b
+f1abe
fa2ben
-2fabf
-2fabg
-2f1a2b5l
-2fabn
-f2abr
-2f1ab5s
-2fabw
+2f1a2bl
+fab5s
fa4cheb
-fa4chel
fa2ch1i
fa2cho
-fachs2
-fach3sp
fa2ci
-fa2dan
-fa2del
f1ader
-fa2di
fa2dr
-fa3e
-fah6l5ent
-fai3b
-f1a2ka
+f4ah
+faib4
fa2ke
-f3aktio
-f4akto
-3f2aku
-fa3la
-fa3le
+f2al
+fa3l2a
fal2kl
-falla4g
+falla2
fal4lei
fal6lenk
-fall5ent
-fal6lerk
-faller6s
-falli4
-fal6lini
-fal4lis
+fal6l5er6k
+fal2li4
fal6scha
fal6schl
fal6schm
fal3te
-fal4tei
-fal2tr
3fam
-fa2mei
-f1amp
f1amt
-3f2an.
-fa2nar
-fand2a
-f2anf
-fan2ga
+2fanb
+2fanf
fan2gr
-2f1an3k
+2f1ank
2fanl
-4fann
f1anp
2fanr
+fan3s
2fanw
-2f1an3z
-2f1a2p
+f1an3z
+2f1ap
f2ar
-far2b1a
-far4bel
-far4b3er
-far4bin
-farb3l
-far2bo
-far2b3r
-far2b3u
-f3arc
-3fa5ri
-far2r1a
+far2br
+2f3arc
+3fari
farre2
far4rec
far4reg
-2f3art
+f3art
2f3arz
3fas.
fa3s4a
fa3sh
-f1assi
-fas2t
-2f1a4str
-fa2ß
-f1aße
f3at
-f4at.
fa2to
-f4ats
2f1auf
f3aug
fau2s
f1ausb
-faust3r
3f4av
fa2xa
1fÃĪ
-3fÃĪ1c
-fÃĪh4rin
-fÃĪh2ru
+fÃĪ1c
+fÃĪh2r1u
f1ÃĪlte
-2fÃĪq
-3fÃĪrb
2f1ÃĪrm
-2fÃĪrz
+f1ÃĪrz
fÃĪ4s
-fÃĪ6sser4
-3fÃĪßc
+fÃĪ6s3ser
fÃĪ2ßer
-2f1ÃĪtz
-2fÃĪug
-2fÃĪx
-4f1b4
-fbau1
-fber2
+2f1b2
2f1c
-f3ch
2f3d4
-fdien4e
+fdie2
1fe
-3fe.
featu4
f2ech
-fe2del
+2f1eck
fe2dr
-fe2e1i
-feein5
+fe2ei
fe1em
-2f1e2he
-fehle2
+fef4l
feh4lei
-f2eie
-f2eind
+f4eie
2f1eing
-fe3ini
-fe3ins.
+4f1einh
+fe1ini
2f1einw
-f1eis
-fek4tin
-fe2l3a2
-fe2l1ÃĪ
-fel2da
-felde4m
-feld6erh
+f1ei3s
+fek2ta
+fe2l1a
+fel4da
fel2dr
-feld5ri
-2fe2lek
-2felem
+2f1e2lek
fe2l1er
fe2les
fel3la
-fel4lan
-fel2lÃĪ
+fel4lei
fe2l1o
-fel4s3oh
-6fel6tern
-felt4r
-fel3tu
+fel4soh
+fels2t
+fel3t
f2em.
-2femb
fem4m
2femp
-fen3a
+fen3a2
fe2nÃĪ
-fend2a
-4fenerg
-fe2ni
fe2no
fen3s2a
-fen5s2c
-fenst2
+fens2c
+fens2t2
fen6stri
f1ent
-fen3t2a
-2f3entf
-f2enti
-4fentla
-f2ento
-2f3entw
-4f3entz
-fe2nu
3fep
-fe2pi
f2er.
fe1ra
-fe2rab
-fer3a2d
-fe2ral
+fer2an
fe4rang
-fer4ant
-fe4ranz
+fe4r3anz
fe2rau
fe2r1ÃĪ
-2ferd.
-fer3da
-fer3d2e3
+ferde3
f2ere
-fe2r1e2b
-fe2rec
-3fer2ei
-4f3ereig
-fer3eis
-f4erel
-fer3ell
-fe4rer4g
-fer4fah
-fer4fol
-ferg4
-f4ergr
-feri2d
-ferie4n3
-feri4on
-4fer4leb
-f2ern.
-fer4nei
-fe2rÃķ
+fer2er
+fer3erz
+f1erfa
+fe2rid
+3ferk
+f2erl.
+4ferneu
+fe1ro
f4erpa
-f4erpf
-f4erpl
-f4erra
-fer4reg
-ferri2
f2ers.
+fers2t
f2ert
-fert4r
-f2erz
-fess2e
+f1erw
+fer8zeuge
fes4t
-fe2sta
-fest3a4b
-fest3an
+fe2st1a
fe4st3ei
-fe4stin
-fe2st1o
-fe2st3r
-2f1e2ta
+fe2str
+2f1eta
+fe2tag
3fete
-fe2th
-fet4t3a
-fetti3s
-2feu.
-feuer3Ãķ
+fet2t3a
+feuer3e
+feu4ru
3few
-2f1ex
-fe1y2
+f1ex
+2fexp
3fez
1fÃĐ
-4f1f
-f3fa.
+2f1f
ffa2b
ffa2ce
-ff1a2d
-f3fak
f3fal
-ff1alt
ff1ans
ff3ar
ff4arb
+ff4art
ffa4s
-ffa2t
ff1au
-ffa4z
-f2f1e2b
+ffa2z
+ff2e
ffe2e
-f2f1ef
-f2f1ei
-ffe3in.
-f5fek
+f2f3ef
+ff3ei
+ffe1in
ffel3l
-ff1e2m
-f2femi
-ff2en
-ff3erle
+ffe2m
+f2f3emi
f2fetz
-fff4
-ffi3k
+f2fex
f2fil
-f2fim
-ffi4xi
-ff1lag
-ff3le
+ffi2xi
+ff3lag
ff3li
+f3flu
f3flÞ
ffo2
-ff1ori
-ff1ox
f2fÃķ
f3f4rÃĪ
-ff3ro
-ffs2am
-ff3sch
-ff2s1p
-ffs4tau
-ffs3tie
-ffs3tut
-ff3stÞ
-ff3t2
-ffus3s
-f2fy
+ff2sa
+ff2sp
+ffs3tan
4f3g2
-fgeb2
-fge3s2
-fglim2
-4f3h2
+fge3s
+2f1h2
1fi
3fi.
-fi4ak
-fi2ar
fi3at
-fiden2
-fi2do
-f2ie
-fi2e1i
fi1er2f
-fi2gr
-fi2k1as
-fi2kel
fi2kin
-fi2kn
-fi2k1o4
-fi4k3r
-f2il
-fi2l3an
+fi3kl
+fik1o2
+fi2kob
+fi2kr
+fi2l1an
+fil4auf
fil3d
fi2les
-fil2et
filg4
fi3li
fi4lin
fil2ip
-fil2ma
-fil2mÃĪ
-fil4med
-fil4mei
-fi2lo
-2fimp
-3f2in2a
-fin2e
-2f1inf
-fing2
-fings2
+f2ina
fi3ni
-f2ink
-fin2sp
2f1int
fi2o
fi3ol
fi2r
fi3ra
fi4re
-fir3me
-fi3s4a
-fi4sch3a
-fi6schei
-fisch3l
+3fis
+fis4a
+fisch3a
fisch3o
-fi4schr
-fi4sch3w
-fi3s2h
-2f1iso
+fisch3w
+fi3so
fis2p
-fite2
-fi2tin
fit1o2
fi2tor
-five4
-fi2xel
-fi2za
+fi3tu
+3fiz
2f1j
-3f2jo
4f1k4
-fka4t3
f2l2
2fl.
f3lad
-f5land
-f4lans
+f5lan3d
f3lap
-f4lasc
-f3lats
-flauma4
1flÃĪ
3f4lÃĪc
-4f3lÃĪd
-2flÃĪh
-2f3lÃĪn
-2flÃĪr
-2flÃĪß
+2f5lÃĪd
+f3lÃĪn
2f3lÃĪu
-f5le.
2f3leb
-f4lee
-2f5lein
-flek3
-flekt2
+2f3lein
f3ler
-f4lex
f3li.
3f4lim
-f3lind
fli4ne
-f3ling
-2f3lins
2f5lon
1f4lop
flo7s8ses.
-1f4loß
1f4lot
flo2w
f3lÃķ
-4flÃķf
-3f4luc
-f3luf
+4f5lÃķf
1f4lug
-1f4luss
-1fluß
-f4lut
-flut1o
+flu4ger
f4lÞ
f5lÞd
f5lÞm
-4f3m2
-fma5che
+2f1m2
fma2d
fmas2s
fma3sse
-4f3n2
+2f3n2
fni2s
1fo
-f1ob
-fo2be
-2fober
fob2l
2f1o2f
foli3
+fol2k1
fo2na
-fo4nan
fon3au
-fon3dr
-fo4n3in
-fo2nop
-fons2
+fon2e
fo2nu
2f1op
+fo1ra
4f3org
+fo3rin
for4m3a4g
-for4mas
-for4m3ei
-for4min
forni7er.
-for6schl
for4sta
for4sti
-for4t3ei
-for4ter5
-for2t1h
-for2t3r
-fort3s2
+fort3
+for4tei
+for2th
+for2t1r
+fort1s
for3tu
-for2u
-fot4r
+f1o2x
1fÃķ
2fÃķ2f
2f1Ãķk
-4f1Ãķl
-4f3p4
+2f1Ãķl
+4f1p2
2f1q
-f2r4
-f3ra.
+f2r2
+f4rac
frach6tr
-2f3rad
-2f3rah
+2f5rad
fra4m
f3rand
f5rap
-f3rat
-1frau.
-f3rauc
-2frÃĪd
1f4rÃĪn
2fre.
f3rec
f3red
-2fref
-f4rei.
+2freg
f3reic
-f4reie
-frei1f
-f4reig
-frei3k2
-2frein
-2frek
-2f3rep
-2frest
+freik2
+frein2
+f3rep
3f4reu
2f3ric
-fricht6e
fri3d
fri2e
2frig
-f4ri3k
-f3rip
1fris
f4risc
-f4rist
fri6ster
-2f3roc
-2frol
-1f4ro2n
-fro4n1a
-f4rop
+f3roc
+1f4ron
+fro2na
fro2sc
f3rot
-frÃķs2
f3ru
-f4ruc
f3rÞ
4f1s
-f3sac
-f2s1al
-f2sa2n
-fs3ane
-f4s3ar
-f2s1a4s
-fsa2t
-fs3ate
+fs2amm
+f2san
+fs3ar
+f2s1as
+f2sauf
+f2saus
f2saut
-fs2ÃĪn
-f2sca
+fsÃĪ4
+f3sc
f4sce
f4schan
f4schef
-f4schro
-f2scr
f2s1e2b
-fse2ei
f4sehr
-fse2n
-fs1en1e
+f2s1em
f2s1ent
f2s1er
fse2t
f2s1eta
-f2s1i4d
-f3s2ky
+fsi2d
+f3s2kie
f2s1o2
-f3soh
-f3sol
-fsp4
-f3spann
+f3span
f2s1pas
f2sph
-fs2pie
+f3spi
f3s2pl
f3s2por
+fs1pr
f2spre
+fs2pri
f2spro
-fs2pul
-fs3s2
-fs2tal
+fs2pru
+fs3s4
f2stas
-f3s2tat
f4s3tÃĪti
+f5stel
f2stip
f2s1tis
fst4r
f4s3tres
fs1trÞ
-f4stÞte
+f3stÞ
+f4s3tÞte
+f2sty
f2s1un
f3sy
4f1t
f2ta.
+f2tab
ft1a2be
-ft1abl
ft1af
-f3t2ag
-ft1ala
+f2t1al
ft1an
-f2t1ap
-ft1a2r
-ft3att
+ft1ar
+f3tat
f2t1ÃĪu
-f3te.
-ft1eck
-ft1edi
-ft1eh
-fte2he
+ft1e2h
ft1eig
ft1ein
ft1eis
-ft1eli
-fte3ma
-ft1emi
f2t1ent
-ft3erfÞ
-ft1erk
-f2t1erl
-f2t1erz
-f2t1e2ti
-f2t1ex
-f2t1h
-f4t3hei
+f2t1e4ti
+f2th
+f4thei
+ft3ho
f2t1id
-f4tim
-f2t1in
-f3t2ing
-fto2
-f2t1of
-fton1
ft1op
-f3tor.
f2t3ot
-f3t4ran
-f2t3res
-f3treu
-ft4rit
-ft3ro
-ft3ruh
+f2t3ro
+f2trÃķ
+f3t4ru
fts1
-ft2sa2
-ft4sag
+ft2sa
+ft4sa4g
ft4sam
-ft2sÃĪn
fts2c
ft4sche
-ft2se2
+ft2se4
ft4seh
-ftsen1
ft2si
-ft2so
-fts3tei
-ft4stem
+ft4stÃĪ
ft4ster
ft4stes
-ft3stie
-ft6stier
-ft3stri
+fts2ti
fttra4
f2tum
-ft1urk
ft1url
ftwa4
-ftwa6r
ft3z2
-ftze3d
1fu
3fuc
3fug
-f2uh
-fuku3
-fulb4
-f1um1
-fu2mei
-f2umm
-fund3er
-fun6derg
-fun6derh
+3f2uh
+f1um
2f1unf
-2fungl
2f1u2ni
fun2kl
fun2ko
fun2k3r
-fun2ku
2f1unm
-2funr
2funt
f2ur
-furch2
fu4re.
-2f3url
fus2
fu3sse
fus6sen
fu4sser
fuss1p
-fuss1t
-fus4ste
+fus4s1t
fu2ß1er
3fut
1fÞ
2fÞb
-fÞhl4sc
-fÞn2
fÞ2r
-fÞ3s2
+fÞ3s4
2f1v
-4f1w
-f1y
-4f1z
+2f1w
+1fy
+2f1z
fz2a
fzeiten6
-fzei8t7end
+fzei8tend
fz2Ãķ
-fzu2ga
-fz2w
+fzu3
+fzu4ga
+f3z2w
3ga.
2gabf
-2gabg
-2g1a2b3l
-gab2o
-g1abr
-gab4ri
-2gabsc
-g2abt.
-2gabtr
-ga3bu
-2gabw
+ga2b5l
+gab4r
2gabz
-gade2r
-ga3d2i
-gadi4e
-ga2dr
-gae2
+ga1ch
+2gadl
+2ga2dr
ga1fl
-5gag.
ga1k
ga2ka
-ga2ku
gal2a
-ga3laf
-ga2lar
-2g1alau
-2g1alb
-2g1alg
-gall4e
-gal3lo
-2g1alp
-2g1alta
-2g1altd
-g1a2lu
-ga2mec
-ga3mel
-gam3ma
-5g4amo
+2g1a4lau
+g4amo
2g1amt
-g1a2na
-2ganal
-gan3d4
-2ganf
-2ganga
+2ganb
+gan3d
4gangeb
gan2gr
-gang4sp
-gan2g1u
-2g1ank
+2ganh
+2g3anku
2ganl
-2ganmu
+g3anla
3g2ano
-ga2nob
-2ganr
gans2
-2g1ansi
-2ganst
2ganw
ga1ny
-2g1anz
-ga3pe
-2g1app
-ga1q
3gar.
-g2ara
+2garb
2garc
-3g2ard
-ga3ret
-ga3r2i
-2g3arm
+3gard
+2g1arm
ga3r2o
+3g2ars
2g1arti
ga3ru
2g1arz
ga2s
-g2as.
-ga4s3al
-ga4sam
-gasche4
-gase2
-ga5se.
-ga4sei
-ga4sel
-ga4s1e4m
-ga5ses
-ga4set
-gas5s2
-5g4asse.
-g3asses
-6gassess
-ga5ssest
+ga3sc
+gas3ei
+ga4sem
+ga3sp
+ga4spe
+ga4spr
+gas5s
+ga3s6ses
+gas3tan
ga4st3el
-ga3sti
-ga4stin
-gastra4
-ga6stras5
-gas4t3rÃĪ
-ga3stri
-ga6strom
+ga3str
+ga4stra4
+gastras5
+gas4trÃĪ
+ga4stre
gas1tu
-ga3sun
-ga3t2a
-2gatm
+gat2a
+2g1atm
gat4r
gau1c
2g1auf
2g3aug
g2auk
-gau5ne
-2g1au4s
+g1aus
2g1aut
-ga3z
2g1ÃĪp
-gÃĪr3th
-2gÃĪrz
-gÃĪ3s2
-gÃĪ5st
+2g1ÃĪrz
+gÃĪs2
gÃĪ4u
-2g3b4
+2g3b2
gbau5s
gber2
gbi2
2g1c
2gd
g1da
-g3d2ad
-gda3de
-g2d1ak
-g2d1an
-g2d1ar
g2d1au
-g1dÃĪ1
-g2dei4
-gd1els
-g2dent
g2d1er
-g2d1et
-g2d1in
+gd1in
g1do
-g2dop
g1dÃķ
-g1dr
-gd3re
-gd3ru
+gd3r
gd3s2
gdt4
+gd1ur
1ge
ge3a2
-ge4ate
geb2a
+gebe4am
ge3ble
-geb4lin
-geb4lo
-gebot2
-3gebÞ
-ge1ch
+geb4r
+ge1c
ged4
ge1e2
ge3ec
ge2es
-geest3
-ge5fa
-3gefÃĪ
-4g1eff
-gef4l
-gef4r
-ge3fu
-g4eg
-gege2n1
-gegene4
+gef4
ge3g2l
-geg4r
-geher3l
-ge3ho
-2g1eid
-ge4ie2
+ge3ha
ge4ig
-g2eil
-ge1in1
-ge2inf
-gein4h
-2g1einr
+ge1im
+ge2in.
gein2s
+ge2int
gein2v
ge1ir
-geis4
-2g1eise
+ge2is4
+2g1eise2
gei3sh
-geiss3c
gei4sta
-geist3r
2gek.
ge4lanz
gelb1r
gel4b3ra
-gelb5s
-gel4den
gelder4
-gel6derh
gel6ders
-ge3lec
-ge2lef
-2ge2lek
-2gelem
-gelen1
-ge4lene
-gel3ere
-ge4lerk
+ge3le
+2g1e4lek
geler3Ãķ
ge4l3ers
-ge2l1ev
-gel3f
-gel1i4m
+ge4less
gel3l2a
gel3le
-gell2i
-gel2Ãķ
-gel3s2a
+ge3lor
+gel3sa
gels2p
+gels2t
gel3sz
-gel3ta
-gelt4r
-gel3z2
+gel3t2a
+ge3lÞ
+gelz2
gem2
-ge4ma.
-gem6e
-4g1emp
-gem3s
-ge3mu
+gem4e
+ge3mi
+3gen
ge3na
-ge4n1ac
-ge4nad
-ge4nak
-ge4n3al
+ge4n3ac
ge4nam
-ge4nap
ge4nar
-ge4nat
+gen2as
gen4aug
-4genda.
-gend3in3
-4g3endmo
-gen2dr
+gen2d1r
+gen1eb
+ge3nec
gen3eid
-gener4f
-4generg
-ge4n3ern
+gen3ern
gen6erwe
gener4z
-ge2nim
-gen3k4
genma7sse.
gen3n
-ge2noc
-gen6semb
-gen3sk
gen3sz
-gen3tÃĪ
2gentf
-gen3t2h
-gen3tr
-2gentw
-ge2nun
-genzma3
-genzmas6
-gen3zw
-ge1oo
-geo2ri
-g2ep4
-ge3pl
-ge3po
+gen3th
+4gentw
+geo2r
+ge1ou
+ge3p4
ge1ra
ge2rab
-ge2rak
-ge2r3al
-ge3rann
-ge4rant
-ge4r3a2r
-ger2as
-2gerdg
-ge3rem
-ge4rene
+4g3ereig
ge4reng
ge4ren4s
ge4r3ent
ger2er
-gerin4d
gerin4f
ger4inn
gerin4t
-4ger4klÃĪ
-g3erlas
germas6s
-ger5me
ger3no
-2g1ernt
ge1ro
-ge2rob
ge1r2Ãķ
-ger4sat
-4g3er4seh
+ger4sto
ge3r2u
-g6es.
-3ge3s2c
-ge6sche.
-ge2seb
-4g3e4sel.
+g1erwa
+4g3erwer
+ges2c
ges3elt
ge2s1er
-ge3sha
ge3s2i
-ge3so
ges2p
-ge3spa
ges4pi
gess2t
gest2
-gest4a
-gest6e
-ge4s3tur
get2a
-g1etap
-ge2thi
-ge5trei
-get1s
+ge3tan
+2getap
ge3t4u
2g1e1ul
-ge3unk
-ge1urt
-ge3u2t
-4g1e2x
-2g3f4
-gfi2l
-2g1g
+2g1ex
+2g1f4
+4g1g
gga2t
-g5ge
+g3ge
gge2ne
-gg2l
-g3gla
-g3glo
+g2g3l
+gg4lo
g2g3n
gg4r
2g1h
4gh.
-gh2a
3ghale
gh2e
3g2het
3g2hie
gh1l
3gh2r
-ghs2
g2hu
gh1w
gi3alo
gia2s
-gich2
-gicht1
gie3g
gi2e1i
-gi2e3l
-giel2a
-gie5n2e
-gi4eno
-gie3res
-gies4
+gi2el
+gien2e1
gift5s
gi2gu
-gi2kel
-2g1ill
-3gime
-gi2me.
+gi2m
gi4mes
-gi2met
-2gimp
-2gin2d
+2g1ind
gi3ne
-2g1inf
-2gin4h
+g1inf
+gin2ga
2g1ins
-gin2sa
-2g3int
-2gin2v
-gi2ob
2giok
2g3isel
-git2a
-gitt6e
+gi3t2a
gi4us
2g1j
-4g3k4
-gl2
+4g3k2
4gl.
+gl2a
4g1lab
-2g1lac
-2gladu
+g1lac
+g2lade
2g1lag
-2g1lam
2gland
-gla2s1c
-glast4
-gla4str
+gla4s3ti
gla4stu
3g2laub
-2g1lauf
-g1lÃĪd
-2glÃĪnd
-3glÃĪs
+4g1lauf
g1lÃĪß
2glÃĪuf
-gl3b
g2l4e
-2g3le.
-3glea
+2gle.
+3gle3a
2g3leb
g3lec
-4g3led
-g3lee
-2g3leg
+g3leg
2gleh
-g4leic
+3gleic
4g3lein
-gleiter8s
glei4t5r
g3len
-4glenk
4g3ler
-glerei4
2gles
-3gles.
g3lese
-g2lia
+g4lia
2glib
3g2lid
-3g2lie
-4g3lieb
+g2lie
2glif
g2lik
-4glil
+2glil
g2lim
-2glin
+4glin
g2lio
2glis
-g2lit
-g3lite
+g3lisc
+3g2lit
g2liz
-g3lize
-g2loa
-g2lob
-g2loc
-2g3loch
-g2lok
+3g2loa
+3g2lob
+4g3loch
+glo3g
+3g4lok
g2lom
-g2lop
-2glorb
-2glos
-g2lot
-2glÃķch
+3g2lop
+g2lor
+3g2lot
2glÃķs
-2glÃķw
2gls
-g1lu
+g1lu2
2g3luf
-2gluk
-2g3lun
+2glun
+4glu3s
g2lut
-3g2lÞ
-g3lÞg
-2glw
-3g2ly
+g1lÞg
+g2ly
2g1m2
-gmen4tr
-gmi2s
+gmÞl3
g1n
2gn.
g2n2a
g4na.
-2gnac
-g4nad
-2g5nah
-gn4al
-gna4l3er3
-2gnanl
+4gnah
+3g4nat
3g2nÃĪ
-2gnb
-2gnc
-2gnd
gn2e
g3neh
-2gn3ent
+2gnel
gne2tr
-2gnf
+2gneu
2gng
-2gnh
g2nie
g2nif
g4nin
-2gnint
-2gni2s3
-gnise2
-2gnk
-2gnl
-2gnm
+2gni2s1
g2no1
-3g4non
g3not
2gnp
-2gnr
2gns
2gnt
2gnu
3g2num.
g2nÞ
-2gnv
-2gnw
g2ny
2gnz
go4a
goa3li
-g1ob
-gobe3l
-2gobj
-g2ob2l
2g1o2f
2gog
-2g1oh2
-goh3ren
+2g1oh
go1i2
gol2a
-gol2da
-gol2fr
-3gon.
-go4nat
-gon2e
-3gons
-3g2opa
-gopf4
-go2pos
-2gopt
-gor2a
+2gonis
+2g1ope
+2g1opf
+g2o1ra
2g1ord
-2g1org
-go2si
-go3sl
-go2sp
-2g1osz
-3goß
-go3t2h
-got6terb
+2gorg
+go2s
+go3th
got6t5erg
-3gou
go1y
-gÃķ2f
-g1Ãķl
-3gÃķt
-2g3p4
+2g1p2
2g1q
g2r4
-g4rab
-gra2ba
gra2bi
-gra4bl
+gra2bl
2g3radl
2g3rah
-2g3rak
-gram1
+4g3rak
grammen6
gram8m7end
-gram6mer
-g3rand.
-2gra2r
-grar1e
-gra4s3a
-gra4sh
-gra4sp
-gra4str
-2g3raub
grau3f
-2graum
-grau3sk
-2grÃĪd
grÃĪs5c
-g3rÃĪu
+2g3rÃĪu
2g5re.
g4reb
2g3rec
-g3rede
+2g3rede
g4re2e
-2g3ref
-gre2fr
-2grege
2g3reic
-grei4fr
-2g3reih
-g3rein
+2greim
+2g3rein
g3reit
-3g4rem
-3gren
-4g3renn
+g3rek
+g4rem
+2g3renn
gre3no
gren6z5ei
-grenz3w
g4rer
-2grese
-gres6ser6
g3ret
g3rev
2g3ric
gri2e
-2g3riem
g3riese
+3grif
2grig
-gril4la
-4g3ring
-4g3rinn
-gro2b3a
-gro3ber
+2g3ring
gro2bl
-gro2b3r
2groc
2groh
-2g3rol
-gros4
+gron4
+gros2
2g3rose
-g4ross
gro5sse.
gro7ssen.
gro7sser.
-gro7sses.
+gro5sses
g4roß
-g4rot
+gro4u
2grÃķh
-2gruf.
-g4ruft
-2g3ruh
-g3rui
+g4ruf
+2g3rui
2g3rum
grun2g
-3grup
-3grus
+3g4rup
grus2s
gru3sse
-3gruß
-2g3rut
+2grut
2g3rÞc
-grÞs2
+3g4rÞn
4gs
g2sa
-gs3a2b
-gs3ach
-g3sack
+gs1ac
gsa2d
-gs3a2k
-g3s1al
-g4s3alb
-g4sall
-g4salm
+gs1af
+gs1ag
+g4s3a2k
+g3sal
+gs3all
g4salt
-g4sama
-gs1amb
-g4samp
-gs3ane
-gs3a4p
-gs3a2r
+gs3ama
+g4s1amb
+gs3an
+gs3ar
gs1as
-g3sat
-gs3ato
-gsau2g
-gsau4r
-gsa2v
gs1ÃĪ
-g3sc
g4sca
g4sce
gsch4
g4schef
-g5s2chi
-g5schn
-g4sco
-gs3d
+g5schÞ
+gs3cr
g2s1e2
-gs2e3h
-g5s2eil
-gse4kl
+gse3e
+gs2eh
+g3s2eil
g3sel.
-g4s3ela
g3seln
-gs3em
gsen1
-gs2enk
-g4sent
g4ser
-g3sere
-gs3er1i
-g4se4s
+gser5f
g4seu
-gsfi2l
-gsgene4
-gs3ha
g2s1i
gsi2d
g3sig
-gs3i2k
-g3sil
-g4s3io
-g4sis
-g4sita
-gs2ki1e
-gsmas8sen
+g5sil
+gs3l
gs1o2
-gso4b
-g5son
-g2s3op
-g5s4orge
-g5soz
gs1p4
-gs2pac
-gs4pant
-g5spei
g3s2pek
-g3s2pi
-g5spie
+gs4pie
gs3pl
-g5s6port.
-g4s3pru
+g5s2por
gsrat4
-gs3s4
-g2s1tab
-g3stad
-g2staf
-g2s1tÃĪt
-gs2te.
-g5stein
-gst2el
-g5stell
-gs4tem.
+gs3s2
+g3star
+gs1tau
+g4s1tÃĪ
+g5stÃĪm
+g5stel
g4stemp
-gs4ten.
-gste2r
-gs4ter.
-gs4tere
-g6sterei
+gst3ent
g4sterm
gst3err
-gs4tes.
-g4stest
-g5steu
-gs2thy
-g3s2ti
-gs3tie
-gs3tis
+g4s3test
+gst2he
+g3sti
+gs1tis
g3sto
-g4stoch
-g4stod
-g4stor
+g4ston
+gs1top
+g4s1tor
gs1tot
gst4ra
gst5reit
-gst4res
-g4s3treu
-gst3rit
+gst4ri
+gst5rit
gst3ros
-g2stru
gs1trÞ
-gs1tur
+g3stun
+gs1tÞ
+gs2tÞc
gs1u
-gs3un
-gsÞ3s
g3sy
4g1t
g3te
-gt1h
-gt2hy
-gt2i
gti2m
-g3to
gt4r
gt2se
1gu
-gu4ale
gu1an.
gu1ant
gu1as
@@ -8000,600 +5066,372 @@ gu2e
guet2
2g1u2f
2g1uh
-gu3ins
+gu1ins
gu1i4s
-gum2e
3gumm
-gummi1
-gun2e
2g1unf
+g2ung.
gunge2
4gungew
-2gungl
-2g1u2ni
+2g1ungl
2g3unk
-2gunr
-2gunt
+g2uns
+2gunt2
3gur
-gure4
4g1url
-gur2t3h
-gur2tr
gurt3s
-gu4s3a
-gu2sÃĪ
+gu2s3a
guschi5
-gus3se.
-gus3ses
-guss1o
gus2sp
gus4st
-gust3a4b
-gu4stap
-gu6stein
-gu6st5en6d
gu3sti
-gu2str
gu2ß1
-gußt2
gu2t
gut1a
-gu3te
-gu4t3er4h
-gut1h
-gut2s3p
+gu4t3erh
+gut3h
2gÞb
-3gÞr3
+gÞr1
gÞ3st
-2g3v
+2g1v
2g1w
-gy3n
-gy4na
2g3z2
-gzeu4gi
-2ha.
+3haa
hab2a
hab2e
-hab2i
-h1ablu
2habn
-h1a2br
-h1abs
-2habw
-ha4ch3en
ha2cho
-2hada
ha2del
-hade2n
+ha4din
h1adle
-h1a2dr
-ha3dri
-2hae
-ha3el
-ha4far
-haf2e
-h1affÃĪ
haf3f4l
-h2aft
-haf2tr
haft2s
hafts3p
-hag2a
-h2agg
-ha3ha
+h1ah
h2ahs
-h2ai
-3hai.
+ha3ia
h2aj
2haka
ha1kl
2h2al.
-ha3l2al
halan4c
-h1a2lar
ha2lau
hal2ba
-hal4bel
-hal4bin
-hal2b3r
-hal2bu
+hal4bei
+hal4b3r
2hale
-2halh
-hal2i
-2halk
hal4lei
-hal6lere
-haller6f
-hal6lerg
+hal6lerf
hal4leu
-hal4lo4k
-ha3lo
-4halp
-hal2sp
-hal4tal
-hal4tei
-hal2t3r
-hamot2
-2h1amt
-ham3te
+hal4lok
+h1alp
+halt5r
+h1amt
h2an.
-2hana
-ha2nal
-ha2nan
-han2au
2hanb
-h2anbe
h2and
han2da
-han4d3er
-han2d3r
-ha2nem
-han2f1
-han6g5end
-han4gro
-hang3s
-han2k1
-2hanl
-2hano
+han2kr
+h4ann
2hanr
-2hanz
+2hant
hao2s
-2h1ap
-3h2ape
+h1ap
ha2pl
-ha2po
ha2pr
h2a3ra
-ha4rab
2harb
-2harc
h2ard
-har2fr
h1arm.
har3ma
-h2arme
har4me.
-har4ne
-ha2rom
-2hars
-hart4e
+har4mes
har2th
h1arti
-har2za
h2as
-2has.
2ha3sa
-has2c
-has4h3
-has4sa
-hasser4
-hass1t
-ha4str
+hasi1
ha2ß1
-h1aße
-ha2ta
-hat2i
-h3atl
-ha2t3r
-2hats
hatt2
-h3attr
-h1audi
-h1aufb
hau5f6lie
-hau3f4lo
2h1aufm
-h1aufs
-h3au3g2
h1aukt
hau2sa
hau4san
-hau2s1c
-h2ause
-hau4sel
-hau6s5ent
+hau2sc
hau4spa
-hau4spe
hau4ss
-haus5sen6
+haus5sen
hau4s3ti
hau4sto
-hau4sur
h2aut.
-hau2t1a
-hau2t3r
-ha2ve.
-hÃĪde2
+hau6terk
+2hauto
+hau2tr
h1ÃĪff
-2hÃĪi
-hÃĪ2kl
-2hÃĪrz
+h1ÃĪrz
hÃĪ4s
hÃĪ5sc
hÃĪ6s5chen
-2h1ÃĪst
-2hÃĪug
hÃĪu2s1c
hÃĪ3usp
-2h1b4
-hba4ras
-hber2e
+2h1b2
+hba2r3a
2h1c
2h3d4
hdan2
2hea
he2ad
+hea5t
he3be
-heb3eis
-he2b3l
+he4b1ei
+he2bl
he3br
-he3bu
+he1ch
he3ch2e
-he3chi
-he1cho
-h3echs
+h3echt
hed2g
-he2dit
-he1e4m
-hee2n
+he3di
+he2e3l
hee2s
-he1e2t
-h2ef.
-he3fab
he2fan
-he2fau
+he2fÃĪ
he2f1ei
-he3f2em
hef3erm
2heff
he2fid
-he4f3in4g
-he2f5le
-2hefr
-hef4ra
-he2fre
-3heft
+he4f3ing
+he2f3l
+he2fr
+he3fri
he2fu
he3gu
-he2hel
-hei4a
h4eib
h1eie
h1eif
h1eig
he2im
-hei4mal
-hei4mar
-hei4mei
heim3p
hei4mu
2hein
-hei4na
heine2
-hei4n3eb
-hei6nene
-hei4n3er
-h3eintr
-2heio
-2he1ism
-heis4s
+4heio
+he1ism
he1i4st
-h2eit
heit4s1
h1eiw
-hekt3a
-he2la
-he3lag
-hel1an
-hel3au
+he2l3a
hel1ec
-he2lek
-h3elem
-he2len
-h2elf
+h3e2lek
+he3len
+hel3ers
he3li
-hell2a
hell3au
-hel4lic
hel4mei
-he3l2or
+he3lo
+he4lof
he2lÃķ
-4helt
-h4em.
-2hema
-hema4s3
-hem2b
-1hemd
-2heme2
-h2e3m2i
-he4mia
-h3e4miss
-1hemm
-2h3emp
+3hemd
+he3mi
+3hemm
+4h3emp
h2en.
-he4n3a2
+he4na2
+hen3a4g
he2nÃĪ
-hen3ebe
-henen1
+he2n1e2b
hen3end
-he4nene
-he4nens
hen3erg
-he4nerm
-he2n1e4t
-2henga
-hen4gag
-hen4kan
-hen4kau
-2heno
-heno3t
-hen4sem
-hen3st2
-hent2a
-hen3te
-hen4ter
-hen3tr
+he2net
+heng2
+2heni
+he2no
+hen3sk
+hen3s2t2
h1ents
2h3entw
-h3entz
-he4n3u
-hen3z2
-2he2o
+hen3z
+4he2o
he3on
he3op
he3pa
he3ph
-h1e2pi
-hept2
h2er.
her3a2b
-he2rad
+he2ral
2herap
-he4r3a2r
+he3ras
herau2
-herb2
-he2r1e2b
+herb1r
+her4b3ra
he4reck
-her4eif
-4he3reig
-he6reis.
-her7eises
+4hereig
+he4r3eis
he2rel
-he4rene
-he6rersc
he4rerw
-h1erfo
-her4fol
-6hergebn
-2herif
-herin4d
+h1er2fo
+h3erfÞ
+herg2
+her2ho
+4herif
herin4f
he6rin6nu
herin4s
+herin8ter
h1erke
-her4klÃĪ
-h5er6kran
-h6erlad
+h3erlau
2herm
herma3s
he3ro
he4r3o4b
-he4rof
-he4rop
-he4rot
-h1erÃķr
-her3sta
-hert4
+h1erÃķ
+hers2t
+hert2
her3th
-her3um
-her4zap
-her6zeng
-4h3erzeu
her2z1w
-he3sa
-2hese
-he3si
-he3s2p
-hes2t
he2tap
-he3tÃĪ
heter2
he3th
het2i
he3t4s
-he2u
+h2e2u
heu3g
-he3unt
3heusc
he3x
he1x2a
-2hexp
-hey2
-he1ye
+he1y2
1hÃĻ
-4h1f4
-hfaller6
-hfan2
-hfel2l3
+2h1f4
+hfell1
+hfel6ler
hfi2s
-hflei2
-2h3g4
-hgas1
-hga4sen
+2h3g2
+hget4
2h1h2
hhoh2
4hi.
2hia
-hi2ar
-h1iat
-2hic
+hi2ac
+hi2ang
+h2ias
hi1ce
-hich6t5er
-hicht6sp
-hi3d
-hid4e
-hi4dio
-2hido
+hich6ter
+2hi3d
+h2ide
+h1i4di
hi2e
hi3ens
-hie4rei
-hier3i
+hier1i
hie4rin
-hiers2
hif3f4r
-hi2k3r
+hi2kr
hi2l3a4
-hile3n2
hil2fr
-h2im
-2hima
-h1imb
-h3i4mit
-h4imm
-h3impe
hi2n
-hi3nak
-hi3nam
-hi3nap
-hi5n2as
-h2inde
-hine2i
+h1indu
hi3nel
-hin2en5
+hin2en
h1inf
h1inh
-2hi3n2i
+hi3n2i
hin3n2
-hi3n2o3
+hi3no
hin2t1a
2hio
-hi3ob
hi4on
-hi2p3
-hi4pl
-hi2r
+hi3or
+2hip1
+hip3f
+hi2ph
+hi2pi
+h2i2r
hi3ra
-hi3re
+2hi3re
hi3ri
-hir2m1a
-hir2mi
hirn1
hir4ner
+hi3ro
hir2s
-1hirt
-2his.
his2a
hi2se
-h1i2so
hi2spa
-hi3tac
-hi2tan
-hi2tel
-hi3t2i
-hit1r
-hi2tro
-hit3z2e
-hi2v1o
+hi3ti
+2hiu
2h1j
2h1k4
-hkamp2
-h2keu
-hki2n1
hklo3s
-2hl
+4hl
hl2ag
-hla2gr
hlam8meng
-hlan4d3a
+hla2n
+hl1anz
h1las
h1lat
h1laut
-h1lay
h3lÃĪche
h3lÃĪd
+hl1ÃĪr
h1lÃĪs
h1lÃĪß
h1lÃĪu
hlb4
hl3d4
-h3le.
-hle3a
h3leb
-h3led
hle3e
+h3lein
h2leis
-h3leist
-hl1el
h5len.
-hle4nas
-hlenen3
+hl2eng
hl2enn
-h4l3entr
-h4lents
-hl2enz
h3ler
-hle2r3a
-hl4ere
-h2lerg
-hler4hÃķ
-hl2erk
+hle2ra
+h2l1erg
h6l3er4nÃĪ
hle3run
hl1erw
h4lerz
h3les
h4lesi
-hlf4
+h3lex
hlg4
h2lie
-h3lied
h2lif
h2lim
hl1ind
-hling4s3
h2lip
h2lis
h3list
-h2lit1
-hl3l2
+h2lit
+hl3l
hlle3b
-hl3m2
hlma3s2
h2lo
-hl1ob
h3loc
-hl1o2f
-h3log
+hl1of
hl1op
h4lor
-hlo2ra
-h3los.
+hlo2re
h3losi
-hlos4st
-hlo2ß1
h2lÃķs3
hlÃķ4ss
-hl4sar
hl2ser
-hl3ska
-hl3s2lo
-hls3tie
+hl3sku
+hl3slo
+hlst4
+hls2te
+hl2sto
hl3str
-hl2su
hl3t2
h3luf
h3luk
h3lumpe
h1lÞf
-hlz2
2h1m
+h2mab
h3mad
h3mag
-h3mak
h3man
-h2mant
h3mar
-h4marc
h3mas
hma3sse
h3maß
@@ -8601,64 +5439,43 @@ h3mÃĪ
h4mÃĪc
h4mÃĪh
h4mÃĪl
-hm2e
h3me.
-h3med
-hme1e4
-hmeer4s
-h3mein
+hme1e
+hme1in
h3meist
-h3meld
-hme3le
h3men
hmen2s
-hme4ran
-hme4rei
-h3mex
-hmi2e
-h3mind
-h3mini
-h3minz
-h3mirr
+hme2ra
h2mo
-h3mop
-h3mot
-h3m2Ãķ
-h4mÃķl
-hm3p2
+h4mon
+h3mÃķ
+hm3p4
hm2s1p
h2mu
h3mul
+h3musc
h3musi
-hmut4s
2hn
h2na
-h3nag
h3nam
-h4nar
-hn3a2te
-h4natt
+hn1an
h3nau.
+h2nÃĪ
hn1ÃĪh
+hn1ÃĪr
hn3d4
hn2e
hne3b
-hne2e3
-hn3eff
+hne2e
hn3eig
hn3ein
h2nel
-hne4n
-hn4eng
+hne4n1
hne4pf
h3ner
-hner4de
hner3ei
-h4n3e2ro
-h4n3ersa
+h4nersa
hn3ex
-hn3f4
-hnflei4
hnhof8stra8s
h2nic
h2nid
@@ -8666,98 +5483,67 @@ h2nie
hn1im
hn1in
h2nip
-hni4sa
-hnk4
-hnno2
-h2no2r
-hnra2
-hn3sa
-hn3s2p
+hn3k4
+h2nor
+hn3s2k
hns2t
hnsuch4
hntra4
hnts2
+h1nu
+h2nuc
h2nul
-h2n1unf
-hn3z2
-ho4ar
-ho3bern
-ho2b3l
+hn1unf
+h3nunge
+ho2bl
ho2c
hoch3
-hoche2
hock3t
2hod
-2ho2e
-hoe3n
-ho3er
-ho4f1a4
-ho2fÃĪ
-ho2fed
-ho2feu
-hof3f4a
-ho2f3l
-ho2f1o
+hoe4
+ho2ef
+ho4fa
+hof3fa
ho2f3r
-ho2fu
2hoi
-ho2l1a
-hol3ar
-1hole
+3hole
ho2l1ei
-ho2lem
hol3g4
-hol3k
-holl4
-2holy
-h3olym
-1holz
+ho4lor
+3hols
+h1o2ly
+3holz
hol6zene
hom2e
-ho2me.
ho2mec
ho2med
h2on
hond4
-hon2er
-ho1on
-hoo2r
+hono3
+2hoo
2hop
-h1ope
ho1ra
-h1o2r2an
-ho2rau
-h1or3d
-2hore
-ho4rens
-ho3ret
+hor3d
2h1org
-hor3ta
-hor4ter
-hort3s
-h1ortu
-h2os.
-ho3se2
+ho3se
ho4sei
ho3sl
-ho4sla
+ho4sta
ho2str
-ho4ßene
2hot.
ho3th
-2hotr
+hotli4
2hot1s2
-1hou
-hou4s
+3hov
2ho2w1
-h1ox
+h1o2x
ho1y2
hÃī1
1h2Ãķ
-2hÃķ.
hÃķ2c
-5hÃķhe
-2hÃķ4s
+3hÃķhe
+h4Ãķr
+hÃķ4s
hÃķs1c
hÃķs3se
h3Ãķst
@@ -8765,105 +5551,84 @@ h3Ãķst
h1q
2hr
hra2b
-hr3ac
+hr1ac
hr3ad
-hr1a2g
-h1r4ah
h1rai
h1rane
-hr3ap
-hras3s
h3rÃĪu
-hrb4
hr1c
hr3d
h2rec
-h3r2ech
+h3rech
h3red
h3ref
-hr3eff
-h2r1eh
h4rei.
hrei4ba
-hrei4br
h3reic
-h3reif
-h4r3eig
-hr4eini
-h4reinl
-hrei3th
+h4r1eig
+h3rel
+h3ren
h3rep
-hrer6geb
-hr2erh
+hr4erbe
+hr4erbu
+hr2erg
hr2erk
-h4rerla
+h4rer4la
+h3rerle
h6rer6leb
+hr6erlei
hr2erm
-hrer4sa
-hrer5st
-hr2erw
hr2erz
h3re2s1
-hres5s2
-hrest2
hre2t
h2r1eta
-h2r1eu
-h2rev
+h3rev
hrg2
-hrga4
-hrgu4
h2ri
h3ric
h4rick
hri4e
h3riesl
h3rin
-h4r1ind
-hr1int
+h4rinh
+hr1ins
h4rist
hr3l
-hr3m2
-h3rog
+hrm2
+h2rob
+h2rof
h3roh
-h1ro2l
-h4romat
+h3rol
h4rome
h4romi
-h4romo
h4ron
-h1ropa
-hro4r
+h2ror
h3rou
-h3rÃķ2s
+hrr4
hr2s1ac
-hr4s3and
+hr4s3an
+hr2sau
hr3sch
-hr2s1em
-hr2sen
-hr3sena
-hr2s1er
+hr2s1en
+hr2ser
hr2set
-hr4sh
-hr2sin
+hr2s1in
hrs3k
-hrs3l
hr2s1of
-hrst2
hr4stec
-hr6stele
hr2su
-hr2tab
+hr4sw
+hr2t5ab
hr2tan
-hr2te2l
hr2th
-hr2top
-hrt3ric
-hrt2s
+hr2tor
+hrt3ri
+hr2tro
+hrt2sa
+hrt2se
hrt4ste
h3ruh
hr1ums
-h3rut
h3rÞ
h4rÞb
h4ry
@@ -8871,88 +5636,43 @@ hrz2
4h1s
h4s3acht
h2sa2d
-h2s1alk
-h2sall
h4samt
h2san
-hs3and
-h2s1as
-h2sath
-h2sato
-h2saud
-h4s3aur
-h2saut
+h2sau
h2sÃĪh
-h2sÃĪug
+hsÃĪ4s
h3sc
h4schan
-hs2cr
-h3se.
-h2s3ec
-hse4e
-h4s1ehr
-h2s1eie
-h4seind
-h6seinst
-h3sele
-hse4lin
-hs1emi
-hsen5erg
-h2s1ent
-h2s1erf
-hs1erg
-h2serh
-h4serkl
+h2s1ec
+hse4ler
h2s1erl
-hs1ern
-hs4erne
-h2serÃķ
-h2s1erw
-h2serz
-h2sex
-h3s2ext
-hsha2k
-h2s1i2d
-hs2im
+h3s2ex
h2s1ing
-h3s4inni
-h4s1ita
-hs2kal
-h3skand
-hs1of
-h2sofe
-h2sop
-hs1org
+h2s1o2f
h2spac
-h4s3pani
h2s1par
-h2s1pat
-h3spec
-h3spei
+hs2pen
h2sper
h2sph
-h2spo
-h3spoi
+hs2por
h2sprÃĪ
h2spro
hss2
h2staf
hst3alt
hst2an
+h4starb
h2stau
h2stÃĪl
-h2stÃĪu
h4stea
-h4stele
-h4sterm
-hs3tier
+h5stel
+hst2he
+hs1tie
h2stin
-h2stit
-h2s1tol
h2s1tor
h3stÃķ
-h4s3treu
-hstro2
+h3str
+hst3ran
h2stu
h3stun
h3stÞ
@@ -8961,150 +5681,96 @@ hs2ung
h3sy
4h1t
ht1a
-h2tab
-hta2bl
-h2ta2d
-ht2ag
-ht4akt.
-ht4akte
-h2tall
+h2tak
+h3t4akt.
+ht2al
h2talo
-h2talp
-h2talt
+ht3alt
hta2m
-h2ta2n
+h2ta4n
ht3ane
h3tank
-h2tap
-h2ta2r
+h3tann
+h2tar
ht2as
-h2t3asi
+h2t3ass
h2tasy
-h2t3at
-h3tat.
-h3tate
+h2t3a2t
h2tau
-h3taug
-h4tax
-ht1ÃĪ
-h2tÃĪr
+ht3aug
+h2tax
+h2t1ÃĪr
h3te.
-ht3e4ber
ht1ec
-hte3cha
-h2t1e2d
-ht1eff
-ht1e2he
+h2t1ef
+ht1eh
+h3teha
+h3tehÃĪ
+hte2he
h2teif
-h2t1eig
-h4t3eilz
+h4teilz
h2t1eim
ht1ein
h2t1eis
h2t1eke
-ht3elas
-hte6l5ei.
-h4telek
-h4t3elfe
h4t3elit
-hte4m
-ht1emi
h2temp
-h3ten.
-ht3engl
-ht3enta
h4tentf
+h4t3ents
hter6de.
-hterer6s
-ht3erfo
ht3erfÞ
-h6terfÞl
-h6tergeb
ht3ergr
-hter6gri
-ht1erh
-hter6hÃĪl
-hter8hÃķhu
-h6terleb
+h2t1er2h
+ht5erken
+h4terkl
h6t5erleu
-h6terneu
-ht5erspa
-hter8spar
-ht3erst
-h6tersta
-hter6tra
-ht3erwÃĪ
-ht3erze
+h4t3er4re
+h6t5er6spa
+h4t3er4st
+ht6erste
+h2t1erz
h2t1ese
h2t1ess
-h2teta
-hte4th
h2t1eu
-h3teum
-h3teun
-h4textr
-h2t1h
+h2t1ex
+h2th
h4thei
-h3thera
-h3thes
-h4tho
-h2t1i2d
-h3tig
+hthe3u
h2t1im
-h2t1i6n3
-ht3ine
-h2t1is
-h3tisc
-hti3t4
+h2t1in
+h4tl
htni2
-h2t1ob
-hto2d1
-h2t1o2f
-h2t3oly
-h2tope
-h2tord
+hto2
+h2toly
+h2torg
ht3rak
-h3tran
ht3rand
-h4t3ras
-ht6rates
+h2t3ras
+h2t3rat
ht3rau
h4traub
ht6raume
-ht3rec
-h3treck
-ht3rei
-h2t3res
-ht3ric
-h4t3rieg
-h2t3rin
+h3trec
+ht3reif
+ht3reit
+ht4ri
+ht5rieg
+h2t5rin
h3trit
-h2t3rol
-h2t3ros
-h2t3roß
-ht3rÃķm
-ht3ru
+ht3ro
+h2trol
+h2tros
+ht4rot
+ht3rÃķs
+h2t3ru
h2t3rÞ
h4ts
-ht2sah
-ht2sal
-ht4s3a4n
-ht2scr
-ht4sein
-ht2sel
+ht4s3an
ht4s3end
-ht4seng
-htse2r1
-hts3eri
-htsha2
-ht3s4hak
-hts3kr
-ht2s1o
-hts3par
-hts3tÃĪt
-ht4s3tem
-hts4tie
-ht4stip
+ht4spin
+ht3spri
+ht4stab
+hts2ti
ht4s3tur
ht4s3tÞr
htt4
@@ -9115,418 +5781,268 @@ ht3z2
hu2a
hu2b1a
hu2bei
-hu4bel
-hu2b1en2
-hu2bi
+hu2b1en
hu2b3l
-hu4b5r
+hu4b3r
hu2bu
-hu2fa
-hu2h3a
+hu2h1a
hu2h1i
-h1uhr
-h1uhu
-hu2kÃĪ
-hu2k1in
huk3t4
-hu2l3a2
-hu4lab
+hu2l3a
hu2lÃĪ
-hule2
-hu2l1eb
-hu2l1ei
-hu2lem
-hu4l3eng
+hu2l3ei
+hu4leng
hu4lent
-hu2l1er
+hu4ler
hu2let
-hu2lid
hu2l1in
-hul3l2
+hul3l
hu2lo
-hu2lÃķ
-hul3s
hu3m2a
-h1umh
h1ums
hu2n
h1una
-h2und
-hun3d2e
-hunde3i
-hun2e
-2hunf
-hung2
-hun3ge
-hungsa4
-h1uni
-h1unm
-2hunt
+hu3ni1
h1ups
-2hur
-hur3g2
-hur2t3h
-hu3s2a
-hus3h
+2h2ur
+hurg2
+hu3sa
hu2so
-hus2s3a
+hus4sa
hus3se
-hus4ser4
-hus2s1o
hus2sp
hus4st
-hu2ß1
hu2tab
+hu3t2h
hu2ti
-hu2t1o
-hu2t3r
hut2t
hut4zen
hut4z3er
-hut2zu
h2Þ
-h3Þber
h4Þbs
h3Þbu
-hÞf2
-hÞft1
hÞhne4
2h1v
-hvil2
-2hw2
+hvi2
+hvil4
+2hw
h2wall
hwe1c
h1weib
h1weih
-hweins3
-hwein6sa
-hweis4s
h2wirr
-1hyd
-hy3dr
-hy2lor
-1hymn
-h1yo
-hy3os
-1hyp
+3hyg
+hyl4
+3hyp
hy2pe.
2hy2t
2h1z
hz2a
-h3z2o
+hz2o
hzug4
-h3z2w
-i3ad.
-iad2a
-i1adn
-ia3do
+i1a
+2ia.
+i4aa
+i2ab
+iab4l
+2iac
+i2af
iaf4l
-i2ago
-ia1h2
-i1ai
+i4a3g2
+i2ah
+i3ai
+i2aj
+i2ak
i3ak.
-i3ake
-ia2kei
-ia2kr
-i1akt
-i1al
-ia2l1a2
-ial3ar
-ial3as
+i3akt
+2ial
+i5al.
+ia2l1a4
ia2lÃĪ
-ial3b4
-ial3d4
-i3aleb
-i3alef
+ial3b
+ial3d
i3alei
-ia3lek
-i3alel
-i3aleng
i3alent
-i3alerb
-i3aler4f
+i3a4lerf
i3alerh
-i3a4lerm
-i3a2l1et
-i3alex
-i3a2lia
-i3alim
-i3a2lin
-i3al3l
-ial4ler
-iall2i
-i2alo
-ia2lon
-ia2lop
-ia2l1o2r
-ial3p
+ia4l3erm
+i3a2let
+i3a4lia
+ialk2
+i3al5l
+ia2lor
ial3s
-ial3t2
-ia2l3u2
+ial3t4
+ia2lu
ial3z2
-i1am.
-ia3ma
-iampe4
-i1ams
-i1an.
-i1an2a
+i2am4
+i4amo
+2ian
ia2nal
-ian3alt
-ia2nau
-i1anc
i3and2
-i3a2n1e2b
-ian2er
-i1ann
-i1ans
-ian2s1p
+ian2e
+i3ann
+i2a3no
i3ant
i3anz
-ianza4
-ia1o
-ia2op
-ia3p
+i2ap
+ia3pf
ia1q
-i1ar
i3ar.
ia2ra
-i2are
-iar3r
-i1as
-i3as.
+i2asc
ia3sh
i2asi
-ia1s2p
+i2a1sp
ias5s
iast4
i3at.
-i3at2h
-i4athe
+i3a2ta
+i4ate
+i3at4h
1iatr
i3ats
i3au
ia3un
iau2s1
-i2az
+2iav
2iÃĪ
-i1ÃĪ2m
+i1ÃĪm
i1ÃĪp
i1ÃĪr.
i1ÃĪrs
-i1ÃĪt
-i3ÃĪ4tem
-iÃĪ2ti
-iÃĪt5s2
-i1ÃĪv
-4i1b
+i1ÃĪt.
+i1ÃĪta
+i1ÃĪt3s4
+2i1b
ib1art
i2b1auf
-i2b1aus
-i2baut
ib3be
ib2bli
-i2b1eig
-i2b1eis
-ibe4n1
-i6ber6geb
-i4b3er4la
-ibe1ro
-i2bim
-i2b1in
-i2blad
-i2bleu
-i3blu
-i3b2o
+ib1ei
+i2beig
+i2beis
+ibe4n
+iben3a
+ibi2k
+i3bla
+i4blad
+i3blÃĪ
+i3ble
+i4bleu
+ib2o
i2bÃķ
-i2b3rau
-ib3ric
-i2b3roc
+i4brÃĪ
+ib3ren
ib2ser
ib4ste
-ib2un
-i2b3unk
-i2b3unt
-ibus3
+i2bunk
+i2bunt
ibus1c
+ibus3s
2ic
-i3ca
ic1c
-ich1a2
-ich6art.
+ich1a
ich1ÃĪ
i1che
ich1ei
-ich2er
-icherin5
ichermas8
ichgro3
i1chi
-ich1l
-ich3le
-ich3li
-i3ch6lo
-ich5m
+i2chin
+ich3l
+i3chlo
+ich3m
ichmas4
-ich3n
i1cho
-ich3ort
i2ch3r
-ich6sele
-ich2s1i
-ich6stie
+ich3ter
ich2tr
i1chu
ich1w
i1ci
-ickt2
+icks2
i1cl
-ic3la
-ic3ra
-i3cu
i1d
-2ida
-id2ab
+id2ab4
i3d2ac
-id4al
-id2am
-id1a2n
-i3d2ans
-i3d4at
+i3dam
id1au
-id2ax
-idÃĪ1
idbu4
-id2e
-2i3de.
-i2dea
-1idee
-id3eis
-2idel
-idel4ÃĪ
-i4demul
-4i3den.
-ide4n1o
-iden4se
-ide3ran
-iderin8nu
-ide1rÃķ
-ider6reg
-2i3des
-ide5sa
+1i2dee
+idein3
+i4deis
+idel2ÃĪ
ide3so
-ides2p
-1i2di2o
-idi4on
-i4diot
-2idk
+1i2dio
idni3
-id2o
i2dol
-2idoo
-i2dÃķ
-i2dr
-id4ro
+1idol.
+2i2dr
+i3dsc
id2s1p
idt4
1i2dy
-ie3a2
+ie3a4
ie2bÃĪ
ie2bl
-ieb3re
+ie2bre
ie2bri
-ie4b3rÞ
ieb4sto
+ieb4str
ie1c
ie2cho
-iech3t
-ie2d3an
-ie3de
ie2dr
ie1e2
-ief3akt
+ie2f1ak
ie2f1an
-ie2far
ie2fau
-ie2fÃĪh
-iefe2m
ief3f4
ief2i
ie2f3l
-ie4fonk
-ief1r
ie2fro
-ie2gl
-ieg5li
+ie4g3l
ie3g4n
-ie2g3re
+ie2g3r
+ie3g4ra
ieg2s
-ieg6s3c
+iegs1c
ieg4se
-ieg4si
-ieg6s1t
-ie3her
-ie2h1in
-ieh3r2
+ieg4s1t
i1ei
-ie1ind
i2e2l1a
-iela2r
-ie2lÃĪs
-iel3d4
+ie3las
+iel3d
i2ele
-ie4l1e2b
iel1ec
-iel3eid
-ie2lek
-i4elen
-ie4lene
-ie4leng
-ieler4e
-ieler6fi
+ie3lerd
ieler8geb
-ieler6ke
-ieler6la
-ieler8lebn
-iel4erw
-ieles2
+ie4less
i2eli
-ieli2d
i1ell
-ie2lo4b
-ie2lop
-ie6lor
+iel3lÃĪ
+ielo4b
i2els2
iel3sz
-ielt2
-iem2e
-iemis2
-i1en
+iel3ta
+2i1en
i3en.
i3ena
-ien1ag
-ien2am
-ie4nas
-i3enÃĪ
+iena2b
+ie4n3a4g
+i3e2nÃĪ
+ien3d
i2ene
ien1eb
-i3enec
-i3e2n1e4k
-iener6fo
-ien3er4g
-iener6la
-i3enex
+ie3ner
+ien4erf
+ie4n3erg
i3enf
-i3eng4
+i3eng
ienge4f
-ienge4z
i3enh
-ie2nid
-ie2nim
-ie4n3in
i3enj
i3enk
-i3enla
-i3enle
i3enm
ienma3s4
i3enn
@@ -9534,905 +6050,566 @@ i3e2no
i3enÃķ
i3enp
i3enr
-i3ens.
-i3ensa
-i3ensc
-i3ens2e
-ien3s2k
-i3ens2p
+ien3s2e
+iens2k
ien6st5er
ien6stop
iens4tr
ienst5rÃĪ
-i3en3sz
-ien4t3ar
-ien3te
-i3enth
-ien3tr
-i3enty
+ien3sz
+ie1nu
i3env
i3enw
i3enz
-ie1o4
-ie2r3a2d
-ier3al
+ie1o2
+iera2
+ier3ad
ier3an
ie2r3ap
-ierb4
-i3erbun
-ier3d
i2ere
-ie4reck
-iere5ins
-ie4r3eis
+ie3red
ie3r2er
-ierer3k
+ie4rerf
ie4r3erz
+ie3res
+i3ereu
ierf4
-ierg4
-i1ergi
i4eri
-ierk4
+ierin3
+ier3k4
ierken4
ierma6ss
i1ern
i3ern.
-iern2a
-i2erni
+i4erna
+i2er5ni
ie2rÃķ
-ier4re.
+iers2e
ier4s3eh
-ier3sei
ier3sta
ier3te
-iert2i
-ier3z2
-2ie3s2
-ie4san
-i2esc
-i2ese
+ie3s2
ie4sh
ie4s3k
-ies3o
-ie4sof
ie4spu
-iesser6g
-ie5sset
-iess3ti
+ies4s
+iess1t
+ie4stas
iest6e
-ie4stin
-ießer4g
-ie2t1ag
-ie2t1ak
-ie2tan
-ie2t1ap
-ie2tat
-ie2tau
-ie4tent
+ie2t1a
ie4t3erh
ie4t3ert
-i4ethe
-iet3her
-ie2t1ho
-ie2thy
-ie4tob
-ie2t1Ãķ2s
-ie2t3ri
+ie2t3ho
+ie2t1o
+ie2t3Ãķ2
+ie2tri
ie2t3ru
iet2se
i1ett
-iet3zw
ieu2e
ie1un
ie2w3u
-i1e2x
+i1ex
2if
-if1ab
-if3ange
if1ar
i2f3arm
if4at
-i2f1au
-if1ÃĪn
+if1au
i2fec
-i2f1ef
-ife4i
-if1ein
-if2e4n
-i2f1erg
+ife2i
+if2en
if1erh
if2fa
iffe4s
if6feste
-if2f3l
+if2fl
if4form
-if2fro
iff2s
-iff4ste
if3l
-if1lac
+i1f4la
if4lÃĪ
-iflo4
-if4los
i1flÞ
if3r
+if4ra
+i1frau
i1fre
-i2freg
-if4rev
-ifrÞ4
+if4rei
+if4rÞ
if3sa
-if2t3a
-if2ted
-if2t3ef
-if2t1ei
-if2te2l
-if2tep
-if4terk
-ifte4s
-if4t3esc
-if4th
+if2ta
+ift3erk
if2top
-if2t1r
-ift3ri
+if2t3ri
ift1sp
ifts2t
ift3sz
-if2tur
-i1fy
2i1g
-i2ganb
-i2garb
+iga1i
+i2g1ang
ig1art
iga3s
-i2g3att
-igd2
-i6gebrau
i4gefar
-ige4fÞg
-3i2gel.
-ige5lau
-i2geln
-ige4me
-ige4mis
ige4na
-ige6nene
-ige4nid
-igen5s
-ige2o
-ige2pa
ige2ra
+ige3ran
igerma3
-ig5erwer
ig1erz
-iger4ze
-ige4sel
-i2g1ess
-ige4tra
-ige4tre
-ige4woh
-i2gim
+i2g1im
i2gl
-ig1lau
-i3gle
-ig3lim
+ig1lÃĪ
+i4glo
ig4na
i4gnÃĪ
i3g4neu
ig4no
-igo1p
-ig3rad
-i2g3re
-ig4ren
+i3go
+ig4ra
+ig3rei
igro3
-i2grou
+ig3s2a
ig4sal
-ig3sÃĪ
-ig4schr
-ig1s2o
+igsau4g
+ig1so
ig1sp
ig2spa
ig4sti
ig4s1to
ig2stÃķ
-ig6stra6s
-ig4stur
+ig4s3tre
2i1h
+i2h1am
i2har
i3he
ihe1e
-ih1elt
ihe4n
-ihe3u
ih3m
ih3n
-ih3r2
+ih3r
ih2s
ih3sp
-ih3sti
-ih1um.
+i2h1um
ih1w
ii2
ii3a4
i1ie
-i3ig
+i3i4g
i1im
-i3in
+i1in
i1i4s
i2is.
ii3t
-i1it.
i1j
-1i2js
2i1k
-ika2ge
-ik1aka
-ikaken3
-i2k1akt
-ik3amt
-i2k1ang
-i6kantei
+ik1ak
+ika4ka
+ik1amt
+i2k1ano
ikanten8n
+ik1anz
+i4kanze
ik1art
ik3att
i2k1au
-i3kaz
-ik1ÃĪh
-i2k1ÃĪn
-i2kÃĪr
+i2k1ÃĪr
4ike
-i2keb
-ik1ebe
-i2k1ed
-i2k1ef
i2k1ei
-ike4l1
-ike2n1
-ik1en2s
-ik1ent
-ike2ra
+ik2e2l1
i2k1e4r2e
-i2k1er2f
-i5kerfam
+ik1erf
+iker6fah
i2k1er2h
i2ker2l
-i2kero
-i2ke3ru
i2k1eta
-4iki
i3ki.
-ik1i2d
-i3kie
ik1in
-i2kins
+i2kind
i2k3l
-ik4lÃĪn
-i3k4leri
-i3k4let
-ik4lim
-i3klu
-i2kne
-ik3nu
-iko3be
-i2k1off
-iko1p2
-ik1or
-iko2ri
+i3kla
+i3k4lÃĪ
+i2kn
+ik3no
+ik2o3p4
ikot3t
i2kÃķl
+ik3ra
ik3rÃĪ
ik3re
-i2kres
-ik4ris
-i3kro
-ikro3s
-i2krÃķ
-ik3sa
+ikro3
+ik3so
ik3s2z
-ik3ta
+ikt2e
ikt3erk
-ik4t3esk
-ik2t3re
-ikt2u
-i2k1uh
-i2kup
+ikt3r
+ik2tre
i3kus
-i2kÞ
i1la
-i2lab
-i2l1ac
+i2l3ab
+il1a2d
i2l1ak
-il1a2ma
-il1ang
-i2l1anm
-i2lano
-il2anz
-ilan6zer
-i2larb
+i2l3a2m
+il1ans
il1asp
-i2l1au
-i3laub
-i3l4aufb
-ilau2s1
+il1au
+il4aufb
+il3aus
+i2laut
i1lÃĪ1
-i2lÃĪr
-2ilb
-ilb4l
+4ilb
il2c
-il5chen
il2da
-il2dÃĪ
-ild3ebe
+il4dac
il4d3en4t
-il3der
-ild4erp
-ildi2
+il3d2er
ild1o
il2dor
il2dr
-4ile
il1ec
ileid4
il1ein
il1el
-i2lemb
-i2l1e2mi
-il1ent
-i4lentl
i4lents
-i2l1erd
-iler4ei
-i6lereig
-il1erf
-iler4fo
-i2ler2g
-i2l1er2h
-i4ler4kl
-il1err
-i4lerri
-i3l2erz
-ile4th
-il1ex
-ilf2
+i2l1erf
+i2l1erg
+i2l1err
+il2erz
il2f3l
il2f3re
ilf4s1
+ilg2a
il2gl
-2ilh
-2ili
-ili3e4n3
-iliga2
-ili4g3ab
-ilik4
+ili3e4n1
+ilig1a2
+ili4gab
i2l1ind
-i4l3init
-il1ins
i2l1ip
-ili1pf
-il3la
+i3lip.
+i3lips
+2ill.
+il3l2a
il4lad
-ill2an
-ill4ant
+ill4an
il2lÃĪ2
il2leg
ille4ge
-il4lenn
il3l2er
-1illu
+ill2i
+2ills
il2mak
-il2m1ap
+il4mang
+il2m3at
il2m1au
-ilm1ei
il2min
-il2mor
2ilo
-il1ob
-il2oh
-il4on
-il2op
-i2l1o2r
-i3lou
-i3lov
-il1ox
-ils3ent
-ils2to
+i2l1or
ilt2
il3th
-i1lu
-iluf4
+il3tr
+i1lu2
i2lum
-i2l1ur
i3lus
-ilÞ4
-2ilv4
+ilv4
il2zar
-il2zau
ilz3erk
-il2zwa
-imad2
-ima1i
-im2al
-i2m3anh
-i2mans
-i2marc
-im3aren
+2im.
+i2manw
i2m1arm
-i2m1art
im4at
ima2tr
imat5sc
ima4tur
-im1aus
-i2maut
-im3b
-i2meg
-im1ein
+2ime
i2mej
-i2mek
-i2mele
+i2m1ele
i2melf
-im2en
-i2m1er2f
-i2m1er2l
-i2m1er2z
-i4me3sh
-imes3s
+i3men
+i2m1erf
+i2m1erz
+i4mesh
i2meti
-i2mew
-imhau2
-i2mid
-im1i2de
-i2mim
-i2m1ind
-i2minf
+i2m1inf
i2m1ins
-3immatr
-immen1
-imm3ent
-im6menth
-im2mit
-1immo
-im4mo2d
-im2mÃķ
+im4m3ent
+im4mit
+im4mod
imni2
2imo
-i2m1ob
-i2m1o2p
-imo3re
-i2mÃķ
-1imp
+im1org
imp2fa
-im3pf2o
-imp2s
+1impo
+imp4s
im3pse
+1impu
+im2str
2imt
-imt2e
-im3t2i
imtu2
2imu
-im2um
-im1urk
-2in.
-ina2be
-in3abu
in1ac
+in3ach.
i4nack
-in1ad
-i3nald
-inaler4
-ina6lere
-in2alp
-i2n1am
-in2an
-in3an.
-in3ana
-in3ann
-i2narb
-in3att
+i2n1ad
+in2af
+ina4lin
+in1am
+i3nap
+in2ars
+in2art
+ina4s
i2n3au2
inaus1
-2inÃĪ
-i2n1ÃĪh
-in2ÃĪr
+in1ÃĪh
in1ÃĪs
-2ind.
-inda2
-ind2ac
+inbus2
in2dal
in2dan
-2indÃĪ
-2inde.
-2inden
-ind5erke
-inde3sp
+in3dau
indes4t
1index
-ind2i
-1indik
-in3dÃķ
+in3do
2indr
ind4ri
-ind3se
+in3drÞ
1indus
in3d2Þ
2ine
-in1ec
-i3nee
-i2neff
-in4elen
-ine2n1
-ine3nÃĪ
-i4nen4zy
-i5ner.
-i4n3erbi
-in4erha
-i4ner4he
-i3nerk
-i3n3erle
-i6ner6leb
+i2n1e2be
+in1ehe
+i2n1eng
+in3erbe
+i4nerbi
+in2erh
iner4lÃķ
i4n3er4tr
i3nes
-in2et
+i4nesk
in1eu
ine3un
-in3f4
-1infek
-1infiz
-1info
+ine2x
+in3f
+1info.
+1infos
2inga
-in2g1af
-in2g1ag
-in2g1al
-in2gam
-ing1ar
-2ingÃĪ
-3ingeni
-in3g2er
-in4g3er4w
-2in2gl
-in3gla
+ing1af
+in2g1a4g
+in2gl
ingmas4
-ing4sam
-ings6por
+ing3sc
+ing4sto
1inhab
2inhar
2inhau
-2inhe
-2ini.
-in2id
-ini3de
-2inie
+4inhe
+in2i3d
2inig
-inig2a
-ini3k4r
+ini3kr
+in2ir
2inis
ini3se
-init2
i3nitz
3inkarn
-1inkas
-in4k3ent
-ink4er
-in2kro
-inks1t
ink4ste
in3k2Þ
inma4le
2inn.
-inne4n
-in4ner4m
+in4n3erm
in2neu
in4ni2v
2innl
in2nor
+inn4sta
1innta
2ino
in1od
-ino3e4
in3ols
in1or
-i3no3t
-i2n1ou
+ino3t
i1nÃķ
in1Ãķ2d
+2inp
2inr
-2ins.
ins2am
-in6samt.
insch2
2inse.
in2seb
-2insed
2insen
-2insk
-3instal
+ins3ert
+in3skan
+in3skr
in4s3tÃĪt
-4inst2e
-3instit
-4instra
-in4strÞ
+ins2te
+ins2ti
+in3su
1insuf
-ins3umz
-in2sur
-in3sz
+in4s3um
+in3s2z
+i4nt
2inta
-2inte.
1integ
-in3tei
-2intep
-2int2h
-inthi1
-in3ti
-int2o
-2intÃķ
-2in3t4r
-4intrÃĪ
-3intrig
+int2h
+in3t4r
int3s
-i2n1u
-i4nuh
+in1u
+i3n2um
in3unz
-inu3t
-4inverm
-invil2
-i1ny2
-in3z2e
-inzel8ler
-in3z2i
-in3z2sc
-inz2u
-in3zw
+invil4
+i1ny
i1Ãą
2i1o
ioa4
-iob2l
io1c
io2d
-io3da
+i2oda
io3du
-io3e4
-i2of
+io3e2
iof4l
-i2oh
-io1i
-io3k6r
+i2o3h
+io2i3d
+io3k4
i3ol.
-i3ols
i3om.
-io3me
i3oms
ion2
i3on.
-ion3an
+ional3a
io2n3au
-ion3d2
-io4nee
-i3ono
-io2nor
+ion3d
i3on4s1
-ions3a
-ions3el
+ions3p
+ion3t
i2ony
-i2oo
i2o1p
-i3o4pf
+io4pf
+i3ops
i3opt
i2or
i3or.
i3orc
-ior2e
iore4n
-io1r2h
i3orp
i3ors
i3ort
-4ios
-i3os.
-io3sh
+io3s
i2ost
ios2u
-i2o3sz
-io3t
i3ot.
-iote3l
-iot4r
i3ots
i2ou
i2ov
-i3ox
-i2oz
+io2x
i3oz.
i1Ãķ2k
i1Ãķn
i1Ãķs.
-i1Ãķ4st
+2ip.
i1pa
-ip2an
i1pe
-i3ped
+ipen3
i3per
-2ipf2
-ip5fam
-i3pfan
-ipfe2
iph2
2i1pi
-ipi3a
ipi3el
ipi3en
-ip4lu
-i2poi
-ip2pan
-ip3pe
-ipp1f
-ip4pl
+i3p4l
+ip2pf
+ip2pl
i1pr
-ip2sa
-ip2sei
-ip2sp
-ip2sta
-ip4stÞ
-ipt2a
-ipt2i
-ipt2u
+2ips
2ipu
2i1q
-i1r4a
-i3ra.
-2i3rad
-i3ras
-irat4
+i1r2a
+i3rad
+1i2rak
+ira4s
+irat2
i1rÃĪ
ir1ÃĪh
-ir2b3l
+ir2bl
ir1c
-ir2ch1o
-ir4e
+ir2e
i3ree
2irek
-ire4na
-i3rÃĐ
irg2
+ir2gl
irg4s
ir2he
ir2i
-2i5rig
+2irig
2irk
-irke4n
-ir4kene
ir2k3l
-irk4s3c
-ir3k2u
irli4n
-ir2m1ag
ir2mak
-irm1au
+ir2mau
ir2mÃĪ
ir2m1ei
-irme4n1
-ir2m1o2
-irm4th
ir2mum
-ir4munt
+ir4m3unt
2irn
-ir2n3a
-ir4nat
+ir2nar
ir2no
-i3ro
+i1ro
+1iron
i1rÃķ
irpla2
ir2rei
irre4l
ir4reli
-ir2rh
-irs2
-ir3sche
+irr2h
ir4schl
ir4schm
-ir4sch3r
ir4sch3w
-ir3se3
+ir3se
ir3sh
-irt2s1t
+irt4s1t
2iru
-ir1u2m
iru2s1
-iru3te
-i3r2Þ
i1s
i3sac
-isa2m3
-i4samp
i4s1amt
is2ap
-isa2r
-i3sat
-is3att
+is3are
i2sau
-is3auf
-isau2g
-i2sÃĪh
i2s1ÃĪn
2isb
i2sca
-i2sce
-i4schar
i3s2che
i4schef
i4sch3e4h
-isch3ei
-ische4m
-i6schemi
-i6scher6z
-i4schin
-i5sching
-i2schl
+i4sch3ei
+i2sch1l
+isch3le
i2schm
isch3ma
-i4schna
-i4sch3re
+isch3ob
+isch3re
isch3ru
-i6schÞb
-i4schwa
-i6schwir
i4schwo
isch3wu
-i4schwÞ
-i2scr
+i2s3cr
2ise
-ise3a
-ise1e
-iseh2a
+ise3e
+ise3ha
ise3hi
-is4eind
-is2el
-ise3lad
-i6sel6ter
+ise3inf
+i4seint
ise2n1
-ise4na
+ise4n3a
is2end
-i4senho
isen3s
-ise4r3ei
-is1erg
i2serh
-iser4he
i2s1erm
-i2s1es2s
-i3s2et
+iser2u
+i2s1ess
i4s3etat
-i3s2eu
-2isf
-4ish
-2isi
isi2a
-i2s1i2d
-isi4de
-isik2
-i2sim
-i3sin3g4
-i4ski
-i4sku
-is3la
-3islam
-2isma
-2ismi
-ismu2
-is1of
-i3soh
-1i2sol
-2is4o2n1
+i2s1id
+i2s1of
+iso2n
isonen4
iso6nend
-isono2
-i2sop
-is1ort
-3isot
-i2s1ou
+is1op
+3i2sot
2isp
is1pa
i2spar
-is2pat
is1pe
is1pic
is2por
@@ -10441,2156 +6618,1353 @@ is3sa
is4s1ac
is4sau
is3sc
-iss5chen
+is4s3che
is3senk
-isser4f
issermas8
is3so
-is3sp
-iss2po
-is2st
+is3spa
+is4sper
+is3spo
+is2s1t
is3sta
is4ste
is3sto
-iss1tr
-is3strÃĪ
is3stu
is2su
i2stab
ist3ac
-is4tal
i4stam
ist2an
-i4s3tang
-ist4e
i4stea
-i4s1tec
iste4n
-istin4f
-ist6o
+is2ter
ist4ra
is3tras3
-i2strÃĪ
-i2stre
-is5tromm
+ist3re
+is1trÞ
i2stur
is1tÞm
-i3suf
-isu2m
+i2sty
isum3p
i2sÞ
-2isy
i1ß
-ißer4s
-iß3ersc
+iß1ers
i1ta
it1ab.
-it1abs
-i3t2ag
+i3tag
ital1a
ital5l
it1alt
-it1am
-ita3ne
+it1a2m
it1ang
-it3anr
-it1app
-it1a2re
+it3a4re
it1art
i3tat
it1au
i3tauc
i2tauf
-i2taut
+i2t1ax
4i1tÃĪ
-it1ÃĪnd
i2t1ÃĪs
itÃĪt2
i1te
-it1eff
-i2t1ei
-it2eic
-i4teig
-i4tein
-i4teis
+i2tei
+i4t1eig
+i4t1ein
2itel
-ite4l1a
-i4telek
-it1emi
-i2temp
-ite2n
-i3ten.
-i4tents
-i2tepo
-i6tereig
-i4t3er4fo
-iterin6d
-iter6klÃĪ
-it2erÃķ
-i8t7ersche
-i2t1es2k
-i2t1ex
-i3text
+ite2la
+ite4n
+itens2
+i4tepo
+i2tex
i3thr
i1ti
-i3tic
i2t1id
-i3tig
1itii
-it1in1
+iti4kan
+iti3k2e
+i2t1in1
+it2inn
i3tis
-i4tiso
-iti3sp
-i4tiss
+it3iss
i3tiv
-iti2v5a
-it5le
+i4tl
itmen2
-4i1to
-i3to.
-it1ob
+i1to
i3toc
-ito3d
i2t1of
-ito2p
-it2os
i1tÃķ
-4i1tr
-i2t3rad
-i3tradi
+i1tr
+i3tra.
it3raf
+it3ran
it3ras
it3rau
it3rÃĪu
it3re
-it4ret
-i3trie
-it3rob
it3rom
-i2t3run
-i2t3rut
-2its
+it4ron
+i3tru
+it3run
it2sa
-its1ag
-it2s1e
-it4se2h
-its3e2r1
-it4sh
-its1or
-it3spen
+it4s1a4g
+it2s1e4
+its3er1
+it4set
it4stec
it4s3tem
-it4sten
it4s3tes
+it2sti
+it4stie
+it2s1to
it6stra6s
-2itt
it2teb
it4temp
-it3ter
-itt5erfo
-itt3hÃĪ
-it2tob
-it2top
it2tri
-itt3ric
-itt6schi
-itt4se4h
-itt4sei
-itt4sor
-itt4sti
i1tu
it1uh
-it1ums
-it2ung
+i2t1um
i2tuns
-ituran4
it1urg
-i3tus
itut4
i1tÞ
-4ity1
-ityl2
2itz
-it2zec
-itz2er
-itz3erg
-it6zergr
-it4z3erl
-it2zÃķ
+it2zÃĪ
+it4z3er4g
it2z1w
2i3u2
-i4u3l
-ium3
-iuma2
-ium4se
-iun2
-iungs3
-i4up
-iu4r
+ium1
ius1t
-i1Þ4
+i1Þ
2i1v
-i2v1ad
i2v1ak
-i2v1am
-iv1an
-i2v1ÃĪ
+iv1ang
i2veb
-i2v1ef
-iv1ei
iv1elt
ive4n
iv1ene
i2v1ent
-i2v1ep
-ive3re
-iv1erh
-iver4kl
iv1erl
-iver3s
-i2v1ex
-ivil3l
-i2v1im
-i2v1ind
-iv1int
-i3vol
-ivo3re
-i2v1r
-i2vun
i2v1ur
-i2vÞ
2i1w
+iwur2
2i1x
i2xa
ix2em
ixt2
-i1y
4i1z
-iz1a
-iz2ac
-i2zag
-i2zan
-i2zap
-i3z2as
-i2zau
-i2zÃĪ
-i3ze
+iz1ap
+iz1au
iz2ei
izei3c
-izeit3s4
-i2zele
ize2n
-i4zener
-i4zentz
-iz1erg
-i4z1erl
-izid3
-iz1ir
-izo2f
+i2z1ene
+iz4er
+i2z1ir
+izo2b
i2zÃķ
-i2zuna
i2z1w
-i3z2wi
í1l
-j2a
-jab4
-jah4r3ei
+jah4rei
jahr4s
-ja3l
-jal2a
+ja3l2a
ja3ne
jani1
-jani3t4
-ja5ru
-jas2o
-jat2
-2j1d4
-jda3
+jani3t2
+2jat
je2a
jean2s
je2g
-jek2t3a
jek4ter
-jek4tin
-jekt3o2
jektor4
-jek2t3r
+jek2tr
je3na
je2p
-je3r
-jer2e
je2t1a
-je4t3h
-je2tin
-je4tor
+je2t3h
je2t3r
jet3t
je2t1u2
+ji2a
ji2v
-2j1m
joa3
jo2b1
job3r
-jo2da
jo2i
-jol2a
-jong2
-jo2p3
-jo1r2a
-jor3d2
+joni1
+jo1ra
+jord2
jo2sc
-jost2
-3jou
-jou2l
-2j1t
-jty1
+jou4l
j2u
-ju2b3l
-jude2
-jugen6
+ju2bl
+jugen2
jugend3
-ju1i
ju2k
-jul2i
-jung5s2
+jung5s
ju3ni
-ju3r
-jur4a
jur2o
-ju3t2e1
+jute1
2j1v
1ka
3ka.
+k1a2a
ka3ar
-2k1abb
kab2bl
-2kabd
-2k1a2ben
-2kabf
-2kabg
+ka2ben
2kabh
-2kabn
-2k3a2bo
-2k1abs
+2kabla
+2kablÃĪ
+2k1a2bo
+ka3b4r
+2kabs
2k1abt
-2kabw
-2kabz
ka1c
-kade2r
-2k1adm
+k2ad
+2k3ada
2k3a2dr
-3kadu
-2kadv
-ka3e
ka1f4l
ka1fr
kaf3t2
-kag2
-2k1age
-3kah
-ka1ho
+k2ag
ka1in
-kaken2
-ka1kl
-2k1akt.
+ka3ka
+kaken4
+ka1k4l
+2kakt
2kala.
-kala3b
-ka2l1a2d
ka2lan
-kal3d
-ka4l1eh
+ka3lei
+ka3len.
ka4lens
kal3eri
-3k2alk
-kal2k1a
-kal4kan
+kal2ka
kal2k3l
-kal3l
-kall2i
-kallÃķ3
-2k1allt
-ka2lop
-ka2l1os
-kals2
-kal4tex
-kal4th
+kal2kr
+k1all
+kal3lÃķ3
+kalo5
+kal2tr
ka2lu
-k2amt
-3kana
-kan4al
-ka4n1a2s
+k3ama
+kamp8ferf
+kan2al
+ka4n1a4s
ka2nau
-2kanb
-kan3d2
+kand4
2kanda
-2kandÃĪ
kan2e
-2kanf
-2kanim
+2k1ang
kank4
2kanl
-2kanom
-2k1anor
-2k1ans
+2k1anna
+k1ans
k2ans.
-kan4tar
-6k5antenn
-2k1anth
-ka3nu
-kan2um
+6kantenn
+ka3nu3
2kanw
-2k1anzu
-2kanzÞ
-ka2o1
-3kape
-ka3po
+k2anz.
+ka2o
+2k1apf
3kara
-2karbe
-2karc
+2karb
k2ard
-kar3d2a
-k1area
k2arg
-ka3r2i
kari3es
k2ark
2k1arm
+karp3
kar2pf
k2ars
-k2ar3ta
-k1arti
-4kartik
+kar3t
+k2arta
+2k1arti
karu2
k2arw
-3k2asc
-kas2e
-kase1i
kasi1
-kas2o
ka2sp
-kas2t
-2k1ast.
-ka3sta
-ka4ster
-3kasu
-ka3sz
-ka2tan
-3kateg
-k3atel
-ka3t2h
+kas3s
+ka3tan
+ka3t4h
ka2t3r
kat3se
-2katt4
-kau4fer
+2katt
kau2f1o
-kauf6s5ag
+4kaufr
kauf4sp
-kauf8s7tem
-kauf6sti
-k2aus.
-2k1auss
-2kausw
+kauf6s5te
+k1aus
kau3t2
2kauto
-ka3ve
-2kaz
1kÃĪ
-kÃĪl3
+k1ÃĪh
k1ÃĪ2mi
+k1ÃĪn
kÃĪr2
-2k1ÃĪrg
kÃĪ2s5c
kÃĪse3
kÃĪ3th
-4k3b4
+2k3b2
kbe1
kbo4n
kby2
2k3c
-2k3d4
-ke2ben
+2k3d2
+kdamp2
2k1ec
-ke2di
-2k1eff
-kefi2
+k1eff
+kefi4
kege2
ke2gl
ke2he.
-ke2hen
-kehrer4
kehr2s
kehrs3o
+kehr4st
2k1eic
2k1eig
-kei2li
-2k1ein
-kein4du
-kein4e
-k1eis
-2keise
-keit2
+k1ein
+ke1in2d
+2keinh
+2k1eise
ke2l1a
-ke3lade
ke3l2ag
-ke4l3am
ke2lÃĪ
-kelb4
-keld4
-kel3eis
-2ke2lek
-ke2l1en
+kel3b4
+2k1e2lek
+ke2len
ke2l1er
+2kelet
kel3la
-kel7l4e
-kell2i
-ke2l1o2
-ke2lÃķ
-kel3sk
+kell4e
+kel3li
+kel3s2k
k4elt
-kelt4e
-2k1e2mi
2k1emp
k2en.
-ken1a
-ken3au
+ken3a
+ke4nac
ke2nÃĪ
+kenbu5s4
ken3dr
-ke2n1e2b
-kenen1
-ke4nene
-ke4nens
-kener4n
-kene4t
4ken4gag
-k5en6gel.
-ke2nim
-ken3in
-4kenlad
-4kenlÃĪd
-kenn2a
-kenn2e
+2kenlÃĪ
ke2no
-k2ensa
-4ken4sem
-ken3s2i
-ken3s2k
+ken4sem
+kens2k
ken5s4te
ken3sz
k3en4te.
-ken6ten.
-4kentf
-2kentg
+k3en4ten
ken3th
-2kentl
2k1ents
2kentw
2kentz
-ke3ny
-k2en3z2
-2ke1o2
-2kep
+2keo2
ke2pl
k2er.
-ke1ra
-ke2ran
-ke2rau
-ke2r1ÃĪ
-ker4ble
+ke1rad
k2erc
-4kerd
-ke2r1e2b
-ke2rec
ke3reig
-ker3ein
4kerfah
k4erfam
-ker2fo
k3ergeb
-2kergu
+ker6gebn
+k3er2hÃķ
ke6rin6nu
kerin6st
kerin4t
-k3erken
+ker4ken
k2erko
-k3erlau
+k2erl
+k4erl.
+ker4lau
k3er4leb
k6erlebe
-ker2na
-ker4nei
-4k3er4neu
-kern5eur
+k4erlÃķ
+ker4neu
k1ero
-k2e1rod
-2keros
ker4reg
k2ers.
-2kersa
-kert2i
-ker6werb
kerz2
k1erz.
ker4zeu
2k1er2zi
-k2es.
-ke2s3a
-k2esc
-k1ese
+k6es.
ke2sel
-kes2sa
ke2t1a
-ket2ag
-kete4
-ke4t1eb
-ke4tel
-2k1e2th
-ket3ha
+ke2t3h
ket3s
-ketta4s
-kett1h
-ke2tu
+ke1up
keu6schl
-2k1e2va
2k1e2x
-4k3f4
-2k3g2
-kga4s1
-kge3s2
+2k3f4
+2k1g2
2k1h4
-k3he
kho3m
-k3hu
-ki1a
-ki2ad
-ki2ag
-ki3ak
-ki3a2r
+ki3a4
ki1ch
+2k1i2de
ki3dr
-k2ids
-2kidy
ki2el
-kie4lei
-kiel3o
-2kiern
-kier2s
-kie4sa
-kie4z
+kie2l3o
ki1f4l
ki1f4r
ki3k4
-2ki3l2a
-2kilÃĪ
-2kim
-3kin.
-ki2nÃĪ
-4kindex
-2k1indi
-2k1indu
-2k1inf
+2kil2a
+ki3lo
+k2imi
+k2in.
k2ing
-kin2ga
-king3s
2kinh
-k2ini3
-kinik2
+k2ini
k2inn
ki3n4o
kin3s
2k1inse
-k1inst
2k1int
ki3or
kio4s
-3kir
-2k1i2so
+5kir
kis2p
kis5s
kist2
kiv2
-kive4
2kiz
+ki3zi
2k3j
2k1k4
-kkab4
kl4
4kl.
4kla.
-2k1lac
-klan2
-2kland
-klan3du
+4kland
k4lar
-k1last
-k1lauf
+4k1last
k3laug
-2k1lÃĪd
-k2lÃĪr
k2le
-4k3le.
+4kle.
kle2br
-k3leg
-2kleh
-klei2e
-k3leit
+k3lee
+4kleh
+k4leid
+4k3leit
k3lem.
-kle2o
2k3ler
kle2ra
2k3leu
kle3us
2klic
-k2lien
-k2lif
2klig
-3k2lim
+k2lim
k2lin
-k3lin.
-3k4lina
-k4link
k2lip
k2lir
k2lisc
2klist
klit2s
-2k3liz
+4kliz
2k3loc
-2klok
-3k4lop
+klo2i3
k3lor
klos2
+2klos.
klo3sse
klost6
-2klÃķc
-2klÃķf
-k2lÃķst
-k4lÃķt
+k2lÃķt
k1lu
-klu4b
k2lud
+kluf2
k2lug
-k2lum
-2klux
-2k1lÞc
+k1lÞc
2kly
-2k1m2
-4kma
-kma2la
+2k1m
kmas2
-kma3sse
k2n2
-k4nac
-2k5nach
-2k3nad
-2knah
-2k3nam
-2k3nÃĪp
+3knab
k3ne
k4nec
-kne1e
+k4nei
2knes
-kne3tu
-2knetz
-2k5neu
-4kney
kni4e
-2k3niv
-kno2b3l
-k4nol
-2knorm
-2knov
-2k3num
+kno4bl
+2k5nor
+k3nu
+3knÞ
1ko
-ko5ad
ko2al
-kobal2
2kobj
-kob4s
-kof3f2
-koffe3i
-kohl2e
-kohle3i
+2k1o2fe
+koff4
koh3lu
-ko3l2a
+ko1i2
+kol2a
ko3le
-kol2k3
+kol2k5
3kom
-komer3
-4komn
ko4mu
k2on
-kone2
-ko2nem
-kon3s4
-kont6e
-ko2nu
-ko3on
+ko3n2e
+kons4
+ko3nu
2kop.
ko1pe
-2koper
-kopfa2
kop4fen
-kop6f5err
-ko3pte
-ko3r2a
-kor2ba
-kor2bl
-kor2br
+2kops
+2kopz
+ko1r2a
2k1orc
-korder4
kor6derg
-ko2rel
-2k1org
-kor2k1a
-kor3m
-kor4nac
-kor2n3ÃĪ
-kor4no2
-2korpi
+ko3ri
+kor4n1a
k2os
-k4os.
-ko4sk
ko2s1p
-3k4ost
-ko2ter
-ko3ti
-kot4r
+ko3ta
kot1s2
kot4tak
-k1ou
-ko3un
+2k1ou
3kow
ko2we
-2k1ox
+k1o2x
1kÃķ
-kÃķde2
-k2Ãķf
+kÃķ2f
k1Ãķl
2k1p2
2k3q
-k2r2
+k2r4
2k3rad
-2k3rah
k4ral
-kras3
-kra4ss
+kra4s3
k3rats
2kraum
-k4raw
k4raz
k4rÃĪc
-2krÃĪd
k4rÃĪn
+2k3rÃĪt
2k3rÃĪum
-2k5re.
-2k3reak
-2k3real
-k4reb
+2kre.
2k3rec
2kred.
2k3rede
-2kredn
-2kredu
2k3ref
2kreg
-2k3reic
+k3reic
kre1i2e4
kreier4
-k3reif
-2k3reih
-2kreim
-krei6sei
-k3ren
-2kresu
+k3reih
2k3rh
2krib
2k3ric
-2k3ries
+k3ries
2krip
-k3risi
-krob4
-k4roch
-4k3roh
-k4rok
-k4ron
-k4rop
+3kris
+3k4ron
kro4ss
-2krot
-3kroth
-k3rou
-2krÃķh
2kruf
-2k3run
-4k1s
-ks3a2b
-k3sac
-ksa2k
+krÞ1b
+2k1s
k4s1amt
k2san
-ks3a2r
-ksa4s
+ks4ana
k2sau
-ksau2f
-k2sav
-k2sÃĪh
-k3s2c
+k2s1ÃĪl
+ks2ÃĪn
ksch4
-k2s1e2b
-k2s1ec
-k3s2ed
-ks1ei
-ks2eid
-ks2eif
-k4seind
-kse2le
-k2s1eng
-k2s1ent
-ks1er
-ks2ere
-k2serf
-k2serg
-k2serk
-k2serl
-k2sers
-k2serw
-k2s1e2v
-k2sex
-k4s1i2d
-ks2im
+ks1e2b
+k2sent
+ks1erl
+k2s1ers
+k2s1erw
+k3shi
+k2s1id
k2s1in
-k4s1is
-k3s2ke
-ks3kl
-kso2
-ks4on
-k2sop
-k2s1or
-k2sÃķ
+k2s1o2
ks1pa
-k2spal
-k3s2pat
-k2spÃĪ
-k3spe
-ks2pel
-ks2pen
-k2sph
+ks2pat
+k3s2pe
ks2por
-ks2pul
-ks5s2
-kst2
+ks2pu
+kss2
+kst4
k2stal
k4s3tanz
kstat4
-ks3tat.
-k3stÃĪl
-ks4tel
-ks1tie
-k4stier
+k4stea
k2s1tis
-k2stit
k2s1tor
-k4strop
-k2stuc
+k2strÃĪ
k2stum
-k2s1tur
-k2stÞt
k2s1u
-k3sul
ks2zen
4k1t
-kt1abr
-kt1abs
k2t1ad
k3tag
kt1akt
k3tal
kt1am
-k2t1an
-kt2and
-k2t1a2r
-kt3a4re
-kta3ri
-k2t1au
-kt3aug
+kt1an
+k2t3a2r
+kta4re
+k2t3au
ktau2s
ktÃĪ3s
-kt1ein
-k2tek
-k2t1ela
-kte3li
-kte4n1
-k2t1ent
-k4tentl
-kten3z
-kte2ra
-kte3ran
-kt4ere
+kte3e
+kt1ei
+k2temp
+k2tent
k4t3erfo
-kt1erg
k2t1erh
-k2terÃķ
kte3ru
-ktes2
k2tex
-k2t1h
-k2t1i2d
-kti2me
-kt3ind
-kt1ing
-kt1ini
-kt3inn
-k2tint
-kti2s1e
-k2tiso
-kti2st
+k2th
+kt3ho
+k2t1id
+kt1im
+k2t1ing
+kt1ins
kti4ter
-kto3b
k2t1of
-kto5ren.
-k3t4ran
+k3top
+k4torga
+kt3orie
+kt4ran
kt3ras
-k2t3rau
-ktro3me
+kt4ro
kt3run
-kt3rÞ
-kt1s
-kt3s4a
-kt3sÃĪ
-kt3se
-kts2el
-ktsen1
-kt3si
-kts1o
-kt2sor
-kt3s2z
+kt3s2
ktt2
-kt1ums
k2tuns
-kt3z2
-ku2al
+kt3z
ku1c
-kud4r
-3kug
-ku2h
+ku2h3
2k1uhr
-kuh3s
-ku3la
-ku3l2e2
+kul2a
+ku3l2e
ku3l2i
2kulp
-kul2to
-kul2tr
-k2um.
-k2um4e
-2kumg
-2kuml
-kum2sp
+2k3uml
+kum2s
k2u3n2a
-kun3da
-kund2e
kun4s
kunst3
2kunt
2kunw
-4k1up.
+2k1up.
kur2bl
ku2rei
kuri2e
-kuri4er
-2k1urk
ku2ro
-kurs1c
kur2sp
-kur2st
-kur4ste
-2k1urt4
-kur3tsc
-kusa2r
+kur4st
ku4schl
ku2sp
kus3ses
-2kust
-kus3ta
ku2su
ku2ß
-2kut.
-kut2a
-kuto3
1kÞ
kÞ1c
-3kÞne
-kÞnf3
-3kÞr
kÞr2s
-2k3v
+2k1v
2k1w
-k3wa
2k3z2
kze3l
3la.
-la3ar
-l1ab
3l2ab.
-lab2a
-la2bad
-l2abÃĪ
+la3ba
2labb
lab2br
-2labd
-lab2e
-4la2ben
-4labf
+4l3aben
+2labf
2labg
2labh
-3labi
-l3a2bit
-2la2b3l
-2labn
-3lab2o
-4labo.
-la3b4ra
-lab4res
-la2bri
+2l1a2bl
+lab2o
+l2abr
+lab4ra
+lab4ri
2labs
-la2bus
+l1abt
+3labu
2labw
-2labz
-la1ceb
-l4a3che
-lachter8f
-lacks2
+la1ce
+la2ce.
1lad
-2l1ad2a
-2ladd
-la3de.
-la3d2i
-2ladj
-2l1adl
+lad2i
+l1adl
2ladm
-l1adop
-2l1a2dr
-3l2adu
+2l1a4dr
+l1adv
2laf
la2fa
-la2f1ei
-la2f1er
-laf1r
-laf3t4
-la2fu
+laf3t
la2ga
-lag3d
-l2ager
-lagerin5
-4lagg
la2gio
-lag3l
-la4g3n
-lago4
-la2gob
-lag3str
-2la3ho
-3lai
+la2gn
+lago2
+la2g1ob
+lag5s2e
+2la1ho
+1lai
lai4s1t
-lake2
-la2kin
+la2kes
+la2k1i
l2akk
la1k4l
-la2kro
-lak3t2
2l1al
-la2la
-3lala.
-3lali
-4lalt
-l2am.
-lami3t
-lam2m1a
+4lalp
+l2ami
+la3min
lammen8ge
1lammf
-la2mor
l2amp
-l3ampu
-2l1amt
+4l1amt
lamt4s
la4mun
-la2na
l1anal
-la3nan
-la4n4at
-la4nau
-2la2nÃĪ
+la2nau
+2lanb
3l2and
-l4and.
-lan2da
-lan4dam
-land3au
-l4ande
-lan6derh
+lan2d1a2
+lan4d3au
lan6d5erw
lan6d5erz
-lan6d5inn
-l4an2d3r
-lan3dri
-lan3erd
-laner4f
+lan2dr
+lan4ds
+laner2
2lanf
-lan4gan
-lan6g5esc
+lan2gl
lang3s2
-2lanha
l2anhe
-3lan2i
-4lanl
-2l1ann
-l1ano
-la2nof
-2l1anp
+2lanl
+4lanli
+2l3ann
+l1anp
2lans2
-l1ansi
+4lansÃĪ
2lantr
-2lantw
-2lanw
lan2z1w
3lao
2l1apf
-la2ph
-2l1a2po
-lap2pl
+l1a2po
+lap4pl
la2r1an
-2larc
-lar1e2b
la2r1ei
-la2rel
la4rene
-larf4
-lar3g
+3l2ar3g
lar3ini
-4l1a2rom
-l1art
-2lart.
-lart2h
+l2armi
+2l1ar3t
l3arti
-lart4r
-3laru
-l2as.
-la2sa
-la4sam
-la4sÃĪ
-lasche4
+la2ru
+la2sau
4lasd
-la5seb
-la4sei
-la4s1e2l
+la5se
+3lasg
2lash
-la2sin
-la4sis
+2lasi
la2so
2la2sp
3lasser
-l2ast
-la4sta
-last3an
-la4steu
+la2sta
+last1o
la2str
-last3ri
-las3tro
las3tur
la2stÞ
1la2ß3
+lat2a
la3t2e
-2l3a4tel
-la5t2i
-2l3atl
-2latm
-lat2o
-la2tÃķ
+la4tel
+2l3ath
la2t3ra
-lat4ri
lat2s
-lat3st
-2lat4ta
-lat4tex
+2lat2ta
+lat4tal
+lat4tan
lat4t3in
lat2t3r
-latzer4
1laub.
-lauben6s5
-lau2b3r
laub4se
-laub4st
+lauf1i
lau4fin
-2laufn
lau2fo
-lau4fri
1laug
-lau3gl
3laun
-4laun.
-la4us
-3l2aus.
-2l1ausb
-lau6scha
-2lausd
-2l1ausf
-2lausg
+l2aus.
2lausl
2lausr
-2l1auss
-2lausz
+2lauss
2lauto
-lau2tr
-la3va
-lave4n
1law
lawa4
-1l2ax
-la4xel
-l2ay
lÃĪ1c
+2lÃĪf
2l1ÃĪhn
1lÃĪnd
-l1ÃĪpf
-2lÃĪq
-lÃĪr2ma
-l1ÃĪrme
-2lÃĪrz
+lÃĪr2m1a
+l1ÃĪrz
lÃĪ2s5c
lÃĪ4s3s
-2lÃĪt
+4lÃĪt
2lÃĪub
2lÃĪuc
2lÃĪue
1lÃĪuf
-2lÃĪug
-2lÃĪx
1là
4l1b
l3bac
-l2bant
-lb3a2ri
-lbau1c
-lb1ÃĪrm
-lbb4
-lb2ei
-l4b3eink
-l4b3eise
-lbe4ral
-lberin5
-lbe7s
-l4b1e2ta
+lbb2
+l2b1ede
+lb3eise
+l4beta
l2b1id
l2b1ins
-lb4lad
-l3b2lat
+lb2lat
l3blÃĪ
lb3le
-l2bled
-l2blic
+l2bli
l3blo
-l3b2lÃķ
-l3b2lu
-l2b1o2ra
-lb3rea
+l3brec
+lb3rit
lb2s
lb3sa
lb3se
+lb4sh
lb3si
+lb4sk
lb3sp
-lbs2t
-lbst3ac
-lb4ste
-lbst3ei
-lbst1u
-l2b1uf
-l3bum
-lbu4n
+lb4st1e
+lb4sto
+lb2u
+l2b3uf
lbus3s
lbzei2
2l1c
-l3ca
+lch2au
l3che
l4chei
-l4chent
+l5chen
lchermas8
l3chi
-lch3le
-lch3li
-l3chlo
+lch3l
+lch3m
lch3n
lch3r
-lch3s2
+lch3s
lch3Þ
lch1w
l3cl
l3co
4l1d
ld3a2b1
-ld2ac
+l3d2ac
ld3ack
-l2daf
-lda2g
-l2d1ah
-lda2i
+l2d1a2d
+lda4g
l2d1ak
-l2d1al
-l2d3a4n
-ld1arm
-ld1ass
-l2d1au
-ld3au4s
-l3dÃĪm
+ld1al
+l3dam
+ld1amm
+l2d1a2n
+ld3ane
+l2d1a4r
+ld3ari
+l3das
+ld1au
ld1ÃĪr
-ld1ÃĪs
-ld1ÃĪt
ldbus2
l3de.
-lde4ben
+l2deh
l2dei
-ldein7
-l2d1elf
-l2d1e2mi
-l2d1ems
-lde4na
-lden5erg
-l4dentl
+l2dele
l3der.
-l4d3er4fa
-l6der6geb
-ld1erh
-l4der4he
l3d2erl
-l6derlas
-l6derlaß
l3d2ern
l2d1er2p
lder4tr
-lde3sa
-lde4sel
-l2d1es2s
+l2d1e2se
l2dex
ldi2c
l2d1id
-ld1i4mi
-l2d3ion
-ldo2b
-ld2on
-l2dop
+l2d1im
+l2dob
ldo2r
-l2d1ori
ld2os
ld2Ãķ2
ld3r
-ld4ram
l2dran
-l2dre
-ld5rie
-l3d4ris
-ld4ru
-l2drÞc
+ld4ros
+l3d4ru
+ld4rÞ
ld3sa
-ld3ska
+lds2t
ldt4
ld3th
-ldt5s
-ld3tu
-l2d1ul
l2d1um
+ldy3
+ldys2
1le
-le2ad
+3le.
+le2a
+le3an
le3ar
-le2as
3le3ba
-leben4s3
+leben4s
le2bl
-3lebr
-le2b3re
2lec
-lech1a
-le2chi
-lech7t6e
-le2dr
+lech5t4e
+3led
+4ledd
le2er
-lee4ret
-le3f2a
-2l1eff
-lef4o
-le2g1ab
-leg1as
+lef2a
+le2g1as
+le2gau
le2gÃĪ
le2gl
3leg4r
3leh
-4lehe.
-leh3r2e
+leh3re
4lehs
4leht
-lei4ble
+lei4bl
+lei2br
+l2eic
l2eid
-lei3ere
-lei4fan
-lei4fei
-leifer6g
-2l1eig
-lei3gl
-3leih
-lei4hau
-lei3l2
-leim3p
-3l2ein.
+4l1eig
+le2im
+l2ein.
leinbu4
leinbus5
-3l2eind
+l2eind
lein4du
-l4eine
+l2eine
lei6nerb
-le2inf
-le2ini
-2leink
+4leink
l1einn
-l3einsa
-2leint
+l2eint
l2einu
-le2is
-leisch5a
-lei8schei
-lei6scho
-lei6sern
-l1eisf
+lei6schw
lei6ss5er
-leis3st
lei4str
lei4ßer
l2eit
lei2ta
-lei2to
-leit3s2
-3leko
+lei8t7er8sc
+lekt2a
2lektr
-2lekz
3l2ela
-le2le
-le3lei
-2lelek
-6leleme
-le3len
-leler2
-leler4s
-le3les
-2lelf.
-2l1elfe
+2l1e2lek
l2eli
lel3s
-l2em.
-le3mal
-le2mau
-le2m1ei
3lemes
-3lemet
-lem1o2
-le2mor
-2lemp
-le2mu
-le4mun
-l4en.
-len1a
-len3ab
-le4na2d
-le4n3an
-le4n3a4t
+le2m1o2
+4lemp
+l1emu
+l2en.
+le4nad
le2nÃĪ
-l1endp
+4lendet
+2lendu
4lendun
-l4endur
-le2n1ed
+le4n3end
4lenerg
-le4neur
-4leneuv
-len4gag
-len4kau
-len4k3lo
-len4klu
-l1enni
-len6sein
-4len4sem
-len6serk
-len3ska
+l1engl
+le3ni
+l2enk
+2l1enni
+le2no
+len4sem
len3sz
-2lentg
-2l1entk
-4lentla
-2lentn
-4l3en4tro
-4l3entw
+2lentf
+l1ents
+2l3entw
lent4wÃĪ
5lentwet
-2lentz
-2lenzy
-leo2f
-le1o4s
+len2zi
+le1os
2lep
3lepa
3lepf
-4l1e2pi
-4lepoc
lep4pi
3lepr
l2er.
l2e1ra
-le2rag
-le2r3ap
-le2ra4s
+le2ra4g
+le2rap
le2rau
-le2r1ÃĪ
-le2r1e2b
-ler2ec
-l3ereig
+lerb4
+l3erei4g
+ler6eign
le4r3ei4m
-le4r3eis
-le2rel
-le4reng
-le4rerg
le4rers
-le2re2t
-4l3erfas
2l1erfo
l2erfr
l2erfÞ
-l1erg
-l2erga
-l4ergef
+l3ergeb
3lergeh
-6lergen.
-l4erger
-l4erges
+l3ergen
3l4ergew
-2lergi
-l2ergl
-l2ergr
+2l1ergi
lergro3
-4ler4heb
-4lerhol
lerin4s
lerk2
l2erka
-2lerke
-l1erkl
-4lerklÃĪ
-l4erkle
l2erko
-ler3kr
-ler3l
-5l6erlebe
-3l4erlei
-2lermÃĪ
-3lerna
-ler4nal
-ler4nar
-3l4erne
-ler4nei
+l4erlei
+le1ro
+le2rob
2l1erÃķ
3l2erra
-ler4ric
l4ers.
-l1ersa
-ler4sto
-lert2
-le2rup
+lers2k
+3lerw
l4erwa
-ler4wer
-2ler2wo
+2lerwo
2l1erz
-ler2zÃĪ
-l3erzeu
-ler2zo
-l4es.
+l2erza
+ler2zi
les2am
les2e
-le3seb
-lese1i
2l1esel
-le5s4h
+le3sh
lesi1
-le3s2k
-les4ki
-le3so
+le3sk
+les2ko
le2spo
-lest6
+les3s
leste3
-lester6i
-3lesu
4lesw
2lesy
-le2tab
-2le2tap
-2le2tat
-l1e2th
-le3tha
-2lethi
-let2i
-letsche6
+le2tat
+2le3th
let2to2
-lett1r
-lett1s4
le2u
-4leue
-3le3u2f
-2l1eul
-le3unt
+4leud
3leut
-l1e2vol
-2lex
-3lexd
-3lexik
+2lexe
le2xis
-3ley
-1lÃĐ
+2lexz
2l1f
l3fah
-lf4at
lfÃĪs3
l2f1ec
lfe1e
-lf3einh
-l2feis
-lf2en
-l4ferei
-lfe4rel
-lf1erl
-l3fi
+l4feis
l3f4lÃĪ
-lf3led
-lflo7sses
-lf4lÃķ
+lf3lo
l3f4lu
lf3ram
-lf3res
-lf4ru
-lf4rÞ
-lf2spe
-lf2s1ti
-lf2su
+lf2s
+lf4spe
+lf4s1ti
+lf2tr
+lf4u
lfun2
lfur1
+l3fÞ
2l1g
+lg1art
l3gas
lga3t
+lg1d4
lgen2a
-lgene2
+lge3ra
lgerÃĪu3
l2geti
-l3g2i
lg2lÃķ
l3go
lgoa3
-lg4p
-l3gra
lg3re
l3gro
lgro3s
lg2s
-lg4s3t
-4l3h2
-5lhi.
+lg4s1t
+2l3h2
+3lhi.
1li
-l4i1a
-lia2b
+3l4ia
+li3ac
li2ad
-li2am.
-li2ams
-lian2g
-li2ast
-3lib4
+li3ak
+li3ar
+lib4
libi3
li1c
-lich4ta
-lich4to
+3lic.
+li3chi
4lick
-li2cl
li3d2a
-l1ido
-l2idy
-liebe4s3
-lie2br
-3liefer
-li3efl
-lie4n1a2
+2l1ido
+li4ds
+l2ie
+liebe4s
li3ene
-lien3t
-li2er
-lie4rei
-li3ern
lie4s3c
lie4sta
-lif4fes
lif2fo
-lif3ti
3lig
-li4g3ers
lig4n
+li2gre
ligs2
-li3ker
-li3k2o
+li3ke
+li3ko
lik2sp
-lik4tau
lik4ter
-lik2ti
-lik2t1o2
-lik2u
-li3l
-lil2a
+li3l2a
+li3li
li3m2a
-lima1c
-lima3t4
2l1imb
-2limm
3limo
2limp
-lin2a
-li3nar
-2lindi
+li3n2a
+lin3al
2l1indu
+li4ned
li2nef
li2neh
li2nep
-li5ner
li2nes
2l1inf
+ling4s3
2l1inh
-lin1it
+2l1in1it
2l1inj
-lin4kan
-lin4kar
+lin2k1a
link2s
li2nol
+l2ins.
l2insa
-4linsel
+l2insc
2linsp
-2linst
-2linsu
-2linsz
2l1int
-li3n2u
-2l1inv
+li1nu
+l1inv
2linz
li2o
li4om
lion5s
-li3o2st
-3lipf
+li3os.
+li2p3a
+2li2po
3lipt
3lis.
li3s2a
-li3schm
li4schu
-lis2h
-li3shi
-3lisk
2l1isl
2l1i2so
-3lison
li2sp
-liss4
+liss2
2liß
-lit4a
-l1i2tal
-li3t2ÃĪ
-l2i3t2e
-3liter
-li1th
-li2t3r
+li2tal
+li3te
+li1t2h
lit1s2
-lit3se
lit3sz
-li4tun
li2tur
-litz4er
3liu
liv2e
-li2vea
-li2ves
-livi3e
-li3vr
+livi1
2lixi
-li4z3ÃĪ
+li2za
lizei3
-4l3j
+4l1j
2l1k
-l3kale
lk1alp
l3k2an
-l3kap
l3kar.
-l3ke
-lk1erd
-lke3r2e
+lken3t
lk2l
lk3lad
-l3k4las
lk3lic
+l2k3lÃķ
l3k4lu
-lk2men
+l3k2me
lk4ne
lk5ner
-lk3nu
-lko2f
-lk1ofe
-lkor2b
-lk3roc
+lkor2b1
+lk4ra
+l2k3ru
lk2s1
-lk3sÃĪn
-lk4set
-lk3si
-lk4spe
-lkt2
+lk3sÃĪ
+lk4stÃĪ
lk2Þ
-4l1l
+2l1l
+ll1abb
lla2be
-l2labk
l2labt
-l3labu
-ll3acht
lla2de
ll1aff
-lla3gl
-l2l1am
-lla2ma
-ll2ami
-ll2anb
-lla4ner
-l4lani
-l3lans.
-ll4anwa
+ll1akt
+l3l2al
+l2l1a2m
+ll3ama
+lla2n
+ll2anw
ll1anz
-l4l3appl
ll1arm
lla6tern
-l2lath
-l4latm
-l2l3att
l2lau
ll3aufg
ll3aufk
-ll1au2s1
+ll3aug
+ll1aus
l4lausf
l2la2w
+l2lÃĪd
l2l1ÃĪm
-l3lÃĪs
l2lÃĪu
llb4
llch4
ll3d4
l2le2b
-ll5ebene
l3lec
ll1ech
-lle3er
l2l1ef
lle2gu
lle2he
l2leib
-ll1eic
ll1eim
-l4l3eise
-lle2la
-lle2m
-l2l1emi
+ll3eise
+ll2em
l3len.
-lle4na
+lle4n3a
ll3endl
llen3dr
-ll3endu
-llen6dun
-l4lentf
+ll3en4du
+ll2eng
l4lents
-l3lep
l3ler.
lle2ra
-l3lere
-l6ler6eig
+l6lereig
ller4fo
ller6geb
-l8lergene
+l6lergen
l4lergo
-ll3erho
-l4l3ermi
-l4l3ernt
+ll3ernt
ll3ertr
ll6erwei
ll2es
-l3les.
l2le2se
-lle4th
l2leuc
l3leur.
-ll1exe
+l2lex
+llf4
llg4
+l2lic
l2lieb
l2lieg
-lli4gan
-l3lik
+l3lik4
lli4la
+ll1imp
l2l1ind
-l4linf
-ll1ins
+l2l1ins
llin6sen
-l2lipo
-ll3k4
-ll5m2
-ll3n2
+llk4
+ll5m
+lln2
ll1ob
l2lobe
-l2lo2d4
-l2l1o2f
-llo2ge
-ll3ol
-l2lope
+l2lo2d
+l2l1of
+llo2gi
ll1opf
-ll1or
-l6lorb
-llor2g
-l2lo2ri
+l2l1o2r
+l3lor.
+l3lore
llo2te
l2l1ou
-l3low
-ll1ox
-llÃķ2g
l3lÃķh
-ll2sÃĪu
-ll2s1es
-ll3ska
+ll3sÃĪ
+ll3sh
+ll3s2k
ll2spr
ll4stor
ll3t
-llt2e
-llt2i
llti2m
llt4r
llts2
llu2d
-l2lu2me
-l3lung
+llu2f
+llu2me
l2lu2p
ll1ur
llust6
-l3lut
l2lÞc
llÞ2d
-l2lÞ2g
-l3ly
ll3z2
4l1m
+l3ma.
l2m3a2b
-l2m1ad
-lm1a2ge
-lm1aka
-l2m1a2m
-l3mana
-lm1apf
+l2marc
lm1art
-lm3att
lmÃĪ2s
lm1ÃĪ4st
lm1c
-lmd2
-lm3e4dit
-l2m1ef
-l2ment
+lm2ei
+lm3eins
+lme4na
l2m1e2p
-lmer2
-l2m1erf
-l2m1erl
l2m1erz
-l4messa
-l2m1i2d
lm1ind
lm1ins
lm3m
-l2mof
-lm1orc
-lm3p2
+l2mÃķl
+lm3p
lmpf4
-lm3s2k
-lms2t
-lm3str
lm3s2z
-lm3t4
-l2mum
-l4munt
+lm3t
4ln
-ln2ab
-lna2r
+lna4r
ln3are
l3n2e
-lnes2
-l2n1in
-lnus2
+l3ni
+l1nu
l1nÞ
-l1ny
1lo
lo4ak
-3lob.
-l2oba
-3lobb
-lobe4s
+3l2ob.
+lo2ber
2lobj
-l1o2bl
+2l1o2bl
l2obr
lob4ri
-lo4chel
3lodr
-lo3dri
-l1ofe
-lo2fen
-lo4gh
-lo2gl
-lo2gor
-lo2gre
-lo3ha
+l1o2fe
+lo1fl
+lof4r
+lo2gau
lo3h2e
-4l1ohr
+2l1ohr
loi4r
3lok
-4l3okk
lo2k3r
-5loks
-l4ole
-2l3o2ly
-lomÃĪ3
+lol2a
+l1o2ly
lo2min
-lo2ner
-lo4nin
+l4on
lo2n1o
lo2o
-l1ope
2lopf
-lop2p1a
lop2pr
2lopt
-lor3am
-lor2an
+lo1ra
+lo2rak
lo4rÃĪ
5lorb
-2l1orc
-2l1ord
-lo3r2en
-2l1org2
-lori4di
-2lort4
-l2os.
+2lorc
+l1ord
+lo3ren
+2l1or3g2
+3los.
lo4sa
3lose
lo4ske
lo2spe
-lo2s1pr
-los3ta
-lo4stel
+loss2e
lo4steu
lo2s3to
lo2s3t4r
lo2ßu
-lo2t1a
+lo2ta
lo3tha
loti4o
-lots2
2l1ov
lo2ve
2lox
@@ -12598,407 +7972,257 @@ lo2ve
lÃķ2b3
2lÃķck
2lÃķd
-lÃķ2f
+l2Ãķ2f
2l3Ãķfe
4lÃķg
-2l1Ãķhr
-2lÃķk
-2l1Ãķl
-2lÃķp
-3lÃķsc
+l1Ãķhr
+2l1Ãķ4l
4lÃķß
-4lÃķz
2l1p
-lp2ar
-lpar2k1
-l4p1ÃĪr
+l3pa
+lpe2n3
lp2f
-lph4
-l3phÃĪ
-l2phir
-lp1ho
-l3phr
-lpt4
+l2p1ho
+lp3t4
l3pu
2l1q
2l3r2
lra4ss
-lrau2s
-lrebs2
-lro2h
+lrat4s
lrÃķ4
lrÃķs3
+lrut4
+lrÞ1b
4l1s
-ls3a2b
l3sac
l2sa2d
-ls2al
+l3s2al
l4s1amb
-l4samp
-l2san
-ls3ane
+l4samt
+l2sanf
+l2sang
+l2sann
+l2sanz
l3sare
-ls3a2ri
-l3sark
-lsau2
-lsau4m
-lsau4r
-l3s2ÃĪm
-lsÃĪ6s
-ls2ÃĪug
-ls1ÃĪus
-ls2c
+l2sau2
+ls2ÃĪm
+lsÃĪ4s
l4schin
l4schmÞ
+l3se.
l2s1e2b
-ls2ele
-ls1eli
-l2sent
-ls1er
-l2serf
-l2serg
-l2serh
-l2serk
-l2serl
-l2sers
-l2serw
-lse2t
-ls1eta
-ls3ha
+l2s1ec
+l2s1em
+ls1ere
+ls1erg
+ls1erl
+l2s1ers
+l2s1erw
+l3ses
+l3s2ex
+l4s3ha
l2s1id
-l2simp
-ls2kal
-l3s4kele
-l4skla
-l4sko
-ls2ky
-lso4b
-l2sop
+l2s1imp
+ls2log
+ls3ohne
l4s3ort.
-l3sos
-l3s2Ãķl
+ls2Ãķ
l2spac
ls2pe
-l2s3ph
-l2s1pir
+l3s2pi
ls2po
-l3spri
ls2pu
l3spul
-l2spun
-l4s3s2
+ls3pun
+ls3s2
lst2a
lstab6
ls2taf
-l2stas
-l4s3tat.
-l4state
-l3stau
l4s3tÃĪti
-l4st3erk
-l4s3terr
l2s1tis
l2stit
-l4stoch
ls1tor
l4stor.
l4store
l4stors
-l2s1trÞ
-l3suf
+ls2tr
ls1um
-l2s1un
-ls2und
-ls3unk
-4l1t
-l3ta.
+l2sun
+6l1t
l2tab
-lt1abs
ltag4
+lt1ak
lt1am
l3tami
-ltampe4
-l3t2an.
-ltan3d
-l2t1ap
-lt1ara
-ltar8beitn
-l3tark
+lt3and
+lt1ang
+l4tarm
lt1art
-ltar6tik
-l3tartu
-lt1au
-l4tauf
-lt3aut
-lt1ÃĪh
-ltbau1
+l2t3ato
+l2t1au
lt1eh
-lt1eig
lt1ein
-lte3mi
+l2t1eis
+lte4lem
l3t2en
lten6gel
-lten4sp
-l4tentl
-lt3ents
-lte4ral
-lter4fa
+lter3a
+lter2f
l3t2erg
-l4terhe
lter6ken
-lter4ku
+lter6leb
lter4nÃĪ
-lte2ro
lt2erÃķ
-lter4se
+lte3se
l2t1esk
-l3t2est
-lte3sta
-lt2et
+lte3str
l3tet.
-l2t1h
-lt3hag
+lte2th
+l2t1eu
+l2th
l3thas
-l4t3hei
-lthol2
-l3t2hu
-lt1ide
+lt3ho
+l3thu
ltimo4
-l3tin.
-l3tine
-l2tiso
-l3t2i3t
-l2t1ob
-l2t1o2f
-l2tord
-l2torg
+l2tob
+l2t1of
l2t1o2ri
lto2w
lt1Ãķl
l3tÃķn
lt1Ãķs
lt1Ãķt
+lt4rak
ltra3l
lt3rÃĪu
-lt3rec
-lt3rei
-lt3ris
-lt1roc
-lt3rol
+l2t3re
+lt4rie
+lt3roc
+lt3ros
l2t3rÃķ
-l2t3rus
l4ts
-lt2se2l
-lt4s3ort
-lts1pe
-lt1s2ph
-lt4stec
-lt2sti
-lt3t
+lt1spa
+lt4stab
+lt5ste
+ltt2
lt1uh
l2t1um
-lt2um.
-lturan4
-lturen4
+ltu4ran
ltu2ri
lu1an
-4lu2b3
+4lu4b3
luba2
-lub5s2
+lubs2
lu2dr
-lu2ec
lu2es
-lu2et
-1lu2f2
+1luf
2l1ufe
2luff
-lu3fo
-luft1a
-luft3e
-luft3r
+luf2t1a
+luf2t1e
+luf2tr
lu2g1a
lu2g1e2b
-lu2gei
-lugen1
+lug3erp
lu2gi
-lug3l
+lu4g3l
lu2go
lu2g3r
-lug3se
lu2gu
2l1uh
lu1id.
-lu4ig
-lu1is.
-lul2Ãķ
-lume4
+lume2
2lumf
-2lumg
-l1umh
+2l1umj
2lumk
2luml
-l2ump
1lumpe
-lum2ph
-2lumr
2l1ums
-lu3mu
-2l1umw
-2lumz
+l1umw
1lu2n
2l1una
-lund4
2l1unf
-2l1uni
-2lunr
-2l1uns
+4l1uni
2lunt
2lunw
-4luo
+4lu2o
lu2pf
-l2ura
-lu2r1an
-lu2rat
-lu2rei
-2lurg
-l2uri
-lu2ris
+2lur
l1urn
-lu2ro
-2lurs
l1urt
-lu4ru
-lu3sak
-lu2san
2luse
lu2sp
lus4s3a
lus2s1c
-lus4sel
lus3sen
-luss3er6
lus2s1o
lus2s1p
lus4s1t
-1lust
-lu2sta
-lu2stÃĪ
-lu6sterl
-lu2st1o2
+1lus2t
+lu2st1a
+lu4stÃĪ
lu3str
lust3re
lu2s1u
4lu2ß1
-lu2t1a4
-lut3au
-lu2tÃĪ
-lu2t1e4g
-lu2tel
+lu2t1a
+lu4teg
luter2
-lut3erg
-luter4s
-lu6t5ersa
-lu2thy
-2luto
-lu2tob
-lu2t1o2f
+lu4t3erg
+lut1o2f
lu2top
-lu2t1or
lu2t3r
lut5schl
+3lux
2lÞb
-3lÞbd
-lÞck4e2
-lÞcker3
2lÞd
-lÞf3te
-lÞ2hel
lÞh1l
-2l1v2
-lva3
-l3vl
-l3vo
-lv3r
-4l3w4
-lweis4s
+2l1v
+4l3w
2lx
1ly
-ly1a2
+ly1ar
ly3c
-ly3es
-ly1l
2lymp
3lyn
ly3no
ly1o
lys2
-ly3t
+ly3te
ly1u
2l1z
-lza2
-l2z1ac
-l2z1ag
-l2zan
+l2z3ac
+l3z2an
l2z1ap
-l2zat
-lz1aus
-l2zÃĪp
-l2zÃĪr
-lze2l
-l2zele
-l4z3enth
-l2z1ep
-l2z1er2h
-l2zerz
-l2z1id
-lzi4m
-lz1imi
+lz1ar
+l2z1ÃĪr
+l3zen
+lz2erk
+lz1ind
lz3l
lzo2f
l2zÃķ
lz3t2
l2z1u4fe
lzug4s
-lzvol2
lz1w
lz2wec
-l2zwu
1ma
-3ma.
maa2
m1ab
-m3a2bar
-m2abÃĪ
-2mabb
m2abe
-2m3abf
-2mabg
-2mabh
2mabk
-m2abli
-2mabm
-ma2br
-m2a3b4ra
+3m2ab4r
2mabs
-2mabt
-2mabz
ma3chan
-mach2e
-mach8terh
-mach8t7ers
mach4tr
ma2ci
-mack2s
-2m1act
-mada2m
-m2adÃĪ
-ma2del
-ma3dj
-2m1adm
-2m1a2d4r
+ma3da
+m2ade
+2madm
+ma2d4r
ma4d2s
-ma1f4
-mag2a
+ma1f
ma2ge.
ma2geb
ma2gef
@@ -13012,2317 +8236,1463 @@ ma2gew
2m1agg
magi5er.
magi5ers
-ma3gl
2magm
ma3g4n
2m1ago
-ma3ha
-mahl2s
-ma1ho
-mai4s3e
-ma2ke.
+mai4se
2m1akt
-mal2ag
mal1ak
ma4lakt
ma2lan
+ma4l3at
ma2lau
-ma2lÃĪr
-2mal2de
-m2aldi
ma3le
-ma4leb
mal2er
-ma4lex
mali1
-mali3e
-mal3lo
-mal3lÃķ3
+mal3l
+mallÃķ3
2mallt
-ma2lon
-ma2lop
-m2alp
-mal3t
-malu2
+malu4
ma2l3ut
-3malv
-ma2mid
mam3m
-2m1a2nal
-ma2nar
-2m1a4n4at
+2m1anal
ma2nau
-2m1anÃĪ
2manb
-man2ce
-3man3d4
+man4ce.
+man3d2
+man3ers
ma2net
m2anf
-mang2
-2man3ga
-m4angel
2m1angr
m2anh
-3manip
2manl
-m2anle
-3mann
-2manod
+m4ann
man3s
-2m1ansa
+2mansa
2mansÃĪ
+2mansc
man4sh
-man2t1h
-2mantr
-ma4n1ut
-2manw
+2mantw
+manu3
2manz
-m1anza
ma2or
-ma2phr
-ma2po
-ma1q
-m2ara
-4marag
-mar2an
+2m1apf
+m2app
2m3arb
mar3g2
-3ma1rh
-ma3r2i
-m2ark
-mar2kr
-4mar2o
+mar2i
+4ma3r2o
maro3d
4marr
-mar6schl
mar6schm
mar6schr
-mar2sp
-mar2su
-2m1arti
ma3r2u
-m1arz
-m2as
-ma3s4a
-mas2e
-3ma1s2p
-masse4n
+m3arz
+3mas.
+ma1s2pa
+2m1aspe
ma3sses
mas6ses.
mas6sest
-ma5sset
-mass1t
+ma6sset
ma3s2su
3mas2t
-ma2sti
-ma4sz
ma2ta2b
ma2tan
-ma2tÃĪ
-m3a2tel
+mat4c
+ma2tel
ma4t3erd
-ma4t3erz
-m4atme
-2matmo
-ma2to
-ma4tort
mat3se
mat1sp
-matta3g
-matt4r
mat3url
2m1au2f
3maul
ma3un
-mau3r
-2maus
-mau2ta
+2mausg
m4ay
ma1yo
1mÃĪ
-3mÃĪc
-mÃĪ3he
2m1ÃĪhn
-mÃĪh1r
-3mÃĪn
+mÃĪ1i2
4m1ÃĪnd
+3mÃĪnn
2mÃĪo
-2m1ÃĪp
-mÃĪr1
-mÃĪr2kl
-mÃĪr2z1
+m1ÃĪrg
mÃĪ1t4r
mÃĪu2s1c
2m1b2
mbe2e
-mber2e
-mbe3ri
-mbert4
-mbi3er.
-mb4l
-mble1i
-mb4r
-mbu3sc
+mb6l
+m3b4r
2mc
m3ch
-4m1d
-m2dan
-m2d1a2s
-md1ÃĪr
-mde2a
+2m1d
+md1a
+m2d1ÃĪ
m2dei
-mde2m
-m2d1emi
-m2d1ent
-mder2
-m2d1erl
-md2Ãķ
-md3ras
-md3s2e
-mdt4
+mds2e
m2d1um
1me
-me3an
-me3at
-meau2
meb4
me2ben
-3mebr
-me1c
-medi3e4
-me1e2m
-mee2n
+m2e1c
+medi3
+medie4
+medien3
+2medy
+me1ef
+mee2n1
mee4r3ei
-2m1eff
mega3
-me4gel
3meh
-meh6l3er
-mehrer4
2m1eif
2m1eig
-m2ei3l2
+mei3l2
mein4da
-meiner6k
-mei6nerl
-3m2einu
-m2eist
+m2eis2
+me1i2so
me3lam
-me3l4ant
-me2l1au
-melb2
-mel3d2
-melde3i
+me2lau
+3meld
me2lek
-2melem
me2ler
melet2
2melf.
-3melk
-mel4k3ei
-mell2i
-3melo
-me2lob
mel2se
-melt4
+mel2sp
+mel3t4
6mel6tern
-2m1e2mis
+2m1e2mi
2m1emp
-2m1e2mu
m2en.
-men3ab
-me3nage
-me4n3an
+mena2b
+me3nal
men3ar
-me4nas
men3au
-2m1endl
-menen1
-4men4gag
+2mendl
men3ge
-me2nim
-men3k4
-men2on
-men4se.
-men4sem
-6mensemb
-men4sen
-men4ser
-men4ses
-mensi4d
+m4ens
+men4sk
men2so
-menst4
-m4enta
-men4t3ak
-m4entei
-ment5eig
-men6t5ers
+men3ta
2mentn
ment4sp
+4m3entwi
me1o
2meou
2meÃķ
-2mepa
-2m1e2pi
3m2er.
me1ra
-mera3l
-mer2as
-me2r1e2b
+mera1f
+me2r3ap
me4rens
-mer4err
-mer4erw
-4m3er4gÃĪn
+mer2er
+4m3ergÃĪn
merin4d
merin4t
-4mer4klÃĪ
m4ersh
-mer5sm
-mer6stel
-mert4r
-merz6eng
+merz4en
3mes
me2sal
me2sÃĪ
mes2e
4meser
-mes2po
-2mes2sa
-mess3an
+2me3sh
+4m1essa
mes6ser6g
-mes4s1o
-mes2sp
-mes2s1t
-mes1ta
+mes2s1o
+mes2s1p
+meste2
me2str
-me3su
-me3sze
-3me2ß3
-me3ta
+4mesu
+3me2ß1
+m2et
+me3t2a
me3th
-meto1
-me2tÃķ
-me4trig
-met6t5en6d
+me3tr
meu1
2m1ex
-me2xe
1mÃĐ
2m1f4
-mfi2le
-4m1g2
-mgang4
-mglim2
-4m1h2
+mfi4l
+2m1g2
+2m1h4
1mi
-mi1a
-mia2b
-mi2am
-2m1iat
-mi1ÃĪ
+mi2ad
+mi3ak
mibi1
-mic1e
mi1ch
-mi2ci
mi3da
-mi2di.
-mi3dr
-2midy
mie3dr
-mi3ele
-mi4e3no
+mi2e1i
+mie3l
+mi2er
mierer4
-mie2ti
-mie4to
-mie2tr
-mi1f4
-3mige
-mi3h
-mik1an
-mi3ke
-mi4kel
-mi4kens
-mi3k4l
+mi2et
+mie4ti
+3mig
+mi2kar
+mi2ki
mi2ku
-3mil
-mi3la
+mi3l2a
+3milb
+3milc
milch1
mil4che
-mi3l2i
-mil3le
-mi3l2u
-4milz
-m2im2a
-2m1imm
-2mimp
-min2ac
-mi3nak
-min5anze
-m2inde
-2m1indu
-mi2nef
-miner1
-mi4n3e4ri
+2m1imp
+min2en
min2eu
-2minfo
min2ga
-mings2
-2minh
mi3ni
-mini3k4
-mi3nod
-mi2nof
-2m1inse
-m1inst
-mi3nu
+min2o
+mi1nu
+3minz
+mi2o
mioni1
-mi1p
3mir.
+mi3ra
3miri
3mirs
3mirw
-3mirz
-3mis.
mi2sa
mi4scha
-mi4schr
+mi4schn
mi4sch3w
mise1
-2m1i2so
-mis2pa
-mi2spe
-mis5sar
mis4ser
+mis3si
mis4st
mi2sta
-mi3str
-3misu
mi2ß1
-3mit
-mi2t1a
-mi2t1h
-mi2to
+3mit1
+mi2ta
+mi2th
mi2tr
-mi3tra
mit3s2
mit5sa
+mi3tsu
mit3ta
-mit3t2e
-mitte3s
-mi2t1u
+mi2tu
4mitz
-mi3v2
2m1j
-4m1k4
-m3kn
-4m1l2
+2m1k4
+m3ka
+mk5re.
+2m1l2
ml3c
-m3le
-ml3f
-ml3k
-m3lo
-ml3p
ml3s
-4m1m
-mma3a
-mm3achs
+2m1m
+m2mab
m2m1ak
m2m1al
-m2mans
+mm1ang
+m2m1ans
mm1anz
-m2m1ap
-mm2app
mm1art
-mmas4p
mma2ß
-mm1aus
-m2mÃĪ4
-mm1ÃĪu
+m2m1au
+mmÃĪ4
mmd2
-m2m1e2b
-mme2c
-m2m1ef
+m2me2c
m4meh
m2mei
mm1ein
mm3eise
-mme2l1a2
mme4lin
-mm2ene
-mmen6te.
-mmen6ten
-m4mentl
-m4ments
+mme4na
m4mentw
m2me2nÞ
-mme2r3a
+mme2ra
mme4rec
-mmer6geb
-mme2s1
-mmes3a
-mme3sc
-mme4sz
+mme2s3a
m2me4te
-m2m1eu
-mmga4s
-mmi3el
-mmi3m
mm1inb
+mm1inf
mm1inh
-m2m1ins
+mm1ins
mm1int
-mm2is
mmi3sc
m4mita
-mmi5tw
+mmo2du
m2mo2l
m2mor
+m2m1Ãķ
mm3p2
mmpf4
mms2
-mm3sa
-mm3si
mm3te
m2mum
-mm2un
-mmu3r
m2mus
-mmÞl2
2m3n2
m4nesi
1mo
-2m1o2be
-3mobi
+moa3
2mobj
3m2od
-mo3de
+mode3s
mo2dr
-m1of
-mo2fe
-3mog
-2mog.
-mo2g1al
-3m2oh
-moh2a
-moi3r
+4mog.
+mo2gal
+3moh
+mo2i3
mo2k1l
2mol.
-mol3d
3mom
mom2e
3m2on
-mo2nan
mo2nÃĪ
-mon4dac
-mon4del
-mon2do
-mo2ner
-mon3s2
-mont2a
-mon3th
-mo1ny
-3m2o2o
-2m1o1pe
-mo2per
-2m1opf
+mo3ne
+mo4n1er
+mon3s
+3mo2o
+2m1ope
2mopt
mo1ra
-mor2an
-mor2d3a
+mo2rar
+2m1orc
+mor4d3a
mor2dr
-mo2rei
-mor3g
-mor3t2
+mo2rer
3mos
-mo4ska
+mo3se
moster4
-mo2sto
-mo3t2h
-mot4r
-mous2
-2m1ox
+3mot
+m1o2x
mo1y
1mÃķ
-mÃķbe2
mÃķ2c
-2mÃķ2f
4mÃķk
-2m1Ãķl
+m1Ãķl
4m1p
mpa3ne
-mpe2la
-mpe4lin
-mpe2n
-m2p1ene
m2pf
-mpf1ef
-mp4f3erf
-mpf3erg
-mp6fer6ge
+mp4f3erg
mpf3erp
-mp6ferpr
-mp4f3err
-mp4f3er4z
+mpf3err
+mp4f3erz
mp2f3l
mpf1or
-mp2fr
-mp1haf
mp1hos
-mpin2
-m3plÃĪ
-mp3lei
+mpi3as.
m4p3lem.
m2p3len
m2p3les
+mp4lif
m3pon
-mpor6ter
mpot2
-mps2
-mp3sh
+mp3ta
m3pu
2m1q
-2m3r4
-4m1s
+2m3r2
+2m1s
m2san
+ms3and
ms1as
-m3sat
-msau3e
-m2s1ÃĪn
+m3sÃĪ
msch2
-m3se.
-m2s1e2d
-m2s1ef
-m2sein
-m2se2le
-mse2n
-m2s1ene
-m2sent
+m4s1ef
ms1erf
-ms2erh
-mse2t
-ms1eti
-m2s1eu
-m2sex
-m2s1o2d
+ms1erw
+ms1ini
mso2r
-ms1orc
ms1ori
m2spÃĪ
m2sped
-m4spl
ms2por
m2spot
m2spro
ms2pu
-m4s3s4
+ms3s2
m4stag
m2stal
-m2stit
m2sÞ
-m4sw
-m4szi
-4m1t
+2m1t
mt1ab
mt1ak
-mta2m
+m3tam
mt1ar
-mt3aug
-m2t1e2d
-m3tei.
+mt3are
mt1ein
-mt1eis
mt1elt
-mt1emi
-m4tenga
-m4t3engl
-m4tentf
-m4tentg
-m4t3en4tr
-m4tents
-mter2
-m2t1erb
-m4t3erei
m2t1erf
m2t1erg
-mt1erh
-m2t3e2r4i
-m2t1erk
m2t1erl
-mter4n
m2t1ers
m2t1ert
-m2teta
+m2t1eta
m2t1eu
-m2t1ev
-m2t1h
+m2th
mt3ho
-m2t1i2d
-m2tim
-m2t1in
-m2t1i2r
+m2t1im
+m2t1ins
+m2tint
mti2s
mtmen2
-mt1ob
-mt1op
-m2t1Ãķl
+m2tÃķl
mt1Ãķs
mtra4s3
-m2t3ro
m2trÃķ
m4ts
mt2sa
-mts3chi
-mt3sco
mt2s1e
-mt3send
mt3s2ka
-mt3s4kel
-mts3tÃĪt
-mtt4
+mts1p
+mt1spa
+mtt2
mt1um
-mtu3re
+mt1urt
mt3z
1mu
mu1a
-2m1uh
+2m3uh
mu3la
-3muld
-3mult
-3mumi
-m1ums
-mum2s1p
+2muls
3mun
-mundan4
-mun6derf
-mu2ner2
-4m1unf
+mun2d1a
+4m3unf
4m3ungeb
mu3ni
-mu4nin
-4mu4niv
-4munw
+m4unk
+m2unr
+munt2
4munz
+mu3ra
mu4r1u2f
3mus.
mu4s1a
-3musc
mu2s1o
mu2sp
mu3s4se.
mu3s4ses
-mus4ste
-must4e
mu2s1to
mu2str
mu2su
muße3
-mut1au
-mut2st
+muts3t
+mut4str
1mÞ
2mÞb
3mÞh
mÞ2her
-mÞhl1a
-mÞl4len
+mÞl2
+mÞl3lu
3mÞn
-mÞ3s2si
+mÞ3s4si
3mÞt
2m1v
mvoll1
2m1w2
mwa2
mwa4r
-mweg2
mwel4t3
mwu1
-3my
-my1al
-2m1z2
-mzel4li
-mzu1
+1my
+2m1z
mzug4
1na
3na.
2n1ab
-3naba
na2bÃĪ
-n3abh
-3nabi
-n3abk
-na2b3l
-na2bor
+na3ber
+4nabg
+4nabh
+na2bl
+n2abo
na2br
-nab4rÞ
-4n3abs2
-na2bus
+4n3abs
+4nabt
3na2c
-n4ac.
nach1
-nachen4
-na5chen.
-n3achse
-nach3sp
-nach8t7ersc
+na3chen
+nach3s
+nach8ters
nacht8raum
-n1ada
-na3dab
-3nade
-na3de.
-nadel1
-na3den
-na2der
-4n1adl
-4n3adm
-n1a2dr
-3na3e
-2n1af
-na1fra
-nag2a
-na3ge.
+4nadd
+n2ade
+4n1a2dr
+n1af
+na1f4r
+3n2ag
na2gem
-4n1agg
-n1a2gi
-na3gin
-na3g4r
3n2ah
na2h1a
n4ahm
-4n3ahn
-4n3aho2
+n3ahn
3nai
nai2e
-n1aig
-4n3air
-nai4re
-n2ais
+n3aig
+n3air
2n1ak
-3nakÃĪ
+na2ka
3nako
-na2kro
-4nakt
n2al.
na2l1a2
-nal3am
-na4lar
+na4lal
na2lÃĪ
-2n1albk
-n2ald
-nal3da
-nal3ei
-na4l3ent
-na6lerei
-na4ler4g
-na4lerm
-na4l3erw
-nales2
-nal1et
-nal1ex
-nalg2
-na2lid
+3n2ald
+n4ale
+na4lent
+na2let
nal3la
+nalmo2
na2lop
nal2ph
-nal3s
n2als.
-nal3t2
-n2alty
+nal3t4
na2lu
2naly
-n2am.
-na2mat
3name
na3me.
-4na2mei
-n4a3men
+n2amen
+namen4s3
4n1a2mer
-na2mid
-na2min
na3m4n
-3n2amo
-n1amp
+3namo
nam2sp
2n1amt
namt4s
-na4my
-n1an
-4na2n4a
-na4nat
-n3a2nÃĪ
-4n3anb
-n3and2
-nan1eu
-4n3anf
-4n3ang
-4nanh
+2n1an.
+4n1a2na
+4nanb
+n1and2
+4n1ang
+2nanh
2nani
-4n3ank
-4n3anl
-3n2ann
-4n3anna
-4nano
-nan2o3b
-4n3anp
+4nank
+2nanl
+3nann
+na3no
+n1anp
2nanr
-4n3ans
+4n1ans
2nantr
2nanw
-n2anz.
-nanzen4
-nan6zene
-nan6zeng
-nanzer4
-na3ot
-na2per
-n1apfe
-4napfel
-n3a2pr
-n1aq
+nap2si
n1ar
5nar.
na2r1a
2narc
n2ard
-n2are
-n4are.
+4narg
3nari
n2ark
n2arle
2narm
-n2aro
-na2rom
-n2arr
-n2ars
-2nart
-n2arta
-n2arth
+4nart
+n3arti
na3r2u
3nas
-n4as.
+n2as.
na4schw
-4n1a2sp
-nas2s1c
-4n1assi
-na2str
-4na2sy
+4nasp
+4n1a2sy
nasyl2
3naß
3nat
-n4at.
-nat3au
-nat1ei
-na3ten
-na2t2h
-4natm
-nat2o
-4natom
-5nator
-nat1r
+n4ata
+n3a3t4h
+na4the
+4n1atm
+nats1
nat4sa
-nats1e
-na3tu
+nat4sc
+4natt
n1au
+4nauf
nauf4fr
-nau2fr
+n3aug
5naui
3n2aul
4nausb
-4nausd
-4nausf
4nausg
-4nausl
n2auso
-4nausr
-4n3auss
+4nauss
4nausw
-4nausz
-nau3te
-3nav
-nave4
navi5er.
navi5ers
1nÃĪ
-2nÃĪb
-3n4ÃĪc
+3n2ÃĪc
3nÃĪe
-2n1ÃĪf
-3nÃĪg
-nÃĪ2hi
-3nÃĪhm
2n1ÃĪhn
-nÃĪ2hu
+3nÃĪi
2n1ÃĪ2m
2n1ÃĪn
-2nÃĪp
-2nÃĪq
+n1ÃĪrz
+3nÃĪs
nÃĪ2sc
n2ÃĪ6s3s
+3nÃĪß
2nÃĪu
3nÃĪ1um
2n3b4
nbe2in
-nber2e
+nbe3n
+nbe3r2e
nbu3s
nby2
2n1c
-n2c3ab
-n3can
-n3ce4n
-n3ces.
-n3chl
+n3ce2n3
nch3m
-ncor2
-n3cr
-n3cu
2n1d
-nda1f
nd2ag
-n3dai
n2d1ak
-n2dana
-n2dani
-n2danz
-nd1arr
-n3dat
-nd3att
-nd1au
-n2daut
-n2dax
-nd1ÃĪng
+n2danl
+nd1ann
+n2d1anz
+ndat2
+n2d1au
nd1c
nde4al.
-n2d1ede
-n3dee
n2dei
-nd3elfe
-ndel3l
-ndel4sa
-ndels5en
-nde4mot
-nden3sk
+nde4lÃĪn
n4dentl
-n4dents
-nde3o2
-n5der.
-n5deren
-nd2erh
-n5deri
+n4d3ents
+nder6laß
nder6lÃĪs
nde4rob
-n4de4ros
-n6der6sat
-n3d2es
-nde2se
-ndes3s
+nde2s
+ndes1e
+nde4spe
ndi2a3
-nd1imm
-n2dof
-ndo4n3a
-n2dopt
+n2dob
+ndo2be
+nd1op
nd1or
-n2do2ri
-n2d3ott
+ndo2ri
n2dÃķ
-nd2Ãķs
-nd4ram
n2d3rat
-nd3rau
n2d3re
-n2drif
-n2d3roc
-n2drod
-n2d3rÃķ
-n2drui
+n2drob
+nd3rol
+n2drÃķ
n2d3run
-nd4sene
+nd2sor
nd2spr
nd3th
ndt4r
n2duns
-ndwa5re
+n2dÞ
ndy3
-ndys2p
1ne
3ne.
ne2ap
-3nea4s
+nea4s
ne3at
-ne3au
-4n3ebene
ne2bl
2n1ebn
-neb4r
2nec
3neca
-3nece
-ne2ch
-neck2a
-ne2dit
-2nee
-neei2
+3ned
+2nee3
+ne2e2i4
ne3ein
-ne3eis
-neema4
-neen2
-nee1r
-neer2e
n1ef
-n2ef.
-n2e3f2a
-2nefr
-2n1egg
-neg4l
-n1e2go
-neg4r
-n1ehe
+neg4
2ne2he.
-2nehem
2nehen2
-nehe2r
3nehm
-4n3ehr
+4n1ehr
2n1ei
-3neia
-4neic
-nei4dei
-nei4dr
4neier
+4neif
3neigt
-3neigu
-nei4la
-4neing
-4neinh
-4neink
-4neinl
-4neinz
-4neip
-neiss4
+4n3eing
+4n3eink
ne2ke
-2n1eks
-nek3t2
-2nekz
-ne2la
+nek3t4
+ne2l
+3nela
nel3b
-n1e2le
+2n1ele
4nelek
4nelem
ne3len
-ne3lex
-nel2i
-ne3lid
-ne2lit
+ne3li
3nelk
n2ell
nel4la4
-nel4lei
-neller6f
nel4lif
-3nel2o
-3nelu
-3n2em.
-ne3mas
-4n1emb
-4n3emp
+3ne3lo
+3ne3lu
+n2em.
+2n1emb
+nem4e
+n1e2mi
+2n3emp
2n1ems
-4nemu
3nen
-n4en.
-n2en3a
-nen4am
-ne4nan
+n2en.
+n2en3a2
ne2nÃĪ
n2enb
n2enc
-nen4dar
4n1endb
4n1endd
4n1endf
n1endg
4n1endh
4n1endk
-n1endl
4n1endp
4n1endt
4n1endw
-nene2b
+ne2n1e2b
nen3ei
-nene4m
nenen1
ne4nene
-nen3erb
-ne2n3eu
n2enf
-4n1engb
+4nengb
+nen4ge.
nen4gen
-4n1engs
-4n1engt
-n1engu
-nen4gun
+4nengs
+4nengt
n2enh
-ne4n3i
+ne2ni
n2enj
-n2enk2
-n2enm
-nen4nar
-ne2no4
-nen3s4e
+nen3k
+ne2no
+n2ens
+nens4e
nen3sk
-nen3s2p
5n2en3t2a
-4n1entb
-4nentd
-4nentf
-5n2enti
+n1entb
4n1entl
4nentn
-nen3to
5nentr
-4n1ents
+n1ents
4n3entw
4nentz
-ne4n3u
+ne2n3u
n2env
n2enw
-nenz4er
-ne2o3b
-ne2oh
-ne2or
-ne2pen
+n2enz
+ne2ob
+ne1os
2nepf
-2ne2pi
-2nepo
+2n1epo
ne2pos
-nept4
-n4er.
+n2er.
ne1ra
ne2rab
-ne2rac
ne2r3af
-ne2rag
ne3r4al
-ne2ram
+ne2r3am
ne2ran
-ne2r3ap
-n2erat
-ne6ratio
-ne3rato
+ne2rap
ne2rau
-n2erb2a
-4n3erbe.
-4n3erben
-2nerdb
-ner4dig
-ne2r1e2b
-ne2rec
+nerb2
+4nerbe.
+4nerben
+n1erbi
+nere2
+ne2reb
n1erf
-4nerfas
-3nerfr
+4n5erfo
+nerfor4
2nerfÞ
-2ner3g4
3nergr
n1erh
4n3erhÃķ
3neri
n2erj
n1erk
-5nerka
-n2erkÃķ
n2erli
2n1erlÃķ
nerma3
nermas4
-n1ermi
-2n1ernÃĪ
-4n3erneu
-2n1ernt
-n1eros
-n1erÃķf
+ner4mit
+n2ern.
+n1ernÃĪ
+ner4neu
+4n1ernt
ne1rÃķs
-n2ers.
-2n1ersa
-3nerse
-ner4sk
-4n3ersts
-nert4
-3nert.
+n2erp
+3n2ers.
+n3ersa
+n2ert.
ne2rup
-3n2erv
-4nerwar
+n2erv
2n1erz
-n2es.
-ne2sal
+n2es
+n4es.
+nes2c
ne2sei
-ne2s1ev
-2ne3sh
+ne2sev
+nesi1
ne3ska
-ne2s1of
-ne2s1or
+nes1o
+ne2sor
ne2s1pa
-4n1es2si
-2n1e2st3r
-4nesyn
-3n2eß
-ne2tab
-2ne2tag
-net1ak
+4n3essi
+ne2tad
+ne2t1ak
ne2t1an
-2ne2tap
-2ne2tat
+ne2tap
+n1etat
ne2tau
-ne4te2l
ne2th
net3ha
-ne3ti
-ne4tin
-ne4tob
-net1s2
-n2ett
-net3ta
-net3te
-net3tr
-2n1e2tu
-net4zer
-net2z1i
+nett4sc
+n1e2tu
+net2zi
ne2u
neu1c
-neu4ere
neuer4f
neuer4k
-neuer4r
neuer4s
neuer4w
-neu3g4
+neu3g
2n1eup
neur2
-neu2ra
-neu3t
-3n2evi
n2ew
-ne3wa
2n1ex
-ne2xi
-5ney
3nez
-3nÃĐ
+1nÃĐ
2n1f
-n3f2al
+nf1ak
nfalt2
-n3f2ang
-nf4ar
-n3f2ÃĪ
-nfÃĪs3
-nfe2i
-n3f2en
-n3f2er
-nf2es
-n4fex
-nff4
+n3far
n3fi
nfi4le.
-nf4le
+nf4l
+nf5lin
+nflÃķs4
nf2o
nf4r
-nf3s2
nf2tan
-nf3tei
+nft2o
nf2t3r
-nft2st
+nft2s
nft4ste
n2f1u
4n1g
-n3gabe
-ng1abt
+ng2abs
n2g1ac
-n2g1ad
+ng1ad
n2g1ak
-ng1a2me
-ng3anda
-ngang6st
-n2ganh
-n4ganl
-ng1ant
-ng1are
-n3g2ars
-n2g1a2v
+n2g1a2m
+n2g1and
+ng2anf
+ng1anz
n2g1ÃĪl
ng3d4
-n2g1eif
+n3gef
n2g1ein
-ngelb4
-nge3l4ei
-n3g4en
-n5gene
-nge5nerw
-ngenmas6
-ngen3s2
+ng2en
+ngen2a
+ngens2
+n3ger
nge4ram
-n2g1erg
-nger4zÃĪ
-n3g4es
-nge3s2a
+n4g3erse
+ng6es
+nges2t
+nge4zÃĪn
+ng3g4
ng3hu
-n2g1id
-ng2lad
-ng2lÃĪs
+n2g1i2d
n2glic
-ng4lok
-n3glot
-ngma7sse.
+n2glo
+n3g2loc
+ng3m
n2gn
ng3ne
-n4g3ni
-ng4nom
-ng2nu
-ng2ob
-n2g1op
-n2g1or
-ngo2ri
-n2gÃķ
-n2g3rai
-ng4ran
-n2g3rat
+ng1or
+n3gra
+ng3rat
ng3roc
ngro3s
-ng3rost
-ng2s1
-ngs3an
-ng4s3au
-ng5schr
+ng2s
+ngsa4g
+ngs1ah
+ngs3au
ng4s3e4h
ngs3pa
-ng4spar
-ng4stec
ng3ts
n2gum
-ngzei4t
-4n3h2
+2n1h2
+n3han
+n3har
+n3hau
+n3hÃĪ
+n3he
nhe2r
+n3hu
1ni
-3n2ia
-ni3alo
-ni2ar
-nibb4
-nic4
-ni1ce
+3nia
+nib4l
+nibu2
+nicht5er
+nich8ters
n1id
3n2id.
-ni3da
ni2de
-2nidea
ni3dr
-2n3idy
-n2ie
+n4ie
nie3b
ni1el
nie3l2a
nie4n
ni3ene
-ni3eni
-nie4rei
-ni4erna
-nie4sa
-nie5sse
-ni2eu
-ni1fl
-niga2
-ni2g1ab
-ni2g1am
-ni2g1an
-4n3i2gel
-n4igen
+ni1ero
+nig2a
+2n3i2gel
2niget
-ni4gl
-nig3li
-ni2gn
-nig4sp
-nihi3
+nig3r
+ni2gre
+nig2sp
+3nik
+ni2kal
ni2kar
-3nike
-ni2kel
-ni3kerh
-ni2ki
-nik3ing
-ni2kor
-ni2k3r
-nik3t4
+ni3ker
+ni4k3ing
+ni3kl
+nikma3
+ni2kr
3n2il
-ni3l2a
-ni3l2i
-nil3l
-4nimp
+nim2o
+4n1imp
nin1
-3nin.
-3n2ina
-nin2ac
-ni2nal
-3n2inb
-2n1ind
+3n2in.
+n2in2a
+4n3ind
2ninf
-3n2ing
-ning4s
-2n1inh
-4n1ink2
-3nino
+3n2ing4
+4n1inh
ni2nor
-3n2inp
2n1ins
+n2ins.
4ninse
-4ninsu
4n1int
-ni3nu
-4n1inv
-3n2inw
+2n1inv
ni2ob
ni3ok
-ni3ora
+ni3ol
n2ip
-ni4ron
-n1irr
+ni3ra
3n2is
-ni4sam
-ni2san
-ni2sÃĪ
-nis3cha
ni4schw
ni2s1e
ni3se.
-nis3el
-4n3isol
-ni2som
-4nisot
-ni2sp
-ni3spi
-nis5s4
-nis3tha
+ni2s1p
+nis5s2
ni2stu
ni3stun
ni2s1u
2nit
-3nita
ni1th
ni2ti
-4ni4tia
-nit2o
-3nitr
-nit3s
+nit4r
nit4tec
-nit6tell
-nit6ter6g
-nit6t5er6k
nit4tie
-nit4tra
nitt4sa
-3niu
-niv2
+ni3tu
3nix
-2n1j
-4n1k
-nk1abr
-n2k1ac
-nka2ge
-n3kal
-n4kalg
-nk1ang
-nk1apf
-nk3art.
-nka3sc
-n2katm
-n2kato
-nk1aus
-n2kaut
-n2k1ÃĪh
+n1j
+2n1k
+n2k3ad
+n2k1ak
+n3k2al
+n4k3alg
+nk2am
+n2kans
+n2k3au4s
+n2kÃĪh
n2k1ÃĪp
-nk1ei
-nk2eil
nke4lei
-n4kelem
nkelma3
nkelmas6
-nke4na
-nken4te
-n4k3erle
-nke4ros
-nk3ersa
-n3kesc
-nke2t
-nk1eti
-n2ketu
-nk1i2d
-n2kide
+n3k2er
+n4k3erfa
+nk4erg
nk1inh
n2k1ins
-n4klade
-n3klag
-nk3leis
-n2k3len
+nk3len
nk3les
n3klin
nk2lo
-nk4neb
-n2knis
-n2knit
-n2knu
-n2k1o4be
-nk1ope
-n2kopt
-nko2r
-nkord2
-nk1ori
+nk4na
n2k1ort
+nk2Ãķf
n2kÃķl
-nk4rab
-nk3rÃĪt
-n4kre.
-n2k3rel
-n2kren
-nk3rep
-n2krez
-nk3ro
-n2krol
+n2k3ro
nk2sal
-nk2se
-nk3sen
-nk2so
-nks2ti
+nks2ei
nk3s2z
nk2tak
-nk4terg
-nk4t3ern
-nkte3sk
-nkt2et
-nk2tin
+nk2tan
nkt1it
-nk2top
-nkt1r
-nkt3ric
-nk2tro
+nk4top
nk2tru
-nkt4sen
-n2k1um
-nku2n
-nk1urh
n2kÞb
2n3l2
-nla3ge
-nle2ga
-nli4ne
-2n1m2
-n3ma
-n3mÃĪ
+2n3m4
nmen2s
-n5mi
+nmÞl3
4n1n
+nna2be
n2nada
-nna2g
-n2nalg
-n2n1all
-nna3m
-n2nan
-nna3st
+n4n1all
+n2n1an
+n5nat
n2nau
-n3nÃĪ
-n3nec
-nn2ei.
-n3nelb
-nne4le
-nne4na
-nn2ens
-nner4ei
-n6n5ereig
+nn3d
+nn4ens
+n4nents
nner4fÞ
-nner6geb
-nn4ergr
nn2erh
nn2erk
-nner4la
-nn2ero
nne2rÃķ4
-nn3erwa
-nner6war
+n4n3er4wa
nner2z
-nne4s1e
+nne2s1e
n2ness
-nn2eu
nn2ex
nn3f
nng4
n3ni
-nnk2
-nn2o3b
-nn3obl
-nn3obs
n2nof
-n2n1op
-nno2r
-nn1ori
-nn4sam
-nn3ser
+nn1o2r
+nn3se
nn3s2p
+nn4s3pe
nnst4
-nns3tat
-nn4stoc
-nn2stÃķ
-nn3t2a
nn2th
n2n1uf
n2n1unf
nn1ur
1no
3no.
-no5at
-3n2oba
-n2obel
-2nobj
no2bla
-n2oble
+n2o3ble
3noblo
-3noblÃķ
2n1obs
-nobu2
-nobut3
-3noby
no1c
-noche4
noch4r
-2nod
-no2de
-no2ed
+2no2d
+no3dr
n1of
-no2fe
-2noff
-2n1oh
-3n2ohe
-no2kel
-2n3okk
-no3kr
+2n3o2fe
n3ole
no2leu
-no4lig
-no2liv
-2n3o2ly
-3no3me3
-no3mi
-3nomp
-non2e
-n1onk
-n1ont
-2nony
-no2o
+n2on.
3n2opa
-3nopÃĪ
-no2per
-2n1o2pi
-2n1ops
-no3p2te
3nor.
nor2a
no2rad
-n2o3rak
+n2o1rak
no3ral
-no3rar
2norc
nor4da
-3nordb
-nor4des
nor2d5r
-no3r2e
-2n1org
3norh
-3n2orl
3norm
-norm2a
-nor3mal
-3norÃķ
3nors
-2n1ort
+n1ort
3n2os.
-nos2e1
+no3se
no3sh
-no5s2k
no2sp
-2nosti
+no4ss
+n2oste
nost1r
2nostv
nos2u
-no2tan
-no3tart
+no3tab
no2tÃĪ
-not1e2i
-no6t5entr
-no2ter2
-noterb3
-no2tex
-not1h
-no2tho
+no4t1ei
+no2tel
+no3t3h
+no4tha
no2t3in
-no2t3op
-no2t3r
-not3tr
+no2top
+no2tr
3nov
+3now
2n1o2x
3noz
2nÃķd
-4nÃķ2f
-4n1Ãķk
-4n1Ãķl
-n2Ãķr
+2nÃķ2f
+2n1Ãķk
+4n1Ãķ4l
nÃķ4s3s
1n2Ãķt
-4n3p4
-npa2ge
+2n3p4
+npa2g
npf4
npsy3
2n1q
-6n3r2
-nran2
+4n3r2
nra4s3s
-nrau4ma
nrÃĪu3s
-nrebe2
nre3sz
-nro2h
-nrÃķ2s
-nrÞcker6
-4n1s
-n3sabo
+nrÃķ2s1
+6n1s
n2sa2d
-n4s1a2gi
n2sall
-n2salt
-ns3ane
-nsa2r
-ns2arg
-ns3ari
-n3sark
-nsa4s
-ns4ath
-nsau4r
-nsau4se
-n2saut
-ns2av
-ns2ax
+n2sang
+n2sant
+n3s2arg
+n2saus
n2s1ÃĪn
-ns2ÃĪug
+nsÃĪ4s
n2s1ÃĪus
-n3sche.
-n4schef
-nsch5eul
+ns2ca
n4schl.
-nsch2o
-nscht4
n3schu
nsch7werd
-ns2cr
ns1eb
-nse4ein
-ns2eh
nse2ha2
nseh5ere
-n4seinf
-ns2ele
-ns3elem
-n2sem.
+n3senk
nsen4sp
-n2sepo
-n2s1erf
-n2s1erg
+ns1ent
+ns1erf
+n4serfo
+ns1erg
n2serh
n3seri
-ns1erk
-ns1erl
-n4serle
-n4s3erne
-n2serÃķ
+n2s1erk
+n2s1erÃķ
ns1ers
-n4sersc
-ns3ertr
n2s1erw
-n2serz
-n4sety
-n2s1eu
-nsfi2l
-ns3hor
-ns3iden
-n5sim
-n6simp
-n2sini
-nsinn2
+n2s1erz
+n3sex
+nsfi4l
+n2simp
+n2s1ini
+nsinn4s
nsi2te
nsi2tr
-n3s2kal
-n3s2kel
-ns2kis
-n3skle
-n3s2ky
-n5smara
-n2s1o2d
-ns1of
-n2soff
-ns4om
-n4s3ont
-n2sop
+ns2kal
+ns2kel
+n2s1op
n4s3ort.
nsp4
-ns2pac
-ns2pek
-ns2pel
-n5s4pen
+nspas2
+n2spat
+n5s2pen
n4speri
n2sph
ns2pi
-n5spie
n2spo
+ns3pon
n2sprÃĪ
n4s3prie
-n2spro
-n2sput
+n4spro
ns3s2
-nst1ak
-n4stale
-ns4ta2n1
-nst3ane
-ns4tar
+ns2t1ak
n2stas
-n4s3tat.
-n6staten
-n4stats
+n4stat.
+n4s3tate
ns2tau
n5s2te.
-n4steif
-nst5eife
-nst7einhe
+n4st3eif
+n5stel
ns4tem.
ns4ten.
n4stent
-ns4ter.
-nst5erge
+ns2ter
+ns3term
ns4tes.
n5steu
-n5s2tic
-n4stilg
-n2stob
-n4stole
+ns2tob
+n6stoffi
nst5opfe
ns2tor
n4strac
-n4strad
n6strieb
-n4strik
-ns4trun
+nst4ru
ns2tum
-nst3u2t
-n3suf
+nst2Þ
+nstÞ1b
+n2sty
ns2um
-ns1un
+n2s1un
ns2ung
-n2s1urs
-n2sut
-n3sy
-ns2zin
+ns2unr
+n4s3zi
2n1t
+nt3abs
n3t2a3c
-ntak4ta
-ntal1a
-nta4lin
-n4t1all
-nta2lo
-nt2alp
-n3ta3m
-nt2anb
-nta3ne
+n3t2al
nt1ang
-n4tansp
-nt1ant
n4tanza
-n3t2arb
+nt2arb
nt1ark
-n3t2arm
-nt1art
-ntar6tik
-nt3artu
-n2t1ass
-n2tath
-n3tatl
+nt4at
n2tauf
nt1ÃĪm
n2t1ÃĪu
+n3te.
nte3au
+nte2b
+nt1ebe
nte1e
nte3g6
-n2t1eh
-n3tehe
-n2teig
+nt1eh
nt1ein
-n2t1eis
-nt1emo
-nt4en
-nte4na
+nte5lei
+n3t2en
+nt4ene
nten6te.
+n3ter
ntera4
-nte6r5eis
+nte4ras
nt4erh
-nt4erk
-nt4erm
nt4ern
-ntern4e
nt4ers
nt4ert
-ntes2
-nte3sa
n2t1ess
-n6testri
-n2te2ta
-nteu3
-nteu6eri
+n3tet
nte3v
-nt1hel
-nt1hie
-n2thot
-n3thr
-nt4hu
-n2t5hum
-nt4hy
-nt2i
-ntim3p
-n2t3ind
-nt3inf
-nt3inh
+nt2her
+n2t3ho
+n3t4hu
+nti3k4l
+n2tinf
+n2t1inh
ntini1
-n3t4lem
+n3tit
+nt4lem
ntmen2
-ntmo4
-ntni2
-ntnis1
-nto3re
-n2torg
-n4t3o4rie
-n2t1Ãķl
-nt4ral
+ntmo2
+n3to
+nton2s1
ntras3s
-nt1rau
-nt4raum
-nt3rea
nt3rec
n3t4ree
nt3reif
n3trep
-nt4repr
-nt3rich
-n4t3rieg
-n2troh
+nt4rig
n3trop
n2t3rÞ
n4t1s
-nts2ah
+nts2o
nts2p
-nts3par
-nt5spe
+nt4s3par
nts2ti
-nt2sur
-ntt2
+nt4s1to
nttÞ3
+3n4tu.
+ntum2
+ntu2ra
ntu4re.
+ntu4res
nt3z
-1nu
-3nu1a
-nu3a2r3
+1nu.
+1nu1a
+nu4ale
+nu3ar
nubi1
-2nuc
-nude2
+1nuc
+1nud
3nue
nu2es
+nuf2
nu2fe
+1nug
2n1uh
-3nuhi
-3nui
-n2uk4
-nu3kl
-n3u2kr
-null3eb
-nul4lin
+1nui
+nu3k4
n2um.
2n3umb
-n2ume
2numf
2numg
-2numl
-3n2umm
-4numr
+3numm
+2numr
2n1ums
-2n1umv
2n3umz
-nu4n
+nu2n
2nuna
-2n1une
-3n2ung
-4n3ungl
-4n1uni
-n3unk
-2nunr
+nunf2
+1n2ung
+3nung.
+n3ungl
+2n1uni
2nunt
-2nunv
-2nunw
-3nuo
+1nuo
2nup
-2nu2r
-nur2i
-nurs2
-nur2z
+2nur
3nu2s
nu3sc
nu3se
-nu4si
+nus1i
+nu3sl
nus1p
-nu4ss
-nuss3er4
nu4s1t
-nu2ß1
-3nut
-nu2t1a
-n3uto
-nu2top
+1nu2ß
+1nut
+nu2ta
nu2t3r
-3nuu
-3nux
-3nuz
+1nuu
+1nux
+1nuz
2nÞ4b
nÞr1c
1nÞt
2n1v2
n3ver
-n3vl
-nvoran4
-2n3w
+nvol7ler
+4n1w
nwei4st
+2nx
1ny.
-2n1ya
-n2ya.
1nyh
+2nymu
n1yo
1nyr
1nys
1nyw
-4n1z
-n2zac
-n2z1a2g
-n2z3a2k
+2n1z
+n2z1a4g
n2zan
-nz3a4ne
-n3zani
-n2zar
-nza4s
-n2zat
n2z1au
-n2zÃĪn
-n2zÃĪr
-nze4la
+nz1ÃĪn
+n2z1ÃĪr
+nze4l3a
nzel3l
-nzel6lig
-n6zenerg
-n3zeni
n4zense
-n4zentl
-n4zents
-nz3erem
-n2z1erh
-nz1erl
-nzer4lÃķ
-n5z4err
-nz5erste
-nzer6tra
-n3z4es
-nze3sk
-nze2t
-nz1eta
-nze3u2t
-n2z1id
+n4zentw
+n4zentz
+nz3erwe
nzi2ga
n2zinh
-n2z1ini
-nz1int
-nz1inv
+nz1ini
nz3le
-nzlei3
-n2z1op
-n2zÃķl
-nzt4r
+n2zor
+nz2Ãķl
nzug2s
-n2z1wa
+n2zurk
+nz1wa
n2z1wÃĪ
-n2zwet
-n2zwir
+n4zwir
n2zwÃķ
n2z1wu
Ãąo1
-Ãąor2
2o3a2
-o4a3bi
+o4abi
o4ac
oa3che
oa3chi
o4ad
oa3de
-oa3in
-o4a3ke
-oak5l
+oa4g
+o4a3i
+oa3ke
+oak1l
o4a3la
o4a3mi
-oa4n
-oan4a
-o4a3q
-o2a4r
o2a3s
3oase
oa4si
-oa4sp
-o5ass
o4at
oa3te
o5au
-2o1ÃĪ2
+o1ÃĪ
o1b
-2ob.
-o3b2al
-obal3l
-ob2am
-ob2ar
-ob1auf
+ob2al
+obal2t1
+2oban
+o3bar
2o3b2ÃĪ
2obb
ob2e
-2obe.
+2o3be.
2obea
-2o3bec
-2obef
-o2b3ein
-2oben
-obe4na
+ob3ein
+obel2i
+2o3b4en
oben3d4
-1o2ber
-2o3ber.
-ober5eis
-ober3in
-oberin6g
+oben3se
+ober3in4
obe4ris
-2obev
-2obez
+2obew
2o3b2i
-3obj
-ob1la
+obi2t
+ob3ite
+1obj
+ob1l
ob3lei
-1ob3li
-2oblo
-2ob2lÃķ
-ob2lu
-2obo
-ob1or
-2obÃķ
-ob3rei
-2obrÞ
-o4bs2
+1o2b3li
+2o3blo
+2o3bo
+o2b3re
+obs2
ob3sh
ob3sk
+ob2sta
+ob3sz
2o3bu
-o4bunt
obus3s
2o3bÞ
-o4bÞb
-2oby
+2oby2
2oc
-o3ca
oc1c
-3occl
o1ce
och1a
ocha2b
-ocha2r
o1che
oche4b
o2ch1ec
-och1eh
och1ei
-oche2l
ocher4k
-ochi4d
och3l
och3m
och1o
-ochÃķ2f
+och3Ãķ2
och3r
ocht4
+och3te
o1chu
ochu2f
-och3u2t
och1w
o3ci
-oc4k
-ock5er6sc
+ock2er
ock3sz
-ock3ta
o1cl
o3co
o1ç
o1d
-2od2a
-od3ak
+o3d2a
od2dr
-o3de2c
-o3d2e3i
+ode2c
+o3d2e1i
odein3
-ode4l3ag
ode2n1
-ode2s1e
+odene2
+odesi1
ode3sp
-od2et
o3dex
-od2i
2o3dia
-2odi3c
-2odif
-2o3dir
-2odn
+odi4er
+o3dir
+o3div
o2don
-o2d1op
odo4s
-od2Ãķ
2odr
o2dre
odt4
2odu
o3dy
-ody2m
-2o1e2
+2o1e
oe4b
-oe3di
-oe4m
-oen1e
-oe3ri
-o2e3s
-oe4sc
-o2e3t2
+o2ec
+oe2d
+oe2h
+oe2l
+oe2n1
+o4es
+o2et
o3et.
o3ets
+oe2x
+o1ÃŦ
2ofa
-of1a2d
-of1a2g
-of2an
+of1ac
of1au
-2ofÃĪ
-o2f1e2b
-o2f1ec
-2ofee
o2f1ei
-2ofem
-o2fent
-2o3fer
-o4ferb
-2o3f2es
-o2f1e2t
-2ofeu
-of3eun
-of2fa4
-of4fal
-of4fam
-off3erz
+of2en
+o3fer
+of2fa
of2f1in
of2fir
of2fix
@@ -15332,481 +9702,286 @@ of2fo
of2f3r
offs2
off3sh
-off3si
-off3sp
of2fu
of2fÞ
2ofi
-ofi3e2i
-ofi3k4l
-2o1fl
-of3le
-of3li
+of3l
+of1la
+of4lÃĪ
of4lÃķ
2ofo
-2ofÃķ
-2o1fr
+2o1f1r
+of3ra
of3rÃĪ
of4rÞ
-ofs1
-of2sa
+ofs1a
of4sam
-ofs2ch
-of2se
-of2si
-of2sp
-of4staf
-of2sto
-ofs2tr
+of2spe
+of2spr
ofstra8ssen
-of2su
+of2s1u
2oft
-oft2a
of2tei
of3th
-oft4r
-2ofu
-of3ur
2o1g
o2g1ab
-o2g1ac
oga3d
+og1ala
og1ang
-o2g1e2i
-ogel3dr
-oge2li
-ogener4
+o2g1ei
+oge2l1i
ogenmas6
-ogerÃĪtein8
-o2g1eth
-og2gl
o3gh
ogi2er
-ogin1
-o2g1ini
-og3ins
-og1l
-og3le
+o3gis
og2lo
-o3g4n
-ogoi3
-og1o2ri
+og4n
+ogo4i3
og2s
+og3sc
og3si
og3s2p
-ogs1t
-2o1ha
-oh1alk
+o1ha
o1hÃĪ
o1he
o2h1eis
o2h1er2t
-oh1er2z
-2o1hi
-2ohl
+o2h1er2z
+o1hi
ohl1a
-oh2la2d
-oh2lÃĪ
oh3lec
ohl1ei
+oh3len
oh3lep
-ohler2
oh4lerg
oh4l3erh
oh4lerw
-oh3lo2
-ohl1or
-ohls2
+oh3lo
+ohls2e
oh2lu
-ohm2a
-1ohmi
-oh3mu
-ohn1a
-oh4nac
+oh4n1ac
oh3nee
+3ohng
oh2ni
1ohnm
oh2n1o
-ohn3sk
-2o1ho
-oho2l1e
-ohol1o
+o1ho
+oho2la
oh1o2p
-2ohÃķ
-oh3Ãķl
+o2h3Ãķ
ohr3a
-oh2rel
-oh2rem
-ohren3s
-ohrer2
-oh4rerg
-oh3ri
oh4rin
-ohr1o
-oh2rol
-ohrt4r
-ohs2
-oh3sa
-oh3t
+oh1ro
o1hu
oh1w
2o1hy
2oi
-o1id.
-o3i2da
-o1ids
+o1i2d
o3ie
-o1i2m
+o1im
+oimmu4
o1in
-o4ine
-oi2r
+oi2ra
+oi2re
+o2isc
o3isch.
-o4ische
oi3se
o1ism
oiss2
oi4st
-o1i4tu
2o1j
2o1k
-ok2a
-oka3b2
-o2k3ac
-oka3i
oka2la
-okale2
-oka6lere
-ok2e
-oki4o
-ok2la
-ok3lau
+okale4
+o3kat
+3o2kel
+oki2o
ok1lÃĪ
ok2li
-ok2o
-oko4pt
-ok2so
+ok4n
+4okr
ok2s1p
-ok3t2
-o3ku
-3okw
+okt4
2ol
o1la
-ol3abu
-olaf4
-o2l1a2m
-ol1ant
+o2lab
+o2l1ak
ol2ar
-o3l2a3s
-olast4
-ol1a2v
-4o1lÃĪ
-ol1ÃĪt
-ol2chr
-ol4d1am
-ol2dÃĪ
-ol2d1ed
-ol4d3eng
-old5ersa
-ol2deu
-ol2dim
-ol2d3o
-ol2dr
-4o3le.
-o2l1ef
+ol1auf
+o1lÃĪ
+ol4dam
+ol4dr
ol1eie
-o2l1eis
-ol1emb
+ol1eis
oler2
-ol1erk
-ol1er3t
-ol1ess
-ole3u2
-ol1exz
+ol1ex
+o1lÃĐ
ol2fa
-ol2fem
-olf3ere
-ol2f3l
+ol2fl
olf1r
-ol2f3ra
-olft4
-olgege3
-olge4ne
+ol2fra
+olf3sp
+olf3st
ol2gl
ol2gr
ol2i
-olie4n1
-oli4er
oli3k4
oli3tu
-3oliv
ol2kl
-olk3re
-ol2kro
-olks3
-olk4sc
-olk4si
-oll1ac
-ol4la4d
-ol2l1ak
-ol4lang
-ol4lau
+olk3r
+ol2kre
+ol2la2d
+ol2lak
+oll3ans
+ol2las
ollÃĪ2
-ol2lÃĪd
-ol3le.
-oll1eb
ol4l1ec
-ol2lei
+ol4lei
oll3ein
-ol3lem
-oll3erh
-oller4k
-oll3erl
+ol2l1el
+oll5ends
+ol4lerk
oll3erw
-oll3ess
-ol2lic
ol4li4st
ol2lo2c
-ol2lo2g
-ol2lop
+ol2log
ol2lÃķ2
-olls2
-oll3sa
oll3sp
ol2lu
ol3lus
-4olo
+o3lo
ol2of
-olo1p
+olo1p2
ol1ort
-olo3st
-ol2ov
-ol3s2k
-ol3te
-ol3t2h
-ol3ti
+ols2t
+ol2str
o1lu
-olu2th
-ol2y
-4o3lys
+3oly
+1olym
ol2z1a
-ol3zan
ol4z3ern
-ol2zim
-ol2zo
+ol2zin
ol2zw
-ol2zy
2om
o2mab
-oma2bl
-o2m1a2ge
-om1alg
-om1all
-oma4n3er
-o2m1ang
-om2anr
-o4mante
-o2m1ap
-o2m1ar2s
-o2m1art
-omar4te
-o2m3a2sy
-omat2i
-o4matom
+oma4ner
+om2anw
+om1art
o2m1au
-o3mÃĪ
o2meb
om1ebe
-o2m1ef
+ome3c
o2m1ei
+o3meis
o2mel
-o3meld
-omen5t6an
-o4mep
+o2mene
+o2mep
omer2
-om1erh
o2meru
om1erz
-omi2c3
+om2es
omiet1
-o3mig
-om1ind
+omil3l
+o2m1ind
om1ing
om1ins
o2m1int
om3ma
-om3mÃĪ
-om3m2e
+om3me
om3mu
-3omn
-4omo
-o2m3oa
-o2m1org
-om1o2ri
+om1org
om3pf
+omp4l
oms2
-om3sk
-om3t2
-o2mum
+omtu3
o4munt
-o3mus
+omy1
2ona
-on3a2b
-on2ac
-ona3g
+ona2b
+o2nae
o3nal
-on3ann
-onan6z5ei
-o2n1ap
-o2n3arb
-ona3th
-4onatol
-onat2s
-o4n3at4t
+ona4lin
+on1ap
+o2narb
+on4at
on2au
2onÃĪ
on1ÃĪh
+onbe3
2onc
-on2dan
-onde8rers
-onderer7t
-ond1r
-on2dra
-on4drin
-ond3sk
+onderer5
2one
-on1ec
-o3nee
-o2nef
-o3neig
-on3ein
-on1ema
+one4i
one2n1
-o4n3ends
-on2eng
-on1ep
-o3ner.
on1erb
o2n1erd
-oner4fa
-o2nerh
-on4erka
-on1ers
+on1erg
+on1erÃķ
o3nett
-on2eu
on3f2
-on3gl
-ong4le
+on3g2l
ong4r
ong3s
-on2gue
4o3ni
on2i3d
-onie3g
-oni2ga
-on4ik
o4nikr
-o4nim
-o4nind
-o4ninh
-o4nins
-on3k4
-3onke
-onli2
-onli6n
+o4n1im
+on3ing
+on3k2
+onli4n
onlo2c
-onna2
-onna3g
on3n2an
on3n2e
-2ono1
+ono1
o3nod
-o2nof
-ono2i
-o2n3oke
-o3nom
-on1ope
+o2noke
on1orc
-on3ord
ono3s
-ono3t2
-onrad3
-ons1a2
+ons1a
+onsa4g
on2seb
-onsen1
-onse2t
-on4sho
+onse2l
+on4sh
onsi2d
-ons3ing
ons3l
ons1p
-onst2a
-ons3tie
-onst4r
-on3ta
-on2t1eb
-on2te2l
-ont5end
-on4t3erl
-on2th
-on4t3rat
+onst2h
+on3t2a
+on4t3end
+ont3erw
+on2t3ri
+o1nu
2onuk
-o3nur
-2onut
on3v
1ony
-o3ny.
-on3z2
-onze3in
+on3z
o1Ãą
-oo1c
-ooch2
-oofs2
-oo2gl
oo2k3l
-oo2kn
-oo2mo
-oo2ne
o1op
-oop2s
o1or
-oor3d
oo4sk
+oos5s
oo2su
-oo2t1a
-oot1ei
-oo2t1h
oo2tr
-oot2s1t
-oot3t
-oo2tur
2o1Ãķ2
-2op.
o1pa
-op3adr
-op1akt
-opa2le
-op1ang
-2opax
-2opÃĪ
+opab4
+o2p3ad
+op3akt
+o3pan
o1pec
-o1ped
-op1ef
o1pei
-o1pek
-2open
-o2pera
-op1erh
+ope4n
+1oper
o1pes
2opf.
op2f3a
op3fah
-op2fÃĪ
-o2pfe
-op2fem
-op2fin
+op4ferd
+opf5erde
+opf1l
opf3la
op1flÞ
-op2fo
op3for
4oph2
o3phe
@@ -15814,472 +9989,318 @@ o1pi
opi5a2
opi3er.
opi5ers.
-opie4r3u
opin2
-2opl
op3lag
-o2p5le
-o3p2n
-2opo
-opo2la
-op2pan
+o2p3le
+op3li
+2o3po
op4pl
-1oppo
-2oppt
2o1pr
-3o4psi
+1opsi
op3sz
-1opt4
-2opte
-op3th
-o2pum
-2opy
-2o1q
+1op3t4
+o1q
2or.
or1a
-2ora.
-o1raa
-2or3a2b
-o2rabb
-o2r3add
-or3adr
-o1r2ag
-o2rak
-1orake
-o1ral
-oral5l
-o4r3alm
+or3a2b
+o1rad
+2o1ral
+o2r3alm
or4alt
-or2am
-or3a2mi
-o1ran3d4
-or4ane
-oran2f
-oran2m
-oran4ze
-or3ap
-2orar
-o1r2as
-o2ratt
-2orau4
+3or2am
+or2and
+o2ranh
+or3arb
+o1ras
+or3att
+orau4
orau2s
-oraus6wa
-or2av
-2o1raw
-o1ray
o3rÃĪ
or1ÃĪnd
or1ÃĪt
+or2bar
orb2l
or1c
2orca
or2ce
-2ord.
2orda
-ord1am
-or2dar
-or2dau
-2ordb
-ord3eng
-orde4s
+or2d1am
+or4dar
+or4dau
+or4d3eng
or2deu
or4d3ing
or2d1ir
or2dit
1ordn
-or2do4
+or2do
2ordr
-ord3t
-2ordu
+2ords
+or2dum
2ordw
2ore
ore2a
-o2r1e2b
+ore2b
o2r1eck
-ore2di
-o5ree
-o3ref
-or1eff
+o2r1ef
ore2h
-or1ei
-o3rei.
-o3reie
-o3r2eif
-o3r2eis
-orems2
-o3renn
-o3rep
-o2r1er
-o3r2ere
-o3r2ero
-ore4th
+or1eig
+o2rein
+or1er
+o2rerf
+or1eth
o2r1eu
2orf
-or2fac
-or2far
-org4a
-org2e
+orf3s2
+or3g4a
2orget
-or3ghi
+or3g2h
2orgia
+orgi1e
or2gl
-or3gla
or3gle
or2gn
-or3gne
-2orgr
2orh
-2o3ria
-2o3r2id
-orid3i
-4o3rie.
-o3rien.
-o6rienti
+2o3ric
+4orie.
+o4rient
o3rier
-o3ril
-or1ima
-ori4mi
-2o3rin1
-o4r1ind
-o4rins
-2or4io
-o2riso
-2orit
-2ork
+4oril
+4orin1
+or1ins
+ork2a
+or2k3ar
ork4r
-ork3s
2orm
-or2mam
-or4mang
or4mans
-orm3asp
-or2m1eb
-or4m3erf
-or4m3er4g
-or2mor
-orm3ord
-or2mum
-ormu4n
-or4muni
-or4munt
-ormvol4
-ormwa5
-or2n1ac
-or2nal
-or2nan
-or2nar
+or4ment
+2orn
+or2nac
+or2n3ar
+or2n3ÃĪ
or5ne.
-or3ni
-or4nin
-or3no
+or3n2o
2o1ro
-o2r1ob
-or3oly
+or1o2b
oro3n2a
-or1ope
-or1opf
-o2ro2r
-o3rou
-or1ox
2o1rÃķ
2orp
2orq
2orr
orr4a
-or3r2e
+or3re
+or3rh
2ors2
or3s4a
or3sh
or3si
-or3sk
or3sz
or2t1ak
-or2tan
-orta2r
-or2t1au
+or2t1an
+or2tau
+or2tÃĪr
or2tef
-orte4n
-or4ten5g
-ort3erb
+or4t3ent
+ort2er
or4t3ere
ort3erf
-ort3erg
-or4terk
-or4t3erl
-or2t3e2v
+ort3erk
+ort5ersc
+or2t3ev
or2the
or2tin
+ort3ins
or4t3off
-or2t1o2r
+or2tor
or2tÃķ
-ort3rad
or4trau
or4t3rÃĪu
-ort3re
+ort3ric
or2t1um
-2o3ru
+o3ru
or2uf
-or1uh
-orum4s
o4r3un
-oru2r
-o5rus3
-o2rÞ
-or3z2e
-orzel5
-or2zw
+orus3
+o2r3Þ
+o2rya
o1s
2o3s2a
os3ad
-osal2
-o4s3ami
-2osc
+os4an
o4s3ca
osch3ar
+o4schÃĪ
o3sche
osch3le
2ose
-ose1e
-ose1in2
-os2el
+ose3e
+o2s1ei
ose2n
-o2s1er2k
os2ex
2osh
o3s2hi
-os4hu
2osi
-os2im
o3sk
-os2kal
+o4s3ka
o4ski
2os2kl
2os2ko
-o4skr
-o4sky
-1osm
-os4mog
-2os2o
-osol1
-o2sÃķ
+os2lo
+2oso
2osp
os1pec
-os3pero
o3s2po
-2oss
-os6s3ac
-oss3ala
+os2sa
+oss1ac
oss3and
os4sÃĪ
o6ssel
-o3ssem.
-oss5enke
+o3ssem
+oss3en4k
o3ssent
oss3enz
-oss1ep
-oss3er4b
-osser4e
-osser4f
-o4ssi
-os2s1o2
-os2sp
-oss1pa
-os2s1t
+os3si
+os2s3o
+os4son
+os2s3p
+os4s1t
os2su
os2t
-ost1a
+o2st1a2b
o3stal.
-ost4art
-ost3aut
-oste2n
-o4s3tep
+o4st1am
+ost3ang
+osta4s
+ost1au
o4sterd
oster3e
-ost5erwe
-oster8wei
-ost3eur
-ost1h
-o2stid
+ost5er6we
+ost3h
o2stin
-os3ton
-osto4s
+o4s3ton.
ost3ran
o2st3rÃĪ
ost3re
+os3tri
ost3rot
-os4tru
ost3uf
2osu4
os1um
2o3sy
-o3s4ze
-2oß
+o3s2ze
o2ß1el
-o2ß1ent
-o2ß1en2z
-oßer2
-o2ß1erb
+o2ß1en2k
+o2ß1enz
o2ß1ere
o2ß1erf
-oß1is
-oß1u
+oß3t
2o1t
-o2t3abi
-ot1ah
-o2t1ak
-o3tal
-o3tam
-ot1ant
+ota2go
o3tark
-o2tarz
-ota4s
-ot1ast
o2t1au
-o3tau.
-ot2ax
+ot3aug
+o3tax
ot1ÃĪ
o2teb
-ote1i
+o3tei
o4t1eib
-o4t1eic
-otei4n
-o4t1eis
-ot2el
-ote4l1a
-o3tem
-o4t1emi
-ot2em3p2
-ote4na
-o4tentb
-ot1erb
-o4t1er2l
-o4t1erw
-ot2es
-ot2har
-o2them
-o2t1hi
+ote1i4n
+ote3ine
+ote2l1a
+ote4lei
+ot2em3
+otemp2
+otens2
+o2t1erw
+4ot2h
+ot4he
+ot5hel
+o4t3hi
+ot3ho
o2thr
-4oti
o2til
o2t1i2m
ot2in
-ot3inh
o4tl
-otli4
-ot2o
-oto3b4
-ot3off
-oto2ph
-o2t1Ãķ
-otra3c
-o3t4ran
-otra4s3
-ot3rat
-ot4rau
-ot3re
-ot3ric
-ot4rig
+otli2
+ot4ol
+ot1opf
+ot2or
+oto2ra
+o3tra
+o2t3re
ot3rin
-ot3rus
-ot2s3at
-ots1o
+ot2sa
ots1p
+ot2spa
ots2pe
-ot3s4tra
-ott3akt
-ott3an
-ot2t1a2s
+ott1a
+ot2tan
ot2tau
ot2teb
ot4terh
-ot4ter4k
-ot2t1h
-ot2tim
-ott2o
+ot4terk
+ot2th
ot2t3r
ot3t4ra
-ot3t4ru
-ot1url
-ouff6
+o2u
+oub4
+ou2ce
ou1f4l
oug2
-ou4ge
+ou2ge
ou3gl
-o1uh
-ou1is.
-2oul
-ou2le.
-ou2les
-ou4li
-2o1um
-2o2u2n
+o3uh
+ou4le.
+o3um
+o3unds
oung5
oun4ge.
oungs2
o4up
-4our
-oure2
-ou2ret
-ouri4e4
-ourme4
+2our
+ouri2e
our4ne.
-ou3sa
-ous2i
-ou2s2t
-o4ut
-ou3ti
-3outp
-out3s2
+ou3s2i
+ous2t
outu4
+2ouv
2o1Þ
o1v
-ov2a
-2ovel
-o3ven
+2ovi
oviso3
2ovo
2o1w
-o2w3al
o3wec
-o2wh
-o5wi
-o2wu
+owe2r1
+o3wi
+o1x
2ox.
-o1x2a
-2oxe
-o2x1el
-2oxk
+ox2a
+ox2e
ox3l
-o1xo
-o2x1u
-1o2xy
+o2xu
+1oxy
o1yo
-o1z2
-o3za
-1ozea
-2o3zen
+2o1z
+o3z2a
+oz2e
ozen4ta
-ozes4sc
-2o3zi
-ozir3
-ozon1a
-2ozy
-oz3z
-Ãģr3
+o3zi
+ozon1
Ãģrd2
Ãķ1b
-Ãķ3b4a
+Ãķbe2la
+Ãķbe4li
Ãķb2l
-Ãķ2b3le
+Ãķ2ble
Ãķ2b3r
Ãķ1ch
-Ãķch3l
+Ãķch1l
Ãķ2chr
Ãķchs2t
-Ãķch6st5ei
-Ãķchst3r
+Ãķch4str
Ãķ1d
-Ãķde1r
Ãķdi3
1Ãķdu
Ãķ1e
@@ -16287,44 +10308,38 @@ oz3z
Ãķf2fa
Ãķf2fl
Ãķf3l
-Ãķge3le
Ãķgen4s1
Ãķg3l
Ãķg3r
Ãķg2s
Ãķ1he
-Ãķhe4n1
-Ãķhl2e4
-Ãķhre4
+Ãķh3l2e
Ãķh3ri
Ãķh2s
Ãķ1hu
Ãķ3ig.
Ãķ3isch.
Ãķ1ke
-1Ãķ2k2o3
+Ãķ2ko
Ãķk3r
Ãķk2s
-Ãķ2l
3Ãķl.
Ãķl1a2
Ãķl1ei
Ãķl1em
Ãķl2f1ei
-Ãķlf2er
+Ãķlf3s
+Ãķl1im
Ãķl1in
-Ãķlk4e
Ãķl2k3l
Ãķl2la2
-Ãķll1an
-3Ãķlm
Ãķl2nar
Ãķl1o2
Ãķls2
Ãķl3sa
Ãķl3sz
-Ãķl3tu
-1Ãķlu
+Ãķ2l1u
+Ãķl2ung
Ãķlz2w
Ãķ1m
Ãķm2s
@@ -16332,302 +10347,192 @@ oz3z
Ãķ3ni
Ãķnizi1
Ãķnn2e
+Ãķ1nu
Ãķo1
-Ãķo2ta
+Ãķot2
Ãķoti1
-2Ãķp
Ãķ1pe
Ãķpf3l
Ãķr3a2
-Ãķrb2e
Ãķr2b3l
Ãķr1c
Ãķr2dr
-Ãķr3dra
-Ãķ2r1ec
+Ãķ2r3ec
Ãķ2r1ei
Ãķ2r1e2l
-Ãķ2r1e2m
-Ãķre2n
-Ãķ2r1ene
-Ãķ2rent
-Ãķ3r2erb
-Ãķ2r1er2e
-Ãķ2rer2f
-Ãķ2rer2g
-Ãķr2erh
-Ãķ2rer2l
-Ãķr2err
-Ãķr2erw
+Ãķr2erg
+Ãķr2erk
+Ãķrer2l
Ãķ3r2erz
-Ãķr1ess
Ãķr2f3l
Ãķr2gl
-Ãķ2rim
+Ãķ2r1im
Ãķr2kl
Ãķrn2e
-Ãķrner4v
Ãķr1o
-Ãķrpe2
Ãķrs2e
-Ãķr3sk
+Ãķr3s2k
Ãķrt2e
Ãķru4
Ãķ2r1une
Ãķ1s
Ãķ2sa
-2Ãķsc
-Ãķ2sch3a
-Ãķsche2
+Ãķ2scha
Ãķ4sch3ei
-Ãķscher4
-Ãķ6sch5erf
-Ãķ6sch5eri
-Ãķ2schi
-Ãķ2sch1l
+Ãķ2schl
Ãķ2sch3m
-Ãķ2schn
Ãķ2schw
-Ãķs1ei
-Ãķ2sein
+2Ãķse
+Ãķ2s1ei
Ãķs4en
Ãķs4es
-2Ãķsl
-Ãķs2o
Ãķ2sp
Ãķ3s2s
Ãķs4s1c
-Ãķs3set
+Ãķs3ses
+Ãķ4s3set
Ãķs4st
Ãķs4t
-Ãķ2st1a2
+Ãķ2sta
Ãķs4u
Ãķ1ß
-Ãķßen3
-Ãķß2ti
Ãķ1t
Ãķ2t3a
-Ãķte4n1
-Ãķ2t3r
+Ãķte4n3
+Ãķt2h
Ãķt2sc
Ãķt2tr
-Ãķ1v2
+Ãķ1v
Ãķ1w
Ãķ1z
Ãķze3
Ãķzes4
+p2a
1pa.
1paa
-p1ab
-p2abe
-pab2l
-pab4rÞ
-2pabw
1pac
-1p2ad
-pa3el
-pa1fr
-1pag4
+pa3da
+pa2dr
+pa1f4r
+pag4
pa3gh
pa1ho
1pak
-pa3ke
-pa1kl
+pa1k4l
pak2to
3pala
pala3t
-3palÃĪ
-3pal2e
-pa3l2i
-1palm
+1palÃĪ
+pa3li
pal2ma
pal2mÃĪ
pal2m1o
2palt
-pal2t1a
-pal4tei
-pal2tr
-pa2m3a
pa2nar
-pa4n3at
+pa4nat
pan3d
-pand2a
pan4ds
pa2neu
-panf4
-pang4
-pa4nisl
pank4
2panl
2pann
-panne2
-pan4n3eb
-4pannu
1pa2no
pan3sl
-pan3t2h
-1panto
-2pantr
-panz2
-pan3ze
+pant2
+panz4
1pap
papi2
papieren8
papie8r7end
-pap2pr
-pap2s
-papst1
-pa1q
1para
-pa4r3aff
+pa2r3af
par3akt
-pa4rant
-pa3rap
-pa2rÃĪ
-2parb
-1p2arc
-par3d
-parer8geb
-1parf
-2parfÃķ
+1parc
+pa5reg
+2par2er
+2parg
pargel6d
1park.
-park3am
+par4kam
par4kau
-par4kr
-1parks
-par3m2
-par3ne
-1pa2ro
+par2kr
+1paro
2parp
-2parr
-4parta
-3partei
-1parti
1partn
-3party
-par3z
-pa1sp
-pa2spe
-passer4
-pas6serg
-pas2s1p
-pas2t
+1party
+par3z2
+pa1s2p
pa2ßu
pat1a
pat4c
-pa3t4e2
-2patel
-1pat2h
+pate2
1pati
1pat4r
1pau
-2p1auf
+p3auf
pa3uni
-2pausz
-1pav
1pÃĪ
3pÃĪc
-pÃĪck3er
3pÃĪd
-pÃĪde2
-pÃĪ2d1er
3pÃĪr
3pÃĪ4s3
pÃĪ4t1e2h
-pÃĪ4tent
-pÃĪ4tep
-pÃĪ4t3erb
-pÃĪt1h
+pÃĪ4t3ent
+pÃĪt3h
pÃĪ2to
-pÃĪ2tr
-pÃĪt5s
+pÃĪt3s
2p1b
pbe1
2p3c
2p1d2
pda2
+p2e
1pe.
-pe2a2
+pe2a
pea4r
-pea4s
-p1e2b
pech1
-1peda
-1peel
+1ped
pe2en
-2pef
-4p1eff
-1peg
-pege2l
+pef4
pei1
2peic
-1peil
-p2eim
-2peis
+pe1im
1peit
-pekt2i
-1p4el
-3pel.
-pe4l3ab
-pe4lai
-pe2l1au
-pe2l3ax
-pe2l1ÃĪ
-pelb2
-pel3d4
-3pele
-pe4l1e2h
-pe2l1er
+pekt4s
+1pel
+pe2l1a4
+pe4lein
pe2let
-pe2leu
-peli2d
-peli4n
+pe4leu
+pe2lex
+pe3li4n
pe4l3ink
-pel3inn
-pel4ins
pel3k
-pel3l2a
+pel3la
pel3lÃĪ
pel3l4e
-pell2i
-pe2lob
-3pels4
-pel3sp
-pel3ta
-pel4zin
+pel3li
+pel3t
1pem
1pen
-pena2
-pe4nas
+pena4
+pe3n2al
pe2nÃĪ
-pen3d2a
-pe4nen1
-pe4ni2t
-pe2n1o2
+pen3da
+pe4nen
+pe2n1o
pens2
-3pen3si
-pen3so3
-pen3sz
-pent2a
-2pentw
-penty2
-pe2nu2
-pen3z
+3pensi
+penz2
1pep
-pe3pi
pe1ra
-pe2rak
-per2am
-pe2r1ÃĪ
-per1e2b
-perer4f
-pe3r2id
-3pe3r4io
+per2an
+1perio
1perle
-1perlh
-perra2
-per4r3an
+per4na
+1pero
+per2ra2
+perr3an
per4rÃĪ2
per4ric
per6rieg
@@ -16635,409 +10540,280 @@ per6rieg
2perse
2persi
3perso
-3persp
-peru2
-pe3run
1perÞ
-perwa4r
-pe3s2a
-pese2n
-1pes5s2
+perwa4
+pe3sa
+pes3s2
pes2t
-pest1o
-pe4stop
3pet
-pet4r
1pÃĐ
4pf.
-p2f1ab
+p2fab
p2fad
p2faf
-pf1ai
+pf3ai
p2f1ak
-p4f1am
pf1ans
-p2fa2r
+p2fa4r
pf3are
p2f1au
-1pfÃĪ
-p2fÃĪr
-p2f1ÃĪu
-4pfe.
-p2fef
+4p3fe.
p2fei
pf1eim
pf1ein
-pf1e2m
p3fen.
-p4fener
-p3fens
-p3fent
-p4f1ep
-pfer5a
-p4ferde
-pfer6pro
-pf4es
-p2f1et
+p2fent
+p3fer.
+pf2erw
+p3f2es
pff4
pffa3
-p2f1i2d
-pf1inn
p2f1ins
-pf1lam
pf4lan
+p2f3lÃĪ
pf4leg
pf3lei
pf3lo
-p2fob
-p2fom
-p2fo2r
-pf1ori
+p2for
pf3r
pf1ra
-pf4rÞ
+3pf4ro
pfs2
-pf3sa
-pf3se
pf3sl
pf3sz
-pf3t2
-pft4r
-p2fum
-2p3g2
+pf3t
+2pfÞ
+2p1g
pgra2
1ph
4ph.
-phal4te
-p1hand
-3phas
-p1hau
-phÃĪ1
-3phÃĪn
-4phb
+2phÃĪ
+2phb
2phd
2p1hei
phen3d2
-phe4n1e
phen3s
2ph1ers
-4phf
-4phg
-p2hid
-phik1a
-phi4kan
+2phf
+2phg
+phi2ka
2phk
ph2l
-4phm
+2phm
2phn
-p2ho.
-p2hob
+p3hop
pho2s
2phÃķ
-ph2r
-4phs
-ph3t2
-2phthe
+ph4r
+2phs
+pht2
+2ph3the
phu4s
-phu3t
2p1hÞ
-3p2hy
-4phz
-p2i2a1
-piab4
+2phz
+pi2a1
pia3k
-pi4ali
-pia3n
piap2
pia3s
-pi1ce
-pi2e1i
+pi3chl
+p4id
+piegelei8
pi2el
-piel3a
+piela2
+pie4lei
1pier
-pie2ra
-pie4reb
-pie4rei
-pies4
1pig
-pi3gl
+3pik
1pil
pi3le
-3pilo
pil4zer
-pil2zw
-p2im
-3pin.
-pi2nad
-3ping
+2pind
+pin2e
pingen4
ping3s
-3pins.
3pinse
-pin3s2p
pi2o
-pi3oide
+pi3oi
pi3onu
-pi3os
-1pip
+3pip
pi2pe
-3pirate
pi3ri
3pirin
-1pis
-2piso
+3pis
+4piso
pis2t
-pi3sto
-pit2a
-pi3t2h
+pi3t2a
pit2s
-pit3z2e
pi2z1in
-2p1j
+p1j
2p1k2
pku2
-1p2l2
-2pl.
+pkur1
+1p2l4
+4pl.
3pla
-4p3lad
-p1lah
-pla3na
-p4lau
-pla2y1
-2p3le.
+p3lad
+plan3g
+3plÃĪ
+2ple.
ple1c
ple2e
p4leg
-ple3n2
+ple5n2
2p3ler
-p4leu
+p3lic
+p3lif
2plig
-3p4lik
-p4liz
-plo3n
+p4lo
2p3lu
-2p3m2
-2p1n2
+2p1m2
+pma1
+2p1n
1p2o
-pob2
-2po1c
-3pock
+po3b4
+po1c
3pod
-3poe
-po2el
2poh
po2i
-po3id.
-po3ids
+po3id
3poin
-3pol
-po2lan
-po2l1au
-pold2e
+3pok
+3p4ol
+po2lau
po3li
pol3lo
-po3lo3p
-pol3z2
-pom2ph
+po4lor
2pond
-pont2
-po1ob
-po2p1ak
-po2p1ar
-po2p3l
-po3p2t
+po1o2b
+po2p3ak
+po2p3ar
+po2pl
+po3pt
po1rau
porf4
-3portal
-por2t1h
-3portio
-3porto.
-3portos
-3portr
por4tre
-por6tric
-3posi
-pos3s2
+por4tri
+po3s2e
pos4t
po2sta
-po2stÃĪ
-post3ei
-po6stein
-po4stem
+post3ag
+po4stÃĪ
+po4st3ei
post3ra
-po2ta
-pot1ar
-3potÃĪ
+po3ta
3pote
-pot2h
-po2t3in
-pott1r
po2t1u
-po3un
po2w
-powe2
po3x
pÃķ2bl
pÃķ2c
-4p1p
-p2pab
-pp1ang
-pp1ans
+2p1p
+p2p3a2b
+pp3anl
ppa2p
-p2pat
-pp1au
-ppe3e
-p2p1ei
-ppe2l1a
+ppe1e
ppeli5ne
-pp2e2n1
-p2p1erz
-p2pf4
+ppe2n1
+ppf4
pp1fr
p2p1h
-pp3he
-pp3l
-p4p1lac
-p4plan
-p2p1lÃĪ
-p2ple
+p3p2ho
+p2p1ia
+pp3lÃĪ
+p2p3le
pp3oh
-p2p1Ãķ2
-pp3p4
+ppp2
p2p3ra
-p2p5rÃĪ
pp3ren
p2pri
-pp3rol
-pp3rot
-p2p3ru
-p4ps2
pp3sa
-pp3sy
-ppt4
+ppt2
+pp3ta
p3puc
p2pul
-p2p1um
p2punk
p3pur
-ppyl2
-p2r4
+p2r2
1prak
pra4s3
-pra5sp
1prax
p4rÃĪ
1prÃĪd
-1prÃĪf
1prÃĪg
-1prÃĪl
3prÃĪm
-1prÃĪp
3prÃĪs
-1prÃĪv
2pre.
2prec
3pred
-2pree1
-pre2ei
+pre2e1
2preg
1prei
3preis
prei4s3c
-prei6sei
-prei4ss
-prei4s3t
+prei4s3s
2preiz
-1prem
-pren4ga
2p3rer
-1pres
-pre3sa
-press4e
+3p4res
1preß
pri4e
2prig
-pri2l1
-2pring
-prings4
-1prinz
+3prinz
pri2t1
priter4
-prit3t4
-1priv
-1pro1
+1p4ro1
3prob
-pro3be
2proc
-7prod
+3prod
3prog
3proj
2pross
2proß
-prot2e
-3proto
-2prott
-pro3x
-2prÃķ
+3prot
1prÞf
-1prÞg
2prÞh
2prÞn
2p1s
4ps.
-ps3k
-ps1od
+ps4an
+p3se
+p3s2h
+ps1id
p2sÃķ
-ps4pi
-pss2
-pst1au
+ps2po
+ps2te
+pst3re
p2stu
3p2sy
-4psys
ps2ze
2p1t
pt1a
pt2ab
-pta2g
-p2t3a4t
-p3te.
-p2t1e2b
-pt3ec
-pt1ef
-pt1ei
-pt1emi
-4p3ten
-p4t1en2g
+pt3alb
+pt3at
+p3te
+p4t3ec
+p4t1ei
+pte4l
+p4tele
p4t1ent
-pt1ep
+p4t1ep
pt3erei
-pt1erw
-pt1erz
-p3tes
-p3tet
-p4teta
-p4t1e2ti
-p2t1h
-pt1id
-pti2de
+p4t1erw
+p4t1erz
+p2th
pt1in1
-pto2mo
-pto4na
-pto2p
+p4tos
pto2w
ptpo4
-pt3r
-p2tro
+p2t3r
pt1s2
-pt3si
-pts4t
-pt1uh
+ptt2
pt1um
p3tung
pt1urs
p2tÞ4
3p2ty
-pt3z2
+pt3z
1pu
pu1a
pub4
@@ -17045,503 +10821,327 @@ pub4
pu2dr
2p1uh
2puk
-pu2kl
-pu2k1o
-pu2lin
pul2sp
-pul2s1t
3pulv
-2pulw
-pum2pl
-4pund
-pun2e
+2pund
pun2s
2punt
-3pup
2pur
-pu2ra
-pu2rei
-pus2h
-pu3she
-pu5t2e
-3put2s
-3putz
-puzi3
+pu3ri
+3put
+put2s
1pÞf
pÞl3l
2p1v
2p1w
pwa4r
-3p4y1
-py3s
+3py1
py3t
-2p1z2
+2p1z
qu4
quel4la
-que3rel
-quer5n
que4te.
1queu
+qui3s
1ra.
-r1aa
+2r1aa
ra2ab
-2raac
-2raal
-ra3ar
-r2a1as
+3ra3ar
+3raau
r1ab
-ra2b1ar
-r2abÃĪ
-1rabbi
-rab2b3l
+ra2bar
+rab2bl
2rabd
-ra2bei
-rab2er
-rab3erd
+r2a3b2er
2rabf
2rabg
-2rabh
-1rabi
-2rabk
-r2able
-ra2bli
-ra4b5lo
-2ra2br
-2rabs2
+1r4abi
+ra2br
+2rabs
2rabt
+ra2bÞ
2r3abw
1raby
-2rabz
-ra2ce
+ra1ce
2r1acet
ra4cheb
-ra2cho
-2rachs
-rach6t5rÃĪ
+ra4chin
+racht3r
+rach6trÃĪ
ra2chu
r2ack
-1r2ad
+r2ad
r4ad.
-rada2
-ra2dac
-ra4d1am
-ra2dan
+ra2dam
2radap
-3radar
-ra2de4i
-rade5s
3radf
-3radh
-3radio
-4radit
-3rado
-3radp
-ra4d1r
-rad5ri
+r3a2d3r
rad3t4
+1ra2e
+ra3er
r2af
-raf3ahn
raf3ar
-rafe2
-ra2f1er
-raf3r
-rag2a
-ragein4
-rages4
-2ragg
-ra3g4le
-4ragm
+ra2fer
+ra3ge
+ra3gle
ra2gn
-r2ago
-rahle4n
-5r2ahm
-r1ahn
-2ra1ho
+3r2ahm
+2raho
4raht
-r2ai
2raic
-rail2l
+rail4l
2r3air
-raka3
-1ra3ke
-2rakk
3ra1k4l
ra2kre
ra2kro
2rakti
-1rakÞ
-2rakz
+3rakÞ
r2al
r4al.
-ra2la2
-ra4l3ab
-ral1ak
-rala4s
-ra2lÃĪ
-ral3b4
+ra2la4
+ral3ab
+r3alar
+ral3b
3r4ald
-r4ale
-ra4l3end
-ra4lent
-ra4l5ern
-ra3lex
+ra3le
+2ralg
r4ali
-ra2lid
-rali3er
-ra4lin4d
-ra4l3ing
-ralin6sp
-ralin4t
-2r3alk.
+rali5er.
+rali5ers
+ralk2
+ral3la
+ral5l2e
+2rallg
2r3alm.
-2ralp.
-4ralpe
+r3alp.
+2ralpe
r4als
-ral3su
r3alt
-3r4al3t2h
-ra2l3u
+2ralta
+r4al3t2h
+ra2lu
3raly
-ra2mei
+r2ame
ra2mer
-r2ami
-r2amm
+1r2ami
ram4man
-ram6mens
ram6m5ers
ram4mit
ram4mu
-2ramn
-3ramsc
2r1amt
ramt4s
-2ramu
-2rana
-ran1ad
-ran3ade
-r1a2nal
-ra2nan
-ra2nar
-ra2nau
+r2an.
+ra5nat
2ranb
r2anbe
+4ranc
r4anda
r4ande
ran4dep
ran4d3er
-3r2andi
-rand3s
-1raner
+4r3anei
+r4aner
2ranf
-2ranga
-ran6g5e6be
-3rangi
-r2angl
-rangs2
-rang3sp
-rani3e
-r3a4nil
-ran3ka
+1rangi
+rani1e
ran2kr
-ran2kÞ
-4ranl
+2ranl
2r1anm
-r2anmi
r2anmu
-2ranna
-ran5ne
2r1anp
2ranr
-2rans
r2ans.
+r2ansp
ran4spa
-4r5antei
-r1anth
-r2anto
+ran2th
2rantr
-1ranu
-2ranw
-r2anz.
+2r3anw
r2ap
-2rapa
-ra2par
2rapf
-2rapo
-ra2pok
-rap2pr
-2r3a2pri
-2r1aq
+ra2pri
r1ar
-r2ar1a
+r2ara
2rarb
-r2are
-3r4arei
-raren1
-rar3et
-rar1e2v
-r2arf4
-ra3rie
-rar3in
-ra3ris
-r3a4rist
-4r3arit
+3rarei
+rar3f4
+ra4r1in
r2ark
-raro2
-ra2rom
-2rart
-2rarz
-rar3zw
-ra3s2
+2r3arz
+r2a3s2
r4as.
+ras4a
ra4schl
+ra5sen
+ra5si
ra4sk
-r2asm
-ras3si
-ras3sp
-r2ast
-ra4st3ei
-r3asth
-ra4sto
-ras3tri
-2rasyl
+2rasph
+ra4ssi
2raß
1rat
-ra2t1an
-ra2t1ei
-r3a2tel
-ra4tid
-2ratla
-2ratm
+ra2t1a
+ra3ta.
+ra3te
rat2o
-2ratom
rat4r
-r3att
-2ratta
-2rattr
+2r3atta
4ratz
-rat3ze
4rau.
3raub.
+4raud
4raue
-rau3e4n
+rau3e2n
2rauf
-rau3fÃĪ
-2rau3g2
+2raug
3raum
rau4m3ag
-rau5mes
+rau4man
rau2mi
3raup
4raur
2rausb
-3raus2c
-2rausd
-rau3se
-2rausf
2rausg
-raus8gewÃĪ
-2raush
-2rausl
rau2sp
-2rauss
-raus8sche
raus3tr
-2rausv
-2rausw
-rau3ße
-2raut
-raut1r
-rau4tra
-rau4tro
+4raut
raut5s
1raÞ
r2ax
-raxi4s
-r3axt
-r2ay
-ray1o
-r2az
+raxe3
+raxi4s1
rÃĪch4s
3r2ÃĪd
4rÃĪf
rÃĪ1fr
4rÃĪg
2rÃĪh
-4rÃĪm
+2rÃĪm
3rÃĪn.
3rÃĪni
3rÃĪns
-2rÃĪp
-2rÃĪq
2r1ÃĪr
r2ÃĪr.
rÃĪ3ra
-rÃĪ1ro
-rÃĪ2sc
-rÃĪse2
-rÃĪ5sse
+rÃĪ4sc
rÃĪ2st
3rÃĪtse
-4rÃĪtz
rÃĪ2u
4rÃĪue
+4rÃĪun
rÃĪu2s
-rÃĪus2c
-rÃĪu7schen.
-2rÃĪuss
-2rÃĪuß
+rÃĪu5sche
4rÃĪut
-2rÃĪx
4r1b
-r2b3a2b1
-r3bac
-rba4del
-rb2al
-r3bam
-r2bang
-r2bant
+r2b1ab
+r2b1a2de
+r2bak
+rbal3a
+rba3re
rb1art
-r2barz
rb1auf
rbb2
rb1ech
-rbe3erf
-rbei3d2
-rbe3inf
-rb3einh
-rbe3int
+rbeid2
r4belÃĪ
-rbel2o
+r4belis
+r3ben.
+rb1ent
rbe3r2e
-rber6gin
-rb1erl
-rbe3rum
-rbe5sl
-r2bim
-r2binf
-r3bit
-rbit2a
-rbi3tu
+rber4gl
rb2la
-rb4la2d
+rbla2d
r2blan
r8blasser
r4b3last
-r3blat
-r3blau
-r2b3le.
-r3blen
+r3blÃĪ
+r2ble.
rb3ler
r2bleu
rb2lin
rb2lÃķ
-rb3lÃķs
rbmas3
-rb2ob
-r2bonk
-rb3ras
-rb3rea
-r8b7rechts
-rb4sam
+rb2o
+rb4ri
+rb2sa
rb2sei
-rb2ser
+rb3ska
rb2s1o
+rb2sta
rb4stÃĪ
-rbs3tri
+rb2stu
rb2su
-rb4sz
rb2u
-rbÞ4b
+rbu2sc
2rc
r1ce
r1che.
r1chen
-r1ch2i
+r1chi
rch3l
-r3chlo
rch3m
rch3r
-rch4ro
-rchs4
+rchs2
rch3sp
+rchst4
rch3t2a
-rchter6r
+rch6terg
+rch6terw
rch1w
r1ci
r1cl
r1ç
2r1d
+r3da
+r4dab
rd2ac
-r2daf
-r2d1ak
-r2d1a2l
-rd2amm
+r4daf
+r4d1ak
+r4d1al
rdani1
-r2dann
rd1ant
-rd1ara
-rd1ark
-r2darz
-rdÃĪr2
-r3de.
-r3dee
+rd1anz
+r4dap
r2dei
rd2ei.
+r4deis
r2d1elb
-r2de2le
-r2delf
-rdels2
-rdem6
+r3den
rden3d2
-r4dengl
-r4dents
-rde3ob
-rde3ono
-rde3r4er
+rde3re
+rder4er
rderin6s
r4d3ernt
-r3des
rde3sp
-r2d1e2x
+rdga4
+rdgas3
+rdi3a2
+rdia4l
r2d1inn
-rd1iri
-rd1ita
-rdo2
-r2dof
+rd1it
+rdo2be
r3don
rd1os
-rd3oss
-r2d1oz
+rdo4st
r2dÃķ
rd3rat
-r2drau
rd4ri
-rd5ris
-rd4rÃķ
-r3d4rÞ
-rd2sÃĪn
-rd3s2k
-rd3s2z
+rdrÞ4
rdt4
rd3ta
rd3th
-rdt2s
-r2d1uk
-rdwa6r
+rdwa4
1re
3re.
-rea2d
-rea6l5erw
-4re2am
+re3aler
+re2am
re3at.
re3ats
-reatu3
2reÃĪ
re2b1a
re2b1l
reb1r
reb3ra
-reb3so
+re2bÞ
+r2ech
rech3ar
4rechs
2reck.
@@ -17549,2455 +11149,1511 @@ rech3ar
3red.
4redd
2redi
-re2dik
-3redn
-3redu
-re1ebe
re1el
-re1em
-ree4mi
re1er
3refe
-4reff
-r2eff.
+2reff
3refl
3refo
3reg
+5reg.
rege4l3ÃĪ
-regene7ra
-4r1egg
+2reh
re2hac
-re2h1ar
-re4hen4e
re4h3ent
-re2hi
-reh1l4
+re2h1i
+rehl4
+reh3n
re2h1o
-re3hol
-3rehÃķ
-reh4th
-re2hÞ
r2ei.
-r2eib
-rei4bel
-rei4ble
-r2eic
-2reid
r2eie
-4reier.
-rei4fei
-4reifel
2reig
-3reigÃĪ
-3reigeh
-r4eigel
-6reigens
-3reigi
-4reign
-3reigru
rei3l2a
rei3l2i
-2r1eilt
3reim
reim2p
r1ein
-2rein2a
-rei3nal
-2reinb
-rein4du
-rei3n4ec
-reinen5
-2reinf
-rein4fe
-re4info
-2reing
-2reinh
-4reinn
-4r3einr
-2reins
-4reinsa
-rein6sel
+4reinb
+rei3nec
+4reing
+r3eink
+4reinr
rein8s7tre
-rein4sz
-2reint
-rein6teg
re1in2v
-2reinw
-2reinz
-4reisar
-4reisb
-2reisf
-2reish
-2reisr
reister6
-4reisu
-2reisw
-reit3s2
-3rek
-4re2ke
-4rekk
-5rekn
-2rekz
-r2el.
-r2ela
-re3lat
-2relb
+reis5tro
+re2ke
+re3la
+2r1elb
rel2e
relea4
-re5lei
-re2lek
-4relem
-r2elev
-2relf
-reli1
-2relit
-2relix
-r2ell
-rel4lar
-rel4lei
+re3lei
+2re2lek
+2r1elf
re3lo
-r2els
-2relt
+2r1elt
relu2
-3r2em.
-2r1emb
-rem2da
-re2m1ei
-re5men
-2remi
-re3mig
-2rempf
-rems1c
-rem4str
-2rem2u
-r2en.
+r4em.
+r2emi
+4rempf
+4remu
+r4en.
r2ena
-2rena.
-re4nac
-re3nad
+rena2b
re3nal
-re4n3an
re2nÃĪ
-r1endg
3rendi
ren3dr
-4renerg
-4rengag
-ren4gan
+re4n3end
+ren2gl
2rengp
-3renh
re2ni
-3renm
ren4nar
-ren6nene
-ren6sein
-rens2p
-2rentd
-6rentera
-2rentf
-3rentfo
-2rentg
-r3enthÃĪ
+ren3sau
+2r1entg
2r1entl
2r1ents
-2r3entw
-2rentz
+2rentw
+4rentz
r2enz
-ren6z5er6f
-renzer6l
-ren6z5er6s
-renzer6w
-ren4z3in
ren2zw
-re2ob
re3or
3repe
-4re2pen
-2repi
-re2pis
-2repoc
-2r1e2pos
+re4pis
+3repo
4repp
-3repu
-3r2er.
-rera2
+3r4er.
2r1erb
-3r4erber
rer2bi
+r4erbil
+r2erbr
2r1erd
-rere2
-4r3ereig
-r1erek
-re2r1ep
r2erer
r1erf
-r3erfa
-4rerfah
-2rerfi
-2rerfo
-r2erfr
-rer2fÞ
+r2erfe
+r2erfl
r1erg
-4r3ergeb
-5rergebÞ
r4ergen
-3r4erges
-2rer2go
-rer2gr
-r4ergru
-r1erh
-rer2hÃķ
re3ri
-re4rid
r1erk
-rer4kan
-rer2ke
4r3erken
-3r2erki
-3r2erko
-r1erl
-2r3er2la
-5r4erlag
-r3erleb
-r2erli
-2rerlÃķ
+r2erki
+2rerkl
+2r1erl
+5rerlag
2r1erm
rer2n
2r1ernÃĪ
-r1erne
-2r1erni
4r3erns
-4r1ernt
-re1ro
+4r3ernt
+r2e1ro
re2rob
-re4rosi
-2r1er2Ãķ
-r1erre
-rer4reg
-rer4rei
-r1erri
-5r2ers.
+r1erÃķ
+3r2ers.
2r1ersa
-r6erschi
r2erse
2rersp
-rer4sta
-r6erstad
-2rer6su
-r1er3t4
+r1ert
r2erte
2rertr
-r1erw
-rer4wac
-rer4wec
-r4erwes
2r1erz
-rer2zÃĪ
-3r2erzy
-3r2es.
+rer5ze
+r2erzy
+3r4es.
re2sa
-re4sam
-resche4
+res3an
re4schw
3rese
-re4se2h
-res1of
-3resol
-3reson
-res2po
+3reso
2ress
-4resse
-res3sei
+ress2e
res6s5erw
-res4sto
-4ressu
-resten4
-re6stent
-re4stra
-2restu
+3rest
+res3tem
+re2stu
3resu
2re2ß1
-re2t1ak
-2re2tap
-re2tau
-ret2e
-2r1e2th
-re2tra
-re4trol
+re2thy
re2u
-reu4eri
reu3g2
2reul
re3uni
-2reur
-4reuu
+2r1eur
2reÞ
-4r3eva
-2r1evid
+2r3evid
+r1ew
rewa4r
re2wi
-2rewo
-2r1e2x1
+4r3e2x1
3rez
-2rezi
+4rezi
1rÃĐ
-4r1f
-rf1ack
-r3fahre
-r5fahrt
+2r1f
rfall4s
rfÃĪs3
-rfe2i
r2fent
-r3f2es
-rff2
-rffa3
-rf3fe
+rf2es
rfi4le.
-r4fland
-r3f4lÃĪ
+r2flan
rf3lic
+rf3lin
rf4lÃķ
r3flÞ
-r2fo2b
-rfolg4s
-r5foli
-r4frauc
+r3for
rf4ru
rf4rÞ
rf2sa
-rf4sam
rf2s1ÃĪ
-rf2su
+rf2s1id
+rf2spr
rf2ta
-rft4r
+rf3t4r
rf2u
-rfzu3
-2r1g
+4r1g
+rg2ab
r2g1a2d
r2g1ah
r2g1ak
-rga4ner
-r2g1ap
-r2garb
-rg3art.
-r2g1ask
+rg2an
+rga5ssen
rgas2t
-rga5stes
-rgd2
+rga4str
rge4an
rge2bl
-r2g1e2c
-r3gel
-r4gelef
+rg2el
rge4l3er
rgen4z3w
-r4ge4tap
+rge4ral
+rge4tap
r2geto
rgi4sel
-rg2lad
+r3gla
r2glan
-r3glanz
rgleich8s7
r2gleu
r2glig
-r2g3lit
-rg2log
+rg2lÃķ
rg2lu
-r2g3na
-r2gne
-r2g3ni
-r2g3no
-r2g3oa
-r2gob
-r3gog
-rg3op
-r2g1or
+r2gna
+r2gno
+r2g1ob
rgÃķ2
r2g1Ãķd
r2g3ral
-rg4rau
r2greg
-r2g3res
+r2gres
r2gret
rg3rin
rgro5sse
-r3grun
-rg3rÞs
-rg3se
-rgs2ei
-rg4sel
-rg3s2i
-rg1sp
-rgs2pe
-rgs2po
-rgs4ti
-rgs2tu
-rg1su
r1h4
2rh.
-r2hag
-2rhah
-2rhak
-r4haltb
-r3han
-2rhau
-2r3hÃĪ
-3r2he.
-r3hea
-2rheb
-2rhef
-2rhi
+2rha
+r2ha.
+r3hals
+2rhÃĪ
+3r4he.
+2r3her
+r2hoe
+r3hof
+rho2i3
2rhol
-r3hop
-2rhot
-2rhÃķl
+2rhÃķ
2rhs
-2rhÞ
1ri
-ri1an
-ri2ano
-ri2ast
+ri3am
+ri3at
rib2bl
ri1ce
ri1cha
-ri3chl
-richt8spo
-3richtu
-ri2con
+ri2dan
ri2dau
-2ride
-ri2d3e2l
-ri4dent
-r2i3di
+rid2g
2ridol
-rid3r
2ridy
r2ie
-rieb6ste
-4riefm
-rie2f3r
-rieg4s3
-ri2e1i
-riein1
+rieb4s3t
+rie2fr
ri1el
-rie3l2a
ri3els
-ri4enÃĪ
-riene2
+riene4
ri3eni
rie2nu
ri1er.
-rie3r2e
-riere4n
-ri3ers.
+ri4ere
+ri3e4sti
ri1eu
ri2f1a
-ri2fÃĪ
-ri2fei
-ri2fer
-rif6f5end
-rif4fer
+ri2f1ei
+ri2f1er
ri2f1o
ri2fr
rif4ter
3rig
-4riga
-4r3i2gel
ri4gene
-4rigg
5rigj
rig1l
-ri4glÃĪ
-ri3g2o3
4rigr
-4rij
-ri2kar
-ri2kÃĪ
-ri2kin
-ri2kn
-ri4kone
-ri2kor
-2rima
-ri2mag
+rik1l
+ri4kla
+r2imb
ri2me.
-2rimm
4rimp
rim2s
-ri3na
-r1inbe
-rin2c
-2r1indu
+r2i3na
+2r1ind
+rin4dex
+rin4diz
+4rindu
ri3n2e
rine1i
2r1inf
rin2fo
-3r2infr
-r2ing
rin2ga
-ring3le
+ring3l
rin2gr
-ring3sp
2r1inh
-2rinit
-4rinj
-4rink
+4rinit
+2rink
rin2kl
-rin2ko
-rin2kr
-2rinl
+3rinn
6r5innenm
4r3inner
-2r1innr
+4rinnta
r1innu
-4r1in2q
-2r1ins
-rin2si
+2rins2
+3r4ins.
rin2so
+rin2sp
r4inspi
-3r2insy
2rint
-4rinte
-rin6tent
-rin4t5re
+rin4teg
+rin4t5r
2r1inv
-rin2va
-2rinz
-ri2ob
-r3ion
-ri3o2st
-ri2pl
-ri3po
4r1ir
r2is
-ris2a
-ri3s4an
-ri4sch3o
+ris4a
+ri4scho
ri4schw
3risik
-ri3s2ko
-r3iso
-ri4s3p
-r3isr
+rismu2
+ri3so
+ri2s1p
3riss
-ris2t
+ris3si
rist5ers
ristes4
-ri2st3r
-3ri2ß1
+ri6stess
+ri2ß1
r2it
r3i2tal
-rit3ant
-rit2i
-2ri3t4r
-rit1s
-rit4t3au
+ri3t2i
+ri3t4r
rit4tei
-3ritter
-rit6ter6f
-rit2to
-rit2t3r
-rit2u
-r1i2tum
+rit2tr
+5ritu
rix1
ri3xi
1rí
2r1j
4r1k
-rka2b3l
-rk1ah
-r2k1ak
-rk1all
rk2am
-rk1are
-rk1asp
+rk4ap
rkauf4s
-r2k1ÃĪh
-r3kel
-r4kelem
-rke2n1
-rken4er
-r2k1er2l
-rk5ersta
-r2k1er4w
-r3k2es
-r3ket
-rk1im
+r2kÃĪh
+r3kla
rk4las
rk4lau
-rk4lim
r2klis
rk2lo
rk2lu
-rk4ne
-r2kob
-r3kol
-r3kon
-rk2op
-rk1o2ri
-r2kou
-rk2Ãķ
+rk4n
+r2k5nu
rk3rÃĪu
+r2k3rea
r3kri
-rk3rin
-r2k3rom
-r2krou
-rk2sal
-rk2sei
-rk2sel
-rk2ser
-rk2so
+rk2s1e
rk2sp
-rk3spi
rkstati6
rk4stec
-rk4stoc
rk2ta
-rk2tel
rk4t3eng
rk4t3erf
-rk4terg
-rk4t3erl
rkt3ers
rk6tersc
rk4t3erw
rk4t3erz
-rk4teta
-rkt2i
-rk2t3in
+rk2tin
rk2t1o2
-rkto4b
rk2t3r
-rk2tum
-rk1ums
+rk3tra
+rk2um
rku2n
-r3kup
-r3kus
-rku2sa
+rk1uni
rkus3s
-rku2s1t
-r2kÞb
-2r1l
+rku4s1t
+4r1l
rl2ab
-r3lag
-r5land
-rlan4d3i
+r5lag
+r5lan
r2l1ar
-r2l1a2sc
-rlas2t
+r2l1a4sc
r2l3aug
-rle2a
+rl2e
+rle4a
r3lec
-r5lei.
-r3lep
-rl2et
-r3lex
-rlg4
+rle4i
+rle2st
+r3let
r3l2i
-rli4ne.
r3l2o
-rlou1
-rl2Ãķ
rlÃķs5s
-rls2a
-rl2spr
+rl2s1p
rl2sto
rl3t
-r3l2u
-rlus2t
-rlu6ster
+r3lu
rlu4str
-r3ly
rlz2
4r1m
r2mab
-r2m1ad
+r3m2ag
rma2la
-rm1ald
-rm1ami
+r2m1ald
r2m1ank
+rm1ans
rm1anz
-r4m3aph
-r2marc
-r2marz
-r3mas
-rma4spe
-rmas3se
+rm1a2p
+r2maph
rma5ssen
rmas8sens
-rmat2o
-rm2ÃĪr
rm3d2
-r4m3einh
-rme4na
-rm2ene
-r2ment
+r2m1ef
r2meo
-rmer4fo
-r2m1erh
-r2m1erl
r2m1erp
-r2m1erw
rm2es
-rme3sa
-rme3st
-rmeta2
r2mide
-rmi6nanz
-rminen4
-rmi6neng
+r2m1im
rm3m
-r4mn
-r2m1ob
-rm1o2ri
-rm3p2
-rms2
+rmmo3
+r2m1o2ri
rm3sa
-rm3sk
+rms2t
rm3sta
-rm3t
rmt2a
-rmu2n
-r4muna
-r2muni
-2rn
+rm2u
+rm3ums
+4rn
rna2b
-r3nad
-rn4ade
-r3nage
-r2n1all
rna4n
-rn4and
+rn2and
rn3ani
-r2nanz
-rna2r
+r2n1anz
+rna4r
+rn2arb
rn3are
-r4n3ari
-r4n1a4st
-r4n3att
+rn3ari
r2nau
-rn3aug
-rn3de
rn3d4r
+r3ne
+rn3e4ben
r4nef
-rn2eid
-r4neif
-r4neis
-rn1ema
+rn2ei
+rn3eif
+r4n3eis
rne2n
-r2n1ene
-rn2eng
-r4n1e2p
+r4n1ene
+r4nerf
r4n1erg
rn4erhi
-rner4ke
-rner4ku
-r4n1erl
r4n1ert
-r4n1erw
-r4nerz
+rner4ve
r5nes
-rn2e2t
-rnet1e
-rne4tem
-rne4ter
-rne4to
-rn2eu
+rn2et
rne3uf
r4nex
rn3f
-rn3g2
-rngene4
-r2nid
-r2n1in
-r4ninf
-r3nit
-rnk2
-rnn2
+rng2
+r3ni
+r4n1in
r3nod
-rn2oh
r2n1op
r2n1or
rn1Ãķ
-rnÃķ2d
rn3sa
rn3s2ÃĪ
-rnse4ha
-rn3s4p
-rns2u
+rn3s2p
rn3s2z
-rn3t2a
rn3t2e
+r1nu
rn1ur
r1nÞ
r1ny
-rnz2
-r2oba
+ro2bei
2robj
1robo
-ro2bo2r
-2robr
-ro2bre
2robs
ro1ch
-roch2a
3rock.
+4rockn
r2o3de
-rod4r
-roe4
-2roff
-ro3fl
+ro3e2
4rog.
-ro3g2a
-3rogg
-ro2h1in
-roh1l2
-4rohn
-ro2hÃķ
-3rohr
-1roi
-ro3in
-rok2l
+4rogs
+roh1l
+3r2ohr
+3roi
ro3le
-ro2liv
rol4lan
-rolle4
-roll4en
-rol6lerg
-rol6lerw
+rol3l4en
rolli4n
rol6lini
2roly
4rom.
ro2mad
-ro2mal
-3roman.
-2romb
-romen3e
-ro2m1er
+ro2mer
4romm
-2romn
4romt
r2on
-ro3n4ab
-ro2nan
-3rond
ro4nerb
-4ronk
3ronn
rons2
ron4tan
-ron6tend
-ron2t3r
-ron2t1u
-ro1ny
-ro1o2f
-rop2a
-2rope
+4ro1ny
2ro2pf
-1ropl
-2ropt
+ro3ph
r1or
+r2ora
ro2r3al
ro2rat
-2rorc
-ro2rel
-ro2ro
+ro2rei
+ro2r1o
ror3th
-rort4s
-ror2Þ
+ro3se
ro3sh
-ro3s2i
-ros2p
+ro5s2i
+ro5smo
+ros6san
ross1c
-ros4st
ro3sta
-ros3tel
ro2st1r
-ro2sum
-4r3osz
-roßen2
-ro4ßenk
-ro2ßi
ro2ßu
-ro2tan
-rot3au
+ro2tag
ro2tÃĪ
-ro3te
-ro2te3i
-ro2t1ho
-ro2tru
+ro2tei
+ro2tho
+ro2tri
rot1s
rots2o
-3roul
+ro3t2u
ro3unt
3rout
-2ro1x
-4roy
rÃķ2b3l
rÃķ2du
2rÃķ2f
3rÃķh
-2r1Ãķk
+r1Ãķk
1rÃķl
-2rÃķl.
-rÃķ3le
-r1Ãķlp
+rÃķlla4
3rÃķmi
+4rÃķp
r1Ãķr
r2Ãķs.
-rÃķs1c
-r2Ãķ3se
-1rÃķsl
3rÃķtu
2r1p2
-r3pa
-r3pe
-rperer5
-rper3in
+r3p4a
+r3p4e
+rpe2re
+rpe4r3in
rpf4
r2pli
-rp4lu
-r3po
rpo4str
-rp3se
rps1t
-r4p3t
+rp3t
r3pu
2r1q
-4r1r
+2r1r
rr2ab
+rr2ar
rra4s3s
-rr4at
rrat2s
-rr1auf
rr1ÃĪm
rrb2
rr1c
+rr2e
+rre4ale
r5rega
-rr2ei
rre2le
rre2pa
-rrer2
-r2rerh
-r2rerl
+rrer4s
r3res
-rres2t
rre2ve
-r4rezi
-r3r2hen
-rr2hos
-rr4i
-rri3k2
-rrm2
-rrn3au
-rr2o
-rr3obs
+r2rew
+rr2he
+r3r4hen
+rrik2
+rr2n3a
+r3r2o
+r4r3ob
rro3m
-rro2re
rr2th
-r3r2u
+r3ru
r3r2Þ
-rrz2
-6r1s
-r3sabo
+rrÞ1b
+4r1s
+rs3ab
r2sa2d
-rs2al
r4samp
r4s1amt
rs2an
-rs3ana
-r4sanf
r2s3ang
-rs3anm
-r4sanp
+rs3anp
rs3ar
-rs4ark
-r4sarm
-r4sch3e4b
+r3sche
r6scherl
-r5schu
-r5schwu
-r5schwÞ
-r2s1ebe
-rse2e
-r2s1ef
+rs1ebe
r2sein
-rse2n
+rse2n1
rs2end
rse4ne
-r2sepi
rs1ere
-r2serh
+rs1erÃķ
rs1ers
-r2serz
+rs1erz
rse2t
rs1eta
-rs2ext
-r3s2hav
-r3shir
r3sho
-rs2hor
-r4shu
-rs2il
-rs2ka
-rs2kel
-rs2ki
-r4skir
+rs2kal
+rs2kan
+rs2kie
+rs2kis
rs2kl
-r4skor
-r3s4kri
-r4sky
-rs4mog
-r3s4no
-rs4om
-r2sop
+r4sko
+r4skr
+r4sku
+rs3l
+rs4no
+rson4e
+r2s1op
r4s3ort.
-rso4s
-rs1ost
rs2p4
-r3span
-rspa3s
+rspa3s2
+rs4pel
r2s3ph
-r3spi
-r3spl
-rs4por
-r2spun
-r2sput
-rs3s2
-rst3abl
+r5spi
+r4s3s2
r5stad
-rst3ala
-r4stale
-r4stans
r4stant
-r2stas
-r3stat
rs2tau
-rs2tea
-rs2tee
-rst5eing
-r6st5eint
-r4st3emi
+r6st5eing
rster2
-rst4erb
r6sterbt
-r4st3erl
-r4sterÃķ
r4st3erw
-rs2t1h
+rs2th
+r5stim
rst3ing
r2stip
-r2stit
-rs2tob
r2s1tot
+rs2tr
+rst3ran
r6strang
-r4stris
rs2tu
-rsuch4s
-r3suf
-rs2ums
+r2sumf
rsÞ3s
-r3sy
-rs2zin
-r1ß
+r3swi
4r1t
-rt1abs
-r2t1a2d
-r2t3ae
-rt1akr
-r4t3albe
-rta3l2e
-r2t1all
-rtal4s3e
+rt4abl
+r2t1alm
+rtals1
rt1am
-r3t2ame
-rt1an
-r2tanw
+rt1ang
+rt1ann
+rt1ant
r2t1ar
-rt3att
-r4tauft
-rt3ÃĪh
-rt1ÃĪnd
-rt1ÃĪrm
+rt3a4re
+r2t3att
+rt1ÃĪr
r3te.
rte1e2
+rtei3la
rt1ein
-rt4eind
-r4t3einh
-rte2is
r2telf
-rte3li
rtel6lei
+r4tempf
rte2n1
r3ten.
rte4na
-rten3s2
-r4t3ents
-rten3z
-rteo2
+rtens2
rt3erei
-r6tereig
-r4ter4fa
-r4ter4fo
+r4terfa
+r4terfo
rt1erh
-rt1erk
r4t3er4la
rter6mit
r4t3ernÃĪ
-r2ter2Ãķ
rter4re
-rt1er4s
-rt4er5sp
-rt1erz
+rt1ers
r3tes2
rte3sk
-rt1he
-r2thel
-r2t1hi
+r2thi
rt2hum
r2t1id
-rtik2
r2t1ima
-rt3inf
-rt2is
-rt2it
-rt3m
-r2t1ob
-r3top.
-rto1pf
-rt1orc
-r2torg
-r3tork
-rt3rams
-rt3rand
+rt4is
+rto1p
+rt1or
+rto2ri
+r2t3rak
rtra4s3
-rt3rati
rt3rec
-rt3ris
-rt3rol
-rt3roma
-r3trop
-r2trou
-rt3sc
+rt3ros
+r4ts
rt4s1eh
-rts2el
-rt3sex
-rts3ing
-rts1o
-rts1pa
-rt1spe
-rt4s3tan
-rts4tie
+rt1s2pe
rt3t4
-rt1umb
-rt2u3na
-r4tunt
r2t1urt
-rtu2t
-r2t3ute
-rty1
-rt3z2
+rt3z
+rtz2a
1ru
ru1a
-ru4ale
ru3a2r3
-rube4
-rub2i
+rube2
ru3ches
-rucht3s4
rude2a
ru2dr
-ru2et
3ruf
-ru2f1a
-ruff4
+ru2fa
ruf2s1
+ruf4st
ruf4ter
-ru2g3r
-3ruhm
2r1uhr
-3ruin
-ru3ins
+ru1ins
ru1is
2rum
-ruma2
-4r3umd
-4r3umf
-4r3umg
+4rumf
ru2mi
-4r3uml
-4r3umsa
-4r3umw
+4ruml
+r2ums.
4rumz
2r1una
2rund
-run4d1a
-runden5e
-run4d3er
-run2e
-runei2
-4r1unf
-run2ga
+run2d1a
+r2unde
+rund3er
+run6derf
+run6der6l
+run6ders
+run6derw
+2r1unf
2rungl
-4r1u2ni
-r3unio
-ru4nis.
+2r1u2ni
+4r3unio
run2kr
-4r1unl
+2r1unl
2r1unm
4runn
-4runr
-r1unse
4r3unt
-4runw
-2rupd
+2runw
ru3pr
-4r1ur
+4r3ur
ru2ra
ru2r1e
5ruro
-r4us.
ru2si
-rus2p
rus3sen
rus2s1p
-rus6st
-rus2t
-ru2tab
-rute4
-ru2tei
-ru2t1el
-ru2t1er
+rus6s3t
+3rut
+ru4tei
+rut3h
ru2t1o2
ru2t3r
-rut6scha
4ruz
-ru2z1w
+ru2zw
1rÞ
2rÞb
-4rÞbu
+rÞ1ben
rÞ1ch
-rÞcks2
rÞck5sta
-rÞ2hel
-rÞher2
-rÞh1l
4rÞmm
rÞn3z
-rÞ3ss
-rÞ4ssi
+rÞ3s2s
2r1v
-r3ve
-rv2el
rve4n1e
-rvenen4
-r4ventz
rve5s
-r3v2o
rv2s
2r1w
-rwe4gel
-r3wei
-rwelt4s
-r5werk
-r5wert
-r2wo.
-r3woh
-r3wort
+r5wei
rwun3s
4r1x
1ry
-2r1ya
ry2c
-rygi3
-ry1la
-ry2le
-ry1os
-ry3s2t
+rys2t
rysti1
2r1z
rz2an
-rz3ant
r2zar
-r2zat
-rz2ÃĪn
-rzell4a
+r2zas
+r3ze.
+rz1eck
r5zene
rz1eng
-r4zents
-rze2p
-rze2ra
-r2z1erd
+r4z3ents
r2z1erf
r2z1erg
-rz1erk
-r2z1erl
+r2z1erk
r2z1erw
-rzes2
-r2z1ess
rz1id
-rz1int
-rzir3
r3z2of
-r2z3ot
-rz2tan
+rz2Ãķ
+rz3te
rz2th
-rzu4g3l
-r2zwÃĪ
+rz2t3ro
+rzug2u
+r3zÞ
+r3zwÃĪ
r3z2wec
-r2zwir
1sa
3sa.
3s2aa
2s1ab
-sab2ÃĪ
-4sabd
sa2be
3sabet
-sa2bit
sa2bl
-4sabm
+sa3ble
sa2br
-4s3abs
-4sacc
-5s2ache
-sa2cho
-sachs2
+4sabs
+5sache
+sa2cho2
sach3t
-s2ack
+5sack.
s1ad
2s3ada
-sa2der
-2s3adm
+s3adm
2s3a2dr
-sa4fe
-4s3aff
+sa2fe
+2s3aff
+3safi
sa1f4r
3saft
-saf2tr
3sag
-sag2e
-5sage.
-5sagen.
-4s3agent
-4s1agg
+sa4gent
sag4n
4s1a2gr
-3sahs
-3s2ai
+3sai
sa3i2k1
-sail4
-sai4r
+sail2
2s1ak
sa2ka
-sak2e
3saki
-4sakk
-3sako
-4sakt
-3s2al.
-s2al2a
-sa2l3an
-sa2lar
-sa3lat
-3s2alb
-sal3bl
-3s2ald
-sa4lerk
-3sali
+3sakr
+4s3akt
+3sal.
+4s1alar
+sa4l3erb
sa2l1id
s1all
-sal3la
-sal4le.
-sallo3
-3sal2o
-sal3or
+sal5lo3
+3salo
sal2se
-s1alt
-s2al3t2h
-3salz
+2s1alt
+3s2alz
3sam
-s2am.
-s1ama
-4sa2mat
s2ame
-4s3a2mei
-sa3men
-sa2min
-5s2amm
-6s3amma
+s3ameri
+5samm
+6s1amma
4s1amn
s1am3p4
-4samph
-s2ams
+sam2to
s1an
s2an.
-2sa2na
-san4at
-sa2nÃĪ
+2s3a2na
2s3anb
s2an2c
3s2and
-san4dan
+s4and.
+san4dar
san4dri
-sand3s
-sa2ner
3sang.
-4sanga
+sang4s
2s3anh
-3sani
-3sanken
+3s4ani
2s3anl
-2sanm
-2sa2no
-2s3anp
+2sanp
2s3ans
-s4anse
san4sk
-san3sp
-4santei
4santr
-4s3anw
-2s3anz
-s4anz.
-s4anzt
+2s3anw
+s3anz
2s1ap
-sa2pe
s2aph
-sap3p
+sa2po
3sapr
-2s1aq
2s1ar
3s4ar.
-3sara
+3s2ara
4s3arb
3s2ard
-3sarg
-sar2ga
-sa3rin
-s2ark
-sa2rom
-s2ars
-4sart
-sa4r1u2
-s1asc
-2s1a4si
-2s1a2sp
-4sa2sy
-3saß
+3sari
+s3arr
+3s2ars
+4sarti
+s1a2sp
+sas6sest
+4s3a2sy
+3sat
sat2a
-satan2
-sa4t3ant
-sat1ei
-2s3a2tem
-s3ath
-3sat2i
+4s3ath
4s3atl
-4satm
-sat2o
-sa4tol
+4s1atm
sa2tr
sa3ts
-s3atta
-4s3attr
-3satz
-5satza
-sat4zel
sat4z3en
-s1au
+s1a4u
3sau.
3sauc
-3sau2e
-2sauf
-4s3aufb
-3saug
-saug3le
+3saue
+sau8erste
+2s3aufb
sau2gr
-sau3h
3saum
3saur
sauri1
-2saus
-3saus.
-4s3ausb
-4sausf
-4sausg
-sau2sp
-4sauss
-3sauste
-4s3ausw
-2sauß
-s1av
-sa2ve
-sa2xi
-sa3xo
-sa2y1
-1sÃĪb
-3s2ÃĪc
-3s2ÃĪg
+2s3ausb
+sa2vo
+3sÃĪc
s1ÃĪh
-4s3ÃĪhn
+s3ÃĪhn
2s1ÃĪlt
2s1ÃĪm
-4s3ÃĪnd
-4s3ÃĪp
-2sÃĪq
+2s1ÃĪnd
2s1ÃĪr
-3s2ÃĪrg
-sÃĪ4s3
-sÃĪ5sse
+sÃĪ2s3
3s2ÃĪt
1sÃĪu
2sÃĪuß
4s3b4
-sba4ne
-sbau6men
-sber2e
+sba4n
+sbe3r2e
sbus3
1sc
-2sc.
-2scab
-2scac
-2scaf
-2scal
+4sc.
2scam
-2scar
-2scat
-s1ce
-4s3cei
+s2cap
+4scar
+2s1ce
6sch.
-5schaf
-5s2chal
-sch3ana
+sch2ab
+3schaf
+2schak
+sch2al
4schanc
4schang
5schanz
4schao
-4s3chara
-4sch3ar5m
-s2chÃĪ
-2schÃĪq
+s2chau
+3s2chÃĪ
2schb
2schc
2schd
sch2e
-4schech
-sche2f
+3sche.
6schef.
-6schefi
6schefs
-4sch3ei.
-sch6ein.
+sch3ei.
4schemp
-sch5erfÞ
-sch5erla
3sches
4schess
4schex
-2schf
-2schg
+4schf
+4schg
2schh
-schi4d
schi4e
+3sching
4schiru
3schis
2schk
-sch4lac
+sch4lag
4schle.
6schlein
-4schloc
-4schlÃķc
4schmas
-4schmed
2schmÃķ
4schmÞh
-2schmy
2schn.
-4schneb
-4schnut
4schobj
-4schorc
2schox
-4schÃķr
+3schÃķ
+4schÃķl
4schp
2schq
-4schrad
4schre.
4schrin
-s3chris
sch3rom
4schron
4schrou
-6schs4
+6schs2
sch3sk
6sch3t
scht2a
-scht2i
-scht1s
-s4chu
+scht4r
+s2chu
4schunt
-5schÞ
+3schÞ
2schv
-sch4web
-4schweg
-6schwerk
+4schwaa
4schwet
-4schwid
-3schwÞ
-s5chy
+sch4wil
2schz
2scj
6s1cl
2sco
-4scoa
-3s2co2p
+3s2cop
+3sco4r
+s2cr
2scs
2scu
-2scy
-4s1d2
-sd4a
+4s3d2
sda3me
-sdes4
sdien4e
-s3do
sd4r
1se
se3at.
seau4
-seb2
-5sebÃĪ
2s1e2ben
+seb4r
2s1echo
-sech6str
-2s1echt
+s1echt
2s1eck
se2dik
3see
-see1i2
+se1ec
+se2e1i4
see3ig
-se2el
-see3len
-se3en.
-see3n2e
-se3enp
-se3er.
-see1ra
-seer2e
-se1erf
-se3e2r1i
+seein2
+se1er.
se1erk
-se1ers
-see5s2
-2s3eff
+se1erÃķ
+2s1eff
sef4l
-3s2eg
-s3e2gal
+3seg
+se2gal
se2gl
seg4r
3seh
seh1a
-se2hag
-se2hak
-se2hel
-seher4e
+se2ha4g
+se2han
+se3he
+se4h1ei
+se4hel
se4herk
-se2h1in
-seh3l
-se4h3Ãķ
-seh3ra
+se2hin
+seh1l
seh3re
-seh5r2i
seh3s
+seh3t
se2hÞb
-2sei.
-2s1eic
-2s1eid.
-sei3da
-4s3eifer
+2s1ei.
+2s1eie
2s1eig
-3seil
-s2eim
+sei3le
s1ein
5s2ein.
2seinb
-seinbus6
sein4du
-2sei3ne
-seine3i
-4seinfl
+sei3n2e
sein4fo
2seing
-2s3einh
-2seini
-2seink
+2seinh
+4seink
2seinl
2seinn
-sein4ne
2seinr
s4eins.
-4seinsc
+4seinsa
4seinsp
-sein8stit
-sein6str
-2seint
-4seintr
+4seinst
2seinw
-2s3einz
2s1eis
-3s2eism
5s2eit
-seits1
3sek
-4s1e2kel
-4sekz
+4s1e2ke
s2el.
se2l1a
-3s2elb
-sel3d4
+se3lad
+sela4g
+se3lam
+3selb
sel1ec
-se2lef
-2s3e2leg
-6selektr
2selem
-se2ler
+se4lerl
sel3ers
2self.
-selin4s
-s1e2lit
-2s1elix
-s2ell
+s1elix
+3selk
sel3le
-se2lob
+se2l3Ãķ
s2els
sel3sz
-selt2e
-selz2
-sem2e
-2s1e2mis
-2s3emp
-s4en.
-se4nad
-se3nal
-se4nas
-sen3au
+sel3tr
+s4e3ma
+2s1emp
+s2en.
+se4nag
se2nÃĪ
-s2enb
3sendet
4s1endl
-sen3d4r
-2s1endw
-senen1
-4senerg
-se4ners
-s2enf
5seni
-se2nid
-se2n1im
-sen6keli
3senku
se2no
-se4nott
-se4noz
-s2ensa
-sen4s3e4h
-4sensem
-sen4si4d
-s2enso
-senst2
-sen8s7turm
-sent2a
-sen3tan
-sen3tÃĪ
-2sentd
+s2ens
+s2ent.
+sen3ta
2sentf
-4sentg
-4sentn
-s2ento
-sen3tr
+4s3entg
+s2enti
2s1ents
2sentw
2sentz
-se4n3u2
+se2n3u
3senva
-sen3za
-sen4zer
-sen3zw
-5seo
seo2r
-se2pen
-5seq
+4s1e2pos
+3seq
s4er.
-se2r3a2d
-ser3al
-se3rand
-ser3ÃĪus
-serb2
-s3erbe.
-serd2
-se2r1e2b
-se3reie
+ser3a2d
+se2r3al
+s3ereig
se4r3eim
-se4rein
-sere2m
-s4eren
se4r3enk
-s4erfe
+ser2er
s1erfo
s2erfr
s3erfÞ
-4serfÞl
-ser3g2a
+4ser4fÞl
s1ergÃĪ
-ser3gl
-s2ergr
+s4ergr
s1erh
5serie
serk4
+s3erken
+s1erkl
3serl.
-4s3ermit
s2ern.
-2s1ernÃĪ
-s3erneu
+s1ernÃĪ
4s3ernt
-sero4b
-s1e2ros
-s1erot
-s1erÃķ
+se1rot
+s3erÃķf
s2ers.
2sersa
-ser6sehn
-4ser4set
-se3ru
-se4ruh
-ser2um
-s3e4rup
-3s4er3v
-s1erz
-s4es.
-se3s2a
+sers2t
+s4ert.
+seru2
+se4r1uf
+se3rum
+se3rund
+3s4erv
se2sel
2sesh
se3sk
-s1essa
-sest3ri
se3su
-2s1e4tap
+2se4tap
se2tat
-2s1e2th
-set2i
-2s1e2tik
-set1s
-se3tun
-3sety
+s1e2th
3setz
-3seuc
-4s3eul
se1u2n
-s1ex
-5sex.
-2sexa
+2s1ex
se2xe
-sex3en
-s2exi
-s2exo
4sexp
-sex3t4r
-2sexz
+sex3t2
6s3f4
sfal6l5er
-4s3g4
-sgang4
-sge3s2
+sflo4
+4s3g2
+sges2
sgro3
2s1h
4sh.
sh2a
-3sha.
-shal4li
-shalt2
-shalt4s
-4shan
+3s2ha.
+sha2k
+4s3han
4shc
-sh2e
-1shen
-4shf
-sh2i
+s3h2e
3shi.
-1shid
-s4hig
-s2hip
-s2hi4r
+3shid
+4shil
+shi4r
4shk
sh3n
-4shoc
4shof
-4shom
3shop
sho4re
-5show
-4s3hÃķ
-sh4r2
+3show
+sh4r
4shs
4sht
-s3hu
4s3hÞ
1si
-3si.
si3ach.
-sial5l
+si2ad
+si3am.
sia4s
2siat
+sib4
5si1c
-si2cha
-2s1idea
-2sidee
2s1ideo
-si3der
-s2i3do
-2sidy
+s2ido
3s4ie
-sie2bu
siege4s
+sieh1
+sie4hes
si3ene
si1err
si1f4
si2g1a
-si2g1ei
+3sigh
sig4n
+si3gnu
si2g3r
-sigs2
si2k1ab
si2kak
-si2kar
si2k1ÃĪ
-si2k1el
-si4kens
sik3erl
-si2k3i
-sikin1
-si2k3n
-si2k3r
+si2ki
+si4k1l
+si2kr
sik3s2
-3sik3t2
+sik3t4
si2ku
sil2br
-sil2e
-3sili
-s1ill
3silo
2s1imm
-sim2st
-3simu
si3n4a
2s1ind
2s1inf
-4sinfe
sing1a
-sin3g4le
-sin2g3r
-sing3s2
+sin3gl
+sing4le
+sin4gr
+sing3sa
2s1inh
-s1in1i1
-s2ink
-sinner4
-2s1inno
-2s1inq
+sin1i1
+4s1inq
2s1ins
+s2ins.
+4sinso
+4sinst
2s1int
-2s1inv
+4s1inv
3sio
-sirn4
-2sirr
3siru
3sis
si2sa
-si4sam
si4schu
-si2s1e2
-si2si
-si4sis
-s1i2so
-sis1or
-si2s3p
+si2s1e
+si2s1o
+si2s1p
sis3s2
-5s2ist
-si4star
-si3sto
si2stu
-si2su
-3sit
-si2tal
+3s2it
si2tau
+sit3r
si2tra
-s2it2u
-3siu
-si2va
+si3tu
+siv1a
sive3
-siver2
-si4v3erf
-si2vin
-siv1o4
-si2vor
-siz2
+si2vr
1sí
4s3j
2s1k2
4sk.
-sk4a
-4s3kab
-s3kad
1skala
-4skalk
-s3kalt
-4s3kam
-4skana
-4s3kanÃĪ
-3skanda
-4skann
-4skap
-4s3kar
-4s3kas
+4skam
+4skanz
+4skas
ska4te.
4skateg
ska4tes
-ska4to
-4skau
-4s3kÃĪ
+4skÃĪ
4skb
-ske2li
-4sken
-3skep
-4sker
-4s3ket
-s3kh
+s2kep
3s2ki.
-3s2kif
+s2kif
+s2kig
3s2kik
-s3kim
-s3kin
-s2kis.
+4skir
3skiz
sk4l
4s3klas
3s2klav
-4s3klu
4sk4n
-4skoh
-4skol
4skom
-4skon
-3skop.
-sko2pr
-4skos
+4skor
4skow
-4s3kÃķ
-sk4r
-4s3kra
-4skro
+4skÃķ
4sks
-4sk3t2
-skto2
+4sk3t
3skulp
-4skun
-sku2s3
-4skÞ
-4skv
+skus3
2s1l2
4sl.
-s3lab
3slal
-sla2ma
-4slar
+4slan
sla2ve
s2law
sl3b
-4s5le
+s5le
s3li
3s4lip
4sln
+s3lo.
slo3be
-s3loc
-s4loga
-3s2low
+s3loe
s3lu
-s3ly
-4s3m4
-sma3b4
-sma3sc
-smas4p
-sme3na
-smi2t3
+4s3m2
2s3n2
+4s5na
snab4
-sni4a
sni3er.
sni3ers
4s5not
-s5ny
+4snÃķ
3so.
-2s3oas
+so4a
2s1o2b
-3s2o3ba
-4sobj
-4s3obo
-so1ch
-so2di
-so2do
so3et
-s1o2fe
3soft
3sog
-sog4l
s1o2he
-3sohl
-sohle2
-2s3ohng
+6sohng
2s1ohr
-3soi2
-so3id
-2s3ok
1sol
-3sol.
so3la
-so4lau
-3sold
-3sole
so2l1ei
-so3li
-sol2la2
+sol2la4
sol4ler
-so3l2o
-4s3o2ly
-1somm
+2so2ly
+3som
3s2on
-son2a
son3au
sone2
-son4gl
+son3end
son3sÃĪ
son2s1o
so3o
-s1op
-2sope
-2sopf
-3sopr
+2s1opf
+3sor.
+s1orc
2s1ord
-sore2
so2rei
-so2rel
+so3ren
2s1orga
-1sorge
-so1rh
+5s2orge
2s1o2rie
so2ro
-3sorp
-3s2orti
+3sors
so4ru
-1so3s2
-3s2os.
-3sosc
-so4sk
-2sosm
-2sost
-so4sth
-s1o4sz
-3so3ß
-2sot
-so3t2h
-3sott
-soun2
-sound1
-so3unds
+3so3s2
+s4os.
+4s1ost
+3soß
+1sou
so3unt
-2s1out
3sov
+4s1o2ve
3sow
-2s1o2x
-3soz
-s1oze
-2s1Ãķ2d
-2sÃķ2f
+2s1ox
+5soz
+sÃķ2f
2s1Ãķk
-2s1Ãķl
-2s1Ãķ4s
+s1Ãķ2l
+s1Ãķ4s
sp2
2sp.
2spaa
-s2pace
-2spack
-2spag
-spa2ge
2spak
2spala
-2spalÃĪ
-3spalt
-spa2m
-1span
-s2pan.
-3spannu
+spani7er.
2spano
-s2pans
-3spant
-2spanz
4spap
2s3para
1spare
2sparo
-1sparr
5s6parten
-4spartn
-spas2
+3sparu
spa3sse
-spa5ssi
-1spat.
-2spati
-2spatr
+spa3ssi
+3s2paß
2spau
-3s2paz
+s2paz
s2pÃĪ
-2spÃĪd
-3spÃĪh
2spÃĪr
-2spÃĪs
2spe.
-2speg
-1spei
-4spein
+2s3pel
4spensi
spe3p4
s2pera
-3sperb
-3s2perg
-s1peri
-4sperle
2spero
s2perr
-sper4ra
2spers
4spet
-3s4pez
-2s3pf4
-4spha
-s2phÃĪ
-3sphÃĪr
+1s2pez
+2s3pf
+2spha
s3phe
1spi
-3spi4e
-4s3pier
-spier4r
+3s2pi4e
+4s3pier4
spi2k
-4s3pil
-2s3pip
-4s3pis
+4spil
+3spio
+4spip
+4spis
3s2pit
3s2piz
2spl
4spla
-4s3plÃĪ
+4splÃĪ
3s2pli
-4s3p4lu
+s3p4lu
s3pn
2spod
-4spoe
+2spog
s2poi
-2s3pok
+2spok
4spol
1spon
-s2pons
-4spoo
-2spop
1spor
-s2pore
-3s2porn
-4s3pos
-4spote
+2s3pos
+s2pott
4spr.
-3s2prac
-2sprak
+s2prac
s2pran
2sprax
2sprÃĪm
-s2prÃĪn
-2sprÃĪs
-3sprec
+4sprÃĪs
+3s4prec
2spred
-5s2pren
-2s3pres
-3spring
-4sprinz
+s2pren
+2spres
s2prit
-4sprob
-4sprod
-2sprog
-4sproj
+2sprob
2sprop
5spross
-2sprot
-2sproz
-3sprÃķ
-3s2pru
-3sprÞc
+1spru
2sprÞf
-1sprÞn
+3sprÞn
2s3ps
-2sp3t
-2spub
-2spud
+2spt
1spuk
-3s2pule
-s3pun
-4spup
+2spup
3spur
-spu4rer
+4sput
1spÞ
-2spy
+4spy
2s1q
4s3r4
sra4s3s
srat2s
-sre3cha
-sro2h
-sro3tu
+srat4sc
+sret3
srÃķ2s
+srÃķs1c
srÞcker6
2s1s
6ss.
4ssa
-s3saba
-ss3abi
ssa3bo
-s5sack
ss2ad
-ss4agi
-s2s1aj
-ss3alba
-s2sall
-s4samt
-s2sanf
-s4sang
-s4sano
+ss1aj
+s3sal
+s4s1alb
+s4s3amt
+s5sand
+s4s3ang
+s2sano
s4sans
ss2ant
s4sanz
-ss2ara
-ss2arg
-s3sars
-s2s3att
-ssau3e
-ssau4r
+s3sas
+ss3att
4s3s2ÃĪ
4ssb
6ssc
-s2sce
ssch2
-sschanker8
-s2scr
4ssd
-sse3a
4ss1ec
4ssee
-sse1ec
-4ssef
4sseg
+s4s1ega
4sseh
-sseh2a
4ssei
-s2sein
-ss4eind
-sse3int
+sse3inf
+sse3in4t
4ssek
-4sselek
-sse2lÃķ
-4ssemp
6ssendet
4s3sendu
-6ssenerg
-ssen6kel
ssenmas6
-ssen6sem
-4ssentl
-4ssents
4ssentz
-ss1epe
-sse6ratt
-ss5ereig
-ss4ergr
-sser4hÃķ
-sser6mit
-s2serÃķ
-sser4Ãķf
+sse6r5att
+s2s1erÃķ
4ss3erse
-ss4eru
-sser6wei
+ss2es
4ssesc
3ssesh
-sses4sa
-4ss3e4str
-4sset
sse3ta
-s3seth
4ssez
4ssf
4ssg
4ssh
-ss3hi
4ssic
-ss3i2ko
-s2simp
-6ssio
-ss1isr
+4ssie
+s2sig
+s4sind
+s4sinf
+s4sint
+4ssio
4ssit
-4ssj
4ssk
s3skala
4s4s3l
4ssm
-ssmut2
4ssn
4sso
ss1off
ssoi4
-s3sol
-s4sop
-4ssÃķ
+s2s1op
+ss1ori
+s2sÃķl
4ssp
+s3spe
ss2pen
-ss2phi
-s3sprÃĪ
-s3spri
+ss2po
+s3spru
ssquet4
4ssr
-4s4s3s4
-sssau4
+4s4s3s2
4sst
sst2a
s5stad
-s6stag
-s3stÃĪ
-ss1t2e
+ss2tar
+ss1te
s4ste.
s5stel
-s5s2tep
-s5stern
+s4sten
s4stes
s4stet
s5steu
-sst2i
-sst3in
+ss2th
+ss2tip
ss1tis
-s5stop
-ss1tor
-s3s4trat
-s3strÃķ
-s3stÞ
+ss2top
+s3strec
+ss2tur
+s3s2tÞ
4ssum
-s2sumg
-s2sumr
-4ssunt
+ss1ums
4ssup
-ss2ur
-s3sus
4ssÞ
4ssv
4ssw
@@ -20005,824 +12661,552 @@ s3sus
4ssz
1st
6st.
-3s4ta.
-5staa
-5stab.
+s4ta.
+3staa
2stabb
-4stabel
-2stabg
2stabh
-4stabit
-2stabl
-2stabn
+s2tabi
2stabt
2stabz
st2ac
-s2tad
-2stada
+3s2tad
+4stada
+4stadr
3staff
2stag
-3s2tagr
3stah
2stak
-2stala
-sta3lak
-2stalb
-2stalg
-3sta3l2i
+2stal.
+2stale
+3sta3li
2stalk
+st1alm
st1alp
-st1alr
3stam
-st1ami
-stam4ma
-4stampl
+st1a2mi
4stamt
-2stanb
-3s2tand
+sta4na
+3stand
4stanf
-6stangeh
-4stanh
4stanl
-4st1ann
-st3ansp
-4stanst
-3stant
-4stantr
+4stann
2stanw
4stanza
-sta3po
-2st1app
s2tar.
-sta6rens
-s2t2ars
-s4tart
-2stasc
-sta4sie
-stast4
-2statb
-7s2tati
-7statth
-7statu
+s2tars
+3start
+st1asi
+3stat
+2stat.
+5statu
+s4tau.
2stauf
+2staum
5staur
2staus
-st1a2ve
2stax
-3stÃĪb
-3stÃĪd
-2stÃĪg
-2stÃĪlt
-2stÃĪmt
-3stÃĪnd
-4stÃĪp
-5s2tÃĪr
-3stÃĪtt
-2stÃĪus
+3stÃĪ
+4stÃĪg
+4stÃĪlt
+4stÃĪmt
+s2tÃĪr
+5stÃĪtt
+4stÃĪus
4stb
2st3c
4std
3ste
-4steam
s2tean
4stechn
-ste2d
-st1edi
-ste2g3r
-s2teh
-4stehr
-st4ei.
-4steic
+4stee
+ste2gr
+ste4i
4st1eid
-5s4teig
-stei4gr
-4steil
-s3teilc
+5s2teig
+4s3teil
+steil4z
stei4na
-6steinga
-6steinhe
-stein6sp
-s2tel
-st1elb
-s3tele
-st2ell
-stel6l5ÃĪn
+s2t2el
+s3telem
+5stell
+stel4l3ÃĪ
ste4mar
-ste6ment
-6stemper
4stempf
ste4na
4st3ends
-st2ens
4stentf
-4stentl
-4stents
4stentw
4stepi
-st1e2po
-ste2r3a
-s2terb
-4sterbs
-6stereig
-s2terf
+st5erbie
+ste4rec
+ste6rers
st3erfÞ
st2erg
-s2terh
-s2terj
-s2terk
+st5ergeb
sterma7sse
s2tern
6sterras
s2ters
-ster4zo
-ste4s1e
stes3ta
-4stestb
-4stestn
+ste4stÃĪ
4stests
-4steta
-ste4tab
-ste4tag
s2teu
4steuf
-st3eun
-st1ev
+4st3ev
4stex
-s2texa
4stf
2stg
-2sth
-st2hen
-st1hi
+4sth
st3ho
-st1hy
-st1i2d
+5s2tic
+3stie
4stief.
-4stiefl
-5s4tiel
-5stif
-sti4gel
-st2il
-3stimm
-4stimma
-2stimp
-2st1inb
-4stinf
-3sting
-4stinh
-2stins
-4stint
+3stim
+2stinb
+2stinf
+2st1ins
s4tio
-2stip.
-4stipps
sti2r
-st1ira
-st1iri
-st1iro
-2stite
+st3i2so
2stj
2stk
4stl
4stm
stma3s2
2stn
-sto2bl
-4stocht
+2stob
+3stoc
+sto3d
s2tode
-3s2tof
+s2tof
stoffen6
stof8fens
-6stoffiz
-sto3mi
-2stomn
-2ston
-4stona
-3s2to4ne
-4stonl
+2st3om
2stope
2stopo
2stord
-2storf
2storg
s2tory
+3stos
4stou
-4stÃķch
+2stÃķch
2stÃķl
+2stÃķn
5s2tÃķr
-2stÃķst
2stÃķt
4stp
2stq
-st4rade
-stra4fa
+3s2traf
2strag
-s2trah
-2strai
+3strah
+4strai
3s2tral
4strans
3s2tras
3straß
4straum
-2strÃĪc
+s2trÃĪf
2s3trÃĪg
+s2trÃĪn
4strÃĪne
2stre.
4strech
-2stref
-2streg
-4streib
-5st6reif
+4stred
+4stref
+4streg
+s3treib
+3st4reif
+4streis
+st3renn
2strep
2stret
2strev
+2stri.
3s4tria
2strib
4strig
+stri2k
4strisi
-4stroc
+2stroc
3s2trof
-3s2troh
3s2trok
-4stropf
-3s4tropo
-st4ross
-4strost
-3stroy
+st3roll
+stro4ma
2strÃķp
-2strub
+4strÃķt
3struk
-s2trum
-2strun
+2st3run
2strup
-2strut
4st3s2
stsas2
-stsi4d
-sts4p
+sts4k
2st3t4
st2u
-3stub
-4stuch
+5s2tub
+4stuc
3stud
2stue
3stuf
-2stug
-st3uga
-3stuh
+5stuh
2stuk
-2stumo
2stumr
-2stum2s
-s3tumsc
-2stumt
+stum2s
2stumz
+stu2n
2stun.
-2st3una
-2stune
2stunf
2st3uni
2stuns
2stunt
3stuÃķ
-stu3ra
-stu5re
-2st3url
+stu3re
+st3url
2s3turn
2st3urt
-3s2turz
4stÞch
-3s2tÞck
-3stÞh
+s4tÞck
2stÞr.
2stÞre
2stÞrg
2stÞrs
-2stÞrw
-2stÞtc
2stv
2stw
-stwor2
-2sty
-4sty.
-4styp
-4stys
-2st3z2
+2sty.
+2stys
+4st3z
+1su.
su1an
3su2b3
-su4ba
+su4ba2
4subi
-su4br
-subs4
5su1c
su2cha
-su2cho
-3sud
-su2eb
+such4st
2s1u2f
-su3fi
-2s1uh
-1sui
+4s1uh
su1is
su1it.
-su2k
-su3l2i
-sum1a
-su2man
+sul2a
+sul2i
+sult2
su2mar
+su2mau
3s2ume
-su2mei
-su2mel
-sument4
-su6ments
-su2m1et
-2s3umf
-su2m1id
-su2min
-3s2umm
+su2m1el
+su6m5ents
+s3umfa
+s3umfe
+3summ
sum1o2
su2mor
s2ump
-s1ums
s3umsa
-2sumse
-s2umsp
-2s3umst
-2s3umwa
+s3umst
su2n
-2s1una
sunder4
sun6d5erh
su4ne
-4s1unf
-6sungena
-2s3ungl
-4s1uni
-2s1unm
-s1uns
-2sunt
-3sup
-4supd
+s1unf
+s3ungl
+2s1uni
+4sunt
+3s2up
sup3p4
su2ra
-sure4
-su2rei
-su2rer
-3surf
-2s1urk
-s1url
-su2r1o
+2s1url
s1urt
-su2s
-su3s2a
sus1e
-sus3i
-s3u2t
-su3tr
-suz2
-2sÞ4b
+su2sp
+sus3s
+2sÞ2b
3sÞc
sÞ2d1
-sÞden4
+sÞden2
sÞ3den.
-1sÞf
3sÞn
1sÞs4
sÞ3sse
sÞ3ssi
1sÞß
-4s3v2
-svoran4
-2s3w
-swe6gers
+4s3v
+2s1w
+s3we
sweh2
-swe5s
4swie
4swil
-4swink
-4swis
-4swit
+s3wÃķ
+s3wu
1s2y
-2syl1
-sy2lo
-sy2lu
+syl1
sym3
sy2n3
-3synd
-sy4no
-3sys
+sy4na
+sy4nÃĪ
+sy5s
2s1z2
4s3za
4szÃĪ
4s3zei
-4szel
-3s2zena
-3s2ze3n2e
-4szent
-4szer
+s2zena
+5s2zene
+4s3zent
s2zes
s2zeß
-s4zew
-4s3zie
-s3zins
-4s3zo
-s3zs
+s3zet
+s2zis
sz3ta
4s3zu
-4szÞ
-4szw
-4szy
-2ß3a4
-ßan1
-ßat3
-2ß1ÃĪ
-2ß1b4
+4s3zw
+2ß3a2
+ß1ÃĪ
+2ß1b2
ßbus3
2ß1c
2ß1d4
+ßdie3
1ße
-2ß1e2b
2ß1ec
-2ß1ef
2ß1e2g
2ß1ei
-2ß1ek
-ße2l
-2ßelek
-ße3lu
-2ß1emp
-ße4n3a4
-4ßenerg
+ße2l1a
+ße2le
ße2ni
-ß1enke
ße2no
-3ß2en3te
2ßentz
-ße2nu
-2ß1e2p
-3ß2er.
-ßer3b
-ßer2ei
-ßer2la
-ße2ro
-2ß1erse
+ß2ers.
+2ßerse
ßer3t
-ß1erw
ße2s
-2ß1es2s
-2ß1est3r
ße2t
-2ß1ex
-2ß1f4
+ß1ex
+2ß1f
2ß3g2
ßge2bl
-2ß1h
+2ß1h2
1ßi
ßi2g1a
-2ß3i2k
-2ß1il
-2ß1im
2ß1in
ß1j
-2ß3k4
+2ß1k4
2ß1l2
-2ß1m2
-ßmut2
-2ß3n2
-2ß3o4
-ß1Ãķ4
+2ß1m
+2ß1n2
+ß1o2
+ß1Ãķ
2ß1p2
2ß1q
ßquet2
4ß3r2
-ßrÃķ2
ßrus3
-2ß3s4
-ßsau4
+2ß3s2
ßsch2
+ßst2
2ß1t
-ßt1h
-ßt1in
+ß2th
ßts2
1ßu2
ß1uf
2ß1uh
2ß1um
-ß2ung
ß1uni
-2ßunt
-ß1Þ4
+ß1Þ
2ß1v
2ß1w
-2ß3z2
-2taa
+2ß1z2
2tab.
-3taba
-ta2b3an
+ta2b1an
2t1abb
-4tabd
1tabel
+2taben
+ta4bend
2tabf
2tabg
2tabh
-2t3a2bit
2tabk
-2tabla
-1table
-4tabm
+1t6able
2t3abn
-2ta4br
+ta2br
4tabs
-t1abst
2t3abt
-3tabu
-4tabw
-4tabz
+ta2bÞ
+2tabw
+2tabz
2t1ac
-t2ache
3tacu
t1ada
-2tadd
-ta2der
tadi3
-tadi5o4
-tadi4s
-t1adm
-ta2dol
2t1a2dr
ta3d2s
-ta2er
-1tafe
-2tafet
+1taf2e
+2taff
t1afg
-t1afr
-1tag
+t1af4r
+1t2ag
+3tag.
ta2ga
-ta2g1e2i
-4t3agent
-tage2s
-2t1agg
+ta2g1ei
+4t3a4gent
ta3gl
-2t1a2go
-tag2s1
-tag4san
+t3ago
+tag2s
tag4st
-2tah2
-3tai
+tah2li
+tahl3sk
ta3i2k
-tai2l1
+tai2l
ta1ins
tai4r
ta1ir.
-ta1i2s
1tak
-2t1a2ka
-ta3kes
-2t1akk
+t3a2ka
ta2kro
-2taks
-tak2t1o2
-t2aktu
+tak2ta
+3taktb
+3takts
+3t2aktu
2takz
3t2al.
ta2la
-ta3lad
ta3lag
+ta3lak
tal3au
-1talbr
+t1alb.
+t1albk
1talbu
-tald4
-1tale
+tal3d
+1t4ale
tal2en
-ta4l3end
-tal3eng
-ta4l3ens
-taler2
-ta4ler3g
-ta2let
+ta4lens
tal2ga
-tali6ene
-tal4l3ac
tal4leg
tal4lei
tal4let
tal6leut
-tal6lin6s
-tal4los
-tall2Ãķ
-tall3s
+tallin6s
tal4lus
-2t1alm.
-ta2lop
-ta2l1o2r
-t1al3ta
-tal3th
-talt4r
-ta2lu
+ta2l1op
+tal2se
+2talt
2tam
-3t2am.
-t2amen
-t1a2mer
-ta2mi
+ta2mer
tam2ma2
-tam4m3er
tam4mi
tam4mut
t1ampl
-3t2ams
-4t1amt
+t1amt
t1a2na
-tan3ab
-4tanal
-ta4nat
-2t1a2nÃĪ
-tan3d4ar
-tan2dr
-ta4nerf
+2tanb
+t2and
+tand4ar
+ta3ne
4tanf
2tang
-tan4gra
-2tanh
-t2anho
-t4ani
-3tanj
-1t2ank
-tan2kl
-4t3anl
+t2ank
+t3ankl
+2tanl
t1anm
-2t1anna
-3t2anne
-t1ano
-2tanom
+2tanme
+4t1anna
t1ans
t2ans.
-4tansi
-tan4tan
-t4ante.
-4tantei
-2tantr
-tanu4
+4t3ansi
+2t3ansp
2tanwa
2tanwÃĪ
t2anz.
t1anza
4tanzei
-3tanzk
-3tanzr
+tan6zerh
t1anzu
tan2z1w
-tao2
ta3or
-t4ape
+ta2pe.
ta2pes
2tapf
ta2pl
-ta4poka
+2tappa
t2appe
-ta2ra
-2tarab
-3tarabb
-ta3rak
-3tar5al
-2taram
-tar3ap
-ta3ras
-t2arau
2tarb
-3tarba
-3tarbek
-3tarber
-3tarbi
-3tar3bl
-2tarc
-3tarchl
-3tarchr
-t2ard
-ta2rel
-ta2r1er
-tar3g
-ta1r2h
-3tari
+ta4ren4s
+ta4r3ere
+3t4ari
2tark
-3tark4l
-3t2arko
-t2arl
2t1arm
-t2armÃĪ
-ta2rom
-2tarot
2tart
-3t2arta
-3tartei
-tar6ter6e
-3tartex
-3t2arth
+tar2ta
t1arti
-3t4artis
tar2to
-tar2tr
-3tarty
ta2ru
-t1arz
-2tarzt
-t2as.
-ta3s2a
+2t1arz
+ta3sa
1tasc
-4t1asp
-2t3assi
-1tast
-ta4stem
-ta2sto
+t1asp
+1tas2t
ta3str
-t2asy
-t4at.
+1tat.
ta2ta2b
ta2tan
-3tatb
-t4ate
+ta2tau
tat1ei
-t5a2tel
ta2tem
-1taten
ta2t1er
-2t3atl
-2tatom
-2ta2tr
-1tatsa
-2tatt
-tau2b1a
-1taubh
-tau2bl
-tau2b3r
-tauchs4
-tauch5sp
-2taud
+ta2th
+tat3he
+t3atl
+t4atm
+ta2tom
+1tats
+ta2t1um
+4taud
t1auf
-3taufe.
+4taufg
tau3f4li
-4taufm
-2taufn
-t3au2f1o
-4taufp
-taufs2
-4taufw
+4taufn
+2taufw
1taug
-4t3auge
t1auk
3taum
-4tauma
-1taume
1taus
-4t1ausb
-tau6scha
-tau6schm
+2taus.
+t1ausb
tau6schr
tau6schw
-2tausd
-t2aus2e
-2t1ausf
+t2ause
t3ausg
t1ausk
2tausl
-2tausr
2t3auss
-2t5ausw
-2tausz
-ta2van
-3tax
+4t1ausw
+1tax
+ta3xi
taxi3s
-4t1axt
-2tÃĪÃĪ
-2tÃĪb
+3tÃĪa
tÃĪ1c
2tÃĪd
-t2ÃĪf
+3tÃĪe
1tÃĪg
2tÃĪgy
2tÃĪh
-3tÃĪle
-2tÃĪll
2t1ÃĪlt
-2tÃĪ2m
+2tÃĪm
t1ÃĪmt
t1ÃĪngs
1tÃĪnz
-2t1ÃĪp
-2tÃĪq
-tÃĪ4reng
+t1ÃĪp
+t2ÃĪr.
tÃĪ2ru
-2tÃĪrz
tÃĪ2s
t2ÃĪt
-3tÃĪtigk
-4tÃĪtt
+2tÃĪtt
2tÃĪug
1tÃĪus
2tÃĪuß
2tÃĪx
1tà
-4t3b4
+4t3b2
tbauer4
-tber2e
+tbe3r2e
+tblock5e
tblocken8
tbus3
2t1c
@@ -20830,852 +13214,563 @@ t3cha
t3che
tch2i
tch3l
-t3chr
t2ch1u
tch1w
t3cl
-tcor2
t3cr
-4t3d4
-tdar2m1
+2t3d4
tdun2
-1te2a2
-te3ab
-tea3c
-te3ag
-2teak
+1te2a4
te3al
-teamma3
+teamma5
te3an
-te3ar
-tea4s
-3teba
-t4ebb
-2t1e2ben
-t2ech
-1techn
+3t4ebb
+4t1e2ben
+1t2ech
+te1cha
+3techn
te2chu
2teck
-t1ecu
-te2dit
+teck2e
+te2de
1tee
te1em
-teen1
-te2er.
+te2en3
te1erw
te2es
-3tefa
2teff
2t1egg
-te2hac
-2tehe
-te2him
-2t1ehr
-te3hu
-1teic
-tei1fl
+teg3re
+2teh
2teign
teik4
-1t2eil
-tei6lent
-teim2
+1teil
2tein
-teinbus6
-teinen4
-tei6nens
-tein6hab
-t3einkÞ
-2t1eis.
+tein3ec
+t3einge
+t3einla
+4teinn
+t1eis.
t1eisb
-tei3sc
-te5isch.
-teit4
-t1eiw
-tei3z
+tei3st
te2kel
-3teko
-tek3t4
-te2la
-tel3ab
-tel1ac
-te3lan
-te4lant
-tel1au
-te2lÃĪ
+tek3t2
+tela4
+te2l3ab
+te2l1ac
+te2l1au
telb4
tel3d4
-tel1ec
-1telef
-1teleg
-tel3ehr
+te3le
+tel1eb
+tele4be
+te4l1ec
+3telef
+3teleg
+te4l1eh
+te4lein
2telem
-tel3eng
-te2ler
-te2leu
+te4lerd
+te4leu
4t3elf.
-te4lim
te2l1in
te2lit
-tel3le
+tel3lau
+tel3lÃĪ
+tel3l2e
tel6lein
-tel3li
tel6li6st
-te2lob
-te3lom
te4lost
te2l1Ãķ
tel3s2k
tel3ta
-telt4r
-t2ema
-te2man
-te2m1ap
-te2mau
-2tem2bo
+tel3th
+tel3t4r
+te3mÃĪ
te2m1ei
-te2m1er
-2temg
-2te2mi
-tem3i2m
-tem3ing
-2teml
-2temn
-2te2mo
-tem1o2r
+te2min
+2temo
+te2m1o2r
3temper
-2tempf
1tempo
-tems2
-te2mu
-te4mun
+te4m1u
t6en.
-ten1a2
-te4nad
-te4n3an
-ten3ar
+tena2b
+te4n3a2d
+te4n3a4g
te4nas
-te4nat
-ten3au
-te2n3ÃĪ4
+te4n3au
+te2nÃĪ
+ten3ÃĪh
+t4enb
ten3da
-t3endal
-tend4an
-4tendap
-2t5endf
+4t3endf
+t6endi
2t1endl
t6endo
-2t5endp
+4t3endp
ten3d4r
te2n1e2b
te2nef
-te2neh
ten3ei
te3n4ei.
-tenei4d
-tene4m
-tenen1
-te4n3end
-te4nene
-te4neng
-te4nens
-4t3energ
-te4n3ern
-tenf4
-t1eng.
-teng2a
-4ten4gag
+4tenerg
+te2net
+4t1eng.
+ten4gag
t3engla
+t4enh
te2ni
-te4nil
-ten1im
te4n3in
-tenk4
-ten3n2
-te2nol
-te2nos
-te3nÃķ
-4t3ensem
-1tenso
-tens2p
-t2enta
+t4enj
+t2enk
+t2enl
+t4enm
+ten3n
+t2eno
+t2ens
+tens2e
+4tensem
+t4enta
t1entb
2tentd
-2t3entl
-2t3entn
-ten6tric
-t1ents
-4t5entw
-2tentz
-te2nu
+t4ente
+4tentn
+ten4t3ri
+4t3entw
+4tentz
t2enz
-ten4z3er
-teo2f
-2t1e2pi
-tept2
-t4er.
-t4era
+ten6zerh
+ten3zw
+t1e2pi
+t6er.
ter3ac
-te2rad
-te1ral
-ter3alg
-te3r4ane
-te2r3ap
-2t1erbs
-2t1erbt
+te1raf
+ter3am
+te3ran.
+te3rand
+ter3as
+4terbs
+4terbt
4t3erde.
-ter3d2s
-te2r1e2b
-te2rec
-t3ereig
-te5rek
-tere2m
-te4rema
-te4r3end
-te4rene
+te2re2b
+te4r3eif
+te2rel
+ter3end
te4reng
-te4r3ent
-teren5th
-terer3k
-terer6ku
-terer3l
-te4r3erp
-te4rers
-te4rerw
+te4rerk
+terer4z
+4t3erfol
t4erfr
+4terfÞl
terg2
ter3ga
-6tergebn
-t6ergem
-t6erges
-t6ergew
-ter3gl
-6tergrei
+6ter6grei
t4ergru
2t1ergu
-2tergÞ
-t6erhall
-t6erhau
-t4erhÃĪu
-t4erhei
-t2erhi
-t2erho
-6terhÃķhu
-t2erhu
+4tergÞ
+t4eri
te3ria
-4terii
-ter3iko
-teri4o
-te2r3it
-teri4ta
+te2rid
+ter3k
4terklÃĪ
-t4erlÃĪ
-t4erli
-ter4lÃķs
+2t3erlÃķ
+1term
termas4
-1termi
-t2ern.
-ter4nar
-t6ernc
+ter4mer
+ter4n3ar
+4t3erneu
t4ero
-te1rob
-ter4obe
-2teros
-t1e2r1Ãķ
-t4erp
-t4erra
+t1erÃķ
3terras
ter4re.
-t4erro
+1terro
t4ers.
-t2erse
+ter3sc
+ter4ser
+terst4
t4erst.
-t6erstad
-ter6stat
-t4erstÃĪ
t4ersti
-t4erstr
t4erstu
-t4erstÞ
-ter3t4a
-ter4trÃĪ
-t4eru2
+tert4a
+tert2o
+teru2
te4r1uf
-te3rung
-t4erv
-4t3erwÃĪh
-ter3z2a
+ter3za
2t1erzb
-t4erzei
-4terzeu
-ter3zw
+t2erzu
te2s
-t2es.
-tesa2k
+tes1ac
te3sÃĪ
-te3sc
-tes3eli
-te3ser
+t1esel
+tes1er
te3si
te3so
te3sp
-tes1pe
-te4sper
te4spr
-2t1essa
-tes3si
-tes2t
+3tesse.
+t2es2t
tes3tÃĪt
-1testb
+te4st3ei
tester4
te6sterg
-te6st5erh
te6sterk
-te3sto
-tes3tra
-t3est3ri
+testes4
1tests
-t1eta
-te4tabl
-2te2tap
+t2et.
te2tat
-teten3
-2t1e2th
-te3tho
4tetl
3teuf
-te1u2n
-2t1eup
-te2va
+te1un
+teu2r3a4
te2vi
-tewa2s
-3tewo
1tex
-2texam
-2t1e2xe
+te1xa
+t1e2xe
2t1e2xi
4texp
-tex4ta
+3text
2t1exz
-tÃĻ2
-2t3f6
+2t1f4
tfÃĪs3
-4t1g2
-tga4s3er
-tga4su
-t3ge
-tge4nen3
-tger2a
-tger2i
-tg4r
+tfi2l
+2t1g2
+tger2
tgro3
+t1h
4th.
-2t1h2a
-3tha.
-3t2hag
-4thak
+2th2a
+3t4ha.
+t2hag
+t3hai
+t2hak
3thal.
-3thalh
-t4hali
-1t2hals
-t2han.
-t3hand
-t3hap
4t3hau
-2t1hÃĪ
-3thÃĪi
-4thÃĪl
-2thb
+2t3hÃĪ
4thc
1th2e
-3t4hea
-2t1heb
-2t1hef
-2t1hei
-the1in
-4theit
+t2he.
+3thea
+2theb
+t2hec
+2t3hei
+t4hein
t2hek
-2themd
-2themm
-t1henn
+t2hem
+t4hene
+t4heni
3theo
-t1herd
-thero1
-2t1herr
-2t1herz
-4t1hess
+2therr
+t2hes
+3these
t2heu
-2thf
-th2i
-3thi.
-thic3k4
-thi3er.
-2t1hil
-2t1him
-2t1hin
-thi3nu
-2t1hir
+1thi.
+thi3er
+t2hik
+2t3hil
+2t3him
+t3hir
2thk
-2th3l
-4th3m2
-thmu2
-2th3n2
-2t1hob
-tho3chr
-t1hof
-2t1hoh
-t1holt
-2tholz
-t2hon
-4thops
-t1hose
-t1hot
-4thote
-2thou
-t1hov
-2thÃķ
+4th3l
+4th3m
+2th3n
+t2ho
+t4ho.
+2t3hoc
+t3hof
+2t3hoh
+t4hol.
+t4holo
+t3hor
+2t3hot
+thou2
+2thov
+2t3hÃķ
2thp
1th2r2
2ths
-2tht2
-t1hu
2thub
-2thuh
-4t3hun
-2thut
-2t1hÞ
+4thun
+2thÞ
2thv
-t4ia
-ti3ac
-ti1ag
-tial2l
-ti3alo
-ti1a2m
+t2hy
+ti2ad
+ti3a2m
+tib4
ti1ce
ti3chr
-3ticket
-t2id.
-2tidee
-ti4d3en4d
-ti3dy
+tiden2
+ti4dend
+t2ie
1tief.
-4tiefel
-1tiefl
tie2fr
-tieg4
-ti2e1i
ti1el
ti2el.
tiel3a
-ti3e2n1
-tie4rei
-tie4reu
-tiermas6
+ti3e4n1
+tie4rec
ti2ern
1tierr
-tie5sse
+2tieß
+ti1et
ti1eu
-ti3fe
+1tif.
tif3f
-ti1f4r
-tifter6k
+ti1fr
+t4ig
ti4gerz
-ti2git
-tih2
tihi4
ti2kam
ti2kar
-tiken2
-ti4kent
-ti3k4ere
-ti3kerl
ti2kin
-ti4klu
-ti2kn
-ti2k1op
-tik1r
ti2kra
ti2krÃĪ
-ti4krei
tiks2
+ti2kÞ
ti2lar
-til3d
+ti2lau
ti2lei
ti2lel
1tilg
-3tilgu
tille4b
-2tillu
-ti2lÃķ
+ti2l3Ãķ
tilt4
ti2lu
ti2ma2g
-tim4man
-tim6ma6te
-timmer4
-tim6merg
-tim4mit
-2timp
-t4ina
-ti3naf
-ti3nak
-ti2n3an
-t1ind
-ti5n2e
-tine1i
-2t1inf
-tin2ga
+t2imi
+tim2ma2
+4t1imp
+t2in.
+ti3na
+t1inb
+4t1ind
+ti3n2e
+t1inf
+tin2g1a
ting3l
-ting3s2
-2t1inh
-3tinis
+ting3s
t1in1it
-t1inka
+2t1inj
tin2k1l
-tin2kn
-tin2kr
-t1inku
-t2inn
-ti2nor
-t1ins
-t3insa
-t2insÃĪ
-4t3inse
-tin4spa
-tin4sum
+t2ins.
+4t1inse
t1int
-3tinte.
-ti3nu
-tin2um
+ti1nu
4t1inv
3tio
-ti2osk
-tioxi3
-1tip.
-ti3p4l
-1tipp
-3tips
+1tip
+3tip.
ti4que.
-1tirad
ti1rh
-ti4ron
-t2isc
-ti6schei
-tisch3l
+t2is
+ti4scha
tisch3w
ti2sei
-ti3sk
-t1isl
-t1iso
ti2sp
-t1isr
-ti3s2th
-ti4s3tic
-ti2su
-2t1iß
-t1it2a
-ti2tal
3ti3te
-3tiu
-tium4s
+tium2
ti2van
+tive3
ti2vel
ti4vene
tiver2
-ti4verh
-ti4verk
ti4verl
ti2v1o
-ti4v3r
+ti2v3r
ti2za
-ti2zir
2t1j
-4t3k4
-2t3l2
-tlan2g
+2t3k4
+2t3l
tl4e
-tlei6der
-t4lep
-tle2ra
+3tlem
+tle2r3a
4t5li
-tlings3
-tli5ni
-tlit1
-t5lÃķ
-4t1m2
+tli3ni
+2t1m2
tmal2
-tmen8schl
-tmen4t5
-tments4
+tmen4t3
tmo4des
-2t3n4
+t3mu
+2t3n2
t5na
tnes4
-tni3v
to4as
to5a4t
-t2oba
-4tobj
+1tob
+2tobj
tob2l
t1obs
-1tobt
to1ch
-2t3ochs
-1tocht
+t3ochs
+3tocht
2tock
-tock5ent
-1t4od
+1tod
3tod.
-tod1er2
-to2dun
-tof6f5ent
-tof4f3er
-2toffi
-2t3ohr
+tode2
+to2d1er
+tode4s1
+to2d1u
toi4r
-tok4
-to3le
-1toler
-tomar4b
-to4mene
-3tomi
-to2min
-1tomo
-to2m1u
-to4mun
+to3la
+tom1e2
+2tomg
1ton
-to2nan
-ton3au
-tond2
-to2n2eh
-toner6ke
-to2nob
-2tony
+to2nau
+to2neh
3too
-to2pad
to2pak
-to2pan
-to3pas
to2pat
-t1ope
-top1hi
1topo
-2to4pt
-t4or.
-tora2g
+2topt
+to1ra
+to2rau
to4rÃĪn
+2torc
t1ord
-t2ordi
-2t3ordn
-t4ore
-to2rei
-to2rel
-to2rem
-to6renna
-1torf
-tor4fan
-t1or3g
-2torga
-6t5orient
-torin4s
+to2r1el
+t1org
+t3orga
tor3int
to2rÃķ
-1torp
-t4ors
1tort
-2t1ort.
-tor3t2a
-t1orth
-4tortn
-4tort4s
-to4ru
-to3rÞ
-to4rÞb
+t1ort.
+to2ru
+t2orw
to3s2
-to4s3ka
-tost2
-to2tÃĪ
+to4sk
+tost4
1toten
to2tho
-3t2ou
-touil2
+tots2
+3t4ou
+touil4
to3un
-to1x
tÃķ2c
1tÃķch
-2tÃķck
-2t1Ãķ2d
-2tÃķ2f
-4t1Ãķk
-1tÃķl
-2tÃķl.
+2tÃķf
+2t1Ãķk
+1tÃķ4l
1tÃķn
-t2Ãķr
t1Ãķ4st
1tÃķt
-2t3p4
+2t3p2
tpf4
-tpi2n
2t1q
t2r4
2tr.
1trac
tra3cha
-tra3chl
-2t3rad.
-2trade
+t3rad.
tra4dem
-1tradi
-t3radie
-tra4fah
tra4far
-2traff
-1t4rag
-tra5gen
+1trag
2trahm
3t4rai
-2t3rake
-t4rakt
-tral3l
+tra4lin
1tram
+2t3rams
3t4ran.
-4trand
-2trang
+2trand
1trank
-t3rann
-5t4rans
-1trapp
-tra4sta
+t1rann
+1trans
+t3rase
+t3rasi
tra4str
2traß
-t1raub
-4traub.
-4trauc
-t4rauf
1traum
2traup
traus2
-1trÃĪc
-2trÃĪd
-1trÃĪg
-1trÃĪne
-2trÃĪng
-2trÃĪuc
-1trÃĪum
+1trÃĪ
+2trÃĪh
+3trÃĪne
+2trÃĪs
+2trÃĪß
+2trÃĪus
+2trÃĪuß
4t5re.
-2trea
-t3reak
-2treb
+tre4ale
tre2br
2trec
t3rech
t4reck
-3treck.
2t3red
1tref
2trefe
-2trefl
+3t4reff
2trefo
2treg
-t3reh
t4rei.
1t4reib
2treif
-2t3reig
+t3reig
2t3reih
-2treim
-2t3rein
+t3rein
2t3reis
-tre7isch.
2treit
t3reiz
-2trek
+2t3rek
2t3rel
t4rem
t4ren.
1trend
-1trenn
t3rent
+1trep
2trepe
-2t3repo
-1trepp
-t3repr
+2trepo
+t4repr
t4rer
t4res.
-1tret
-tre2ta
-t4rete
-tret3r
-tre4tri
-2t3rett
+1t4ret
+tre2t3r
+t5rett
+t4reu
2t3rev
-t4rex
2trez
3t4rÃĐ
2t3rh
-3t4rib
-t4rick
-t4rid2
-1trieb
-trie3fr
-tri4ena
+1trib
+3trieb.
+3triebs
+6trieg
tri2er
-tri4ers
-2trig.
-tri3gl
-t4rik
-tri4ke.
-tri4kes
-1triko
-1tril
+1trigg
1trin
t3rind
2tring
tri3ni
-t3rinn
3trio
t4rip
-2triß
+t3riß
+t4rit
1triu
-2t3riv
tri2x
trizi1
-tro3b4
1troc
4trock.
-tro4kes
-trol4la
-2trom.
-tro4men
+t4roi
+tro2ke
tro2mi
-2tromk
-tro3na
+2t3roo
t4rop
tro1pe
3tropf
-tro5sm
-1trost
-t1rot.
-2trout
-4t3rÃķc
+2troß
+t3rÃķc
2trÃķh
2trÃķm
1trÃķp
-2t3rÃķ4s3s
+2trÃķ4s3s
1trÃķt
-1trub
-2t3ruc
-4truf
+2truf
1trug
2truk
trum2
-t3rumÃĪ
trums1
-t3rund
-1trunk
+2t3rund
+1t4runk
3t4rup
-t3russ
-2t3ruß
-1trut1
+t3ruß
tru2th
trÞ1be
trÞ1bu
@@ -21685,255 +13780,150 @@ t4rÞg
3trÞmm
try1
2ts
-4ts.
-ts3ab
-t3sac
-tsa3che
-t4sachs
+t3s2ac
t2sa2d
-ts1ahn
-t2sall
-t2salt
-t4samp
-t4s1amt
+t2s1ah
+ts1al
+t4s1amt4
t2san
-ts3ane
-tsa2r
-ts3ari
-t2s1a4s
-tsa5ssen
+ts3ar
+ts1as
+tsa3sse
t2sau
-ts2av
t1sÃĪ
t2sÃĪh
-ts1ÃĪn
-ts1ÃĪus
-t2sce
-t4scham
-t6schart
+t2s1ÃĪn
+t4schar
t3sche
t4schef
t3schl
tsch4li
-t3schra
t4schro
-t3schÞ
ts2cor
t2s1e2b
-tse2e
-t2sef
-tse4he.
-ts2eil
-t3seme
-ts1eng
-t3s2ens
+t3seil
+t4seind
+ts1em
+tse2n1
+t2s1eng
+t3sens
t2s1ent
-t2s1ep
t2s1er
t6s5essen
-tse2t
-ts1eta
-t2s1eti
-t2s1e2v
-t2sex
-t3sexi
-ts3he
+t3set
+t4seth
t2s1i2d
-t2s3i2k
-t2sim
tsing4
-t2sini
-ts1ir
-4tsk
-t3skal
-ts4kele
-tski2
-t4s3ko
-tsmas4s
-tsma5sse
-t1so
-ts1off
-t2sop
+ts1ini
+t2s1ir
+t3skala
+ts3kr
+ts1o
tso2r
-ts1orc
-t2s1ori
-ts3ort.
-t3sos
-ts3part
-ts1pas
-ts3pate
-t1sped
-t1s2pek
-ts4pend
+t1spal
+t1span
+ts1par
+ts4pare
+t1spas
+ts2ped
+t1spek
ts2pi
-t2s3pic
-t4spins
ts3ple
ts2pon
ts2por
-ts2put
-ts5s4
-4tst4
-t4stabe
+ts3s2
+tst4
t2staf
-t4stale
-t4s3tanz
-t2stas
-t4s3tat.
-t4s3tÃĪti
-t4stee
+ts2tat
+ts2tau
+ts3tÃĪti
+t4stea
t4s1tep
t4sterm
t4s3terr
ts1tie
-t3s2til
-t3stim
t2s1tis
t2stit
-t4stoch
-t2stoi
-t2stor
-t4strac
-t4strad
-t3s4traf
-t3strec
-t4stren
-ts4tric
-t4strie
-ts2tro2
-ts2tub
-ts2tÞm
+t2ston
+t4s3trad
+t2strÃĪ
+t2s1tri
+ts2tro
+t4strop
+t2s1trÞ
ts1u
-3tsubi
-t2sumz
-ts3un
+1tsub
t1sÞ
-tsÞ3s
-tswa2s
4t1t
tt1ab
tt2ac
-tt3achs
-tt1ad
-tt2ag
-tta6g5ess
-t4t1ah
-tta2ke
-tt2al
-t2tan
-ttan4a
-tt4anke
-t3t2ant
-t4t1ap
+tta6gess
+tt1ak
+t4tals
+tt3ank
+t2tanz
tt1art
-tt3atr
-tt1ÃĪh
t2tÃĪn
tt1ebe
-tt3echs
tt1eif
tt1ein
-t2t1eis
-tte4l1a2
-tte4l3e4b
+tt1eis
+tte2la
+tte4leb
t4te4leg
tte4len
ttel3l
ttel1o
-t2temu
-tte4na
-ttens2
-tten6sem
-t4tentb
-tten3te
-t4tentf
-t4tents
-tten3z
-t2teo
-t3t4ere
+t3ter
+tte4rec
tt2erg
-tte4rik
ttermas7s
-tter3nÃĪ
-tte2ro
-tt2erÃķ
-tt4es
-tte4s3a
-tte4s3ÃĪ
-tte4s1o
-t3tess
-ttest4r
-t4teuf
+tte4sa
+tte4s1ÃĪ
tt2hÃĪu
-tt1hi
-t2t1ho
-t2ti4d
-t2t3igi
-t2tins
-tt2int
-t2tiso
-t4t5la
+t2t3ho
t3to.
-t2torg
t3tos
ttras3s
-t2trou
-tt3rÞ1
-ttschi4
-tts1eh
+t3tro
+tt3rÞ
tt2sen
tts1p
-tt4s3tÃĪt
tt4s3tem
tt4ster
-tt3s2z
+tt4sti
ttu2
-ttu3b
t2tuc
-tt1uf
-t4tunt
+tt2un
t2tu4s
ttÞ2
-tt3z2
-3tua
-tu4ale
tu1alm
-tu1alv
-tu3ant
+tu3an
tub2
tuba3b
1tuc
tu2chi
-tu1cho
-tudie4n3
-3tue
+1tue
tu3en
tu2ere
2tuf
tuf2e
tu3fen
t3u2fer
-3tuff
tuf4fel
-tu2gan
-3tuge
2tuh
-tuh4ler
-tu1ist
+tu2is
t3u2kr
-tul2i
+tul2a
1tum
-tum2b5l
-4t3umf
+t2um.
+t2ume
+2t3umf
2t3umg
2t1umh
2t3umk
-2tuml
-3t2umo
2tump
2t3umr
-4t3umsat
-2t1umsc
tum2si
tum2so
2t3umt
@@ -21942,170 +13932,106 @@ t3umz
1tun.
2t1una
2t1und
-tund2e
-1tune
-tun2en
+t4une
2t3unf
t3unga
+tung6s
2tunif
-2tu2nio
-2tuniv
-2t1unm
-3tunn
-t1u2no
-t3uns
-1tuns.
+2t1u2nio
+1tunn
+1tuns
2t3unt
-2t1unv
-2t1up.
-t1upg
-tu2r1ag
-tu2ran
-turan4l
-tu2ras
-tu2rau
+t1up.
+tu2r1a4g
tu2rÃĪ
tur1c
-tu2r1e2b
+tu2re.
tu2rei
-tur3eis
-tu4rene
tu2r1er
-tu4res
-tu2re2t
-tu2r3e2v
-tur3f4
-tur3g2
-tur1in1
-tur4mun
+tu2res
+tu2r1e2t
+turin1
1turn
-tu2r3o
-tur3s2
+tu2ro
+tur3s
tu4ru
tu2sa
tu4schl
-tu2se
tu2so
-tu3t2a
-tuto5
-tuto3re
+tu3ta
2tÞb
-tÞ3ber.
1tÞch
tÞck2s
1tÞf
-2tÞh
1tÞr.
tÞr1c
1tÞre
1tÞrg
1tÞrs
-1tÞrw
-2tÞrz
-1tÞtc
-1tÞte
+1tÞten
2tÞtz
-4t1v2
-t3vo
-tvoran4
-4t3w4
-t5wa2
+2t3v
+4t3w
+twa2
twÃĪ4
-twegs2
twi4e
-t4wist
1ty
3ty.
-2t1ya
3typ
-ty2p1a
+ty2pa
3tys
-2t1z
-t2za2
+4t1z
+t2za4
tz1ag
-tz3ar
+tz1al
+tz1ar
tz1au
-t2z1ÃĪ
-t3zÃĪh
-tz1ec
-t2z1e2d
-tz1ehr
+tz1ÃĪ
+t3ze.
+t2z1ec
t2z1eie
-t4z1eis
-tze2m
-tz1emi
+t2z1eis
tze4n1
tz2ene
-tzen3ta
-t4zentg
-t4zentl
-t4zents
-tzer6gre
-tz1erw
-tz2er3z
-tz3erzi
-tzes1
-tz1e2t
-tz1i2d
-tzi4m
-tz1imi
-tz1int
-tz1inv
-t2z3om
-t2zop
+tz3ents
+tz1erl
+tz2ers
+t3zes1
+tzes3t
+tz1ind
+t2zor
+tz2Ãķ
tz2th
tz2tin
-tzu2gu
-t2zuni
-tzwan4d3
tz1wÃĪ
tz1wi
-t3zwie
tz1wu
2ua
-u3a2b
-u1a2c
-ua2dan
-uad4r
-u1a2g
+u1a2b
+u3a2c
+uad4
u1ah
u1al.
-u1a2l1a
-u1a2l1ÃĪ
+ua2lau
u1alb
-u1ald
-u3aleb
-u3a4lent
-u3aler2
-ua4lerg
-ual3erk
-u3a2let
+u3alet
u1alf
-u1alg
-u1alh
-u3a2lid
ual3l
ualle2
-u1aln
-ua2l1o2
-u1alp
+u3a2lo
u1alr
u1als
-u1al3t4
+u1al3t
ua2lu
-u1alw
u1alz
-u1am
-uan2a
+u3am
u1ans
u3ar.
uara2b
u1ars
-uar4t3an
-ua3s2a
+ua3sa
ua2th
uat2i
-uat2o
u3au
uau2s
u1ay
@@ -22114,1018 +14040,624 @@ u1ÃĪn
uÃĪs4
u1ÃĪu
2u1b
-u2barb
-ubb4l
-ube2be
-ube2e
-u2b1ehe
-ub1ein
-u2b1e2m
-ube4n1a
-uben3o
-ub2er
-u4b3erde
-ubert4
-ub4es
-ub1eul
-u3bit
+u8becken.
+ub3ein
+u3b4i
+ubi3os.
ub2l
-ub3lÃĪu
ub3lic
-ub3lu
-ub4lut
-u2bob
+u2b3lu
u2bop
-u2boz
+ub3rÃĪ
u2b3rit
-ub4rÞ
ub2san
-ubsau2
-ub6s3che
ub2s1o
-ub2sp
-ubst2
-ub4sz
-ub3t2h
-ubu3s
+ub2spa
+ubus3
+u2bÞb
2uc
uc1c
+u1ce4
+uces3
uch1a
u1cha.
uch1ÃĪ
u1che
-uch1ec
-u2ched
+u2ch1ec
uch1ei
-ucherin8t
ucherma8s
u1chi
-uch3im
+uch1il
uch1in
uch3l
uch3m
uchma6ss
uch3n
-uch1op
u2ch3r
-uch4sel
uch2so
-uch2sp
-uchst2
-uch2ta
-uch3tan
-uch6t5erf
-uch6t5ert
+uch4spr
+uchst4
+uch4tor
+uch2t3r
u1chu
u2chum
uch3Þ
uch1w
u1ci
-uck3elf
uck2er
-ucker8geb
-uck3i
-uck4sti
-uck3t
+uck3erl
u1cl
2u1d
-u3d4a
-uda3d
-ud2e
-ude3i4
-udein7
-udel3se
-uden1
-uden3e
+u3d2a
+uder2e
udert4
udi3en
uditi4
-u3d2ob
u2don
ud3ra
u3dru
-4u1e
-ueb4l
-ue1ch
+2u1e
u2ed
-ue2en4
+ue2en
u2eg
-u2eh
-ue2ke
-u2ela
-ue2lek
+u4ela
+ue2le
ueli4
uel2la
-uel2lÃĪ
-u3eln
ue2mi
uen1
-u3en.
-ue4n3a2
ue2nÃĪ
-u3end
-uene2
-ue2neb
ue2ner
-uen4gag
-uenge2
-uenge4m
-uengene7
-uenge4s
+uenge4
uen2gl
u3e2ni
-uenk4
ue2no
-ue2nu
-uen6zene
+uen2sa
uen2zu
u2ep
-ue2r3a2
+ue2r3a
ue2r1ÃĪ
-uerb2
uer6baut
-uer3d2
uere2
ue2rec
-u5ereinn
-uer3eis
-uer3ela
+ue3reig
u3eremp
-u3e4r3ent
-ue3r4erb
-u3ererf
-ue4rer4g
-uerer4h
-uerer4k
-uerer4m
-ue6rersc
-uerer6sp
-ue6rerst
-uer3esk
-ue2ret
-u3erex
+u3erent
+ue4rerg
uer3g2
-uer4geb
u3erh
-ueri2d
-ue2r1i4m
+u3erinf
u3erin4t
-u3erl.
uerma6s
-u3ern
uer4nan
-uer4nar
-uer4ne
-ue2r3o4
+uer2ne
+uer4ner
+uer3o
uer2Ãķ
-uer3r
-u3errÞ
+u3err
uer3sc
-uerst6
uer3t2
-u3eruh
u3erum
u3erunf
u3erunt
-uer3z2
+u3erur
ue4s
ue5se
ue5sp
ue2ta
ue4tek
-ue2tik
-uety2
-u2ev
-ue2x1
-uf1ab
u3fac
u3fah
+uf1ak
u3fal
-ufall4
-ufa2n
-uf3ane
-u2f3a2r
-ufa2t
+uf3ar
uf1au
-u2f1ÃĪn
u2f1ÃĪ6s
u2f1ÃĪ2ß
u2f1ei
-ufel4s3a
u2f1em
-4ufen
u3fen.
u2fent
-u2ferf
u2f1erh
-u4ferla
u4ferle
-u4ferne
+uf2ern
u2f1eß
-u2f1et
2uff
-uf3fe
uffel2
uff4l
uf2fro
-u2f1id
-u2fim
-u2f1ins
uf3l
u2fob
ufo2r
uf1ori
uf3r
-uf5sÃĪ
-uf3sc
+uf3sÃĪ
uf2spo
-uf4stab
uf4ster
-2uft
-ufta2b
-uft1eb
+uf2t1eb
uf3ten
uft3erd
-uft3er4g
-ufter4l
-uf3ti
-uf4tin
uft3s2
u2fum
2u1g
-ug2abe
u4gabte
-ug1a2d
+ug1af
ug1ak
-u2gana
-u2ganb
ugang4
-u2gani
-u2gans
-u2gant
-ug1ap
-u2g1ar
+u2g1ap
+uga4s
ug1au
ug3d2
-u3ge.
-u2g1ec
-ug1e2i
-u2geig
-u2gein
-uge4lob
-ug1emi
-ugene2
+u2g1ei
ugenma3
ugenmas6
u2g1erf
u2g1erl
-u2gerr
-u2gerv
-uges2
-u3ges.
-u2g1esk
-ug2et
-ugg2
-ug2gl
-ug5g4t
+ug4es
ug3hu
-u2g1i2d
-u2gim
-ug1in
u2g1l
-u4glÃĪ
-u6gleitb
-u6gleitu
-u4glic
-u4glis
-ug3liz
+ug3lad
u4g3lo
+u3g2lÃķ
u4glu
-u4g3n
-u2gob
-ug3oc
-u3gon
-ug1op
-ug1o2r
-u3gos
+u2g3n
+ugo3
+ug1or
u2gÃķ
-u2g3rÃĪ
-u2greg
u4g3reis
-u2gres
-u2g3rie
ug3ro
-ugro3s
-u2grou
+u2grol
+ug4ro3s
ug3rÞs
+ug3sc
+ug3se
+ug3si
ugsma3
ugsmas4
-ug6spe
-ugs4por
-ug3stÃĪ
-ugs1te
-ug4stur
-u2gum
-ugu6ster
+ug1spa
+ug5stÃĪ
u2gÞ
u1h
-uh2a
-2u3he
-uhe3a
-uhe1e2
-2uhi
-2uhl
+uh2au
uh1la
-uh2lar
uh1lÃĪ
-uh4l3ent
-uhl3erb
uh2li
-uhl2Ãķ
-2uhm
uhme4
uhr1a
-uhrei4s
-uh2r3er5
-2uh3ri
+uh2rer
+uh3ri
uh4rin
-uh2r3o
+uhrt4
uh2ru
uh4rÞ
-uhs4
-uh3t2
-u2hu
-2uhÞ
+uh1un
uh1w
2ui
-ui2a
-ui1ch
-ui2che
-u1idd
+ui2c
u1ie
ui1em
u3ig
u4ige
uil4les
u1im
-u3in.
+u1in.
uin3n
+u1is.
u3isch.
u3ischs
-uis2e
uisi4n
ui2st
-ui3sta
-uit3s
u1j
-uji3
uk2a
-uk1ÃĪh
u3kÃĪu
-u1k2e
-uke2n1
+u1ke
u1ki
u1k2l
-ukle1
+ukle1i
u1k4n
-u2k1ob
-uko2m1
-ukom3a
+u3ko
uk2Ãķ
u1k4r
uk2ta
-uk2t1el
-uk2t1er
-uk2tin
-uk4t3o4ri
+uk2t1in
uk2t3r
-ukts4
-uk2tum
u1ku
uku2s
uk2Þ
u1l
+ul1ab3
ul1am
-ulan2e
-ul2ar
-ula2sc
ul1ÃĪm
-ulb4l
-ul4dan
+ulb4
ul2dr
uld2se
2ule
u2l1el
-ul1emb
ule4n
+ul1erf
ul1er2h
-ule4s1t
+ul1erw
+ule2sa
+ule4s3t
ule2t
ul1eta
-2ulf4
+u2lex
+ulf4
ulg4
-2uli
-ul1id
uli2k
ul1ins
-uli1p
ul3ka
ul2kn
ulla2g
-ull1au
ul2lÃĪ
ul3len
-ul3l2i
+ul2les
ulli2n
-ul2lo
ul2lÃķ2
-ull3s2
-ulm2e
-ulni2
ulo2i
-u2l1op
-u2l1or
-ulp1h
-ul2pha
+ul1or
+ul2p1h
ul2sa
ul4sam
-ul2s1ec
-ul2sei
-ul2ser
-ul2sum
-2ult2a
-ul3tan
-ult3ar
-ul2tau
-ulter4m
+uls2t
+2ulta
ul2tri
ult3s
u2lÞ
ul2vr
ulz2w
-2uma.
-u2maa
-u2mab
-u2m1ad
-u2m1a2k
+u2m3a2k
um1all
-um1ang
um1anz
-u2m1ap
-um1ar
-u2marc
-u2marm
-u2mart
-u2matl
-u2matm
-um1aus
+u2m1art
+u2maus
u2maut
u2m1ÃĪh
-1umd2
-u3me.
-u2m1ef
-u2m1ein
-ume2n1e
-um5engel
+1um3d2
+um2en
+ument4s
umer2a
-u2m1erf
+um1erf
um1erg
-u3merk
-u2m1erl
+um1erl
um1erw
-ume4s
+u5mes
1umf
-4umfi
1umg
-um1ind
um1inh
+u2m1ins
um1ir
-umi2t
-um1ite
1umk
1uml
-umm4a
-2umme
+2umm
+umm2a
um4mess
-um3mi
-um1ob
-u3mol
-um3ot
-ump2fa
-ump4fin
+u2mÃķl
umpf4li
um2pho
+um2p3le
1umr
-um4sam
-um4s3an
-1umsat
-um2s1er
+um4san
+3umsat
+um2sau
+um2ser
um2sim
-um4sk
um2s1pe
um4stem
-um2sum
+um2s1u
um3t2
-u2mum
-u2m1u2r
+um2un
+u2m1ur
1umz
un1
2un.
-2una.
+4una.
1unab
-3unabh
-un2a3br
-un2ag
-un2al
+un4al
u3n2am
u2n3an
-u2nap
-u2narb
-2un2as
+4un2as
un3at
unau2s
-un2ÃĪr
-2und.
-un2da
-unda2b
-un2dÃĪn
+1unda
+un4dab
1undd
-2unde
un3de.
-underer6
+un4dei
und3erf
-und3erÃķ
-underten8
-under8tend
-und3erz
un2dex
1undf
2undg
un2did
-un2dim
1undn
-undo2b
-un2dop
un2dor
-2un2d3r
+un2d3r
4unds.
-2undsc
und3sp
un2d1um
undÞ4
1undv
1undz
-u3ne2
-un3eid
+u3ne
+une2b
+une2d
+une2h
+un2ei.
un3ein
-un2emi
-une4n1
+un3eis
unen2t
-une3re
-une3ri
-u4nerk
-u4n3erz.
-un2es2
-unf2
-un3fa
-unft2s
-un2gab
-un2gam
-un2gat
-3ungena
-unger4e
+u4n3erz
+unes2
1unget
1ungew
-1ungl
-un2glu
-un2go
+1unglÞ
+un3gn
un2gr
ung3ri
-ung4s
-ungs3tr
-ungstra8s7
-u3nic
+ung4s1
un2id
un3ide
-4unie
-3u2nif
-uni3k4
+1u2nif
+unik4
un2im
-1unio
-un2ir
-un3iro
+uni2r
+2unis
un3isl
u3n2it
-1u2niv
+3u2niv
2unk
un2k1a2
-un3ker
-un2k1es
-un2ket
+un2kei
un2kne
-un2ko2p
-un2kro
-unk3s2
+unks2
unk4tit
-unk2tr
+unk2t3r
+3unku
unlÃķ2
-un4n1ad
-unn2e
-unne4n
-u2nob
+un2n3a2d
+un3n2e
uno4r
un2os
1unr
uns2
2uns.
unsch5el
+un3se
1unsi
un3sk
-un4ski
un3sp
-uns4t
-unsta4g
unst1r
-2unsy
-2unsz
1unt
un3ta
-un3te
unte4ri
-2unti
+2unth
+2unto
un3tr
unt3s
2untu
-3unty
-2u2nu
-u3nuc
u1nÞ
unvol2
unvoll3
1unw
-2unwÃĪ
-u2ny
2unz
-un3z2a
-unz2e
2uo
u1o2b
u3of
u1op
u1or
u3or.
-uo2r3a
-uor3c
-u3oret
-uo2ris
+u3or3c
u3ors
u1os.
uote2
-u1ox
-u1Ãķ2d
-u1Ãķk
u1pa
-3upd
u1pe2
uper1
-uperer4
up2fa
-upfe2
+upf2e
+upf1i
u1pfl
-u1p2fu
-u3p4i
+u3pi
up4lu
-u3po
-2upp
up2pl
u1pr
-upra3
-u2p3ras
-up4t3a2
-upten1
-up4tene
+upt3a2
upt3erf
upt3erg
-upt3erk
-upt3ers
upt1o
u1q
-4ur.
+2ur.
u1ra
u2rab
u3raba
ura2be
-u2r1akt
-u2ral2t
-u2r1am
-ura4na
-u3rand
-uran6fÃĪn
-ur1ang
+ural2t
+ural4ta
+u2r1a2m
+ur3ame
+u2r1ana
+uran4fa
+uran4fo
+u2r1ang
uran4ge
ur2anh
-uran5s
-ur1anz
-ur3ap
-u2r3ar
-ura4ri
-u3rasc
-ur1a4sp
-ura4str
-ur4a3te
-u2r1att
-ur1au
+u2r1an5s
+u2rar
+ur3a4ren
+u2r3att
+u2r1au
2u1rÃĪ
-ur1ÃĪl
-ur1ÃĪ2m
ur1ÃĪn
ur3b2a
-2urc
urch1
-urchas4
-urcht3e
-ur3d2a
ur3d2i
-ure1e
ur1eff
-ur1eig
u2rele
-ure2n
-ure4na
-u4ren4se
-u4rentn
-u2r1ep
-urer3h
-urer3k
-ur2ert
-u2rerw
-ur1eta
-ur2e3th
-ure3u
+ure4n
+u4r1ep
+ur1erh
+ur1erw
2urf
-ur2f3l
-ur2fro
-urf4spr
urf3t
-ur6gense
-urg3inn
-urg1l
-ur2gla
ur2gri
uri2c
-ur1ide
-uri3en
-u2r1ind
-urin6sek
-urin8stin
-u2ri2so
-2urli
+u2r1im
+ur1ini
+ur3ins
+ur1int
+urk3se
ur4matt
-ur2m1au
-urm2ei
-ur4mern
-urmet1
-ur2mum
-ur2mun
-ur3n2e
-2u1ro
-urob2l
-ur1off
-uroh2
-uros4
-urost2
-2u1rÃķ
-ur3p4
+4u1ro
+u3rol
+u1rÃķ
+ur3p
2urr
ur3re
-ur2rh
-3ursac
ur2san
-ursau4
-ur2s1er
-ur2s1of
-ur2spa
-ur2sun
+ur2sau
+ur2ser
+urst4r
+ur4sw
+urs2ze
urt2
-2urta
-ur4tai
-urt3ein
-ur2tro
-urts2c
-urts1t
u3ru
+ury5
ur2z1a
ur2zÃĪ
-ur2z1ec
-ur2zep
+ur2zec
ur2zi
-ur2z1op
-urzt4
+ur2z1o
ur2z1w
2us
-us3a2b
-usa2gi
-u4s1amb
-u4samt
-u2sang
-us2ann
-us3ark
+u2s1af
+us4ann
us5art
-usa4s
-us1ast
-us3ate
u1sÃĪ
-u2sÃĪh
-u2s1ÃĪs
-u2sce
-u4schab
-u4schak
-u3sche.
-u4schef
-usch5eic
-u4sch3eu
-u3schi
-usch3mÞ
-u3schu
+u6schent
+u5schmu
usch5wer
-u3se.
-u3s2e3b
u2s1ec
-use2ei
u2s1ei
-u4sen4se
-u4sentl
+u3seid
u3sep
-use4rec
-u2s1erl
+use1ra
u2serp
-us1erw
u2s1ese
-u2sex
-u2sid
usi3er.
usi5ers.
u3sig
-usi4kat
-us1inn
+us5is.
us3kl
-u4sko
usmas2
usma5sse
u1so
us3oc
-us1oh
+u3soh
u3sol
-u2sop
-us1orc
+u2s1op
us1ou
u1sÃķ
u1sp
u2spac
us3part
u2s1pas
-u3spec
+u2spat
u3spek
-u2sph
us1pic
u2spo
us2por
u2spu
-usrich7
-us2s3ad
-us2s3eb
usse4g
u4s3sel
-us2se4n
+us2sen
us5sende
us6seni
-us2sep
+ussenma7s
us2ser
us3ser.
-uss3erf
-usser4z
+uss5erfa
+usser6kl
+uss5er6su
+u4sset
us2sez
-u3s2sig
-uss3k
+u3ssig
us2sof
-us2sum
u2stab
-u3stad
+ust3abe
u3stal
+us2tat
us2ten
-us4ter
-ust3erl
+us2ter
+us2th
+ust2in
u3stis
u2s1tor
-u2s3trÃĪ
+u2strÃĪ
u4strit
-us2tum
+u3s4trop
u2s1tur
+u2sty
u1su
-u2sumd
-u2sumg
-u2sumz
-3usus
+us2ur
2uß
u2ß1u
2u1t
-4ut.
u3ta.
-u3taf
-u2t1alt
-ut1a2m
-ut2ans
+ut1alt
+ut3a2m
u2t1ap
u2t1ar
-u2taut
-ut1ÃĪh
-u2tÃĪr
-ut3c
-u3te.
-u4t1e2d
+u2t1ÃĪr
+u3te
+u4t1ed
+ut1e4ge
ut1ei.
ut1eie
-ut1ein
-ut1ela
ute2n1
-uten2a
u2tent
-ute4ral
-ute5r4er
-ute6ring
-uter3k
-ute4ros
-u3t2es
+uter4er
+u4t3er4sa
+ut2es
ut2et
-u2t2ev
-u2t1ex
-utfi2
-ut3hal
-ut3hei
-ut1hel
-u2t1hi
-u2t1ho
+u4tev
+u4t1ex
+utfi4
+ut2he
+u2thi
+u2t3ho
u2thu
-u2t1id
-u4tigel
-uti2vi
utli4n
utmas2
utma5sse
u3to.
+uto4ber
uto3c
-u5to3m
-uto1p
-uto3pa
+u3tom
+ut1opf
u2tops
-utor2a
-u2tord
-uto2re
-uto4rin
-4utou
-u2tÃķl
-4utr
+ut4or
ut3rea
-u2trou
ut3rÞ
-utsau2
-ut2sÃĪu
+ut3s2a
+ut2s1ÃĪ
ut4schl
ut4schm
-ut4scho
ut4schÃķ
-ut3ser
-ut3s2k
+ut3si
ut1s2p
-ut3sta
-ut3sto
-ut3tan
+ut2s3pa
+utt4an
+ut3te
ut3t4l
utt1s2
-utu2b
-u2tum
-utu4n
-u2t1une
utu4re
-utu3ro
utu5ru
-u4tz
-utze2
-ut2zeh
utz3eng
-utz2er
-ut2zet
ut2z1in
-ut2zis
-ut2zÃķ
+ut2zo
ut2z1w
-2u1u4
-uum1
-uum3a2
-uume2
-uungsma5
-uungsmas8
-u1Þ4
+2u1u2
+u1Þ2
u1v4
u2ve.
uve3rÃĪ
@@ -23133,196 +14665,132 @@ u1w
2u1x
ux2e
ux2o
-ux3oe
-uxt4
-u1y
-u2yo
+ux3t
+u1ya
2u1z
-uze2
-u2z1ec
-u2z1ene
-uz2er
-uzo2f
uz3ot
uz1we
-uz3z2
+uz3z4
1Þb
Þb1ÃĪ
2Þbc
2Þbd
Þbe2
-Þbe3le
-Þbe4na
-Þbe3ne
-Þber1
-Þberas4
+Þbe4n3
+Þber3
Þ4bet
Þb3l
-Þb5r
+Þb3r
2Þc
Þ1che
Þch3l
Þch4s1c
-Þcht4e
-Þcke4n
+Þch5t4e
Þck1er
Þck3eri
-Þcker6ke
+Þck4spe
Þ4d3a4
-Þde2l
Þden2g
Þ3d2ens
-Þd3o4
+Þd1o4
ÞdÃķ4
Þd3r
Þd3s2
+Þdsa1
Þd3t4
-Þdu2
-Þdwe4
-Þe2
-Þeb3
-Þ1ei
+Þdwe2
Þ4f1a
-Þ2f1ÃĪ
Þ2f1ei
-Þ2fent
Þfer2
Þ2f1erg
Þf2fl
Þ2f1i
Þf3l
-Þ2fo
-Þf3ten
-Þ2fum
+Þf2to
Þ1g
-Þg2e
-Þge2l1a2
-Þge2lÃĪ
-Þge4lec
Þge6lei6s
-Þge2lo
-Þgen3s
Þ2g3l
Þ2gn
Þg3s
-Þh3a2
+Þh1a
Þ1he
Þ2h1ei
-Þ2h3e4m
-Þ3hem.
Þ2h1eng
-Þ2h1ent
-Þ2h1erf
+Þh1erf
Þ2h1er2k
Þ2h1er2z
-Þ2hex
-Þh1i4
-Þh1lÃĪ
-Þh2lel
-Þhl2er
-Þh2lÃķ
-Þhl4sk
-Þhl4sta
-Þhl4sti
+Þh1i
+Þhl1ac
+Þh1lam
+Þh3l2e
Þh3mo
Þh3ne
-Þh1o2
+Þh1o
Þh3r2e
Þhr3ei.
-Þhre2n1
Þh1ro
Þhr3ta
Þhs2
-Þh3sp
Þh3stu
Þh3t
-Þht2a
+Þh4th
Þht4r
Þ1hu
Þh1w
Þ1k2
+2Þl
Þl1a
Þl2c
-Þ3l2e
-Þ4l3ef
-Þle2r3a2
-Þl2la4
-Þll1ad
+Þ3l4e
+Þlla4
Þll1au
Þl2lei
-Þll2er
+Þl3ler
Þl4leu
-Þl2lic
-Þl2lid
-Þl2li2n
Þl2lo
-Þl2lÃķ
-Þlls2
-Þ2lÃķ
Þ1lu
-Þ2ma
Þ2ment
-Þme2ra
-Þ2m1id
-Þ2m1in
-Þ2m1u
-2Þn
-Þ4n3a
+4Þn
+Þ2n1a
Þn2da
Þn2dr
-Þ2n1erd
-Þnf1
-Þnf3li
+Þnen3
+Þn2f1a
+Þn2f1ei
+Þn2fli
+Þn2fr
Þn2g3l
-Þngs2
-Þnster3
+Þnt2
+Þ1nu
Þn2za
-Þn2z1i
-Þnzu2
-Þn2zun
Þn2zw
Þ1pe
Þpf3l
Þ1pi
Þp2pl
-2Þr
Þr1a
Þ2r1ei
-Þ2r1e2l
-Þr2f1er
Þr2fl
Þr2fr
Þr4g3en4g
-Þrge4ra
-Þrk2e
-Þ3r2o3
-Þrom2
-Þror2
+Þ1r2o3
Þr4ster
-Þrte2l1
Þrt2h
-Þr2z1in
Þr2zÃķ
-Þr2z1w
+Þr2zw
Þs2a
Þ2schl
-Þ3s2e
-Þse1e2
-Þse3l2
-Þse4n
-Þse3r4
+Þ5se
+Þse3h
+Þse3l
Þ1sp
-Þs4s3a
Þs2s1c
Þss2e
Þ4s3sel
-Þs4s3o
+Þs3si
Þs4st
Þs2su
-Þs4t
-Þ2st3a
-Þ4stei
-Þste2n
+Þ2sta
Þ2str
Þ1su
Þ1ß
@@ -23330,137 +14798,80 @@ uz3z2
Þ1ta
Þ2t1al
Þ1te
-Þte3m
-Þte4n
-Þten3s
-Þtent4
-Þten3z2
-Þte2ra
-Þte2r1e
-Þterich6
-Þter3n
-Þ2t1h
Þ1ti
Þt3r
-Þt2se
-Þt2s1t
-Þtte4n
+Þt4s1
Þt2tr
Þ1tu
-Þt3zen
-Þt2zw
Þ1v
Þ1z
-3va.
2v1ab
-vab4r
va1c
-va1f4
-va3g
-vag2a
-va4gh
-va2la
-2valu
-v2an.
-2vanb
+val2s
2vang
-v2ans
2varb
-v1arm
vas2
-2v1ass
-va2s3to
v4at
-va2t1a4
-va4tag
+va2t3a4
va2tei
-va4t3eng
-vates2
va2t3h
-va4tid
-vati3k2
-va4tim
+vatik2
va4t1in
vati8ons.
-va4tord
-va4torg
va2t3r
-vat3s2
+vat3s4
va2t1u
vat3z
2v1au
vÃĪ1
2v1b
-2v1c
-2v1d2
+2v1d
1ve2
-ve3an
ve3ar
-veau3
-ve3b4
+ve3b
ve3c
ve3d
-ve3fa
ve3g
ve3h
-2veig
-v2eil
-2vein
-veit2
+ve4i
+2v1ein
+veit4
veits1
ve3la
-2velan
-vel2ar
ve4l1au
-v1ele
-ve3lei
-ve3l2i
+ve3le
+ve3li
+vel3l
ve3lo
-vel2o1p
ve3ma
-ve3me
-2v1emp
2ve3mu
ve3nal
-ve4nas
ven2c
ve3ne
+venen4d
ve3ni
-ve4nin
ve3nÃķ
-ven5st
-ven4t3ag
-vent4sk
ve3nÞ
-2veo
-ve3of
-ve4pi
+ve3o
ver1
ver3a
ve3rad
-2veral
ve3rand
-ve3r4ane
-vera4s
-ver6bart
-ver3b2l
-ver3d2
+ve3ras
+ver3b2
+ver5d2
vere2
verf4
-ver3g4
+verg4
vergas6
-verga7sse
ve3ri
ve4rin
ver3k
vermas8sen
-vern2
-ver4sep
ver3sta
-vert4
+vert2
ver5te
-ver3u4
-ve3rus
+ver3u
ve3s
2vesc
2vese
@@ -23469,104 +14880,76 @@ ve4s1p
ves4t
ve3ta
vete1
-vete3r
-ve3ti
+ve3to
ve3tr
-ve3t2s
2veÞ
ve3v
-ve3w
+ve3x2
2v1f4
2v1g
2v1h
-vi1an
vi3ar
vi4a3t
-vi2ÃĪ
+vi2c
vi3de
-3vie
-vie2h1a
+vie2h3a
vi2el
-viela2
-viele2
-vi2er
+vi3en
vie4rec
vie2w1
vig2
2vii
-v2il
vi2l1a
-vi2lÃĪ
vi4l1e2h
-vi2lei
-viler4
-vi4lers
vi2l1in
-vi2ma2
+vil3l
+2v1i2m
+vima2
vi4na
-vin3d
-ving3
-vings2
-v1ins
+vin2s
+2v1int
vi3sa
vise4
-vi3s2i
vi3s2o
vi2sp
vis2u
-viv2
-viz2
-vize5
2v1k
-2v1l4
-v3le
-v2lie
+2v1l2
2v1m
-vm2e
-2v1n2
-1vo
+2v1n
2v1ob
-vo2be
-vob4l
-voge2l1
+vo3ga
vo2gu
-vol2a
-vol4la
-voll3ar
+3vol
+vol2la
voll7auf.
-vollen6
-voll5end
-voller6t
+vollen4
+vol6l5end
+voller4
+vol6lerw
+vol2li
2v1op
vo2r1
-vo4r3a
-voran8schl
+vor3a
+vor3e
vor3g
vo3ri
-vo4rie
vo5rig
-vorm2
vormen4
-vor3o
vorÃķ4
-vort4
-vot2a
-voy1
+3voy
2v1p
-vr2
-v1ra
-v2ree
-3v2ri
-2v1s2
-v3sz
+v2r
+2v3ra
+v3re
+v4ree
+2v3ro
+2v1s
+vs2e
+v3s2z
2v1t
-vue3
-vu2enu
vu2et
2vumf
-2vumg
-2vumk
-v1Þ
2v1v
2v1w
2v1z
@@ -23574,67 +14957,44 @@ w2a
1waa
wab2bl
wa3che
-wach8stub
+wach6stu
wach4t4r
-1wack
waffe2
waffel3
1wag
wa5ge
-wage4n
wa2g3n
wa3go
1wah
wahl5ent
wah4ler
-wah2l1i
+wah2li
+wai2b
1wal
-wa2lar
2walb
-wal4d3a
-wal4din
-wal2dr
+wal4da
wa2les
-wa3li
wal4li4n
-wal2m1
-wals2
-walt1a
-wal6tere
-wal6terl
+2walm
+wal2ta
wal2to
-wal4tur
+walt4st
wa3na
-wan2d1a2
-wan2dr
w3anf
-2wang
-wan3g2e
wang4s
1wann
wan6z5en6d
-wan4zer
wa2p
1war2e
ware1i
-wa5ren
-1warn
-war4ni
wart4e
-war2th
-war2za
1was
wa3sa
-was2c
wa4scha
wa3sche
wa3schi
-wa4sch3l
-wa4schw
wa3sh
-wass4e2
-wa3su
-w2ÃĪ
+wass4e
1wÃĪh
1wÃĪl
wÃĪm3
@@ -23642,997 +15002,630 @@ wÃĪm3
1wÃĪs3
wÃĪ5sc
wÃĪ4ss
-wÃĪss4e
-2w3ÃĪu3
2w1b2
wbu2
2w1c
2w1d
we2a
-we2b1a
-webe1i
-we2b3l
-we2bo
-we2b3r
-we2e2
+we2ba
+4webeb
+we2bl
+web3s
+we2e4
weed3
we2fl
1weg
we2g1a
-we4g1ei
-weg5ersc
-we4g3l
+we2g3l
we4gn
-we2g1o2
-we4g3r
+we2g3r
weg1s
-weg3s2a
+weg3sa
1weh
-weh4r3er4
-wei2bl
-weib4r
+we4i
+wei4bl
2weie
weifel6d
-wei4fre
-wei2gr
-wei3k4
+weik4
1weil
-weinsau6
wei3sc
-wei2t1r
+weiss3p
+wei4tr
weit1s
-wei5ze
-welle4
wel6schl
wel6schr
wel2t1
-welt3a2
-welte4
+welt3a4
wel6t5en6d
-wel4th
-welt3i
-welt3r
wem2ma2
-wen3a2
+wen3a4
wen2gl
-we3n2i
-wen2ka
-wen4kla
+we3ni
wen4k3ri
-we2r3a2
-wer5be
-werbe3i
+we2r3a
wer2bl
-werb2s
1werbu
-wer3d2
+werd2
5werdens
1werdu
werer2
wer2fl
-2werg
-wer2ga
-wer6gels
-wer2g3o
-wer2gr
-werin2
-we3rins
-we2ri4o
+wer4gel
+we4r3io
1werk.
-wer4k1a
+wer2ka
1werke
-wer2ki
-wer2k3l
-wer2kn
-wer2k3o
-wer4k3re
+wer2kl
wer2ku
we2rÃķ
wer4sta
-wer2ta
-wer2tÃĪ
-wert3ei
-wer6teig
+wer2t1a
+wer4t3ei
wer6t5erm
-wer2th
-wer4tin
-wer2t1o2
-wer4tre
-wer4t3ri
-wer4tum
-1we3s2e
+wer2to
+1wese
wesen4s3
we2sp
-wes4t
-we4st1a
+wes2t
+we2st1a
we4st3ei
-we5sten.
-we6sten6d
-we5stens
we4steu
we4sti
-we2st1o4
+we2st1o2
+we2stÃķ
we2st3r
we4stu
1wet
-2wets
+wet2s
wett3s
2w1ey
-2w1f
2w1g
-whi2
-w3ho
-w2i
-wicht4s
+2w3h
1wid
wi2e
-2wieb
-1wied
wie3l2
-wie3n2e
+wien2e
wie4st
wik2
-1wild
+1wil
wim2ma
-wim6ment
-wim4m3u
-win2a
+wim4mu
win4d3ec
-win3del
-win6d5erz
-1win2d5r
-4wing
-win2g3r
-win2kl
+win2dr
+win2e
+2wing
win8n7er8sc
-win2no
win4num
-win3s
-wint2
1wi4r
-wire3
-wisch3l
wi3s2e
wi2sp
1wiss
-wiss4z
wi3st
wi3th
-1witz.
1witzl
-wiz2
2w1k
2w1l
2w1m
2wn
-wns2a
-wn3sh
+wn3s
1wo1c
wo2cha
-woch2e4
+woche4
1woh
woh4lei
-woh4na
1wolf
-wolf2s
+wolf4s1
wol4la
wol2lÃĪ
wol4ler
wor3a
-wor3d
-wo4r3i
-worn2
-wort1a
-wor4tel
-wor6terh
+wo2r3i
wor2t3r
-worts2
wo4r3u
-wor3Þ
wot2
1wÃķc
-wÃķl2fo
wÃķrt2h
2w1p
w2r
-w3re
w3ro
2w1s
-ws2e
-w3s2h
w3s2k
-w4s1u
2w1t
wti2
w2u
1wuc
wuch4sc
-wuch4st
-w3u2f
wuls2
-wul3se
-wund4e
-wung3r
-wung5s2
+wun2da
+wun4g3r
wun2s
-wunsch5l
4wur.
wur2fa
-wur2f1o
-wur2fr
-wurs4
1wurst
wus4
-1wu2t1
+1wu4t1
1wÞh
-1wÞrf
-1wÞrst
wÞs4
2w1w
2w1z
x1a
1xa.
2xa2b
-1x2ac
1x2ad
1xae
xa1fl
-1x2a3g2
-2xal
-xal2l
+1x2ag
xa2m
xand4
-1xane
-1xani
-x2an3t2
x2anz
-xa2r
1x2as
xau3
xaus2
-xa2z
-2x1b4
+2x1b
+2xc
x1ce
x1ch
x1cl
4x1d
-xda2
1xe
-3xe.
-2x1e4g
+x1e4g
2xek
xe2l
-3xel.
-x1ele
-xe3lei
x1em
3x2em.
-2xemp
-x2ems
+xemp4
x2en
-3xen.
xen3s2
-3x2er.
+x2er.
x2ere
-2x1erl
-xer2la
-x2ern
xers2
-x2ers.
3xes
-2x1eu
-2x1ex
+2x3eu
2x1f
2x1g
2x1h
+xib4
xi1c
xich2
2xid
-xi2dan
xide2
-xi2dei
-xi2d3em
+xi2d1em
x1i2do
-3x2ie
xie3l
xi3g
-xi2ler
-xili3a
+xil1
+xil2a
xi2lo
-xi2l1u
-xim2
+xi2lu
xin3s2
x2is
-xi2sa
xi2s1e
-xi2sp
-xis5s2
-xi3s2tÃĪ
+xi2s1o2
+xis5s
xi2su
-3xit
-x1i4tu
-xive4
+x1i2tu
x1j
-4x1k2
-xkal2
+2x1k2
4x2l2
x3lÃĪ
x3le
2x1m
2x1n
-2xod
-2xoe4
-x1o2r
-xos2
-2x1Ãķ2
+x1or
4x1p
xpor6ter
-xpor4t3r
x1q
-x1r
+2x1r
2x3s2
4x1t
-xt1a
+x2t1a
x3ta.
-xta2b3
-x3tan
-xt2ant
-x3tas
-x2t1ÃĪ
-x3tÃĪt
-xtblock5
+x3t2as
+xt1ÃĪ
+x2tÃĪn
x2t1e2d
-xt1ein
-x2t1el
+x2t1ei
x2tent
x2t1er2f
-x2t1ev
-xtfi2
-x2t1h
-x2t1id
-xti2la
-x2til2l
-x2t1o4
+x2t3ev
+xtfi4
+x2t1il2l
xtra3b4
x2t3ran
-x2trau
-xt3rec
-xt3s2
-x2t1um
-x2t1un
+xt1s2
+xt1u
+x3t2ur
1xu
xu1a
-xu2n
-2xunt
-xu2s3
-xusa2
-xuss2
+x1u2n
+xu2s
2xv
2x1w
+2xy
3xy.
+3xys
x1z
2y1ab
-1ya2c
-y2ach
-ya1h
+1yac
y1al.
+y1a2m
yan2g
y1ank
-ya1q
-ya3ra
y1ÃĪt
y1b
-ybe2r
-y1c
+y1c2
y2chi
y3chis
ych3n
-y1d
-yd4r
-ydri2
-ydrid3
-ydro3
+y1d4
y1e
-y2ec
-ye2d
y2ef
-y2el2
yen4n
-yera2
y2ere
-yer2n1
-y2e2s
-y4es.
-ye3s2p
+yes2
+y2es.
ye4st
ye2th
y1f2
y1g
ygi2
-ygie3
+ygie5
yg2l
y1h
-y3ho
yhr2
-2y1i4
+y1i4
y1j
y1k2
yke3n
-yk3s
-yl1a2
-yl2a3g
-y1l2ak
-yla4l
-y2lam
-yl3ane
-y1lant
+yk3s2
+y1l
+y2l3a2m
yl4ante
-yl4anti
-yl2as
-ylau2
+yl5b
yl3c
-yle4
-y2le.
-yl1em
-y2l1es
-y2l1et
+y4le.
yli4n
-yl4lo2s
-yl2lÃķ2
-ylo1i2
-yloid3
+yllo2
+yllÃķ2
yloni1
-yl2op
-yl1ora
-ym2a
-ym4an
-ym4ar
-ym4as
-ym4e
+y2l1u
+yma2t
ymp2
ym2pha
-ympi1e
-ynÃĪ4r
-yn2eu
-ynk2
-y2n1o2
-yn2oz
-yn3t2
-yob2
-y2od
-yoga3
+ympi1
+y2n1o
+yno4d
+ynt2
+y1of
yom2
-yon2a
+yon4i
y1ont
-y1o2pe
-y2ost
+y1os
y1ou
-2y1p
-ypa2b3
-ypa2n
-yp2e2
-ype4r3o2
+y1p
+ypa2
+yp3an
+ype2
y2pf
-y2p1i2d
+y3ph
y2p1in
-y2plo
-y3po3
+ypo3
y4p3s
-yp3th
-ypu2
-y2p1um
-y1q
y1r
y3r2e
y3ri
+yri2a
yri1e
-yri3en
-y3ro
-yro4ste
+y3r4o
yrr2
-2y1s
+y1s
ys2an
-ysch4
-ys2e1
-ysein2
-ys1er
+ys2c
+yse1
+y3s2h
y4s3l
ysme3
-ys2o
-ys2pi
-yst2e
-yst2h
-ys2tra
-y4stro
-y3s2ty
-ysu2
+ys2pa
+yst2
+y2s1u2
y3s2z
-y1t
+y1t2
y2te.
y2tes
-yt2h
-ythe1
y3to
-y4t3r
yu2r
-yur2e3
+yure3
y1v
y1w
y1y
y1z2
-yzer2i
-2z1a2b
+za2
+2z3ab
zab3l
-2z1ach
-za1cha
-za1chÃĪ
-zach2s
-2z1a2d
+za3cha
+za3chÃĪ
+2z1ad
2z1af
+za3ge
za3gr
3z2ah
-zah3len
-zah4ner4
-z1ak
-4z3akk
-2z1al
-4z3ald
-3zali
-2z1a2m
-z1a2n
-4z3a4n4a
-2z3anb
+zah4ner
+2z3ak
+za3li
+2z1all
+2z1am
+z1an
za3ne
2z3anf
-2z3angs
+3zani
3z2ank
-zan2ka
-z3anl
-2z3anr
+zan4kl
+2z3anl
+za3no
zanti1
-za4pf
-z1aq
-z1ar
-3zar.
+za3ra
2zarb
+2zarc
za3re
-2zarm
-3z2aro
-z2arr
-zar2t1r
-2z1as
-za3st4
-2z1aß
-z3at
-zat2e
-za2to
+2z1arm
+za3ro
+z1arti
+zar2tr
+2z1arz
+z1as
+zast4
+2z3at3
3zaub
-2z1au2f
-2z3aug
+z1au2f
+z3aug
3zaun
-z3aur
-2z1aut
2z1ÃĪc
-z2ÃĪh
-3zÃĪhn
+3z2ÃĪh
2z1ÃĪm
-z1ÃĪn
-z1ÃĪp
-z1ÃĪr
-2z1ÃĪus
-2zÃĪuß
-4z3b4
-zber2e
+2zÃĪngs
+2z1ÃĪp
+z1ÃĪrg
+z1ÃĪrm
+4z1b4
zbÞ1b
zbÞbe3
2z3c
2z3d2
zdan2
zdÃĪ1
-3ze.
-2zea
zeau3
zeaus4
2z1e2ben
-2z1echo
-ze1e2
-zeeu3
+2zecho
+ze1e
2z1eff
-z1e2ga
zehe4
zehen1
zeh2l
-ze3ho
-zei1f4
zeik4
-zeil2
zei3la
zeile4
2z1ein
-ze3in.
-zeinbus6
-z2e1ind
-zei4ne
-4z3einh
-ze3inse
-ze2i3s2
-3zeit
+zei3s2
+zeist4
zei2t1a
+zeit5end
zei4t3er
-zei2to
zei2tr
zeit3ri
-zek4
-ze2l1a
-zela2d
-zel3a2n
+ze2l1a2
zelau2
-ze2l1ÃĪ
-zel3d4
-4ze2lek
-4zelem
ze2len
ze2l1er
ze2l1in
-2z1e2lit
-zel3la
-zel4lab
-zel4l3ac
-zel4lar
-zel2lÃĪ
+zel3l2a
zel4leh
-zel6lein
-zel6ler6t
-zeller6z
-zelli4n
-zel4lum
-zelm4
-ze2l1o
+zel4li4n
zels2
-zel3sa
zel3sz
-zel2ti
+zel3t2h
+zel3tr
zelu2
-zembe2
2z1emp
5zen.
-ze4n1ac
-ze4nas
-zen3au
+ze4n3ac
ze2nÃĪ
-ze3n2em
-zenen1
-4zenge.
-z4engl
-2zengp
-2zeni
-ze2nid
-zenk2
zen3n
-ze2n3o
-ze4not
-4zen4sem
-zen4ser
-zens2p
-z2entn
-z1ents
-2zentw
-2zentz
-ze2nu
+ze2no
+zens2e
+zen4sem
+zent3s
zen4z3er
-zen2zw
-zeo4r
-3z2er.
-zer3a
-ze1ral
-ze2rat
-z2ere
-ze5rek
-zer2em
-z2erfe
-z3erfÞl
-z2erga
+z2er.
+ze2r3a
+ze2re2b
2z1ergÃĪ
4z3ergeb
-z4erges
-z4ergl
-zer4gon
-4zergu
-3z2erhe
-2z3erhÃķ
-ze3ri
-zerin6te
-z2erko
-3zerl.
-zer4lau
-zer4le.
-4zerleb
-zer4len
+z3erhal
+2zerhÃķ
+zerin4t
+zerk2
+z2erl.
2zerlÃķ
-3z2ern
-zer4nan
-zer4n3e4b
-zer4nei
-2z1erÃķ
-zer2Ãķf
+z2ern
+zer4neb
+zer4n3ei
2z1erq
-4z3erreg
-z2ers.
-2z1er4sa
-zerta2
+zers2
+2z1ersa
+4z3erste
+4z3erstr
+3zert
+zert1a4
zer4t3ag
zert4an
-zer4tau
zer6tere
zer6terl
zer4tin
-zer2to
-6z5ertrag
zer6trau
-z1erwe
4zerwei
-z1erz
-zer2ze
+2z1erz
+3z2erza
ze2s
-3z2es.
-ze3sc
-zes1e
-zes3er
-ze4s3po
-zes2sa
+zes2c
+ze3sku
zessen4
zes6s5end
-zes4ser4
zes2sp
-ze3sta
-zes2th
-ze3str
+ze3stau
ze2ß1
-z2et.
-2zeta
-2ze2th
ze2tr
2zetts
-zeu4gem
-zeu2g3r
-2z1eul
-ze1ur
-2z1e2x1
-2z3f4
+2z1ex
+2z1f4
zfÃĪs3
-zfeue2
-2z3g4
-zgang5
+2z1g2
zger2a
-zger2s1
-2z1h2
+2z1h
z2hen
zhir3
3zi.
-zial5l
zi3alo
-zi2ar
-zich2o
+zi3ar
zi2dei
zid3r
-zie4ler
-zie2l1i
+zie4lei
zi1erh
-zi1es
-zi3ess
+zi1es.
3zig
-3z2il
zil2e
-z2imm
-2zimp
+zil3l
+2z1imp
zim2t3
-2z1ind
zin2e
zin3ei
+zin4er
2z1inf
z1inh
-zi4n3in
zin1it
-2z1inj
-zin4na
-zin4o
zin2sa
zin4ser
4zinsuf
+z1int
+z1inv
zi2o3
+zi3op
zirk2
-zirk6s
-z1iso
-zi2sp
-zisse4
+zirk6s1
zis4t
zistras6
zi3s2z
-zite4
-zithe2
+zit2h
zi2t1o2
-zit2u
ziv2
2z1j
-4z1k4
+2z1k4
2z1l2
-z3ly
-2z3m2
-zmas6sen
-zme2e
+2z1m2
2z3n2
-z3oas
2z1ob
2z1of
zo2gl
-zog4s
2z1oh
+3zol
zolla2
-zol3len
-zoller4
+zol3le
zol2li2
-zonal2
-zon3au
-zon5s4
-zon4t3er
+zol3lu
+zon4ter
zo2o
2z1ope
-2z1o2r
-zo3re
-3z2orn
+z1or
+zo2ri
zor4ne
+zo3se
2z1osz
-2z1ou
-2z1o2z
2zÃķ2f
2z1Ãķk
z1Ãķl
-2zÃķl.
-3z2Ãķll
-2zÃķls
2zÃķn
2z3p4
2z1q
2z3r2
-2z1s2
+4z1s2
z3sa
-zsau2
z3sh
z3sk
-zspor2
-4zst
z3str
z3sz
2z1t
-zta2n
-zt3ane
z2t1au
-ztein1
-zt3eins
-zt2el
-zte3ma
-z2t1ent
-z2t1erz
-z3tes
+z4tehe
zte3str
-zt2et
-zt1he
-z3them
z3t2her
-zt1hi
zt3ho
-z3thr
-z3thy
+zt1ins
zt3rec
-zt3ric
-zt3s
+zt3s2
zu3a
-zu1ÃĪ2
-zub4
-zubus2
-3zuc
-zuch2e
-zucht3r
+zu3b4
+3zu4c
zud4
zudi4
zu2el
-zu3e2r1
-zue2t
zu3f4
-zug2em
+zu2g1ar
zu4gent
-zug2i
zu3gl
-zu4gla
-zu4glÃķ
-zu2go
zug4ste
+zug1un
2z1uhr
-zu3hu
-zu1i2
+zuh2u
+zu1i
zu3k
-zul2
2z1um.
-zum2a
-2z1umb
zumen2
2zumf
2zumg
-zum2i
-2zumk
2zuml
2zumr
2z1ums
-zum2u
-2zunab
zun2e
-2z1unem
-4zunget
-2zungl
-z1uni
-2zu2nio
-2zuniv
-2zunr
-2z1uns
2zunt
-zuo2
zup2fi
-zu3pl
zu3r2a
-2z1urk
+z1urk
2z1url
-2z1urn
2z1urs
2z1urt
zu3s2
-zusch4
-zu3t2
-zut4r
-zut4u
-zut3z
+zu3t2a
zuz2
-2zÞ4b
-3zÞc
+2zÞb
zÞr1c
2z1v
zw2
z1wac
2zwag
-4zwah
-4zwap
+2zwah
+zwan2d1
+z2wang
z1war
-2zwa2s
-2zwÃĪs
-2z1wed
+2zwas
+4zwÃĪl
2zweg
2zweh
z2weig
-2zweil
-zweiter6
+zwei3s
2z1wel
2z1wen
2z1wer
+z2werg
2z1wes
-z2wic
-zwi4e
-3zwing
-2zwirt
-z2wisc
-2zwiss
+2zwet
+2zwir
z2wit
2z1wo
z1wÃķr
z1wur
2z1wÞ
-zy1an.
-zy2le
2z1z
-z3z2a
-zza3b4
-z4z3al
-zz4at
+z3z4a
zze3s
-z2z1id
-z2z1in1
-zz2Ãķ
-zzug4s} \ No newline at end of file
+z3z2o
+zz2Ãķ} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-fr.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-fr.pat
index 7aee5604cc1..540785c6e1f 100644
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-fr.pat
+++ b/Master/texmf-dist/tex/context/patterns/mkii/lang-fr.pat
@@ -18,14 +18,12 @@ a1ÃĻ2dre
.ae3s4ch
'ae3s4ch
1alcool
-'2alcool
a2l1algi
.amino1a2c
'amino1a2c
.ana3s4tr
'ana3s4tr
1a2nesthÃĐsi
-'2a2nesthÃĐsi
.anti1a2
'anti1a2
.anti1e2
@@ -456,7 +454,6 @@ uevil4l
uvil4l
xil3l
1informat
-'2informat
.in1a2
'in1a2
.in2a3nit
@@ -728,7 +725,6 @@ n1x
.Ãī4
o2b3long
1octet
-'2octet
o1d2l
o1ÃĻ2dre
o1ioni
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-la.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-la.pat
index 40cec82b6f8..e6cabb9dcc2 100644
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-la.pat
+++ b/Master/texmf-dist/tex/context/patterns/mkii/lang-la.pat
@@ -39,7 +39,6 @@ o1iu
uo3u
1b
2bb
-2bc
2bd
b2l
2bm
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-th.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-th.pat
index c1d20cf6437..5b0ad206ba0 100644
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-th.pat
+++ b/Master/texmf-dist/tex/context/patterns/mkii/lang-th.pat
@@ -5,7 +5,6 @@
% used: āļ āļ‚ āļƒ āļ„ āļ… āļ† āļ‡ āļˆ āļ‰ āļŠ āļ‹ āļŒ āļ āļŽ āļ āļ āļ‘ āļ’ āļ“ āļ” āļ• āļ– āļ— āļ˜ āļ™ āļš āļ› āļœ āļ āļž āļŸ āļ  āļĄ āļĒ āļĢ āļĪ āļĨ āļĶ āļ§ āļĻ āļĐ āļŠ āļŦ āļŽ āļ­ āļŪ āļ° āļą āļē āļģ āļī āļĩ āļķ āļ· āļļ āļđ āļš āđ€ āđ āđ‚ āđƒ āđ„ āđ… āđ‡ āđˆ āđ‰ āđŠ āđ‹ āđŒ āđ āđŽ
\patterns{
-.āļāļąāļ™3
.āļŠāļĩ5āļ§āļą
.āļ—āļąāļĻāļ™āļđ5
.āļ—āļĩāđˆ3
@@ -67,6 +66,7 @@
āļ1āļŸ
āļ1āļĄ
āļ4āļĄāļĄ
+āļāļĄ5āļĨāļē
āļ4āļĄāļŠ
āļ4āļĄāđ€
āļāļĒ5āļĄāļļ
@@ -77,12 +77,12 @@
1āļ4āļĢāļĢ
āļāļĢ5āļĢāļē
āļāļĢ5āļĨāļē
-āļāļĢ5āļ§āļĢ
āļ5āļĢāļēāļ„
āļ5āļĢāļīāļ™āļ—
āļ4āļĢāļđ
āļāļĢ5āđ„āļŸ
āļāļĨ5āļ™āļ„
+āļāļĨ5āļšāļī
āļāļĨ5āļĄāļŦ
āļ2āļ§
āļ5āļ§āļąāļ•
@@ -108,7 +108,6 @@
āļāļē5āļ™āđ‰
āļāļē5āļšāļ­
āļāļē5āļāļē
-āļāļē5āļĢāļ­
āļāļē5āļĢāđˆ
āļāļģ5āļ”āđ‰
āļāļģ5āļ—āļ­
@@ -157,9 +156,9 @@
āļ‚āđˆ5āļŦāļ‡
āļ‚āđ‰āļēāļ§3
āļ„1āļ„
-āļ„1āļŠ
āļ„āļŠ5āļŠāļĩ
-āļ„4āļŠāđ€
+āļ„āļŠ5āđ€āļŠ
+āļ„āļŠ5āđ€āļĄ
āļ„4āļ“āļī
āļ„4āļ—āļĢ
āļ„āļ—5āļĢāļĩ
@@ -176,6 +175,7 @@
āļ„āļĢ5āļ™āļ­
āļ„āļĢ5āļ™āļĩ
āļ„āļĢ5āļžāļ™
+āļ„āļĢ5āļŸāļī
āļ„āļĢ5āļĄāđ€
āļ„āļĢ5āļĢāđ‰
āļ„āļĢ5āļĨāļī
@@ -206,6 +206,7 @@
āļ„āļģ5āļ”āļĩ
āļ„āļģ5āđ‚āļ­
āļ„āļģ5āđ„āļ
+āļ„āļĩ5āļĢāļĩ
1āļ„āļļ
āļ„āļļ5āļ“āļđ
āļ„āļļ5āļĨāļĩ
@@ -230,7 +231,6 @@
āļ‡1āļ„
āļ‡4āļ„āļˆ
āļ‡4āļ„āļŠ
-āļ‡5āļ„āļŠāļēāļ•āļī
āļ‡4āļ„āļ
āļ‡4āļ„āļ˜
āļ‡4āļ„āļš
@@ -290,15 +290,14 @@
āļˆāļ”5āļˆāđˆ
āļˆāļ•5āļˆāļģ
āļˆāļ•5āļĄāļđ
-āļˆāļ•5āļĢāļī
āļˆāļ›4āļ
-āļˆāļŸ5āļŸāļĢ
āļˆāļĄāļš5āļž
3āļˆāļĢāļī
āļˆāļ­5āļ‡āļ­
1āļˆāļą
1āļˆāļē
āļˆāļē5āļĄāļĢ
+āļˆāļē5āļĄāļĩ
āļˆāļē5āļĢāļķ
āļˆāļģ5āļ—āļ§
āļˆāļģ5āļ­āļ§
@@ -308,7 +307,6 @@
āļˆāļĩ5āļ”āļĩ
āļˆāļļ5āļ‘āļē
āļˆāļļ5āļŠāļĄ
-āļˆāļđ5āļ›āļī
āļˆ1āđ€
āļ‰2
āļ‰āļ5āļ‰āļ§
@@ -323,10 +321,8 @@
āļŠ1āļŒ
āļŠ4āļŒāļ
āļŠ4āļŒāļ†
-āļŠāļ”5āļŠāđ‰
āļŠ5āļ™āļĩāļ
4āļŠāļ™āđŒ
-āļŠ1āļš
āļŠāļŸ5āļĢāļ­
āļŠāļŸ5āđ‚āļĢ
āļŠāļĢ5āļāļĨ
@@ -335,7 +331,6 @@
āļŠāļĢ5āļŦāļĨ
āļŠāļĢ5āļŦāļķ
āļŠāļĢ5āļ­āļļ
-āļŠ3āļĢāļē
āļŠāļ§4āđ‚
āļŠāļ­āļ‡4
1āļŠāļą
@@ -354,18 +349,16 @@
āļŠāļĩ5āļœāđ‰
āļŠāļĩ5āļŸāļ­
āļŠāļĩ5āļĢāļ“
-1āļŠāļĩāļ§
+3āļŠāļĩāļ§
āļŠāļĩ5āļ§āļ™
āļŠāļļ5āļ•āļī
āļŠāļļ5āļĨāļ”
āļŠāļđ5āļ›āļ
āļŠāļđ5āļ›āļ–
āļŠāļđ5āļ›āđ‚
-āļŠ1āđ€
āļŠāđˆ5āļ­āļī
āļŠāđ‰5āļŠāļ­
āļŠāđ‰5āđ„āļ”
-āļ‹āļ5āļ‹āļ­
āļ‹āļ™5āļ—āļĢ
āļ‹5āļĢāļēāļĄ
āļ‹āļĨ5āļŸāļĩ
@@ -375,14 +368,15 @@
āļ‹āļē5āļĄāļđ
1āļ‹āļī
āļ‹āļī5āļ•āļĢ
+āļ‹āļī5āļŸāļī
āļ‹āļī5āđāļĨ
āļ‹āļĩ5āļ”āļĩ
āļ‹āļĩ5āļ™āļĩ
āļ‹āļĩ5āļĢāļē
āļ‹āļĩ5āļĢāļī
+āļ‹āļĩ5āļĢāļĩ
āļ‹āļĩ5āļĢāđ‡
āļ‹āļĩ5āļĨāļĩ
-3āļ‹āļķāļĄ
āļ‹āļđ5āļ‹āļđ
āļ‹āļđ5āļšāļī
āļ‹āļđ5āļĢāļī
@@ -409,7 +403,6 @@
āļ1āļ
āļāļ›āļĢāļ°4
1āļāļē
-āļāļē5āļāđˆ
āļāļē4āļ•
āļāđˆ5āļšāđ‰
āļ1āļ
@@ -448,11 +441,11 @@
āļ“āļĒ5āļĢāļą
āļ“1āļĢ
āļ“4āļ§āļē
+āļ“āļŠāļĄ4
āļ“āļŦ5āļžāļĨ
āļ“āļŦ5āļ āļđ
1āļ“āļē
āļ“āļē5āļ›āļĩ
-āļ“āļē5āļ§āļĢ
1āļ“āļī
1āļ“āļĩ
āļ“āļĩ5āļŠāļ‡
@@ -467,6 +460,8 @@
āļ”1āļ„
āļ”āļ‡4āļ„
āļ”āļ‡5āļ­āļ­
+āļ”1āļŠ
+āļ”4āļŠāļ™
āļ”5āļŠāļ™āļ°
āļ”1āļ”
āļ”4āļ”āđ€
@@ -474,16 +469,13 @@
āļ”1āļ—
āļ”1āļ›
āļ”1āļž
-āļ”āļĄ5āļ„āļ•
āļ”āļĢ5āļĨāļī
-āļ”4āļĢāļđ
āļ”3āļĢāđ‰
-4āļ”āļĢāđŒ
āļ”1āļŠ
āļ”4āļŠāļ
-āļ”āļŠ4āđ€
āļ”1āļŦ
1āļ”āļą
+āļ”āļąāļŠ5āļ•
1āļ”āļē
āļ”āļē5āļĄāļļ
āļ”āļē5āļĢāļ
@@ -494,7 +486,6 @@
āļ”āļī4āļš
āļ”āļī5āļ§āļĢ
āļ”āļī5āļĻāļ§
-4āļ”āļīāđŒ
āļ”āļĩ5āļ”āļĩ
3āļ”āļĩāļ™
āļ”āļĩ5āļāđˆ
@@ -513,7 +504,6 @@
āļ”1āđ‚
āļ”āđ‰5āļĒāļī
2āļ”āđŒ
-āļ”āđŒ5āļ›āļĢ
āļ”āđŒ5āļŠāļ›
2āļ•āļ
āļ•āļ5āļĢāđ‰
@@ -522,7 +512,6 @@
2āļ•1āļ•
āļ•4āļ•āļ 
āļ•4āļ•āļŠ
-āļ•āļ•5āļŠāļ”
āļ•4āļ•āđ‚
āļ•5āļ–āļāļ°
āļ•āļ–5āļāļī
@@ -534,6 +523,7 @@
2āļ•āļ™
āļ•āļ™5āļŸāļ­
āļ•āļ™5āļ§āļĢ
+āļ•4āļ™āļēāļ˜
2āļ•1āļš
āļ•4āļšāļŠ
āļ•āļš5āļŠāļ§
@@ -552,15 +542,16 @@
āļ•āļĢ5āļžāļĨ
āļ•āļĢ5āļĢāļ‡
āļ•āļĢ5āļĨāļ”
-4āļ•āļĢāļĻ
āļ•5āļĢāļīāļĒāļē
āļ•4āļĢāļđ
2āļ•āļĢāđŒ
āļ•āļĪ5āļ•āļĩ
āļ•āļĨ5āļĢāļą
+āļ•1āļŠ
+āļ•4āļŠāļ„
āļ•āļŠ5āļ§āļē
āļ•āļŠ4āđ€
-āļ•āļŠ5āđ€āļ‹
+āļ•4āļŠāđ
āļ•āļŠ5āđāļ•
āļ•āļ­5āļĄāđˆ
āļ•āļ°5āđƒāļ 
@@ -577,15 +568,15 @@
āļ•āļē5āļĄāļ­
āļ•āļē5āļĄāļ°
āļ•āļē5āļŽāļĩ
-1āļ•āļīāļ.
+3āļ•āļīāļ.
āļ•āļī5āļˆāļđ
āļ•āļī5āļŠāđˆ
-āļ•āļī5āļ‹āļ­
āļ•āļī5āļ—āļī
āļ•āļī5āļ™āļĢ
āļ•āļī5āļšāļ­
-āļ•āļī3āļĄ
-āļ•āļī5āļĒāļ 
+āļ•āļī5āļĄāļĻ
+āļ•āļī5āļĄāļŠ
+āļ•āļī5āļĄāļ­
āļ•āļī5āļĒāļĄ
4āļ•āļīāđŒ
āļ•āļĩ5āļ‚āļĨ
@@ -652,7 +643,6 @@
āļ—5āļ˜āļīāļĢ
āļ—5āļ˜āļīāļĪ
āļ—5āļ˜āļīāļĻ
-āļ—5āļ˜āļīāļŠ
āļ—5āļ˜āļīāđ‚
āļ—āļ˜5āđ€āļˆ
āļ—āļž5āļ˜āļī
@@ -662,12 +652,12 @@
āļ—5āļĒāļēāļ™
āļ—āļĢ5āļ„āļ•
āļ—āļĢ5āļ„āļĢ
+āļ—āļĢ5āļŠāļī
āļ—āļĢ5āļ˜āļ™
3āļ—āļĢāļĢ
āļ—āļĢ5āļŠāđ‚
āļ—āļĢ5āļŦāļ§
āļ—āļĢ5āļŦāļķ
-3āļ—āļĢāļą
1āļ—āļĢāļē
āļ—5āļĢāļēāļ
4āļ—5āļĢāļēāļŦ
@@ -677,6 +667,7 @@
āļ—āļĻ5āļ—āļī
āļ—āļĻ5āļ§āļĢ
āļ—āļŠāļ™5āļ—
+āļ—āļŠ5āđ‚āļ
āļ—āļŦ5āļ§āļą
āļ—āļŦ5āļŽāļī
1āļ—āļą
@@ -684,7 +675,6 @@
āļ—āļē5āļāļī
āļ—āļē5āļ’āļī
āļ—āļē5āļ™āļ­
-āļ—āļē5āļĄāļ•
āļ—āļē5āļĄāļĢ
āļ—āļē5āļĢāļž
āļ—āļģ5āļ‚āļ§
@@ -697,26 +687,24 @@
āļ—āļī5āļžāļē
āļ—āļī5āļ§āļ‡
āļ—āļĩ5āļ™āļ§
-āļ—āļĩ5āļ™āļ­
āļ—āļĩ5āļ™āļĩ
āļ—āļĩ5āļĢāļē
āļ—āļļ5āļ„āļ•
-āļ—āļļ5āļ•āļī
āļ—āļļ5āļĨāļą
āļ—āļļ5āļĻāļĩ
1āļ—āļđ
āļ—āļđ5āļ™āđˆ
āļ—1āđ€
-2āļ—āđŒ
āļ—āđŒ5āļ”āļ­
1āļ˜āļĢ
4āļ˜āļĢāļŠ
4āļ˜āļĢāļą
1āļ˜āļē
-āļ˜āļē5āļĢāļ“āļē
+āļ˜āļē1āļĢāļ“
āļ˜āļī5āļĪāļ—
āļ˜āļī5āļĻāļĩ
āļ˜āļī5āļŠāļĄ
+āļ˜āļĩ5āļĢāļĩ
āļ˜āļļ5āļ”āļ‡
āļ˜āļļ5āļĨāļĩ
āļ˜āļđ5āļ›āļ™
@@ -736,6 +724,7 @@
āļ™4āļŠāļ
āļ™1āļ‹
āļ™1āļ”
+āļ™4āļ”āļĢ
āļ™1āļ•
āļ™āļ•5āļāļ§
āļ™5āļ•āļāļ°
@@ -761,6 +750,8 @@
āļ™āļ—5āļœāļĨ
āļ™āļ—4āļĒ
āļ™5āļ—āļĢāļ‡
+āļ™5āļ—āļĢāļĨ
+āļ™5āļ—āļĢāļą
āļ™5āļ—āļĢāļļ
āļ™āļ—5āļĪāļ
āļ™5āļ—āļĨāļē
@@ -802,9 +793,10 @@
āļ™1āļĻ
āļ™āļĐ5āļāļĢ
āļ™1āļŠ
-āļ™āļŠ5āļŸāļ­
+āļ™4āļŠāļ‹
+āļ™4āļŠāļŠ
āļ™āļŠ5āđāļ”
-āļ™āļŠ5āđāļ•
+āļ™4āļŠāđ‚
āļ™1āļŦ
āļ™āļ­5āļāļ°
3āļ™āļ­āļ™
@@ -835,6 +827,8 @@
āļ™āļī5āļŠāļ–
āļ™āļī5āļŠāļĩ
āļ™āļī5āđāļ”
+āļ™āļĩ5āļĄāļĩ
+āļ™āļĩ5āļĄāļđ
1āļ™āļļ
āļ™āļļ5āļžāļĒ
1āļ™āļđ
@@ -855,7 +849,7 @@
āļš4āļ„āļ—
āļšāļ„5āļ—āļĩ
āļš4āļ„āđ‚
-1āļšāļ”āļĩ.
+1āļšāļ”āļĩ
āļš1āļ—
āļšāļš5āļ‰āļš
āļšāļš5āļāļķ
@@ -863,7 +857,6 @@
āļš1āļ›
āļš1āļž
āļšāļĢ5āļĄāļĩ
-āļš5āļĢāļąāļ”
āļš1āļŠ
āļš4āļŠāļš
āļšāļŠ4āđ€
@@ -883,9 +876,7 @@
āļšāļē5āļĢāļ™
āļšāļē5āļĢāļ­
āļšāļē5āļŠāļĄ
-āļšāļī5āļāđ‰
āļšāļī5āļŠāļ­
-3āļšāļīāļ™
āļšāļĩ5āļ„āļī
āļšāļĩ5āļĢāđˆ
1āļšāļļ
@@ -909,6 +900,7 @@
āļ›āļ5āļžāļĩ
āļ›āļ•5āļ–āļ
āļ›āļ•5āļžāļĨ
+āļ›4āļ—āļē
āļ›1āļ›
āļ›4āļ›āđ€
āļ›āļĄ5āļ”āđ‰
@@ -920,10 +912,8 @@
āļ›āļĢ5āļœāļą
āļ›āļĢ5āļĐāļ“
1āļ›āļĢāļ°
-āļ›5āļĢāļīāļ„
āļ›āļĢ5āđāļ
āļ›āļĢ5āđāļ—
-āļ›āļĢ5āđ„āļš
āļ›āļĢ5āđ„āļŸ
āļ›āļĨ5āļāļ§
āļ›4āļ§āļē
@@ -942,6 +932,7 @@
āļ›āļī5āļĒāļ­
āļ›āļī5āļŦāļ
āļ›āļĩ5āļŠāļĩ
+āļ›āļĩ5āļĄāļ°
āļ›āļĩ5āļŽāļ
āļ›āļĩāđˆ3
āļ›āļļ5āļ„āļĨ
@@ -964,11 +955,12 @@
āļœāļĩ5āļŦāđˆ
āļœāđ‰āļē3
3āļāļ­āļĒ
+āļāļĩ5āļĄāļ°
āļāđˆ5āļāļą
3āļžāļˆāļ™
āļžāļˆ5āļ™āļĩ
āļžāļŠ5āļ‰āļĨ
-āļž3āļ•āļī
+āļžāļŠ5āļĢāļē
āļžāļ—5āļĢāļī
āļžāļ—āļąāļ4
āļžāļ™5āļ—āļ°
@@ -1016,14 +1008,8 @@
āļžāđ‰5āļ—āđ‰
2āļžāđŒ
āļžāđŒ5āļ”āļĩ
-āļŸāļ‹5āļ•āļī
-āļŸāļ‹5āļ—āļī
-āļŸāļĢ5āļ•āļī
-āļŸāļŠ5āļ•āļī
-āļŸāļŠ5āļ—āļī
1āļŸāļą
1āļŸāļē
-1āļŸāļī
āļŸāļī4āļĨāļē
āļŸāļĩ5āļŸāđˆ
āļŸāļđ5āļŸāđˆ
@@ -1044,7 +1030,6 @@
āļ āļī5āļĄāļŦ
āļ āļī3āļĢ
āļ āļī5āļŠāļĄ
-āļ āļĩ5āļĐāļĄ
āļ āļļ5āļŠāļ‡
1āļ āļđ
āļ āļđ5āļāļē
@@ -1054,7 +1039,9 @@
āļĄ4āļāļĐ
āļĄ1āļ‚
āļĄ4āļ‚āļĨ
-āļĄ3āļ„āļĢ
+āļĄ1āļ„
+āļĄ4āļ„āļ„
+āļĄ4āļ„āļ­
āļĄāļ„5āļ­āļī
1āļĄāļ‡āļ„āļĨ
āļĄāļ‡5āļŸāļ­
@@ -1068,7 +1055,6 @@
āļĄāļ“5āļžāļĢ
āļĄāļ“5āđ€āļ‘
āļĄāļ“5āđ€āļž
-āļĄāļ”5āļŠāļĄ
āļĄāļ”5āļĒāļ­
āļĄāļ”5āļĨāļđ
āļĄ1āļ•
@@ -1084,7 +1070,6 @@
āļĄāļš4āļž
āļĄ1āļ›
āļĄāļ›4āļŠ
-āļĄāļ›4āļ—
āļĄāļ›5āļĪāļ”
āļĄāļ›5āļĪāđ…
āļĄ4āļ›āđŒ
@@ -1099,17 +1084,17 @@
āļĄāļĒ5āļĢāļē
3āļĄāļĢāļĢ
āļĄ3āļĢāļą
-āļĄ1āļĢāļī
+āļĄ3āļĢāļī
āļĄāļĪ5āļ„āļī
āļĄāļĪ5āđ€āļ„
āļĄāļĨ5āļ—āļī
-āļĄ3āļĨāļē
āļĄ3āļĨāļī
āļĄ3āļĨāđ‰
āļĄ1āļ§
āļĄāļ§5āļĄāļ­
āļĄ4āļ§āļĨ
āļĄ1āļŠ
+āļĄāļŠ4āđ€
āļĄāļŦ5āļāļĢ
āļĄ3āļŦāļ™
āļĄāļŦ5āļ āļē
@@ -1130,9 +1115,9 @@
1āļĄāļą
āļĄ4āļąāđˆ
1āļĄāļē
+āļĄāļē4āļ
āļĄāļē5āļ”āļĢ
āļĄāļē5āļ™āļĢ
-āļĄāļē5āļ™āļ­
āļĄāļē5āļ›āđˆ
āļĄāļē5āļžāļˆ
āļĄāļē5āļĄāļ
@@ -1175,7 +1160,6 @@
āļĄ1āđ‚
āļĄ1āđ„
āļĄ4āđˆāļē
-āļĄāđ‰āļĄ4
3āļĄāđ‰āļē
āļĄāđŒ5āļ āļī
āļĒāļ5āļĒāđˆ
@@ -1202,12 +1186,11 @@
āļĒ1āļĒ
āļĒāļĒ4āļŠ
āļĒāļĢ5āļ–āļĩ
-āļĒ5āļĢ4āļšāļą
+āļĒ5āļĢāļšāļą
āļĒāļĨ5āđ„āļ—
āļĒāļ§5āļ‚āđ‰
āļĒāļ§5āļˆāđŠ
āļĒāļ§5āļ”āļ­
-āļĒ5āļ§āļ”āļĩ
āļĒāļ§5āļ™āļĩ
āļĒāļ§5āļĒāđˆ
āļĒāļ§5āļĢāļą
@@ -1230,7 +1213,6 @@
āļĒāļē5āļ“āļ§
āļĒāļē5āļ–āđˆ
āļĒāļē5āļšāļĢ
-āļĒāļē5āļĢāļŠ
āļĒāļē5āļŠāļĨ
āļĒāļē5āļŠāļĩ
āļĒāļē5āļŽāļą
@@ -1242,10 +1224,8 @@
4āļĒāļļāļ 
āļĒāļļ5āđāļĒ
āļĒāļļ5āđāļŦ
-āļĒāļđ5āļ„āļĨ
āļĒāļđ5āļ–āļī
āļĒāļđ5āļŸāđˆ
-āļĒāļđ5āļĒāļī
āļĒāļđ5āļĢāļī
āļĒāļđ5āđ„āļ™
āļĒ1āđ€
@@ -1257,6 +1237,7 @@
āļĒāđŒ5āļŦāļ™
2āļĢāļ
āļĢāļ5āļ‹āļ­
+āļĢāļ5āļ‹āļķ
āļĢāļ5āļ‹āđ‰
āļĢ1āļāļĢ
āļĢāļ5āļĢāļē
@@ -1265,11 +1246,6 @@
āļĢāļ‡5āļžāļĒ
āļĢāļ‡5āļĢāļ­
āļĢāļˆ5āļ–āļĢ
-āļĢ1āļŠ
-āļĢ4āļŠāļ
-āļĢ4āļŠāļŠ
-āļĢ4āļŠāļ™
-āļĢ4āļŠāļĒ
āļĢāļ“5āļ„āļ”
āļĢāļ“5āļ•āļĢ
āļĢāļ“5āļ–āļą
@@ -1301,6 +1277,7 @@
āļĢ4āļšāļ–
āļĢāļš5āļ–āđ‰
āļĢ4āļšāļĄ
+āļĢ4āļšāļą
āļĢ4āļšāđ„
āļĢāļš5āđ„āļ
āļĢ1āļ›
@@ -1318,6 +1295,7 @@
āļĢāļĢ5āļ„āļē
āļĢāļĢ5āļˆāļ–
āļĢāļĢ5āļˆāļ§
+āļĢāļĢ5āļŠāļī
āļĢāļĢ5āļ“āļķ
āļĢāļĢ5āļ–āļē
āļĢāļĢ5āļĒāļ‡
@@ -1328,6 +1306,7 @@
āļĢāļĢ5āđāļŠ
āļĢāļĢ5āđ„āļ
āļĢāļĢ5āđ„āļ•
+āļĢāļĨ5āļ­āļ­
āļĢāļĻ5āļ™āļĩ
āļĢāļĐ5āļāļī
āļĢāļĐ5āļ•āļĢ
@@ -1335,7 +1314,7 @@
āļĢ4āļŠāļ
āļĢ4āļŠāļŠ
āļĢ4āļŠāđ€
-āļĢ4āļŠ4āđ‚
+āļĢ4āļŠāđ‚
āļĢ3āļŦāļī
āļĢāļ°1
āļĢāļ°5āļŠāļē
@@ -1359,6 +1338,7 @@
āļĢāļģ5āļ‡āļą
āļĢāļģ5āļˆāļ§
āļĢāļī5āļāļ­
+āļĢāļī5āļ‹āļķ
āļĢāļī5āļ•āļĢ
āļĢāļī5āļ—āļķ
4āļĢāļīāļž
@@ -1373,6 +1353,7 @@
āļĢāļĩ5āļ”āļđ
āļĢāļĩ5āļ•āļĢ
āļĢāļĩ5āļ•āļ­
+āļĢāļĩ5āļĄāļđ
āļĢāļĩ5āļĢāļą
āļĢāļĩ5āļĢāļē
āļĢāļĩ5āļĢāļī
@@ -1437,11 +1418,11 @@
āļĨāļš5āļĨāđ‰
āļĨāļš5āđ„āļŠ
āļĨāļ›5āļ•āļ­
-āļĨāļĄ5āļ„āđ‰
āļĨāļĄ5āļ‡āļ§
āļĨ3āļĄāļ­
2āļĨāļĒ
āļĨ1āļĨ
+āļĨ4āļĨāđŒ
āļĨ3āļ§āļĩ
āļĨāļ§5āđ„āļŦ
āļĨāļŠ5āđ„āļ•
@@ -1456,17 +1437,20 @@
āļĨāļē5āļšāļĢ
āļĨāļē5āļ›āđ‹
āļĨāļē5āļžāļ­
+āļĨāļē5āļĄāļĩ
3āļĨāļēāļĢ
āļĨāļē5āļĢāļ­
āļĨāļē5āļĢāđ‰
āļĨāļē5āļĪāļ
āļĨāļē5āļŠāđ‰
-āļĨāļī5āļāļ­
āļĨāļī5āļāđˆ
āļĨāļī5āļˆāļđ
+āļĨāļī5āļ‹āļķ
āļĨāļī5āļ•āļ­
āļĨāļī5āļ™āļ­
āļĨāļī5āļ™āđˆ
+āļĨāļī4āļš
+āļĨāļī5āļšāļē
āļĨāļī5āļŸāļ­
āļĨāļī5āļĄāļđ
āļĨāļĩ5āļ•āļ°
@@ -1480,10 +1464,9 @@
āļĨāļđāļ1
āļĨāļđ5āļ‹āļĩ
āļĨāļđ5āļ—āļĩ
-āļĨāļđ3āļĄāļī
+āļĨāļđ5āļĄāļī
āļĨāļđ5āļĨāļ­
āļĨāļđ5āļ­āļ­
-āļĨāļđ5āđāļš
2āļĨ1āđ€
2āļĨ1āđ
āļĨ1āđ‚
@@ -1492,7 +1475,6 @@
āļĨāđˆ5āļŦāļĨ
āļĨāđˆ5āļ­āļ­
āļĨāđ‰5āđ‚āļž
-2āļĨāđŒ
āļĨāđŒ5āļŠāļ•
āļ§3āļāļĢ
āļ§āļ5āļ§āđˆ
@@ -1537,8 +1519,7 @@
āļ§āļĢ5āļĄāļ“
āļ§āļĢ5āļĄāļŦ
āļ§4āļĢāļĒ
-āļ§āļĢāļĢ4
-3āļ§āļĢāļĢāļ“
+1āļ§āļĢāļĢ4
āļ§4āļĢāđŒ
āļ§āļĨ5āļĢāļ°
āļ§āļŠ5āļ›āļ­
@@ -1603,12 +1584,11 @@
āļ§āđ‰5āļĨāļē
āļ§āđŒ5āļĨāļī
āļĻ1āļˆ
-āļĻāļ•5āļ§āļĢ
āļĻāļ™5āļ­āļļ
āļĻāļžāļī4
3āļĻāļĢāļĩ
+āļĻ2āļ§āļĢ
āļĻāļĐ5āļ‹āđ‰
-āļĻāļĐ5āļ§āļĢ
āļĻāļĐ5āđ€āļ
āļĻāļĐ5āđ€āļŦ
1āļĻāļą
@@ -1648,10 +1628,10 @@
āļŠāļ‚5āļšāļļ
āļŠāļ‡5āļ‚āļĨ
āļŠ1āļ‹
-āļŠāļ”5āļŠāļ·
-āļŠ4āļ”āļļ
-āļŠ5āļ”āļļāļ 
-āļŠ4āļ•āļ—
+āļŠ5āļ”āļīāļ
+āļŠ5āļ”āļīāļ™
+āļŠ5āļ”āļīāļ 
+āļŠ5āļ”āļīāļĄ
āļŠāļ•5āļ—āļī
āļŠ3āļ•āļĢāļē
2āļŠāļ•āđŒ
@@ -1663,8 +1643,8 @@
āļŠ4āļ™āļļ
āļŠāļ™āļđāļ›5
āļŠ4āļ›āļē
+āļŠāļž5āļ•āļī
āļŠ2āļĄ
-āļŠāļĄ5āļ„āļ§
āļŠāļĄ5āļ”āļļ
3āļŠāļĄāļš
āļŠāļĄ5āļœāļŠ
@@ -1682,6 +1662,7 @@
āļŠāļĨ5āļšāļĢ
āļŠāļ§4āļ
āļŠāļ§5āļĒāļĄ
+āļŠ4āļ§āļĢ
āļŠāļ§5āļĢāļī
āļŠ4āļ§āļē
4āļŠāļ§āļī
@@ -1707,6 +1688,7 @@
4āļŠāļēāļ˜
āļŠāļē5āļ™āļķ
āļŠāļē5āļĄāļ™
+āļŠāļē5āļĄāļĩ
āļŠāļē5āļ§āļž
āļŠāļģ5āļ­āļ­
āļŠāļģ5āđ‚āļĢ
@@ -1733,6 +1715,7 @@
āļŠāļļ5āļ„āļĢ
āļŠāļļ5āļ™āļĩ
āļŠāļļ5āļšāļĢ
+āļŠāļļ5āļšāļī
āļŠāļļ5āļ›āļĢ
āļŠāļļ5āļĄāļ™
āļŠāļļ5āļŠāļ‡
@@ -1742,6 +1725,7 @@
āļŠ1āđ€
āļŠ4āđ€āļŸ
āļŠ1āđ‚
+āļŠ4āđ‚āļ
āļŠ4āđ‚āļ„
3āļŠāđˆāļ§
āļŠāđˆ5āđ„āļ„
@@ -1769,7 +1753,6 @@
āļŦāļē5āļžāļĢ
āļŦāļē5āļĢāļ·
āļŦāļē5āļĪāļ
-āļŦāļē5āļ§āļĢ
āļŦāļī5āļĢāļ
āļŦāļī5āļĻāļ§
āļŦāļļ5āļ„āļđ
@@ -1805,12 +1788,12 @@
āļ­āļ‡4āļ„āļĄ
āļ­āļ‡5āļ–āļī
āļ­āļ‡5āļšāļĢ
+āļ­āļ‡5āļšāļī
āļ­āļ‡5āļŸāļ­
āļ­āļ‡5āļŸāļļ
āļ­āļ‡5āļĢāļ°
āļ­āļ‡5āļ­āļļ
āļ­āļ‡5āļ­āđ‰
-āļ­āļ”5āļŠāđˆ
āļ­āļ”5āļ–āļ­
āļ­āļ”5āļ™āđˆ
āļ­āļ”5āļāļē
@@ -1823,16 +1806,16 @@
āļ­3āļ”āļī
āļ­āļ•5āļ”āļ­
āļ­āļ•5āļ”āđ‡
-āļ­āļ•5āļŠāļ§
āļ­āļ•5āđ„āļ§
āļ­1āļ—
āļ­4āļ—āļ„
āļ­āļ—5āļ„āļ­
āļ­āļ™5āļ‡āđ‰
-āļ­āļ™5āļˆāļ­
+āļ­āļ™5āļ”āļĢ
āļ­āļ™5āļ—āļģ
āļ­āļ™5āļœāļą
āļ­āļ™5āļāļđ
+āļ­āļ™5āļŸāļī
āļ­āļ™5āļĒāđ‰
āļ­4āļ™āļē
āļ­4āļ™āļļ1
@@ -1849,17 +1832,14 @@
āļ­āļ›5āļ§āļē
āļ­āļ›5āđ‚āļĨ
āļ­āļž5āļĢāļī
+āļ­āļŸ5āļŸāļī
āļ­āļŸ5āļŸāļĩ
āļ­āļŸ5āļĢāļī
-āļ­āļŸ5āđ‚āļĢ
āļ­āļŸ5āđ„āļĨ
āļ­4āļ āļą
-āļ­āļĄ5āļ„āļĨ
-āļ­āļĄ5āļ„āđ‰
āļ­āļĄ5āļŽāļ­
āļ­āļĄ5āļ”āļ­
āļ­āļĄ5āļ–āļ­
-āļ­āļĄ5āļŸāļ­
āļ­āļĄ5āļĒāļī
āļ­āļĄ5āļĢāļē
āļ­āļĄ5āļĢāđˆ
@@ -1876,6 +1856,7 @@
āļ­āļĒ5āļ­āļī
āļ­4āļĒāļē
āļ­āļĒ5āđ„āļ”
+āļ­āļĢ5āļŠāļļ
āļ­āļĢ5āļĄāļ™
āļ­3āļĢāļ­
āļ­1āļĢāļą
@@ -1892,7 +1873,6 @@
āļ­1āļĨāļī
āļ­āļ§5āļĢāļļ
āļ­āļĻ5āļāļĢ
-āļ­āļĻ5āļ„āļĢ
āļ­āļĐ5āļāļŠ
āļ­āļĐ5āļāļ 
āļ­āļŠ5āļāļē
@@ -1906,10 +1886,8 @@
āļ­āļŠ5āđāļ­
āļ­āļŠ5āđ„āļž
āļ­1āļŦ
-3āļ­āļ­āļ™
āļ­āļ­5āļ­āļ§
āļ­āļ°5āļ˜āļĩ
-āļ­āļ°5āļŪāļą
1āļ­āļą
1āļ­āļē
āļ­āļē5āļ„5āđ€
@@ -1937,7 +1915,6 @@
āļ­āļī5āļ”āļ°
āļ­āļī5āļĢāļ°
āļ­āļī5āļĻāļ§
-āļ­āļĩ5āļ„āļī
āļ­āļĩ5āļˆāļđ
āļ­āļĩ5āļ‹āļđ
āļ­āļĩ5āļĒāļī
@@ -1964,7 +1941,6 @@
āļ­āļļ5āļĨāļ
āļ­āļļ5āđāļ§
āļ­āļđ5āļ„āļđ
-āļ­āļđ5āļĄāļē
āļ­āļđ5āļĢāļē
āļ­āļđ5āļĨāļē
āļ­1āđ€
@@ -1974,6 +1950,7 @@
āļ­āđ€āļŦ5āļ•
āļ­1āđ
āļ­1āđ‚
+āļ­āđ‚āļĢ3
āļ­1āđ„
3āļ­āđˆāļ­
āļ­āđˆ5āļ­āļ§
@@ -1984,7 +1961,6 @@
āļ­āđ‰5āđ‚āļĨ
āļŪāļ5āļŪāļē
āļŪāļ5āļŪāļ·
-āļŪāļŠ5āđāļ—
āļŪāļ™5āļĢāļĩ
āļŪāļŸ5āļ§āļĩ
āļŪāļĨ5āļ”āļī
@@ -1998,7 +1974,6 @@
āļŪāļđ5āļĨāļē
āļŪāļđ5āļĨāđˆ
āļŪ1āđ€
-āļŪ1āđ‚
āļŪāđˆ5āļāļķ
āļ°1āļ
āļ°1āļ‚
@@ -2042,7 +2017,6 @@
āļąāļ3āļĨ
āļąāļ5āļ§āļī
āļąāļ5āļĐāļĢ
-āļąāļ5āļĐāļ­
āļąāļ5āļ­āļī
āļąāļ5āļ­āļĩ
āļąāļ5āļ­āđˆ
@@ -2066,12 +2040,12 @@
āļąāļŠ5āļ™āļĩ
āļąāļŠ5āļžāļĒ
āļąāļŠ5āļžāļ·
+āļąāļŠ5āļĢāļē
āļąāļŠ5āļĢāļī
-āļąāļŠ5āļŠāļ
āļąāļŠ5āļŠāļĄ
+āļąāļŠ5āđ€āļĢ
āļąāļŠ5āđāļž
āļąāļŠ5āđ‚āļ
-āļąāļŠ5āđ‚āļĒ
āļąāļ1
āļąāļ5āļ—āļļ
āļąāļ5āļŠāļ‡
@@ -2085,7 +2059,6 @@
āļąāļ“5āđ€āļ‘
āļąāļ“5āđ‚āļĢ
āļąāļ”1
-āļąāļ”5āļĢāļđ
āļąāļ•5āļ”āļķ
āļąāļ•5āļ–āļĨ
āļąāļ•5āļ–āļą
@@ -2096,7 +2069,6 @@
āļąāļ•5āļĢāļĩ
āļąāļ•5āļĪāļ
āļąāļ•5āļĨāļą
-āļąāļ•3āļŠ
āļąāļ•5āļŦāļĨ
āļąāļ•5āļŦāļĩ
āļąāļ—5āļ„āļĩ
@@ -2116,12 +2088,14 @@
āļąāļ™5āļ–āļ˜
āļąāļ™5āļ—āļķ
āļąāļ™5āļ—āļļ
+āļąāļ™5āļ—āđˆ
āļąāļ™4āļ˜
āļąāļ™5āļ˜āļē
āļąāļ™5āļ˜āļī
āļąāļ™5āļœāļ§
āļąāļ™5āļāļĢ
āļąāļ™5āļāđˆ
+āļąāļ™5āļ āļī
āļąāļ™5āļĒāļ°
āļąāļ™5āļĒāđˆ
āļąāļš1
@@ -2136,8 +2110,10 @@
āļąāļž5āļĒāļē
āļąāļž5āđ‚āļž
āļąāļž5āđ‚āļŦ
+āļąāļŸ5āļŸāļī
āļąāļŸ5āļĢāļī
āļąāļĄ4āļŠ
+āļąāļĄ5āļĨāļē
āļąāļĄ5āļŦāļĄ
āļąāļĒ5āļĄāļĢ
āļąāļĒ5āļĢāļļ
@@ -2145,6 +2121,7 @@
āļąāļĨ5āļ›āļ™
āļąāļĨ5āļ›āļž
āļąāļĨ5āļ›āļī
+āļąāļĨ5āļŸāļī
āļąāļĨ5āļĄāļļ
āļąāļĨ5āļ­āļ­
āļąāļĨ5āđ„āļ‹
@@ -2154,16 +2131,26 @@
āļąāļĻ5āļĄāļĩ
āļąāļĻ5āđ€āļˆ
āļąāļĻ5āđ„āļ™
-āļąāļŠ1
āļąāļŠ5āļāļē
+āļąāļŠ5āļ”āļ‡
+āļąāļŠ5āļ”āļ™
+āļąāļŠ5āļ”āļĩ
+āļąāļŠ5āļ•āļī
+āļąāļŠ5āļ–āļē
+āļąāļŠ5āļ›āļđ
āļąāļŠ5āļĄāļą
āļąāļŠ5āļĄāļī
-āļąāļŠ5āļ§āļē
+āļąāļŠ5āļĒāļī
+āļąāļŠ5āļĢāļą
+āļąāļŠ5āļĨāļī
+āļąāļŠ5āļ§āļ”
+āļąāļŠ5āļ§āļĢ
āļēāļ5āļ–āļē
āļēāļ5āļāļĢ
āļēāļ5āļāļą
āļē1āļāļĢ
-āļē4āļ5āļĢāļļ
+āļē5āļāļĢāļĢ
+āļēāļ5āļĢāļļ
āļē3āļāļ­
āļēāļ5āļŪāļ­
āļē3āļāļĩ
@@ -2182,6 +2169,7 @@
āļē5āļ„āļĢāļĩ
āļēāļ‡5āļšāļģ
āļēāļ‡5āļāļĩ
+āļēāļ‡5āļŸāļī
āļēāļ‡5āļ­āļ­
āļēāļ‡5āļ­āļī
āļē1āļˆ
@@ -2204,6 +2192,8 @@
āļēāļŠ5āļ­āļ‡
āļē1āļŠāļī
āļē3āļŠāļĩ
+āļēāļŠ5āđ€āļ›
+āļēāļŠ5āđ€āļĨ
āļēāļŠ5āđ‚āļ­
āļē1āļ‹
āļēāļ5āļĢāļ­
@@ -2232,11 +2222,11 @@
āļēāļ—5āļšāļĢ
āļēāļ—5āļŠāļ
āļēāļ—5āļŦāļĨ
+āļē4āļ—āđŒ
āļē1āļ˜
āļē4āļ˜āļ™
āļē2āļ˜āļĒ
āļēāļ˜5āļĒāļĄ
-āļēāļ˜āļē1
āļēāļ™5āļāđˆ
āļēāļ™5āļœāļđ
āļēāļ™5āļĢāļ§
@@ -2261,20 +2251,18 @@
āļēāļž5āļĨāļ§
āļēāļŸ5āļ•āđ‰
āļēāļŸ5āļĢāļī
+āļē3āļŸāļī
āļē1āļ 
āļē4āļ āļ›
āļē4āļ āļĨ
āļēāļ 5āļĨāļ­
-āļēāļĄ5āļ„āļī
āļēāļĄ5āļ‡āđˆ
āļēāļĄ4āļ™4
-āļēāļĄ5āļ™āļī
āļēāļĄ5āļŠāļ
āļēāļĄ2āļŦ
āļēāļĄ5āļŦāļĄ
āļēāļĄ5āļŦāļĨ
āļēāļĄ5āļŦāļē
-āļē3āļĄāļĩ
āļēāļĒ5āļāļĨ
āļēāļĒ5āļāļ­
āļēāļĒ5āļ‚āļ§
@@ -2302,11 +2290,12 @@
āļēāļĒ5āđ„āļŦ
āļēāļĢ5āļāļģ
āļēāļĢ3āļ„
-āļē5āļĢāļ“āļ°
+āļēāļĢ5āļŠāļļ
āļēāļĢ5āļ“āļđ
āļēāļĢ5āļ•āļĢ
āļē5āļĢāļ—āļ°
āļēāļĢ5āļ˜āļļ
+āļēāļĢ5āļšāļą
āļēāļĢ5āļœāļˆ
āļēāļĢ5āļžāļĢ
āļē5āļĢāļ āļĒ
@@ -2322,7 +2311,7 @@
āļē1āļĢāļī
āļē5āļĢāļīāļ
āļē5āļĢāļīāļĒāļ°
-āļē1āļĢāļĩ
+āļē3āļĢāļĩ
āļē1āļĢāļļ
āļē1āļĨ
āļē4āļĨāļ
@@ -2339,6 +2328,7 @@
āļē4āļĨāļŠ
āļēāļĨ5āļ­āļļ
āļē4āļĨāđ‚
+āļē4āļĨāđŒ
āļēāļ§5āļāđˆ
āļēāļ§5āļ‚āđ‰
āļē3āļ§āļ”āļĩ
@@ -2349,7 +2339,6 @@
āļēāļ§5āļĒāļ·
āļē5āļ§āļĢāļ“
āļēāļ§5āļĢāļ 
-āļē5āļ§āļĢāļĢ
āļēāļ§5āļĢāļē
āļē5āļ§5āļĢāļĩ
āļēāļ§5āļĢāļļ
@@ -2364,7 +2353,6 @@
āļēāļĐ5āļĢāļē
āļēāļĐ5āđāļ
āļēāļŠ5āļāļē
-āļēāļŠ5āļ„āļ­
āļēāļŠ5āļ”āđ‰
āļēāļŠ5āļ•āđ‰
āļēāļŠ5āļ™āļĩ
@@ -2391,6 +2379,7 @@
āļģ1āļž
āļģ1āļĄ
āļģāļĄ5āļĢāļ‡
+āļģāļĄ5āļĨāļē
āļģ1āļĢ
āļģ1āļĨ
āļģ1āļŠ
@@ -2425,11 +2414,10 @@
āļīāļŠ4āļ™
āļīāļŠ5āļĨāļī
āļī3āļŠāļī
+āļīāļŠ5āđ€āļŠ
āļīāļ5āļŦāļ™
āļīāļ5āđ‚āļ
āļīāļ”5āļ‰āļī
-āļīāļ”5āļŠāļ­
-āļīāļ”5āļŠāļī
āļīāļ”5āļ™āļĩ
āļīāļ”5āļœāļ™
āļīāļ”5āļĢāļ­
@@ -2443,10 +2431,8 @@
āļīāļ•5āļĨāļ”
āļīāļ•5āļĨāļē
āļīāļ•5āļ§āļŠ
-āļīāļ•5āļŠāļĄ
āļī1āļ•āļī
āļī3āļ•āļļ
-āļīāļ—5āļ„āļ­
āļīāļ—5āļ˜āļą
āļīāļ—5āļŠāļ™
āļī3āļ˜āļĩ
@@ -2475,7 +2461,6 @@
āļīāļ›5āļœāļĨ
āļī3āļ›āļĢ
āļīāļ›5āļŠāļ•
-āļīāļ›5āļŠāđ€
āļīāļ›5āļŪāļ­
āļīāļ›5āđ‚āļ›
āļīāļ›5āđ‚āļĒ
@@ -2486,8 +2471,10 @@
āļīāļŸ5āļŸāļ­
āļī1āļ 
āļīāļĄ5āļāļĩ
+āļīāļĄ5āļĨāļē
āļī1āļĄāļļ
āļīāļĒ5āļĄāļī
+āļīāļĢ5āļŠāļĢ
āļīāļĢ5āļ§āļ”
āļī1āļĢāļą
āļī1āļĢāļē
@@ -2501,11 +2488,10 @@
āļīāļ§5āļ—āļĢ
āļīāļ§5āļšāļī
āļīāļ§5āļĒāļ­
-āļīāļ§5āļĒāļī
-āļī3āļ§āļĢāļĢ
āļīāļ§5āļĢāļī
āļīāļ§5āļĨāļī
āļīāļ§5āļĨāļķ
+āļīāļ§5āļ­āļ­
āļīāļ§āļē5āļŠ
āļīāļĻ5āļžāļĢ
āļīāļĻ5āļĢāđ‰
@@ -2517,7 +2503,6 @@
āļīāļŠ5āļāļĩ
āļī5āļŠāļ•āļĢ
āļīāļŠ5āļ•āļī
-āļīāļŠ5āļ•āđ‰
āļīāļŠ5āļ—āļĩ
āļīāļŠ5āļ™āļĩ
āļīāļŠ5āļšāļ­
@@ -2541,27 +2526,23 @@
āļĩāļŠ5āļ„āļ“
āļĩāļ‹5āļŠāļ–
āļĩāļ”5āļ†āđˆ
-āļĩ5āļ”āļīāļĒ
āļĩāļ•5āļāļ§
āļĩāļ•5āļ›āļ
āļĩ1āļ—
āļĩāļ—4āļ™
+āļĩāļš5āļĢāļą
āļĩāļš5āļĢāļļ
āļĩāļš5āļĢāđ‰
āļĩ1āļ›
āļĩ1āļž
āļĩ4āļžāļˆ
-āļĩ1āļĄ
āļĩāļĒ5āļāļ–
āļĩāļĒ5āļĢāļĒ
āļĩāļĒ5āļĢāļ­
āļĩāļĒ5āļĢāļ°
āļĩāļĒ5āļĢāļą
āļĩ5āļĒāļ§āļ™
-āļĩāļĒ5āđ„āļ•
āļĩāļĢ5āļ“āļą
-āļĩ3āļĢāļĩ
-āļĩāļĢāļĩ5āļš
āļĩāļĨ5āļˆāļļ
āļĩ4āļ§āļą
āļĩāļ§āļē4
@@ -2591,13 +2572,10 @@
āļĩāđ‰5āļāļĢ
āļĩāđ‰5āļˆāđ‰
āļĩāđ‰5āļ•āļ°
-āļĩāđ‰5āļŸāļđ
āļĩāđ‰5āļĢāļī
āļĩāđ‰5āļĨāļą
āļĩāđ‰5āļĨāļļ
āļĩāđŠ5āļāļĢ
-āļĩāđŠ5āļ”āđŠ
-āļĩāđŠ5āļ•āđˆ
āļĩāđ‹5āļˆāđ‰
āļĩāđ‹5āļ­āđ‹
āļķāļ5āļ‹āļķ
@@ -2622,6 +2600,7 @@
āļ·āļ­5āļ•āļĢ
āļ·āļ­5āļ–āļ·
āļ·āļ­5āļ™āļģ
+āļ·āļ­5āļšāļī
āļ·āļ­5āļ›āļĨ
āļ·āļ­5āļ›āļ·
āļ·āļ­5āļ›āđˆ
@@ -2660,6 +2639,8 @@
āļļāļ‡5āļ–āļļ
āļļāļˆ5āļĨāļī
āļļāļˆ5āļŦāļ™
+āļļāļŠ5āļĢāļē
+āļļāļŠ5āđ€āļŠ
āļļāļ5āļˆāļ™
āļļāļ5āļĪāļ—
āļļāļ5āđāļˆ
@@ -2667,6 +2648,7 @@
āļļāļ‘5āļžāđˆ
āļļāļ“5āļ„āđˆ
āļļāļ“5āļ‘āļ
+āļļāļ“āļŠāļĄ5
āļļāļ“5āļŦāļ
āļļāļ“5āļŦāļē
āļļāļ“5āļŦāļī
@@ -2682,7 +2664,6 @@
āļļ5āļ•āļĢāļ°
āļļ5āļ•āļĢāļī
āļļāļ•5āļĨāļļ
-āļļāļ•5āļŠāđˆ
āļļ3āļ—āļ
āļļāļ—5āļ˜āļą
āļļ5āļ—āļĢāļī
@@ -2699,6 +2680,7 @@
āļļāļ›5āļāļĢ
āļļāļ›5āļˆāļē
āļļāļ›5āļ–āļą
+āļļāļ›5āļ—āļē
āļļāļ›5āļĒāļļ
āļļāļ›3āļĢāļē
āļļ5āļ›āļĢāļī
@@ -2742,12 +2724,10 @@
āļļāļĨ5āļŠāļĩ
āļļāļĨ5āļ˜āļī
āļļāļĨ5āļĄāļļ
-āļļāļĨ5āļ§āļĢ
āļļāļĨ5āļŠāļ•
āļļāļĨ5āļŠāđ
āļļ3āļĨāļē
āļļ3āļĨāļī
-āļļāļĻ5āđ€āļĢ
āļļāļĻ5āđ‚āļĨ
āļļāļĐ5āļˆāļĩ
āļļāļĐ5āļŽāļĩ
@@ -2819,7 +2799,6 @@
āļđāđ‹5āļ­āļĩ
āđ€2
āđ€āļ5āļĒāļđ
-āđ€āļ5āļĢāļĨ
āđ€āļ5āļ§āļą
āđ€āļ5āļĻāļ§
āđ€āļ5āļ­āļī
@@ -2831,7 +2810,6 @@
āđ€4āļˆāļĢ
āđ€āļˆ5āļĨāļī
āđ€āļˆ5āđ‚āļ•
-āđ€āļˆ5āđ‚āļĢ
āđ€āļ‹5āļ—āļī
āđ€āļ‹5āļ™āļ­
āđ€āļ‹5āļĢāļļ
@@ -2860,7 +2838,7 @@
4āđ€āļ™āļĒ
āđ€āļ™5āļĢāļ°
āđ€āļ™5āļĢāļą
-āđ€āļ™2āļŠ
+āđ€āļ™4āļŠ
āđ€āļ™5āļŠāļē
āđ€āļ™5āđ€āļ§
āđ€āļš5āļ•āđ‰
@@ -2881,10 +2859,7 @@
āđ€āļ 5āļ—āļļ
āđ€āļĄ5āļ†āļī
āđ€āļĄ5āļ”āļī
-āđ€āļĄ5āļĨāļ­
-āđ€āļĄ5āļĨāđˆ
-āđ€āļĄ4āļŠ
-āđ€āļĄ5āļŠāļļ
+āđ€āļĄ5āļĨāļē
āđ€āļĢ5āļāļ­
āđ€āļĢ5āļāļ°
āđ€āļĢ5āļĄāļ­
@@ -2893,7 +2868,6 @@
āđ€āļĨ5āļāļĢ
āđ€āļĨ5āļ„āļ­
āđ€āļĨ5āļ”āļĩ
-āđ€āļĨ5āļžāļ­
āđ€āļĨ5āļ§āļĢ
āđ€āļĨ5āļ§āļđ
āđ€āļĨ5āļŦāļĨ
@@ -2923,6 +2897,8 @@
āđ€āļ­5āļŽāļ
āđ€āļŪ5āļĨāļ°
āđ€āļŪ5āļĨāļī
+āđ€āļŪ5āđ‚āļĄ
+āđ€āļŪ5āđ‚āļĢ
āđāļ5āļ§āļą
āđāļ„5āļĢāļ­
āđāļ„5āļĢāļī
@@ -2930,21 +2906,19 @@
āđāļ„5āļĨāļī
āđāļ„5āđāļ•
āđāļ„5āđāļŠ
+āđāļŠ5āļšāđŠ
+āđāļŠ5āđ€āļŠ
āđāļ‹5āļĒāļī
-āđāļ‹5āļŦāļ§
āđāļ”5āļĢāļĩ
āđāļ•5āđāļ•
āđāļ™2
āđāļš4āļ„
-āđāļš5āļĢāļī
āđ4āļ›āļĢ
3āđāļžāļ—
āđāļŸ5āļĢāļĩ
āđ4āļŸāđ‰
āđāļĄ2
-āđāļĄ5āļāļē
āđāļĄ5āļŠāļĩ
-āđāļĄ5āļĢāļī
āđāļĄ5āļĢāļĩ
āđāļĄ5āđ€āļĢ
āđāļĄāđˆ3
@@ -2967,20 +2941,18 @@
āđ‚āļ„5āļĢāļī
āđ‚āļ„5āļĨāļ­
āđ‚āļ„5āļĨāļą
-āđ‚āļ„5āļĨāļĩ
āđ‚āļ„5āļĨāđˆ
āđ‚āļ„5āļ­āļ­
āđ‚āļ„5āļ­āļ°
āđ‚āļ„5āđāļ—
āđ‚āļ„5āđ„āļ‹
āđ‚āļˆ5āļ›āļ
-āđ‚āļˆ5āļ­āļĩ
āđ‚āļ‰5āđ€āļš
-āđ‚āļŠ5āļŽāļķ
āđ‚āļŠ5āļ”āļķ
āđ‚āļŠ5āļŦāđˆ
āđ‚āļ‹5āļāļĢ
āđ‚āļ‹5āļ™āļĩ
+āđ‚āļ‹5āļŸāļī
āđ‚āļ‹5āļĒāļđ
āđ‚āļ‹5āļĨāļđ
āđ‚āļ‹5āļŠāđ€
@@ -2995,11 +2967,8 @@
āđ‚āļ•5āļĢāļē
āđ‚āļ•5āļĢāļī
āđ‚āļ•5āļĨāļī
-āđ‚āļ•5āļŠāđ€
-āđ‚āļ•5āđ„āļ„
āđ‚āļ—5āļāļĢ
āđ‚āļ—5āļ„āļ­
-āđ‚āļ—5āļ”āļ­
āđ‚āļ—5āļžāļĨ
āđ‚āļ—5āļĢāļ­
āđ‚āļ—5āđāļ­
@@ -3023,7 +2992,6 @@
āđ‚āļš5āđ„āļŪ
āđ‚āļ›5āļāļŠ
āđ‚āļ›5āļĨāļī
-āđ‚āļ›5āđāļ•
āđ‚āļ›5āđāļĨ
āđ‚āļ›5āđ‚āļ›
āđ‚āļ›5āđ‚āļĨ
@@ -3036,9 +3004,7 @@
āđ‚āļž5āđāļ—
āđ‚āļž5āđ„āļ‹
āđ‚āļŸ5āļāļĢ
-āđ‚āļŸ5āļ•āļ­
āđ‚āļŸ5āļ™āļĩ
-āđ‚āļŸ5āļĨāļī
āđ‚āļ 5āļ„āļī
āđ‚āļ 5āđ„āļ„
āđ‚āļĄ5āļ†āļĩ
@@ -3050,19 +3016,15 @@
āđ‚āļĢ5āļāļ°
āđ‚āļĢ5āļ„āļī
āđ‚āļĢ5āļ‡āļą
+āđ‚āļĢ5āļŠāļī
āđ‚āļĢ5āļ˜āļ™āļ°
-āđ‚āļĢ5āļžāļĨ
-āđ‚āļĢ5āļŸāļ­
-āđ‚āļĢ5āļŸāļĩ
āđ‚āļĢ5āļĢāļē
-āđ‚āļĢ5āļĢāđˆ
āđ‚āļĢ5āļĨāđˆ
āđ‚āļĢāļŠ4
āđ‚āļĢ5āļŠāđ€
āđ‚āļĢ5āļŦāļ™
āđ‚āļĢ5āļ­āļĩ
āđ‚āļĢ5āļŪāļī
-āđ‚āļĢ5āļŪāļĩ
āđ‚āļĢ5āđāļĄ
āđ‚āļĢ5āđ„āļĨ
āđ‚āļĨ5āļāļĢ
@@ -3073,7 +3035,6 @@
āđ‚āļĨ5āļĢāļē
āđ‚āļĨ5āļ§āļ°
āđ‚āļĨ5āļŦāļī
-āđ‚āļĨ5āđ„āļĄ
āđ‚āļ§5āļ™āļ­
āđ‚āļĻ5āļ˜āļ™
āđ‚āļĻ5āļ āļī
@@ -3081,8 +3042,8 @@
āđ‚āļŠ5āļ•āļī
āđ‚āļŠ5āļ˜āļ™
āđ‚āļŠ5āļ āļī
-āđ‚āļŠ5āļĢāļą
āđ‚āļŠ5āļĨāļī
+āđ‚āļŠ5āļ§āļĢ
āđ‚āļŠ5āļŦāļļ
āđ‚āļŠ5āđ‚āļ„
āđ‚āļŦ5āļāļē
@@ -3098,6 +3059,7 @@
āđ‚āļ­5āļĨāļ°
āđ‚āļ­5āļŠāļ–
āđ‚āļ­5āļ­āļī
+āđ‚āļŪ5āđ‚āļĨ
3āđƒāļŠāđ‰
1āđƒāļŦ
āđ„āļ5āļĨāļē
@@ -3114,20 +3076,16 @@
āđ„āļ‹5āļšāļ­
āđ„āļ‹5āļšāļĩ
āđ„āļ‹5āļ›āļĢ
-āđ„āļ‹5āļĢāļą
-āđ„āļ‹5āđāļ™
+āđ„āļ‹5āļ­āļ­
āđ„āļ”5āļŸāļļ
āđ„āļ”5āļŸāļđ
āđ„āļ”5āļĨāļī
āđ„āļ”5āļ­āļ­
-āđ„āļ•5āļĢāļĩ
-āđ„āļ—5āļāļĢ
āđ„āļ—5āļŸāļ­
āđ„āļ—5āļĢāļ­
āđ„āļ—5āđāļ—
āđ„āļ›5āļĢāļī
āđ„āļž5āļŠāļĒ
-āđ„āļž5āļ—āļ­
āđ„āļž5āļ˜āļ­
āđ„āļž5āļĢāļą
āđ„āļž5āļĢāļī
@@ -3149,7 +3107,6 @@
āđ„āļŦ5āļŦāļĄ
āđ„āļŦ5āļŦāļĨ
āđ„āļ­5āļāļĢ
-āđ„āļ­5āļ„āļī
āđ„āļ­5āļ‹āļĩ
āđ„āļ­5āļ”āļ­
āđ„āļ­5āļ•āļī
@@ -3158,6 +3115,7 @@
āđ„āļ­5āļĻāļ§
āđ„āļ­5āļĻāļļ
āđ„āļ­5āļĻāļđ
+āđ„āļ­5āļ­āļ­
āđ„āļŪ1
āđ‡āļ5āļ‹āļĩ
āđ‡āļˆ5āļ‚āļš
@@ -3166,6 +3124,7 @@
āđ‡āļ”5āļ­āļĢ
āđ‡āļ”5āļ­āļķ
āđ‡āļ™5āļ‰āđˆ
+āđ‡āļ™5āļ—āļĢ
āđ‡āļ™5āļĢāļ­
āđ‡āļ™5āļ§āļđ
āđ‡āļ™5āļ­āļĒ
@@ -3197,7 +3156,6 @@
āđˆāļ§5āļŠāđ‰
āđˆāļ§5āļ–āļķ
āđˆāļ§5āļĒāļ§
-āđˆāļ§5āļŪāđ‰
āđˆāļ§5āđ„āļŦ
āđˆāļ­5āļāļĢ
āđˆāļ­5āļāļ§
@@ -3250,7 +3208,6 @@
āđ‰āļ™5āļ—āđ‰
āđ‰āļ™5āļĢāļļ
āđ‰āļ™5āļĢāđˆ
-āđ‰āļĄ5āļ„āļĨ
āđ‰āļĄ5āļ‡āļ§
āđ‰āļĄ5āļ‰āļļ
āđ‰āļĄ5āļ™āđ‰
@@ -3319,9 +3276,7 @@
āđŒāļ„5āļŠāđ€
āđŒāļ„5āđāļĨ
āđŒāļ•5āđ„āļ—
-āđŒ4āļ—āđ€
āđŒāļ—5āđ„āļ—
-āđŒ1āļ™
āđŒ1āļš
āđŒ1āļž
āđŒ1āļĢ
@@ -3767,6 +3722,7 @@
āļ„6āļ•āļ°
āļĢ6āļ•āļ°
āļŠāļĢ7āļ•āļ°
+āļē7āļĄāļĩ
āļĄāļī7āļœ
āļē7āļāļī
āļē7āļāļĨ
@@ -3788,6 +3744,7 @@
āļī5āļĨāļĩ
āļļ5āļĨāļĩ
āļē7āļĨāļĩ
+āđ‚āļ„7āļĨāļĩ
āđ‚āļĄ7āļĨāļĩ
āļ—7āļĨāļĩ
āļĢ7āļĨāļĩ
@@ -3808,6 +3765,7 @@
āđ€āļ›āļĢāļĩ6āļĒāļ°
āļĄāđ‚āļŦ5
āļī7āļĢāļĩ
+āļĩ7āļĢāļĩ
āļđ7āļĢāļĩ
āļŦāļē7āļĢāļĩ
āļĄ7āļĢāļĩ.
@@ -4333,17 +4291,6 @@
āđ€āļ6āļ•āļļ.
āļŠ7āļ•āļļ
āļĨāļī7āļšāļ‡
+āļŪ7āđ‚
7āļ­āļļ.
-āļīāļĻ7āļĢāļē
-āļĐ7āļ­āļĢ
-āļŠ6āļĢāļē.
-āļ”7āļŠāļ°
-āđ‚āļš7āļĢāļī
-āļ›6āļ—āļē.
-āļĨ7āļĄāļĩ
-āļĄ7āļ„āļ”
-āļĩ7āļŠāļ›
-āļĢ7āļĨāļ°
-āļ—āļŠ7āļĨāļē
-āļŠ7āđ‚āļ‹
-āļ‹7āļŸāļĩ} \ No newline at end of file
+āļīāļĻ7āļĢāļē} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkiv/lang-agr.lua b/Master/texmf-dist/tex/context/patterns/mkiv/lang-agr.lua
index 311502a66ff..81f8e9ad52b 100644
--- a/Master/texmf-dist/tex/context/patterns/mkiv/lang-agr.lua
+++ b/Master/texmf-dist/tex/context/patterns/mkiv/lang-agr.lua
@@ -6,35 +6,18 @@ return {
["metadata"]={
["mnemonic"]="agr",
["source"]="hyph-grc",
- ["texcomment"]="% title: Unicode hyphenation patterns for Ancient Greek.\
-% copyright: Dimitrios Filippou, (c) 2008-2016\
-% notice: >\
-% This file is part of the hyph-utf8 package.\
-% See http://www.hyphenation.org for more information.\
-% language:\
-% name: Ancient Greek\
-% tag: grc\
-% licence:\
-% name: LPPL\
-% url: http://www.latex-project.org/lppl/\
-% changes:\
-% -\
-% date: 2016-05-12\
-% author: Arthur Reutenauer\
-% description: added support for curly beta\
-% -\
-% date: 2011-09-12\
-% author: Dimitrios Filippou\
-% description: updated headers and added the LPPL licence statement\
-% -\
-% date: 2008-06-06\
-% author: Dimitrios Filippou\
-% description: removed guillemets (Âŧ)\
-% -\
-% date: 2008-05-27\
-% author: Dimitrios Filippou\
+ ["texcomment"]="% ****************************************************************\
+%\
+% File name: hyph-grc.tex\
+%\
+% Created: June 6, 2008\
+% Last modified: Sept. 12, 2011\
+%\
+% Unicode hyphenation patterns for Ancient Greek.\
+%\
+% Author: Dimitrios Filippou, (c) 2008-2011\
+% Licence: LaTeX Project Public Licence\
%\
-% ==========================================\
% This file was first created by mechanical translation from\
% GRAhyph5.tex via \"elhyph-utf8 -a -c\" (version 0.1 by Peter\
% Heslin -- p.j.heslin at durham dot ac dot uk). Some additions\
@@ -66,11 +49,11 @@ return {
% ",
},
["patterns"]={
- ["characters"]="'ʞΐΎέÎŪÎŊΰιÎēÎģÎīÎĩÎķηÎļÎđΚÎŧÎžÎ―ÎūÎŋπρςστυφχψωϊϋόύώϐÏēᾀᾁᾂᾃᾄᾅᾆᾇᾐᾑᾒᾓᾔᾕᾠᾡážĒážĢážĪážĨážĶឧឰឹážēážģážīážĩážķáž·á―€á―á―‚á―ƒá―„á―…á―á―‘á―’á―“á―”á―•á―–á―—á― á―Ąá―Ēá―Ģá―Īá―Ĩá―Ķá―§á―°á―ąá―ēá―ģá―īá―ĩá―ķá―·á―ļá―đá―šá―ŧá―žá――áū€áūáū‚áūƒáū„áū…áū†áū‡áūáū‘áū’áū“áū”áū•áū–áū—áū áūĄáūĒáūĢáūĪáūĨáūĶáū§áūēáūģáūīáūķáū·áū―áūŋáŋ‚áŋƒáŋ„áŋ†áŋ‡áŋ’áŋ“áŋ–áŋ—áŋĒáŋĢáŋĪáŋĨáŋĶáŋ§áŋēáŋģáŋīáŋķáŋ·â€™",
- ["data"]="Îą1 Îĩ1 η1 Îđ1 Îŋ1 υ1 ω1 ϊ1 ϋ1 ᾀ1 ខ1 ᾂ1 ឃ1 ᾄ1 ᾅ1 ᾆ1 ᾇ1 ថ1 ᾑ1 ᾒ1 ᾓ1 ᾔ1 ᾕ1 áž 1 ឥ1 ážĒ1 ážĢ1 ážĪ1 ážĨ1 ážĶ1 ឧ1 áž°1 ážą1 ážē1 ážģ1 ážī1 ážĩ1 ážķ1 áž·1 á―€1 á―1 á―‚1 á―ƒ1 á―„1 á―…1 á―1 á―‘1 á―’1 á―“1 á―”1 á―•1 á―–1 á―—1 á― 1 á―Ą1 á―Ē1 á―Ģ1 á―Ī1 á―Ĩ1 á―Ķ1 á―§1 á―°1 á―ē1 á―ī1 á―ķ1 á―ļ1 á―š1 á―ž1 áū€1 áū1 áū‚1 áūƒ1 áū„1 áū…1 áū†1 áū‡1 áū1 áū‘1 áū’1 áū“1 áū”1 áū•1 áū–1 áū—1 áū 1 áūĄ1 áūĒ1 áūĢ1 áūĪ1 áūĨ1 áūĶ1 áū§1 áūē1 áūģ1 áūī1 áūķ1 áū·1 áŋ‚1 áŋƒ1 áŋ„1 áŋ†1 áŋ‡1 áŋ’1 áŋ–1 áŋ—1 áŋĒ1 áŋĶ1 áŋ§1 áŋē1 áŋģ1 áŋī1 áŋķ1 áŋ·1 ÎŽ1 έ1 ÎŪ1 ÎŊ1 ό1 ύ1 ώ1 ΐ1 ΰ1 á―ą1 á―ģ1 á―ĩ1 á―·1 á―đ1 á―ŧ1 á――1 áŋ“1 áŋĢ1 Îą2Îđ Îą2ÎŊ Îą2á―· Îą2á―ķ Îą2áŋ– Îą2áž° Îą2ážī Îą2ážē Îą2ážķ Îą2ážą Îą2ážĩ Îą2ážģ Îą2áž· ÎŽ3Îđ á―ą3Îđ áūķ3Îđ ᾀ3Îđ ខ3Îđ Îą2υ Îą2ύ Îą2á―ŧ Îą2á―š Îą2áŋĶ Îą2á― Îą2á―” Îą2á―’ Îą2á―– Îą2á―‘ Îą2á―• Îą2á―“ Îą2á―— ÎŽ3υ á―ą3υ áūķ3υ ᾀ3υ ខ3υ Îĩ2Îđ Îĩ2ÎŊ Îĩ2á―· Îĩ2á―ķ Îĩ2áŋ– Îĩ2áž° Îĩ2ážī Îĩ2ážē Îĩ2ážķ Îĩ2ážą Îĩ2ážĩ Îĩ2ážģ Îĩ2áž· έ3Îđ á―ģ3Îđ ថ3Îđ ᾑ3Îđ Îĩ2υ Îĩ2ύ Îĩ2á―ŧ Îĩ2á―š Îĩ2áŋĶ Îĩ2á― Îĩ2á―” Îĩ2á―’ Îĩ2á―– Îĩ2á―‘ Îĩ2á―• Îĩ2á―“ Îĩ2á―— έ3υ á―ģ3υ ᾑ3υ ថ3υ η2υ η2ύ η2á―ŧ η2á―š η2áŋĶ η2á― η2á―” η2á―’ η2á―– η2á―‘ η2á―• η2á―“ η2á―— ÎŪ3υ á―ĩ3υ áŋ†3υ áž 3υ ឥ3υ Îŋ2Îđ Îŋ2ÎŊ Îŋ2á―· Îŋ2á―ķ Îŋ2áŋ– Îŋ2áž° Îŋ2ážī Îŋ2ážē Îŋ2ážķ Îŋ2ážą Îŋ2ážĩ Îŋ2ážģ Îŋ2áž· ό3Îđ á―đ3Îđ á―€3Îđ á―3Îđ Îŋ2υ Îŋ2ύ Îŋ2á―ŧ Îŋ2á―š Îŋ2áŋĶ Îŋ2á― Îŋ2á―” Îŋ2á―’ Îŋ2á―– Îŋ2á―‘ Îŋ2á―• Îŋ2á―“ Îŋ2á―— ό3υ á―đ3υ á―€3υ á―3υ υ2Îđ υ2ÎŊ υ2á―· υ2á―ķ υ2áŋ– υ2áž° υ2ážī υ2ážē υ2ážķ υ2ážą υ2ážĩ υ2ážģ υ2áž· ύ3Îđ á―ŧ3Îđ áŋĶ3Îđ á―3Îđ á―‘3Îđ Îŋυ3Îđ όυ4Îđ á―đυ4Îđ á―€Ï…4Îđ á―Ï…4Îđ Îŋ3υÎŊ Îŋ3Ï…á―· Îŋ3υáŋ– 4Îē. 4ϐ. 4Îģ. 4Îī. 4Îķ. 4Îļ. 4Κ. 4Îŧ. 4Ξ. 4Î―. 4Îū. 4π. 4ρ. 4σ. 4Ïē. 4ς. 4τ. 4φ. 4χ. 4ψ. 4' 4Ęž 4áūŋ 4Îē' 4ÎēĘž 4Îēáūŋ 4ϐ' 4ÏĘž 4ϐáūŋ 4Îģ' 4ÎģĘž 4Îģáūŋ 4Îī' 4ÎīĘž 4Îīáūŋ 4Îķ' 4ÎķĘž 4Îķáūŋ 4Îļ' 4ÎļĘž 4Îļáūŋ 4Κ' 4Κʞ 4Κáūŋ 4Îŧ' 4ÎŧĘž 4Îŧáūŋ 4Ξ' 4Ξʞ 4Ξáūŋ 4Î―' 4Î―Ęž 4Î―áūŋ 4Îū' 4ÎūĘž 4Îūáūŋ 4π' 4Ï€Ęž 4πáūŋ 4ρ' 4ÏĘž 4ρáūŋ 4σ' 4ÏƒĘž 4σáūŋ 4Ïē' 4ÏēĘž 4Ïēáūŋ 4τ' 4Ï„Ęž 4τáūŋ 4φ' 4Ï†Ęž 4φáūŋ 4χ' 4Ï‡Ęž 4χáūŋ 4ψ' 4ÏˆĘž 4ψáūŋ .Îē4 .ϐ4 .Îģ4 .Îī4 .Îķ4 .Îļ4 .Κ4 .Îŧ4 .Ξ4 .Î―4 .Îū4 .π4 .ρ4 .σ4 .Ïē4 .τ4 .φ4 .χ4 .ψ4 2Îē1Îē 2ϐ1ϐ 2Îģ1Îģ 2Îī1Îī 2Îķ1Îķ 2Îļ1Îļ 2Κ1Κ 2Îŧ1Îŧ 2Ξ1Ξ 2Î―1Î― 2π1π 2ρ1ρ 2áŋĪ1áŋĨ 2σ1σ 2Ïē1Ïē 2τ1τ 2φ1φ 2χ1χ 2ψ1ψ 2Îē1Îģ 2ϐ1Îģ 2Îē1Îķ 2ϐ1Îķ 2Îē1Îļ 2ϐ1Îļ 2Îē1Κ 2ϐ1Κ 2Îē1Îū 2ϐ1Îū 2Îē1π 2ϐ1π 2Îē1σ 2Îē1Ïē 2ϐ1σ 2ϐ1Ïē 2Îē1τ 2ϐ1τ 2Îē1φ 2ϐ1φ 2Îē1χ 2ϐ1χ 2Îē1ψ 2ϐ1ψ 2Îģ1Îē 2Îģ1ϐ 2Îģ1Îķ 2Îģ1Îļ 2Îģ1Κ 2Îģ1Îū 2Îģ1π 2Îģ1σ 2Îģ1Ïē 2Îģ1τ 2Îģ1φ 2Îģ1χ 2Îģ1ψ 2Îī1Îē 2Îī1ϐ 2Îī1Îģ 2Îī1Îķ 2Îī1Îļ 2Îī1Κ 2Îī1Îŧ 2Îī1Îū 2Îī1π 2Îī1σ 2Îī1Ïē 2Îī1τ 2Îī1φ 2Îī1χ 2Îī1ψ 2Îķ1Îē 2Îķ1ϐ 2Îķ1Îģ 2Îķ1Îī 2Îķ1Îļ 2Îķ1Κ 2Îķ1Îŧ 2Îķ1Ξ 2Îķ1Î― 2Îķ1Îū 2Îķ1π 2Îķ1ρ 2Îķ1σ 2Îķ1Ïē 2Îķ1τ 2Îķ1φ 2Îķ1χ 2Îķ1ψ 2Îļ1Îē 2Îļ1ϐ 2Îļ1Îģ 2Îļ1Îī 2Îļ1Îķ 2Îļ1Κ 2Îļ1Îū 2Îļ1π 2Îļ1σ 2Îļ1Ïē 2Îļ1τ 2Îļ1φ 2Îļ1χ 2Îļ1ψ 2Κ1Îē 2Κ1ϐ 2Κ1Îģ 2Κ1Îī 2Κ1Îķ 2Κ1Îļ 2Κ1Îū 2Κ1π 2Κ1σ 2Κ1Ïē 2Κ1φ 2Κ1χ 2Κ1ψ 2Îŧ1Îē 2Îŧ1ϐ 2Îŧ1Îģ 2Îŧ1Îī 2Îŧ1Îķ 2Îŧ1Îļ 2Îŧ1Κ 2Îŧ1Ξ 2Îŧ1Î― 2Îŧ1Îū 2Îŧ1π 2Îŧ1ρ 2Îŧ1σ 2Îŧ1Ïē 2Îŧ1τ 2Îŧ1φ 2Îŧ1χ 2Îŧ1ψ 2Ξ1Îē 2Ξ1ϐ 2Ξ1Îģ 2Ξ1Îī 2Ξ1Îķ 2Ξ1Îļ 2Ξ1Κ 2Ξ1Îŧ 2Ξ1Îū 2Ξ1π 2Ξ1ρ 2Ξ1σ 2Ξ1Ïē 2Ξ1τ 2Ξ1φ 2Ξ1χ 2Ξ1ψ 2Î―1Îē 2Î―1ϐ 2Î―1Îģ 2Î―1Îī 2Î―1Îķ 2Î―1Îļ 2Î―1Κ 2Î―1Îŧ 2Î―1Ξ 2Î―1Îū 2Î―1π 2Î―1ρ 2Î―1σ 2Î―1Ïē 2Î―Ï‚. 2Î―Ïē. 2Î―1τ 2Î―1φ 2Î―1χ 2Î―1ψ 2Îū1Îē 2Îū1ϐ 2Îū1Îģ 2Îū1Îī 2Îū1Îķ 2Îū1Îļ 2Îū1Κ 2Îū1Îŧ 2Îū1Ξ 2Îū1Î― 2Îū1π 2Îū1ρ 2Îū1σ 2Îū1Ïē 2Îū1τ 2Îū1φ 2Îū1χ 2Îū1ψ 2π1Îē 2π1ϐ 2π1Îģ 2π1Îī 2π1Îķ 2π1Îļ 2π1Κ 2π1Îū 2π1σ 2π1Ïē 2π1φ 2π1χ 2π1ψ 2ρ1Îē 2ρ1ϐ 2ρ1Îģ 2ρ1Îī 2ρ1Îķ 2ρ1Îļ 2ρ1Κ 2ρ1Îŧ 2ρ1Ξ 2ρ1Î― 2ρ1Îū 2ρ1π 2ρ1σ 2ρ1Ïē 2ρ1τ 2ρ1φ 2ρ1χ 2ρ1ψ 2σ1Îī 2Ïē1Îī 2σ1Îķ 2Ïē1Îķ 2σ1Îŧ 2Ïē1Îŧ 2σ1Î― 2Ïē1Î― 2σ1Îū 2Ïē1Îū 2σ1ρ 2Ïē1ρ 2σ1ψ 2Ïē1ψ 2τ1Îē 2τ1ϐ 2τ1Îģ 2τ1Îī 2τ1Îķ 2τ1Îļ 2τ1Κ 2τ1Îū 2τ1π 2τ1σ 2τ1Ïē 2τ1φ 2τ1χ 2τ1ψ 2φ1Îē 2φ1ϐ 2φ1Îģ 2φ1Îī 2φ1Îķ 2φ1Κ 2φ1Îū 2φ1π 2φ1σ 2φ1Ïē 2φ1τ 2φ1χ 2φ1ψ 2χ1Îē 2χ1ϐ 2χ1Îģ 2χ1Îī 2χ1Îķ 2χ1Κ 2χ1Îū 2χ1π 2χ1σ 2χ1Ïē 2χ1τ 2χ1φ 2χ1ψ 2ψ1Îē 2ψ1ϐ 2ψ1Îģ 2ψ1Îī 2ψ1Îķ 2ψ1Îļ 2ψ1Κ 2ψ1Îŧ 2ψ1Ξ 2ψ1Î― 2ψ1Îū 2ψ1π 2ψ1ρ 2ψ1σ 2ψ1Ïē 2ψ1τ 2ψ1φ 2ψ1χ 4ÎēÎī' 4ÎēÎī’ 4ÎēÎīĘž 4ÎēÎīáū― 4ÎēÎīáūŋ 4ϐÎī' 4ϐÎī’ 4ϐÎīĘž 4ϐÎīáū― 4ϐÎīáūŋ 4ÎēÎŧ' 4ÎēÎŧ’ 4ÎēÎŧĘž 4ÎēÎŧáū― 4ÎēÎŧáūŋ 4ϐÎŧ' 4ϐÎŧ’ 4ϐÎŧĘž 4ϐÎŧáū― 4ϐÎŧáūŋ 4ÎēΞ' 4Îēξ’ 4ÎēΞʞ 4ÎēΞáū― 4ÎēΞáūŋ 4ϐΞ' 4ϐΞ’ 4ÏÎžĘž 4ϐΞáū― 4ϐΞáūŋ 4ÎēÎ―' 4ÎēÎ―â€™ 4ÎēÎ―Ęž 4ÎēÎ―áū― 4ÎēÎ―áūŋ 4ÏÎ―' 4ÏÎ―â€™ 4ÏÎ―Ęž 4ÏÎ―áū― 4ÏÎ―áūŋ 4Îēρ' 4Îēρ’ 4ÎēÏĘž 4Îēρáū― 4Îēρáūŋ 4ϐρ' 4ϐρ’ 4ÏÏĘž 4ϐρáū― 4ϐρáūŋ 4ÎģÎī' 4ÎģÎī’ 4ÎģÎīĘž 4ÎģÎīáū― 4ÎģÎīáūŋ 4ÎģÎŧ' 4ÎģÎŧ’ 4ÎģÎŧĘž 4ÎģÎŧáū― 4ÎģÎŧáūŋ 4ÎģΞ' 4Îģξ’ 4ÎģΞʞ 4ÎģΞáū― 4ÎģΞáūŋ 4ÎģÎ―' 4ÎģÎ―â€™ 4ÎģÎ―Ęž 4ÎģÎ―áū― 4ÎģÎ―áūŋ 4Îģρ' 4Îģρ’ 4ÎģÏĘž 4Îģρáū― 4Îģρáūŋ 4ÎīΞ' 4Îīξ’ 4ÎīΞʞ 4ÎīΞáū― 4ÎīΞáūŋ 4ÎīÎ―' 4ÎīÎ―â€™ 4ÎīÎ―Ęž 4ÎīÎ―áū― 4ÎīÎ―áūŋ 4Îīρ' 4Îīρ’ 4ÎīÏĘž 4Îīρáū― 4Îīρáūŋ 4ÎķÎē' 4ÎķÎē’ 4ÎķÎēĘž 4ÎķÎēáū― 4ÎķÎēáūŋ 4Îķϐ' 4Îķϐ’ 4ÎķÏĘž 4Îķϐáū― 4Îķϐáūŋ 4ÎļÎŧ' 4ÎļÎŧ’ 4ÎļÎŧĘž 4ÎļÎŧáū― 4ÎļÎŧáūŋ 4ÎŧΞ' 4Îŧξ’ 4ÎŧΞʞ 4ÎŧΞáū― 4ÎŧΞáūŋ 4ÎļÎ―' 4ÎļÎ―â€™ 4ÎļÎ―Ęž 4ÎļÎ―áū― 4ÎļÎ―áūŋ 4Îļρ' 4Îļρ’ 4ÎļÏĘž 4Îļρáū― 4Îļρáūŋ 4ΚÎŧ' 4ΚÎŧ’ 4ΚÎŧĘž 4ΚÎŧáū― 4ΚÎŧáūŋ 4ΚΞ' 4ιξ’ 4ΚΞʞ 4ΚΞáū― 4ΚΞáūŋ 4ÎšÎ―' 4ÎšÎ―â€™ 4ÎšÎ―Ęž 4ÎšÎ―áū― 4ÎšÎ―áūŋ 4Κρ' 4Κρ’ 4ÎšÏĘž 4Κρáū― 4Κρáūŋ 4Κτ' 4Κτ’ 4ÎšÏ„Ęž 4Κτáū― 4Κτáūŋ 4ÎžÎ―' 4ÎžÎ―â€™ 4ÎžÎ―Ęž 4ÎžÎ―áū― 4ÎžÎ―áūŋ 4πÎŧ' 4πÎŧ’ 4πÎŧĘž 4πÎŧáū― 4πÎŧáūŋ 4πΞ' 4πΞ’ 4Ï€ÎžĘž 4πΞáū― 4πΞáūŋ 4Ï€Î―' 4Ï€Î―â€™ 4Ï€Î―Ęž 4Ï€Î―áū― 4Ï€Î―áūŋ 4πρ' 4πρ’ 4Ï€ÏĘž 4πρáū― 4πρáūŋ 4πτ' 4πτ’ 4Ï€Ï„Ęž 4πτáū― 4πτáūŋ 4σÎē' 4σÎē’ 4σÎēĘž 4σÎēáū― 4σÎēáūŋ 4ÏēÎē' 4ÏēÎē’ 4ÏēÎēĘž 4ÏēÎēáū― 4ÏēÎēáūŋ 4σϐ' 4σϐ’ 4ÏƒÏĘž 4σϐáū― 4σϐáūŋ 4Ïēϐ' 4Ïēϐ’ 4ÏēÏĘž 4Ïēϐáū― 4Ïēϐáūŋ 4σÎģ' 4σÎģ’ 4σÎģĘž 4σÎģáū― 4σÎģáūŋ 4ÏēÎģ' 4ÏēÎģ’ 4ÏēÎģĘž 4ÏēÎģáū― 4ÏēÎģáūŋ 4σÎī' 4σÎī’ 4σÎīĘž 4σÎīáū― 4σÎīáūŋ 4ÏēÎī' 4ÏēÎī’ 4ÏēÎīĘž 4ÏēÎīáū― 4ÏēÎīáūŋ 4σÎļ' 4σÎļ’ 4σÎļĘž 4σÎļáū― 4σÎļáūŋ 4ÏēÎļ' 4ÏēÎļ’ 4ÏēÎļĘž 4ÏēÎļáū― 4ÏēÎļáūŋ 4σΚ' 4σΚ’ 4ÏƒÎšĘž 4σΚáū― 4σΚáūŋ 4ÏēΚ' 4Ïēι’ 4ÏēΚʞ 4ÏēΚáū― 4ÏēΚáūŋ 4σΞ' 4σΞ’ 4ÏƒÎžĘž 4σΞáū― 4σΞáūŋ 4ÏēΞ' 4Ïēξ’ 4ÏēΞʞ 4ÏēΞáū― 4ÏēΞáūŋ 4σπ' 4σπ’ 4ÏƒÏ€Ęž 4σπáū― 4σπáūŋ 4Ïēπ' 4Ïēπ’ 4ÏēÏ€Ęž 4Ïēπáū― 4Ïēπáūŋ 4στ' 4στ’ 4ÏƒÏ„Ęž 4στáū― 4στáūŋ 4Ïēτ' 4Ïēτ’ 4ÏēÏ„Ęž 4Ïēτáū― 4Ïēτáūŋ 4σφ' 4σφ’ 4ÏƒÏ†Ęž 4σφáū― 4σφáūŋ 4Ïēφ' 4Ïēφ’ 4ÏēÏ†Ęž 4Ïēφáū― 4Ïēφáūŋ 4σχ' 4σχ’ 4ÏƒÏ‡Ęž 4σχáū― 4σχáūŋ 4Ïēχ' 4Ïēχ’ 4ÏēÏ‡Ęž 4Ïēχáū― 4Ïēχáūŋ 4φÎļ' 4φÎļ’ 4φÎļĘž 4φÎļáū― 4φÎļáūŋ 4φÎŧ' 4φÎŧ’ 4φÎŧĘž 4φÎŧáū― 4φÎŧáūŋ 4φΞ' 4φΞ’ 4Ï†ÎžĘž 4φΞáū― 4φΞáūŋ 4Ï†Î―' 4Ï†Î―â€™ 4Ï†Î―Ęž 4Ï†Î―áū― 4Ï†Î―áūŋ 4φρ' 4φρ’ 4Ï†ÏĘž 4φρáū― 4φρáūŋ 4χÎļ' 4χÎļ’ 4χÎļĘž 4χÎļáū― 4χÎļáūŋ 4χÎŧ' 4χÎŧ’ 4χÎŧĘž 4χÎŧáū― 4χÎŧáūŋ 4χΞ' 4χΞ’ 4Ï‡ÎžĘž 4χΞáū― 4χΞáūŋ 4Ï‡Î―' 4Ï‡Î―â€™ 4Ï‡Î―Ęž 4Ï‡Î―áū― 4Ï‡Î―áūŋ 4χρ' 4χρ’ 4Ï‡ÏĘž 4χρáū― 4χρáūŋ ᾀÎģω2Î―1Ύρ ᾀÎģω2Î―1á―ąÏ ᾀÎģω2Î―1ÎąÏ ᾀÎīÎđέ2Îū1 ᾀÎīÎđá―ģ2Îū1 ᾀÎīÎđÎĩ2Îū1 ᾀÎīυ2σ1ώ ᾀÎīυ2σ1á―― ᾀÎīυ2Ïē1ώ ᾀÎīυ2Ïē1á―― ᾀÎīυ2σ1ω ᾀÎīυ2Ïē1ω ខÎŧό2σ1 ខÎŧá―đ2σ1 ខÎŧό2Ïē1 ខÎŧá―đ2Ïē1 ខÎŧÎŋ2σ1 ខÎŧÎŋ2Ïē1 áž€ÎžÏ€ÎąÎŧÎŊ2Î―1 áž€ÎžÏ€ÎąÎŧá―·2Î―1 áž€ÎžÏ€ÎąÎŧÎđ2Î―1 កΞφÎŊ2σ1Îē áž€ÎžÏ†á―·2σ1Îē កΞφÎŊ2Ïē1Îē áž€ÎžÏ†á―·2Ïē1Îē កΞφÎŊ2σ1ϐ áž€ÎžÏ†á―·2σ1ϐ កΞφÎŊ2Ïē1ϐ áž€ÎžÏ†á―·2Ïē1ϐ កΞφÎđ2σ1Îē កΞφÎđ2Ïē1Îē កΞφÎđ2σ1ϐ កΞφÎđ2Ïē1ϐ កΞφÎŊ2σ1ω áž€ÎžÏ†á―·2σ1ω កΞφÎŊ2Ïē1ω áž€ÎžÏ†á―·2Ïē1ω កΞφÎđ2σ1ώ កΞφÎđ2σ1á―― កΞφÎđ2Ïē1ώ កΞφÎđ2Ïē1á―― ᾀ2Î―1ÎąÎģÎŪς. ᾀ2Î―1ÎąÎģá―ĩς. ᾀ2Î―1ÎąÎģÎŪÏē. ᾀ2Î―1ÎąÎģá―ĩÏē. ᾀ2Î―1ÎąÎģá―īς. ᾀ2Î―1ÎąÎģá―īÏē. ᾀ2Î―1ÎąÎģÎŪσ. ᾀ2Î―1ÎąÎģá―ĩσ. ᾀ2Î―1ÎąÎģá―īσ. ᾀ2Î―1ÎąÎģÎŋ ᾀ2Î―1ÎąÎģÎĩáŋ–. ᾀ2Î―1ÎąÎģáŋ†. ᾀ2Î―1ÎąÎģές. ᾀ2Î―1ÎąÎģá―ģς. ᾀ2Î―1ÎąÎģέÏē. ᾀ2Î―1ÎąÎģá―ģÏē. ᾀ2Î―1ÎąÎģá―ēς. ᾀ2Î―1ÎąÎģá―ēÏē. ᾀ2Î―1ÎąÎģέσ. ᾀ2Î―1ÎąÎģá―ģσ. ᾀ2Î―1ÎąÎģá―ēσ. ᾀ2Î―1ÎąÎģÎĩáŋ–Ï‚. ᾀ2Î―1ÎąÎģÎĩáŋ–Ïē. ᾀ2Î―1ÎąÎģÎĩáŋ–σ. ᾀ2Î―1ÎąÎģáŋķÎ―. ᾀ2Î―1ÎąÎģέσÎđ ᾀ2Î―1ÎąÎģá―ģσÎđ ᾀ2Î―1ÎąÎģέÏēÎđ ᾀ2Î―1ÎąÎģá―ģÏēÎđ ᾀ2Î―1ÎąÎģáŋ† ᾀ2Î―1ÎŽÎģΚυ ᾀ2Î―1á―ąÎģΚυ ᾀ2Î―1ÎąÎģΚύ ᾀ2Î―1ÎąÎģΚá―ŧ ᾄ2Î―1ÎąÎģÎ― ᾀ2Î―1ÎŽÎģÎ― ᾀ2Î―1á―ąÎģÎ― ᾀ2Î―1ÎąÎģÎ― ᾀ3Î―2ÎąÎģÎ―ÎŽ ᾀ3Î―2ÎąÎģÎ―á―ą ᾀ3Î―2ÎąÎģÎ―Ï‰ ᾀ3Î―2ÎŽÎģÎ―Ï‰ ᾀ3Î―2á―ąÎģÎ―Ï‰ ᾀ3Î―2ÎąÎģÎ―ÏŽ ᾀ3Î―2ÎąÎģÎ―á―― ᾀ2Î―1ÎąÎģρÎŊ ᾀ2Î―1ÎąÎģÏá―· ᾀ2Î―1ÎąÎģρáŋ– ᾀ2Î―1ÎąÎģρÎđ ᾀ2Î―1ÎŽÎģωÎģ ᾀ2Î―1á―ąÎģωÎģ ᾀ2Î―1ÎąÎģώÎģ ᾀ2Î―1ÎąÎģá――Îģ ᾀ3Î―2ÎąÎģώÎģÎđ ᾀ3Î―2ÎąÎģá――ÎģÎđ ᾀ3Î―2ÎąÎģωÎģÎŊ ᾀ3Î―2ÎąÎģωÎģá―· ᾀ4Î―3ÎąÎģωÎģÎŊÎą ᾀ4Î―3ÎąÎģωÎģá―·Îą ᾀ2Î―1ÎŽÎīÎĩÎŧ ᾀ2Î―1á―ąÎīÎĩÎŧ ᾀ2Î―1ÎąÎīέÎŧ ᾀ2Î―1ÎąÎīá―ģÎŧ ᾀ2Î―1ÎŽÎĩÎŧπ ᾀ2Î―1á―ąÎĩÎŧπ ᾀ2Î―1ιέÎŧπ ᾀ2Î―1Îąá―ģÎŧπ ᾄ2Î―1ÎąÎļÎŧ ᾀ2Î―1ÎŽÎļÎŧ ᾀ2Î―1á―ąÎļÎŧ ᾀ2Î―1ÎąÎŊÎī ᾀ2Î―1Îąá―·Îī ᾀ2Î―1ÎąÎđÎī ᾄ2Î―1ÎąÎđΞ ᾀ2Î―1ÎąÎŊΞ ᾀ2Î―1Îąá―·Îž ᾀ2Î―1ÎąÎđΞ ᾀ2Î―1ÎąÎŊσÎļ ᾀ2Î―1Îąá―·ÏƒÎļ ᾀ2Î―1ÎąÎŊÏēÎļ ᾀ2Î―1Îąá―·ÏēÎļ ᾀ2Î―1ÎąÎđσÎļ ᾀ2Î―1ÎąÎđÏēÎļ ᾀ2Î―1ÎąÎđσÎđ ᾀ2Î―1ÎąÎđÏēÎđ ᾀ2Î―1ÎąÎđσÎŊ ᾀ2Î―1ÎąÎđÏƒá―· ᾀ2Î―1ÎąÎđÏēÎŊ ᾀ2Î―1ÎąÎđÏēá―· ᾀ2Î―1ÎąÎŊσχ ᾀ2Î―1Îąá―·ÏƒÏ‡ ᾀ2Î―1ÎąÎŊÏēχ ᾀ2Î―1Îąá―·Ïēχ ᾀ2Î―1ÎąÎđσχ ᾀ2Î―1ÎąÎđÏēχ ᾀ2Î―1ÎąÎŊτ ᾀ2Î―1Îąá―·Ï„ ᾀ2Î―1ÎąÎđτ ᾀ2Î―1ÎŽÎšÎąÎ― ᾀ2Î―1á―ąÎšÎąÎ― ᾀ2Î―1ÎąÎšÎŽÎ― ᾀ2Î―1ÎąÎšá―ąÎ― ᾀ2Î―1ÎąÎšÏŒÎŧÎŋ ᾀ2Î―1ιΚá―đÎŧÎŋ ᾀ2Î―1ιΚÎŋÎŧÎŋ ᾀ2Î―1ÎąÎŧÎģ ᾀ2Î―1ÎąÎŧÎī ᾀ3Î―2ÎąÎŧÎīÎą ᾀ3Î―2ÎąÎŧÎīÎŪσΚ ᾀ3Î―2ÎąÎŧÎīá―ĩσΚ ᾀ3Î―2ÎąÎŧÎīÎŪÏēΚ ᾀ3Î―2ÎąÎŧÎīá―ĩÏēΚ ᾀ2Î―1ÎŽÎŧÎĩÎđπ ᾀ2Î―1á―ąÎŧÎĩÎđπ ᾀ2Î―1ÎąÎŧÎĩÎŊπ ᾀ2Î―1ÎąÎŧÎĩá―·Ï€ ᾀ2Î―1ÎąÎŧÎĩÎđφ ᾀ2Î―1ÎŽÎŧÎĩÎđφ ᾀ2Î―1á―ąÎŧÎĩÎđφ ᾀ2Î―1ÎąÎŧÎĩÎŊφ ᾀ2Î―1ÎąÎŧÎĩá―·Ï† ᾀ2Î―1ÎąÎŧÎŪÎļ ᾀ2Î―1ÎąÎŧá―ĩÎļ ᾀ2Î―1ÎąÎŧηÎļ ᾀ2Î―1ÎŽÎŧÎļ ᾀ2Î―1á―ąÎŧÎļ ᾀ2Î―1ÎąÎŧÎļ ᾀ2Î―1ÎŽÎŧÎđπ ᾀ2Î―1á―ąÎŧÎđπ ᾀ2Î―1ÎąÎŧÎŊπ ᾀ2Î―1ÎąÎŧá―·Ï€ ᾀ2Î―1ÎŽÎŧÎđστ ᾀ2Î―1á―ąÎŧÎđστ ᾀ2Î―1ÎŽÎŧÎđÏēτ ᾀ2Î―1á―ąÎŧÎđÏēτ ᾀ2Î―1ÎąÎŧÎŊστ ᾀ2Î―1ÎąÎŧá―·ÏƒÏ„ ᾀ2Î―1ÎąÎŧÎŊÏēτ ᾀ2Î―1ÎąÎŧá―·Ïēτ ᾀ2Î―1ÎąÎŧΚ ᾄ2Î―1ÎąÎŧΚ ᾀ2Î―1ÎŽÎŧΚ ᾀ2Î―1á―ąÎŧΚ ᾀ2Î―1ÎŽÎŧÎŧ ᾀ2Î―1á―ąÎŧÎŧ ᾀ2Î―1ÎąÎŧÎŧ ᾀ3Î―2ÎŽÎŧÎŧÎŋ ᾀ3Î―2á―ąÎŧÎŧÎŋ ᾀ3Î―2ÎŽÎŧÎŧÎĩ ᾀ3Î―2á―ąÎŧÎŧÎĩ ᾄ2Î―1ÎąÎŧΞ ᾀ2Î―1ÎŽÎŧΞ ᾀ2Î―1á―ąÎŧΞ ᾀ2Î―1ÎąÎŧΞ ᾄ2Î―1ÎąÎŧÎŋ ᾀ2Î―1ÎŽÎŧÎŋυ ᾀ2Î―1á―ąÎŧÎŋυ ᾀ2Î―1ÎŽÎŧáŋģ. ᾀ2Î―1á―ąÎŧáŋģ. ᾄ2Î―1ÎąÎŧÎĩ. ᾀ2Î―1ÎŽÎŧÎŋÎđ ᾀ2Î―1á―ąÎŧÎŋÎđ ᾀ2Î―1ÎŽÎŧÏ‰Î―. ᾀ2Î―1á―ąÎŧÏ‰Î―. ᾄ2Î―1ÎąÎŧτ ᾀ2Î―1ÎŽÎŧτ ᾀ2Î―1á―ąÎŧτ ᾀ2Î―1ιΞΎÎū ᾀ2Î―1ÎąÎžá―ąÎū ᾀ2Î―1ιΞιÎū ᾀ2Î―1ÎąÎžÎŽÏÏ„ ᾀ2Î―1ÎąÎžá―ąÏÏ„ ᾀ2Î―1ÎąÎžÎąÏÏ„ ᾀ2Î―1ιΞέÎŧÎģ ᾀ2Î―1ιΞá―ģÎŧÎģ ᾀ2Î―1ιΞÎĩÎŧÎģ ᾀ2Î―1ÎąÎžÏ€ ᾀ2Î―1ΎΞπ ᾀ2Î―1á―ąÎžÏ€ ᾀ2Î―1ÎąÎžÏ† áž€Î―ÎąÎžÏ†Îđ2σ1 áž€Î―ÎąÎžÏ†Îđ2Ïē1 ᾀ2Î―1ÎąÎ―ÎŽÎģΚ ᾀ2Î―1ÎąÎ―á―ąÎģΚ ᾀ2Î―1ÎąÎ―ÎąÎģΚ ᾄ2Î―1ÎąÎ―Îī ᾀ2Î―1ÎŽÎ―Îī ᾀ2Î―1á―ąÎ―Îī ᾀ2Î―1ÎąÎ―Îļ ᾀ3Î―2ÎąÎ―Îļέ ᾀ3Î―2ÎąÎ―Îļá―ģ ᾀ4Î―3ÎąÎ―Îļές. ᾀ4Î―3ÎąÎ―Îļá―ģς. ᾀ4Î―3ÎąÎ―ÎļέÏē. ᾀ4Î―3ÎąÎ―Îļá―ģÏē. ᾀ4Î―3ÎąÎ―Îļá―ēς. ᾀ4Î―3ÎąÎ―Îļá―ēÏē. ᾀ4Î―3ÎąÎ―Îļέσ. ᾀ4Î―3ÎąÎ―Îļá―ģσ. ᾀ4Î―3ÎąÎ―Îļá―ēσ. ᾀ4Î―3ÎąÎ―ÎļέσÎđ ᾀ4Î―3ÎąÎ―Îļá―ģσÎđ ᾀ4Î―3ÎąÎ―ÎļέÏēÎđ ᾀ4Î―3ÎąÎ―Îļá―ģÏēÎđ ᾀ2Î―1ÎŽÎ―ÎđÎŋ ᾀ2Î―1á―ąÎ―ÎđÎŋ ᾀ2Î―1ÎąÎ―ÎŊÎŋ ᾀ2Î―1ÎąÎ―á―·Îŋ ᾀ2Î―1ÎąÎ―ÎŊω ᾀ2Î―1ÎąÎ―á―·Ï‰ ᾀ2Î―1ÎąÎ―Ï„ÎąÎģ ᾀ2Î―1ÎąÎ―Ï„ÎąÏ€ ᾀ2Î―1ÎąÎ―Ï„ÎŊ ᾀ2Î―1ÎąÎ―Ï„á―· ᾀ2Î―1ÎąÎ―Ï„Îđ áž€Î―Îą2Îū1ÎąÎģ áž€Î―ÎŽ2Îū1ÎąÎ― áž€Î―á―ą2Îū1ÎąÎ― áž€Î―Îą2Îū1ÎŽÎ― áž€Î―Îą2Îū1á―ąÎ― áž€Î―Îą2Îū1ÎąÎ― áž€Î―ÎŽ2Îū1ÎąÏ áž€Î―á―ą2Îū1ÎąÏ áž€Î―Îą2Îū1Ύρ áž€Î―Îą2Îū1á―ąÏ áž€Î―ÎŽ2Îū1Îđπ áž€Î―á―ą2Îū1Îđπ áž€Î―Îą2Îū1ÎŊπ áž€Î―Îą2Îū1á―·Ï€ ᾀ2Î―1ÎąÎūÎđόÎŧ ᾀ2Î―1ÎąÎūÎđá―đÎŧ ᾀ2Î―1ÎąÎūÎđÎŋÎŧ ᾀ2Î―1ÎąÎūÎđόπ ᾀ2Î―1ÎąÎūÎđá―đπ ᾀ2Î―1ÎąÎūÎđÎŋπ ᾀ2Î―1ÎŽÎūÎđÎŋ ᾀ2Î―1á―ąÎūÎđÎŋ ᾀ2Î―1ÎąÎūÎŊÎŋ ᾀ2Î―1ÎąÎūá―·Îŋ ᾀ2Î―1ÎąÎūÎŊω ᾀ2Î―1ÎąÎūá―·Ï‰ ᾀ2Î―1ÎąÎūÎŊÎą ᾀ2Î―1ÎąÎūá―·Îą ᾀ2Î―1ÎąÎūáŋ–Îą ᾀ2Î―1ÎąÏ€ÎŽÎŧÎŧÎą ᾀ2Î―1ÎąÏ€á―ąÎŧÎŧÎą ᾀ2Î―1ÎąÏ€ÎąÎŧÎŧÎŽ ᾀ2Î―1ÎąÏ€ÎąÎŧÎŧá―ą ᾀ2Î―1ÎąÏ€ÎŽÏÏ„ ᾀ2Î―1ÎąÏ€á―ąÏÏ„ ᾀ2Î―1ÎąÏ€ÎąÏÏ„ ᾀ2Î―1ÎąÏ€ÎąÏÎī ᾀ2Î―1ÎąÏ€Îąá―ŧÎī ᾀ2Î―1ÎąÏ€ÎąÏ…Îī ᾀ2Î―1ÎąÏ€ÏŒÎē ᾀ2Î―1ÎąÏ€á―đÎē ᾀ2Î―1ÎąÏ€ÏŒÏ ᾀ2Î―1ÎąÏ€á―đϐ ᾀ2Î―1ÎąÏ€ÎŋÎē ᾀ2Î―1ÎąÏ€Îŋϐ ᾀ2Î―1ÎąÏ€ÏŒÎģ ᾀ2Î―1ÎąÏ€á―đÎģ ᾀ2Î―1ÎąÏ€ÎŋÎģ ᾀ2Î―1ÎąÏ€ÎŋÎīÎŪ ᾀ2Î―1ÎąÏ€ÎŋÎīá―ĩ ᾀ2Î―1ÎąÏ€ÎŋÎīη ᾀ2Î―1ÎąÏ€ÏŒÎīÎŋ ᾀ2Î―1ÎąÏ€á―đÎīÎŋ ᾀ2Î―1ÎąÏ€ÎŋÎīό ᾀ2Î―1ÎąÏ€ÎŋÎīá―đ ᾀ2Î―1ÎąÏ€ÏŒÎīρ ᾀ2Î―1ÎąÏ€á―đÎīρ ᾀ2Î―1ÎąÏ€ÎŋÎīρ ᾀ2Î―1ÎąÏ€ÏŒÎŧÎąÏ… ᾀ2Î―1ÎąÏ€á―đÎŧÎąÏ… ᾀ2Î―1ÎąÏ€ÎŋÎŧÎąÏ ᾀ2Î―1ÎąÏ€ÎŋÎŧÎąá―ŧ ᾀ2Î―1ÎąÏ€ÎŋÎŧό ᾀ2Î―1ÎąÏ€ÎŋÎŧá―đ ᾀ2Î―1ÎąÏ€ÎŋÎŧÎŋ ᾀ2Î―1ÎąÏ€ÏŒÎŧυ ᾀ2Î―1ÎąÏ€á―đÎŧυ ᾀ2Î―1ÎąÏ€ÎŋÎŧύ ᾀ2Î―1ÎąÏ€ÎŋÎŧá―ŧ ᾀ2Î―1ÎąÏ€ÏŒÎ― ᾀ2Î―1ÎąÏ€á―đÎ― ᾀ2Î―1ÎąÏ€ÎŋÎ― ᾀ2Î―1ÎąÏ€ÏŒÏ€ ᾀ2Î―1ÎąÏ€á―đπ ᾀ2Î―1ÎąÏ€Îŋπ ᾀ2Î―1ÎąÏ€ÏŒÏƒ ᾀ2Î―1ÎąÏ€á―đσ ᾀ2Î―1ÎąÏ€ÏŒÏē ᾀ2Î―1ÎąÏ€á―đÏē ᾀ2Î―1ÎąÏ€Îŋσ ᾀ2Î―1ÎąÏ€ÎŋÏē ᾀ2Î―1ÎąÏ€ÏŒÏ„Îĩ ᾀ2Î―1ÎąÏ€á―đτÎĩ ᾀ2Î―1ÎąÏ€ÎŋτÎĩ ᾀ2Î―1ÎąÏ€ÏŒÏ„Îž ᾀ2Î―1ÎąÏ€á―đτΞ ᾀ2Î―1ÎąÏ€ÎŋτΞ ᾀ2Î―1ÎąÏ€ÏŒÏ„Ï ᾀ2Î―1ÎąÏ€á―đτρ ᾀ2Î―1ÎąÏ€Îŋτρ ᾀ2Î―1ÎąÏÎŽ ᾀ2Î―1ÎąÏá―ą ᾀ2Î―1ÎąÏÎą ᾀ2Î―1Ύρ ᾀ2Î―1á―ąÏ ᾀ2Î―1ÎąÏ ᾄ2Î―1ÎąÏ ᾀ3Î―2ÎąÏÎŊτ ᾀ3Î―2ÎąÏá―·Ï„ ᾀ3Î―2ÎąÏáŋ–Ï„ ᾀ3Î―2ÎąÏÎđτ ᾀ3Î―2ÎąÏÏ€ ᾀ3Î―2Ύρρ ᾀ3Î―2á―ąÏÏ ᾀ3Î―2ÎąÏÏ ᾀ4Î―3ÎąÏÏÎąÎģ ᾀ3Î―2ÎąÏÏ„ ᾀ3Î―2ÎąÏÏÏ„ ᾀ3Î―2ÎąÏá―ŧτ ᾀ2Î―1ΎσΚη ᾀ2Î―1á―ąÏƒÎšÎ· ᾀ2Î―1ÎŽÏēΚη ᾀ2Î―1á―ąÏēΚη ᾀ2Î―1ÎąÏƒÎšÎŪ ᾀ2Î―1ÎąÏƒÎšá―ĩ ᾀ2Î―1ÎąÏēΚÎŪ ᾀ2Î―1ÎąÏēΚá―ĩ ᾄ2Î―1ÎąÏƒÏ€Îđ ᾄ2Î―1ÎąÏēπÎđ ᾀ2Î―1ÎąÏƒÏ€ÎŊ ᾀ2Î―1ÎąÏƒÏ€á―· ᾀ2Î―1ÎąÏēπÎŊ ᾀ2Î―1ÎąÏēÏ€á―· ᾀ2Î―1ÎŽÏƒÏƒÎąÏ„ ᾀ2Î―1á―ąÏƒÏƒÎąÏ„ ᾀ2Î―1ÎŽÏēÏēÎąÏ„ ᾀ2Î―1á―ąÏēÏēÎąÏ„ ᾀ2Î―1ÎąÏƒÏƒÎŽÏ„ ᾀ2Î―1ÎąÏƒÏƒá―ąÏ„ ᾀ2Î―1ÎąÏēÏēÎŽÏ„ ᾀ2Î―1ÎąÏēÏēá―ąÏ„ ᾀ2Î―1ΎστÎĩÎđ ᾀ2Î―1á―ąÏƒÏ„ÎĩÎđ ᾀ2Î―1ÎŽÏēτÎĩÎđ ᾀ2Î―1á―ąÏēτÎĩÎđ ᾀ2Î―1ÎąÏƒÏ„ÎĩÎŊ ᾀ2Î―1ÎąÏƒÏ„Îĩá―· ᾀ2Î―1ÎąÏēτÎĩÎŊ ᾀ2Î―1ÎąÏēτÎĩá―· ᾀ3Î―2ÎąÏƒÏ„ÎĩÎŊÎē ᾀ3Î―2ÎąÏƒÏ„Îĩá―·Îē ᾀ3Î―2ÎąÏēτÎĩÎŊÎē ᾀ3Î―2ÎąÏēτÎĩá―·Îē ᾀ3Î―2ÎąÏƒÏ„ÎĩÎŊϐ ᾀ3Î―2ÎąÏƒÏ„Îĩá―·Ï ᾀ3Î―2ÎąÏēτÎĩÎŊϐ ᾀ3Î―2ÎąÏēτÎĩá―·Ï ᾀ3Î―2ΎστÎĩÎđρ ᾀ3Î―2á―ąÏƒÏ„ÎĩÎđρ ᾀ3Î―2ÎŽÏēτÎĩÎđρ ᾀ3Î―2á―ąÏēτÎĩÎđρ ᾀ3Î―2ÎąÏƒÏ„ÎĩÎŊρ ᾀ3Î―2ÎąÏƒÏ„Îĩá―·Ï ᾀ3Î―2ÎąÏēτÎĩÎŊρ ᾀ3Î―2ÎąÏēτÎĩá―·Ï ᾀ3Î―2ΎστÎĩÎđχ ᾀ3Î―2á―ąÏƒÏ„ÎĩÎđχ ᾀ3Î―2ÎŽÏēτÎĩÎđχ ᾀ3Î―2á―ąÏēτÎĩÎđχ ᾀ3Î―2ÎąÏƒÏ„ÎĩÎŊχ ᾀ3Î―2ÎąÏƒÏ„Îĩá―·Ï‡ ᾀ3Î―2ÎąÏēτÎĩÎŊχ ᾀ3Î―2ÎąÏēτÎĩá―·Ï‡ ᾀ2Î―1ÎąÏ„Îĩá―ķ. ᾀ2Î―1ÎąÏ„ÎĩÎŊ. ᾀ2Î―1ÎąÏ„Îĩá―·. ᾀ2Î―1ÎąÏ„á―ķ. ᾀ2Î―1ÎąÏ„ÎŊ. ᾀ2Î―1ÎąÏ„á―·. ᾄ2Î―1ÎąÏ„Îŋς. ᾄ2Î―1ÎąÏ„ÎŋÏē. ᾄ2Î―1ÎąÏ„Îŋσ. ᾀ2Î―1ÎŽÏ„Îŋυ. ᾀ2Î―1á―ąÏ„Îŋυ. ᾀ2Î―1Ύτω ᾀ2Î―1á―ąÏ„Ï‰ ᾄ2Î―1ÎąÏ„ÎŋÎ―. ᾄ2Î―1ÎąÏ„Îĩ ᾄ2Î―1ÎąÏ„ÎŋÎđ. ᾀ2Î―1ÎŽÏ„ÎŋÎđς. ᾀ2Î―1á―ąÏ„ÎŋÎđς. ᾀ2Î―1ÎŽÏ„ÎŋÎđÏē. ᾀ2Î―1á―ąÏ„ÎŋÎđÏē. ᾀ2Î―1ÎŽÏ„ÎŋÎđσ. ᾀ2Î―1á―ąÏ„ÎŋÎđσ. ᾀ2Î―1ÎŽÏ„Ï„ ᾀ2Î―1á―ąÏ„Ï„ ᾀ2Î―1ÎąÏ„Ï„ ᾀ2Î―1ÎąÏÎģ ᾀ2Î―1Îąá―ŧÎģ ᾀ2Î―1ÎąÏ…Îģ ᾀ2Î―1ÎąÏÎī ᾀ2Î―1Îąá―ŧÎī ᾀ2Î―1ÎąÏ…Îī ᾀ3Î―2ÎąÏ…ÎīÎŊ ᾀ3Î―2ÎąÏ…Îīá―· ᾀ3Î―2ÎąÏ…ÎīÎđ ᾄ2Î―1ÎąÏ…Îī ᾄ2Î―1ÎąÏ…Îŧ ᾀ2Î―1ÎąÏÎŧ ᾀ2Î―1Îąá―ŧÎŧ ᾀ2Î―1ÎąÏÎū ᾀ2Î―1Îąá―ŧÎū ᾀ2Î―1ÎąÏ…Îū ᾀ2Î―1ÎąÏÏ‡ ᾀ2Î―1Îąá―ŧχ ᾀ2Î―1ÎąÏ…Ï‡ ᾀ2Î―1ÎąÏ†ÎąÎŊρ ᾀ2Î―1ÎąÏ†Îąá―·Ï ᾀ2Î―1ÎąÏ†ÎąÎđρ ᾀ2Î―1ÎąÏ†ÎŪ ᾀ2Î―1ÎąÏ†á―ĩ ᾀ2Î―1ÎąÏ†á―ī ᾀ2Î―1ÎąÏ†ÎŋáŋĶ ᾀ2Î―1ÎąÏ†áŋ† ᾀ2Î―1ÎąÏ†Îĩáŋ– ᾀ2Î―1ÎąÏ†Îŋáŋ– ᾀ2Î―1ÎĩφáŋķÎ―. ᾀ2Î―1ÎąÏ†Î­ ᾀ2Î―1ÎąÏ†á―ģ ᾀ2Î―1ÎąÏ†á―ē ᾀ3Î―2ÎąÏ†áŋ†Î― ᾀ2Î―1ÎąÏ†ÏÏŒÎī ᾀ2Î―1ÎąÏ†Ïá―đÎī ᾀ2Î―1ÎąÏ†ÏÎŋÎī ᾄ2Î―1ÎąÏ†Ï ᾀ2Î―1Ύφρ ᾀ2Î―1á―ąÏ†Ï ᾀ2Î―1ÎąÏ‡ÏÏ ᾀ2Î―1ÎąÏ‡á―ŧρ ᾀ2Î―1ÎąÏ‡Ï…Ï áž€Î―Îīρό2σ1Îą áž€Î―Îīρá―đ2σ1Îą áž€Î―Îīρό2Ïē1Îą áž€Î―Îīρá―đ2Ïē1Îą áž€Î―ÎīρÎŋ2σ1Îą áž€Î―ÎīρÎŋ2Ïē1Îą ᾀ2Î―1έÎģÎģ ᾀ2Î―1á―ģÎģÎģ ᾀ2Î―1ÎĩÎģÎģ ᾀ2Î―1έÎģÎĩρτ ᾀ2Î―1á―ģÎģÎĩρτ ᾀ2Î―1ÎĩÎģέρτ ᾀ2Î―1ÎĩÎģá―ģρτ ᾀ2Î―1ÎĩÎģΚ ᾀ2Î―1έÎģΚ ᾀ2Î―1á―ģÎģΚ ᾀ2Î―1ÎĩÎģχ ᾀ2Î―1ÎĩÎīÎŽ ᾀ2Î―1ÎĩÎīá―ą ᾀ2Î―1ÎĩÎīÎą ᾀ2Î―1έÎīÎĩσ ᾀ2Î―1á―ģÎīÎĩσ ᾀ2Î―1έÎīÎĩÏē ᾀ2Î―1á―ģÎīÎĩÏē ᾀ2Î―1ÎĩÎīέσ ᾀ2Î―1ÎĩÎīá―ģσ ᾀ2Î―1ÎĩÎīέÏē ᾀ2Î―1ÎĩÎīá―ģÏē ᾀ2Î―1έÎīÏÎąÏƒ ᾀ2Î―1á―ģÎīÏÎąÏƒ ᾀ2Î―1έÎīÏÎąÏē ᾀ2Î―1á―ģÎīÏÎąÏē ᾀ2Î―1ÎĩÎīρΎσ ᾀ2Î―1ÎĩÎīÏá―ąÏƒ ᾀ2Î―1ÎĩÎīρΎÏē ᾀ2Î―1ÎĩÎīÏá―ąÏē ᾀ2Î―1Îĩέρ ᾀ2Î―1Îĩá―ģρ ᾀ2Î―1ÎĩÎĩρ ᾀ2Î―1ÎĩÎļέÎŧ ᾀ2Î―1ÎĩÎļá―ģÎŧ ᾀ2Î―1ÎĩÎļÎĩÎŧ ᾀ2Î―1έÎļÎđ ᾀ2Î―1á―ģÎļÎđ ᾀ2Î―1ÎĩÎļÎŊ ᾀ2Î―1ÎĩÎļá―· ᾀ2Î―1ÎĩÎŊÎīÎĩ ᾀ2Î―1Îĩá―·ÎīÎĩ ᾀ2Î―1ÎĩÎđÎīέ ᾀ2Î―1ÎĩÎđÎīá―ģ ᾀ2Î―1ÎĩÎŊÎīω ᾀ2Î―1Îĩá―·Îīω ᾀ2Î―1ÎĩÎđÎīώ ᾀ2Î―1ÎĩÎđÎīá―― ᾀ2Î―1ÎĩÎŊΚι ᾀ2Î―1Îĩá―·ÎšÎą ᾀ2Î―1ÎĩÎđΚΎ ᾀ2Î―1ÎĩÎđÎšá―ą ᾀ2Î―1ÎĩÎđΚό ᾀ2Î―1ÎĩÎđΚá―đ ᾀ2Î―1ÎĩÎđΚÎŋ ᾀ2Î―1ÎĩÎđÎŧÎĩÎŊ ᾀ2Î―1ÎĩÎđÎŧÎĩá―· ᾀ2Î―1ÎĩÎđÎŧÎĩÎđ ᾀ2Î―1ÎĩÎŊΞι ᾀ2Î―1Îĩá―·ÎžÎą ᾀ2Î―1ÎĩÎŊ2σ1ιΚ ᾀ2Î―1Îĩá―·2σ1ιΚ ᾀ2Î―1ÎĩÎŊ2Ïē1ιΚ ᾀ2Î―1Îĩá―·2Ïē1ιΚ ᾀ2Î―1ÎĩÎđ2σ1ΎΚ ᾀ2Î―1ÎĩÎđ2σ1á―ąÎš ᾀ2Î―1ÎĩÎđ2Ïē1ΎΚ ᾀ2Î―1ÎĩÎđ2Ïē1á―ąÎš ᾀ2Î―1ÎĩÎŊ2σ1Îŋ ᾀ2Î―1Îĩá―·2σ1Îŋ ᾀ2Î―1ÎĩÎŊ2Ïē1Îŋ ᾀ2Î―1Îĩá―·2Ïē1Îŋ ᾀ2Î―1ÎĩÎđ2σ1ό ᾀ2Î―1ÎĩÎđ2σ1á―đ ᾀ2Î―1ÎĩÎđ2Ïē1ό ᾀ2Î―1ÎĩÎđ2Ïē1á―đ ᾀ2Î―1ÎĩÎđ2σ1φÎŋρ ᾀ2Î―1ÎĩÎđ2Ïē1φÎŋρ ᾀ2Î―1ÎĩÎŊ2σ1φÎŋρ ᾀ2Î―1Îĩá―·2σ1φÎŋρ ᾀ2Î―1ÎĩÎŊ2Ïē1φÎŋρ ᾀ2Î―1Îĩá―·2Ïē1φÎŋρ ᾀ2Î―1ÎĩÎđ2σ1φόρ ᾀ2Î―1ÎĩÎđ2σ1φá―đρ ᾀ2Î―1ÎĩÎđ2Ïē1φόρ ᾀ2Î―1ÎĩÎđ2Ïē1φá―đρ ᾀ2Î―1έΚ ᾀ2Î―1á―ģΚ ᾀ2Î―1ÎĩΚ ᾀ3Î―2έΚι ᾀ3Î―2á―ģΚι ᾀ3Î―2ÎĩΚΎς. ᾀ3Î―2ÎĩÎšá―ąÏ‚. ᾀ3Î―2ÎĩΚΎÏē. ᾀ3Î―2ÎĩÎšá―ąÏē. ᾀ3Î―2ÎĩÎšá―°Ï‚. ᾀ3Î―2ÎĩÎšá―°Ïē. ᾀ3Î―2ÎĩΚΎσ. ᾀ3Î―2ÎĩÎšá―ąÏƒ. ᾀ3Î―2ÎĩÎšá―°Ïƒ. ᾀ3Î―2ÎĩΚτ ᾀ4Î―3έ2Κ1τÎđτ ᾀ4Î―3á―ģ2Κ1τÎđτ ᾀ4Î―3Îĩ2Κ1τÎŊτ ᾀ4Î―3Îĩ2Κ1Ï„á―·Ï„ áž€Î―Îĩ2Κ1ÎŧÎđπ áž€Î―Îĩ2Κ1Îŧό áž€Î―Îĩ2Κ1Îŧá―đ áž€Î―Îĩ2Κ1ÎŧÎŋ ᾀ2Î―1έÎŧÎąÎđ ᾀ2Î―1á―ģÎŧÎąÎđ ᾀ2Î―1ÎĩÎŧÎąÎđ ᾀ2Î―1ÎĩÎŧÎŽÏ„ ᾀ2Î―1ÎĩÎŧá―ąÏ„ ᾀ2Î―1ÎĩÎŧÎąÏ„ ᾀ2Î―1έÎŧÎĩÎģΚ ᾀ2Î―1á―ģÎŧÎĩÎģΚ ᾀ2Î―1ÎĩÎŧέÎģΚ ᾀ2Î―1ÎĩÎŧá―ģÎģΚ ᾀ2Î―1ÎĩÎŧÎĩÎģÎū ᾀ2Î―1ÎĩÎŧέη ᾀ2Î―1ÎĩÎŧá―ģη ᾀ2Î―1ÎĩÎŧÎĩÎŪ ᾀ2Î―1ÎĩÎŧÎĩá―ĩ ᾀ2Î―1έÎŧÎĩÎŋ ᾀ2Î―1á―ģÎŧÎĩÎŋ ᾀ2Î―1ÎĩÎŧέÎŋ ᾀ2Î―1ÎĩÎŧá―ģÎŋ ᾀ2Î―1ÎĩÎŧέω ᾀ2Î―1ÎĩÎŧá―ģω ᾀ2Î―1έÎŧÎĩÎĩ ᾀ2Î―1á―ģÎŧÎĩÎĩ ᾀ2Î―1ÎĩÎŧΚÎŪ ᾀ2Î―1ÎĩÎŧΚá―ĩ ᾀ2Î―1ÎĩÎŧΚá―ī ᾀ2Î―1ÎĩÎŧΚÎŋ ᾀ2Î―1ÎĩÎŧΚáŋ† ᾀ2Î―1ÎĩÎŧΚές. ᾀ2Î―1ÎĩÎŧΚá―ģς. ᾀ2Î―1ÎĩÎŧΚέÏē. ᾀ2Î―1ÎĩÎŧΚá―ģÏē. ᾀ2Î―1ÎĩÎŧΚá―ēς. ᾀ2Î―1ÎĩÎŧΚá―ēÏē. ᾀ2Î―1ÎĩÎŧΚέσ. ᾀ2Î―1ÎĩÎŧΚá―ģσ. ᾀ2Î―1ÎĩÎŧΚá―ēσ. ᾀ2Î―1ÎĩÎŧΚÎĩ ᾀ2Î―1ÎĩÎŧΚáŋķ ᾀ2Î―1ÎĩÎŧΚέσ ᾀ2Î―1ÎĩÎŧΚá―ģσ ᾀ2Î―1ÎĩÎŧΚέÏē ᾀ2Î―1ÎĩÎŧΚá―ģÏē ᾄ2Î―1ÎĩÎŧΚτ ᾀ2Î―1έÎŧΚτ ᾀ2Î―1á―ģÎŧΚτ ᾀ2Î―1έÎŧΚω ᾀ2Î―1á―ģÎŧΚω ᾀ2Î―1ÎĩÎŧΚώ ᾀ2Î―1ÎĩÎŧÎšá―― ᾀ2Î―1έÎŧÎŧ ᾀ2Î―1á―ģÎŧÎŧ ᾀ2Î―1έÎŧπÎđ ᾀ2Î―1á―ģÎŧπÎđ ᾀ2Î―1ÎĩÎŧπÎŊ ᾀ2Î―1ÎĩÎŧÏ€á―· ᾀ2Î―1έÎŧυτρ ᾀ2Î―1á―ģÎŧυτρ ᾀ2Î―1ÎĩÎŧύτρ ᾀ2Î―1ÎĩÎŧá―ŧτρ ᾀ2Î―1έΞÎē ᾀ2Î―1á―ģΞÎē ᾀ2Î―1έΞϐ ᾀ2Î―1á―ģΞϐ ᾀ2Î―1ÎĩΞÎē ᾀ2Î―1ÎĩΞϐ ᾀ2Î―1έΞÎĩτ ᾀ2Î―1á―ģΞÎĩτ ᾀ2Î―1ÎĩΞέτ ᾀ2Î―1ÎĩΞá―ģτ ᾀ2Î―1έΞπ ᾀ2Î―1á―ģΞπ ᾀ2Î―1ÎĩΞπ ᾀ2Î―1έΞφ ᾀ2Î―1á―ģΞφ ᾀ2Î―1ÎĩΞφ ᾀ2Î―1Î­Î― ᾀ2Î―1á―ģÎ― ᾀ2Î―1ÎĩÎ― ᾀ3Î―2Î­Î―ÎĩÎđ ᾀ3Î―2á―ģÎ―ÎĩÎđ ᾀ3Î―2ÎĩÎ―ÎŪ ᾀ3Î―2ÎĩÎ―á―ĩ ᾀ3Î―2Î­Î―Ï„Îĩς. ᾀ3Î―2á―ģÎ―Ï„Îĩς. ᾀ3Î―2Î­Î―Ï„ÎĩÏē. ᾀ3Î―2á―ģÎ―Ï„ÎĩÏē. ᾀ3Î―2Î­Î―Ï„Îĩσ. ᾀ3Î―2á―ģÎ―Ï„Îĩσ. ᾀ2Î―1Îĩ2Îū1 ᾀ3Î―2Îĩ3Îū2ÎŊΚι ᾀ3Î―2Îĩ3Îū2á―·ÎšÎą ᾀ3Î―2Îĩ3Îū2ÎđΚΎ ᾀ3Î―2Îĩ3Îū2ÎđÎšá―ą ᾀ2Î―1έÎŋρ ᾀ2Î―1á―ģÎŋρ ᾀ2Î―1Îĩόρ ᾀ2Î―1Îĩá―đρ ᾀ2Î―1Îĩπ ᾀ3Î―2ÎĩÏ€Î― ᾀ3Î―2Îĩπτ ᾀ2Î―1ÎĩÏÎąÏƒÏ„ ᾀ2Î―1ÎĩÏÎąÏēτ ᾀ2Î―1Î­ÏÎąÏƒÏ„ ᾀ2Î―1á―ģÏÎąÏƒÏ„ ᾀ2Î―1Î­ÏÎąÏēτ ᾀ2Î―1á―ģÏÎąÏēτ ᾀ2Î―1ÎĩρΎστ ᾀ2Î―1ÎĩÏá―ąÏƒÏ„ ᾀ2Î―1ÎĩρΎÏēτ ᾀ2Î―1ÎĩÏá―ąÏēτ ᾀ2Î―1ÎĩρÎģ ᾄ2Î―1ÎĩρÎģ ᾀ2Î―1έρÎģ ᾀ2Î―1á―ģρÎģ ᾀ2Î―1έρÎĩÎđΚ ᾀ2Î―1á―ģρÎĩÎđΚ ᾀ2Î―1ÎĩρÎĩÎŊΚ ᾀ2Î―1ÎĩρÎĩá―·Îš ᾀ2Î―1έρÎĩÎđσ ᾀ2Î―1á―ģρÎĩÎđσ ᾀ2Î―1έρÎĩÎđÏē ᾀ2Î―1á―ģρÎĩÎđÏē ᾀ2Î―1ÎĩρÎĩÎŊσ ᾀ2Î―1ÎĩρÎĩá―·Ïƒ ᾀ2Î―1ÎĩρÎĩÎŊÏē ᾀ2Î―1ÎĩρÎĩá―·Ïē ᾀ2Î―1ÎĩρÎĩÏÎ―Î·Ï„ ᾀ2Î―1ÎĩρÎĩá―ŧÎ―Î·Ï„ ᾀ2Î―1ÎĩρÎĩÏ…Î―ÎŪτ ᾀ2Î―1ÎĩρÎĩÏ…Î―á―ĩτ ᾀ2Î―1ÎĩρÎŊ ᾀ2Î―1ÎĩÏá―· ᾀ2Î―1ÎĩρÎđ ᾀ2Î―1ÎĩρυÎļρÎŊÎąÏƒÏ„ ᾀ2Î―1ÎĩρυÎļÏá―·ÎąÏƒÏ„ ᾀ2Î―1ÎĩρυÎļρÎŊÎąÏēτ ᾀ2Î―1ÎĩρυÎļÏá―·ÎąÏēτ ᾀ2Î―1ÎĩρυÎļρÎđΎστ ᾀ2Î―1ÎĩρυÎļρÎđá―ąÏƒÏ„ ᾀ2Î―1ÎĩρυÎļρÎđÎŽÏēτ ᾀ2Î―1ÎĩρυÎļρÎđá―ąÏēτ ᾀ2Î―1έστÎđ ᾀ2Î―1á―ģστÎđ ᾀ2Î―1έÏēτÎđ ᾀ2Î―1á―ģÏēτÎđ ᾀ2Î―1ÎĩστÎŊ ᾀ2Î―1ÎĩÏƒÏ„á―· ᾀ2Î―1ÎĩÏēτÎŊ ᾀ2Î―1ÎĩÏēÏ„á―· ᾀ2Î―1Î­Ï„ÎąÎđ ᾀ2Î―1á―ģÏ„ÎąÎđ ᾀ2Î―1ÎĩÏ„ÎąÎŊ ᾀ2Î―1ÎĩÏ„Îąá―· ᾀ2Î―1έτÎŋÎđ ᾀ2Î―1á―ģτÎŋÎđ ᾀ2Î―1ÎĩτÎŋÎŊ ᾀ2Î―1ÎĩτÎŋá―· ᾀ2Î―1Îĩτυ ᾀ2Î―1έτυ ᾀ2Î―1á―ģτυ ᾀ2Î―1Îĩτύ ᾀ2Î―1Îĩτá―ŧ ᾀ2Î―1ÎĩύÎļ ᾀ2Î―1Îĩá―ŧÎļ ᾀ2Î―1ÎĩυÎļ ᾄ2Î―1ÎĩυΚ ᾀ2Î―1ÎĩύΚ ᾀ2Î―1Îĩá―ŧΚ ᾀ2Î―1ÎĩυÎŧ ᾀ2Î―1ÎĩύρÎĩτ ᾀ2Î―1Îĩá―ŧρÎĩτ ᾀ2Î―1Îĩυρέτ ᾀ2Î―1Îĩυρá―ģτ ᾀ2Î―1ÎĩυφÎŪΞητ ᾀ2Î―1Îĩυφá―ĩΞητ ᾀ2Î―1ÎĩυφηΞÎŪτ ᾀ2Î―1ÎĩυφηΞá―ĩτ ᾀ2Î―1Îĩύχ ᾀ2Î―1Îĩá―ŧχ ᾀ2Î―1Îĩυχ ᾀ2Î―1ÎĩύÎū ᾀ2Î―1Îĩá―ŧÎū ᾀ2Î―1ÎĩυÎū ᾀ2Î―1ηυÎū ᾀ2Î―1ηáŋĶÎģ ᾀ2Î―1ηυÎģ ᾀ2Î―1ÎĩυΚτ ᾀ2Î―1έφ ᾀ2Î―1á―ģφ ᾀ2Î―1Îĩφ ᾀ3Î―2ÎĩφΎÎŧ ᾀ3Î―2ÎĩÏ†á―ąÎŧ ᾀ3Î―2έφÎĩÎŧ ᾀ3Î―2á―ģφÎĩÎŧ ᾀ3Î―2ÎĩφέÎŧ ᾀ3Î―2Îĩφá―ģÎŧ ᾀ2Î―1Îĩχέ ᾀ2Î―1Îĩχá―ģ ᾀ2Î―1ÎĩχÎĩ ᾀ2Î―1Î­ÏˆÎą ᾀ2Î―1á―ģÏˆÎą ᾀ2Î―1ÎĩψΎ ᾀ2Î―1ÎĩÏˆá―ą ᾀ2Î―1ηÎģÎĩΞ ᾀ2Î―1ÎŪÎī ᾀ2Î―1á―ĩÎī ᾀ2Î―1ηÎī ᾀ2Î―1ÎŪΚÎĩσ ᾀ2Î―1á―ĩΚÎĩσ ᾀ2Î―1ÎŪΚÎĩÏē ᾀ2Î―1á―ĩΚÎĩÏē ᾀ2Î―1ηΚέσ ᾀ2Î―1ηΚá―ģσ ᾀ2Î―1ηΚέÏē ᾀ2Î―1ηΚá―ģÏē ᾀ2Î―1ÎŪΚÎŋ ᾀ2Î―1á―ĩΚÎŋ ᾀ2Î―1ηΚό ᾀ2Î―1ηΚá―đ ᾀ2Î―1ηΚÎŋ ᾀ2Î―1ηÎŧΎΚ ᾀ2Î―1ηÎŧá―ąÎš ᾀ2Î―1ηÎŧιΚ ᾀ2Î―1ÎŪÎŧÎąÏ„Îŋς. ᾀ2Î―1á―ĩÎŧÎąÏ„Îŋς. ᾀ2Î―1ÎŪÎŧÎąÏ„ÎŋÏē. ᾀ2Î―1á―ĩÎŧÎąÏ„ÎŋÏē. ᾀ2Î―1ÎŪÎŧÎąÏ„Îŋσ. ᾀ2Î―1á―ĩÎŧÎąÏ„Îŋσ. ᾀ2Î―1ηÎŧÎŽÏ„Îŋυ ᾀ2Î―1ηÎŧá―ąÏ„Îŋυ ᾀ2Î―1ηÎŧΎτω ᾀ2Î―1ηÎŧá―ąÏ„Ï‰ ᾀ2Î―1ÎŪÎŧÎąÏ„ÎŋÎ―. ᾀ2Î―1á―ĩÎŧÎąÏ„ÎŋÎ―. ᾀ2Î―1ÎŪÎŧÎąÏ„Îĩ. ᾀ2Î―1á―ĩÎŧÎąÏ„Îĩ. ᾀ2Î―1ηÎŧÎŽÏ„ÎŋÎđ ᾀ2Î―1ηÎŧá―ąÏ„ÎŋÎđ ᾀ2Î―1ÎŪÎŧÎąÏ„ÎŋÎđ ᾀ2Î―1á―ĩÎŧÎąÏ„ÎŋÎđ ᾀ2Î―1ÎŪÎŧÎąÏ„Îą ᾀ2Î―1á―ĩÎŧÎąÏ„Îą ᾀ2Î―1ηÎŧÎĩÎģ ᾀ2Î―1ηÎŧÎĩÎŪ ᾀ2Î―1ηÎŧÎĩá―ĩ ᾀ2Î―1ηÎŧÎĩá―ī ᾀ2Î―1ηÎŧÎĩÎŋ ᾀ2Î―1ηÎŧÎĩÎĩ ᾀ2Î―1ηÎŧÎĩáŋķ ᾀ2Î―1ηÎŧÎĩέ ᾀ2Î―1ηÎŧÎĩá―ģ ᾀ2Î―1ηÎŧÎĩá―ē ᾀ2Î―1ηÎŧÎĩáŋ† ᾀ2Î―1ηÎŧέη ᾀ2Î―1ηÎŧá―ģη ᾀ2Î―1ÎŪÎŧÎĩÎđπ ᾀ2Î―1á―ĩÎŧÎĩÎđπ ᾀ2Î―1ηÎŧÎĩÎŊπ ᾀ2Î―1ηÎŧÎĩá―·Ï€ ᾀ2Î―1ηÎŧÎŪ ᾀ2Î―1ηÎŧá―ĩ ᾀ2Î―1ηÎŧá―ī ᾀ2Î―1ηÎŧÎŋáŋĶ ᾀ2Î―1ηÎŧÎĩáŋ– ᾀ2Î―1ηÎŧáŋ† ᾀ2Î―1ηÎŧέ ᾀ2Î―1ηÎŧá―ģ ᾀ2Î―1ηÎŧá―ē ᾀ2Î―1ηÎŧÎŋáŋ– ᾀ2Î―1ηÎŧáŋķ ᾀ2Î―1ÎŪÎŧÎđΚ ᾀ2Î―1á―ĩÎŧÎđΚ ᾀ2Î―1ηÎŧÎŊΚ ᾀ2Î―1ηÎŧá―·Îš ᾀ2Î―1ÎŪÎŧÎđÎŋ ᾀ2Î―1á―ĩÎŧÎđÎŋ ᾀ2Î―1ηÎŧÎŊÎŋ ᾀ2Î―1ηÎŧá―·Îŋ ᾀ2Î―1ηÎŧÎŊω ᾀ2Î―1ηÎŧá―·Ï‰ ᾀ2Î―1ÎŪÎŧÎđÎą ᾀ2Î―1á―ĩÎŧÎđÎą ᾀ2Î―1ÎŪÎŧÎđπ ᾀ2Î―1á―ĩÎŧÎđπ ᾀ2Î―1ηÎŧÎŊπ ᾀ2Î―1ηÎŧá―·Ï€ ᾀ2Î―1ηÎŧÎđφ ᾀ2Î―1ÎŪΞ ᾀ2Î―1á―ĩΞ ᾀ2Î―1ηΞ ᾀ2Î―1ÎŪÎ―Ï… ᾀ2Î―1á―ĩÎ―Ï… ᾀ2Î―1Î·Î―Ï ᾀ2Î―1Î·Î―á―ŧ ᾀ2Î―1ÎŪρÎĩÎđ ᾀ2Î―1á―ĩρÎĩÎđ ᾀ2Î―1ηρÎĩÎŊ ᾀ2Î―1ηρÎĩá―· ᾀ2Î―1ηρέΞ ᾀ2Î―1ηρá―ģΞ ᾀ2Î―1ηρÎĩΞ ᾀ2Î―1ηρÎĩφ ᾀ2Î―1ÎŪρÎđ ᾀ2Î―1á―ĩρÎđ ᾀ2Î―1ηρÎŊ ᾀ2Î―1Î·Ïá―· ᾀ2Î―1ÎŪρÎŋτ ᾀ2Î―1á―ĩρÎŋτ ᾀ2Î―1ηρότ ᾀ2Î―1ηρá―đτ ᾀ2Î―1ÎŪσσ ᾀ2Î―1á―ĩσσ ᾀ2Î―1ÎŪÏēÏē ᾀ2Î―1á―ĩÏēÏē ᾀ2Î―1ησσ ᾀ2Î―1ηÏēÏē ᾀ2Î―1ÎŪττ ᾀ2Î―1á―ĩττ ᾀ2Î―1ηττ ᾀ2Î―1ÎŪÏ†Îą ᾀ2Î―1á―ĩÏ†Îą ᾀ2Î―1Î·Ï†Îą ᾀ2Î―1ÎŊÎąÏ„ ᾀ2Î―1á―·ÎąÏ„ ᾀ2Î―1ÎđÎŽÏ„ ᾀ2Î―1Îđá―ąÏ„ ᾀ2Î―1ÎŊÎīÎđÎŋ ᾀ2Î―1á―·ÎīÎđÎŋ ᾀ2Î―1ÎđÎīÎŊÎŋ ᾀ2Î―1ÎđÎīá―·Îŋ ᾀ2Î―1ÎđÎīÎŊω ᾀ2Î―1ÎđÎīá―·Ï‰ ᾀ2Î―1ÎŊÎīÎđÎą ᾀ2Î―1á―·ÎīÎđÎą ᾀ2Î―1ÎđÎīÎđτ ᾄ2Î―1ÎđÎīρÎŋς ᾄ2Î―1ÎđÎīρÎŋÏē ᾄ2Î―1ÎđÎīρÎŋσ ᾀ2Î―1ÎŊÎīρÎŋυ ᾀ2Î―1á―·ÎīρÎŋυ ᾀ2Î―1ÎŊÎīρω ᾀ2Î―1á―·Îīρω ᾄ2Î―1ÎđÎīρÎŋÎ― ᾄ2Î―1ÎđÎīρÎĩ ᾀ2Î―1ÎŊÎīρÎŋÎđ ᾀ2Î―1á―·ÎīρÎŋÎđ ᾄ2Î―1ÎđÎīρÎŋÎđ ᾀ2Î―1ÎŊÎīρυτ ᾀ2Î―1á―·Îīρυτ ᾀ2Î―1ÎđÎīρύτ ᾀ2Î―1ÎđÎīρá―ŧτ ᾀ2Î―1ÎđÎīρωτ ᾀ2Î―1ÎđÎīρώτ ᾀ2Î―1ÎđÎīÏá――Ï„ ᾀ2Î―1ÎŊÎĩρ ᾀ2Î―1á―·Îĩρ ᾀ2Î―1Îđέρ ᾀ2Î―1Îđá―ģρ ᾀ2Î―1ÎđÎĩρΎτ ᾀ2Î―1ÎđÎĩÏá―ąÏ„ ᾀ3Î―2Îđέρω ᾀ3Î―2Îđá―ģρω ᾀ2Î―1ÎŊΚ ᾀ2Î―1á―·Îš ᾀ2Î―1ÎđΚ ᾄ2Î―1ÎđΚ ᾀ3Î―2ÎŊΚη ᾀ3Î―2á―·ÎšÎ· ᾀ3Î―2ÎđΚÎŪ ᾀ3Î―2ÎđΚá―ĩ ᾀ2Î―1ÎŊÎŧ ᾀ2Î―1á―·Îŧ ᾀ2Î―1ÎđÎŧ ᾀ2Î―1ÎŊÎžÎąÏƒÏ„ ᾀ2Î―1á―·ÎžÎąÏƒÏ„ ᾀ2Î―1ÎŊΞιÏēτ ᾀ2Î―1á―·ÎžÎąÏēτ ᾀ2Î―1ÎđΞΎστ ᾀ2Î―1ÎđÎžá―ąÏƒÏ„ ᾀ2Î―1ÎđΞΎÏēτ ᾀ2Î―1ÎđÎžá―ąÏēτ ᾀ2Î―1ÎŊÎŋυ ᾀ2Î―1á―·Îŋυ ᾀ2Î―1ÎđÎŋύ ᾀ2Î―1ÎđÎŋá―ŧ ᾄ2Î―1Îđππ ᾀ2Î―1ÎŊππ ᾀ2Î―1á―·Ï€Ï€ ᾀ2Î―1Îđσ ᾀ2Î―1ÎđÏē ᾄ2Î―1Îđσ ᾄ2Î―1ÎđÏē ᾀ2Î―1ÎŊσ ᾀ2Î―1á―·Ïƒ ᾀ2Î―1ÎŊÏē ᾀ2Î―1á―·Ïē ᾀ3Î―2Îđσáūķτ ᾀ3Î―2ÎđÏēáūķτ ᾀ3Î―2ÎđσΎτ ᾀ3Î―2ÎđÏƒá―ąÏ„ ᾀ3Î―2ÎđÏēÎŽÏ„ ᾀ3Î―2ÎđÏēá―ąÏ„ ᾀ3Î―2ÎŊστ ᾀ3Î―2á―·ÏƒÏ„ ᾀ3Î―2ÎŊÏēτ ᾀ3Î―2á―·Ïēτ ᾀ3Î―2Îđστ ᾀ3Î―2ÎđÏēτ ᾀ4Î―3ÎđστÎŋρη ᾀ4Î―3ÎđÏēτÎŋρη ᾀ4Î―3Îđστόρη ᾀ4Î―3Îđστá―đρη ᾀ4Î―3ÎđÏēτόρη ᾀ4Î―3ÎđÏēτá―đρη ᾀ4Î―3ÎđστÎŋρÎŪ ᾀ4Î―3ÎđστÎŋρá―ĩ ᾀ4Î―3ÎđÏēτÎŋρÎŪ ᾀ4Î―3ÎđÏēτÎŋρá―ĩ ᾀ3Î―2ÎŊσχ ᾀ3Î―2á―·ÏƒÏ‡ ᾀ3Î―2ÎŊÏēχ ᾀ3Î―2á―·Ïēχ ᾀ4Î―3ÎŊσχυ ᾀ4Î―3á―·ÏƒÏ‡Ï… ᾀ4Î―3ÎŊÏēχυ ᾀ4Î―3á―·Ïēχυ ᾄ2Î―1Îđχ ᾀ2Î―1ÎŊχ ᾀ2Î―1á―·Ï‡ ᾀ2Î―1ÎđÏ‡Î―Îĩύτ ᾀ2Î―1ÎđÏ‡Î―Îĩá―ŧτ ᾀ2Î―1ÎŊψ ᾀ2Î―1á―·Ïˆ ᾀ2Î―1Îđψ ᾀ2Î―1όÎīÎĩ ᾀ2Î―1á―đÎīÎĩ ᾀ2Î―1ÎŋÎīέ ᾀ2Î―1ÎŋÎīá―ģ ᾄ2Î―1ÎŋÎķ ᾀ2Î―1όÎķ ᾀ2Î―1á―đÎķ ᾀ2Î―1ÎŋÎđΚÎĩ ᾀ2Î―1ÎŋÎđΚÎŋÎ― ᾄ2Î―1ÎŋÎđΚ ᾀ2Î―1ÎŋÎŊΚ ᾀ2Î―1Îŋá―·Îš ᾀ2Î―1ÎŋÎđΚτÎŊ ᾀ2Î―1ÎŋÎđÎšÏ„á―· ᾄ2Î―1ÎŋÎđΚτ ᾀ2Î―1ÎŋÎŊΚτ ᾀ2Î―1Îŋá―·ÎšÏ„ ᾀ2Î―1ÎŋÎŊΞωΚ ᾀ2Î―1Îŋá―·ÎžÏ‰Îš ᾀ2Î―1ÎŋÎđΞώΚ ᾀ2Î―1ÎŋÎđÎžá――Îš ᾀ2Î―1ÎŋÎđΞωΚ ᾀ2Î―1ÎŋÎđÎ― ᾄ2Î―1ÎŋÎđÎ― ᾀ2Î―1ÎŋÎŊÎ― ᾀ2Î―1Îŋá―·Î― ᾄ2Î―1ÎŋÎđστρ ᾄ2Î―1ÎŋÎđÏēτρ ᾀ2Î―1ÎŋÎŊστρ ᾀ2Î―1Îŋá―·ÏƒÏ„Ï ᾀ2Î―1ÎŋÎŊÏēτρ ᾀ2Î―1Îŋá―·Ïēτρ ᾀ2Î―1όÎŧ ᾀ2Î―1á―đÎŧ ᾀ2Î―1ÎŋÎŧ ᾄ2Î―1ÎŋÎŧ ᾀ3Î―2ÎŋÎŧΚ ᾀ3Î―2ÎŋÎŧÎŋ ᾀ2Î―1ÎŋΞÎēρÎŊ ᾀ2Î―1ÎŋΞÎēÏá―· ᾀ2Î―1ÎŋΞϐρÎŊ ᾀ2Î―1ÎŋÎžÏÏá―· ᾀ2Î―1ÎŋΞÎēρáŋ– ᾀ2Î―1ÎŋΞϐρáŋ– ᾄ2Î―1ÎŋΞÎēρÎŋ ᾄ2Î―1ÎŋΞϐρÎŋ ᾀ2Î―1όΞÎēρÎŋ ᾀ2Î―1á―đΞÎēρÎŋ ᾀ2Î―1όΞϐρÎŋ ᾀ2Î―1á―đΞϐρÎŋ ᾀ2Î―1όΞÎēρω ᾀ2Î―1á―đΞÎēρω ᾀ2Î―1όΞϐρω ᾀ2Î―1á―đΞϐρω ᾄ2Î―1ÎŋΞÎēÏÎą ᾄ2Î―1ÎŋÎžÏÏÎą ᾀ2Î―1ÎŋΞÎŪÎŧ ᾀ2Î―1ÎŋΞá―ĩÎŧ ᾀ2Î―1ÎŋΞηÎŧ ᾀ2Î―1ÎŋΞÎŊÎŧ ᾀ2Î―1ÎŋÎžá―·Îŧ ᾀ2Î―1ÎŋΞÎđÎŧ ᾀ2Î―1όΞÎđχ ᾀ2Î―1á―đΞÎđχ ᾀ2Î―1ÎŋΞÎđχ ᾀ2Î―1όΞÎŋ ᾀ2Î―1á―đΞÎŋ ᾀ2Î―1ÎŋΞό ᾀ2Î―1ÎŋΞá―đ ᾀ2Î―1ÎŋΞÎŋ ᾀ3Î―2ÎŋΞÎŋÎļ ᾀ3Î―2όΞÎŋυ. ᾀ3Î―2á―đΞÎŋυ. ᾀ3Î―2όΞáŋģ. ᾀ3Î―2á―đΞáŋģ. ᾀ3Î―2όΞω. ᾀ3Î―2á―đΞω. ᾀ2Î―2όΞÎŋÎđÎ―. ᾀ2Î―2á―đΞÎŋÎđÎ―. ᾀ3Î―2ÏŒÎžÏ‰Î―. ᾀ3Î―2á―đÎžÏ‰Î―. ᾀ3Î―2όΞÎŋÎđς. ᾀ3Î―2á―đΞÎŋÎđς. ᾀ3Î―2όΞÎŋÎđÏē. ᾀ3Î―2á―đΞÎŋÎđÏē. ᾀ3Î―2όΞÎŋÎđσ. ᾀ3Î―2á―đΞÎŋÎđσ. ᾀ3Î―2όΞÎŋυς. ᾀ3Î―2á―đΞÎŋυς. ᾀ3Î―2όΞÎŋυÏē. ᾀ3Î―2á―đΞÎŋυÏē. ᾀ3Î―2όΞÎŋυσ. ᾀ3Î―2á―đΞÎŋυσ. ᾀ2Î―1ÏŒÎ― ᾀ2Î―1á―đÎ― ᾀ2Î―1ÎŋÎ― ᾄ2Î―1Îŋπ ᾀ2Î―1όπ ᾀ2Î―1á―đπ ᾀ2Î―1όρ ᾀ2Î―1á―đρ ᾀ2Î―1Îŋρ ᾄ2Î―1Îŋρ ᾀ3Î―2ÎŋρÎģÎŽÎķ ᾀ3Î―2ÎŋρÎģá―ąÎķ ᾄ3Î―2ÎŋρÎļ ᾀ3Î―2όρÎļ ᾀ3Î―2á―đρÎļ ᾀ3Î―2ÎŋρΞΎ ᾀ3Î―2ÎŋÏÎžá―ą ᾀ3Î―2Îŋρτ ᾀ3Î―2Îŋρύ ᾀ3Î―2Îŋρá―ŧ ᾀ2Î―1όσÎđ ᾀ2Î―1á―đσÎđ ᾀ2Î―1όÏēÎđ ᾀ2Î―1á―đÏēÎđ ᾀ2Î―1ÎŋσÎŊ ᾀ2Î―1ÎŋÏƒá―· ᾀ2Î―1ÎŋÏēÎŊ ᾀ2Î―1ÎŋÏēá―· ᾀ2Î―1ÎŋσÎđ ᾀ2Î―1ÎŋÏēÎđ ᾄ2Î―1ÎŋσΞ ᾄ2Î―1ÎŋÏēΞ ᾀ2Î―1όσΞ ᾀ2Î―1á―đσΞ ᾀ2Î―1όÏēΞ ᾀ2Î―1á―đÏēΞ ᾀ2Î―1όσφρ ᾀ2Î―1á―đσφρ ᾀ2Î―1όÏēφρ ᾀ2Î―1á―đÏēφρ ᾀ2Î―1Îŋσφρ ᾀ2Î―1ÎŋÏēφρ ᾀ2Î―1ÎŋÏÎą ᾀ2Î―1Îŋá―ŧÎą ᾀ2Î―1ÎŋÏ…ÎŽ ᾀ2Î―1ÎŋÏ…á―ą ᾀ2Î―1ÎŋύσÎđ ᾀ2Î―1Îŋá―ŧσÎđ ᾀ2Î―1ÎŋύÏēÎđ ᾀ2Î―1Îŋá―ŧÏēÎđ ᾀ2Î―1ÎŋυσÎŊ ᾀ2Î―1ÎŋÏ…Ïƒá―· ᾀ2Î―1ÎŋυÏēÎŊ ᾀ2Î―1ÎŋυÏēá―· ᾀ2Î―1Îŋύτ ᾀ2Î―1Îŋá―ŧτ ᾀ2Î―1Îŋυτ ᾀ2Î―1ÎŋφÎļ ᾀ2Î―1όχÎĩυτ ᾀ2Î―1á―đχÎĩυτ ᾀ2Î―1ÎŋχÎĩύτ ᾀ2Î―1ÎŋχÎĩá―ŧτ ᾄ2Î―1ÎŋχÎŧ ᾀ2Î―1όχÎŧ ᾀ2Î―1á―đχÎŧ ᾀ2Î―1Îŋψ ᾄ2Î―1Îŋψ ᾀ2Î―1όψ ᾀ2Î―1á―đψ áž€Î―Ï„Îą2Î―1Îđσ áž€Î―Ï„Îą2Î―1ÎđÏē áž€Î―Ï„Îą2Î―1ÎŊσ áž€Î―Ï„Îą2Î―1á―·Ïƒ áž€Î―Ï„Îą2Î―1ÎŊÏē áž€Î―Ï„Îą2Î―1á―·Ïē áž€Î―Ï„ÎĩÎđ2σ1 áž€Î―Ï„ÎĩÎđ2Ïē1 áž€Î―Ï„Îĩ2Κ1 áž€Î―Ï„Îĩ2Î―1 áž€Î―Ï„Îĩ2Îū1 áž€Î―Ï„ÎđÎīυ2σ1 áž€Î―Ï„ÎđÎīυ2Ïē1 áž€Î―Ï„ÎđÏ€ÎąÏÎĩ2Κ1 áž€Î―Ï„ÎđÏ€ÎąÏÎĩ2Îū1 áž€Î―Ï„ÎđπρÎŋ2σ1 áž€Î―Ï„ÎđπρÎŋ2Ïē1 áž€Î―Ï„ÎđπρÎŋσ3Κ2υ áž€Î―Ï„ÎđπρÎŋÏē3Κ2υ áž€Î―Ï„Îđσύ2Î―1 áž€Î―Ï„Îđσá―ŧ2Î―1 áž€Î―Ï„ÎđÏēύ2Î―1 áž€Î―Ï„ÎđÏēá―ŧ2Î―1 áž€Î―Ï„Îđσυ2Î―1 áž€Î―Ï„ÎđÏēυ2Î―1 ᾀ2Î―1ύ ᾀ2Î―1á―ŧ ᾀ2Î―1υ ᾀ3Î―2υΞ ᾀ3Î―2ύσ ᾀ3Î―2á―ŧσ ᾀ3Î―2ύÏē ᾀ3Î―2á―ŧÏē ᾀ3Î―2υσ ᾀ3Î―2υÏē ᾀ2Î―1υπέ2ρ1 ᾀ2Î―1υπá―ģ2ρ1 ᾀ2Î―1υπÎĩ2ρ1 ᾄ2Î―1áŋģÎī ᾀ2Î―1áŋīÎī ᾀ2Î―1ώÎīυ ᾀ2Î―1á――Îīυ ᾀ2Î―1ωÎīύ ᾀ2Î―1ωÎīá―ŧ ᾀ2Î―1ώÎđ ᾀ2Î―1á――Îđ ᾀ2Î―1ωÎŊ ᾀ2Î―1Ï‰á―· ᾀ2Î―1ώÎŧ ᾀ2Î―1á――Îŧ ᾀ2Î―1ωÎŧ ᾀ2Î―1ώΞ ᾀ2Î―1á――Îž ᾀ2Î―1ωΞ ᾀ2Î―1ÏŽÎ― ᾀ2Î―1á――Î― ᾀ2Î―1Ï‰Î― ᾀ2Î―1ωρ ᾄ2Î―1ωρ ᾀ2Î―1ώρ ᾀ2Î―1á――Ï ᾄ2Î―1ωτÎŋ ᾀ2Î―1ώτÎŋ ᾀ2Î―1á――Ï„Îŋ ᾀ2Î―1ωφέÎŧ ᾀ2Î―1ωφá―ģÎŧ ᾀ2Î―1ωφÎĩÎŧ ᾀ2Î―1ώχυ ᾀ2Î―1á――Ï‡Ï… ᾀ2Î―1ωχύ ᾀ2Î―1ωχá―ŧ áž€Ï€Îą2Î―1ÎąÎđ កπΎ2Î―1Îŋυ áž€Ï€á―ą2Î―1Îŋυ áž€Ï€Îą2Î―1Îŋύρ áž€Ï€Îą2Î―1Îŋá―ŧρ ážÏ€Îą2Îū1 កπÎĩ2Κ1Îŧ ខπÎĩ2ρ1 កπÎŋσυ2Î―1 កπÎŋÏēυ2Î―1 កπρό2σ1 កπρá―đ2σ1 កπρό2Ïē1 កπρá―đ2Ïē1 កπρÎŋ2σ1 កπρÎŋ2Ïē1 កπρό3σ2ΚÎĩ កπρá―đ3σ2ΚÎĩ កπρό3Ïē2ΚÎĩ កπρá―đ3Ïē2ΚÎĩ កπρÎŋ3σ2Κέ កπρÎŋ3σ2Κá―ģ កπρÎŋ3Ïē2Κέ កπρÎŋ3Ïē2Κá―ģ កπρό3σ2ΚÎŋ កπρá―đ3σ2ΚÎŋ កπρό3Ïē2ΚÎŋ កπρá―đ3Ïē2ΚÎŋ កπρÎŋ3σ2Κό កπρÎŋ3σ2Κá―đ កπρÎŋ3Ïē2Κό កπρÎŋ3Ïē2Κá―đ កπρÎŋ3σ2τ កπρÎŋ3Ïē2τ ážÏÏ€Îą2Îū1 កρρÎĩ2Î―1ω កρχÎđσυ2Î―1 កρχÎđÏēυ2Î―1 កστÎĩ2ρ1ω ᾀÏēτÎĩ2ρ1ω កσύ2Î―1 កσá―ŧ2Î―1 ᾀÏēύ2Î―1 ᾀÏēá―ŧ2Î―1 កσυ2Î―1 ᾀÏēυ2Î―1 ᾀÎūύ2Î―1 ᾀÎūá―ŧ2Î―1 ᾀÎūυ2Î―1 Îąá―Ï„Î­2Κ1Ξ Îąá―Ï„á―ģ2Κ1Ξ Îąá―Ï„Îĩ2Κ1Ξ Îąá―Ï„Îĩ2Îū1 កω2σ1φ កω2Ïē1φ .ÎģÎĩÏÎą2σ1φ .ÎģÎĩÏÎą2Ïē1φ .ÎīÎą2σ1π .ÎīÎą2Ïē1π .ÎīÎđÎąÎžÏ†Îđ2σ1Îē .ÎīÎđÎąÎžÏ†Îđ2Ïē1Îē .ÎīÎđÎąÎžÏ†Îđ2σ1ϐ .ÎīÎđÎąÎžÏ†Îđ2Ïē1ϐ .ÎīÎđέ2Κ1ρÎŋ .ÎīÎđá―ģ2Κ1ρÎŋ .ÎīÎđÎĩ2Κ1ρό .ÎīÎđÎĩ2Κ1ρá―đ .ÎīÎđέ2Îū1 .ÎīÎđá―ģ2Îū1 .ÎīÎđÎĩ2Îū1 .ÎīÎđΚι2σ1π .ÎīÎđΚι2Ïē1π .ÎīÎđό2σ1Κ .ÎīÎđá―đ2σ1Κ .ÎīÎđό2Ïē1Κ .ÎīÎđá―đ2Ïē1Κ .ÎīÎđÎŋ2σ1Κ .ÎīÎđÎŋ2Ïē1Κ .ÎīÎđό2σ1π .ÎīÎđá―đ2σ1π .ÎīÎđό2Ïē1π .ÎīÎđá―đ2Ïē1π .ÎīÎđÎŋ2σ1π .ÎīÎđÎŋ2Ïē1π .ÎīÎŊ2σ1Îą .Îīá―·2σ1Îą .ÎīÎŊ2Ïē1Îą .Îīá―·2Ïē1Îą .ÎīÎđ2σ1ÎŽ .ÎīÎđ2σ1á―ą .ÎīÎđ2Ïē1ÎŽ .ÎīÎđ2Ïē1á―ą .ÎīÎŊ2σ1η .Îīá―·2σ1η .ÎīÎŊ2Ïē1η .Îīá―·2Ïē1η .ÎīÎđ2σ1ÎŪ .ÎīÎđ2σ1á―ĩ .ÎīÎđ2Ïē1ÎŪ .ÎīÎđ2Ïē1á―ĩ .ÎīÎŊ2σ1Îĩ .Îīá―·2σ1Îĩ .ÎīÎŊ2Ïē1Îĩ .Îīá―·2Ïē1Îĩ .ÎīÎđ2σ1Îĩ .ÎīÎđ2Ïē1Îĩ .ÎīÎđ2σ1Îļ .ÎīÎđ2Ïē1Îļ .Îīύ2σ1 .Îīá―ŧ2σ1 .Îīύ2Ïē1 .Îīá―ŧ2Ïē1 .Îīυ2σ1 .Îīυ2Ïē1 Îīύ3σ2ω. Îīá―ŧ3σ2ω. Îīύ3Ïē2ω. Îīá―ŧ3Ïē2ω. Îīύ3σ2ÎĩÎđς. Îīá―ŧ3σ2ÎĩÎđς. Îīύ3Ïē2ÎĩÎđÏē. Îīá―ŧ3Ïē2ÎĩÎđÏē. Îīύ3σ2ÎĩÎđσ. Îīá―ŧ3σ2ÎĩÎđσ. Îīύ3σ2ÎĩÎđ. Îīá―ŧ3σ2ÎĩÎđ. Îīύ3Ïē2ÎĩÎđ. Îīá―ŧ3Ïē2ÎĩÎđ. .Îīύ3σ2Îĩτ .Îīá―ŧ3σ2Îĩτ .Îīύ3Ïē2Îĩτ .Îīá―ŧ3Ïē2Îĩτ Îīύ3σ2ÎŋΞÎĩÎ―. Îīá―ŧ3σ2ÎŋΞÎĩÎ―. Îīύ3Ïē2ÎŋΞÎĩÎ―. Îīá―ŧ3Ïē2ÎŋΞÎĩÎ―. Îīύ3σ2ÎŋυσÎđÎ―. Îīá―ŧ3σ2ÎŋυσÎđÎ―. Îīύ3Ïē2ÎŋυÏēÎđÎ―. Îīá―ŧ3Ïē2ÎŋυÏēÎđÎ―. Îīύ3σ2ÎŋÎđΞÎđ. Îīá―ŧ3σ2ÎŋÎđΞÎđ. Îīύ3Ïē2ÎŋÎđΞÎđ. Îīá―ŧ3Ïē2ÎŋÎđΞÎđ. Îīύ3σ2ÎŋÎđς. Îīá―ŧ3σ2ÎŋÎđς. Îīύ3Ïē2ÎŋÎđÏē. Îīá―ŧ3Ïē2ÎŋÎđÏē. Îīύ3σ2ÎŋÎđσ. Îīá―ŧ3σ2ÎŋÎđσ. Îīύ3σ2ÎŋÎđ. Îīá―ŧ3σ2ÎŋÎđ. Îīύ3Ïē2ÎŋÎđ. Îīá―ŧ3Ïē2ÎŋÎđ. Îīύ3σ2ÎŋÎđτÎŋÎ―. Îīá―ŧ3σ2ÎŋÎđτÎŋÎ―. Îīύ3Ïē2ÎŋÎđτÎŋÎ―. Îīá―ŧ3Ïē2ÎŋÎđτÎŋÎ―. Îīυ3σ2ÎŋÎŊÏ„Î·Î―. Îīυ3σ2Îŋá―·Ï„Î·Î―. Îīυ3Ïē2ÎŋÎŊÏ„Î·Î―. Îīυ3Ïē2Îŋá―·Ï„Î·Î―. Îīύ3σ2ÎŋÎđΞÎĩÎ―. Îīá―ŧ3σ2ÎŋÎđΞÎĩÎ―. Îīύ3Ïē2ÎŋÎđΞÎĩÎ―. Îīá―ŧ3Ïē2ÎŋÎđΞÎĩÎ―. Îīύ3σ2ÎŋÎđτÎĩ. Îīá―ŧ3σ2ÎŋÎđτÎĩ. Îīύ3Ïē2ÎŋÎđτÎĩ. Îīá―ŧ3Ïē2ÎŋÎđτÎĩ. Îīύ3σ2ÎŋÎđÎĩÎ―. Îīá―ŧ3σ2ÎŋÎđÎĩÎ―. Îīύ3Ïē2ÎŋÎđÎĩÎ―. Îīá―ŧ3Ïē2ÎŋÎđÎĩÎ―. Îīύ3σ2ÎĩÎđÎ―. Îīá―ŧ3σ2ÎĩÎđÎ―. Îīύ3Ïē2ÎĩÎđÎ―. Îīá―ŧ3Ïē2ÎĩÎđÎ―. Îīύ3σ2Ï‰Î―. Îīá―ŧ3σ2Ï‰Î―. Îīύ3Ïē2Ï‰Î―. Îīá―ŧ3Ïē2Ï‰Î―. Îīύ3σ2ÎŋÎ― Îīá―ŧ3σ2ÎŋÎ― Îīύ3Ïē2ÎŋÎ― Îīá―ŧ3Ïē2ÎŋÎ― Îīυ3σ2ÏŒÎ― Îīυ3σ2á―đÎ― Îīυ3Ïē2ÏŒÎ― Îīυ3Ïē2á―đÎ― Îīύ3σ2Îŋυσ Îīá―ŧ3σ2Îŋυσ Îīύ3Ïē2ÎŋυÏē Îīá―ŧ3Ïē2ÎŋυÏē Îīυ3σ2Îŋύσ Îīυ3σ2Îŋá―ŧσ Îīυ3Ïē2ÎŋύÏē Îīυ3Ïē2Îŋá―ŧÏē Îīύ3σ2áŋƒ Îīá―ŧ3σ2áŋƒ Îīύ3Ïē2áŋƒ Îīá―ŧ3Ïē2áŋƒ Îīύ3σ2ητÎŋÎ―. Îīá―ŧ3σ2ητÎŋÎ―. Îīύ3Ïē2ητÎŋÎ―. Îīá―ŧ3Ïē2ητÎŋÎ―. Îīύ3σ2ωΞÎĩÎ―. Îīá―ŧ3σ2ωΞÎĩÎ―. Îīύ3Ïē2ωΞÎĩÎ―. Îīá―ŧ3Ïē2ωΞÎĩÎ―. Îīύ3σ2ωσÎđ. Îīá―ŧ3σ2ωσÎđ. Îīύ3Ïē2ωÏēÎđ. Îīá―ŧ3Ïē2ωÏēÎđ. Îīύ3σ2ÎąÎđΞÎđ. Îīá―ŧ3σ2ÎąÎđΞÎđ. Îīύ3Ïē2ÎąÎđΞÎđ. Îīá―ŧ3Ïē2ÎąÎđΞÎđ. Îīύ3σ2ÎąÎđς. Îīá―ŧ3σ2ÎąÎđς. Îīύ3Ïē2ÎąÎđÏē. Îīá―ŧ3Ïē2ÎąÎđÏē. Îīύ3σ2ÎĩÎđÎąÏ‚. Îīá―ŧ3σ2ÎĩÎđÎąÏ‚. Îīύ3Ïē2ÎĩÎđÎąÏē. Îīá―ŧ3Ïē2ÎĩÎđÎąÏē. Îīύ3σ2ÎąÎđσ. Îīá―ŧ3σ2ÎąÎđσ. Îīύ3σ2ÎĩÎđÎąÏƒ. Îīá―ŧ3σ2ÎĩÎđÎąÏƒ. Îīύ3σ2ÎąÎđ. Îīá―ŧ3σ2ÎąÎđ. Îīύ3Ïē2ÎąÎđ. Îīá―ŧ3Ïē2ÎąÎđ. Îīύ3σ2ÎĩÎđÎĩ. Îīá―ŧ3σ2ÎĩÎđÎĩ. Îīύ3Ïē2ÎĩÎđÎĩ. Îīá―ŧ3Ïē2ÎĩÎđÎĩ. Îīύ3σ2ÎąÎđτÎŋÎ―. Îīá―ŧ3σ2ÎąÎđτÎŋÎ―. Îīύ3Ïē2ÎąÎđτÎŋÎ―. Îīá―ŧ3Ïē2ÎąÎđτÎŋÎ―. Îīυ3σ2ÎąÎŊÏ„Î·Î―. Îīυ3σ2Îąá―·Ï„Î·Î―. Îīυ3Ïē2ÎąÎŊÏ„Î·Î―. Îīυ3Ïē2Îąá―·Ï„Î·Î―. Îīύ3σ2ÎąÎđΞÎĩÎ―. Îīá―ŧ3σ2ÎąÎđΞÎĩÎ―. Îīύ3Ïē2ÎąÎđΞÎĩÎ―. Îīá―ŧ3Ïē2ÎąÎđΞÎĩÎ―. Îīύ3σ2ÎąÎđτÎĩ. Îīá―ŧ3σ2ÎąÎđτÎĩ. Îīύ3Ïē2ÎąÎđτÎĩ. Îīá―ŧ3Ïē2ÎąÎđτÎĩ. Îīύ3σ2ÎąÎđÎĩÎ― Îīá―ŧ3σ2ÎąÎđÎĩÎ― Îīύ3Ïē2ÎąÎđÎĩÎ― Îīá―ŧ3Ïē2ÎąÎđÎĩÎ― Îīύ3σ2ÎĩÎđÎąÎ―. Îīá―ŧ3σ2ÎĩÎđÎąÎ―. Îīύ3Ïē2ÎĩÎđÎąÎ―. Îīá―ŧ3Ïē2ÎĩÎđÎąÎ―. Îīύ3σ2ÎŋÎ―. Îīá―ŧ3σ2ÎŋÎ―. Îīύ3Ïē2ÎŋÎ―. Îīá―ŧ3Ïē2ÎŋÎ―. Îīυ3σ2Ύτω. Îīυ3σ2á―ąÏ„Ï‰. Îīυ3Ïē2Ύτω. Îīυ3Ïē2á―ąÏ„Ï‰. Îīύ3σ2ÎąÏ„ÎŋÎ―. Îīá―ŧ3σ2ÎąÏ„ÎŋÎ―. Îīύ3Ïē2ÎąÏ„ÎŋÎ―. Îīá―ŧ3Ïē2ÎąÏ„ÎŋÎ―. Îīυ3σ2ÎŽÏ„Ï‰Î―. Îīυ3σ2á―ąÏ„Ï‰Î―. Îīυ3Ïē2ÎŽÏ„Ï‰Î―. Îīυ3Ïē2á―ąÏ„Ï‰Î―. Îīύ3σ2ÎąÏ„Îĩ. Îīá―ŧ3σ2ÎąÏ„Îĩ. Îīύ3Ïē2ÎąÏ„Îĩ. Îīá―ŧ3Ïē2ÎąÏ„Îĩ. Îīυ3σ2ÎŽÎ―Ï„Ï‰Î―. Îīυ3σ2á―ąÎ―Ï„Ï‰Î―. Îīυ3Ïē2ÎŽÎ―Ï„Ï‰Î―. Îīυ3Ïē2á―ąÎ―Ï„Ï‰Î―. Îīύ3σ2ÎąÏ‚. Îīá―ŧ3σ2ÎąÏ‚. Îīύ3Ïē2ÎąÏē. Îīá―ŧ3Ïē2ÎąÏē. Îīύ3σ2ÎąÎ―. Îīá―ŧ3σ2ÎąÎ―. Îīύ3Ïē2ÎąÎ―. Îīá―ŧ3Ïē2ÎąÎ―. Îīύ3σ2ÎąÎ―Ï„ Îīá―ŧ3σ2ÎąÎ―Ï„ Îīύ3Ïē2ÎąÎ―Ï„ Îīá―ŧ3Ïē2ÎąÎ―Ï„ Îīυ3σ2ÎŽÎ―Ï„ Îīυ3σ2á―ąÎ―Ï„ Îīυ3Ïē2ÎŽÎ―Ï„ Îīυ3Ïē2á―ąÎ―Ï„ Îīύ3σ2ÎąÏƒ Îīá―ŧ3σ2ÎąÏƒ Îīύ3Ïē2ÎąÏē Îīá―ŧ3Ïē2ÎąÏē Îīυ3σ2Ύσ Îīυ3σ2á―ąÏƒ Îīυ3Ïē2ÎŽÏē Îīυ3Ïē2á―ąÏē Îīύ3σ2ÎŋΞιÎđ. Îīá―ŧ3σ2ÎŋΞιÎđ. Îīύ3Ïē2ÎŋΞιÎđ. Îīá―ŧ3Ïē2ÎŋΞιÎđ. .Îīύ3σ2Îĩσ .Îīá―ŧ3σ2Îĩσ .Îīύ3Ïē2ÎĩÏē .Îīá―ŧ3Ïē2ÎĩÏē Îīυ3σ2όΞÎĩÎļÎą. Îīυ3σ2á―đΞÎĩÎļÎą. Îīυ3Ïē2όΞÎĩÎļÎą. Îīυ3Ïē2á―đΞÎĩÎļÎą. Îīύ3σ2ÎŋÎ―Ï„ÎąÎđ. Îīá―ŧ3σ2ÎŋÎ―Ï„ÎąÎđ. Îīύ3Ïē2ÎŋÎ―Ï„ÎąÎđ. Îīá―ŧ3Ïē2ÎŋÎ―Ï„ÎąÎđ. Îīυ3σ2ÎŋÎŊÎžÎ·Î―. Îīυ3σ2Îŋá―·ÎžÎ·Î―. Îīυ3Ïē2ÎŋÎŊÎžÎ·Î―. Îīυ3Ïē2Îŋá―·ÎžÎ·Î―. Îīύ3σ2ÎŋÎđÎŋ. Îīá―ŧ3σ2ÎŋÎđÎŋ. Îīύ3Ïē2ÎŋÎđÎŋ. Îīá―ŧ3Ïē2ÎŋÎđÎŋ. Îīύ3σ2ÎŋÎđτÎŋ. Îīá―ŧ3σ2ÎŋÎđτÎŋ. Îīύ3Ïē2ÎŋÎđτÎŋ. Îīá―ŧ3Ïē2ÎŋÎđτÎŋ. Îīύ3σ2ÎŋÎđσÎļÎŋÎ―. Îīá―ŧ3σ2ÎŋÎđσÎļÎŋÎ―. Îīύ3Ïē2ÎŋÎđÏēÎļÎŋÎ―. Îīá―ŧ3Ïē2ÎŋÎđÏēÎļÎŋÎ―. Îīυ3σ2ÎŋÎŊσÎļÎ·Î―. Îīυ3σ2Îŋá―·ÏƒÎļÎ·Î―. Îīυ3Ïē2ÎŋÎŊÏēÎļÎ·Î―. Îīυ3Ïē2Îŋá―·ÏēÎļÎ·Î―. Îīυ3σ2ÎŋÎŊΞÎĩÎļÎą. Îīυ3σ2Îŋá―·ÎžÎĩÎļÎą. Îīυ3Ïē2ÎŋÎŊΞÎĩÎļÎą. Îīυ3Ïē2Îŋá―·ÎžÎĩÎļÎą. Îīύ3σ2ÎŋÎđσÎļÎĩ. Îīá―ŧ3σ2ÎŋÎđσÎļÎĩ. Îīύ3Ïē2ÎŋÎđÏēÎļÎĩ. Îīá―ŧ3Ïē2ÎŋÎđÏēÎļÎĩ. Îīύ3σ2ÎŋÎđÎ―Ï„Îŋ. Îīá―ŧ3σ2ÎŋÎđÎ―Ï„Îŋ. Îīύ3Ïē2ÎŋÎđÎ―Ï„Îŋ. Îīá―ŧ3Ïē2ÎŋÎđÎ―Ï„Îŋ. Îīύ3σ2ÎĩσÎļÎąÎđ. Îīá―ŧ3σ2ÎĩσÎļÎąÎđ. Îīύ3Ïē2ÎĩÏēÎļÎąÎđ. Îīá―ŧ3Ïē2ÎĩÏēÎļÎąÎđ. .Îīυ3σ2όΞÎĩÎ― .Îīυ3σ2á―đΞÎĩÎ― .Îīυ3Ïē2όΞÎĩÎ― .Îīυ3Ïē2á―đΞÎĩÎ― .Îīυ3σ2ÎŋÎžÎ­Î― .Îīυ3σ2ÎŋΞá―ģÎ― .Îīυ3Ïē2ÎŋÎžÎ­Î― .Îīυ3Ïē2ÎŋΞá―ģÎ― Îīύ3σ2Ï‰ÎžÎąÎđ. Îīá―ŧ3σ2Ï‰ÎžÎąÎđ. Îīύ3Ïē2Ï‰ÎžÎąÎđ. Îīá―ŧ3Ïē2Ï‰ÎžÎąÎđ. Îīύ3σ2Î·Ï„ÎąÎđ. Îīá―ŧ3σ2Î·Ï„ÎąÎđ. Îīύ3Ïē2Î·Ï„ÎąÎđ. Îīá―ŧ3Ïē2Î·Ï„ÎąÎđ. Îīυ3σ2ώΞÎĩÎļÎą Îīυ3σ2á――ÎžÎĩÎļÎą Îīυ3Ïē2ώΞÎĩÎļÎą Îīυ3Ïē2á――ÎžÎĩÎļÎą Îīύ3σ2ησÎļÎĩ. Îīá―ŧ3σ2ησÎļÎĩ. Îīύ3Ïē2ηÏēÎļÎĩ. Îīá―ŧ3Ïē2ηÏēÎļÎĩ. Îīυ3σ2ÎąÎŊÎžÎ·Î―. Îīυ3σ2Îąá―·ÎžÎ·Î―. Îīυ3Ïē2ÎąÎŊÎžÎ·Î―. Îīυ3Ïē2Îąá―·ÎžÎ·Î―. Îīύ3σ2ÎąÎđÎŋ. Îīá―ŧ3σ2ÎąÎđÎŋ. Îīύ3Ïē2ÎąÎđÎŋ. Îīá―ŧ3Ïē2ÎąÎđÎŋ. Îīύ3σ2ÎąÎđτÎŋ. Îīá―ŧ3σ2ÎąÎđτÎŋ. Îīύ3Ïē2ÎąÎđτÎŋ. Îīá―ŧ3Ïē2ÎąÎđτÎŋ. Îīύ3σ2ÎąÎđσÎļÎŋÎ―. Îīá―ŧ3σ2ÎąÎđσÎļÎŋÎ―. Îīύ3Ïē2ÎąÎđÏēÎļÎŋÎ―. Îīá―ŧ3Ïē2ÎąÎđÏēÎļÎŋÎ―. Îīυ3σ2ÎąÎŊσÎļÎ·Î―. Îīυ3σ2Îąá―·ÏƒÎļÎ·Î―. Îīυ3Ïē2ÎąÎŊÏēÎļÎ·Î―. Îīυ3Ïē2Îąá―·ÏēÎļÎ·Î―. Îīυ3σ2ÎąÎŊΞÎĩÎļÎą. Îīυ3σ2Îąá―·ÎžÎĩÎļÎą. Îīυ3Ïē2ÎąÎŊΞÎĩÎļÎą. Îīυ3Ïē2Îąá―·ÎžÎĩÎļÎą. Îīύ3σ2ÎąÎđσÎļÎąÎđ. Îīá―ŧ3σ2ÎąÎđσÎļÎąÎđ. Îīύ3Ïē2ÎąÎđÏēÎļÎąÎđ. Îīá―ŧ3Ïē2ÎąÎđÏēÎļÎąÎđ. Îīύ3σ2ÎąÎđÎ―Ï„Îŋ. Îīá―ŧ3σ2ÎąÎđÎ―Ï„Îŋ. Îīύ3Ïē2ÎąÎđÎ―Ï„Îŋ. Îīá―ŧ3Ïē2ÎąÎđÎ―Ï„Îŋ. Îīυ3σ2ΎσÎļω. Îīυ3σ2á―ąÏƒÎļω. Îīυ3Ïē2ÎŽÏēÎļω. Îīυ3Ïē2á―ąÏēÎļω. Îīύ3σ2ÎąÏƒÎļÎŋÎ―. Îīá―ŧ3σ2ÎąÏƒÎļÎŋÎ―. Îīύ3Ïē2ÎąÏēÎļÎŋÎ―. Îīá―ŧ3Ïē2ÎąÏēÎļÎŋÎ―. Îīυ3σ2ΎσÎļÏ‰Î―. Îīυ3σ2á―ąÏƒÎļÏ‰Î―. Îīυ3Ïē2ÎŽÏēÎļÏ‰Î―. Îīυ3Ïē2á―ąÏēÎļÏ‰Î―. Îīύ3σ2ÎąÏƒÎļÎĩ. Îīá―ŧ3σ2ÎąÏƒÎļÎĩ. Îīύ3Ïē2ÎąÏēÎļÎĩ. Îīá―ŧ3Ïē2ÎąÏēÎļÎĩ. Îīύ3σ2ÎąÏƒÎļÎąÎđ. Îīá―ŧ3σ2ÎąÏƒÎļÎąÎđ. Îīύ3Ïē2ÎąÏēÎļÎąÎđ. Îīá―ŧ3Ïē2ÎąÏēÎļÎąÎđ. Îīυ3σ2ΎΞÎĩÎ― Îīυ3σ2á―ąÎžÎĩÎ― Îīυ3Ïē2ΎΞÎĩÎ― Îīυ3Ïē2á―ąÎžÎĩÎ― Îīυσ3σ2ÎąÎžÎ­Î― Îīυσ3σ2ιΞá―ģÎ― ÎīυÏē3Ïē2ÎąÎžÎ­Î― ÎīυÏē3Ïē2ιΞá―ģÎ― Îīύ3σ2ÎąÏ„Îŋ. Îīá―ŧ3σ2ÎąÏ„Îŋ. Îīύ3Ïē2ÎąÏ„Îŋ. Îīá―ŧ3Ïē2ÎąÏ„Îŋ. Îīύ3σ2ÎĩτÎŋ. Îīá―ŧ3σ2ÎĩτÎŋ. Îīύ3Ïē2ÎĩτÎŋ. Îīá―ŧ3Ïē2ÎĩτÎŋ. Îīύ3σ2ÎąÎ―Ï„Îŋ. Îīá―ŧ3σ2ÎąÎ―Ï„Îŋ. Îīύ3Ïē2ÎąÎ―Ï„Îŋ. Îīá―ŧ3Ïē2ÎąÎ―Ï„Îŋ. Îīύ3σ2ÎĩÎŋ. Îīá―ŧ3σ2ÎĩÎŋ. Îīύ3Ïē2ÎĩÎŋ. Îīá―ŧ3Ïē2ÎĩÎŋ. .ÎīυσÎĩÎŊ2σ1Îē .ÎīυσÎĩá―·2σ1Îē .ÎīυÏēÎĩÎŊ2Ïē1Îē .ÎīυÏēÎĩá―·2Ïē1Îē .ÎīυσÎĩÎŊ2σ1ϐ .ÎīυσÎĩá―·2σ1ϐ .ÎīυÏēÎĩÎŊ2Ïē1ϐ .ÎīυÏēÎĩá―·2Ïē1ϐ .ÎīυσÎĩÎđ2σ1Îē .ÎīυÏēÎĩÎđ2Ïē1Îē .ÎīυσÎĩÎđ2σ1ϐ .ÎīυÏēÎĩÎđ2Ïē1ϐ .Îīυσέ2Κ1 .Îīυσá―ģ2Κ1 .ÎīυÏēέ2Κ1 .ÎīυÏēá―ģ2Κ1 .ÎīυσÎĩ2Κ1 .ÎīυÏēÎĩ2Κ1 .Îīυσέ2Îū1 .Îīυσá―ģ2Îū1 .ÎīυÏēέ2Îū1 .ÎīυÏēá―ģ2Îū1 .ÎīυσÎĩ2Îū1 .ÎīυÏēÎĩ2Îū1 .Îīυ3σ2ÎđÎļ .Îīυ3Ïē2ÎđÎļ Îīύ3σ2Îđς. Îīá―ŧ3σ2Îđς. Îīύ3Ïē2ÎđÏē. Îīá―ŧ3Ïē2ÎđÏē. Îīύ3σ2Îđσ. Îīá―ŧ3σ2Îđσ. Îīύ3σ2Îĩω Îīá―ŧ3σ2Îĩω Îīύ3Ïē2Îĩω Îīá―ŧ3Ïē2Îĩω Îīύ3σ2ÎđÎ―. Îīá―ŧ3σ2ÎđÎ―. Îīύ3Ïē2ÎđÎ―. Îīá―ŧ3Ïē2ÎđÎ―. Îīύ3σ2Îđ. Îīá―ŧ3σ2Îđ. Îīύ3Ïē2Îđ. Îīá―ŧ3Ïē2Îđ. Îīυ3σ2έÎŋÎđÎ―. Îīυ3σ2á―ģÎŋÎđÎ―. Îīυ3Ïē2έÎŋÎđÎ―. Îīυ3Ïē2á―ģÎŋÎđÎ―. Îīύ3σ2ÎĩσÎđ. Îīá―ŧ3σ2ÎĩσÎđ. Îīύ3Ïē2ÎĩÏēÎđ. Îīá―ŧ3Ïē2ÎĩÏēÎđ. Îīύ3σ2ÎĩσÎđÎ―. Îīá―ŧ3σ2ÎĩσÎđÎ―. Îīύ3Ïē2ÎĩÏēÎđÎ―. Îīá―ŧ3Ïē2ÎĩÏēÎđÎ―. .Îīύ3σ2ΚÎĩ .Îīá―ŧ3σ2ΚÎĩ .Îīύ3Ïē2ΚÎĩ .Îīá―ŧ3Ïē2ΚÎĩ .Îīυ3σ2ΞÎŪ. .Îīυ3σ2Ξá―ĩ. .Îīυ3Ïē2ΞÎŪ. .Îīυ3Ïē2Ξá―ĩ. .Îīυ3σ2Ξá―ī. .Îīυ3Ïē2Ξá―ī. .Îīυ3σ2Ξáŋ†Ï‚. .Îīυ3Ïē2Ξáŋ†Ïē. .Îīυ3σ2Ξáŋ†Ïƒ. .Îīυ3σ2Ξáŋ‡ .Îīυ3Ïē2Ξáŋ‡ .Îīυ3σ2Ξáŋ†. .Îīυ3Ïē2Ξáŋ†. .Îīυ3σ2Ξáūķ .Îīυ3Ïē2Ξáūķ .Îīυ3σ2Ξι .Îīυ3Ïē2Ξι .Îīυ3σ2Ξáŋķ .Îīυ3Ïē2Ξáŋķ .ÎīυσÎūύ2Î―1 .ÎīυσÎūá―ŧ2Î―1 .ÎīυÏēÎūύ2Î―1 .ÎīυÏēÎūá―ŧ2Î―1 .ÎīυσÎūυ2Î―1 .ÎīυÏēÎūυ2Î―1 .Îīύ3σ2Ï„ÎąÎ― .Îīá―ŧ3σ2Ï„ÎąÎ― .Îīύ3Ïē2Ï„ÎąÎ― .Îīá―ŧ3Ïē2Ï„ÎąÎ― .Îīυ3σ2Ï„ÎŽÎ― .Îīυ3σ2Ï„á―ąÎ― .Îīυ3Ïē2Ï„ÎŽÎ― .Îīυ3Ïē2Ï„á―ąÎ― .Îīυ3σ2Ï„Î·Î― .Îīυ3Ïē2Ï„Î·Î― .Îīυ3σ2τÎŪÎ― .Îīυ3σ2τá―ĩÎ― .Îīυ3Ïē2τÎŪÎ― .Îīυ3Ïē2τá―ĩÎ― ថÎīυ2σ1τ ថÎīυ2Ïē1τ Îĩáž°2Î―1όÎī Îĩáž°2Î―1á―đÎī Îĩáž°2Î―1ÎŋÎī Îĩáž°2σ1 Îĩáž°2Ïē1 Îĩážī2σ1 Îĩážī2Ïē1 Îĩáž°3σ2ÎŊ. Îĩáž°3σ2á―·. Îĩáž°3Ïē2ÎŊ. Îĩáž°3Ïē2á―·. Îĩáž°3σ2á―ķ. Îĩáž°3Ïē2á―ķ. Îĩáž°3σ2Îđ. Îĩáž°3Ïē2Îđ. Îĩáž°3σ2ÎŊÎ―. Îĩáž°3σ2á―·Î―. Îĩáž°3Ïē2ÎŊÎ―. Îĩáž°3Ïē2á―·Î―. Îĩáž°3σ2á―ķÎ―. Îĩáž°3Ïē2á―ķÎ―. Îĩáž°3σ2ÎđÎ―. Îĩáž°3Ïē2ÎđÎ―. Îĩážī3σ2ÎŋΞ Îĩážī3Ïē2ÎŋΞ Îĩážī3σ2áŋƒ. Îĩážī3Ïē2áŋƒ. ÎĩážīσÎĩÎđ. ÎĩážīÏēÎĩÎđ. Îĩážī3σ2ÎĩÏ„ÎąÎđ. Îĩážī3Ïē2ÎĩÏ„ÎąÎđ. Îĩážī3σ2ÎĩσÎļÎŋÎ―. Îĩážī3Ïē2ÎĩÏēÎļÎŋÎ―. Îĩáž°3σ2όΞ Îĩáž°3σ2á―đΞ Îĩáž°3Ïē2όΞ Îĩáž°3Ïē2á―đΞ Îĩážī3σ2ÎĩσÎļÎĩ. Îĩážī3Ïē2ÎĩÏēÎļÎĩ. Îĩážī3σ2ÎŋÎ―Ï„ÎąÎđ Îĩážī3Ïē2ÎŋÎ―Ï„ÎąÎđ Îĩáž°3σ2ÎŋÎŊÎžÎ·Î― Îĩáž°3σ2Îŋá―·ÎžÎ·Î― Îĩáž°3Ïē2ÎŋÎŊÎžÎ·Î― Îĩáž°3Ïē2Îŋá―·ÎžÎ·Î― Îĩážī3σ2ÎŋÎđÎŋ Îĩážī3Ïē2ÎŋÎđÎŋ Îĩážī3σ2ÎŋÎđτÎŋ Îĩážī3Ïē2ÎŋÎđτÎŋ Îĩážī3σ2ÎŋÎđσÎļÎŋÎ― Îĩážī3Ïē2ÎŋÎđÏēÎļÎŋÎ― Îĩáž°3σ2ÎŋÎŊσÎļÎ·Î― Îĩáž°3σ2Îŋá―·ÏƒÎļÎ·Î― Îĩáž°3Ïē2ÎŋÎŊÏēÎļÎ·Î― Îĩáž°3Ïē2Îŋá―·ÏēÎļÎ·Î― Îĩáž°3σ2ÎŋÎŊΞÎĩÎļÎą Îĩáž°3σ2Îŋá―·ÎžÎĩÎļÎą Îĩáž°3Ïē2ÎŋÎŊΞÎĩÎļÎą Îĩáž°3Ïē2Îŋá―·ÎžÎĩÎļÎą Îĩážī3σ2ÎŋÎđσÎļÎĩ Îĩážī3Ïē2ÎŋÎđÏēÎļÎĩ Îĩážī3σ2ÎŋÎđÎ―Ï„Îŋ Îĩážī3Ïē2ÎŋÎđÎ―Ï„Îŋ Îĩážī3σ2ÎĩσÎļÎąÎđ Îĩážī3Ïē2ÎĩÏēÎļÎąÎđ Îĩáž°3σ2όΞÎĩÎ― Îĩáž°3σ2á―đΞÎĩÎ― Îĩáž°3Ïē2όΞÎĩÎ― Îĩáž°3Ïē2á―đΞÎĩÎ― Îĩáž°3σ2ÎŋÎžÎ­Î― Îĩáž°3σ2ÎŋΞá―ģÎ― Îĩáž°3Ïē2ÎŋÎžÎ­Î― Îĩáž°3Ïē2ÎŋΞá―ģÎ― Îĩážī3σ2ÎŽÎžÎ·Î―. Îĩážī3σ2á―ąÎžÎ·Î―. Îĩážī3Ïē2ÎŽÎžÎ·Î―. Îĩážī3Ïē2á―ąÎžÎ·Î―. Îĩážī3σ2ω Îĩážī3Ïē2ω Îĩážī3σ2ÎąÏ„Îŋ Îĩážī3Ïē2ÎąÏ„Îŋ Îĩážī3σ2ÎąÏƒÎļÎŋÎ― Îĩážī3Ïē2ÎąÏēÎļÎŋÎ― Îĩáž°3σ2ΎσÎļÎ·Î― Îĩáž°3σ2á―ąÏƒÎļÎ·Î― Îĩáž°3Ïē2ÎŽÏēÎļÎ·Î― Îĩáž°3Ïē2á―ąÏēÎļÎ·Î― Îĩáž°3σ2ΎΞÎĩÎļÎą Îĩáž°3σ2á―ąÎžÎĩÎļÎą Îĩáž°3Ïē2ΎΞÎĩÎļÎą Îĩáž°3Ïē2á―ąÎžÎĩÎļÎą Îĩážī3σ2ÎąÏƒÎļÎĩ Îĩážī3Ïē2ÎąÏēÎļÎĩ Îĩážī3σ2ÎąÎ―Ï„Îŋ Îĩážī3Ïē2ÎąÎ―Ï„Îŋ Îĩážī3σ2Ï‰ÎžÎąÎđ Îĩážī3Ïē2Ï‰ÎžÎąÎđ Îĩážī3σ2ησÎļÎŋÎ― Îĩážī3Ïē2ηÏēÎļÎŋÎ― Îĩáž°3σ2ώΞÎĩÎļÎą Îĩáž°3σ2á――ÎžÎĩÎļÎą Îĩáž°3Ïē2ώΞÎĩÎļÎą Îĩáž°3Ïē2á――ÎžÎĩÎļÎą Îĩážī3σ2ησÎļÎĩ Îĩážī3Ïē2ηÏēÎļÎĩ Îĩážī3σ2Ï‰Î―Ï„ÎąÎđ Îĩážī3Ïē2Ï‰Î―Ï„ÎąÎđ Îĩáž°3σ2ÎąÎŊÎžÎ·Î― Îĩáž°3σ2Îąá―·ÎžÎ·Î― Îĩáž°3Ïē2ÎąÎŊÎžÎ·Î― Îĩáž°3Ïē2Îąá―·ÎžÎ·Î― Îĩážī3σ2ÎąÎđÎŋ Îĩážī3Ïē2ÎąÎđÎŋ Îĩážī3σ2ÎąÎđτÎŋ Îĩážī3Ïē2ÎąÎđτÎŋ Îĩážī3σ2ÎąÎđσÎļÎŋÎ― Îĩážī3Ïē2ÎąÎđÏēÎļÎŋÎ― Îĩážī3σ2ÎąÎŊσÎļÎ·Î― Îĩážī3σ2Îąá―·ÏƒÎļÎ·Î― Îĩážī3Ïē2ÎąÎŊÏēÎļÎ·Î― Îĩážī3Ïē2Îąá―·ÏēÎļÎ·Î― Îĩáž°3σ2ÎąÎŊΞÎĩÎļÎą Îĩáž°3σ2Îąá―·ÎžÎĩÎļÎą Îĩáž°3Ïē2ÎąÎŊΞÎĩÎļÎą Îĩáž°3Ïē2Îąá―·ÎžÎĩÎļÎą Îĩážī3σ2ÎąÎđσÎļÎĩ Îĩážī3Ïē2ÎąÎđÏēÎļÎĩ Îĩážī3σ2ÎąÎđÎ―Ï„Îŋ Îĩážī3Ïē2ÎąÎđÎ―Ï„Îŋ Îĩáž°3σ2ΎσÎļω Îĩáž°3σ2á―ąÏƒÎļω Îĩáž°3Ïē2ÎŽÏēÎļω Îĩáž°3Ïē2á―ąÏēÎļω Îĩáž°3σ2ΎσÎļÏ‰Î― Îĩáž°3σ2á―ąÏƒÎļÏ‰Î― Îĩáž°3Ïē2ÎŽÏēÎļÏ‰Î― Îĩáž°3Ïē2á―ąÏēÎļÏ‰Î― Îĩážī3σ2ÎąÏƒÎļÎąÎđ Îĩážī3Ïē2ÎąÏēÎļÎąÎđ Îĩáž°3σ2ΎΞÎĩÎ― Îĩáž°3σ2á―ąÎžÎĩÎ― Îĩáž°3Ïē2ΎΞÎĩÎ― Îĩáž°3Ïē2á―ąÎžÎĩÎ― Îĩáž°3σ2ÎąÎžÎ­Î― Îĩáž°3σ2ιΞá―ģÎ― Îĩáž°3Ïē2ÎąÎžÎ­Î― Îĩáž°3Ïē2ιΞá―ģÎ― ថ2Κ1Îŧ ថ3Κ2ÎŧÎŪÎļη ថ3Κ2Îŧá―ĩÎļη ថ3Κ2ÎŧÎŽÎķ ថ3Κ2Îŧá―ąÎķ ថ3Κ2ÎŧÎŽÎģ ថ3Κ2Îŧá―ąÎģ ថ3Κ2ÎŧÎŽÎŋ ថ3Κ2Îŧá―ąÎŋ ថ3Κ2ÎŧΎσ ថ3Κ2Îŧá―ąÏƒ ថ3Κ2ÎŧÎŽÏē ថ3Κ2Îŧá―ąÏē ថ3Κ2ÎŧÎąÎŊ ថ3Κ2ÎŧÎąá―· ថ3Κ2ÎŧÎąÏ ថ3Κ2ÎŧÎąá―ŧ ថ3Κ2ÎŧÎĩÎŊ ថ3Κ2ÎŧÎĩá―· ថ4Κ3ÎŧÎĩÎŊπ ថ4Κ3ÎŧÎĩá―·Ï€ ថ4Κ3ÎŧÎĩÎŊψ ថ4Κ3ÎŧÎĩá―·Ïˆ ថ3Κ2Îŧáŋ„ ថ3Κ2ΚÎŧέπ ថ3Κ2ΚÎŧá―ģπ ថ3Κ2ΚÎŧέψ ថ3Κ2ΚÎŧá―ģψ ថ3Κ2ÎŧÎŽÏ€ ថ3Κ2Îŧá―ąÏ€ ថ3Κ2ÎŧÎąÏ€ ថ4Κ3ÎŧΎπτ ថ4Κ3Îŧá―ąÏ€Ï„ ថ4Κ3ÎŧÎąÏ€Ï„ ថ3Κ2Îŧέφ ថ3Κ2Îŧá―ģφ ថ3Κ2ÎŧÎĩφ ថ3Κ2ÎŧÎŪρ ថ3Κ2Îŧá―ĩρ ថ3Κ2Îŧηρ ថ3Κ2ÎŧÎŊÎ― ថ3Κ2Îŧá―·Î― ថ3Κ2ÎŧÎđÎ― ថ3Κ2Îŧύ ថ3Κ2Îŧá―ŧ ថ4Κ3ÎŧύσÎĩω ថ4Κ3Îŧá―ŧσÎĩω ថ4Κ3ÎŧύÏēÎĩω ថ4Κ3Îŧá―ŧÏēÎĩω ថ4Κ3ÎŧύσÎĩÎđ ថ4Κ3Îŧá―ŧσÎĩÎđ ថ4Κ3ÎŧύÏēÎĩÎđ ថ4Κ3Îŧá―ŧÏēÎĩÎđ ថ4Κ3ÎŧύσÎĩÎŋÎđ ថ4Κ3Îŧá―ŧσÎĩÎŋÎđ ថ4Κ3ÎŧύÏēÎĩÎŋÎđ ថ4Κ3Îŧá―ŧÏēÎĩÎŋÎđ ថ4Κ3ÎŧύσÎĩσÎđ ថ4Κ3Îŧá―ŧσÎĩσÎđ ថ4Κ3ÎŧύÏēÎĩÏēÎđ ថ4Κ3Îŧá―ŧÏēÎĩÏēÎđ ថ3Κ2ÎŧόΞ ថ3Κ2Îŧá―đΞ ថ3Κ2ΚÎŧώσ ថ3Κ2ΚÎŧá――Ïƒ ថ3Κ2ΚÎŧώÏē ថ3Κ2ΚÎŧá――Ïē ᾔ2Κ1ÎŧÎĩÎđ ᾔ3Κ2ÎŧÎĩÎđσ ᾔ3Κ2ÎŧÎĩÎđÏē ᾔ2Κ1Îŧυσ ᾔ2Κ1ÎŧυÏē ថ2Κ1Ξ ᾔ2Κ1Ξ ថ2Κ1Î― ᾔ2Κ1Î― ᾔ3Κ2Î―ÎąÎđ ថ3Κ2Î―ÎąÎŊ ថ3Κ2Î―Îąá―· ᾔ3Κ2Î―Î·Ïƒ ᾔ3Κ2Î―Î·Ïē ថ3Κ2Î―ÎŪσ ថ3Κ2Î―á―ĩσ ថ3Κ2Î―ÎŪÏē ថ3Κ2Î―á―ĩÏē ថ3Κ2Î―Ï… ថ2Κ1ρ ᾔ2Κ1ρ ថ3Κ2ρΎÎī ថ3Κ2Ïá―ąÎī ថ3Κ2ÏÎąÎī ᾔ3Κ2ÏÎąÎķ ថ3Κ2ρΎÎķ ថ3Κ2Ïá―ąÎķ ᾔ3Κ2ÏÎąÎģ ថ3Κ2ρΎÎģ ថ3Κ2Ïá―ąÎģ ថ3Κ2ρΎτ ថ3Κ2Ïá―ąÏ„ ថ3Κ2ÏÎąÏ„ ថ3Κ2ÏÎąÏÎģ ថ3Κ2ÏÎąá―ŧÎģ ថ3Κ2ÏÎąÏ…Îģ ᾔ3Κ2ÏÎąÎđ ថ3Κ2ÏÎąÎŊ ថ3Κ2ÏÎąá―· ᾔ3Κ2ÏÎąÎ― ថ3Κ2ÏÎŽÎ― ថ3Κ2Ïá―ąÎ― ថ3Κ2ρÎŪη ថ3Κ2ρá―ĩη ថ3Κ2ÏÎŽÎą ថ3Κ2Ïá―ąÎą ថ3Κ2ÏÎąÎŽ ថ3Κ2ÏÎąá―ą ថ3Κ2ρΎÎļ ថ3Κ2Ïá―ąÎļ ថ3Κ2ÏÎąÎļ ᾔ3Κ2ρÎĩΚ ថ3Κ2ρέΚ ថ3Κ2ρá―ģΚ ᾔ3Κ2ρÎĩÎū ថ3Κ2ρέÎū ថ3Κ2ρá―ģÎū ថ3Κ2ρέΞ ថ3Κ2ρá―ģΞ ថ3Κ2ρÎĩΞ ថ3Κ2ρÎŪΞ ថ3Κ2ρá―ĩΞ ថ3Κ2ρηΞ ᾔ3Κ2ρÎđÎ― ថ3Κ2ρÎŊÎ― ថ3Κ2Ïá―·Î― ថ3Κ2ρÎŊÎļ ថ3Κ2Ïá―·Îļ ថ3Κ2ρότ ថ3Κ2ρá―đτ ថ3Κ2ρÎŋτ ᾔ3Κ2ρÎŋυ ថ3Κ2ρÎŋύ ថ3Κ2ρÎŋá―ŧ ᾔ3Κ2ρυπ ថ3Κ2ρύπ ថ3Κ2ρá―ŧπ ᾔ3Κ2ρυψ ថ3Κ2ρύψ ថ3Κ2ρá―ŧψ ថ3Κ2ρύÎē ថ3Κ2ρá―ŧÎē ថ3Κ2ρύϐ ថ3Κ2ρá―ŧϐ ថ3Κ2ρύφ ថ3Κ2ρá―ŧφ ថ3Κ2ρυσ ថ3Κ2ρυÏē ᾔ3Κ2ρωÎķ ថ3Κ2ρώÎķ ថ3Κ2Ïá――Îķ ᾔ3Κ2ρωÎū ថ3Κ2ρώÎū ថ3Κ2Ïá――Îū ថ2Κ1Ï„ÎąÎļ ᾔ2Κ1Ï„ÎąÎžÎĩ. ថ2Κ1Ï„ÎŽÎžÎ― ថ2Κ1Ï„á―ąÎžÎ― ថ2Κ1Ï„ÎąÎ― ថ2Κ1Ï„ÎąÏ ថ2Κ1τΎσ ថ2Κ1Ï„á―ąÏƒ ថ2Κ1Ï„ÎŽÏē ថ2Κ1Ï„á―ąÏē ថ2Κ1τÎĩ ថ2Κ1τέ ថ2Κ1τá―ģ ថ3Κ2τÎĩÎŊÎ― ថ3Κ2τÎĩá―·Î― ថ2Κ1τÎŪΚ ថ2Κ1τá―ĩΚ ថ2Κ1τÎđ ᾔ2Κ1τÎđ ថ2Κ1τÎŊ ថ2Κ1Ï„á―· ᾔ3Κ2τÎđÎķ ថ3Κ2τÎŊÎķ ថ3Κ2Ï„á―·Îķ ᾔ3Κ2τÎđÏƒÎą ᾔ3Κ2τÎđÏēÎą ថ3Κ2τÎŊÏƒÎą ថ3Κ2Ï„á―·ÏƒÎą ថ3Κ2τÎŊÏēÎą ថ3Κ2Ï„á―·ÏēÎą ថ2Κ1τό ថ2Κ1τá―đ ថ2Κ1τÎŋ ᾔ2Κ1τÎŋ ថ3Κ2τός. ថ3Κ2τá―đς. ថ3Κ2τόÏē. ថ3Κ2τá―đÏē. ថ3Κ2τá―ļς. ថ3Κ2τá―ļÏē. ថ3Κ2τόσ. ថ3Κ2τá―đσ. ថ3Κ2τá―ļσ. ថ2Κ1τρ ᾔ2Κ1τυπÎŋ ថ2Κ1τύπÎŋυ. ថ2Κ1τá―ŧπÎŋυ. ថ2Κ1τύπáŋģ. ថ2Κ1τá―ŧπáŋģ. ᾔ2Κ1τυπÎĩ. ថ2Κ1τύπω. ថ2Κ1τá―ŧπω. ថ2ΚτύπÎŋÎđ. ថ2Κτá―ŧπÎŋÎđ. ថ2Κ1Ï„ÏÏ€Ï‰Î―. ថ2Κ1τá―ŧÏ€Ï‰Î―. ថ2Κ1τύπÎŋÎđς. ថ2Κ1τá―ŧπÎŋÎđς. ថ2Κ1τύπÎŋÎđÏē. ថ2Κ1τá―ŧπÎŋÎđÏē. ថ2Κ1τύπÎŋÎđσ. ថ2Κ1τá―ŧπÎŋÎđσ. ថ2Κ1τύπÎŋυς. ថ2Κ1τá―ŧπÎŋυς. ថ2Κ1τύπÎŋυÏē. ថ2Κ1τá―ŧπÎŋυÏē. ថ2Κ1τύπÎŋυσ. ថ2Κ1τá―ŧπÎŋυσ. ᾔ2Κ1Ï„Ï…Ï€Îą. ថ2Κ1τυ ᾑÎŧÎŧÎŪ2σ1π ᾑÎŧÎŧá―ĩ2σ1π ᾑÎŧÎŧÎŪ2Ïē1π ᾑÎŧÎŧá―ĩ2Ïē1π ᾑÎŧÎŧη2σ1π ᾑÎŧÎŧη2Ïē1π ថ2Î―1 ᾔ2Î―1 ថ3Î―2ΎΚÎđς ថ3Î―2á―ąÎšÎđς ថ3Î―2ΎΚÎđÏē ថ3Î―2á―ąÎšÎđÏē ថ3Î―2ιΚÎđσ ថ3Î―2ιΚÎđÏē ថ3Î―2ÎąÎšÏŒÏƒ ថ3Î―2ιΚá―đσ ថ3Î―2ÎąÎšÏŒÏē ថ3Î―2ιΚá―đÏē ថ3Î―2ιΚÎŋσ ថ3Î―2ιΚÎŋÏē ᾔ3Î―2ÎąÏÎą. ថ3Î―2ÎŽÏÏ‰Î―. ថ3Î―2á―ąÏÏ‰Î―. ថ3Î―2ΎρÎŋÎđς. ថ3Î―2á―ąÏÎŋÎđς. ថ3Î―2ΎρÎŋÎđÏē. ថ3Î―2á―ąÏÎŋÎđÏē. ថ3Î―2ΎρÎŋÎđσ. ថ3Î―2á―ąÏÎŋÎđσ. ថ3Î―2ÎąÏÎ·Ï† ថ4Î―3ÎąÏÎąÏ ថ3Î―2ΎρÎĩÎĩ ថ3Î―2á―ąÏÎĩÎĩ ថ3Î―2ÎąÏÎ­Ï‰ ថ3Î―2ÎąÏá―ģω ថ3Î―2ÎąÏÎ­Îą ថ3Î―2ÎąÏá―ģÎą ថ3Î―2ÎąÏÎĩÎŽ ថ3Î―2ÎąÏÎĩá―ą ថ3Î―2ΎρÎđÎĩ ថ3Î―2á―ąÏÎđÎĩ ថ3Î―2ÎąÏÎŊω ថ3Î―2ÎąÏá―·Ï‰ ថ3Î―2ÎąÏÎŊÎą ថ3Î―2ÎąÏá―·Îą ថ3Î―2ÎąÏÎđÎŽ ថ3Î―2ÎąÏÎđá―ą ᾔ3Î―2ÎąÏƒÏƒ ᾔ3Î―2ÎąÏēÏē ថ3Î―2Ύσσ ថ3Î―2á―ąÏƒÏƒ ថ3Î―2ÎŽÏēÏē ថ3Î―2á―ąÏēÏē ថ3Î―2ΎσÎļ ថ3Î―2á―ąÏƒÎļ ថ3Î―2ÎŽÏēÎļ ថ3Î―2á―ąÏēÎļ ថ3Î―2ÎąÏƒÎļ ថ3Î―2ÎąÏēÎļ ᾔ3Î―2ÎąÏ„ ថ3Î―2ÎŽÏ„ ថ3Î―2á―ąÏ„ ážÎ―Îīυ2σ1τ ážÎ―Îīυ2Ïē1τ ថ3Î―2έÎģΚ ថ3Î―2á―ģÎģΚ ថ3Î―2ÎĩÎģΚ ᾔ3Î―2ÎĩÎđΚ ថ3Î―2Îĩáŋ–Κ ថ3Î―2ÎĩÎđΚ ថ3Î―2ÎĩÎŊΚ ថ3Î―2Îĩá―·Îš ᾔ3Î―2ÎĩÎđΞ ថ3Î―2ÎĩÎŊΞ ថ3Î―2Îĩá―·Îž ថ3Î―2ÎĩΞέσσ ថ3Î―2ÎĩΞá―ģσσ ថ3Î―2ÎĩΞέÏēÏē ថ3Î―2ÎĩΞá―ģÏēÏē ថ3Î―2ÎĩΞÎŪÎļ ថ3Î―2ÎĩΞá―ĩÎļ ថ3Î―2ÎĩÎ―ÎŪ ថ3Î―2ÎĩÎ―á―ĩ ថ3Î―2Îĩό ថ3Î―2Îĩá―đ ថ3Î―2Îĩá―ļ ថ3Î―2ÎĩÎŋ ថ3Î―2Îĩáŋķ ថ3Î―2ÎĩÎŽ ថ3Î―2Îĩá―ą ថ3Î―2Îĩá―° ថ3Î―2Îĩáūķ ថ3Î―2έπÎĩÎđ ថ3Î―2á―ģπÎĩÎđ ᾔ3Î―2ÎĩρÎļÎĩ ᾔ3Î―2Îĩυσ ᾔ3Î―2ÎĩυÏē ថ3Î―2Îĩύσ ថ3Î―2Îĩá―ŧσ ថ3Î―2ÎĩύÏē ថ3Î―2Îĩá―ŧÏē ថ3Î―2έχÎļ ថ3Î―2á―ģχÎļ ថ3Î―2ÎĩχÎļ ᾔ3Î―2ησ ᾔ3Î―2ηÏē ថ3Î―2ÎŪσ ថ3Î―2á―ĩσ ថ3Î―2ÎŪÏē ថ3Î―2á―ĩÏē ថ3Î―2ηÎŪ ថ3Î―2ηá―ĩ ថ3Î―2ηá―ī ᾔ3Î―2Î·Î―. ថ3Î―2ηÎĩÎŊ ថ3Î―2ηÎĩá―· ថ3Î―2ηÎŋ ថ3Î―2ηáŋķ ថ3Î―Î·Î­ ថ3Î―Î·á―ģ ថ3Î―2ÎŪÎ―Îŋ ថ3Î―2á―ĩÎ―Îŋ ថ3Î―2ÎŊ ថ3Î―2á―· ថ3Î―2Îđ ᾔ3Î―2Îđ ថ4Î―3ÎđÎąÏ ថ4Î―3ÎđÎąá―ŧ ថ5Î―4ÎđÎąÏÏƒ ថ5Î―4ÎđÎąá―ŧσ ថ5Î―4ÎđÎąÏÏē ថ5Î―4ÎđÎąá―ŧÏē ថ5Î―4ÎđÎąÏ…Ïƒ ថ5Î―4ÎđÎąÏ…Ïē ថ4Î―3ÎđÎīρ ថ4Î―3ÎŊÎīρ ថ4Î―3á―·Îīρ ថ4Î―3ÎŊÎķ ថ4Î―3á―·Îķ ថ4Î―3ÎŊη ថ4Î―3á―·Î· ថ4Î―3ÎđέτÎŋÎ―. ថ4Î―3Îđá―ģτÎŋÎ―. ថ4Î―3ÎŊÎĩΞÎĩÎ―. ថ4Î―3á―·ÎĩΞÎĩÎ―. ថ4Î―3ÎŊω. ថ4Î―3á―·Ï‰. ថ4Î―3Îđππ ថ4Î―3ÎŊππ ថ4Î―3á―·Ï€Ï€ ថ4Î―3ÎŊπτ ថ4Î―3á―·Ï€Ï„ ថ4Î―3ÎŊψ ថ4Î―3á―·Ïˆ ថ4Î―3ÎŊσσ ថ4Î―3á―·ÏƒÏƒ ថ4Î―3ÎŊÏēÏē ថ4Î―3á―·ÏēÏē ថ4Î―3ÎŊστ ថ4Î―3á―·ÏƒÏ„ ថ4Î―3ÎŊÏēτ ថ4Î―3á―·Ïēτ ថ4Î―3Îđστ ថ4Î―3ÎđÏēτ ថ4Î―3Îđσχ ថ4Î―3ÎđÏēχ ថ4Î―3ÎŊσχ ថ4Î―3á―·ÏƒÏ‡ ថ4Î―3ÎŊÏēχ ថ4Î―3á―·Ïēχ ᾔ3Î―2Îŋς. ᾔ3Î―2ÎŋÏē. ᾔ3Î―2Îŋσ. ᾔ3Î―2Îŋυ. ᾔ3Î―2ÎŋÎ―. ᾔ3Î―2ω ᾔ3Î―2ÎŋÎđ. ᾔ3Î―2ÎŋÎđς. ᾔ3Î―2ÎŋÎđÏē. ᾔ3Î―2ÎŋÎđσ. ᾔ3Î―2ης. ᾔ3Î―2ηÏē. ᾔ3Î―2ησ. ᾔ3Î―2áŋƒ. ᾔ3Î―2η. ᾔ3Î―2ÎŋσÎđ ᾔ3Î―2ÎŋÏēÎđ ថ3Î―2όσÎĩ ថ3Î―2á―đσÎĩ ថ3Î―2όÏēÎĩ ថ3Î―2á―đÏēÎĩ ថ3Î―2Ï…ÎŽÎŧ ថ3Î―2Ï…á―ąÎŧ ថ3Î―2Ï…ÎąÎŧ ᾔ3Î―2υÎū ថ3Î―2υÎū ថ3Î―2ύÎū ថ3Î―2á―ŧÎū ថ3Î―2ύσ ថ3Î―2á―ŧσ ថ3Î―2ύÏē ថ3Î―2á―ŧÏē ថ3Î―2υσ ថ3Î―2υÏē ថ3Î―2υώ ថ3Î―2Ï…á―― ថ3Î―2Ï…á―ž ថ3Î―2υόÎŋ ថ3Î―2υá―đÎŋ ថ3Î―2υÎŋáŋĶς ថ3Î―2υÎŋáŋĶÏē ថ2Îū1 ᾔ2Îū1 ថ3Îū2ÎŪρ ថ3Îū2á―ĩρ ថ3Îū2ηρ ថ3Îū2υ2Î―1 ថ3Îū2υρ ថ3Îū2ύρ ថ3Îū2á―ŧρ ᾔ3Îū2υσ ᾔ3Îū2υÏē ᾔ3Îū2ω. ᾑ2Îū1ÎŪρÎĩτΞ ᾑ2Îū1á―ĩρÎĩτΞ ᾑ2Îū1ηρέτΞ ᾑ2Îū1ηρá―ģτΞ ថπÎĩÎŊ2σ1 ថπÎĩá―·2σ1 ថπÎĩÎŊ2Ïē1 ថπÎĩá―·2Ïē1 ថπÎĩÎđ2σ1 ថπÎĩÎđ2Ïē1 ថπÎĩÎŊ3σ2ÎąÏ„ÎŋÎ―. ថπÎĩá―·3σ2ÎąÏ„ÎŋÎ―. ថπÎĩÎŊ3Ïē2ÎąÏ„ÎŋÎ―. ថπÎĩá―·3Ïē2ÎąÏ„ÎŋÎ―. ថπÎĩÎđ3σ2ÎŽÏ„Î·Î―. ថπÎĩÎđ3σ2á―ąÏ„Î·Î―. ថπÎĩÎđ3Ïē2ÎŽÏ„Î·Î―. ថπÎĩÎđ3Ïē2á―ąÏ„Î·Î―. ថπÎĩÎŊ3σ2ιΞÎĩÎ―. ថπÎĩá―·3σ2ιΞÎĩÎ―. ថπÎĩÎŊ3Ïē2ιΞÎĩÎ―. ថπÎĩá―·3Ïē2ιΞÎĩÎ―. ថπÎĩÎŊ3σ2ÎąÏ„Îĩ ថπÎĩá―·3σ2ÎąÏ„Îĩ ថπÎĩÎŊ3Ïē2ÎąÏ„Îĩ ថπÎĩá―·3Ïē2ÎąÏ„Îĩ ថπÎĩÎđ3σ2ÎŽÎžÎ·Î―. ថπÎĩÎđ3σ2á―ąÎžÎ·Î―. ថπÎĩÎđ3Ïē2ÎŽÎžÎ·Î―. ថπÎĩÎđ3Ïē2á―ąÎžÎ·Î―. ថπÎĩÎŊ3σ2ω. ថπÎĩá―·3σ2ω. ថπÎĩÎŊ3Ïē2ω. ថπÎĩá―·3Ïē2ω. ថπÎĩÎŊ3σ2ÎąÏ„Îŋ ថπÎĩá―·3σ2ÎąÏ„Îŋ ថπÎĩÎŊ3Ïē2ÎąÏ„Îŋ ថπÎĩá―·3Ïē2ÎąÏ„Îŋ ថπÎĩÎŊ3σ2ÎąÏƒÎļÎŋÎ―. ថπÎĩá―·3σ2ÎąÏƒÎļÎŋÎ―. ថπÎĩÎŊ3Ïē2ÎąÏēÎļÎŋÎ―. ថπÎĩá―·3Ïē2ÎąÏēÎļÎŋÎ―. ថπÎĩÎđ3σ2ΎΞÎĩÎļÎą. ថπÎĩÎđ3σ2á―ąÎžÎĩÎļÎą. ថπÎĩÎđ3Ïē2ΎΞÎĩÎļÎą. ថπÎĩÎđ3Ïē2á―ąÎžÎĩÎļÎą. ថπÎĩÎŊ3σ2ÎąÏƒÎļÎĩ. ថπÎĩá―·3σ2ÎąÏƒÎļÎĩ. ថπÎĩÎŊ3Ïē2ÎąÏēÎļÎĩ. ថπÎĩá―·3Ïē2ÎąÏēÎļÎĩ. ថπÎĩÎŊ3σ2ÎąÎ―Ï„Îŋ. ថπÎĩá―·3σ2ÎąÎ―Ï„Îŋ. ថπÎĩÎŊ3Ïē2ÎąÎ―Ï„Îŋ. ថπÎĩá―·3Ïē2ÎąÎ―Ï„Îŋ. ថπÎĩÎŊ3σ2Îļ ថπÎĩá―·3σ2Îļ ថπÎĩÎŊ3Ïē2Îļ ថπÎĩá―·3Ïē2Îļ ថπÎĩÎđ3σ2Îļ ថπÎĩÎđ3Ïē2Îļ ថπÎĩ2Κ1τÎĩÎŊ ថπÎĩ2Κ1τÎĩá―· ថπέ2Κ1τÎĩÎđ ថπá―ģ2Κ1τÎĩÎđ ថπÎĩ2Κ1τρ ថπέ2Κ1τρ ថπá―ģ2Κ1τρ ថπÎĩ2Îū1 ថπÎĩ2σ1Îē ថπÎĩ2Ïē1Îē ថπÎĩ2σ1ϐ ថπÎĩ2Ïē1ϐ ថπÎđπρό2σ1Îļ ថπÎđπρá―đ2σ1Îļ ថπÎđπρό2Ïē1Îļ ថπÎđπρá―đ2Ïē1Îļ ថπÎđπρÎŋ2σ1Îļ ថπÎđπρÎŋ2Ïē1Îļ ថπÎđσυ2Î―1 ថπÎđÏēυ2Î―1 ថ2σ1 ថ2Ïē1 ថ3σ2Ύω ថ3σ2á―ąÏ‰ ថ3Ïē2Ύω ថ3Ïē2á―ąÏ‰ ថ3σ2ηΞ ថ3Ïē2ηΞ ថ3σ2Îļ ថ3Ïē2Îļ ថ4σ3Îļέσ ថ4σ3Îļá―ģσ ថ4Ïē3ÎļέÏē ថ4Ïē3Îļá―ģÏē ថ3σ2ÎđÎģ ថ3Ïē2ÎđÎģ ថ3σ2Κ ថ3Ïē2Κ ថ4σ3ΚΎ ថ4σ3Îšá―ą ថ4Ïē3ΚΎ ថ4Ïē3Îšá―ą ថ4σ3Κι ថ4Ïē3Κι ថ3σ2Ξá―ēÎ―. ថ3Ïē2Ξá―ēÎ―. ថ3σ2ÎžÎ­Î―. ថ3σ2Ξá―ģÎ―. ថ3Ïē2ÎžÎ­Î―. ថ3Ïē2Ξá―ģÎ―. ថ3σ2τ ថ3Ïē2τ ថ3σ2όΞÎĩÎļÎą ថ3σ2á―đΞÎĩÎļÎą ថ3Ïē2όΞÎĩÎļÎą ថ3Ïē2á―đΞÎĩÎļÎą ថ3σ2ÎŋÎŊÎžÎ·Î― ថ3σ2Îŋá―·ÎžÎ·Î― ថ3Ïē2ÎŋÎŊÎžÎ·Î― ថ3Ïē2Îŋá―·ÎžÎ·Î― ថ3σ2όΞ ថ3σ2á―đΞ ថ3Ïē2όΞ ថ3Ïē2á―đΞ ថ3σ2ÎŋΞ ថ3Ïē2ÎŋΞ ថ3σ2ÎŋáŋĶ ថ3Ïē2ÎŋáŋĶ ថ3σ2Îŋύ ថ3σ2Îŋá―ŧ ថ3Ïē2Îŋύ ថ3Ïē2Îŋá―ŧ ថ3σ2Îŋυ ថ3Ïē2Îŋυ ថ3σ2υ ថ3Ïē2υ ថ3σ2ύ ថ3σ2á―ŧ ថ3Ïē2ύ ថ3Ïē2á―ŧ ថσύ2Î―1 ថσá―ŧ2Î―1 ថÏēύ2Î―1 ថÏēá―ŧ2Î―1 ថσυ2Î―1 ថÏēυ2Î―1 ថ3σ2χ ថ3Ïē2χ ថ4σ3χέ ថ4σ3χá―ģ ថ4Ïē3χέ ថ4Ïē3χá―ģ ថ3σ2ώ ថ3σ2á―― ថ3Ïē2ώ ថ3Ïē2á―― ថ3σ2ω ថ3Ïē2ω ᾔ2σ1Îŋπ ᾔ2Ïē1Îŋπ Îĩá―Îĩ2Îū1 Îĩá―Îĩ3Îū2ÎŊ Îĩá―Îĩ3Îū2á―· Îĩá―Îĩ3Îū2Îđ Îĩá―Ï€ÏÏŒ2σ1 Îĩá―Ï€Ïá―đ2σ1 Îĩá―Ï€ÏÏŒ2Ïē1 Îĩá―Ï€Ïá―đ2Ïē1 Îĩá―Ï€ÏÎŋ2σ1 Îĩá―Ï€ÏÎŋ2Ïē1 Îĩá―ÏƒÏ2Î―1 Îĩá―Ïƒá―ŧ2Î―1 Îĩá―Ïēύ2Î―1 Îĩá―Ïēá―ŧ2Î―1 Îĩá―ÏƒÏ…2Î―1 Îĩá―Ïēυ2Î―1 Îĩá―Îūύ2Î―1 Îĩá―Îūá―ŧ2Î―1 Îĩá―Îūυ2Î―1 ថω2σ1φ ថω2Ïē1φ ážĪ2Î―1Îŋψ. ážĪ2Î―1Îŋπ áž 2Î―1όπ áž 2Î―1á―đπ .ÎļÎĩΞÎđ2σ1Κρ .ÎļÎĩΞÎđ2Ïē1Κρ .ÎļÎĩό2σ1Îī .ÎļÎĩá―đ2σ1Îī .ÎļÎĩό2Ïē1Îī .ÎļÎĩá―đ2Ïē1Îī .ÎļÎĩÎŋ2σ1Îī .ÎļÎĩÎŋ2Ïē1Îī .ÎļÎĩÎŋÎđ2σ1ÎĩχÎļρ .ÎļÎĩÎŋÎđ2Ïē1ÎĩχÎļρ .Îļη2ρ1ÎąÎģρ .ÎļυÎŋ2σ1Κ .ÎļυÎŋ2Ïē1Κ .ΚιÎļυπÎĩ2ρ1 .ΚιÎŧω2σ1Îŋρ .ΚιÎŧω2Ïē1Îŋρ .ΚιÎŧω2σ1όρ .ΚιÎŧω2σ1á―đρ .ΚιÎŧω2Ïē1όρ .ΚιÎŧω2Ïē1á―đρ .Κι2Î―1ÎĩÎŊς. .Κι2Î―1Îĩá―·Ï‚. .Κι2Î―1ÎĩÎŊÏē. .Κι2Î―1Îĩá―·Ïē. .Κι2Î―1Îĩá―ķς. .Κι2Î―1Îĩá―ķÏē. .Κι2Î―1ÎĩÎŊσ. .Κι2Î―1Îĩá―·Ïƒ. .Κι2Î―1Îĩá―ķσ. .Κι2Î―1ÎĩÎ― .Κι2Î―1Î­Î― .Κι2Î―1á―ģÎ― .ÎšÎąÏ„ÎąÎīυ2σ1ωπ .ÎšÎąÏ„ÎąÎīυ2Ïē1ωπ .ÎšÎąÏ„ÎĩÎīυ2σ1ώπ .ÎšÎąÏ„ÎĩÎīυ2σ1á――Ï€ .ÎšÎąÏ„ÎĩÎīυ2Ïē1ώπ .ÎšÎąÏ„ÎĩÎīυ2Ïē1á――Ï€ .ÎšÎąÏ„ÎĩÎđ2σ1 .ÎšÎąÏ„ÎĩÎđ2Ïē1 .ÎšÎąÏ„Îĩ2Î―1ÎąÎŊ .ÎšÎąÏ„Îĩ2Î―1Îąá―· .ÎšÎąÏ„Îĩ2Î―1ÎŪ .ÎšÎąÏ„Îĩ2Î―1á―ĩ .ÎšÎąÏ„Îĩ2Îū1Îą2Î―1ÎŊ .ÎšÎąÏ„Îĩ2Îū1Îą2Î―1á―· .ÎšÎąÏ„Îĩ2Îū1Îą2Î―1έσ .ÎšÎąÏ„Îĩ2Îū1Îą2Î―1á―ģσ .ÎšÎąÏ„Îĩ2Îū1Îą2Î―1έÏē .ÎšÎąÏ„Îĩ2Îū1Îą2Î―1á―ģÏē .ΚÎĩÏÎą2σ1φ .ΚÎĩÏÎą2Ïē1φ .ΚρΎ2σ1π .ÎšÏá―ą2σ1π .ΚρΎ2Ïē1π .ÎšÏá―ą2Ïē1π .ÎšÏÎą2σ1π .ÎšÏÎą2Ïē1π .ÎšÏ…Î―ÏŒ2σ1Îą .ÎšÏ…Î―á―đ2σ1Îą .ÎšÏ…Î―ÏŒ2Ïē1Îą .ÎšÏ…Î―á―đ2Ïē1Îą .ÎšÏ…Î―ÏŒ2σ1Îē .ÎšÏ…Î―á―đ2σ1Îē .ÎšÏ…Î―ÏŒ2Ïē1Îē .ÎšÏ…Î―á―đ2Ïē1Îē .ÎšÏ…Î―ÏŒ2σ1ϐ .ÎšÏ…Î―á―đ2σ1ϐ .ÎšÏ…Î―ÏŒ2Ïē1ϐ .ÎšÏ…Î―á―đ2Ïē1ϐ .ÎšÏ…Î―Îŋ2σ1Îē .ÎšÏ…Î―Îŋ2Ïē1Îē .ÎšÏ…Î―Îŋ2σ1ϐ .ÎšÏ…Î―Îŋ2Ïē1ϐ .ÎšÏ…Î―ÏŒ2σ1Îŋ .ÎšÏ…Î―á―đ2σ1Îŋ .ÎšÏ…Î―ÏŒ2Ïē1Îŋ .ÎšÏ…Î―á―đ2Ïē1Îŋ .ÎšÏ…Î―Îŋ2σ1Îŋ .ÎšÏ…Î―Îŋ2Ïē1Îŋ .ÎšÏ…Î―Îŋ2σ1φ .ÎšÏ…Î―Îŋ2Ïē1φ .ΞÎĩÎŧÎą2Î―1ÎŽÎģ .ΞÎĩÎŧÎą2Î―1á―ąÎģ .ΞÎĩÎŧÎą2Î―1ÎąÎģ .ΞÎĩÎŧÎą2Î―1ÎŽÎĩ .ΞÎĩÎŧÎą2Î―1á―ąÎĩ .ΞÎĩÎŧÎą2Î―1ιέ .ΞÎĩÎŧÎą2Î―1Îąá―ģ .ΞÎĩÎŧÎą2Î―1ÎąÎļ .ΞÎĩÎŧÎą2Î―1ÎąÎđÎģ .ΞÎĩÎŧÎą2Î―1ÎąÏ…Îģ .ΞÎĩÎŧÎą2Î―1ÎĩÎŊΞ .ΞÎĩÎŧÎą2Î―1Îĩá―·Îž .ΞÎĩÎŧÎą2Î―1Îĩáŋ–Ξ .ΞÎĩÎŧÎŽ2Î―1Îđππ .ΞÎĩÎŧá―ą2Î―1Îđππ .ΞÎĩÎŧÎą2Î―1ÎŊππ .ΞÎĩÎŧÎą2Î―1á―·Ï€Ï€ .ΞÎĩÎŧÎą2Î―1όΞΞ .ΞÎĩÎŧÎą2Î―1á―đΞΞ .ΞÎĩÎŧÎą2Î―1ÎŋΞΞ .ΞÎĩÎŧÎŽ2Î―1Îŋσσ .ΞÎĩÎŧá―ą2Î―1Îŋσσ .ΞÎĩÎŧÎŽ2Î―1ÎŋÏēÏē .ΞÎĩÎŧá―ą2Î―1ÎŋÏēÏē .ΞÎĩÎŧÎą2Î―1όσσ .ΞÎĩÎŧÎą2Î―1á―đσσ .ΞÎĩÎŧÎą2Î―1όÏēÏē .ΞÎĩÎŧÎą2Î―1á―đÏēÏē .ΞÎĩÎŧÎŽ2Î―1Îŋστ .ΞÎĩÎŧá―ą2Î―1Îŋστ .ΞÎĩÎŧÎŽ2Î―1ÎŋÏēτ .ΞÎĩÎŧá―ą2Î―1ÎŋÏēτ .ΞÎĩÎŧÎą2Î―1όστ .ΞÎĩÎŧÎą2Î―1á―đστ .ΞÎĩÎŧÎą2Î―1όÏēτ .ΞÎĩÎŧÎą2Î―1á―đÏēτ .ΞÎĩÎŧÎŽ2Î―1Îŋυρ .ΞÎĩÎŧá―ą2Î―1Îŋυρ .ΞÎĩÎŧÎą2Î―1Îŋύρ .ΞÎĩÎŧÎą2Î―1Îŋá―ŧρ .ΞÎĩÎŧÎą2Î―1Îŋυρ .ΞÎĩÎŧÎŽ2Î―1υ .ΞÎĩÎŧá―ą2Î―1υ .ΞÎĩÎŧÎą2Î―1ύ .ΞÎĩÎŧÎą2Î―1á―ŧ .ΞÎĩτÎĩ2Îū1Îą .ΞÎĩτÎĩ2Îū1έ .ΞÎĩτÎĩ2Îū1á―ģ .ΞÎĩτÎĩ2Îū1Îĩ .ΞÎŋÎģÎđ2σ1 .ΞÎŋÎģÎđ2Ïē1 .ΞÎŋÎģÎŋ2σ1τ .ΞÎŋÎģÎŋ2Ïē1τ .Ξυ2σ1π .Ξυ2Ïē1π .Ξυ2σ1Îĩπ .Ξυ2Ïē1Îĩπ .Î―Îĩώ2σ1ÎŋÎđΚ .Î―Îĩá――2σ1ÎŋÎđΚ .Î―Îĩώ2Ïē1ÎŋÎđΚ .Î―Îĩá――2Ïē1ÎŋÎđΚ .Î―Îĩω2σ1ÎŋÎŊΚ .Î―Îĩω2σ1Îŋá―·Îš .Î―Îĩω2Ïē1ÎŋÎŊΚ .Î―Îĩω2Ïē1Îŋá―·Îš .Î―Îŋυ2Î―1Îĩ .Îūυ2Î―1ÎąÎģ .Îūυ2Î―1Îĩ .Îūυ2Î―1έ .Îūυ2Î―1á―ģ .Îūύ2Î―1Îĩ .Îūá―ŧ2Î―1Îĩ .Îūυ3Î―2Îĩώ .Îūυ3Î―2Îĩá―― .Îūυ3Î―2Îĩáŋķ .Îūυ2Î―1áŋ†Îš .Îūύ2Î―1Îđ .Îūá―ŧ2Î―1Îđ .Îūυ2Î―1ÎŊ .Îūυ2Î―1á―· ÎŋážąÎŋ2Î―1ÎĩÎŊ. ÎŋážąÎŋ2Î―1Îĩá―·. ÎŋážąÎŋ2Î―1Îĩá―ķ. ÎŋážąÏŒ2σ1 Îŋážąá―đ2σ1 ÎŋážąÏŒ2Ïē1 Îŋážąá―đ2Ïē1 Îŋáž°2σ1πώτ Îŋáž°2σ1Ï€á――Ï„ Îŋáž°2Ïē1πώτ Îŋáž°2Ïē1Ï€á――Ï„ Îŋáž°2σ1πωτ Îŋáž°2Ïē1πωτ á―ÎŧÎŋ2Î―1Î­Î―. á―ÎŧÎŋ2Î―1á―ģÎ―. á―ÎŧÎŋ2Î―1á―ēÎ―. á―Ï€Ï‰2σ1 á―Ï€Ï‰2Ïē1 á―…2σ1ÎģÎĩ. á―…2Ïē1ÎģÎĩ. á―ÏƒÎŋ2Î―1áŋķÎ―. á―ÏēÎŋ2Î―1áŋķÎ―. á―…2σ1πÎĩρ. á―…2Ïē1πÎĩρ. á―…2σ1τÎđς á―…2Ïē1τÎđÏē Îŋáž·2σ1τÎđσÎđ Îŋáž·2Ïē1τÎđÏēÎđ Îŋá―•2σ1τÎđÎ―ÎąÏ‚ Îŋá―•2Ïē1τÎđÎ―ÎąÏē ឧ2σ1τÎđÎ―Îŋς ឧ2Ïē1τÎđÎ―ÎŋÏē Îąáž·2σ1τÎđσÎđ Îąáž·2Ïē1τÎđÏēÎđ ᾅ2σ1τÎđÎ―ÎąÏ‚ ᾅ2Ïē1τÎđÎ―ÎąÏē á―2σ1τÎđ2σ1ÎŋáŋĶÎ―. á―2Ïē1τÎđ2Ïē1ÎŋáŋĶÎ―. ážĄÏ„Îđ2σ1ÎŋáŋĶÎ―. ážĄÏ„Îđ2Ïē1ÎŋáŋĶÎ―. á―Ï€ÎŋÎđÎŋυ2σ1τÎđÎ―Îą2σ1ÎŋáŋĶÎ―. á―Ï€ÎŋÎđÎŋυ2Ïē1τÎđÎ―Îą2Ïē1ÎŋáŋĶÎ―. Îŋá―ÎīÎĩÎ―ÏŒ2σ1ω Îŋá―ÎīÎĩÎ―á―đ2σ1ω Îŋá―ÎīÎĩÎ―ÏŒ2Ïē1ω Îŋá―ÎīÎĩÎ―á―đ2Ïē1ω Îŋá―ÎīÎĩÎ―Îŋ2σ1ώ Îŋá―ÎīÎĩÎ―Îŋ2σ1á―― Îŋá―ÎīÎĩÎ―Îŋ2Ïē1ώ Îŋá―ÎīÎĩÎ―Îŋ2Ïē1á―― .Ï€ÎąÎŧÎđ2Î―1 .Ï€ÎąÎŧÎŊ2Î―1 .Ï€ÎąÎŧá―·2Î―1 .Ï€Îą2Î―1 .πΎ2Î―1 .Ï€á―ą2Î―1 .Ï€Îą3Î―2ός. .Ï€Îą3Î―2á―đς. .Ï€Îą3Î―2όÏē. .Ï€Îą3Î―2á―đÏē. .Ï€Îą3Î―2á―ļς. .Ï€Îą3Î―2á―ļÏē. .Ï€Îą3Î―2όσ. .Ï€Îą3Î―2á―đσ. .Ï€Îą3Î―2á―ļσ. .Ï€Îą3Î―2ÎŊ. .Ï€Îą3Î―2á―·. .Ï€Îą3Î―2á―ķ. .Ï€ÎŽÎ―Îą. .Ï€á―ąÎ―Îą. .Ï€Îą3Î―2áŋķÎ―. .Ï€Îą3Î―2ÎđΚ .Ï€Îą3Î―2ÎŊσÎī .Ï€Îą3Î―2á―·ÏƒÎī .Ï€Îą3Î―2ÎŊÏēÎī .Ï€Îą3Î―2á―·ÏēÎī .Ï€Îą3Î―2ÎđσÎī .Ï€Îą3Î―2ÎđÏēÎī .Ï€Îą3Î―2ÎŋáŋĶ. .Ï€Îą3Î―2áŋ·. .Ï€Îą3Î―2ό. .Ï€Îą3Î―2á―đ. .Ï€Îą3Î―2á―ļ. .Ï€Îą3Î―2ÏŒÎ―. .Ï€Îą3Î―2á―đÎ―. .Ï€Îą3Î―2á―ļÎ―. .Ï€Îą3Î―2έ. .Ï€Îą3Î―2á―ģ. .Ï€Îą3Î―2á―ē. .Ï€Îą3Î―2ÎŋÎŊ. .Ï€Îą3Î―2Îŋá―·. .Ï€Îą3Î―2Îŋá―ķ. .Ï€Îą3Î―2Îŋáŋ–Ï‚. .Ï€Îą3Î―2Îŋáŋ–Ïē. .Ï€Îą3Î―2Îŋáŋ–σ. .Ï€Îą3Î―2Îŋύς. .Ï€Îą3Î―2Îŋá―ŧς. .Ï€Îą3Î―2ÎŋύÏē. .Ï€Îą3Î―2Îŋá―ŧÏē. .Ï€Îą3Î―2Îŋá―šÏ‚. .Ï€Îą3Î―2Îŋá―šÏē. .Ï€Îą3Î―2Îŋύσ. .Ï€Îą3Î―2Îŋá―ŧσ. .Ï€Îą3Î―2Îŋá―šÏƒ. .Ï€ÎąÏÎą2Î―1ÎŊσχ .Ï€ÎąÏÎą2Î―1á―·ÏƒÏ‡ .Ï€ÎąÏÎą2Î―1ÎŊÏēχ .Ï€ÎąÏÎą2Î―1á―·Ïēχ .Ï€ÎąÏÎĩÎŊ2σ1 .Ï€ÎąÏÎĩá―·2σ1 .Ï€ÎąÏÎĩÎŊ2Ïē1 .Ï€ÎąÏÎĩá―·2Ïē1 .Ï€ÎąÏÎĩÎđ2σ1 .Ï€ÎąÏÎĩÎđ2Ïē1 .Ï€ÎąÏÎĩ2Κ1Îŧ .Ï€ÎąÏÎĩ2Κ1τρ .Ï€ÎąÏÎĩ2Î―1Îĩáŋ– .Ï€ÎąÏÎĩ2Î―1Îŋ .Ï€ÎąÏÎĩ2Îū1 .Ï€ÎąÏÎ­2Îū1 .Ï€ÎąÏá―ģ2Îū1 Ï€ÎąÏÎ­3Îū2ω. Ï€ÎąÏá―ģ3Îū2ω. Ï€ÎąÏÎ­3Îū2ÎĩÎđς. Ï€ÎąÏá―ģ3Îū2ÎĩÎđς. Ï€ÎąÏÎ­3Îū2ÎĩÎđÏē. Ï€ÎąÏá―ģ3Îū2ÎĩÎđÏē. Ï€ÎąÏÎ­3Îū2ÎĩÎđσ. Ï€ÎąÏá―ģ3Îū2ÎĩÎđσ. Ï€ÎąÏÎ­3Îū2ÎĩÎđ. Ï€ÎąÏá―ģ3Îū2ÎĩÎđ. Ï€ÎąÏÎ­3Îū2ÎĩτÎŋÎ―. Ï€ÎąÏá―ģ3Îū2ÎĩτÎŋÎ―. Ï€ÎąÏÎĩ3Îū2Î­Ï„Î·Î―. Ï€ÎąÏÎĩ3Îū2á―ģÏ„Î·Î―. Ï€ÎąÏÎ­3Îū2ÎŋΞÎĩÎ―. Ï€ÎąÏá―ģ3Îū2ÎŋΞÎĩÎ―. Ï€ÎąÏÎ­3Îū2ÎĩτÎĩ. Ï€ÎąÏá―ģ3Îū2ÎĩτÎĩ. Ï€ÎąÏÎ­3Îū2ÎŋυσÎđ. Ï€ÎąÏá―ģ3Îū2ÎŋυσÎđ. Ï€ÎąÏÎ­3Îū2ÎŋυÏēÎđ. Ï€ÎąÏá―ģ3Îū2ÎŋυÏēÎđ. Ï€ÎąÏÎ­3Îū2ÎŋΞιÎđ Ï€ÎąÏá―ģ3Îū2ÎŋΞιÎđ Ï€ÎąÏÎ­3Îū2áŋƒ Ï€ÎąÏá―ģ3Îū2áŋƒ Ï€ÎąÏÎ­3Îū2ÎĩÏ„ÎąÎđ. Ï€ÎąÏá―ģ3Îū2ÎĩÏ„ÎąÎđ. Ï€ÎąÏÎ­3Îū2ÎĩσÎļÎŋÎ―. Ï€ÎąÏá―ģ3Îū2ÎĩσÎļÎŋÎ―. Ï€ÎąÏÎ­3Îū2ÎĩÏēÎļÎŋÎ―. Ï€ÎąÏá―ģ3Îū2ÎĩÏēÎļÎŋÎ―. Ï€ÎąÏÎĩ3Îū2όΞÎĩÎļÎą. Ï€ÎąÏÎĩ3Îū2á―đΞÎĩÎļÎą. Ï€ÎąÏÎ­3Îū2ÎĩσÎļÎĩ. Ï€ÎąÏá―ģ3Îū2ÎĩσÎļÎĩ. Ï€ÎąÏÎ­3Îū2ÎĩÏēÎļÎĩ. Ï€ÎąÏá―ģ3Îū2ÎĩÏēÎļÎĩ. Ï€ÎąÏÎ­3Îū2ÎŋÎ―Ï„ÎąÎđ. Ï€ÎąÏá―ģ3Îū2ÎŋÎ―Ï„ÎąÎđ. .πÎŧÎĩÎŋ2Î―1έ .πÎŧÎĩÎŋ2Î―1á―ģ .πÎŧÎĩÎŋ2Î―1Îĩ .πρÎŋÎĩÎđ2σ1 .πρÎŋÎĩÎđ2Ïē1 .πρÎŋÎĩ2Κ1 .πρÎŋÎĩ2Î―1 .πρÎŋÎĩ2Îū1 .πρÎŋέ2Îū1 .πρÎŋá―ģ2Îū1 .πρÎŋ2σ1 .πρÎŋ2Ïē1 .πρÎŋ3σ2ÎŽÎē .πρÎŋ3σ2á―ąÎē .πρÎŋ3Ïē2ÎŽÎē .πρÎŋ3Ïē2á―ąÎē .πρÎŋ3σ2Ύϐ .πρÎŋ3σ2á―ąÏ .πρÎŋ3Ïē2Ύϐ .πρÎŋ3Ïē2á―ąÏ .πρÎŋ3σ2ÎąÎē .πρÎŋ3Ïē2ÎąÎē .πρÎŋ3σ2ÎąÏ .πρÎŋ3Ïē2ÎąÏ .πρÎŋσÎĩÎđ2σ1 .πρÎŋÏēÎĩÎđ2Ïē1 .πρÎŋ3σ2ÎĩÎŊ .πρÎŋ3σ2Îĩá―· .πρÎŋ3Ïē2ÎĩÎŊ .πρÎŋ3Ïē2Îĩá―· .πρÎŋ3σ2έσÎĩÎđ .πρÎŋ3σ2á―ģσÎĩÎđ .πρÎŋ3Ïē2έÏēÎĩÎđ .πρÎŋ3Ïē2á―ģÏēÎĩÎđ .πρÎŋ3σ2ÎĩσÎĩÎŊ .πρÎŋ3σ2ÎĩσÎĩá―· .πρÎŋ3Ïē2ÎĩÏēÎĩÎŊ .πρÎŋ3Ïē2ÎĩÏēÎĩá―· .πρÎŋσÎĩ2Î―1 .πρÎŋÏēÎĩ2Î―1 .πρÎŋσÎĩ2Îū1 .πρÎŋÏēÎĩ2Îū1 .πρό3σ2ÎļÎđ .πρá―đ3σ2ÎļÎđ .πρό3Ïē2ÎļÎđ .πρá―đ3Ïē2ÎļÎđ .πρÎŋ3σ2ÎļÎŊ .πρÎŋ3σ2Îļá―· .πρÎŋ3Ïē2ÎļÎŊ .πρÎŋ3Ïē2Îļá―· .πρÎŋ4σ3ÎļÎđÎģ .πρÎŋ4Ïē3ÎļÎđÎģ .πρό3σ2ΚÎŋπ .πρá―đ3σ2ΚÎŋπ .πρό3Ïē2ΚÎŋπ .πρá―đ3Ïē2ΚÎŋπ .πρÎŋ3σ2Κόπ .πρÎŋ3σ2Κá―đπ .πρÎŋ3Ïē2Κόπ .πρÎŋ3Ïē2Κá―đπ .πρÎŋ3σ2Ï„ÎąÏƒ .πρÎŋ3Ïē2Ï„ÎąÏē .πρÎŋ3σ2Ï„ÎŽÏ„ .πρÎŋ3σ2Ï„á―ąÏ„ .πρÎŋ3Ïē2Ï„ÎŽÏ„ .πρÎŋ3Ïē2Ï„á―ąÏ„ .πρÎŋ3σ2Ï„ÎąÏ„ .πρÎŋ3Ïē2Ï„ÎąÏ„ .πρÎŋ3σ2Ï„ÎąÏ… .πρÎŋ3Ïē2Ï„ÎąÏ… .πρÎŋ3σ2τÎĩÎŊ .πρÎŋ3σ2τÎĩá―· .πρÎŋ3Ïē2τÎĩÎŊ .πρÎŋ3Ïē2τÎĩá―· .πρÎŋ3σ2τÎĩÎ― .πρÎŋ3Ïē2τÎĩÎ― .πρÎŋ3σ2Ï„Î­Î― .πρÎŋ3σ2τá―ģÎ― .πρÎŋ3Ïē2Ï„Î­Î― .πρÎŋ3Ïē2τá―ģÎ― .πρÎŋ3σ2τÎĩÏÎ― .πρÎŋ3Ïē2τÎĩÏÎ― .πρό3σ2τÎĩÏÎ― .πρá―đ3σ2τÎĩÏÎ― .πρό3Ïē2τÎĩÏÎ― .πρá―đ3Ïē2τÎĩÏÎ― .πρÎŋ3σ2Ï„Î­ÏÎ― .πρÎŋ3σ2τá―ģÏÎ― .πρÎŋ3Ïē2Ï„Î­ÏÎ― .πρÎŋ3Ïē2τá―ģÏÎ― .πρÎŋ3σ2τÎŪσ .πρÎŋ3σ2τá―ĩσ .πρÎŋ3Ïē2τÎŪÏē .πρÎŋ3Ïē2τá―ĩÏē .πρÎŋ3σ2τόΞ .πρÎŋ3σ2τá―đΞ .πρÎŋ3Ïē2τόΞ .πρÎŋ3Ïē2τá―đΞ .πρÎŋ3σ2τÎŋΞ .πρÎŋ3Ïē2τÎŋΞ .πρό3σ2τáŋģ .πρá―đ3σ2τáŋģ .πρό3Ïē2τáŋģ .πρá―đ3Ïē2τáŋģ .πρÎŋ3σ2τáŋī .πρÎŋ3Ïē2τáŋī .πρÎŋ3σ2υÎģ .πρÎŋ3Ïē2υÎģ .πρÎŋ3σ2υΞ .πρÎŋ3Ïē2υΞ .πρÎŋ3σ2υ2Î―1 .πρÎŋ3Ïē2υ2Î―1 .πρό3σ2Ï†ÎąÎģΞ .πρá―đ3σ2Ï†ÎąÎģΞ .πρό3Ïē2Ï†ÎąÎģΞ .πρá―đ3Ïē2Ï†ÎąÎģΞ .πρÎŋ3σ2φΎÎģΞ .πρÎŋ3σ2Ï†á―ąÎģΞ .πρÎŋ3Ïē2φΎÎģΞ .πρÎŋ3Ïē2Ï†á―ąÎģΞ .πρÎŋ3σ2φΎÎķ .πρÎŋ3σ2Ï†á―ąÎķ .πρÎŋ3Ïē2φΎÎķ .πρÎŋ3Ïē2Ï†á―ąÎķ .πρÎŋ3σ2φΎττ .πρÎŋ3σ2Ï†á―ąÏ„Ï„ .πρÎŋ3Ïē2φΎττ .πρÎŋ3Ïē2Ï†á―ąÏ„Ï„ .πρό3σ2χηΞ .πρá―đ3σ2χηΞ .πρό3Ïē2χηΞ .πρá―đ3Ïē2χηΞ .πρÎŋ3σ2χÎŪΞ .πρÎŋ3σ2χá―ĩΞ .πρÎŋ3Ïē2χÎŪΞ .πρÎŋ3Ïē2χá―ĩΞ .πρό3σ2ω. .πρá―đ3σ2ω. .πρό3Ïē2ω. .πρá―đ3Ïē2ω. .πρό3σ2ωÎļÎĩÎ―. .πρá―đ3σ2ωÎļÎĩÎ―. .πρό3Ïē2ωÎļÎĩÎ―. .πρá―đ3Ïē2ωÎļÎĩÎ―. .πρÎŋ3σ2ώτ .πρÎŋ3σ2á――Ï„ .πρÎŋ3Ïē2ώτ .πρÎŋ3Ïē2á――Ï„ .πρÎŋ3σ2ωτ .πρÎŋ3Ïē2ωτ .πρÎŋϋπÎĩ2Îū1 .πυ2ρ1ÎŽÎģ .πυ2ρ1á―ąÎģ .πυ2ρ1ÎąÎģ .πυ2ρ1ÎąÎŊÎļ .πυ2ρ1Îąá―·Îļ .πυ2ρ1ÎąÎđÎļ .πυ2ρ1áŋ†Îļ .πυ2ρ1ηÎļ .πυ2ρ1ÎŪÎļ .πυ2ρ1á―ĩÎļ .πυ2ρ1ιΚ .πύ2ρ1ÎąÏ… .πá―ŧ2ρ1ÎąÏ… .πυ2ρ1ÎąÏ .πυ2ρ1Îąá―ŧ .πυ2ρ1ÎąÏ… .πυ2ρ1ÎŪÎ―ÎĩΞ .πυ2ρ1á―ĩÎ―ÎĩΞ .πυ2ρ1Î·Î―Î­Îž .πυ2ρ1Î·Î―á―ģΞ .πυ2ρ1ωπ .σÎĩÎŧÎą2σ1φό .σÎĩÎŧÎą2σ1φá―đ .ÏēÎĩÎŧÎą2Ïē1φό .ÏēÎĩÎŧÎą2Ïē1φá―đ .σÎĩÎŧÎą2σ1φÎŋ .ÏēÎĩÎŧÎą2Ïē1φÎŋ .ÏƒÏ…ÎžÏ€ÎąÏÎĩÎđ2σ1 .ÏēÏ…ÎžÏ€ÎąÏÎĩÎđ2Ïē1 .συ2Î―1 .Ïēυ2Î―1 .σύ2Î―1 .σá―ŧ2Î―1 .Ïēύ2Î―1 .Ïēá―ŧ2Î―1 .ÏƒÏ…Î―ÎīÎđέ2Îū1 .ÏƒÏ…Î―ÎīÎđá―ģ2Îū1 .ÏēÏ…Î―ÎīÎđέ2Îū1 .ÏēÏ…Î―ÎīÎđá―ģ2Îū1 .ÏƒÏ…Î―ÎīÎđÎĩ2Îū1 .ÏēÏ…Î―ÎīÎđÎĩ2Îū1 .ÏƒÏ…Î―Îīυ2σ1 .ÏēÏ…Î―Îīυ2Ïē1 .ÏƒÏ…Î―Îĩ2Îū1 .ÏēÏ…Î―Îĩ2Îū1 .τÎĩÏƒÏƒÎąÏÎĩ2σ1Κ .τÎĩÏēÏēÎąÏÎĩ2Ïē1Κ .τρÎĩÎđ2σ1Κ .τρÎĩÎđ2Ïē1Κ .τρÎđ2σ1 .τρÎđ2Ïē1 .τρÎđ3σ2Ξό .τρÎđ3σ2Ξá―đ .τρÎđ3Ïē2Ξό .τρÎđ3Ïē2Ξá―đ .τρÎđ3σ2ΞÎŋ .τρÎđ3Ïē2ΞÎŋ .τρÎđ3σ2Ξáŋķ .τρÎđ3Ïē2Ξáŋķ .τρÎđ3σ2π .τρÎđ3Ïē2π .τρÎŊ3σ2τ .Ï„Ïá―·3σ2τ .τρÎŊ3Ïē2τ .Ï„Ïá―·3Ïē2τ .τρÎđ3σ2τ .τρÎđ3Ïē2τ .τρÎđ3σ2ώ .τρÎđ3σ2á―― .τρÎđ3Ïē2ώ .τρÎđ3Ïē2á―― .τρÎđ3σ2ω .τρÎđ3Ïē2ω á―‘Îŋ2σ1Κ á―‘Îŋ2Ïē1Κ á―‘Ï€ÎĩÎŊ2σ1 á―‘Ï€Îĩá―·2σ1 á―‘Ï€ÎĩÎŊ2Ïē1 á―‘Ï€Îĩá―·2Ïē1 á―‘Ï€ÎĩÎđ2σ1 á―‘Ï€ÎĩÎđ2Ïē1 á―‘Ï€ÎĩÎŊ3σ2ÎąÏ‚ á―‘Ï€Îĩá―·3σ2ÎąÏ‚ á―‘Ï€ÎĩÎŊ3Ïē2ÎąÏē á―‘Ï€Îĩá―·3Ïē2ÎąÏē á―‘Ï€ÎĩÎŊ3σ2ÎąÏƒ á―‘Ï€Îĩá―·3σ2ÎąÏƒ á―‘Ï€ÎĩÎŊ3σ2ÎąÎ― á―‘Ï€Îĩá―·3σ2ÎąÎ― á―‘Ï€ÎĩÎŊ3Ïē2ÎąÎ― á―‘Ï€Îĩá―·3Ïē2ÎąÎ― á―‘Ï€ÎĩÎđ3σ2ÎŽÎ― á―‘Ï€ÎĩÎđ3σ2á―ąÎ― á―‘Ï€ÎĩÎđ3Ïē2ÎŽÎ― á―‘Ï€ÎĩÎđ3Ïē2á―ąÎ― á―‘Ï€ÎĩÎđ3σ2Ύσ á―‘Ï€ÎĩÎđ3σ2á―ąÏƒ á―‘Ï€ÎĩÎđ3Ïē2ÎŽÏē á―‘Ï€ÎĩÎđ3Ïē2á―ąÏē á―‘Ï€Îĩ2Κ1ÎŧιΞ á―‘Ï€Îĩ2Κ1ÎŧÎŪψ á―‘Ï€Îĩ2Κ1Îŧá―ĩψ á―‘Ï€Îĩ2Κ1τ á―‘Ï€Îĩ2Î―1 á―‘Ï€Îĩ2Îū1 á―‘Ï€Îĩ2ρ1 á―‘Ï€Î­2ρ1 á―‘Ï€á―ģ2ρ1 á―‘Ï€Î­3ρ2Îą. á―‘Ï€á―ģ3ρ2Îą. á―‘Ï€Î­3ρ2ης. á―‘Ï€á―ģ3ρ2ης. á―‘Ï€Î­3ρ2ηÏē. á―‘Ï€á―ģ3ρ2ηÏē. á―‘Ï€Î­3ρ2ησ. á―‘Ï€á―ģ3ρ2ησ. á―‘Ï€Î­3ρ2áūģ. á―‘Ï€á―ģ3ρ2áūģ. á―‘Ï€Î­3ρ2ÎąÎ―. á―‘Ï€á―ģ3ρ2ÎąÎ―. á―‘Ï€Î­3ρ2ÎąÎđ. á―‘Ï€á―ģ3ρ2ÎąÎđ. á―‘Ï€Îĩ3ρ2áŋķÎ―. á―‘Ï€Î­3ρ2ÎąÎđς. á―‘Ï€á―ģ3ρ2ÎąÎđς. á―‘Ï€Î­3ρ2ÎąÎđÏē. á―‘Ï€á―ģ3ρ2ÎąÎđÏē. á―‘Ï€Î­3ρ2ÎąÎđσ. á―‘Ï€á―ģ3ρ2ÎąÎđσ. á―‘Ï€Î­3ρ2ÎąÏ‚. á―‘Ï€á―ģ3ρ2ÎąÏ‚. á―‘Ï€Î­3ρ2ÎąÏē. á―‘Ï€á―ģ3ρ2ÎąÏē. á―‘Ï€Î­3ρ2ÎąÏƒ. á―‘Ï€á―ģ3ρ2ÎąÏƒ. á―‘Ï€Îĩ3ρ2ÎĩÎļ á―‘Ï€Îĩ3ρ2έÎļ á―‘Ï€Îĩ3ρ2á―ģÎļ á―‘Ï€Îĩ3ρ2ÎĩÎŊ á―‘Ï€Îĩ3ρ2Îĩá―· á―‘Ï€Î­3ρ2υÎļ á―‘Ï€á―ģ3ρ2υÎļ á―‘Ï€Îĩ3ρ2ύÎļ á―‘Ï€Îĩ3ρ2á―ŧÎļ á―‘Ï€Îĩ3ρ2υÎļ á―‘Ï€ÎĩρÎĩ2Κ1τÎĩ á―‘Ï€ÎĩρÎĩ2Κ1τÎŊ á―‘Ï€ÎĩρÎĩ2Κ1Ï„á―· á―‘Ï€Îĩ3ρ2έπτ á―‘Ï€Îĩ3ρ2á―ģπτ á―‘Ï€Îĩ3ρ2Îĩπτ á―‘Ï€Îĩ3ρ2έψ á―‘Ï€Îĩ3ρ2á―ģψ á―‘Ï€Îĩ3ρ2Îĩψ á―‘Ï€Îĩ3ρ2έω á―‘Ï€Îĩ3ρ2á―ģω á―‘Ï€Îĩ3ρ2áŋķ á―‘Ï€Îĩ3ρ2έÎĩ á―‘Ï€Îĩ3ρ2á―ģÎĩ á―‘Ï€Îĩ3ρ2Îĩáŋ–Ï‚. á―‘Ï€Îĩ3ρ2Îĩáŋ–Ïē. á―‘Ï€Îĩ3ρ2Îĩáŋ–σ. á―‘Ï€Îĩ3ρ2Îĩáŋ–. á―‘Ï€Îĩ3ρ2έÎŋ á―‘Ï€Îĩ3ρ2á―ģÎŋ á―‘Ï€Îĩ3ρ2ÎŋáŋĶ á―‘Ï€Îĩ3ρ2Îĩáŋ–Ï„ á―‘Ï€Îĩ3ρ2ώ á―‘Ï€Îĩ3ρ2á―― á―‘Ï€Îĩ3ρ2ω á―•2σ1τρ á―•2Ïē1τρ á―‘2σ1τρ á―‘2Ïē1τρ .Ï†ÎąÎĩ2σ1φ .Ï†ÎąÎĩ2Ïē1φ .φω2σ1φ .φω2Ïē1φ .Ï‡ÎąÏÎđ2σ1ÎąÎ―Îīρ .Ï‡ÎąÏÎđ2Ïē1ÎąÎ―Îīρ .Ï‡ÎąÏÎđ2σ1ÎŽÎ―Îīρ .Ï‡ÎąÏÎđ2σ1á―ąÎ―Îīρ .Ï‡ÎąÏÎđ2Ïē1ÎŽÎ―Îīρ .Ï‡ÎąÏÎđ2Ïē1á―ąÎ―Îīρ .χÎĩÎđ2ρ1ÎŽÎģ .χÎĩÎđ2ρ1á―ąÎģ .χÎĩÎđ2ρ1ÎąÎģ .χÎĩÎđ2ρ1ÎąÏ€ .χÎĩÎđ2ρ1ÎąÏˆ .χÎĩÎđ2ρ1Îŋυ .χÎĩÎđ2ρ1áŋķÎ― .χÎĩÎđ2ρ1ÎŽÎ― .χÎĩÎđ2ρ1á―ąÎ― .χÎĩÎđ2ρ1ÎąÎ― .χη2Î―1Î―ÎąÎŧ á―Ą2σ1Îą2Î―1ÎĩÎŊ. á―Ą2σ1Îą2Î―1Îĩá―·. á―Ą2Ïē1Îą2Î―1ÎĩÎŊ. á―Ą2Ïē1Îą2Î―1Îĩá―·. á―Ą2σ1Îą2Î―1Îĩá―ķ. á―Ą2Ïē1Îą2Î―1Îĩá―ķ. á―Ą2σ1ÎąÏÏ„Ï‰Ï‚. á―Ą2σ1Îąá―ŧτως. á―Ą2Ïē1ÎąÏÏ„Ï‰Ïē. á―Ą2Ïē1Îąá―ŧτωÏē. á―Ą2σ1ÎąÏÏ„Ï‰Ïƒ. á―Ą2σ1Îąá―ŧτωσ. á―Ą2σ1ÎĩÎŊ. á―Ą2σ1Îĩá―·. á―Ą2Ïē1ÎĩÎŊ. á―Ą2Ïē1Îĩá―·. á―Ą2σ1Îĩá―ķ. á―Ą2Ïē1Îĩá―ķ. á―Ĩ2σ1πÎĩρ. á―Ĩ2Ïē1πÎĩρ. á―Ą2σ1πÎĩ2ρ1ÎĩÎŊ. á―Ą2σ1πÎĩ2ρ1Îĩá―·. á―Ą2Ïē1πÎĩ2ρ1ÎĩÎŊ. á―Ą2Ïē1πÎĩ2ρ1Îĩá―·. á―Ą2σ1πÎĩ2ρ1Îĩá―ķ. á―Ą2Ïē1πÎĩ2ρ1Îĩá―ķ. á―Ĩ2σ1τÎĩ á―Ĩ2Ïē1τÎĩ Îđ2σ1χÎŊÎŧÎđÎŋÎđ. Îđ2σ1Ï‡á―·ÎŧÎđÎŋÎđ. Îđ2Ïē1χÎŊÎŧÎđÎŋÎđ. Îđ2Ïē1Ï‡á―·ÎŧÎđÎŋÎđ. Îđ2σ1χÎđÎŧÎŊÏ‰Î―. Îđ2σ1χÎđÎŧá―·Ï‰Î―. Îđ2Ïē1χÎđÎŧÎŊÏ‰Î―. Îđ2Ïē1χÎđÎŧá―·Ï‰Î―. Îđ2σ1χÎđÎŧÎŊÎŋÎđς. Îđ2σ1χÎđÎŧá―·ÎŋÎđς. Îđ2Ïē1χÎđÎŧÎŊÎŋÎđÏē. Îđ2Ïē1χÎđÎŧá―·ÎŋÎđÏē. Îđ2σ1χÎđÎŧÎŊÎŋÎđσ. Îđ2σ1χÎđÎŧá―·ÎŋÎđσ. Îđ2σ1χÎđÎŧÎŊÎŋυς. Îđ2σ1χÎđÎŧá―·Îŋυς. Îđ2Ïē1χÎđÎŧÎŊÎŋυÏē. Îđ2Ïē1χÎđÎŧá―·ÎŋυÏē. Îđ2σ1χÎđÎŧÎŊÎŋυσ. Îđ2σ1χÎđÎŧá―·Îŋυσ. Îđ2σ1χÎŊÎŧÎđÎąÎđ. Îđ2σ1Ï‡á―·ÎŧÎđÎąÎđ. Îđ2Ïē1χÎŊÎŧÎđÎąÎđ. Îđ2Ïē1Ï‡á―·ÎŧÎđÎąÎđ. Îđ2σ1χÎđÎŧÎŊÎąÎđς. Îđ2σ1χÎđÎŧá―·ÎąÎđς. Îđ2Ïē1χÎđÎŧÎŊÎąÎđÏē. Îđ2Ïē1χÎđÎŧá―·ÎąÎđÏē. Îđ2σ1χÎđÎŧÎŊÎąÎđσ. Îđ2σ1χÎđÎŧá―·ÎąÎđσ. Îđ2σ1χÎđÎŧÎŊÎąÏ‚. Îđ2σ1χÎđÎŧá―·ÎąÏ‚. Îđ2Ïē1χÎđÎŧÎŊÎąÏē. Îđ2Ïē1χÎđÎŧá―·ÎąÏē. Îđ2σ1χÎđÎŧÎŊÎąÏƒ. Îđ2σ1χÎđÎŧá―·ÎąÏƒ. Îđ2σ1χÎŊÎŧÎđÎą. Îđ2σ1Ï‡á―·ÎŧÎđÎą. Îđ2Ïē1χÎŊÎŧÎđÎą. Îđ2Ïē1Ï‡á―·ÎŧÎđÎą. Îđ2σ1ΞύρÎđÎŋÎđ. Îđ2σ1Ξá―ŧρÎđÎŋÎđ. Îđ2Ïē1ΞύρÎđÎŋÎđ. Îđ2Ïē1Ξá―ŧρÎđÎŋÎđ. Îđ2σ1ΞυρÎŊÏ‰Î―. Îđ2σ1ÎžÏ…Ïá―·Ï‰Î―. Îđ2Ïē1ΞυρÎŊÏ‰Î―. Îđ2Ïē1ÎžÏ…Ïá―·Ï‰Î―. Îđ2σ1ΞυρÎŊÎŋÎđς. Îđ2σ1ÎžÏ…Ïá―·ÎŋÎđς. Îđ2Ïē1ΞυρÎŊÎŋÎđÏē. Îđ2Ïē1ÎžÏ…Ïá―·ÎŋÎđÏē. Îđ2σ1ΞυρÎŊÎŋÎđσ. Îđ2σ1ÎžÏ…Ïá―·ÎŋÎđσ. Îđ2σ1ΞυρÎŊÎŋυς. Îđ2σ1ÎžÏ…Ïá―·Îŋυς. Îđ2Ïē1ΞυρÎŊÎŋυÏē. Îđ2Ïē1ÎžÏ…Ïá―·ÎŋυÏē. Îđ2σ1ΞυρÎŊÎŋυσ. Îđ2σ1ÎžÏ…Ïá―·Îŋυσ. Îđ2σ1ΞύρÎđÎąÎđ. Îđ2σ1Ξá―ŧρÎđÎąÎđ. Îđ2Ïē1ΞύρÎđÎąÎđ. Îđ2Ïē1Ξá―ŧρÎđÎąÎđ. Îđ2σ1ΞυρÎŊÎąÎđς. Îđ2σ1ÎžÏ…Ïá―·ÎąÎđς. Îđ2Ïē1ΞυρÎŊÎąÎđÏē. Îđ2Ïē1ÎžÏ…Ïá―·ÎąÎđÏē. Îđ2σ1ΞυρÎŊÎąÎđσ. Îđ2σ1ÎžÏ…Ïá―·ÎąÎđσ. Îđ2σ1ΞυρÎŊÎąÏ‚. Îđ2σ1ÎžÏ…Ïá―·ÎąÏ‚. Îđ2Ïē1ΞυρÎŊÎąÏē. Îđ2Ïē1ÎžÏ…Ïá―·ÎąÏē. Îđ2σ1ΞυρÎŊÎąÏƒ. Îđ2σ1ÎžÏ…Ïá―·ÎąÏƒ. Îđ2σ1ΞύρÎđÎą. Îđ2σ1Ξá―ŧρÎđÎą. Îđ2Ïē1ΞύρÎđÎą. Îđ2Ïē1Ξá―ŧρÎđÎą. Îđ2σ1χÎđÎŧÎđÎŋστ Îđ2Ïē1χÎđÎŧÎđÎŋÏēτ Îđ2σ1ΞυρÎđÎŋστ Îđ2Ïē1ΞυρÎđÎŋÏēτ Îđ2σ1χÎđÎŧÎđΎΚÎđς. Îđ2σ1χÎđÎŧÎđá―ąÎšÎđς. Îđ2Ïē1χÎđÎŧÎđΎΚÎđÏē. Îđ2Ïē1χÎđÎŧÎđá―ąÎšÎđÏē. Îđ2σ1χÎđÎŧÎđΎΚÎđσ. Îđ2σ1χÎđÎŧÎđá―ąÎšÎđσ. Îđ2σ1ΞυρÎđΎΚÎđς. Îđ2σ1ΞυρÎđá―ąÎšÎđς. Îđ2Ïē1ΞυρÎđΎΚÎđÏē. Îđ2Ïē1ΞυρÎđá―ąÎšÎđÏē. Îđ2σ1ΞυρÎđΎΚÎđσ. Îđ2σ1ΞυρÎđá―ąÎšÎđσ.",
+ ["characters"]="'ʞΐΎέÎŪÎŊΰιÎēÎģÎīÎĩÎķηÎļÎđΚÎŧÎžÎ―ÎūÎŋπρςστυφχψωϊϋόύώÏēᾀᾁᾂᾃᾄᾅᾆᾇᾐᾑᾒᾓᾔᾕᾠᾡážĒážĢážĪážĨážĶឧឰឹážēážģážīážĩážķáž·á―€á―á―‚á―ƒá―„á―…á―á―‘á―’á―“á―”á―•á―–á―—á― á―Ąá―Ēá―Ģá―Īá―Ĩá―Ķá―§á―°á―ąá―ēá―ģá―īá―ĩá―ķá―·á―ļá―đá―šá―ŧá―žá――áū€áūáū‚áūƒáū„áū…áū†áū‡áūáū‘áū’áū“áū”áū•áū–áū—áū áūĄáūĒáūĢáūĪáūĨáūĶáū§áūēáūģáūīáūķáū·áū―áūŋáŋ‚áŋƒáŋ„áŋ†áŋ‡áŋ’áŋ“áŋ–áŋ—áŋĒáŋĢáŋĪáŋĨáŋĶáŋ§áŋēáŋģáŋīáŋķáŋ·â€™",
+ ["data"]="Îą1 Îĩ1 η1 Îđ1 Îŋ1 υ1 ω1 ϊ1 ϋ1 ᾀ1 ខ1 ᾂ1 ឃ1 ᾄ1 ᾅ1 ᾆ1 ᾇ1 ថ1 ᾑ1 ᾒ1 ᾓ1 ᾔ1 ᾕ1 áž 1 ឥ1 ážĒ1 ážĢ1 ážĪ1 ážĨ1 ážĶ1 ឧ1 áž°1 ážą1 ážē1 ážģ1 ážī1 ážĩ1 ážķ1 áž·1 á―€1 á―1 á―‚1 á―ƒ1 á―„1 á―…1 á―1 á―‘1 á―’1 á―“1 á―”1 á―•1 á―–1 á―—1 á― 1 á―Ą1 á―Ē1 á―Ģ1 á―Ī1 á―Ĩ1 á―Ķ1 á―§1 á―°1 á―ē1 á―ī1 á―ķ1 á―ļ1 á―š1 á―ž1 áū€1 áū1 áū‚1 áūƒ1 áū„1 áū…1 áū†1 áū‡1 áū1 áū‘1 áū’1 áū“1 áū”1 áū•1 áū–1 áū—1 áū 1 áūĄ1 áūĒ1 áūĢ1 áūĪ1 áūĨ1 áūĶ1 áū§1 áūē1 áūģ1 áūī1 áūķ1 áū·1 áŋ‚1 áŋƒ1 áŋ„1 áŋ†1 áŋ‡1 áŋ’1 áŋ–1 áŋ—1 áŋĒ1 áŋĶ1 áŋ§1 áŋē1 áŋģ1 áŋī1 áŋķ1 áŋ·1 ÎŽ1 έ1 ÎŪ1 ÎŊ1 ό1 ύ1 ώ1 ΐ1 ΰ1 á―ą1 á―ģ1 á―ĩ1 á―·1 á―đ1 á―ŧ1 á――1 áŋ“1 áŋĢ1 Îą2Îđ Îą2ÎŊ Îą2á―· Îą2á―ķ Îą2áŋ– Îą2áž° Îą2ážī Îą2ážē Îą2ážķ Îą2ážą Îą2ážĩ Îą2ážģ Îą2áž· ÎŽ3Îđ á―ą3Îđ áūķ3Îđ ᾀ3Îđ ខ3Îđ Îą2υ Îą2ύ Îą2á―ŧ Îą2á―š Îą2áŋĶ Îą2á― Îą2á―” Îą2á―’ Îą2á―– Îą2á―‘ Îą2á―• Îą2á―“ Îą2á―— ÎŽ3υ á―ą3υ áūķ3υ ᾀ3υ ខ3υ Îĩ2Îđ Îĩ2ÎŊ Îĩ2á―· Îĩ2á―ķ Îĩ2áŋ– Îĩ2áž° Îĩ2ážī Îĩ2ážē Îĩ2ážķ Îĩ2ážą Îĩ2ážĩ Îĩ2ážģ Îĩ2áž· έ3Îđ á―ģ3Îđ ថ3Îđ ᾑ3Îđ Îĩ2υ Îĩ2ύ Îĩ2á―ŧ Îĩ2á―š Îĩ2áŋĶ Îĩ2á― Îĩ2á―” Îĩ2á―’ Îĩ2á―– Îĩ2á―‘ Îĩ2á―• Îĩ2á―“ Îĩ2á―— έ3υ á―ģ3υ ᾑ3υ ថ3υ η2υ η2ύ η2á―ŧ η2á―š η2áŋĶ η2á― η2á―” η2á―’ η2á―– η2á―‘ η2á―• η2á―“ η2á―— ÎŪ3υ á―ĩ3υ áŋ†3υ áž 3υ ឥ3υ Îŋ2Îđ Îŋ2ÎŊ Îŋ2á―· Îŋ2á―ķ Îŋ2áŋ– Îŋ2áž° Îŋ2ážī Îŋ2ážē Îŋ2ážķ Îŋ2ážą Îŋ2ážĩ Îŋ2ážģ Îŋ2áž· ό3Îđ á―đ3Îđ á―€3Îđ á―3Îđ Îŋ2υ Îŋ2ύ Îŋ2á―ŧ Îŋ2á―š Îŋ2áŋĶ Îŋ2á― Îŋ2á―” Îŋ2á―’ Îŋ2á―– Îŋ2á―‘ Îŋ2á―• Îŋ2á―“ Îŋ2á―— ό3υ á―đ3υ á―€3υ á―3υ υ2Îđ υ2ÎŊ υ2á―· υ2á―ķ υ2áŋ– υ2áž° υ2ážī υ2ážē υ2ážķ υ2ážą υ2ážĩ υ2ážģ υ2áž· ύ3Îđ á―ŧ3Îđ áŋĶ3Îđ á―3Îđ á―‘3Îđ Îŋυ3Îđ όυ4Îđ á―đυ4Îđ á―€Ï…4Îđ á―Ï…4Îđ Îŋ3υÎŊ Îŋ3Ï…á―· Îŋ3υáŋ– 4Îē. 4Îģ. 4Îī. 4Îķ. 4Îļ. 4Κ. 4Îŧ. 4Ξ. 4Î―. 4Îū. 4π. 4ρ. 4σ. 4Ïē. 4ς. 4τ. 4φ. 4χ. 4ψ. 4' 4Ęž 4áūŋ 4Îē' 4ÎēĘž 4Îēáūŋ 4Îģ' 4ÎģĘž 4Îģáūŋ 4Îī' 4ÎīĘž 4Îīáūŋ 4Îķ' 4ÎķĘž 4Îķáūŋ 4Îļ' 4ÎļĘž 4Îļáūŋ 4Κ' 4Κʞ 4Κáūŋ 4Îŧ' 4ÎŧĘž 4Îŧáūŋ 4Ξ' 4Ξʞ 4Ξáūŋ 4Î―' 4Î―Ęž 4Î―áūŋ 4Îū' 4ÎūĘž 4Îūáūŋ 4π' 4Ï€Ęž 4πáūŋ 4ρ' 4ÏĘž 4ρáūŋ 4σ' 4ÏƒĘž 4σáūŋ 4Ïē' 4ÏēĘž 4Ïēáūŋ 4τ' 4Ï„Ęž 4τáūŋ 4φ' 4Ï†Ęž 4φáūŋ 4χ' 4Ï‡Ęž 4χáūŋ 4ψ' 4ÏˆĘž 4ψáūŋ .Îē4 .Îģ4 .Îī4 .Îķ4 .Îļ4 .Κ4 .Îŧ4 .Ξ4 .Î―4 .Îū4 .π4 .ρ4 .σ4 .Ïē4 .τ4 .φ4 .χ4 .ψ4 2Îē1Îē 2Îģ1Îģ 2Îī1Îī 2Îķ1Îķ 2Îļ1Îļ 2Κ1Κ 2Îŧ1Îŧ 2Ξ1Ξ 2Î―1Î― 2π1π 2ρ1ρ 2áŋĪ1áŋĨ 2σ1σ 2Ïē1Ïē 2τ1τ 2φ1φ 2χ1χ 2ψ1ψ 2Îē1Îģ 2Îē1Îķ 2Îē1Îļ 2Îē1Κ 2Îē1Îū 2Îē1π 2Îē1σ 2Îē1Ïē 2Îē1τ 2Îē1φ 2Îē1χ 2Îē1ψ 2Îģ1Îē 2Îģ1Îķ 2Îģ1Îļ 2Îģ1Κ 2Îģ1Îū 2Îģ1π 2Îģ1σ 2Îģ1Ïē 2Îģ1τ 2Îģ1φ 2Îģ1χ 2Îģ1ψ 2Îī1Îē 2Îī1Îģ 2Îī1Îķ 2Îī1Îļ 2Îī1Κ 2Îī1Îŧ 2Îī1Îū 2Îī1π 2Îī1σ 2Îī1Ïē 2Îī1τ 2Îī1φ 2Îī1χ 2Îī1ψ 2Îķ1Îē 2Îķ1Îģ 2Îķ1Îī 2Îķ1Îļ 2Îķ1Κ 2Îķ1Îŧ 2Îķ1Ξ 2Îķ1Î― 2Îķ1Îū 2Îķ1π 2Îķ1ρ 2Îķ1σ 2Îķ1Ïē 2Îķ1τ 2Îķ1φ 2Îķ1χ 2Îķ1ψ 2Îļ1Îē 2Îļ1Îģ 2Îļ1Îī 2Îļ1Îķ 2Îļ1Κ 2Îļ1Îū 2Îļ1π 2Îļ1σ 2Îļ1Ïē 2Îļ1τ 2Îļ1φ 2Îļ1χ 2Îļ1ψ 2Κ1Îē 2Κ1Îģ 2Κ1Îī 2Κ1Îķ 2Κ1Îļ 2Κ1Îū 2Κ1π 2Κ1σ 2Κ1Ïē 2Κ1φ 2Κ1χ 2Κ1ψ 2Îŧ1Îē 2Îŧ1Îģ 2Îŧ1Îī 2Îŧ1Îķ 2Îŧ1Îļ 2Îŧ1Κ 2Îŧ1Ξ 2Îŧ1Î― 2Îŧ1Îū 2Îŧ1π 2Îŧ1ρ 2Îŧ1σ 2Îŧ1Ïē 2Îŧ1τ 2Îŧ1φ 2Îŧ1χ 2Îŧ1ψ 2Ξ1Îē 2Ξ1Îģ 2Ξ1Îī 2Ξ1Îķ 2Ξ1Îļ 2Ξ1Κ 2Ξ1Îŧ 2Ξ1Îū 2Ξ1π 2Ξ1ρ 2Ξ1σ 2Ξ1Ïē 2Ξ1τ 2Ξ1φ 2Ξ1χ 2Ξ1ψ 2Î―1Îē 2Î―1Îģ 2Î―1Îī 2Î―1Îķ 2Î―1Îļ 2Î―1Κ 2Î―1Îŧ 2Î―1Ξ 2Î―1Îū 2Î―1π 2Î―1ρ 2Î―1σ 2Î―1Ïē 2Î―Ï‚. 2Î―Ïē. 2Î―1τ 2Î―1φ 2Î―1χ 2Î―1ψ 2Îū1Îē 2Îū1Îģ 2Îū1Îī 2Îū1Îķ 2Îū1Îļ 2Îū1Κ 2Îū1Îŧ 2Îū1Ξ 2Îū1Î― 2Îū1π 2Îū1ρ 2Îū1σ 2Îū1Ïē 2Îū1τ 2Îū1φ 2Îū1χ 2Îū1ψ 2π1Îē 2π1Îģ 2π1Îī 2π1Îķ 2π1Îļ 2π1Κ 2π1Îū 2π1σ 2π1Ïē 2π1φ 2π1χ 2π1ψ 2ρ1Îē 2ρ1Îģ 2ρ1Îī 2ρ1Îķ 2ρ1Îļ 2ρ1Κ 2ρ1Îŧ 2ρ1Ξ 2ρ1Î― 2ρ1Îū 2ρ1π 2ρ1σ 2ρ1Ïē 2ρ1τ 2ρ1φ 2ρ1χ 2ρ1ψ 2σ1Îī 2Ïē1Îī 2σ1Îķ 2Ïē1Îķ 2σ1Îŧ 2Ïē1Îŧ 2σ1Î― 2Ïē1Î― 2σ1Îū 2Ïē1Îū 2σ1ρ 2Ïē1ρ 2σ1ψ 2Ïē1ψ 2τ1Îē 2τ1Îģ 2τ1Îī 2τ1Îķ 2τ1Îļ 2τ1Κ 2τ1Îū 2τ1π 2τ1σ 2τ1Ïē 2τ1φ 2τ1χ 2τ1ψ 2φ1Îē 2φ1Îģ 2φ1Îī 2φ1Îķ 2φ1Κ 2φ1Îū 2φ1π 2φ1σ 2φ1Ïē 2φ1τ 2φ1χ 2φ1ψ 2χ1Îē 2χ1Îģ 2χ1Îī 2χ1Îķ 2χ1Κ 2χ1Îū 2χ1π 2χ1σ 2χ1Ïē 2χ1τ 2χ1φ 2χ1ψ 2ψ1Îē 2ψ1Îģ 2ψ1Îī 2ψ1Îķ 2ψ1Îļ 2ψ1Κ 2ψ1Îŧ 2ψ1Ξ 2ψ1Î― 2ψ1Îū 2ψ1π 2ψ1ρ 2ψ1σ 2ψ1Ïē 2ψ1τ 2ψ1φ 2ψ1χ 4ÎēÎī' 4ÎēÎī’ 4ÎēÎīĘž 4ÎēÎīáū― 4ÎēÎīáūŋ 4ÎēÎŧ' 4ÎēÎŧ’ 4ÎēÎŧĘž 4ÎēÎŧáū― 4ÎēÎŧáūŋ 4ÎēΞ' 4Îēξ’ 4ÎēΞʞ 4ÎēΞáū― 4ÎēΞáūŋ 4ÎēÎ―' 4ÎēÎ―â€™ 4ÎēÎ―Ęž 4ÎēÎ―áū― 4ÎēÎ―áūŋ 4Îēρ' 4Îēρ’ 4ÎēÏĘž 4Îēρáū― 4Îēρáūŋ 4ÎģÎī' 4ÎģÎī’ 4ÎģÎīĘž 4ÎģÎīáū― 4ÎģÎīáūŋ 4ÎģÎŧ' 4ÎģÎŧ’ 4ÎģÎŧĘž 4ÎģÎŧáū― 4ÎģÎŧáūŋ 4ÎģΞ' 4Îģξ’ 4ÎģΞʞ 4ÎģΞáū― 4ÎģΞáūŋ 4ÎģÎ―' 4ÎģÎ―â€™ 4ÎģÎ―Ęž 4ÎģÎ―áū― 4ÎģÎ―áūŋ 4Îģρ' 4Îģρ’ 4ÎģÏĘž 4Îģρáū― 4Îģρáūŋ 4ÎīΞ' 4Îīξ’ 4ÎīΞʞ 4ÎīΞáū― 4ÎīΞáūŋ 4ÎīÎ―' 4ÎīÎ―â€™ 4ÎīÎ―Ęž 4ÎīÎ―áū― 4ÎīÎ―áūŋ 4Îīρ' 4Îīρ’ 4ÎīÏĘž 4Îīρáū― 4Îīρáūŋ 4ÎķÎē' 4ÎķÎē’ 4ÎķÎēĘž 4ÎķÎēáū― 4ÎķÎēáūŋ 4ÎļÎŧ' 4ÎļÎŧ’ 4ÎļÎŧĘž 4ÎļÎŧáū― 4ÎļÎŧáūŋ 4ÎŧΞ' 4Îŧξ’ 4ÎŧΞʞ 4ÎŧΞáū― 4ÎŧΞáūŋ 4ÎļÎ―' 4ÎļÎ―â€™ 4ÎļÎ―Ęž 4ÎļÎ―áū― 4ÎļÎ―áūŋ 4Îļρ' 4Îļρ’ 4ÎļÏĘž 4Îļρáū― 4Îļρáūŋ 4ΚÎŧ' 4ΚÎŧ’ 4ΚÎŧĘž 4ΚÎŧáū― 4ΚÎŧáūŋ 4ΚΞ' 4ιξ’ 4ΚΞʞ 4ΚΞáū― 4ΚΞáūŋ 4ÎšÎ―' 4ÎšÎ―â€™ 4ÎšÎ―Ęž 4ÎšÎ―áū― 4ÎšÎ―áūŋ 4Κρ' 4Κρ’ 4ÎšÏĘž 4Κρáū― 4Κρáūŋ 4Κτ' 4Κτ’ 4ÎšÏ„Ęž 4Κτáū― 4Κτáūŋ 4ÎžÎ―' 4ÎžÎ―â€™ 4ÎžÎ―Ęž 4ÎžÎ―áū― 4ÎžÎ―áūŋ 4πÎŧ' 4πÎŧ’ 4πÎŧĘž 4πÎŧáū― 4πÎŧáūŋ 4πΞ' 4πΞ’ 4Ï€ÎžĘž 4πΞáū― 4πΞáūŋ 4Ï€Î―' 4Ï€Î―â€™ 4Ï€Î―Ęž 4Ï€Î―áū― 4Ï€Î―áūŋ 4πρ' 4πρ’ 4Ï€ÏĘž 4πρáū― 4πρáūŋ 4πτ' 4πτ’ 4Ï€Ï„Ęž 4πτáū― 4πτáūŋ 4σÎē' 4σÎē’ 4σÎēĘž 4σÎēáū― 4σÎēáūŋ 4ÏēÎē' 4ÏēÎē’ 4ÏēÎēĘž 4ÏēÎēáū― 4ÏēÎēáūŋ 4σÎģ' 4σÎģ’ 4σÎģĘž 4σÎģáū― 4σÎģáūŋ 4ÏēÎģ' 4ÏēÎģ’ 4ÏēÎģĘž 4ÏēÎģáū― 4ÏēÎģáūŋ 4σÎī' 4σÎī’ 4σÎīĘž 4σÎīáū― 4σÎīáūŋ 4ÏēÎī' 4ÏēÎī’ 4ÏēÎīĘž 4ÏēÎīáū― 4ÏēÎīáūŋ 4σÎļ' 4σÎļ’ 4σÎļĘž 4σÎļáū― 4σÎļáūŋ 4ÏēÎļ' 4ÏēÎļ’ 4ÏēÎļĘž 4ÏēÎļáū― 4ÏēÎļáūŋ 4σΚ' 4σΚ’ 4ÏƒÎšĘž 4σΚáū― 4σΚáūŋ 4ÏēΚ' 4Ïēι’ 4ÏēΚʞ 4ÏēΚáū― 4ÏēΚáūŋ 4σΞ' 4σΞ’ 4ÏƒÎžĘž 4σΞáū― 4σΞáūŋ 4ÏēΞ' 4Ïēξ’ 4ÏēΞʞ 4ÏēΞáū― 4ÏēΞáūŋ 4σπ' 4σπ’ 4ÏƒÏ€Ęž 4σπáū― 4σπáūŋ 4Ïēπ' 4Ïēπ’ 4ÏēÏ€Ęž 4Ïēπáū― 4Ïēπáūŋ 4στ' 4στ’ 4ÏƒÏ„Ęž 4στáū― 4στáūŋ 4Ïēτ' 4Ïēτ’ 4ÏēÏ„Ęž 4Ïēτáū― 4Ïēτáūŋ 4σφ' 4σφ’ 4ÏƒÏ†Ęž 4σφáū― 4σφáūŋ 4Ïēφ' 4Ïēφ’ 4ÏēÏ†Ęž 4Ïēφáū― 4Ïēφáūŋ 4σχ' 4σχ’ 4ÏƒÏ‡Ęž 4σχáū― 4σχáūŋ 4Ïēχ' 4Ïēχ’ 4ÏēÏ‡Ęž 4Ïēχáū― 4Ïēχáūŋ 4φÎļ' 4φÎļ’ 4φÎļĘž 4φÎļáū― 4φÎļáūŋ 4φÎŧ' 4φÎŧ’ 4φÎŧĘž 4φÎŧáū― 4φÎŧáūŋ 4φΞ' 4φΞ’ 4Ï†ÎžĘž 4φΞáū― 4φΞáūŋ 4Ï†Î―' 4Ï†Î―â€™ 4Ï†Î―Ęž 4Ï†Î―áū― 4Ï†Î―áūŋ 4φρ' 4φρ’ 4Ï†ÏĘž 4φρáū― 4φρáūŋ 4χÎļ' 4χÎļ’ 4χÎļĘž 4χÎļáū― 4χÎļáūŋ 4χÎŧ' 4χÎŧ’ 4χÎŧĘž 4χÎŧáū― 4χÎŧáūŋ 4χΞ' 4χΞ’ 4Ï‡ÎžĘž 4χΞáū― 4χΞáūŋ 4Ï‡Î―' 4Ï‡Î―â€™ 4Ï‡Î―Ęž 4Ï‡Î―áū― 4Ï‡Î―áūŋ 4χρ' 4χρ’ 4Ï‡ÏĘž 4χρáū― 4χρáūŋ ᾀÎģω2Î―1Ύρ ᾀÎģω2Î―1á―ąÏ ᾀÎģω2Î―1ÎąÏ ᾀÎīÎđέ2Îū1 ᾀÎīÎđá―ģ2Îū1 ᾀÎīÎđÎĩ2Îū1 ᾀÎīυ2σ1ώ ᾀÎīυ2σ1á―― ᾀÎīυ2Ïē1ώ ᾀÎīυ2Ïē1á―― ᾀÎīυ2σ1ω ᾀÎīυ2Ïē1ω ខÎŧό2σ1 ខÎŧá―đ2σ1 ខÎŧό2Ïē1 ខÎŧá―đ2Ïē1 ខÎŧÎŋ2σ1 ខÎŧÎŋ2Ïē1 áž€ÎžÏ€ÎąÎŧÎŊ2Î―1 áž€ÎžÏ€ÎąÎŧá―·2Î―1 áž€ÎžÏ€ÎąÎŧÎđ2Î―1 កΞφÎŊ2σ1Îē áž€ÎžÏ†á―·2σ1Îē កΞφÎŊ2Ïē1Îē áž€ÎžÏ†á―·2Ïē1Îē កΞφÎđ2σ1Îē កΞφÎđ2Ïē1Îē កΞφÎŊ2σ1ω áž€ÎžÏ†á―·2σ1ω កΞφÎŊ2Ïē1ω áž€ÎžÏ†á―·2Ïē1ω កΞφÎđ2σ1ώ កΞφÎđ2σ1á―― កΞφÎđ2Ïē1ώ កΞφÎđ2Ïē1á―― ᾀ2Î―1ÎąÎģÎŪς. ᾀ2Î―1ÎąÎģá―ĩς. ᾀ2Î―1ÎąÎģÎŪÏē. ᾀ2Î―1ÎąÎģá―ĩÏē. ᾀ2Î―1ÎąÎģá―īς. ᾀ2Î―1ÎąÎģá―īÏē. ᾀ2Î―1ÎąÎģÎŪσ. ᾀ2Î―1ÎąÎģá―ĩσ. ᾀ2Î―1ÎąÎģá―īσ. ᾀ2Î―1ÎąÎģÎŋ ᾀ2Î―1ÎąÎģÎĩáŋ–. ᾀ2Î―1ÎąÎģáŋ†. ᾀ2Î―1ÎąÎģές. ᾀ2Î―1ÎąÎģá―ģς. ᾀ2Î―1ÎąÎģέÏē. ᾀ2Î―1ÎąÎģá―ģÏē. ᾀ2Î―1ÎąÎģá―ēς. ᾀ2Î―1ÎąÎģá―ēÏē. ᾀ2Î―1ÎąÎģέσ. ᾀ2Î―1ÎąÎģá―ģσ. ᾀ2Î―1ÎąÎģá―ēσ. ᾀ2Î―1ÎąÎģÎĩáŋ–Ï‚. ᾀ2Î―1ÎąÎģÎĩáŋ–Ïē. ᾀ2Î―1ÎąÎģÎĩáŋ–σ. ᾀ2Î―1ÎąÎģáŋķÎ―. ᾀ2Î―1ÎąÎģέσÎđ ᾀ2Î―1ÎąÎģá―ģσÎđ ᾀ2Î―1ÎąÎģέÏēÎđ ᾀ2Î―1ÎąÎģá―ģÏēÎđ ᾀ2Î―1ÎąÎģáŋ† ᾀ2Î―1ÎŽÎģΚυ ᾀ2Î―1á―ąÎģΚυ ᾀ2Î―1ÎąÎģΚύ ᾀ2Î―1ÎąÎģΚá―ŧ ᾄ2Î―1ÎąÎģÎ― ᾀ2Î―1ÎŽÎģÎ― ᾀ2Î―1á―ąÎģÎ― ᾀ2Î―1ÎąÎģÎ― ᾀ3Î―2ÎąÎģÎ―ÎŽ ᾀ3Î―2ÎąÎģÎ―á―ą ᾀ3Î―2ÎąÎģÎ―Ï‰ ᾀ3Î―2ÎŽÎģÎ―Ï‰ ᾀ3Î―2á―ąÎģÎ―Ï‰ ᾀ3Î―2ÎąÎģÎ―ÏŽ ᾀ3Î―2ÎąÎģÎ―á―― ᾀ2Î―1ÎąÎģρÎŊ ᾀ2Î―1ÎąÎģÏá―· ᾀ2Î―1ÎąÎģρáŋ– ᾀ2Î―1ÎąÎģρÎđ ᾀ2Î―1ÎŽÎģωÎģ ᾀ2Î―1á―ąÎģωÎģ ᾀ2Î―1ÎąÎģώÎģ ᾀ2Î―1ÎąÎģá――Îģ ᾀ3Î―2ÎąÎģώÎģÎđ ᾀ3Î―2ÎąÎģá――ÎģÎđ ᾀ3Î―2ÎąÎģωÎģÎŊ ᾀ3Î―2ÎąÎģωÎģá―· ᾀ4Î―3ÎąÎģωÎģÎŊÎą ᾀ4Î―3ÎąÎģωÎģá―·Îą ᾀ2Î―1ÎŽÎīÎĩÎŧ ᾀ2Î―1á―ąÎīÎĩÎŧ ᾀ2Î―1ÎąÎīέÎŧ ᾀ2Î―1ÎąÎīá―ģÎŧ ᾀ2Î―1ÎŽÎĩÎŧπ ᾀ2Î―1á―ąÎĩÎŧπ ᾀ2Î―1ιέÎŧπ ᾀ2Î―1Îąá―ģÎŧπ ᾄ2Î―1ÎąÎļÎŧ ᾀ2Î―1ÎŽÎļÎŧ ᾀ2Î―1á―ąÎļÎŧ ᾀ2Î―1ÎąÎŊÎī ᾀ2Î―1Îąá―·Îī ᾀ2Î―1ÎąÎđÎī ᾄ2Î―1ÎąÎđΞ ᾀ2Î―1ÎąÎŊΞ ᾀ2Î―1Îąá―·Îž ᾀ2Î―1ÎąÎđΞ ᾀ2Î―1ÎąÎŊσÎļ ᾀ2Î―1Îąá―·ÏƒÎļ ᾀ2Î―1ÎąÎŊÏēÎļ ᾀ2Î―1Îąá―·ÏēÎļ ᾀ2Î―1ÎąÎđσÎļ ᾀ2Î―1ÎąÎđÏēÎļ ᾀ2Î―1ÎąÎđσÎđ ᾀ2Î―1ÎąÎđÏēÎđ ᾀ2Î―1ÎąÎđσÎŊ ᾀ2Î―1ÎąÎđÏƒá―· ᾀ2Î―1ÎąÎđÏēÎŊ ᾀ2Î―1ÎąÎđÏēá―· ᾀ2Î―1ÎąÎŊσχ ᾀ2Î―1Îąá―·ÏƒÏ‡ ᾀ2Î―1ÎąÎŊÏēχ ᾀ2Î―1Îąá―·Ïēχ ᾀ2Î―1ÎąÎđσχ ᾀ2Î―1ÎąÎđÏēχ ᾀ2Î―1ÎąÎŊτ ᾀ2Î―1Îąá―·Ï„ ᾀ2Î―1ÎąÎđτ ᾀ2Î―1ÎŽÎšÎąÎ― ᾀ2Î―1á―ąÎšÎąÎ― ᾀ2Î―1ÎąÎšÎŽÎ― ᾀ2Î―1ÎąÎšá―ąÎ― ᾀ2Î―1ÎąÎšÏŒÎŧÎŋ ᾀ2Î―1ιΚá―đÎŧÎŋ ᾀ2Î―1ιΚÎŋÎŧÎŋ ᾀ2Î―1ÎąÎŧÎģ ᾀ2Î―1ÎąÎŧÎī ᾀ3Î―2ÎąÎŧÎīÎą ᾀ3Î―2ÎąÎŧÎīÎŪσΚ ᾀ3Î―2ÎąÎŧÎīá―ĩσΚ ᾀ3Î―2ÎąÎŧÎīÎŪÏēΚ ᾀ3Î―2ÎąÎŧÎīá―ĩÏēΚ ᾀ2Î―1ÎŽÎŧÎĩÎđπ ᾀ2Î―1á―ąÎŧÎĩÎđπ ᾀ2Î―1ÎąÎŧÎĩÎŊπ ᾀ2Î―1ÎąÎŧÎĩá―·Ï€ ᾀ2Î―1ÎąÎŧÎĩÎđφ ᾀ2Î―1ÎŽÎŧÎĩÎđφ ᾀ2Î―1á―ąÎŧÎĩÎđφ ᾀ2Î―1ÎąÎŧÎĩÎŊφ ᾀ2Î―1ÎąÎŧÎĩá―·Ï† ᾀ2Î―1ÎąÎŧÎŪÎļ ᾀ2Î―1ÎąÎŧá―ĩÎļ ᾀ2Î―1ÎąÎŧηÎļ ᾀ2Î―1ÎŽÎŧÎļ ᾀ2Î―1á―ąÎŧÎļ ᾀ2Î―1ÎąÎŧÎļ ᾀ2Î―1ÎŽÎŧÎđπ ᾀ2Î―1á―ąÎŧÎđπ ᾀ2Î―1ÎąÎŧÎŊπ ᾀ2Î―1ÎąÎŧá―·Ï€ ᾀ2Î―1ÎŽÎŧÎđστ ᾀ2Î―1á―ąÎŧÎđστ ᾀ2Î―1ÎŽÎŧÎđÏēτ ᾀ2Î―1á―ąÎŧÎđÏēτ ᾀ2Î―1ÎąÎŧÎŊστ ᾀ2Î―1ÎąÎŧá―·ÏƒÏ„ ᾀ2Î―1ÎąÎŧÎŊÏēτ ᾀ2Î―1ÎąÎŧá―·Ïēτ ᾀ2Î―1ÎąÎŧΚ ᾄ2Î―1ÎąÎŧΚ ᾀ2Î―1ÎŽÎŧΚ ᾀ2Î―1á―ąÎŧΚ ᾀ2Î―1ÎŽÎŧÎŧ ᾀ2Î―1á―ąÎŧÎŧ ᾀ2Î―1ÎąÎŧÎŧ ᾀ3Î―2ÎŽÎŧÎŧÎŋ ᾀ3Î―2á―ąÎŧÎŧÎŋ ᾀ3Î―2ÎŽÎŧÎŧÎĩ ᾀ3Î―2á―ąÎŧÎŧÎĩ ᾄ2Î―1ÎąÎŧΞ ᾀ2Î―1ÎŽÎŧΞ ᾀ2Î―1á―ąÎŧΞ ᾀ2Î―1ÎąÎŧΞ ᾄ2Î―1ÎąÎŧÎŋ ᾀ2Î―1ÎŽÎŧÎŋυ ᾀ2Î―1á―ąÎŧÎŋυ ᾀ2Î―1ÎŽÎŧáŋģ. ᾀ2Î―1á―ąÎŧáŋģ. ᾄ2Î―1ÎąÎŧÎĩ. ᾀ2Î―1ÎŽÎŧÎŋÎđ ᾀ2Î―1á―ąÎŧÎŋÎđ ᾀ2Î―1ÎŽÎŧÏ‰Î―. ᾀ2Î―1á―ąÎŧÏ‰Î―. ᾄ2Î―1ÎąÎŧτ ᾀ2Î―1ÎŽÎŧτ ᾀ2Î―1á―ąÎŧτ ᾀ2Î―1ιΞΎÎū ᾀ2Î―1ÎąÎžá―ąÎū ᾀ2Î―1ιΞιÎū ᾀ2Î―1ÎąÎžÎŽÏÏ„ ᾀ2Î―1ÎąÎžá―ąÏÏ„ ᾀ2Î―1ÎąÎžÎąÏÏ„ ᾀ2Î―1ιΞέÎŧÎģ ᾀ2Î―1ιΞá―ģÎŧÎģ ᾀ2Î―1ιΞÎĩÎŧÎģ ᾀ2Î―1ÎąÎžÏ€ ᾀ2Î―1ΎΞπ ᾀ2Î―1á―ąÎžÏ€ ᾀ2Î―1ÎąÎžÏ† áž€Î―ÎąÎžÏ†Îđ2σ1 áž€Î―ÎąÎžÏ†Îđ2Ïē1 ᾀ2Î―1ÎąÎ―ÎŽÎģΚ ᾀ2Î―1ÎąÎ―á―ąÎģΚ ᾀ2Î―1ÎąÎ―ÎąÎģΚ ᾄ2Î―1ÎąÎ―Îī ᾀ2Î―1ÎŽÎ―Îī ᾀ2Î―1á―ąÎ―Îī ᾀ2Î―1ÎąÎ―Îļ ᾀ3Î―2ÎąÎ―Îļέ ᾀ3Î―2ÎąÎ―Îļá―ģ ᾀ4Î―3ÎąÎ―Îļές. ᾀ4Î―3ÎąÎ―Îļá―ģς. ᾀ4Î―3ÎąÎ―ÎļέÏē. ᾀ4Î―3ÎąÎ―Îļá―ģÏē. ᾀ4Î―3ÎąÎ―Îļá―ēς. ᾀ4Î―3ÎąÎ―Îļá―ēÏē. ᾀ4Î―3ÎąÎ―Îļέσ. ᾀ4Î―3ÎąÎ―Îļá―ģσ. ᾀ4Î―3ÎąÎ―Îļá―ēσ. ᾀ4Î―3ÎąÎ―ÎļέσÎđ ᾀ4Î―3ÎąÎ―Îļá―ģσÎđ ᾀ4Î―3ÎąÎ―ÎļέÏēÎđ ᾀ4Î―3ÎąÎ―Îļá―ģÏēÎđ ᾀ2Î―1ÎŽÎ―ÎđÎŋ ᾀ2Î―1á―ąÎ―ÎđÎŋ ᾀ2Î―1ÎąÎ―ÎŊÎŋ ᾀ2Î―1ÎąÎ―á―·Îŋ ᾀ2Î―1ÎąÎ―ÎŊω ᾀ2Î―1ÎąÎ―á―·Ï‰ ᾀ2Î―1ÎąÎ―Ï„ÎąÎģ ᾀ2Î―1ÎąÎ―Ï„ÎąÏ€ ᾀ2Î―1ÎąÎ―Ï„ÎŊ ᾀ2Î―1ÎąÎ―Ï„á―· ᾀ2Î―1ÎąÎ―Ï„Îđ áž€Î―Îą2Îū1ÎąÎģ áž€Î―ÎŽ2Îū1ÎąÎ― áž€Î―á―ą2Îū1ÎąÎ― áž€Î―Îą2Îū1ÎŽÎ― áž€Î―Îą2Îū1á―ąÎ― áž€Î―Îą2Îū1ÎąÎ― áž€Î―ÎŽ2Îū1ÎąÏ áž€Î―á―ą2Îū1ÎąÏ áž€Î―Îą2Îū1Ύρ áž€Î―Îą2Îū1á―ąÏ áž€Î―ÎŽ2Îū1Îđπ áž€Î―á―ą2Îū1Îđπ áž€Î―Îą2Îū1ÎŊπ áž€Î―Îą2Îū1á―·Ï€ ᾀ2Î―1ÎąÎūÎđόÎŧ ᾀ2Î―1ÎąÎūÎđá―đÎŧ ᾀ2Î―1ÎąÎūÎđÎŋÎŧ ᾀ2Î―1ÎąÎūÎđόπ ᾀ2Î―1ÎąÎūÎđá―đπ ᾀ2Î―1ÎąÎūÎđÎŋπ ᾀ2Î―1ÎŽÎūÎđÎŋ ᾀ2Î―1á―ąÎūÎđÎŋ ᾀ2Î―1ÎąÎūÎŊÎŋ ᾀ2Î―1ÎąÎūá―·Îŋ ᾀ2Î―1ÎąÎūÎŊω ᾀ2Î―1ÎąÎūá―·Ï‰ ᾀ2Î―1ÎąÎūÎŊÎą ᾀ2Î―1ÎąÎūá―·Îą ᾀ2Î―1ÎąÎūáŋ–Îą ᾀ2Î―1ÎąÏ€ÎŽÎŧÎŧÎą ᾀ2Î―1ÎąÏ€á―ąÎŧÎŧÎą ᾀ2Î―1ÎąÏ€ÎąÎŧÎŧÎŽ ᾀ2Î―1ÎąÏ€ÎąÎŧÎŧá―ą ᾀ2Î―1ÎąÏ€ÎŽÏÏ„ ᾀ2Î―1ÎąÏ€á―ąÏÏ„ ᾀ2Î―1ÎąÏ€ÎąÏÏ„ ᾀ2Î―1ÎąÏ€ÎąÏÎī ᾀ2Î―1ÎąÏ€Îąá―ŧÎī ᾀ2Î―1ÎąÏ€ÎąÏ…Îī ᾀ2Î―1ÎąÏ€ÏŒÎē ᾀ2Î―1ÎąÏ€á―đÎē ᾀ2Î―1ÎąÏ€ÎŋÎē ᾀ2Î―1ÎąÏ€ÏŒÎģ ᾀ2Î―1ÎąÏ€á―đÎģ ᾀ2Î―1ÎąÏ€ÎŋÎģ ᾀ2Î―1ÎąÏ€ÎŋÎīÎŪ ᾀ2Î―1ÎąÏ€ÎŋÎīá―ĩ ᾀ2Î―1ÎąÏ€ÎŋÎīη ᾀ2Î―1ÎąÏ€ÏŒÎīÎŋ ᾀ2Î―1ÎąÏ€á―đÎīÎŋ ᾀ2Î―1ÎąÏ€ÎŋÎīό ᾀ2Î―1ÎąÏ€ÎŋÎīá―đ ᾀ2Î―1ÎąÏ€ÏŒÎīρ ᾀ2Î―1ÎąÏ€á―đÎīρ ᾀ2Î―1ÎąÏ€ÎŋÎīρ ᾀ2Î―1ÎąÏ€ÏŒÎŧÎąÏ… ᾀ2Î―1ÎąÏ€á―đÎŧÎąÏ… ᾀ2Î―1ÎąÏ€ÎŋÎŧÎąÏ ᾀ2Î―1ÎąÏ€ÎŋÎŧÎąá―ŧ ᾀ2Î―1ÎąÏ€ÎŋÎŧό ᾀ2Î―1ÎąÏ€ÎŋÎŧá―đ ᾀ2Î―1ÎąÏ€ÎŋÎŧÎŋ ᾀ2Î―1ÎąÏ€ÏŒÎŧυ ᾀ2Î―1ÎąÏ€á―đÎŧυ ᾀ2Î―1ÎąÏ€ÎŋÎŧύ ᾀ2Î―1ÎąÏ€ÎŋÎŧá―ŧ ᾀ2Î―1ÎąÏ€ÏŒÎ― ᾀ2Î―1ÎąÏ€á―đÎ― ᾀ2Î―1ÎąÏ€ÎŋÎ― ᾀ2Î―1ÎąÏ€ÏŒÏ€ ᾀ2Î―1ÎąÏ€á―đπ ᾀ2Î―1ÎąÏ€Îŋπ ᾀ2Î―1ÎąÏ€ÏŒÏƒ ᾀ2Î―1ÎąÏ€á―đσ ᾀ2Î―1ÎąÏ€ÏŒÏē ᾀ2Î―1ÎąÏ€á―đÏē ᾀ2Î―1ÎąÏ€Îŋσ ᾀ2Î―1ÎąÏ€ÎŋÏē ᾀ2Î―1ÎąÏ€ÏŒÏ„Îĩ ᾀ2Î―1ÎąÏ€á―đτÎĩ ᾀ2Î―1ÎąÏ€ÎŋτÎĩ ᾀ2Î―1ÎąÏ€ÏŒÏ„Îž ᾀ2Î―1ÎąÏ€á―đτΞ ᾀ2Î―1ÎąÏ€ÎŋτΞ ᾀ2Î―1ÎąÏ€ÏŒÏ„Ï ᾀ2Î―1ÎąÏ€á―đτρ ᾀ2Î―1ÎąÏ€Îŋτρ ᾀ2Î―1ÎąÏÎŽ ᾀ2Î―1ÎąÏá―ą ᾀ2Î―1ÎąÏÎą ᾀ2Î―1Ύρ ᾀ2Î―1á―ąÏ ᾀ2Î―1ÎąÏ ᾄ2Î―1ÎąÏ ᾀ3Î―2ÎąÏÎŊτ ᾀ3Î―2ÎąÏá―·Ï„ ᾀ3Î―2ÎąÏáŋ–Ï„ ᾀ3Î―2ÎąÏÎđτ ᾀ3Î―2ÎąÏÏ€ ᾀ3Î―2Ύρρ ᾀ3Î―2á―ąÏÏ ᾀ3Î―2ÎąÏÏ ᾀ4Î―3ÎąÏÏÎąÎģ ᾀ3Î―2ÎąÏÏ„ ᾀ3Î―2ÎąÏÏÏ„ ᾀ3Î―2ÎąÏá―ŧτ ᾀ2Î―1ΎσΚη ᾀ2Î―1á―ąÏƒÎšÎ· ᾀ2Î―1ÎŽÏēΚη ᾀ2Î―1á―ąÏēΚη ᾀ2Î―1ÎąÏƒÎšÎŪ ᾀ2Î―1ÎąÏƒÎšá―ĩ ᾀ2Î―1ÎąÏēΚÎŪ ᾀ2Î―1ÎąÏēΚá―ĩ ᾄ2Î―1ÎąÏƒÏ€Îđ ᾄ2Î―1ÎąÏēπÎđ ᾀ2Î―1ÎąÏƒÏ€ÎŊ ᾀ2Î―1ÎąÏƒÏ€á―· ᾀ2Î―1ÎąÏēπÎŊ ᾀ2Î―1ÎąÏēÏ€á―· ᾀ2Î―1ÎŽÏƒÏƒÎąÏ„ ᾀ2Î―1á―ąÏƒÏƒÎąÏ„ ᾀ2Î―1ÎŽÏēÏēÎąÏ„ ᾀ2Î―1á―ąÏēÏēÎąÏ„ ᾀ2Î―1ÎąÏƒÏƒÎŽÏ„ ᾀ2Î―1ÎąÏƒÏƒá―ąÏ„ ᾀ2Î―1ÎąÏēÏēÎŽÏ„ ᾀ2Î―1ÎąÏēÏēá―ąÏ„ ᾀ2Î―1ΎστÎĩÎđ ᾀ2Î―1á―ąÏƒÏ„ÎĩÎđ ᾀ2Î―1ÎŽÏēτÎĩÎđ ᾀ2Î―1á―ąÏēτÎĩÎđ ᾀ2Î―1ÎąÏƒÏ„ÎĩÎŊ ᾀ2Î―1ÎąÏƒÏ„Îĩá―· ᾀ2Î―1ÎąÏēτÎĩÎŊ ᾀ2Î―1ÎąÏēτÎĩá―· ᾀ3Î―2ÎąÏƒÏ„ÎĩÎŊÎē ᾀ3Î―2ÎąÏƒÏ„Îĩá―·Îē ᾀ3Î―2ÎąÏēτÎĩÎŊÎē ᾀ3Î―2ÎąÏēτÎĩá―·Îē ᾀ3Î―2ΎστÎĩÎđρ ᾀ3Î―2á―ąÏƒÏ„ÎĩÎđρ ᾀ3Î―2ÎŽÏēτÎĩÎđρ ᾀ3Î―2á―ąÏēτÎĩÎđρ ᾀ3Î―2ÎąÏƒÏ„ÎĩÎŊρ ᾀ3Î―2ÎąÏƒÏ„Îĩá―·Ï ᾀ3Î―2ÎąÏēτÎĩÎŊρ ᾀ3Î―2ÎąÏēτÎĩá―·Ï ᾀ3Î―2ΎστÎĩÎđχ ᾀ3Î―2á―ąÏƒÏ„ÎĩÎđχ ᾀ3Î―2ÎŽÏēτÎĩÎđχ ᾀ3Î―2á―ąÏēτÎĩÎđχ ᾀ3Î―2ÎąÏƒÏ„ÎĩÎŊχ ᾀ3Î―2ÎąÏƒÏ„Îĩá―·Ï‡ ᾀ3Î―2ÎąÏēτÎĩÎŊχ ᾀ3Î―2ÎąÏēτÎĩá―·Ï‡ ᾀ2Î―1ÎąÏ„Îĩá―ķ. ᾀ2Î―1ÎąÏ„ÎĩÎŊ. ᾀ2Î―1ÎąÏ„Îĩá―·. ᾀ2Î―1ÎąÏ„á―ķ. ᾀ2Î―1ÎąÏ„ÎŊ. ᾀ2Î―1ÎąÏ„á―·. ᾄ2Î―1ÎąÏ„Îŋς. ᾄ2Î―1ÎąÏ„ÎŋÏē. ᾄ2Î―1ÎąÏ„Îŋσ. ᾀ2Î―1ÎŽÏ„Îŋυ. ᾀ2Î―1á―ąÏ„Îŋυ. ᾀ2Î―1Ύτω ᾀ2Î―1á―ąÏ„Ï‰ ᾄ2Î―1ÎąÏ„ÎŋÎ―. ᾄ2Î―1ÎąÏ„Îĩ ᾄ2Î―1ÎąÏ„ÎŋÎđ. ᾀ2Î―1ÎŽÏ„ÎŋÎđς. ᾀ2Î―1á―ąÏ„ÎŋÎđς. ᾀ2Î―1ÎŽÏ„ÎŋÎđÏē. ᾀ2Î―1á―ąÏ„ÎŋÎđÏē. ᾀ2Î―1ÎŽÏ„ÎŋÎđσ. ᾀ2Î―1á―ąÏ„ÎŋÎđσ. ᾀ2Î―1ÎŽÏ„Ï„ ᾀ2Î―1á―ąÏ„Ï„ ᾀ2Î―1ÎąÏ„Ï„ ᾀ2Î―1ÎąÏÎģ ᾀ2Î―1Îąá―ŧÎģ ᾀ2Î―1ÎąÏ…Îģ ᾀ2Î―1ÎąÏÎī ᾀ2Î―1Îąá―ŧÎī ᾀ2Î―1ÎąÏ…Îī ᾀ3Î―2ÎąÏ…ÎīÎŊ ᾀ3Î―2ÎąÏ…Îīá―· ᾀ3Î―2ÎąÏ…ÎīÎđ ᾄ2Î―1ÎąÏ…Îī ᾄ2Î―1ÎąÏ…Îŧ ᾀ2Î―1ÎąÏÎŧ ᾀ2Î―1Îąá―ŧÎŧ ᾀ2Î―1ÎąÏÎū ᾀ2Î―1Îąá―ŧÎū ᾀ2Î―1ÎąÏ…Îū ᾀ2Î―1ÎąÏÏ‡ ᾀ2Î―1Îąá―ŧχ ᾀ2Î―1ÎąÏ…Ï‡ ᾀ2Î―1ÎąÏ†ÎąÎŊρ ᾀ2Î―1ÎąÏ†Îąá―·Ï ᾀ2Î―1ÎąÏ†ÎąÎđρ ᾀ2Î―1ÎąÏ†ÎŪ ᾀ2Î―1ÎąÏ†á―ĩ ᾀ2Î―1ÎąÏ†á―ī ᾀ2Î―1ÎąÏ†ÎŋáŋĶ ᾀ2Î―1ÎąÏ†áŋ† ᾀ2Î―1ÎąÏ†Îĩáŋ– ᾀ2Î―1ÎąÏ†Îŋáŋ– ᾀ2Î―1ÎĩφáŋķÎ―. ᾀ2Î―1ÎąÏ†Î­ ᾀ2Î―1ÎąÏ†á―ģ ᾀ2Î―1ÎąÏ†á―ē ᾀ3Î―2ÎąÏ†áŋ†Î― ᾀ2Î―1ÎąÏ†ÏÏŒÎī ᾀ2Î―1ÎąÏ†Ïá―đÎī ᾀ2Î―1ÎąÏ†ÏÎŋÎī ᾄ2Î―1ÎąÏ†Ï ᾀ2Î―1Ύφρ ᾀ2Î―1á―ąÏ†Ï ᾀ2Î―1ÎąÏ‡ÏÏ ᾀ2Î―1ÎąÏ‡á―ŧρ ᾀ2Î―1ÎąÏ‡Ï…Ï áž€Î―Îīρό2σ1Îą áž€Î―Îīρá―đ2σ1Îą áž€Î―Îīρό2Ïē1Îą áž€Î―Îīρá―đ2Ïē1Îą áž€Î―ÎīρÎŋ2σ1Îą áž€Î―ÎīρÎŋ2Ïē1Îą ᾀ2Î―1έÎģÎģ ᾀ2Î―1á―ģÎģÎģ ᾀ2Î―1ÎĩÎģÎģ ᾀ2Î―1έÎģÎĩρτ ᾀ2Î―1á―ģÎģÎĩρτ ᾀ2Î―1ÎĩÎģέρτ ᾀ2Î―1ÎĩÎģá―ģρτ ᾀ2Î―1ÎĩÎģΚ ᾀ2Î―1έÎģΚ ᾀ2Î―1á―ģÎģΚ ᾀ2Î―1ÎĩÎģχ ᾀ2Î―1ÎĩÎīÎŽ ᾀ2Î―1ÎĩÎīá―ą ᾀ2Î―1ÎĩÎīÎą ᾀ2Î―1έÎīÎĩσ ᾀ2Î―1á―ģÎīÎĩσ ᾀ2Î―1έÎīÎĩÏē ᾀ2Î―1á―ģÎīÎĩÏē ᾀ2Î―1ÎĩÎīέσ ᾀ2Î―1ÎĩÎīá―ģσ ᾀ2Î―1ÎĩÎīέÏē ᾀ2Î―1ÎĩÎīá―ģÏē ᾀ2Î―1έÎīÏÎąÏƒ ᾀ2Î―1á―ģÎīÏÎąÏƒ ᾀ2Î―1έÎīÏÎąÏē ᾀ2Î―1á―ģÎīÏÎąÏē ᾀ2Î―1ÎĩÎīρΎσ ᾀ2Î―1ÎĩÎīÏá―ąÏƒ ᾀ2Î―1ÎĩÎīρΎÏē ᾀ2Î―1ÎĩÎīÏá―ąÏē ᾀ2Î―1Îĩέρ ᾀ2Î―1Îĩá―ģρ ᾀ2Î―1ÎĩÎĩρ ᾀ2Î―1ÎĩÎļέÎŧ ᾀ2Î―1ÎĩÎļá―ģÎŧ ᾀ2Î―1ÎĩÎļÎĩÎŧ ᾀ2Î―1έÎļÎđ ᾀ2Î―1á―ģÎļÎđ ᾀ2Î―1ÎĩÎļÎŊ ᾀ2Î―1ÎĩÎļá―· ᾀ2Î―1ÎĩÎŊÎīÎĩ ᾀ2Î―1Îĩá―·ÎīÎĩ ᾀ2Î―1ÎĩÎđÎīέ ᾀ2Î―1ÎĩÎđÎīá―ģ ᾀ2Î―1ÎĩÎŊÎīω ᾀ2Î―1Îĩá―·Îīω ᾀ2Î―1ÎĩÎđÎīώ ᾀ2Î―1ÎĩÎđÎīá―― ᾀ2Î―1ÎĩÎŊΚι ᾀ2Î―1Îĩá―·ÎšÎą ᾀ2Î―1ÎĩÎđΚΎ ᾀ2Î―1ÎĩÎđÎšá―ą ᾀ2Î―1ÎĩÎđΚό ᾀ2Î―1ÎĩÎđΚá―đ ᾀ2Î―1ÎĩÎđΚÎŋ ᾀ2Î―1ÎĩÎđÎŧÎĩÎŊ ᾀ2Î―1ÎĩÎđÎŧÎĩá―· ᾀ2Î―1ÎĩÎđÎŧÎĩÎđ ᾀ2Î―1ÎĩÎŊΞι ᾀ2Î―1Îĩá―·ÎžÎą ᾀ2Î―1ÎĩÎŊ2σ1ιΚ ᾀ2Î―1Îĩá―·2σ1ιΚ ᾀ2Î―1ÎĩÎŊ2Ïē1ιΚ ᾀ2Î―1Îĩá―·2Ïē1ιΚ ᾀ2Î―1ÎĩÎđ2σ1ΎΚ ᾀ2Î―1ÎĩÎđ2σ1á―ąÎš ᾀ2Î―1ÎĩÎđ2Ïē1ΎΚ ᾀ2Î―1ÎĩÎđ2Ïē1á―ąÎš ᾀ2Î―1ÎĩÎŊ2σ1Îŋ ᾀ2Î―1Îĩá―·2σ1Îŋ ᾀ2Î―1ÎĩÎŊ2Ïē1Îŋ ᾀ2Î―1Îĩá―·2Ïē1Îŋ ᾀ2Î―1ÎĩÎđ2σ1ό ᾀ2Î―1ÎĩÎđ2σ1á―đ ᾀ2Î―1ÎĩÎđ2Ïē1ό ᾀ2Î―1ÎĩÎđ2Ïē1á―đ ᾀ2Î―1ÎĩÎđ2σ1φÎŋρ ᾀ2Î―1ÎĩÎđ2Ïē1φÎŋρ ᾀ2Î―1ÎĩÎŊ2σ1φÎŋρ ᾀ2Î―1Îĩá―·2σ1φÎŋρ ᾀ2Î―1ÎĩÎŊ2Ïē1φÎŋρ ᾀ2Î―1Îĩá―·2Ïē1φÎŋρ ᾀ2Î―1ÎĩÎđ2σ1φόρ ᾀ2Î―1ÎĩÎđ2σ1φá―đρ ᾀ2Î―1ÎĩÎđ2Ïē1φόρ ᾀ2Î―1ÎĩÎđ2Ïē1φá―đρ ᾀ2Î―1έΚ ᾀ2Î―1á―ģΚ ᾀ2Î―1ÎĩΚ ᾀ3Î―2έΚι ᾀ3Î―2á―ģΚι ᾀ3Î―2ÎĩΚΎς. ᾀ3Î―2ÎĩÎšá―ąÏ‚. ᾀ3Î―2ÎĩΚΎÏē. ᾀ3Î―2ÎĩÎšá―ąÏē. ᾀ3Î―2ÎĩÎšá―°Ï‚. ᾀ3Î―2ÎĩÎšá―°Ïē. ᾀ3Î―2ÎĩΚΎσ. ᾀ3Î―2ÎĩÎšá―ąÏƒ. ᾀ3Î―2ÎĩÎšá―°Ïƒ. ᾀ3Î―2ÎĩΚτ ᾀ4Î―3έ2Κ1τÎđτ ᾀ4Î―3á―ģ2Κ1τÎđτ ᾀ4Î―3Îĩ2Κ1τÎŊτ ᾀ4Î―3Îĩ2Κ1Ï„á―·Ï„ áž€Î―Îĩ2Κ1ÎŧÎđπ áž€Î―Îĩ2Κ1Îŧό áž€Î―Îĩ2Κ1Îŧá―đ áž€Î―Îĩ2Κ1ÎŧÎŋ ᾀ2Î―1έÎŧÎąÎđ ᾀ2Î―1á―ģÎŧÎąÎđ ᾀ2Î―1ÎĩÎŧÎąÎđ ᾀ2Î―1ÎĩÎŧÎŽÏ„ ᾀ2Î―1ÎĩÎŧá―ąÏ„ ᾀ2Î―1ÎĩÎŧÎąÏ„ ᾀ2Î―1έÎŧÎĩÎģΚ ᾀ2Î―1á―ģÎŧÎĩÎģΚ ᾀ2Î―1ÎĩÎŧέÎģΚ ᾀ2Î―1ÎĩÎŧá―ģÎģΚ ᾀ2Î―1ÎĩÎŧÎĩÎģÎū ᾀ2Î―1ÎĩÎŧέη ᾀ2Î―1ÎĩÎŧá―ģη ᾀ2Î―1ÎĩÎŧÎĩÎŪ ᾀ2Î―1ÎĩÎŧÎĩá―ĩ ᾀ2Î―1έÎŧÎĩÎŋ ᾀ2Î―1á―ģÎŧÎĩÎŋ ᾀ2Î―1ÎĩÎŧέÎŋ ᾀ2Î―1ÎĩÎŧá―ģÎŋ ᾀ2Î―1ÎĩÎŧέω ᾀ2Î―1ÎĩÎŧá―ģω ᾀ2Î―1έÎŧÎĩÎĩ ᾀ2Î―1á―ģÎŧÎĩÎĩ ᾀ2Î―1ÎĩÎŧΚÎŪ ᾀ2Î―1ÎĩÎŧΚá―ĩ ᾀ2Î―1ÎĩÎŧΚá―ī ᾀ2Î―1ÎĩÎŧΚÎŋ ᾀ2Î―1ÎĩÎŧΚáŋ† ᾀ2Î―1ÎĩÎŧΚές. ᾀ2Î―1ÎĩÎŧΚá―ģς. ᾀ2Î―1ÎĩÎŧΚέÏē. ᾀ2Î―1ÎĩÎŧΚá―ģÏē. ᾀ2Î―1ÎĩÎŧΚá―ēς. ᾀ2Î―1ÎĩÎŧΚá―ēÏē. ᾀ2Î―1ÎĩÎŧΚέσ. ᾀ2Î―1ÎĩÎŧΚá―ģσ. ᾀ2Î―1ÎĩÎŧΚá―ēσ. ᾀ2Î―1ÎĩÎŧΚÎĩ ᾀ2Î―1ÎĩÎŧΚáŋķ ᾀ2Î―1ÎĩÎŧΚέσ ᾀ2Î―1ÎĩÎŧΚá―ģσ ᾀ2Î―1ÎĩÎŧΚέÏē ᾀ2Î―1ÎĩÎŧΚá―ģÏē ᾄ2Î―1ÎĩÎŧΚτ ᾀ2Î―1έÎŧΚτ ᾀ2Î―1á―ģÎŧΚτ ᾀ2Î―1έÎŧΚω ᾀ2Î―1á―ģÎŧΚω ᾀ2Î―1ÎĩÎŧΚώ ᾀ2Î―1ÎĩÎŧÎšá―― ᾀ2Î―1έÎŧÎŧ ᾀ2Î―1á―ģÎŧÎŧ ᾀ2Î―1έÎŧπÎđ ᾀ2Î―1á―ģÎŧπÎđ ᾀ2Î―1ÎĩÎŧπÎŊ ᾀ2Î―1ÎĩÎŧÏ€á―· ᾀ2Î―1έÎŧυτρ ᾀ2Î―1á―ģÎŧυτρ ᾀ2Î―1ÎĩÎŧύτρ ᾀ2Î―1ÎĩÎŧá―ŧτρ ᾀ2Î―1έΞÎē ᾀ2Î―1á―ģΞÎē ᾀ2Î―1ÎĩΞÎē ᾀ2Î―1έΞÎĩτ ᾀ2Î―1á―ģΞÎĩτ ᾀ2Î―1ÎĩΞέτ ᾀ2Î―1ÎĩΞá―ģτ ᾀ2Î―1έΞπ ᾀ2Î―1á―ģΞπ ᾀ2Î―1ÎĩΞπ ᾀ2Î―1έΞφ ᾀ2Î―1á―ģΞφ ᾀ2Î―1ÎĩΞφ ᾀ2Î―1Î­Î― ᾀ2Î―1á―ģÎ― ᾀ2Î―1ÎĩÎ― ᾀ3Î―2Î­Î―ÎĩÎđ ᾀ3Î―2á―ģÎ―ÎĩÎđ ᾀ3Î―2ÎĩÎ―ÎŪ ᾀ3Î―2ÎĩÎ―á―ĩ ᾀ3Î―2Î­Î―Ï„Îĩς. ᾀ3Î―2á―ģÎ―Ï„Îĩς. ᾀ3Î―2Î­Î―Ï„ÎĩÏē. ᾀ3Î―2á―ģÎ―Ï„ÎĩÏē. ᾀ3Î―2Î­Î―Ï„Îĩσ. ᾀ3Î―2á―ģÎ―Ï„Îĩσ. ᾀ2Î―1Îĩ2Îū1 ᾀ3Î―2Îĩ3Îū2ÎŊΚι ᾀ3Î―2Îĩ3Îū2á―·ÎšÎą ᾀ3Î―2Îĩ3Îū2ÎđΚΎ ᾀ3Î―2Îĩ3Îū2ÎđÎšá―ą ᾀ2Î―1έÎŋρ ᾀ2Î―1á―ģÎŋρ ᾀ2Î―1Îĩόρ ᾀ2Î―1Îĩá―đρ ᾀ2Î―1Îĩπ ᾀ3Î―2ÎĩÏ€Î― ᾀ3Î―2Îĩπτ ᾀ2Î―1ÎĩÏÎąÏƒÏ„ ᾀ2Î―1ÎĩÏÎąÏēτ ᾀ2Î―1Î­ÏÎąÏƒÏ„ ᾀ2Î―1á―ģÏÎąÏƒÏ„ ᾀ2Î―1Î­ÏÎąÏēτ ᾀ2Î―1á―ģÏÎąÏēτ ᾀ2Î―1ÎĩρΎστ ᾀ2Î―1ÎĩÏá―ąÏƒÏ„ ᾀ2Î―1ÎĩρΎÏēτ ᾀ2Î―1ÎĩÏá―ąÏēτ ᾀ2Î―1ÎĩρÎģ ᾄ2Î―1ÎĩρÎģ ᾀ2Î―1έρÎģ ᾀ2Î―1á―ģρÎģ ᾀ2Î―1έρÎĩÎđΚ ᾀ2Î―1á―ģρÎĩÎđΚ ᾀ2Î―1ÎĩρÎĩÎŊΚ ᾀ2Î―1ÎĩρÎĩá―·Îš ᾀ2Î―1έρÎĩÎđσ ᾀ2Î―1á―ģρÎĩÎđσ ᾀ2Î―1έρÎĩÎđÏē ᾀ2Î―1á―ģρÎĩÎđÏē ᾀ2Î―1ÎĩρÎĩÎŊσ ᾀ2Î―1ÎĩρÎĩá―·Ïƒ ᾀ2Î―1ÎĩρÎĩÎŊÏē ᾀ2Î―1ÎĩρÎĩá―·Ïē ᾀ2Î―1ÎĩρÎĩÏÎ―Î·Ï„ ᾀ2Î―1ÎĩρÎĩá―ŧÎ―Î·Ï„ ᾀ2Î―1ÎĩρÎĩÏ…Î―ÎŪτ ᾀ2Î―1ÎĩρÎĩÏ…Î―á―ĩτ ᾀ2Î―1ÎĩρÎŊ ᾀ2Î―1ÎĩÏá―· ᾀ2Î―1ÎĩρÎđ ᾀ2Î―1ÎĩρυÎļρÎŊÎąÏƒÏ„ ᾀ2Î―1ÎĩρυÎļÏá―·ÎąÏƒÏ„ ᾀ2Î―1ÎĩρυÎļρÎŊÎąÏēτ ᾀ2Î―1ÎĩρυÎļÏá―·ÎąÏēτ ᾀ2Î―1ÎĩρυÎļρÎđΎστ ᾀ2Î―1ÎĩρυÎļρÎđá―ąÏƒÏ„ ᾀ2Î―1ÎĩρυÎļρÎđÎŽÏēτ ᾀ2Î―1ÎĩρυÎļρÎđá―ąÏēτ ᾀ2Î―1έστÎđ ᾀ2Î―1á―ģστÎđ ᾀ2Î―1έÏēτÎđ ᾀ2Î―1á―ģÏēτÎđ ᾀ2Î―1ÎĩστÎŊ ᾀ2Î―1ÎĩÏƒÏ„á―· ᾀ2Î―1ÎĩÏēτÎŊ ᾀ2Î―1ÎĩÏēÏ„á―· ᾀ2Î―1Î­Ï„ÎąÎđ ᾀ2Î―1á―ģÏ„ÎąÎđ ᾀ2Î―1ÎĩÏ„ÎąÎŊ ᾀ2Î―1ÎĩÏ„Îąá―· ᾀ2Î―1έτÎŋÎđ ᾀ2Î―1á―ģτÎŋÎđ ᾀ2Î―1ÎĩτÎŋÎŊ ᾀ2Î―1ÎĩτÎŋá―· ᾀ2Î―1Îĩτυ ᾀ2Î―1έτυ ᾀ2Î―1á―ģτυ ᾀ2Î―1Îĩτύ ᾀ2Î―1Îĩτá―ŧ ᾀ2Î―1ÎĩύÎļ ᾀ2Î―1Îĩá―ŧÎļ ᾀ2Î―1ÎĩυÎļ ᾄ2Î―1ÎĩυΚ ᾀ2Î―1ÎĩύΚ ᾀ2Î―1Îĩá―ŧΚ ᾀ2Î―1ÎĩυÎŧ ᾀ2Î―1ÎĩύρÎĩτ ᾀ2Î―1Îĩá―ŧρÎĩτ ᾀ2Î―1Îĩυρέτ ᾀ2Î―1Îĩυρá―ģτ ᾀ2Î―1ÎĩυφÎŪΞητ ᾀ2Î―1Îĩυφá―ĩΞητ ᾀ2Î―1ÎĩυφηΞÎŪτ ᾀ2Î―1ÎĩυφηΞá―ĩτ ᾀ2Î―1Îĩύχ ᾀ2Î―1Îĩá―ŧχ ᾀ2Î―1Îĩυχ ᾀ2Î―1ÎĩύÎū ᾀ2Î―1Îĩá―ŧÎū ᾀ2Î―1ÎĩυÎū ᾀ2Î―1ηυÎū ᾀ2Î―1ηáŋĶÎģ ᾀ2Î―1ηυÎģ ᾀ2Î―1ÎĩυΚτ ᾀ2Î―1έφ ᾀ2Î―1á―ģφ ᾀ2Î―1Îĩφ ᾀ3Î―2ÎĩφΎÎŧ ᾀ3Î―2ÎĩÏ†á―ąÎŧ ᾀ3Î―2έφÎĩÎŧ ᾀ3Î―2á―ģφÎĩÎŧ ᾀ3Î―2ÎĩφέÎŧ ᾀ3Î―2Îĩφá―ģÎŧ ᾀ2Î―1Îĩχέ ᾀ2Î―1Îĩχá―ģ ᾀ2Î―1ÎĩχÎĩ ᾀ2Î―1Î­ÏˆÎą ᾀ2Î―1á―ģÏˆÎą ᾀ2Î―1ÎĩψΎ ᾀ2Î―1ÎĩÏˆá―ą ᾀ2Î―1ηÎģÎĩΞ ᾀ2Î―1ÎŪÎī ᾀ2Î―1á―ĩÎī ᾀ2Î―1ηÎī ᾀ2Î―1ÎŪΚÎĩσ ᾀ2Î―1á―ĩΚÎĩσ ᾀ2Î―1ÎŪΚÎĩÏē ᾀ2Î―1á―ĩΚÎĩÏē ᾀ2Î―1ηΚέσ ᾀ2Î―1ηΚá―ģσ ᾀ2Î―1ηΚέÏē ᾀ2Î―1ηΚá―ģÏē ᾀ2Î―1ÎŪΚÎŋ ᾀ2Î―1á―ĩΚÎŋ ᾀ2Î―1ηΚό ᾀ2Î―1ηΚá―đ ᾀ2Î―1ηΚÎŋ ᾀ2Î―1ηÎŧΎΚ ᾀ2Î―1ηÎŧá―ąÎš ᾀ2Î―1ηÎŧιΚ ᾀ2Î―1ÎŪÎŧÎąÏ„Îŋς. ᾀ2Î―1á―ĩÎŧÎąÏ„Îŋς. ᾀ2Î―1ÎŪÎŧÎąÏ„ÎŋÏē. ᾀ2Î―1á―ĩÎŧÎąÏ„ÎŋÏē. ᾀ2Î―1ÎŪÎŧÎąÏ„Îŋσ. ᾀ2Î―1á―ĩÎŧÎąÏ„Îŋσ. ᾀ2Î―1ηÎŧÎŽÏ„Îŋυ ᾀ2Î―1ηÎŧá―ąÏ„Îŋυ ᾀ2Î―1ηÎŧΎτω ᾀ2Î―1ηÎŧá―ąÏ„Ï‰ ᾀ2Î―1ÎŪÎŧÎąÏ„ÎŋÎ―. ᾀ2Î―1á―ĩÎŧÎąÏ„ÎŋÎ―. ᾀ2Î―1ÎŪÎŧÎąÏ„Îĩ. ᾀ2Î―1á―ĩÎŧÎąÏ„Îĩ. ᾀ2Î―1ηÎŧÎŽÏ„ÎŋÎđ ᾀ2Î―1ηÎŧá―ąÏ„ÎŋÎđ ᾀ2Î―1ÎŪÎŧÎąÏ„ÎŋÎđ ᾀ2Î―1á―ĩÎŧÎąÏ„ÎŋÎđ ᾀ2Î―1ÎŪÎŧÎąÏ„Îą ᾀ2Î―1á―ĩÎŧÎąÏ„Îą ᾀ2Î―1ηÎŧÎĩÎģ ᾀ2Î―1ηÎŧÎĩÎŪ ᾀ2Î―1ηÎŧÎĩá―ĩ ᾀ2Î―1ηÎŧÎĩá―ī ᾀ2Î―1ηÎŧÎĩÎŋ ᾀ2Î―1ηÎŧÎĩÎĩ ᾀ2Î―1ηÎŧÎĩáŋķ ᾀ2Î―1ηÎŧÎĩέ ᾀ2Î―1ηÎŧÎĩá―ģ ᾀ2Î―1ηÎŧÎĩá―ē ᾀ2Î―1ηÎŧÎĩáŋ† ᾀ2Î―1ηÎŧέη ᾀ2Î―1ηÎŧá―ģη ᾀ2Î―1ÎŪÎŧÎĩÎđπ ᾀ2Î―1á―ĩÎŧÎĩÎđπ ᾀ2Î―1ηÎŧÎĩÎŊπ ᾀ2Î―1ηÎŧÎĩá―·Ï€ ᾀ2Î―1ηÎŧÎŪ ᾀ2Î―1ηÎŧá―ĩ ᾀ2Î―1ηÎŧá―ī ᾀ2Î―1ηÎŧÎŋáŋĶ ᾀ2Î―1ηÎŧÎĩáŋ– ᾀ2Î―1ηÎŧáŋ† ᾀ2Î―1ηÎŧέ ᾀ2Î―1ηÎŧá―ģ ᾀ2Î―1ηÎŧá―ē ᾀ2Î―1ηÎŧÎŋáŋ– ᾀ2Î―1ηÎŧáŋķ ᾀ2Î―1ÎŪÎŧÎđΚ ᾀ2Î―1á―ĩÎŧÎđΚ ᾀ2Î―1ηÎŧÎŊΚ ᾀ2Î―1ηÎŧá―·Îš ᾀ2Î―1ÎŪÎŧÎđÎŋ ᾀ2Î―1á―ĩÎŧÎđÎŋ ᾀ2Î―1ηÎŧÎŊÎŋ ᾀ2Î―1ηÎŧá―·Îŋ ᾀ2Î―1ηÎŧÎŊω ᾀ2Î―1ηÎŧá―·Ï‰ ᾀ2Î―1ÎŪÎŧÎđÎą ᾀ2Î―1á―ĩÎŧÎđÎą ᾀ2Î―1ÎŪÎŧÎđπ ᾀ2Î―1á―ĩÎŧÎđπ ᾀ2Î―1ηÎŧÎŊπ ᾀ2Î―1ηÎŧá―·Ï€ ᾀ2Î―1ηÎŧÎđφ ᾀ2Î―1ÎŪΞ ᾀ2Î―1á―ĩΞ ᾀ2Î―1ηΞ ᾀ2Î―1ÎŪÎ―Ï… ᾀ2Î―1á―ĩÎ―Ï… ᾀ2Î―1Î·Î―Ï ᾀ2Î―1Î·Î―á―ŧ ᾀ2Î―1ÎŪρÎĩÎđ ᾀ2Î―1á―ĩρÎĩÎđ ᾀ2Î―1ηρÎĩÎŊ ᾀ2Î―1ηρÎĩá―· ᾀ2Î―1ηρέΞ ᾀ2Î―1ηρá―ģΞ ᾀ2Î―1ηρÎĩΞ ᾀ2Î―1ηρÎĩφ ᾀ2Î―1ÎŪρÎđ ᾀ2Î―1á―ĩρÎđ ᾀ2Î―1ηρÎŊ ᾀ2Î―1Î·Ïá―· ᾀ2Î―1ÎŪρÎŋτ ᾀ2Î―1á―ĩρÎŋτ ᾀ2Î―1ηρότ ᾀ2Î―1ηρá―đτ ᾀ2Î―1ÎŪσσ ᾀ2Î―1á―ĩσσ ᾀ2Î―1ÎŪÏēÏē ᾀ2Î―1á―ĩÏēÏē ᾀ2Î―1ησσ ᾀ2Î―1ηÏēÏē ᾀ2Î―1ÎŪττ ᾀ2Î―1á―ĩττ ᾀ2Î―1ηττ ᾀ2Î―1ÎŪÏ†Îą ᾀ2Î―1á―ĩÏ†Îą ᾀ2Î―1Î·Ï†Îą ᾀ2Î―1ÎŊÎąÏ„ ᾀ2Î―1á―·ÎąÏ„ ᾀ2Î―1ÎđÎŽÏ„ ᾀ2Î―1Îđá―ąÏ„ ᾀ2Î―1ÎŊÎīÎđÎŋ ᾀ2Î―1á―·ÎīÎđÎŋ ᾀ2Î―1ÎđÎīÎŊÎŋ ᾀ2Î―1ÎđÎīá―·Îŋ ᾀ2Î―1ÎđÎīÎŊω ᾀ2Î―1ÎđÎīá―·Ï‰ ᾀ2Î―1ÎŊÎīÎđÎą ᾀ2Î―1á―·ÎīÎđÎą ᾀ2Î―1ÎđÎīÎđτ ᾄ2Î―1ÎđÎīρÎŋς ᾄ2Î―1ÎđÎīρÎŋÏē ᾄ2Î―1ÎđÎīρÎŋσ ᾀ2Î―1ÎŊÎīρÎŋυ ᾀ2Î―1á―·ÎīρÎŋυ ᾀ2Î―1ÎŊÎīρω ᾀ2Î―1á―·Îīρω ᾄ2Î―1ÎđÎīρÎŋÎ― ᾄ2Î―1ÎđÎīρÎĩ ᾀ2Î―1ÎŊÎīρÎŋÎđ ᾀ2Î―1á―·ÎīρÎŋÎđ ᾄ2Î―1ÎđÎīρÎŋÎđ ᾀ2Î―1ÎŊÎīρυτ ᾀ2Î―1á―·Îīρυτ ᾀ2Î―1ÎđÎīρύτ ᾀ2Î―1ÎđÎīρá―ŧτ ᾀ2Î―1ÎđÎīρωτ ᾀ2Î―1ÎđÎīρώτ ᾀ2Î―1ÎđÎīÏá――Ï„ ᾀ2Î―1ÎŊÎĩρ ᾀ2Î―1á―·Îĩρ ᾀ2Î―1Îđέρ ᾀ2Î―1Îđá―ģρ ᾀ2Î―1ÎđÎĩρΎτ ᾀ2Î―1ÎđÎĩÏá―ąÏ„ ᾀ3Î―2Îđέρω ᾀ3Î―2Îđá―ģρω ᾀ2Î―1ÎŊΚ ᾀ2Î―1á―·Îš ᾀ2Î―1ÎđΚ ᾄ2Î―1ÎđΚ ᾀ3Î―2ÎŊΚη ᾀ3Î―2á―·ÎšÎ· ᾀ3Î―2ÎđΚÎŪ ᾀ3Î―2ÎđΚá―ĩ ᾀ2Î―1ÎŊÎŧ ᾀ2Î―1á―·Îŧ ᾀ2Î―1ÎđÎŧ ᾀ2Î―1ÎŊÎžÎąÏƒÏ„ ᾀ2Î―1á―·ÎžÎąÏƒÏ„ ᾀ2Î―1ÎŊΞιÏēτ ᾀ2Î―1á―·ÎžÎąÏēτ ᾀ2Î―1ÎđΞΎστ ᾀ2Î―1ÎđÎžá―ąÏƒÏ„ ᾀ2Î―1ÎđΞΎÏēτ ᾀ2Î―1ÎđÎžá―ąÏēτ ᾀ2Î―1ÎŊÎŋυ ᾀ2Î―1á―·Îŋυ ᾀ2Î―1ÎđÎŋύ ᾀ2Î―1ÎđÎŋá―ŧ ᾄ2Î―1Îđππ ᾀ2Î―1ÎŊππ ᾀ2Î―1á―·Ï€Ï€ ᾀ2Î―1Îđσ ᾀ2Î―1ÎđÏē ᾄ2Î―1Îđσ ᾄ2Î―1ÎđÏē ᾀ2Î―1ÎŊσ ᾀ2Î―1á―·Ïƒ ᾀ2Î―1ÎŊÏē ᾀ2Î―1á―·Ïē ᾀ3Î―2Îđσáūķτ ᾀ3Î―2ÎđÏēáūķτ ᾀ3Î―2ÎđσΎτ ᾀ3Î―2ÎđÏƒá―ąÏ„ ᾀ3Î―2ÎđÏēÎŽÏ„ ᾀ3Î―2ÎđÏēá―ąÏ„ ᾀ3Î―2ÎŊστ ᾀ3Î―2á―·ÏƒÏ„ ᾀ3Î―2ÎŊÏēτ ᾀ3Î―2á―·Ïēτ ᾀ3Î―2Îđστ ᾀ3Î―2ÎđÏēτ ᾀ4Î―3ÎđστÎŋρη ᾀ4Î―3ÎđÏēτÎŋρη ᾀ4Î―3Îđστόρη ᾀ4Î―3Îđστá―đρη ᾀ4Î―3ÎđÏēτόρη ᾀ4Î―3ÎđÏēτá―đρη ᾀ4Î―3ÎđστÎŋρÎŪ ᾀ4Î―3ÎđστÎŋρá―ĩ ᾀ4Î―3ÎđÏēτÎŋρÎŪ ᾀ4Î―3ÎđÏēτÎŋρá―ĩ ᾀ3Î―2ÎŊσχ ᾀ3Î―2á―·ÏƒÏ‡ ᾀ3Î―2ÎŊÏēχ ᾀ3Î―2á―·Ïēχ ᾀ4Î―3ÎŊσχυ ᾀ4Î―3á―·ÏƒÏ‡Ï… ᾀ4Î―3ÎŊÏēχυ ᾀ4Î―3á―·Ïēχυ ᾄ2Î―1Îđχ ᾀ2Î―1ÎŊχ ᾀ2Î―1á―·Ï‡ ᾀ2Î―1ÎđÏ‡Î―Îĩύτ ᾀ2Î―1ÎđÏ‡Î―Îĩá―ŧτ ᾀ2Î―1ÎŊψ ᾀ2Î―1á―·Ïˆ ᾀ2Î―1Îđψ ᾀ2Î―1όÎīÎĩ ᾀ2Î―1á―đÎīÎĩ ᾀ2Î―1ÎŋÎīέ ᾀ2Î―1ÎŋÎīá―ģ ᾄ2Î―1ÎŋÎķ ᾀ2Î―1όÎķ ᾀ2Î―1á―đÎķ ᾀ2Î―1ÎŋÎđΚÎĩ ᾀ2Î―1ÎŋÎđΚÎŋÎ― ᾄ2Î―1ÎŋÎđΚ ᾀ2Î―1ÎŋÎŊΚ ᾀ2Î―1Îŋá―·Îš ᾀ2Î―1ÎŋÎđΚτÎŊ ᾀ2Î―1ÎŋÎđÎšÏ„á―· ᾄ2Î―1ÎŋÎđΚτ ᾀ2Î―1ÎŋÎŊΚτ ᾀ2Î―1Îŋá―·ÎšÏ„ ᾀ2Î―1ÎŋÎŊΞωΚ ᾀ2Î―1Îŋá―·ÎžÏ‰Îš ᾀ2Î―1ÎŋÎđΞώΚ ᾀ2Î―1ÎŋÎđÎžá――Îš ᾀ2Î―1ÎŋÎđΞωΚ ᾀ2Î―1ÎŋÎđÎ― ᾄ2Î―1ÎŋÎđÎ― ᾀ2Î―1ÎŋÎŊÎ― ᾀ2Î―1Îŋá―·Î― ᾄ2Î―1ÎŋÎđστρ ᾄ2Î―1ÎŋÎđÏēτρ ᾀ2Î―1ÎŋÎŊστρ ᾀ2Î―1Îŋá―·ÏƒÏ„Ï ᾀ2Î―1ÎŋÎŊÏēτρ ᾀ2Î―1Îŋá―·Ïēτρ ᾀ2Î―1όÎŧ ᾀ2Î―1á―đÎŧ ᾀ2Î―1ÎŋÎŧ ᾄ2Î―1ÎŋÎŧ ᾀ3Î―2ÎŋÎŧΚ ᾀ3Î―2ÎŋÎŧÎŋ ᾀ2Î―1ÎŋΞÎēρÎŊ ᾀ2Î―1ÎŋΞÎēÏá―· ᾀ2Î―1ÎŋΞÎēρáŋ– ᾄ2Î―1ÎŋΞÎēρÎŋ ᾀ2Î―1όΞÎēρÎŋ ᾀ2Î―1á―đΞÎēρÎŋ ᾀ2Î―1όΞÎēρω ᾀ2Î―1á―đΞÎēρω ᾄ2Î―1ÎŋΞÎēÏÎą ᾀ2Î―1ÎŋΞÎŪÎŧ ᾀ2Î―1ÎŋΞá―ĩÎŧ ᾀ2Î―1ÎŋΞηÎŧ ᾀ2Î―1ÎŋΞÎŊÎŧ ᾀ2Î―1ÎŋÎžá―·Îŧ ᾀ2Î―1ÎŋΞÎđÎŧ ᾀ2Î―1όΞÎđχ ᾀ2Î―1á―đΞÎđχ ᾀ2Î―1ÎŋΞÎđχ ᾀ2Î―1όΞÎŋ ᾀ2Î―1á―đΞÎŋ ᾀ2Î―1ÎŋΞό ᾀ2Î―1ÎŋΞá―đ ᾀ2Î―1ÎŋΞÎŋ ᾀ3Î―2ÎŋΞÎŋÎļ ᾀ3Î―2όΞÎŋυ. ᾀ3Î―2á―đΞÎŋυ. ᾀ3Î―2όΞáŋģ. ᾀ3Î―2á―đΞáŋģ. ᾀ3Î―2όΞω. ᾀ3Î―2á―đΞω. ᾀ2Î―2όΞÎŋÎđÎ―. ᾀ2Î―2á―đΞÎŋÎđÎ―. ᾀ3Î―2ÏŒÎžÏ‰Î―. ᾀ3Î―2á―đÎžÏ‰Î―. ᾀ3Î―2όΞÎŋÎđς. ᾀ3Î―2á―đΞÎŋÎđς. ᾀ3Î―2όΞÎŋÎđÏē. ᾀ3Î―2á―đΞÎŋÎđÏē. ᾀ3Î―2όΞÎŋÎđσ. ᾀ3Î―2á―đΞÎŋÎđσ. ᾀ3Î―2όΞÎŋυς. ᾀ3Î―2á―đΞÎŋυς. ᾀ3Î―2όΞÎŋυÏē. ᾀ3Î―2á―đΞÎŋυÏē. ᾀ3Î―2όΞÎŋυσ. ᾀ3Î―2á―đΞÎŋυσ. ᾀ2Î―1ÏŒÎ― ᾀ2Î―1á―đÎ― ᾀ2Î―1ÎŋÎ― ᾄ2Î―1Îŋπ ᾀ2Î―1όπ ᾀ2Î―1á―đπ ᾀ2Î―1όρ ᾀ2Î―1á―đρ ᾀ2Î―1Îŋρ ᾄ2Î―1Îŋρ ᾀ3Î―2ÎŋρÎģÎŽÎķ ᾀ3Î―2ÎŋρÎģá―ąÎķ ᾄ3Î―2ÎŋρÎļ ᾀ3Î―2όρÎļ ᾀ3Î―2á―đρÎļ ᾀ3Î―2ÎŋρΞΎ ᾀ3Î―2ÎŋÏÎžá―ą ᾀ3Î―2Îŋρτ ᾀ3Î―2Îŋρύ ᾀ3Î―2Îŋρá―ŧ ᾀ2Î―1όσÎđ ᾀ2Î―1á―đσÎđ ᾀ2Î―1όÏēÎđ ᾀ2Î―1á―đÏēÎđ ᾀ2Î―1ÎŋσÎŊ ᾀ2Î―1ÎŋÏƒá―· ᾀ2Î―1ÎŋÏēÎŊ ᾀ2Î―1ÎŋÏēá―· ᾀ2Î―1ÎŋσÎđ ᾀ2Î―1ÎŋÏēÎđ ᾄ2Î―1ÎŋσΞ ᾄ2Î―1ÎŋÏēΞ ᾀ2Î―1όσΞ ᾀ2Î―1á―đσΞ ᾀ2Î―1όÏēΞ ᾀ2Î―1á―đÏēΞ ᾀ2Î―1όσφρ ᾀ2Î―1á―đσφρ ᾀ2Î―1όÏēφρ ᾀ2Î―1á―đÏēφρ ᾀ2Î―1Îŋσφρ ᾀ2Î―1ÎŋÏēφρ ᾀ2Î―1ÎŋÏÎą ᾀ2Î―1Îŋá―ŧÎą ᾀ2Î―1ÎŋÏ…ÎŽ ᾀ2Î―1ÎŋÏ…á―ą ᾀ2Î―1ÎŋύσÎđ ᾀ2Î―1Îŋá―ŧσÎđ ᾀ2Î―1ÎŋύÏēÎđ ᾀ2Î―1Îŋá―ŧÏēÎđ ᾀ2Î―1ÎŋυσÎŊ ᾀ2Î―1ÎŋÏ…Ïƒá―· ᾀ2Î―1ÎŋυÏēÎŊ ᾀ2Î―1ÎŋυÏēá―· ᾀ2Î―1Îŋύτ ᾀ2Î―1Îŋá―ŧτ ᾀ2Î―1Îŋυτ ᾀ2Î―1ÎŋφÎļ ᾀ2Î―1όχÎĩυτ ᾀ2Î―1á―đχÎĩυτ ᾀ2Î―1ÎŋχÎĩύτ ᾀ2Î―1ÎŋχÎĩá―ŧτ ᾄ2Î―1ÎŋχÎŧ ᾀ2Î―1όχÎŧ ᾀ2Î―1á―đχÎŧ ᾀ2Î―1Îŋψ ᾄ2Î―1Îŋψ ᾀ2Î―1όψ ᾀ2Î―1á―đψ áž€Î―Ï„Îą2Î―1Îđσ áž€Î―Ï„Îą2Î―1ÎđÏē áž€Î―Ï„Îą2Î―1ÎŊσ áž€Î―Ï„Îą2Î―1á―·Ïƒ áž€Î―Ï„Îą2Î―1ÎŊÏē áž€Î―Ï„Îą2Î―1á―·Ïē áž€Î―Ï„ÎĩÎđ2σ1 áž€Î―Ï„ÎĩÎđ2Ïē1 áž€Î―Ï„Îĩ2Κ1 áž€Î―Ï„Îĩ2Î―1 áž€Î―Ï„Îĩ2Îū1 áž€Î―Ï„ÎđÎīυ2σ1 áž€Î―Ï„ÎđÎīυ2Ïē1 áž€Î―Ï„ÎđÏ€ÎąÏÎĩ2Κ1 áž€Î―Ï„ÎđÏ€ÎąÏÎĩ2Îū1 áž€Î―Ï„ÎđπρÎŋ2σ1 áž€Î―Ï„ÎđπρÎŋ2Ïē1 áž€Î―Ï„ÎđπρÎŋσ3Κ2υ áž€Î―Ï„ÎđπρÎŋÏē3Κ2υ áž€Î―Ï„Îđσύ2Î―1 áž€Î―Ï„Îđσá―ŧ2Î―1 áž€Î―Ï„ÎđÏēύ2Î―1 áž€Î―Ï„ÎđÏēá―ŧ2Î―1 áž€Î―Ï„Îđσυ2Î―1 áž€Î―Ï„ÎđÏēυ2Î―1 ᾀ2Î―1ύ ᾀ2Î―1á―ŧ ᾀ2Î―1υ ᾀ3Î―2υΞ ᾀ3Î―2ύσ ᾀ3Î―2á―ŧσ ᾀ3Î―2ύÏē ᾀ3Î―2á―ŧÏē ᾀ3Î―2υσ ᾀ3Î―2υÏē ᾀ2Î―1υπέ2ρ1 ᾀ2Î―1υπá―ģ2ρ1 ᾀ2Î―1υπÎĩ2ρ1 ᾄ2Î―1áŋģÎī ᾀ2Î―1áŋīÎī ᾀ2Î―1ώÎīυ ᾀ2Î―1á――Îīυ ᾀ2Î―1ωÎīύ ᾀ2Î―1ωÎīá―ŧ ᾀ2Î―1ώÎđ ᾀ2Î―1á――Îđ ᾀ2Î―1ωÎŊ ᾀ2Î―1Ï‰á―· ᾀ2Î―1ώÎŧ ᾀ2Î―1á――Îŧ ᾀ2Î―1ωÎŧ ᾀ2Î―1ώΞ ᾀ2Î―1á――Îž ᾀ2Î―1ωΞ ᾀ2Î―1ÏŽÎ― ᾀ2Î―1á――Î― ᾀ2Î―1Ï‰Î― ᾀ2Î―1ωρ ᾄ2Î―1ωρ ᾀ2Î―1ώρ ᾀ2Î―1á――Ï ᾄ2Î―1ωτÎŋ ᾀ2Î―1ώτÎŋ ᾀ2Î―1á――Ï„Îŋ ᾀ2Î―1ωφέÎŧ ᾀ2Î―1ωφá―ģÎŧ ᾀ2Î―1ωφÎĩÎŧ ᾀ2Î―1ώχυ ᾀ2Î―1á――Ï‡Ï… ᾀ2Î―1ωχύ ᾀ2Î―1ωχá―ŧ áž€Ï€Îą2Î―1ÎąÎđ កπΎ2Î―1Îŋυ áž€Ï€á―ą2Î―1Îŋυ áž€Ï€Îą2Î―1Îŋύρ áž€Ï€Îą2Î―1Îŋá―ŧρ ážÏ€Îą2Îū1 កπÎĩ2Κ1Îŧ ខπÎĩ2ρ1 កπÎŋσυ2Î―1 កπÎŋÏēυ2Î―1 កπρό2σ1 កπρá―đ2σ1 កπρό2Ïē1 កπρá―đ2Ïē1 កπρÎŋ2σ1 កπρÎŋ2Ïē1 កπρό3σ2ΚÎĩ កπρá―đ3σ2ΚÎĩ កπρό3Ïē2ΚÎĩ កπρá―đ3Ïē2ΚÎĩ កπρÎŋ3σ2Κέ កπρÎŋ3σ2Κá―ģ កπρÎŋ3Ïē2Κέ កπρÎŋ3Ïē2Κá―ģ កπρό3σ2ΚÎŋ កπρá―đ3σ2ΚÎŋ កπρό3Ïē2ΚÎŋ កπρá―đ3Ïē2ΚÎŋ កπρÎŋ3σ2Κό កπρÎŋ3σ2Κá―đ កπρÎŋ3Ïē2Κό កπρÎŋ3Ïē2Κá―đ កπρÎŋ3σ2τ កπρÎŋ3Ïē2τ ážÏÏ€Îą2Îū1 កρρÎĩ2Î―1ω កρχÎđσυ2Î―1 កρχÎđÏēυ2Î―1 កστÎĩ2ρ1ω ᾀÏēτÎĩ2ρ1ω កσύ2Î―1 កσá―ŧ2Î―1 ᾀÏēύ2Î―1 ᾀÏēá―ŧ2Î―1 កσυ2Î―1 ᾀÏēυ2Î―1 ᾀÎūύ2Î―1 ᾀÎūá―ŧ2Î―1 ᾀÎūυ2Î―1 Îąá―Ï„Î­2Κ1Ξ Îąá―Ï„á―ģ2Κ1Ξ Îąá―Ï„Îĩ2Κ1Ξ Îąá―Ï„Îĩ2Îū1 កω2σ1φ កω2Ïē1φ .ÎģÎĩÏÎą2σ1φ .ÎģÎĩÏÎą2Ïē1φ .ÎīÎą2σ1π .ÎīÎą2Ïē1π .ÎīÎđÎąÎžÏ†Îđ2σ1Îē .ÎīÎđÎąÎžÏ†Îđ2Ïē1Îē .ÎīÎđέ2Κ1ρÎŋ .ÎīÎđá―ģ2Κ1ρÎŋ .ÎīÎđÎĩ2Κ1ρό .ÎīÎđÎĩ2Κ1ρá―đ .ÎīÎđέ2Îū1 .ÎīÎđá―ģ2Îū1 .ÎīÎđÎĩ2Îū1 .ÎīÎđΚι2σ1π .ÎīÎđΚι2Ïē1π .ÎīÎđό2σ1Κ .ÎīÎđá―đ2σ1Κ .ÎīÎđό2Ïē1Κ .ÎīÎđá―đ2Ïē1Κ .ÎīÎđÎŋ2σ1Κ .ÎīÎđÎŋ2Ïē1Κ .ÎīÎđό2σ1π .ÎīÎđá―đ2σ1π .ÎīÎđό2Ïē1π .ÎīÎđá―đ2Ïē1π .ÎīÎđÎŋ2σ1π .ÎīÎđÎŋ2Ïē1π .ÎīÎŊ2σ1Îą .Îīá―·2σ1Îą .ÎīÎŊ2Ïē1Îą .Îīá―·2Ïē1Îą .ÎīÎđ2σ1ÎŽ .ÎīÎđ2σ1á―ą .ÎīÎđ2Ïē1ÎŽ .ÎīÎđ2Ïē1á―ą .ÎīÎŊ2σ1η .Îīá―·2σ1η .ÎīÎŊ2Ïē1η .Îīá―·2Ïē1η .ÎīÎđ2σ1ÎŪ .ÎīÎđ2σ1á―ĩ .ÎīÎđ2Ïē1ÎŪ .ÎīÎđ2Ïē1á―ĩ .ÎīÎŊ2σ1Îĩ .Îīá―·2σ1Îĩ .ÎīÎŊ2Ïē1Îĩ .Îīá―·2Ïē1Îĩ .ÎīÎđ2σ1Îĩ .ÎīÎđ2Ïē1Îĩ .ÎīÎđ2σ1Îļ .ÎīÎđ2Ïē1Îļ .Îīύ2σ1 .Îīá―ŧ2σ1 .Îīύ2Ïē1 .Îīá―ŧ2Ïē1 .Îīυ2σ1 .Îīυ2Ïē1 Îīύ3σ2ω. Îīá―ŧ3σ2ω. Îīύ3Ïē2ω. Îīá―ŧ3Ïē2ω. Îīύ3σ2ÎĩÎđς. Îīá―ŧ3σ2ÎĩÎđς. Îīύ3Ïē2ÎĩÎđÏē. Îīá―ŧ3Ïē2ÎĩÎđÏē. Îīύ3σ2ÎĩÎđσ. Îīá―ŧ3σ2ÎĩÎđσ. Îīύ3σ2ÎĩÎđ. Îīá―ŧ3σ2ÎĩÎđ. Îīύ3Ïē2ÎĩÎđ. Îīá―ŧ3Ïē2ÎĩÎđ. .Îīύ3σ2Îĩτ .Îīá―ŧ3σ2Îĩτ .Îīύ3Ïē2Îĩτ .Îīá―ŧ3Ïē2Îĩτ Îīύ3σ2ÎŋΞÎĩÎ―. Îīá―ŧ3σ2ÎŋΞÎĩÎ―. Îīύ3Ïē2ÎŋΞÎĩÎ―. Îīá―ŧ3Ïē2ÎŋΞÎĩÎ―. Îīύ3σ2ÎŋυσÎđÎ―. Îīá―ŧ3σ2ÎŋυσÎđÎ―. Îīύ3Ïē2ÎŋυÏēÎđÎ―. Îīá―ŧ3Ïē2ÎŋυÏēÎđÎ―. Îīύ3σ2ÎŋÎđΞÎđ. Îīá―ŧ3σ2ÎŋÎđΞÎđ. Îīύ3Ïē2ÎŋÎđΞÎđ. Îīá―ŧ3Ïē2ÎŋÎđΞÎđ. Îīύ3σ2ÎŋÎđς. Îīá―ŧ3σ2ÎŋÎđς. Îīύ3Ïē2ÎŋÎđÏē. Îīá―ŧ3Ïē2ÎŋÎđÏē. Îīύ3σ2ÎŋÎđσ. Îīá―ŧ3σ2ÎŋÎđσ. Îīύ3σ2ÎŋÎđ. Îīá―ŧ3σ2ÎŋÎđ. Îīύ3Ïē2ÎŋÎđ. Îīá―ŧ3Ïē2ÎŋÎđ. Îīύ3σ2ÎŋÎđτÎŋÎ―. Îīá―ŧ3σ2ÎŋÎđτÎŋÎ―. Îīύ3Ïē2ÎŋÎđτÎŋÎ―. Îīá―ŧ3Ïē2ÎŋÎđτÎŋÎ―. Îīυ3σ2ÎŋÎŊÏ„Î·Î―. Îīυ3σ2Îŋá―·Ï„Î·Î―. Îīυ3Ïē2ÎŋÎŊÏ„Î·Î―. Îīυ3Ïē2Îŋá―·Ï„Î·Î―. Îīύ3σ2ÎŋÎđΞÎĩÎ―. Îīá―ŧ3σ2ÎŋÎđΞÎĩÎ―. Îīύ3Ïē2ÎŋÎđΞÎĩÎ―. Îīá―ŧ3Ïē2ÎŋÎđΞÎĩÎ―. Îīύ3σ2ÎŋÎđτÎĩ. Îīá―ŧ3σ2ÎŋÎđτÎĩ. Îīύ3Ïē2ÎŋÎđτÎĩ. Îīá―ŧ3Ïē2ÎŋÎđτÎĩ. Îīύ3σ2ÎŋÎđÎĩÎ―. Îīá―ŧ3σ2ÎŋÎđÎĩÎ―. Îīύ3Ïē2ÎŋÎđÎĩÎ―. Îīá―ŧ3Ïē2ÎŋÎđÎĩÎ―. Îīύ3σ2ÎĩÎđÎ―. Îīá―ŧ3σ2ÎĩÎđÎ―. Îīύ3Ïē2ÎĩÎđÎ―. Îīá―ŧ3Ïē2ÎĩÎđÎ―. Îīύ3σ2Ï‰Î―. Îīá―ŧ3σ2Ï‰Î―. Îīύ3Ïē2Ï‰Î―. Îīá―ŧ3Ïē2Ï‰Î―. Îīύ3σ2ÎŋÎ― Îīá―ŧ3σ2ÎŋÎ― Îīύ3Ïē2ÎŋÎ― Îīá―ŧ3Ïē2ÎŋÎ― Îīυ3σ2ÏŒÎ― Îīυ3σ2á―đÎ― Îīυ3Ïē2ÏŒÎ― Îīυ3Ïē2á―đÎ― Îīύ3σ2Îŋυσ Îīá―ŧ3σ2Îŋυσ Îīύ3Ïē2ÎŋυÏē Îīá―ŧ3Ïē2ÎŋυÏē Îīυ3σ2Îŋύσ Îīυ3σ2Îŋá―ŧσ Îīυ3Ïē2ÎŋύÏē Îīυ3Ïē2Îŋá―ŧÏē Îīύ3σ2áŋƒ Îīá―ŧ3σ2áŋƒ Îīύ3Ïē2áŋƒ Îīá―ŧ3Ïē2áŋƒ Îīύ3σ2ητÎŋÎ―. Îīá―ŧ3σ2ητÎŋÎ―. Îīύ3Ïē2ητÎŋÎ―. Îīá―ŧ3Ïē2ητÎŋÎ―. Îīύ3σ2ωΞÎĩÎ―. Îīá―ŧ3σ2ωΞÎĩÎ―. Îīύ3Ïē2ωΞÎĩÎ―. Îīá―ŧ3Ïē2ωΞÎĩÎ―. Îīύ3σ2ωσÎđ. Îīá―ŧ3σ2ωσÎđ. Îīύ3Ïē2ωÏēÎđ. Îīá―ŧ3Ïē2ωÏēÎđ. Îīύ3σ2ÎąÎđΞÎđ. Îīá―ŧ3σ2ÎąÎđΞÎđ. Îīύ3Ïē2ÎąÎđΞÎđ. Îīá―ŧ3Ïē2ÎąÎđΞÎđ. Îīύ3σ2ÎąÎđς. Îīá―ŧ3σ2ÎąÎđς. Îīύ3Ïē2ÎąÎđÏē. Îīá―ŧ3Ïē2ÎąÎđÏē. Îīύ3σ2ÎĩÎđÎąÏ‚. Îīá―ŧ3σ2ÎĩÎđÎąÏ‚. Îīύ3Ïē2ÎĩÎđÎąÏē. Îīá―ŧ3Ïē2ÎĩÎđÎąÏē. Îīύ3σ2ÎąÎđσ. Îīá―ŧ3σ2ÎąÎđσ. Îīύ3σ2ÎĩÎđÎąÏƒ. Îīá―ŧ3σ2ÎĩÎđÎąÏƒ. Îīύ3σ2ÎąÎđ. Îīá―ŧ3σ2ÎąÎđ. Îīύ3Ïē2ÎąÎđ. Îīá―ŧ3Ïē2ÎąÎđ. Îīύ3σ2ÎĩÎđÎĩ. Îīá―ŧ3σ2ÎĩÎđÎĩ. Îīύ3Ïē2ÎĩÎđÎĩ. Îīá―ŧ3Ïē2ÎĩÎđÎĩ. Îīύ3σ2ÎąÎđτÎŋÎ―. Îīá―ŧ3σ2ÎąÎđτÎŋÎ―. Îīύ3Ïē2ÎąÎđτÎŋÎ―. Îīá―ŧ3Ïē2ÎąÎđτÎŋÎ―. Îīυ3σ2ÎąÎŊÏ„Î·Î―. Îīυ3σ2Îąá―·Ï„Î·Î―. Îīυ3Ïē2ÎąÎŊÏ„Î·Î―. Îīυ3Ïē2Îąá―·Ï„Î·Î―. Îīύ3σ2ÎąÎđΞÎĩÎ―. Îīá―ŧ3σ2ÎąÎđΞÎĩÎ―. Îīύ3Ïē2ÎąÎđΞÎĩÎ―. Îīá―ŧ3Ïē2ÎąÎđΞÎĩÎ―. Îīύ3σ2ÎąÎđτÎĩ. Îīá―ŧ3σ2ÎąÎđτÎĩ. Îīύ3Ïē2ÎąÎđτÎĩ. Îīá―ŧ3Ïē2ÎąÎđτÎĩ. Îīύ3σ2ÎąÎđÎĩÎ― Îīá―ŧ3σ2ÎąÎđÎĩÎ― Îīύ3Ïē2ÎąÎđÎĩÎ― Îīá―ŧ3Ïē2ÎąÎđÎĩÎ― Îīύ3σ2ÎĩÎđÎąÎ―. Îīá―ŧ3σ2ÎĩÎđÎąÎ―. Îīύ3Ïē2ÎĩÎđÎąÎ―. Îīá―ŧ3Ïē2ÎĩÎđÎąÎ―. Îīύ3σ2ÎŋÎ―. Îīá―ŧ3σ2ÎŋÎ―. Îīύ3Ïē2ÎŋÎ―. Îīá―ŧ3Ïē2ÎŋÎ―. Îīυ3σ2Ύτω. Îīυ3σ2á―ąÏ„Ï‰. Îīυ3Ïē2Ύτω. Îīυ3Ïē2á―ąÏ„Ï‰. Îīύ3σ2ÎąÏ„ÎŋÎ―. Îīá―ŧ3σ2ÎąÏ„ÎŋÎ―. Îīύ3Ïē2ÎąÏ„ÎŋÎ―. Îīá―ŧ3Ïē2ÎąÏ„ÎŋÎ―. Îīυ3σ2ÎŽÏ„Ï‰Î―. Îīυ3σ2á―ąÏ„Ï‰Î―. Îīυ3Ïē2ÎŽÏ„Ï‰Î―. Îīυ3Ïē2á―ąÏ„Ï‰Î―. Îīύ3σ2ÎąÏ„Îĩ. Îīá―ŧ3σ2ÎąÏ„Îĩ. Îīύ3Ïē2ÎąÏ„Îĩ. Îīá―ŧ3Ïē2ÎąÏ„Îĩ. Îīυ3σ2ÎŽÎ―Ï„Ï‰Î―. Îīυ3σ2á―ąÎ―Ï„Ï‰Î―. Îīυ3Ïē2ÎŽÎ―Ï„Ï‰Î―. Îīυ3Ïē2á―ąÎ―Ï„Ï‰Î―. Îīύ3σ2ÎąÏ‚. Îīá―ŧ3σ2ÎąÏ‚. Îīύ3Ïē2ÎąÏē. Îīá―ŧ3Ïē2ÎąÏē. Îīύ3σ2ÎąÎ―. Îīá―ŧ3σ2ÎąÎ―. Îīύ3Ïē2ÎąÎ―. Îīá―ŧ3Ïē2ÎąÎ―. Îīύ3σ2ÎąÎ―Ï„ Îīá―ŧ3σ2ÎąÎ―Ï„ Îīύ3Ïē2ÎąÎ―Ï„ Îīá―ŧ3Ïē2ÎąÎ―Ï„ Îīυ3σ2ÎŽÎ―Ï„ Îīυ3σ2á―ąÎ―Ï„ Îīυ3Ïē2ÎŽÎ―Ï„ Îīυ3Ïē2á―ąÎ―Ï„ Îīύ3σ2ÎąÏƒ Îīá―ŧ3σ2ÎąÏƒ Îīύ3Ïē2ÎąÏē Îīá―ŧ3Ïē2ÎąÏē Îīυ3σ2Ύσ Îīυ3σ2á―ąÏƒ Îīυ3Ïē2ÎŽÏē Îīυ3Ïē2á―ąÏē Îīύ3σ2ÎŋΞιÎđ. Îīá―ŧ3σ2ÎŋΞιÎđ. Îīύ3Ïē2ÎŋΞιÎđ. Îīá―ŧ3Ïē2ÎŋΞιÎđ. .Îīύ3σ2Îĩσ .Îīá―ŧ3σ2Îĩσ .Îīύ3Ïē2ÎĩÏē .Îīá―ŧ3Ïē2ÎĩÏē Îīυ3σ2όΞÎĩÎļÎą. Îīυ3σ2á―đΞÎĩÎļÎą. Îīυ3Ïē2όΞÎĩÎļÎą. Îīυ3Ïē2á―đΞÎĩÎļÎą. Îīύ3σ2ÎŋÎ―Ï„ÎąÎđ. Îīá―ŧ3σ2ÎŋÎ―Ï„ÎąÎđ. Îīύ3Ïē2ÎŋÎ―Ï„ÎąÎđ. Îīá―ŧ3Ïē2ÎŋÎ―Ï„ÎąÎđ. Îīυ3σ2ÎŋÎŊÎžÎ·Î―. Îīυ3σ2Îŋá―·ÎžÎ·Î―. Îīυ3Ïē2ÎŋÎŊÎžÎ·Î―. Îīυ3Ïē2Îŋá―·ÎžÎ·Î―. Îīύ3σ2ÎŋÎđÎŋ. Îīá―ŧ3σ2ÎŋÎđÎŋ. Îīύ3Ïē2ÎŋÎđÎŋ. Îīá―ŧ3Ïē2ÎŋÎđÎŋ. Îīύ3σ2ÎŋÎđτÎŋ. Îīá―ŧ3σ2ÎŋÎđτÎŋ. Îīύ3Ïē2ÎŋÎđτÎŋ. Îīá―ŧ3Ïē2ÎŋÎđτÎŋ. Îīύ3σ2ÎŋÎđσÎļÎŋÎ―. Îīá―ŧ3σ2ÎŋÎđσÎļÎŋÎ―. Îīύ3Ïē2ÎŋÎđÏēÎļÎŋÎ―. Îīá―ŧ3Ïē2ÎŋÎđÏēÎļÎŋÎ―. Îīυ3σ2ÎŋÎŊσÎļÎ·Î―. Îīυ3σ2Îŋá―·ÏƒÎļÎ·Î―. Îīυ3Ïē2ÎŋÎŊÏēÎļÎ·Î―. Îīυ3Ïē2Îŋá―·ÏēÎļÎ·Î―. Îīυ3σ2ÎŋÎŊΞÎĩÎļÎą. Îīυ3σ2Îŋá―·ÎžÎĩÎļÎą. Îīυ3Ïē2ÎŋÎŊΞÎĩÎļÎą. Îīυ3Ïē2Îŋá―·ÎžÎĩÎļÎą. Îīύ3σ2ÎŋÎđσÎļÎĩ. Îīá―ŧ3σ2ÎŋÎđσÎļÎĩ. Îīύ3Ïē2ÎŋÎđÏēÎļÎĩ. Îīá―ŧ3Ïē2ÎŋÎđÏēÎļÎĩ. Îīύ3σ2ÎŋÎđÎ―Ï„Îŋ. Îīá―ŧ3σ2ÎŋÎđÎ―Ï„Îŋ. Îīύ3Ïē2ÎŋÎđÎ―Ï„Îŋ. Îīá―ŧ3Ïē2ÎŋÎđÎ―Ï„Îŋ. Îīύ3σ2ÎĩσÎļÎąÎđ. Îīá―ŧ3σ2ÎĩσÎļÎąÎđ. Îīύ3Ïē2ÎĩÏēÎļÎąÎđ. Îīá―ŧ3Ïē2ÎĩÏēÎļÎąÎđ. .Îīυ3σ2όΞÎĩÎ― .Îīυ3σ2á―đΞÎĩÎ― .Îīυ3Ïē2όΞÎĩÎ― .Îīυ3Ïē2á―đΞÎĩÎ― .Îīυ3σ2ÎŋÎžÎ­Î― .Îīυ3σ2ÎŋΞá―ģÎ― .Îīυ3Ïē2ÎŋÎžÎ­Î― .Îīυ3Ïē2ÎŋΞá―ģÎ― Îīύ3σ2Ï‰ÎžÎąÎđ. Îīá―ŧ3σ2Ï‰ÎžÎąÎđ. Îīύ3Ïē2Ï‰ÎžÎąÎđ. Îīá―ŧ3Ïē2Ï‰ÎžÎąÎđ. Îīύ3σ2Î·Ï„ÎąÎđ. Îīá―ŧ3σ2Î·Ï„ÎąÎđ. Îīύ3Ïē2Î·Ï„ÎąÎđ. Îīá―ŧ3Ïē2Î·Ï„ÎąÎđ. Îīυ3σ2ώΞÎĩÎļÎą Îīυ3σ2á――ÎžÎĩÎļÎą Îīυ3Ïē2ώΞÎĩÎļÎą Îīυ3Ïē2á――ÎžÎĩÎļÎą Îīύ3σ2ησÎļÎĩ. Îīá―ŧ3σ2ησÎļÎĩ. Îīύ3Ïē2ηÏēÎļÎĩ. Îīá―ŧ3Ïē2ηÏēÎļÎĩ. Îīυ3σ2ÎąÎŊÎžÎ·Î―. Îīυ3σ2Îąá―·ÎžÎ·Î―. Îīυ3Ïē2ÎąÎŊÎžÎ·Î―. Îīυ3Ïē2Îąá―·ÎžÎ·Î―. Îīύ3σ2ÎąÎđÎŋ. Îīá―ŧ3σ2ÎąÎđÎŋ. Îīύ3Ïē2ÎąÎđÎŋ. Îīá―ŧ3Ïē2ÎąÎđÎŋ. Îīύ3σ2ÎąÎđτÎŋ. Îīá―ŧ3σ2ÎąÎđτÎŋ. Îīύ3Ïē2ÎąÎđτÎŋ. Îīá―ŧ3Ïē2ÎąÎđτÎŋ. Îīύ3σ2ÎąÎđσÎļÎŋÎ―. Îīá―ŧ3σ2ÎąÎđσÎļÎŋÎ―. Îīύ3Ïē2ÎąÎđÏēÎļÎŋÎ―. Îīá―ŧ3Ïē2ÎąÎđÏēÎļÎŋÎ―. Îīυ3σ2ÎąÎŊσÎļÎ·Î―. Îīυ3σ2Îąá―·ÏƒÎļÎ·Î―. Îīυ3Ïē2ÎąÎŊÏēÎļÎ·Î―. Îīυ3Ïē2Îąá―·ÏēÎļÎ·Î―. Îīυ3σ2ÎąÎŊΞÎĩÎļÎą. Îīυ3σ2Îąá―·ÎžÎĩÎļÎą. Îīυ3Ïē2ÎąÎŊΞÎĩÎļÎą. Îīυ3Ïē2Îąá―·ÎžÎĩÎļÎą. Îīύ3σ2ÎąÎđσÎļÎąÎđ. Îīá―ŧ3σ2ÎąÎđσÎļÎąÎđ. Îīύ3Ïē2ÎąÎđÏēÎļÎąÎđ. Îīá―ŧ3Ïē2ÎąÎđÏēÎļÎąÎđ. Îīύ3σ2ÎąÎđÎ―Ï„Îŋ. Îīá―ŧ3σ2ÎąÎđÎ―Ï„Îŋ. Îīύ3Ïē2ÎąÎđÎ―Ï„Îŋ. Îīá―ŧ3Ïē2ÎąÎđÎ―Ï„Îŋ. Îīυ3σ2ΎσÎļω. Îīυ3σ2á―ąÏƒÎļω. Îīυ3Ïē2ÎŽÏēÎļω. Îīυ3Ïē2á―ąÏēÎļω. Îīύ3σ2ÎąÏƒÎļÎŋÎ―. Îīá―ŧ3σ2ÎąÏƒÎļÎŋÎ―. Îīύ3Ïē2ÎąÏēÎļÎŋÎ―. Îīá―ŧ3Ïē2ÎąÏēÎļÎŋÎ―. Îīυ3σ2ΎσÎļÏ‰Î―. Îīυ3σ2á―ąÏƒÎļÏ‰Î―. Îīυ3Ïē2ÎŽÏēÎļÏ‰Î―. Îīυ3Ïē2á―ąÏēÎļÏ‰Î―. Îīύ3σ2ÎąÏƒÎļÎĩ. Îīá―ŧ3σ2ÎąÏƒÎļÎĩ. Îīύ3Ïē2ÎąÏēÎļÎĩ. Îīá―ŧ3Ïē2ÎąÏēÎļÎĩ. Îīύ3σ2ÎąÏƒÎļÎąÎđ. Îīá―ŧ3σ2ÎąÏƒÎļÎąÎđ. Îīύ3Ïē2ÎąÏēÎļÎąÎđ. Îīá―ŧ3Ïē2ÎąÏēÎļÎąÎđ. Îīυ3σ2ΎΞÎĩÎ― Îīυ3σ2á―ąÎžÎĩÎ― Îīυ3Ïē2ΎΞÎĩÎ― Îīυ3Ïē2á―ąÎžÎĩÎ― Îīυσ3σ2ÎąÎžÎ­Î― Îīυσ3σ2ιΞá―ģÎ― ÎīυÏē3Ïē2ÎąÎžÎ­Î― ÎīυÏē3Ïē2ιΞá―ģÎ― Îīύ3σ2ÎąÏ„Îŋ. Îīá―ŧ3σ2ÎąÏ„Îŋ. Îīύ3Ïē2ÎąÏ„Îŋ. Îīá―ŧ3Ïē2ÎąÏ„Îŋ. Îīύ3σ2ÎĩτÎŋ. Îīá―ŧ3σ2ÎĩτÎŋ. Îīύ3Ïē2ÎĩτÎŋ. Îīá―ŧ3Ïē2ÎĩτÎŋ. Îīύ3σ2ÎąÎ―Ï„Îŋ. Îīá―ŧ3σ2ÎąÎ―Ï„Îŋ. Îīύ3Ïē2ÎąÎ―Ï„Îŋ. Îīá―ŧ3Ïē2ÎąÎ―Ï„Îŋ. Îīύ3σ2ÎĩÎŋ. Îīá―ŧ3σ2ÎĩÎŋ. Îīύ3Ïē2ÎĩÎŋ. Îīá―ŧ3Ïē2ÎĩÎŋ. .ÎīυσÎĩÎŊ2σ1Îē .ÎīυσÎĩá―·2σ1Îē .ÎīυÏēÎĩÎŊ2Ïē1Îē .ÎīυÏēÎĩá―·2Ïē1Îē .ÎīυσÎĩÎđ2σ1Îē .ÎīυÏēÎĩÎđ2Ïē1Îē .Îīυσέ2Κ1 .Îīυσá―ģ2Κ1 .ÎīυÏēέ2Κ1 .ÎīυÏēá―ģ2Κ1 .ÎīυσÎĩ2Κ1 .ÎīυÏēÎĩ2Κ1 .Îīυσέ2Îū1 .Îīυσá―ģ2Îū1 .ÎīυÏēέ2Îū1 .ÎīυÏēá―ģ2Îū1 .ÎīυσÎĩ2Îū1 .ÎīυÏēÎĩ2Îū1 .Îīυ3σ2ÎđÎļ .Îīυ3Ïē2ÎđÎļ Îīύ3σ2Îđς. Îīá―ŧ3σ2Îđς. Îīύ3Ïē2ÎđÏē. Îīá―ŧ3Ïē2ÎđÏē. Îīύ3σ2Îđσ. Îīá―ŧ3σ2Îđσ. Îīύ3σ2Îĩω Îīá―ŧ3σ2Îĩω Îīύ3Ïē2Îĩω Îīá―ŧ3Ïē2Îĩω Îīύ3σ2ÎđÎ―. Îīá―ŧ3σ2ÎđÎ―. Îīύ3Ïē2ÎđÎ―. Îīá―ŧ3Ïē2ÎđÎ―. Îīύ3σ2Îđ. Îīá―ŧ3σ2Îđ. Îīύ3Ïē2Îđ. Îīá―ŧ3Ïē2Îđ. Îīυ3σ2έÎŋÎđÎ―. Îīυ3σ2á―ģÎŋÎđÎ―. Îīυ3Ïē2έÎŋÎđÎ―. Îīυ3Ïē2á―ģÎŋÎđÎ―. Îīύ3σ2ÎĩσÎđ. Îīá―ŧ3σ2ÎĩσÎđ. Îīύ3Ïē2ÎĩÏēÎđ. Îīá―ŧ3Ïē2ÎĩÏēÎđ. Îīύ3σ2ÎĩσÎđÎ―. Îīá―ŧ3σ2ÎĩσÎđÎ―. Îīύ3Ïē2ÎĩÏēÎđÎ―. Îīá―ŧ3Ïē2ÎĩÏēÎđÎ―. .Îīύ3σ2ΚÎĩ .Îīá―ŧ3σ2ΚÎĩ .Îīύ3Ïē2ΚÎĩ .Îīá―ŧ3Ïē2ΚÎĩ .Îīυ3σ2ΞÎŪ. .Îīυ3σ2Ξá―ĩ. .Îīυ3Ïē2ΞÎŪ. .Îīυ3Ïē2Ξá―ĩ. .Îīυ3σ2Ξá―ī. .Îīυ3Ïē2Ξá―ī. .Îīυ3σ2Ξáŋ†Ï‚. .Îīυ3Ïē2Ξáŋ†Ïē. .Îīυ3σ2Ξáŋ†Ïƒ. .Îīυ3σ2Ξáŋ‡ .Îīυ3Ïē2Ξáŋ‡ .Îīυ3σ2Ξáŋ†. .Îīυ3Ïē2Ξáŋ†. .Îīυ3σ2Ξáūķ .Îīυ3Ïē2Ξáūķ .Îīυ3σ2Ξι .Îīυ3Ïē2Ξι .Îīυ3σ2Ξáŋķ .Îīυ3Ïē2Ξáŋķ .ÎīυσÎūύ2Î―1 .ÎīυσÎūá―ŧ2Î―1 .ÎīυÏēÎūύ2Î―1 .ÎīυÏēÎūá―ŧ2Î―1 .ÎīυσÎūυ2Î―1 .ÎīυÏēÎūυ2Î―1 .Îīύ3σ2Ï„ÎąÎ― .Îīá―ŧ3σ2Ï„ÎąÎ― .Îīύ3Ïē2Ï„ÎąÎ― .Îīá―ŧ3Ïē2Ï„ÎąÎ― .Îīυ3σ2Ï„ÎŽÎ― .Îīυ3σ2Ï„á―ąÎ― .Îīυ3Ïē2Ï„ÎŽÎ― .Îīυ3Ïē2Ï„á―ąÎ― .Îīυ3σ2Ï„Î·Î― .Îīυ3Ïē2Ï„Î·Î― .Îīυ3σ2τÎŪÎ― .Îīυ3σ2τá―ĩÎ― .Îīυ3Ïē2τÎŪÎ― .Îīυ3Ïē2τá―ĩÎ― ថÎīυ2σ1τ ថÎīυ2Ïē1τ Îĩáž°2Î―1όÎī Îĩáž°2Î―1á―đÎī Îĩáž°2Î―1ÎŋÎī Îĩáž°2σ1 Îĩáž°2Ïē1 Îĩážī2σ1 Îĩážī2Ïē1 Îĩáž°3σ2ÎŊ. Îĩáž°3σ2á―·. Îĩáž°3Ïē2ÎŊ. Îĩáž°3Ïē2á―·. Îĩáž°3σ2á―ķ. Îĩáž°3Ïē2á―ķ. Îĩáž°3σ2Îđ. Îĩáž°3Ïē2Îđ. Îĩáž°3σ2ÎŊÎ―. Îĩáž°3σ2á―·Î―. Îĩáž°3Ïē2ÎŊÎ―. Îĩáž°3Ïē2á―·Î―. Îĩáž°3σ2á―ķÎ―. Îĩáž°3Ïē2á―ķÎ―. Îĩáž°3σ2ÎđÎ―. Îĩáž°3Ïē2ÎđÎ―. Îĩážī3σ2ÎŋΞ Îĩážī3Ïē2ÎŋΞ Îĩážī3σ2áŋƒ. Îĩážī3Ïē2áŋƒ. ÎĩážīσÎĩÎđ. ÎĩážīÏēÎĩÎđ. Îĩážī3σ2ÎĩÏ„ÎąÎđ. Îĩážī3Ïē2ÎĩÏ„ÎąÎđ. Îĩážī3σ2ÎĩσÎļÎŋÎ―. Îĩážī3Ïē2ÎĩÏēÎļÎŋÎ―. Îĩáž°3σ2όΞ Îĩáž°3σ2á―đΞ Îĩáž°3Ïē2όΞ Îĩáž°3Ïē2á―đΞ Îĩážī3σ2ÎĩσÎļÎĩ. Îĩážī3Ïē2ÎĩÏēÎļÎĩ. Îĩážī3σ2ÎŋÎ―Ï„ÎąÎđ Îĩážī3Ïē2ÎŋÎ―Ï„ÎąÎđ Îĩáž°3σ2ÎŋÎŊÎžÎ·Î― Îĩáž°3σ2Îŋá―·ÎžÎ·Î― Îĩáž°3Ïē2ÎŋÎŊÎžÎ·Î― Îĩáž°3Ïē2Îŋá―·ÎžÎ·Î― Îĩážī3σ2ÎŋÎđÎŋ Îĩážī3Ïē2ÎŋÎđÎŋ Îĩážī3σ2ÎŋÎđτÎŋ Îĩážī3Ïē2ÎŋÎđτÎŋ Îĩážī3σ2ÎŋÎđσÎļÎŋÎ― Îĩážī3Ïē2ÎŋÎđÏēÎļÎŋÎ― Îĩáž°3σ2ÎŋÎŊσÎļÎ·Î― Îĩáž°3σ2Îŋá―·ÏƒÎļÎ·Î― Îĩáž°3Ïē2ÎŋÎŊÏēÎļÎ·Î― Îĩáž°3Ïē2Îŋá―·ÏēÎļÎ·Î― Îĩáž°3σ2ÎŋÎŊΞÎĩÎļÎą Îĩáž°3σ2Îŋá―·ÎžÎĩÎļÎą Îĩáž°3Ïē2ÎŋÎŊΞÎĩÎļÎą Îĩáž°3Ïē2Îŋá―·ÎžÎĩÎļÎą Îĩážī3σ2ÎŋÎđσÎļÎĩ Îĩážī3Ïē2ÎŋÎđÏēÎļÎĩ Îĩážī3σ2ÎŋÎđÎ―Ï„Îŋ Îĩážī3Ïē2ÎŋÎđÎ―Ï„Îŋ Îĩážī3σ2ÎĩσÎļÎąÎđ Îĩážī3Ïē2ÎĩÏēÎļÎąÎđ Îĩáž°3σ2όΞÎĩÎ― Îĩáž°3σ2á―đΞÎĩÎ― Îĩáž°3Ïē2όΞÎĩÎ― Îĩáž°3Ïē2á―đΞÎĩÎ― Îĩáž°3σ2ÎŋÎžÎ­Î― Îĩáž°3σ2ÎŋΞá―ģÎ― Îĩáž°3Ïē2ÎŋÎžÎ­Î― Îĩáž°3Ïē2ÎŋΞá―ģÎ― Îĩážī3σ2ÎŽÎžÎ·Î―. Îĩážī3σ2á―ąÎžÎ·Î―. Îĩážī3Ïē2ÎŽÎžÎ·Î―. Îĩážī3Ïē2á―ąÎžÎ·Î―. Îĩážī3σ2ω Îĩážī3Ïē2ω Îĩážī3σ2ÎąÏ„Îŋ Îĩážī3Ïē2ÎąÏ„Îŋ Îĩážī3σ2ÎąÏƒÎļÎŋÎ― Îĩážī3Ïē2ÎąÏēÎļÎŋÎ― Îĩáž°3σ2ΎσÎļÎ·Î― Îĩáž°3σ2á―ąÏƒÎļÎ·Î― Îĩáž°3Ïē2ÎŽÏēÎļÎ·Î― Îĩáž°3Ïē2á―ąÏēÎļÎ·Î― Îĩáž°3σ2ΎΞÎĩÎļÎą Îĩáž°3σ2á―ąÎžÎĩÎļÎą Îĩáž°3Ïē2ΎΞÎĩÎļÎą Îĩáž°3Ïē2á―ąÎžÎĩÎļÎą Îĩážī3σ2ÎąÏƒÎļÎĩ Îĩážī3Ïē2ÎąÏēÎļÎĩ Îĩážī3σ2ÎąÎ―Ï„Îŋ Îĩážī3Ïē2ÎąÎ―Ï„Îŋ Îĩážī3σ2Ï‰ÎžÎąÎđ Îĩážī3Ïē2Ï‰ÎžÎąÎđ Îĩážī3σ2ησÎļÎŋÎ― Îĩážī3Ïē2ηÏēÎļÎŋÎ― Îĩáž°3σ2ώΞÎĩÎļÎą Îĩáž°3σ2á――ÎžÎĩÎļÎą Îĩáž°3Ïē2ώΞÎĩÎļÎą Îĩáž°3Ïē2á――ÎžÎĩÎļÎą Îĩážī3σ2ησÎļÎĩ Îĩážī3Ïē2ηÏēÎļÎĩ Îĩážī3σ2Ï‰Î―Ï„ÎąÎđ Îĩážī3Ïē2Ï‰Î―Ï„ÎąÎđ Îĩáž°3σ2ÎąÎŊÎžÎ·Î― Îĩáž°3σ2Îąá―·ÎžÎ·Î― Îĩáž°3Ïē2ÎąÎŊÎžÎ·Î― Îĩáž°3Ïē2Îąá―·ÎžÎ·Î― Îĩážī3σ2ÎąÎđÎŋ Îĩážī3Ïē2ÎąÎđÎŋ Îĩážī3σ2ÎąÎđτÎŋ Îĩážī3Ïē2ÎąÎđτÎŋ Îĩážī3σ2ÎąÎđσÎļÎŋÎ― Îĩážī3Ïē2ÎąÎđÏēÎļÎŋÎ― Îĩážī3σ2ÎąÎŊσÎļÎ·Î― Îĩážī3σ2Îąá―·ÏƒÎļÎ·Î― Îĩážī3Ïē2ÎąÎŊÏēÎļÎ·Î― Îĩážī3Ïē2Îąá―·ÏēÎļÎ·Î― Îĩáž°3σ2ÎąÎŊΞÎĩÎļÎą Îĩáž°3σ2Îąá―·ÎžÎĩÎļÎą Îĩáž°3Ïē2ÎąÎŊΞÎĩÎļÎą Îĩáž°3Ïē2Îąá―·ÎžÎĩÎļÎą Îĩážī3σ2ÎąÎđσÎļÎĩ Îĩážī3Ïē2ÎąÎđÏēÎļÎĩ Îĩážī3σ2ÎąÎđÎ―Ï„Îŋ Îĩážī3Ïē2ÎąÎđÎ―Ï„Îŋ Îĩáž°3σ2ΎσÎļω Îĩáž°3σ2á―ąÏƒÎļω Îĩáž°3Ïē2ÎŽÏēÎļω Îĩáž°3Ïē2á―ąÏēÎļω Îĩáž°3σ2ΎσÎļÏ‰Î― Îĩáž°3σ2á―ąÏƒÎļÏ‰Î― Îĩáž°3Ïē2ÎŽÏēÎļÏ‰Î― Îĩáž°3Ïē2á―ąÏēÎļÏ‰Î― Îĩážī3σ2ÎąÏƒÎļÎąÎđ Îĩážī3Ïē2ÎąÏēÎļÎąÎđ Îĩáž°3σ2ΎΞÎĩÎ― Îĩáž°3σ2á―ąÎžÎĩÎ― Îĩáž°3Ïē2ΎΞÎĩÎ― Îĩáž°3Ïē2á―ąÎžÎĩÎ― Îĩáž°3σ2ÎąÎžÎ­Î― Îĩáž°3σ2ιΞá―ģÎ― Îĩáž°3Ïē2ÎąÎžÎ­Î― Îĩáž°3Ïē2ιΞá―ģÎ― ថ2Κ1Îŧ ថ3Κ2ÎŧÎŪÎļη ថ3Κ2Îŧá―ĩÎļη ថ3Κ2ÎŧÎŽÎķ ថ3Κ2Îŧá―ąÎķ ថ3Κ2ÎŧÎŽÎģ ថ3Κ2Îŧá―ąÎģ ថ3Κ2ÎŧÎŽÎŋ ថ3Κ2Îŧá―ąÎŋ ថ3Κ2ÎŧΎσ ថ3Κ2Îŧá―ąÏƒ ថ3Κ2ÎŧÎŽÏē ថ3Κ2Îŧá―ąÏē ថ3Κ2ÎŧÎąÎŊ ថ3Κ2ÎŧÎąá―· ថ3Κ2ÎŧÎąÏ ថ3Κ2ÎŧÎąá―ŧ ថ3Κ2ÎŧÎĩÎŊ ថ3Κ2ÎŧÎĩá―· ថ4Κ3ÎŧÎĩÎŊπ ថ4Κ3ÎŧÎĩá―·Ï€ ថ4Κ3ÎŧÎĩÎŊψ ថ4Κ3ÎŧÎĩá―·Ïˆ ថ3Κ2Îŧáŋ„ ថ3Κ2ΚÎŧέπ ថ3Κ2ΚÎŧá―ģπ ថ3Κ2ΚÎŧέψ ថ3Κ2ΚÎŧá―ģψ ថ3Κ2ÎŧÎŽÏ€ ថ3Κ2Îŧá―ąÏ€ ថ3Κ2ÎŧÎąÏ€ ថ4Κ3ÎŧΎπτ ថ4Κ3Îŧá―ąÏ€Ï„ ថ4Κ3ÎŧÎąÏ€Ï„ ថ3Κ2Îŧέφ ថ3Κ2Îŧá―ģφ ថ3Κ2ÎŧÎĩφ ថ3Κ2ÎŧÎŪρ ថ3Κ2Îŧá―ĩρ ថ3Κ2Îŧηρ ថ3Κ2ÎŧÎŊÎ― ថ3Κ2Îŧá―·Î― ថ3Κ2ÎŧÎđÎ― ថ3Κ2Îŧύ ថ3Κ2Îŧá―ŧ ថ4Κ3ÎŧύσÎĩω ថ4Κ3Îŧá―ŧσÎĩω ថ4Κ3ÎŧύÏēÎĩω ថ4Κ3Îŧá―ŧÏēÎĩω ថ4Κ3ÎŧύσÎĩÎđ ថ4Κ3Îŧá―ŧσÎĩÎđ ថ4Κ3ÎŧύÏēÎĩÎđ ថ4Κ3Îŧá―ŧÏēÎĩÎđ ថ4Κ3ÎŧύσÎĩÎŋÎđ ថ4Κ3Îŧá―ŧσÎĩÎŋÎđ ថ4Κ3ÎŧύÏēÎĩÎŋÎđ ថ4Κ3Îŧá―ŧÏēÎĩÎŋÎđ ថ4Κ3ÎŧύσÎĩσÎđ ថ4Κ3Îŧá―ŧσÎĩσÎđ ថ4Κ3ÎŧύÏēÎĩÏēÎđ ថ4Κ3Îŧá―ŧÏēÎĩÏēÎđ ថ3Κ2ÎŧόΞ ថ3Κ2Îŧá―đΞ ថ3Κ2ΚÎŧώσ ថ3Κ2ΚÎŧá――Ïƒ ថ3Κ2ΚÎŧώÏē ថ3Κ2ΚÎŧá――Ïē ᾔ2Κ1ÎŧÎĩÎđ ᾔ3Κ2ÎŧÎĩÎđσ ᾔ3Κ2ÎŧÎĩÎđÏē ᾔ2Κ1Îŧυσ ᾔ2Κ1ÎŧυÏē ថ2Κ1Ξ ᾔ2Κ1Ξ ថ2Κ1Î― ᾔ2Κ1Î― ᾔ3Κ2Î―ÎąÎđ ថ3Κ2Î―ÎąÎŊ ថ3Κ2Î―Îąá―· ᾔ3Κ2Î―Î·Ïƒ ᾔ3Κ2Î―Î·Ïē ថ3Κ2Î―ÎŪσ ថ3Κ2Î―á―ĩσ ថ3Κ2Î―ÎŪÏē ថ3Κ2Î―á―ĩÏē ថ3Κ2Î―Ï… ថ2Κ1ρ ᾔ2Κ1ρ ថ3Κ2ρΎÎī ថ3Κ2Ïá―ąÎī ថ3Κ2ÏÎąÎī ᾔ3Κ2ÏÎąÎķ ថ3Κ2ρΎÎķ ថ3Κ2Ïá―ąÎķ ᾔ3Κ2ÏÎąÎģ ថ3Κ2ρΎÎģ ថ3Κ2Ïá―ąÎģ ថ3Κ2ρΎτ ថ3Κ2Ïá―ąÏ„ ថ3Κ2ÏÎąÏ„ ថ3Κ2ÏÎąÏÎģ ថ3Κ2ÏÎąá―ŧÎģ ថ3Κ2ÏÎąÏ…Îģ ᾔ3Κ2ÏÎąÎđ ថ3Κ2ÏÎąÎŊ ថ3Κ2ÏÎąá―· ᾔ3Κ2ÏÎąÎ― ថ3Κ2ÏÎŽÎ― ថ3Κ2Ïá―ąÎ― ថ3Κ2ρÎŪη ថ3Κ2ρá―ĩη ថ3Κ2ÏÎŽÎą ថ3Κ2Ïá―ąÎą ថ3Κ2ÏÎąÎŽ ថ3Κ2ÏÎąá―ą ថ3Κ2ρΎÎļ ថ3Κ2Ïá―ąÎļ ថ3Κ2ÏÎąÎļ ᾔ3Κ2ρÎĩΚ ថ3Κ2ρέΚ ថ3Κ2ρá―ģΚ ᾔ3Κ2ρÎĩÎū ថ3Κ2ρέÎū ថ3Κ2ρá―ģÎū ថ3Κ2ρέΞ ថ3Κ2ρá―ģΞ ថ3Κ2ρÎĩΞ ថ3Κ2ρÎŪΞ ថ3Κ2ρá―ĩΞ ថ3Κ2ρηΞ ᾔ3Κ2ρÎđÎ― ថ3Κ2ρÎŊÎ― ថ3Κ2Ïá―·Î― ថ3Κ2ρÎŊÎļ ថ3Κ2Ïá―·Îļ ថ3Κ2ρότ ថ3Κ2ρá―đτ ថ3Κ2ρÎŋτ ᾔ3Κ2ρÎŋυ ថ3Κ2ρÎŋύ ថ3Κ2ρÎŋá―ŧ ᾔ3Κ2ρυπ ថ3Κ2ρύπ ថ3Κ2ρá―ŧπ ᾔ3Κ2ρυψ ថ3Κ2ρύψ ថ3Κ2ρá―ŧψ ថ3Κ2ρύÎē ថ3Κ2ρá―ŧÎē ថ3Κ2ρύφ ថ3Κ2ρá―ŧφ ថ3Κ2ρυσ ថ3Κ2ρυÏē ᾔ3Κ2ρωÎķ ថ3Κ2ρώÎķ ថ3Κ2Ïá――Îķ ᾔ3Κ2ρωÎū ថ3Κ2ρώÎū ថ3Κ2Ïá――Îū ថ2Κ1Ï„ÎąÎļ ᾔ2Κ1Ï„ÎąÎžÎĩ. ថ2Κ1Ï„ÎŽÎžÎ― ថ2Κ1Ï„á―ąÎžÎ― ថ2Κ1Ï„ÎąÎ― ថ2Κ1Ï„ÎąÏ ថ2Κ1τΎσ ថ2Κ1Ï„á―ąÏƒ ថ2Κ1Ï„ÎŽÏē ថ2Κ1Ï„á―ąÏē ថ2Κ1τÎĩ ថ2Κ1τέ ថ2Κ1τá―ģ ថ3Κ2τÎĩÎŊÎ― ថ3Κ2τÎĩá―·Î― ថ2Κ1τÎŪΚ ថ2Κ1τá―ĩΚ ថ2Κ1τÎđ ᾔ2Κ1τÎđ ថ2Κ1τÎŊ ថ2Κ1Ï„á―· ᾔ3Κ2τÎđÎķ ថ3Κ2τÎŊÎķ ថ3Κ2Ï„á―·Îķ ᾔ3Κ2τÎđÏƒÎą ᾔ3Κ2τÎđÏēÎą ថ3Κ2τÎŊÏƒÎą ថ3Κ2Ï„á―·ÏƒÎą ថ3Κ2τÎŊÏēÎą ថ3Κ2Ï„á―·ÏēÎą ថ2Κ1τό ថ2Κ1τá―đ ថ2Κ1τÎŋ ᾔ2Κ1τÎŋ ថ3Κ2τός. ថ3Κ2τá―đς. ថ3Κ2τόÏē. ថ3Κ2τá―đÏē. ថ3Κ2τá―ļς. ថ3Κ2τá―ļÏē. ថ3Κ2τόσ. ថ3Κ2τá―đσ. ថ3Κ2τá―ļσ. ថ2Κ1τρ ᾔ2Κ1τυπÎŋ ថ2Κ1τύπÎŋυ. ថ2Κ1τá―ŧπÎŋυ. ថ2Κ1τύπáŋģ. ថ2Κ1τá―ŧπáŋģ. ᾔ2Κ1τυπÎĩ. ថ2Κ1τύπω. ថ2Κ1τá―ŧπω. ថ2ΚτύπÎŋÎđ. ថ2Κτá―ŧπÎŋÎđ. ថ2Κ1Ï„ÏÏ€Ï‰Î―. ថ2Κ1τá―ŧÏ€Ï‰Î―. ថ2Κ1τύπÎŋÎđς. ថ2Κ1τá―ŧπÎŋÎđς. ថ2Κ1τύπÎŋÎđÏē. ថ2Κ1τá―ŧπÎŋÎđÏē. ថ2Κ1τύπÎŋÎđσ. ថ2Κ1τá―ŧπÎŋÎđσ. ថ2Κ1τύπÎŋυς. ថ2Κ1τá―ŧπÎŋυς. ថ2Κ1τύπÎŋυÏē. ថ2Κ1τá―ŧπÎŋυÏē. ថ2Κ1τύπÎŋυσ. ថ2Κ1τá―ŧπÎŋυσ. ᾔ2Κ1Ï„Ï…Ï€Îą. ថ2Κ1τυ ᾑÎŧÎŧÎŪ2σ1π ᾑÎŧÎŧá―ĩ2σ1π ᾑÎŧÎŧÎŪ2Ïē1π ᾑÎŧÎŧá―ĩ2Ïē1π ᾑÎŧÎŧη2σ1π ᾑÎŧÎŧη2Ïē1π ថ2Î―1 ᾔ2Î―1 ថ3Î―2ΎΚÎđς ថ3Î―2á―ąÎšÎđς ថ3Î―2ΎΚÎđÏē ថ3Î―2á―ąÎšÎđÏē ថ3Î―2ιΚÎđσ ថ3Î―2ιΚÎđÏē ថ3Î―2ÎąÎšÏŒÏƒ ថ3Î―2ιΚá―đσ ថ3Î―2ÎąÎšÏŒÏē ថ3Î―2ιΚá―đÏē ថ3Î―2ιΚÎŋσ ថ3Î―2ιΚÎŋÏē ᾔ3Î―2ÎąÏÎą. ថ3Î―2ÎŽÏÏ‰Î―. ថ3Î―2á―ąÏÏ‰Î―. ថ3Î―2ΎρÎŋÎđς. ថ3Î―2á―ąÏÎŋÎđς. ថ3Î―2ΎρÎŋÎđÏē. ថ3Î―2á―ąÏÎŋÎđÏē. ថ3Î―2ΎρÎŋÎđσ. ថ3Î―2á―ąÏÎŋÎđσ. ថ3Î―2ÎąÏÎ·Ï† ថ4Î―3ÎąÏÎąÏ ថ3Î―2ΎρÎĩÎĩ ថ3Î―2á―ąÏÎĩÎĩ ថ3Î―2ÎąÏÎ­Ï‰ ថ3Î―2ÎąÏá―ģω ថ3Î―2ÎąÏÎ­Îą ថ3Î―2ÎąÏá―ģÎą ថ3Î―2ÎąÏÎĩÎŽ ថ3Î―2ÎąÏÎĩá―ą ថ3Î―2ΎρÎđÎĩ ថ3Î―2á―ąÏÎđÎĩ ថ3Î―2ÎąÏÎŊω ថ3Î―2ÎąÏá―·Ï‰ ថ3Î―2ÎąÏÎŊÎą ថ3Î―2ÎąÏá―·Îą ថ3Î―2ÎąÏÎđÎŽ ថ3Î―2ÎąÏÎđá―ą ᾔ3Î―2ÎąÏƒÏƒ ᾔ3Î―2ÎąÏēÏē ថ3Î―2Ύσσ ថ3Î―2á―ąÏƒÏƒ ថ3Î―2ÎŽÏēÏē ថ3Î―2á―ąÏēÏē ថ3Î―2ΎσÎļ ថ3Î―2á―ąÏƒÎļ ថ3Î―2ÎŽÏēÎļ ថ3Î―2á―ąÏēÎļ ថ3Î―2ÎąÏƒÎļ ថ3Î―2ÎąÏēÎļ ᾔ3Î―2ÎąÏ„ ថ3Î―2ÎŽÏ„ ថ3Î―2á―ąÏ„ ážÎ―Îīυ2σ1τ ážÎ―Îīυ2Ïē1τ ថ3Î―2έÎģΚ ថ3Î―2á―ģÎģΚ ថ3Î―2ÎĩÎģΚ ᾔ3Î―2ÎĩÎđΚ ថ3Î―2Îĩáŋ–Κ ថ3Î―2ÎĩÎđΚ ថ3Î―2ÎĩÎŊΚ ថ3Î―2Îĩá―·Îš ᾔ3Î―2ÎĩÎđΞ ថ3Î―2ÎĩÎŊΞ ថ3Î―2Îĩá―·Îž ថ3Î―2ÎĩΞέσσ ថ3Î―2ÎĩΞá―ģσσ ថ3Î―2ÎĩΞέÏēÏē ថ3Î―2ÎĩΞá―ģÏēÏē ថ3Î―2ÎĩΞÎŪÎļ ថ3Î―2ÎĩΞá―ĩÎļ ថ3Î―2ÎĩÎ―ÎŪ ថ3Î―2ÎĩÎ―á―ĩ ថ3Î―2Îĩό ថ3Î―2Îĩá―đ ថ3Î―2Îĩá―ļ ថ3Î―2ÎĩÎŋ ថ3Î―2Îĩáŋķ ថ3Î―2ÎĩÎŽ ថ3Î―2Îĩá―ą ថ3Î―2Îĩá―° ថ3Î―2Îĩáūķ ថ3Î―2έπÎĩÎđ ថ3Î―2á―ģπÎĩÎđ ᾔ3Î―2ÎĩρÎļÎĩ ᾔ3Î―2Îĩυσ ᾔ3Î―2ÎĩυÏē ថ3Î―2Îĩύσ ថ3Î―2Îĩá―ŧσ ថ3Î―2ÎĩύÏē ថ3Î―2Îĩá―ŧÏē ថ3Î―2έχÎļ ថ3Î―2á―ģχÎļ ថ3Î―2ÎĩχÎļ ᾔ3Î―2ησ ᾔ3Î―2ηÏē ថ3Î―2ÎŪσ ថ3Î―2á―ĩσ ថ3Î―2ÎŪÏē ថ3Î―2á―ĩÏē ថ3Î―2ηÎŪ ថ3Î―2ηá―ĩ ថ3Î―2ηá―ī ᾔ3Î―2Î·Î―. ថ3Î―2ηÎĩÎŊ ថ3Î―2ηÎĩá―· ថ3Î―2ηÎŋ ថ3Î―2ηáŋķ ថ3Î―Î·Î­ ថ3Î―Î·á―ģ ថ3Î―2ÎŪÎ―Îŋ ថ3Î―2á―ĩÎ―Îŋ ថ3Î―2ÎŊ ថ3Î―2á―· ថ3Î―2Îđ ᾔ3Î―2Îđ ថ4Î―3ÎđÎąÏ ថ4Î―3ÎđÎąá―ŧ ថ5Î―4ÎđÎąÏÏƒ ថ5Î―4ÎđÎąá―ŧσ ថ5Î―4ÎđÎąÏÏē ថ5Î―4ÎđÎąá―ŧÏē ថ5Î―4ÎđÎąÏ…Ïƒ ថ5Î―4ÎđÎąÏ…Ïē ថ4Î―3ÎđÎīρ ថ4Î―3ÎŊÎīρ ថ4Î―3á―·Îīρ ថ4Î―3ÎŊÎķ ថ4Î―3á―·Îķ ថ4Î―3ÎŊη ថ4Î―3á―·Î· ថ4Î―3ÎđέτÎŋÎ―. ថ4Î―3Îđá―ģτÎŋÎ―. ថ4Î―3ÎŊÎĩΞÎĩÎ―. ថ4Î―3á―·ÎĩΞÎĩÎ―. ថ4Î―3ÎŊω. ថ4Î―3á―·Ï‰. ថ4Î―3Îđππ ថ4Î―3ÎŊππ ថ4Î―3á―·Ï€Ï€ ថ4Î―3ÎŊπτ ថ4Î―3á―·Ï€Ï„ ថ4Î―3ÎŊψ ថ4Î―3á―·Ïˆ ថ4Î―3ÎŊσσ ថ4Î―3á―·ÏƒÏƒ ថ4Î―3ÎŊÏēÏē ថ4Î―3á―·ÏēÏē ថ4Î―3ÎŊστ ថ4Î―3á―·ÏƒÏ„ ថ4Î―3ÎŊÏēτ ថ4Î―3á―·Ïēτ ថ4Î―3Îđστ ថ4Î―3ÎđÏēτ ថ4Î―3Îđσχ ថ4Î―3ÎđÏēχ ថ4Î―3ÎŊσχ ថ4Î―3á―·ÏƒÏ‡ ថ4Î―3ÎŊÏēχ ថ4Î―3á―·Ïēχ ᾔ3Î―2Îŋς. ᾔ3Î―2ÎŋÏē. ᾔ3Î―2Îŋσ. ᾔ3Î―2Îŋυ. ᾔ3Î―2ÎŋÎ―. ᾔ3Î―2ω ᾔ3Î―2ÎŋÎđ. ᾔ3Î―2ÎŋÎđς. ᾔ3Î―2ÎŋÎđÏē. ᾔ3Î―2ÎŋÎđσ. ᾔ3Î―2ης. ᾔ3Î―2ηÏē. ᾔ3Î―2ησ. ᾔ3Î―2áŋƒ. ᾔ3Î―2η. ᾔ3Î―2ÎŋσÎđ ᾔ3Î―2ÎŋÏēÎđ ថ3Î―2όσÎĩ ថ3Î―2á―đσÎĩ ថ3Î―2όÏēÎĩ ថ3Î―2á―đÏēÎĩ ថ3Î―2Ï…ÎŽÎŧ ថ3Î―2Ï…á―ąÎŧ ថ3Î―2Ï…ÎąÎŧ ᾔ3Î―2υÎū ថ3Î―2υÎū ថ3Î―2ύÎū ថ3Î―2á―ŧÎū ថ3Î―2ύσ ថ3Î―2á―ŧσ ថ3Î―2ύÏē ថ3Î―2á―ŧÏē ថ3Î―2υσ ថ3Î―2υÏē ថ3Î―2υώ ថ3Î―2Ï…á―― ថ3Î―2Ï…á―ž ថ3Î―2υόÎŋ ថ3Î―2υá―đÎŋ ថ3Î―2υÎŋáŋĶς ថ3Î―2υÎŋáŋĶÏē ថ2Îū1 ᾔ2Îū1 ថ3Îū2ÎŪρ ថ3Îū2á―ĩρ ថ3Îū2ηρ ថ3Îū2υ2Î―1 ថ3Îū2υρ ថ3Îū2ύρ ថ3Îū2á―ŧρ ᾔ3Îū2υσ ᾔ3Îū2υÏē ᾔ3Îū2ω. ᾑ2Îū1ÎŪρÎĩτΞ ᾑ2Îū1á―ĩρÎĩτΞ ᾑ2Îū1ηρέτΞ ᾑ2Îū1ηρá―ģτΞ ថπÎĩÎŊ2σ1 ថπÎĩá―·2σ1 ថπÎĩÎŊ2Ïē1 ថπÎĩá―·2Ïē1 ថπÎĩÎđ2σ1 ថπÎĩÎđ2Ïē1 ថπÎĩÎŊ3σ2ÎąÏ„ÎŋÎ―. ថπÎĩá―·3σ2ÎąÏ„ÎŋÎ―. ថπÎĩÎŊ3Ïē2ÎąÏ„ÎŋÎ―. ថπÎĩá―·3Ïē2ÎąÏ„ÎŋÎ―. ថπÎĩÎđ3σ2ÎŽÏ„Î·Î―. ថπÎĩÎđ3σ2á―ąÏ„Î·Î―. ថπÎĩÎđ3Ïē2ÎŽÏ„Î·Î―. ថπÎĩÎđ3Ïē2á―ąÏ„Î·Î―. ថπÎĩÎŊ3σ2ιΞÎĩÎ―. ថπÎĩá―·3σ2ιΞÎĩÎ―. ថπÎĩÎŊ3Ïē2ιΞÎĩÎ―. ថπÎĩá―·3Ïē2ιΞÎĩÎ―. ថπÎĩÎŊ3σ2ÎąÏ„Îĩ ថπÎĩá―·3σ2ÎąÏ„Îĩ ថπÎĩÎŊ3Ïē2ÎąÏ„Îĩ ថπÎĩá―·3Ïē2ÎąÏ„Îĩ ថπÎĩÎđ3σ2ÎŽÎžÎ·Î―. ថπÎĩÎđ3σ2á―ąÎžÎ·Î―. ថπÎĩÎđ3Ïē2ÎŽÎžÎ·Î―. ថπÎĩÎđ3Ïē2á―ąÎžÎ·Î―. ថπÎĩÎŊ3σ2ω. ថπÎĩá―·3σ2ω. ថπÎĩÎŊ3Ïē2ω. ថπÎĩá―·3Ïē2ω. ថπÎĩÎŊ3σ2ÎąÏ„Îŋ ថπÎĩá―·3σ2ÎąÏ„Îŋ ថπÎĩÎŊ3Ïē2ÎąÏ„Îŋ ថπÎĩá―·3Ïē2ÎąÏ„Îŋ ថπÎĩÎŊ3σ2ÎąÏƒÎļÎŋÎ―. ថπÎĩá―·3σ2ÎąÏƒÎļÎŋÎ―. ថπÎĩÎŊ3Ïē2ÎąÏēÎļÎŋÎ―. ថπÎĩá―·3Ïē2ÎąÏēÎļÎŋÎ―. ថπÎĩÎđ3σ2ΎΞÎĩÎļÎą. ថπÎĩÎđ3σ2á―ąÎžÎĩÎļÎą. ថπÎĩÎđ3Ïē2ΎΞÎĩÎļÎą. ថπÎĩÎđ3Ïē2á―ąÎžÎĩÎļÎą. ថπÎĩÎŊ3σ2ÎąÏƒÎļÎĩ. ថπÎĩá―·3σ2ÎąÏƒÎļÎĩ. ថπÎĩÎŊ3Ïē2ÎąÏēÎļÎĩ. ថπÎĩá―·3Ïē2ÎąÏēÎļÎĩ. ថπÎĩÎŊ3σ2ÎąÎ―Ï„Îŋ. ថπÎĩá―·3σ2ÎąÎ―Ï„Îŋ. ថπÎĩÎŊ3Ïē2ÎąÎ―Ï„Îŋ. ថπÎĩá―·3Ïē2ÎąÎ―Ï„Îŋ. ថπÎĩÎŊ3σ2Îļ ថπÎĩá―·3σ2Îļ ថπÎĩÎŊ3Ïē2Îļ ថπÎĩá―·3Ïē2Îļ ថπÎĩÎđ3σ2Îļ ថπÎĩÎđ3Ïē2Îļ ថπÎĩ2Κ1τÎĩÎŊ ថπÎĩ2Κ1τÎĩá―· ថπέ2Κ1τÎĩÎđ ថπá―ģ2Κ1τÎĩÎđ ថπÎĩ2Κ1τρ ថπέ2Κ1τρ ថπá―ģ2Κ1τρ ថπÎĩ2Îū1 ថπÎĩ2σ1Îē ថπÎĩ2Ïē1Îē ថπÎđπρό2σ1Îļ ថπÎđπρá―đ2σ1Îļ ថπÎđπρό2Ïē1Îļ ថπÎđπρá―đ2Ïē1Îļ ថπÎđπρÎŋ2σ1Îļ ថπÎđπρÎŋ2Ïē1Îļ ថπÎđσυ2Î―1 ថπÎđÏēυ2Î―1 ថ2σ1 ថ2Ïē1 ថ3σ2Ύω ថ3σ2á―ąÏ‰ ថ3Ïē2Ύω ថ3Ïē2á―ąÏ‰ ថ3σ2ηΞ ថ3Ïē2ηΞ ថ3σ2Îļ ថ3Ïē2Îļ ថ4σ3Îļέσ ថ4σ3Îļá―ģσ ថ4Ïē3ÎļέÏē ថ4Ïē3Îļá―ģÏē ថ3σ2ÎđÎģ ថ3Ïē2ÎđÎģ ថ3σ2Κ ថ3Ïē2Κ ថ4σ3ΚΎ ថ4σ3Îšá―ą ថ4Ïē3ΚΎ ថ4Ïē3Îšá―ą ថ4σ3Κι ថ4Ïē3Κι ថ3σ2Ξá―ēÎ―. ថ3Ïē2Ξá―ēÎ―. ថ3σ2ÎžÎ­Î―. ថ3σ2Ξá―ģÎ―. ថ3Ïē2ÎžÎ­Î―. ថ3Ïē2Ξá―ģÎ―. ថ3σ2τ ថ3Ïē2τ ថ3σ2όΞÎĩÎļÎą ថ3σ2á―đΞÎĩÎļÎą ថ3Ïē2όΞÎĩÎļÎą ថ3Ïē2á―đΞÎĩÎļÎą ថ3σ2ÎŋÎŊÎžÎ·Î― ថ3σ2Îŋá―·ÎžÎ·Î― ថ3Ïē2ÎŋÎŊÎžÎ·Î― ថ3Ïē2Îŋá―·ÎžÎ·Î― ថ3σ2όΞ ថ3σ2á―đΞ ថ3Ïē2όΞ ថ3Ïē2á―đΞ ថ3σ2ÎŋΞ ថ3Ïē2ÎŋΞ ថ3σ2ÎŋáŋĶ ថ3Ïē2ÎŋáŋĶ ថ3σ2Îŋύ ថ3σ2Îŋá―ŧ ថ3Ïē2Îŋύ ថ3Ïē2Îŋá―ŧ ថ3σ2Îŋυ ថ3Ïē2Îŋυ ថ3σ2υ ថ3Ïē2υ ថ3σ2ύ ថ3σ2á―ŧ ថ3Ïē2ύ ថ3Ïē2á―ŧ ថσύ2Î―1 ថσá―ŧ2Î―1 ថÏēύ2Î―1 ថÏēá―ŧ2Î―1 ថσυ2Î―1 ថÏēυ2Î―1 ថ3σ2χ ថ3Ïē2χ ថ4σ3χέ ថ4σ3χá―ģ ថ4Ïē3χέ ថ4Ïē3χá―ģ ថ3σ2ώ ថ3σ2á―― ថ3Ïē2ώ ថ3Ïē2á―― ថ3σ2ω ថ3Ïē2ω ᾔ2σ1Îŋπ ᾔ2Ïē1Îŋπ Îĩá―Îĩ2Îū1 Îĩá―Îĩ3Îū2ÎŊ Îĩá―Îĩ3Îū2á―· Îĩá―Îĩ3Îū2Îđ Îĩá―Ï€ÏÏŒ2σ1 Îĩá―Ï€Ïá―đ2σ1 Îĩá―Ï€ÏÏŒ2Ïē1 Îĩá―Ï€Ïá―đ2Ïē1 Îĩá―Ï€ÏÎŋ2σ1 Îĩá―Ï€ÏÎŋ2Ïē1 Îĩá―ÏƒÏ2Î―1 Îĩá―Ïƒá―ŧ2Î―1 Îĩá―Ïēύ2Î―1 Îĩá―Ïēá―ŧ2Î―1 Îĩá―ÏƒÏ…2Î―1 Îĩá―Ïēυ2Î―1 Îĩá―Îūύ2Î―1 Îĩá―Îūá―ŧ2Î―1 Îĩá―Îūυ2Î―1 ថω2σ1φ ថω2Ïē1φ ážĪ2Î―1Îŋψ. ážĪ2Î―1Îŋπ áž 2Î―1όπ áž 2Î―1á―đπ .ÎļÎĩΞÎđ2σ1Κρ .ÎļÎĩΞÎđ2Ïē1Κρ .ÎļÎĩό2σ1Îī .ÎļÎĩá―đ2σ1Îī .ÎļÎĩό2Ïē1Îī .ÎļÎĩá―đ2Ïē1Îī .ÎļÎĩÎŋ2σ1Îī .ÎļÎĩÎŋ2Ïē1Îī .ÎļÎĩÎŋÎđ2σ1ÎĩχÎļρ .ÎļÎĩÎŋÎđ2Ïē1ÎĩχÎļρ .Îļη2ρ1ÎąÎģρ .ÎļυÎŋ2σ1Κ .ÎļυÎŋ2Ïē1Κ .ΚιÎļυπÎĩ2ρ1 .ΚιÎŧω2σ1Îŋρ .ΚιÎŧω2Ïē1Îŋρ .ΚιÎŧω2σ1όρ .ΚιÎŧω2σ1á―đρ .ΚιÎŧω2Ïē1όρ .ΚιÎŧω2Ïē1á―đρ .Κι2Î―1ÎĩÎŊς. .Κι2Î―1Îĩá―·Ï‚. .Κι2Î―1ÎĩÎŊÏē. .Κι2Î―1Îĩá―·Ïē. .Κι2Î―1Îĩá―ķς. .Κι2Î―1Îĩá―ķÏē. .Κι2Î―1ÎĩÎŊσ. .Κι2Î―1Îĩá―·Ïƒ. .Κι2Î―1Îĩá―ķσ. .Κι2Î―1ÎĩÎ― .Κι2Î―1Î­Î― .Κι2Î―1á―ģÎ― .ÎšÎąÏ„ÎąÎīυ2σ1ωπ .ÎšÎąÏ„ÎąÎīυ2Ïē1ωπ .ÎšÎąÏ„ÎĩÎīυ2σ1ώπ .ÎšÎąÏ„ÎĩÎīυ2σ1á――Ï€ .ÎšÎąÏ„ÎĩÎīυ2Ïē1ώπ .ÎšÎąÏ„ÎĩÎīυ2Ïē1á――Ï€ .ÎšÎąÏ„ÎĩÎđ2σ1 .ÎšÎąÏ„ÎĩÎđ2Ïē1 .ÎšÎąÏ„Îĩ2Î―1ÎąÎŊ .ÎšÎąÏ„Îĩ2Î―1Îąá―· .ÎšÎąÏ„Îĩ2Î―1ÎŪ .ÎšÎąÏ„Îĩ2Î―1á―ĩ .ÎšÎąÏ„Îĩ2Îū1Îą2Î―1ÎŊ .ÎšÎąÏ„Îĩ2Îū1Îą2Î―1á―· .ÎšÎąÏ„Îĩ2Îū1Îą2Î―1έσ .ÎšÎąÏ„Îĩ2Îū1Îą2Î―1á―ģσ .ÎšÎąÏ„Îĩ2Îū1Îą2Î―1έÏē .ÎšÎąÏ„Îĩ2Îū1Îą2Î―1á―ģÏē .ΚÎĩÏÎą2σ1φ .ΚÎĩÏÎą2Ïē1φ .ΚρΎ2σ1π .ÎšÏá―ą2σ1π .ΚρΎ2Ïē1π .ÎšÏá―ą2Ïē1π .ÎšÏÎą2σ1π .ÎšÏÎą2Ïē1π .ÎšÏ…Î―ÏŒ2σ1Îą .ÎšÏ…Î―á―đ2σ1Îą .ÎšÏ…Î―ÏŒ2Ïē1Îą .ÎšÏ…Î―á―đ2Ïē1Îą .ÎšÏ…Î―ÏŒ2σ1Îē .ÎšÏ…Î―á―đ2σ1Îē .ÎšÏ…Î―ÏŒ2Ïē1Îē .ÎšÏ…Î―á―đ2Ïē1Îē .ÎšÏ…Î―Îŋ2σ1Îē .ÎšÏ…Î―Îŋ2Ïē1Îē .ÎšÏ…Î―ÏŒ2σ1Îŋ .ÎšÏ…Î―á―đ2σ1Îŋ .ÎšÏ…Î―ÏŒ2Ïē1Îŋ .ÎšÏ…Î―á―đ2Ïē1Îŋ .ÎšÏ…Î―Îŋ2σ1Îŋ .ÎšÏ…Î―Îŋ2Ïē1Îŋ .ÎšÏ…Î―Îŋ2σ1φ .ÎšÏ…Î―Îŋ2Ïē1φ .ΞÎĩÎŧÎą2Î―1ÎŽÎģ .ΞÎĩÎŧÎą2Î―1á―ąÎģ .ΞÎĩÎŧÎą2Î―1ÎąÎģ .ΞÎĩÎŧÎą2Î―1ÎŽÎĩ .ΞÎĩÎŧÎą2Î―1á―ąÎĩ .ΞÎĩÎŧÎą2Î―1ιέ .ΞÎĩÎŧÎą2Î―1Îąá―ģ .ΞÎĩÎŧÎą2Î―1ÎąÎļ .ΞÎĩÎŧÎą2Î―1ÎąÎđÎģ .ΞÎĩÎŧÎą2Î―1ÎąÏ…Îģ .ΞÎĩÎŧÎą2Î―1ÎĩÎŊΞ .ΞÎĩÎŧÎą2Î―1Îĩá―·Îž .ΞÎĩÎŧÎą2Î―1Îĩáŋ–Ξ .ΞÎĩÎŧÎŽ2Î―1Îđππ .ΞÎĩÎŧá―ą2Î―1Îđππ .ΞÎĩÎŧÎą2Î―1ÎŊππ .ΞÎĩÎŧÎą2Î―1á―·Ï€Ï€ .ΞÎĩÎŧÎą2Î―1όΞΞ .ΞÎĩÎŧÎą2Î―1á―đΞΞ .ΞÎĩÎŧÎą2Î―1ÎŋΞΞ .ΞÎĩÎŧÎŽ2Î―1Îŋσσ .ΞÎĩÎŧá―ą2Î―1Îŋσσ .ΞÎĩÎŧÎŽ2Î―1ÎŋÏēÏē .ΞÎĩÎŧá―ą2Î―1ÎŋÏēÏē .ΞÎĩÎŧÎą2Î―1όσσ .ΞÎĩÎŧÎą2Î―1á―đσσ .ΞÎĩÎŧÎą2Î―1όÏēÏē .ΞÎĩÎŧÎą2Î―1á―đÏēÏē .ΞÎĩÎŧÎŽ2Î―1Îŋστ .ΞÎĩÎŧá―ą2Î―1Îŋστ .ΞÎĩÎŧÎŽ2Î―1ÎŋÏēτ .ΞÎĩÎŧá―ą2Î―1ÎŋÏēτ .ΞÎĩÎŧÎą2Î―1όστ .ΞÎĩÎŧÎą2Î―1á―đστ .ΞÎĩÎŧÎą2Î―1όÏēτ .ΞÎĩÎŧÎą2Î―1á―đÏēτ .ΞÎĩÎŧÎŽ2Î―1Îŋυρ .ΞÎĩÎŧá―ą2Î―1Îŋυρ .ΞÎĩÎŧÎą2Î―1Îŋύρ .ΞÎĩÎŧÎą2Î―1Îŋá―ŧρ .ΞÎĩÎŧÎą2Î―1Îŋυρ .ΞÎĩÎŧÎŽ2Î―1υ .ΞÎĩÎŧá―ą2Î―1υ .ΞÎĩÎŧÎą2Î―1ύ .ΞÎĩÎŧÎą2Î―1á―ŧ .ΞÎĩτÎĩ2Îū1Îą .ΞÎĩτÎĩ2Îū1έ .ΞÎĩτÎĩ2Îū1á―ģ .ΞÎĩτÎĩ2Îū1Îĩ .ΞÎŋÎģÎđ2σ1 .ΞÎŋÎģÎđ2Ïē1 .ΞÎŋÎģÎŋ2σ1τ .ΞÎŋÎģÎŋ2Ïē1τ .Ξυ2σ1π .Ξυ2Ïē1π .Ξυ2σ1Îĩπ .Ξυ2Ïē1Îĩπ .Î―Îĩώ2σ1ÎŋÎđΚ .Î―Îĩá――2σ1ÎŋÎđΚ .Î―Îĩώ2Ïē1ÎŋÎđΚ .Î―Îĩá――2Ïē1ÎŋÎđΚ .Î―Îĩω2σ1ÎŋÎŊΚ .Î―Îĩω2σ1Îŋá―·Îš .Î―Îĩω2Ïē1ÎŋÎŊΚ .Î―Îĩω2Ïē1Îŋá―·Îš .Î―Îŋυ2Î―1Îĩ .Îūυ2Î―1ÎąÎģ .Îūυ2Î―1Îĩ .Îūυ2Î―1έ .Îūυ2Î―1á―ģ .Îūύ2Î―1Îĩ .Îūá―ŧ2Î―1Îĩ .Îūυ3Î―2Îĩώ .Îūυ3Î―2Îĩá―― .Îūυ3Î―2Îĩáŋķ .Îūυ2Î―1áŋ†Îš .Îūύ2Î―1Îđ .Îūá―ŧ2Î―1Îđ .Îūυ2Î―1ÎŊ .Îūυ2Î―1á―· ÎŋážąÎŋ2Î―1ÎĩÎŊ. ÎŋážąÎŋ2Î―1Îĩá―·. ÎŋážąÎŋ2Î―1Îĩá―ķ. ÎŋážąÏŒ2σ1 Îŋážąá―đ2σ1 ÎŋážąÏŒ2Ïē1 Îŋážąá―đ2Ïē1 Îŋáž°2σ1πώτ Îŋáž°2σ1Ï€á――Ï„ Îŋáž°2Ïē1πώτ Îŋáž°2Ïē1Ï€á――Ï„ Îŋáž°2σ1πωτ Îŋáž°2Ïē1πωτ á―ÎŧÎŋ2Î―1Î­Î―. á―ÎŧÎŋ2Î―1á―ģÎ―. á―ÎŧÎŋ2Î―1á―ēÎ―. á―Ï€Ï‰2σ1 á―Ï€Ï‰2Ïē1 á―…2σ1ÎģÎĩ. á―…2Ïē1ÎģÎĩ. á―ÏƒÎŋ2Î―1áŋķÎ―. á―ÏēÎŋ2Î―1áŋķÎ―. á―…2σ1πÎĩρ. á―…2Ïē1πÎĩρ. á―…2σ1τÎđς á―…2Ïē1τÎđÏē Îŋáž·2σ1τÎđσÎđ Îŋáž·2Ïē1τÎđÏēÎđ Îŋá―•2σ1τÎđÎ―ÎąÏ‚ Îŋá―•2Ïē1τÎđÎ―ÎąÏē ឧ2σ1τÎđÎ―Îŋς ឧ2Ïē1τÎđÎ―ÎŋÏē Îąáž·2σ1τÎđσÎđ Îąáž·2Ïē1τÎđÏēÎđ ᾅ2σ1τÎđÎ―ÎąÏ‚ ᾅ2Ïē1τÎđÎ―ÎąÏē á―2σ1τÎđ2σ1ÎŋáŋĶÎ―. á―2Ïē1τÎđ2Ïē1ÎŋáŋĶÎ―. ážĄÏ„Îđ2σ1ÎŋáŋĶÎ―. ážĄÏ„Îđ2Ïē1ÎŋáŋĶÎ―. á―Ï€ÎŋÎđÎŋυ2σ1τÎđÎ―Îą2σ1ÎŋáŋĶÎ―. á―Ï€ÎŋÎđÎŋυ2Ïē1τÎđÎ―Îą2Ïē1ÎŋáŋĶÎ―. Îŋá―ÎīÎĩÎ―ÏŒ2σ1ω Îŋá―ÎīÎĩÎ―á―đ2σ1ω Îŋá―ÎīÎĩÎ―ÏŒ2Ïē1ω Îŋá―ÎīÎĩÎ―á―đ2Ïē1ω Îŋá―ÎīÎĩÎ―Îŋ2σ1ώ Îŋá―ÎīÎĩÎ―Îŋ2σ1á―― Îŋá―ÎīÎĩÎ―Îŋ2Ïē1ώ Îŋá―ÎīÎĩÎ―Îŋ2Ïē1á―― .Ï€ÎąÎŧÎđ2Î―1 .Ï€ÎąÎŧÎŊ2Î―1 .Ï€ÎąÎŧá―·2Î―1 .Ï€Îą2Î―1 .πΎ2Î―1 .Ï€á―ą2Î―1 .Ï€Îą3Î―2ός. .Ï€Îą3Î―2á―đς. .Ï€Îą3Î―2όÏē. .Ï€Îą3Î―2á―đÏē. .Ï€Îą3Î―2á―ļς. .Ï€Îą3Î―2á―ļÏē. .Ï€Îą3Î―2όσ. .Ï€Îą3Î―2á―đσ. .Ï€Îą3Î―2á―ļσ. .Ï€Îą3Î―2ÎŊ. .Ï€Îą3Î―2á―·. .Ï€Îą3Î―2á―ķ. .Ï€ÎŽÎ―Îą. .Ï€á―ąÎ―Îą. .Ï€Îą3Î―2áŋķÎ―. .Ï€Îą3Î―2ÎđΚ .Ï€Îą3Î―2ÎŊσÎī .Ï€Îą3Î―2á―·ÏƒÎī .Ï€Îą3Î―2ÎŊÏēÎī .Ï€Îą3Î―2á―·ÏēÎī .Ï€Îą3Î―2ÎđσÎī .Ï€Îą3Î―2ÎđÏēÎī .Ï€Îą3Î―2ÎŋáŋĶ. .Ï€Îą3Î―2áŋ·. .Ï€Îą3Î―2ό. .Ï€Îą3Î―2á―đ. .Ï€Îą3Î―2á―ļ. .Ï€Îą3Î―2ÏŒÎ―. .Ï€Îą3Î―2á―đÎ―. .Ï€Îą3Î―2á―ļÎ―. .Ï€Îą3Î―2έ. .Ï€Îą3Î―2á―ģ. .Ï€Îą3Î―2á―ē. .Ï€Îą3Î―2ÎŋÎŊ. .Ï€Îą3Î―2Îŋá―·. .Ï€Îą3Î―2Îŋá―ķ. .Ï€Îą3Î―2Îŋáŋ–Ï‚. .Ï€Îą3Î―2Îŋáŋ–Ïē. .Ï€Îą3Î―2Îŋáŋ–σ. .Ï€Îą3Î―2Îŋύς. .Ï€Îą3Î―2Îŋá―ŧς. .Ï€Îą3Î―2ÎŋύÏē. .Ï€Îą3Î―2Îŋá―ŧÏē. .Ï€Îą3Î―2Îŋá―šÏ‚. .Ï€Îą3Î―2Îŋá―šÏē. .Ï€Îą3Î―2Îŋύσ. .Ï€Îą3Î―2Îŋá―ŧσ. .Ï€Îą3Î―2Îŋá―šÏƒ. .Ï€ÎąÏÎą2Î―1ÎŊσχ .Ï€ÎąÏÎą2Î―1á―·ÏƒÏ‡ .Ï€ÎąÏÎą2Î―1ÎŊÏēχ .Ï€ÎąÏÎą2Î―1á―·Ïēχ .Ï€ÎąÏÎĩÎŊ2σ1 .Ï€ÎąÏÎĩá―·2σ1 .Ï€ÎąÏÎĩÎŊ2Ïē1 .Ï€ÎąÏÎĩá―·2Ïē1 .Ï€ÎąÏÎĩÎđ2σ1 .Ï€ÎąÏÎĩÎđ2Ïē1 .Ï€ÎąÏÎĩ2Κ1Îŧ .Ï€ÎąÏÎĩ2Κ1τρ .Ï€ÎąÏÎĩ2Î―1Îĩáŋ– .Ï€ÎąÏÎĩ2Î―1Îŋ .Ï€ÎąÏÎĩ2Îū1 .Ï€ÎąÏÎ­2Îū1 .Ï€ÎąÏá―ģ2Îū1 Ï€ÎąÏÎ­3Îū2ω. Ï€ÎąÏá―ģ3Îū2ω. Ï€ÎąÏÎ­3Îū2ÎĩÎđς. Ï€ÎąÏá―ģ3Îū2ÎĩÎđς. Ï€ÎąÏÎ­3Îū2ÎĩÎđÏē. Ï€ÎąÏá―ģ3Îū2ÎĩÎđÏē. Ï€ÎąÏÎ­3Îū2ÎĩÎđσ. Ï€ÎąÏá―ģ3Îū2ÎĩÎđσ. Ï€ÎąÏÎ­3Îū2ÎĩÎđ. Ï€ÎąÏá―ģ3Îū2ÎĩÎđ. Ï€ÎąÏÎ­3Îū2ÎĩτÎŋÎ―. Ï€ÎąÏá―ģ3Îū2ÎĩτÎŋÎ―. Ï€ÎąÏÎĩ3Îū2Î­Ï„Î·Î―. Ï€ÎąÏÎĩ3Îū2á―ģÏ„Î·Î―. Ï€ÎąÏÎ­3Îū2ÎŋΞÎĩÎ―. Ï€ÎąÏá―ģ3Îū2ÎŋΞÎĩÎ―. Ï€ÎąÏÎ­3Îū2ÎĩτÎĩ. Ï€ÎąÏá―ģ3Îū2ÎĩτÎĩ. Ï€ÎąÏÎ­3Îū2ÎŋυσÎđ. Ï€ÎąÏá―ģ3Îū2ÎŋυσÎđ. Ï€ÎąÏÎ­3Îū2ÎŋυÏēÎđ. Ï€ÎąÏá―ģ3Îū2ÎŋυÏēÎđ. Ï€ÎąÏÎ­3Îū2ÎŋΞιÎđ Ï€ÎąÏá―ģ3Îū2ÎŋΞιÎđ Ï€ÎąÏÎ­3Îū2áŋƒ Ï€ÎąÏá―ģ3Îū2áŋƒ Ï€ÎąÏÎ­3Îū2ÎĩÏ„ÎąÎđ. Ï€ÎąÏá―ģ3Îū2ÎĩÏ„ÎąÎđ. Ï€ÎąÏÎ­3Îū2ÎĩσÎļÎŋÎ―. Ï€ÎąÏá―ģ3Îū2ÎĩσÎļÎŋÎ―. Ï€ÎąÏÎ­3Îū2ÎĩÏēÎļÎŋÎ―. Ï€ÎąÏá―ģ3Îū2ÎĩÏēÎļÎŋÎ―. Ï€ÎąÏÎĩ3Îū2όΞÎĩÎļÎą. Ï€ÎąÏÎĩ3Îū2á―đΞÎĩÎļÎą. Ï€ÎąÏÎ­3Îū2ÎĩσÎļÎĩ. Ï€ÎąÏá―ģ3Îū2ÎĩσÎļÎĩ. Ï€ÎąÏÎ­3Îū2ÎĩÏēÎļÎĩ. Ï€ÎąÏá―ģ3Îū2ÎĩÏēÎļÎĩ. Ï€ÎąÏÎ­3Îū2ÎŋÎ―Ï„ÎąÎđ. Ï€ÎąÏá―ģ3Îū2ÎŋÎ―Ï„ÎąÎđ. .πÎŧÎĩÎŋ2Î―1έ .πÎŧÎĩÎŋ2Î―1á―ģ .πÎŧÎĩÎŋ2Î―1Îĩ .πρÎŋÎĩÎđ2σ1 .πρÎŋÎĩÎđ2Ïē1 .πρÎŋÎĩ2Κ1 .πρÎŋÎĩ2Î―1 .πρÎŋÎĩ2Îū1 .πρÎŋέ2Îū1 .πρÎŋá―ģ2Îū1 .πρÎŋ2σ1 .πρÎŋ2Ïē1 .πρÎŋ3σ2ÎŽÎē .πρÎŋ3σ2á―ąÎē .πρÎŋ3Ïē2ÎŽÎē .πρÎŋ3Ïē2á―ąÎē .πρÎŋ3σ2ÎąÎē .πρÎŋ3Ïē2ÎąÎē .πρÎŋσÎĩÎđ2σ1 .πρÎŋÏēÎĩÎđ2Ïē1 .πρÎŋ3σ2ÎĩÎŊ .πρÎŋ3σ2Îĩá―· .πρÎŋ3Ïē2ÎĩÎŊ .πρÎŋ3Ïē2Îĩá―· .πρÎŋ3σ2έσÎĩÎđ .πρÎŋ3σ2á―ģσÎĩÎđ .πρÎŋ3Ïē2έÏēÎĩÎđ .πρÎŋ3Ïē2á―ģÏēÎĩÎđ .πρÎŋ3σ2ÎĩσÎĩÎŊ .πρÎŋ3σ2ÎĩσÎĩá―· .πρÎŋ3Ïē2ÎĩÏēÎĩÎŊ .πρÎŋ3Ïē2ÎĩÏēÎĩá―· .πρÎŋσÎĩ2Î―1 .πρÎŋÏēÎĩ2Î―1 .πρÎŋσÎĩ2Îū1 .πρÎŋÏēÎĩ2Îū1 .πρό3σ2ÎļÎđ .πρá―đ3σ2ÎļÎđ .πρό3Ïē2ÎļÎđ .πρá―đ3Ïē2ÎļÎđ .πρÎŋ3σ2ÎļÎŊ .πρÎŋ3σ2Îļá―· .πρÎŋ3Ïē2ÎļÎŊ .πρÎŋ3Ïē2Îļá―· .πρÎŋ4σ3ÎļÎđÎģ .πρÎŋ4Ïē3ÎļÎđÎģ .πρό3σ2ΚÎŋπ .πρá―đ3σ2ΚÎŋπ .πρό3Ïē2ΚÎŋπ .πρá―đ3Ïē2ΚÎŋπ .πρÎŋ3σ2Κόπ .πρÎŋ3σ2Κá―đπ .πρÎŋ3Ïē2Κόπ .πρÎŋ3Ïē2Κá―đπ .πρÎŋ3σ2Ï„ÎąÏƒ .πρÎŋ3Ïē2Ï„ÎąÏē .πρÎŋ3σ2Ï„ÎŽÏ„ .πρÎŋ3σ2Ï„á―ąÏ„ .πρÎŋ3Ïē2Ï„ÎŽÏ„ .πρÎŋ3Ïē2Ï„á―ąÏ„ .πρÎŋ3σ2Ï„ÎąÏ„ .πρÎŋ3Ïē2Ï„ÎąÏ„ .πρÎŋ3σ2Ï„ÎąÏ… .πρÎŋ3Ïē2Ï„ÎąÏ… .πρÎŋ3σ2τÎĩÎŊ .πρÎŋ3σ2τÎĩá―· .πρÎŋ3Ïē2τÎĩÎŊ .πρÎŋ3Ïē2τÎĩá―· .πρÎŋ3σ2τÎĩÎ― .πρÎŋ3Ïē2τÎĩÎ― .πρÎŋ3σ2Ï„Î­Î― .πρÎŋ3σ2τá―ģÎ― .πρÎŋ3Ïē2Ï„Î­Î― .πρÎŋ3Ïē2τá―ģÎ― .πρÎŋ3σ2τÎĩÏÎ― .πρÎŋ3Ïē2τÎĩÏÎ― .πρό3σ2τÎĩÏÎ― .πρá―đ3σ2τÎĩÏÎ― .πρό3Ïē2τÎĩÏÎ― .πρá―đ3Ïē2τÎĩÏÎ― .πρÎŋ3σ2Ï„Î­ÏÎ― .πρÎŋ3σ2τá―ģÏÎ― .πρÎŋ3Ïē2Ï„Î­ÏÎ― .πρÎŋ3Ïē2τá―ģÏÎ― .πρÎŋ3σ2τÎŪσ .πρÎŋ3σ2τá―ĩσ .πρÎŋ3Ïē2τÎŪÏē .πρÎŋ3Ïē2τá―ĩÏē .πρÎŋ3σ2τόΞ .πρÎŋ3σ2τá―đΞ .πρÎŋ3Ïē2τόΞ .πρÎŋ3Ïē2τá―đΞ .πρÎŋ3σ2τÎŋΞ .πρÎŋ3Ïē2τÎŋΞ .πρό3σ2τáŋģ .πρá―đ3σ2τáŋģ .πρό3Ïē2τáŋģ .πρá―đ3Ïē2τáŋģ .πρÎŋ3σ2τáŋī .πρÎŋ3Ïē2τáŋī .πρÎŋ3σ2υÎģ .πρÎŋ3Ïē2υÎģ .πρÎŋ3σ2υΞ .πρÎŋ3Ïē2υΞ .πρÎŋ3σ2υ2Î―1 .πρÎŋ3Ïē2υ2Î―1 .πρό3σ2Ï†ÎąÎģΞ .πρá―đ3σ2Ï†ÎąÎģΞ .πρό3Ïē2Ï†ÎąÎģΞ .πρá―đ3Ïē2Ï†ÎąÎģΞ .πρÎŋ3σ2φΎÎģΞ .πρÎŋ3σ2Ï†á―ąÎģΞ .πρÎŋ3Ïē2φΎÎģΞ .πρÎŋ3Ïē2Ï†á―ąÎģΞ .πρÎŋ3σ2φΎÎķ .πρÎŋ3σ2Ï†á―ąÎķ .πρÎŋ3Ïē2φΎÎķ .πρÎŋ3Ïē2Ï†á―ąÎķ .πρÎŋ3σ2φΎττ .πρÎŋ3σ2Ï†á―ąÏ„Ï„ .πρÎŋ3Ïē2φΎττ .πρÎŋ3Ïē2Ï†á―ąÏ„Ï„ .πρό3σ2χηΞ .πρá―đ3σ2χηΞ .πρό3Ïē2χηΞ .πρá―đ3Ïē2χηΞ .πρÎŋ3σ2χÎŪΞ .πρÎŋ3σ2χá―ĩΞ .πρÎŋ3Ïē2χÎŪΞ .πρÎŋ3Ïē2χá―ĩΞ .πρό3σ2ω. .πρá―đ3σ2ω. .πρό3Ïē2ω. .πρá―đ3Ïē2ω. .πρό3σ2ωÎļÎĩÎ―. .πρá―đ3σ2ωÎļÎĩÎ―. .πρό3Ïē2ωÎļÎĩÎ―. .πρá―đ3Ïē2ωÎļÎĩÎ―. .πρÎŋ3σ2ώτ .πρÎŋ3σ2á――Ï„ .πρÎŋ3Ïē2ώτ .πρÎŋ3Ïē2á――Ï„ .πρÎŋ3σ2ωτ .πρÎŋ3Ïē2ωτ .πρÎŋϋπÎĩ2Îū1 .πυ2ρ1ÎŽÎģ .πυ2ρ1á―ąÎģ .πυ2ρ1ÎąÎģ .πυ2ρ1ÎąÎŊÎļ .πυ2ρ1Îąá―·Îļ .πυ2ρ1ÎąÎđÎļ .πυ2ρ1áŋ†Îļ .πυ2ρ1ηÎļ .πυ2ρ1ÎŪÎļ .πυ2ρ1á―ĩÎļ .πυ2ρ1ιΚ .πύ2ρ1ÎąÏ… .πá―ŧ2ρ1ÎąÏ… .πυ2ρ1ÎąÏ .πυ2ρ1Îąá―ŧ .πυ2ρ1ÎąÏ… .πυ2ρ1ÎŪÎ―ÎĩΞ .πυ2ρ1á―ĩÎ―ÎĩΞ .πυ2ρ1Î·Î―Î­Îž .πυ2ρ1Î·Î―á―ģΞ .πυ2ρ1ωπ .σÎĩÎŧÎą2σ1φό .σÎĩÎŧÎą2σ1φá―đ .ÏēÎĩÎŧÎą2Ïē1φό .ÏēÎĩÎŧÎą2Ïē1φá―đ .σÎĩÎŧÎą2σ1φÎŋ .ÏēÎĩÎŧÎą2Ïē1φÎŋ .ÏƒÏ…ÎžÏ€ÎąÏÎĩÎđ2σ1 .ÏēÏ…ÎžÏ€ÎąÏÎĩÎđ2Ïē1 .συ2Î―1 .Ïēυ2Î―1 .σύ2Î―1 .σá―ŧ2Î―1 .Ïēύ2Î―1 .Ïēá―ŧ2Î―1 .ÏƒÏ…Î―ÎīÎđέ2Îū1 .ÏƒÏ…Î―ÎīÎđá―ģ2Îū1 .ÏēÏ…Î―ÎīÎđέ2Îū1 .ÏēÏ…Î―ÎīÎđá―ģ2Îū1 .ÏƒÏ…Î―ÎīÎđÎĩ2Îū1 .ÏēÏ…Î―ÎīÎđÎĩ2Îū1 .ÏƒÏ…Î―Îīυ2σ1 .ÏēÏ…Î―Îīυ2Ïē1 .ÏƒÏ…Î―Îĩ2Îū1 .ÏēÏ…Î―Îĩ2Îū1 .τÎĩÏƒÏƒÎąÏÎĩ2σ1Κ .τÎĩÏēÏēÎąÏÎĩ2Ïē1Κ .τρÎĩÎđ2σ1Κ .τρÎĩÎđ2Ïē1Κ .τρÎđ2σ1 .τρÎđ2Ïē1 .τρÎđ3σ2Ξό .τρÎđ3σ2Ξá―đ .τρÎđ3Ïē2Ξό .τρÎđ3Ïē2Ξá―đ .τρÎđ3σ2ΞÎŋ .τρÎđ3Ïē2ΞÎŋ .τρÎđ3σ2Ξáŋķ .τρÎđ3Ïē2Ξáŋķ .τρÎđ3σ2π .τρÎđ3Ïē2π .τρÎŊ3σ2τ .Ï„Ïá―·3σ2τ .τρÎŊ3Ïē2τ .Ï„Ïá―·3Ïē2τ .τρÎđ3σ2τ .τρÎđ3Ïē2τ .τρÎđ3σ2ώ .τρÎđ3σ2á―― .τρÎđ3Ïē2ώ .τρÎđ3Ïē2á―― .τρÎđ3σ2ω .τρÎđ3Ïē2ω á―‘Îŋ2σ1Κ á―‘Îŋ2Ïē1Κ á―‘Ï€ÎĩÎŊ2σ1 á―‘Ï€Îĩá―·2σ1 á―‘Ï€ÎĩÎŊ2Ïē1 á―‘Ï€Îĩá―·2Ïē1 á―‘Ï€ÎĩÎđ2σ1 á―‘Ï€ÎĩÎđ2Ïē1 á―‘Ï€ÎĩÎŊ3σ2ÎąÏ‚ á―‘Ï€Îĩá―·3σ2ÎąÏ‚ á―‘Ï€ÎĩÎŊ3Ïē2ÎąÏē á―‘Ï€Îĩá―·3Ïē2ÎąÏē á―‘Ï€ÎĩÎŊ3σ2ÎąÏƒ á―‘Ï€Îĩá―·3σ2ÎąÏƒ á―‘Ï€ÎĩÎŊ3σ2ÎąÎ― á―‘Ï€Îĩá―·3σ2ÎąÎ― á―‘Ï€ÎĩÎŊ3Ïē2ÎąÎ― á―‘Ï€Îĩá―·3Ïē2ÎąÎ― á―‘Ï€ÎĩÎđ3σ2ÎŽÎ― á―‘Ï€ÎĩÎđ3σ2á―ąÎ― á―‘Ï€ÎĩÎđ3Ïē2ÎŽÎ― á―‘Ï€ÎĩÎđ3Ïē2á―ąÎ― á―‘Ï€ÎĩÎđ3σ2Ύσ á―‘Ï€ÎĩÎđ3σ2á―ąÏƒ á―‘Ï€ÎĩÎđ3Ïē2ÎŽÏē á―‘Ï€ÎĩÎđ3Ïē2á―ąÏē á―‘Ï€Îĩ2Κ1ÎŧιΞ á―‘Ï€Îĩ2Κ1ÎŧÎŪψ á―‘Ï€Îĩ2Κ1Îŧá―ĩψ á―‘Ï€Îĩ2Κ1τ á―‘Ï€Îĩ2Î―1 á―‘Ï€Îĩ2Îū1 á―‘Ï€Îĩ2ρ1 á―‘Ï€Î­2ρ1 á―‘Ï€á―ģ2ρ1 á―‘Ï€Î­3ρ2Îą. á―‘Ï€á―ģ3ρ2Îą. á―‘Ï€Î­3ρ2ης. á―‘Ï€á―ģ3ρ2ης. á―‘Ï€Î­3ρ2ηÏē. á―‘Ï€á―ģ3ρ2ηÏē. á―‘Ï€Î­3ρ2ησ. á―‘Ï€á―ģ3ρ2ησ. á―‘Ï€Î­3ρ2áūģ. á―‘Ï€á―ģ3ρ2áūģ. á―‘Ï€Î­3ρ2ÎąÎ―. á―‘Ï€á―ģ3ρ2ÎąÎ―. á―‘Ï€Î­3ρ2ÎąÎđ. á―‘Ï€á―ģ3ρ2ÎąÎđ. á―‘Ï€Îĩ3ρ2áŋķÎ―. á―‘Ï€Î­3ρ2ÎąÎđς. á―‘Ï€á―ģ3ρ2ÎąÎđς. á―‘Ï€Î­3ρ2ÎąÎđÏē. á―‘Ï€á―ģ3ρ2ÎąÎđÏē. á―‘Ï€Î­3ρ2ÎąÎđσ. á―‘Ï€á―ģ3ρ2ÎąÎđσ. á―‘Ï€Î­3ρ2ÎąÏ‚. á―‘Ï€á―ģ3ρ2ÎąÏ‚. á―‘Ï€Î­3ρ2ÎąÏē. á―‘Ï€á―ģ3ρ2ÎąÏē. á―‘Ï€Î­3ρ2ÎąÏƒ. á―‘Ï€á―ģ3ρ2ÎąÏƒ. á―‘Ï€Îĩ3ρ2ÎĩÎļ á―‘Ï€Îĩ3ρ2έÎļ á―‘Ï€Îĩ3ρ2á―ģÎļ á―‘Ï€Îĩ3ρ2ÎĩÎŊ á―‘Ï€Îĩ3ρ2Îĩá―· á―‘Ï€Î­3ρ2υÎļ á―‘Ï€á―ģ3ρ2υÎļ á―‘Ï€Îĩ3ρ2ύÎļ á―‘Ï€Îĩ3ρ2á―ŧÎļ á―‘Ï€Îĩ3ρ2υÎļ á―‘Ï€ÎĩρÎĩ2Κ1τÎĩ á―‘Ï€ÎĩρÎĩ2Κ1τÎŊ á―‘Ï€ÎĩρÎĩ2Κ1Ï„á―· á―‘Ï€Îĩ3ρ2έπτ á―‘Ï€Îĩ3ρ2á―ģπτ á―‘Ï€Îĩ3ρ2Îĩπτ á―‘Ï€Îĩ3ρ2έψ á―‘Ï€Îĩ3ρ2á―ģψ á―‘Ï€Îĩ3ρ2Îĩψ á―‘Ï€Îĩ3ρ2έω á―‘Ï€Îĩ3ρ2á―ģω á―‘Ï€Îĩ3ρ2áŋķ á―‘Ï€Îĩ3ρ2έÎĩ á―‘Ï€Îĩ3ρ2á―ģÎĩ á―‘Ï€Îĩ3ρ2Îĩáŋ–Ï‚. á―‘Ï€Îĩ3ρ2Îĩáŋ–Ïē. á―‘Ï€Îĩ3ρ2Îĩáŋ–σ. á―‘Ï€Îĩ3ρ2Îĩáŋ–. á―‘Ï€Îĩ3ρ2έÎŋ á―‘Ï€Îĩ3ρ2á―ģÎŋ á―‘Ï€Îĩ3ρ2ÎŋáŋĶ á―‘Ï€Îĩ3ρ2Îĩáŋ–Ï„ á―‘Ï€Îĩ3ρ2ώ á―‘Ï€Îĩ3ρ2á―― á―‘Ï€Îĩ3ρ2ω á―•2σ1τρ á―•2Ïē1τρ á―‘2σ1τρ á―‘2Ïē1τρ .Ï†ÎąÎĩ2σ1φ .Ï†ÎąÎĩ2Ïē1φ .φω2σ1φ .φω2Ïē1φ .Ï‡ÎąÏÎđ2σ1ÎąÎ―Îīρ .Ï‡ÎąÏÎđ2Ïē1ÎąÎ―Îīρ .Ï‡ÎąÏÎđ2σ1ÎŽÎ―Îīρ .Ï‡ÎąÏÎđ2σ1á―ąÎ―Îīρ .Ï‡ÎąÏÎđ2Ïē1ÎŽÎ―Îīρ .Ï‡ÎąÏÎđ2Ïē1á―ąÎ―Îīρ .χÎĩÎđ2ρ1ÎŽÎģ .χÎĩÎđ2ρ1á―ąÎģ .χÎĩÎđ2ρ1ÎąÎģ .χÎĩÎđ2ρ1ÎąÏ€ .χÎĩÎđ2ρ1ÎąÏˆ .χÎĩÎđ2ρ1Îŋυ .χÎĩÎđ2ρ1áŋķÎ― .χÎĩÎđ2ρ1ÎŽÎ― .χÎĩÎđ2ρ1á―ąÎ― .χÎĩÎđ2ρ1ÎąÎ― .χη2Î―1Î―ÎąÎŧ á―Ą2σ1Îą2Î―1ÎĩÎŊ. á―Ą2σ1Îą2Î―1Îĩá―·. á―Ą2Ïē1Îą2Î―1ÎĩÎŊ. á―Ą2Ïē1Îą2Î―1Îĩá―·. á―Ą2σ1Îą2Î―1Îĩá―ķ. á―Ą2Ïē1Îą2Î―1Îĩá―ķ. á―Ą2σ1ÎąÏÏ„Ï‰Ï‚. á―Ą2σ1Îąá―ŧτως. á―Ą2Ïē1ÎąÏÏ„Ï‰Ïē. á―Ą2Ïē1Îąá―ŧτωÏē. á―Ą2σ1ÎąÏÏ„Ï‰Ïƒ. á―Ą2σ1Îąá―ŧτωσ. á―Ą2σ1ÎĩÎŊ. á―Ą2σ1Îĩá―·. á―Ą2Ïē1ÎĩÎŊ. á―Ą2Ïē1Îĩá―·. á―Ą2σ1Îĩá―ķ. á―Ą2Ïē1Îĩá―ķ. á―Ĩ2σ1πÎĩρ. á―Ĩ2Ïē1πÎĩρ. á―Ą2σ1πÎĩ2ρ1ÎĩÎŊ. á―Ą2σ1πÎĩ2ρ1Îĩá―·. á―Ą2Ïē1πÎĩ2ρ1ÎĩÎŊ. á―Ą2Ïē1πÎĩ2ρ1Îĩá―·. á―Ą2σ1πÎĩ2ρ1Îĩá―ķ. á―Ą2Ïē1πÎĩ2ρ1Îĩá―ķ. á―Ĩ2σ1τÎĩ á―Ĩ2Ïē1τÎĩ Îđ2σ1χÎŊÎŧÎđÎŋÎđ. Îđ2σ1Ï‡á―·ÎŧÎđÎŋÎđ. Îđ2Ïē1χÎŊÎŧÎđÎŋÎđ. Îđ2Ïē1Ï‡á―·ÎŧÎđÎŋÎđ. Îđ2σ1χÎđÎŧÎŊÏ‰Î―. Îđ2σ1χÎđÎŧá―·Ï‰Î―. Îđ2Ïē1χÎđÎŧÎŊÏ‰Î―. Îđ2Ïē1χÎđÎŧá―·Ï‰Î―. Îđ2σ1χÎđÎŧÎŊÎŋÎđς. Îđ2σ1χÎđÎŧá―·ÎŋÎđς. Îđ2Ïē1χÎđÎŧÎŊÎŋÎđÏē. Îđ2Ïē1χÎđÎŧá―·ÎŋÎđÏē. Îđ2σ1χÎđÎŧÎŊÎŋÎđσ. Îđ2σ1χÎđÎŧá―·ÎŋÎđσ. Îđ2σ1χÎđÎŧÎŊÎŋυς. Îđ2σ1χÎđÎŧá―·Îŋυς. Îđ2Ïē1χÎđÎŧÎŊÎŋυÏē. Îđ2Ïē1χÎđÎŧá―·ÎŋυÏē. Îđ2σ1χÎđÎŧÎŊÎŋυσ. Îđ2σ1χÎđÎŧá―·Îŋυσ. Îđ2σ1χÎŊÎŧÎđÎąÎđ. Îđ2σ1Ï‡á―·ÎŧÎđÎąÎđ. Îđ2Ïē1χÎŊÎŧÎđÎąÎđ. Îđ2Ïē1Ï‡á―·ÎŧÎđÎąÎđ. Îđ2σ1χÎđÎŧÎŊÎąÎđς. Îđ2σ1χÎđÎŧá―·ÎąÎđς. Îđ2Ïē1χÎđÎŧÎŊÎąÎđÏē. Îđ2Ïē1χÎđÎŧá―·ÎąÎđÏē. Îđ2σ1χÎđÎŧÎŊÎąÎđσ. Îđ2σ1χÎđÎŧá―·ÎąÎđσ. Îđ2σ1χÎđÎŧÎŊÎąÏ‚. Îđ2σ1χÎđÎŧá―·ÎąÏ‚. Îđ2Ïē1χÎđÎŧÎŊÎąÏē. Îđ2Ïē1χÎđÎŧá―·ÎąÏē. Îđ2σ1χÎđÎŧÎŊÎąÏƒ. Îđ2σ1χÎđÎŧá―·ÎąÏƒ. Îđ2σ1χÎŊÎŧÎđÎą. Îđ2σ1Ï‡á―·ÎŧÎđÎą. Îđ2Ïē1χÎŊÎŧÎđÎą. Îđ2Ïē1Ï‡á―·ÎŧÎđÎą. Îđ2σ1ΞύρÎđÎŋÎđ. Îđ2σ1Ξá―ŧρÎđÎŋÎđ. Îđ2Ïē1ΞύρÎđÎŋÎđ. Îđ2Ïē1Ξá―ŧρÎđÎŋÎđ. Îđ2σ1ΞυρÎŊÏ‰Î―. Îđ2σ1ÎžÏ…Ïá―·Ï‰Î―. Îđ2Ïē1ΞυρÎŊÏ‰Î―. Îđ2Ïē1ÎžÏ…Ïá―·Ï‰Î―. Îđ2σ1ΞυρÎŊÎŋÎđς. Îđ2σ1ÎžÏ…Ïá―·ÎŋÎđς. Îđ2Ïē1ΞυρÎŊÎŋÎđÏē. Îđ2Ïē1ÎžÏ…Ïá―·ÎŋÎđÏē. Îđ2σ1ΞυρÎŊÎŋÎđσ. Îđ2σ1ÎžÏ…Ïá―·ÎŋÎđσ. Îđ2σ1ΞυρÎŊÎŋυς. Îđ2σ1ÎžÏ…Ïá―·Îŋυς. Îđ2Ïē1ΞυρÎŊÎŋυÏē. Îđ2Ïē1ÎžÏ…Ïá―·ÎŋυÏē. Îđ2σ1ΞυρÎŊÎŋυσ. Îđ2σ1ÎžÏ…Ïá―·Îŋυσ. Îđ2σ1ΞύρÎđÎąÎđ. Îđ2σ1Ξá―ŧρÎđÎąÎđ. Îđ2Ïē1ΞύρÎđÎąÎđ. Îđ2Ïē1Ξá―ŧρÎđÎąÎđ. Îđ2σ1ΞυρÎŊÎąÎđς. Îđ2σ1ÎžÏ…Ïá―·ÎąÎđς. Îđ2Ïē1ΞυρÎŊÎąÎđÏē. Îđ2Ïē1ÎžÏ…Ïá―·ÎąÎđÏē. Îđ2σ1ΞυρÎŊÎąÎđσ. Îđ2σ1ÎžÏ…Ïá―·ÎąÎđσ. Îđ2σ1ΞυρÎŊÎąÏ‚. Îđ2σ1ÎžÏ…Ïá―·ÎąÏ‚. Îđ2Ïē1ΞυρÎŊÎąÏē. Îđ2Ïē1ÎžÏ…Ïá―·ÎąÏē. Îđ2σ1ΞυρÎŊÎąÏƒ. Îđ2σ1ÎžÏ…Ïá―·ÎąÏƒ. Îđ2σ1ΞύρÎđÎą. Îđ2σ1Ξá―ŧρÎđÎą. Îđ2Ïē1ΞύρÎđÎą. Îđ2Ïē1Ξá―ŧρÎđÎą. Îđ2σ1χÎđÎŧÎđÎŋστ Îđ2Ïē1χÎđÎŧÎđÎŋÏēτ Îđ2σ1ΞυρÎđÎŋστ Îđ2Ïē1ΞυρÎđÎŋÏēτ Îđ2σ1χÎđÎŧÎđΎΚÎđς. Îđ2σ1χÎđÎŧÎđá―ąÎšÎđς. Îđ2Ïē1χÎđÎŧÎđΎΚÎđÏē. Îđ2Ïē1χÎđÎŧÎđá―ąÎšÎđÏē. Îđ2σ1χÎđÎŧÎđΎΚÎđσ. Îđ2σ1χÎđÎŧÎđá―ąÎšÎđσ. Îđ2σ1ΞυρÎđΎΚÎđς. Îđ2σ1ΞυρÎđá―ąÎšÎđς. Îđ2Ïē1ΞυρÎđΎΚÎđÏē. Îđ2Ïē1ΞυρÎđá―ąÎšÎđÏē. Îđ2σ1ΞυρÎđΎΚÎđσ. Îđ2σ1ΞυρÎđá―ąÎšÎđσ.",
["lefthyphenmin"]=1,
- ["length"]=64406,
- ["n"]=4418,
+ ["length"]=63005,
+ ["n"]=4296,
["righthyphenmax"]=1,
},
["version"]="1.001",
diff --git a/Master/texmf-dist/tex/context/patterns/mkiv/lang-bg.lua b/Master/texmf-dist/tex/context/patterns/mkiv/lang-bg.lua
index 7bcc691086b..46874dedb47 100644
--- a/Master/texmf-dist/tex/context/patterns/mkiv/lang-bg.lua
+++ b/Master/texmf-dist/tex/context/patterns/mkiv/lang-bg.lua
@@ -6,902 +6,97 @@ return {
["metadata"]={
["mnemonic"]="bg",
["source"]="hyph-bg",
- ["texcomment"]="% copyright: Copyright (C) 2000, 2004, 2017 by Anton Zinoviev <anton@lml.bas.bg>\
+ ["texcomment"]="% copyright: Copyright (c) 1994-2008, Georgi Boshnakov\
% title: Bulgarian hyphenation patterns\
-% version: 21 October 2017\
+% version: 1.7, July 2008\
% language:\
% name: Bulgarian\
-% tag: bg\
+% code: bg\
% notice: >\
% This file is part of the hyph-utf8 package.\
% See http://www.hyphenation.org for more information.\
% authors:\
-% -\
-% name: Anton Zinoviev\
-% contact: anton:lml.bas.bg\
+% -\
+% name: Georgi Boshnakov\
+% contact: manchester.ac.uk:georgi.boshnakov\
% licence:\
+% - This file is available under any of these licences:\
+% -\
+% name: LPPL\
+% version: 1.0\
+% later_authorised: true\
+% url: https://latex-project.org/lppl/lppl-1-0.html\
+% -\
+% name: MIT\
+% url: https://opensource.org/licenses/MIT\
% text: >\
-% This software may be used, modified, copied, distributed, and sold,\
-% both in source and binary form provided that the above copyright\
-% notice and these terms are retained. The name of the author may not\
-% be used to endorse or promote products derived from this software\
-% without prior permission. THIS SOFTWARE IS PROVIDES \"AS IS\" AND\
-% ANY EXPRESS OR IMPLIED WARRANTIES ARE DISCLAIMED. IN NO EVENT\
-% SHALL THE AUTHOR BE LIABLE FOR ANY DAMAGES ARISING IN ANY WAY OUT\
-% OF THE USE OF THIS SOFTWARE.\
+% Permission is hereby granted, free of charge, to any person\
+% obtaining a copy of this software and associated documentation\
+% files (the \"Software\"), to deal in the Software without\
+% restriction, including without limitation the rights to use,\
+% copy, modify, merge, publish, distribute, sublicense, and/or sell\
+% copies of the Software, and to permit persons to whom the\
+% Software is furnished to do so, subject to the following\
+% conditions:\
+%\
+% The above copyright notice and this permission notice shall be\
+% included in all copies or substantial portions of the Software.\
+%\
+% THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\
+% EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\
+% OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\
+% NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\
+% HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\
+% WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\
+% FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\
+% OTHER DEALINGS IN THE SOFTWARE.\
% hyphenmins:\
-% typesetting:\
+% for_typesetting:\
% left: 2\
% right: 2\
-% changes: See below\
+% changes:\
+% -\
+% date: 2008-06\
+% description: Changed encoding to UTF-8\
+% -\
+% date: 2006-05\
+% description: Added copyright notice\
+% -\
+% date: 2000-06\
+% description: Minor changes\
+% -\
+% date: 1994\
+% description: First version\
% ==========================================\
-% Copyright (C) 2000,2004,2017 by Anton Zinoviev <anton@lml.bas.bg>\
+% Note: The original name of this file was 'bghyphsi.tex' which is\
+% part of the package 'bghyphen'. The package 'bghyphen' is now\
+% obsolete but it is still available on CTAN and currently (June 2008)\
+% gives the same hyphenation results.\
+%\
+%\
%\
-% This software may be used, modified, copied, distributed, and sold,\
-% both in source and binary form provided that the above copyright\
-% notice and these terms are retained. The name of the author may not\
-% be used to endorse or promote products derived from this software\
-% without prior permission. THIS SOFTWARE IS PROVIDES \"AS IS\" AND\
-% ANY EXPRESS OR IMPLIED WARRANTIES ARE DISCLAIMED. IN NO EVENT\
-% SHALL THE AUTHOR BE LIABLE FOR ANY DAMAGES ARISING IN ANY WAY OUT\
-% OF THE USE OF THIS SOFTWARE.\
+% To make TeX use these patterns:\
%\
-% Bulgarian hyphenation patterns\
+% (1) Make sure that the hyph-utf8 package is present in your TeX\
+% system.\
%\
-% Generated by ./hyph-bg.sh --safe-morphology --standalone-tex\
+% (2) generate the necessary formats (TeX, LaTeX, pdfLaTeX, etc),\
+% instructing TeX to load 'loadhyph-bg.tex' for Bulgarian\
+% hyphenation.\
%\
-% Both left and right hyphenmins should be set to 2.\
+% The LaTeX babel package sets \\lefthyphenmin and \\righthyphenmin to 2\
+% when the language is switched to Bulgarian. Developers who write\
+% support for Bulgarian outside LaTeX and/or babel need to take care\
+% of this.\
%\
-% % Automated Bulgarian Hyphenation\
-% % Anton Zinoviev\
-% % 21 October 2017\
-% \
-% Principles of the Bulgarian hyphenation\
-% =======================================\
-% \
-% One specificity of the Bulgarian language is that the average length\
-% of the words is greater than in English. When typesetting a Bulgarian\
-% text, hyphenation is more important than when typesetting an English\
-% text. Knuth's algorithm for line-breaking is such that in most\
-% English paragraphs no hyphenation will be used. With a Bulgarian\
-% text, however, even the Knuth's algorithm will use hyphenation in most\
-% paragraphs. Hyphenation becomes an absolute necessity if we want to\
-% obtain nice, justified paragraphs when using a software with dumb\
-% line-breaking algorithm, such as LibreOffice.\
-% \
-% According to Decree 936 of the Council of Ministers promulgated on 27\
-% November 1950, the Institute for Bulgarian Language at the Bulgarian\
-% Academy of Sciences is authorised to publish the rules of the\
-% orthography of the Bulgarian language (within certain limits).\
-% \
-% Hyphenation rules between 1945 and 1983\
-% ---------------------------------------\
-% \
-% Between 1945 and 1983 Bulgarian used syllable hyphenation with two\
-% morphological exceptions: hyphenation is preferred between a prefix\
-% and a stem and at the boundary of compound words. The following were\
-% the rules governing the hyphenation:\
-% \
-% 1. One letter does not stay alone. Words of one syllable can not be\
-% hyphenated.\
-% 2. No hyphenation before or after ŅŒ.\
-% 3. In a sequence of vowels at least one vowel stays before the\
-% hyphen.\
-% 4. A single consonant between two vowels links with the second vowel.\
-% For example ÐŋÐū-ÐŧÐĩ /po-le/, Ņ€Ð°-ÐąÐū-Ņ‚а /ra-bo-ta/.\
-% 5. In a sequence of consonants between two vowels, at least one\
-% consonant stays with the second vowel. For example Ņ‚Ðĩ-ŅŅ‚Ðū /te-sto/\
-% or Ņ‚ÐĩŅ-Ņ‚Ðū /tes-to/.[^b]\
-% 6. In a sequence of consonants between two vowels, if the first\
-% consonant is sonorant (Ðđ /y/, Ðŧ /l/, О /m/, Ð― /n/, Ņ€ /r/), then it\
-% stays with the first vowel. For example ÐģÐĩŅ€-ÐīÐ°Ð― /ger-dan/, ŅÐĩÐ―-КÐļ\
-% /sen-ki/.\
-% 7. The hyphenation separates two successive equal consonants. For\
-% example ÐēŅ€ÐĩОÐĩÐ―-Ð―Ðū /vremen-no/, ÐŋŅ€ÐūÐŧÐĩŅ‚-Ņ‚а /prolet-ta/.\
-% 8. When the letters ÐīÐķ /dzh/ and Ðīз /dz/ denote a single consonant,\
-% then they are not separated. For example ÐąÐūŅ-ÐīÐķÐļŅ /boya-dzhiya/\
-% but not ÐąÐūŅÐī-ÐķÐļŅ /boyad-zhiya/. When these letters denote two\
-% consonants, then the normal rules apply: Ð―Ð°Ðī-ÐķÐļÐēŅÐēаО\
-% /nad-zhivyavam/.\
-% 9. Word prefixes may not be broken. Compound words are hyphenated\
-% either at the boundary of the components or the hyphenation rules\
-% are applied to each of the components separately. For example:\
-% ÐŋŅ€ÐĩÐī-ŅƒÐŋŅ€ÐĩÐķÐīаÐēаО /pred-uprezhdavam/ (not ÐŋŅ€Ðĩ-ÐīŅƒÐŋŅ€ÐĩÐķÐīаÐēаО\
-% /pre-duprezhdavam/), ÐŋŅ€ÐĩÐī-ÐļзÐēÐĩŅŅ‚ÐļÐĩ /pred-izvestie/ (not\
-% ÐŋŅ€Ðĩ-ÐīÐļзÐēÐĩŅŅ‚ÐļÐĩ /pre-dizvestie/), за-ÐīÐēÐļÐķÐēаО /za-dvizhvam/ (not\
-% заÐī-ÐēÐļÐķÐēаО /zad-vizhvam/), аÐēŅ‚Ðū-КÐŧŅƒÐą /avto-klub/ (not аÐēŅ‚ÐūК-ÐŧŅƒÐą\
-% /avtok-lub/), ÐēаКŅƒŅƒÐž-аÐŋаŅ€Ð°Ņ‚ /vakuum-aparat/ (not ÐēаКŅƒŅƒ-ОаÐŋаŅ€Ð°Ņ‚\
-% /vakuu-maparat/).\
-% \
-% In some rare cases the proper application of rule 9 depends on the\
-% semantics of the word. For example ÐŋŅ€Ðĩ-ÐīŅ€ÐĩŅˆÐ° /pre-dresha/ 'change\
-% clothes' but ÐŋŅ€ÐĩÐī-Ņ€ÐĩŅˆÐ° /pred-resha/ 'predetermine' or ÐŋŅ€ÐĩŅ-ÐŋÐļŅ‚Ðĩ\
-% /pres-pite/ 'the snow-drifts' but ÐŋŅ€Ðĩ-ŅÐŋÐļŅ‚Ðĩ /pre-spite/ 'sleep for a\
-% while/overnight'.\
-% \
-% [^b]: In several publications this rule is formulated with the\
-% additional restriction that the sequence of consonants begins with\
-% an obstruent. I believe this restriction is unintentional. It\
-% makes no sense to forbid a hyphenation of the form AB-A but to\
-% permit ABB-A (A denotes a vowel and B – a consonant).\
-% \
-% Hyphenation rules between 1983 and 2012\
-% ---------------------------------------\
-% \
-% The Orthographic dictionary published by the Institute for Bulgarian\
-% language in 1983 introduced new hyphenation rules. The complexity of\
-% the previous rules was the main reason for the change. The new rules\
-% aimed at two objectives: simplicity and unambiguity.\
-% \
-% The new rules are:\
-% \
-% 1. A consonant between two vowels links with the second vowel. For\
-% example ÐēÐļ-ŅÐū-Ņ‡Ðļ-Ð―Ð° /vi-so-chi-na/.\
-% 2. In a sequence of two or more consonants between two vowels, at\
-% least one consonant stays with first vowel and at least one with\
-% the second vowel. For example ŅÐĩŅ-Ņ‚Ņ€Ð° /ses-tra/ and ŅÐĩŅŅ‚-Ņ€Ð°\
-% /sest-ra/.\
-% 3. Two equal consonants are separated. For example ÐŋÐŧÐĩÐ―-Ð―ÐļК\
-% /plen-nik/.\
-% 4. In a sequence of two or more vowels, the first vowel stays before\
-% the hyphen. For example ÐŋŅ€Ðĩ-ÐūÐīÐūÐŧÐĩŅ /pre-odoleya/ and ÐŋŅ€ÐĩÐū-ÐīÐūÐŧÐĩŅ\
-% /preo-doleya/.\
-% 5. In a sequence of three or more vowels, the last vowel stays after\
-% the hyphen. For example ОаÐū-ÐļзŅŠÐž /mao-izam/ but not ОаÐūÐļ-зŅŠÐž\
-% /maoi-zam/.\
-% 6. The letter Ðđ /y/ between a vowel and a consonant stays with the\
-% vowel. For example ОаÐđ-Ка /may-ka/.\
-% 7. When a sequence of two or more consonants follows Ðđ /y/ then at\
-% least one consonant links with Ðđ /y/. For example аÐđŅ-ÐąÐĩŅ€Ðģ\
-% /ays-berg/ (not аÐđ-ŅÐąÐĩŅ€Ðģ /ay-sberg/).\
-% 8. The letter Ðđ /y/ between two vowels links with the second vowel.\
-% For example Оа-ÐđÐūŅ€ /ma-yor/.\
-% 9. No hyphenation before or after ŅŒ.\
-% 10. When the letters ÐīÐķ /dzh/ denote a single consonant, then they are\
-% not separated. For example ŅŅƒ-ÐīÐķŅƒÐš /su-dzhuk/ (not ŅŅƒÐī-ÐķŅƒÐš\
-% /sud-zhuk/) but Ð―Ð°Ðī-ÐķÐļÐēÐĩŅ /nad-zhiveya/.\
-% 11. There must be at least one vowel before and after the hyphen.\
-% 12. One letter does not stay alone.\
-% \
-% The total disregard of the morphology by these rules leads to some\
-% strange results. For example ÐŋŅ€Ðĩ-ÐīÐļзÐēÐĩŅŅ‚ÐļÐĩ /pre-dizvestie/ is\
-% permitted and ÐŋŅ€ÐĩÐī-ÐļзÐēÐĩŅŅ‚ÐļÐĩ /pred-izvestie/ is forbidden, заÐī-ÐēÐļÐķÐēаО\
-% /zad-vizhvam/ is permitted and за-ÐīÐēÐļÐķÐēаО /za-dvizhvam/ is forbidden,\
-% аÐēŅ‚ÐūК-ÐŧŅƒÐą /avtok-lub/ is permitted and аÐēŅ‚Ðū-КÐŧŅƒÐą /avto-klub/ is\
-% forbidden, ÐēаКŅƒŅƒ-ОаÐŋаŅ€Ð°Ņ‚ /vakuu-maparat/ is permitted and\
-% ÐēаКŅƒŅƒÐž-аÐŋаŅ€Ð°Ņ‚ /vakuum-aparat/ is forbidden. Because of this, the new\
-% rules were not universally accepted. The old rules are still\
-% mentioned in various places in Internet, they are included even in\
-% some grammar books published by the publishing houses of the Ministry\
-% of Education and of Sofia University. The software developers,\
-% however, soon came into love with the new hyphenation rules.\
-% \
-% Hyphenation rules after 2012\
-% ----------------------------\
-% \
-% In 2012 new rules came into force. There are two differences with\
-% respect to the previous rules:\
-% \
-% 1. Rule 5 of the previous rules is revoked. For example ОаÐūÐļ-зŅŠÐž\
-% /maoi-zam/ becomes a valid hyphenation.\
-% 2. The new rules permit morphologically based hyphenation (however it\
-% is not obligatory). For example ÐŋŅ€ÐĩÐī-ÐļзÐēÐĩŅŅ‚ÐļÐĩ /pred-izvestie/,\
-% за-ÐīÐēÐļÐķÐēаО /za-dvizhvam/, аÐēŅ‚Ðū-КÐŧŅƒÐą /avto-klub/, ÐēаКŅƒŅƒÐž-аÐŋаŅ€Ð°Ņ‚\
-% /vakuum-aparat/ are valid hyphenations.\
-% \
-% Good hyphenation is a complex matter and it seems the linguists at the\
-% Institute for Bulgarian Language have recognised this. They no longer\
-% attempt to provide universal rules about everything. Instead, they\
-% provide some very permissible rules while the good application of\
-% these rules is leaved to the discretion and the experience of the\
-% printers and the developers of hyphenation software.\
-% \
-% It makes sense to use at least two different sets of hyphenation rules\
-% for Bulgarian. In most cases a more restrictive version should be\
-% used, one which attempts to eliminate the controversial cases of\
-% hyphenation. When typesetting a Bulgarian text in a narrow newspaper\
-% column, however, it will be appropriate to use more liberal\
-% hyphenation rules. It should be noted that one of the reasons for the\
-% hyphenation reform in 1983 was the desire to fix the chaotic\
-% hyphenation in the Bulgarian newspapers at that time.\
-% \
-% Computer implementations\
-% ========================\
-% \
-% Mathematical analysis of the Bulgarian hyphenation\
-% --------------------------------------------------\
-% \
-% The earliest mathematical analysis of the Bulgarian hyphenation rules\
-% belongs to Veska Noncheva.[^1] In 1988 she proposed a mathematical\
-% formalisation of the hyphenation rules in a table with 22 rows.[^2]\
-% \
-% [^1]: <http://www.researchgate.net/profile/Veska_Noncheva>\
-% \
-% [^2]: НÐūÐ―Ņ‡ÐĩÐēа В. АÐŧÐģÐūŅ€ÐļŅ‚ŅŠÐž за аÐēŅ‚ÐūОаŅ‚ÐļŅ‡Ð―Ðū ÐŋŅ€ÐĩÐ―Ð°ŅŅÐ―Ðĩ Ð―Ð° ÐīŅƒÐžÐļ Ðē\
-% ÐąŅŠÐŧÐģаŅ€ŅÐšÐļŅ ÐĩзÐļК. МаŅ‚ÐĩОаŅ‚ÐļКа Ðļ ОаŅ‚ÐĩОаŅ‚ÐļŅ‡ÐĩŅÐšÐū\
-% ÐūÐąŅ€Ð°Ð·ÐūÐēÐ°Ð―ÐļÐĩ. ÐĄÐą. ÐīÐūКÐŧаÐīÐļ Ð―Ð° 17. ПК Ð―Ð° ÐĄÐœÐ‘. ÐĄ., БАН, 1988, 479-482.\
-% \
-% In the same year Eugene Belogay[^3] proposed an alternative\
-% formalisation with only 9 rules.[^4] Belogay proved that his rules are\
-% consistent and that they form a minimal set. The rules of Belogay\
-% have negative character – every hyphenation which is not forbidden by\
-% a rule is possible hyphenation.\
-% \
-% [^3]: <http://www.linkedin.com/in/belogay>\
-% \
-% [^4]: БÐĩÐŧÐūÐģаÐđ Е. АÐŧÐģÐūŅ€ÐļŅ‚ŅŠÐž за аÐēŅ‚ÐūОаŅ‚ÐļŅ‡Ð―Ðū ÐŋŅ€ÐĩÐ―Ð°ŅŅÐ―Ðĩ Ð―Ð° ÐīŅƒÐžÐļ. КÐūОÐŋŅŽŅ‚ŅŠŅ€\
-% за ÐēаŅ (1988) 3, 12-14.\
-% \
-% The following are the first 7 rules, as formulated by Belogay:\
-% \
-% 1. Б-А\
-% 2. А-ББ\
-% 3. Б-ÐĒÐĒ, ÐĒÐĒ-Б\
-% 4. ААА-Б\
-% 5. Ðđ-ББ\
-% 6. Б-ŅŒ\
-% 7. Ðī-Ðķ\
-% \
-% Here А denotes an arbitrary vowel letter, Б denotes an arbitrary\
-% consonant letter (including ŅŒ and Ðđ), ÐĒÐĒ denotes a sequence of two\
-% equal consonant letters and the letters Ðđ, ŅŒ, Ðī and Ðķ denote\
-% themselves. For example the rule \"Б-А\" says that we are not permitted\
-% to separate a consonant letter from immediately following vowel\
-% letter.\
-% \
-% The eighth rule of Belogay says that hyphenation is forbidden before\
-% the first and after the last vowel letter. The ninth rule of Belogay\
-% says that hyphenation is forbidden immediately after the first or\
-% immediately before the last letter of the word.\
-% \
-% Notice that is is very easy to translate the rules of Belogay in the\
-% form, required for the hyphenation algorithm of Knuth and Liang used\
-% in TeX.[^a] Let us remind that this algorithm matches the word with a\
-% set of string patterns in which the odd numbers say hyphenation is\
-% permitted in this position and even numbers say the hyphenation is\
-% forbidden. When two patterns give conflicting numbers for the same\
-% position, then the greater number wins.\
-% \
-% First, since the rules of Belogay are negative (they say where\
-% hyphenation is forbidden, not where it is permitted), we have to\
-% permit the hyphenation everywhere:\
-% \
-% 1. А1\
-% 2. Б1\
-% \
-% Then, the first seven rules of Belogay obtain the form:\
-% \
-% 1. Б2А\
-% 2. А2ББ\
-% 3. Б2ÐĒÐĒ ÐĒÐĒ2Б\
-% 4. ААА2Б\
-% 5. Ðđ2ББ\
-% 6. Б2ŅŒ\
-% 7. Ðī2Ðķ\
-% \
-% Since no Bulgarian word starts with more that four consonants and no\
-% Bulgarian word ends with more than three consonants, the eighth rule\
-% of Belogay can be translated in the following way:\
-% \
-% 1. .Б2\
-% 2. .ББ2\
-% 3. .БББ2\
-% 4. 2Б.\
-% 5. 2ББ.\
-% \
-% The ninth rule of Belogay means that left and right hyphen mins should\
-% be set to 2.\
-% \
-% The work of Eugene Belogay was not limited to merely a mathematical\
-% analysis of the Bulgarian hyphenation rules. In his paper he\
-% published a short algorithm in Pascal which implements these rules.\
-% It didn't take long for this algorithm to be used in various text\
-% processing software. The algorithm of Belogay was famous for many\
-% years. Even as late as 1997 in one book about TeX, the author didn't\
-% care to give any explanations but simply wrote about \"the algorithm of\
-% Belogay\" as something well known to the reader.[^5]\
-% \
-% [^a]: Liang, Franklin Mark. Word Hy-phen-a-tion by\
-% Com-put-er (Doctoral Dissertation). Stanford University, 1983\
-% \
-% [^5]: ВаŅÐļÐŧÐĩÐē В. ÐĢÐŧŅ‚ÐļОаŅ‚ÐļÐēÐ―ÐļŅŅ‚ ÐĒÐĩÐĨ. ÐĢÐīÐūÐēÐūÐŧŅŅ‚ÐēÐļÐĩŅ‚Ðū Ðīа ÐŋŅ€Ð°ÐēÐļО\
-% ÐŋŅ€ÐĩÐīÐŋÐĩŅ‡Ð°Ņ‚Ð―а ÐŋÐūÐīÐģÐūŅ‚ÐūÐēКа ŅÐ°ÐžÐļ. ÐĄÐūŅ„ÐļŅ, Ð˜Ð―Ņ‚ÐĩÐŧа, 1997, 36\
-% \
-% Bulgarian hyphenation in TeX\
-% ----------------------------\
-% \
-% One unfortunate design decision of Knuth was that the hyphenation\
-% algorithm of TeX applied the hyphenation patterns not to the input\
-% character codes but to the internal codes of the glyphs in the font.\
-% This created a problem for the Cyrillic languages because in TeX the\
-% Cyrillic fonts did not have standardised encoding. Perhaps this is\
-% one of the reasons why the earliest implementations of the Bulgarian\
-% hyphenation in TeX did not rely on the internal hyphenation algorithm\
-% of TeX. Instead, external tools were used to insert soft hyphens in\
-% all Bulgarian words. For example such a tool would replace the word\
-% ŅŅ€ÐļŅ‡ÐšÐūÐŋŅ€ÐĩÐ―Ð°ŅŅÐ―Ðĩ /srichkoprenasyane/ with\
-% ŅŅ€ÐļŅ‡\\\\-КÐūÐŋ\\\\-Ņ€Ðĩ\\\\-Ð―Ð°\\\\-ŅŅ\\\\-Ð―Ðĩ /srich\\\\-kop\\\\-re\\\\-na\\\\-sya\\\\-ne/.\
-% The saying \"To every disadvantage there is a corresponding advantage\"\
-% is true – since Cyrillic and Latin letters use different character\
-% codes, an external tool could easily insert soft hyphens in all\
-% Bulgarian words while leaving the TeX commands intact.\
-% \
-% The earliest known attempt to use the hyphenation algorithm of TeX for\
-% Bulgarian was made by Ognyan Tonev in 1990.[^6] He described his work\
-% as \"a not very good translation of the rules. I work in this\
-% direction. But I don't have a 100% working complect of patterns. So,\
-% the copy I send to you[^7] is only a beta-version.\" The hyphenation\
-% patterns of Tonev don't work correctly and it seems he never completed\
-% his work.\
-% \
-% [^6]: The author of this text was unable to find current information\
-% about Ognyan Tonev in Internet. Apparently in 1990 he worked in\
-% the Center of Informatics and Computer Technology of the Bulgarian\
-% Academy of Sciences.\
-% \
-% [^7]: To Yannis Haralambous,\
-% <http://perso.telecom-bretagne.eu/yannisharalambous>\
-% \
-% The first usable Bulgarian hyphenation patterns for TeX were developed\
-% by Georgi Boshnakov[^8] in 1994. In order to solve the encoding\
-% problem, Boshnakov had developed TeX fonts supporting the MIK encoding\
-% (the prevalent encoding at that time in Bulgaria). This allowed him\
-% to introduce a fully working implementation only a few months after\
-% LaTeX2e became the official LaTeX version. Later Boshnakov modified\
-% his work with the Babel system. The hyphenation patterns of Boshnakov\
-% did their job well enough, so that for almost quarter a century after\
-% their initial creation, they remained the only Bulgarian hyphenation\
-% patterns in the standard distributions of TeX and CTAN.\
-% \
-% [^8]: <http://www.maths.manchester.ac.uk/~gb/>\
-% \
-% There are some similarities between the patterns of Boshnakov and the\
-% patterns of Belogay. The following are the main differences.\
-% \
-% First, Boshnakov used an ingenious and more compact implementation of\
-% the second and the third rule. Instead of {А2ББ, Б2ÐĒÐĒ, ÐĒÐĒ2Б}, or\
-% 8×22×22+22×22+22×22=4840 patterns in total, Boshnakov has patterns of\
-% the form 2Б3Б2 and 4ÐĒ3ÐĒ4, or only 22×22=484 in total, with the same\
-% effect.\
-% \
-% The second main difference between the patterns of Boshnakov and the\
-% patterns of Belogay concerns the letter combination ÐīÐķ /dzh/. In\
-% Bulgarian this letter combination can denote either a single\
-% consonant, or a sequence of two consonants and the hyphenation rules\
-% change respectively. Unfortunately, it is impossible to know the\
-% meaning of ÐīÐķ /dzh/ without a vocabulary. The solution of Belogay was\
-% a cautious one – his rules do the hyphenation in a way which will be\
-% correct regardless of whether ÐīÐķ /dzh/ is a single consonant or a\
-% sequence of two consonant. On the other hand, the approach of\
-% Boshnakov is a bold one – since ÐīÐķ /dzh/ is more often a single\
-% consonant, his rules assume that it is always a single consonant. The\
-% number of the cases when this decision leads to bad hyphenations is\
-% insignificant in comparison with the cases in which we obtain improved\
-% hyphenation.\
-% \
-% The third main difference between the patterns of Boshnakov and the\
-% patterns of Belogay concerns the eighth rule – its implementation in\
-% the rules of Boshnakov is rather limited which leads to wrong\
-% hyphenations like ÐąŅ€Ðļ-ÐīÐķ /bri-dzh/. A full implementation of this\
-% rule would require 11660 patterns in total and this would be too much\
-% for the computers in 1994.\
-% \
-% Later developments\
-% ------------------\
-% \
-% In 1995 Atanas Topalov defended a Masters thesis in the Faculty of\
-% Mathematics and Informatics at Sofia University titled \"Algorithms and\
-% software about text processing\".[^9] One of the main topics in his\
-% thesis was the Bulgarian hyphenation. Topalov criticised vehemently\
-% the official hyphenation rules and their total disregard of the\
-% morphology. He wrote:\
-% \
-% > If we look at the history of the problems of the hyphenation, we\
-% > will discover something very strange. Instead of the expected\
-% > involvement with the depths and aspiration for more admissible and\
-% > satisfactory style, we can find a growing tendency for\
-% > simplification. One unpleasant discovery is that the development of\
-% > the hyphenation software stays firmly on the principle \"let us do\
-% > the easiest thing\". The earliest works which have been studied are\
-% > from 1978. It turned out that they present the best approach\
-% > concerning the automated hyphenation. The authors have chosen the\
-% > most difficult but the most correct (from literary point of view)\
-% > method for hyphenation, namely the morphological approach.\
-% \
-% Topalov proposed his own hyphenation algorithm. The hyphenation it\
-% generated was smooth and easy to read. One obvious defect of the\
-% algorithm of Topalov was that it contradicted the official hyphenation\
-% rules at that time. One can argue, however, that his algorithm is\
-% compatible with the current hyphenation rules.\
-% \
-% [^9]: The thesis of Atanas Topalov can be accessed at the author's\
-% website <http://www.mind-print.com>\
-% \
-% In 1999 Svetla Koeva[^10] wrote a paper about the automated Bulgarian\
-% hyphenation.[^11] At that time she was a junior member of the\
-% Department of Computational Linguistics at the Institute for Bulgarian\
-% Language but now she is a director of the whole institute. The paper\
-% of Koeva contains a list of hyphenation patterns which can be used as\
-% a basis of automated hyphenation. In 2004 with the help of Stoyan\
-% Mihov[^12] the rules of Koeva were formalised with regular relations\
-% and rewriting rules. They were implemented in a software product\
-% named ItaEst which provided Bulgarian hyphenation and grammar checking\
-% for various software products of Microsoft and Apple.\
-% \
-% [^10]: <http://dcl.bas.bg/svetla_koeva/>\
-% \
-% [^11]: КÐūÐĩÐēа, ÐĄÐēÐĩŅ‚Ðŧа. ПŅ€Ð°ÐēÐļÐŧа за ÐŋŅ€ÐĩÐ―Ð°ŅŅÐ―Ðĩ Ð―Ð° Ņ‡Ð°ŅŅ‚Ðļ ÐūŅ‚ ÐīŅƒÐžÐļŅ‚Ðĩ Ð―Ð° Ð―ÐūÐē\
-% Ņ€ÐĩÐī. БŅŠÐŧÐģаŅ€ŅÐšÐļ ÐĩзÐļК. 1999/2000, 1, 84-86\
-% \
-% [^12]: <http://lml.bas.bg/~stoyan/>\
-% \
-% The main differences between the hyphenation of Koeva and the official\
-% hyphenation rules effective after 2012 is that the separation of a\
-% long sequence of consonants between two vowels is done according to\
-% the rules valid before 1983. For example ŅÐĩ-ŅŅ‚Ņ€Ð° /se-stra/ and\
-% аÐđ-ŅÐąÐĩŅ€Ðģ /ay-sberg/ are permitted. The main difference between the\
-% hyphenation of Koeva and the official hyphenation rules effective\
-% before 1983 is that the rules of Koeva disregard the morphology of the\
-% words. The following rule of Koeva is specific: in a sequence of two\
-% sonorant consonants between two vowels, we are permitted to separate\
-% the first vowel from the first consonant, for example ОаŅ‚ÐĩŅ€Ðļа-ÐŧÐ―Ð°\
-% /materia-lna/.\
-% \
-% In 2000 Anton Zinoviev[^13] created new hyphenation patterns for TeX.\
-% He didn't know about the previous work of Boshnakov and he didn't\
-% bother to make his work available in the various TeX distributions and\
-% CTAN. His work was used mostly by the local Linux enthusiasts and the\
-% colleagues of Zinoviev. In 2001 Radostin Radnev[^14] created a free\
-% grammar dictionary of Bulgarian[^15] where he used the hyphenation\
-% patterns of Zinoviev. From there the work of Zinoviev propagated to\
-% OpenOffice, LibreOffice and various online dictionaries, including\
-% <http://bg.wiktionary.org> and <http://rechnik.chitanka.info>.\
-% \
-% [^13]: The author of this text.\
-% \
-% [^14]: <http://bg.linkedin.com/in/radostinradnev>\
-% \
-% [^15]: <http://bgoffice.sourceforge.net/>\
-% \
-% The following are the main differences between the hyphenation of\
-% Zinoviev and the hyphenation of Boshnakov.\
-% \
-% First, the eighth rule of Belogay is fully implemented.\
-% \
-% Second, the rules of Zinoviev try to detect when the letters ÐīÐķ /dzh/\
-% (and Ðīз /dz/) denote a single consonant and when they denote a\
-% sequence of two consonants. By default, however, Zinoviev (like\
-% Boshnakov) assumes that ÐīÐķ /dzh/ is a single consonant and hyphenates\
-% accordingly.\
-% \
-% Third, the rules of Zinoviev disable some cases of unpleasant\
-% hyphenations:\
-% \
-% 1. In a consonant sequence like Ņ‚ŅŅ‚ /tst/, the two equal consonants Ņ‚\
-% /t/ are separated. For example ÐąŅ€Ð°Ņ‚ŅŅ‚-ÐēÐū /bratst-vo/ is forbidden\
-% while ÐąŅ€Ð°Ņ‚Ņ-Ņ‚ÐēÐū /brats-tvo/ and ÐąŅ€Ð°Ņ‚-ŅŅ‚ÐēÐū /brat-stvo/ are\
-% permitted.\
-% 2. The hyphenation is forbidden after a sonorant consonant following\
-% an obstruent consonant. For example ÐūŅ‚О-Ņ€Ð° /otm-ra/ is forbidden\
-% and ÐūŅ‚-ОŅ€Ð° /ot-mra/ is permitted.\
-% 3. The hyphenation separates two consecutive kindred voiced/voiceless\
-% consonants. For example ŅŅƒÐąÐŋ-Ņ€ÐūÐīŅƒÐšŅ‚ /subp-roduct/ is forbidden and\
-% ŅŅƒÐą-ÐŋŅ€ÐūÐīŅƒÐšŅ‚ /sub-product/ is permitted.\
-% \
-% At the start of his work on the Bulgarian hyphenation, Zinoviev had\
-% the opportunity to discuss the hyphenation with Svetla Koeva. He\
-% remembers that some cases of unpleasant hyphenation were suggested to\
-% him by Koeva. Unfortunately, he hasn't taken notes so now he doesn't\
-% know which cases of unpleasant hyphenation have been suggested to him\
-% by Koeva and which are his own findings.\
-% \
-% The present work\
-% ================\
-% \
-% Motivation\
-% ----------\
-% \
-% The present work was carried out on the initiative of the leader of\
-% the Bulgarian localisation team of Mozilla, who contacted Zinoviev,\
-% Boshnakov and the maintainers of the TeX hyphenation patterns.[^17]\
-% This work pursues the following main objectives:\
-% \
-% 1. to update the hyphenation patterns in accordance with the current\
-% hyphenation rules;\
-% 2. to generate the hyphenation patterns by a publicly available\
-% script;\
-% 3. to make the hyphenation patterns customisable;\
-% 4. to provide documentation for the future developers.\
-% \
-% [^16]: <http://mozillians.org/en-US/u/stoyan/>\
-% \
-% [^17]: <http://hyphenation.org>\
-% \
-% The current official hyphenating rules for Bulgarian are rather\
-% liberal. Very often, in a long sequence of consonants we are\
-% permitted to split the word at any position, for example аÐģÐĩÐ―-Ņ‚-Ņ-Ņ‚-ÐēÐū\
-% /agen-t-s-t-vo/. This is prone to many unusual and unexpected results\
-% that interrupt the attention of the reader or deceive his expectations\
-% during the movement of his eyes to the next line. On the other hand,\
-% in order to produce nice justified paragraphs there is no need for so\
-% many hyphenation possibilities. It would be sufficient even if only\
-% one possible separation between any two syllables was permitted.\
-% \
-% Therefore, it makes sense to use a more restrictive version of the\
-% Bulgarian hyphenation, one which eliminates the controversial cases of\
-% hyphenation. Only when typesetting a Bulgarian text in a very narrow\
-% newspaper column it will be appropriate to use a more liberal version.\
-% It should be noted that some specialised English dictionaries also\
-% separate the word-division positions into two categories – preferred\
-% positions and less recommended positions.\
-% \
-% There are two methods to determine the optimal division within a\
-% sequence of consonants between two vowels:\
-% \
-% * we can hyphenate according to the syllables in the word or\
-% * we can hyphenate morphologically.\
-% \
-% Hyphenation according to the syllables in the word\
-% --------------------------------------------------\
-% \
-% Let us look at the properties of the Bulgarian syllables. All\
-% syllables have the following structure:\
-% \
-% > onset - nucleus - code\
-% \
-% The nucleus in Bulgarian is always a vowel. Both the onset and the\
-% code are (possibly empty) sequences of consonants.\
-% \
-% The Bulgarian syllables adhere to the Sonority Sequencing Principle.\
-% According to this principle, the consonants within the onset have\
-% raising sonority and the consonants within the code have decreasing\
-% sonority.\
-% \
-% Several grammar books agree that the following sonority scale is valid\
-% for Bulgarian:\
-% \
-% > voiceless obtrusive < voiced obtrusive < sonorant consonant < vowel\
-% \
-% According to the investigations of the author, the only exception to\
-% this law is due to the letter Ðē /v/ which is a voiced obtrusive but it\
-% can be used also as a voiceless obtrusive. This exception is due to a\
-% spelling particularity of the Bulgarian language. Whenever the letter\
-% Ðē /v/ seemingly violates the Sonority Sequencing Principle, in the\
-% spoken language this letter is read as Ņ„ /f/, that is as a voiceless\
-% obtrusive (for example the word ÐūŅ‚ÐēŅŅÐšŅŠÐīÐĩ /otvsyakade/ is read as\
-% ÐūŅ‚Ņ„ŅŅÐšŅŠÐīÐĩ /otfsyakade/).[^18]\
-% \
-% [^18]: No Primitive Slavonic word contains the phoneme Ņ„ /f/.\
-% Therefore, we can safely assume that in the Primitive Slavonic\
-% language the consonant Ņ„ /f/ was a positional variant of the consonant\
-% Ðē /v/.\
-% \
-% The author has found that the sonorant consonants in Bulgarian have\
-% their own sonority scale:\
-% \
-% > О /m/ < Ð― /n/ < Ðŧ /l/ < Ņ€ /r/ < Ðđ /y/\
-% \
-% Only a few words such as ÐķÐ°Ð―Ņ€ /zhanr/ and Ņ…ÐļÐžÐ― /himn/ violate this\
-% scale. Such words are always loan-words and their pronunciation is\
-% somewhat problematic for the native Bulgarian speakers.\
-% \
-% In addition to the Sonority Sequencing Principle, the consonant\
-% clusters within the Bulgarian syllable adhere to the following\
-% additional principles:\
-% \
-% 1. Both in the onset and in the code, the labial and dorsal plosives\
-% precede the coronal plosives and affricates.\
-% 2. If the onset or the code contains two plosives or affricates, then\
-% there are no fricatives between them. Few words with the Latin\
-% root 'text' are exceptions: КÐūÐ―Ņ‚ÐĩКŅŅ‚ /kontekst/.\
-% 3. If the onset or the code contains two fricatives other than Ðē /v/,\
-% then there are no plosives or affricates between them.\
-% 4. If the onset or the code contains two plosives or affricates, then\
-% they both have equal sonority (both are voiced, or both are\
-% voiceless).\
-% 5. If the onset or the code contains two fricatives other than Ðē /v/,\
-% then they both have equal sonority (both are voiced, or both are\
-% voiceless).\
-% 6. Neither the onset, nor the code may contain two labial plosives, or\
-% two coronal plosives or affricates or two dorsal plosives.\
-% 7. Neither the onset, nor the code may contain two equal consonants\
-% with the exception of Ðē /v/ (for example ÐēŅ‚ÐēŅŠŅ€ÐīÐļ /vtvardi/).[^19]\
-% \
-% [^19]: Actually, the letter Ðē /v/ is not a real exception because in\
-% all such cases this letter denotes two different consonants – Ðē /v/\
-% and Ņ„ /f/. Only in the Russian loan-word ÐēзÐēÐūÐī /vzvod/ the two\
-% letters Ðē /v/ denote a repeating consonant Ðē /v/.\
-% \
-% From all these properties of the Bulgarian syllable we can deduce the\
-% following hyphenation rules:\
-% \
-% 1. In a sequence МК where М is a consonant with higher sonority than\
-% K, we are not permitted to hyphenate before М. Exception: when М\
-% is Ðē /v/ and К is a voiceless consonant.\
-% 2. In a sequence КМ where М is a consonant with higher sonority than\
-% K, we are not permitted to hyphenate after М.\
-% 3. In a sequence KBT where K and T are plosives or affricates and B is\
-% fricative, we separate K from T.\
-% 4. In a sequence CKB where K is a plosive or affricate and C and B are\
-% fricatives other than Ðē /v/, we separate C from B.\
-% 5. If in a consonant sequence a coronal plosive or affricate ÐĒ is\
-% followed by a labial or dorsal plosive К, then we separate ÐĒ from К.\
-% 6. If a consonant sequence contains two plosives or affricates, one\
-% voiced and one voiceless, then we separate them.\
-% 7. If a consonant sequence contains two fricatives other than Ðē /v/,\
-% one voiced and one voiceless, then we separate them.\
-% 8. If a consonant sequence contains two labial plosives or two coronal\
-% plosives or affricates or two dorsal plosives then they are\
-% separated.\
-% 9. If a consonant sequence contains two equal consonants (not\
-% necessarily consecutive), then they are separated.\
-% \
-% With so many prohibitive rules, a question arises: if we apply all\
-% these rules, aren't we going to eliminate too many hyphenation\
-% possibilities? The answer is no. It can be demonstrated that between\
-% any two consecutive syllables at least one separation point will be\
-% permitted.\
-% \
-% \
-% Hyphenation according to the morphology\
-% ---------------------------------------\
-% \
-% Between 1983 and 2012 the official orthographic rules of the\
-% Bulgarian language forbade morphologically based hyphenation. After\
-% 2012 such hyphenation is permitted (but not obligatory).\
-% \
-% The most important case when it is very desirable to use\
-% morphologically based hyphenation is the case of the compound words.\
-% Divisions such as аÐēŅ‚ÐūК-ÐŧŅƒÐą /avtok-lub/ and ÐēаКŅƒŅƒ-ОаÐŋаŅ€Ð°Ņ‚\
-% /vakuu-maparat/ are extremely irritating even if they are formally\
-% correct. Unfortunately, we do not have a vocabulary of the compound\
-% Bulgarian words that would permit us to produce rules for automated\
-% hyphenation. Therefore, the current Bulgarian hyphenation patterns do\
-% not attempt to apply morphological hyphenation to such words.\
-% \
-% Second in importance (but far more significant in terms of numbers) is\
-% the case with the word prefixes. While the eyes of the reader still\
-% look at the start of the word, the word is still unknown to him. At\
-% this point, it is very important not to deceive his expectations. For\
-% example, when the reader sees Ð―Ð°Ðī- /nad-/ at the end of the line, he\
-% will expect that this is the prefix Ð―Ð°Ðī- /nad-/ with semantics 'attain\
-% more than'. This expectation will be fooled if this wasn't really a\
-% prefix, but a deceiving (while formally correct) hyphenation of the\
-% word Ð―Ð°ÐīŅ€ÐĩОŅ /nadremya/ 'have dozed enough' where the real prefix is\
-% not Ð―Ð°Ðī- /nad-/ but Ð―Ð°- /na-/ with semantics 'achieve a state after\
-% accumulation'. Such hyphenation distracts the reader and makes the\
-% reading more difficult.\
-% \
-% Third in importance is the case with the word suffixes. With respect\
-% to the hyphenation rules we can divide the suffixes into three\
-% categories:\
-% \
-% 1. Suffixes starting with a vowel, for example -аŅ€ /-ar/. It is not\
-% appropriate to follow the morphology with such suffixes because\
-% this will contradict the whole hyphenation tradition of the\
-% Bulgarian language. For example КŅ€Ð°Ðē-аŅ€ /krav-ar/ is unwarranted.\
-% 2. Suffixes starting with one consonant, for example -Ка /-ka/.\
-% Usually with such suffixes the syllable boundary in the word\
-% coincides with morpheme boundary so no specific cares are\
-% necessary, for example КŅ€Ð°ÐēаŅ€-Ка /kravar-ka/. The exceptions are\
-% rare, for example: ÐūÐąÐĩК-Ņ‚Ð―аŅ‚а /obek-tnata/ instead of ÐūÐąÐĩКŅ‚-Ð―Ð°Ņ‚а\
-% /obekt-nata/.\
-% 3. Suffixes starting with more than one consonant (-ŅÐšÐļ /-ski/, -ŅŅ‚ÐēÐū\
-% /-stvo/). It is possible to use morphological hyphenation rules\
-% with such suffixes.\
-% \
-% Even if it is possible to use morphological hyphenation with the\
-% suffixes of the third category, it turns out, this is not as useful as\
-% it is with the case of the prefixes. When the eyes of the reader have\
-% reached this part of the word, the word is already more or less known\
-% to the reader. Therefore, at this point the morphological hyphenation\
-% does not provide any significant advantages in comparison to the\
-% simpler hyphenation based only on the syllables in the word. Consider\
-% for example the word ÐģÐĩŅ€ÐūÐđŅ-Ņ‚ÐēÐū /geroys-tvo/ with suffix -ŅŅ‚ÐēÐū\
-% /-stvo/. When the reader sees ÐģÐĩŅ€ÐūÐđŅ- /geroys-/ at the end of the\
-% line this will give him an early clue that the suffix of the word is\
-% -ŅŅ‚ÐēÐū /-stvo/. Such non-morphological hyphenation does not deceive\
-% the expectations of the reader. On the contrary, it makes the reading\
-% easier because it gives clues to the reader about what follows on the\
-% next line.\
-% \
-% Because of these considerations, the current Bulgarian hyphenation\
-% patterns do not attempt to use morphological hyphenation with respect\
-% to the suffixes of the words. Though it would be useful to implement\
-% rules about the suffixes of the second cateogory. Hopefully, some\
-% future version will have such rules.\
-% \
-% Occasionally,[^20] a fourth morphological requirement is stated: that\
-% hyphenation should conform with the boundary between the word and the\
-% definitive articles -Ņ‚а /-ta/ and -Ņ‚Ðĩ /-te/ (postfixed in Bulgarian).\
-% There is no need to pay attention to this rule because it seems to be\
-% satisfied by its own nature. The author has searched in a dictionary\
-% with over 860000 Bulgarian words for cases when the hyphenation rules\
-% would hyphenate badly with respect to the definitive article. He was\
-% unable to find even one such case with the hyphenation rules valid\
-% after 1983 and only about 10 cases with the rules valid before 1983\
-% (one of them is ÐķÐļÐēÐūÐŋÐļ-ŅŅ‚а /zhivopi-sta/ instead of ÐķÐļÐēÐūÐŋÐļŅ-Ņ‚а\
-% /zhivopis-ta/).\
-% \
-% One unavoidable characteristic of any morphologically based automated\
-% hyphenation is that it can create wrong hyphenations. Because of\
-% this, one useful option is to use the morphology in a safe way – to\
-% use it in order to forbid bad hyphenations but to create no new\
-% hyphenation possibilities solely on the basis of the morphology.\
-% \
-% Take for example the word ÐīÐūзŅ€ÐĩŅ /dozreya/ 'ripen fully'. According\
-% to the phonological rules, we should hyphenate it as ÐīÐūз-Ņ€ÐĩŅ\
-% /doz-reya/. According to the morphology, however, we should hyphenate\
-% as ÐīÐū-зŅ€ÐĩŅ /do-zreyq/ because this word is formed with the prefix ÐīÐū-\
-% /do-/ with semantics 'complete or supplement' and this semantics would\
-% be lost if the reader sees ÐīÐūз- /doz-/ at the end of the line.\
-% Therefore, there are three methods to hyphenate this word:\
-% \
-% 1. ÐīÐūз-Ņ€ÐĩŅ /doz-reya/ when morphology is not used;\
-% 2. ÐīÐū-зŅ€ÐĩŅ /do-zreya/ when morphology is fully used;\
-% 3. ÐīÐūзŅ€ÐĩŅ /dozreya/ (no hyphenation) when morphology is used in a safe\
-% way.\
-% \
-% The option to use the morphology in a safe way is very attractive when\
-% the software uses a smart line-breaking algorithm which can produce\
-% good results even with less hyphenation possibilities. TeX is one\
-% such software. It should be noted that this option does not eliminate\
-% too many hyphenation possibilities because the morpheme boundaries\
-% most of the time are also syllable boundaries.\
-% \
-% [^20]: ПŅ€Ð°ÐēÐūÐŋÐļŅÐĩÐ― Ðļ ÐŋŅ€Ð°ÐēÐūÐģÐūÐēÐūŅ€ÐĩÐ― Ð―Ð°Ņ€ŅŠŅ‡Ð―ÐļК. ÐĄŅŠŅŅ‚аÐē. ИÐēÐ°Ð― ÐĨаÐīÐķÐūÐē,\
-% ÐĶÐē. МÐļÐ―ÐšÐūÐē; РÐĩÐī. ИÐē. ÐĨаÐīÐķÐūÐē Ðļ ÐīŅ€. ÐĄÐūŅ„ÐļŅ, БŅŠÐŧÐģ. ÐšÐ―., 1945\
-% \
-% The following are results of a statistics about the quality of the\
-% morphological rules (the number after the sign Âą is the expected\
-% standard deviation of our estimations):\
-% \
-% With the option `--morphology`:\
-% \
-% * in 0.1% Âą0.3% of the dictionary words the morphological patterns\
-% create very wrong hyphenation;\
-% * in 89.8% Âą0.1% of the dictionary words the morphological patterns\
-% hyphenate identically with the case when no morphology patterns are\
-% used;\
-% * in 0.3% Âą0.2% of the dictionary words the morphological patterns\
-% hyphenate differently in comparison to the case when no morphology\
-% patterns are used and the word is hyphenated in a way which\
-% contradicts the morphology;\
-% * in 0.6% Âą0.1% of the dictionary words the morphological patterns\
-% hyphenate differently in comparison to the case when no morphology\
-% patterns are used and there is a possible hyphenation which is\
-% compatible with the word morphology but which is nevertheless\
-% forbidden by the morphology patterns.\
-% \
-% With the option `--safe-morphology`:\
-% \
-% * in 0% of the dictionary words the morphological patterns create very\
-% wrong hyphenation;\
-% * in 90.0% Âą0.1% of the dictionary words the morphological patterns\
-% hyphenate identically with the case when no morphology patterns are\
-% used;\
-% * in 0.3% Âą0.2% of the dictionary words the morphological patterns\
-% hyphenate differently in comparison to the case when no morphology\
-% patterns are used and the word is hyphenated in a way which\
-% contradicts the morphology;\
-% * in 0.6% Âą0.1% of the dictionary words the morphological patterns\
-% hyphenate differently in comparison to the case when no morphology\
-% patterns are used and there is a possible hyphenation which is\
-% compatible both with the word morphology and with the syllable\
-% boundaries but which is nevertheless forbidden by the morphology\
-% patterns.\
-% \
-% Notice that the morphological patterns create a different hyphenation\
-% only in about 10% of the words. The following explanation can be\
-% given for this surprising fact. First, the natural evolution of the\
-% human languages tends to simplify the complex sequences of consonants.\
-% Therefore, no morpheme contains a complex sequence of consonants. And\
-% second, the Bulgarian orthography is morphological. This means that\
-% the morphemes are written according to their actual pronunciation,\
-% however the simplifications in the spoken languages which take place\
-% at the morpheme boundaries are not taken into account in the\
-% orthography. The independent operation of these two factors leads to\
-% the result that most of the time the morpheme boundaries coincide with\
-% the conventional syllable boundaries. The main exception to this is\
-% when a morpheme starts with a vowel, in this case its syllable will\
-% include one or more consonants of the preceeding morpheme. The second\
-% exception is when a morpheme ends with a vowel and the next morpheme\
-% starts with a sequence of two or more consonants.\
-% \
-% Usage of the script `hyph-bg.sh`\
-% --------------------------------\
-% \
-% The `hyph-bg.sh` is all-in-one script which can generate both\
-% documentation (this text) and Bulgarian hyphenation patterns. When\
-% given the option `--help` the script gives short usage instructions:\
-% \
-% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\
-% hyph-bg.sh --help\
-% Show this info\
-% hyph-bg.sh [--doc-html | --doc-latex | --doc-txt]\
-% Print documentation in various formats\
-% hyph-bg.sh [other options]\
-% Generate Bulgarian hyphenation patterns\
-% \
-% Options when generating hyphenation patterns:\
-% \
-% --standalone-tex\
-% Produce hyphenation patterns for TeX with \\patterns{ ... }.\
-% \
-% --no-hyphen-mins\
-% Hyphenation patterns which do not require hyphen mins.\
-% Otherwise: both left and right hyphen mins should be set to 2.\
-% \
-% --safe-dz\
-% Do not try to guess whether DZ is a single consonant or not.\
-% Only use hyphenation which will be correct in both cases.\
-% \
-% --permissible\
-% Permit any formally correct hyphenation, including unnatural\
-% divisions, such as studen-tstvo. Useful for educational tools\
-% or when typesetting Bulgarian text in a very short column.\
-% \
-% --morphology\
-% Apply morphology when hyphenating, for example: za-dvizhvam.\
-% May hyphenate incorrectly in some cases.\
-% \
-% --safe-morphology\
-% Apply morphology when hyphenating. Never hyphenates incorrectly\
-% but may prohibit some correct hyphenations.\
-% \
-% --no-morphology\
-% Disregard the morphology. Default.\
-% \
-% --1945\
-% Hyphenate according to the rules effective between 1945 and 1982\
-% \
-% --1983\
-% Hyphenate according to the rules effective between 1983 and 2011\
-% \
-% --2012\
-% Hyphenate according to the rules effective after 2012. Default.\
-% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\
-% \
-% The following are the recommended ways to generate hyphenation\
-% patterns by this script:\
-% \
-% `hyph-bg.sh --standalone-tex --safe-morphology`\
-% : For TeX. Apply the morphology in a safe way when the software\
-% uses a smart line-breaking algorithm.\
-% \
-% `hyph-bg.sh`\
-% : For most other software.\
-% \
-% `hyph-bg.sh --no-hyphen-mins`\
-% : The current versions of Mozilla (as of 2017) seem to ignore the\
-% hyphen mins in words that contain a dash.\
-% \
-% `hyph-bg.sh --morphology`\
-% : For professional typography with human proof-reader.\
-% \
-% `hyph-bg.sh --permissible`\
-% : For educational tools and online dictionaries which can show only one\
-% kind of hyphenation.\
-% \
-% Notice that some specialised English dictionaries separate the\
-% word-division positions into two categories – preferred positions and\
-% less recommended positions. It would be best if the Bulgarian online\
-% dictionaries could do the same. For example hyphen \"-\" can be used to\
-% display the preferred positions and dot \".\" – the less recommended\
-% positions. If a word-division position is permitted only by the\
-% patterns of `hyph-bg.sh --permissible`, then this position is less\
-% recommended.\
-% \
-% \
-% \\message{Bulgarian hyphenation patterns (options: --safe-morphology --standalone-tex, version 21 October 2017)}\
% ",
},
["patterns"]={
- ["characters"]="Ð°ÐąÐēÐģÐīÐĩÐķзÐļÐđКÐŧÐžÐ―ÐūÐŋŅ€ŅŅ‚ŅƒŅ„Ņ…Ņ†Ņ‡ŅˆŅ‰ŅŠŅŽŅ",
- ["data"]=".Ð°Ð―Ņ‚Ðļа4 .Ð°Ð―Ņ‚ÐļÐą4 .Ð°Ð―Ņ‚ÐļÐē4 .Ð°Ð―Ņ‚ÐļÐģ4 .Ð°Ð―Ņ‚ÐļÐī4 .Ð°Ð―Ņ‚ÐļÐĩ4 .Ð°Ð―Ņ‚ÐļÐķ4 .Ð°Ð―Ņ‚Ðļз4 .Ð°Ð―Ņ‚ÐļÐļ4 .Ð°Ð―Ņ‚ÐļÐđ4 .Ð°Ð―Ņ‚ÐļК4 .Ð°Ð―Ņ‚ÐļÐŧ4 .Ð°Ð―Ņ‚ÐļО4 .Ð°Ð―Ņ‚ÐļÐ―4 .Ð°Ð―Ņ‚ÐļÐū4 .Ð°Ð―Ņ‚ÐļÐŋ4 .Ð°Ð―Ņ‚ÐļŅ€4 .Ð°Ð―Ņ‚ÐļŅ4 .Ð°Ð―Ņ‚ÐļŅ‚4 .Ð°Ð―Ņ‚ÐļŅƒ4 .Ð°Ð―Ņ‚ÐļŅ„4 .Ð°Ð―Ņ‚ÐļŅ…4 .Ð°Ð―Ņ‚ÐļŅ†4 .Ð°Ð―Ņ‚ÐļŅˆ4 .Ð°Ð―Ņ‚ÐļŅ‰4 .Ð°Ð―Ņ‚ÐļŅŠ4 .Ð°Ð―Ņ‚ÐļŅŽ4 .Ð°Ð―Ņ‚ÐļŅ4 .ÐąÐą8 .ÐąÐē8 .ÐąÐģ8 .ÐąÐī8 .ÐąÐķ8 .ÐąÐ·8 .ÐąÐš8 .ÐąÐŧ8 .ÐąÐž8 .ÐąÐ―8 .ÐąÐŋ8 .ÐąŅ€8 .ÐąŅ8 .ÐąŅ‚8 .ÐąŅ„8 .ÐąŅ…8 .ÐąŅ†8 .ÐąŅ‡8 .ÐąŅˆ8 .ÐąŅ‰8 .ÐēÐą8 .ÐēÐąÐą8 .ÐēÐąÐē8 .ÐēÐąÐģ8 .ÐēÐąÐī8 .ÐēÐąÐķ8 .ÐēÐąÐ·8 .ÐēÐąÐš8 .ÐēÐąÐŧ8 .ÐēÐąÐž8 .ÐēÐąÐ―8 .ÐēÐąÐŋ8 .ÐēÐąŅ€8 .ÐēÐąŅ8 .ÐēÐąŅ‚8 .ÐēÐąŅ„8 .ÐēÐąŅ…8 .ÐēÐąŅ†8 .ÐēÐąŅ‡8 .ÐēÐąŅˆ8 .ÐēÐąŅ‰8 .ÐēÐē8 .ÐēÐēÐą8 .ÐēÐēÐē8 .ÐēÐēÐģ8 .ÐēÐēÐī8 .ÐēÐēÐķ8 .ÐēÐēз8 .ÐēÐēК8 .ÐēÐēÐŧ8 .ÐēÐēО8 .ÐēÐēÐ―8 .ÐēÐēÐŋ8 .ÐēÐēŅ€8 .ÐēÐēŅ8 .ÐēÐēŅ‚8 .ÐēÐēŅ„8 .ÐēÐēŅ…8 .ÐēÐēŅ†8 .ÐēÐēŅ‡8 .ÐēÐēŅˆ8 .ÐēÐēŅ‰8 .ÐēÐģ8 .ÐēÐģÐą8 .ÐēÐģÐē8 .ÐēÐģÐģ8 .ÐēÐģÐī8 .ÐēÐģÐķ8 .ÐēÐģз8 .ÐēÐģК8 .ÐēÐģÐŧ8 .ÐēÐģО8 .ÐēÐģÐ―8 .ÐēÐģÐŋ8 .ÐēÐģŅ€8 .ÐēÐģŅ8 .ÐēÐģŅ‚8 .ÐēÐģŅ„8 .ÐēÐģŅ…8 .ÐēÐģŅ†8 .ÐēÐģŅ‡8 .ÐēÐģŅˆ8 .ÐēÐģŅ‰8 .ÐēÐī8 .ÐēÐīÐą8 .ÐēÐīÐē8 .ÐēÐīÐģ8 .ÐēÐīÐī8 .ÐēÐīÐķ8 .ÐēÐīз8 .ÐēÐīК8 .ÐēÐīÐŧ8 .ÐēÐīО8 .ÐēÐīÐ―8 .ÐēÐīÐŋ8 .ÐēÐīŅ€8 .ÐēÐīŅ8 .ÐēÐīŅ‚8 .ÐēÐīŅ„8 .ÐēÐīŅ…8 .ÐēÐīŅ†8 .ÐēÐīŅ‡8 .ÐēÐīŅˆ8 .ÐēÐīŅ‰8 .ÐēÐķ8 .ÐēÐķÐą8 .ÐēÐķÐē8 .ÐēÐķÐģ8 .ÐēÐķÐī8 .ÐēÐķÐķ8 .ÐēÐķз8 .ÐēÐķК8 .ÐēÐķÐŧ8 .ÐēÐķО8 .ÐēÐķÐ―8 .ÐēÐķÐŋ8 .ÐēÐķŅ€8 .ÐēÐķŅ8 .ÐēÐķŅ‚8 .ÐēÐķŅ„8 .ÐēÐķŅ…8 .ÐēÐķŅ†8 .ÐēÐķŅ‡8 .ÐēÐķŅˆ8 .ÐēÐķŅ‰8 .Ðēз8 .ÐēÐ·Ðą8 .ÐēзÐē8 .ÐēзÐģ8 .ÐēзÐī8 .ÐēзÐķ8 .Ðēзз8 .ÐēзК8 .ÐēзÐŧ8 .ÐēзО8 .ÐēÐ·Ð―8 .ÐēзÐŋ8 .ÐēзŅ€8 .ÐēзŅ8 .ÐēзŅ‚8 .ÐēзŅ„8 .ÐēзŅ…8 .ÐēзŅ†8 .ÐēзŅ‡8 .ÐēзŅˆ8 .ÐēзŅ‰8 .ÐēК8 .ÐēÐšÐą8 .ÐēКÐē8 .ÐēКÐģ8 .ÐēКÐī8 .ÐēКÐķ8 .ÐēКз8 .ÐēКК8 .ÐēКÐŧ8 .ÐēКО8 .ÐēÐšÐ―8 .ÐēКÐŋ8 .ÐēКŅ€8 .ÐēКŅ8 .ÐēКŅ‚8 .ÐēКŅ„8 .ÐēКŅ…8 .ÐēКŅ†8 .ÐēКŅ‡8 .ÐēКŅˆ8 .ÐēКŅ‰8 .ÐēÐŧ8 .ÐēÐŧÐą8 .ÐēÐŧÐē8 .ÐēÐŧÐģ8 .ÐēÐŧÐī8 .ÐēÐŧÐķ8 .ÐēÐŧз8 .ÐēÐŧК8 .ÐēÐŧÐŧ8 .ÐēÐŧО8 .ÐēÐŧÐ―8 .ÐēÐŧÐŋ8 .ÐēÐŧŅ€8 .ÐēÐŧŅ8 .ÐēÐŧŅ‚8 .ÐēÐŧŅ„8 .ÐēÐŧŅ…8 .ÐēÐŧŅ†8 .ÐēÐŧŅ‡8 .ÐēÐŧŅˆ8 .ÐēÐŧŅ‰8 .ÐēО8 .ÐēÐžÐą8 .ÐēОÐē8 .ÐēОÐģ8 .ÐēОÐī8 .ÐēОÐķ8 .ÐēОз8 .ÐēОК8 .ÐēОÐŧ8 .ÐēОО8 .ÐēÐžÐ―8 .ÐēОÐŋ8 .ÐēОŅ€8 .ÐēОŅ8 .ÐēОŅ‚8 .ÐēОŅ„8 .ÐēОŅ…8 .ÐēОŅ†8 .ÐēОŅ‡8 .ÐēОŅˆ8 .ÐēОŅ‰8 .ÐēÐ―8 .ÐēÐ―Ðą8 .ÐēÐ―Ðē8 .ÐēÐ―Ðģ8 .ÐēÐ―Ðī8 .ÐēÐ―Ðķ8 .ÐēÐ―Ð·8 .ÐēÐ―Ðš8 .ÐēÐ―Ðŧ8 .ÐēÐ―Ðž8 .ÐēÐ―Ð―8 .ÐēÐ―Ðŋ8 .ÐēÐ―Ņ€8 .ÐēÐ―Ņ8 .ÐēÐ―Ņ‚8 .ÐēÐ―Ņ„8 .ÐēÐ―Ņ…8 .ÐēÐ―Ņ†8 .ÐēÐ―Ņ‡8 .ÐēÐ―Ņˆ8 .ÐēÐ―Ņ‰8 .ÐēÐŋ8 .ÐēÐŋÐą8 .ÐēÐŋÐē8 .ÐēÐŋÐģ8 .ÐēÐŋÐī8 .ÐēÐŋÐķ8 .ÐēÐŋз8 .ÐēÐŋК8 .ÐēÐŋÐŧ8 .ÐēÐŋО8 .ÐēÐŋÐ―8 .ÐēÐŋÐŋ8 .ÐēÐŋŅ€8 .ÐēÐŋŅ8 .ÐēÐŋŅ‚8 .ÐēÐŋŅ„8 .ÐēÐŋŅ…8 .ÐēÐŋŅ†8 .ÐēÐŋŅ‡8 .ÐēÐŋŅˆ8 .ÐēÐŋŅ‰8 .ÐēŅ€8 .ÐēŅ€Ðą8 .ÐēŅ€Ðē8 .ÐēŅ€Ðģ8 .ÐēŅ€Ðī8 .ÐēŅ€Ðķ8 .ÐēŅ€Ð·8 .ÐēŅ€Ðš8 .ÐēŅ€Ðŧ8 .ÐēŅ€Ðž8 .ÐēŅ€Ð―8 .ÐēŅ€Ðŋ8 .ÐēŅ€Ņ€8 .ÐēŅ€Ņ8 .ÐēŅ€Ņ‚8 .ÐēŅ€Ņ„8 .ÐēŅ€Ņ…8 .ÐēŅ€Ņ†8 .ÐēŅ€Ņ‡8 .ÐēŅ€Ņˆ8 .ÐēŅ€Ņ‰8 .ÐēŅ8 .ÐēŅÐą8 .ÐēŅÐē8 .ÐēŅÐģ8 .ÐēŅÐī8 .ÐēŅÐķ8 .ÐēŅÐ·8 .ÐēŅÐš8 .ÐēŅÐŧ8 .ÐēŅÐž8 .ÐēŅÐ―8 .ÐēŅÐŋ8 .ÐēŅŅ€8 .ÐēŅŅ8 .ÐēŅŅ‚8 .ÐēŅŅ„8 .ÐēŅŅ…8 .ÐēŅŅ†8 .ÐēŅŅ‡8 .ÐēŅŅˆ8 .ÐēŅŅ‰8 .ÐēŅ‚8 .ÐēŅ‚Ðą8 .ÐēŅ‚Ðē8 .ÐēŅ‚Ðģ8 .ÐēŅ‚Ðī8 .ÐēŅ‚Ðķ8 .ÐēŅ‚з8 .ÐēŅ‚К8 .ÐēŅ‚Ðŧ8 .ÐēŅ‚О8 .ÐēŅ‚Ð―8 .ÐēŅ‚Ðŋ8 .ÐēŅ‚Ņ€8 .ÐēŅ‚Ņ8 .ÐēŅ‚Ņ‚8 .ÐēŅ‚Ņ„8 .ÐēŅ‚Ņ…8 .ÐēŅ‚Ņ†8 .ÐēŅ‚Ņ‡8 .ÐēŅ‚Ņˆ8 .ÐēŅ‚Ņ‰8 .ÐēŅ„8 .ÐēŅ„Ðą8 .ÐēŅ„Ðē8 .ÐēŅ„Ðģ8 .ÐēŅ„Ðī8 .ÐēŅ„Ðķ8 .ÐēŅ„з8 .ÐēŅ„К8 .ÐēŅ„Ðŧ8 .ÐēŅ„О8 .ÐēŅ„Ð―8 .ÐēŅ„Ðŋ8 .ÐēŅ„Ņ€8 .ÐēŅ„Ņ8 .ÐēŅ„Ņ‚8 .ÐēŅ„Ņ„8 .ÐēŅ„Ņ…8 .ÐēŅ„Ņ†8 .ÐēŅ„Ņ‡8 .ÐēŅ„Ņˆ8 .ÐēŅ„Ņ‰8 .ÐēŅ…8 .ÐēŅ…Ðą8 .ÐēŅ…Ðē8 .ÐēŅ…Ðģ8 .ÐēŅ…Ðī8 .ÐēŅ…Ðķ8 .ÐēŅ…з8 .ÐēŅ…К8 .ÐēŅ…Ðŧ8 .ÐēŅ…О8 .ÐēŅ…Ð―8 .ÐēŅ…Ðŋ8 .ÐēŅ…Ņ€8 .ÐēŅ…Ņ8 .ÐēŅ…Ņ‚8 .ÐēŅ…Ņ„8 .ÐēŅ…Ņ…8 .ÐēŅ…Ņ†8 .ÐēŅ…Ņ‡8 .ÐēŅ…Ņˆ8 .ÐēŅ…Ņ‰8 .ÐēŅ†8 .ÐēŅ†Ðą8 .ÐēŅ†Ðē8 .ÐēŅ†Ðģ8 .ÐēŅ†Ðī8 .ÐēŅ†Ðķ8 .ÐēŅ†Ð·8 .ÐēŅ†Ðš8 .ÐēŅ†Ðŧ8 .ÐēŅ†Ðž8 .ÐēŅ†Ð―8 .ÐēŅ†Ðŋ8 .ÐēŅ†Ņ€8 .ÐēŅ†Ņ8 .ÐēŅ†Ņ‚8 .ÐēŅ†Ņ„8 .ÐēŅ†Ņ…8 .ÐēŅ†Ņ†8 .ÐēŅ†Ņ‡8 .ÐēŅ†Ņˆ8 .ÐēŅ†Ņ‰8 .ÐēŅ‡8 .ÐēŅ‡Ðą8 .ÐēŅ‡Ðē8 .ÐēŅ‡Ðģ8 .ÐēŅ‡Ðī8 .ÐēŅ‡Ðķ8 .ÐēŅ‡Ð·8 .ÐēŅ‡Ðš8 .ÐēŅ‡Ðŧ8 .ÐēŅ‡Ðž8 .ÐēŅ‡Ð―8 .ÐēŅ‡Ðŋ8 .ÐēŅ‡Ņ€8 .ÐēŅ‡Ņ8 .ÐēŅ‡Ņ‚8 .ÐēŅ‡Ņ„8 .ÐēŅ‡Ņ…8 .ÐēŅ‡Ņ†8 .ÐēŅ‡Ņ‡8 .ÐēŅ‡Ņˆ8 .ÐēŅ‡Ņ‰8 .ÐēŅˆ8 .ÐēŅˆÐą8 .ÐēŅˆÐē8 .ÐēŅˆÐģ8 .ÐēŅˆÐī8 .ÐēŅˆÐķ8 .ÐēŅˆÐ·8 .ÐēŅˆÐš8 .ÐēŅˆÐŧ8 .ÐēŅˆÐž8 .ÐēŅˆÐ―8 .ÐēŅˆÐŋ8 .ÐēŅˆŅ€8 .ÐēŅˆŅ8 .ÐēŅˆŅ‚8 .ÐēŅˆŅ„8 .ÐēŅˆŅ…8 .ÐēŅˆŅ†8 .ÐēŅˆŅ‡8 .ÐēŅˆŅˆ8 .ÐēŅˆŅ‰8 .ÐēŅ‰8 .ÐēŅ‰Ðą8 .ÐēŅ‰Ðē8 .ÐēŅ‰Ðģ8 .ÐēŅ‰Ðī8 .ÐēŅ‰Ðķ8 .ÐēŅ‰Ð·8 .ÐēŅ‰Ðš8 .ÐēŅ‰Ðŧ8 .ÐēŅ‰Ðž8 .ÐēŅ‰Ð―8 .ÐēŅ‰Ðŋ8 .ÐēŅ‰Ņ€8 .ÐēŅ‰Ņ8 .ÐēŅ‰Ņ‚8 .ÐēŅ‰Ņ„8 .ÐēŅ‰Ņ…8 .ÐēŅ‰Ņ†8 .ÐēŅ‰Ņ‡8 .ÐēŅ‰Ņˆ8 .ÐēŅ‰Ņ‰8 .ÐēŅŠ2за4 .ÐēŅŠ2Ð·Ðą4 .ÐēŅŠ2зÐē4 .ÐēŅŠ2зÐģ4 .ÐēŅŠ2зÐī4 .ÐēŅŠ2зÐĩ4 .ÐēŅŠ5з4ÐĩÐŧ .ÐēŅŠ5з4Ðĩ5Ðŧа .ÐēŅŠ5з4Ðĩ5ÐŧŅŠŅ‚ .ÐēŅŠ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зŅ‚4 .ÐēŅŠ2зŅƒ4 .ÐēŅŠ2зŅ„4 .ÐēŅŠ2зŅ…4 .ÐēŅŠ2зŅ†4 .ÐēŅŠ2зŅ‡4 .ÐēŅŠ2зŅˆ4 .ÐēŅŠ2зŅ‰4 .ÐēŅŠ2зŅŠ4 .ÐēŅŠ2зŅŽ4 .ÐēŅŠ2зŅ4 .ÐģÐą8 .ÐģÐē8 .ÐģÐģ8 .ÐģÐī8 .ÐģÐķ8 .Ðģз8 .ÐģК8 .ÐģÐŧ8 .ÐģО8 .ÐģÐ―8 .ÐģÐŋ8 .ÐģŅ€8 .ÐģŅ8 .ÐģŅ‚8 .ÐģŅ„8 .ÐģŅ…8 .ÐģŅ†8 .ÐģŅ‡8 .ÐģŅˆ8 .ÐģŅ‰8 .ÐīÐą8 .ÐīÐē8 .ÐīÐģ8 .ÐīÐī8 .ÐīÐķ8 .Ðīз8 .ÐīК8 .ÐīÐŧ8 .ÐīО8 .ÐīÐ―8 .ÐīÐūа4 .ÐīÐūÐą4 .ÐīÐū4Ðą5ÐŧÐĩŅŅ‚ .ÐīÐū4Ðą5Ņ€ .ÐīÐū4Ðą6Ņ€Ðū .ÐīÐūÐē4 .ÐīÐūÐģ4 .ÐīÐū4Ðģ5О .ÐīÐūÐī4 .ÐīÐūÐĩ4 .ÐīÐūÐķ4 .ÐīÐūз4 .ÐīÐūÐļ4 .ÐīÐūК4 .ÐīÐū4К5Ðŧ .ÐīÐū4К5Ņ‚ .ÐīÐūÐŧ4 .ÐīÐū4Ðŧ5Ð― .ÐīÐū4Ðŧ5Ņ‡ .ÐīÐūО4 .ÐīÐūÐ―4 .ÐīÐū4Ð―5Ðģ .ÐīÐū4Ð―5Ðī .ÐīÐū4Ð―5Ðķ .ÐīÐū4Ð―5К .ÐīÐū4Ð―5Ņ .ÐīÐū4Ð―5Ņ‡ .ÐīÐūÐū4 .ÐīÐūÐŋ4 .ÐīÐūŅ€4 .ÐīÐūŅ4 .ÐīÐū4Ņ5Ņ‚Ðū .ÐīÐūŅ‚4 .ÐīÐūŅƒ4 .ÐīÐūŅ„4 .ÐīÐūŅ…4 .ÐīÐūŅ†4 .ÐīÐūŅ‡4 .ÐīÐūŅˆ4 .ÐīÐūŅ‰4 .ÐīÐūŅŠ4 .ÐīÐūŅŽ4 .ÐīÐūŅ4 .ÐīÐŋ8 .ÐīŅ€8 .ÐīŅ8 .ÐīŅ‚8 .ÐīŅ„8 .ÐīŅ…8 .ÐīŅ†8 .ÐīŅ‡8 .ÐīŅˆ8 .ÐīŅ‰8 .ÐķÐą8 .ÐķÐē8 .ÐķÐģ8 .ÐķÐī8 .ÐķÐķ8 .Ðķз8 .ÐķК8 .ÐķÐŧ8 .ÐķО8 .ÐķÐ―8 .ÐķÐŋ8 .ÐķŅ€8 .ÐķŅ8 .ÐķŅ‚8 .ÐķŅ„8 .ÐķŅ…8 .ÐķŅ†8 .ÐķŅ‡8 .ÐķŅˆ8 .ÐķŅ‰8 .заа4 .Ð·Ð°Ðą4 .заÐē4 .заÐģ4 .заÐī4 .за4Ðī5ÐģŅ€Ð°Ð― .за4Ðī5ÐģŅ€ÐūÐą .за4Ðī5КŅƒÐŧÐļŅ .за4Ðī5ОÐļÐ― .за4Ðī5ОÐūŅ€ .за4Ðī5Ð― .заÐĩ4 .заÐķ4 .заз4 .заÐļ4 .заК4 .заÐŧ4 .за4Ðŧ5Ðŋ .заО4 .Ð·Ð°Ð―4 .за4Ð―5Ðī .заÐū4 .заÐŋ4 .за4Ðŋ5Ņ‚ .заŅ€4 .за4Ņ€5з .заŅ4 .заŅ‚4 .заŅƒ4 .заŅ„4 .заŅ…4 .заŅ†4 .заŅ‡4 .заŅˆ4 .заŅ‰4 .заŅŠ4 .заŅŽ4 .заŅ4 .Ð·Ðą8 .зÐē8 .зÐģ8 .зÐī8 .зÐķ8 .зз8 .зК8 .зÐŧ8 .зО8 .Ð·Ð―8 .зÐŋ8 .зŅ€8 .зŅ8 .зŅ‚8 .зŅ„8 .зŅ…8 .зŅ†8 .зŅ‡8 .зŅˆ8 .зŅ‰8 .Ðļза4 .ÐļÐ·Ðą4 .ÐļзÐē4 .ÐļзÐģ4 .ÐļзÐī4 .ÐļзÐĩ4 .ÐļзÐķ4 .Ðļзз4 .ÐļзÐļ4 .ÐļзÐđ4 .ÐļзК4 .ÐļзÐŧ4 .ÐļзО4 .ÐļÐ·Ð―4 .ÐļзÐū2ÐąÐą4 .ÐļзÐū2ÐąÐē4 .ÐļзÐū2ÐąÐģ4 .ÐļзÐū2ÐąÐī4 .ÐļзÐū2ÐąÐķ4 .ÐļзÐū2ÐąÐ·4 .ÐļзÐū4ÐąÐļ .ÐļзÐū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ÐąŅˆ4 .ÐļзÐū2ÐąŅ‰4 .ÐļзÐūŅ…К .ÐļзÐŋ4 .ÐļзÐŋÐūа4 .ÐļзÐŋÐūÐą4 .ÐļзÐŋÐūÐē4 .ÐļзÐŋÐūÐģ4 .ÐļзÐŋÐūÐī4 .ÐļзÐŋÐūÐĩ4 .ÐļзÐŋÐūÐķ4 .ÐļзÐŋÐūз4 .ÐļзÐŋÐūÐļ4 .ÐļзÐŋÐūÐđ4 .ÐļзÐŋÐūК4 .ÐļзÐŋÐūÐŧ4 .ÐļзÐŋÐū4Ðŧ5з .ÐļзÐŋÐūО4 .ÐļзÐŋÐū4О5Ðŋ .ÐļзÐŋÐūÐ―4 .ÐļзÐŋÐūÐū4 .ÐļзÐŋÐūÐŋ4 .ÐļзÐŋÐūŅ€4 .ÐļзÐŋÐū4Ņ€5Ņ‚ .ÐļзÐŋÐūŅ4 .ÐļзÐŋÐūŅ‚4 .ÐļзÐŋÐūŅƒ4 .ÐļзÐŋÐūŅ„4 .ÐļзÐŋÐūŅ…4 .ÐļзÐŋÐūŅ†4 .ÐļзÐŋÐūŅ‡4 .ÐļзÐŋÐūŅˆ4 .ÐļзÐŋÐūŅ‰4 .ÐļзÐŋÐūŅŠ4 .ÐļзÐŋÐūŅŽ4 .ÐļзÐŋÐūŅ4 .ÐļзŅ€4 .ÐļзŅ4 .ÐļзŅ‚4 .ÐļзŅƒ4 .ÐļзŅ„4 .ÐļзŅ…4 .ÐļзŅ†4 .ÐļзŅ‡4 .ÐļзŅˆ4 .ÐļзŅ‰4 .ÐļзŅŠ4 .ÐļзŅŽ4 .ÐļзŅ4 .ÐšÐą8 .КÐē8 .КÐģ8 .КÐī8 .КÐķ8 .Кз8 .КК8 .КÐŧ8 .КО8 .ÐšÐ―8 .КÐŋ8 .КŅ€8 .КŅ8 .КŅ‚8 .КŅ„8 .КŅ…8 .КŅ†8 .КŅ‡8 .КŅˆ8 .КŅ‰8 .ÐŧÐą8 .ÐŧÐē8 .ÐŧÐģ8 .ÐŧÐī8 .ÐŧÐķ8 .Ðŧз8 .ÐŧК8 .ÐŧÐŧ8 .ÐŧО8 .ÐŧÐ―8 .ÐŧÐŋ8 .ÐŧŅ€8 .ÐŧŅ8 .ÐŧŅ‚8 .ÐŧŅ„8 .ÐŧŅ…8 .ÐŧŅ†8 .ÐŧŅ‡8 .ÐŧŅˆ8 .ÐŧŅ‰8 .ÐžÐą8 .ОÐē8 .ОÐģ8 .ОÐī8 .ОÐķ8 .Оз8 .ОК8 .ОÐŧ8 .ОО8 .ÐžÐ―8 .ОÐŋ8 .ОŅ€8 .ОŅ8 .ОŅ‚8 .ОŅ„8 .ОŅ…8 .ОŅ†8 .ОŅ‡8 .ОŅˆ8 .ОŅ‰8 .Ð―Ð°Ð°4 .Ð―Ð°Ðą4 .Ð―Ð°Ðē4 .Ð―Ð°Ðģ4 .Ð―Ð°4Ðģ5ÐŧÐū .Ð―Ð°2ÐīÐą4 .Ð―Ð°2ÐīÐē4 .Ð―Ð°2ÐīÐģ4 .Ð―Ð°2ÐīÐī4 .Ð―Ð°2Ðī3Ðķ4 .Ð―Ð°3Ðī4ÐķаÐē .Ð―Ð°3Ðī4ÐķаŅ .Ð―Ð°2Ðīз4 .Ð―Ð°4ÐīÐļ4ÐģŅ€ .Ð―Ð°2ÐīК4 .Ð―Ð°2ÐīÐŧ4 .Ð―Ð°2ÐīО4 .Ð―Ð°2ÐīÐ―4 .Ð―Ð°2ÐīÐŋ4 .Ð―Ð°2ÐīŅ€4 .Ð―Ð°Ðī4Ņ€Ð°Ņ‰ .Ð―Ð°Ðī4Ņ€ÐĩÐą .Ð―Ð°Ðī4Ņ€ÐĩО .Ð―Ð°Ðī4Ņ€ÐūÐą .Ð―Ð°Ðī4Ņ€ŅƒŅ .Ð―Ð°Ðī4Ņ€ŅŠÐ― .Ð―Ð°Ðī4Ņ€ŅÐž .Ð―Ð°2ÐīŅ4 .Ð―Ð°2ÐīŅ‚4 .Ð―Ð°2ÐīŅ„4 .Ð―Ð°2ÐīŅ…4 .Ð―Ð°2ÐīŅ†4 .Ð―Ð°2ÐīŅ‡4 .Ð―Ð°2ÐīŅˆ4 .Ð―Ð°2ÐīŅ‰4 .Ð―Ð°Ðĩ4 .Ð―Ð°Ðķ4 .Ð―Ð°Ð·4 .Ð―Ð°Ðļ4 .Ð―Ð°Ðš4 .Ð―Ð°Ðŧ4 .Ð―Ð°Ðž4 .Ð―Ð°Ð―4 .Ð―Ð°Ðū4 .Ð―Ð°Ðŋ4 .Ð―Ð°Ņ€4 .Ð―Ð°4Ņ€5Ðģ .Ð―Ð°4Ņ€5К .Ð―Ð°Ņ4 .Ð―Ð°Ņ‚4 .Ð―Ð°Ņƒ4 .Ð―Ð°Ņ„4 .Ð―Ð°Ņ…4 .Ð―Ð°Ņ†4 .Ð―Ð°Ņ‡4 .Ð―Ð°Ņˆ4 .Ð―Ð°Ņ‰4 .Ð―Ð°ŅŠ4 .Ð―Ð°ŅŽ4 .Ð―Ð°Ņ4 .Ð―Ðą8 .Ð―Ðē8 .Ð―Ðģ8 .Ð―Ðī8 .Ð―Ðķ8 .Ð―Ð·8 .Ð―Ðš8 .Ð―Ðŧ8 .Ð―Ðž8 .Ð―Ð―8 .Ð―Ðŋ8 .Ð―Ņ€8 .Ð―Ņ8 .Ð―Ņ‚8 .Ð―Ņ„8 .Ð―Ņ…8 .Ð―Ņ†8 .Ð―Ņ‡8 .Ð―Ņˆ8 .Ð―Ņ‰8 .Ðūа4 .Ðūа5зÐļŅ .ÐūÐąÐ°4ÐģÐ― .ÐūÐąÐą4 .ÐūÐąÐē4 .ÐūÐąÐģ4 .ÐūÐąÐī4 .ÐūÐąÐķ4 .ÐūÐąÐ·4 .ÐūÐąÐļ4ÐģŅ€ .ÐūÐąÐš4 .ÐūÐąÐŧ4 .ÐūÐą4ÐŧаÐģÐū .ÐūÐą4ÐŧаÐķ .ÐūÐąÐž4 .ÐūÐąÐ―4 .ÐūÐąÐū4ÐąŅ‰ .ÐūÐąÐūз4Ð― .ÐūÐąÐūз4Ņ€ .ÐūÐąÐūŅ4Ð― .ÐūÐąÐūŅÐūÐą .ÐūÐąÐŋ4 .ÐūÐąŅ€4 .ÐūÐą4Ņ€ÐĩО .ÐūÐą4Ņ€ŅƒÐŧ .ÐūÐą4Ņ€ŅŠŅ .ÐūÐąŅ4 .ÐūÐąŅ‚4 .ÐūÐąŅƒ4зÐī .ÐūÐąŅƒŅÐŧ .ÐūÐąŅ„4 .ÐūÐąŅ…4 .ÐūÐąŅ†4 .ÐūÐąŅ‡4 .ÐūÐąŅˆ4 .ÐūÐąŅ‰4 .ÐūÐą4Ņ‰5Ð― .ÐūÐąŅ4ŅÐ― .ÐūÐē4 .ÐūÐē4ÐīÐūÐē .ÐūÐē4ÐŧаÐī .ÐūÐē5Ņ† .ÐūÐē5Ņ‡ .ÐūÐģ4 .ÐūÐģ5Ð― .ÐūÐī4 .ÐūÐĩ4 .ÐūÐķ4 .Ðūз4 .ÐūзÐī4Ņ€ .ÐūÐļ4 .ÐūÐđ4 .ÐūК4 .ÐūК5ŅÐļ .ÐūК5Ņ‚ .ÐūÐŧ4 .ÐūÐŧ5Ņ‚аŅ€ .ÐūО4 .ÐūО5ÐŧÐĩŅ‚ .ÐūО5Ð―Ðļ .ÐūÐ―4 .ÐūÐ―5ÐąÐ°Ņˆ .ÐūÐ―5ÐīŅƒÐŧ .ÐūÐ―5зÐļ .ÐūÐ―5КÐū .ÐūÐ―5ÐŧаÐđÐ― .ÐūÐ―5Ņ‚Ðū .ÐūÐū4 .ÐūÐŋ4 .ÐūÐŋ5Ņ‚ .ÐūÐŋ5Ņ†Ðļ .ÐūŅ€4 .ÐūŅ€5Ðą .ÐūŅ€5Ðģ .ÐūŅ€5Ðī .ÐūŅ€5К .ÐūŅ€5Ðŧ .ÐūŅ€5Ð― .ÐūŅ€5Ņ‚ .ÐūŅ€5Ņ„ .ÐūŅ€5Ņ… .ÐūŅ4 .ÐūŅ5ÐžÐ°Ð― .ÐūŅ5ОÐļÐ― .ÐūŅ5ОÐļŅ† .ÐūŅ5ОÐļŅ‡ .ÐūŅ5ОÐū .ÐūŅ5Ņ‚Ðĩ .ÐūŅ5Ņ‚Ņ€Ðū .ÐūŅ5Ņ†Ðļ .ÐūŅ‚Ðą4 .ÐūŅ‚Ðē4 .ÐūŅ‚Ðģ4 .ÐūŅ‚Ðī4 .ÐūŅ‚Ðķ4 .ÐūŅ‚з4 .ÐūŅ‚Ðļ4Ðē .ÐūŅ‚Ðļ4Ðī .ÐūŅ‚К4 .ÐūŅ‚Ðŧ4 .ÐūŅ‚О4 .ÐūŅ‚Ð―4 .ÐūŅ‚Ðŋ4 .ÐūŅ‚Ņ€4 .ÐūŅ‚Ņ4 .ÐūŅ‚Ņ‚4 .ÐūŅ‚Ņƒ4Ņ‡ .ÐūŅ‚Ņ„4 .ÐūŅ‚Ņ…4 .ÐūŅ‚Ņ†4 .ÐūŅ‚Ņ‡4 .ÐūŅ‚Ņˆ4 .ÐūŅ‚Ņ‰4 .ÐūŅƒ4 .ÐūŅ„4 .ÐūŅ…4 .ÐūŅ…5Ðēа .ÐūŅ…5Ка .ÐūŅ…5Ð―Ð° .ÐūŅ†4 .ÐūŅ‡4 .ÐūŅˆ4 .ÐūŅ‰4 .ÐūŅŠ4 .ÐūŅŽ4 .ÐūŅ4 .ÐŋÐą8 .ÐŋÐē8 .ÐŋÐģ8 .ÐŋÐī8 .ÐŋÐķ8 .Ðŋз8 .ÐŋК8 .ÐŋÐŧ8 .ÐŋО8 .ÐŋÐ―8 .ÐŋÐūа4 .ÐŋÐūÐą4 .ÐŋÐūÐē4 .ÐŋÐūÐģ4 .ÐŋÐū2ÐīÐą4 .ÐŋÐū2ÐīÐē4 .ÐŋÐūÐī4ÐēÐūŅƒ .ÐŋÐū2ÐīÐģ4 .ÐŋÐū2ÐīÐī4 .ÐŋÐū2Ðī3Ðķ4 .ÐŋÐū3Ðī4ÐķаÐē .ÐŋÐū3Ðī4ÐķŅƒŅ€ .ÐŋÐū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ÐīÐŋ4 .ÐŋÐū2ÐīŅ€4 .ÐŋÐūÐī4Ņ€ÐĩО .ÐŋÐūÐī4Ņ€ŅŠÐ― .ÐŋÐūÐī4Ņ€ŅŠÐŋ .ÐŋÐūÐī4Ņ€ŅÐž .ÐŋÐū2ÐīŅ4 .ÐŋÐū2ÐīŅ‚4 .ÐŋÐū2ÐīŅƒ4ÐŋŅ€ .ÐŋÐū2ÐīŅƒ4Ņ‡ .ÐŋÐū2ÐīŅ„4 .ÐŋÐū2ÐīŅ…4 .ÐŋÐū2ÐīŅ†4 .ÐŋÐū2ÐīŅ‡4 .ÐŋÐū2ÐīŅˆ4 .ÐŋÐū2ÐīŅ‰4 .ÐŋÐūÐĩ4 .ÐŋÐūÐķ4 .ÐŋÐūз4 .ÐŋÐūзаа4 .ÐŋÐūÐ·Ð°Ðą4 .ÐŋÐūзаÐē4 .ÐŋÐūзаÐģ4 .ÐŋÐūзаÐī4 .ÐŋÐūзаÐĩ4 .ÐŋÐūзаÐķ4 .ÐŋÐūзаз4 .ÐŋÐūзаÐļ4 .ÐŋÐūзаÐđ4 .ÐŋÐūзаК4 .ÐŋÐūзаÐŧ4 .ÐŋÐūзаО4 .ÐŋÐūÐ·Ð°Ð―4 .ÐŋÐūзаÐū4 .ÐŋÐūзаÐŋ4 .ÐŋÐūзаŅ€4 .ÐŋÐūзаŅ4 .ÐŋÐūзаŅ‚4 .ÐŋÐūзаŅƒ4 .ÐŋÐūзаŅ„4 .ÐŋÐūзаŅ…4 .ÐŋÐūзаŅ†4 .ÐŋÐūзаŅ‡4 .ÐŋÐūзаŅˆ4 .ÐŋÐūзаŅ‰4 .ÐŋÐūзаŅŠ4 .ÐŋÐūзаŅŽ4 .ÐŋÐūзаŅ4 .ÐŋÐūÐļ4 .ÐŋÐūÐļ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зО4 .ÐŋÐūÐļ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зŅ‰4 .ÐŋÐūÐļ2зŅŠ4 .ÐŋÐūÐļ2зŅŽ4 .ÐŋÐūÐļ2зŅ4 .ÐŋÐūÐđ4 .ÐŋÐūК4 .ÐŋÐūÐŧ4 .ÐŋÐū4Ðŧ5з .ÐŋÐū4Ðŧ5К .ÐŋÐū4Ðŧ5Ņ .ÐŋÐūО4 .ÐŋÐū4О5Ðŋ .ÐŋÐūÐ―4 .ÐŋÐūÐ―Ð°Ð°4 .ÐŋÐūÐ―Ð°Ðą4 .ÐŋÐūÐ―Ð°Ðē4 .ÐŋÐūÐ―Ð°Ðģ4 .ÐŋÐūÐ―Ð°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ÐīŅ€4 .ÐŋÐūÐ―Ð°Ðī4Ņ€Ð°Ņ‰ .ÐŋÐūÐ―Ð°Ðī4Ņ€ÐĩÐą .ÐŋÐūÐ―Ð°Ðī4Ņ€ÐĩО .ÐŋÐūÐ―Ð°Ðī4Ņ€ÐūÐą .ÐŋÐūÐ―Ð°Ðī4Ņ€ŅƒŅ .ÐŋÐūÐ―Ð°Ðī4Ņ€ŅŠÐ― .ÐŋÐūÐ―Ð°Ðī4Ņ€ŅÐž .ÐŋÐūÐ―Ð°2ÐīŅ4 .ÐŋÐūÐ―Ð°2ÐīŅ‚4 .ÐŋÐūÐ―Ð°2ÐīŅ„4 .ÐŋÐūÐ―Ð°2ÐīŅ…4 .ÐŋÐūÐ―Ð°2ÐīŅ†4 .ÐŋÐūÐ―Ð°2ÐīŅ‡4 .ÐŋÐūÐ―Ð°2ÐīŅˆ4 .ÐŋÐūÐ―Ð°2ÐīŅ‰4 .ÐŋÐūÐ―Ð°Ðĩ4 .ÐŋÐūÐ―Ð°Ðķ4 .ÐŋÐūÐ―Ð°Ð·4 .ÐŋÐūÐ―Ð°Ðļ4 .ÐŋÐūÐ―Ð°Ðđ4 .ÐŋÐūÐ―Ð°Ðš4 .ÐŋÐūÐ―Ð°Ðŧ4 .ÐŋÐūÐ―Ð°Ðž4 .ÐŋÐūÐ―Ð°Ð―4 .ÐŋÐūÐ―Ð°Ðū4 .ÐŋÐūÐ―Ð°Ðŋ4 .ÐŋÐūÐ―Ð°Ņ€4 .ÐŋÐūÐ―Ð°Ņ4 .ÐŋÐūÐ―Ð°Ņ‚4 .ÐŋÐūÐ―Ð°Ņƒ4 .ÐŋÐūÐ―Ð°Ņ„4 .ÐŋÐūÐ―Ð°Ņ…4 .ÐŋÐūÐ―Ð°Ņ†4 .ÐŋÐūÐ―Ð°Ņ‡4 .ÐŋÐūÐ―Ð°Ņˆ4 .ÐŋÐūÐ―Ð°Ņ‰4 .ÐŋÐūÐ―Ð°ŅŠ4 .ÐŋÐūÐ―Ð°ŅŽ4 .ÐŋÐūÐ―Ð°Ņ4 .ÐŋÐū4Ð―5Ņ‚ .ÐŋÐūÐūа4 .ÐŋÐūÐū4ÐąÐ°Ðī .ÐŋÐūÐū4ÐąÐ°ÐķÐī .ÐŋÐūÐū2ÐąÐą4 .ÐŋÐūÐū2ÐąÐē4 .ÐŋÐūÐū2ÐąÐģ4 .ÐŋÐūÐū2ÐąÐī4 .ÐŋÐūÐū2ÐąÐķ4 .ÐŋÐūÐū2ÐąÐ·4 .ÐŋÐūÐū2ÐąÐļ4ÐģŅ€ .ÐŋÐūÐū4ÐąÐļК .ÐŋÐūÐū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ÐąŅˆ4 .ÐŋÐūÐū2ÐąŅ‰4 .ÐŋÐūÐū2ÐąŅ4ŅÐ― .ÐŋÐūÐūÐē4 .ÐŋÐūÐūÐģ4 .ÐŋÐūÐūÐī4 .ÐŋÐūÐūÐĩ4 .ÐŋÐūÐūÐķ4 .ÐŋÐūÐūз4 .ÐŋÐūÐūÐļ4 .ÐŋÐūÐūÐđ4 .ÐŋÐūÐūК4 .ÐŋÐūÐūÐŧ4 .ÐŋÐūÐūО4 .ÐŋÐūÐūÐ―4 .ÐŋÐūÐūÐū4 .ÐŋÐūÐūÐŋ4 .ÐŋÐūÐūŅ€4 .ÐŋÐūÐūŅ4 .ÐŋÐūÐū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Ņ‚Ņ4 .ÐŋÐūÐū2Ņ‚Ņ‚4 .ÐŋÐūÐū2Ņ‚Ņƒ4Ņ‡ .ÐŋÐūÐū2Ņ‚Ņ„4 .ÐŋÐūÐū2Ņ‚Ņ…4 .ÐŋÐūÐū2Ņ‚Ņ†4 .ÐŋÐūÐū2Ņ‚Ņ‡4 .ÐŋÐūÐū2Ņ‚Ņˆ4 .ÐŋÐūÐū2Ņ‚Ņ‰4 .ÐŋÐūÐūŅƒ4 .ÐŋÐūÐūŅ„4 .ÐŋÐūÐūŅ…4 .ÐŋÐūÐūŅ†4 .ÐŋÐūÐūŅ‡4 .ÐŋÐūÐūŅˆ4 .ÐŋÐūÐūŅ‰4 .ÐŋÐūÐū4Ņ‰5Ņ€ .ÐŋÐūÐūŅŠ4 .ÐŋÐūÐūŅŽ4 .ÐŋÐūÐūŅ4 .ÐŋÐūÐŋ4Ņ€Ðļа4 .ÐŋÐūÐŋ4Ņ€ÐļÐą4 .ÐŋÐūÐŋ4Ņ€ÐļÐē4 .ÐŋÐūÐŋ4Ņ€ÐļÐģ4 .ÐŋÐūÐŋ4Ņ€ÐļÐī4 .ÐŋÐūÐŋ4Ņ€ÐļÐĩ4 .ÐŋÐūÐŋ4Ņ€ÐļÐķ4 .ÐŋÐūÐŋ4Ņ€Ðļз4 .ÐŋÐūÐŋ4Ņ€ÐļÐļ4 .ÐŋÐūÐŋ4Ņ€ÐļÐđ4 .ÐŋÐūÐŋ4Ņ€ÐļК4 .ÐŋÐūÐŋ4Ņ€ÐļÐŧ4 .ÐŋÐūÐŋ4Ņ€ÐļО4 .ÐŋÐūÐŋ4Ņ€ÐļÐ―4 .ÐŋÐūÐŋ4Ņ€ÐļÐū4 .ÐŋÐūÐŋ4Ņ€ÐļÐŋ4 .ÐŋÐūÐŋ4Ņ€ÐļŅ€4 .ÐŋÐūÐŋ4Ņ€ÐļŅ4 .ÐŋÐūÐŋ4Ņ€ÐļŅ‚4 .ÐŋÐūÐŋ4Ņ€ÐļŅƒ4 .ÐŋÐūÐŋ4Ņ€ÐļŅ„4 .ÐŋÐūÐŋ4Ņ€ÐļŅ…4 .ÐŋÐūÐŋ4Ņ€ÐļŅ†4 .ÐŋÐūÐŋ4Ņ€ÐļŅ‡4 .ÐŋÐūÐŋ4Ņ€ÐļŅˆ4 .ÐŋÐūÐŋ4Ņ€ÐļŅ‰4 .ÐŋÐūÐŋ4Ņ€ÐļŅŠ4 .ÐŋÐūÐŋ4Ņ€ÐļŅŽ4 .ÐŋÐūÐŋ4Ņ€ÐļŅ4 .ÐŋÐūŅ€4 .ÐŋÐū4Ņ€5Ð― .ÐŋÐū4Ņ€5Ņ‚ .ÐŋÐū4Ņ€5Ņ„ .ÐŋÐū4Ņ€5Ņ† .ÐŋÐūŅ4 .ÐŋÐū4Ņ4Ņ‚ .ÐŋÐūŅ‚4 .ÐŋÐū4Ņ‚5Ð― .ÐŋÐūŅƒ4 .ÐŋÐūŅ„4 .ÐŋÐūŅ…4 .ÐŋÐūŅ†4 .ÐŋÐūŅˆ4 .ÐŋÐūŅ‰4 .ÐŋÐūŅŠ4 .ÐŋÐūŅŽ4 .ÐŋÐūŅ4 .ÐŋÐŋ8 .ÐŋŅ€8 .ÐŋŅ€Ðĩа4 .ÐŋŅ€ÐĩÐą4 .ÐŋŅ€ÐĩÐē4 .ÐŋŅ€ÐĩÐēŅŠ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зО4 .ÐŋŅ€ÐĩÐēŅŠ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зŅ‰4 .ÐŋŅ€ÐĩÐēŅŠ2зŅŠ4 .ÐŋŅ€ÐĩÐēŅŠ2зŅŽ4 .ÐŋŅ€ÐĩÐēŅŠ2зŅ4 .ÐŋŅ€ÐĩÐģ4 .ÐŋŅ€Ðĩ2ÐīÐą4 .ÐŋŅ€Ðĩ2ÐīÐē4 .ÐŋŅ€Ðĩ2ÐīÐģ4 .ÐŋŅ€Ðĩ2ÐīÐī4 .ÐŋŅ€Ðĩ2ÐīÐķ4 .ÐŋŅ€Ðĩ2Ðīз4 .ÐŋŅ€Ðĩ2ÐīÐļ4Ð·Ðą4 .ÐŋŅ€Ðĩ2ÐīÐļ4зÐē4 .ÐŋŅ€Ðĩ2ÐīÐļ4Ð―Ņ„аŅ€ .ÐŋŅ€Ðĩ2ÐīÐļ4ŅŅ‚ÐūŅ€ .ÐŋŅ€Ðĩ2ÐīК4 .ÐŋŅ€Ðĩ2ÐīÐŧ4 .ÐŋŅ€Ðĩ2ÐīО4 .ÐŋŅ€Ðĩ2ÐīÐ―4 .ÐŋŅ€Ðĩ2ÐīÐū4ÐąÐĩÐī .ÐŋŅ€Ðĩ2ÐīÐū4КŅ‚ÐūО .ÐŋŅ€Ðĩ2ÐīÐūÐŋ4Ņ€ÐĩÐī .ÐŋŅ€Ðĩ2ÐīÐūŅ4ÐēÐūÐą .ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚а4 .ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚Ðą4 .ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚Ðē4 .ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚Ðģ4 .ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚Ðī4 .ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚Ðĩ4 .ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚Ðķ4 .ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚з4 .ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚Ðļ4 .ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚Ðđ4 .ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚К4 .ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚Ðŧ4 .ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚О4 .ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚Ð―4 .ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚Ðū4 .ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚Ðŋ4 .ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚Ņ€4 .ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚Ņ4 .ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚Ņ‚4 .ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚Ņƒ4 .ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚Ņ„4 .ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚Ņ…4 .ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚Ņ†4 .ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚Ņ‡4 .ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚Ņˆ4 .ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚Ņ‰4 .ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚ŅŠ4 .ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚ŅŽ4 .ÐŋŅ€Ðĩ2ÐīÐū2Ņ‚Ņ4 .ÐŋŅ€Ðĩ2ÐīÐūŅ…4Ņ€ .ÐŋŅ€Ðĩ2ÐīÐŋ4 .ÐŋŅ€Ðĩ2ÐīŅ€4 .ÐŋŅ€ÐĩÐī4Ņ€ÐĩО .ÐŋŅ€Ðĩ2Ðī4Ņ€ÐĩŅˆ .ÐŋŅ€ÐĩÐī4Ņ€ŅÐž .ÐŋŅ€Ðĩ2ÐīŅ4 .ÐŋŅ€Ðĩ2ÐīŅ‚4 .ÐŋŅ€Ðĩ2ÐīŅƒ4ÐąÐĩÐī .ÐŋŅ€Ðĩ2ÐīŅƒ4ÐąÐĩÐķÐī .ÐŋŅ€Ðĩ2ÐīŅƒÐģаÐī .ÐŋŅ€Ðĩ2ÐīŅƒÐžÐļŅ .ÐŋŅ€Ðĩ2ÐīŅƒÐžÐļŅˆ .ÐŋŅ€Ðĩ2ÐīŅƒ4ÐŋŅ€ .ÐŋŅ€Ðĩ2ÐīŅƒŅÐĩ .ÐŋŅ€Ðĩ2ÐīŅƒŅ4Ðŧ .ÐŋŅ€Ðĩ2ÐīŅƒ4Ņ‚Ņ€ÐļÐ― .ÐŋŅ€Ðĩ2ÐīŅƒ4Ņ‡ÐļÐŧ .ÐŋŅ€Ðĩ2ÐīŅ„4 .ÐŋŅ€Ðĩ2ÐīŅ…4 .ÐŋŅ€Ðĩ2ÐīŅ†4 .ÐŋŅ€Ðĩ2ÐīŅ‡4 .ÐŋŅ€Ðĩ2ÐīŅˆ4 .ÐŋŅ€Ðĩ2ÐīŅ‰4 .ÐŋŅ€Ðĩ2ÐīŅ4Ðē .ÐŋŅ€Ðĩ2ÐīŅ4ŅŅ‚ .ÐŋŅ€ÐĩÐĩ4 .ÐŋŅ€ÐĩÐķ4 .ÐŋŅ€Ðĩ4Ðķ5Ðī .ÐŋŅ€Ðĩзаа4 .ÐŋŅ€ÐĩÐ·Ð°Ðą4 .ÐŋŅ€ÐĩзаÐē4 .ÐŋŅ€ÐĩзаÐģ4 .ÐŋŅ€ÐĩзаÐī4 .ÐŋŅ€ÐĩзаÐĩ4 .ÐŋŅ€ÐĩзаÐķ4 .ÐŋŅ€Ðĩзаз4 .ÐŋŅ€ÐĩзаÐļ4 .ÐŋŅ€ÐĩзаÐđ4 .ÐŋŅ€ÐĩзаК4 .ÐŋŅ€ÐĩзаÐŧ4 .ÐŋŅ€ÐĩзаО4 .ÐŋŅ€ÐĩÐ·Ð°Ð―4 .ÐŋŅ€ÐĩзаÐū4 .ÐŋŅ€ÐĩзаÐŋ4 .ÐŋŅ€ÐĩзаŅ€4 .ÐŋŅ€ÐĩзаŅ4 .ÐŋŅ€ÐĩзаŅ‚4 .ÐŋŅ€ÐĩзаŅƒ4 .ÐŋŅ€ÐĩзаŅ„4 .ÐŋŅ€ÐĩзаŅ…4 .ÐŋŅ€ÐĩзаŅ†4 .ÐŋŅ€ÐĩзаŅ‡4 .ÐŋŅ€ÐĩзаŅˆ4 .ÐŋŅ€ÐĩзаŅ‰4 .ÐŋŅ€ÐĩзаŅŠ4 .ÐŋŅ€ÐĩзаŅŽ4 .ÐŋŅ€ÐĩзаŅ4 .ÐŋŅ€Ðĩ2Ð·Ðą4 .ÐŋŅ€Ðĩ2зÐē4 .ÐŋŅ€Ðĩ2зÐģ4 .ÐŋŅ€Ðĩ2зÐī4 .ÐŋŅ€Ðĩ2зÐķ4 .ÐŋŅ€Ðĩ2зз4 .ÐŋŅ€Ðĩ2зК4 .ÐŋŅ€Ðĩ2зÐŧ4 .ÐŋŅ€Ðĩ2зО4 .ÐŋŅ€Ðĩ2Ð·Ð―4 .ÐŋŅ€Ðĩ4з5Ðū4КÐĩÐ°Ð― .ÐŋŅ€Ðĩ2зÐŋ4 .ÐŋŅ€Ðĩз4Ņ€ .ÐŋŅ€Ðĩ4з5Ņ€Ð°Ðž .ÐŋŅ€Ðĩ4з5Ņ€ÐĩÐī .ÐŋŅ€Ðĩ2зŅ4 .ÐŋŅ€Ðĩ2зŅ‚4 .ÐŋŅ€Ðĩ2зŅ„4 .ÐŋŅ€Ðĩ2зŅ…4 .ÐŋŅ€Ðĩ2зŅ†4 .ÐŋŅ€Ðĩ2зŅ‡4 .ÐŋŅ€Ðĩ2зŅˆ4 .ÐŋŅ€Ðĩ2зŅ‰4 .ÐŋŅ€ÐĩÐļ4 .ÐŋŅ€ÐĩÐļ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зО4 .ÐŋŅ€ÐĩÐļ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зŅ‰4 .ÐŋŅ€ÐĩÐļ2зŅŠ4 .ÐŋŅ€ÐĩÐļ2зŅŽ4 .ÐŋŅ€ÐĩÐļ2зŅ4 .ÐŋŅ€ÐĩÐđ4 .ÐŋŅ€ÐĩК4 .ÐŋŅ€ÐĩÐŧ4 .ÐŋŅ€ÐĩО4 .ÐŋŅ€ÐĩÐ―4 .ÐŋŅ€ÐĩÐ―Ð°Ð°4 .ÐŋŅ€ÐĩÐ―Ð°Ðą4 .ÐŋŅ€ÐĩÐ―Ð°Ðē4 .ÐŋŅ€ÐĩÐ―Ð°Ðģ4 .ÐŋŅ€ÐĩÐ―Ð°Ðī4 .ÐŋŅ€ÐĩÐ―Ð°Ðĩ4 .ÐŋŅ€ÐĩÐ―Ð°Ðķ4 .ÐŋŅ€ÐĩÐ―Ð°Ð·4 .ÐŋŅ€ÐĩÐ―Ð°Ðļ4 .ÐŋŅ€ÐĩÐ―Ð°Ðđ4 .ÐŋŅ€ÐĩÐ―Ð°Ðš4 .ÐŋŅ€ÐĩÐ―Ð°Ðŧ4 .ÐŋŅ€ÐĩÐ―Ð°Ðž4 .ÐŋŅ€ÐĩÐ―Ð°Ð―4 .ÐŋŅ€ÐĩÐ―Ð°Ðū4 .ÐŋŅ€ÐĩÐ―Ð°Ðŋ4 .ÐŋŅ€ÐĩÐ―Ð°Ņ€4 .ÐŋŅ€ÐĩÐ―Ð°Ņ4 .ÐŋŅ€ÐĩÐ―Ð°Ņ‚4 .ÐŋŅ€ÐĩÐ―Ð°Ņƒ4 .ÐŋŅ€ÐĩÐ―Ð°Ņ„4 .ÐŋŅ€ÐĩÐ―Ð°Ņ…4 .ÐŋŅ€ÐĩÐ―Ð°Ņ†4 .ÐŋŅ€ÐĩÐ―Ð°Ņ‡4 .ÐŋŅ€ÐĩÐ―Ð°Ņˆ4 .ÐŋŅ€ÐĩÐ―Ð°Ņ‰4 .ÐŋŅ€ÐĩÐ―Ð°ŅŠ4 .ÐŋŅ€ÐĩÐ―Ð°ŅŽ4 .ÐŋŅ€ÐĩÐ―Ð°Ņ4 .ÐŋŅ€ÐĩÐū4 .ÐŋŅ€ÐĩÐŋ4 .ÐŋŅ€ÐĩŅ€4 .ÐŋŅ€ÐĩŅ4 .ÐŋŅ€Ðĩ4Ņ5Ð―Ðū .ÐŋŅ€Ðĩ4Ņ5Ðŋа .ÐŋŅ€Ðĩ4Ņ4ÐŋÐļ .ÐŋŅ€Ðĩ4Ņ5Ņ† .ÐŋŅ€ÐĩŅ‚4 .ÐŋŅ€ÐĩŅƒ4 .ÐŋŅ€ÐĩŅ„4 .ÐŋŅ€ÐĩŅ…4 .ÐŋŅ€ÐĩŅ†4 .ÐŋŅ€ÐĩŅ‡4 .ÐŋŅ€Ðĩ4Ņ‡5К .ÐŋŅ€ÐĩŅ‰4 .ÐŋŅ€ÐĩŅŠ4 .ÐŋŅ€ÐĩŅŽ4 .ÐŋŅ€ÐĩŅ4 .ÐŋŅ€Ðļа4 .ÐŋŅ€ÐļÐą4 .ÐŋŅ€ÐļÐē4 .ÐŋŅ€ÐļÐģ4 .ÐŋŅ€ÐļÐī4 .ÐŋŅ€ÐļÐĩ4 .ÐŋŅ€ÐļÐķ4 .ÐŋŅ€Ðļз4 .ÐŋŅ€Ðļ4з5О .ÐŋŅ€ÐļÐļ4 .ÐŋŅ€ÐļÐđ4 .ÐŋŅ€ÐļК4 .ÐŋŅ€ÐļÐŧ4 .ÐŋŅ€ÐļО4 .ÐŋŅ€Ðļ4О5К .ÐŋŅ€ÐļÐ―4 .ÐŋŅ€Ðļ4Ð―5Ņ‚ .ÐŋŅ€Ðļ4Ð―5Ņ† .ÐŋŅ€ÐļÐū4 .ÐŋŅ€ÐļÐŋ4 .ÐŋŅ€Ðļ4Ðŋ5Ðē .ÐŋŅ€Ðļ4Ðŋ5К .ÐŋŅ€Ðļ4Ðŋ5Ð― .ÐŋŅ€ÐļŅ€4 .ÐŋŅ€ÐļŅ4 .ÐŋŅ€ÐļŅ‚4 .ÐŋŅ€Ðļ4Ņ‚5Ņ‡ .ÐŋŅ€ÐļŅƒ4 .ÐŋŅ€ÐļŅ„4 .ÐŋŅ€ÐļŅ…4 .ÐŋŅ€Ðļ4Ņ…5Ð― .ÐŋŅ€ÐļŅ†4 .ÐŋŅ€ÐļŅ‡4 .ÐŋŅ€ÐļŅˆ4 .ÐŋŅ€Ðļ4Ņˆ5К .ÐŋŅ€ÐļŅ‰4 .ÐŋŅ€ÐļŅŠ4 .ÐŋŅ€ÐļŅŽ4 .ÐŋŅ€ÐļŅ4 .ÐŋŅ€Ðūа4 .ÐŋŅ€ÐūÐą4 .ÐŋŅ€Ðū4Ðą5Ðē .ÐŋŅ€Ðū4Ðą5К .ÐŋŅ€Ðū4Ðą5ÐŧÐĩО .ÐŋŅ€ÐūÐē4 .ÐŋŅ€ÐūÐģ4 .ÐŋŅ€ÐūÐī4 .ÐŋŅ€ÐūÐĩ4 .ÐŋŅ€ÐūÐķ4 .ÐŋŅ€Ðūз4 .ÐŋŅ€ÐūÐļ4 .ÐŋŅ€ÐūК4 .ÐŋŅ€Ðū4К5Ņ .ÐŋŅ€ÐūÐŧ4 .ÐŋŅ€ÐūО4 .ÐŋŅ€ÐūÐ―4 .ÐŋŅ€ÐūÐū4 .ÐŋŅ€ÐūÐŋ4 .ÐŋŅ€ÐūŅ€4 .ÐŋŅ€ÐūŅ4 .ÐŋŅ€Ðū4Ņ5Ðą .ÐŋŅ€Ðū4Ņ4Ņ‚ .ÐŋŅ€Ðū4Ņ5Ņ„ .ÐŋŅ€ÐūŅ‚4 .ÐŋŅ€ÐūŅƒ4 .ÐŋŅ€ÐūŅ…4 .ÐŋŅ€ÐūŅ†4 .ÐŋŅ€ÐūŅ‡4 .ÐŋŅ€ÐūŅˆ4 .ÐŋŅ€ÐūŅ‰4 .ÐŋŅ€ÐūŅŠ4 .ÐŋŅ€ÐūŅŽ4 .ÐŋŅ€ÐūŅ4 .ÐŋŅ8 .ÐŋŅ‚8 .ÐŋŅ„8 .ÐŋŅ…8 .ÐŋŅ†8 .ÐŋŅ‡8 .ÐŋŅˆ8 .ÐŋŅ‰8 .Ņ€Ð°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зО4 .Ņ€Ð°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зŅ‰4 .Ņ€Ð°2зŅŠ4 .Ņ€Ð°2зŅŽ4 .Ņ€Ð°2зŅ4 .Ņ€Ðą8 .Ņ€Ðē8 .Ņ€Ðģ8 .Ņ€Ðī8 .Ņ€Ðķ8 .Ņ€Ð·8 .Ņ€Ðš8 .Ņ€Ðŧ8 .Ņ€Ðž8 .Ņ€Ð―8 .Ņ€Ðŋ8 .Ņ€Ņ€8 .Ņ€Ņ8 .Ņ€Ņ‚8 .Ņ€Ņ„8 .Ņ€Ņ…8 .Ņ€Ņ†8 .Ņ€Ņ‡8 .Ņ€Ņˆ8 .Ņ€Ņ‰8 .ŅÐą8 .ŅÐē8 .ŅÐģ8 .ŅÐī8 .ŅÐķ8 .ŅÐ·8 .ŅÐš8 .ŅÐŧ8 .ŅÐž8 .ŅÐ―8 .ŅÐŋ8 .ŅŅ€8 .ŅŅ8 .ŅŅ‚8 .ŅŅ„8 .ŅŅ…8 .ŅŅ†8 .ŅŅ‡8 .ŅŅˆ8 .ŅŅ‰8 .Ņ‚Ðą8 .Ņ‚Ðē8 .Ņ‚Ðģ8 .Ņ‚Ðī8 .Ņ‚Ðķ8 .Ņ‚з8 .Ņ‚К8 .Ņ‚Ðŧ8 .Ņ‚О8 .Ņ‚Ð―8 .Ņ‚Ðŋ8 .Ņ‚Ņ€8 .Ņ‚Ņ8 .Ņ‚Ņ‚8 .Ņ‚Ņ„8 .Ņ‚Ņ…8 .Ņ‚Ņ†8 .Ņ‚Ņ‡8 .Ņ‚Ņˆ8 .Ņ‚Ņ‰8 .ŅƒÐ°4 .ŅƒÐą4 .ŅƒÐē4 .ŅƒÐģ4 .ŅƒÐī4 .ŅƒÐĩ4 .ŅƒÐķ4 .ŅƒÐķ5КÐļ .ŅƒÐ·4 .ŅƒÐ·5ÐąÐĩ .ŅƒÐļ4 .ŅƒÐđ4 .ŅƒÐđ5ÐīÐļŅ .ŅƒÐđ5ÐīŅƒ .ŅƒÐš4 .ŅƒÐŧ4 .ŅƒÐŧ5Ņ‚ .ŅƒÐ―4 .ŅƒÐ―5ÐģаŅ€ .ŅƒÐ―5Ņ†Ðļ .ŅƒÐū4 .ŅƒÐŋ4 .ŅƒŅ€4 .ŅƒŅ€5ÐąÐ° .ŅƒŅ€5Ðē .ŅƒŅ€5Ð― .ŅƒŅ€5ŅŅƒÐ· .ŅƒŅ€5Ņ‚Ðļ .ŅƒŅ4 .ŅƒŅ5Ņ‚а .ŅƒŅ5Ņ‚Ðĩ .ŅƒŅ5Ņ‚Ðļ .ŅƒŅ‚4 .ŅƒŅ‚5Ņ€Ðĩ. .ŅƒŅ‚5Ņ€ÐĩŅˆ .ŅƒŅ‚5Ņ€ÐļÐ― .ŅƒŅ‚4Ņ€Ðū .ŅƒŅƒ4 .ŅƒŅ„4 .ŅƒŅ…4 .ŅƒŅ†4 .ŅƒŅ‡4 .ŅƒŅ‡5Ņ‚ÐļÐē .ŅƒŅˆ4 .ŅƒŅˆ5Ð―Ðū .ŅƒŅ‰4 .ŅƒŅŠ4 .ŅƒŅŽ4 .ŅƒŅŽ5Ņ‚Ðĩ .ŅƒŅ4 .Ņ„Ðą8 .Ņ„Ðē8 .Ņ„Ðģ8 .Ņ„Ðī8 .Ņ„Ðķ8 .Ņ„з8 .Ņ„К8 .Ņ„Ðŧ8 .Ņ„О8 .Ņ„Ð―8 .Ņ„Ðŋ8 .Ņ„Ņ€8 .Ņ„Ņ8 .Ņ„Ņ‚8 .Ņ„Ņ„8 .Ņ„Ņ…8 .Ņ„Ņ†8 .Ņ„Ņ‡8 .Ņ„Ņˆ8 .Ņ„Ņ‰8 .Ņ…Ðą8 .Ņ…Ðē8 .Ņ…Ðģ8 .Ņ…Ðī8 .Ņ…Ðķ8 .Ņ…з8 .Ņ…К8 .Ņ…Ðŧ8 .Ņ…О8 .Ņ…Ð―8 .Ņ…Ðŋ8 .Ņ…Ņ€8 .Ņ…Ņ8 .Ņ…Ņ‚8 .Ņ…Ņ„8 .Ņ…Ņ…8 .Ņ…Ņ†8 .Ņ…Ņ‡8 .Ņ…Ņˆ8 .Ņ…Ņ‰8 .Ņ†Ðą8 .Ņ†Ðē8 .Ņ†Ðģ8 .Ņ†Ðī8 .Ņ†Ðķ8 .Ņ†Ð·8 .Ņ†Ðš8 .Ņ†Ðŧ8 .Ņ†Ðž8 .Ņ†Ð―8 .Ņ†Ðŋ8 .Ņ†Ņ€8 .Ņ†Ņ8 .Ņ†Ņ‚8 .Ņ†Ņ„8 .Ņ†Ņ…8 .Ņ†Ņ†8 .Ņ†Ņ‡8 .Ņ†Ņˆ8 .Ņ†Ņ‰8 .Ņ‡Ðą8 .Ņ‡Ðē8 .Ņ‡Ðģ8 .Ņ‡Ðī8 .Ņ‡Ðķ8 .Ņ‡Ð·8 .Ņ‡Ðš8 .Ņ‡Ðŧ8 .Ņ‡Ðž8 .Ņ‡Ð―8 .Ņ‡Ðŋ8 .Ņ‡Ņ€8 .Ņ‡Ņ8 .Ņ‡Ņ‚8 .Ņ‡Ņ„8 .Ņ‡Ņ…8 .Ņ‡Ņ†8 .Ņ‡Ņ‡8 .Ņ‡Ņˆ8 .Ņ‡Ņ‰8 .ŅˆÐą8 .ŅˆÐē8 .ŅˆÐģ8 .ŅˆÐī8 .ŅˆÐķ8 .ŅˆÐ·8 .ŅˆÐš8 .ŅˆÐŧ8 .ŅˆÐž8 .ŅˆÐ―8 .ŅˆÐŋ8 .ŅˆŅ€8 .ŅˆŅ8 .ŅˆŅ‚8 .ŅˆŅ„8 .ŅˆŅ…8 .ŅˆŅ†8 .ŅˆŅ‡8 .ŅˆŅˆ8 .ŅˆŅ‰8 .Ņ‰Ðą8 .Ņ‰Ðē8 .Ņ‰Ðģ8 .Ņ‰Ðī8 .Ņ‰Ðķ8 .Ņ‰Ð·8 .Ņ‰Ðš8 .Ņ‰Ðŧ8 .Ņ‰Ðž8 .Ņ‰Ð―8 .Ņ‰Ðŋ8 .Ņ‰Ņ€8 .Ņ‰Ņ8 .Ņ‰Ņ‚8 .Ņ‰Ņ„8 .Ņ‰Ņ…8 .Ņ‰Ņ†8 .Ņ‰Ņ‡8 .Ņ‰Ņˆ8 .Ņ‰Ņ‰8 а1 4Ðą3Ðą4 8ÐąÐą. 4ÐąÐąÐą4 ÐąÐąÐē4 ÐąÐąÐģ4 ÐąÐąÐī4 ÐąÐąÐķ4 ÐąÐąÐ·4 4ÐąÐąÐš4 ÐąÐąÐŧ4 ÐąÐąÐž4 ÐąÐąÐ―4 4ÐąÐąÐŋ4 ÐąÐąŅ€4 ÐąÐąŅ4 4ÐąÐąŅ‚4 ÐąÐąŅ„4 ÐąÐąŅ…4 4ÐąÐąŅ†4 4ÐąÐąŅ‡4 ÐąÐąŅˆ4 ÐąÐąŅ‰4 2Ðą3Ðē 8ÐąÐē. 4ÐąÐēÐą4 4ÐąÐēÐē 4ÐąÐēÐģ4 4ÐąÐēÐī4 4ÐąÐēК4 4ÐąÐēÐŋ4 4ÐąÐēŅ‚4 4ÐąÐēŅ„ 4ÐąÐēŅ†4 4ÐąÐēŅ‡4 2Ðą3Ðģ 8ÐąÐģ. 4ÐąÐģÐą4 4ÐąÐģÐģ 4ÐąÐģК4 4ÐąÐģÐŋ4 4ÐąÐģŅ‚4 4ÐąÐģŅ†4 4ÐąÐģŅ‡4 2Ðą3Ðī 8ÐąÐī. 4ÐąÐīÐą4 4ÐąÐīÐģ 4ÐąÐīÐī 4ÐąÐīК4 4ÐąÐīÐŋ4 4ÐąÐīŅ‚4 4ÐąÐīŅ†4 4ÐąÐīŅ‡4 2Ðą3Ðķ 8ÐąÐķ. 4ÐąÐķÐą4 4ÐąÐķÐģ4 4ÐąÐķÐī4 4ÐąÐķÐķ 4ÐąÐķК4 4ÐąÐķÐŋ4 4ÐąÐķŅ 4ÐąÐķŅ‚4 4ÐąÐķŅ„ 4ÐąÐķŅ… 4ÐąÐķŅ†4 4ÐąÐķŅ‡4 4ÐąÐķŅˆ 2Ðą3з 8ÐąÐ·. 4ÐąÐ·Ðą4 4ÐąÐ·Ðģ4 4ÐąÐ·Ðī4 4ÐąÐ·Ð· 4ÐąÐ·Ðš4 4ÐąÐ·Ðŋ4 4ÐąÐ·Ņ 4ÐąÐ·Ņ‚4 4ÐąÐ·Ņ„ 4ÐąÐ·Ņ… 4ÐąÐ·Ņ†4 4ÐąÐ·Ņ‡4 4ÐąÐ·Ņˆ ÐąÐđ4 4Ðą3К4 8ÐąÐš. 4ÐąÐšÐą4 ÐąÐšÐē4 4ÐąÐšÐģ4 4ÐąÐšÐī4 ÐąÐšÐķ4 ÐąÐšÐ·4 4ÐąÐšÐš4 ÐąÐšÐŧ4 ÐąÐšÐž4 ÐąÐšÐ―4 4ÐąÐšÐŋ4 ÐąÐšŅ€4 ÐąÐšŅ4 4ÐąÐšŅ‚4 ÐąÐšŅ„4 ÐąÐšŅ…4 4ÐąÐšŅ†4 4ÐąÐšŅ‡4 ÐąÐšŅˆ4 ÐąÐšŅ‰4 2Ðą3Ðŧ4 8ÐąÐŧ. 4ÐąÐŧÐą4 4ÐąÐŧК4 4ÐąÐŧÐŧ 4ÐąÐŧÐŋ4 4ÐąÐŧŅ‚4 4ÐąÐŧŅ†4 4ÐąÐŧŅ‡4 2Ðą3О4 8ÐąÐž. 4ÐąÐžÐą4 4ÐąÐžÐš4 4ÐąÐžÐž 4ÐąÐžÐŋ4 4ÐąÐžŅ‚4 4ÐąÐžŅ†4 4ÐąÐžŅ‡4 2Ðą3Ð―4 8ÐąÐ―. 4ÐąÐ―Ðą4 4ÐąÐ―Ðš4 4ÐąÐ―Ð― 4ÐąÐ―Ðŋ4 4ÐąÐ―Ņ‚4 4ÐąÐ―Ņ†4 4ÐąÐ―Ņ‡4 4Ðą3Ðŋ4 8ÐąÐŋ. 4ÐąÐŋÐą4 ÐąÐŋÐē4 4ÐąÐŋÐģ4 4ÐąÐŋÐī4 ÐąÐŋÐķ4 ÐąÐŋз4 4ÐąÐŋК4 ÐąÐŋÐŧ4 ÐąÐŋО4 ÐąÐŋÐ―4 4ÐąÐŋÐŋ4 ÐąÐŋŅ€4 ÐąÐŋŅ4 4ÐąÐŋŅ‚4 ÐąÐŋŅ„4 ÐąÐŋŅ…4 4ÐąÐŋŅ†4 4ÐąÐŋŅ‡4 ÐąÐŋŅˆ4 ÐąÐŋŅ‰4 2Ðą3Ņ€4 8ÐąŅ€. 4ÐąŅ€Ðą4 4ÐąŅ€Ðš4 4ÐąŅ€Ðŋ4 4ÐąŅ€Ņ€ 4ÐąŅ€Ņ‚4 4ÐąŅ€Ņ†4 4ÐąŅ€Ņ‡4 4Ðą3Ņ 8ÐąŅ. 4ÐąŅÐą4 4ÐąŅÐģ4 4ÐąŅÐī4 4ÐąŅÐķ 4ÐąŅÐ· 4ÐąŅÐš4 4ÐąŅÐŋ4 4ÐąŅŅ 4ÐąŅŅ‚4 4ÐąŅŅ†4 4ÐąŅŅ‡4 4Ðą3Ņ‚4 8ÐąŅ‚. 4ÐąŅ‚Ðą4 ÐąŅ‚Ðē4 4ÐąŅ‚Ðģ4 4ÐąŅ‚Ðī4 ÐąŅ‚Ðķ4 ÐąŅ‚з4 4ÐąŅ‚К4 ÐąŅ‚Ðŧ4 ÐąŅ‚О4 ÐąŅ‚Ð―4 4ÐąŅ‚Ðŋ4 ÐąŅ‚Ņ€4 ÐąŅ‚Ņ4 4ÐąŅ‚Ņ‚4 ÐąŅ‚Ņ„4 ÐąŅ‚Ņ…4 4ÐąŅ‚Ņ†4 4ÐąŅ‚Ņ‡4 ÐąŅ‚Ņˆ4 ÐąŅ‚Ņ‰4 4Ðą3Ņ„ 8ÐąŅ„. 4ÐąŅ„Ðą4 4ÐąŅ„Ðē 4ÐąŅ„Ðģ4 4ÐąŅ„Ðī4 4ÐąŅ„Ðķ 4ÐąŅ„з 4ÐąŅ„К4 4ÐąŅ„Ðŋ4 4ÐąŅ„Ņ‚4 4ÐąŅ„Ņ„ 4ÐąŅ„Ņ†4 4ÐąŅ„Ņ‡4 4Ðą3Ņ… 8ÐąŅ…. 4ÐąŅ…Ðą4 4ÐąŅ…Ðģ4 4ÐąŅ…Ðī4 4ÐąŅ…Ðķ 4ÐąŅ…з 4ÐąŅ…К4 4ÐąŅ…Ðŋ4 4ÐąŅ…Ņ‚4 4ÐąŅ…Ņ… 4ÐąŅ…Ņ†4 4ÐąŅ…Ņ‡4 4Ðą3Ņ†4 8ÐąŅ†. 4ÐąŅ†Ðą4 ÐąŅ†Ðē4 4ÐąŅ†Ðģ4 4ÐąŅ†Ðī4 ÐąŅ†Ðķ4 ÐąŅ†Ð·4 4ÐąŅ†Ðš4 ÐąŅ†Ðŧ4 ÐąŅ†Ðž4 ÐąŅ†Ð―4 4ÐąŅ†Ðŋ4 ÐąŅ†Ņ€4 ÐąŅ†Ņ4 4ÐąŅ†Ņ‚4 ÐąŅ†Ņ„4 ÐąŅ†Ņ…4 4ÐąŅ†Ņ†4 4ÐąŅ†Ņ‡4 ÐąŅ†Ņˆ4 ÐąŅ†Ņ‰4 4Ðą3Ņ‡4 8ÐąŅ‡. 4ÐąŅ‡Ðą4 ÐąŅ‡Ðē4 4ÐąŅ‡Ðģ4 4ÐąŅ‡Ðī4 ÐąŅ‡Ðķ4 ÐąŅ‡Ð·4 4ÐąŅ‡Ðš4 ÐąŅ‡Ðŧ4 ÐąŅ‡Ðž4 ÐąŅ‡Ð―4 4ÐąŅ‡Ðŋ4 ÐąŅ‡Ņ€4 ÐąŅ‡Ņ4 4ÐąŅ‡Ņ‚4 ÐąŅ‡Ņ„4 ÐąŅ‡Ņ…4 4ÐąŅ‡Ņ†4 4ÐąŅ‡Ņ‡4 ÐąŅ‡Ņˆ4 ÐąŅ‡Ņ‰4 4Ðą3Ņˆ 8ÐąŅˆ. 4ÐąŅˆÐą4 4ÐąŅˆÐģ4 4ÐąŅˆÐī4 4ÐąŅˆÐķ 4ÐąŅˆÐ· 4ÐąŅˆÐš4 4ÐąŅˆÐŋ4 4ÐąŅˆŅ‚4 4ÐąŅˆŅ†4 4ÐąŅˆŅ‡4 4ÐąŅˆŅˆ 4Ðą3Ņ‰ 8ÐąŅ‰. 4ÐąŅ‰Ðą4 4ÐąŅ‰Ðš4 4ÐąŅ‰Ðŋ4 4ÐąŅ‰Ņ‚4 4ÐąŅ‰Ņ†4 4ÐąŅ‰Ņ‡4 4ÐąŅ‰Ņ‰ 2Ðē3Ðą 8ÐēÐą. 4ÐēÐąÐą 4ÐēÐąÐē4 4ÐēÐąÐš 4ÐēÐąÐŋ 4ÐēÐąŅ‚ 4ÐēÐąŅ„4 4ÐēÐąŅ† 4ÐēÐąŅ‡ 4Ðē3Ðē4 8ÐēÐē. ÐēÐēÐą4 4ÐēÐēÐē4 ÐēÐēÐģ4 ÐēÐēÐī4 ÐēÐēÐķ4 ÐēÐēз4 ÐēÐēК4 ÐēÐēÐŧ4 ÐēÐēО4 ÐēÐēÐ―4 ÐēÐēÐŋ4 ÐēÐēŅ€4 ÐēÐēŅ4 ÐēÐēŅ‚4 4ÐēÐēŅ„4 ÐēÐēŅ…4 ÐēÐēŅ†4 ÐēÐēŅ‡4 ÐēÐēŅˆ4 ÐēÐēŅ‰4 2Ðē3Ðģ 8ÐēÐģ. 4ÐēÐģÐē4 4ÐēÐģÐģ 4ÐēÐģК 4ÐēÐģÐŋ 4ÐēÐģŅ‚ 4ÐēÐģŅ„4 4ÐēÐģŅ† 4ÐēÐģŅ‡ 2Ðē3Ðī 8ÐēÐī. 4ÐēÐīÐą 4ÐēÐīÐē4 4ÐēÐīÐģ 4ÐēÐīÐī 4ÐēÐīК 4ÐēÐīÐŋ 4ÐēÐīŅ‚ 4ÐēÐīŅ„4 4ÐēÐīŅ† 4ÐēÐīŅ‡ 2Ðē3Ðķ 8ÐēÐķ. 4ÐēÐķÐē4 4ÐēÐķÐķ 4ÐēÐķŅ 4ÐēÐķŅ„4 4ÐēÐķŅ… 4ÐēÐķŅˆ 2Ðē3з 8Ðēз. 4ÐēзÐē4 4Ðēзз 4ÐēзŅ 4ÐēзŅ„4 4ÐēзŅ… 4ÐēзŅˆ ÐēÐđ4 2Ðē3К 8ÐēК. 4ÐēÐšÐą 4ÐēКÐē4 4ÐēКÐģ 4ÐēКÐī 4ÐēКК 4ÐēКŅ„4 2Ðē3Ðŧ4 8ÐēÐŧ. 4ÐēÐŧÐē4 4ÐēÐŧÐŧ 4ÐēÐŧŅ„4 2Ðē3О4 8ÐēО. 4ÐēОÐē4 4ÐēОО 4ÐēОŅ„4 2Ðē3Ð―4 8ÐēÐ―. 4ÐēÐ―Ðē4 4ÐēÐ―Ð― 4ÐēÐ―Ņ„4 2Ðē3Ðŋ 8ÐēÐŋ. 4ÐēÐŋÐą 4ÐēÐŋÐē4 4ÐēÐŋÐģ 4ÐēÐŋÐī 4ÐēÐŋÐŋ 4ÐēÐŋŅ„4 2Ðē3Ņ€4 8ÐēŅ€. 4ÐēŅ€Ðē4 4ÐēŅ€Ņ€ 4ÐēŅ€Ņ„4 2Ðē3Ņ 8ÐēŅ. 4ÐēŅÐē4 4ÐēŅÐķ 4ÐēŅÐ· 4ÐēŅŅ 4ÐēŅŅ„4 2Ðē3Ņ‚ 8ÐēŅ‚. 4ÐēŅ‚Ðą 4ÐēŅ‚Ðē4 4ÐēŅ‚Ðģ 4ÐēŅ‚Ðī 4ÐēŅ‚К 4ÐēŅ‚Ðŋ 4ÐēŅ‚Ņ‚ 4ÐēŅ‚Ņ„4 4ÐēŅ‚Ņ† 4ÐēŅ‚Ņ‡ 4Ðē3Ņ„4 8ÐēŅ„. ÐēŅ„Ðą4 4ÐēŅ„Ðē4 ÐēŅ„Ðģ4 ÐēŅ„Ðī4 4ÐēŅ„Ðķ4 4ÐēŅ„з4 ÐēŅ„К4 ÐēŅ„Ðŧ4 ÐēŅ„О4 ÐēŅ„Ð―4 ÐēŅ„Ðŋ4 ÐēŅ„Ņ€4 ÐēŅ„Ņ4 ÐēŅ„Ņ‚4 4ÐēŅ„Ņ„4 ÐēŅ„Ņ…4 ÐēŅ„Ņ†4 ÐēŅ„Ņ‡4 ÐēŅ„Ņˆ4 ÐēŅ„Ņ‰4 2Ðē3Ņ… 8ÐēŅ…. 4ÐēŅ…Ðē4 4ÐēŅ…Ðķ 4ÐēŅ…з 4ÐēŅ…Ņ„4 4ÐēŅ…Ņ… 2Ðē3Ņ† 8ÐēŅ†. 4ÐēŅ†Ðą 4ÐēŅ†Ðē4 4ÐēŅ†Ðģ 4ÐēŅ†Ðī 4ÐēŅ†Ðš 4ÐēŅ†Ðŋ 4ÐēŅ†Ņ‚ 4ÐēŅ†Ņ„4 4ÐēŅ†Ņ† 4ÐēŅ†Ņ‡ 2Ðē3Ņ‡ 8ÐēŅ‡. 4ÐēŅ‡Ðą 4ÐēŅ‡Ðē4 4ÐēŅ‡Ðģ 4ÐēŅ‡Ðī 4ÐēŅ‡Ðš 4ÐēŅ‡Ðŋ 4ÐēŅ‡Ņ‚ 4ÐēŅ‡Ņ„4 4ÐēŅ‡Ņ† 4ÐēŅ‡Ņ‡ 2Ðē3Ņˆ 8ÐēŅˆ. 4ÐēŅˆÐē4 4ÐēŅˆÐķ 4ÐēŅˆÐ· 4ÐēŅˆŅ„4 4ÐēŅˆŅˆ 2Ðē3Ņ‰ 8ÐēŅ‰. 4ÐēŅ‰Ðē4 4ÐēŅ‰Ņ„4 4ÐēŅ‰Ņ‰ 2Ðģ3Ðą 8ÐģÐą. 4ÐģÐąÐą 4ÐģÐąÐģ4 4ÐģÐąÐš4 4ÐģÐąÐŋ4 4ÐģÐąŅ‚4 4ÐģÐąŅ†4 4ÐģÐąŅ‡4 2Ðģ3Ðē 8ÐģÐē. 4ÐģÐēÐą4 4ÐģÐēÐē 4ÐģÐēÐģ4 4ÐģÐēÐī4 4ÐģÐēК4 4ÐģÐēÐŋ4 4ÐģÐēŅ‚4 4ÐģÐēŅ„ 4ÐģÐēŅ†4 4ÐģÐēŅ‡4 4Ðģ3Ðģ4 8ÐģÐģ. ÐģÐģÐą4 ÐģÐģÐē4 4ÐģÐģÐģ4 ÐģÐģÐī4 ÐģÐģÐķ4 ÐģÐģз4 4ÐģÐģК4 ÐģÐģÐŧ4 ÐģÐģО4 ÐģÐģÐ―4 4ÐģÐģÐŋ4 ÐģÐģŅ€4 ÐģÐģŅ4 4ÐģÐģŅ‚4 ÐģÐģŅ„4 ÐģÐģŅ…4 4ÐģÐģŅ†4 4ÐģÐģŅ‡4 ÐģÐģŅˆ4 ÐģÐģŅ‰4 2Ðģ3Ðī 8ÐģÐī. 4ÐģÐīÐą 4ÐģÐīÐģ4 4ÐģÐīÐī 4ÐģÐīК4 4ÐģÐīÐŋ4 4ÐģÐīŅ‚4 4ÐģÐīŅ†4 4ÐģÐīŅ‡4 2Ðģ3Ðķ 8ÐģÐķ. 4ÐģÐķÐą4 4ÐģÐķÐģ4 4ÐģÐķÐī4 4ÐģÐķÐķ 4ÐģÐķК4 4ÐģÐķÐŋ4 4ÐģÐķŅ 4ÐģÐķŅ‚4 4ÐģÐķŅ„ 4ÐģÐķŅ… 4ÐģÐķŅ†4 4ÐģÐķŅ‡4 4ÐģÐķŅˆ 2Ðģ3з 8Ðģз. 4ÐģÐ·Ðą4 4ÐģзÐģ4 4ÐģзÐī4 4Ðģзз 4ÐģзК4 4ÐģзÐŋ4 4ÐģзŅ 4ÐģзŅ‚4 4ÐģзŅ„ 4ÐģзŅ… 4ÐģзŅ†4 4ÐģзŅ‡4 4ÐģзŅˆ ÐģÐđ4 4Ðģ3К4 8ÐģК. 4ÐģÐšÐą4 ÐģКÐē4 4ÐģКÐģ4 4ÐģКÐī4 ÐģКÐķ4 ÐģКз4 4ÐģКК4 ÐģКÐŧ4 ÐģКО4 ÐģÐšÐ―4 4ÐģКÐŋ4 ÐģКŅ€4 ÐģКŅ4 4ÐģКŅ‚4 ÐģКŅ„4 ÐģКŅ…4 4ÐģКŅ†4 4ÐģКŅ‡4 ÐģКŅˆ4 ÐģКŅ‰4 2Ðģ3Ðŧ4 8ÐģÐŧ. 4ÐģÐŧÐģ4 4ÐģÐŧК4 4ÐģÐŧÐŧ 4ÐģÐŧÐŋ4 4ÐģÐŧŅ‚4 4ÐģÐŧŅ†4 4ÐģÐŧŅ‡4 2Ðģ3О4 8ÐģО. 4ÐģОÐģ4 4ÐģОК4 4ÐģОО 4ÐģОÐŋ4 4ÐģОŅ‚4 4ÐģОŅ†4 4ÐģОŅ‡4 2Ðģ3Ð―4 8ÐģÐ―. 4ÐģÐ―Ðģ4 4ÐģÐ―Ðš4 4ÐģÐ―Ð― 4ÐģÐ―Ðŋ4 4ÐģÐ―Ņ‚4 4ÐģÐ―Ņ†4 4ÐģÐ―Ņ‡4 4Ðģ3Ðŋ4 8ÐģÐŋ. 4ÐģÐŋÐą4 ÐģÐŋÐē4 4ÐģÐŋÐģ4 4ÐģÐŋÐī4 ÐģÐŋÐķ4 ÐģÐŋз4 4ÐģÐŋК4 ÐģÐŋÐŧ4 ÐģÐŋО4 ÐģÐŋÐ―4 4ÐģÐŋÐŋ4 ÐģÐŋŅ€4 ÐģÐŋŅ4 4ÐģÐŋŅ‚4 ÐģÐŋŅ„4 ÐģÐŋŅ…4 4ÐģÐŋŅ†4 4ÐģÐŋŅ‡4 ÐģÐŋŅˆ4 ÐģÐŋŅ‰4 2Ðģ3Ņ€4 8ÐģŅ€. 4ÐģŅ€Ðģ4 4ÐģŅ€Ðš4 4ÐģŅ€Ðŋ4 4ÐģŅ€Ņ€ 4ÐģŅ€Ņ‚4 4ÐģŅ€Ņ†4 4ÐģŅ€Ņ‡4 4Ðģ3Ņ 8ÐģŅ. 4ÐģŅÐą4 4ÐģŅÐģ4 4ÐģŅÐī4 4ÐģŅÐķ 4ÐģŅÐ· 4ÐģŅÐš4 4ÐģŅÐŋ4 4ÐģŅŅ 4ÐģŅŅ‚4 4ÐģŅŅ†4 4ÐģŅŅ‡4 4Ðģ3Ņ‚4 8ÐģŅ‚. 4ÐģŅ‚Ðą4 ÐģŅ‚Ðē4 4ÐģŅ‚Ðģ4 4ÐģŅ‚Ðī4 ÐģŅ‚Ðķ4 ÐģŅ‚з4 4ÐģŅ‚К4 ÐģŅ‚Ðŧ4 ÐģŅ‚О4 ÐģŅ‚Ð―4 4ÐģŅ‚Ðŋ4 ÐģŅ‚Ņ€4 ÐģŅ‚Ņ4 4ÐģŅ‚Ņ‚4 ÐģŅ‚Ņ„4 ÐģŅ‚Ņ…4 4ÐģŅ‚Ņ†4 4ÐģŅ‚Ņ‡4 ÐģŅ‚Ņˆ4 ÐģŅ‚Ņ‰4 4Ðģ3Ņ„ 8ÐģŅ„. 4ÐģŅ„Ðą4 4ÐģŅ„Ðē 4ÐģŅ„Ðģ4 4ÐģŅ„Ðī4 4ÐģŅ„Ðķ 4ÐģŅ„з 4ÐģŅ„К4 4ÐģŅ„Ðŋ4 4ÐģŅ„Ņ‚4 4ÐģŅ„Ņ„ 4ÐģŅ„Ņ†4 4ÐģŅ„Ņ‡4 4Ðģ3Ņ… 8ÐģŅ…. 4ÐģŅ…Ðą4 4ÐģŅ…Ðģ4 4ÐģŅ…Ðī4 4ÐģŅ…Ðķ 4ÐģŅ…з 4ÐģŅ…К4 4ÐģŅ…Ðŋ4 4ÐģŅ…Ņ‚4 4ÐģŅ…Ņ… 4ÐģŅ…Ņ†4 4ÐģŅ…Ņ‡4 4Ðģ3Ņ†4 8ÐģŅ†. 4ÐģŅ†Ðą4 ÐģŅ†Ðē4 4ÐģŅ†Ðģ4 4ÐģŅ†Ðī4 ÐģŅ†Ðķ4 ÐģŅ†Ð·4 4ÐģŅ†Ðš4 ÐģŅ†Ðŧ4 ÐģŅ†Ðž4 ÐģŅ†Ð―4 4ÐģŅ†Ðŋ4 ÐģŅ†Ņ€4 ÐģŅ†Ņ4 4ÐģŅ†Ņ‚4 ÐģŅ†Ņ„4 ÐģŅ†Ņ…4 4ÐģŅ†Ņ†4 4ÐģŅ†Ņ‡4 ÐģŅ†Ņˆ4 ÐģŅ†Ņ‰4 4Ðģ3Ņ‡4 8ÐģŅ‡. 4ÐģŅ‡Ðą4 ÐģŅ‡Ðē4 4ÐģŅ‡Ðģ4 4ÐģŅ‡Ðī4 ÐģŅ‡Ðķ4 ÐģŅ‡Ð·4 4ÐģŅ‡Ðš4 ÐģŅ‡Ðŧ4 ÐģŅ‡Ðž4 ÐģŅ‡Ð―4 4ÐģŅ‡Ðŋ4 ÐģŅ‡Ņ€4 ÐģŅ‡Ņ4 4ÐģŅ‡Ņ‚4 ÐģŅ‡Ņ„4 ÐģŅ‡Ņ…4 4ÐģŅ‡Ņ†4 4ÐģŅ‡Ņ‡4 ÐģŅ‡Ņˆ4 ÐģŅ‡Ņ‰4 4Ðģ3Ņˆ 8ÐģŅˆ. 4ÐģŅˆÐą4 4ÐģŅˆÐģ4 4ÐģŅˆÐī4 4ÐģŅˆÐķ 4ÐģŅˆÐ· 4ÐģŅˆÐš4 4ÐģŅˆÐŋ4 4ÐģŅˆŅ‚4 4ÐģŅˆŅ†4 4ÐģŅˆŅ‡4 4ÐģŅˆŅˆ 4Ðģ3Ņ‰ 8ÐģŅ‰. 4ÐģŅ‰Ðģ4 4ÐģŅ‰Ðš4 4ÐģŅ‰Ðŋ4 4ÐģŅ‰Ņ‚4 4ÐģŅ‰Ņ†4 4ÐģŅ‰Ņ‡4 4ÐģŅ‰Ņ‰ 4Ðī3Ðą4 8ÐīÐą. 4ÐīÐąÐą4 ÐīÐąÐē4 4ÐīÐąÐģ4 4ÐīÐąÐī4 ÐīÐąÐķ4 ÐīÐąÐ·4 4ÐīÐąÐš4 ÐīÐąÐŧ4 ÐīÐąÐž4 ÐīÐąÐ―4 4ÐīÐąÐŋ4 ÐīÐąŅ€4 ÐīÐąŅ4 4ÐīÐąŅ‚4 ÐīÐąŅ„4 ÐīÐąŅ…4 4ÐīÐąŅ†4 4ÐīÐąŅ‡4 ÐīÐąŅˆ4 ÐīÐąŅ‰4 2Ðī3Ðē 8ÐīÐē. 4ÐīÐēÐą4 4ÐīÐēÐē 4ÐīÐēÐģ4 4ÐīÐēÐī4 4ÐīÐēК4 4ÐīÐēÐŋ4 4ÐīÐēŅ‚4 4ÐīÐēŅ„ 4ÐīÐēŅ†4 4ÐīÐēŅ‡4 4Ðī3Ðģ4 8ÐīÐģ. 4ÐīÐģÐą4 ÐīÐģÐē4 4ÐīÐģÐģ4 4ÐīÐģÐī4 ÐīÐģÐķ4 ÐīÐģз4 4ÐīÐģК4 ÐīÐģÐŧ4 ÐīÐģО4 ÐīÐģÐ―4 4ÐīÐģÐŋ4 ÐīÐģŅ€4 ÐīÐģŅ4 4ÐīÐģŅ‚4 ÐīÐģŅ„4 ÐīÐģŅ…4 4ÐīÐģŅ†4 4ÐīÐģŅ‡4 ÐīÐģŅˆ4 ÐīÐģŅ‰4 4Ðī3Ðī4 8ÐīÐī. 4ÐīÐīÐą4 ÐīÐīÐē4 4ÐīÐīÐģ4 4ÐīÐīÐī4 ÐīÐīÐķ4 ÐīÐīз4 4ÐīÐīК4 ÐīÐīÐŧ4 ÐīÐīО4 ÐīÐīÐ―4 4ÐīÐīÐŋ4 ÐīÐīŅ€4 ÐīÐīŅ4 4ÐīÐīŅ‚4 ÐīÐīŅ„4 ÐīÐīŅ…4 4ÐīÐīŅ†4 4ÐīÐīŅ‡4 ÐīÐīŅˆ4 ÐīÐīŅ‰4 8ÐīÐķ. 4ÐīÐķÐą4 2ÐīÐķÐē 4ÐīÐķÐģ4 4ÐīÐķÐī4 4ÐīÐķÐķ 2ÐīÐķз 4ÐīÐķК4 2ÐīÐķÐŧ 2ÐīÐķО 2ÐīÐķÐ― 4ÐīÐķÐŋ4 2ÐīÐķŅ€ 4ÐīÐķŅ 4ÐīÐķŅ‚4 4ÐīÐķŅ„ 4ÐīÐķŅ… 4ÐīÐķŅ†4 4ÐīÐķŅ‡4 4ÐīÐķŅˆ 2ÐīÐķŅ‰ 8Ðīз. 4ÐīÐ·Ðą4 2ÐīзÐē 4ÐīзÐģ4 4ÐīзÐī4 2ÐīзÐķ 4Ðīзз 4ÐīзК4 2ÐīзÐŧ 2ÐīзО 2ÐīÐ·Ð― 4ÐīзÐŋ4 2ÐīзŅ€ 4ÐīзŅ 4ÐīзŅ‚4 4ÐīзŅ„ 4ÐīзŅ… 4ÐīзŅ†4 4ÐīзŅ‡4 4ÐīзŅˆ 2ÐīзŅ‰ ÐīÐđ4 4Ðī3К4 8ÐīК. 4ÐīÐšÐą4 ÐīКÐē4 4ÐīКÐģ4 4ÐīКÐī4 ÐīКÐķ4 ÐīКз4 4ÐīКК4 ÐīКÐŧ4 ÐīКО4 ÐīÐšÐ―4 4ÐīКÐŋ4 ÐīКŅ€4 ÐīКŅ4 4ÐīКŅ‚4 ÐīКŅ„4 ÐīКŅ…4 4ÐīКŅ†4 4ÐīКŅ‡4 ÐīКŅˆ4 ÐīКŅ‰4 2Ðī3Ðŧ4 8ÐīÐŧ. 4ÐīÐŧÐą4 4ÐīÐŧÐģ4 4ÐīÐŧÐī4 4ÐīÐŧК4 4ÐīÐŧÐŧ 4ÐīÐŧÐŋ4 4ÐīÐŧŅ‚4 4ÐīÐŧŅ†4 4ÐīÐŧŅ‡4 2Ðī3О4 8ÐīО. 4ÐīÐžÐą4 4ÐīОÐģ4 4ÐīОÐī4 4ÐīОК4 4ÐīОО 4ÐīОÐŋ4 4ÐīОŅ‚4 4ÐīОŅ†4 4ÐīОŅ‡4 2Ðī3Ð―4 8ÐīÐ―. 4ÐīÐ―Ðą4 4ÐīÐ―Ðģ4 4ÐīÐ―Ðī4 4ÐīÐ―Ðš4 4ÐīÐ―Ð― 4ÐīÐ―Ðŋ4 4ÐīÐ―Ņ‚4 4ÐīÐ―Ņ†4 4ÐīÐ―Ņ‡4 4Ðī3Ðŋ4 8ÐīÐŋ. 4ÐīÐŋÐą4 ÐīÐŋÐē4 4ÐīÐŋÐģ4 4ÐīÐŋÐī4 ÐīÐŋÐķ4 ÐīÐŋз4 4ÐīÐŋК4 ÐīÐŋÐŧ4 ÐīÐŋО4 ÐīÐŋÐ―4 4ÐīÐŋÐŋ4 ÐīÐŋŅ€4 ÐīÐŋŅ4 4ÐīÐŋŅ‚4 ÐīÐŋŅ„4 ÐīÐŋŅ…4 4ÐīÐŋŅ†4 4ÐīÐŋŅ‡4 ÐīÐŋŅˆ4 ÐīÐŋŅ‰4 2Ðī3Ņ€4 8ÐīŅ€. 4ÐīŅ€Ðą4 4ÐīŅ€Ðģ4 4ÐīŅ€Ðī4 4ÐīŅ€Ðš4 4ÐīŅ€Ðŋ4 4ÐīŅ€Ņ€ 4ÐīŅ€Ņ‚4 4ÐīŅ€Ņ†4 4ÐīŅ€Ņ‡4 4Ðī3Ņ 8ÐīŅ. 4ÐīŅÐą4 4ÐīŅÐģ4 4ÐīŅÐī4 4ÐīŅÐķ 4ÐīŅÐ· 4ÐīŅÐš4 4ÐīŅÐŋ4 4ÐīŅŅ 4ÐīŅŅ‚4 4ÐīŅŅ†4 4ÐīŅŅ‡4 4Ðī3Ņ‚4 8ÐīŅ‚. 4ÐīŅ‚Ðą4 ÐīŅ‚Ðē4 4ÐīŅ‚Ðģ4 4ÐīŅ‚Ðī4 ÐīŅ‚Ðķ4 ÐīŅ‚з4 4ÐīŅ‚К4 ÐīŅ‚Ðŧ4 ÐīŅ‚О4 ÐīŅ‚Ð―4 4ÐīŅ‚Ðŋ4 ÐīŅ‚Ņ€4 ÐīŅ‚Ņ4 4ÐīŅ‚Ņ‚4 ÐīŅ‚Ņ„4 ÐīŅ‚Ņ…4 4ÐīŅ‚Ņ†4 4ÐīŅ‚Ņ‡4 ÐīŅ‚Ņˆ4 ÐīŅ‚Ņ‰4 4Ðī3Ņ„ 8ÐīŅ„. 4ÐīŅ„Ðą4 4ÐīŅ„Ðē 4ÐīŅ„Ðģ4 4ÐīŅ„Ðī4 4ÐīŅ„Ðķ 4ÐīŅ„з 4ÐīŅ„К4 4ÐīŅ„Ðŋ4 4ÐīŅ„Ņ‚4 4ÐīŅ„Ņ„ 4ÐīŅ„Ņ†4 4ÐīŅ„Ņ‡4 4Ðī3Ņ… 8ÐīŅ…. 4ÐīŅ…Ðą4 4ÐīŅ…Ðģ4 4ÐīŅ…Ðī4 4ÐīŅ…Ðķ 4ÐīŅ…з 4ÐīŅ…К4 4ÐīŅ…Ðŋ4 4ÐīŅ…Ņ‚4 4ÐīŅ…Ņ… 4ÐīŅ…Ņ†4 4ÐīŅ…Ņ‡4 4Ðī3Ņ†4 8ÐīŅ†. 4ÐīŅ†Ðą4 ÐīŅ†Ðē4 4ÐīŅ†Ðģ4 4ÐīŅ†Ðī4 ÐīŅ†Ðķ4 ÐīŅ†Ð·4 4ÐīŅ†Ðš4 ÐīŅ†Ðŧ4 ÐīŅ†Ðž4 ÐīŅ†Ð―4 4ÐīŅ†Ðŋ4 ÐīŅ†Ņ€4 ÐīŅ†Ņ4 4ÐīŅ†Ņ‚4 ÐīŅ†Ņ„4 ÐīŅ†Ņ…4 4ÐīŅ†Ņ†4 4ÐīŅ†Ņ‡4 ÐīŅ†Ņˆ4 ÐīŅ†Ņ‰4 4Ðī3Ņ‡4 8ÐīŅ‡. 4ÐīŅ‡Ðą4 ÐīŅ‡Ðē4 4ÐīŅ‡Ðģ4 4ÐīŅ‡Ðī4 ÐīŅ‡Ðķ4 ÐīŅ‡Ð·4 4ÐīŅ‡Ðš4 ÐīŅ‡Ðŧ4 ÐīŅ‡Ðž4 ÐīŅ‡Ð―4 4ÐīŅ‡Ðŋ4 ÐīŅ‡Ņ€4 ÐīŅ‡Ņ4 4ÐīŅ‡Ņ‚4 ÐīŅ‡Ņ„4 ÐīŅ‡Ņ…4 4ÐīŅ‡Ņ†4 4ÐīŅ‡Ņ‡4 ÐīŅ‡Ņˆ4 ÐīŅ‡Ņ‰4 4Ðī3Ņˆ 8ÐīŅˆ. 4ÐīŅˆÐą4 4ÐīŅˆÐģ4 4ÐīŅˆÐī4 4ÐīŅˆÐķ 4ÐīŅˆÐ· 4ÐīŅˆÐš4 4ÐīŅˆÐŋ4 4ÐīŅˆŅ‚4 4ÐīŅˆŅ†4 4ÐīŅˆŅ‡4 4ÐīŅˆŅˆ 4Ðī3Ņ‰ 8ÐīŅ‰. 4ÐīŅ‰Ðą4 4ÐīŅ‰Ðģ4 4ÐīŅ‰Ðī4 4ÐīŅ‰Ðš4 4ÐīŅ‰Ðŋ4 4ÐīŅ‰Ņ‚4 4ÐīŅ‰Ņ†4 4ÐīŅ‰Ņ‡4 4ÐīŅ‰Ņ‰ Ðĩ1 2Ðķ3Ðą 8ÐķÐą. 4ÐķÐąÐą 4ÐķÐąÐķ4 4ÐķÐąÐ·4 4ÐķÐąÐš 4ÐķÐąÐŋ 4ÐķÐąŅ4 4ÐķÐąŅ‚ 4ÐķÐąŅ„4 4ÐķÐąŅ…4 4ÐķÐąŅ† 4ÐķÐąŅ‡ 4ÐķÐąŅˆ4 2Ðķ3Ðē 8ÐķÐē. 4ÐķÐēÐē 4ÐķÐēÐķ4 4ÐķÐēŅ4 4ÐķÐēŅ„4 4ÐķÐēŅ…4 4ÐķÐēŅˆ4 2Ðķ3Ðģ 8ÐķÐģ. 4ÐķÐģÐģ 4ÐķÐģÐķ4 4ÐķÐģз4 4ÐķÐģК 4ÐķÐģÐŋ 4ÐķÐģŅ4 4ÐķÐģŅ‚ 4ÐķÐģŅ„4 4ÐķÐģŅ…4 4ÐķÐģŅ† 4ÐķÐģŅ‡ 4ÐķÐģŅˆ4 2Ðķ3Ðī 8ÐķÐī. 4ÐķÐīÐą 4ÐķÐīÐģ 4ÐķÐīÐī 4ÐķÐīÐķ4 4ÐķÐīз4 4ÐķÐīК 4ÐķÐīÐŋ 4ÐķÐīŅ4 4ÐķÐīŅ‚ 4ÐķÐīŅ„4 4ÐķÐīŅ…4 4ÐķÐīŅ† 4ÐķÐīŅ‡ 4ÐķÐīŅˆ4 4Ðķ3Ðķ4 8ÐķÐķ. ÐķÐķÐą4 ÐķÐķÐē4 ÐķÐķÐģ4 ÐķÐķÐī4 4ÐķÐķÐķ4 ÐķÐķз4 ÐķÐķК4 ÐķÐķÐŧ4 ÐķÐķО4 ÐķÐķÐ―4 ÐķÐķÐŋ4 ÐķÐķŅ€4 4ÐķÐķŅ4 ÐķÐķŅ‚4 4ÐķÐķŅ„4 4ÐķÐķŅ…4 ÐķÐķŅ†4 ÐķÐķŅ‡4 4ÐķÐķŅˆ4 ÐķÐķŅ‰4 2Ðķ3з 8Ðķз. 4ÐķзÐķ4 4Ðķзз 4ÐķзŅ4 4ÐķзŅ„4 4ÐķзŅ…4 4ÐķзŅˆ4 ÐķÐđ4 4Ðķ3К 8ÐķК. 4ÐķÐšÐą 4ÐķКÐģ 4ÐķКÐī 4ÐķКÐķ4 4ÐķКз4 4ÐķКК 4ÐķКŅ4 4ÐķКŅ„4 4ÐķКŅ…4 4ÐķКŅˆ4 2Ðķ3Ðŧ4 8ÐķÐŧ. 4ÐķÐŧÐķ4 4ÐķÐŧÐŧ 4ÐķÐŧŅ4 4ÐķÐŧŅ„4 4ÐķÐŧŅ…4 4ÐķÐŧŅˆ4 2Ðķ3О4 8ÐķО. 4ÐķОÐķ4 4ÐķОО 4ÐķОŅ4 4ÐķОŅ„4 4ÐķОŅ…4 4ÐķОŅˆ4 2Ðķ3Ð―4 8ÐķÐ―. 4ÐķÐ―Ðķ4 4ÐķÐ―Ð― 4ÐķÐ―Ņ4 4ÐķÐ―Ņ„4 4ÐķÐ―Ņ…4 4ÐķÐ―Ņˆ4 4Ðķ3Ðŋ 8ÐķÐŋ. 4ÐķÐŋÐą 4ÐķÐŋÐģ 4ÐķÐŋÐī 4ÐķÐŋÐķ4 4ÐķÐŋз4 4ÐķÐŋÐŋ 4ÐķÐŋŅ4 4ÐķÐŋŅ„4 4ÐķÐŋŅ…4 4ÐķÐŋŅˆ4 2Ðķ3Ņ€4 8ÐķŅ€. 4ÐķŅ€Ðķ4 4ÐķŅ€Ņ€ 4ÐķŅ€Ņ4 4ÐķŅ€Ņ„4 4ÐķŅ€Ņ…4 4ÐķŅ€Ņˆ4 4Ðķ3Ņ4 8ÐķŅ. ÐķŅÐą4 ÐķŅÐē4 ÐķŅÐģ4 ÐķŅÐī4 4ÐķŅÐķ4 4ÐķŅÐ·4 ÐķŅÐš4 ÐķŅÐŧ4 ÐķŅÐž4 ÐķŅÐ―4 ÐķŅÐŋ4 ÐķŅŅ€4 4ÐķŅŅ4 ÐķŅŅ‚4 4ÐķŅŅ„4 4ÐķŅŅ…4 ÐķŅŅ†4 ÐķŅŅ‡4 4ÐķŅŅˆ4 ÐķŅŅ‰4 4Ðķ3Ņ‚ 8ÐķŅ‚. 4ÐķŅ‚Ðą 4ÐķŅ‚Ðģ 4ÐķŅ‚Ðī 4ÐķŅ‚Ðķ4 4ÐķŅ‚з4 4ÐķŅ‚К 4ÐķŅ‚Ðŋ 4ÐķŅ‚Ņ4 4ÐķŅ‚Ņ‚ 4ÐķŅ‚Ņ„4 4ÐķŅ‚Ņ…4 4ÐķŅ‚Ņ† 4ÐķŅ‚Ņ‡ 4ÐķŅ‚Ņˆ4 4Ðķ3Ņ„4 8ÐķŅ„. ÐķŅ„Ðą4 4ÐķŅ„Ðē4 ÐķŅ„Ðģ4 ÐķŅ„Ðī4 4ÐķŅ„Ðķ4 4ÐķŅ„з4 ÐķŅ„К4 ÐķŅ„Ðŧ4 ÐķŅ„О4 ÐķŅ„Ð―4 ÐķŅ„Ðŋ4 ÐķŅ„Ņ€4 4ÐķŅ„Ņ4 ÐķŅ„Ņ‚4 4ÐķŅ„Ņ„4 4ÐķŅ„Ņ…4 ÐķŅ„Ņ†4 ÐķŅ„Ņ‡4 4ÐķŅ„Ņˆ4 ÐķŅ„Ņ‰4 4Ðķ3Ņ…4 8ÐķŅ…. ÐķŅ…Ðą4 ÐķŅ…Ðē4 ÐķŅ…Ðģ4 ÐķŅ…Ðī4 4ÐķŅ…Ðķ4 4ÐķŅ…з4 ÐķŅ…К4 ÐķŅ…Ðŧ4 ÐķŅ…О4 ÐķŅ…Ð―4 ÐķŅ…Ðŋ4 ÐķŅ…Ņ€4 4ÐķŅ…Ņ4 ÐķŅ…Ņ‚4 4ÐķŅ…Ņ„4 4ÐķŅ…Ņ…4 ÐķŅ…Ņ†4 ÐķŅ…Ņ‡4 4ÐķŅ…Ņˆ4 ÐķŅ…Ņ‰4 4Ðķ3Ņ† 8ÐķŅ†. 4ÐķŅ†Ðą 4ÐķŅ†Ðģ 4ÐķŅ†Ðī 4ÐķŅ†Ðķ4 4ÐķŅ†Ð·4 4ÐķŅ†Ðš 4ÐķŅ†Ðŋ 4ÐķŅ†Ņ4 4ÐķŅ†Ņ‚ 4ÐķŅ†Ņ„4 4ÐķŅ†Ņ…4 4ÐķŅ†Ņ† 4ÐķŅ†Ņ‡ 4ÐķŅ†Ņˆ4 4Ðķ3Ņ‡ 8ÐķŅ‡. 4ÐķŅ‡Ðą 4ÐķŅ‡Ðģ 4ÐķŅ‡Ðī 4ÐķŅ‡Ðķ4 4ÐķŅ‡Ð·4 4ÐķŅ‡Ðš 4ÐķŅ‡Ðŋ 4ÐķŅ‡Ņ4 4ÐķŅ‡Ņ‚ 4ÐķŅ‡Ņ„4 4ÐķŅ‡Ņ…4 4ÐķŅ‡Ņ† 4ÐķŅ‡Ņ‡ 4ÐķŅ‡Ņˆ4 4Ðķ3Ņˆ4 8ÐķŅˆ. ÐķŅˆÐą4 ÐķŅˆÐē4 ÐķŅˆÐģ4 ÐķŅˆÐī4 4ÐķŅˆÐķ4 4ÐķŅˆÐ·4 ÐķŅˆÐš4 ÐķŅˆÐŧ4 ÐķŅˆÐž4 ÐķŅˆÐ―4 ÐķŅˆÐŋ4 ÐķŅˆŅ€4 4ÐķŅˆŅ4 ÐķŅˆŅ‚4 4ÐķŅˆŅ„4 4ÐķŅˆŅ…4 ÐķŅˆŅ†4 ÐķŅˆŅ‡4 4ÐķŅˆŅˆ4 ÐķŅˆŅ‰4 4Ðķ3Ņ‰ 8ÐķŅ‰. 4ÐķŅ‰Ðķ4 4ÐķŅ‰Ņ4 4ÐķŅ‰Ņ„4 4ÐķŅ‰Ņ…4 4ÐķŅ‰Ņˆ4 4ÐķŅ‰Ņ‰ 2з3Ðą 8Ð·Ðą. 4Ð·ÐąÐą 4Ð·ÐąÐķ4 4Ð·ÐąÐ·4 4Ð·ÐąÐš 4Ð·ÐąÐŋ 4Ð·ÐąŅ4 4Ð·ÐąŅ‚ 4Ð·ÐąŅ„4 4Ð·ÐąŅ…4 4Ð·ÐąŅ† 4Ð·ÐąŅ‡ 4Ð·ÐąŅˆ4 2з3Ðē 8зÐē. 4зÐēÐē 4зÐēз4 4зÐēŅ4 4зÐēŅ„4 4зÐēŅ…4 4зÐēŅˆ4 2з3Ðģ 8зÐģ. 4зÐģÐģ 4зÐģÐķ4 4зÐģз4 4зÐģК 4зÐģÐŋ 4зÐģŅ4 4зÐģŅ‚ 4зÐģŅ„4 4зÐģŅ…4 4зÐģŅ† 4зÐģŅ‡ 4зÐģŅˆ4 2з3Ðī 8зÐī. 4зÐīÐą 4зÐīÐģ 4зÐīÐī 4зÐīÐķ4 4зÐīз4 4зÐīК 4зÐīÐŋ 4зÐīŅ4 4зÐīŅ‚ 4зÐīŅ„4 4зÐīŅ…4 4зÐīŅ† 4зÐīŅ‡ 4зÐīŅˆ4 2з3Ðķ 8зÐķ. 4зÐķÐķ 4зÐķз4 4зÐķŅ4 4зÐķŅ„4 4зÐķŅ…4 4зÐķŅˆ4 4з3з4 8зз. Ð·Ð·Ðą4 ззÐē4 ззÐģ4 ззÐī4 ззÐķ4 4ззз4 ззК4 ззÐŧ4 ззО4 Ð·Ð·Ð―4 ззÐŋ4 ззŅ€4 4ззŅ4 ззŅ‚4 4ззŅ„4 4ззŅ…4 ззŅ†4 ззŅ‡4 4ззŅˆ4 ззŅ‰4 зÐđ4 4з3К 8зК. 4Ð·ÐšÐą 4зКÐģ 4зКÐī 4зКÐķ4 4зКз4 4зКК 4зКŅ4 4зКŅ„4 4зКŅ…4 4зКŅˆ4 2з3Ðŧ4 8зÐŧ. 4зÐŧз4 4зÐŧÐŧ 4зÐŧŅ4 4зÐŧŅ„4 4зÐŧŅ…4 4зÐŧŅˆ4 2з3О4 8зО. 4зОз4 4зОО 4зОŅ4 4зОŅ„4 4зОŅ…4 4зОŅˆ4 2з3Ð―4 8Ð·Ð―. 4Ð·Ð―Ð·4 4Ð·Ð―Ð― 4Ð·Ð―Ņ4 4Ð·Ð―Ņ„4 4Ð·Ð―Ņ…4 4Ð·Ð―Ņˆ4 4з3Ðŋ 8зÐŋ. 4зÐŋÐą 4зÐŋÐģ 4зÐŋÐī 4зÐŋÐķ4 4зÐŋз4 4зÐŋÐŋ 4зÐŋŅ4 4зÐŋŅ„4 4зÐŋŅ…4 4зÐŋŅˆ4 2з3Ņ€4 8зŅ€. 4зŅ€Ð·4 4зŅ€Ņ€ 4зŅ€Ņ4 4зŅ€Ņ„4 4зŅ€Ņ…4 4зŅ€Ņˆ4 4з3Ņ4 8зŅ. зŅÐą4 зŅÐē4 зŅÐģ4 зŅÐī4 4зŅÐķ4 4зŅÐ·4 зŅÐš4 зŅÐŧ4 зŅÐž4 зŅÐ―4 зŅÐŋ4 зŅŅ€4 4зŅŅ4 зŅŅ‚4 4зŅŅ„4 4зŅŅ…4 зŅŅ†4 зŅŅ‡4 4зŅŅˆ4 зŅŅ‰4 4з3Ņ‚ 8зŅ‚. 4зŅ‚Ðą 4зŅ‚Ðģ 4зŅ‚Ðī 4зŅ‚Ðķ4 4зŅ‚з4 4зŅ‚К 4зŅ‚Ðŋ 4зŅ‚Ņ4 4зŅ‚Ņ‚ 4зŅ‚Ņ„4 4зŅ‚Ņ…4 4зŅ‚Ņ† 4зŅ‚Ņ‡ 4зŅ‚Ņˆ4 4з3Ņ„4 8зŅ„. зŅ„Ðą4 4зŅ„Ðē4 зŅ„Ðģ4 зŅ„Ðī4 4зŅ„Ðķ4 4зŅ„з4 зŅ„К4 зŅ„Ðŧ4 зŅ„О4 зŅ„Ð―4 зŅ„Ðŋ4 зŅ„Ņ€4 4зŅ„Ņ4 зŅ„Ņ‚4 4зŅ„Ņ„4 4зŅ„Ņ…4 зŅ„Ņ†4 зŅ„Ņ‡4 4зŅ„Ņˆ4 зŅ„Ņ‰4 4з3Ņ…4 8зŅ…. зŅ…Ðą4 зŅ…Ðē4 зŅ…Ðģ4 зŅ…Ðī4 4зŅ…Ðķ4 4зŅ…з4 зŅ…К4 зŅ…Ðŧ4 зŅ…О4 зŅ…Ð―4 зŅ…Ðŋ4 зŅ…Ņ€4 4зŅ…Ņ4 зŅ…Ņ‚4 4зŅ…Ņ„4 4зŅ…Ņ…4 зŅ…Ņ†4 зŅ…Ņ‡4 4зŅ…Ņˆ4 зŅ…Ņ‰4 4з3Ņ† 8зŅ†. 4зŅ†Ðą 4зŅ†Ðģ 4зŅ†Ðī 4зŅ†Ðķ4 4зŅ†Ð·4 4зŅ†Ðš 4зŅ†Ðŋ 4зŅ†Ņ4 4зŅ†Ņ‚ 4зŅ†Ņ„4 4зŅ†Ņ…4 4зŅ†Ņ† 4зŅ†Ņ‡ 4зŅ†Ņˆ4 4з3Ņ‡ 8зŅ‡. 4зŅ‡Ðą 4зŅ‡Ðģ 4зŅ‡Ðī 4зŅ‡Ðķ4 4зŅ‡Ð·4 4зŅ‡Ðš 4зŅ‡Ðŋ 4зŅ‡Ņ4 4зŅ‡Ņ‚ 4зŅ‡Ņ„4 4зŅ‡Ņ…4 4зŅ‡Ņ† 4зŅ‡Ņ‡ 4зŅ‡Ņˆ4 4з3Ņˆ4 8зŅˆ. зŅˆÐą4 зŅˆÐē4 зŅˆÐģ4 зŅˆÐī4 4зŅˆÐķ4 4зŅˆÐ·4 зŅˆÐš4 зŅˆÐŧ4 зŅˆÐž4 зŅˆÐ―4 зŅˆÐŋ4 зŅˆŅ€4 4зŅˆŅ4 зŅˆŅ‚4 4зŅˆŅ„4 4зŅˆŅ…4 зŅˆŅ†4 зŅˆŅ‡4 4зŅˆŅˆ4 зŅˆŅ‰4 4з3Ņ‰ 8зŅ‰. 4зŅ‰Ð·4 4зŅ‰Ņ4 4зŅ‰Ņ„4 4зŅ‰Ņ…4 4зŅ‰Ņˆ4 4зŅ‰Ņ‰ Ðļ1 4Ðđ1Ðą 4Ðđ1Ðē 4Ðđ1Ðģ 4Ðđ1Ðī 4Ðđ1Ðķ 4Ðđ1з 4Ðđ1К 4Ðđ1Ðŧ 4Ðđ1О 4Ðđ1Ð― 4Ðđ1Ðŋ 4Ðđ1Ņ€ 4Ðđ1Ņ 4Ðđ1Ņ‚ 4Ðđ1Ņ„ 4Ðđ1Ņ… 4Ðđ1Ņ† 4Ðđ1Ņ‡ 4Ðđ1Ņˆ 4Ðđ1Ņ‰ 4К3Ðą4 8ÐšÐą. 4ÐšÐąÐą4 ÐšÐąÐē4 4ÐšÐąÐģ4 4ÐšÐąÐī4 ÐšÐąÐķ4 ÐšÐąÐ·4 4ÐšÐąÐš4 ÐšÐąÐŧ4 ÐšÐąÐž4 ÐšÐąÐ―4 4ÐšÐąÐŋ4 ÐšÐąŅ€4 ÐšÐąŅ4 4ÐšÐąŅ‚4 ÐšÐąŅ„4 ÐšÐąŅ…4 4ÐšÐąŅ†4 4ÐšÐąŅ‡4 ÐšÐąŅˆ4 ÐšÐąŅ‰4 2К3Ðē4 8КÐē. 4КÐēÐą4 4КÐēÐē 4КÐēÐģ4 4КÐēÐī4 4КÐēК4 4КÐēÐŋ4 4КÐēŅ‚4 4КÐēŅ„ 4КÐēŅ†4 4КÐēŅ‡4 4К3Ðģ4 8КÐģ. 4КÐģÐą4 КÐģÐē4 4КÐģÐģ4 4КÐģÐī4 КÐģÐķ4 КÐģз4 4КÐģК4 КÐģÐŧ4 КÐģО4 КÐģÐ―4 4КÐģÐŋ4 КÐģŅ€4 КÐģŅ4 4КÐģŅ‚4 КÐģŅ„4 КÐģŅ…4 4КÐģŅ†4 4КÐģŅ‡4 КÐģŅˆ4 КÐģŅ‰4 4К3Ðī4 8КÐī. 4КÐīÐą4 КÐīÐē4 4КÐīÐģ4 4КÐīÐī4 КÐīÐķ4 КÐīз4 4КÐīК4 КÐīÐŧ4 КÐīО4 КÐīÐ―4 4КÐīÐŋ4 КÐīŅ€4 КÐīŅ4 4КÐīŅ‚4 КÐīŅ„4 КÐīŅ…4 4КÐīŅ†4 4КÐīŅ‡4 КÐīŅˆ4 КÐīŅ‰4 2К3Ðķ4 8КÐķ. 4КÐķÐą4 4КÐķÐģ4 4КÐķÐī4 4КÐķÐķ 4КÐķК4 4КÐķÐŋ4 4КÐķŅ 4КÐķŅ‚4 4КÐķŅ„ 4КÐķŅ… 4КÐķŅ†4 4КÐķŅ‡4 4КÐķŅˆ 2К3з4 8Кз. 4ÐšÐ·Ðą4 4КзÐģ4 4КзÐī4 4Кзз 4КзК4 4КзÐŋ4 4КзŅ 4КзŅ‚4 4КзŅ„ 4КзŅ… 4КзŅ†4 4КзŅ‡4 4КзŅˆ КÐđ4 4К3К4 8КК. 4ÐšÐšÐą4 ККÐē4 4ККÐģ4 4ККÐī4 ККÐķ4 ККз4 4ККК4 ККÐŧ4 ККО4 ÐšÐšÐ―4 ККÐŋ4 ККŅ€4 ККŅ4 ККŅ‚4 ККŅ„4 ККŅ…4 ККŅ†4 ККŅ‡4 ККŅˆ4 ККŅ‰4 2К3Ðŧ4 8КÐŧ. 4КÐŧÐą4 4КÐŧÐģ4 4КÐŧÐī4 4КÐŧК4 4КÐŧÐŧ 2К3О4 8КО. 4ÐšÐžÐą4 4КОÐģ4 4КОÐī4 4КОК4 4КОО 2К3Ð―4 8ÐšÐ―. 4ÐšÐ―Ðą4 4ÐšÐ―Ðģ4 4ÐšÐ―Ðī4 4ÐšÐ―Ðš4 4ÐšÐ―Ð― 2К3Ðŋ 8КÐŋ. 4КÐŋÐą4 4КÐŋÐģ4 4КÐŋÐī4 4КÐŋК4 4КÐŋÐŋ 2К3Ņ€4 8КŅ€. 4КŅ€Ðą4 4КŅ€Ðģ4 4КŅ€Ðī4 4КŅ€Ðš4 4КŅ€Ņ€ 2К3Ņ 8КŅ. 4КŅÐą4 4КŅÐģ4 4КŅÐī4 4КŅÐķ 4КŅÐ· 4КŅÐš4 4КŅÐŋ4 4КŅŅ 4КŅŅ‚4 4КŅŅ†4 4КŅŅ‡4 2К3Ņ‚ 8КŅ‚. 4КŅ‚Ðą4 4КŅ‚Ðģ4 4КŅ‚Ðī4 4КŅ‚К4 4КŅ‚Ðŋ 4КŅ‚Ņ‚ 4КŅ‚Ņ† 4КŅ‚Ņ‡ 2К3Ņ„ 8КŅ„. 4КŅ„Ðą4 4КŅ„Ðē 4КŅ„Ðģ4 4КŅ„Ðī4 4КŅ„Ðķ 4КŅ„з 4КŅ„К4 4КŅ„Ðŋ4 4КŅ„Ņ‚4 4КŅ„Ņ„ 4КŅ„Ņ†4 4КŅ„Ņ‡4 2К3Ņ… 8КŅ…. 4КŅ…Ðą4 4КŅ…Ðģ4 4КŅ…Ðī4 4КŅ…Ðķ 4КŅ…з 4КŅ…К4 4КŅ…Ðŋ4 4КŅ…Ņ‚4 4КŅ…Ņ… 4КŅ…Ņ†4 4КŅ…Ņ‡4 2К3Ņ† 8КŅ†. 4КŅ†Ðą4 4КŅ†Ðģ4 4КŅ†Ðī4 4КŅ†Ðš4 4КŅ†Ðŋ 4КŅ†Ņ‚ 4КŅ†Ņ† 4КŅ†Ņ‡ 2К3Ņ‡ 8КŅ‡. 4КŅ‡Ðą4 4КŅ‡Ðģ4 4КŅ‡Ðī4 4КŅ‡Ðš4 4КŅ‡Ðŋ 4КŅ‡Ņ‚ 4КŅ‡Ņ† 4КŅ‡Ņ‡ 2К3Ņˆ 8КŅˆ. 4КŅˆÐą4 4КŅˆÐģ4 4КŅˆÐī4 4КŅˆÐķ 4КŅˆÐ· 4КŅˆÐš4 4КŅˆÐŋ4 4КŅˆŅ‚4 4КŅˆŅ†4 4КŅˆŅ‡4 4КŅˆŅˆ 2К3Ņ‰ 8КŅ‰. 4КŅ‰Ðą4 4КŅ‰Ðģ4 4КŅ‰Ðī4 4КŅ‰Ðš4 4КŅ‰Ņ‰ 4Ðŧ3Ðą 8ÐŧÐą. 4ÐŧÐąÐą 4ÐŧÐąÐš 4ÐŧÐąÐŧ4 4ÐŧÐąÐŋ 4ÐŧÐąŅ‚ 4ÐŧÐąŅ† 4ÐŧÐąŅ‡ 4Ðŧ3Ðē 8ÐŧÐē. 4ÐŧÐēÐē 4ÐŧÐēÐŧ4 4ÐŧÐēŅ„ 4Ðŧ3Ðģ 8ÐŧÐģ. 4ÐŧÐģÐģ 4ÐŧÐģК 4ÐŧÐģÐŧ4 4ÐŧÐģÐŋ 4ÐŧÐģŅ‚ 4ÐŧÐģŅ† 4ÐŧÐģŅ‡ 4Ðŧ3Ðī 8ÐŧÐī. 4ÐŧÐīÐą 4ÐŧÐīÐģ 4ÐŧÐīÐī 4ÐŧÐīК 4ÐŧÐīÐŧ4 4ÐŧÐīÐŋ 4ÐŧÐīŅ‚ 4ÐŧÐīŅ† 4ÐŧÐīŅ‡ 4Ðŧ3Ðķ 8ÐŧÐķ. 4ÐŧÐķÐķ 4ÐŧÐķÐŧ4 4ÐŧÐķŅ 4ÐŧÐķŅ„ 4ÐŧÐķŅ… 4ÐŧÐķŅˆ 4Ðŧ3з 8Ðŧз. 4Ðŧзз 4ÐŧзÐŧ4 4ÐŧзŅ 4ÐŧзŅ„ 4ÐŧзŅ… 4ÐŧзŅˆ 4Ðŧ3К 8ÐŧК. 4ÐŧÐšÐą 4ÐŧКÐģ 4ÐŧКÐī 4ÐŧКК 4ÐŧКÐŧ4 4Ðŧ3Ðŧ4 8ÐŧÐŧ. ÐŧÐŧÐą4 ÐŧÐŧÐē4 ÐŧÐŧÐģ4 ÐŧÐŧÐī4 ÐŧÐŧÐķ4 ÐŧÐŧз4 ÐŧÐŧК4 4ÐŧÐŧÐŧ4 ÐŧÐŧО4 ÐŧÐŧÐ―4 ÐŧÐŧÐŋ4 ÐŧÐŧŅ€4 ÐŧÐŧŅ4 ÐŧÐŧŅ‚4 ÐŧÐŧŅ„4 ÐŧÐŧŅ…4 ÐŧÐŧŅ†4 ÐŧÐŧŅ‡4 ÐŧÐŧŅˆ4 ÐŧÐŧŅ‰4 4Ðŧ3О 8ÐŧО. 4ÐŧОÐŧ4 4ÐŧОО 4Ðŧ3Ð― 8ÐŧÐ―. 4ÐŧÐ―Ðŧ4 4ÐŧÐ―Ð― 4Ðŧ3Ðŋ 8ÐŧÐŋ. 4ÐŧÐŋÐą 4ÐŧÐŋÐģ 4ÐŧÐŋÐī 4ÐŧÐŋÐŧ4 4ÐŧÐŋÐŋ 2Ðŧ3Ņ€4 8ÐŧŅ€. 4ÐŧŅ€Ðŧ4 4ÐŧŅ€Ņ€ 4Ðŧ3Ņ 8ÐŧŅ. 4ÐŧŅÐķ 4ÐŧŅÐ· 4ÐŧŅÐŧ4 4ÐŧŅŅ 4Ðŧ3Ņ‚ 8ÐŧŅ‚. 4ÐŧŅ‚Ðą 4ÐŧŅ‚Ðģ 4ÐŧŅ‚Ðī 4ÐŧŅ‚К 4ÐŧŅ‚Ðŧ4 4ÐŧŅ‚Ðŋ 4ÐŧŅ‚Ņ‚ 4ÐŧŅ‚Ņ† 4ÐŧŅ‚Ņ‡ 4Ðŧ3Ņ„ 8ÐŧŅ„. 4ÐŧŅ„Ðē 4ÐŧŅ„Ðķ 4ÐŧŅ„з 4ÐŧŅ„Ðŧ4 4ÐŧŅ„Ņ„ 4Ðŧ3Ņ… 8ÐŧŅ…. 4ÐŧŅ…Ðķ 4ÐŧŅ…з 4ÐŧŅ…Ðŧ4 4ÐŧŅ…Ņ… 4Ðŧ3Ņ† 8ÐŧŅ†. 4ÐŧŅ†Ðą 4ÐŧŅ†Ðģ 4ÐŧŅ†Ðī 4ÐŧŅ†Ðš 4ÐŧŅ†Ðŧ4 4ÐŧŅ†Ðŋ 4ÐŧŅ†Ņ‚ 4ÐŧŅ†Ņ† 4ÐŧŅ†Ņ‡ 4Ðŧ3Ņ‡ 8ÐŧŅ‡. 4ÐŧŅ‡Ðą 4ÐŧŅ‡Ðģ 4ÐŧŅ‡Ðī 4ÐŧŅ‡Ðš 4ÐŧŅ‡Ðŧ4 4ÐŧŅ‡Ðŋ 4ÐŧŅ‡Ņ‚ 4ÐŧŅ‡Ņ† 4ÐŧŅ‡Ņ‡ 4Ðŧ3Ņˆ 8ÐŧŅˆ. 4ÐŧŅˆÐķ 4ÐŧŅˆÐ· 4ÐŧŅˆÐŧ4 4ÐŧŅˆŅˆ 4Ðŧ3Ņ‰ 8ÐŧŅ‰. 4ÐŧŅ‰Ðŧ4 4ÐŧŅ‰Ņ‰ 4О3Ðą 8ÐžÐą. 4ÐžÐąÐą 4ÐžÐąÐš 4ÐžÐąÐž4 4ÐžÐąÐŋ 4ÐžÐąŅ‚ 4ÐžÐąŅ† 4ÐžÐąŅ‡ 4О3Ðē 8ОÐē. 4ОÐēÐē 4ОÐēО4 4ОÐēŅ„ 4О3Ðģ 8ОÐģ. 4ОÐģÐģ 4ОÐģК 4ОÐģО4 4ОÐģÐŋ 4ОÐģŅ‚ 4ОÐģŅ† 4ОÐģŅ‡ 4О3Ðī 8ОÐī. 4ОÐīÐą 4ОÐīÐģ 4ОÐīÐī 4ОÐīК 4ОÐīО4 4ОÐīÐŋ 4ОÐīŅ‚ 4ОÐīŅ† 4ОÐīŅ‡ 4О3Ðķ 8ОÐķ. 4ОÐķÐķ 4ОÐķО4 4ОÐķŅ 4ОÐķŅ„ 4ОÐķŅ… 4ОÐķŅˆ 4О3з 8Оз. 4Озз 4ОзО4 4ОзŅ 4ОзŅ„ 4ОзŅ… 4ОзŅˆ 4О3К 8ОК. 4ÐžÐšÐą 4ОКÐģ 4ОКÐī 4ОКК 4ОКО4 2О3Ðŧ4 8ОÐŧ. 4ОÐŧÐŧ 4ОÐŧО4 4О3О4 8ОО. ÐžÐžÐą4 ООÐē4 ООÐģ4 ООÐī4 ООÐķ4 ООз4 ООК4 ООÐŧ4 4ООО4 ÐžÐžÐ―4 ООÐŋ4 ООŅ€4 ООŅ4 ООŅ‚4 ООŅ„4 ООŅ…4 ООŅ†4 ООŅ‡4 ООŅˆ4 ООŅ‰4 2О3Ð―4 8ÐžÐ―. 4ÐžÐ―Ðž4 4ÐžÐ―Ð― 4О3Ðŋ 8ОÐŋ. 4ОÐŋÐą 4ОÐŋÐģ 4ОÐŋÐī 4ОÐŋО4 4ОÐŋÐŋ 2О3Ņ€4 8ОŅ€. 4ОŅ€Ðž4 4ОŅ€Ņ€ 4О3Ņ 8ОŅ. 4ОŅÐķ 4ОŅÐ· 4ОŅÐž4 4ОŅŅ 4О3Ņ‚ 8ОŅ‚. 4ОŅ‚Ðą 4ОŅ‚Ðģ 4ОŅ‚Ðī 4ОŅ‚К 4ОŅ‚О4 4ОŅ‚Ðŋ 4ОŅ‚Ņ‚ 4ОŅ‚Ņ† 4ОŅ‚Ņ‡ 4О3Ņ„ 8ОŅ„. 4ОŅ„Ðē 4ОŅ„Ðķ 4ОŅ„з 4ОŅ„О4 4ОŅ„Ņ„ 4О3Ņ… 8ОŅ…. 4ОŅ…Ðķ 4ОŅ…з 4ОŅ…О4 4ОŅ…Ņ… 4О3Ņ† 8ОŅ†. 4ОŅ†Ðą 4ОŅ†Ðģ 4ОŅ†Ðī 4ОŅ†Ðš 4ОŅ†Ðž4 4ОŅ†Ðŋ 4ОŅ†Ņ‚ 4ОŅ†Ņ† 4ОŅ†Ņ‡ 4О3Ņ‡ 8ОŅ‡. 4ОŅ‡Ðą 4ОŅ‡Ðģ 4ОŅ‡Ðī 4ОŅ‡Ðš 4ОŅ‡Ðž4 4ОŅ‡Ðŋ 4ОŅ‡Ņ‚ 4ОŅ‡Ņ† 4ОŅ‡Ņ‡ 4О3Ņˆ 8ОŅˆ. 4ОŅˆÐķ 4ОŅˆÐ· 4ОŅˆÐž4 4ОŅˆŅˆ 4О3Ņ‰ 8ОŅ‰. 4ОŅ‰Ðž4 4ОŅ‰Ņ‰ Ð―Ð°2Ðī3з 4Ð―3Ðą 8Ð―Ðą. 4Ð―ÐąÐą 4Ð―ÐąÐš 4Ð―ÐąÐ―4 4Ð―ÐąÐŋ 4Ð―ÐąŅ‚ 4Ð―ÐąŅ† 4Ð―ÐąŅ‡ 4Ð―3Ðē 8Ð―Ðē. 4Ð―ÐēÐē 4Ð―ÐēÐ―4 4Ð―ÐēŅ„ 4Ð―3Ðģ 8Ð―Ðģ. 4Ð―ÐģÐģ 4Ð―ÐģК 4Ð―ÐģÐ―4 4Ð―ÐģÐŋ 4Ð―ÐģŅ‚ 4Ð―ÐģŅ† 4Ð―ÐģŅ‡ 4Ð―3Ðī 8Ð―Ðī. 4Ð―ÐīÐą 4Ð―ÐīÐģ 4Ð―ÐīÐī 4Ð―ÐīК 4Ð―ÐīÐ―4 4Ð―ÐīÐŋ 4Ð―ÐīŅ‚ 4Ð―ÐīŅ† 4Ð―ÐīŅ‡ 4Ð―3Ðķ 8Ð―Ðķ. 4Ð―ÐķÐķ 4Ð―ÐķÐ―4 4Ð―ÐķŅ 4Ð―ÐķŅ„ 4Ð―ÐķŅ… 4Ð―ÐķŅˆ 4Ð―3з 8Ð―Ð·. 4Ð―Ð·Ð· 4Ð―Ð·Ð―4 4Ð―Ð·Ņ 4Ð―Ð·Ņ„ 4Ð―Ð·Ņ… 4Ð―Ð·Ņˆ 4Ð―3К 8Ð―Ðš. 4Ð―ÐšÐą 4Ð―ÐšÐģ 4Ð―ÐšÐī 4Ð―ÐšÐš 4Ð―ÐšÐ―4 2Ð―3Ðŧ4 8Ð―Ðŧ. 4Ð―ÐŧÐŧ 4Ð―ÐŧÐ―4 4Ð―3О 8Ð―Ðž. 4Ð―ÐžÐž 4Ð―ÐžÐ―4 4Ð―3Ð―4 8Ð―Ð―. Ð―Ð―Ðą4 Ð―Ð―Ðē4 Ð―Ð―Ðģ4 Ð―Ð―Ðī4 Ð―Ð―Ðķ4 Ð―Ð―Ð·4 Ð―Ð―Ðš4 Ð―Ð―Ðŧ4 Ð―Ð―Ðž4 4Ð―Ð―Ð―4 Ð―Ð―Ðŋ4 Ð―Ð―Ņ€4 Ð―Ð―Ņ4 Ð―Ð―Ņ‚4 Ð―Ð―Ņ„4 Ð―Ð―Ņ…4 Ð―Ð―Ņ†4 Ð―Ð―Ņ‡4 Ð―Ð―Ņˆ4 Ð―Ð―Ņ‰4 4Ð―3Ðŋ 8Ð―Ðŋ. 4Ð―ÐŋÐą 4Ð―ÐŋÐģ 4Ð―ÐŋÐī 4Ð―ÐŋÐ―4 4Ð―ÐŋÐŋ 2Ð―3Ņ€4 8Ð―Ņ€. 4Ð―Ņ€Ð―4 4Ð―Ņ€Ņ€ 4Ð―3Ņ 8Ð―Ņ. 4Ð―ŅÐķ 4Ð―ŅÐ· 4Ð―ŅÐ―4 4Ð―ŅŅ 4Ð―3Ņ‚ 8Ð―Ņ‚. 4Ð―Ņ‚Ðą 4Ð―Ņ‚Ðģ 4Ð―Ņ‚Ðī 4Ð―Ņ‚К 4Ð―Ņ‚Ð―4 4Ð―Ņ‚Ðŋ 4Ð―Ņ‚Ņ‚ 4Ð―Ņ‚Ņ† 4Ð―Ņ‚Ņ‡ 4Ð―3Ņ„ 8Ð―Ņ„. 4Ð―Ņ„Ðē 4Ð―Ņ„Ðķ 4Ð―Ņ„з 4Ð―Ņ„Ð―4 4Ð―Ņ„Ņ„ 4Ð―3Ņ… 8Ð―Ņ…. 4Ð―Ņ…Ðķ 4Ð―Ņ…з 4Ð―Ņ…Ð―4 4Ð―Ņ…Ņ… 4Ð―3Ņ† 8Ð―Ņ†. 4Ð―Ņ†Ðą 4Ð―Ņ†Ðģ 4Ð―Ņ†Ðī 4Ð―Ņ†Ðš 4Ð―Ņ†Ð―4 4Ð―Ņ†Ðŋ 4Ð―Ņ†Ņ‚ 4Ð―Ņ†Ņ† 4Ð―Ņ†Ņ‡ 4Ð―3Ņ‡ 8Ð―Ņ‡. 4Ð―Ņ‡Ðą 4Ð―Ņ‡Ðģ 4Ð―Ņ‡Ðī 4Ð―Ņ‡Ðš 4Ð―Ņ‡Ð―4 4Ð―Ņ‡Ðŋ 4Ð―Ņ‡Ņ‚ 4Ð―Ņ‡Ņ† 4Ð―Ņ‡Ņ‡ 4Ð―3Ņˆ 8Ð―Ņˆ. 4Ð―ŅˆÐķ 4Ð―ŅˆÐ· 4Ð―ŅˆÐ―4 4Ð―ŅˆŅˆ 4Ð―3Ņ‰ 8Ð―Ņ‰. 4Ð―Ņ‰Ð―4 4Ð―Ņ‰Ņ‰ Ðū1 4Ðŋ3Ðą4 8ÐŋÐą. 4ÐŋÐąÐą4 ÐŋÐąÐē4 4ÐŋÐąÐģ4 4ÐŋÐąÐī4 ÐŋÐąÐķ4 ÐŋÐąÐ·4 4ÐŋÐąÐš4 ÐŋÐąÐŧ4 ÐŋÐąÐž4 ÐŋÐąÐ―4 4ÐŋÐąÐŋ4 ÐŋÐąŅ€4 ÐŋÐąŅ4 4ÐŋÐąŅ‚4 ÐŋÐąŅ„4 ÐŋÐąŅ…4 4ÐŋÐąŅ†4 4ÐŋÐąŅ‡4 ÐŋÐąŅˆ4 ÐŋÐąŅ‰4 2Ðŋ3Ðē4 8ÐŋÐē. 4ÐŋÐēÐą4 4ÐŋÐēÐē 4ÐŋÐēÐģ4 4ÐŋÐēÐī4 4ÐŋÐēК4 4ÐŋÐēÐŋ4 4ÐŋÐēŅ‚4 4ÐŋÐēŅ„ 4ÐŋÐēŅ†4 4ÐŋÐēŅ‡4 4Ðŋ3Ðģ4 8ÐŋÐģ. 4ÐŋÐģÐą4 ÐŋÐģÐē4 4ÐŋÐģÐģ4 4ÐŋÐģÐī4 ÐŋÐģÐķ4 ÐŋÐģз4 4ÐŋÐģК4 ÐŋÐģÐŧ4 ÐŋÐģО4 ÐŋÐģÐ―4 4ÐŋÐģÐŋ4 ÐŋÐģŅ€4 ÐŋÐģŅ4 4ÐŋÐģŅ‚4 ÐŋÐģŅ„4 ÐŋÐģŅ…4 4ÐŋÐģŅ†4 4ÐŋÐģŅ‡4 ÐŋÐģŅˆ4 ÐŋÐģŅ‰4 4Ðŋ3Ðī4 8ÐŋÐī. 4ÐŋÐīÐą4 ÐŋÐīÐē4 4ÐŋÐīÐģ4 4ÐŋÐīÐī4 ÐŋÐīÐķ4 ÐŋÐīз4 4ÐŋÐīК4 ÐŋÐīÐŧ4 ÐŋÐīО4 ÐŋÐīÐ―4 4ÐŋÐīÐŋ4 ÐŋÐīŅ€4 ÐŋÐīŅ4 4ÐŋÐīŅ‚4 ÐŋÐīŅ„4 ÐŋÐīŅ…4 4ÐŋÐīŅ†4 4ÐŋÐīŅ‡4 ÐŋÐīŅˆ4 ÐŋÐīŅ‰4 2Ðŋ3Ðķ4 8ÐŋÐķ. 4ÐŋÐķÐą4 4ÐŋÐķÐģ4 4ÐŋÐķÐī4 4ÐŋÐķÐķ 4ÐŋÐķК4 4ÐŋÐķÐŋ4 4ÐŋÐķŅ 4ÐŋÐķŅ‚4 4ÐŋÐķŅ„ 4ÐŋÐķŅ… 4ÐŋÐķŅ†4 4ÐŋÐķŅ‡4 4ÐŋÐķŅˆ 2Ðŋ3з4 8Ðŋз. 4ÐŋÐ·Ðą4 4ÐŋзÐģ4 4ÐŋзÐī4 4Ðŋзз 4ÐŋзК4 4ÐŋзÐŋ4 4ÐŋзŅ 4ÐŋзŅ‚4 4ÐŋзŅ„ 4ÐŋзŅ… 4ÐŋзŅ†4 4ÐŋзŅ‡4 4ÐŋзŅˆ ÐŋÐđ4 2Ðŋ3К 8ÐŋК. 4ÐŋÐšÐą4 4ÐŋКÐģ4 4ÐŋКÐī4 4ÐŋКК 4ÐŋКÐŋ4 2Ðŋ3Ðŧ4 8ÐŋÐŧ. 4ÐŋÐŧÐą4 4ÐŋÐŧÐģ4 4ÐŋÐŧÐī4 4ÐŋÐŧÐŧ 4ÐŋÐŧÐŋ4 2Ðŋ3О4 8ÐŋО. 4ÐŋÐžÐą4 4ÐŋОÐģ4 4ÐŋОÐī4 4ÐŋОО 4ÐŋОÐŋ4 2Ðŋ3Ð―4 8ÐŋÐ―. 4ÐŋÐ―Ðą4 4ÐŋÐ―Ðģ4 4ÐŋÐ―Ðī4 4ÐŋÐ―Ð― 4ÐŋÐ―Ðŋ4 ÐŋÐū2Ðī3з 4Ðŋ3Ðŋ4 8ÐŋÐŋ. 4ÐŋÐŋÐą4 ÐŋÐŋÐē4 4ÐŋÐŋÐģ4 4ÐŋÐŋÐī4 ÐŋÐŋÐķ4 ÐŋÐŋз4 ÐŋÐŋК4 ÐŋÐŋÐŧ4 ÐŋÐŋО4 ÐŋÐŋÐ―4 4ÐŋÐŋÐŋ4 ÐŋÐŋŅ€4 ÐŋÐŋŅ4 ÐŋÐŋŅ‚4 ÐŋÐŋŅ„4 ÐŋÐŋŅ…4 ÐŋÐŋŅ†4 ÐŋÐŋŅ‡4 ÐŋÐŋŅˆ4 ÐŋÐŋŅ‰4 2Ðŋ3Ņ€4 8ÐŋŅ€. 4ÐŋŅ€Ðą4 4ÐŋŅ€Ðģ4 4ÐŋŅ€Ðī4 ÐŋŅ€Ðĩ2Ðī2Ðķ ÐŋŅ€Ðĩ2Ðī3з 4ÐŋŅ€Ðŋ4 4ÐŋŅ€Ņ€ 2Ðŋ3Ņ 8ÐŋŅ. 4ÐŋŅÐą4 4ÐŋŅÐģ4 4ÐŋŅÐī4 4ÐŋŅÐķ 4ÐŋŅÐ· 4ÐŋŅÐš4 4ÐŋŅÐŋ4 4ÐŋŅŅ 4ÐŋŅŅ‚4 4ÐŋŅŅ†4 4ÐŋŅŅ‡4 2Ðŋ3Ņ‚ 8ÐŋŅ‚. 4ÐŋŅ‚Ðą4 4ÐŋŅ‚Ðģ4 4ÐŋŅ‚Ðī4 4ÐŋŅ‚К 4ÐŋŅ‚Ðŋ4 4ÐŋŅ‚Ņ‚ 4ÐŋŅ‚Ņ† 4ÐŋŅ‚Ņ‡ 2Ðŋ3Ņ„ 8ÐŋŅ„. 4ÐŋŅ„Ðą4 4ÐŋŅ„Ðē 4ÐŋŅ„Ðģ4 4ÐŋŅ„Ðī4 4ÐŋŅ„Ðķ 4ÐŋŅ„з 4ÐŋŅ„К4 4ÐŋŅ„Ðŋ4 4ÐŋŅ„Ņ‚4 4ÐŋŅ„Ņ„ 4ÐŋŅ„Ņ†4 4ÐŋŅ„Ņ‡4 2Ðŋ3Ņ… 8ÐŋŅ…. 4ÐŋŅ…Ðą4 4ÐŋŅ…Ðģ4 4ÐŋŅ…Ðī4 4ÐŋŅ…Ðķ 4ÐŋŅ…з 4ÐŋŅ…К4 4ÐŋŅ…Ðŋ4 4ÐŋŅ…Ņ‚4 4ÐŋŅ…Ņ… 4ÐŋŅ…Ņ†4 4ÐŋŅ…Ņ‡4 2Ðŋ3Ņ† 8ÐŋŅ†. 4ÐŋŅ†Ðą4 4ÐŋŅ†Ðģ4 4ÐŋŅ†Ðī4 4ÐŋŅ†Ðš 4ÐŋŅ†Ðŋ4 4ÐŋŅ†Ņ‚ 4ÐŋŅ†Ņ† 4ÐŋŅ†Ņ‡ 2Ðŋ3Ņ‡ 8ÐŋŅ‡. 4ÐŋŅ‡Ðą4 4ÐŋŅ‡Ðģ4 4ÐŋŅ‡Ðī4 4ÐŋŅ‡Ðš 4ÐŋŅ‡Ðŋ4 4ÐŋŅ‡Ņ‚ 4ÐŋŅ‡Ņ† 4ÐŋŅ‡Ņ‡ 2Ðŋ3Ņˆ 8ÐŋŅˆ. 4ÐŋŅˆÐą4 4ÐŋŅˆÐģ4 4ÐŋŅˆÐī4 4ÐŋŅˆÐķ 4ÐŋŅˆÐ· 4ÐŋŅˆÐš4 4ÐŋŅˆÐŋ4 4ÐŋŅˆŅ‚4 4ÐŋŅˆŅ†4 4ÐŋŅˆŅ‡4 4ÐŋŅˆŅˆ 2Ðŋ3Ņ‰ 8ÐŋŅ‰. 4ÐŋŅ‰Ðą4 4ÐŋŅ‰Ðģ4 4ÐŋŅ‰Ðī4 4ÐŋŅ‰Ðŋ4 4ÐŋŅ‰Ņ‰ 4Ņ€3Ðą 8Ņ€Ðą. 4Ņ€ÐąÐą 4Ņ€ÐąÐš 4Ņ€ÐąÐŋ 4Ņ€ÐąŅ€4 4Ņ€ÐąŅ‚ 4Ņ€ÐąŅ† 4Ņ€ÐąŅ‡ 4Ņ€3Ðē 8Ņ€Ðē. 4Ņ€ÐēÐē 4Ņ€ÐēŅ€4 4Ņ€ÐēŅ„ 4Ņ€3Ðģ 8Ņ€Ðģ. 4Ņ€ÐģÐģ 4Ņ€ÐģК 4Ņ€ÐģÐŋ 4Ņ€ÐģŅ€4 4Ņ€ÐģŅ‚ 4Ņ€ÐģŅ† 4Ņ€ÐģŅ‡ 4Ņ€3Ðī 8Ņ€Ðī. 4Ņ€ÐīÐą 4Ņ€ÐīÐģ 4Ņ€ÐīÐī 4Ņ€ÐīК 4Ņ€ÐīÐŋ 4Ņ€ÐīŅ€4 4Ņ€ÐīŅ‚ 4Ņ€ÐīŅ† 4Ņ€ÐīŅ‡ 4Ņ€3Ðķ 8Ņ€Ðķ. 4Ņ€ÐķÐķ 4Ņ€ÐķŅ€4 4Ņ€ÐķŅ 4Ņ€ÐķŅ„ 4Ņ€ÐķŅ… 4Ņ€ÐķŅˆ 4Ņ€3з 8Ņ€Ð·. 4Ņ€Ð·Ð· 4Ņ€Ð·Ņ€4 4Ņ€Ð·Ņ 4Ņ€Ð·Ņ„ 4Ņ€Ð·Ņ… 4Ņ€Ð·Ņˆ 4Ņ€3К 8Ņ€Ðš. 4Ņ€ÐšÐą 4Ņ€ÐšÐģ 4Ņ€ÐšÐī 4Ņ€ÐšÐš 4Ņ€ÐšŅ€4 4Ņ€3Ðŧ 8Ņ€Ðŧ. 4Ņ€ÐŧÐŧ 4Ņ€ÐŧŅ€4 4Ņ€3О 8Ņ€Ðž. 4Ņ€ÐžÐž 4Ņ€ÐžŅ€4 4Ņ€3Ð― 8Ņ€Ð―. 4Ņ€Ð―Ð― 4Ņ€Ð―Ņ€4 4Ņ€3Ðŋ 8Ņ€Ðŋ. 4Ņ€ÐŋÐą 4Ņ€ÐŋÐģ 4Ņ€ÐŋÐī 4Ņ€ÐŋÐŋ 4Ņ€ÐŋŅ€4 4Ņ€3Ņ€4 8Ņ€Ņ€. Ņ€Ņ€Ðą4 Ņ€Ņ€Ðē4 Ņ€Ņ€Ðģ4 Ņ€Ņ€Ðī4 Ņ€Ņ€Ðķ4 Ņ€Ņ€Ð·4 Ņ€Ņ€Ðš4 Ņ€Ņ€Ðŧ4 Ņ€Ņ€Ðž4 Ņ€Ņ€Ð―4 Ņ€Ņ€Ðŋ4 4Ņ€Ņ€Ņ€4 Ņ€Ņ€Ņ4 Ņ€Ņ€Ņ‚4 Ņ€Ņ€Ņ„4 Ņ€Ņ€Ņ…4 Ņ€Ņ€Ņ†4 Ņ€Ņ€Ņ‡4 Ņ€Ņ€Ņˆ4 Ņ€Ņ€Ņ‰4 4Ņ€3Ņ 8Ņ€Ņ. 4Ņ€ŅÐķ 4Ņ€ŅÐ· 4Ņ€ŅŅ€4 4Ņ€ŅŅ 4Ņ€3Ņ‚ 8Ņ€Ņ‚. 4Ņ€Ņ‚Ðą 4Ņ€Ņ‚Ðģ 4Ņ€Ņ‚Ðī 4Ņ€Ņ‚К 4Ņ€Ņ‚Ðŋ 4Ņ€Ņ‚Ņ€4 4Ņ€Ņ‚Ņ‚ 4Ņ€Ņ‚Ņ† 4Ņ€Ņ‚Ņ‡ 4Ņ€3Ņ„ 8Ņ€Ņ„. 4Ņ€Ņ„Ðē 4Ņ€Ņ„Ðķ 4Ņ€Ņ„з 4Ņ€Ņ„Ņ€4 4Ņ€Ņ„Ņ„ 4Ņ€3Ņ… 8Ņ€Ņ…. 4Ņ€Ņ…Ðķ 4Ņ€Ņ…з 4Ņ€Ņ…Ņ€4 4Ņ€Ņ…Ņ… 4Ņ€3Ņ† 8Ņ€Ņ†. 4Ņ€Ņ†Ðą 4Ņ€Ņ†Ðģ 4Ņ€Ņ†Ðī 4Ņ€Ņ†Ðš 4Ņ€Ņ†Ðŋ 4Ņ€Ņ†Ņ€4 4Ņ€Ņ†Ņ‚ 4Ņ€Ņ†Ņ† 4Ņ€Ņ†Ņ‡ 4Ņ€3Ņ‡ 8Ņ€Ņ‡. 4Ņ€Ņ‡Ðą 4Ņ€Ņ‡Ðģ 4Ņ€Ņ‡Ðī 4Ņ€Ņ‡Ðš 4Ņ€Ņ‡Ðŋ 4Ņ€Ņ‡Ņ€4 4Ņ€Ņ‡Ņ‚ 4Ņ€Ņ‡Ņ† 4Ņ€Ņ‡Ņ‡ 4Ņ€3Ņˆ 8Ņ€Ņˆ. 4Ņ€ŅˆÐķ 4Ņ€ŅˆÐ· 4Ņ€ŅˆŅ€4 4Ņ€ŅˆŅˆ 4Ņ€3Ņ‰ 8Ņ€Ņ‰. 4Ņ€Ņ‰Ņ€4 4Ņ€Ņ‰Ņ‰ 2Ņ3Ðą4 8ŅÐą. 4ŅÐąÐą 4ŅÐąÐķ4 4ŅÐąÐ·4 4ŅÐąÐš 4ŅÐąÐŋ 4ŅÐąŅ4 4ŅÐąŅ‚ 4ŅÐąŅ„4 4ŅÐąŅ…4 4ŅÐąŅ† 4ŅÐąŅ‡ 4ŅÐąŅˆ4 2Ņ3Ðē4 8ŅÐē. 4ŅÐēÐē 4ŅÐēÐķ4 4ŅÐēз4 4ŅÐēŅ4 4ŅÐēŅ„ 2Ņ3Ðģ4 8ŅÐģ. 4ŅÐģÐģ 4ŅÐģÐķ4 4ŅÐģз4 4ŅÐģК 4ŅÐģÐŋ 4ŅÐģŅ4 4ŅÐģŅ‚ 4ŅÐģŅ„4 4ŅÐģŅ…4 4ŅÐģŅ† 4ŅÐģŅ‡ 4ŅÐģŅˆ4 2Ņ3Ðī4 8ŅÐī. 4ŅÐīÐą 4ŅÐīÐģ 4ŅÐīÐī 4ŅÐīÐķ4 4ŅÐīз4 4ŅÐīК 4ŅÐīÐŋ 4ŅÐīŅ4 4ŅÐīŅ‚ 4ŅÐīŅ„4 4ŅÐīŅ…4 4ŅÐīŅ† 4ŅÐīŅ‡ 4ŅÐīŅˆ4 4Ņ3Ðķ4 8ŅÐķ. ŅÐķÐą4 ŅÐķÐē4 ŅÐķÐģ4 ŅÐķÐī4 4ŅÐķÐķ4 4ŅÐķз4 ŅÐķК4 ŅÐķÐŧ4 ŅÐķО4 ŅÐķÐ―4 ŅÐķÐŋ4 ŅÐķŅ€4 4ŅÐķŅ4 ŅÐķŅ‚4 4ŅÐķŅ„4 4ŅÐķŅ…4 ŅÐķŅ†4 ŅÐķŅ‡4 4ŅÐķŅˆ4 ŅÐķŅ‰4 4Ņ3з4 8ŅÐ·. ŅÐ·Ðą4 ŅÐ·Ðē4 ŅÐ·Ðģ4 ŅÐ·Ðī4 4ŅÐ·Ðķ4 4ŅÐ·Ð·4 ŅÐ·Ðš4 ŅÐ·Ðŧ4 ŅÐ·Ðž4 ŅÐ·Ð―4 ŅÐ·Ðŋ4 ŅÐ·Ņ€4 4ŅÐ·Ņ4 ŅÐ·Ņ‚4 4ŅÐ·Ņ„4 4ŅÐ·Ņ…4 ŅÐ·Ņ†4 ŅÐ·Ņ‡4 4ŅÐ·Ņˆ4 ŅÐ·Ņ‰4 ŅÐđ4 2Ņ3К 8ŅÐš. 4ŅÐšÐą 4ŅÐšÐģ 4ŅÐšÐī 4ŅÐšÐķ4 4ŅÐšÐ·4 4ŅÐšÐš 4ŅÐšŅ4 4ŅÐšŅ„4 4ŅÐšŅ…4 4ŅÐšŅˆ4 2Ņ3Ðŧ4 8ŅÐŧ. 4ŅÐŧÐķ4 4ŅÐŧз4 4ŅÐŧÐŧ 4ŅÐŧŅ4 2Ņ3О4 8ŅÐž. 4ŅÐžÐķ4 4ŅÐžÐ·4 4ŅÐžÐž 4ŅÐžŅ4 2Ņ3Ð―4 8ŅÐ―. 4ŅÐ―Ðķ4 4ŅÐ―з4 4ŅÐ―Ð― 4ŅÐ―Ņ4 2Ņ3Ðŋ 8ŅÐŋ. 4ŅÐŋÐą 4ŅÐŋÐģ 4ŅÐŋÐī 4ŅÐŋÐķ4 4ŅÐŋз4 4ŅÐŋÐŋ 4ŅÐŋŅ4 4ŅÐŋŅ„4 4ŅÐŋŅ…4 4ŅÐŋŅˆ4 2Ņ3Ņ€4 8ŅŅ€. 4ŅŅ€Ðķ4 4ŅŅ€Ð·4 4ŅŅ€Ņ€ 4ŅŅ€Ņ4 4Ņ3Ņ4 8ŅŅ. ŅŅÐą4 ŅŅÐē4 ŅŅÐģ4 ŅŅÐī4 4ŅŅÐķ4 4ŅŅÐ·4 ŅŅÐš4 ŅŅÐŧ4 ŅŅÐž4 ŅŅÐ―4 ŅŅÐŋ4 ŅŅŅ€4 4ŅŅŅ4 ŅŅŅ‚4 ŅŅŅ„4 ŅŅŅ…4 ŅŅŅ†4 ŅŅŅ‡4 ŅŅŅˆ4 ŅŅŅ‰4 2Ņ3Ņ‚ 8ŅŅ‚. 4ŅŅ‚Ðą 4ŅŅ‚Ðģ 4ŅŅ‚Ðī 4ŅŅ‚Ðķ4 4ŅŅ‚з4 4ŅŅ‚К 4ŅŅ‚Ðŋ 4ŅŅ‚Ņ4 4ŅŅ‚Ņ‚ 4ŅŅ‚Ņ„4 4ŅŅ‚Ņ…4 4ŅŅ‚Ņ† 4ŅŅ‚Ņ‡ 4ŅŅ‚Ņˆ4 2Ņ3Ņ„ 8ŅŅ„. 4ŅŅ„Ðē 4ŅŅ„Ðķ4 4ŅŅ„з4 4ŅŅ„Ņ4 4ŅŅ„Ņ„ 2Ņ3Ņ… 8ŅŅ…. 4ŅŅ…Ðķ4 4ŅŅ…з4 4ŅŅ…Ņ4 4ŅŅ…Ņ… 2Ņ3Ņ† 8ŅŅ†. 4ŅŅ†Ðą 4ŅŅ†Ðģ 4ŅŅ†Ðī 4ŅŅ†Ðķ4 4ŅŅ†Ð·4 4ŅŅ†Ðš 4ŅŅ†Ðŋ 4ŅŅ†Ņ4 4ŅŅ†Ņ‚ 4ŅŅ†Ņ„4 4ŅŅ†Ņ…4 4ŅŅ†Ņ† 4ŅŅ†Ņ‡ 4ŅŅ†Ņˆ4 2Ņ3Ņ‡ 8ŅŅ‡. 4ŅŅ‡Ðą 4ŅŅ‡Ðģ 4ŅŅ‡Ðī 4ŅŅ‡Ðķ4 4ŅŅ‡Ð·4 4ŅŅ‡Ðš 4ŅŅ‡Ðŋ 4ŅŅ‡Ņ4 4ŅŅ‡Ņ‚ 4ŅŅ‡Ņ„4 4ŅŅ‡Ņ…4 4ŅŅ‡Ņ† 4ŅŅ‡Ņ‡ 4ŅŅ‡Ņˆ4 2Ņ3Ņˆ 8ŅŅˆ. 4ŅŅˆÐķ4 4ŅŅˆÐ·4 4ŅŅˆŅ4 4ŅŅˆŅˆ 2Ņ3Ņ‰ 8ŅŅ‰. 4ŅŅ‰Ðķ4 4ŅŅ‰Ð·4 4ŅŅ‰Ņ4 4ŅŅ‰Ņ‰ 4Ņ‚3Ðą4 8Ņ‚Ðą. 4Ņ‚ÐąÐą4 Ņ‚ÐąÐē4 4Ņ‚ÐąÐģ4 4Ņ‚ÐąÐī4 Ņ‚ÐąÐķ4 Ņ‚ÐąÐ·4 4Ņ‚ÐąÐš4 Ņ‚ÐąÐŧ4 Ņ‚ÐąÐž4 Ņ‚ÐąÐ―4 4Ņ‚ÐąÐŋ4 Ņ‚ÐąŅ€4 Ņ‚ÐąŅ4 4Ņ‚ÐąŅ‚4 Ņ‚ÐąŅ„4 Ņ‚ÐąŅ…4 4Ņ‚ÐąŅ†4 4Ņ‚ÐąŅ‡4 Ņ‚ÐąŅˆ4 Ņ‚ÐąŅ‰4 2Ņ‚3Ðē4 8Ņ‚Ðē. 4Ņ‚ÐēÐą4 4Ņ‚ÐēÐē 4Ņ‚ÐēÐģ4 4Ņ‚ÐēÐī4 4Ņ‚ÐēК4 4Ņ‚ÐēÐŋ4 4Ņ‚ÐēŅ‚4 4Ņ‚ÐēŅ„ 4Ņ‚ÐēŅ†4 4Ņ‚ÐēŅ‡4 4Ņ‚3Ðģ4 8Ņ‚Ðģ. 4Ņ‚ÐģÐą4 Ņ‚ÐģÐē4 4Ņ‚ÐģÐģ4 4Ņ‚ÐģÐī4 Ņ‚ÐģÐķ4 Ņ‚Ðģз4 4Ņ‚ÐģК4 Ņ‚ÐģÐŧ4 Ņ‚ÐģО4 Ņ‚ÐģÐ―4 4Ņ‚ÐģÐŋ4 Ņ‚ÐģŅ€4 Ņ‚ÐģŅ4 4Ņ‚ÐģŅ‚4 Ņ‚ÐģŅ„4 Ņ‚ÐģŅ…4 4Ņ‚ÐģŅ†4 4Ņ‚ÐģŅ‡4 Ņ‚ÐģŅˆ4 Ņ‚ÐģŅ‰4 4Ņ‚3Ðī4 8Ņ‚Ðī. 4Ņ‚ÐīÐą4 Ņ‚ÐīÐē4 4Ņ‚ÐīÐģ4 4Ņ‚ÐīÐī4 Ņ‚ÐīÐķ4 Ņ‚Ðīз4 4Ņ‚ÐīК4 Ņ‚ÐīÐŧ4 Ņ‚ÐīО4 Ņ‚ÐīÐ―4 4Ņ‚ÐīÐŋ4 Ņ‚ÐīŅ€4 Ņ‚ÐīŅ4 4Ņ‚ÐīŅ‚4 Ņ‚ÐīŅ„4 Ņ‚ÐīŅ…4 4Ņ‚ÐīŅ†4 4Ņ‚ÐīŅ‡4 Ņ‚ÐīŅˆ4 Ņ‚ÐīŅ‰4 2Ņ‚3Ðķ4 8Ņ‚Ðķ. 4Ņ‚ÐķÐą4 4Ņ‚ÐķÐģ4 4Ņ‚ÐķÐī4 4Ņ‚ÐķÐķ 4Ņ‚ÐķК4 4Ņ‚ÐķÐŋ4 4Ņ‚ÐķŅ 4Ņ‚ÐķŅ‚4 4Ņ‚ÐķŅ„ 4Ņ‚ÐķŅ… 4Ņ‚ÐķŅ†4 4Ņ‚ÐķŅ‡4 4Ņ‚ÐķŅˆ 2Ņ‚3з4 8Ņ‚з. 4Ņ‚Ð·Ðą4 4Ņ‚зÐģ4 4Ņ‚зÐī4 4Ņ‚зз 4Ņ‚зК4 4Ņ‚зÐŋ4 4Ņ‚зŅ 4Ņ‚зŅ‚4 4Ņ‚зŅ„ 4Ņ‚зŅ… 4Ņ‚зŅ†4 4Ņ‚зŅ‡4 4Ņ‚зŅˆ Ņ‚Ðđ4 4Ņ‚3К4 8Ņ‚К. 4Ņ‚ÐšÐą4 Ņ‚КÐē4 4Ņ‚КÐģ4 4Ņ‚КÐī4 Ņ‚КÐķ4 Ņ‚Кз4 4Ņ‚КК4 Ņ‚КÐŧ4 Ņ‚КО4 Ņ‚ÐšÐ―4 4Ņ‚КÐŋ4 Ņ‚КŅ€4 Ņ‚КŅ4 4Ņ‚КŅ‚4 Ņ‚КŅ„4 Ņ‚КŅ…4 4Ņ‚КŅ†4 4Ņ‚КŅ‡4 Ņ‚КŅˆ4 Ņ‚КŅ‰4 2Ņ‚3Ðŧ4 8Ņ‚Ðŧ. 4Ņ‚ÐŧÐą4 4Ņ‚ÐŧÐģ4 4Ņ‚ÐŧÐī4 4Ņ‚ÐŧК4 4Ņ‚ÐŧÐŧ 4Ņ‚ÐŧÐŋ4 4Ņ‚ÐŧŅ‚4 4Ņ‚ÐŧŅ†4 4Ņ‚ÐŧŅ‡4 2Ņ‚3О4 8Ņ‚О. 4Ņ‚ÐžÐą4 4Ņ‚ОÐģ4 4Ņ‚ОÐī4 4Ņ‚ОК4 4Ņ‚ОО 4Ņ‚ОÐŋ4 4Ņ‚ОŅ‚4 4Ņ‚ОŅ†4 4Ņ‚ОŅ‡4 2Ņ‚3Ð―4 8Ņ‚Ð―. 4Ņ‚Ð―Ðą4 4Ņ‚Ð―Ðģ4 4Ņ‚Ð―Ðī4 4Ņ‚Ð―К4 4Ņ‚Ð―Ð― 4Ņ‚Ð―Ðŋ4 4Ņ‚Ð―Ņ‚4 4Ņ‚Ð―Ņ†4 4Ņ‚Ð―Ņ‡4 4Ņ‚3Ðŋ4 8Ņ‚Ðŋ. 4Ņ‚ÐŋÐą4 Ņ‚ÐŋÐē4 4Ņ‚ÐŋÐģ4 4Ņ‚ÐŋÐī4 Ņ‚ÐŋÐķ4 Ņ‚Ðŋз4 4Ņ‚ÐŋК4 Ņ‚ÐŋÐŧ4 Ņ‚ÐŋО4 Ņ‚ÐŋÐ―4 4Ņ‚ÐŋÐŋ4 Ņ‚ÐŋŅ€4 Ņ‚ÐŋŅ4 4Ņ‚ÐŋŅ‚4 Ņ‚ÐŋŅ„4 Ņ‚ÐŋŅ…4 4Ņ‚ÐŋŅ†4 4Ņ‚ÐŋŅ‡4 Ņ‚ÐŋŅˆ4 Ņ‚ÐŋŅ‰4 2Ņ‚3Ņ€4 8Ņ‚Ņ€. 4Ņ‚Ņ€Ðą4 4Ņ‚Ņ€Ðģ4 4Ņ‚Ņ€Ðī4 4Ņ‚Ņ€Ðš4 4Ņ‚Ņ€Ðŋ4 4Ņ‚Ņ€Ņ€ 4Ņ‚Ņ€Ņ‚4 4Ņ‚Ņ€Ņ†4 4Ņ‚Ņ€Ņ‡4 2Ņ‚3Ņ 8Ņ‚Ņ. 4Ņ‚ŅÐą4 4Ņ‚ŅÐģ4 4Ņ‚ŅÐī4 4Ņ‚ŅÐķ 4Ņ‚ŅÐ· 4Ņ‚ŅÐš4 4Ņ‚ŅÐŋ4 4Ņ‚ŅŅ 4Ņ‚ŅŅ‚4 4Ņ‚ŅŅ†4 4Ņ‚ŅŅ‡4 4Ņ‚3Ņ‚4 8Ņ‚Ņ‚. 4Ņ‚Ņ‚Ðą4 Ņ‚Ņ‚Ðē4 4Ņ‚Ņ‚Ðģ4 4Ņ‚Ņ‚Ðī4 Ņ‚Ņ‚Ðķ4 Ņ‚Ņ‚з4 4Ņ‚Ņ‚К4 Ņ‚Ņ‚Ðŧ4 Ņ‚Ņ‚О4 Ņ‚Ņ‚Ð―4 4Ņ‚Ņ‚Ðŋ4 Ņ‚Ņ‚Ņ€4 Ņ‚Ņ‚Ņ4 4Ņ‚Ņ‚Ņ‚4 Ņ‚Ņ‚Ņ„4 Ņ‚Ņ‚Ņ…4 4Ņ‚Ņ‚Ņ†4 4Ņ‚Ņ‚Ņ‡4 Ņ‚Ņ‚Ņˆ4 Ņ‚Ņ‚Ņ‰4 2Ņ‚3Ņ„ 8Ņ‚Ņ„. 4Ņ‚Ņ„Ðą4 4Ņ‚Ņ„Ðē 4Ņ‚Ņ„Ðģ4 4Ņ‚Ņ„Ðī4 4Ņ‚Ņ„Ðķ 4Ņ‚Ņ„з 4Ņ‚Ņ„К4 4Ņ‚Ņ„Ðŋ4 4Ņ‚Ņ„Ņ‚4 4Ņ‚Ņ„Ņ„ 4Ņ‚Ņ„Ņ†4 4Ņ‚Ņ„Ņ‡4 2Ņ‚3Ņ… 8Ņ‚Ņ…. 4Ņ‚Ņ…Ðą4 4Ņ‚Ņ…Ðģ4 4Ņ‚Ņ…Ðī4 4Ņ‚Ņ…Ðķ 4Ņ‚Ņ…з 4Ņ‚Ņ…К4 4Ņ‚Ņ…Ðŋ4 4Ņ‚Ņ…Ņ‚4 4Ņ‚Ņ…Ņ… 4Ņ‚Ņ…Ņ†4 4Ņ‚Ņ…Ņ‡4 4Ņ‚3Ņ†4 8Ņ‚Ņ†. 4Ņ‚Ņ†Ðą4 Ņ‚Ņ†Ðē4 4Ņ‚Ņ†Ðģ4 4Ņ‚Ņ†Ðī4 Ņ‚Ņ†Ðķ4 Ņ‚Ņ†Ð·4 4Ņ‚Ņ†Ðš4 Ņ‚Ņ†Ðŧ4 Ņ‚Ņ†Ðž4 Ņ‚Ņ†Ð―4 4Ņ‚Ņ†Ðŋ4 Ņ‚Ņ†Ņ€4 Ņ‚Ņ†Ņ4 4Ņ‚Ņ†Ņ‚4 Ņ‚Ņ†Ņ„4 Ņ‚Ņ†Ņ…4 4Ņ‚Ņ†Ņ†4 4Ņ‚Ņ†Ņ‡4 Ņ‚Ņ†Ņˆ4 Ņ‚Ņ†Ņ‰4 4Ņ‚3Ņ‡4 8Ņ‚Ņ‡. 4Ņ‚Ņ‡Ðą4 Ņ‚Ņ‡Ðē4 4Ņ‚Ņ‡Ðģ4 4Ņ‚Ņ‡Ðī4 Ņ‚Ņ‡Ðķ4 Ņ‚Ņ‡Ð·4 4Ņ‚Ņ‡Ðš4 Ņ‚Ņ‡Ðŧ4 Ņ‚Ņ‡Ðž4 Ņ‚Ņ‡Ð―4 4Ņ‚Ņ‡Ðŋ4 Ņ‚Ņ‡Ņ€4 Ņ‚Ņ‡Ņ4 4Ņ‚Ņ‡Ņ‚4 Ņ‚Ņ‡Ņ„4 Ņ‚Ņ‡Ņ…4 4Ņ‚Ņ‡Ņ†4 4Ņ‚Ņ‡Ņ‡4 Ņ‚Ņ‡Ņˆ4 Ņ‚Ņ‡Ņ‰4 2Ņ‚3Ņˆ 8Ņ‚Ņˆ. 4Ņ‚ŅˆÐą4 4Ņ‚ŅˆÐģ4 4Ņ‚ŅˆÐī4 4Ņ‚ŅˆÐķ 4Ņ‚ŅˆÐ· 4Ņ‚ŅˆÐš4 4Ņ‚ŅˆÐŋ4 4Ņ‚ŅˆŅ‚4 4Ņ‚ŅˆŅ†4 4Ņ‚ŅˆŅ‡4 4Ņ‚ŅˆŅˆ 2Ņ‚3Ņ‰ 8Ņ‚Ņ‰. 4Ņ‚Ņ‰Ðą4 4Ņ‚Ņ‰Ðģ4 4Ņ‚Ņ‰Ðī4 4Ņ‚Ņ‰Ðš4 4Ņ‚Ņ‰Ðŋ4 4Ņ‚Ņ‰Ņ‚4 4Ņ‚Ņ‰Ņ†4 4Ņ‚Ņ‰Ņ‡4 4Ņ‚Ņ‰Ņ‰ Ņƒ1 2Ņ„3Ðą4 8Ņ„Ðą. 4Ņ„ÐąÐą 4Ņ„ÐąÐē4 4Ņ„ÐąÐķ4 4Ņ„ÐąÐ·4 4Ņ„ÐąÐš 4Ņ„ÐąÐŋ 4Ņ„ÐąŅ4 4Ņ„ÐąŅ‚ 4Ņ„ÐąŅ„4 4Ņ„ÐąŅ…4 4Ņ„ÐąŅ† 4Ņ„ÐąŅ‡ 4Ņ„ÐąŅˆ4 4Ņ„3Ðē4 8Ņ„Ðē. Ņ„ÐēÐą4 4Ņ„ÐēÐē4 Ņ„ÐēÐģ4 Ņ„ÐēÐī4 4Ņ„ÐēÐķ4 4Ņ„Ðēз4 Ņ„ÐēК4 Ņ„ÐēÐŧ4 Ņ„ÐēО4 Ņ„ÐēÐ―4 Ņ„ÐēÐŋ4 Ņ„ÐēŅ€4 Ņ„ÐēŅ4 Ņ„ÐēŅ‚4 4Ņ„ÐēŅ„4 Ņ„ÐēŅ…4 Ņ„ÐēŅ†4 Ņ„ÐēŅ‡4 Ņ„ÐēŅˆ4 Ņ„ÐēŅ‰4 2Ņ„3Ðģ4 8Ņ„Ðģ. 4Ņ„ÐģÐē4 4Ņ„ÐģÐģ 4Ņ„ÐģÐķ4 4Ņ„Ðģз4 4Ņ„ÐģК 4Ņ„ÐģÐŋ 4Ņ„ÐģŅ4 4Ņ„ÐģŅ‚ 4Ņ„ÐģŅ„4 4Ņ„ÐģŅ…4 4Ņ„ÐģŅ† 4Ņ„ÐģŅ‡ 4Ņ„ÐģŅˆ4 2Ņ„3Ðī4 8Ņ„Ðī. 4Ņ„ÐīÐą 4Ņ„ÐīÐē4 4Ņ„ÐīÐģ 4Ņ„ÐīÐī 4Ņ„ÐīÐķ4 4Ņ„Ðīз4 4Ņ„ÐīК 4Ņ„ÐīÐŋ 4Ņ„ÐīŅ4 4Ņ„ÐīŅ‚ 4Ņ„ÐīŅ„4 4Ņ„ÐīŅ…4 4Ņ„ÐīŅ† 4Ņ„ÐīŅ‡ 4Ņ„ÐīŅˆ4 4Ņ„3Ðķ4 8Ņ„Ðķ. Ņ„ÐķÐą4 4Ņ„ÐķÐē4 Ņ„ÐķÐģ4 Ņ„ÐķÐī4 4Ņ„ÐķÐķ4 4Ņ„Ðķз4 Ņ„ÐķК4 Ņ„ÐķÐŧ4 Ņ„ÐķО4 Ņ„ÐķÐ―4 Ņ„ÐķÐŋ4 Ņ„ÐķŅ€4 4Ņ„ÐķŅ4 Ņ„ÐķŅ‚4 4Ņ„ÐķŅ„4 4Ņ„ÐķŅ…4 Ņ„ÐķŅ†4 Ņ„ÐķŅ‡4 4Ņ„ÐķŅˆ4 Ņ„ÐķŅ‰4 4Ņ„3з4 8Ņ„з. Ņ„Ð·Ðą4 4Ņ„зÐē4 Ņ„зÐģ4 Ņ„зÐī4 4Ņ„зÐķ4 4Ņ„зз4 Ņ„зК4 Ņ„зÐŧ4 Ņ„зО4 Ņ„Ð·Ð―4 Ņ„зÐŋ4 Ņ„зŅ€4 4Ņ„зŅ4 Ņ„зŅ‚4 4Ņ„зŅ„4 4Ņ„зŅ…4 Ņ„зŅ†4 Ņ„зŅ‡4 4Ņ„зŅˆ4 Ņ„зŅ‰4 Ņ„Ðđ4 2Ņ„3К 8Ņ„К. 4Ņ„ÐšÐą 4Ņ„КÐē4 4Ņ„КÐģ 4Ņ„КÐī 4Ņ„КÐķ4 4Ņ„Кз4 4Ņ„КК 4Ņ„КŅ4 4Ņ„КŅ„4 4Ņ„КŅ…4 4Ņ„КŅˆ4 2Ņ„3Ðŧ4 8Ņ„Ðŧ. 4Ņ„ÐŧÐē4 4Ņ„ÐŧÐķ4 4Ņ„Ðŧз4 4Ņ„ÐŧÐŧ 4Ņ„ÐŧŅ„4 2Ņ„3О4 8Ņ„О. 4Ņ„ОÐē4 4Ņ„ОÐķ4 4Ņ„Оз4 4Ņ„ОО 4Ņ„ОŅ„4 2Ņ„3Ð―4 8Ņ„Ð―. 4Ņ„Ð―Ðē4 4Ņ„Ð―Ðķ4 4Ņ„Ð―з4 4Ņ„Ð―Ð― 4Ņ„Ð―Ņ„4 2Ņ„3Ðŋ 8Ņ„Ðŋ. 4Ņ„ÐŋÐą 4Ņ„ÐŋÐē4 4Ņ„ÐŋÐģ 4Ņ„ÐŋÐī 4Ņ„ÐŋÐķ4 4Ņ„Ðŋз4 4Ņ„ÐŋÐŋ 4Ņ„ÐŋŅ4 4Ņ„ÐŋŅ„4 4Ņ„ÐŋŅ…4 4Ņ„ÐŋŅˆ4 2Ņ„3Ņ€4 8Ņ„Ņ€. 4Ņ„Ņ€Ðē4 4Ņ„Ņ€Ðķ4 4Ņ„Ņ€Ð·4 4Ņ„Ņ€Ņ€ 4Ņ„Ņ€Ņ„4 2Ņ„3Ņ 8Ņ„Ņ. 4Ņ„ŅÐē4 4Ņ„ŅÐķ4 4Ņ„ŅÐ·4 4Ņ„ŅŅ 4Ņ„ŅŅ„4 2Ņ„3Ņ‚ 8Ņ„Ņ‚. 4Ņ„Ņ‚Ðą 4Ņ„Ņ‚Ðē4 4Ņ„Ņ‚Ðģ 4Ņ„Ņ‚Ðī 4Ņ„Ņ‚Ðķ4 4Ņ„Ņ‚з4 4Ņ„Ņ‚К 4Ņ„Ņ‚Ðŋ 4Ņ„Ņ‚Ņ4 4Ņ„Ņ‚Ņ‚ 4Ņ„Ņ‚Ņ„4 4Ņ„Ņ‚Ņ…4 4Ņ„Ņ‚Ņ† 4Ņ„Ņ‚Ņ‡ 4Ņ„Ņ‚Ņˆ4 4Ņ„3Ņ„4 8Ņ„Ņ„. Ņ„Ņ„Ðą4 4Ņ„Ņ„Ðē4 Ņ„Ņ„Ðģ4 Ņ„Ņ„Ðī4 4Ņ„Ņ„Ðķ4 4Ņ„Ņ„з4 Ņ„Ņ„К4 Ņ„Ņ„Ðŧ4 Ņ„Ņ„О4 Ņ„Ņ„Ð―4 Ņ„Ņ„Ðŋ4 Ņ„Ņ„Ņ€4 Ņ„Ņ„Ņ4 Ņ„Ņ„Ņ‚4 4Ņ„Ņ„Ņ„4 Ņ„Ņ„Ņ…4 Ņ„Ņ„Ņ†4 Ņ„Ņ„Ņ‡4 Ņ„Ņ„Ņˆ4 Ņ„Ņ„Ņ‰4 2Ņ„3Ņ… 8Ņ„Ņ…. 4Ņ„Ņ…Ðē4 4Ņ„Ņ…Ðķ4 4Ņ„Ņ…з4 4Ņ„Ņ…Ņ„4 4Ņ„Ņ…Ņ… 2Ņ„3Ņ† 8Ņ„Ņ†. 4Ņ„Ņ†Ðą 4Ņ„Ņ†Ðē4 4Ņ„Ņ†Ðģ 4Ņ„Ņ†Ðī 4Ņ„Ņ†Ðķ4 4Ņ„Ņ†Ð·4 4Ņ„Ņ†Ðš 4Ņ„Ņ†Ðŋ 4Ņ„Ņ†Ņ4 4Ņ„Ņ†Ņ‚ 4Ņ„Ņ†Ņ„4 4Ņ„Ņ†Ņ…4 4Ņ„Ņ†Ņ† 4Ņ„Ņ†Ņ‡ 4Ņ„Ņ†Ņˆ4 2Ņ„3Ņ‡ 8Ņ„Ņ‡. 4Ņ„Ņ‡Ðą 4Ņ„Ņ‡Ðē4 4Ņ„Ņ‡Ðģ 4Ņ„Ņ‡Ðī 4Ņ„Ņ‡Ðķ4 4Ņ„Ņ‡Ð·4 4Ņ„Ņ‡Ðš 4Ņ„Ņ‡Ðŋ 4Ņ„Ņ‡Ņ4 4Ņ„Ņ‡Ņ‚ 4Ņ„Ņ‡Ņ„4 4Ņ„Ņ‡Ņ…4 4Ņ„Ņ‡Ņ† 4Ņ„Ņ‡Ņ‡ 4Ņ„Ņ‡Ņˆ4 2Ņ„3Ņˆ 8Ņ„Ņˆ. 4Ņ„ŅˆÐē4 4Ņ„ŅˆÐķ4 4Ņ„ŅˆÐ·4 4Ņ„ŅˆŅ„4 4Ņ„ŅˆŅˆ 2Ņ„3Ņ‰ 8Ņ„Ņ‰. 4Ņ„Ņ‰Ðē4 4Ņ„Ņ‰Ðķ4 4Ņ„Ņ‰Ð·4 4Ņ„Ņ‰Ņ„4 4Ņ„Ņ‰Ņ‰ 2Ņ…3Ðą4 8Ņ…Ðą. 4Ņ…ÐąÐą 4Ņ…ÐąÐķ4 4Ņ…ÐąÐ·4 4Ņ…ÐąÐš 4Ņ…ÐąÐŋ 4Ņ…ÐąŅ4 4Ņ…ÐąŅ‚ 4Ņ…ÐąŅ„4 4Ņ…ÐąŅ…4 4Ņ…ÐąŅ† 4Ņ…ÐąŅ‡ 4Ņ…ÐąŅˆ4 2Ņ…3Ðē4 8Ņ…Ðē. 4Ņ…ÐēÐē 4Ņ…ÐēÐķ4 4Ņ…Ðēз4 4Ņ…ÐēŅ„ 4Ņ…ÐēŅ…4 2Ņ…3Ðģ4 8Ņ…Ðģ. 4Ņ…ÐģÐģ 4Ņ…ÐģÐķ4 4Ņ…Ðģз4 4Ņ…ÐģК 4Ņ…ÐģÐŋ 4Ņ…ÐģŅ4 4Ņ…ÐģŅ‚ 4Ņ…ÐģŅ„4 4Ņ…ÐģŅ…4 4Ņ…ÐģŅ† 4Ņ…ÐģŅ‡ 4Ņ…ÐģŅˆ4 2Ņ…3Ðī4 8Ņ…Ðī. 4Ņ…ÐīÐą 4Ņ…ÐīÐģ 4Ņ…ÐīÐī 4Ņ…ÐīÐķ4 4Ņ…Ðīз4 4Ņ…ÐīК 4Ņ…ÐīÐŋ 4Ņ…ÐīŅ4 4Ņ…ÐīŅ‚ 4Ņ…ÐīŅ„4 4Ņ…ÐīŅ…4 4Ņ…ÐīŅ† 4Ņ…ÐīŅ‡ 4Ņ…ÐīŅˆ4 4Ņ…3Ðķ4 8Ņ…Ðķ. Ņ…ÐķÐą4 Ņ…ÐķÐē4 Ņ…ÐķÐģ4 Ņ…ÐķÐī4 4Ņ…ÐķÐķ4 4Ņ…Ðķз4 Ņ…ÐķК4 Ņ…ÐķÐŧ4 Ņ…ÐķО4 Ņ…ÐķÐ―4 Ņ…ÐķÐŋ4 Ņ…ÐķŅ€4 4Ņ…ÐķŅ4 Ņ…ÐķŅ‚4 4Ņ…ÐķŅ„4 4Ņ…ÐķŅ…4 Ņ…ÐķŅ†4 Ņ…ÐķŅ‡4 4Ņ…ÐķŅˆ4 Ņ…ÐķŅ‰4 4Ņ…3з4 8Ņ…з. Ņ…Ð·Ðą4 Ņ…зÐē4 Ņ…зÐģ4 Ņ…зÐī4 4Ņ…зÐķ4 4Ņ…зз4 Ņ…зК4 Ņ…зÐŧ4 Ņ…зО4 Ņ…Ð·Ð―4 Ņ…зÐŋ4 Ņ…зŅ€4 4Ņ…зŅ4 Ņ…зŅ‚4 4Ņ…зŅ„4 4Ņ…зŅ…4 Ņ…зŅ†4 Ņ…зŅ‡4 4Ņ…зŅˆ4 Ņ…зŅ‰4 Ņ…Ðđ4 2Ņ…3К 8Ņ…К. 4Ņ…ÐšÐą 4Ņ…КÐģ 4Ņ…КÐī 4Ņ…КÐķ4 4Ņ…Кз4 4Ņ…КК 4Ņ…КŅ4 4Ņ…КŅ„4 4Ņ…КŅ…4 4Ņ…КŅˆ4 2Ņ…3Ðŧ4 8Ņ…Ðŧ. 4Ņ…ÐŧÐķ4 4Ņ…Ðŧз4 4Ņ…ÐŧÐŧ 4Ņ…ÐŧŅ…4 2Ņ…3О4 8Ņ…О. 4Ņ…ОÐķ4 4Ņ…Оз4 4Ņ…ОО 4Ņ…ОŅ…4 2Ņ…3Ð―4 8Ņ…Ð―. 4Ņ…Ð―Ðķ4 4Ņ…Ð―з4 4Ņ…Ð―Ð― 4Ņ…Ð―Ņ…4 2Ņ…3Ðŋ 8Ņ…Ðŋ. 4Ņ…ÐŋÐą 4Ņ…ÐŋÐģ 4Ņ…ÐŋÐī 4Ņ…ÐŋÐķ4 4Ņ…Ðŋз4 4Ņ…ÐŋÐŋ 4Ņ…ÐŋŅ4 4Ņ…ÐŋŅ„4 4Ņ…ÐŋŅ…4 4Ņ…ÐŋŅˆ4 2Ņ…3Ņ€4 8Ņ…Ņ€. 4Ņ…Ņ€Ðķ4 4Ņ…Ņ€Ð·4 4Ņ…Ņ€Ņ€ 4Ņ…Ņ€Ņ…4 2Ņ…3Ņ 8Ņ…Ņ. 4Ņ…ŅÐķ4 4Ņ…ŅÐ·4 4Ņ…ŅŅ 4Ņ…ŅŅ…4 2Ņ…3Ņ‚ 8Ņ…Ņ‚. 4Ņ…Ņ‚Ðą 4Ņ…Ņ‚Ðģ 4Ņ…Ņ‚Ðī 4Ņ…Ņ‚Ðķ4 4Ņ…Ņ‚з4 4Ņ…Ņ‚К 4Ņ…Ņ‚Ðŋ 4Ņ…Ņ‚Ņ4 4Ņ…Ņ‚Ņ‚ 4Ņ…Ņ‚Ņ„4 4Ņ…Ņ‚Ņ…4 4Ņ…Ņ‚Ņ† 4Ņ…Ņ‚Ņ‡ 4Ņ…Ņ‚Ņˆ4 2Ņ…3Ņ„ 8Ņ…Ņ„. 4Ņ…Ņ„Ðē 4Ņ…Ņ„Ðķ4 4Ņ…Ņ„з4 4Ņ…Ņ„Ņ„ 4Ņ…Ņ„Ņ…4 4Ņ…3Ņ…4 8Ņ…Ņ…. Ņ…Ņ…Ðą4 Ņ…Ņ…Ðē4 Ņ…Ņ…Ðģ4 Ņ…Ņ…Ðī4 4Ņ…Ņ…Ðķ4 4Ņ…Ņ…з4 Ņ…Ņ…К4 Ņ…Ņ…Ðŧ4 Ņ…Ņ…О4 Ņ…Ņ…Ð―4 Ņ…Ņ…Ðŋ4 Ņ…Ņ…Ņ€4 Ņ…Ņ…Ņ4 Ņ…Ņ…Ņ‚4 Ņ…Ņ…Ņ„4 4Ņ…Ņ…Ņ…4 Ņ…Ņ…Ņ†4 Ņ…Ņ…Ņ‡4 Ņ…Ņ…Ņˆ4 Ņ…Ņ…Ņ‰4 2Ņ…3Ņ† 8Ņ…Ņ†. 4Ņ…Ņ†Ðą 4Ņ…Ņ†Ðģ 4Ņ…Ņ†Ðī 4Ņ…Ņ†Ðķ4 4Ņ…Ņ†Ð·4 4Ņ…Ņ†Ðš 4Ņ…Ņ†Ðŋ 4Ņ…Ņ†Ņ4 4Ņ…Ņ†Ņ‚ 4Ņ…Ņ†Ņ„4 4Ņ…Ņ†Ņ…4 4Ņ…Ņ†Ņ† 4Ņ…Ņ†Ņ‡ 4Ņ…Ņ†Ņˆ4 2Ņ…3Ņ‡ 8Ņ…Ņ‡. 4Ņ…Ņ‡Ðą 4Ņ…Ņ‡Ðģ 4Ņ…Ņ‡Ðī 4Ņ…Ņ‡Ðķ4 4Ņ…Ņ‡Ð·4 4Ņ…Ņ‡Ðš 4Ņ…Ņ‡Ðŋ 4Ņ…Ņ‡Ņ4 4Ņ…Ņ‡Ņ‚ 4Ņ…Ņ‡Ņ„4 4Ņ…Ņ‡Ņ…4 4Ņ…Ņ‡Ņ† 4Ņ…Ņ‡Ņ‡ 4Ņ…Ņ‡Ņˆ4 2Ņ…3Ņˆ 8Ņ…Ņˆ. 4Ņ…ŅˆÐķ4 4Ņ…ŅˆÐ·4 4Ņ…ŅˆŅ…4 4Ņ…ŅˆŅˆ 2Ņ…3Ņ‰ 8Ņ…Ņ‰. 4Ņ…Ņ‰Ðķ4 4Ņ…Ņ‰Ð·4 4Ņ…Ņ‰Ņ…4 4Ņ…Ņ‰Ņ‰ 4Ņ†3Ðą4 8Ņ†Ðą. 4Ņ†ÐąÐą4 Ņ†ÐąÐē4 4Ņ†ÐąÐģ4 4Ņ†ÐąÐī4 Ņ†ÐąÐķ4 Ņ†ÐąÐ·4 4Ņ†ÐąÐš4 Ņ†ÐąÐŧ4 Ņ†ÐąÐž4 Ņ†ÐąÐ―4 4Ņ†ÐąÐŋ4 Ņ†ÐąŅ€4 Ņ†ÐąŅ4 4Ņ†ÐąŅ‚4 Ņ†ÐąŅ„4 Ņ†ÐąŅ…4 4Ņ†ÐąŅ†4 4Ņ†ÐąŅ‡4 Ņ†ÐąŅˆ4 Ņ†ÐąŅ‰4 2Ņ†3Ðē4 8Ņ†Ðē. 4Ņ†ÐēÐą4 4Ņ†ÐēÐē 4Ņ†ÐēÐģ4 4Ņ†ÐēÐī4 4Ņ†ÐēК4 4Ņ†ÐēÐŋ4 4Ņ†ÐēŅ‚4 4Ņ†ÐēŅ„ 4Ņ†ÐēŅ†4 4Ņ†ÐēŅ‡4 4Ņ†3Ðģ4 8Ņ†Ðģ. 4Ņ†ÐģÐą4 Ņ†ÐģÐē4 4Ņ†ÐģÐģ4 4Ņ†ÐģÐī4 Ņ†ÐģÐķ4 Ņ†Ðģз4 4Ņ†ÐģК4 Ņ†ÐģÐŧ4 Ņ†ÐģО4 Ņ†ÐģÐ―4 4Ņ†ÐģÐŋ4 Ņ†ÐģŅ€4 Ņ†ÐģŅ4 4Ņ†ÐģŅ‚4 Ņ†ÐģŅ„4 Ņ†ÐģŅ…4 4Ņ†ÐģŅ†4 4Ņ†ÐģŅ‡4 Ņ†ÐģŅˆ4 Ņ†ÐģŅ‰4 4Ņ†3Ðī4 8Ņ†Ðī. 4Ņ†ÐīÐą4 Ņ†ÐīÐē4 4Ņ†ÐīÐģ4 4Ņ†ÐīÐī4 Ņ†ÐīÐķ4 Ņ†Ðīз4 4Ņ†ÐīК4 Ņ†ÐīÐŧ4 Ņ†ÐīО4 Ņ†ÐīÐ―4 4Ņ†ÐīÐŋ4 Ņ†ÐīŅ€4 Ņ†ÐīŅ4 4Ņ†ÐīŅ‚4 Ņ†ÐīŅ„4 Ņ†ÐīŅ…4 4Ņ†ÐīŅ†4 4Ņ†ÐīŅ‡4 Ņ†ÐīŅˆ4 Ņ†ÐīŅ‰4 2Ņ†3Ðķ4 8Ņ†Ðķ. 4Ņ†ÐķÐą4 4Ņ†ÐķÐģ4 4Ņ†ÐķÐī4 4Ņ†ÐķÐķ 4Ņ†ÐķК4 4Ņ†ÐķÐŋ4 4Ņ†ÐķŅ 4Ņ†ÐķŅ‚4 4Ņ†ÐķŅ„ 4Ņ†ÐķŅ… 4Ņ†ÐķŅ†4 4Ņ†ÐķŅ‡4 4Ņ†ÐķŅˆ 2Ņ†3з4 8Ņ†Ð·. 4Ņ†Ð·Ðą4 4Ņ†Ð·Ðģ4 4Ņ†Ð·Ðī4 4Ņ†Ð·Ð· 4Ņ†Ð·Ðš4 4Ņ†Ð·Ðŋ4 4Ņ†Ð·Ņ 4Ņ†Ð·Ņ‚4 4Ņ†Ð·Ņ„ 4Ņ†Ð·Ņ… 4Ņ†Ð·Ņ†4 4Ņ†Ð·Ņ‡4 4Ņ†Ð·Ņˆ Ņ†Ðđ4 4Ņ†3К4 8Ņ†Ðš. 4Ņ†ÐšÐą4 Ņ†ÐšÐē4 4Ņ†ÐšÐģ4 4Ņ†ÐšÐī4 Ņ†ÐšÐķ4 Ņ†ÐšÐ·4 4Ņ†ÐšÐš4 Ņ†ÐšÐŧ4 Ņ†ÐšÐž4 Ņ†ÐšÐ―4 4Ņ†ÐšÐŋ4 Ņ†ÐšŅ€4 Ņ†ÐšŅ4 4Ņ†ÐšŅ‚4 Ņ†ÐšŅ„4 Ņ†ÐšŅ…4 4Ņ†ÐšŅ†4 4Ņ†ÐšŅ‡4 Ņ†ÐšŅˆ4 Ņ†ÐšŅ‰4 2Ņ†3Ðŧ4 8Ņ†Ðŧ. 4Ņ†ÐŧÐą4 4Ņ†ÐŧÐģ4 4Ņ†ÐŧÐī4 4Ņ†ÐŧК4 4Ņ†ÐŧÐŧ 4Ņ†ÐŧÐŋ4 4Ņ†ÐŧŅ‚4 4Ņ†ÐŧŅ†4 4Ņ†ÐŧŅ‡4 2Ņ†3О4 8Ņ†Ðž. 4Ņ†ÐžÐą4 4Ņ†ÐžÐģ4 4Ņ†ÐžÐī4 4Ņ†ÐžÐš4 4Ņ†ÐžÐž 4Ņ†ÐžÐŋ4 4Ņ†ÐžŅ‚4 4Ņ†ÐžŅ†4 4Ņ†ÐžŅ‡4 2Ņ†3Ð―4 8Ņ†Ð―. 4Ņ†Ð―Ðą4 4Ņ†Ð―Ðģ4 4Ņ†Ð―Ðī4 4Ņ†Ð―К4 4Ņ†Ð―Ð― 4Ņ†Ð―Ðŋ4 4Ņ†Ð―Ņ‚4 4Ņ†Ð―Ņ†4 4Ņ†Ð―Ņ‡4 4Ņ†3Ðŋ4 8Ņ†Ðŋ. 4Ņ†ÐŋÐą4 Ņ†ÐŋÐē4 4Ņ†ÐŋÐģ4 4Ņ†ÐŋÐī4 Ņ†ÐŋÐķ4 Ņ†Ðŋз4 4Ņ†ÐŋК4 Ņ†ÐŋÐŧ4 Ņ†ÐŋО4 Ņ†ÐŋÐ―4 4Ņ†ÐŋÐŋ4 Ņ†ÐŋŅ€4 Ņ†ÐŋŅ4 4Ņ†ÐŋŅ‚4 Ņ†ÐŋŅ„4 Ņ†ÐŋŅ…4 4Ņ†ÐŋŅ†4 4Ņ†ÐŋŅ‡4 Ņ†ÐŋŅˆ4 Ņ†ÐŋŅ‰4 2Ņ†3Ņ€4 8Ņ†Ņ€. 4Ņ†Ņ€Ðą4 4Ņ†Ņ€Ðģ4 4Ņ†Ņ€Ðī4 4Ņ†Ņ€Ðš4 4Ņ†Ņ€Ðŋ4 4Ņ†Ņ€Ņ€ 4Ņ†Ņ€Ņ‚4 4Ņ†Ņ€Ņ†4 4Ņ†Ņ€Ņ‡4 2Ņ†3Ņ 8Ņ†Ņ. 4Ņ†ŅÐą4 4Ņ†ŅÐģ4 4Ņ†ŅÐī4 4Ņ†ŅÐķ 4Ņ†ŅÐ· 4Ņ†ŅÐš4 4Ņ†ŅÐŋ4 4Ņ†ŅŅ 4Ņ†ŅŅ‚4 4Ņ†ŅŅ†4 4Ņ†ŅŅ‡4 4Ņ†3Ņ‚4 8Ņ†Ņ‚. 4Ņ†Ņ‚Ðą4 Ņ†Ņ‚Ðē4 4Ņ†Ņ‚Ðģ4 4Ņ†Ņ‚Ðī4 Ņ†Ņ‚Ðķ4 Ņ†Ņ‚з4 4Ņ†Ņ‚К4 Ņ†Ņ‚Ðŧ4 Ņ†Ņ‚О4 Ņ†Ņ‚Ð―4 4Ņ†Ņ‚Ðŋ4 Ņ†Ņ‚Ņ€4 Ņ†Ņ‚Ņ4 4Ņ†Ņ‚Ņ‚4 Ņ†Ņ‚Ņ„4 Ņ†Ņ‚Ņ…4 4Ņ†Ņ‚Ņ†4 4Ņ†Ņ‚Ņ‡4 Ņ†Ņ‚Ņˆ4 Ņ†Ņ‚Ņ‰4 2Ņ†3Ņ„ 8Ņ†Ņ„. 4Ņ†Ņ„Ðą4 4Ņ†Ņ„Ðē 4Ņ†Ņ„Ðģ4 4Ņ†Ņ„Ðī4 4Ņ†Ņ„Ðķ 4Ņ†Ņ„з 4Ņ†Ņ„К4 4Ņ†Ņ„Ðŋ4 4Ņ†Ņ„Ņ‚4 4Ņ†Ņ„Ņ„ 4Ņ†Ņ„Ņ†4 4Ņ†Ņ„Ņ‡4 2Ņ†3Ņ… 8Ņ†Ņ…. 4Ņ†Ņ…Ðą4 4Ņ†Ņ…Ðģ4 4Ņ†Ņ…Ðī4 4Ņ†Ņ…Ðķ 4Ņ†Ņ…з 4Ņ†Ņ…К4 4Ņ†Ņ…Ðŋ4 4Ņ†Ņ…Ņ‚4 4Ņ†Ņ…Ņ… 4Ņ†Ņ…Ņ†4 4Ņ†Ņ…Ņ‡4 4Ņ†3Ņ†4 8Ņ†Ņ†. 4Ņ†Ņ†Ðą4 Ņ†Ņ†Ðē4 4Ņ†Ņ†Ðģ4 4Ņ†Ņ†Ðī4 Ņ†Ņ†Ðķ4 Ņ†Ņ†Ð·4 4Ņ†Ņ†Ðš4 Ņ†Ņ†Ðŧ4 Ņ†Ņ†Ðž4 Ņ†Ņ†Ð―4 4Ņ†Ņ†Ðŋ4 Ņ†Ņ†Ņ€4 Ņ†Ņ†Ņ4 4Ņ†Ņ†Ņ‚4 Ņ†Ņ†Ņ„4 Ņ†Ņ†Ņ…4 4Ņ†Ņ†Ņ†4 4Ņ†Ņ†Ņ‡4 Ņ†Ņ†Ņˆ4 Ņ†Ņ†Ņ‰4 4Ņ†3Ņ‡4 8Ņ†Ņ‡. 4Ņ†Ņ‡Ðą4 Ņ†Ņ‡Ðē4 4Ņ†Ņ‡Ðģ4 4Ņ†Ņ‡Ðī4 Ņ†Ņ‡Ðķ4 Ņ†Ņ‡Ð·4 4Ņ†Ņ‡Ðš4 Ņ†Ņ‡Ðŧ4 Ņ†Ņ‡Ðž4 Ņ†Ņ‡Ð―4 4Ņ†Ņ‡Ðŋ4 Ņ†Ņ‡Ņ€4 Ņ†Ņ‡Ņ4 4Ņ†Ņ‡Ņ‚4 Ņ†Ņ‡Ņ„4 Ņ†Ņ‡Ņ…4 4Ņ†Ņ‡Ņ†4 4Ņ†Ņ‡Ņ‡4 Ņ†Ņ‡Ņˆ4 Ņ†Ņ‡Ņ‰4 2Ņ†3Ņˆ 8Ņ†Ņˆ. 4Ņ†ŅˆÐą4 4Ņ†ŅˆÐģ4 4Ņ†ŅˆÐī4 4Ņ†ŅˆÐķ 4Ņ†ŅˆÐ· 4Ņ†ŅˆÐš4 4Ņ†ŅˆÐŋ4 4Ņ†ŅˆŅ‚4 4Ņ†ŅˆŅ†4 4Ņ†ŅˆŅ‡4 4Ņ†ŅˆŅˆ 2Ņ†3Ņ‰ 8Ņ†Ņ‰. 4Ņ†Ņ‰Ðą4 4Ņ†Ņ‰Ðģ4 4Ņ†Ņ‰Ðī4 4Ņ†Ņ‰Ðš4 4Ņ†Ņ‰Ðŋ4 4Ņ†Ņ‰Ņ‚4 4Ņ†Ņ‰Ņ†4 4Ņ†Ņ‰Ņ‡4 4Ņ†Ņ‰Ņ‰ 4Ņ‡3Ðą4 8Ņ‡Ðą. 4Ņ‡ÐąÐą4 Ņ‡ÐąÐē4 4Ņ‡ÐąÐģ4 4Ņ‡ÐąÐī4 Ņ‡ÐąÐķ4 Ņ‡ÐąÐ·4 4Ņ‡ÐąÐš4 Ņ‡ÐąÐŧ4 Ņ‡ÐąÐž4 Ņ‡ÐąÐ―4 4Ņ‡ÐąÐŋ4 Ņ‡ÐąŅ€4 Ņ‡ÐąŅ4 4Ņ‡ÐąŅ‚4 Ņ‡ÐąŅ„4 Ņ‡ÐąŅ…4 4Ņ‡ÐąŅ†4 4Ņ‡ÐąŅ‡4 Ņ‡ÐąŅˆ4 Ņ‡ÐąŅ‰4 2Ņ‡3Ðē4 8Ņ‡Ðē. 4Ņ‡ÐēÐą4 4Ņ‡ÐēÐē 4Ņ‡ÐēÐģ4 4Ņ‡ÐēÐī4 4Ņ‡ÐēК4 4Ņ‡ÐēÐŋ4 4Ņ‡ÐēŅ‚4 4Ņ‡ÐēŅ„ 4Ņ‡ÐēŅ†4 4Ņ‡ÐēŅ‡4 4Ņ‡3Ðģ4 8Ņ‡Ðģ. 4Ņ‡ÐģÐą4 Ņ‡ÐģÐē4 4Ņ‡ÐģÐģ4 4Ņ‡ÐģÐī4 Ņ‡ÐģÐķ4 Ņ‡Ðģз4 4Ņ‡ÐģК4 Ņ‡ÐģÐŧ4 Ņ‡ÐģО4 Ņ‡ÐģÐ―4 4Ņ‡ÐģÐŋ4 Ņ‡ÐģŅ€4 Ņ‡ÐģŅ4 4Ņ‡ÐģŅ‚4 Ņ‡ÐģŅ„4 Ņ‡ÐģŅ…4 4Ņ‡ÐģŅ†4 4Ņ‡ÐģŅ‡4 Ņ‡ÐģŅˆ4 Ņ‡ÐģŅ‰4 4Ņ‡3Ðī4 8Ņ‡Ðī. 4Ņ‡ÐīÐą4 Ņ‡ÐīÐē4 4Ņ‡ÐīÐģ4 4Ņ‡ÐīÐī4 Ņ‡ÐīÐķ4 Ņ‡Ðīз4 4Ņ‡ÐīК4 Ņ‡ÐīÐŧ4 Ņ‡ÐīО4 Ņ‡ÐīÐ―4 4Ņ‡ÐīÐŋ4 Ņ‡ÐīŅ€4 Ņ‡ÐīŅ4 4Ņ‡ÐīŅ‚4 Ņ‡ÐīŅ„4 Ņ‡ÐīŅ…4 4Ņ‡ÐīŅ†4 4Ņ‡ÐīŅ‡4 Ņ‡ÐīŅˆ4 Ņ‡ÐīŅ‰4 2Ņ‡3Ðķ4 8Ņ‡Ðķ. 4Ņ‡ÐķÐą4 4Ņ‡ÐķÐģ4 4Ņ‡ÐķÐī4 4Ņ‡ÐķÐķ 4Ņ‡ÐķК4 4Ņ‡ÐķÐŋ4 4Ņ‡ÐķŅ 4Ņ‡ÐķŅ‚4 4Ņ‡ÐķŅ„ 4Ņ‡ÐķŅ… 4Ņ‡ÐķŅ†4 4Ņ‡ÐķŅ‡4 4Ņ‡ÐķŅˆ 2Ņ‡3з4 8Ņ‡Ð·. 4Ņ‡Ð·Ðą4 4Ņ‡Ð·Ðģ4 4Ņ‡Ð·Ðī4 4Ņ‡Ð·Ð· 4Ņ‡Ð·Ðš4 4Ņ‡Ð·Ðŋ4 4Ņ‡Ð·Ņ 4Ņ‡Ð·Ņ‚4 4Ņ‡Ð·Ņ„ 4Ņ‡Ð·Ņ… 4Ņ‡Ð·Ņ†4 4Ņ‡Ð·Ņ‡4 4Ņ‡Ð·Ņˆ Ņ‡Ðđ4 4Ņ‡3К4 8Ņ‡Ðš. 4Ņ‡ÐšÐą4 Ņ‡ÐšÐē4 4Ņ‡ÐšÐģ4 4Ņ‡ÐšÐī4 Ņ‡ÐšÐķ4 Ņ‡ÐšÐ·4 4Ņ‡ÐšÐš4 Ņ‡ÐšÐŧ4 Ņ‡ÐšÐž4 Ņ‡ÐšÐ―4 4Ņ‡ÐšÐŋ4 Ņ‡ÐšŅ€4 Ņ‡ÐšŅ4 4Ņ‡ÐšŅ‚4 Ņ‡ÐšŅ„4 Ņ‡ÐšŅ…4 4Ņ‡ÐšŅ†4 4Ņ‡ÐšŅ‡4 Ņ‡ÐšŅˆ4 Ņ‡ÐšŅ‰4 2Ņ‡3Ðŧ4 8Ņ‡Ðŧ. 4Ņ‡ÐŧÐą4 4Ņ‡ÐŧÐģ4 4Ņ‡ÐŧÐī4 4Ņ‡ÐŧК4 4Ņ‡ÐŧÐŧ 4Ņ‡ÐŧÐŋ4 4Ņ‡ÐŧŅ‚4 4Ņ‡ÐŧŅ†4 4Ņ‡ÐŧŅ‡4 2Ņ‡3О4 8Ņ‡Ðž. 4Ņ‡ÐžÐą4 4Ņ‡ÐžÐģ4 4Ņ‡ÐžÐī4 4Ņ‡ÐžÐš4 4Ņ‡ÐžÐž 4Ņ‡ÐžÐŋ4 4Ņ‡ÐžŅ‚4 4Ņ‡ÐžŅ†4 4Ņ‡ÐžŅ‡4 2Ņ‡3Ð―4 8Ņ‡Ð―. 4Ņ‡Ð―Ðą4 4Ņ‡Ð―Ðģ4 4Ņ‡Ð―Ðī4 4Ņ‡Ð―К4 4Ņ‡Ð―Ð― 4Ņ‡Ð―Ðŋ4 4Ņ‡Ð―Ņ‚4 4Ņ‡Ð―Ņ†4 4Ņ‡Ð―Ņ‡4 4Ņ‡3Ðŋ4 8Ņ‡Ðŋ. 4Ņ‡ÐŋÐą4 Ņ‡ÐŋÐē4 4Ņ‡ÐŋÐģ4 4Ņ‡ÐŋÐī4 Ņ‡ÐŋÐķ4 Ņ‡Ðŋз4 4Ņ‡ÐŋК4 Ņ‡ÐŋÐŧ4 Ņ‡ÐŋО4 Ņ‡ÐŋÐ―4 4Ņ‡ÐŋÐŋ4 Ņ‡ÐŋŅ€4 Ņ‡ÐŋŅ4 4Ņ‡ÐŋŅ‚4 Ņ‡ÐŋŅ„4 Ņ‡ÐŋŅ…4 4Ņ‡ÐŋŅ†4 4Ņ‡ÐŋŅ‡4 Ņ‡ÐŋŅˆ4 Ņ‡ÐŋŅ‰4 2Ņ‡3Ņ€4 8Ņ‡Ņ€. 4Ņ‡Ņ€Ðą4 4Ņ‡Ņ€Ðģ4 4Ņ‡Ņ€Ðī4 4Ņ‡Ņ€Ðš4 4Ņ‡Ņ€Ðŋ4 4Ņ‡Ņ€Ņ€ 4Ņ‡Ņ€Ņ‚4 4Ņ‡Ņ€Ņ†4 4Ņ‡Ņ€Ņ‡4 2Ņ‡3Ņ 8Ņ‡Ņ. 4Ņ‡ŅÐą4 4Ņ‡ŅÐģ4 4Ņ‡ŅÐī4 4Ņ‡ŅÐķ 4Ņ‡ŅÐ· 4Ņ‡ŅÐš4 4Ņ‡ŅÐŋ4 4Ņ‡ŅŅ 4Ņ‡ŅŅ‚4 4Ņ‡ŅŅ†4 4Ņ‡ŅŅ‡4 4Ņ‡3Ņ‚4 8Ņ‡Ņ‚. 4Ņ‡Ņ‚Ðą4 Ņ‡Ņ‚Ðē4 4Ņ‡Ņ‚Ðģ4 4Ņ‡Ņ‚Ðī4 Ņ‡Ņ‚Ðķ4 Ņ‡Ņ‚з4 4Ņ‡Ņ‚К4 Ņ‡Ņ‚Ðŧ4 Ņ‡Ņ‚О4 Ņ‡Ņ‚Ð―4 4Ņ‡Ņ‚Ðŋ4 Ņ‡Ņ‚Ņ€4 Ņ‡Ņ‚Ņ4 4Ņ‡Ņ‚Ņ‚4 Ņ‡Ņ‚Ņ„4 Ņ‡Ņ‚Ņ…4 4Ņ‡Ņ‚Ņ†4 4Ņ‡Ņ‚Ņ‡4 Ņ‡Ņ‚Ņˆ4 Ņ‡Ņ‚Ņ‰4 2Ņ‡3Ņ„ 8Ņ‡Ņ„. 4Ņ‡Ņ„Ðą4 4Ņ‡Ņ„Ðē 4Ņ‡Ņ„Ðģ4 4Ņ‡Ņ„Ðī4 4Ņ‡Ņ„Ðķ 4Ņ‡Ņ„з 4Ņ‡Ņ„К4 4Ņ‡Ņ„Ðŋ4 4Ņ‡Ņ„Ņ‚4 4Ņ‡Ņ„Ņ„ 4Ņ‡Ņ„Ņ†4 4Ņ‡Ņ„Ņ‡4 2Ņ‡3Ņ… 8Ņ‡Ņ…. 4Ņ‡Ņ…Ðą4 4Ņ‡Ņ…Ðģ4 4Ņ‡Ņ…Ðī4 4Ņ‡Ņ…Ðķ 4Ņ‡Ņ…з 4Ņ‡Ņ…К4 4Ņ‡Ņ…Ðŋ4 4Ņ‡Ņ…Ņ‚4 4Ņ‡Ņ…Ņ… 4Ņ‡Ņ…Ņ†4 4Ņ‡Ņ…Ņ‡4 4Ņ‡3Ņ†4 8Ņ‡Ņ†. 4Ņ‡Ņ†Ðą4 Ņ‡Ņ†Ðē4 4Ņ‡Ņ†Ðģ4 4Ņ‡Ņ†Ðī4 Ņ‡Ņ†Ðķ4 Ņ‡Ņ†Ð·4 4Ņ‡Ņ†Ðš4 Ņ‡Ņ†Ðŧ4 Ņ‡Ņ†Ðž4 Ņ‡Ņ†Ð―4 4Ņ‡Ņ†Ðŋ4 Ņ‡Ņ†Ņ€4 Ņ‡Ņ†Ņ4 4Ņ‡Ņ†Ņ‚4 Ņ‡Ņ†Ņ„4 Ņ‡Ņ†Ņ…4 4Ņ‡Ņ†Ņ†4 4Ņ‡Ņ†Ņ‡4 Ņ‡Ņ†Ņˆ4 Ņ‡Ņ†Ņ‰4 4Ņ‡3Ņ‡4 8Ņ‡Ņ‡. 4Ņ‡Ņ‡Ðą4 Ņ‡Ņ‡Ðē4 4Ņ‡Ņ‡Ðģ4 4Ņ‡Ņ‡Ðī4 Ņ‡Ņ‡Ðķ4 Ņ‡Ņ‡Ð·4 4Ņ‡Ņ‡Ðš4 Ņ‡Ņ‡Ðŧ4 Ņ‡Ņ‡Ðž4 Ņ‡Ņ‡Ð―4 4Ņ‡Ņ‡Ðŋ4 Ņ‡Ņ‡Ņ€4 Ņ‡Ņ‡Ņ4 4Ņ‡Ņ‡Ņ‚4 Ņ‡Ņ‡Ņ„4 Ņ‡Ņ‡Ņ…4 4Ņ‡Ņ‡Ņ†4 4Ņ‡Ņ‡Ņ‡4 Ņ‡Ņ‡Ņˆ4 Ņ‡Ņ‡Ņ‰4 2Ņ‡3Ņˆ 8Ņ‡Ņˆ. 4Ņ‡ŅˆÐą4 4Ņ‡ŅˆÐģ4 4Ņ‡ŅˆÐī4 4Ņ‡ŅˆÐķ 4Ņ‡ŅˆÐ· 4Ņ‡ŅˆÐš4 4Ņ‡ŅˆÐŋ4 4Ņ‡ŅˆŅ‚4 4Ņ‡ŅˆŅ†4 4Ņ‡ŅˆŅ‡4 4Ņ‡ŅˆŅˆ 2Ņ‡3Ņ‰ 8Ņ‡Ņ‰. 4Ņ‡Ņ‰Ðą4 4Ņ‡Ņ‰Ðģ4 4Ņ‡Ņ‰Ðī4 4Ņ‡Ņ‰Ðš4 4Ņ‡Ņ‰Ðŋ4 4Ņ‡Ņ‰Ņ‚4 4Ņ‡Ņ‰Ņ†4 4Ņ‡Ņ‰Ņ‡4 4Ņ‡Ņ‰Ņ‰ 2Ņˆ3Ðą4 8ŅˆÐą. 4ŅˆÐąÐą 4ŅˆÐąÐķ4 4ŅˆÐąÐ·4 4ŅˆÐąÐš 4ŅˆÐąÐŋ 4ŅˆÐąŅ4 4ŅˆÐąŅ‚ 4ŅˆÐąŅ„4 4ŅˆÐąŅ…4 4ŅˆÐąŅ† 4ŅˆÐąŅ‡ 4ŅˆÐąŅˆ4 2Ņˆ3Ðē4 8ŅˆÐē. 4ŅˆÐēÐē 4ŅˆÐēÐķ4 4ŅˆÐēз4 4ŅˆÐēŅ„ 4ŅˆÐēŅˆ4 2Ņˆ3Ðģ4 8ŅˆÐģ. 4ŅˆÐģÐģ 4ŅˆÐģÐķ4 4ŅˆÐģз4 4ŅˆÐģК 4ŅˆÐģÐŋ 4ŅˆÐģŅ4 4ŅˆÐģŅ‚ 4ŅˆÐģŅ„4 4ŅˆÐģŅ…4 4ŅˆÐģŅ† 4ŅˆÐģŅ‡ 4ŅˆÐģŅˆ4 2Ņˆ3Ðī4 8ŅˆÐī. 4ŅˆÐīÐą 4ŅˆÐīÐģ 4ŅˆÐīÐī 4ŅˆÐīÐķ4 4ŅˆÐīз4 4ŅˆÐīК 4ŅˆÐīÐŋ 4ŅˆÐīŅ4 4ŅˆÐīŅ‚ 4ŅˆÐīŅ„4 4ŅˆÐīŅ…4 4ŅˆÐīŅ† 4ŅˆÐīŅ‡ 4ŅˆÐīŅˆ4 4Ņˆ3Ðķ4 8ŅˆÐķ. ŅˆÐķÐą4 ŅˆÐķÐē4 ŅˆÐķÐģ4 ŅˆÐķÐī4 4ŅˆÐķÐķ4 4ŅˆÐķз4 ŅˆÐķК4 ŅˆÐķÐŧ4 ŅˆÐķО4 ŅˆÐķÐ―4 ŅˆÐķÐŋ4 ŅˆÐķŅ€4 4ŅˆÐķŅ4 ŅˆÐķŅ‚4 4ŅˆÐķŅ„4 4ŅˆÐķŅ…4 ŅˆÐķŅ†4 ŅˆÐķŅ‡4 4ŅˆÐķŅˆ4 ŅˆÐķŅ‰4 4Ņˆ3з4 8ŅˆÐ·. ŅˆÐ·Ðą4 ŅˆÐ·Ðē4 ŅˆÐ·Ðģ4 ŅˆÐ·Ðī4 4ŅˆÐ·Ðķ4 4ŅˆÐ·Ð·4 ŅˆÐ·Ðš4 ŅˆÐ·Ðŧ4 ŅˆÐ·Ðž4 ŅˆÐ·Ð―4 ŅˆÐ·Ðŋ4 ŅˆÐ·Ņ€4 4ŅˆÐ·Ņ4 ŅˆÐ·Ņ‚4 4ŅˆÐ·Ņ„4 4ŅˆÐ·Ņ…4 ŅˆÐ·Ņ†4 ŅˆÐ·Ņ‡4 4ŅˆÐ·Ņˆ4 ŅˆÐ·Ņ‰4 ŅˆÐđ4 2Ņˆ3К 8ŅˆÐš. 4ŅˆÐšÐą 4ŅˆÐšÐģ 4ŅˆÐšÐī 4ŅˆÐšÐķ4 4ŅˆÐšÐ·4 4ŅˆÐšÐš 4ŅˆÐšŅ4 4ŅˆÐšŅ„4 4ŅˆÐšŅ…4 4ŅˆÐšŅˆ4 2Ņˆ3Ðŧ4 8ŅˆÐŧ. 4ŅˆÐŧÐķ4 4ŅˆÐŧз4 4ŅˆÐŧÐŧ 4ŅˆÐŧŅˆ4 2Ņˆ3О4 8ŅˆÐž. 4ŅˆÐžÐķ4 4ŅˆÐžÐ·4 4ŅˆÐžÐž 4ŅˆÐžŅˆ4 2Ņˆ3Ð―4 8ŅˆÐ―. 4ŅˆÐ―Ðķ4 4ŅˆÐ―з4 4ŅˆÐ―Ð― 4ŅˆÐ―Ņˆ4 2Ņˆ3Ðŋ 8ŅˆÐŋ. 4ŅˆÐŋÐą 4ŅˆÐŋÐģ 4ŅˆÐŋÐī 4ŅˆÐŋÐķ4 4ŅˆÐŋз4 4ŅˆÐŋÐŋ 4ŅˆÐŋŅ4 4ŅˆÐŋŅ„4 4ŅˆÐŋŅ…4 4ŅˆÐŋŅˆ4 2Ņˆ3Ņ€4 8ŅˆŅ€. 4ŅˆŅ€Ðķ4 4ŅˆŅ€Ð·4 4ŅˆŅ€Ņ€ 4ŅˆŅ€Ņˆ4 2Ņˆ3Ņ 8ŅˆŅ. 4ŅˆŅÐķ4 4ŅˆŅÐ·4 4ŅˆŅŅ 4ŅˆŅŅˆ4 2Ņˆ3Ņ‚ 8ŅˆŅ‚. 4ŅˆŅ‚Ðą 4ŅˆŅ‚Ðģ 4ŅˆŅ‚Ðī 4ŅˆŅ‚Ðķ4 4ŅˆŅ‚з4 4ŅˆŅ‚К 4ŅˆŅ‚Ðŋ 4ŅˆŅ‚Ņ4 4ŅˆŅ‚Ņ‚ 4ŅˆŅ‚Ņ„4 4ŅˆŅ‚Ņ…4 4ŅˆŅ‚Ņ† 4ŅˆŅ‚Ņ‡ 4ŅˆŅ‚Ņˆ4 2Ņˆ3Ņ„ 8ŅˆŅ„. 4ŅˆŅ„Ðē 4ŅˆŅ„Ðķ4 4ŅˆŅ„з4 4ŅˆŅ„Ņ„ 4ŅˆŅ„Ņˆ4 2Ņˆ3Ņ… 8ŅˆŅ…. 4ŅˆŅ…Ðķ4 4ŅˆŅ…з4 4ŅˆŅ…Ņ… 4ŅˆŅ…Ņˆ4 2Ņˆ3Ņ† 8ŅˆŅ†. 4ŅˆŅ†Ðą 4ŅˆŅ†Ðģ 4ŅˆŅ†Ðī 4ŅˆŅ†Ðķ4 4ŅˆŅ†Ð·4 4ŅˆŅ†Ðš 4ŅˆŅ†Ðŋ 4ŅˆŅ†Ņ4 4ŅˆŅ†Ņ‚ 4ŅˆŅ†Ņ„4 4ŅˆŅ†Ņ…4 4ŅˆŅ†Ņ† 4ŅˆŅ†Ņ‡ 4ŅˆŅ†Ņˆ4 2Ņˆ3Ņ‡ 8ŅˆŅ‡. 4ŅˆŅ‡Ðą 4ŅˆŅ‡Ðģ 4ŅˆŅ‡Ðī 4ŅˆŅ‡Ðķ4 4ŅˆŅ‡Ð·4 4ŅˆŅ‡Ðš 4ŅˆŅ‡Ðŋ 4ŅˆŅ‡Ņ4 4ŅˆŅ‡Ņ‚ 4ŅˆŅ‡Ņ„4 4ŅˆŅ‡Ņ…4 4ŅˆŅ‡Ņ† 4ŅˆŅ‡Ņ‡ 4ŅˆŅ‡Ņˆ4 4Ņˆ3Ņˆ4 8ŅˆŅˆ. ŅˆŅˆÐą4 ŅˆŅˆÐē4 ŅˆŅˆÐģ4 ŅˆŅˆÐī4 4ŅˆŅˆÐķ4 4ŅˆŅˆÐ·4 ŅˆŅˆÐš4 ŅˆŅˆÐŧ4 ŅˆŅˆÐž4 ŅˆŅˆÐ―4 ŅˆŅˆÐŋ4 ŅˆŅˆŅ€4 ŅˆŅˆŅ4 ŅˆŅˆŅ‚4 ŅˆŅˆŅ„4 ŅˆŅˆŅ…4 ŅˆŅˆŅ†4 ŅˆŅˆŅ‡4 4ŅˆŅˆŅˆ4 ŅˆŅˆŅ‰4 2Ņˆ3Ņ‰ 8ŅˆŅ‰. 4ŅˆŅ‰Ðķ4 4ŅˆŅ‰Ð·4 4ŅˆŅ‰Ņˆ4 4ŅˆŅ‰Ņ‰ 2Ņ‰3Ðą4 8Ņ‰Ðą. 4Ņ‰ÐąÐą 4Ņ‰ÐąÐš 4Ņ‰ÐąÐŋ 4Ņ‰ÐąŅ‚ 4Ņ‰ÐąŅ† 4Ņ‰ÐąŅ‡ 4Ņ‰ÐąŅ‰4 2Ņ‰3Ðē4 8Ņ‰Ðē. 4Ņ‰ÐēÐē 4Ņ‰ÐēŅ„ 4Ņ‰ÐēŅ‰4 2Ņ‰3Ðģ4 8Ņ‰Ðģ. 4Ņ‰ÐģÐģ 4Ņ‰ÐģК 4Ņ‰ÐģÐŋ 4Ņ‰ÐģŅ‚ 4Ņ‰ÐģŅ† 4Ņ‰ÐģŅ‡ 4Ņ‰ÐģŅ‰4 2Ņ‰3Ðī4 8Ņ‰Ðī. 4Ņ‰ÐīÐą 4Ņ‰ÐīÐģ 4Ņ‰ÐīÐī 4Ņ‰ÐīК 4Ņ‰ÐīÐŋ 4Ņ‰ÐīŅ‚ 4Ņ‰ÐīŅ† 4Ņ‰ÐīŅ‡ 4Ņ‰ÐīŅ‰4 2Ņ‰3Ðķ4 8Ņ‰Ðķ. 4Ņ‰ÐķÐķ 4Ņ‰ÐķŅ 4Ņ‰ÐķŅ„ 4Ņ‰ÐķŅ… 4Ņ‰ÐķŅˆ 4Ņ‰ÐķŅ‰4 2Ņ‰3з4 8Ņ‰Ð·. 4Ņ‰Ð·Ð· 4Ņ‰Ð·Ņ 4Ņ‰Ð·Ņ„ 4Ņ‰Ð·Ņ… 4Ņ‰Ð·Ņˆ 4Ņ‰Ð·Ņ‰4 Ņ‰Ðđ4 2Ņ‰3К 8Ņ‰Ðš. 4Ņ‰ÐšÐą 4Ņ‰ÐšÐģ 4Ņ‰ÐšÐī 4Ņ‰ÐšÐš 4Ņ‰ÐšŅ‰4 2Ņ‰3Ðŧ4 8Ņ‰Ðŧ. 4Ņ‰ÐŧÐŧ 4Ņ‰ÐŧŅ‰4 2Ņ‰3О4 8Ņ‰Ðž. 4Ņ‰ÐžÐž 4Ņ‰ÐžŅ‰4 2Ņ‰3Ð―4 8Ņ‰Ð―. 4Ņ‰Ð―Ð― 4Ņ‰Ð―Ņ‰4 2Ņ‰3Ðŋ 8Ņ‰Ðŋ. 4Ņ‰ÐŋÐą 4Ņ‰ÐŋÐģ 4Ņ‰ÐŋÐī 4Ņ‰ÐŋÐŋ 4Ņ‰ÐŋŅ‰4 2Ņ‰3Ņ€4 8Ņ‰Ņ€. 4Ņ‰Ņ€Ņ€ 4Ņ‰Ņ€Ņ‰4 2Ņ‰3Ņ 8Ņ‰Ņ. 4Ņ‰ŅÐķ 4Ņ‰ŅÐ· 4Ņ‰ŅŅ 4Ņ‰ŅŅ‰4 2Ņ‰3Ņ‚ 8Ņ‰Ņ‚. 4Ņ‰Ņ‚Ðą 4Ņ‰Ņ‚Ðģ 4Ņ‰Ņ‚Ðī 4Ņ‰Ņ‚К 4Ņ‰Ņ‚Ðŋ 4Ņ‰Ņ‚Ņ‚ 4Ņ‰Ņ‚Ņ† 4Ņ‰Ņ‚Ņ‡ 4Ņ‰Ņ‚Ņ‰4 2Ņ‰3Ņ„ 8Ņ‰Ņ„. 4Ņ‰Ņ„Ðē 4Ņ‰Ņ„Ðķ 4Ņ‰Ņ„з 4Ņ‰Ņ„Ņ„ 4Ņ‰Ņ„Ņ‰4 2Ņ‰3Ņ… 8Ņ‰Ņ…. 4Ņ‰Ņ…Ðķ 4Ņ‰Ņ…з 4Ņ‰Ņ…Ņ… 4Ņ‰Ņ…Ņ‰4 2Ņ‰3Ņ† 8Ņ‰Ņ†. 4Ņ‰Ņ†Ðą 4Ņ‰Ņ†Ðģ 4Ņ‰Ņ†Ðī 4Ņ‰Ņ†Ðš 4Ņ‰Ņ†Ðŋ 4Ņ‰Ņ†Ņ‚ 4Ņ‰Ņ†Ņ† 4Ņ‰Ņ†Ņ‡ 4Ņ‰Ņ†Ņ‰4 2Ņ‰3Ņ‡ 8Ņ‰Ņ‡. 4Ņ‰Ņ‡Ðą 4Ņ‰Ņ‡Ðģ 4Ņ‰Ņ‡Ðī 4Ņ‰Ņ‡Ðš 4Ņ‰Ņ‡Ðŋ 4Ņ‰Ņ‡Ņ‚ 4Ņ‰Ņ‡Ņ† 4Ņ‰Ņ‡Ņ‡ 4Ņ‰Ņ‡Ņ‰4 2Ņ‰3Ņˆ 8Ņ‰Ņˆ. 4Ņ‰ŅˆÐķ 4Ņ‰ŅˆÐ· 4Ņ‰ŅˆŅˆ 4Ņ‰ŅˆŅ‰4 4Ņ‰3Ņ‰4 8Ņ‰Ņ‰. Ņ‰Ņ‰Ðą4 Ņ‰Ņ‰Ðē4 Ņ‰Ņ‰Ðģ4 Ņ‰Ņ‰Ðī4 Ņ‰Ņ‰Ðķ4 Ņ‰Ņ‰Ð·4 Ņ‰Ņ‰Ðš4 Ņ‰Ņ‰Ðŧ4 Ņ‰Ņ‰Ðž4 Ņ‰Ņ‰Ð―4 Ņ‰Ņ‰Ðŋ4 Ņ‰Ņ‰Ņ€4 Ņ‰Ņ‰Ņ4 Ņ‰Ņ‰Ņ‚4 Ņ‰Ņ‰Ņ„4 Ņ‰Ņ‰Ņ…4 Ņ‰Ņ‰Ņ†4 Ņ‰Ņ‰Ņ‡4 Ņ‰Ņ‰Ņˆ4 4Ņ‰Ņ‰Ņ‰4 ŅŠ1 ŅŽ1 Ņ1",
+ ["characters"]="Ð°ÐąÐēÐģÐīÐĩÐķзÐļÐđКÐŧÐžÐ―ÐūÐŋŅ€ŅŅ‚ŅƒŅ„Ņ…Ņ†Ņ‡ŅˆŅ‰ŅŠŅŒŅŽŅ",
+ ["data"]="1а1 1Ðą1 1Ðē1 1Ðģ1 1Ðī1 1Ðĩ1 1Ðķ1 1з1 1Ðļ1 1Ðđ1 1К1 1Ðŧ1 1О1 1Ð―1 1Ðū1 1Ðŋ1 1Ņ€1 1Ņ1 1Ņ‚1 1Ņƒ1 1Ņ„1 1Ņ…1 1Ņ†1 1Ņ‡1 1Ņˆ1 1Ņ‰1 1ŅŠ1 0ŅŒ0 1ŅŽ1 1Ņ1 Ðą4а Ðą4Ðĩ Ðą4Ðļ Ðą4Ðū Ðą4Ņƒ Ðą4ŅŠ Ðą4ŅŽ Ðą4Ņ Ðē4а Ðē4Ðĩ Ðē4Ðļ Ðē4Ðū Ðē4Ņƒ Ðē4ŅŠ Ðē4ŅŽ Ðē4Ņ Ðģ4а Ðģ4Ðĩ Ðģ4Ðļ Ðģ4Ðū Ðģ4Ņƒ Ðģ4ŅŠ Ðģ4ŅŽ Ðģ4Ņ Ðī4а Ðī4Ðĩ Ðī4Ðļ Ðī4Ðū Ðī4Ņƒ Ðī4ŅŠ Ðī4ŅŽ Ðī4Ņ Ðķ4а Ðķ4Ðĩ Ðķ4Ðļ Ðķ4Ðū Ðķ4Ņƒ Ðķ4ŅŠ Ðķ4ŅŽ Ðķ4Ņ з4а з4Ðĩ з4Ðļ з4Ðū з4Ņƒ з4ŅŠ з4ŅŽ з4Ņ Ðđ4а Ðđ4Ðĩ Ðđ4Ðļ Ðđ4Ðū Ðđ4Ņƒ Ðđ4ŅŠ Ðđ4ŅŽ Ðđ4Ņ К4а К4Ðĩ К4Ðļ К4Ðū К4Ņƒ К4ŅŠ К4ŅŽ К4Ņ Ðŧ4а Ðŧ4Ðĩ Ðŧ4Ðļ Ðŧ4Ðū Ðŧ4Ņƒ Ðŧ4ŅŠ Ðŧ4ŅŽ Ðŧ4Ņ О4а О4Ðĩ О4Ðļ О4Ðū О4Ņƒ О4ŅŠ О4ŅŽ О4Ņ Ð―4а Ð―4Ðĩ Ð―4Ðļ Ð―4Ðū Ð―4Ņƒ Ð―4ŅŠ Ð―4ŅŽ Ð―4Ņ Ðŋ4а Ðŋ4Ðĩ Ðŋ4Ðļ Ðŋ4Ðū Ðŋ4Ņƒ Ðŋ4ŅŠ Ðŋ4ŅŽ Ðŋ4Ņ Ņ€4а Ņ€4Ðĩ Ņ€4Ðļ Ņ€4Ðū Ņ€4Ņƒ Ņ€4ŅŠ Ņ€4ŅŽ Ņ€4Ņ Ņ4а Ņ4Ðĩ Ņ4Ðļ Ņ4Ðū Ņ4Ņƒ Ņ4ŅŠ Ņ4ŅŽ Ņ4Ņ Ņ‚4а Ņ‚4Ðĩ Ņ‚4Ðļ Ņ‚4Ðū Ņ‚4Ņƒ Ņ‚4ŅŠ Ņ‚4ŅŽ Ņ‚4Ņ Ņ„4а Ņ„4Ðĩ Ņ„4Ðļ Ņ„4Ðū Ņ„4Ņƒ Ņ„4ŅŠ Ņ„4ŅŽ Ņ„4Ņ Ņ…4а Ņ…4Ðĩ Ņ…4Ðļ Ņ…4Ðū Ņ…4Ņƒ Ņ…4ŅŠ Ņ…4ŅŽ Ņ…4Ņ Ņ†4а Ņ†4Ðĩ Ņ†4Ðļ Ņ†4Ðū Ņ†4Ņƒ Ņ†4ŅŠ Ņ†4ŅŽ Ņ†4Ņ Ņ‡4а Ņ‡4Ðĩ Ņ‡4Ðļ Ņ‡4Ðū Ņ‡4Ņƒ Ņ‡4ŅŠ Ņ‡4ŅŽ Ņ‡4Ņ Ņˆ4а Ņˆ4Ðĩ Ņˆ4Ðļ Ņˆ4Ðū Ņˆ4Ņƒ Ņˆ4ŅŠ Ņˆ4ŅŽ Ņˆ4Ņ Ņ‰4а Ņ‰4Ðĩ Ņ‰4Ðļ Ņ‰4Ðū Ņ‰4Ņƒ Ņ‰4ŅŠ Ņ‰4ŅŽ Ņ‰4Ņ ŅŒ4а ŅŒ4Ðĩ ŅŒ4Ðļ ŅŒ4Ðū ŅŒ4Ņƒ ŅŒ4ŅŠ ŅŒ4ŅŽ ŅŒ4Ņ 4Ðą3Ðą4 2Ðą3Ðē2 2Ðą3Ðģ2 2Ðą3Ðī2 2Ðą3Ðķ2 2Ðą3з2 2Ðą3Ðđ2 2Ðą3К2 2Ðą3Ðŧ2 2Ðą3О2 2Ðą3Ð―2 2Ðą3Ðŋ2 2Ðą3Ņ€2 2Ðą3Ņ2 2Ðą3Ņ‚2 2Ðą3Ņ„2 2Ðą3Ņ…2 2Ðą3Ņ†2 2Ðą3Ņ‡2 2Ðą3Ņˆ2 2Ðą3Ņ‰2 2Ðē3Ðą2 4Ðē3Ðē4 2Ðē3Ðģ2 2Ðē3Ðī2 2Ðē3Ðķ2 2Ðē3з2 2Ðē3Ðđ2 2Ðē3К2 2Ðē3Ðŧ2 2Ðē3О2 2Ðē3Ð―2 2Ðē3Ðŋ2 2Ðē3Ņ€2 2Ðē3Ņ2 2Ðē3Ņ‚2 2Ðē3Ņ„2 2Ðē3Ņ…2 2Ðē3Ņ†2 2Ðē3Ņ‡2 2Ðē3Ņˆ2 2Ðē3Ņ‰2 2Ðģ3Ðą2 2Ðģ3Ðē2 4Ðģ3Ðģ4 2Ðģ3Ðī2 2Ðģ3Ðķ2 2Ðģ3з2 2Ðģ3Ðđ2 2Ðģ3К2 2Ðģ3Ðŧ2 2Ðģ3О2 2Ðģ3Ð―2 2Ðģ3Ðŋ2 2Ðģ3Ņ€2 2Ðģ3Ņ2 2Ðģ3Ņ‚2 2Ðģ3Ņ„2 2Ðģ3Ņ…2 2Ðģ3Ņ†2 2Ðģ3Ņ‡2 2Ðģ3Ņˆ2 2Ðģ3Ņ‰2 2Ðī3Ðą2 2Ðī3Ðē2 2Ðī3Ðģ2 4Ðī3Ðī4 3Ðī4Ðķ 2Ðī3з2 2Ðī3Ðđ2 2Ðī3К2 2Ðī3Ðŧ2 2Ðī3О2 2Ðī3Ð―2 2Ðī3Ðŋ2 2Ðī3Ņ€2 2Ðī3Ņ2 2Ðī3Ņ‚2 2Ðī3Ņ„2 2Ðī3Ņ…2 2Ðī3Ņ†2 2Ðī3Ņ‡2 2Ðī3Ņˆ2 2Ðī3Ņ‰2 2Ðķ3Ðą2 2Ðķ3Ðē2 2Ðķ3Ðģ2 2Ðķ3Ðī2 4Ðķ3Ðķ4 2Ðķ3з2 2Ðķ3Ðđ2 2Ðķ3К2 2Ðķ3Ðŧ2 2Ðķ3О2 2Ðķ3Ð―2 2Ðķ3Ðŋ2 2Ðķ3Ņ€2 2Ðķ3Ņ2 2Ðķ3Ņ‚2 2Ðķ3Ņ„2 2Ðķ3Ņ…2 2Ðķ3Ņ†2 2Ðķ3Ņ‡2 2Ðķ3Ņˆ2 2Ðķ3Ņ‰2 2з3Ðą2 2з3Ðē2 2з3Ðģ2 2з3Ðī2 2з3Ðķ2 4з3з4 2з3Ðđ2 2з3К2 2з3Ðŧ2 2з3О2 2з3Ð―2 2з3Ðŋ2 2з3Ņ€2 2з3Ņ2 2з3Ņ‚2 2з3Ņ„2 2з3Ņ…2 2з3Ņ†2 2з3Ņ‡2 2з3Ņˆ2 2з3Ņ‰2 2Ðđ3Ðą2 2Ðđ3Ðē2 2Ðđ3Ðģ2 2Ðđ3Ðī2 2Ðđ3Ðķ2 2Ðđ3з2 4Ðđ3Ðđ4 2Ðđ3К2 2Ðđ3Ðŧ2 2Ðđ3О2 2Ðđ3Ð―2 2Ðđ3Ðŋ2 2Ðđ3Ņ€2 2Ðđ3Ņ2 2Ðđ3Ņ‚2 2Ðđ3Ņ„2 2Ðđ3Ņ…2 2Ðđ3Ņ†2 2Ðđ3Ņ‡2 2Ðđ3Ņˆ2 2Ðđ3Ņ‰2 2К3Ðą2 2К3Ðē2 2К3Ðģ2 2К3Ðī2 2К3Ðķ2 2К3з2 2К3Ðđ2 4К3К4 2К3Ðŧ2 2К3О2 2К3Ð―2 2К3Ðŋ2 2К3Ņ€2 2К3Ņ2 2К3Ņ‚2 2К3Ņ„2 2К3Ņ…2 2К3Ņ†2 2К3Ņ‡2 2К3Ņˆ2 2К3Ņ‰2 2Ðŧ3Ðą2 2Ðŧ3Ðē2 2Ðŧ3Ðģ2 2Ðŧ3Ðī2 2Ðŧ3Ðķ2 2Ðŧ3з2 2Ðŧ3Ðđ2 2Ðŧ3К2 4Ðŧ3Ðŧ4 2Ðŧ3О2 2Ðŧ3Ð―2 2Ðŧ3Ðŋ2 2Ðŧ3Ņ€2 2Ðŧ3Ņ2 2Ðŧ3Ņ‚2 2Ðŧ3Ņ„2 2Ðŧ3Ņ…2 2Ðŧ3Ņ†2 2Ðŧ3Ņ‡2 2Ðŧ3Ņˆ2 2Ðŧ3Ņ‰2 2О3Ðą2 2О3Ðē2 2О3Ðģ2 2О3Ðī2 2О3Ðķ2 2О3з2 2О3Ðđ2 2О3К2 2О3Ðŧ2 4О3О4 2О3Ð―2 2О3Ðŋ2 2О3Ņ€2 2О3Ņ2 2О3Ņ‚2 2О3Ņ„2 2О3Ņ…2 2О3Ņ†2 2О3Ņ‡2 2О3Ņˆ2 2О3Ņ‰2 2Ð―3Ðą2 2Ð―3Ðē2 2Ð―3Ðģ2 2Ð―3Ðī2 2Ð―3Ðķ2 2Ð―3з2 2Ð―3Ðđ2 2Ð―3К2 2Ð―3Ðŧ2 2Ð―3О2 4Ð―3Ð―4 2Ð―3Ðŋ2 2Ð―3Ņ€2 2Ð―3Ņ2 2Ð―3Ņ‚2 2Ð―3Ņ„2 2Ð―3Ņ…2 2Ð―3Ņ†2 2Ð―3Ņ‡2 2Ð―3Ņˆ2 2Ð―3Ņ‰2 2Ðŋ3Ðą2 2Ðŋ3Ðē2 2Ðŋ3Ðģ2 2Ðŋ3Ðī2 2Ðŋ3Ðķ2 2Ðŋ3з2 2Ðŋ3Ðđ2 2Ðŋ3К2 2Ðŋ3Ðŧ2 2Ðŋ3О2 2Ðŋ3Ð―2 4Ðŋ3Ðŋ4 2Ðŋ3Ņ€2 2Ðŋ3Ņ2 2Ðŋ3Ņ‚2 2Ðŋ3Ņ„2 2Ðŋ3Ņ…2 2Ðŋ3Ņ†2 2Ðŋ3Ņ‡2 2Ðŋ3Ņˆ2 2Ðŋ3Ņ‰2 2Ņ€3Ðą2 2Ņ€3Ðē2 2Ņ€3Ðģ2 2Ņ€3Ðī2 2Ņ€3Ðķ2 2Ņ€3з2 2Ņ€3Ðđ2 2Ņ€3К2 2Ņ€3Ðŧ2 2Ņ€3О2 2Ņ€3Ð―2 2Ņ€3Ðŋ2 4Ņ€3Ņ€4 2Ņ€3Ņ2 2Ņ€3Ņ‚2 2Ņ€3Ņ„2 2Ņ€3Ņ…2 2Ņ€3Ņ†2 2Ņ€3Ņ‡2 2Ņ€3Ņˆ2 2Ņ€3Ņ‰2 2Ņ3Ðą2 2Ņ3Ðē2 2Ņ3Ðģ2 2Ņ3Ðī2 2Ņ3Ðķ2 2Ņ3з2 2Ņ3Ðđ2 2Ņ3К2 2Ņ3Ðŧ2 2Ņ3О2 2Ņ3Ð―2 2Ņ3Ðŋ2 2Ņ3Ņ€2 4Ņ3Ņ4 2Ņ3Ņ‚2 2Ņ3Ņ„2 2Ņ3Ņ…2 2Ņ3Ņ†2 2Ņ3Ņ‡2 2Ņ3Ņˆ2 2Ņ3Ņ‰2 2Ņ‚3Ðą2 2Ņ‚3Ðē2 2Ņ‚3Ðģ2 2Ņ‚3Ðī2 2Ņ‚3Ðķ2 2Ņ‚3з2 2Ņ‚3Ðđ2 2Ņ‚3К2 2Ņ‚3Ðŧ2 2Ņ‚3О2 2Ņ‚3Ð―2 2Ņ‚3Ðŋ2 2Ņ‚3Ņ€2 2Ņ‚3Ņ2 4Ņ‚3Ņ‚4 2Ņ‚3Ņ„2 2Ņ‚3Ņ…2 2Ņ‚3Ņ†2 2Ņ‚3Ņ‡2 2Ņ‚3Ņˆ2 2Ņ‚3Ņ‰2 2Ņ„3Ðą2 2Ņ„3Ðē2 2Ņ„3Ðģ2 2Ņ„3Ðī2 2Ņ„3Ðķ2 2Ņ„3з2 2Ņ„3Ðđ2 2Ņ„3К2 2Ņ„3Ðŧ2 2Ņ„3О2 2Ņ„3Ð―2 2Ņ„3Ðŋ2 2Ņ„3Ņ€2 2Ņ„3Ņ2 2Ņ„3Ņ‚2 4Ņ„3Ņ„4 2Ņ„3Ņ…2 2Ņ„3Ņ†2 2Ņ„3Ņ‡2 2Ņ„3Ņˆ2 2Ņ„3Ņ‰2 2Ņ…3Ðą2 2Ņ…3Ðē2 2Ņ…3Ðģ2 2Ņ…3Ðī2 2Ņ…3Ðķ2 2Ņ…3з2 2Ņ…3Ðđ2 2Ņ…3К2 2Ņ…3Ðŧ2 2Ņ…3О2 2Ņ…3Ð―2 2Ņ…3Ðŋ2 2Ņ…3Ņ€2 2Ņ…3Ņ2 2Ņ…3Ņ‚2 2Ņ…3Ņ„2 4Ņ…3Ņ…4 2Ņ…3Ņ†2 2Ņ…3Ņ‡2 2Ņ…3Ņˆ2 2Ņ…3Ņ‰2 2Ņ†3Ðą2 2Ņ†3Ðē2 2Ņ†3Ðģ2 2Ņ†3Ðī2 2Ņ†3Ðķ2 2Ņ†3з2 2Ņ†3Ðđ2 2Ņ†3К2 2Ņ†3Ðŧ2 2Ņ†3О2 2Ņ†3Ð―2 2Ņ†3Ðŋ2 2Ņ†3Ņ€2 2Ņ†3Ņ2 2Ņ†3Ņ‚2 2Ņ†3Ņ„2 2Ņ†3Ņ…2 4Ņ†3Ņ†4 2Ņ†3Ņ‡2 2Ņ†3Ņˆ2 2Ņ†3Ņ‰2 2Ņ‡3Ðą2 2Ņ‡3Ðē2 2Ņ‡3Ðģ2 2Ņ‡3Ðī2 2Ņ‡3Ðķ2 2Ņ‡3з2 2Ņ‡3Ðđ2 2Ņ‡3К2 2Ņ‡3Ðŧ2 2Ņ‡3О2 2Ņ‡3Ð―2 2Ņ‡3Ðŋ2 2Ņ‡3Ņ€2 2Ņ‡3Ņ2 2Ņ‡3Ņ‚2 2Ņ‡3Ņ„2 2Ņ‡3Ņ…2 2Ņ‡3Ņ†2 4Ņ‡3Ņ‡4 2Ņ‡3Ņˆ2 2Ņ‡3Ņ‰2 2Ņˆ3Ðą2 2Ņˆ3Ðē2 2Ņˆ3Ðģ2 2Ņˆ3Ðī2 2Ņˆ3Ðķ2 2Ņˆ3з2 2Ņˆ3Ðđ2 2Ņˆ3К2 2Ņˆ3Ðŧ2 2Ņˆ3О2 2Ņˆ3Ð―2 2Ņˆ3Ðŋ2 2Ņˆ3Ņ€2 2Ņˆ3Ņ2 2Ņˆ3Ņ‚2 2Ņˆ3Ņ„2 2Ņˆ3Ņ…2 2Ņˆ3Ņ†2 2Ņˆ3Ņ‡2 4Ņˆ3Ņˆ4 2Ņˆ3Ņ‰2 2Ņ‰3Ðą2 2Ņ‰3Ðē2 2Ņ‰3Ðģ2 2Ņ‰3Ðī2 2Ņ‰3Ðķ2 2Ņ‰3з2 2Ņ‰3Ðđ2 2Ņ‰3К2 2Ņ‰3Ðŧ2 2Ņ‰3О2 2Ņ‰3Ð―2 2Ņ‰3Ðŋ2 2Ņ‰3Ņ€2 2Ņ‰3Ņ2 2Ņ‰3Ņ‚2 2Ņ‰3Ņ„2 2Ņ‰3Ņ…2 2Ņ‰3Ņ†2 2Ņ‰3Ņ‡2 2Ņ‰3Ņˆ2 4Ņ‰3Ņ‰4 ааа4 ааÐĩ4 ааÐļ4 ааÐū4 ааŅƒ4 ааŅŠ4 ааŅŽ4 ааŅ4 аÐĩа4 аÐĩÐĩ4 аÐĩÐļ4 аÐĩÐū4 аÐĩŅƒ4 аÐĩŅŠ4 аÐĩŅŽ4 аÐĩŅ4 аÐļа4 аÐļÐĩ4 аÐļÐļ4 аÐļÐū4 аÐļŅƒ4 аÐļŅŠ4 аÐļŅŽ4 аÐļŅ4 аÐūа4 аÐūÐĩ4 аÐūÐļ4 аÐūÐū4 аÐūŅƒ4 аÐūŅŠ4 аÐūŅŽ4 аÐūŅ4 аŅƒÐ°4 аŅƒÐĩ4 аŅƒÐļ4 аŅƒÐū4 аŅƒŅƒ4 аŅƒŅŠ4 аŅƒŅŽ4 аŅƒŅ4 аŅŠÐ°4 аŅŠÐĩ4 аŅŠÐļ4 аŅŠÐū4 аŅŠŅƒ4 аŅŠŅŠ4 аŅŠŅŽ4 аŅŠŅ4 аŅŽÐ°4 аŅŽÐĩ4 аŅŽÐļ4 аŅŽÐū4 аŅŽŅƒ4 аŅŽŅŠ4 аŅŽŅŽ4 аŅŽŅ4 аŅÐ°4 аŅÐĩ4 аŅÐļ4 аŅÐū4 аŅŅƒ4 аŅŅŠ4 аŅŅŽ4 аŅŅ4 Ðĩаа4 ÐĩаÐĩ4 ÐĩаÐļ4 ÐĩаÐū4 ÐĩаŅƒ4 ÐĩаŅŠ4 ÐĩаŅŽ4 ÐĩаŅ4 ÐĩÐĩа4 ÐĩÐĩÐĩ4 ÐĩÐĩÐļ4 ÐĩÐĩÐū4 ÐĩÐĩŅƒ4 ÐĩÐĩŅŠ4 ÐĩÐĩŅŽ4 ÐĩÐĩŅ4 ÐĩÐļа4 ÐĩÐļÐĩ4 ÐĩÐļÐļ4 ÐĩÐļÐū4 ÐĩÐļŅƒ4 ÐĩÐļŅŠ4 ÐĩÐļŅŽ4 ÐĩÐļŅ4 ÐĩÐūа4 ÐĩÐūÐĩ4 ÐĩÐūÐļ4 ÐĩÐūÐū4 ÐĩÐūŅƒ4 ÐĩÐūŅŠ4 ÐĩÐūŅŽ4 ÐĩÐūŅ4 ÐĩŅƒÐ°4 ÐĩŅƒÐĩ4 ÐĩŅƒÐļ4 ÐĩŅƒÐū4 ÐĩŅƒŅƒ4 ÐĩŅƒŅŠ4 ÐĩŅƒŅŽ4 ÐĩŅƒŅ4 ÐĩŅŠÐ°4 ÐĩŅŠÐĩ4 ÐĩŅŠÐļ4 ÐĩŅŠÐū4 ÐĩŅŠŅƒ4 ÐĩŅŠŅŠ4 ÐĩŅŠŅŽ4 ÐĩŅŠŅ4 ÐĩŅŽÐ°4 ÐĩŅŽÐĩ4 ÐĩŅŽÐļ4 ÐĩŅŽÐū4 ÐĩŅŽŅƒ4 ÐĩŅŽŅŠ4 ÐĩŅŽŅŽ4 ÐĩŅŽŅ4 ÐĩŅÐ°4 ÐĩŅÐĩ4 ÐĩŅÐļ4 ÐĩŅÐū4 ÐĩŅŅƒ4 ÐĩŅŅŠ4 ÐĩŅŅŽ4 ÐĩŅŅ4 Ðļаа4 ÐļаÐĩ4 ÐļаÐļ4 ÐļаÐū4 ÐļаŅƒ4 ÐļаŅŠ4 ÐļаŅŽ4 ÐļаŅ4 ÐļÐĩа4 ÐļÐĩÐĩ4 ÐļÐĩÐļ4 ÐļÐĩÐū4 ÐļÐĩŅƒ4 ÐļÐĩŅŠ4 ÐļÐĩŅŽ4 ÐļÐĩŅ4 ÐļÐļа4 ÐļÐļÐĩ4 ÐļÐļÐļ4 ÐļÐļÐū4 ÐļÐļŅƒ4 ÐļÐļŅŠ4 ÐļÐļŅŽ4 ÐļÐļŅ4 ÐļÐūа4 ÐļÐūÐĩ4 ÐļÐūÐļ4 ÐļÐūÐū4 ÐļÐūŅƒ4 ÐļÐūŅŠ4 ÐļÐūŅŽ4 ÐļÐūŅ4 ÐļŅƒÐ°4 ÐļŅƒÐĩ4 ÐļŅƒÐļ4 ÐļŅƒÐū4 ÐļŅƒŅƒ4 ÐļŅƒŅŠ4 ÐļŅƒŅŽ4 ÐļŅƒŅ4 ÐļŅŠÐ°4 ÐļŅŠÐĩ4 ÐļŅŠÐļ4 ÐļŅŠÐū4 ÐļŅŠŅƒ4 ÐļŅŠŅŠ4 ÐļŅŠŅŽ4 ÐļŅŠŅ4 ÐļŅŽÐ°4 ÐļŅŽÐĩ4 ÐļŅŽÐļ4 ÐļŅŽÐū4 ÐļŅŽŅƒ4 ÐļŅŽŅŠ4 ÐļŅŽŅŽ4 ÐļŅŽŅ4 ÐļŅÐ°4 ÐļŅÐĩ4 ÐļŅÐļ4 ÐļŅÐū4 ÐļŅŅƒ4 ÐļŅŅŠ4 ÐļŅŅŽ4 ÐļŅŅ4 Ðūаа4 ÐūаÐĩ4 ÐūаÐļ4 ÐūаÐū4 ÐūаŅƒ4 ÐūаŅŠ4 ÐūаŅŽ4 ÐūаŅ4 ÐūÐĩа4 ÐūÐĩÐĩ4 ÐūÐĩÐļ4 ÐūÐĩÐū4 ÐūÐĩŅƒ4 ÐūÐĩŅŠ4 ÐūÐĩŅŽ4 ÐūÐĩŅ4 ÐūÐļа4 ÐūÐļÐĩ4 ÐūÐļÐļ4 ÐūÐļÐū4 ÐūÐļŅƒ4 ÐūÐļŅŠ4 ÐūÐļŅŽ4 ÐūÐļŅ4 ÐūÐūа4 ÐūÐūÐĩ4 ÐūÐūÐļ4 ÐūÐūÐū4 ÐūÐūŅƒ4 ÐūÐūŅŠ4 ÐūÐūŅŽ4 ÐūÐūŅ4 ÐūŅƒÐ°4 ÐūŅƒÐĩ4 ÐūŅƒÐļ4 ÐūŅƒÐū4 ÐūŅƒŅƒ4 ÐūŅƒŅŠ4 ÐūŅƒŅŽ4 ÐūŅƒŅ4 ÐūŅŠÐ°4 ÐūŅŠÐĩ4 ÐūŅŠÐļ4 ÐūŅŠÐū4 ÐūŅŠŅƒ4 ÐūŅŠŅŠ4 ÐūŅŠŅŽ4 ÐūŅŠŅ4 ÐūŅŽÐ°4 ÐūŅŽÐĩ4 ÐūŅŽÐļ4 ÐūŅŽÐū4 ÐūŅŽŅƒ4 ÐūŅŽŅŠ4 ÐūŅŽŅŽ4 ÐūŅŽŅ4 ÐūŅÐ°4 ÐūŅÐĩ4 ÐūŅÐļ4 ÐūŅÐū4 ÐūŅŅƒ4 ÐūŅŅŠ4 ÐūŅŅŽ4 ÐūŅŅ4 ŅƒÐ°Ð°4 ŅƒÐ°Ðĩ4 ŅƒÐ°Ðļ4 ŅƒÐ°Ðū4 ŅƒÐ°Ņƒ4 ŅƒÐ°ŅŠ4 ŅƒÐ°ŅŽ4 ŅƒÐ°Ņ4 ŅƒÐĩа4 ŅƒÐĩÐĩ4 ŅƒÐĩÐļ4 ŅƒÐĩÐū4 ŅƒÐĩŅƒ4 ŅƒÐĩŅŠ4 ŅƒÐĩŅŽ4 ŅƒÐĩŅ4 ŅƒÐļа4 ŅƒÐļÐĩ4 ŅƒÐļÐļ4 ŅƒÐļÐū4 ŅƒÐļŅƒ4 ŅƒÐļŅŠ4 ŅƒÐļŅŽ4 ŅƒÐļŅ4 ŅƒÐūа4 ŅƒÐūÐĩ4 ŅƒÐūÐļ4 ŅƒÐūÐū4 ŅƒÐūŅƒ4 ŅƒÐūŅŠ4 ŅƒÐūŅŽ4 ŅƒÐūŅ4 ŅƒŅƒÐ°4 ŅƒŅƒÐĩ4 ŅƒŅƒÐļ4 ŅƒŅƒÐū4 ŅƒŅƒŅƒ4 ŅƒŅƒŅŠ4 ŅƒŅƒŅŽ4 ŅƒŅƒŅ4 ŅƒŅŠÐ°4 ŅƒŅŠÐĩ4 ŅƒŅŠÐļ4 ŅƒŅŠÐū4 ŅƒŅŠŅƒ4 ŅƒŅŠŅŠ4 ŅƒŅŠŅŽ4 ŅƒŅŠŅ4 ŅƒŅŽÐ°4 ŅƒŅŽÐĩ4 ŅƒŅŽÐļ4 ŅƒŅŽÐū4 ŅƒŅŽŅƒ4 ŅƒŅŽŅŠ4 ŅƒŅŽŅŽ4 ŅƒŅŽŅ4 ŅƒŅÐ°4 ŅƒŅÐĩ4 ŅƒŅÐļ4 ŅƒŅÐū4 ŅƒŅŅƒ4 ŅƒŅŅŠ4 ŅƒŅŅŽ4 ŅƒŅŅ4 ŅŠÐ°Ð°4 ŅŠÐ°Ðĩ4 ŅŠÐ°Ðļ4 ŅŠÐ°Ðū4 ŅŠÐ°Ņƒ4 ŅŠÐ°ŅŠ4 ŅŠÐ°ŅŽ4 ŅŠÐ°Ņ4 ŅŠÐĩа4 ŅŠÐĩÐĩ4 ŅŠÐĩÐļ4 ŅŠÐĩÐū4 ŅŠÐĩŅƒ4 ŅŠÐĩŅŠ4 ŅŠÐĩŅŽ4 ŅŠÐĩŅ4 ŅŠÐļа4 ŅŠÐļÐĩ4 ŅŠÐļÐļ4 ŅŠÐļÐū4 ŅŠÐļŅƒ4 ŅŠÐļŅŠ4 ŅŠÐļŅŽ4 ŅŠÐļŅ4 ŅŠÐūа4 ŅŠÐūÐĩ4 ŅŠÐūÐļ4 ŅŠÐūÐū4 ŅŠÐūŅƒ4 ŅŠÐūŅŠ4 ŅŠÐūŅŽ4 ŅŠÐūŅ4 ŅŠŅƒÐ°4 ŅŠŅƒÐĩ4 ŅŠŅƒÐļ4 ŅŠŅƒÐū4 ŅŠŅƒŅƒ4 ŅŠŅƒŅŠ4 ŅŠŅƒŅŽ4 ŅŠŅƒŅ4 ŅŠŅŠÐ°4 ŅŠŅŠÐĩ4 ŅŠŅŠÐļ4 ŅŠŅŠÐū4 ŅŠŅŠŅƒ4 ŅŠŅŠŅŠ4 ŅŠŅŠŅŽ4 ŅŠŅŠŅ4 ŅŠŅŽÐ°4 ŅŠŅŽÐĩ4 ŅŠŅŽÐļ4 ŅŠŅŽÐū4 ŅŠŅŽŅƒ4 ŅŠŅŽŅŠ4 ŅŠŅŽŅŽ4 ŅŠŅŽŅ4 ŅŠŅÐ°4 ŅŠŅÐĩ4 ŅŠŅÐļ4 ŅŠŅÐū4 ŅŠŅŅƒ4 ŅŠŅŅŠ4 ŅŠŅŅŽ4 ŅŠŅŅ4 ŅŽÐ°Ð°4 ŅŽÐ°Ðĩ4 ŅŽÐ°Ðļ4 ŅŽÐ°Ðū4 ŅŽÐ°Ņƒ4 ŅŽÐ°ŅŠ4 ŅŽÐ°ŅŽ4 ŅŽÐ°Ņ4 ŅŽÐĩа4 ŅŽÐĩÐĩ4 ŅŽÐĩÐļ4 ŅŽÐĩÐū4 ŅŽÐĩŅƒ4 ŅŽÐĩŅŠ4 ŅŽÐĩŅŽ4 ŅŽÐĩŅ4 ŅŽÐļа4 ŅŽÐļÐĩ4 ŅŽÐļÐļ4 ŅŽÐļÐū4 ŅŽÐļŅƒ4 ŅŽÐļŅŠ4 ŅŽÐļŅŽ4 ŅŽÐļŅ4 ŅŽÐūа4 ŅŽÐūÐĩ4 ŅŽÐūÐļ4 ŅŽÐūÐū4 ŅŽÐūŅƒ4 ŅŽÐūŅŠ4 ŅŽÐūŅŽ4 ŅŽÐūŅ4 ŅŽŅƒÐ°4 ŅŽŅƒÐĩ4 ŅŽŅƒÐļ4 ŅŽŅƒÐū4 ŅŽŅƒŅƒ4 ŅŽŅƒŅŠ4 ŅŽŅƒŅŽ4 ŅŽŅƒŅ4 ŅŽŅŠÐ°4 ŅŽŅŠÐĩ4 ŅŽŅŠÐļ4 ŅŽŅŠÐū4 ŅŽŅŠŅƒ4 ŅŽŅŠŅŠ4 ŅŽŅŠŅŽ4 ŅŽŅŠŅ4 ŅŽŅŽÐ°4 ŅŽŅŽÐĩ4 ŅŽŅŽÐļ4 ŅŽŅŽÐū4 ŅŽŅŽŅƒ4 ŅŽŅŽŅŠ4 ŅŽŅŽŅŽ4 ŅŽŅŽŅ4 ŅŽŅÐ°4 ŅŽŅÐĩ4 ŅŽŅÐļ4 ŅŽŅÐū4 ŅŽŅŅƒ4 ŅŽŅŅŠ4 ŅŽŅŅŽ4 ŅŽŅŅ4 ŅÐ°Ð°4 ŅÐ°Ðĩ4 ŅÐ°Ðļ4 ŅÐ°Ðū4 ŅÐ°Ņƒ4 ŅÐ°ŅŠ4 ŅÐ°ŅŽ4 ŅÐ°Ņ4 ŅÐĩа4 ŅÐĩÐĩ4 ŅÐĩÐļ4 ŅÐĩÐū4 ŅÐĩŅƒ4 ŅÐĩŅŠ4 ŅÐĩŅŽ4 ŅÐĩŅ4 ŅÐļа4 ŅÐļÐĩ4 ŅÐļÐļ4 ŅÐļÐū4 ŅÐļŅƒ4 ŅÐļŅŠ4 ŅÐļŅŽ4 ŅÐļŅ4 ŅÐūа4 ŅÐūÐĩ4 ŅÐūÐļ4 ŅÐūÐū4 ŅÐūŅƒ4 ŅÐūŅŠ4 ŅÐūŅŽ4 ŅÐūŅ4 ŅŅƒÐ°4 ŅŅƒÐĩ4 ŅŅƒÐļ4 ŅŅƒÐū4 ŅŅƒŅƒ4 ŅŅƒŅŠ4 ŅŅƒŅŽ4 ŅŅƒŅ4 ŅŅŠÐ°4 ŅŅŠÐĩ4 ŅŅŠÐļ4 ŅŅŠÐū4 ŅŅŠŅƒ4 ŅŅŠŅŠ4 ŅŅŠŅŽ4 ŅŅŠŅ4 ŅŅŽÐ°4 ŅŅŽÐĩ4 ŅŅŽÐļ4 ŅŅŽÐū4 ŅŅŽŅƒ4 ŅŅŽŅŠ4 ŅŅŽŅŽ4 ŅŅŽŅ4 ŅŅÐ°4 ŅŅÐĩ4 ŅŅÐļ4 ŅŅÐū4 ŅŅŅƒ4 ŅŅŅŠ4 ŅŅŅŽ4 ŅŅŅ4 Ðđ4ÐąÐą Ðđ4ÐąÐē Ðđ4ÐąÐģ Ðđ4ÐąÐī Ðđ4ÐąÐķ Ðđ4ÐąÐ· Ðđ4ÐąÐđ Ðđ4ÐąÐš Ðđ4ÐąÐŧ Ðđ4ÐąÐž Ðđ4ÐąÐ― Ðđ4ÐąÐŋ Ðđ4ÐąŅ€ Ðđ4ÐąŅ Ðđ4ÐąŅ‚ Ðđ4ÐąŅ„ Ðđ4ÐąŅ… Ðđ4ÐąŅ† Ðđ4ÐąŅ‡ Ðđ4ÐąŅˆ Ðđ4ÐąŅ‰ Ðđ4ÐēÐą Ðđ4ÐēÐē Ðđ4ÐēÐģ Ðđ4ÐēÐī Ðđ4ÐēÐķ Ðđ4Ðēз Ðđ4ÐēÐđ Ðđ4ÐēК Ðđ4ÐēÐŧ Ðđ4ÐēО Ðđ4ÐēÐ― Ðđ4ÐēÐŋ Ðđ4ÐēŅ€ Ðđ4ÐēŅ Ðđ4ÐēŅ‚ Ðđ4ÐēŅ„ Ðđ4ÐēŅ… Ðđ4ÐēŅ† Ðđ4ÐēŅ‡ Ðđ4ÐēŅˆ Ðđ4ÐēŅ‰ Ðđ4ÐģÐą Ðđ4ÐģÐē Ðđ4ÐģÐģ Ðđ4ÐģÐī Ðđ4ÐģÐķ Ðđ4Ðģз Ðđ4ÐģÐđ Ðđ4ÐģК Ðđ4ÐģÐŧ Ðđ4ÐģО Ðđ4ÐģÐ― Ðđ4ÐģÐŋ Ðđ4ÐģŅ€ Ðđ4ÐģŅ Ðđ4ÐģŅ‚ Ðđ4ÐģŅ„ Ðđ4ÐģŅ… Ðđ4ÐģŅ† Ðđ4ÐģŅ‡ Ðđ4ÐģŅˆ Ðđ4ÐģŅ‰ Ðđ4ÐīÐą Ðđ4ÐīÐē Ðđ4ÐīÐģ Ðđ4ÐīÐī Ðđ4ÐīÐķ Ðđ4Ðīз Ðđ4ÐīÐđ Ðđ4ÐīК Ðđ4ÐīÐŧ Ðđ4ÐīО Ðđ4ÐīÐ― Ðđ4ÐīÐŋ Ðđ4ÐīŅ€ Ðđ4ÐīŅ Ðđ4ÐīŅ‚ Ðđ4ÐīŅ„ Ðđ4ÐīŅ… Ðđ4ÐīŅ† Ðđ4ÐīŅ‡ Ðđ4ÐīŅˆ Ðđ4ÐīŅ‰ Ðđ4ÐķÐą Ðđ4ÐķÐē Ðđ4ÐķÐģ Ðđ4ÐķÐī Ðđ4ÐķÐķ Ðđ4Ðķз Ðđ4ÐķÐđ Ðđ4ÐķК Ðđ4ÐķÐŧ Ðđ4ÐķО Ðđ4ÐķÐ― Ðđ4ÐķÐŋ Ðđ4ÐķŅ€ Ðđ4ÐķŅ Ðđ4ÐķŅ‚ Ðđ4ÐķŅ„ Ðđ4ÐķŅ… Ðđ4ÐķŅ† Ðđ4ÐķŅ‡ Ðđ4ÐķŅˆ Ðđ4ÐķŅ‰ Ðđ4Ð·Ðą Ðđ4зÐē Ðđ4зÐģ Ðđ4зÐī Ðđ4зÐķ Ðđ4зз Ðđ4зÐđ Ðđ4зК Ðđ4зÐŧ Ðđ4зО Ðđ4Ð·Ð― Ðđ4зÐŋ Ðđ4зŅ€ Ðđ4зŅ Ðđ4зŅ‚ Ðđ4зŅ„ Ðđ4зŅ… Ðđ4зŅ† Ðđ4зŅ‡ Ðđ4зŅˆ Ðđ4зŅ‰ Ðđ4ÐđÐą Ðđ4ÐđÐē Ðđ4ÐđÐģ Ðđ4ÐđÐī Ðđ4ÐđÐķ Ðđ4Ðđз Ðđ4ÐđÐđ Ðđ4ÐđК Ðđ4ÐđÐŧ Ðđ4ÐđО Ðđ4ÐđÐ― Ðđ4ÐđÐŋ Ðđ4ÐđŅ€ Ðđ4ÐđŅ Ðđ4ÐđŅ‚ Ðđ4ÐđŅ„ Ðđ4ÐđŅ… Ðđ4ÐđŅ† Ðđ4ÐđŅ‡ Ðđ4ÐđŅˆ Ðđ4ÐđŅ‰ Ðđ4ÐšÐą Ðđ4КÐē Ðđ4КÐģ Ðđ4КÐī Ðđ4КÐķ Ðđ4Кз Ðđ4КÐđ Ðđ4КК Ðđ4КÐŧ Ðđ4КО Ðđ4ÐšÐ― Ðđ4КÐŋ Ðđ4КŅ€ Ðđ4КŅ Ðđ4КŅ‚ Ðđ4КŅ„ Ðđ4КŅ… Ðđ4КŅ† Ðđ4КŅ‡ Ðđ4КŅˆ Ðđ4КŅ‰ Ðđ4ÐŧÐą Ðđ4ÐŧÐē Ðđ4ÐŧÐģ Ðđ4ÐŧÐī Ðđ4ÐŧÐķ Ðđ4Ðŧз Ðđ4ÐŧÐđ Ðđ4ÐŧК Ðđ4ÐŧÐŧ Ðđ4ÐŧО Ðđ4ÐŧÐ― Ðđ4ÐŧÐŋ Ðđ4ÐŧŅ€ Ðđ4ÐŧŅ Ðđ4ÐŧŅ‚ Ðđ4ÐŧŅ„ Ðđ4ÐŧŅ… Ðđ4ÐŧŅ† Ðđ4ÐŧŅ‡ Ðđ4ÐŧŅˆ Ðđ4ÐŧŅ‰ Ðđ4ÐžÐą Ðđ4ОÐē Ðđ4ОÐģ Ðđ4ОÐī Ðđ4ОÐķ Ðđ4Оз Ðđ4ОÐđ Ðđ4ОК Ðđ4ОÐŧ Ðđ4ОО Ðđ4ÐžÐ― Ðđ4ОÐŋ Ðđ4ОŅ€ Ðđ4ОŅ Ðđ4ОŅ‚ Ðđ4ОŅ„ Ðđ4ОŅ… Ðđ4ОŅ† Ðđ4ОŅ‡ Ðđ4ОŅˆ Ðđ4ОŅ‰ Ðđ4Ð―Ðą Ðđ4Ð―Ðē Ðđ4Ð―Ðģ Ðđ4Ð―Ðī Ðđ4Ð―Ðķ Ðđ4Ð―Ð· Ðđ4Ð―Ðđ Ðđ4Ð―Ðš Ðđ4Ð―Ðŧ Ðđ4Ð―Ðž Ðđ4Ð―Ð― Ðđ4Ð―Ðŋ Ðđ4Ð―Ņ€ Ðđ4Ð―Ņ Ðđ4Ð―Ņ‚ Ðđ4Ð―Ņ„ Ðđ4Ð―Ņ… Ðđ4Ð―Ņ† Ðđ4Ð―Ņ‡ Ðđ4Ð―Ņˆ Ðđ4Ð―Ņ‰ Ðđ4ÐŋÐą Ðđ4ÐŋÐē Ðđ4ÐŋÐģ Ðđ4ÐŋÐī Ðđ4ÐŋÐķ Ðđ4Ðŋз Ðđ4ÐŋÐđ Ðđ4ÐŋК Ðđ4ÐŋÐŧ Ðđ4ÐŋО Ðđ4ÐŋÐ― Ðđ4ÐŋÐŋ Ðđ4ÐŋŅ€ Ðđ4ÐŋŅ Ðđ4ÐŋŅ‚ Ðđ4ÐŋŅ„ Ðđ4ÐŋŅ… Ðđ4ÐŋŅ† Ðđ4ÐŋŅ‡ Ðđ4ÐŋŅˆ Ðđ4ÐŋŅ‰ Ðđ4Ņ€Ðą Ðđ4Ņ€Ðē Ðđ4Ņ€Ðģ Ðđ4Ņ€Ðī Ðđ4Ņ€Ðķ Ðđ4Ņ€Ð· Ðđ4Ņ€Ðđ Ðđ4Ņ€Ðš Ðđ4Ņ€Ðŧ Ðđ4Ņ€Ðž Ðđ4Ņ€Ð― Ðđ4Ņ€Ðŋ Ðđ4Ņ€Ņ€ Ðđ4Ņ€Ņ Ðđ4Ņ€Ņ‚ Ðđ4Ņ€Ņ„ Ðđ4Ņ€Ņ… Ðđ4Ņ€Ņ† Ðđ4Ņ€Ņ‡ Ðđ4Ņ€Ņˆ Ðđ4Ņ€Ņ‰ Ðđ4ŅÐą Ðđ4ŅÐē Ðđ4ŅÐģ Ðđ4ŅÐī Ðđ4ŅÐķ Ðđ4ŅÐ· Ðđ4ŅÐđ Ðđ4ŅÐš Ðđ4ŅÐŧ Ðđ4ŅÐž Ðđ4ŅÐ― Ðđ4ŅÐŋ Ðđ4ŅŅ€ Ðđ4ŅŅ Ðđ4ŅŅ‚ Ðđ4ŅŅ„ Ðđ4ŅŅ… Ðđ4ŅŅ† Ðđ4ŅŅ‡ Ðđ4ŅŅˆ Ðđ4ŅŅ‰ Ðđ4Ņ‚Ðą Ðđ4Ņ‚Ðē Ðđ4Ņ‚Ðģ Ðđ4Ņ‚Ðī Ðđ4Ņ‚Ðķ Ðđ4Ņ‚з Ðđ4Ņ‚Ðđ Ðđ4Ņ‚К Ðđ4Ņ‚Ðŧ Ðđ4Ņ‚О Ðđ4Ņ‚Ð― Ðđ4Ņ‚Ðŋ Ðđ4Ņ‚Ņ€ Ðđ4Ņ‚Ņ Ðđ4Ņ‚Ņ‚ Ðđ4Ņ‚Ņ„ Ðđ4Ņ‚Ņ… Ðđ4Ņ‚Ņ† Ðđ4Ņ‚Ņ‡ Ðđ4Ņ‚Ņˆ Ðđ4Ņ‚Ņ‰ Ðđ4Ņ„Ðą Ðđ4Ņ„Ðē Ðđ4Ņ„Ðģ Ðđ4Ņ„Ðī Ðđ4Ņ„Ðķ Ðđ4Ņ„з Ðđ4Ņ„Ðđ Ðđ4Ņ„К Ðđ4Ņ„Ðŧ Ðđ4Ņ„О Ðđ4Ņ„Ð― Ðđ4Ņ„Ðŋ Ðđ4Ņ„Ņ€ Ðđ4Ņ„Ņ Ðđ4Ņ„Ņ‚ Ðđ4Ņ„Ņ„ Ðđ4Ņ„Ņ… Ðđ4Ņ„Ņ† Ðđ4Ņ„Ņ‡ Ðđ4Ņ„Ņˆ Ðđ4Ņ„Ņ‰ Ðđ4Ņ…Ðą Ðđ4Ņ…Ðē Ðđ4Ņ…Ðģ Ðđ4Ņ…Ðī Ðđ4Ņ…Ðķ Ðđ4Ņ…з Ðđ4Ņ…Ðđ Ðđ4Ņ…К Ðđ4Ņ…Ðŧ Ðđ4Ņ…О Ðđ4Ņ…Ð― Ðđ4Ņ…Ðŋ Ðđ4Ņ…Ņ€ Ðđ4Ņ…Ņ Ðđ4Ņ…Ņ‚ Ðđ4Ņ…Ņ„ Ðđ4Ņ…Ņ… Ðđ4Ņ…Ņ† Ðđ4Ņ…Ņ‡ Ðđ4Ņ…Ņˆ Ðđ4Ņ…Ņ‰ Ðđ4Ņ†Ðą Ðđ4Ņ†Ðē Ðđ4Ņ†Ðģ Ðđ4Ņ†Ðī Ðđ4Ņ†Ðķ Ðđ4Ņ†Ð· Ðđ4Ņ†Ðđ Ðđ4Ņ†Ðš Ðđ4Ņ†Ðŧ Ðđ4Ņ†Ðž Ðđ4Ņ†Ð― Ðđ4Ņ†Ðŋ Ðđ4Ņ†Ņ€ Ðđ4Ņ†Ņ Ðđ4Ņ†Ņ‚ Ðđ4Ņ†Ņ„ Ðđ4Ņ†Ņ… Ðđ4Ņ†Ņ† Ðđ4Ņ†Ņ‡ Ðđ4Ņ†Ņˆ Ðđ4Ņ†Ņ‰ Ðđ4Ņ‡Ðą Ðđ4Ņ‡Ðē Ðđ4Ņ‡Ðģ Ðđ4Ņ‡Ðī Ðđ4Ņ‡Ðķ Ðđ4Ņ‡Ð· Ðđ4Ņ‡Ðđ Ðđ4Ņ‡Ðš Ðđ4Ņ‡Ðŧ Ðđ4Ņ‡Ðž Ðđ4Ņ‡Ð― Ðđ4Ņ‡Ðŋ Ðđ4Ņ‡Ņ€ Ðđ4Ņ‡Ņ Ðđ4Ņ‡Ņ‚ Ðđ4Ņ‡Ņ„ Ðđ4Ņ‡Ņ… Ðđ4Ņ‡Ņ† Ðđ4Ņ‡Ņ‡ Ðđ4Ņ‡Ņˆ Ðđ4Ņ‡Ņ‰ Ðđ4ŅˆÐą Ðđ4ŅˆÐē Ðđ4ŅˆÐģ Ðđ4ŅˆÐī Ðđ4ŅˆÐķ Ðđ4ŅˆÐ· Ðđ4ŅˆÐđ Ðđ4ŅˆÐš Ðđ4ŅˆÐŧ Ðđ4ŅˆÐž Ðđ4ŅˆÐ― Ðđ4ŅˆÐŋ Ðđ4ŅˆŅ€ Ðđ4ŅˆŅ Ðđ4ŅˆŅ‚ Ðđ4ŅˆŅ„ Ðđ4ŅˆŅ… Ðđ4ŅˆŅ† Ðđ4ŅˆŅ‡ Ðđ4ŅˆŅˆ Ðđ4ŅˆŅ‰ Ðđ4Ņ‰Ðą Ðđ4Ņ‰Ðē Ðđ4Ņ‰Ðģ Ðđ4Ņ‰Ðī Ðđ4Ņ‰Ðķ Ðđ4Ņ‰Ð· Ðđ4Ņ‰Ðđ Ðđ4Ņ‰Ðš Ðđ4Ņ‰Ðŧ Ðđ4Ņ‰Ðž Ðđ4Ņ‰Ð― Ðđ4Ņ‰Ðŋ Ðđ4Ņ‰Ņ€ Ðđ4Ņ‰Ņ Ðđ4Ņ‰Ņ‚ Ðđ4Ņ‰Ņ„ Ðđ4Ņ‰Ņ… Ðđ4Ņ‰Ņ† Ðđ4Ņ‰Ņ‡ Ðđ4Ņ‰Ņˆ Ðđ4Ņ‰Ņ‰ Ðą4ŅŒ Ðē4ŅŒ Ðģ4ŅŒ Ðī4ŅŒ Ðķ4ŅŒ з4ŅŒ Ðđ4ŅŒ К4ŅŒ Ðŧ4ŅŒ О4ŅŒ Ð―4ŅŒ Ðŋ4ŅŒ Ņ€4ŅŒ Ņ4ŅŒ Ņ‚4ŅŒ Ņ„4ŅŒ Ņ…4ŅŒ Ņ†4ŅŒ Ņ‡4ŅŒ Ņˆ4ŅŒ Ņ‰4ŅŒ ŅŒ4ŅŒ .Ðīз4Ðē .ÐīÐķ4Ņ€ .ÐīÐķ4Ðŧ .ÐēÐģ4Ðŧ .ÐēÐī4Ðŧ .ÐēÐģ4Ņ€ .ÐēÐģ4Ð― .ÐēÐŋ4Ðŧ .ÐēК4Ðŧ .ÐēК4Ņ€ .ÐēŅ‚4Ņ€ .ŅÐģ4Ðŧ .зÐī4Ņ€ .ŅÐģ4Ņ€ .ŅÐą4Ņ€ .ŅÐī4Ņ€ .ÐķÐī4Ņ€ .ŅÐš4Ðŧ .ŅÐŋ4Ðŧ .ŅÐŋ4Ņ€ .ŅŅ‚4Ņ€ .ŅÐš4Ņ€ .ŅˆÐŋ4Ņ€ .ŅÐš4Ðē .Ðēз4Ņ€ .ÐēŅ4Ðŧ .ÐēŅ4О .ÐēŅ4Ņ€ .ŅÐē4Ņ€ .ŅŅ…4Ðŧ .ŅŅ…4Ņ€ .Ņ…Ðē4Ņ€ .ÐēŅ4Ņ‚ .ŅŅ…4Ðē .ŅÐž4Ņ€ Ð―4КŅ‚. Ð―4КŅ. К4ŅŅ‚.",
["lefthyphenmin"]=1,
- ["length"]=61486,
- ["n"]=6886,
+ ["length"]=12830,
+ ["n"]=1660,
["righthyphenmax"]=1,
},
["version"]="1.001",
diff --git a/Master/texmf-dist/tex/context/patterns/mkiv/lang-de.lua b/Master/texmf-dist/tex/context/patterns/mkiv/lang-de.lua
index 6cba95f5369..96db70082bc 100644
--- a/Master/texmf-dist/tex/context/patterns/mkiv/lang-de.lua
+++ b/Master/texmf-dist/tex/context/patterns/mkiv/lang-de.lua
@@ -6,65 +6,24 @@ return {
["metadata"]={
["mnemonic"]="de",
["source"]="hyph-de-1996",
- ["texcomment"]="% title: German Hyphenation Patterns (Reformed Orthography, 2006)\
-%\
-% notice: TeX-Trennmuster fÞr die reformierte (2006) deutsche Rechtschreibung\
-%\
-% version: 2018-03-31\
-%\
-% authors:\
-% -\
-% name: Deutschsprachige Trennmustermannschaft\
-% contact: trennmuster@dante.de\
-%\
-% copyright: Copyright (c) 2013-2018\
-% Stephan Hennig, Werner Lemberg, GÞnter Milde,\
-% Sander van Geloven, Georg Pfeiffer, Gisbert W. Selke,\
-% Tobias Wendorf\
-%\
-% licence:\
-% name: MIT\
-% url: http://opensource.org/licenses/mit-license.php\
-% text: >\
-% Permission is hereby granted, free of charge, to any person\
-% obtaining a copy of this software and associated documentation\
-% files (the “Software”), to deal in the Software without\
-% restriction, including without limitation the rights to use,\
-% copy, modify, merge, publish, distribute, sublicense, and/or\
-% sell copies of the Software, and to permit persons to whom the\
-% Software is furnished to do so, subject to the following\
-% conditions:\
+ ["texcomment"]="% dehyphn-x-2014-05-21.pat\
+% \
+% \\message{German Hyphenation Patterns (Reformed Orthography, 2006) `dehyphn-x' 2014-05-21 (WL)}\
+% \
+% TeX-Trennmuster fÞr die reformierte (2006) deutsche Rechtschreibung\
%\
-% The above copyright notice and this permission notice shall be\
-% included in all copies or substantial portions of the Software.\
%\
-% THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND,\
-% EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\
-% OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\
-% NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\
-% HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\
-% WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\
-% FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\
-% OTHER DEALINGS IN THE SOFTWARE.\
+% Copyright (C) 2007, 2008, 2009, 2011, 2012, 2013, 2014 Werner Lemberg <wl@gnu.org>\
%\
-% source: http://repo.or.cz/w/wortliste.git?a=commit;h=8b9a428c271e064f0047a364c532308f0fd4051f\
+% 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.\
%\
-% language:\
-% name: German, reformed spelling\
-% tag: de-1996\
%\
-% hyphenmins:\
-% generation:\
-% left: 2\
-% right: 2\
-% typesetting:\
-% left: 2\
-% right: 2\
+% The word list is available from\
%\
-% ===========================================================================\
-% \
-% \\message{German Hyphenation Patterns (Reformed Orthography, 2006) `dehyphn-x' 2018-03-31 (WL)}\
-% \
+% http://repo.or.cz/w/wortliste.git?a=commit;h=3a97953c0ddd099a1785ea7927cbf24e639090b0\
%\
% The used patgen parameters are\
%\
@@ -81,10 +40,10 @@ return {
},
["patterns"]={
["characters"]="abcdefghijklmnopqrstuvwxyzÃŸÃ ÃĄÃĒÃĪçÃĻÃĐÊÃŦÃ­ÃąÃģÃīÃķÞ",
- ["data"]=".ab1a .ab3l .abo2 .ab3ol .ab1or .ab3s2 .ab3u .ade3n .ae3 .aft2 .ag4r .ag2u .ai2s .akt2a .al2e .al3k .al3lei .al5len .al3li .al3se .al4tei .al4tel .alter6s5 .alt3s4 .al4tu .ampe4 .amt2s1 .amt4sc .ana1c .an4a3t .an3d2 .anden6k .an1er .ang2 .an3g4li .an3go .angs4 .angst3 .ani2s .an3k4 .an3na .an3s2 .an4si. .an4tar .an3z2 .ap5p6le. .ari1e .ar3k2a .ar4m3ac .ar4mun .ar2sc .ar4tan .ar4t3ei .arter4 .ar6t5erh .ar2t1r .arz2 .asbe2 .as4ta .as3tr .ata1 .at2h .at4r .au3d .au4f3 .au2s3 .auß2 .ax2 .ÃĪm3 .ÃĪr6schl .ÃĪt2h .ÃĪt2s .bahn3 .bah6ner .bal3t .baus4 .be3erb .beige4 .bel2a .be3r2a .ber2e .ber4g3a .ber6g5e6b .ber4g3r .ber4tr .bi4os .bi2t .bit1a .blau3 .boge2 .bogen3 .bogens6 .bo4s3k .bu4ser .bu3ta .by4t .ca2s3t .ce2ra .ch6 .char8mes .chi3er .dab4 .da2r1 .dar3in .dar2m1 .da4te. .da4tes .de2al .de1i .dein2 .de3lo .de8ments .de3na .den4ka .den4kl .den4ko .de1o2 .de3r4en .de1s .de3sk .des2t .di3el .di4en .dien4e .dien6st .dienst7a8d .do3b .do2mo .do1pe .dor2f1 .do2tr .dy2s3 .ebe2r1 .eg2o .eh2e .ehe1i .ehe5n .ei3e2 .ei3f2e .ei3k .ei4na .ein3d .ei2ne2 .ein3eb .ein6erl .ein3sp .eise4 .ei2sp .eis3s2 .ei2s5t .ei4tr .eke2 .ek3li .el2a .el2bi .el2bl .elb3s .el4fei .el2fl .em3m2 .en1 .en4da .en4d3er4 .en2d3r .end3s .en4dÞ .en3ga .en2gl .enk2 .enn2 .enns3 .ent3 .en2ta .en4tei .en7thalp .en4tio .en4t1r .en5trop .ents4 .er4bei .er8brecht .er2bu .er4dan .erden6k .er4d3er .er1e .ere3c .er2em .erf4 .er1i .ers2 .er8stein .erster6 .er8stritt. .er8stritten. .er4z3el .er4zen4 .es3p .es3ta2 .est6e .es3th .es3t3r .et2s .eu3 .eug4 .eur4 .ext4 .fe3la .fer4no .fi3d .fi3est .fi4le. .fi4len .fi2s .flu2g1 .fs4 .fu2sc .ga2me .gan4ga .ga2s1 .gas3e .ga4sp .ga4t .gd2 .gebe4a .geb2l .gee4 .gel4b3r .gel2d1 .ge3lu .ge3m .ge5nar .ge3n4e .gene7cke .ge3n2o .ge3r4a .ger2e .ge3ro .ger4s .ge3sa .glan2 .glanz3 .gol6der .gs4 .gus2 .halt4e .hau2t1 .he2 .he4bei .he3fe .he3le .he4r3an .he3rat .her6b5ra .he3rer .he3ri .he6r5inn .hin3u .hips4 .hi4s .hof1 .ho4fen .ho4met .ia4 .im2a .ima4ge .im5m2 .in1 .ind2 .in3gl .ink2 .in3n2e .in3sk .in3t2 .inu1 .io4d .ioni1 .ire3 .is2a .is3ta .it2h .iv2 .joni1 .ka2b3l .ka2i .kal2a .ka3le .ka3t2a .kat3i .ka4ti4o .ki4e .klang3 .ko3b .kopf1 .kor4da .kraf2 .ks4 .kus2 .la3be .lan8de8mi .le4ar .le4gas .le3n2i .lich8t7er8s .li2f .li4ve. .lo4g3in .lo2sc .los3s4 .lo2tr .lo3ver .luster6 .lus4tr .lut2h .ly2s3 .ma3d .ma3ge .mal4e .ma2st .mat4c .ma5tr .matu3 .md2 .mel2a .me3ne .me3no .men8schl .men8schw .mes4sp .mi2f .mik4 .mil2z1 .mi2s .mi4t1 .mm2 .mutter5 .na3no .na3t .nÃĪs1c .nebe4n .ner2f .ne1ro .ne2s .nich2 .nicht5e .ni4e .ni3k4l .no2th .nul2 .nus2 .oa3 .ob1a .obe2 .ober5ei .ob3i4t .och3 .of2e .oper4 .or2a .ord4e .or3g .or3k2 .ort2 .orts3e .os3s .os4ta4 .oste2 .ost5end .os8ten8de .oste6re .os8terwe .os4tes .os2t3i .os4tig .os4t3r .os4tu .ot1a .ou2t .ou4te .ozo4 .Ãķd2 .Ãķl3l .pab4 .part4h .pe2c .pe3la .pe3le .pe3na .pf4 .ph4 .poka2 .po4st .postei6 .pro1 .ps2 .rabe4 .ra3ch4e .ra3me .rau2m .rau8schl .rÃĪu3sc .re3ale .reb3s2 .re3cha .re5insz .reis6e5i .rei4s5t .reli1 .res6tr .ri4as .richt6e .ro4a .ro3be .ro2e .ro2h .ro3m .rom4a .ro2st .ro2t3r .rÃķ2s .ruf3s .ruh2r1 .runder6 .rÞ1b .rÞ6cker6 .sa3br .sali3e .sami1 .sau1c .sau4er .sau5er. .sch4 .schaf8t7end .scheiner8 .se3ck .se2e .seein4 .se2ha .sen4f .sen5s .se3re .se1ro .se2t1 .sha2 .si4en .si3gn .si4te .ski1e .skis2 .sour2 .spani7er. .spiege8lei .st4 .stau8be8cken. .ste2i .steiner8k .sto4re .stro6ma .sucher6 .tage4s .ta3mi .tan4k3a .tan4k3l .ta3ra .tar3t2 .ta2t1h .ta2to .ta4tor .ta2t1u .te2e .te2f .tehe3 .teiler8s .tei8l7ersc .te3le .te3no .te1ra .te2s .te4st .test3r .th4 .ti2a .ti2e .ti2me .ti4mes .ti3r .ti2s .tischen8 .ti8sch7end .tite4 .tode4 .to4der .todes3 .to2n .to4nat .ton3i .to4nin .tons2 .to4pl .to2pr .to2w .tri3es .tro2s .ts4 .tse3 .tu3ra .tu3ri .turm1 .tur4ma .ub2 .ufe2 .ufer3 .ul2b3 .um3 .uma2 .ume2 .umo2 .un3a2 .un3d .un3g2 .uni4t .un3s .uns4t .ur3a2d .uran6fa .ur1c .ur1e .ur4inf .ur3o4m .ur1o2p .ur3s2 .ut2a .ut3r .ve5n2e .voll1 .vo4r .wah4l .wa2s .weg5s .weine4 .wei4ta .welter8e .welter8k .wer6ker .wer4kr .wer4tr .wetterer8 .wi4e .wor2 .wort5en6 .wor8tend .wor4tu .wur2f1 .xe3 .ya4l .zel4la .zelle4 .zel6leb .zeug4i .zi2e .zie4l3u .zin4ka .zin4s3c .zin4st .zuch2 .zug3l .zu4gra .zu2pf .zwe2 .zweigen8 .zwei8g7end a1ab aa2be aa1c a1a2ce aa2gr a1akt aals2t a1a2n a2ans a1aq 2a2ar aa2r3a aar3b aar3d aa3rea aa2rei aarf4 aar3g2 aar3k4 aart4 1aas aas5t aata2 aa2th aa4t3r aat4s3 2a3au a1ÃĪ a1b 2aba 3abad abais4 ab1alt a3b2am ab2ant ab1au ab1ÃĪ ab2ÃĪr ab2ÃĪu 2abbat 2abbin 1abd 2a3be. 2a3bec 2abee ab1eic abe3i4d ab1eil ab1ein 2ab2el abe2la2 2a3ben. 1abent 2aber a2berd a3bere a3beri ab1er2k ab1er2r ab1er2z 4abes abe2s1e ab3esse 2abet 2abew 1abf 1abg 3abga 1abh 2abi 4abil ab1ins ab1ir abi3st ab1it abi4tur 1abk ab1l 1a2bla a3blat 1a2blÃĪ a2b3led 3ab3lei a3blem 2ablet ab3li a2blin ab4lit 2ablo 1a2blÃķ a2blu 1abn 2abo 3a2bo. ab2of 3a2bon 4abot 2abÃķ ab3r a4brÃĪ a2bre ab4ros 2abrÃķ a4bs 1ab5sc 1ab3s2p abst2 3absta 1abstu ab3sz 1abtei abte2s 3abtr 2abu abu3g4 a2bum ab1ur 2abÞ 1abw 2aby aby4t 3abz 2ac. 2a3ca 1ac1c 2acci a1cem a1cen a2ceo ach1a a1chal a3chari ach3as ach3au 2achb 2a1che a2ch1e4c ach1ei ach4ei. a2chep a4cherf ach5erfa a4ch3erh a4ch3erl a4cherÃķ a4ch3erw 2achf 2a1chi a2chim ach3l 2ach3m ach3n a1cho a3cho. a2cho2r ach3Ãķf 4ach3r 2achsc achs4el ach3s2i ach3skr achs4or ach3su a4cht ach4tak ach6terf ach8tersp ach6t5erw ach4t1o acht5rat ach8traum ach8trÃĪume. ach8trÃĪumen. ach6trit acht6s5al ach4tum a1chu ach1u2f ach3Þ 2achv 4ach1w a2chy a1ci a1ckar a3ckel a2ckin ack2sp acksta4 2a1cl acon4n 2acu a1ç a1d 2ad. 2ada. 4adab ad2abr ad2ag ad1an 3adap 4a3d2a2r3 2adas 2adat a2d1au a3dau. 1a2dÃĪ ad1c 1add 2ade. ade2al a3dec a3dee adefi2 2adeg a3dell 4a3den aden1a ade4nat adeo2 ade1ra a2d1erk 4ade1s ade3s2p ades4s 2adf 4adh 4adi adi3en adi3er. adie4sc adi4st 3adj 2adli 3admi 4admu ad2ob ado2n ado4na a2dop ad2os 2adp 2adq a2dre 2ad3rec ad3rei ad3run 2ads2 ad3st ad3sz 2ad2t1 ad4te2 1adv 2a3dy 2a1e1 ae2b a2ec ae2ck ae2d ae2i a2ek a2el a3el. a4ela a4ele a4eli a3els ae2m ae2o3 aeop2 ae2p a3er. 3a2er2o1 aes2a ae2sc aes5t a2ew ae2x 2afa af1ab a2f1a2n a3far a2f1au 2afÃĪ a2f1ÃĪn 2afe a2f1ec a4fentl a4f1ep aff4a af2f3l aff2s aff4th 2afi afi6kanz afi4kat afi2t 2af3l af1la a1f4lu 2afo a2f3oc a2ford a2f1ort afo1s 2afra af3rau af3rÃĪ af3re 2afro af3rÃķ af4rÞ af3s2a af3s2h af2si af2sp afs4t af2t1a af3tat af2tei af2te2l aft4erk af2t1o af2tÃķ aft3r af2tra aft5rei aft4stÃĪ af2tur a2f3ur 2afÞ afÞr3 a1g 2ag. 2aga ag1a2b ag1a2d ag1ar a2g1au ag2del ag2dr ag2du 4age. age4l3ei age4ler 4a3gen. age4neb a2gent 2ages age4sam age4s3in ages3p ages6sen ages3ti 3aggr a2g1id a2gim 2a2gl ag4lan ag4las ag3le a4glÃķ 2agm ag2n ag4nat a4gnÃĪ ag4ne. ag4nu ago3b ag3rat a2g3re a2gri ag3rie ag3rin 2ags ag3s2ah ag4sam ag3s4eid ag7s8porta agst2 ag1ste ag3stÃķ 2agt ag2th 2agu a2gund 2ah. 2a1ha ah2an ah4at a1hÃĪ 2a1he ahe1in a2h1er2h ahe1s ahe3u a1h2i ahin3 ah2l3a2 ah2l1ÃĪ ah2l1ei ah2lel ahle4na ah4l3erd ah4l3erh ahl1o2 ah2lÃķ ahl3sz ahme1i ahme3s ah3mu ah4n3a ah3nee ah2nef ahn3el ah4nerd ahner4e ahner6le ahner4n ah2nin ah2no 1a2hor ah1os ah3Ãķs 4ahr ahr1a ah3r2e ahren6sc ahre4s ahr6tage ahr6teng ahr2ti ahr4tro ahr4tun ah2ta ah2te2l ah2t1ex ah4t3r aht3s6 a1hu ah1w a1hy 2ai. ai1a4 a1ia. 2aib ai2bl aid2s ai1e4 ai3en3 aif4 ai1fr a4i3g4 a3ik. ai3ke ai2lar ail3d4 ai2lei ail3g ai2lo 4ain ain2a a1ind ai5n4e ain3s ains2p 3airb ai2sa a3isch. ai5schw ai3s2e ais4se. ait4 a3iv. a3ivl a3ivs a1j a2jat aje2 ajekt4o 2ak. 2aka. 2aka3b akab4r a2kad 2akal 2a3kam 2akan 2akar ak4at akat1a aka4tak 1akaz 4akÃĪ 2akb 2akc 2akd 2a1ke a2kef a2k1em a2kent a2kes ak2et a2keu 2a1ki ak1ins aki1s 1akku 2ak3l a1k4la ak4li 3aklÃķ a1kna 2ako 2a1kr 4akra ak3res a3k4ri 3akro ak3rÞ 2aks ak3sh ak2t1a2b 2aktb ak2tel akt2er 2aktg 2aktik 2aktis 2aktm ak2to4b ak2tÃķ ak2t3r ak5t4ri 2aktsi 2aktsp 2aktst 2aktw a1ku 2akun a2kup 2akur aku2s 4akÞ 1akz 3akze a1la 2ala. 2alabo al1af al1age 2alai al1akr al1am al1ana 2aland a2lang al1anz al1app a3lar. al3arc a3lare 2al1arr a2lart ala2s al1asi al1ass a3lat. al4atm alat3z al1au al3aug a1lÃĪ a2l1ÃĪm al1ÃĪn al1ÃĪrm al1ÃĪu 3albat al2bÃĪr alber4e al4berh al4b3er4w al2b1l al2boh al2bon alb3ru alb3st al4dan al2dÃĪ al4d3erl al4d3ern alde2s ald3inn al2dra al2drÃĪ alds2 2ale 4a3le. ale4ar a2l1e2b al1eck a4l1ef a2l1ei a3l2eic a4lein a2l1el 3a2lema a2l1e2mi 4a3len. alende4 al3endr a4l3ends a2leng al2enn ale2p al1epo 4aler. a2l1erb aler2e a2l1erf a2l1er2h aler4kl a2l3erl al1erm aler4mi a2l1er4r al2ers a2l1ert 3a4l3erwÃĪ 4ales a2l1e4sk a2less a4leth a2l1eu alf4r 3algi al2gli al3glo 1algo 3algor alg4r 2ali al2imb al1imm ali4nal al1ind alin4ge a2l1in2q al1ins alken1 al2klÃķ al2kne al2kof 1alkoh alk3s2 alks4t al2lab al3lad al2l1an al2l1a2r al3le. al4lec 3allee al3lend all3erk aller4z al3les al2lid alli5er. alli7ers. al2lob al2lop al2lÃķf al2map al4m3ast almo6de. 2alo. a2l1ob 3a2loe a2l1of 4alog alo2ga alo2gr al1ont al1ort 2alos a2l1Ãķ al2Ãķs 3alp. 3alpe. 1alph al2pho alrat4 al3sak al6schei alsch3s al3ska al5s6terb al2stu al2sum al2t1ak alt3alg al3tam al2tan al2tat al2tau 1altÃĪ alt3eis alt3elt al4temu al4t3er5f al2teu al2tid al2tin alt1op al2tÃķ al4t3rat al2tre al4t3ri al2t3ro alt4stÞ a1lu alu3b4 al2u3f alu3g al1u2k a2lum al1umb a2l1ur a3lus 4aly al2zar al2zau al3zen alz4erk al2zw 2am. am2a ama2ba ama3d2 ama3g a2malg 2a3m4an 1a2maz 2amÃĪ 4ame. a2meb 2amel am4e4n1 amen6spr ame3r2a amera3u a2m1erf 1a2meri ame5r2u 2ame1s a4mesh 2a3met 2amf a3mi. a3mie ami2k am4ing 2a3mir 2a3mis 2amit 2amk 2aml 2amm. am2mab am2m1ac 2ammal am4mant am2mar am2mei ammes3 am2mid ammi2e am2min am2mor am2m1Ãķ ammu2 amni1 a2mÃķ 2ampe. 2ampen am4pf amp2f1a2 2am2ple 2ampo am3pr amp3s2 2am2s am3sa 4amsc am4schl 3amse am3s2h am3so am3sp am3su 1amt. am2t1a2 am4tau am2t1ÃĪ am2tei amt3eig am4tel am2tem amter4 am4terh am4t3ern am2t1ex am2tis am2tit am2to am6tou am2tÃķ am2t3r am4tre am4tri am2t1u 2amtv 2amu 3a2mul 2ana. 2anab ana3c 4an2ad anadi1 an2ag 2a3nak an1alg ana4lin 2anam an2a3ma 2anan an4and 2ana1s a5nat. ana4th a5n4atm a2nato ana4tr a5nats an3aug 1a2n1ÃĪs 1anb 2anbas 2anbÃķ 2anbu an3ch 2and. 3an3d2ac and3arm and3ei anden6ga an4d3ent and5erob ande4sc an2d1ex and4sas and4seh and2so and6spar and6spas and2su 4andu2 an2d1ur andy1 2ane an3e2c a3nee an2ei. an3eif 3aneig a4neis 3a2n1e4k ane2l an1e2mi a2nemo aner4fa a3nerg an2erh a4nerke 4anern a4nerz. an4erze an1eth 3anex 1anf 2anf. 2anfab 3anfÃĪ an3fe 2anfi an4fj anf3le 4anfors anf5rau 2anfs an3f2u 4ang. 1anga 2anga. an2g1ar 2angas 2ange. 1angeb an2g1ei an4g3erf an4g3er4h an4g3er4w an4g3erz 2angh 2angie ang1l an2gla ang5n ang1r ang3ra 1an3gri 2angs. ang4sto angt2 1anh 2a3ni an2i3d ani3els ani5ers. anig2 ani3ke 3a4nim a4nind ani2o an3i4on a4niso 2anj 2ank. an2kab an2k1ak an2kan an2kei 2an3ken ank5erfa an3kes 2anki an2kid an2klÃķ an2klu ank3no an4k3opf an2kor ank1r ank3ra an4kras ank3rÃĪ an2kro 2anks ank3se anks2p 2ankt4 1anl 2anlad 3anlag 2anmo 1anmu 2ann. 1annah an2nar an3ne an4nef an4nei an4nene annen3s4 ann2er 2anns ann4s3p 2annt 2ano. 1an1od 2anof 2anog 2a3nol ano2la 1a2nom a3nom. 2anoo a2n1or ano2ri 2a3nos 2a1nÃķ 2anpu 1anr 2anrÃķ an4same an3sar 1an3s2ÃĪ 3anschr an3skr ans1pa ans3pon 1anspr 1anst an3s2z 2ant. ant3ar anta4re an3t2ÃĪ 1antÃĄ 3antei an3tha 2antie 3antise anton2 1antr ant3rin 1antw 2anu anu3r anu1s a1nÞ 1anw 2anwi an2zÃĪ 2anzb 2anzd 1anzei anz3elf anze2n 2anzes 2anzg 2anzh anzi2d an2z1i4n 2anzk 2anzm 2anzr 2anzs 2anzt 1anzÞ 3anzÞn 2anzv 2anzw an2zwi 2anzy 2ao aof4 ao3i a1op aopf4 a1or a1os5 aost2 a3ot. ao3t4s 2a1Ãķ2 a1p 4ap. ap4a apa3b a2pe. a3pel a2pÃĐ a2pf ap2fa 1apfel 2apfes a3pfl a2pht 2api 2apl ap4la a3plÃĪ ap3le ap3li ap2n 3a2pos a2pot ap3pu 2apr ap2so aps4ter ap5t2 2a3pu 2ar. a1ra a3ra. ar2ab 2ar3abb ar3abf ar3abt ara3d2 ar3adr ara3ge 2a2r3al a3r4ale a3rali a3ralo 2aran a2r1ang a2r1anz 2arap a4r3app 2a2rar ara2st ar2asy 4arat a2r1au a1rÃĪ ar1ÃĪs 1arb 2arb. 2arba ar2bak ar2b3at ar2bau 4arbef ar4b3ein 2arbek 2arben 2arber arb3erl 4arbi 2ar2bl 2arbo 2arb1r 2arbs2 arb3sk arb3so 2arb3t2 2arbu 1ar1c 2archl 2archr ar2dau arde4i ar2dop ar2d3r ar2du a2rea are5aler a2reb4 aree2 ar1eff a2reh ar1ehr 2arei a3rei. ar1eid a3reie a3reih areim3 a2rein arein4b arein4s arein4t a2rele 4arem 4aren. aren6sem are3r2a arer2e a4r3erei a2rerg a2rer3h a2reri a2rerk a2rerl a2rert ar2erw 2ares ar2et are3u a2rev arf1r arf3ra arf2sp 4arg. ar3gan ar2gl ar4gn 2arg4o ar3g4r arg4s 2arh 2ari ar2ia a2rid ari3e2n ari3erd ari3erg arin3it arin3s4 ar1int a3r4io ar2ir ar4is ari2su a3riu ar2kal ar2k1ar ark3aue arker2 ar2kil 2ark3l ar4klag ar2kle ar2klo ark4lÃķ ar2koa ar2kor ark3s4a ark2se ark3she ark4tre ar2les ar3mad arm1au ar3m2ÃĪ ar2m1eg ar2m1ei arm2or ar2mum 4armÞ 4arn ar2nan arn2el ar3ni a1ro arob2 4aroc aro8ckeng ar1o2d ar1of aro2fe 2a3rol aro3m a2r1op a2ror aros3 aro4st 1a2rou a2r1Ãķ4 2arp arr1ac ar2r1ad ar2r1as arre4n1 ar2rh 2arri ar2r3or ar3se ar3s2h ar3s2i ars3ka ars4kat ar3sta ar2tau 2artb ar3t2e 2artei 2artex ar3t2i 2arto art3r art4res ar2tri 2arts art3ske art2sp 2artuc 2arty 2aru a2r1uh ar1um a3rumm a2rÞ 2arv arwa2 2a3r2y 2arza ar2zau ar2zÃĪ 2arze 2arzi ar2zÃķ 1arzt arz4tei arz4tem arz4ti arz2t3r 2arzu ar2z1w 2asa a4s3aa a2s3af a3sag a3s2al asal2t1 as1am as3art asa2s as3at asau4f a4s3aug a2sÃĪ as3ÃĪt asbes2 a6sca a4schec a4schef a4sch3ei a6scher6g a3s4chi a2schm 2ascht a3schu a4schum 2asd 4ase a2seb a2sec a2s1ef as1eie as1emi a3sen. ase4na ase4n3o asen6sem as2er as4erd ase2re aser6geb a4s3erke as4es ase4t a2sex 2asf asges4 2ash a3s2hi as3hir 2asig a2s3i2k 2asim asin2g as1inn 2asis aska3s as3ku 2aso as3ob as1of a3sol a3som as1o2p as1or a4soz a2sÃķ a2s1p aspek6to as2ph a3s2pi as3pik as3pio a4spir 2aspr as2pra 2as3sa ass2a3b ass6aus. ass2e ass3ein asse3le ass2i as3ski as3so as2spo as2spr as2st as3sta as3stei as3sti as3str as3stu 2asta a3stad a1stas as3tat a3stÃĪ as3te ast2el ast2er as4t3ese as4tex as2th ast2id as3tie as3til as3to as4tof ast3orc a1str ast3re as3t4ren as6t5ritt ast5roll as3tub 2asu as2ur asu4s3 a2sÞ aswa2s 1asy 3asyl 2asys a1ß aße4 aß2en3 2a1t 4ata at1abe at1abr at2a1f a5ta3g at2ago ata3la a3tam at1apf at2ast at3att a2t1au at1ÃĪn 4atb at2c a2teb a3tec ateien6d at1eig 3a2teli 3a2temg at2en ate4na aten3s4e a2tep 4ater ate3r4al ate3ran at4ere atern2 ater3st ate2ru 4ates ates4sa a3tet at2eu a2tew 4atha at3hag at3hal a3t2heb ath3in. 3athl a4thr at2hu at3hÞ 4a3ti ati4kab ati6k5erw a4tinf at2is ati2sa ati2se a4tiso atis3s ati6v5erf 3atla 4atli 3atm 4atma 4atmÃĪ 4atmus a2t1ob 3a2t4om atom1e ato2mo at1op at1ort a3to3s atra4t a2t3rau a2t3rÃĪ at3re at3rin at3rom at4ron at3rot at3rÞ at2sa at4schn at2se ats1e2h at2si ats1in at2s1o at2s1p ats3tÃĪt at2su at3ta 3attac at4tad at4t1ak atta2l at4tale at4tals at4tang at4tar at4tau at2tÃĪ 4atte. at2t3ec at2tei at3t2el 4at5ter at3thÃĪ at3ti 4atto at2tob at2t3rÃĪ att3s2 at3t2u 4atu a3tub atu2n a3tÞ atze4l atz3ela atz3elt at2zem at2z1er a3tzere at2z1in atz3t2 at2z1w a2u 2au. 2au3a2 2aub au2bab au2ban au2b1au aube4n au2beu au2blÃĪ au2bli au2blo au2blu aub2si 2auc au2dr 2aue aue2b au2ere aue3rei auer3Ãķ au5erst. au3ert aue2s au2fa auf1ak auf1an 2aufe. 2aufeh 4aufen. 3aufent auf1er au4fer4k au2feu auff4 auf3ind 1aufla 1aufn 2aufo auf3ski auf3t2 2auft. 2aug au2ga au3g2ar 4augeb 4augeh 4augel aug2er 4augl 4augr au3gu au3h 2au1i au2is 4auj auk3t aule2s aul4les au3lÞ 4aum au2mal aume4n au4m3ent au2m1e2r1 aum3eri au2m1id au4mil au4mit au2m1o aumo2r aum3p2 aum3s6 au4mun 4aun au3n2a aun2e au4n3ei au2nio au2no au3nu a4unz 2aup2 2aur2 au1rh aurÞ3 au2s1ah ausan8ne. au2sas au2sau 2ausc au6schmi 1ausd 2ause. au4s1eh 2ausen au4s3erb au4serf au4s3erk aus3erp au4serw 1ausg au2sin au2sis 1ausl au2so aus1or au2spr 1ausr auss2 3aussag aus4se. aus3st aust2a 2auste au5stein aust2o aus5tri 3ausÞ 1ausw 1ausz auße2 2aut. au2tab au2t1ÃĪu 2autb 2aute au4t1e2l au4ten4g au4t3erh aut5ero 2autg au2thy 1auto au4trÃķ 2auts 2auu 2auv auve4 2auw 2aux 2auz auz2w 2a1Þ a1v av2a a3vang avas4 ava3t2 avener4 2avi a2v3r 2a1w awi3e a2wr a1x ax2am a2xans a3x2e a3xid a2xio axis1 2a1ya a1yeu ayma4 ay1of ays2 aysi1 ay3t a1z az4a a3za3d 3azal a3z2i az2o a3z2u az2zen az2zw ÃĪ1a 1ÃĪÃĪ 2ÃĪ1b ÃĪ2b3l ÃĪb2s ÃĪbte1 ÃĪ1ce ÃĪ1che ÃĪche1e ÃĪche4n ÃĪ1chi ÃĪch3l ÃĪ2chr ÃĪch4sa ÃĪch2s1o ÃĪch2sp ÃĪch2st ÃĪcht4e ÃĪ1chu ÃĪ1ck ÃĪ1d ÃĪ2da ÃĪde1s2 ÃĪ2d1ia ÃĪ2d3r ÃĪd2s ÃĪd3te 2ÃĪ1e ÃĪe4k ÃĪ3eu ÃĪe2x ÃĪfe4n ÃĪf2fl ÃĪfig3 ÃĪf3l ÃĪf3r ÃĪf4ro ÃĪf2s ÃĪf3t2e ÃĪft4s3 ÃĪ1g ÃĪ2g1a 1ÃĪ2gÃĪ ÃĪgd2 ÃĪgen4e ÃĪge2r3a ÃĪge3s ÃĪ2g3l ÃĪg2n ÃĪ2g3r ÃĪg4ra ÃĪgst2 ÃĪg3sta ÃĪg3str 1ÃĪ2gy ÃĪh1a 2ÃĪ3he ÃĪ4h1ei ÃĪher8gebn ÃĪher5t ÃĪ1hi ÃĪh1in ÃĪhl1a ÃĪh3l2e ÃĪh4l3e4be ÃĪh5ler 2ÃĪhm ÃĪh3na ÃĪh3ne 1ÃĪhnl 2ÃĪhr ÃĪh2rel ÃĪh3ri 2ÃĪhs 2ÃĪht ÃĪ1hu ÃĪh1w 2ÃĪi ÃĪ1im ÃĪ2is ÃĪ3is. ÃĪ3isch. ÃĪ3isk ÃĪ1j ÃĪ1k ÃĪka2la ÃĪk3l ÃĪ2kle ÃĪk4li ÃĪ2k3r ÃĪ1la ÃĪlbe2 ÃĪl4bl ÃĪlk3 ÃĪlks4 ÃĪl2l1a ÃĪl2p3 ÃĪl4schl ÃĪl2st ÃĪlt2e ÃĪlte1i ÃĪ1lu 2ÃĪm4a3 ÃĪ3me ÃĪmer2s ÃĪmi3en 2ÃĪml ÃĪmoni3e 2ÃĪmp ÃĪmp7f4e ÃĪm2s ÃĪmt2e ÃĪmter3 2ÃĪn. ÃĪn2dr 2ÃĪn2e ÃĪne2n1 ÃĪne1s 2ÃĪn2f5 ÃĪnft2 4ÃĪn3g2e ÃĪnge4ra 2ÃĪn2gl ÃĪng3le ÃĪn2gr ÃĪng3se 2ÃĪ3ni ÃĪn3k2e ÃĪn2k3l ÃĪn2kr ÃĪnk2s 2ÃĪnn ÃĪn3n4e2 2ÃĪns ÃĪn4s1a ÃĪn2s1c ÃĪns2e 2ÃĪnz ÃĪ1on ÃĪo3s2 ÃĪ1pa 1ÃĪpfel ÃĪp2pl ÃĪp2pr ÃĪp2s1c ÃĪp4st 1ÃĪq ÃĪ2r3a4 ÃĪr4af ÃĪr1ÃĪ ÃĪr2b3le ÃĪr1c 2ÃĪrd ÃĪrde4s 2ÃĪre ÃĪ2r1ei ÃĪ2r1e2l ÃĪre2m ÃĪr1emi ÃĪre2n ÃĪ2rene ÃĪ2rerh ÃĪr2es ÃĪrf2s ÃĪr3ge ÃĪrg4s ÃĪ2r1ind ÃĪr1int ÃĪr3ke ÃĪrk2s ÃĪrm3arm ÃĪrm3at ÃĪrme1e ÃĪrm3ent ÃĪrm2s ÃĪr1ob ÃĪr1of ÃĪ1rÃķ ÃĪr3re ÃĪrse2 ÃĪr2seb ÃĪr4seh ÃĪrs1er ÃĪr2si ÃĪr3spu ÃĪr2st ÃĪr3str 2ÃĪrt ÃĪrt4e ÃĪr2th ÃĪrt2s3 ÃĪ2rÞ 1ÃĪrz ÃĪr2zu ÃĪr2zw 2ÃĪ3s2e ÃĪse3g ÃĪse1i4 ÃĪse5ref ÃĪser4ei ÃĪse4ren ÃĪser2i ÃĪ3s2kr ÃĪ2s1p 2ÃĪs2s1c ÃĪss2e ÃĪss5erkr ÃĪss5ersa ÃĪss3erw ÃĪs2sp ÃĪs2s3t ÃĪ4s3t ÃĪst4e 1ÃĪsth ÃĪs4tr ÃĪ3su ÃĪ1ß ÃĪß1erk ÃĪß1ers ÃĪ2t3a2 2ÃĪ3te ÃĪte3a ÃĪte1e ÃĪte1i ÃĪte3l2 ÃĪte2n ÃĪteo2 ÃĪter4bl ÃĪt2et ÃĪt1id ÃĪt1ob ÃĪ2t3r ÃĪt4s3a ÃĪt2sÃĪ ÃĪt4schl ÃĪt4schr ÃĪt2s1i2 ÃĪts3l ÃĪts1or ÃĪt2s1p ÃĪt2s3t ÃĪt2su ÃĪt2tei ÃĪtte4n ÃĪt4tr ÃĪtze3l ÃĪt2zw 2ÃĪub ÃĪu2b3l ÃĪu2br ÃĪu1c ÃĪu3d ÃĪude3 ÃĪuder2 2ÃĪ2uf 1ÃĪug ÃĪug3l 2ÃĪul 2ÃĪum ÃĪu2ma ÃĪum3p ÃĪumpf4 ÃĪum4s5 2ÃĪ2un ÃĪun2e ÃĪu3nu 2ÃĪu3r2 ÃĪure1 2ÃĪ3us. 2ÃĪusc ÃĪu4schi ÃĪu4schm ÃĪu3s2e ÃĪuse1i ÃĪ3usg ÃĪ3usk ÃĪ3usn ÃĪu2s1p ÃĪus2s1c 1ÃĪuß ÃĪut2e ÃĪu2tr ÃĪ1v ÃĪ2vi 1ÃĪx ÃĪ1z ÃĪ3ze ÃĒ1t ÃĄ1n 3ba. b2aa b3a2ba 2babf 2babg ba2bl ba2br 2b1abs bach7t4e ba4ck3er back3s4 ba3d2e bade1i 2b1adel 2b1adl 2b1adm b1a2dr ba2du 2b1af 3bah bah6nene bai3d bais2 b2ak ba2ka ba2k1er ba2k1i ba2k5l ba2k3r ba2lab ba2l1ak ba3lal ba2lau baler2 ba4l3erk balk4a balke4 bal4l3eh bal4l3ei bal6lerg ball6erk 2b1am b2a3ma ba2me 4bamt ban2a 3b2and band1a ban4dal ban4dan ban4dar ban6deng ban2dr ba3n2e 2banf b1ang ban3gl ban4k1a banker4 ban2kl ban2kn ban2kr ban2ku 2banl b1anna ban2o 2b1ans b1ant 2banw b1anz ba2r3ab ba2rad bar3ast ba2rat bar3de ba2rei ba3r2en barer5ei barer4t barf4 3bar2s bar3sc b1arz bar3zw 3b2as ba3sa ba2sc bas2i bas4sa bas4st ba2st ba4t3ent bat2o 3bau. bau3b bauer4l bauer4s bauer4w bau1fl bau1fr bau3g2 b2auk bau3r bau1s bau3s2k baus4t b1a2x ba1yo 3b2ÃĪ1c 3b2ÃĪd 2b1ÃĪh b2ÃĪl 2bÃĪrz b2ÃĪs 2bÃĪug 4b1b b3be bbe4n3 bbens2 bbe4p bb3le. bb2lÃķ b3brec b3bru bbru2c bb2s bbu1 4b1c 2b5d2 bdÃĪ4 bdÃĪn3 bde1s bdome4 1be. 3bea be3ab be3an beat2m be3au be4au. 3beb b1ebb 1be1c 2becht 2b1e2del bedi4 be1e2h bee2l be3ela bee4rei be1erh be1erl be1ert be1eta bef4 2b1eff be3g4 be2he. beh5ri bei3b 2b1eier bei1f4 bei4ge. beige4l beige4p bei3k4 bei3l2a 2b1eime be1ind be1inh bein6hal bein4hi bei3sc beis2e bei1s4t beit4e beit2s beit4sk beits3p 3bek 3bel be3lag be3las bel3d be3lec 4be2lek be2l1en bel3ere be2let bel3f beli4e bel3la belle4n3 bel3li bel3om be2lÃķf bel3sz belt2 bel4un 1bem4 3b2em. 3b2e3ma 2b1emp 2bemul 1ben be5nabe ben3ar be4nas be4nat be2nÃĪ b2ene be3nei be4n3end be4ners ben2eu 3beng be2nid be4nis ben3n 5benp b2ens ben4s3pa ben4spr benst4 3bensz 2b1entb 2bentd 4benteu 2bentf ben3th ben6thei ben5t4r 2b1ents 2b3entw ben3un b2en3z2 be1o 2b1epi 2bepoc be1ra be2rak be2r3am be2ran bera2s berb2 berbla4 ber3d be2r1e2b be4reck be4r3eiw bere2m be4rene ber4erg ber4erw bere4sc bere4t berf4 ber4g3af ber4gal ber4gli ber4hab beri2d ber4in. be5r6inne berin4s be2ri4o ber3iss ber3ko ber3kr ber3n2a bern2e b1ernt be2rÃķ 3bers. ber5se ber3st4a bert2a bert2e bert2i berz2 ber3ze ber2zÃķ 3b2e1s be3sa bes4abb bes2am bes2an be4sap be4sar bes2au be2sep be2s1er be2s1id bes2po bes3sa bess4e b3esst. bes3sz be4stab beste2 be6stein bester4 bes6terh be4s5tol bes4t3o4r bes3tos best4r be4s3trÃĪ be4s3tur be2sur be3s4ze 3bet be3tam be3tha be3thi bet2sp be1un be1ur 3bev 3b2ew2 2b3e2x 3b2ez 2b5f4 bfal2 bfal3t 2b1g2 b5ga bge3 bgel2e bge5n bges4 2b1h2 b5hÃĪ 1bi bi1ak bi2ar 3bib2 bibe2 biber1 bi2c bi3do bien3s bieres4 bie2s biet2s 3bietu biga1 bik2a bi2ke. bi2kes bi2kre 3bil bil2an bil3ans bil4deb bi2lei 4billu bi2lu 2bimp 2b1inb bin2e bine4n b1inf bin4fo bin2g3a 2b1inh bi2n3ok bin4ol 2b1int 2b1inv bi2o3 bioi2 biri1 3bis bi3si b1iso bi2sp bis2s1c bi2st bi3sta bi1s4tr b2it. b2ita b2ite b2iti bit4r bi2tu bi3z2 4b1j bjek4to 2b5k4 bl4 2bl. bla3b4 2b1lac b3lad b2lanc blas3er b2latt b2lau. b3laus4 2b3law 2b1lÃĪn b2lÃĪse 3blÃĪt b2le 3ble2a b3leb 3blec b3leg 4bleh b4lei. 2b3leid 2bleih b3lein blei3sc 2bleit ble3l ble2n b3lenk b3lese 2blesu ble3s4z 3blet b3leu 2blich 3blick b2lie 2blief 4blig b2lind 2b5ling4 b2lis 2blis. b2lit b3lite b2lo b4lo. 3b4loc b4loi b3los 3b4lum 2blun b2lus 3blut blu4tem blut1o 3blÞ 2b1m 4b5n2 bnas4 bni2 bnis1 bo4a bo5as b1o2b bo3ben bob3r bo2c bo3ch2 bo3d2 boe1 bo2e3i 2b1of bo3fe bo3he boh2ra boh3rer boh2u bo1is bo2lan bo2lau bol5le 3bon. bo3n2a bon2da bon2d1e bo2ne 3bons boo4l boo2ti b1op 3bor. bo1ra bor2an bo2r3as bo2rau bo4rÃĪ bor2da bor2d3r bo2rei bo4rig bor3m bor2s b1ort bor4ter bor6t5rat bo4ruh bo2sc bo3se bo4s3p bos3t 3bot bote3n4e bo3th bot2st bot5t bo2xo b1oz bÃķ2b3 2bÃķf 2b1Ãķl bÃķlk3 2b1p4 bpa2g 2b1q b2r4 2br. b4ra. 2b3rad 2b4rah b4ra3k brast4 2b3rat. brat3er4 bra6terg 2b3ratg 3brÃĪ 4brÃĪd brÃĪ4u 2bre. 6b5rechte 2b3red 2b3ref 2breg b3reif 2brek breli1 b4rem b4ren. 2b3rent 2breo 2b3rep b4rer b4res. b3rest b4ret bret6t5en b4rez bri2da brie4fa 2b3riem b4rien bri2er b3ries 2brigk b4rina 2b3rind b4rio b4risc b3ritt brob2 2b3roh 2b3rol bro2ma b4ron 2b3rost bro4tr brot3t4 2b3rou 3b4rÃķ b4ruc 2bruf b4rum 2b3rund brus4 brust3 bru2th 3brÞ 4b3rÞb 2b1s b2s1ad bs2am bs3amb b4s3amt bsau2r b4s3ÃĪr b3s2ÃĪu b3sc bsch2 b4schan b6schef bs2chi b4sco bs2cu bse2b b3sel. bse2n1 b3sen. b2s1ent bs1erf bs1erg bs3e4r3in bs1erk bs1ers b3s2es b2sim bsi4t b4ski bs2ku b2s1of b3s2oh b3sol b4sop bso2r b2sÃķ b3s2pi bs2pl bs2pu bss2 bs2t bst1a2b bst1ak bst3ank bs4t1as b3stÃĪ bs3tÃĪt bst3emi bst1er bst1h bst3ink b2stip b3sto b4stob b4stod bs4tol b4stor b3stÃķ b4strac b2s3trÃĪ b4s3treu bs4tri bst3ro b3stÞ b4stÞb b2s1un bs2zep bs2zi 4b1t b3t2a bta2s btast3r b5te b2t1h bt2i bti2s bt4r btran2 bts2 b3tÞ1 buche4 bu4chec bucher4 bu6ch5ers bu2chi buch3s4p bu2e3 bu2f bug3 bu2gr bul2l3a 2bumf 2b3umk 2buml 2b3umr bun4a bun4d3er bunde4s b1une bung4 b3un3gn 2b1unh bur1c b2ure b2urg burg1a bur4gan bur4gar bur4gin bur2gr bu3r2i 2burn b3ursa burts3 bu2sa bu2sc bus3cha bu3sche bu6schei bu6sch5el busch3w bu3shi bu2sin bu2s1p buster4 bu2su but2a buto3re 2bÞb bÞ1c bÞgel3e 2b1v 4b5w 3b2y1 bya2 byo2 by3p2 bys4 2b1z4 b5ze bzeit1 1c2a cab4 ca3bl 3ca2c ca2e3 ca3g2 ca1h cal2a cala3b cal2f3 cal3t 3cam 2can cana3 ca2pe car5n2 carri1 car2s ca3s2a3 cas5to ca3t2h ca1y2 cÃĪ3 cÃĪs2 c1b 2cc c1ce c1ch2 c2d2 c3do 2cec 1ced ce2dr 2cef ce1i ce3in 2cek 3cels cen3a ce3nu cen3un ceo2 1cer cer3a cere1 cere3u ce3r2i ce4ris ce1ro ce3s4h 1cet ceta2 cet1am ce1u 1cÃĐ c1f c1g4 c2h 4ch. 2chab ch3a2b3i cha2ck 2chaf 2ch1a2g 2ch1ak chal6l5ei chan4a 3chanc chan3f ch1ang 4chanl 4chanz 3chao 4char. 3chara 3chard 3charta cha2sc chasi1 1chato 2chatt ch5austr chau3t ch1ÃĪh ch1ÃĪrm ch1ÃĪs 1chÃĒ 2chb 2chc 2chd che3b4 ch3e4ben ch3echt ch1edi che2el 1chef 3chef. che4fer 3chefs 2cheh 2chei ch1eim 4chelem che4ler 3chemi 2chemp che4neb che4nid che2no 4chents 4chentw che2r3a 4ch3erbs 6chergeb 4cherke cher6zie ch3es4s ches5t 4ch1e4ta 2ch3e4x 1chÃĐ 2chf 2chg 2chh 1chia chi3na 4chind 3chines 2chinf 2chinh 2ch1ins 2ch1int 2ch1inv 1chip. 1chiru 2chiso 2chj 2chk 2chl4 ch2le chle2i ch3lein ch4len 4chli ch2lu 4ch2m4 4chn4 chner8ei. 2chob cho2f ch1off chof4s ch1oh cho3l2a ch1orc cho4rei ch1ori ch2os ch3Ãķl 3chÃķr 2chp ch2r4 2chra ch3rad 2chre ch3rh 4chrit 3chromo 3chron ch5ros 4chs ch2spo ch4stal 2cht ch2tru 2chuf 2chuh 2chum 2ch1unf 2chunm 2chunt 2chur ch1urs 2chut chut4t 4chÞ 2chv 4chw 1chy 2chz ci1c ci1es c1ind cins2 c1int ci2s1 1ci3t2 c1j c2k 4ck. c4k1a 1cka. 2cka2b 2cka2c ck2ad 1ck2ag 2ckal cka2m 2ckan 2ckap cka4r1 1ckat ck1ÃĪ 2ckb 2ckc 2ckd 1cke 2cke2c 2ck1ef 4ckeff 2ck1eh 4ck1ei 2ckemp cke4na 6ckensem 4ckentf 4ckentw cke2ra ck2ere 6ckergeb 4ck3er4hÃķ ckerk4 cker6lau ck2ern 2cke2ro ck1err 6ckerzeu 4ckese ck2et 4ckex 2ckf 2ckg 2ckh 1cki 2ck1i2d ck1in 4ckint 3ck4is 2ckk 2ck3l 2ckm 2ck5n 2ck3o2 ckos6t ck3Ãķ2 2ckp 2ck3r 4cks cks2al ck4spen 2ckt ck3te ck3t2i 1cku 2ck1uh ck1um 2ckunt 2ck1up 2ckÞ 2ckv 2ckw 1cky 2ckz c2l2 cle4a clet4 clin2g cli2p1 clip3a clo1c clo2ck clo3f 1clu clu4b c2m2 c3me c3mu 1c2o co2c co3ch co2d2 co3di cof3f2 coi4 co1it co2ke co3la3 co2leu co3l2o com4te. comtes4 con2ne co2o coo1p co1p co1ra cor2da co4re cor3t cos3t co4te cou3si cÃī4 2cp 2c1q 1c2r2 c3rÃĪ c4re2 cre4mes 3crew 2cri cros4 2cry 2cs cs2a cs4f c4si cst2 c1s2ti c1s4tr 4c5t cti2 cti4o2 ction3 ctur6 c6tz 1c4u 2cua cu2e cu2p3 cup1e cussi4 c1w 2cx 1cy c1z 3da. da1a 2d1ab d3a2bak d2abÃĪ d2abe d3a2ben d3a2bi da3blu d3a2bo dab4ra da2bri da3brie d2ab4rÞ d1ac dach3a da2cho 4d3achse 2d1ad da2de da2do da2d4r d1af 2daff da1f4l dafo4n d1ag dagi4 dag2o da1h dah3l dail5 da1in 2d1air da1is da2kro dal2a 2d1a2lar dal3b2 4d1all da2lop da3lÃķ 2d1alp d1al3t 2dalte da1lÞ 3dam da2mei d1amma 4d1ammÃĪ damo3 d2amp damp7f8erf 4d1amt 3d2an. d1ana da2nan da4n4at 2danb dan4ce. d1and2 2danda d2andy 3dane 4d3anei 2danf d1ang 2danh dan2kl dan2k1o dan2kr 2danl d1ann 2danna d1a2no 2d1ans 2dantw 2danw d1anz d2anz. 2danzi 2danzÞ 2d1ap d2apa d2aph da2po da3pos 4dapp d3apte 4daq da4r1a 2darb2 2d3arc dar2d1e dare2 daren1 dar3g dark2a 3darl dar2m1a dar2m1i dar4mu da2r3o 3dars 2d1art dar2th dar2tr da2ru d1arz da1s2 da3sh d1as3p das3s das4t dat2e2 da3tei 4d3a2tel date4n da2th 2d3atl 4datm d3ato dat2st 2d3atta 3daub 2daud dau3e2 dauer3e daue6rei 2d3au2f 2d3aug 2dauk da3unt 2d1aus3 dau2ß 3daw d1ax 3dÃĪc 2d1ÃĪg 2d1ÃĪh 2d1ÃĪmt dÃĪn3a 2d1ÃĪnd 2d1ÃĪp 2dÃĪq 2dÃĪrz 2d1ÃĪ2u dÃĪ3us 2dÃĪx 4d1b4 dbau2c dbauch3 dbe2e dbu2c 2dc d3ch 4d1d2 d3da d3dÃĪ d3de d3dh 1de dea2d de3ar de3a2t deb4 3debÞ de1c de4ca. de2cka de2del de2dit 2de3e4 def4a de2fa. 2d1eff def4l deg2 degene7 de3gl deh2a dehe2 3dehn de3ho 2d1ehr d1ei 3d2eic de3i4den de3il 3d2eim 4deime dein2d de3inse de3inst dein6sta dein6sti 4d3einw de3io 2deise d4e1ism dei2sp 2dekz de2l1ac del4ade de3lak de4l3aug del3ÃĪnd del3b2 del3d del1ec 3de3leg delei4g 2delek 2delem de2len deler2 deler4r 2delf. 2delfm 3delik del2la dell3au del2l1ÃĪ delle2 del4l3eb del4lei del4l3er de2l1ob de2lop del2se del2so del2s1p del3t4 dem2ar 2d1emb dement4 de6mentg dem5ents de3min 2d1emot 2d1emp d2emu d4en. den2am dend2 de2n1e2d de4n3end de2nep 4denerg de3n2es 4d3en4ge. de2ni denk3li dens4am den6scho dense2 4den4sem den6sere den6s5tau 2dentd 2dentf 2dentg den3th 2dentn 2dentw 2dentz den6zers de2ob 2deol dep4l 2depoc d4er. der3af de2rak dera2n de3rand de2r3ap de1r2a4s de4r3asi der2bl 4d1erbs 2derdb de2r1e2b de4reck de4r3ei4s 5d4erem d4eren de4r3end 5d4erer der4erf derer3n der3ero derer4t derer6ze 5d4eres de2r3eu derf4 d4erfl d3erheb d2erhÞ de2r3id derin4f de6rinnu derin8teg der3k2 4derklÃĪ d2erm de1ro derÃķ2 der3r derst2 der3sta dert7ende. derter6e dert4ra 6dertrag der8trage 3de3ru de4ruh de4rum 2d1erz. 2d1erzv d2es. de2sa des1ah de4sam de2s1ÃĪn de2seb de4se2h de2sei de4seil 2d1esel des3elt de3sem de3s4end desen3e de2set de2sin des1o de2sor de2s1p de3spe de3spu dess2 dess4t dest5alt des6temp de5stern des4tex de1sto dest5rat de3stri des4tum de2su des1un 3desw det2 de3ta deten4t 2d1e2th 2d1etw 2d1eul de1un de1url de3us 2d1e2vid devil2 de1x2a de2xer de2xis 2dexpe 2dexpo 2d1f6 2d1g2 dgas3tr d2ge. dger2 dge3s d2gesh dge2t3a dge4t1e 2d1h2 dha1s4 4dho d3hu 1di di4ap di2a3s4 diat4 di4ath 3dic di1ce di3chl dicht6er di4ck3el 4d3i2co 3dida d1ide 2didee di2den 2didy di2e di3e4d di3enb die4neb diener6l di3e2ni dienst5r die2p di3ers. dies1c di3e4th 3dif 3dig dige2s dig4n dik2a dil2s3 2d1imb 2dimp din4a 2d1ind di3n2e 2d1inf 3ding 2d1inh di3ni 2d1inj 2d1ink 2d1ins 2d3int 2d1inv di2o3b dion3in dion3s4 di3ora dios2 di2osk di1p2 di3pt d1i2ra di4re. di2ren di2rin di2ris 2d1irl 2d1irr di2s1a2 2d1iso di2sp di3s4per 2d1isr dist2 di1s4ta di2s3te di4stra di4sz di2ta dite1c di4t3erl di4t3erm di4t3ers di1the di2tin di2tob di4t3r dit3s di2t1u di5v2 di3z2 2d1j d2jar 2d1k4 4d1l2 d3la dla3g dlap4 d3le dle2ra dli4f dl3m dl3s 2d3m2 4d3n2 dni2 dnis1 do5at 2d1ob 3d2oba dob2s d1of do2fe 2d1oh do3ha dole4 doll2 dol3la d3o2ly 3dom do2mal do2mar domen1 do4ming 4domn do2mu don2a do3nan doni1e 4dony 2dope 2d1opf do1r4a 2d1orc 2d1ord dor2f1a dor2fÃĪ dor2f1i dor2fl dor2fo dor2fr dor2f3u 2d1org d2orn 2dort dor4ter dor4tr d1os2 d2os. 2d3osm dos3s dos4t1 dost3a dosten4 do4stu do3ta do2tof do3un dow2s d2o3x2 d1Ãķ dÃķ2d dÃķ2f dÃķl1 dÃķll2 d2Ãķn 3d2Ãķr dÃķ2s1c 4d3p2 dpass3 dpol4n dpost1 2d1q d2r4 3d4ra. 3d4rab 4d3rad 2drahm 2d3rak 3d4ral d3ramp d3rand dran3k 2d3rast dra4tin 2draub 2d3rauc d4rauf 2draum 2draup 2drÃĪd d4rÃĪh 2d3rÃĪt 2d3rÃĪu 4dre. 2d3rea d4rea. d4reas 3d4reck 2d3ref 4dreg 3d4reh dre2ha 2d3reic 3d4reie d4reiv d4rej dreli1 4drem 4d3ren d4reo 4d3rep 4d3rer 4dres. d4resc dres6sei dres6sel d4rew 2drez 2d3rh d4ria 4d3ric d3rieg 3drif 4d3riff d4rift 4d3rind 2d3rip 2d3risi 2driss 2d3ritu 2d3rob d3rod 2drogg 2drohr 3d4rohu 2d3roll 2d3rose d4ross 2d3rost 2d3rot 2d3rou 2d3rov d3row drÃķ2sc d5rub 3d4ruc 2d3rud 2d3ruh 2d5rut drÞ1b drÞ5cke 3d4rÞs 2d1s 4ds. 4dsa ds3ab d2s1ad ds1al d2salk d2sall d4s1amt d2san ds3ane ds3assi dsau2 d2saut ds1ÃĪn ds2ÃĪu 4dsb d4schef d4schin d3s4co d2scr d2s1e2b dse2e d2s1ef ds1ehr ds4eign d2sein d2s1emb dsen3er d2s1eng d2s1ent d2s1erf d2serh d2s1erk d2s1erl ds1err d2s1ers d2s1ert d2serz dse4t d2s1eta d2s1ev d2sex d3sha2 ds2hak d4shal d3sho d4shor 4dsi d2sid d2s1im d3s2inf ds2kal d3s2kel d4sko 4dsl d4sli d3soh d2sop dso2r ds1ori d2sÃķ ds1pas d2s1pat d2spÃĪ d2s1pec ds2pen d4speri d2s3ph d3s2pi ds2por d6sporto d3spri d2spro ds2pu dss4 dst2 d4stag d2stas ds3tauf d4s3tÃĪti d2ste d3stec d3stei d4steil d5stell d4stem d4sten d3s4tern ds2ti ds4til d4stoch ds4tol d5strei d3s4tro ds2tur dsu2m d2sun ds1url ds2zen 2d1t dta2be d3t2ac dtach3 dta2d dt2ag dta2n dt3ane d3t2as dt2ax d5tea dte3mo dt2et d2th d4thei d3to2 d4tob dt2op d3tÃķ dt3r dtran2 dt3sa dt5st dtt4 dt2un d3t2ur d3tÞ d3ty 1du du1alv du1ar du2b3li du1ce duel3la du2f 2d1ufe duf4ter duf4to duf2tr 2d1uh du1i du2in du2kr dul3art 2d1umb 2dumd 2d1u2m1e 2dumf 2dumg 4d3umk 2duml d2ump 2dumr 2d1ums d2ums. 2d1umv du2n 2d3und 2d1unf dung4 2dungl 2d1uni dun3ke dun2kl 2dunr dun2s 2dunsi dunst3r 2dunt 2dunw 2d3unz du1os dup4 dur2 dur3au durch3 2d1urk 2d1url 2d1urn 2d1ursa 2d1ur3t du4schn du4schr du4sch3w 1dÞ 2dÞb d3Þber 2d1v2 2d1w dwa2 dwa4r dwer3te dwes2 dwest1 1dy dy2l1 dym3 3dyn dy2s1c dy2sp 4d3z2 2e1a ea2be ea2b3l ea4br ea2c eadli4 e3a2dr ea2g ea3ga4 ea3g4l eakt2 e2akta e3akto ea2la e3alei e4alem ea4l3ent ealen4z ealer2 e3a4lerg e3alex e3a2lin eal1o ea2lon ea2lop e2alti2 eal3tr ea2l3u2 eam3 e2am4e eam1o eamt2 ea4na ean3a2r e3anf e2ano e3ar. ea2ra ea3rat e2are e4are. ea2r1ei ea4rene e4arer e4ares ea2ro e3arz e3a2sc e3asf easin4 ea4sp eas3s eate2 eater1 eat4mes eat2mu eat4mun ea5tr eat3s2 e3at5t2 eatu2 e3aue e3auf eau2fe eau4fl e4aufo eau3n e2av e2az e3ÃĪ2 e1b 2eba e3bak eba2p e3bÃĪn 2ebec ebe1er ebein7h eb2el ebe4ler ebe2lo ebels4t ebel5ste ebenen3 ebe4ras ebert4 ebese2 ebe4s3eh ebe2so 2ebet ebet4s 2ebh 2ebi 2ebl e3blÃĪ eb3le. eb3ler eb4leu e3blie eb3lo eb2lÃķ 2ebo e2bob ebot2 ebÃķ2s 2ebr e5brau eb4rea eb2s1 eb4sche ebse2 ebs7panne ebs3tau eb4stÃĪt ebs3tem ebs3t2h ebs3ti eb3str 2ebu e2bunt ebu2t3 eby4t 2e3ca 2e3ce ech1am ech1ÃĪ 2e1che ech1ei ech2en1 e6ch5erzi e1chi ech3l ech3m ech3n e2cho. ech3Ãķ2 ech3r ech4ri echs4er echst5re ech3tab ech3t4ei ech6terh echter8ha e1chu ech1w 2echz e1ci eci2a ec4k ecke4n1 e4ckerr eck3ser eck4sta 2eckt 3eckty 2e1cl 2eco 2e3cr ec1s 2ect e1d ed2a ed2dr ed4e ede2al ede3n4er edens1 eden4sa eden4se eden4sp edeo2 ede2r eder3a ede3rat eder3t2 edes2t ed2i e3di. 2edip edi6teng e3d2o ed2Ãķ e3drei ed4rÃķ ed2sal ed4seh ed2s1es ed2si ed2s1o ed2s1p ed2sto ed2s3tr ed2s1u edun3 edund2 e3dy3 edys4 2ee ee3a4 eeb2l ee1c ee4ce ee2cho e1e2ck eede3 eede1s eed3s2 ee1e2 e1eff eef4l eeg4 e1ei ee2i3e eein4se eei4sc eeis3s e2ela eel2e e3e2lek eele4n eel2Ãķ e2e3m2a e1emb ee3min e1emp e1en eena2g e2enÃĪ e2enc een1e e3eng ee3ni e3enk e3enl e2eno4 een3s een2z ee3o e2ep ee3po eer4at e1erbt e1erd ee3re eer1ei ee4r3en4g eer2e2s eere2t eer3eti e1ermÃĪ ee1ro ee1rÃķ e1erÃķf eer2Ãķs ee3r2un e1erz ee1s2 ee3sh ees3k ee3sp ee3s4t e2et. ee3t2a ee4tat ee2th eet2i ee3t4r ee2tu ee1u2 eewa4r e1e2x e1f e2f1ad e3fah ef1ana ef1ar e2farc ef3arm e2fat 2efÃĪ ef2ÃĪl e2fÃĪu 2efe e2f1e2b e3fef efe4l3ei ef1em e2femi efe2n1 3e2f1ene e2fent efer5f eferin6d efeuil4 3effek 1effi ef2fl ef3flu 2efi ef1id e2f1ins efi2s 2efl ef4le e3f4lu e3flÞ 2e3f2o 2efr ef4reih ef3rol ef3rom ef4ru ef4rÞ efs2 efs4c ef3so ef3sp ef2tan ef2tei ef2tro 2efu e2fum e1g ega2m e3g2anz egd4 e3ge egein3 ege4lan ege4l3au ege8l7ei8er ege4ler ege2lo eg2en ege4n1a ege6nero ege2ra ege5stal ege4s3tr ege1u 2egi 2egl e2glo e2glu e2gn eg3nÃĪ eg3ni ego1p eg4sal egsau3g eg3se eg4sei egse3l eg3si eg4sk egst2 eg4sto eg2th egung4 egus3 2e1ha eh1ach eh1ad eh2ade e3h2ah eh2al ehalt4s e3hand e2harz e3haut e1hÃĪ e1he eh1eff eh1ein eh1elt e4hense e4h3ente ehen6tr ehe3o 1e2hep 2eher ehe1ra e2h1er2f e2h1er2l ehe3str 2e1hi eh3im eh1lam eh2l3au eh1lÃĪ ehl3ein eh4lent eh5l2er ehlo2 ehl1or eh2lÃķ ehl2se ehls2t 2ehm eh2mab eh4mant eh3mu eh3na eh3no 2e1ho eho2f eho2l eh3oly 2e3hÃķ ehÃķ4rer eh2r1a2 ehr1ÃĪ ehr1e2c eh2rei eh2rel ehr6erle ehr4ern ehre3s eh4rin eh1roc ehr1of eh1rÃķ ehs2 eh3sh eh1ste 2eh3t2 eht3h eht4r 2e1hu e2hum eh1unf e2huni e3hur e1hÞ eh3Þb eh1w e1hy 2ei3a2 eia4t ei2bar ei2bli ei4blu eibu4t ei4b3ute e4ic ei1ce ei2cho e2id ei2d1a ei3de ei4deis eid5erre 2eidn ei3do ei3dr ei1e eie2b eie2d ei3e2l eie2m 4ei3e2n3 eienge4 ei3es eie2t 4eif. ei1flo 1eifr eif3t 2eig. 2eiga eig2ar 2eigÃĪ 2eige. 2eigeb 2eigeh 4eigeno 5eigensc 4eig2er 2eiges 2eigew 2eigi 1ei2g3n ei2go ei4g3rat 2eigre 2eigrÃķ 2eigru 2eigrÞ 2eigs 2eigt 2eigu 4eih ei2hum ei2kab ei2kak eik4am eik2ar eik2i eik2l ei3k4la ei3klÃĪ eik2o e2il 4eil. ei4l3ab ei2lam eila2n ei4l3ane ei4lang ei4lanz ei2lar 2eilb eil3d4 ei4lein eile2n1 ei2let eil3f4 eilm2 ei2lob eil2Ãķ 2eim. ei2mab ei2m1ag eim3all eim3alp ei2m1or 2eimÃķ 2eimp eim2p4l eim3sa ei2mur e4i2n1a ei4na2d ei4nae ei4n3an ei4na4s ei4n3at ei2n3ÃĪ ein3d2e ein6derk e1indu 2eineb einen4e ei4n3en4g ei6nen6se ein5erbe ei4nerf ei4nerk ein5er6la einer6sc ei2neu ein4fiz 2einfo ein4fo. ein4fos ein3g2 3einger e2ingr e2inhÃĪ ei2nie e1init ein3k4 ein6karn 3einkÃĪ e2inl ein3n2 3einna ei2n1o2 1einri e6insa 3einsat e2insc 5einschÃĪ ein6stal ein6terv 3eintÃķ 1einu ei3o eio2p eio4s ei1p eip2f 2eir eir2c ei3re e1irr e4is. ei2sa ei3sas ei6schwu e4ise ei4ser4g ei4s3er4l ei6s5erst ei4s3erw 1eisho ei3s2ky ei2so eis2pe e2iss eisser6s 4ei1sto ei2sum ei2sur 1eiswo e2it ei2t1a2b ei2tal ei2t1an ei2tap ei2tar ei4tat 2eitÃĪ ei2tÃĪn eite4ra ei4tess ei2t1h ei2tin eito2 ei4trau ei4tro eitsa4g eit3t4 4eitu ei4t1um ei2t1ur eit3z2 eiv2 eive4 ei2zar eiz1in 2e3j e1k 2ek. 2e3k2a 1ekd ek2e e3ke. e3ke4n e3kes e3key e3k2l ek4lo ek4n e3k2o ekor4da 2e3kr ek4s1p 4ekt ek2tan ek5t6ante ekt3at ek2t1ÃĪ ek2te2l ekt3erf ekt3erk ek4t3er4z ekt2o ek2t3o4b ek5tri 2e3ku ekur2a e3k2w 1ekz e1la el2abt el3abu ela2ck el3ader el1af ela4h e2l1ak e2l1a2m el2a3mi e3lamp el1ana e4landa e2lanm e4l1ans e2l1ant e4lanw el1anz 2elao e2l1ap e2l1ar el3a2ri ela2s el1a4si el1asp ela3su el3aufw 2e1lÃĪ 2elbil 2elbr 2eld elda2r eld3ari eld4arm el4d3erf elder4p elder4s eld5erst el3des elds2 4e3le. 2e3lea elea2r 2e3leb 4ele2c el1ech 1elefa eleg3s 4eleh el3ehe. 2elei e6l5ei6ern e2l1ein e3leine e5leit 1elek 2eleko e2l1el 1e2lem 2e3lem. e3lema ele2mi e3lemm 2el1emp 2e3len. elen4k3l e4lense e2l1ent e3lep 2eler e3ler. eler2a el1erd e6lereig el1erf e4ler4fa e4lerfi e2lerg el1erh el1erk e2l1erl e4l3ernÃĪ eler2Ãķ e2l1err el3eru el1erw e2l1ess e2l1e4ta ele2ti elet4ta 2el1ex e3lex. 1elf. elf2er 1elfm elf4r 1elft elgi5er. elgi5ers el3g2l elg4r e2l1id 2e3lie eli3ef. 2elig e2lim elin3a eli3no el1ins 2elk el4larb ellar4t el3lÃĪr el5le. ell2ei ell3ein ell3eis el4lel el5lend ellenen5 ell2er eller8fas eller7g ell3erh el3les el2lim 1ellip el2lor ell2Ãķ ell3sp el3ma elm2e elm3ein 2eln el3na 2elo e2l3oa e2lof e2lol e2lom e2lonk el1opf e2l1or e3lore elo2ri e3lot e3l2ov 2elÃķ elÃķ2s el3p4 el4s5ein el3sen els4tri el2sum el4tans elte4m el5ten. el4t3ent elter4b elter4f elt3erh elter6le 3elter4n elt5ero elter6sc elte2s el4tesc elt3eth el3the el5tri elts3pa 2e1lu el1uf e2l1um e2l3u2r elu2s el3use elu2t el3uto e1lÞ 2ely e2lya el3z2ac el2zar el4zene elz1in el2zwa 2elzy e1m e2m3a2b e2m1alk em3anf e2m1ano em1ans 1emanz e4m1a4s3p em1au 2e3mÃĪ em2ÃĪh 1emba 1embo 1embry em2dÃĪ emd1r em2dra 2eme e2m1e2b e2mef eme2i e2mele em2en emen6gel emen4t3h eme3r2i e2m1er2l em1erw e4mesu 3e2meti e2m1i2d emi2ei e2mig emik2 em1im 2emin emi3n2a e3mind em1int 1e2mir e3misc emi3tr emma3u em2m1ei e2moa e3mol emo3s 1empf4 em3pfl em3po empo1s em2sa em4scha em4sei em2sim em2spr em2st ems5tr ems3tro em3t2 1e2mul 3emuls emune7 e3mur 2emÞ e2na 4ena. e4na2b en3aba en3abo 4ena2c en3ache e4n3ack enadi4 e4naf 4enah en3ak en1al enal2a e4nalb e3nale en2alg ena3l2i e4nalk e4nalm e4nalo enal3p 4en1am ena4n e4nand en3ane e4nant e4nanz en1ap ena2pa en3are en3ark en3aro en1as ena2sc e4nast 2enat 4e5nati e4natl enat4s e4n3att 4enatu e4nau2f en3aug e4n3aur e6nausta e4naut en1a2x en1a4z en1ÃĪ en3ÃĪb e3nÃĪi e2nÃĪr en2ÃĪ3s en3ÃĪst en2ce. end2ac en2dal en4dang 2endel ende4lÃĪ en4d3es4s en2dex en2did en3d4ort end3s4au end3s2l end3s2p end3sz en3d2um en3d2Þ 2ene. en3e4ben en1e2c e2neff ene2h en2eid e3neien e4neige 4eneigu e4nein e4neis e2n1el ene4le 2ene2m e2n1emi 2enen e4nense e4n1ent en4entr en3envi en1ep 4e3ner. en2era e2n1erd en3erei e2nerf en4erfr 1energ e2nerh e2nerk e2n1erl e4nermi e4n3ermo 4enern e4n3erne ene2ro e2n1err en1ers 4eners. e2n1ert en4ert. e2n3eru e2n1erw 2enes e3nes. e2n1e2sc e2n1esk e2n1ess en1eta e2n1eth en1eul e2n1e2v e4ne2x en3f enf2u 1engad 1engag en3g2al enge3r4a en3g2i en3gn en3g2o 1engp eng4ra eng3se 2eni e3ni. e3nic 4e3nie eni3er. eni3erp eni5ers. en3i2ko en3ill eni4m en1ima en1imi e2n1in e3nio eni2Ãķ e2nir eni4sa e4n3iso e3nit2 e3niv enk3aus 3enkeli enk3erg en4k3erk en3k2Þ en2nef en2nel en4ner4f enn3erg en4n3erl enn2i enni6ger 2enniv enns2 enn3ste e2n3oa e2n1ob e3nobel eno2br e2nof en3olm eno2ma eno4n e2n1op e2n1o2r en2ora eno4ri 4enorm e2n1ost 4e3not eno2w 2e1nÃķ en1Ãķ2d en3sabb en2san en5sche en2seb 1ensem ensen3e ens3ere en3spo ens4por enst5alt en4s3tÃĪt ens4tel ens6temp ens2th 2ensto enst2Þ en5t2ag en4tanm en4tanw en3t4ark 1entd en3t2el ente2n 3entera en4terb 1entf 2entfo 1entg 3entgeg en2thi 1enthu 1enthÞ en4t1id 3entla 1entn en2tob entopf3 en2t1os 2entÃķ en4t3rol 1entsc 1entso ent4sto 1entw 4entwet 3entwic 1entz e2n1u e3nu. e4nu4r 2enu4t e4nuto e1nÞ enÞ1st 4enwÞ 2e1ny en3zare enz2ÃĪp 1enzep enz3erg en4z3erk en4zerl en4z3erm enz5ersc enzi2d enzlan4 enzo2l 1enzy e1Ãą 4eo e1o2b1 eo3ben eo3bl eo3bo eo3br eo1c eoch2 eo3dr e1of eo3g2 e1oh eo3la e3o2ly e1on e3o2nat eo1o e1opf eop4r e1or e3or. eo1ra e3orb eorgi1 e3ors eort2 e3orw eo1s2 e3os. eo3se e1oste e1ou4 eo1ul e1Ãķ4 e1p 2ep2a epa2g epas6ser 2eper e3p2f4 e5pfi 1e2pid e2pig e2pik 1e2pile e3pio 1epis 2epist 1e2pit ep3le 1epoc eport4 1e2pos. ep2p1a eppe3l ep2pl ep2pr 2epr ep3sh ep2tal ept2an ep2tau 2e3pu epu2s 4e3q er1a e3ra. era2be e2r3a2ch e3rad. e3radi e2radj e2radm e4radmi e4r3adr eraf4a era2g e1rah e1rai er3aic e3rake e1rald eral4eb er3alke e2r3all er2an. era4n4a eran3d e3rand. e4rangr e2ranh e2rano e1rap er3apa er3apf e2rar er3are e3rari e3ras. era2si e1rast era2ß e4ratel e2ratl e1raub e1rauc er3aue erau2f er3aug e2ra2v e1raw e2r3ax e1raz e1rÃĪ er1ÃĪf er1ÃĪh er1ÃĪ2m er1ÃĪp e2r1ÃĪs er1ÃĪtz 3erbarm erb2au erb2e 2erbru erb2sp er1c er3chl erch2o erd2am erda3me 1erdb 2erdec 2erdel er4d3en4g erd3erw erdes4t erdeu2 1erdg erd3st 2erdy 4ere. er3e4ben e3r2ech er3echs er1e2ck er1edi ere4dit er1eff e2r1e2h ere4i 4e3rei. e3reib er1eig 4ereih e4r3eime e4reink er3eis. er5eisar er3eisb er3eisf er3eisr erei5str e4rek er1e2l e2rele ere3lev ereli1 2erem 4erem. er1emi ere4mis e2remp 2eren 4e3ren. e3rena eren1e e4rense e4rentn e4rents e3renz eren8z7en8d er1epe 4erer. 2ererb erer3fa e4r3erfo e2rerh e2rerk e2rer2l erer5lau 4erern. e4rerne e2rer2o erer4ri er1ers 4erers. e8rersche e2rert 2ererv 2ererw 2eres 4eres. ere2sp er1ess eres3sk er1eta er1eu ere4vid erf2e 4erform erf4r 4erfÞr er4g3are 4ergebi 3ergebn 4ergebÞ 4ergeha 4ergehÃĪ ergel4s3 erg5elst 4ergeni 2ergn er2gop 4ergrem erg1s erg3s2o ergs2p ergs4t e4rh 1erhab er3hag 2erhai 4erhals 2erham 2erhan 2erhas er3hei 2erher er3hu 2eri e2riat e3rib 4e3ric e4r3ico er1id 4e3rie eri3en1 e3ri3k erik4l 4e3rin. e2r1ind e2r1ini er1ink er1inl er1int er1inz e2ri2on 4eris e2riso e2risr er1ita 3eritr e3riv 2erk. 2erkaj er3ker 1erklÃĪ 2erkm 2erkre erk5t4 er2kum 2erl. 2erlag 3erlebn 4erleh 2erln er3m2 ermen4s er4m3ers er4n3alt er3ne er4nene er4nerf er4nerk 3erneue er2nob erno2r ern1os 2e1ro. e1roa er1ob ero2bl ero2br e2r1o2f e1rog e1roh e1rok e1rol er3oly e1rom er3omb 2e3ron e2r1oo er1op 2e4ro4r eror2a e1ros 1erosi e3rosit e1rou e1row er1o2x er1oz erÃķ2d 2erÃķh erÃķ4l er1Ãķs erÃķ2sc er3p er3rÃĪ 2erren er3ro 2errÞ er3s2a ers4ana ersch4 er5schn 4ersei ers2el er3sen er5s2i er3sk 4ersted er3stel erst5ers 4erstil ers4tod ers6tr er3swi er3sz ert1ab er3tat er4t3erf er4t3er4g er4ter4h er4ter4k er4ters ert1h er2tho 4ertÃķ er5tri 4ertru erts2e erts2p 2eru eruf4s3 e4r3uhr er1u2m1 er1und e4rundu erung4 er1up. er3ur er3use e2r3uz erÞ4b 3erweck er4zerk er4z3ers es3ab e4sabe e2s1a2d e3saf es3ak e4s3all es1ami es3ampl es2ank es2anm es2anr es3anz e3sap es2apa esa2ra e3sa2s es2ast esa2v es1ax 2esb esbi5er. e3s2ce esch2 es4chi e2s3ec es1ehr esein4s es2el ese4nal ese4neu esen3o es2ens esen3sk esen3th eser4at ese4r1u2 eses2k e2s3e2x 2esf 2esh es2har es3he 2esi esi1er e2s3i2k e2s1il esi2st es2kat e4s3ke e4s3kl es3ku e4s3ky es3l 2esm e2s3oa e4s3ob e2s1od es2oh eso2r es1ora eso3re es2ort e3sot e3s2Ãķ 4esp e3spal es4park es2pek e4spers e2sph e3s2pi e3s2por 2esr 2ess. es2s1ag essali3 essau4s 1essay 2essÃĪ 2es3sc ess6ere ess4erf ess3erg ess5er6la 2essk 2esso es2sof 2essp es2s1pa es2spu es4stab ess3tie es3stu estab4b esta3ge est1ak es4tanb es4tang e4stant e1st4ap e1star e4starb e2st1a4s e1stat e4stat. e4staum e4staus es2tec este4i est5eing est5eink est5einl e1ste2l es4t3emi e4sten es4t3eng est5entr est5erha es4ter4Ãķ es4t3erz es4t3ess es2th es2tid e4stig e1stil e2stip es2tis estmo6de 1estn e2stom e3strec es4tri e1strÃķ e1stu est3ums es2tur e1s6tÞ e3sty e3suh e2s1um es3ums es3unt es1ur esu4s 2es3w e3sy es3z es4zene 2e1ß e2ß1el e2ßent eße3re e2ß1er2g e2ß1erl eß3t e1t etab4 eta2c 2e3taf 2etal et1ami et4an. et4at etat3r et1ÃĪh 2e3te ete2e e4t1ef e4t1ein ete3ke eten3d2 ete2o eter4hÃķ ete1ro eter4tr ete2s 2eth. et2ha e4t3hal e3the et2hi e4thik 3ethn et2hu e4t1i2d eti2m etin1 et1ini et2it eti2ta eti2th et3l 2e3to e2tob e4t1o2f et4on eto4n3al etons4 e4torg eto2s 2etr et3rad e4traum et3rec e2t3res et4ros ets2c etscher7e etsch3w ets1p et2spe et2ste ett1a et2ta2b et2tad et2tak et4tans ett2as et2tau et2tei ette4n1 ett4er et2t1h et2t3r et2t1um 3e2tui e3tur e3tÞ etwa4r 1e2tym 2etz et2zw eu1a2 eu3b4 2euc euch4ta 2eud eude1s eudi4e 2eue eu2eb eue6r5eif eue6reis euerer6s euerer6t eu3eri eu3erk eu3err eu2esc 4euf eu2fer eu2g1a euge4mi eu6gense eu3g2er eugin2 eugin4f eu4gin4g eu2gre eu2gri eugs4 eug3sp eu3h eu1id eu1in1 e4uk 1eukal eu2kÃĪ eulan2 euland3 eu3l2e eul2i 2e1um e3um. eu3m4a e3umb e3umf e3uml e3um2s1 eum5st e3umw 2eun eu2na eun2e eu4nei e3un2g eu2nio eu4nis eunk2 eun3ka eu1o2 eu1p e1up. eu3p2f e3upg eu4r1an eu4r3ast eura3t eu2rau eur1c e2ure euren2 eu4rens eur4er eur3f4 1euro 2eus e3usar eusch4o eus2i eu4sk eu3sp eust4 eu1sta eu1sto eu1s4tr 2eut eut2e eut2h 3eu3tha eut2i eu5t2o eut6scha eut6schn eut6schr 2eux eu2za eu2zo eu2z1w e3Þ e1v e2vak e3var eva4s3 2ev2e eve5ri evie3le 2e3vor e1w ewÃĪ2s e2we. ewei4sc ewert4 ewer3te e3wir ewi2s e3wit 2ex. 1exam ex3at 2exc 2exd e2xel ex1er 2exes e1xi 2exik e2xil e2x1in e3xio 1exis ex3l 1exp 2expu 2exs 2ext. 2ex2ta ex2tin 1extr 2extu 2extv 2exu e2xum 2e1xy 2ey1 eyl2 ey2n ey3no eys4 e1z e3z2a ez2ÃĪ e2z1enn e3zi ezi2s e3z2o ez2w ez3z2 ÃĐ1b ÃĐ1c ÃĐ1g ÃĐgi2 ÃĐ1h ÃĐ1l2 ÃĐlu2 ÃĐ1m2 ÃĐ1n ÃĐ1o ÃĐ1p ÃĐ1r2 ÃĐ1s ÃĐsi2s ÃĐ1t ÃĐ1u2 ÃĐ1v ÃĐ1z2 ÃĻ1c ÃĻ1m ÃĻne1 ÃĻnes4 ÃĻ1r 1ÃŦn ÃŦ1t Ê1p Ê4t 1fa fab4 2f1ab5b fa2ben 2fabf 2fabg 2f1a2b5l 2fabn 3f2abr 2f1ab5s 2fabw fa4cheb fa4chel fa2ch1i fa2cho fach3s4p fa2dan fa2del f1ader fa2di fa2dr fa3e fah6l5ent 3fahre 5fahrt fai3b f1a2ka fa2ke f3aktio f4akto 3f2aku fa3la fa3le fal2kl fal2l1a fal4l3ei fall5ent fal6lerk faller6s fal6scha fal6schl fal6schm fal2tr fa2mei f1amp f1amt 3f2an. fa2nar fand2a f2anf fan2ga fan2gr 2f1an3k 2fanl 4fann f1anp 2fanr 2fanw 2f1an3z 2f1a2p f2ar far2b1a far4bel far4b3er far4bin farb1l far2bo far2b3r far2b3u f3arc 3fa5ri far2r1a farr3s 2f3art 2f3arz fa3s4a fa3sh fa2st 2f1astr fa2ß f3at f4at. fa2to f4ats 2f1auf f3aug fau2s f1ausb faus4t3r 3f4av fa2xa 1fÃĪ 3fÃĪ1c fÃĪh4rin fÃĪh2ru f1ÃĪlte 2fÃĪq 3fÃĪrb 2f1ÃĪrm 2fÃĪrz fÃĪsser4 fÃĪs6serk fÃĪs6serw fÃĪ2ßer 2f1ÃĪtz 2fÃĪug 2fÃĪx 4f1b4 fbau1 fber2 2f1c f3ch 2f3d4 fdien2 1fe 3fe. featu4 fe2c f2ech fe3che fe2del fe2dr fe2e1i feein5 fe1em 2f1e2he fehle2 feh4lei f2eie f2eind 2f1eing fe3ini fe3ins. fei4nu 2f1einw f1eis fek4tin fe2l3a2 fe2l1ÃĪ fel2da felde4m feld6erh fel2dr 2fe2lek 2felem fe2l1er fe2les fe2l1o fel4s3oh fels2t felt4 6fel6tern f2em. 2femb fem4m 2femp fen3a fe2nÃĪ fend2 4fenerg fe2ni fe2no fen3s2a fen5s2c fenst2 f1ent fen3t2a 2f3entf f2enti 4fentla f2ento 2f3entw 4f3entz 3fep fe2pi f2er. fe1ra fe2rab fer3a2d fe2ral fe4rang fer4ant fe4ranz fe2rau fe2r1ÃĪ 2ferd. fer3da fer3d2e3 f2ere fe2r1e2b fe2rec 3fer2ei 4f3ereig fer3eis f4erel fer3ell fe4rer4g fer4fah fer4fol ferg4 f4ergr feri2d ferie4n3 feri4on 4fer4leb f2ern. fer4nei fe2rÃķ f4erpa f4erpf f4erpl f4erra fer4reg ferri2 f2ers. f2ert fert4r f2erz fess2e fe2st fest3a4b fest3an fest3ei fes4tel fes4t1o fes4t3r 2f1e2ta fe4tag 3fete fe2th fet4t3a fetti3s 2feu. feuer3Ãķ 3few 2f1ex fe1y2 3fez 1fÃĐ 4f1f ffab6s ff1a2d f3f2ak ff3ar f3fas ffa2t ff1au f2f1e2b ffe2e f2f1ef f2f1ei ffe3in. f5fek ff1e2m f2femi ff2en ff3erle fff4 ffi3k f2fim ffin3s ff1lag ff3le ff3li f3flÞ ffo2r ff1ox f3f4rÃĪ ff3ro ffs2am ff2s1p ffs3tie ffs3tut ff3stÞ ff3t2 ffus3s f2fy 4f3g2 fgeb2 fge3s fglim2 4f3h2 1fi 3fi. fi4ak fi2ar fi3at fid4 fi2do f2ie fi2e1i fien3 fi1er2f fi2gr fi2k1as fi2kel fi2kin fi2kn fi2k1o4 fi4k3r f2il fi2l1an fil3d fi2les fil2et filg4 fi3li fi4lin fil2ip fil2ma fil2mÃĪ fil4med fil4mei fi2lo 2fimp 3f2in2a fin2e 2f1inf fing2 fing4s4 fi3ni f2ink fin2s fin3sc fin3sti 2f1int fi2o fi3ol fi2r fi3ra fi4re fir3me fi3s2a fi4sch3a fi6schei fisch3o fi4schr fi4sch3w fi3s2h 2f1iso fis2p fi2s3t fite2 fi2tin fit1o2 fi4tor five4 fi2xel fi2za 2f1j 3f2jo 4f1k4 fka4t3 f2l2 2fl. f3lad f5land f4lans f3lap f4lasc f3lats flauma4 1flÃĪ 3f4lÃĪc 4flÃĪd 2flÃĪh 2f3lÃĪn 2flÃĪr 2f3lÃĪu f5le. 2f3leb f4lee 2f5lein flek3 flekt2 f3ler f4lex f3li. 3f4lim f3lind fli4ne f3ling 2f3lins 2f5lon 1f4lop 1floß 1f4lot flo2w f3lÃķ 4flÃķf f4lÃķg 3f4luc f3luf 1f4lug 1f4luss f4lut flut1o f4lÞ f5lÞm fly1 4f3m2 fma5che fma2d 4f3n2 fni2s 1fo f1ob fo2be 2fober fob2l 2f1o2f 5foli3 fo2na fo4nan fon3au fon3dr fo4n3in fo2nop fons4 fo2nu 2f1op 4f3org 3form for4m3a4g for4mas for4m3ei for4min forni7er. for6schl for4st for4t3ei for4ter for2t1h for2t3r fort3s2 for3tu for2u fot4r 1fÃķ 2fÃķ2f 2f1Ãķk 4f1Ãķl fÃķr4s5 4f3p4 2f1q f2r4 f3ra. frach6tr 2f3rad 2f3rah fra4m f3rand f5rap fras3ta f3rat 1frau. f3rauc 2frÃĪd 1f4rÃĪn 2fre. f3rec f3red 2fref f4rei. f3reic f4reie frei1f f4reig frei3k2 2frein 2frek 2f3rep 2frest 3f4reu 2f3ric fricht6e fri3d fri2e 2frig f4ri3k f3rip 1fris f4risc f4rist 2f3roc 2frol 1f4ro2n fro4n1a f4rop fro2s f3rot frÃķs2 f3ru f4ruc f3rÞ 4f1s f2s1al f2sa2n fs3ane f4s3ar f2s1a2s fsa2t fs3ate f2saut fs2ÃĪn f3sc f4sca f4sce f4schan f4schef f4schro f4scr f2s1e2b fse2ei f4s1ehr fse2n fs1en1e f2s1ent f2s1er fse4t f2s1eta f2s1i4d f3s2ky f2s1o2 f3soh f3sol f3spann f2s1pas f2sph f3s2pl f3s2por f2spre f2spro fs2pul fs3s4 fs2t fst2a fs3tak f2stas f3stat fs3tÃĪt f4stÃĪti f3stel f3stern fs3th f2stip fs4tol fs4tor fst4r f4s3tres fs3trÞ f4stÞte f2s1un f3sy 4f1t f4ta. ft1a2be ft1abl ft1af ft2ag ft1ala ft1an f2t1ap ft1a2r ft3att f2t1ÃĪu fte2c ft1eck ft1edi ft1eh fte2he ft1eig ft1ein ft1eis ft1eli fte3ma ft1emi f4t1ent ft3erfÞ ft1erk f2t1erl f2t1erz f2t1e2ti f2t1ex f2t1h f4t3hei f2t1id f3tik f2tim f2t1in ft2ing fto2 f2t1of f2t3ot f3t4ran f2t3res f3treu ft4rit ft3ro ft3ruh ft2s1 ft4sam ft3s2c ft4sche ftse2 ft4seh ftsen1 ft3st ft4staf fts3tÃĪt ft4stei ft4stem ft6stier ft6s5treu ftstro4 ft4stru f2tum ft1urk ft1url f3tÞ ftwa4 ftwa6r ft3z2 ftze3d 1fu 3fuc 3fug f2uh fuku3 fulb4 f1um1 fu2mei f2umm fund3er fun6derg fun6derh 2f1unf fung4 2fungl 2f1u2ni fun2kl fun2ko fun2k3r fun2ku 2f1unm 2funr 2funt f2ur furch2 fu4re. 2f3url fus2sa fus2s1p fus2st fu2ß1er 3fut 1fÞ 2fÞb fÞhl4sc fÞn2 fÞ2r 2f1v 4f1w f1y 4f1z fz2a fzeiten6 fzei8t7end fz2Ãķ fzu2ga fz2w 3ga. 2gabf 2gabg 2g1a2b3l gab2o g1abr gab4ri 2gabsc g2abt. 2gabtr ga3bu 2gabw 2gabz ga1c gade2r ga3d2i gadi4e ga2dr gae2 ga1fl 5gag. ga1k ga2ka ga2ku gal2a ga3laf ga2lar 2g1alau 2g1alb 2g1alg gal3lo 2g1alp 2g1alta 2g1altd g1a2lu ga2mec ga3mel gam3ma 5g4amo 2g1amt g1a2na 2ganal gan3d4 2ganf 2ganga 4gangeb gan2gr gang4sp gan2g1u 2g1ank 2ganl 2ganmu 3g2ano ga2nob 2ganr gans2 g2ans. 2g1ansi 2ganst 2ganw ga1ny 2g1anz ga3pe 2g1app ga1q 3gar. g2ara 2garc 3g2ard ga3ret ga3r2i 2g3arm ga3r2o gar2s 2g1arti ga3ru 2g1arz g2as. ga2sa ga4s3al ga4sam gasche4 gase2 ga2sei ga2sel ga2se4m ga2si ga2sor gas3s2 5g4asse. g3asses 6gassess ga2st ga4ste gas4t3el ga4str gast3rÃĪ ga3t2a 2gatm gat4r gau1c 2g1auf 2g3aug g2auk gau5ne 2g1aus 2g1aut ga3z 2g1ÃĪp gÃĪr3th 2gÃĪrz gÃĪ4u 2g5b4 gber2 gbi2 gby4t 2g1c 2gd g1da g3d2ad gda3de g2d1ak g2d1an g2d1ar g2d1au g1dÃĪ1 g2dei4 gd1els g2dent g2d1er g2d1et g2d1in g1do g2dop g1dÃķ g1dr gd3re gd3ru gd3s2 gdt4 ge3a2 ge4ate geb2a ge3ble geb4lin geb4lo gebot4 3gebÞ ge1c ge3ck ge1e2 ge3ec ge2es geest3 ge5fa 3gefÃĪ 4g1eff gef4l gef4r ge3fu g4eg gege2n1 gegene4 gegen3s4 ge3g2l geg4r geher3l ge3ho 2g1eid ge4ie2 ge4ig g2eil ge1in1 ge2inf gein4h 2g1einr gein2s gein2v ge1ir 2g1eise gei3sh geis4s3c gei2st geist3r 2gek. ge4lanz gelb1r gel4b3ra gelb3s gel4den gelder4 gel6derh gel6ders ge3lec gele5cke ge2lef 2ge2lek 2gelem gelen1 ge4lene gel3ere ge4lerk geler3Ãķ ge4l3ers ge2l1ev gel3f gel1i4m gel3la gell2i gel2Ãķ gel3sa gels2p gels2t gel3ste gel3sz gel3ta gelt4r gel3z2 gem2 ge4ma. gem6e 4g1emp ge3mu g4en. ge3na ge4n1ac ge4nad ge4nak ge4n3al ge4nam ge4nap ge4nar ge4nat gen4aug 4genda. gend3in3 4g3endmo gen2d3r gen3eid gener4f 4generg ge4n3ern gen6erwe gener4z ge2nim gen3k4 gen3n ge2noc gen4sam gen6semb gen3sk gen3sz gen3tÃĪ 2gentf gen3t2h gen5tr 2gentw gen3zw ge1oo geo2ri g2ep4 ge3pl ge3po ge1ra ge2rab ge2rak ge2r3al ge3rann ge4rant ge4r3a2r ger2as 2gerdg ge3rem ge4rene ge4reng ge4ren4s ge4r3ent ger2er gerin4d gerin4f ger4inn gerin4t 4ger4klÃĪ g3erlas ger5me ger3no 2g1ernt ge1ro ge2rob ge1r2Ãķ ger4sat 4g3er4seh ge3r2u ge1s2 g4es. ges3auf 3ge3sc gesch4 ge6sche. ge2s3eb 4g3e4sel. ges3elt ge2s3er ge3sha ge3si ge3so ge3spa ges4pi ges3se ges3s4t gest2 gest4a ge3stak ges4tan ge3st6e ge4s3ter ges3th ges6tier ge4s3tur ge3t2a ge4tang ge4tant g1etap ge2thi ge5trei ge5tri ge5t4u 2g1e1ul ge3unk ge1urt ge3u4t 4g1e2x 2g5f4 gfi2l 2g1g gga4t g5ge gge2ne gg2l g3gla g3glo g2g3n gg4r ggs2 2g1h 4gh. gh2a 3ghale gh2e 3g2het 3g2hie gh1l 3gh2r ghs4 gh3sc g2hu gh1w gi3alo gich2 gicht1 gie3g gi2e1i gi2e3l giel2a gie5n2e gi4eno gie3res gie1st gift5s gi2gu gi2kel 2g1ill gi2me. gi4mes gi2met 2gimp 2gin2d gi3ne 2g1inf 2gin4h 2g1ins gin2sa 2g3int 2gin2v gi2ob 2giok 2g3isel git2a gitt4e gi3tu gi4us 2g1j 4g5k4 gl2 4gl. 4g1lab 2g1lac 2gladu 2g1lag 2g1lam 2gland gla2s1c glas3t4 3g2laub 2g1lauf 2glÃĪnd 2glÃĪuf gl3b g2l4e 2g3le. 3glea 2g3leb g3lec 4g3led g3lee 2g3leg 2gleh g4leic 4g3lein gleiter8s glei4t5r g3len 4glenk 4g3ler glerei4 2gles 3gles. g3lese g2lia 2glib 3g2lid 3g2lie 4g3lieb 2glif g2lik 4glil g2lim 2glin g2lio 2glis g2lit g3lite g2liz g3lize g2loa g2lob g2loc 2g3loch g2lok g2lom g2lop 2glorb 2glos g2lot 2glÃķch 2glÃķs 2glÃķw 2gls g1lu 2g3luf 2gluk 2g3lun g2lut 3g2lÞ g3lÞg 2glw 3g2ly 2g1m2 gmen4tr gmi2s g1n 2gn. g2n2a g4na. 2gnac g4nad 2g5nah gn4al gna4l3er3 2gnanl 3g2nÃĪ 2gnb 2gnc 2gnd gn2e g3neh 2gn3ent gne2tr gneu1 2gnf 2gng 2gnh g2nie g2nif g4nin 2gnint 2gni4s3 gnise2 2gnk 2gnl 2gnm g2no 3g4non gno1r g3not 2gnp 2gnr 2gns 2gnt 2gnu 3g2num. g2nÞ 2gnv 2gnw g2ny 2gnz go4a goa3li g1ob gobe3l 2gobj g2ob2l gob2s 2g1o2f 2gog 2g1oh2 goh3ren go1i gol2a gol2da gol2fr 3gon. go4nat gon2e 3gons 3g2opa gopf4 go2pos 2gopt gor2a 2g1ord 2g1org go2si go2s3p go1ste 2g1osz go3t2h got6terb got6t5erg gotte4s 3gou go1y gÃķ2f g1Ãķl 3gÃķt 2g3p4 2g1q g2r4 g4rab gra2ba gra2bi gra4bl 2g3radl 2g3rah 2g3rak gram1 grammen6 gram8m7end gram6mer g3rand. 2gra2r grar1e gra4s3a gra4sh gra4sp gra2st 2g3raub grau3f 2graum grau3sk 2grÃĪd grÃĪs1c g3rÃĪu 2g5re. g4reb 2g3rec g3rede g4re2e 2g3ref gre2fr 2grege 2g3reic grei4fr 2g3reih g3rein g3reit 3g4rem 3gren 4g3renn gre3no gren6z5ei grenz3w g4rer 2grese gres6ser6 g3ret g3rev 2g3ric gri2e 2g3riem g3riese 2grig gril4la 4g3ring 4g3rinn gro2b3a gro3ber gro2bl gro2b3r 2groc 2groh 2g3rol 2g3rose g4ross gros6sel g4rot 2grÃķh 2gruf. g4ruft 2g3ruh g3rui 2g3rum grun2g 3grup 3grus 3gruß 2g3rut 2g3rÞc 4g2s1 gs3a2b g4sac g5sack gsa2d gs3a2k g3sal g4s3alb g4sall g4salm g4salt gs2am g4s3ama gs3amb g4s3amp gs3a4p gs3a2r g3sat gsau2g gsau4r gsa2v g3sÃĪu g3s2c g4sca g4s3ce gsch4 g4schef gs4chi g4sco gse2 gs2e3h gs4eil gse4kl g3sel. g4sela g3seln gs3em gsen1 g4s3ent g4s3er g3sere gser1i g4se4s gse4t g4seu gsfi2l gsgene4 gs3ha gsi2d gs3i2k g3sil gs3io g4s3ita gs2ki1e gs3kr gso2 g4s3o4b g3sol gs4on g4s3op g5s4orge gs4pant g4s3pas g3spei g3s2pek g3s2pi g5s6pie g4s3pl g5s6port. g4s3pru gsrat4 gsrÞ2c gs3s4 gs3ta g3s4tad g4stag g3s4tan g4stanz g3star gs4tati gs3tÃĪ g3steh g3s4tein g3st2el gs4tell gste2r gst3err g1steu gs2thy g3stif g3stil g3stim g3stir g3sto g4stoch g4stod g4stor gs3tÃķ gs4tÃķr gs3tr gst4ra gs4tras gs4trat gst5reit gst4res g4streu gst3rit gst3ros g3stun gs3tÞ gs3un g3sy 2g1t g3te gtei3s gt1h gt2hy gt2i gti2m g3to gt4r gt4s g3tÞ gu4ale gu3am gu1an. gu1ant gu1as gu1c gu4d3r gu2e 2gued guet4 2g1u2f 2g1uh gu3ins gu1is gum2e 3gumm gummi1 gun2e 2g1unf gunge2 4gungew 2gungl 2g1u2ni 2g3unk 2gunr gun2s 2gunt 3gur gure4 4g1url gur2t3h gur2tr gurt3s guru1 gu2s gu4s3a gu3sc guschi5 gu3se guss1o gus2sp gus2st gu4st gust3a4b gus3te gus6t5en6d gus6terl gus4tr gu2t gut1a gut3er4h gut1h gut2s3p 2gÞb 3gÞr3 gÞ2s3 2g1v 2g1w gy3n gy4na 2g3z2 gzeu4gi 2ha. hab2a hab2e h3abf hab2i h1ablu 2habn h1a2br h1abs 2habw ha4ch3en ha2cho hacks4 2hada ha2del hade2n h1adle h1a2dr ha3dri 2hae ha3el ha4far haf2e h1affÃĪ haf3f4l h2aft haf4to haf2tr haf4tre haft4s3p hag2a h2agg h1ah ha3ha h2ahs h2ai 3hai. h2aj 2haka ha1kl 2h2al. ha3l2al halan4c h1a2lar ha2lau hal2ba hal4bel hal4bin hal2b3r hal2bu 2hale 2halh hal2i hal2l1a hal6lere haller6f hal6lerg ha3lo 4halp hal4sk hal2sp hal4tal hal4tei hal2t3r hamot4 2h1amt h2an. 2hana ha2nal ha2nan han2au 2hanb h2anbe h2and han2da han4d3er han2d3r hand3s ha2nem han2f1 han6g5end han4gro han2k1 2hanl 2hano 2hanr h1ansc 2hanz 2h1ap 3h2ape ha2pl ha2po ha2pr h2a3ra ha4rab 2harb 2harc h2ard har2fr h1arm. har3ma h2arme har4me. har4ne ha2rom 2hars hart4e har2th h1arti har4tr har2za h2as 2has. 2ha3sa has4c has2h3 has4sa hasser4 has4s3t ha2str h1a2ß ha2ta hat2i h3atl ha2t3r 2hats hat5t2 h3attr h1audi h1aufb hau5f6lie hau3f4lo 2h1aufm h1aufs h3au3g2 h1aukt hau2sa hau4san hau2s1c h2ause hau4sel hau6s5ent hau4spa hau4spe haussen6 hau4sur hau2t1a hau4t3r ha2ve. hÃĪde2 h1ÃĪff 2hÃĪi hÃĪ2kl 2hÃĪrz hÃĪ6s5chen 2h1ÃĪst 2hÃĪug hÃĪu2s1c hÃĪ3usp 2h3b4 hba4ras hber2e 2h1c 2h3d2 hdan2 2hea he2ad he3be heb3eis he2b3l he3br he3bu he3ch2e he3chi he1cho h3echs he3cke hed2g he2dit he1e4m hee2n hee2s he1e2t h2ef. he2fan he2fau he2f1ei he3f2em hef3erm 2heff he2fid he4f3in4g he2f5le 2hefr hef4ra he2fre 3heft he2fu he3gu he2hel hei4a h4eib h1eie h1eif h1eig he2im hei4mal hei4man hei4mar hei4mei heim3p hei4mu 2hein hei4na heine2 hei4n3eb hei6nene hei4n3er h3eintr 2heio 2he1ism he1ist h2eit heit4s3 h1eiw hekt3a he2la he3lag hel1an hel3au hel1ec he2lek h3elem he2len h2elf he3li hell2a hel4l3au hel4mei he3lo he4lof hel2or he2lÃķ 4helt h4em. 2hema hem2b 1hemd 2heme2 h2e3m2i he4mia h3e4miss 1hemm 2h3emp h2en. he4n3a2 he2nÃĪ hen3ebe henen1 hen3end he4nene he4nens hen3erg he4nerm he2n1e4t 2henga hen4gag hen4kan hen4kau 2heno heno3t hen4sem henst2 hen3str hent2a hen3te hen4ter hen5tr hen4tri h1ents 2h3entw h3entz he4n3u hen3z2 2he2o he3on he3op he3pa he3ph h1e2pi hept2 h2er. her3a2b he2rad 2herap he4r3a2r herau2 herb2 he2r1e2b he4reck her4eif 4he3reig he6reis. her7eises he2rel he4rene he6rersc he4rerw h1erfo her4fol 6hergebn 2herif herin4d herin4f he6rin6nu herin4s h1erke her4klÃĪ h5er6kran h6erlad 2herm he3ro he4r3o2b he4rof he4rop he4rot h1erÃķr hert4 her3th her3um her4zap her6zeng h3erzeu her2z1w he3s4a 2hese he3si he3s2p hes6tÃĪ he2tap he3tÃĪ heter2 he3th het2i he3t4s he2u heu3g he3unt 3heusc he3x he1x2a 2hexp hey2 he1ye 1hÃĻ 2h3f4 hfaller6 hfan2 hfel2l3 hfi2s hflei2 2h3g4 hga2s1 2h1h2 hhoh2 4hi. 2hia hi2ar h1iat 2hic hi1ce hich6t5er hicht6sp hi3d hid4e hi4dio 2hido hi2e hi3ens hie4rei hier3i hie4rin hiers2 hif3f4r hi2k3r hi2l3a4 hile3n2 hil2fr h2im 2hima h3i4mit h4imm h3impe hi2n hi3nak hi3nam hi3nap hi5n2as h2inde hine2i hi3nel hin2en5 h1inf h1inh 2hi3n2i hin3n2 hi3n2o hin3s2 hin2t1a 2hio hi3ob hi4on hi2p3 hi4pl hips2 hi4pu hi2r hi3ra 2hi3re hi3ri hir2m1a hir2mi hirn1 hir4ner hir2s 1hirt 2his. his2a hi4se h1i2so hi3tac hi2tan hi2tel hi1th hi3t2i hit1r hi2tro hit3z2e hi2v1o 2h1j 2h1k4 hkamp2 h2keu hki2n1 h3kÃķ 2hl h4laf hl2ag hla2gr hlan4d3a hl1ans hl1anz h1las h1lat h1laut h1lay h3lÃĪche h1lÃĪs h1lÃĪu hlb4 hl3d4 h3le. hle3a h3leb h3led hle3e h2leis h3leist hl1el h5len. hle4nas hlenen3 hl2enn h4l3entr h4lents hl2enz h3ler hle2r3a hl4ere h2lerg hler4hÃķ hl2erk h6l3er4nÃĪ hle3run hl1erw h4lerz h3les h4lesi h4leud hlf4 hlg4 h2lie h3lied h2lif h2lim hl1ind hling4s3 h2lip h2lis h2lit1 hl3l2 hl3m2 h2lo hl1ob h3loc hl1o2f h3log h4lor hlo2ra h3los. h3losi h4loss hlos4st h2lÃķs hl4sar hl2ser hl3ska hl3s2lo hl5s6tern hls3tie hl5str hl2su hl3t2 h3luf h3luk h3lumpe h1lÞf hlz2 2h1m hm2a hm3abl h3mad h3mag h3mak h3man h2mant h3mar h4m3arc h3mÃĪ h4mÃĪc h4mÃĪh h4mÃĪl hm2e h3me. h3med hme1e4 hmeer4s h3mein h3meld hme3le h3men hmen2s hme4ran hme4rei hme1s2t h3mex hmi2e h3mind h3mini h3minz h3mirr h2mo h3mop h3mot h3m2Ãķ h4mÃķl hm3p2 hm2s hm3sa hms1p h2mu h3mul hmut4s 2hn h2na hna2c h3nag h3nam h4nar hn3a2te h4natt h3nau. h2nÃĪ hn1ÃĪh h3nÃĪs hn3d4 hn2e hne3b hne2e3 hn3eff hn3eig hn3ein h2nel hne4n hn4eng hne4pf h3ner hner4de hner3ei h4n3e2ro h4n3ersa hn3ex hn3f4 hnflei4 hnhof8stras h2nic h2nid h2nie hn1im hn1in h2nip hni4sa hnk4 hnno2 h2no2r hnra2 hn3sa hn3s2p hnst2 hns4to hnsuch4 hnts2 h2nul h2n1unf hn3z2 ho4ar ho3bern ho2b3l ho2ch3 ho4cha hoche2 ho2cka ho6ckerl hock3t 2hod 2ho2e hoe3n ho3er ho2f1a2 ho2fÃĪ ho2fed ho2feu hof3f4a ho2f3l ho2f1o ho2f3r ho2fu 2hoi ho2l1a2 hol3ar 1hole ho2l1ei ho2lem hol3g4 hol3k holl4 hol3s 2holy h3olym 1holz hol6zene hom2e ho2me. ho2mec ho2med h2on hon2er ho1on hoo2r 2hop ho1ra h1o2r2an ho2rau h1or3d 2hore ho4rens ho3ret 2h1org hor3ta hor4ter h1ortu h2os. hose2 ho2sei ho3sl ho4sla ho2sp ho3spr ho4ßene 2hot. ho3th 2hotr 2hot3s2 1hou hou4s 2ho2w1 h1ox ho1y2 1h2Ãķ 2hÃķ. hÃķ2c hÃķ3ck 5hÃķhe 2hÃķ2s1 h3Ãķst 2h3p4 h1q 2hr hra2b hr3a2c hr3ad hr1a2g h1r4ah h1rai h1rane hr3ap h3rÃĪu hrb4 hr1c hr3d h2rec h3r2ech h3red h3ref hr3eff h2r1eh h4rei. hrei4ba hrei4br h3reic h3reif h4r3eig hr4eini h4reinl hrei3th hreli1 h3rep hrer6geb hr2erh hr2erk h4rerla h6rer6leb hr2erm hrer3s hrer4sa hr2erw hr2erz h3re2s3 hress2 hrest2 hre2t h2r1eta h2r1eu h2rev hrg2 h2ri h3ric h4rick hri4e h3riesl h3rin h4r1ind hr1int h4rist h5ritter hr3l hr3m2 h3rog h3roh h1ro2l h4romat h4rome h4romi h4romo h4ron h1ropa hro4r h3rou h3rÃķ2s hrr4 hr4s1ac hr4s3and hr3schl hr2s1em hr2sen hr2s1er hr2set hr4sh hr2sin hrs3k hrs3l hr4s1of hrst2 hr2su hr2tab hr2tan hr2te2l hr2th hr2top hrt3ric hrt2s h3ruh hr1ums h3rut h3rÞ h4rÞb h4ry hrz2 4hs h4s3acht h2s1a2d h2s1alk h2sall h4samt h2san hs3and h2s1as h2sath h2sato h2saud h4s3aur h2saut h2sÃĪh h2sÃĪug h4schan hs2cr h2s3ec hse4e h4s1ehr h2s1eie h4seind h6seinst h3sele hse4lin hs1emi h4sendw hsen5erg h2s1ent h2s1erf hs1erg h2serh h4serkl h2s1erl hs1ern h4sernÃĪ hs4erne h2serÃķ h2s1erw h2serz h2sex h3s2ext hsha2k h2s1i2d hs2im h2s1ing h3s4inni h4s3ita hs2kal h3skand hs1of h2sop hs1org h2spac h4s3pani h2s1par h2s1pat h3spec h3spei h3sperb h2sph h3spoi h2sprÃĪ h2spro hss4 h1st2a hs3tabl h3stad h2staf hst3alt h3stan hst3arb h2s3tau h2s3tÃĪu h1stec h1stei h1stel h4stele h3s4terb h3s4tern h1s2ti h2stit h1sto h2stol h2stor h1str h4s3treu hstro2 hs3tum h1stun h1stÞ h2s1u hs2ung 4h1t ht1a h2tab hta2bl h2ta2d ht2ag ht4akt. ht4akte h2tall h4talo h2talp h2talt h4ta2m h2ta2n ht3ane ht2ank h2tap h2ta2r ht2a2s h2t3asi h2tasy h2t3at h3tat. h3tate h2tau h3taum h4tax ht1ÃĪ h2tÃĪr ht3e4ber ht1e2c hte3cha h2t1e2d ht1eff ht1e2he h2teif h2t1eig h4t3eilz h2t1eim ht1ein h2t1eis h2t1eke h4t3elas hte6l5ei. h4telek h4t3elfe h4t3elit hte4m h2t1emi h2temp h4tenga h4t3engl h4t3enta h4tentf h4tents hter6de. hterer6s ht3erfo ht3erfÞ h6terfÞl h6tergeb ht3ergr hter6gri ht1erh hter6hÃĪl hter8hÃķhu h6terleb h6t5erleu h6terneu ht5erspa hter8spar ht3erst h6tersta hter6tra ht3erwÃĪ ht3erze h4t1e2se h4t1ess h2teta hte4th h2t1eu h4textr h2t1h h4thei h3thera h3thes h4tho h2t1i2d h2t1im h2t1i6n3 ht3ine h2t1is hti5t2 htni2 h2t1ob hto4d1 h2t1o2f h4t3oly h2tope h4tord ht3rak h3tran ht3rand h4t3ras ht6rates ht3rau h4traub ht6raume ht3rec h5treck ht3rei h2t3res ht3ric h4t3rieg h4t3rin h2t3rol h2t3ros ht3rÃķm ht3ru h2t3rÞ h4ts ht2sah ht2sal ht4s3a4n ht2scr ht4sein ht2sel ht4s3end ht4seng htse2r1 ht4s3eri htsha2 ht3s4hak hts3kr ht2s1o ht2sp hts3par hts3tÃĪt hts4tie hts5trau ht4s3tur ht4s3tÞr ht2su htt4 htti2 h3tub htu2e h2t1urs h3tÞ ht3z2 hu2b1a hu2b1ei hu4bel hu2b1en2 hu2bi hu2b3l hu4b5r hu2bu hu1c hu2fa hu2h3a hu2h1i h1uhr h1uhu hu2kÃĪ hu2k1in huko1 huk3t4 hu2l3a2 hu4lab hu2lÃĪ hule2 hu2l1eb hu2l1ei hu2lem hu4l3eng hu4lent hu2l1er hu2let hu2lid hu2l1in hul3l2 hu2lo hu2lÃķ hul3s2 hu3m2a h1umh h1ums hu2n h1una hun3d2e hunde3i hunde3s hun2e 2hunf hung2 hun3ge hung4s hungsa4 h1uni h1unm 2hunt h1ups 2hur hur3g2 hur2t3h hu3sa hu2so hus2s3a hus3se hus4ser4 hus2s1o hus2sp hus2st hu2tab hu2ti hu2t1o hu2t3r hut2t hut3te hut4zen hut4z3er hut2zu h2Þ h3Þber h4Þbs h3Þbu hÞf2 hÞft1 hÞhne4 hÞs3 2h1v hvil2 2hw2 h2wall hwe1c h1weib h1weih hweins3 hwein6sa h2wirr 1hyd4 hy3dr hy2lor 1hymn h1yo hy3os 1hyp hy2pe. 2hy2t 2h1z hz2a h3z2o hzug4 h3z2w i3ad. iad2a i1adn ia3do iaf4l i2ago ia1h2 i1ai i3ak. i3ake ia2kei ia2kr i1akt i1al ia2l1a2 ial3ar ial3as ia2lÃĪ ial3b4 ial3d4 i3aleb i3alef i3alei ia3lek i3alel i3aleng i3alent i3alerb i3aler4f i3alerh i3a4lerm i3a2l1et i3alex i3a2lia i3alim i3a2lin i3al3l ial4ler iall2i i2alo ia2lon ia2lop ia2l1o2r ial3p ial3t2 ia2l3u4 ial3z2 i3am. ia3ma iampe4 i1ams i1an. i1an2a ia2nal ian3alt ia2nau i1anc i3and2 i3a2n1e2b ian2er i1ann i1ans ian2s1p i3ant i3anz ianza4 ia1o ia2op ia3p ia1q i1ar i3ar. ia2ra i2are iar3r i1as i3as. ia3sh i2asi ia3s2p ias3s iast4 i3at. i3at2h i4athe 1iatr i3ats i3au ia3un i2az 2iÃĪ i1ÃĪ2m i1ÃĪp iÃĪr2 i1ÃĪr. iÃĪr3m i1ÃĪrs iÃĪr3z i1ÃĪt i3ÃĪ4tem iÃĪ2ti iÃĪ4tr iÃĪt5s4 i1ÃĪv 4i1b ib1art i2b1auf i2b1aus i2baut ib2bli i2b1eig i2b1eis ibe4n1 i6ber6geb i4b3er4la ibe1ro i2bim i2b1in i2blad i2bleu i3blu i3b2o i2bÃķ i2b3rau ib3ric i2b3roc ib2ser ib4ste ib2un i2b3unk i2b3unt ibus1c 2ic i3ca ic1c ice1 ich1a2 ich6art. ich1ÃĪ i1che ich1ei ich2er icherin5 i1chi ich1l ich3le ich3li i3ch6lo ich5m ich3n i1cho ich3ort i2ch3r ich6sele ich2s1i ich4spe ich6stie ich2tr i1chu ich1w i1ci i3cke ickt2 i1cl ic3la ic3ra i3cu i1d 2ida id2ab i3d2ac id4al id1a2n i3d2ans i3d4at id1au id2ax idÃĪ1 id2e 2i3de. i2dea 1idee id3eis 2idel idel4ÃĪ i4demul 4i3den. ide4n1o iden4se ide3ran iderin8nu ide1rÃķ ider6reg 2i3des ide5sa ide3so ides2p 1i2di2o idi4on i4diot 2idk idni3 id2o i2dol 2idoo i2dÃķ i2d3r id4rÃĪ id4rit id4ro id4ru id2s1p idt4 1i2dy ie3a2 ie2bÃĪ ie2bl ieb3re ie2bri ie4b3rÞ ieb4sto ie1c ie2cho iech3t ie2ck ie2d3an ie3de ie2dr ie1e2 ief3akt ie2f1an ie2far ie2fau ie2fÃĪh iefe2m ief3f4 ief2i ie2f3l ie4fonk ief1r ie2fro ie2gl ieg5li ie3g4n ie2g3re ieg4s5c ieg4se ieg4si ieg4st ie3her ie2h1in ieh3r2 i1ei ie1ind i2e2l1a iela2r ie2lÃĪs iel3d4 i2ele ie4l1e2b iel1ec iel3eid ie2lek i4elen ie4lene ie4leng ieler4e ieler6fi ieler8geb ieler6ke ieler6la ieler8lebn iel4erw ieles2 i2eli ieli2d i1ell2 ie2lo2b ie2lop ie6lor i2els2 iel3sz ielt2 iem2e iemis2 i1en i3en. i3ena ien1ag ien4am ie4nas i3enÃĪ i3end i2ene ien1eb i3enec i3e2n1e4k iener6fo ien3er4g iener6la i3enex i3enf i3eng4 ienge4f ienge4z i3enh ie2nid ie2nim ie4n3in i3enj i3enk i3enla i3enle i3enm i3enn i3e2no i3enÃķ i3enp i3enr ien2s i3ens. i3ensa i3en3sc i3en3s2e ien3si ien3s2k i3en3s2p iens6t5er ienst5rÃĪ i3en3sz ien4t3ar i3enth ien3tr i3enty ie3nu ie4num i3env i3enw i3enz ie1o4 ier3a ie2ra2d ie2rap ierb4 i3erbun ier3d i2ere ie4reck iere5ins ie4r3eis ie3r2er ierer3k ie4r3erz ierf4 ierg4 i1ergi i4eri ierk2 i1ern i3ern. iern2a i2erni ie2rÃķ ier4re. ier4s3eh ier3sei iers2t ier3sta ier3ste ier3te iert2i ier3z2 2ies ie2san i2esc i2ese iesen3s4 ie3s4pa ies2pe ie2spu ies6ser6g ies6serl ies2st iest6e ie4stin ie1str ie3su ie4t1ag ie2t1ak ie2tan ie2t1ap ie2tat ie2tau ie4tent ie4t3erh ie4t3ert i4ethe iet3her ie2t1ho ie2thy ie4tob ie2t1Ãķ4s ie2t3ri ie2t3ru iet2se i1ett iet3zw ieu2e ie1un ie2w3u i1e2x 2if if3ange if1ar i2f3arm if4at i2f1au if1ÃĪn i2fec i2f1ef ife4i if1ein if2e4n i2f1erg if1erh if2far if2f3l if2fro iff2s iff4ste if3l if1lac if4lÃĪ iflo4 if4los i1flÞ if3r i1fre i2freg if4rev if2s if3sa if3se if3sp if3sta if2t3a if2ted if2t3ef if4t1ei if2te2l if2tep if4terk ifte2s if4t3esc if4th if2t1op if2t1r if4t3ri ift3sp ifts2t ift3sz if2tur i1fy 2i1g i2ganb i2garb ig1art iga1s i2g3att igd2 i6gebrau i4gefar ige4fÞg 3i2gel. ige5lau i2geln ige4me ige4mis ige4na ige6nene ige4nid ige2o ige2pa ige2ra ig5erwer ig1erz iger4ze ige4sel i2g1ess ige4tra ige4tre ige4woh i2gim i2gl ig1lau i3glÃĪ i3gle ig3lim ig4na i4gnÃĪ i3g4neu ig4no igo1p ig3rad i2g3re ig4ren i2grou ig3s2ag ig4sal ig3sÃĪ ig4schr ig3s2o ig3sp ig4spa ig3stei ig4sti ig4s3to ig3str ig6stras ig3s4tÞ igung4 2i1h i2har i3he ihe1e ih1elt ihe4n ihe3u ih3m ih3n ih3r2 ihs2 ih1um. ih1w ii2 ii3a4 i1ie i3ig i1im i3in i1i4s i2is. ii3t i1it. i1j 1i2js 2i1k ika2ge ik1aka ikaken3 i2k1akt ik3amt i2k1ang i6kantei ikanten8n ik1art ik3att i2k1au i3kaz ik1ÃĪh i2kÃĪr 4ike i2keb ik1ebe ike2c i2k1ed i2k1ef i2k1ei ike4l1 ike2n1 ik1en2s ik1ent ike2ra i2k1e4r2e i2k1er2f i5kerfam i2k1er2h i2ker2l i2kero i2ke3ru i2k1eta 4iki i3ki. ik1i2d i3kie ik1in i2kins iki1s i2k3l ik4lÃĪn i3k4leri i3k4let ik4lim i3klu i2kne ik3nu iko3be i2k1off iko1p2 ik1or iko2ri iko1s i2kÃķl ik3rÃĪ ik3re i2kres ik4ris i3kro i2krÃķ iks2 ik3sa ik3ste ik3sz ikt3erk ik4t3esk ik2t3re ikt2u i2k1uh i2kup i3kus i2kÞ i1la i2lab i2l1ac i2l1ak il1a2ma il1ang i2l1anm i2lano il1ans ilan6zer i2larb il1asp i2l1au i3laub i3l4aufb i1lÃĪ1 i2lÃĪr 2ilb ilb4l il2c il5chen il2da il2dÃĪ ild3ebe il4d3en4t il3der ild4erp ilde2s ildi2 ild1o il2dor il2dr 4ile il1e2c il1ein il1el i2lemb i2l1e2mi il1ent i4lentl i4lents i2l1erd iler4ei i6lereig il1erf iler4fo i2ler2g i2l1er2h i4ler4kl il1err i4lerri i3l2erz ile4th il1ex ilf2 ilfe3s il2f3l il2f3re ilf4s3 il2gl 2ilh 2ili ili3e4n3 iliga2 ili4g3ab ilik4 i2l1ind i4l3init il1ins i2l1ip ili1pf il3la ill2an il4lenn il3l2er 1illu il2mak il2m1ap il2m1au ilm1ei il2min il2mor 2ilo il1ob il2oh il2op i2l1o2r i3lou i3lov il1ox ils3ent ils4to ilt2 il3th i1lu i2lum ilung4 i2l1ur i3lus ilÞ4 2ilv4 il2zar il2zau ilz3erk il2zwa imad2 ima1i im2al i2m3anh im1ans i2marc im3aren i2m1arm i2m1art im2as im4at ima2tr imat5sc ima4tur im1aus i2maut im3b 1imbi i2meg im1ein i2mej i2mek i2mele i2melf im2en i2m1er2f i2m1er2l i2m1er2z i4me3sh imes3s i2meti i2mew imhau2 i2mid im1i2de i2mim i2m1ind i2minf i2m1ins im2mÃĪ im2mei immen1 imm3ent im6menth 1immo im2mor 2imo i2m1ob i2mo2p imo3re i2mÃķ 1imp imp2fa im3pf2o imp2s im3pse im4set im3sph 2imt imt2e im3t2i imt3s2 imtu2 4imu im2um im1urk 2in. ina2be in3abu in1a2c i4nack in1ad i3nald inaler4 ina6lere in2alp i2n1am in2an in3an. in3ana in3ann i2narb in3att i2n3au2 2inÃĪ i2n1ÃĪh in2ÃĪr in1ÃĪs 2ind. inda2 ind2ac in2dal in2dan 2indÃĪ 2inde. 2inden ind5erke inder3t inde3sp 1index ind2i 1indik in3dÃķ 2indr ind3se 1indus in3d2Þ 2ine in1e2c i3nee i2neff in4elen ine2n1 ine3nÃĪ i4nen4zy i5ner. i4n3erbi in4erha i4ner4he i3nerk i3n3erle i6ner6leb iner4lÃķ i4n3er4tr i3nes i4nesk in2et in1eu ine3un in3f4 1infek 1infiz 1info 2inga in2g1af in2g1ag in2g1al in2gam ing1ar 2ingÃĪ 3ingeni in3g2er in4g3er4w inges4 2in2gl in3gla in3glÃĪ ing4s3am ings6por 1inhab 2inhar 2inhau 2inhe 2ini. in2id ini3de 2inie 2inig inig2a ini3k4r 2inis ini3se init2 i3nitz 3inkarn 1inkas inkels6t in4k3ent ink4er in2kro in3k2Þ inma4le 2inn. inne4n in4ner4m 2innl in2nor 1innta 2ino in1od ino3e4 in3ols in1or ino1s i3no3t i2n1ou i1nÃķ in1Ãķ2d 2inr 2ins. ins2am in6samt. insch2 2inse. in2seb 2insed 2insen 2insk in3sof 3instal in4s3tÃĪt 4inst2e in3s4tip 3instit ins4to 4instra in4strÞ 1insuf ins3umz in2sur in3sz 2inta 2inte. 1integ in3tei 2intep 2int2h inthi1 int2o 2intÃķ 2in3t4r 4intrÃĪ in5tri 3intrig int3s i2n1u i4nuh in3unz 4inverm invil2 i1ny2 in3z2e inzel8ler in3z2i in3z2sc inz2u in3zw i1Ãą 2i1o iob2l io1c io2d io3da io3e4 i2of iof4l i2oh io1i io3k6r i3ol. i3ols i3om. io3me i3oms ion2 i3on. ion3an io2n3au ion3d2 io4nee i3ono io2nor i3ons3 ion4sa ion4sen i2ony i2oo i2o1p i3o4pf i3opt i2or i3or. i3orc ior2e iore4n io1r2h i3orp i3ors i3ort 4ios i3os. io3sh ios2p i2o1st ios2u i2o3sz io3t i3ot. iote3l iot4r i3ots i2ou i2ov i3ox i2oz i3oz. i1Ãķ2k i1Ãķn i1Ãķs. i1Ãķst i1pa ip2an i1pe i3ped i3per 2ipf2 i3pfan ipfe2 iph2 2i1pi ipi3a ipi3el ipi3en ip4lu ip2pan ip3pe ipp1f ip4pl ip3pu i1pr ip2sa ip2sei ip2sp ips3t ip4sta ip4stÞ ipt2a ipt2i ipt2u 2ipu 2i1q i1r4a i3ra. 2i3rad i3ras irat4 i1rÃĪ ir1ÃĪh ir2b3l ir1c ir2ch1o ir4e i3ree 2irek ire4na i3rÃĐ irg4 ir2he ir2i 2i5rig 2irk irke4n ir4kene ir2k3l irk4s3c ir3k2u irli4n ir2m1ag ir2mak irm1au ir2mÃĪ ir2m1ei irme4n1 ir2m1o2 irm4th ir2mum ir4munt 2irn ir2n3a ir4nat ir2no i3ro i1rÃķ irpla2 irre4l ir2rh ir3sche ir4schl ir4schm ir4sch3r ir4sch3w ir3se3 ir3s2h ir2st irt2s3t 2iru ir1u2m iru2s1 i3r2Þ i2sac isa2m3 i4samp i4s1amt is2ap isa2r is3are i3sat is3att i2sau is3auf isau2g i2sÃĪh i2s1ÃĪn 2isb i2sca i4schar i3s2che i4schef i4sch3e4h isch3ei ische4m i6schemi i6scher6z i4schin i5sching i2sch3l i2schm isch3ma i4schna i4sch3re isch3ru i3schu i4schÞb i4schwa i6schwir i4schwo isch3wu i4schwÞ i2scr 2ise ise3a ise1e iseh2a ise3hi is4eind is4eli i6sel6ter ise2n1 ise4na is2end i4senho isen3s ise4r3ei is1erg i2serh iser4he i2s1erm i2s1es4s i3s2et i4s3etat i3s2eu 2isf 4ish 2isi isi2a i2s1i2d isi4de isik2 i2sim isin3g4 isi1s i4ski i4sku is3la 3islam 2isma 2ismi ismu2 is1of i3soh 1i2sol 2is4o2n1 isonen4 iso6nend isono2 i2sop is1ort 3isot i2s1ou 2isp is1pa i2spar is2pat is1pe is1pic is2por i2spro is3sa is4s1ac is4sau is6s5chen isser4f iss2po is2st is3sta is3sto iss3tr is3strÃĪ is3stu is2sum is4tab ist3a2c ist2an is3tang i1stat is3tÃĪu ist4e i1stel iste4n istes3 i1steu i1stil istin4f is3t6o is4toc is3tÃķr is3tr ist4ra is4tro is4tru i1stÞ i3suf isu2m isum3p i2sÞ 2isy i1ß ißer2s iß3ersc it1ab. it1abs ital1a it1alt it1am ita3ne it3anr it1app it1a2re it1art i3tat it1au i3tauc i2taut 4itÃĪ it1ÃĪnd i2t1ÃĪs itÃĪt2 it1eff i2t1ei it2eic 2itel ite4l1a i4telek i2t1emi i2temp ite2n iten3s2 i4tents i2tepo i6tereig i4t3er4fo iterin6d iter6klÃĪ it2erÃķ i8t7ersche i4t1esk i2t1ex i3text i5thr i2thy i5tic i2t1id i5tig 1itii it1in1 i3tis i4tiso iti3sp iti2v5a it5le itmen2 4ito it1ob i5toc ito3d i2t1of ito2p it2os 4itr i2t3rad i3tradi it3raf it3ras it3rau it3rÃĪu it3re i4tren it4ret it3rob it3rom i2t3run it3rut 2its it2sa its1ag it2s1e it4se2h it4s3e2r1 it4sh its1or it6stras it2sur 2itt it2tan it2teb itt3hÃĪ it2tob it2top it4tri itt3ric itt6schi itt4se4h itt4sei itt4sor itt2sp itt4sti it1uh it1ums it2ung i2tuns ituran4 it1urg itut4 i3tÞ 4ity1 ityl2 it2ze2c itz2er itz3erg it6zergr it4z3erl it2zÃķ it2z1w 2i3u2 i4u3l iu4m3 iuma2 ium4se ium4ste iun2 i4up iu4r ius3t i1Þ4 2i1v i2v1ad i2v1ak i2v1am iv1an i2v1ÃĪ i2veb i2v1ef iv1ei iv1elt ive4n iv1ene i2v1ent i2v1ep ive3re iv1erh iver4kl iv1erl iver3s ive3s i2v1ex i2v1im i2v1ind iv1int i3vol ivo3re i2v1r i2vun i2v1ur i2vÞ 2i1w 2i1x i2xa ix2em i3xi ixt2 i1y 4i1z iz1a iz2ac i2zag i2zan i2zap i3z2as i2zau i2zÃĪ i3ze iz2ei izei3c izeits4 i2zele ize2n i4zener i4zentz i4z1erl izid3 iz1ir izo2f i2zÃķ i2zuna i2z1w i3z2wi í1l j2a jab4 ja1c jah4r3ei jahr2s ja3l jal2a ja3ne jani1 jani3t4 ja5ru jas2o ja1st jat2 2j1d4 jda3 je2a jean2s je2g jek4ta jek4ter jek4tin jekt3o2 jektor4 jek6t3r je3na je2p je3r jer2e jes3t je2t1a je4t3h je2tin je4tor je2t3r jet3s2 jet3t je2t1u2 je3v je3wo ji2v 2j1m joa3 jo2b1 job3r jo2da jo2i jol2a jong2 jo2p3 jo1r2a jor3d2 jo1s4 jo2sc jost2 3jou jou2l 2j1t jty1 j2u ju2b3l jugen6 jugend3 ju1i ju2k jul2i jung3s4 ju3ni ju3r jur4a jur2o jus3t ju3t2e1 2j1v 1ka 3ka. ka3ar 2k1abb kab2bl 2kabd 2k1a2ben 2kabf 2kabg 2kabh 2kabn 2k3a2bo 2k1abs 2k1abt 2kabw 2kabz ka1c kade2r 2k1adm 2k3a2dr 3kadu 2kadv ka1f4l ka1fr kaf3t2 kag2 kaga3 2k1age 3kah ka1ho ka1in kaken2 ka1kl 2k1akt. 2kala. kala3b ka2l1a2d ka2lan kal3d ka4l1eh ka4lens kal3eri 3k2alk kal2k1a kal4kan kal2k3l kall2i 2k1allt ka2lop ka2l1os kal4tex kal4th ka2lu k2amt kan4al ka4n1a2s ka2nau 2kanb kan3d2 2kanda 2kandÃĪ kan2e 2kanf 2kanim kank4 2kanl 2kanom 2k1anor 2k1ans k2ans. kan4tar 6k5antenn 2k1anth ka3nu kan2um 2kanw 2k1anzu 2kanzÞ ka2o1 3kape ka3po 3kara 2karbe 2karc k2ard kar3d2a k1area k2arg ka3r2i kari3es k2ark 2k1arm kar2pf k2ars k2ar3ta k1arti 4kartik karu2 k2arw 3k2asc kas2e kase1i kasi1 kas2o ka4sp ka2s3t 2k1ast. ka4ste kas6tras 3kasu ka3sz ka2tan 3kateg k3atel ka3t2h ka4t3r 2katt4 kau4fer kau2f1o kauf6s5ag kauf4sp kaufs7tem kauf6sti k2aus. 2k1auss kau2st 2kausw kau3t2 2kauto ka3ve 2kaz 1kÃĪ kÃĪl3 k1ÃĪmi 2k1ÃĪnd kÃĪr2 2k1ÃĪrg kÃĪ2s1c kÃĪse3 4k3b4 kbo4n kbu2s kby4 2k3c 2k3d4 ke2ben 2k1e1c ke2di 2k1eff kefi2 kege2 ke2gl ke2he. ke2hen kehrer4 kehr2s kehr4s3o 2k1eic 2k1eig kei2li ke2im 2k1ein kein4du kein4e k1ei1s 2keise keit2 keits1 ke2l1a ke3l2ag ke4l3am ke2lÃĪ kelb4 keld4 kel3eis 2ke2lek ke2l1en ke2l1er kel7l4e kell2i ke2l1o2 ke2lÃķ kel3sk kel7s8tern k4elt kelt4e 2k1e2mi 2k1emp k2en. ken1a ken3au ke2nÃĪ kend4 ken3dr ke2n1e2b kenen1 ke4nene ke4nens kener4n kene4t 4ken4gag k5en6gel. ke2nim ken3in 4kenlad 4kenlÃĪd kenn2a kenn2e ke2no k2ensa 4ken4sem ken3si ken3s2k ken5s6tei ken3sz k3en4te. ken6ten. 2kentf 2kentg ken3th 2kentl 2k1ents 2kentw 2kentz ke3ny k2en3z2 2ke1o2 2kep ke2pl k2er. ke1ra ke2ran ke2rau ke2r1ÃĪ ker4ble k2erc 2kerd ke2r1e2b ke2rec ke3reig ker3ein 4kerfah k4erfam ker2fo k3ergeb 2kergu ke6rin6nu kerin6st kerin4t k3erken k2erko k3erlau k3er4leb k6erlebe ker2na ker4nei 4k3er4neu kern5eur k1ero k2e1rod 2keros ker4reg k2ers. 2kersa kert2 ker6werb kerz2 k1erz. ker4zeu 2k1er2zi k2es. ke2sa k2esc k1ese ke2sel kes2sa ke4t1a ket2ag kete4 ke4t1eb ke4tel 2k1e2th ket3ha ke2tu keu6schl 2k1e2va 2k1e2x 4k3f4 2k3g2 kga2s1 kge3s 2k1h4 k3he kho3m k3hu ki1a ki2ad ki2ag ki3ak ki3a2r ki1c ki3d4r k2ids 2kidy ki2el kie4lei kiel3o 2kiern kier2s kier4st kie4z ki1f4l ki1f4r ki3k4 2ki3l2a 2kilÃĪ 2kim 3kin. ki2nÃĪ 4kindex 2k1indi 2k1indu 2k1inf k2ing kin2ga king3s 2kinh k2ini3 kinik2 k2inn ki3n4o3 kinos2 kin3s 2k1inse k1inst 2k1int ki3or kio4s 3kir 2k1i2so kis2p kis3s kist2 kis4to kiv2 kive4 2kiz 2k3j 2k1k4 kkab4 kl4 4kl. 4kla. 2k1lac klan2 2kland klan3du k4lar k1last k1lauf k3laug 2klÃĪd k2lÃĪr k2le 4k3le. kle2br k3leg 2kleh klei2e k3leit k3lem. kle2o 2k3ler kle2ra 2k3leu kle3us 2klic k2lien k2lif 2klig 3k2lim k2lin k3lin. 3k4lina k4link k2lip k2lir k2lisc 2klist klit2s 2k3liz 2k3loc 2klok 3k4lop k3lor klost6 2klÃķc 2klÃķf k2lÃķst k4lÃķt k1lu klu4b k2lud k2lug k2lum klung4 2klux 2k1lÞc 2kly 2k1m 4kma kma2la k2n2 k4nac 2k5nach 2k3nad 2knah 2k3nam 2k3nÃĪp k3ne k4nec kne1e 2knes 2knetz 2k5neu 4kney 2k3niv kno2b3l k4nol 2knorm 2knov 2k3num 1ko ko5ad ko2al kobal2 2kobj kob4s kof3f2 koffe3i kohl2e kohle3i koh3lu koka3 ko3l2a ko3le kol2k3 3kom komer3 4komn ko4mu k2on kone2 ko2nem kon3s4 kont6e ko2nu ko3on 2kop. ko1pe 2koper kopfa2 kop4fen kop6f5err kop3s ko3pte ko3r2a kor2ba kor2bl kor2br 2k1orc korder4 kor6derg ko2rel 2k1org kor2k1a kor3m kor4nac kor2n3ÃĪ kor4no2 2korpi k2os k4os. ko4sk ko2sp 3k4ost ko2stÞ ko4ter ko3ti kot4r kot3s2 kot4tak k1ou ko3un 3kow ko2we 2k1ox 1kÃķ kÃķde2 k2Ãķf k1Ãķl 2k1p2 2k3q k2r2 2k3rad 2k3rah k4ral k3rats 2kraum k4raw k4raz k4rÃĪc 2krÃĪd k4rÃĪn 2k3rÃĪum 2k5re. 2k3reak 2k3real k4reb 2k3rec 2kred. 2k3rede 2kredn 2kredu 2k3ref 2kreg 2k3reic kre1i2e4 kreier4 k3reif 2k3reih 2kreim krei6sei krei4st kreli1 k3ren 2kresu 2k3rh 2krib 2k3ric 2k3ries 2krip k3risi krob4 k4roch 4k3roh k4rok k4ron k4rop 2krot 3kroth k3rou 2krÃķh 2kruf 2k3run 4k1s ks3a2b ksa2k k4s1amt k2san ks3a2r ksa2s k2sau ksau2f k2sav k2sÃĪh k3s2c ksch4 k2s1e2b k2s1ec k3s2ed ks1ei ks2eid ks2eif k4seind kse2le k2s1eng k2s1ent ks1er ks2ere k2serf k2serg k2serk k2serl k2sers k2serw k2s1e2v k2sex ks3ha k4s1i2d ks2im k2s1in k2s1is k3s2ke ks3kl ks1o ks4on k2sop k2so2r k2sÃķ ks1pa k2spal k3s2pat k2spÃĪ k3spe ks2pel ks2pen k2sph ks2por ks2pul ks3s4 kst2 k2stal k4s3tanz k3stat4 k3stÃĪl ks4tel ks2tep k4stier k2stit ks4tol k2stor k4strop k2stuc k2stum k2stur k2stÞt k2s1u k3sul ks2zen 4k1t kt1abr kt1abs k2t1ad kt1akt k3tal kt1am kt1an kt2and k2t1a2r kta4re kta3ri k2t1au kt3aug ktÃĪ3s kt1ein k2tek k4t1ela kte4n1 kten3s2 k2tent k4tentf k4tents kten3z kte2ra kte3ran kt4ere k4t3erfo kt1erg k2t1erh k2terÃķ kte3ru k2tex k2t1h k2t1i2d kti2me kt3ind kt1ing kt1ini kt3inn k2tint kti2s1e k2tiso kti4ter kto3b k2t1of kto5ren. k3t4ran kt3ras k2t3rau k4tref ktro1s kt3run kt3rÞ kt3s4a kt3sÃĪ kt3se kts2el ktsen1 kt3si kts1o kt2sor kt3s2z ktt2 k3tub kt1ums k2tuns k3tÞ kt3z2 ku2al ku1c kud4r 3kug ku2h 2k1uhr ku3la ku3l2e ku3l2i 4kulp kul4to kul2tr k2um. k2um4e 2kumg 2kuml kum2sa kum2sp k2u3n2a kun3da kund2e kunden3 kung4 kun4s4 kunst3 2kunt 2kunw 4k1up. kur2bl ku2rei kuri2e kuri4er 2k1urk ku2ro kurs1c kur2sp kur2st 2k1urt4 kur3tsc kus3a2r ku4schl ku2sp 2ku2s3t2 ku2su 2kut. kut2a kuto3 1kÞ kÞ1c 3kÞne 3kÞr kÞr4s 2k3v 2k1w k3wa 2k3z2 kze3l 3la. la3ar l1ab 3l2ab. lab2a la2bad l2abÃĪ 2labb lab2br 2labd lab2e 4la2ben 4labf 2labg 2labh 3labi l3a2bit 2la2b3l 2labn 3lab2o 4labo. la3b4ra lab4res la2bri 2labs la2bus 2labw 2labz la1ce la2ce. l4a3che lachter8f lacks2 1lad 2l1ad2a 2ladd 3laden la3d2i 2ladj 2l1adl 2ladm 2l1a2dr 3l2adu 2laf la2fa la2f1ei la2f1er laf1r laf3s laf3t4 la2fu la2g1a lag3d l2ager lagerin5 4lagg la2gio lag3l la4g3n lago4 la2gob lag3str 2la3ho 3lai lake2 la2kin l2akk la1k4l la2kro lak3t2 2l1al la2la 3lala. 3lali 4lalt lami3t lam2m1a 1lammf la2mor l2amp 2l1amt lamt4s la4mun la2na la3nan la4n4at la4nau 2la2nÃĪ 3l2and l4and. lan2da lan4dam land3au l4ande lan6derh lan6d5erw lan6d5erz lan6d5inn l4an2dr lan3dri land3rÞ lan3erd laner4f 2lanf lan4gan lan6g5esc lang3s4 2lanha l2anhe 3lan2i 4lanl 2l1ann l1ano la2nof 2l1anp 2lans2 l1ansi 2lantr 2lantw 2lanw lan2z1w 3lao 2l1apf la2ph 2l1a2po lap2pl la2r1an 2larc lar1e2b la2r1ei la2rel la4rene larf4 lar3g lar3ini 4l1a2rom l1art 2lart. lart2h l3arti lart4r 3laru l2as. la2sa la4sam la4sÃĪ lasche4 4lasd la3seb la2sei la2s1e2l 2lash la2sin la2sis la2so 2la4sp 3lasser l2a2st las4t3an la4ste last3ri la4stu la3t2e 2l3a4tel la5t2i 2l3atl 2latm lat2o la2tÃķ la2t3ra lat4ri lat2s lat3st 2lat2ta lat4tan lat4tex lat4t3in lat2t3r latzer4 1laub. lauben6s5 lau2b3r laub4se lau4fin 2laufn lau2fo lau4fri 1laug lau3gl 2laun. la4us 3l2aus. 2l1ausb lau6scha 2lausd 2l1ausf 2lausg 2lausl 2lausr 2l1auss lau2st 2lausw 2lausz 2lauto lau2tr la3va lave4n 1law lawa4 1l2ax la4xel l2ay lay1s lÃĪ1c 3lÃĪd 4lÃĪf 2l1ÃĪhn 2lÃĪmt 1lÃĪnd 2l1ÃĪpf 2lÃĪq lÃĪr2ma l1ÃĪrme 2lÃĪrz lÃĪ2s1c 2lÃĪt 2lÃĪub 2lÃĪuc 2lÃĪue 1lÃĪuf 2lÃĪug 2lÃĪx 1là 2l1b l3bac l2bant lb3a2ri lbau1c lb1ÃĪrm lbb4 lbby4 lb2ei l4b3eink l4b3eise lbe4ral lberin5 lbe7s l4b1e4ta l2b1id l2b1ins lb4lad l3b2lat l3blÃĪ lb3le l2bled l2blic l3blo l3b2lÃķ l3b2lu l2b1o2ra lb3rea lb2s lb3sa lb3se lb3si lb3sp lbs4t lbst3ac lbst3ei lbst1u l2b1uf l3bum lbu4n lbzei2 2l1c l3ca l3che l4chei l4chent l3chi lch3le lch3li l3chlo lch3n lch3r lch3s2 lch3Þ lch1w l2ck l3cl l3co 4l1d ld3a2b1 ld2ac ld3a2ck l2daf lda2g l2d1ah lda2i l2d1ak l2d1al l2d3a4n ld1arm ld1ass l2d1au ld3aus l3dÃĪm ld1ÃĪr ld1ÃĪs ld1ÃĪt l3de. lde4ben l2dei ldein7 l2d1elf l2d1e2mi l2d1ems lde4na lden5erg l4dentl l3der. l4d3er4fa l6der6geb ld1erh l4der4he l3d2erl l6d5erlas l3d2ern l2d1er2p lder4tr lde3sa l2d1es2s l2dex l2d1id ld1i4mi l2d3ion ldo2b ld2on l2dop ldo2r l2d1ori ld2os ldos5t ld2Ãķ2 ld3r ld4ram l2dran l2dre l3d4ris ld4ru l2drÞc ld3sa lds4an ld3ska ld3st ldt4 ld3th ldt5s ld3tu l2d1ul l2d1um ldwes4 ldy2 1le le2ad le3ar le2as 3leba leben4s3 le2bl 3lebr le2b3re lebs2 2lec lech1a le2chi lech7t6e le2dr le2er lee4ret le3f2a 2l1eff lef4o le2g1ab leg1as le2gÃĪ le2gl leg4r legs4 3leh 4lehe. leh3r2e 4lehs 4leht lei4ble l2eid lei3ere lei4fan lei4fei leifer6g leif3s 2l1eig lei3gl 3leih lei4hau lei3l2 leim3p 3l2ein. l2eind lein4du l4eine lei6nerb le2inf le2ini 2leink 4l3einsa 2leint l2einu le2is leisch5a lei8schei lei6scho lei6sern l1eisf leis6s5er l4eist lei4str lei4ßer l2eit lei2ta lei4to lei5tri leit3s2 leits4t 3leko 2lektr 2lekz 3l2ela le2le le3lei 2lelek 4leleme le3len leler2 leler4s le3les 2lelf. 2l1elfe l2eli l2em. le3mal le2mau le2m1ei 3lemes 3lemet lem1o2 le2mor 2lemp lem3s le2mu le4mun l4en. len1a len3ab le4na2d le4n3an le4n3a4t le2nÃĪ 4lendet l1endp 4lendun le2n1ed 4lenerg le4neur 4leneuv len4gag len4kau len4k3lo len4klu l1enni len6sein 4len4sem len3ska len3sz 2lentg 2l1entk 4lentla 2lentn 4l3en4tro 4l3entw lent4wÃĪ 5lentwet 2lentz 2lenzy leo2f le1o2s 2lep 3lepf 4l1e2pi 4lepoc 3lepr l2er. l2e1ra le2rag le2r3ap le2ra2s le2rau le2r1ÃĪ le2r1e2b ler2e3c l3ereig le4r3ei4m le4r3eis le2rel le4reng le4rerg le4rers le2re4t 4l3erfas 2l1erfo l2erfr l2erfÞ l1erg l2erga l4ergef 3lergeh 6lergen. l4erger l4erges 3l4ergew 2lergi l2ergl l2ergr 4ler4heb 4lerhol lerin4s lerk2 l2erka 2lerke l1erkl 4lerklÃĪ l4erkle l2erko ler3kr ler3l 5l6erlebe 3l4erlei 2lermÃĪ ler4nal ler4nar 3l4erne ler4nei 2l1erÃķ 3l2erra ler4ric l4ers. l1ersa lers2t ler4sto lert2 ler4trÃĪ le2rup l4erwa ler4wer 2ler2wo 2l1erz ler2zÃĪ l3erzeu ler2zo l4es. les2am les2e lese1i 2l1esel le3s4h lesi1 le3s2k les4ki le3so le2spo lest6 le1sta les2te3 lester6i le1sto le1str 3lesu 4lesw 2lesy le2tab 2le2tap 2le2tat l1e2th le3tha 2lethi let2i letsche6 let4top lett1r letts2 le2u 4leue 3le3u2f 2l1eul le3unt 2leuro 3leut l1e2vol 2lex 3lexd 3lexik le2xis 1lÃĐ 2l1f l3fah lf4at l2f1ec lfe1e lf3einh l2feis lf2en l4ferei lfe4rel lf1erl l3fi l3f4lÃĪ lf3led lf4lÃķ l3f4lu lf3ram lf3res lf4ru lf4rÞ lf2spe lf2sti lf2su lfun2 lfur1 2l1g l3gas lga3t lgen2a lgene2 lgerÃĪu3 l2geti l3g2i lg2lÃķ l3go lg4p l3gra lg3re l3gro lgung4 2l3h2 4lhe 3lhi. 4lhu 1li li1a lia2b li2ad li4am. lian2g li2ast 3lib4 libi1 li1c lich4ta lich4to 4lick li2cka li2cl li3d2a l1ido l2idy 3lie. liebe4s3 lie2br li1efa 3liefer li1efk li3efl lie4n1a2 li3ene lien3s lien3t lie4rei lier4sp lie2s1c 3lig liga3s li4g3ers li4gl lig4n li3ker lik2o likop4 lik2sp lik4ter lik2ti lik4t1o2 lik2u li3l lil2a li3m2a1 limas4 lima3t4 2limm 3limo 2limp lin2a li3nar 2lindi 2l1indu li2nef li2neh li2nep li2nes 2l1inf 2l1inh li5nie lin1it 2l1inj lin4kan lin4kar link2s li2nol l2insa 4linsel 2linsp 2linst 2linsu 2linsz 2l1int li3n2u 2l1inv 2linz li2o li4om li3o2st 3lipf 3lipt 3lis. li3s2a li3schm li4schu lis2h li3shi 3lisk 2l1isl 2l1i2so li2sp liss4 3list lit4a l1i2tal li3t2ÃĪ l2i3t2e 3liter li4t3r lit1s2 lit3se lit3sz li3tu li6tun li4tur litz4er 3liu liv2e li2vea li2ves livi3e li3vr 2lixi li4z3ÃĪ lizei3 2l3j 2l1k l3kale lk1alp l3k2an l3kap l3kar. lk1erd lke3r2e lk2l lk3lad l3k4las lk3lic l3k4lu lk2men lk4ne lk5ner lko2f lk1ofe lkor2b1 lk3roc lk2s1 lk3sÃĪn lk3si lk4spe lks3t lkt2 lk2Þ 4l1l l2labk l2labt l3labu l3lage lla3gl l2l1am lla2ma l3lame ll2ami ll2anb lla4ner l4lani l3lans. ll4anwa ll1anz l4l3appl ll1arm l4latm ll3att ll3aufg ll1aus ll1ÃĪm l2lÃĪr llb4 llch4 ll3d4 ll5ebene l3lec ll1ech lle3er l2l1ef ll1eic ll1eim ll2eis l4leise lle2la lle2m l2l1emi l3len. lle4na llen3dr ll5en6dun l4lentf l4lents l3lep l3ler. lle2ra ll2ere l6ler6eig ller4fo ller6geb l8lergene l4lergo ll3erho l4l3ermi l4l3ernt ll3ertr ll2es lle4th ll1exe llg4 lli4gan l2limb l2l1ind l4linf ll1ins ll3k4 ll3l2 ll5m2 ll3n2 ll1ob l2lobe l2l1o2f ll3ol l2lope ll1opf ll1or l6lorb llor2g l2lo2ri l2l1ou l3low ll1ox ll2sÃĪu ll2s1es ll3ska ll2spr ll3t llt2e llt2i llti2m ll5t4r llts2 ll1ur llus5t6 l3ly ll3z2 2l1m l2m3a2b l2m1ad lm1a2ge lm1aka l2m1a2m l3mana lm1apf lm1art lm3att lm1ÃĪst lmbu2 lm1c lmd2 lm3e4dit l2m1ef l2ment l2m1e2p lmer2 l2m1erf l2m1erl l2m1erz l4messa l2m1i2d lm1ind lm1ins l2mof lm1orc lm3p2 lmpf4 lm3s2k lms2t lm3ste lm3s2z lm3t4 l2mum l4munt 2ln ln2ab lna2r ln3are lnd2 l3n2e lnes2s l2n1in lnus2 l1nÞ l1ny 1lo lo4ak 3lob. l2oba 3lobb lobe2s 2lobj l1o2bl l2obr lob4ri lo4chel l1ofe lo2fen lo4gh lo2gl lo2gor lo2gre lo3ha loh2e 4l1ohr loi4r 3lok 4l3okk lo2k3r 5loks l4ole 2l3o2ly lomÃĪ3 lo2min lo2ner lo4nin lo2n1o lo2o 2lopf lop2p1a 2lopt lor3am lor2an lo4rÃĪ 5lorb 2l1orc 2l1ord lo3r2en 2l1org2 lori4di 2lort2 l2os. lo4sa 3lose lo4ske lo2spe lo2spr los3t lo4ste lo2st4r 4loß lo2ta lo3tha loti4o 2l1ov lo2ve 2lox 1lÃķ lÃķ2b3 2lÃķck 2lÃķd lÃķ2f 2l3Ãķfe 2l1Ãķhr 2lÃķk 2l1Ãķl3 2lÃķp 3lÃķsc 3lÃķsu 4lÃķß 4lÃķz 2l1p lp2ar lpar2k1 l4p1ÃĪr lp2f lph4 l3phÃĪ l2phir lp1ho l3phr lpt4 l3pu 2l1q 2l3r2 lrau2s lrebs2 lro2h lrÃķ2 4l1s ls3a2b l2s1a2d ls2al l4s1amb l4samp ls2amt l2san ls3ane l3sare ls3a2ri l3sark lsau2 lsau4m lsau4r l3s2ÃĪm ls2ÃĪug ls1ÃĪus ls2c l4schin l4schmÞ lschs2 l2s1e2b ls2ele ls1eli l2sent ls1er l2serf l2serg l2serh l2serk l2serl l2sers l2serw lse2t ls1eta ls2ext ls3ha l2s1id l2simp ls2kal l3s4kele ls2ky lso4b l2sop l4s3ort. l3s2Ãķl l2spac ls2pe l2s3ph l2s1pir l3s2pit ls2po l3spri ls2pu l3spul ls3s4 lst2a lstab6 ls3tabl ls4taf lstahl3 l2stas l4stat. l4state l4s3tÃĪti l2ste l3stea l3stec l3steh l3stei l4steil l3stel l3stemp l4sten ls4t3erk l5s6terne l5s6terns ls2tie l2stit l4stoch ls4toi ls4tol ls4tru l2s3trÞ ls2tu ls4tÞm l3suf ls1um l2s1un ls2und ls3unk 4l1t l2tab lt1abs ltag4 lt1am l4tame ltampe4 l3tan. ltan3d l2t1ap lt1ara ltar8beitn l3tark lt1art ltar6tik l3tartu lt1au l4tauf lt3aut lt1ÃĪh ltbau1 lte2c lt1eh l3tehu lt1eig lt1ein lte3mi lt2en lten6gel lten4sp lt3ents lte4ral lter4fa l3t2erg l4terhe lter6ken lter4ku lter4nÃĪ lte2ro lt2erÃķ lter4se l4t1es3k lt2est lte3str lt2et l2t1h lt3hag l3thas l4t3hei lthol2 l3t2hu lt1ide ltimo4 l3tine l2tiso l3t2i3t l2t1ob l2t1o2f l4tord l4torg l4t1o2ri lto2w lt1Ãķl lt1Ãķs l4t1Ãķt ltra3l lt3rÃĪu lt3rec lt3rei lt3ris lt3rol l2t3rÃķ l2t3rus l4ts lt2se2l lt4s3ort lt2s1pe lt3s2ph lt2sti lt3t l3tub lt1uh l2t1um lturan4 lturen4 ltu2ri l3tÞ lu1an 4lu2b3 luba2 lubs2 lu2dr lu2ec lu2es lu2et 1lu2f2 2l1ufe 2luff lu3fo luft1a luft3e luf4tei luft3r lu2g1a lu2g1e2b lu2gei lugen1 lu2gi lug3l lu2go lu2g3r lug3sp lu2gu 2l1uh lu1id. lu4ig lu1is. lul2Ãķ 2lumd lume4 2lumf 2lumg 2l1umh 2lumk 2luml l2ump 1lumpe lum2ph 2lumr 2l1ums lu3mu 2l1umw 2lumz 1lu2n 2l1una lund4 2l1unf lung4sc 2l1uni 2lunr 2l1uns 2lunt 2lunw 4luo l2ura lu2r1an lu2rat lu2rei 2lurg l2uri lu2ris l1urn lu2ro 2lurs l1urt lu4ru lu3sak 2luse lu3si lu2sp lus4s3a lus2s1c lus4sel lus4s3er4 lus2s1o lus4s1p lus2s3t lus4stÃĪ luss5tr 1lu2st lus6terl lus4t1o2 lust3re lu2s1u lu2t1a4 lu4tas lu4t3au lu2tÃĪ lu2t1e4g lu2tel luter2 lu4t3erg luter4s lu6t5ersa lu2thy 2luto lu2tob lu2t1o2f lu2top lu4t1or lu4t3r lut5schl 2lÞb 3lÞbd lÞck4e2 lÞcker3 5lÞd lÞf3te lÞ2hel lÞh1l 2l1v2 lva3 l3vl lv3r 4l3w4 2lx 1ly ly1a2 ly3c ly3es ly1l 2lymp 3lyn ly3no ly1o ly3t ly1u 2l1z l2z1ac l2z1ag l2zan l2z1ap l2zat lz1aus l2zÃĪp l2zÃĪr lze2l l2zele l4z3enth l2z1ep l2z1er2h l2zerz l2z1id lzi4m lz1imi lz3l lzo2f l2zÃķ lz3t2 l2z1u4fe lzvol2 lz1w lz2wec l2zwu 1ma 3ma. maa2 m1ab m3a2bar m2abÃĪ 2m3abb m2abe 2m3abf 2mabg 2mabh 2mabk m2abli 2mabm ma2br m2a3b4ra 2mabs 2mabt 2mabz ma3chan mach2e mach8terh mach8t7ers mach4tr ma2ci mack2s 2m1act mada2m m2adÃĪ ma2del ma3dj 2m1adm 2m1a2d4r ma4d2s mae4 ma1f4 mag2a ma2ge. ma2geb ma2gef ma2geg ma2gek ma2gep ma4ges. ma2get ma2gev ma2gew 2m1agg magi5er. magi5ers ma3gl ma3g4n 2m1ago ma3ha mahl4st ma1ho mai4s3e ma2ke. 2m1akt mal2ag mal1ak ma4lakt ma2lan ma2lau ma2lÃĪr 2mal2de m2aldi ma3le ma4leb mal2er ma4lex mali1e mal3lo 2mallt ma2lon ma2lop m2alp mal3t malu4 ma2l3ut 3malv ma2mid mam3m 2m1a2nal ma2nar 2m1a4n4at ma2nau 2m1anÃĪ 2manb man2ce 3man3d4 ma2net m2anf mang2 2man3ga m4angel 2m1angr m2anh 3manip 2manl m2anle 3m2ann 2manod 2m1ansa 2mansÃĪ man2t1h 2mantr manu3 ma4n1ut 2manw 2manz m1anza ma2or ma2phr ma2po ma1q m2ara 4marag mar2an 2marb mar3g2 3ma1rh ma3r2i m2ark mar2kr 4mar2o maro3d 4marr mar6schl mar6schm mar6schr mar2sp mar2su 2m1arti ma3r2u m1arz 3mas ma3s4a mas2e ma3s2p masse4n3 mas4ta mas4tel mas2ti mas4to mas4tr ma4s3z 3maß ma2ta2b ma2tan ma2tÃĪ m3a2tel ma4t3erd ma4t3erz m4atme 2matmo ma2to ma4tort mat3se mat3sp matt4r mat3url 2m1au2f 3maul ma3un mau3r 2maus mau2ta m4ay ma1yo 1mÃĪ 2m1ÃĪhn mÃĪh1r 4m1ÃĪnd 2mÃĪo 2m1ÃĪp 2mÃĪq mÃĪr1 mÃĪr2kl mÃĪr2z1 mÃĪ3t4r mÃĪu2s1c 2m1b2 mbe2e mber2e mbe3ri mbert4 mbi3er. mb4l mble1i mb4r mbu3sc mby4t 2mc m3ch 4m1d m2dan m2d1a2s md1ÃĪr mde2a m2dei mde2m m2d1emi m2d1ent mder2 m2d1erl md2Ãķ md3ras md3s2e mdt4 m2d1um 1me me3an me3at meb4 me2ben 3mebr me1c medi3e4 me1e2m mee2n mee4r3ei 2m1eff mega3 me4gel 3meh meh6l3er mehrer4 2m1eif 2m1eig m2ei3l2 mein4da meinde3 meiner6k mei6nerl 3m2einu 3m2eist me3lam me3l4ant me2l1au melb2 mel3d2 melde3i me2lek 2melem me2ler melet4 2melf. 3melk mel4k3ei mell2 3melo me2lob mel2se mel5t4 6mel6tern 2m1e2mis 2m1emp 2m1e2mu m2en. men3ab me3nage me4n3an men3ar me4nas men3au 2m1endl menen1 4men4gag men3ge me2nim men3k4 men2on men4se. men4sem 6mensemb men4sen men4ser men4ses mensi4d men2so menst4 m4enta men4t3ak m4entei ment5eig men6t5ers 2mentn ment4sp me1o 2meou 2meÃķ 2mepa 2m1e2pi 3m4er. me1ra mera3l mer2a3s4 me2r1e2b me4rens mer4err mer4erw 4m3er4gÃĪn merin4d merin4t 4mer4klÃĪ mern3s2 m4ersh mer5sm mer6stel mer4sto mert4r merz6eng 3mes me2sal me4sÃĪ 4meser mes2po mes1pr 2mes4sa mess3an mes6ser6g mes4s1o mes2sp mes2st mes3ta me1sto me3su me3sze me3ta meta1s me3th meto1 me2tÃķ me4trig met6t5en6d me3tu meu1 2m1ex me2xe 1mÃĐ 2m1f4 mfi2le 4m1g2 mgang4 mglim2 4m1h2 1mi mi1a mia2b mi2am 2m1iat mi1ÃĪ mibi1 mic1e mi1ch mi2ci mi3da mi2di. mi3dr 2midy mie3dr mi3ele mi4e3no mien3s mierer4 mie1s mie2ti mie4to mie2tr mi1f4 3mige mi3h mik1an mi3ke mi4kel mi4kens mi3k4l mi2ku 3mil mi3l2a milch1 mil4che mild4s mi3l2i mi3l2u 4milz m2im2a 2m1imm 2mimp min2ac mi3nak min5anze m2inde minde4s 2m1indu mi2nef miner1 mi4n3e4ri min2eu 2minfo min2ga ming3s 2minh mi3ni mini3k4 mi3nod mi2nof 2m1inse m1inst mi3nu mioni1 mi1p 3mir. 3miri 3mirs 3mirw 3mirz 3mis. mi2sa mi4scha misch3w mi3se1 2m1i2so mis2pa mi2spe mis5sar mis4ser mis4st mis3te mi1sto mi1s4tr 3misu 3mit mi2ta mi2t1h mi2to mi2tr mit3s2 mit5sa mit3ta mit3t2e mitte3s mi2t1u 4mitz mi3v2 2m1j 4m1k4 m3kn 4m1l2 ml3c m3le ml3f ml3k m3lo ml3p ml3s 4m1m mma3a m2m1ak m2m1al m2m1ans mm1anz m2m1ap mm1art mma1st mm1aus mm1ÃĪu mmd2 m2m1e2b m2m1ef mm1ein mme2l1a2 mme4lin mm2ene mmen6te. mmen6ten m4mentl m4ments m4mentw mme2r3a mme4rec mmer6geb mme2s mme3sc mme4sz m2m1eu mmi3el mm1inb mm1inh m2m1ins mm1int mm2is mmi3sc mmisch4 mmi1s4t mmi5tw mm3m2 mm3p2 mmpf4 mm2s mm3sa mm3s2i mm3so mm3s2p mm3sta mm3sti mm3te m2mum mm2un mmu3r mmÞl2 mmÞll1 2m3n2 m4nesi 1mo 2m1o2be 3mobi 2mobj 3m2od mo3de mode1s mo2dr m1of mo2fe 3mog 2mog. mo2g1al 3m2oh moh2a moi3r mo2k1l mol3d 3mom mom2e 3m2on mo2nan mo2nÃĪ mon4dac mon4del mon2do mond3r mo2ner mon2s3 mon3sa mons4e mon3s4u mont2a mon3th mo1ny 3m2o2o 2mo1pe mo2per 2m1opf 2mopt mo1ra mor2an mor2d3a mor2dr mo2rei mor3g morgen5s6 mor3t2 3mos mo4ska mos3s moster4 mos2ti mo3t2h mo5to mot4r mous4 2m1ox mo1y 1mÃķ mÃķbe2 mÃķ2c 2mÃķ2f 4mÃķk 2m1Ãķl 4m1p mpa3ne mpe2la mpe4lin mpe2n m2p1ene m2pf mpf1ef mp4f3erf mpf3erg mp6fer6ge mpf3erp mp6ferpr mp4f3err mp4f3er4z mp2f3l mpf1or mp2fr mp1haf mp1hos mpin2 m3plÃĪ mp3lei m4p3lem. m2p3len m2p3les mp4lis m3pon mpor6tag mpor6ter6 mp3sh mp3str m3pu 2m1q 2m3r4 4m1s m2sam m2san m4sap ms1as m3sat m2sau msau3e m3sÃĪ m4s1ÃĪn m3sc msch2 m4sco m3se m4s1e2d m4s1ef m4seig m4sein m4se2le mse2n m4s1ene m4sent ms1erf ms2erh mse2t m4s1eu m4sex m2s1o2d mso2r ms1ori m2spÃĪ m2sped m4spl ms2po m2spot m2spro ms2pu ms3s4 mst2 m6stag m3stÃĪ m3steh m3stei m3stel ms2ti m2stit m3s4to m3s4tr ms5trÃĪ m3s2tu ms4tÞ m2sÞ m4sw m3sy m4szi 4m1t mt1ab mt1ak mta2m mt1ar mt3aug m2t1e2d mt1ein mt1eis mt1elt mt1emi m4tenga m4t3engl m4tentf m4tentg m4t3en4tr m4tents mter2 m2t1erb m4t3erei m2t1erf m2t1erg mt1erh m2t3e2r4i m2t1erk m2t1erl mter4n m2t1ers m2t1ert m2teta m2t1eu m2t1ev m2t1h mt3ho m2t1i2d m2tim m2t1in m2t1i2r mti2s mtmen2 mt1ob mt1op m2t1Ãķl mt1Ãķs m2t3ro m2trÃķ m4ts mt2sa mt3sco mt2s1e mt3send mt3s2ka mt3s4kel mts3tÃĪt mt3stu mtt4 mt1um mtu3re m3tÞ mt3z 1mu mu1a mu3cke mu4ckel 2m1uh mu3la 3muld mul4lau 3mult 3mumi m1ums mum2s1p 3mun mundan4 mun6derf mu2ner2 4m1unf 4m3ungeb mu3ni mu4nin 4mu4niv 4munw 4munz mu4r1u2f 3m4us mu4s1a mu2s1o mu2sp mu2s3t2 4must. must4e mu2su mut1au mut2st 1mÞ 2mÞb 3mÞh mÞ2her mÞhl1a mÞl4len 3mÞn 3mÞt mÞtter3 2m1v mvoll1 2m1w2 mwa2 mwa4r mweg4s mwel4 mwelt3 mwu1 3my my1al my2s3 2m1z2 mzug4 1na 3na. 2n1ab 3naba na2bÃĪ naben3s4 n3abh 3nabi n3abk na2b3l na2bor na2br nab4rÞ 4n3abs2 na2bus 3nac n4ac. na2ch1 nachen6 na5chen. n3achse nach3sp nach8t7ersc nacht8raum n1ada na3dab 3nade na3de. nadel1 na2der 4n1adl 4n3adm n1a2dr 3nae na3el 2n1af na1fra nag2a na3ge. na2gem 4n1agg n1a2gi na3gin na3g4r 3n2ah na2h1a n4ahm 4n3ahn 4n3aho 3nai nai2e n1aig 4n3air nai4re n2ais 2n1ak 3nakÃĪ 3nako na2kro 4nakt n2al. na2l1a2 nal3am na4lar na2lÃĪ 2n1albk n2ald nal3da nal3ei na4l3ent na6lerei na4ler4g na4lerm na4l3erw nales2 nal1et nal1ex nalg2 na2lid na2lop nal2ph n2als. nal3t nalt2a nal5tr n2alty na2lu 2naly na2mat 3name na3me. 4na2mei n4a3men namens3 4n1a2mer na2mid na2min na3m4n 3n2amo n1amp nam4sp 2n1amt namt4s na4my n1an 4na2n4a na4nat n3a2nÃĪ 4n3anb n3and2 nan1eu 4n3anf 4n3ang 4nanh 2nani 4n3ank 4n3anl 3n2ann 4n3anna 4nano nan2o3b 4n3anp 2nanr 4n3ans 2nantr 2nanw n2anz. nanzen4 nan6zene nan6zeng nanzer4 na3ot na2per n1apfe 4napfel n3a2pr n1aq n1ar 5nar. na2r1a 2narc n2ard n2are n4are. 3nari n2ark n2arle 2narm n2aro na2rom n2arr n2ars 2nart n2arta n2arth na3r2u 3nas n4as. na3sÃĪ na4schw 4n1a4sp nas2s1c 4n1assi nas4ta na2str 4na2sy nasyl2 3nat n4at. na4t3au nat1ei na2tem na2t2h 4natm nat2o 4natom 5nator nat1r nat4sa nats1e na3tu n1au nauf4fr nau2fr 5naui 3n2aul 4nausb 4nausd 4nausf 4nausg 4nausl n2auso 4nausr 4n3auss 4nausw 4nausz 3nav nave4 navi5er. navi5ers 1nÃĪ 2nÃĪb 3n4ÃĪc 3nÃĪe 2n1ÃĪf 3nÃĪg nÃĪ2hi 3nÃĪhm 2n1ÃĪhn nÃĪ2hu 2n1ÃĪ2m 2n1ÃĪn 4nÃĪpfel 2nÃĪq nÃĪr4s5t nÃĪ2sc n2ÃĪss 2nÃĪu 3nÃĪ1um 2n3b4 nbais4 nbe2in nber2e nbes4 nby4 2n1c n2c3ab n3can n3ce4n n3ces. n3chl nch3m n2ck ncor2 n3cr n3cu 4n1d nda1f nd2ag n3dai n2d1ak n2dana n2dani n2danz nd1arr n3dat nd3att nd1au n2daut n2dax nd1ÃĪng nd1c nde4al. n2d1ede n3dee n2dei nd3elfe ndel3l ndel4s3a ndel6s5en ndel7ster nde4mot nden3sk n4dentl n4dents nde3o2 n5der. n5deren nd2erh n5deri nder6lÃĪs nde4rob n4de4ros n6der6sat nder5ste n3d2es1 nde2se ndes3s ndi2a3 nd1imm ndo1c n2dof ndo2n3a n2dopt nd1or n2do2ri nd2os ndo1st n2d3ott n2dÃķ nd2Ãķs nd4ram n2d3rat nd3rau n2d3re n2drif n2d3roc n2drod n2d3rÃķ n2drui n2d3run nd4sene nd2spr nd3th ndt4r n2duns ndwa5re ndy3 1ne 3ne. ne2ap 3neas ne3at ne3au 4n3ebene ne2bl 2n1ebn neb4r 2nec 3neca 3nece ne2ch ne1ck neck2a ne2dit 2nee neei2 ne3ein ne3eis neen2 nee1r neer2e n1ef n2ef. n2e3f2a 2nefr 2n1egg neg4l n1e2go neg4r n1ehe 2ne2he. 2nehem 2nehen2 nehe2r 3nehm 4n3ehr 2n1ei 3neia 4neic nei4dei nei4dr 4neier 3neigt 3neigu nei4la 4neing 4neinh 4neink 4neinl 4neinz 4neip neiss4 ne2ke 2n1eks nek3t2 2nekz ne2la nel3b n1e2le 4nelek 4nelem ne3len ne3lex nel2i ne3lid ne2lit 3nelk n2ell nel2l1a nel4lei neller6f 3ne3l2o 3nelu 3n2em. 4n1emb 4n3emp 2n1ems 4nemu 3nen n4en. n2en3a nen4am ne4nan ne2nÃĪ n2enb n2enc nen4dar 4n1endb 4n1endd 4n1endf n1endg 4n1endh 4n1endk n1endl 4n1endp 4n1endt 4n1endw nene2b nen3ei nene4m nenen1 ne4nene nen3erb ne2n3eu n2enf 4n1engb nen4gen 4n1engs 4n1engt n1engu n2enh ne4n3i n2enj n2enk2 n2enm nen4nar ne2no4 nen3s4e nen3sk nen3s2p 5n2en3t2a 4n1entb 4nentd 4nentf 5n2enti 4n1entl 4nentn 5nentr 4n1ents 4n3entw 4nentz ne4n3u n2env n2enw nenz4er ne2o3b ne2oh ne2or neos4 ne2pen 2nepf 2ne2pi 2nepo ne2pos nept4 n4er. ne1ra ne2rab ne2rac ne2r3af ne2rag ne3r4al ne2ram ne2ran ne2r3ap n2erat ne6ratio ne3rato ne2rau n2erb2a 4n3erbe. 4n3erben 2nerdb ner4dig nere2 ne2r1eb ne2rec n1erf 4nerfas 3nerfr 2nerfÞ 2ner3g4 3nergr n1erh 4n3erhÃķ 3neri n2erj n1erk 5nerka n2erkÃķ n2erli 2n1erlÃķ n1ermi 2n1ernÃĪ 4n3erneu 2n1ernt n1eros n1erÃķf ne1rÃķs n2ers. 2n1ersa 3nerse ner4sk 4n3ersts nert4 3nert. ne2rup 3n2erv 4nerwar 2n1erz n2es. ne2sal nes2an n4ese ne2sei ne2s1ev 2ne3sh ne3si ne3ska ne2s1of ne2s1or ne2s1pa 4n1es2si nes4sig ne1sta ne2ste nes3ti 2n1est3r 4nesyn 3neß ne2tab 2ne4tag net1ak ne2t1an 2ne2tap 2ne2tat ne4te2l ne2th net3ha ne3ti ne4tin ne4tob n2ett net3ta net3te net3tr 2n1e2tu net4zer net2z1i ne2u neu1c neu4ere neuer4f neuer4k neuer4r neuer4s neuer4w neu3g4 2n1eup neur2 neu2ra neu3t 3n2evi n2ew ne3wa 2n1ex ne2xi 5ney 3nez 3nÃĐ 2n1f n3f2al nfalt4 n3f2ang nf4ar n3f2ÃĪ nfe2i n3f2en n3f2er nf2es n4fex nff4 n3fi nfi4le. nf4le nf2o nfo1s nf4r nf3s2 nf2tan nf2t3r nft4st nfts3tr nf3tu n2f1u 4n1g n3gabe ng1abt n2g1a2c n2g1ad n2g1ak ng1a2me ng3anda n2ganh n4ganl ng1ans ng1ant ng1are n3g2ars n2g1a2v n2g1ÃĪl ng3d n2g1eif n2g1ein ngelb4 nge3l4ei ngelt2 n3g4en n5gene nge5nerw ngen3sa nge4ram n2g1erg nger4zÃĪ n3g4es nge3sa nge5t ngg3s ng3hu n2g1id ng2lad ng2lÃĪs n2glic ng4lok n3glot n2gn ng3ne n4g3ni ng4nom ng2nu ng2ob n2g1op n2g1or ngo2ri n2gÃķ n2g3rai ng4ran n2g3rat ng3roc ng3rost ng4s3au ng4scr ng4s3e4h ng4sek ng4sens ng4spar ngs5tan ngs4teu n4gt ng3ts n2gum ngung4 ngzei4t 4n3h2 nhe2r 1ni 3n2ia ni3alo ni2ar nibb4 nic4 ni1ce n1id 3n2id. ni3da ni2de 2nidea ni3d4r 2n3idy n2ie nie3b ni1el nie3l2a nie4n3 ni3ene ni3eni nie4rei ni4erna nie2sa ni2eu nife4s3 ni1fl niga2 ni2g1ab ni2g1am ni2g1an 4n3i2gel n4igen 2niget ni4gl nig3li ni2gn nig4sp nihi3 ni2kar 3nike ni2kel ni3kerh ni2ki nik3ing ni2kor ni2k3r nik3t4 3n2il ni3l2a ni3l2i 4nimp nin1 3nin. 3n2ina nin2ac ni2nal 3n2inb 2n1ind 2ninf 3n2ing ning4s 2n1inh 4n1ink2 3nino ni2nor 3n2inp 2n1ins 4ninse 4ninsu 4n1int ni3nu 4n1inv 3n2inw ni2ob ni3ok ni3ora n2ip ni4ron n1irr 3n2is ni4sam ni2san ni2sÃĪ nis3cha ni4schw ni2s1e 4n3isol ni2som 4nisot ni2sp ni3spi nis3s4 nis3tha ni2s1u 2nit 3nita ni2ti 4ni4tia nit2o 3nitr nit3s nit6ter6g nit6t5er6k nit4tra nitt4sa 3niu ni3v2 3nix 2n1j 4n1k nk1abr n2k1ac nka2ge n3kal n4kalg nk1ang nk1apf nk3art. nka3sc n2katm n2kato nk1aus n2kaut n2k1ÃĪh n2k1ÃĪp nke2c nk1ei nk2eil nke4lei n4kelem nke4na nken4te n4k3erle nke4ros nk3ersa n3kesc nke2t nk1eti n2ketu nk1i2d n2kide nk1inh n2k1ins n4klade n3klag nk3leis n2k3len nk3les n3klin nk2lo nk4neb n2knis n2knit n2knu n2k1o4be n2kopt nko2r nkord2 nk1ori n2k1ort n2kÃķl nk4rab nk3rÃĪt n4kre. n2k3rel n2kren nk3rep n2krez nk3ro n2krol nk2sal nk2se nk3sen nk2so nks2ti nk3s2z nk2tak nk2tan nk4tau nk4tent nk4terg nk4t3ern nkte3sk nkt2et nk2tin nkt1it nk2top nkt1r nkt3ric nk2tro nk2tru nkt4sen n2k1um nku2n nk1urh n2kÞb 2n3l2 nla3ge nle2ga 2n1m2 n3ma n3mÃĪ nmen2s n5mi 4n1n n2nada nna2g n2nalg n2n1all nna3m n2nan nna3st n2nau n3nec nn2ei. n3nelb nne4le nne4na nn2ens nner4ei n6n5ereig nner4fÞ nner6geb nn4ergr nn2erh nn2erk nner4la nn2ero nne2rÃķ nn3erwa nner6war nner2z nne4s1e nn2eu nn2ex nn3f nng4 n3ni nnk2 nn2o3b nn3obl nn3obs n2nof n2nop nno2r nn1ori nn4sam nn3ser nn3s2p nnst4 nn4stoc nn2stÃķ nn5t2a nn2th n2n1uf n2n1unf nn1ur nnvoll4 nnvol5le 1no 3no. no5at 3n2oba n2obel 2nobj no2bla n2oble 3noblo 3noblÃķ 2n1ob2s nobu2 nobut3 3noby no1c noche4 noch4r 2nod no2de no2ed n1of no2fe 2noff 2n1oh 3n2ohe no2kel 2n3okk no3kr n3ole no2leu no4lig no2liv 2n3o2ly 3no3me3 no3mi 3nomp non2e n1onk nons4 n1ont 2nony no2o 3n2opa 3nopÃĪ no2per 2n1o2pi 2n1ops no3p2te 3nor. nor2a no2rad n2o3rak no3ral no3rar 2norc nor4da 3nordb nor4des nor2d3r no3r2e 2n1org 3norh 3n2orl 3norm norm2a nor3mal 3norÃķ 3nors 2n1ort 3n2os. nos2e1 no3sh no5s2k no2s3p 2no2sti nost1r 2nostv nos2u no2tan no3tart no2tÃĪ no4t1e2i no6t5entr no4ter2 noterb3 no4tex not1h no2tho no2t3in no2t3op no2t3r 3nov 2n1o2x 3noz 2nÃķd 4nÃķ2f 4n1Ãķk 4n1Ãķl n2Ãķr 1n2Ãķt 4n3p4 npa2ge npa2s npf4 npro1 npsy3 2n1q 6n3r2 nran2 nrau4ma nrÃĪu3s nrebe2 nreli1 nre3s4z nro2h nrÃķ2s nrÞcker6 4n1s n3sabo n2s1a2d n2s1a2gi nsa2kr n2sall ns4alp n2salt ns4anat ns3ane n2sanm nsa2r ns2arg n3sark nsa2s ns4ath nsau4r nsau2s n2saut ns2av ns2ax n2s1ÃĪn ns2ÃĪug n2s1ÃĪus n3sche. n4schef nsch5eul n4schl. nsch2o nscht4 n3schu nsch7werd ns2cr ns1eb nse4ein ns2eh nse2ha2 nseh5ere n4seinf ns2ele ns3elem n2sem. n2sene nsen4sp n2sepo n2s1erf n2s1erg n2serh n2s1erk ns4erko ns1erl n4serle n4s3erne n2serÃķ ns1ers n4sersc ns3ertr n2s1erw n2serz n2sety n2s1eu ns2ext nsfi2l ns3iden n3sim n4simp ns2inf n2sini nsinn2 nsinns3 n3sis n4siso nsi4te nsi2tr n3s2kal n3s2kel ns2kis n3skle n3s2ky n5smara n2s1o2d ns1of n4soff ns4om n4s3ont n2s1op n4s3ort. ns2pac nspa2g ns4pek ns2pel n5s4pen n4speri n2sph n3s2pi ns4pie ns4pir n2spo n2sprÃĪ n4s3prie n2spro n2sput nsrÞ2 ns3s4 ns3tabl n3stad ns8tagent nst1ak n4stale ns4ta2n1 n3stand nst3ane n3s4tar n2stas n4stat. n6staten ns4tati n4stats n3stÃĪm n3s4tÃĪn nst5eife nst7einhe ns4tent ns2tep nst5erge n5s6terne n5s6terns ns4teu ns2ti n3s4tic n3stif n4stilg n3stim n2stob nst5opfe ns4tor n4strie n4strik ns4trip ns4trun ns2tu nst3u4t ns4tÞm n3suf ns2um ns1un ns2ung ns4unk ns2unw ns4unz ns1urs n2s1ut n3sy ns4zene 2n1t n3t2a3c ntak4ta ntal1a nta4lin n4t1all nta2lo nt2alp n3ta3m n3t2anb nta3ne n4tansp nt1ant n4tanza n3t2arb nt1ark n3t2arm nt1art ntar6tik nt3artu n2t1ass n2tath n3tatl nt1ÃĪm n2t1ÃĪu nte3au nte1e nte3g6 nt1eh n3tehe n2teig nt1ein n2t1eis nte4lin n2t1emo nt4en nte4na nten6te. ntera2 nte6r5eis nt4erh nt4erk nt4erm nt4ern ntern4e nt4ers nt4ert nte3sa n4t1es4s nte2st n6testri n2te4ta nteu3 nteu6eri nte3v nt1hel nt1hie n2thot n3thr nt4hu n2t5hum nt4hy n3t2i nti3c ntim3p n4t3ind n4t3inf n4t3inh ntini1 n5t2lem ntmen2 ntmo4 ntni2 ntnis1 nto3re n4torg n4t3o4rie n2t1Ãķl nt4ral nt1rau nt4raum nt3rea nt3rec n5t4ree nt3reif n5trep nt4repr nt3rich n4t3rieg n2troh n3trop n4tropi n2t3rÞ n4ts nts2ah nt3s2p nts3par nt5spe nts2t nt2sur ntt2 n3tub ntu4re. ntu1s n3tÞ nt3z 1nu 3nu1a nu4ale nu3a2r3 nubi1 2nu1c 3nud nude2 3nue nu2es nu2fe 3nug 2n1uh 3nuhi 3nui n2uk4 nu3kl n3u2kr null1a nulle2 null3eb n2um. 2n3umb n2ume 2numf 4numg 2numl 3n2umm 4numr 2n1ums 2n1umv 2n3umz nu4n 4nuna 2n1une 3n2ung4 4n3ungl 4n1uni n3unk 2nunr nun3s 4nunt 4nunv 3nunz 3nuo 2nup 2nu2r nur2i nur3s nur2z 3nu2s nu3sc nu3se nus1p nu3spo nuss3er4 nus6serl 3nut nu2t1a n3uto nu4top nu4t3r 3nuu 3nux 3nuz 3nÞ. 2nÞ4b nÞr1c 3nÞs 1nÞt 2n1v2 n3ver n3vl nvoran4 2n3w 1ny. 2n1ya n2ya. 1nyh n1yo 1nyr 1nys 1nyw 4n1z n2zac n2z1a2g n2z3a2k n2zan nz3a4ne n3zani n2zar nza2s n2zat n2z1au n2zÃĪn n2zÃĪr nze4la nzel6lig n6zenerg n3zeni n4zense n4zentl n4zents nz3erem n2z1erh nz1erl nzer4lÃķ n5z4err nz5erste nzer6tra n3z4es nze3sk nze2t nz1eta nze3u4t n2z1id nzi2ga n2zinh n2z1ini nz1int nz1inv nz3le n2z1op n2zÃķl nz3st nzt4r n2z1wa n2z1wÃĪ n2zwet n2zwir n2zwÃķ n2z1wu Ãąo1 Ãąor2 2o3a2 o4a3bi o4ac oa3che oa3chi o4ad oa3de oad4st oa3in o4a3ke oa4k5l o4a3la o4a3mi oa4n oan4a o4a3q o2a4r o2as 3oa3se o5ass o4at oa4tr o5au 2o1ÃĪ o1b 2ob. o3b2al ob2am ob2ar ob1auf 2o3b2ÃĪ 2obb ob2e 2obe. 2obea 2o3bec 2obef o2b3ein 2oben obe4na oben3d4 1o2ber 2o3ber. ober5eis ober3in oberin6g obe4ris 2obev 2obez 2o3b2i 3obj ob1la ob3lei 1ob3li 2oblo2 2ob2lÃķ ob2lu 2obo ob1or 2obÃķ ob3rei 2obrÞ o4bs ob3s2h ob3sk obs2p ob3sz 2o3bu o4bunt obu2s 2o3bÞ o4bÞb 2oby oby4t 2oc o3ca oc1c 3occl o1ce och1a ocha2b ocha2r o1che oche4b o2ch1e4c och1eh och1ei oche2l ocher4k ochi4d och3l och3m och1o ochÃķ2f och3r och1s ocht4 o1chu ochu2f och3u4t och1w o1ci o1c4k o2ckar o2ckau o3cke o6ck5er6sc o3cki ock3sz ock3ta o1cl o3cu o1ç o1d 2od2a od3ak od2dr o3dec o3d2e3i odein3 ode4l3ag ode4man ode2n1 o3der ode2s1e ode3sp od2et o3dex od2i 2o3dia 2odi3c 2odif 2o3dir 2odn od2o o2don o2d3op odo4s od2Ãķ 2odr o2dre odt4 2o3du o3dy ody2m 2o1e2 oe3di oe4m oen1e oe3ri o2e3s oe4sc o2e3t2 o3et. o3ets 2ofa ofa2c of1a2d of1a2g of2an of1au 2ofÃĪ o2f1e2b o2f1ec 2ofee o2f1ei 2ofem o2fent 2o3fer o4ferb 2o3f2es o2f1e2t 2ofeu of3eun of2f1a off3erz of2f1in 1offiz of2f3l of2f1o of2f3r offs2 off3sh off3si off3sp of2fu 2ofi ofi3e2i ofi3k4l ofi3s4 2o1fl of3le of3li of4lÃķ 2ofo 2ofÃķ 2o1fr of3rÃĪ of4rÞ of2s1 of4sam of3sÃĪ ofs2ch of4sen of3sta of4staf of3str 2oft oft2a of2tei of3th oft4r 2ofu of3ur 2o1g o2g1ab o2g1ac oga3d og1ang og1ans o2g1e2i oge2li ogener4 ogerÃĪtein8 o2g1eth og2gl o3gh ogi2er ogin1 o2g1ini og3ins og1l og3le og2lo o3g4n og1o2ri ogs2 og3sp og1ste og3sti 2o1ha oh1alk o1hÃĪ o1he o3he. oh1eis o3hem o3hen. ohen3s o3her. o3here oh1er4t oh1er2z o3hes 2o1hi 2ohl ohl1a oh2la2d oh2lÃĪ oh3lec ohl1ei oh3lep ohler2 oh4lerg oh4l3erh oh4lerw oh3lo ohl1o2r ohls2e oh2lu 1ohmi ohn1a oh4nac oh3nee oh2ni 1ohnm oh2n1o ohn3sk 2o1ho oho2l1e ohol1o oh1o2p 2ohÃķ oh3Ãķl ohr3a oh2rel oh2rem ohren3s ohrer2 oh4rerg oh3ri oh4rin oh2rol ohr5t4r oh1s oh3sa oh3t o1hu oh1w 2o1hy 2oi o1id. o3i2da o1ids o3ie o1i2m o1in o4ine oi2r o3isch. o4ische o1ism oiss2 oi1th o1i4tu 2o1j ojek8tori 2o1k ok2a oka3b2 o2k3ac oka3i oka2la okale2 oka6lere okas4t ok2e oki4o ok2la ok3lau ok1lÃĪ ok2li ok2o oko4pt ok2so ok2s1p ok5t2 3okw 2ol o1la ol3abu olaf4 o2l1a2m ol1ant ol2ar olar3s2 o3l2as olast4 ol1a2v 4o1lÃĪ ol1ÃĪt ol2chr ol4d1am ol2dÃĪ ol2d1ed ol4d3eng old5ersa olde2s ol2deu ol2dim ol2d3o ol2dr 4o3le. o2l1ef ol1eie o2l1eis ol1emb oler2 ol1erk ol1er3t ole3s ol1ess ole2st ole4sti ole3u2 ol1exz ol2fa ol2fem olf3ere ol2f3l olf1r ol2f3ra olft4 olgege3 olge4ne ol2gl ol2gr ol2i olie4n1 oli2er oli3k4 oli5tu 3oliv ol3ke ol2kl ol2k3re ol2kro olks3 olk4sc olk4si ol2l1ac ol2l1ad ol2l1ak oll3am ol4lang ol2l1au ol2l1e2b ol4l1e2c ol2l1ei ol2lel ol4l3erh ol4ler4k oll3erl ol4l3erw ol4l3ess ol2lop oll3s2a oll3sp 4olo ol2of olo1p ol1ort ol2ov ol3s2k ol4ster ol3t2h o1lu olu2th ol2y 4o3lys ol2z1a2 ol3zan ol4z3ern ol2zim ol2zo ol2zw ol2zy 2om o2mab oma2bl o2m1a2ge om1alg om1all oma4n3er o2m1ang om2anr om3ansc o4mante o2m1ap o2m1ar4s o2m1art omar4te o4ma2sy omat2i o4matom o2m1au o2meb om1ebe o2m1ef o2m1ei o2mel o3meld omen5t6an o4mep omer2 om1erh o2meru om1erz omi2c3 omiet1 o3mig om1ind om1ing om1ins o2m1int om3ma omm2e 3o4mn 4omo o2m3oa o2m1org om1o2ri om3pf oms2 om3sk om3t2 o2mum o4munt 2ona on3a2b on2ac ona3g o3nal on3ann onan6z5ei o2n1ap o2n3arb ona3th 4onatol onat2s o4n3at4t on2au 2onÃĪ on1ÃĪh 2onc on2dan onde8rers onderer7t ond1r on2dra on4drin ond3sk 2one on1ec one2ck o3nee o2nef o3neig on3ein on1ema one2n1 o4n3ends on2eng onen3s2 on1ep o3ner. on1erb o2n1erd oner4fa o2nerh on4erka on1ers o3nes o3nett on2eu on3f2 on3gl ong4le ong4r ong3s2 on2gue 4o3ni on2i3d onie3g oni2ga on4ik o4nikr o4nim o4nind o4ninh o4nins on3k4 3onke onli4 onlo2c onna2 on3n2an on3n2e 2ono1 o3nod o2nof ono2i o2n3oke o3nom on1orc on3ord ono3s ono3t2 onrad3 ons1a on4sam on2seb onsen1 onse4t onsi2d ons3ing ons3l ons1p on4spin onst2a onst4r ons5tri on3ta on2t1eb on2te2l ont5end on4t3erl on2th on4t3rat 2onuk o3nur 2onut on3v 1ony o3ny. on3z2 onze3in o1Ãą oo1c ooch2 oo2gl oo2k3l oo2kn oo2mo oo2ne o1op oop2s o1or oor3d oo4sk oos3s4 oo2su oo2t1a oo4t1ei oo2t1h oo2tr oot2st oot3t oo2tur 2o1Ãķ2 2op. o1pa op3adr op1akt opa2le op1ang opa5s opa3s4t 2opÃĪ 1ope o1pec 2o1ped op1ef 2o1pei o1pek 2opel 2open 2opep o2pera op1erh o1pes 2opf. op2f3a op3fah op2fÃĪ o2pfe op2fem op2fin opf3la op1flÞ op2fo 4oph2 o3phe o1pi opi5a4 opi3er. opi5ers. opie4r3u opin2 2opl op3lag o2p5le o3p2n 2opo opo2la op2pan op4pl 1oppo op2p3r 2oppt 2o1pr 3o4psi op3sz 1opt4 2opte op3th o2pum 2opy 2o1q 2or. or1a 2ora. o1raa 2or3a2b o2rabb o2r3add or3adr o1r2ag o2rak 1orake o1ral o4r3alm or4alt or2am or3a2mi o1ran3d or4ane oran2f oran2m oran4ze or3ap 2orar o1r2as o2ratt 2orau4 oraus6wa or2av 2o1raw o1ray o3rÃĪ or1ÃĪnd or1ÃĪt orb2l or1c 2orca or2ce 2ord. 4orda ord1am or2dar or2dau 2ordb ord3eng orde4s or2deu or4d3ing or2d1ir or2dit 1ordn or2do2 2ordr ord3s2t ord3t 2ordu 2ordw 2ore ore2a o2r1e2b o2r1e2ck ore2di o5ree o3ref or1eff ore2h or1ei o3rei. o3reie o3r2eif o3r2eis oreli1 orems2 o3renn o3rep o2r1er o3r2ere o3r2ero ore4th o2r1eu 2orf or2fac or2far org4a org2e 2orget or3ghi 2orgia or2gl or3gla or3gle or2gn or3gne 2orgr 2orh 2o3ria 2o3r2id orid3i 4o3rie. o3rien. o6rienti o3rier o3ril or1ima ori4mi 2o3rin1 o4r1ind o4rins 2or4io o2riso 2orit 2ork ork4r ork2s ork3sh 2orm or2mam or4mang or4mans orm3asp or2m1eb or4m3erf or4m3er4g or2mor orm3ord or2mum ormu4n or4muni or4munt ormwa5 or2n1a2c or2nal or2nan or2nar or5ne. or3ni or4nin or3no1 2o1ro o2r1ob or3oly oro3n2a or1opf o2ro2r o3rou or1ox 2o1rÃķ 2orp 2orq 2orr orr4a or3r2e 2ors2 or3s4a or3sh or3si or3sk ors4tin or3sz or2t1ak or2t1an orta2r or2tef orte4n or4ten5g ort3erb or4t3ere ort3erf ort3erg or4terk or4t3erl orter6sc or2t3e2v or2the or2tin or4t3off or4t1o2r or2tÃķ ort3rad or4trau or4t3rÃĪu ort3re or2t1um 2o3ru or2uf or1uh orum4s o4r3un oru2r o5rus o2rÞ or3z2e orzel5 or2zw 2o3s2a os3ad osal2 o4s3ami osa1s 2osc o4s3ca osch3ar o3sche osch3le os4co 2ose ose1e ose1in2 os2el ose2n o2s1er2k os2ex 2osh o3s2hi os2ho os4hu 2osi os4it o3sk os2kal o4ski 2os2kl 2os2ko o4skr o4sky 1osm os4mog 2oso osol1 o2sÃķ 2os1p os2pac os2pe os3pec os3pero o3sphÃĪ o3s2po os4pot os2pra 2oss os2sa os6s3a2c os3sag oss3ala oss3and os4sÃĪ os2sei oss5enke os4s3enz os2s1ep os4s3er4b osser4e os4ser4f os4sik os4sim os2s1o2 os4son os2sp oss1pa os2s3t ost1a ost3ang os5tarr ost4art os4tat ost3aut os4tÃĪ oste2c oste2n oster3e ost5erwe oster8wei ostes5s os4teu ost3eur os2t1h os2tid os3til os4tim os2tin os3tina os2tit os3toc os4tor ost3ran ost3rÃĪ ost3re ost3rot ost3uf os2tug os4tÞc 2osu4 os1um 2o3sy o3s4ze 2oß o2ß1el o2ß1ent o2ß1en2z oßer2 o2ß1erb o2ß1ere o2ß1erf oß1is 2o1t o3tabe o2t3abi o2t1ah o2t1ak o3tal o3tam ot1ant o3tark o2tarz ota2s ot1ast o2t1au o3tau. ot1ÃĪ o3te o4teb ote1i o4t1eib o4t1eic otei4n o4t1eis ot2el ote4l1a ote4lin otel3s2 o4t1emi ot2em3p2 ote4na o4tentb ot1erb o4t1er2l o4t1erw ot2e2s ot2har o2them o2t1hi o2thr 4oti o2til o2t1i2m ot2in ot3inh otli4 ot2o oto3b4 ot3off oto2ph o2t1Ãķ otra3c o3t4ran ot3rat ot4rau ot3re ot3ric ot4rig ot3rin ot3rus ot2s3at ot3sch ots2en ots1o ots1p ots2pe ot2spr ots3tau ot3sti ot3stra ot2su ott1a ot4tan ot4ta2s ot2teb ot4terh ot4ter4k otte2s ot2t1h ot2tim ott2o ot2t3r ot3t4ra ot4tri ot3t4ru ot1url o3tÞ ouff6 ou1f4l oug2 ou4ge ou3gl o1uh ou1is. 2oul ou2le. ou2les ou4li 2o1um 2o2u2n oun4ge. 4our oure2 ou2ret ouri4 ourie4 ourme4 our4ne. ou3sa ous2i ou3ti 3outp out3s2 ou3tu4 2o1Þ o1v ov2a 2ovel o3ven ove3s oviso3 2ovo 2o1w o2w3al o3wec o2wh o3wi o2wu 2ox. o1x2a 2oxe o2x1el 2oxk ox3l o1xo o2x1u 1o2xy o1yo oy1s2 o1z2 o3za 1ozea 2o3zen ozen4ta ozes4sc 4o3zi ozir3 ozon1a 2ozy oz3z Ãģr3 Ãģrd2 Ãķ1b Ãķ3b4a Ãķb2l Ãķ2b3le Ãķ2b3r Ãķb2s3 Ãķ1c Ãķch1l Ãķ2chr Ãķch2s Ãķch4ste Ãķchst5ei Ãķchst3r Ãķchs4tu Ãķ3cke Ãķ1d Ãķdel3l Ãķde1r Ãķdi3 Ãķdien3 Ãķd2st 1Ãķdu Ãķ1e 1Ãķf Ãķf2fl Ãķf3l Ãķ1g Ãķge3le Ãķgen2s1 Ãķ2g3l Ãķ2g3r Ãķ1he Ãķhe4n1 Ãķhl2e4 Ãķhre4 Ãķh3ri Ãķ1hu Ãķ3ig. Ãķ3isch. Ãķ1ke 1Ãķ2k2o3 Ãķk3r Ãķk2s Ãķ2l 3Ãķl. Ãķl1a2 Ãķl1ei Ãķl1em Ãķl4en Ãķl2f1ei Ãķlf2er Ãķl1in Ãķlk4e Ãķl2k3l Ãķlks4 Ãķll1a Ãķl3le 3Ãķlm Ãķl2nar Ãķl1o2 Ãķls2 Ãķl3sa Ãķl3sz Ãķl3tu 1Ãķlu Ãķlz2w Ãķ1m Ãķm2s Ãķn2e Ãķ3ni Ãķnizi1 Ãķnn2e Ãķn2s Ãķn3sc Ãķn3sp Ãķo1 Ãķo2ta Ãķoti1 2Ãķp Ãķ1pe Ãķpf3l Ãķp4s3t Ãķr3a2 Ãķr2b3l Ãķr1c Ãķr2dr Ãķr3dra Ãķ2r1ec Ãķ2r1ei Ãķ2r1e2l Ãķ2r1e2m Ãķre2n Ãķ2r1ene Ãķ2rent Ãķ3r2erb Ãķ2r1er2e Ãķ2rer2f Ãķ2rer2g Ãķr2erh Ãķ2rer2l Ãķr2err Ãķr2erw Ãķ3r2erz Ãķr1ess Ãķr2f3l Ãķr2gl Ãķ2rim Ãķr2kl Ãķrn2e Ãķrner4v Ãķr1o Ãķrpe2 Ãķrs2e Ãķr3sk Ãķrt2e Ãķr5tri Ãķru4 Ãķ2r1une Ãķ2sa 2Ãķsc Ãķ2sch3a Ãķsche2 Ãķ4sch3ei Ãķscher4 Ãķ6sch5erf Ãķ6sch5eri Ãķ2schi Ãķ2sch1l Ãķ2sch3m Ãķ2schn Ãķ2schw Ãķs1ei Ãķ2sein Ãķse3str Ãķ3set 2Ãķsl Ãķ2sp Ãķs2s1c Ãķs2st Ãķ2st Ãķst1a2 Ãķs3te Ãķs2th Ãķs3tr Ãķ3su Ãķ1ß Ãķßen3 Ãķß2ti Ãķ1t Ãķ4t3a Ãķte4n1 Ãķ2t3r Ãķts2 Ãķt2sc Ãķt2tr Ãķ1v2 Ãķ1w Ãķ1z Ãķze3 Ãķzes4 1pa. 1paa p1ab p2abe pab2l pab4rÞ 2pabw 1pac 1p2ad pae2 pa3el pa2es pa1fr 1pag4 pa3gh pa1ho 1pak pa3ke pa1kl pak4to 3pala pala3t 3palÃĪ 3pal2e pa3l2i 1palm pal2ma pal2mÃĪ pal2m1o 2palt pal2t1a pal4tei pal2tr pa2m3a pa2nar pa4n3at pan3d pand2a pan4ds pa2neu panf4 pang4 pa4nisl pank4 2panl 2pann panne2 pan4n3eb 4pannu 1pa2no pan3sl pan3t2h 1panto 2pantr panz2 pan3ze 1pap papi2 papieren8 papie8r7end pap2pr pap4s papst1 pa1q 1para pa4r3aff par3akt pa4rant pa3rap pa2rÃĪ 2parb 1p2arc par3d parer8geb 1parf 2parfÃķ pargel6d 1park. park3am par4kau par4kr 1parks par3m2 par3ne 1pa2ro 2parp 2parr 4parta 3partei 1parti 1partn 3party par3z pas2e pa3sp pa4spe passer4 pas6serg pas2s1p pa4st 2paß pat1a pat4c pa5t4e2 2patel 1pat2h 1pati 1pa5t4r 1pau 2p1auf pa3uni 2pausz 1pav 1pÃĪ 3pÃĪ2c pÃĪ3cke pÃĪ4ck3er 3pÃĪd pÃĪde2 pÃĪ2d1er 3pÃĪr 3pÃĪs pÃĪ4t1e2h pÃĪ4tent pÃĪ4tep pÃĪ4t3erb pÃĪ2t1h pÃĪ2to pÃĪ4tr pÃĪt3s4 2p1b 2p3c 2p1d2 pda4 1pe. pe2a2 pea4r p1e2b pech1 1peda 1peel pe2en 2pef 4p1eff 1peg pege2l pei1 4peic 1peil p2eim 2peis 1peit pekt2i 1p4el 3pel. pe4l3ab pe4lai pe2l1au pe2l3ax pe2l1ÃĪ pelb2 pel3d4 3pele pe4l1e2h pe2l1er pe2let pe2leu peli2d peli4n pe4l3ink pel3inn pel4ins pel3k pel3l2a pell4e pell2i pe2lob 3pels2 pel3sp pel3t2a pel4zin 1pem 1pen pena2r pe4nas pe2nÃĪ pen3d2a pe4nen1 pe4ni2t pe2n1o pens2a 3pen3si pen3s2o3 pens2p pen3sz pent2a 2pentw penty2 penu2 pen3z 1pep pe3pi pe1ra pe2rak per2am pe2rau pe2r1ÃĪ per1e2b perer2 perer3z pe3r2id 3pe3r4io 1perle 1perlh per4r3an 1pers 2perse 2persi 3perso 3persp peru2 pe3run 1perÞ perwa4r pe3s2a pese2n 1pes5s2 pe2st pes4ter pest1o 3pet pet4r 1pÃĐ 4pf. p2f1ab p2fad p2faf pf1ai p2f1ak pf1am pf1ans p2fa2r pf3are p2f1au 1pfÃĪ p2fÃĪr p2f1ÃĪu 4pfe. p2fef p2fei pf1eim pf1ein pf1e2m p3fen. p4fener p3fens p3fent p4f1ep pfer5a p4ferde pfer6pro pf4es p2f1et pff4 p2f1i2d pf1inn p2f1in3s pfi2s pf1lam pf4lan pf4leg pf3lei pf3lo pfo2 p2fob p2fom p2for pf1ori pf3r pf1ra pf4rÞ 2pfs2 pf3sa pf3se pf3sl pfs4ti pf3sz 2pf3t2 pft4r p2fum 2p3g2 pgra2 1ph 4ph. ph2a phal4te4 p1hand 3pha1s p1hau phÃĪ1 3phÃĪn 4phÃĪr 4phb 2phd 2p1hei phen3d2 phe4n1e phen3s2 2ph1ers 4phf 4phg p2hid phik1a phi4kan 2phk ph2l 4phm 2phn p2ho. p2hob 2phÃķ ph2r 4phs ph3t2 2phthe phu4s phu3t 2p1hÞ 3p2hy 4phz p2i2a1 piab4 pia3k pi4ali pia3n piap2 pi1ce pid2 pi2e1i pi2el piel3a 3pier pie2ra pie4reb pie4rei pi3gl 1pil pi3le 3pilo pil4zer pil2zw p2im 3pin. pi2nad 3ping pingen4 ping3s 3pins. 3pinse pin3s2p pi2o pi3oide pi3onu pi3os 1pip pi2pe 3pirate pi3ri 3pirin 1pis 2piso pit2a pi3t2h pit2s pit3z2e pi2z1in 2p1j 2p1k2 pku2 1p2l2 2pl. 3pla 4p3lad p1lah pla3na p4lau pla2y1 2p3le. ple1c ple2e p4leg ple3n2 2p3ler p4leu 2plig 3p4lik p4liz plo3n 2p3lu plu2s 2p3m2 2p1n2 1p2o pob2 2po1c 3pock 3pod 3poe po2el 2poh po2i po3id. po3ids 3poin 3pol po2lan po2l1au pold2e po3li po3lo3p pol3z2 pom2ph 2pond pont2 po1ob po2p1ak po2p1ar po2p3l po3p2t po1rau porf4 por3s 3portal por2t1h 3portio 3porto. 3portos 3portr por4tre 3posi poss2 po2sta pos4tag po2stÃĪ post3ei pos3tel pos4tem pos4tr post3ra po2ta pot1ar 3potÃĪ 3pote pot2h po2t3in pott1r po2t1u po3un po2w powe2 po3x pÃķ2bl pÃķ2c 4p1p p2pab pp1ans p2pat pp1au ppe3e p2p1ei ppe2l1a ppeli5ne ppel3s pp2e2n1 p2p1erz p2pf4 pp1fr p2p1h pp3he pp3l p4p1lac p4plan p2p1lÃĪ p2ple pp3oh p2p1Ãķ4 pp3p4 p2p3ra p2p5rÃĪ p2pri pp3rol pp3rot p2p3ru p4ps pp3s4a pps2p pp3sy ppt4 p4p1um ppyl2 p2r4 1prak 1prax p4rÃĪ 1prÃĪd 1prÃĪf 1prÃĪg 1prÃĪl 3prÃĪm 1prÃĪp 3prÃĪs 1prÃĪv 2pre. 2prec 3pred 2pree1 pre2ei 2preg 1prei 3preis prei4s3c prei6sei prei4s5t 2preiz 1prem pren4ga 2p3rer 1pres pre3sa press4e pri4e 2prig pri2l1 2pring prings4 1prinz pri2t1 priter4 prit5t4 2pritz 1priv 1pro 3prob pro3be 2proc 7p4rod 3p4rog 3proj 4pross pro1st prot2e 3proto 2prott pro3x 2prÃķ 1prÞf 1prÞg 2prÞh 2prÞn 2p1s 4ps. ps1ad ps2hi ps1od p2sÃķ ps4pi pss4 p2st p3sta pst1au p3stÃĪ p3stea p3stel ps2th p3s2ti ps4to p3stÃķ ps2tu p3stÞ 3p2sy 4psys ps2ze 2p1t pt1a pt2ab pta2g p2t3a4t p2t1e2b pt3ec pt1ef pt1ei pt1emi 4pten p4t1en2g p4t1ent pt1ep pt3erei pt1erw pt1erz p3tet p4teta p4t1e2ti p2t1h pt1id pti2de pt1in1 pto2mo pto4na pto2p pto2w pt3r p2tro pt3s2 pt4sl pts4t pt1uh pt1um pt1urs ptÞ4 3p2ty pt3z2 1pu pu1a pub4 2puc pu2dr 2p1uh 2puk pu2kl pu2k1o pu2lin pul2sp pul2st 2pulw pum2pl 3pun 4pund pun2e pun2s 4punt 2pur pu2ra pu2rei pus2h pu3she pu2s3t pu5t2e 3put2s 3putz puzi3 1pÞf 2pÞl pÞl3l2 2p1v 2p1w pwa4r 3p4y1 py3s py3t 2p1z2 qu4 que3rel quer5n que4te. 1queu 1ra. r1aa ra2ab 2raac 2raal ra3ar r2a1as r1ab ra2b1ar r2abÃĪ 1rabbi rab2b3l 2rabd rabdru4 ra2bei rab2er rab3erd 2rabf 2rabg 2rabh 1rabi 2rabk r2able ra2bli ra4b5lo 2ra2br 2rabs4 2rabt 2r3abw 1raby 2rabz ra2ce 2r1acet ra4cheb ra2cho 2rachs rach6t5rÃĪ ra2chu r2ack 1r2ad r4ad. rada2 ra2dac ra4d1am ra2dan 2radap 3radar ra2de4i 3radf 3radh 3radio 4radit 3rado 3radp ra4d1r rad3ri rad5t4 r2af raf3ahn raf3ar rafe2 ra2f1er raf3r raft5s rag2a ragein4 rages4 2ragg ra3g4le 4ragm ra2gn r2ago rahle4n 5r4ahm r1ahn 2ra1ho 4raht r2ai 2raic rail2l 2r3air raka3 1r4a3ke 2rakk 3ra1k4l ra2kre ra2kro 2rakti 1rakÞ 2rakz r2al r4al. ra2la2 ra4l3ab ral1ak rala4s ra2lÃĪ ral3b4 3r4ald ra4l3end ra4lent ra4l5ern ra3lex r4ali ra2lid rali3er ra4lin4d ra4l3ing ralin6sp ralin4t 2r3alk. 2r3alm. 2ralp. 4ralpe r4als ral3sk ral3su r3alt 3r4al5t2h ra2l3u 3raly rama3s ra2mei ra2mer r2ami r2amm ram4man ram6mens ram6m5ers ram4m3u 2ramn 3ramsc 2r1amt ramt4s 2ramu 2rana ran1ad ran3ade r1a2nal ra2nan ra2nar ra2nau 2ranb r2anbe r4anda r4ande ran4dep ran4d3er 3r2andi rand3s 1raner 2ranf 2ranga ran6g5e6be 3rangi r2angl rangs2 rang3sp rang5ste rani3e r3a4nil ran3ka ran2kr ran2kÞ 4ranl 2r1anm r2anmi r2anmu 2ranna ran5ne 2r1anp 2ranr 2rans r2ans. r1ansc ran4spa 4r5antei r1anth r2anto 2rantr 1ranu 2ranw r2anz. r2ap 2rapa ra2par 2rapf 2rapo ra2pok rap2pr 2r3a2pri 2r1aq r1ar r2ar1a 2rarb r2are 3r4arei raren1 rar3et rar1e2v r2arf4 ra3rie rar3in ra3ris r3a4rist 4r3arit r2ark raro2 ra2rom 2rart 2rarz rar3zw r4as. ras2a ra3san ra4schl r2asm ra3spr r2ast ra2sta ras4t3ei r3asth ras4to 2rasyl 2raß 1rat r4at. ra2t1an ra2t1ei r3a2tel ra4tid 2ratm rat2o 2ratom ra5tor rat4r r3att 2ratta 2rattr 4ratz rat3ze 4rau. 3raub. rau3e4n 2rauf rau3fÃĪ 2rau3g2 3raum rau4m3ag rau5mes rau2mi 3raup 4raur 2rausb 3raus2c 2rausd rau3se 2rausf 2rausg raus8gewÃĪ 2raush 2rausl rau2sp 2rauss raus8sche raus5se 2rausv 2rausw rau3ße 2rauto raut1r rau4tra rau4tro raut5s 1raÞ r2ax raxi2 r3axt r2ay ray1o r2az rÃĪch2s 3r2ÃĪd 4rÃĪf rÃĪ1fr 4rÃĪg 2rÃĪh 4rÃĪm 3rÃĪn. 3rÃĪni 3rÃĪns 2rÃĪp 2rÃĪq 2r1ÃĪr r2ÃĪr. rÃĪ3ra rÃĪ1ro rÃĪ2sc rÃĪse2 rÃĪte1s 3rÃĪtse 4rÃĪtz rÃĪ2u 4rÃĪue rÃĪu2s rÃĪus4c rÃĪu7schen. 2rÃĪuss 2rÃĪuß 4rÃĪut 2rÃĪx 4r1b r2b3a2b1 r3bac rba4del rb2al r3bam r2bang r2bant rb1art r2barz rb1auf rbb2 rb1ech rbe3erf rbei3d2 rbe3inf rb3einh rbe3int r4belÃĪ rbel2o r3ben. rbe3r2e rber6gin rbe3rum rbe3sl r2bim r2binf r3bit rbit2a rbi3tu rb4la2d r2blan r8blasser r4b3last r3blat r3blau r2b3le. r3blen rb3ler r2bleu rb2lin rb2lÃķ rb2ob r2bonk rb3ras rb3rea r8b7rechts rb4sam rb2sei rb2ser rb2s1o rb4stÃĪ rb2su rb2u rbÞ4b rby4t 2rc r1ce r1che. r1chen r1ch2i rch3l r3chlo rch3m rch3r rch4ro rch1s4 rch3sp rch3t2a rchter6r rch1w r1ci r2ck r1cl r1ç 4r1d rd2ac r2daf r2d1ak r2d1a2l rd2amm rdani1 r2dann rd1ant rd1ara rd1ark r2darz rdÃĪr2 r3de. r3dee r2dei rd2ei. r2d1elb r2de2le r2delf rdem6 rden3d r4dengl r4dents rde3ob rde3ono rde3r4er rderin6s r4d3ernt r3des rde3sp r2d1e2x r2d1inn rd1iri rd1ita r2dof r3don rd3oss rdo4st r2d1oz r2dÃķ rd3rat r2drau rd3ris rd4rÃķ r3d4rÞ rd2sÃĪn rd3s2k rd3s2z rdt4 rd3t2a rd3th rdt2s r2d1uk rdwa6r 1re 3re. rea2d rea6l5erw 4re2am re3at. re3ats reatu3 2reÃĪ re2b1a re2b1l reb1r reb3ra reb3so rech3ar 4rechs 2reck. 2recki 3red. re3da 4redd 2redi re2dik 3redn 3redu re1ebe re1el re1em ree4mi re1er 3refe 4reff r2eff. 3refl 3refo 3reg rege4l3ÃĪ regene7ra 4r1egg re3gi re2hac re2h1ar re4hen4e re4h3ent re2hi reh1l4 re2h1o re3hol 3rehÃķ reh4th re2hÞ r2ei. r2eib rei4bel rei4ble r2eic 2reid r2eie 4reier. rei4fei 4reifel 2reig 3reigÃĪ 3reigeh r4eigel 6reigens 3reigi 4reign 3reigru rei3l2a rei3l2i 2r1eilt 3reim reim2p r1ein 2rein2a rei3nal 2reinb rein4du rei3n4e3c reinen5 2reinf rein4fe re4info 2reing 2reinh 4reinn 4r3einr 2reins 4reinsa rein6sel rein8s7tre rein4sz 2reint rein6teg re1in2v 2reinw 2reinz 4reisar 4reisb reises4 2reisf 2reish 2reisr reister6 4reisu 2reisw reit3s2 3rek 4re2ke 4rekk 5rekn 2rekz r2el. r2ela re3lat 2relb rel2e relea4 re5lei re2lek 4relem r2elev 2relf 2relit 2relix r2ell rel4lar rel4lei re3lo r2els 2relt relu2 3r2em. 2r1emb rem2da re2m1ei re3men 2remi re3mig 2rempf rems1c rem4str 2rem2u r2en. r2ena 2rena. re4nac re3nad re3nal re4n3an re2nÃĪ 2r1endg 3rendi ren3dr 4renerg 4rengag ren4gan 2rengp 3renh re2ni 3renm ren4nar ren6nene renrÞ2 ren6sein rens2p 2rentd 6rentera 2rentf 3rentfo 2rentg r3enthÃĪ 2r1entl 2r1ents 2r3entw 2rentz r2enz ren6z5er6f renzer6l ren6z5er6s renzer6w ren4z3in ren2zw re2ob re3or 3repe 4re2pen 2repi re2pis 2repoc 2r1e2pos 4repp 3repu 3r2er. rera2 2r1erb 3r4erber rer2bi 2r1erd rere2 4r3ereig r1erek re2r1ep r2erer r1erf r3erfa 4rerfah 2rerfi 2rerfo r2erfr rer2fÞ r1erg 4r3ergeb 5rergebÞ r4ergen 3r4erges 2rer2go rer2gr r4ergru r1erh rer2hÃķ r1erk rer4kan rer2ke 4r3erken 3r2erki 3r2erko r1erl 2r3er2la 5r4erlag r3erleb r2erli 2rerlÃķ 2r1erm rer2n 2r1ernÃĪ r1erne 2r1erni 4r3erns 4r1ernt re1ro re2rob re4rosi 2r1er2Ãķ r1erre rer4reg rer4rei r1erri 5r2ers. 2r1ersa rer3sc r6erschi r2erse 2rersp rer2st r6erstad 2rer4su r1ert4 r2erte 2rertr r1erw 2rerwa rer4wac rer4wec r4erwes 2r1erz rer2zÃĪ 3r2erzy 3r2es. re2sa re4sam resche4 re4schw 3rese re4se2h re2s1of 3resol 3reson re2spa res2po 2ress 4resse res3sei res6s5erw 4ressu re1sta res4tas res6tent res4tex 2res4tu 3resu re2t1ak 2re2tap re2tau ret2e 2r1e2th re2tra re4trol re2u reu4eri reu3g2 2reul re3uni 2reur 4reuu 2reÞ 4r3eva 2r1evid rewa4r re2wi 2rewo 2r1e2x1 3rez 2rezi 1rÃĐ 4r1f rf1a2ck r3fam rfe2i r2fent r3f2es rff2 rf3fe rfi4le. r4fland r3f4lÃĪ rf3lic rf4lÃķ r3flÞ r2fo2b rfolg4s r4frauc rf4ru rf4rÞ rf2sa rf4sam rf2s1ÃĪ rf2su rf2ta rft4r rf2u rfzu3 2r1g r2g1a2d r2g1ah r2g1ak rga4ner r2g1ap r2garb rg3art. r2g1ask rgd2 rge4an rge2bl r2g1e2c r3gel r4gelef rge4l3er rgen4z3w r4ge4tap r2geto rgi4sel r2glan r3glanz rg5le. r2gleu r2glig r2g3lit rg2log rg2lu r2g3na r2gne r2g3ni r2g3no r2g3oa r2gob r3gog rg3op r2g1or rgÃķ2 r2g1Ãķd r2g3ral rg4rau r2greg r2g3res r2gret rg3rin r3grun rg3rÞs rg3sÃĪ rg3se rgs2ei rg4sel rg3s2i rg3sp rgs2pe rgs2po rg3st rgs4tr rgs2tu rg3su r1h4 2rh. r2hag 2rhah 2rhak r4haltb r3han 2rhau 2r3hÃĪ 3r2he. r3hea 2rheb 2rhef 2rhi 2rhol r3hop 2rhot 2rhÃķl 2rhs rhu2s 2rhÞ 1ri ri3ams ri1an ri2ano ria1s ri2ast rib2bl ri1ce ri1cha ri3chl richt8spo 3richtu ri2con ri2dau 2ride ri2d3e2l ri4dent r2i3di 2ridol 2ridy r2ie 4riefm rie2f3r rieg4s3 ri2e1i riein1 ri1el rie3l2a ri3els ri4enÃĪ riene2 ri3eni rien3s rie4nu ri1er. rie3r2e riere4n ri3ers. rie3sa ri1eu ri2f1a ri2fÃĪ ri2fei ri2fer rif6f5end rif4fer ri2f1o ri2fr rif3s rif4ter 3rig 4riga 4r3i2gel ri4gene 4rigg 5rigj rig1l ri4glÃĪ ri3g2o3 4rigr 4rij ri2kar ri2kÃĪ ri2kin ri2kn ri4kone rik2op ri2kor 2rima ri2mag ri2me. 2rimm 4rimp rim2s rim4sc rim4st ri3na r1inbe rin2c 2r1indu ri3n2e rine1i 2r1inf rin2fo 3r2infr r2ing rin2ga ring3le rin2gr ring3sp 2r1inh 2rinit 4rinj 4rink rin2kl rin2ko rin2kr 2rinl 6r5innenm 4r3inner 2r1innr r1innu 2r1in2q 2r1ins rin4si rin2so r4inspi 3r2insy 2rint 4rinte rin6tent rin4t5re 2r1inv rin2va 2rinz ri2ob r3ion ri3o2st ri2pl ri3po 4r1ir r2is ris2a ri3san ri4sch3o ri4schw 3risik ri3s2ko r3iso ri4s3p r3isr 3riss ri4s3t ris6t5ers ris4th rist3r r2it r3i2tal rit3ant rit2i 2ri3t4r ritt3a rit4tau rit6ter6f rit4to rit2t3r rit2u r1i4tum rix1 1rí 2r1j 2r1k rka2b3l rk1ah r2k1ak rk1all rk2am rk1are rk1asp rkauf4s r2k1ÃĪh r3kel r4kelem rke2n1 rken4er rken3s4t r2k1er2l rk5ersta r2k1er4w r3k2es r3ket rk1im rk4las rk4lau rk4lim r2klis rk2lo rk2lu rk4ne r2kob r3kol r3kon rk2op rk1o2ri r2kou rk2Ãķ rk3rÃĪu r3kri rk3rin r2k3rom r2krou rk2sal rk2sei rk2sel rk2ser rk2so rk2sp rkstati6 rk4stec rk4stoc rk2ta rk2tel rk4t3eng rk4tent rk4t3erf rk4terg rk4t3erl rkt3ers rk6tersc rk4t3erw rk4t3erz rk4teta rkt2i rk2t3in rk4t1o2 rkto4b rk2t3r rk4tri rk2tum rk1ums rku2n r3kup rkur3s r3kus rku2sa r2kÞb 2r1l rl2ab r3lag r5land rlan4d3i r2l1ar r2l1a2sc r2l3aug rle2a r3lec r5lei. r3lep rl2et r3lex rlg4 r3l2i rli4ne. rli2s r3l2o rlou1 rl2Ãķ rlÃķs3s rls2a rl2spr rl3ste rl2s5to rl3t r3l2u r3ly rlz2 4r1m r2mab r2m1ad rma2la rm1ald rm1ami r2m1ank rm1anz r4m3aph r2marc r2marz rma4s3pe rmas3se rmat2o rm2ÃĪr rm3d2 rm1ef r4m3einh rme4na rm2ene r2ment r2meo rmer4fo r2m1erh r2m1erl r2m1erp r2m1erw rm2es rme1st rmes4z rmeta2 r2mide rmi6nanz rminen4 rmi6neng r4mn r2m1ob rmon3s4 rm1o2ri rmo1s rm3p2 rm3sa rm3s2k rm3t rmt2a rmu2n r4muna r2muni 4rn rna2b r3nad rn4ade r3nage r2n1all rna4n rn4and rn3ani r2nanz rna2r rn3are r4n3ari r4n1ast r4n3att r2nau rn3aug rnd4 rn3de rn3dr r4nef rn2eid r4neif r4neis rn1ema rne2n r2n1ene rn2eng r4n1e2p r4n1erg rn4erhi rner4ke rner4ku r4n1erl r4n1ert r4n1erw r4nerz r5nes rn2e2t rnet1e rne4tem rne4ter rne4to rn2eu rne3uf r4nex rn3f rn3g2 rngene4 r2nid r2n1in r4ninf r3nit rnk2 rnn2 r3nod rn2oh r2n1op r2n1or rn1Ãķ rnÃķ2d rn3sa rn3s2ÃĪ rnse4ha rn3s4p rns2u rn3s2z rn3t2a rn3t2e rn1ur r1nÞ r1ny rnz2 r2oba 2robj 1robo ro2bo2r 2robr ro2bre 2robs ro1c roch2a 3rock. r2o3de rod4r roe4 2roff ro3fl 4rog. ro3g2a 3rogg ro2h1in roh1l2 4rohn ro2hÃķ 3rohr 1roi ro3in ro1ir rok2l ro3le ro2liv rol4lan rolle4 rol6lerg rolls2 rol3s 2roly 4rom. ro2mad ro2mal 3roman. 2romb romen3e ro2m1er 4romm 2romn rom3s 4romt r2on ro3n4ab ro2nan 3rond ro4nerb 4ronk 3ronn rons2 ron4tan ron6tend ron4t3r ron2t1u ro1ny ro1o2f rop2a 2rope 2ropf 1ropl 2ropt r1or ro2r3al ro2rat 2rorc ro2rel ro2ro ror3th rort2s ror2Þ ro3sh ro5s2i ros4ko ros4sal ros4san ros2s1c ros6senk ros4st ro1sta ros6t1r ro2sum 4r3osz 4roß roßen2 ro4ßenk ro2ßi ro2tan ro4tas ro4t3au ro2tÃĪ ro2te3i ro2t1ho ro2tru rot3s rots2o rot2ta ro3tu 3roul ro3unt 3rout 2ro1x 4roy rÃķ2b3l rÃķ2du 2rÃķ2f 3rÃķh 2r1Ãķk 1rÃķl 2rÃķl. rÃķ3le rÃķl2l r1Ãķlp 3rÃķmi r1Ãķr r2Ãķs. rÃķs1c r2Ãķse 1rÃķsl 3rÃķtu 2r1p2 r3pa r3pe rper3in rpf4 r2pli rp4lu r3po rpro1 rp3se rps3t r4p3t r3pu 2r1q 4r1r rr2ab rr4at rrat2s rr1auf rr1ÃĪm rrb2 rr1c r5rega r5regi rr2ei rre2le rre2pa rrer2 r2rerh r2rerl rrer4s r3res rre2ve r4rezi r3r2hen rr2hos r3r4i rri3k2 rrm2 rrn3au rr2o rr3obs rro3m rro2re rrr2 rr2st rr3str rr3stu rr2th r3r2u r3r2Þ rrz2 6r1s r3sabo r2s1a2d rs2al r4samp r4s1amt rs2an r4sanf r2s3ang rs3anm r4sanp rs3ant rs3anz rs3ar rs4ark r4sarm r4sch3e4b r6scherl r3schu r2s1ebe rse2e r2s1ef r2sein rse2n rs2end rse4ne r2sepi rs1ere r2serh rs1ers r2serz rse2t rs1eta rs2ext r3s2hav r3shir r3sho rs2hor r4shu rs2il rs2ka rs2kel rs2ki r4skir rs2kl r4skor r3s4kri r4sky rs4mog r3s4no r3so r4sob rs4om r4s1op r4sorie r4s3ort. rso2s rs1ost rs2p r3span r3spe r2s3ph r3spi r3spl rs4por r2sput rs3s2 rst3abl r3stad rst3ala r4stale r4stans r4stant r2stas r7stati r7statu r3stÃĪ rst5eing r6st5eint rst3emi rs4temp rster2 rs4t4erb rst3erl r3s4tern rst3erw rs2tev rs2t1h rs2ti r3s4tie r2stin rst3ing r3stink r2stip r2stit r3sto rs4tob rs4tol rs4tor r4stot rs4tr r3stra r6strang rs5tren rs2tu rs4tuc r3s4tÞ rsuch4s r3suf rs2ums r3sy r1ß 4r1t r2tabo rt1abs rta2ck r2t1a2d r2t3ae rt1akr r4t3albe rta3l2e r2t1all rtal4s3e rt1am rt2ame rt1ann rt1ant r2tanw r2t1ar rt3att r2taut rt3ÃĪh rt1ÃĪnd rt1ÃĪrm rte1e2 r3teh rt1ein rt4eind r4t3einh rte2i1s4 r2telf rtels4t r2temo rte2n1 rte4na rten3s4 r4t3ents rten3z rteo2 rt3erei r6tereig r4ter4fa r4ter4fo rt1erh rt1erk r4t3er4la rter6mit r4t3ernÃĪ r2ter2Ãķ rter4re rt1ers rt4ersp rt1erz rte3sk rt1he r2thel r2t1hi rt2hum r2t1id rtik2 r2t1ima r4t3inf rt2is rt2it rt3l rt3m r2t1ob rto1pf rt1orc r4torg r4trak rt3rams rt3rand rt3rati rt3rec rtre1s r4t3ris rt3rol rt3roma r3trop r2trou rtrÞ2c rt3sc rt4s1eh rts2el rt3sex rts3ing rts1o rts1pa rt4s3tan rts4tie rt2su rt3t4 rt1umb rt2u3na r2t1urt rtu4t r2t3ute r3tÞ rty1 rt3z2 1ru ru1a ru4ale ru3a2r3 rube4 ruben3 rubens4 rub2i rucht3s4 ru6ckerl ru2cku rude2a ru2dr ru2et 3ruf ru2f1a ruff4 ruf2s ruf4ter ru2g3r 3ruhm 2r1uhr 3ruin ru3ins ru1is 2rum ruma2 4r3umd 4r3umf 4r3umg ru2mi 4r3uml 4r3umsa 4r3umw 4rumz 2r1una 2rund run4d1a runden5e run4d3er run2e runei2 4r1unf run2ga 2rungl 4r1u2ni r3unio ru4nis. run2kr 4r1unl 2r1unm 4runn 4runr r1unse 4r3unt 4runw 2rupd ru3pr 4r1ur ru2ra ru2r1e 5ruro r4us. ru2si rus2p rus2s1p rus4st ru2st ru2tab rute4 ru4tei ru4t1el ru2t1er ru4t1o2 ru2t3r rut6scha 4ruz ru2z1w 1rÞ 2rÞb 4rÞbu rÞ1ch rÞ4ckel rÞ2hel rÞher2 rÞh1l 4rÞmm rÞn3z 2r1v r3ve rv2el rve4n1e rvenen4 r4ventz rve3s r3v2o 2r1w rwe4gel r3wei rwelt4s r5werk r5wert r2wo. r3woh r3wort rwun3s 4r1x 1ry 2r1ya ry2c rygi3 ry1la ry2le ry1os ry3sth rysti1 2r1z rz2an rz3ant r2zar r2zat rz2ÃĪn r5zene rz1eng r4zents rze2p rze2ra r2z1erd r2z1erf r2z1erg rz1erk r2z1erl r2z1erw r2z1ess rz1id rz1int rzir3 r3z2of r2z3ot rz2tan rz3te rz2th rzu4g3l r2zwÃĪ r3z2wec r2zwir 1sa 3sa. 3s2aa 2s1ab sab2ÃĪ 4sabd sa2be 3sabet sa2bit sa2bl 4sabm sa2bor sa2br 4s3abs 3sac 4sacc 5sache sa2cho sachs2 sach3t s2ack 2s1ada sa2der s1adm 2s1a2dr 3safa sa4fe 4s3aff sa1f4r 3s2aft saf4tr 3saga sag2e 5sage. 5sagen. 4s3agent 2s1agg sa2gio sag4n s1a2gr s2ahs 3s2ai sa3i2k1 sail2 sai4r 2s1ak sa2ka sak2e 3saki 4sakk 3sako 4sakt 3s2al. 3s2al2a sa2l3an sa2lar sa3lat 3s2alb sal3bl 3s2ald sa4lerk 3sali sa2l1id s1all sal3la sal4le. 3sal2o sal3or sal2se s1alt s2al3t2h 3salz 3sam 4s1a2mat 4s1a2mei s2amen sa2min 5samm 6s1amma 4s1amn s1am3p4 4samph sam4ta sam4to samt3st s1an s2an. 2s3a2na san4at sa2nÃĪ 2s3anb s2an2c 3s2and s4and. san4dan san4d3ri sand3s sa2ner 3sang. 4sanga 2s3anh 3sani 3sanken 2s3anl 2sa2no 2s3anp 2s3ans s4anse san4sk san3sp 4santei 4s3antr 4s3anw 2sanz 2s1ap sa2pe s2aph sap3p 3sapr 2s1aq 2s1ar 3s4ar. 3sara 4s3arb 3s2ard s2are s3area 3sarg sar2ga sa3rin s2ark sa2rom s2ars 4sart sa4r1u2 3sas. sas2a s1asc s1a4si 2s1a4sp sas2tu 4sa2sy sat2a satan4 sa4t3ant sat1ei 2s3a4tem s3ath 3sat2i 4s3atl 4satm sat2o sa4tol sa2tr sa3ts s3atta 4s3attr 3satz 5satza sat4zel sat4z3en s1au 3sau. 3sauc 3sau2e 2sauf 4s3aufb 3saug saug3le sau2gr 3saum 3saur sauri1 2saus 3saus. 4s3ausb 4s3ausf 4sausg sau2sp 4sauss 3sauste 4s3ausw 2sauß s1av sa2ve sa2xi sa2y1 1sÃĪ 3sÃĪb 3s2ÃĪc 3s2ÃĪg s1ÃĪh 4s3ÃĪhn 3sÃĪl 4s1ÃĪlt 2s1ÃĪm 4s3ÃĪnd 4s3ÃĪp 2sÃĪq 2s1ÃĪr 3s2ÃĪrg 3s2ÃĪt 3sÃĪul 4sÃĪuß 4s3b4 sba4ne sbau6men sber2e 1sc 2sc. 2scab 2scac 2scal 2scam 2scar 2scat 2s1ce 4s3cei 4sch. 3s4chal sch3ana 4schanc 4schang 4schao 4schara 4sch3ar5m s2chÃĪ 2schÃĪq 4schb 4schc 2schd sch2e 4schech sche2f 6schef. 6schefi 6schefs s4chei 4sch3ei. sch6ein. s4chema 4schemp sch5erfÞ sch5erla 3sches 4schess 4schex 2schf 2schg 2schh schi4d schi4e 4schiru 3schis 2schk s4chl sch4lac sch4lag 4schle. 6schlein 4schloc 4schlÃķc 4schmas 4schmed 2schmÃķ 4schmÞh 2schmy 2schn. 4schneb 4schobj 4schorc 4schÃķr 4schp 2schq 4schrad 4schre. 4schrin 4s3chris sch3rom 4schron 4schrou 4schs schs2e sch3s2k schs4ti 4sch3t scht2a scht2i s4chu 4schunt 2schv sch4web 4schweg 6schwerk 4schwet 4schwid 3schwu 2schz 2scj 4s3cl 2s3co 4scoa 3s4co2p scre4m 2scs 2scu 2scy 4s3d2 sda3me sde1s2 sdien4e sdi1st 1se 3se. se3at. seb2 3sebÃĪ 2s1e2ben 2s1echo sech4st 2s1echt 2s1e2ck se2dik 3see see1i2 see3ig se2el see3len se3en. see3n2e se3enp se3er. see1ra seer2e se1erf se3e2r1i se1erk se1ers see3s4 2s3eff sef4l 3s2eg 4s3e2gal se2gl seg4r 3seh seh1a se2hag se2hak se2hel seher4e se4herk se2h1in seh3l se4h3Ãķ seh3ra seh3re seh5r2i seh1s se2hÞb 2sei. 2s1eic 2s1eid. sei3da 4s3eifer 2s1eig 3seil s2eim s1ein 5s4ein. 2seinb sein4du 2sei3n2e seine3i 4seinfl sein4fo 2seing 2s3einh 2seini 2seink 2seinl 2seinn sein4ne 2s3einr s4eins. 4seinsc 4seinsp sein8stit sein6str 2seint sein4to 4seintr 2seinw 2s3einz 2s1eis 3s2eism 3s2eit seit2s 3sek 4s1e2kel 4sekz s2el. se2l1a 3s2elb sel3d4 sel1ec se2lef 2s3e2leg 6selektr 2selem se2ler sel3ers 2self. selin4s s3e2lit 2s1elix s2ell se2lob s2els sel3sz selt2e selz2 sem2e 2s1e2mis 2s3emp s4en. 3sena se4nad se3nal se4nas sen3au se2nÃĪ s2enb 4s1endl sen3d4r s1endw senen1 4senerg se4ners s2enf 3s4eni se2nid se2n1im 3s2enk sen6keli se2no se4nott se4noz 3sens s2ensa sen4s3e4h 4sensem s4ensi sen4si4d senst2 sen8s7turm sent2a sen3tÃĪ 2sentd 4sentf 2sentg 4sentla 2sentn s2ento sen3tr 4s1ents 2sentw 4sentwu 4sentwÞ 4sentz se4n3u2 sen3za sen4zer sen3zw seo2r se2pen 3seq s4er. se2r3a2d ser3al se3rand ser3ÃĪus serb2 s3erbe. serd2 se2r1e2b se3reie 6sereign se4r3eim se4rein sere2m 5s4eren se4r3enk s4erfe s1erfo s2erfr s3erfÞ 4serfÞl serg2 ser3ga ser3gl s2ergr s1erh 2serhÃķ 3seri 5serie serk4 4s3ermit s2ern. s3erneu 2s3ernt sero4b 2s1e2ros s1erot s1erÃķ 2serÃķf s2ers. 2sersa 4serseh ser6sehn 4ser4set se3ru se4ruh ser2um s3e4rup 5s4er3v s1erz 3s4es. se3s4a se2sel se3sk 2s1essa se1sta se3stec se3stei se5stemp sest3ri se3su 4s3e4tap se2tat 2s1e2th set2i 4s1e2tik 3setz 3seuc 2s1eul seum4 se1u2n s1ex 3sex. 2sexa se2xe sex3en s2exi s2exo 4sexp sex3t4r 2sexz 1sÃĐ 4s3f4 sfal6l5er 4s3g4 sgang4 sge3sa sge5t 2s1h 4sh. sh2a 3sha. shal4li shalt2 shalt4s 4shan s3hÃĪ sh2e sh2i 3shi. s2hip shi4r sh3n 4s3hoc 4s3hof 4shom 3shop sho4re 3s4how 4s3hÃķ sh4r2 4shs s3hu 1si 3si. si3ach. 2siat 5s4i1c si2cha 2s1idea 2sidee 2s1ideo si3der s2i3do 2sidy 3s4ie sie2bu siege4s sien3 si3ene si1err si1f4 3s4ig si2g1a2 si2g1ei sig4n si2g3r sig4st si2k1ab si2kak si2kar si2k1ÃĪ si2k1el si4kens sik3erl si2k3i sikin1 si2k3n si2k3r sik3s sik3t2 si2ku 3silb sil2br sil2e 3sili s1ill 3silo 2s1imm sim4st 3simu si3n4a 2s1ind 2s1inf 4s3infe s3infor sing1a sin3g4le sin2g3r sings2 sing3sa sing3so 2s1inh s1in1i sini1e s2ink sinner4 2s1inno 4s1inq 2s1ins 4sinso 4sinst 2s1int 4s1inv sion4 sirn4 2sirr 3siru si2sa si4sam s2isc si4schu si2s1e2 si2si s1i2so sis1or si2s3p sis3s4 3s4ist si2su 3s2it si2tal si2tau si2tra sit2u si2va sive3 siver2 si4v3erf si2vin siv1o4 si2vor siz2 1sí 4s3j 2s1k2 4sk. sk4a 4s3kab s3kad 4skalk s3kalt 4s3kam 4skana 4skanÃĪ 3skanda 4skann 4skap 4s3kar 4s3kas ska4te. 4skateg ska4tes ska4to 4skau 4s3kÃĪ 4skb ske2li 4sken 3skep 4sker 4s3ket s3kh 3s2ki. 3s2kif 3s2kik s3kim s3kin ski1s s2kis. 3skiz sk4l 4s3klas 3s2klav 4s3klu 4sk4n 4skoh 4skol 4skom 4s3kon 3skop. sko2pr 4skos 4skow 4s3kÃķ sk4r 4s3kra s3kre 4s3kro 4sks 4sk3t2 skto2 3skulp 4skun sku2s1 4skÞ 4skv 2s1l2 sl4a s3lab 3slal sla2ma sla2ve s2law s3lÃĪ sl3b 4s3le sler3s s3li 3s4lip slo3be s3loc s4loga 3s2low s3ly 4s3m4 sma3b4 sma3sc sme3na smi2t3 2s3n2 snab4 sni4a sni3er. sni3ers 4s5not 1so 3so. 2s3oas 2s1o2b 3s2o3ba 4sobj 4s3obo so1c so2di so2do so3et 2s1o2fe 2soffi 3soft 3sog sog4l s1o2he 3sohl sohle2 2s3ohng 2s1ohr 3soi2 so3id 2s3ok 3sol. so3la so4lau 3sold 3sole so2l1ei so3li sol2la sol4ler so3l2o 4s3o2ly 3somm 3s2on son2a son3au sone2 son4gl son3sÃĪ son2s1o so3o 2sope 2s1opf 3sopr sop3s 4s3ord sore2 so2rei so2rel 4s1orga so1rh 2s1o2rie so2ro 3sorp 3s2orti so4ru 3sos s2os. 4so4sk 4sosm 4so1st 4s1osz 3so3ß 2sot so3t2h 3sott soun2 sound1 so3unds so3unt 2s1out 3sov 3sow 2s1o2x 3soz s1oze 1sÃķ sÃķ2c 2s1Ãķ2d 2sÃķ2f 2s1Ãķk 2s1Ãķl 2s1Ãķs 1sp2 2sp. 4spaa s2pace 2spack 2spag 2spak 2spala 2spalÃĪ 3spalt spa2m s2pan. 3spannu s2pans 3spant 2spanz 2spap 2s3para 2sparo 5s6parten 4spartn 4sparty 3spaß 3spat. 2spati 4spatr 2spau 3s2paz s2pÃĪ 2spÃĪd 3spÃĪh 2spÃĪr 2spÃĪs 2s3pe. 2speg 4spein 4spensi spe3p4 s2pera 3s2perg s1peri 4sperle 2spero s2perr 2spers 2sperÞ 4spet 3s4pez 4s3pf4 2spha s2phÃĪ 3sphÃĪr s3phe s4phin 3s2pi4e 4spier spier4r spi2k 4s3pil 3spio 4s3pip 4s3pis 2sp4l 4spla 4s3plÃĪ 4sple sp5le. 3s2pli 4s3plu 2s3pn 2spod 4spoe 2spog s2poi 4s3pok 4spol s2pons 4spoo 2spop s2pore 3s2porn spor6tag 4s3pos 4spote 4spr. 3s2prac 2sprak 2sprax 2sprÃĪm 4sprÃĪs 3s4prec 4spred 4spreis 5s2pren 2s3pres s2pric 3spring 4sprinz 2sprob 2sprog 4sproj 4sprop 3spross 2sprot 2sproz 3sprÃķ 3s2pru 3sprÞc 2sprÞf 3sprÞn 4s3ps 2s4p3t 2spub 2spud 3spuk 3s2pule 2spun 2spup 3s4pur spu4rer 2spy 2s1q 4s3r4 srat2s sre3cha sreli1 sro2h srÃķ2s srÞcker6 6s1s ss3abi ssa3bo s5sack ss4agi ss1aj s3sal ss3alba s4sall s4samt s2sanf s4sang s4sano s4sans ss2ant s4sanz ss2ara ss2arg s3sars ssa1s s2s3att ssau3e ssau4r s3s2ÃĪ s4sce ssch2 sschanker8 s3schw s4sco s2scr sse3a ss1ec sse1ec sseh2a s2sein ss4eind sse3int sse2lÃķ s3sen ssen6kel ssen6sem ss1epe sse6ratt ss5ereig ss4ergr sser4hÃķ sser6mit sser4Ãķf ss3erse ss4eru sser6wei sses4sa s4s3estr s3set sse3ta s3si ss3i2ko s4sill s4simp s4sind s4sinf ssing3s s4sint s4s1isr s3skala ss3l ssmut4 ss1off ssoi4 s3sol s4sop ss2pen ss2phi s3spi s3sprÃĪ s3spri s2spro ssquet4 ss3s4 sssau4 sst2a s3stad s4stag ss3tak s3stÃĪ sst2e s3stel s3s2tep s3s4tern ss4teu sst2i ss2tie ss2t3in s3stof s3stop ss4tÃķr s3stran ss4tras s3s4trat s3strec s3strom s3strÃķ ss2tur s3stÞ s2sumg s2sumr ss2ur s3sy s1t 4st. s2ta 2sta. 3staa 3stab. 2stabb 4stabel 4stabit 2stabl 4stabt st2ac 1stadt 1staff 2stag 3stagl 3s4tagr 3s4tah 2stak 3staks 2stala sta3lak 2stalb s3ta3l2i 2stalk st1alp st1alr st1ami 1stamm 1stan 2stanb s6tand 2stanf st2ang 2stanl s4tanm 4st1ann s4tano st3ansp 2stanw sta3po1 stapos4 st1app s4tar. sta6rens 4stari s4tark s4t2ars s4tart sta4sie stast4 s3tat. 2statb 3stati s4tatis 7statth s4tau. 2stauf 3s4taur 4stausb 4stausg 4stausr 4stauss s4taut s4t1a2ve 4stax 1s2tÃĪ 3stÃĪb 3stÃĪd 4stÃĪg 4stÃĪp 5s4tÃĪr 3stÃĪtt 2s3tÃĪus 2stb 2st3c 2std 4s5te. 4steam 4stechn s2te2d st1edi 2stee 3s2teg ste2g3r 1steh s2tei st4ei. 4steic st1eid 3steig stei4gr 2steil stei4na 6steinga s4teins stein6sp s2tel 2stel. st1elb s3tele s3telf st2ell stel6l5ÃĪn 2steln 2stels 2stem ste4mar ste6ment 3stemm 2sten s5ten. ste4na s4t3ends s5t2ens s4tentf s4tents st1e2po 2ster 4s5ter. ste2r3a s6terben 3sterbo s3teren 3stereo st3erfÞ 3steril 4sterm 3s4ternb ster4zo 4ste2s1 ste3sc stes4se s4testn 2stet ste4tab ste4tag 3s2teti 3s4tett 3s2teu 1steue 4steuf st3eun st1ev s2tew 4stex s2texa 2stf 2stg 2sth st2hen s2t1hi st3ho s2thu st1hy 2stia 2stib s2tic 1stich st1i2d 2stie. 4stief. 4stiefl 2stien 1s2tif 2stig sti4gel 3s4tigm 2s3tik s2t2il 1s2tim 3stimm 4stimma 2stimp st1inb 2s4tinf s3tinn s2tins 2s2tint 2stio 2stip. 2stipp s2ti2r st1ira st1iri st1iro 4stis 2stite 1stitu 2stiv 2stj 2stk 4stl st3le 2stm 2stn s2to 2sto. sto2bl 4stocht 2stod 4stod. 1stof s4toff 2stok 4stole s4toll sto3mi 2s3ton 4stona 3s4to4ne 4stonl 4stoo 2stopo 4stor. s4torb 2store 2storf 2s4torg 2stori 2storp 2stors 2stort stos2t 1stoß 4stote 2stotr 4stou 2stow 2stoz 1s2tÃķ 4stÃķch 2s3tÃķl 2stÃķn 3stÃķr 2stÃķt 2stp 2stq s2tr 2strac 4s3trad st4rade stra4fa 4s3trag 3strah 4strahi 4strai 4strak 2s5tral s3trank 4strans 1strap 3stras 3straß 4straum 4strÃĪc 4s5trÃĪg 4strÃĪne 2stre. s4trea 4stref 4streib 3st6reif 2strep 2stret 4streuh 2strib strie3s4 2s4trig 1s4trik 2s5tris 1stro s3troc s3trog 3s4troh s4trome 4stropf 2stros st4ross 2strÃķp 1stru 2strua 2strub s4trud 3struk 2strun 4strup 2strut 1strÞ 4s4t3s2 stsi4d sts4t 2st3t4 st2u 1stub 4stuch 3s4tud 2stue 3stuf 2stug st3uga 3stuh s2t3uk 2stumo 2stum2s stum4sc 2stumt 2stun. st3una 5stund 2stune 2stung s2t3uni 4stunn 2stuns 2stunt 2stuÃķ stu3ra stu5re 2st3url 4sturn 2st3urt 3s2turz 2stus 1s2tut 1stÞc 4stÞch 3s4tÞck 3stÞh 4stÞr. 4stÞre 3stÞrz 1stÞt 2stÞtc 2stv 2stw stwor2 2sty 4sty. 1s2tyl 4styp 4stys 2st3z2 1su su1an 3su2b3 su4ba 4subi su4br 3su1c su2cha su2cho 3sud su2eb 2s1u2f su3fi 2s1uh su1is su1it. su2k su3l2i 3sulta sum1a su2man su2mar 3s2ume su2mei su2mel sument4 su6ments su2m1et 2s3umf su2m1id su2min 3s2umm sum1o2 su2mor s2ump s1ums s3umsa 2sumse s2umsp 2s3umst 2s3umwa su2n 3sun. 2s1una sunder4 sun6d5erh su4ne 2s1unf 6sungena 2sungl sung4s 4s1uni 2s1unm 2s1uns s4uns. s4unst 2sunt 2sunw s4unwa 3sup 4supd sup3p4 su2ra sure4 su2rei su2rer 3surf 2s1urk su2r1o 2surs s1urt su2s su3s2a sus1e sus3i s3u2t su4te su3tr 3suv suz2 1sÞ 2sÞ4b 3sÞc sÞ2d1 sÞden4 3sÞf 3sÞn 3s2Þs 3sÞß 4s3v2 svoran4 2s1w 4s3we swe6gers sweh2 4swie 4swil 4swink 4swis 4swit s3wÞ 1s4y 2syl1 sy2lo sy2lu sym3 sy2n3 3synd sy4no 3sy4s3 2s1z2 4s3za 4szÃĪ 4s3zei 4szel 3s2zena 3s2ze3n2e 4szent 4szer s2zes 4szet 4szeu 3s2zew 4s3zie 4s3zo s3zs 4s3zu 4s3zÞ 4szw 2ß3a4 2ß1ÃĪ 2ß1b4 2ß1c 2ß1d2 1ße 2ß1e2b 2ß1ec 2ß1ef 2ß1e2g 2ß1ei 2ß1ek ße2la ße2le 2ßelek 2ß1emp ße4n3a2 4ßenerg ße2ni ß1enke ße2no 3ß2ente 2ßentz 2ß1e2p ßer3b ßer2ei ßer2la 2ß1er4se ßer3t ß1erw 2ß1es2s 2ß1est3r 2ß1ex 2ß1f4 2ß3g2 ßge2bl 2ß1h 1ßi ßi2g1a2 ßig4s 2ß3i2k 2ß1il 2ß1im 2ß1in 2ß1j 2ß3k4 2ß1l ßler3s 2ß1m ßmut4 2ß3n2 2ß3o2 ßos2 2ß1Ãķ2 2ß1p2 ß1q 2ß3r2 ßrÃķ2 2ß3s4 ßsau4 ßsch2 ßst2 2ß1t ßt1in ß3tÞ 2ß1um ß1unf 2ßunt 2ß1Þ4 2ß1v 2ß1w 2ß3z2 1ta 3ta. 4taa 5taan 4tab. 3taba ta2b3an 2t1abb 4tabd 3tabel 2taben 2tabf 2tabg 2tabh 2t3a2bit 2tabk 2tabla 4tabm 2t3abn 2ta4br 4tabs t1abst 2t3abt 3tabu 4tabw 4tabz 2t1ac 4tachs 3tacu t1ada 2tadd ta2der tadi3 tadi5o4 t1adm ta2dol 2t1a2dr ta3d2s 4tadt tad4tr ta2er 3taf. 3tafe 4tafet 4taff t1afg t1afr 3tag ta2ga ta2g1e2i t3agent tage2s 4t1agg 4ta3gl 4t1a2go tag4san tags3c tag4st tah2 tahls4t ta3i2k tai2l1 ta1ins tai4r ta1ir. ta1i2s 2t1a2ka ta3kes 2t1akk ta2kro tak4t1o2 t2aktu 2takz 3t2al. ta2la ta3lad ta3lag tal3au 3talbr tald4 3tale tal2en ta4l3end tal3eng ta4l3ens taler2 ta4ler3g ta2let tal2ga tali6ene tal4l3ac tall3ei tal2l1Ãķ4 tall3s2 2t1alm. 3talo ta2lop ta2l1o2r t1alta tal3th talt4r ta2lu 2tam 3tam. 3tame t2amen t1a2mer ta2mi tamm1a tam4m3er t1ampl 3tams 4t1amt t1a2na tan3ab 4tanal ta4nat 2t1a2nÃĪ 2tanb 3tanc tan3d4ar tan2d3r tand4st ta4nerf 4tanf 2t1ang 3tang. t3angeh t2ango tan4gra 2tanh t2anho t4ani 3tanj 3tank tan2kl 4tankr 4t3anl t1anm 2t1anna 3t2anne t1ano 2tanom 2tanp t1ans t2ans. 4tansi tan4tan t4ante. 4tantei 2tantr 2tanwa 2tanwÃĪ t2anz. t1anza 4tanzei 3tanzk 3tanzr 2t1anzu 2tanzÞ tan2z1w tao2 ta3or t4ape ta2pes 2tapf ta2pl ta4poka t2appe ta2ra 2tarab 3tarabb ta3rak 3tar5al 2taram tar3ap ta3ras t2arau 2tarb 3tarba 3tarbek 3tarber 3tarbi 3tar3bl 2tarc 3tarchl 3tarchr 3t2ard ta2rel ta2r1er tar3g ta1r2h 3tari 2tark 3tark4l 3t2arko t2arl 2t1arm t2armÃĪ ta2rom 2tarot 2tart 3t2arta 3tartei tar6ter6e 3tartex 3t2arth t1arti 3t4artis tar4to tar2tr 3tarty ta2ru t1arz 2tarzt 3t2as. ta3s2a 3tasc 4t1asp 2t3assi 3tast tas4tem tas4to t2asy t4at. ta2ta2b ta2tan 3tatb t4ate tat1ei t5a2tel ta2tem 3taten ta2t1er 2t3atl 2tatom 2ta2tr 3tatsa 2tatt tau2b1a 3taubh tau2bl tau2b3r tauchs4 tauch5sp 4taud 2t1auf 3taufe. 4taufk 4t3aufl tau3f4li 4taufm t3au2f1o 4taufp taufs2 4taufw 3taug 4t3auge t1auk 3taume 4t1ausb 3tausc tau6scha tau6schm tau6schr tau6schw 2tausd t2aus2e 4t1ausf 4t3ausg t1ausk 4tausl 2tausr 4t3auss 2tausÞ 2t5ausw 4t3ausz 4tauu 3tav 4tava ta2van 3tax 4t1axt 3taz 1tÃĪ 2tÃĪÃĪ 4tÃĪb tÃĪ1c 4tÃĪd t2ÃĪf 3tÃĪg 4tÃĪgÃĪ 4tÃĪgy 2tÃĪh 4tÃĪll 2t1ÃĪlt 4tÃĪ2m t1ÃĪmt t1ÃĪngs 3tÃĪnz 4t1ÃĪp 2tÃĪq tÃĪ4reng tÃĪ2ru 2tÃĪrz tÃĪ2s t2ÃĪt 3tÃĪtigk 4tÃĪtt 2tÃĪug 2tÃĪuß 2tÃĪx 1tà 4t3b4 tbauer4 tber2e tblocken8 tby4t 4t1c t3cha t3che tch2i tch3l t3chr t2ch1u tch1w t4ck t3cl tcor2 t3cr 4t3d2 tdar2m1 tdun2 1te 3te. te2a2 te3ab tea3c te3ag 2teak te3al 3team te3an te3ar tea4s 3teba t4ebb 2t1e2ben t2ech 2techd 2teche 2techk 2techm 3techn 2techt te2chu 2teck te3cker te2cki 2t1ecu te2dit te1em teen1 te2er. te1erw te2es 3tefa 2teff 2t1egg 2teh 3teha te2hac 3tehÃĪ 3tehi te2him 3tehÃķ t1ehr te3hu 3tei. 3teic tei1fl 2teign teik4 3t2eil tei6lent teim2 2tein teinen4 tei6nens tein6hab t3einkÞ 2t1eis. t1eisb te5isch. teit4 t1eiw tei3z te2kel 3teko tekt4 3tel. 3te2la tel3ab tel1ac te3lan te4lant tel1au te2lÃĪ telb4 3telbr 3tel3d4 tel1ec tel3ehr 2telem tel3eng te2ler tele3s te2leu 4t3elf. 3telg 3telh tel1in te2lit 3telk tel3le tel6lein tel3li 4tellu 3teln te2lob te3lom te4lost te2l1Ãķ 3telp 3tels tel3s2k 3telt4 tel3ta 3telw 3tem. 3t2ema te2man te2m1ap te2mau 2tem2bo te2m1ei te2m1er te2mi tem3i2m tem3ing 2temm te2mo tem1o2r 3temper 2tempf 4tempfi tem3s6 te2mu te4mun 3ten t6en. ten1a2 te4nad te4n3an ten3ar te4nas te4nat ten3au te2n3ÃĪ ten3da 4t3endal tend4an 4tendap 4t5endf 4t1endl t6endo 4t5endp ten3d4r te2n1e2b te2nef te2neh ten3ei te3n4ei. tenei4d tene4m tenen1 te4n3end te4nene te4neng te4nens 4t3energ te4n3ern tenf4 4t1eng. teng2a ten4gag 4t3engla te2ni te4nil ten1im te4n3in tenk4 ten3n2 te2nol te2nos te3nÃķ 6t3ensem tens2p tens3th t1entb 4tentd 4t3entl 4t3entn t1ents 4t5entw 4tentz t2enz ten4z3er teo2f 2tep. 2t1e2pi 2teppu tept2 3t4er. t4era ter3a2c te2rad te1ral ter3alg te3r4ane te2r3ap tera4s 4terbos 2t1erbs 2t1erbt 3terc 4t3erde. ter3d2s 3tere. te2r1e2b te2rec t3ereig te5rek 3tere2m te4rema te4r3end te4rene te4reng te4r3ent teren5th 2tereo 3terer terer3k terer6ku terer3l te4r3erp te4rers te4rerw 3teres t4erfr terg2 ter3ga 6tergebn t6ergem t6erges t6ergew ter3gl 6tergrei t4ergru t6erhall t6erhau t4erhÃĪu t4erhei 7t2erhi t2erho 6terhÃķhu t2erhu te3ria 4terii ter3iko 2teril teri4o te2r3it teri4ta 4terklÃĪ t4erlÃĪ t4erli ter4lÃķs 3term t2ern. ter4nar 2t6ernc t4ero te1rob ter4obe 2teros t1e2r1Ãķ t4erp t4erra ter4re. t4erro t4ers. t2erse t4erst. t6erstad ter6stat t4erstÃĪ t4ersti t4erstr t4erstu t4erstÞ tert2 ter3ta ter4trÃĪ t4eru2 te4r1uf te3rung t4erv 4t3erwÃĪh ter3z2a 2t1erzb t4erzei 4terzeu ter3zw 3tes t2es. tesa2k tes2c tes2ka tes4pen te2spr 2t1essa tes3tan te3stei tes4tel tester4 tes6terg tes6t5erh tes6terk 2testn testo3 t3est3ri te2su tet2 3tet. t1eta te4tabl 2te2tap 2te2tat 3tete teten3 2t1e2th te3tho 4tetl tet3ti 3teuf 3teum 3te1u2n 4teunu 2t1eup 3teur. te2va te2vi tewa2s 3tewo 2texam 2t1e2xe 2t1e2xi 4texp tex4ta 2t1exz tÃĻ2 4t3f6 4t1g2 tga4s3er tga2su t3ge tge4nen3 tger2a tger2i tg4r 4th. 2t1h2a 3tha. 3t2hag 4thak 3thal. 3thalh t4hali t2hals t2han. t3hand t3hap 4t3hau 2t1hÃĪ 3thÃĪi 4thÃĪl 2thb th2e 1the. 3t4hea 2t1heb 2t1hef 2t1hei the1in 4theit t2hek 3thema 2themd 2themm 1then t1henn 3theo t1herd thero1 t1herr 2t1herz 4t1hess t2heu 2thf 1th2i 3thi. thic3k4 thi3er. 2t1hil 2t1him 2t1hin thi3nu 2t1hir 2thk 2th3l 4th3m thmu2 2th3n2 1tho 2t1hob tho3chr t1hof 2t1hoh t1holt 2tholz t2hon 4thops tho1s t1hose t1hot 4thote 2thou t1hov 4thÃķ 2thp 1th2r2 2ths 2tht2 t1hu 2thub 2thuh 4t3hun 2thut 2t1hÞ 2thv 1ti t4ia ti3ac ti1ag tial2l ti3alo ti1a2m 3tib 3ticc ti1ce 3ticket t2id. 2tidee ti4d3en4d ti3dy 3tief. 4tiefel 3tiefl tie2fr 2tieg4 2tieh ti2e1i ti1el ti2el. tiel3a ti3e4n1 tien3s 3tier tie4rei tie4reu ti2ern tie3s2t 2tieß ti1eu 3tif. ti3fe ti1f4r tifter6k 3tig ti4gerz ti2git tigs4tr tih2 3tij ti2kam ti2kar tiken2 ti4kent ti3k4ere ti3kerl ti2kin ti4klu ti2kn ti2kop tik1r ti2kra ti2krÃĪ ti4krei tik5t ti2lar til3d ti2lei ti2lel 3tilg 2tillu ti2lÃķ tilt4 ti2lu ti2ma2g tim4man t3immat timmer4 tim6merg 3timo 2timp tim2s 3tin. t4ina ti3naf ti3nak ti2n3an t1ind ti5n2e tine1i 2t1inf 3ting tin2ga ting3l ting3s 2t1inh 3tinis t1in1it t1inka tin2k1l tin2kn tin2kr t1inku t2inn ti2nor t1ins 3tins. t3insa t2insÃĪ 4t3inse tin4spa tin4sum t1int 3tinte. ti3nu tin2um 4t1inv 3tio ti2osk tioxi3 3tip. 2tipe ti3p4l 3tipp 3tips ti4que. 3tirad ti1rh ti4ron 3t2isc ti6schei ti4schu tisch3w ti2sei tis2el ti3sk 2t1isl t1iso ti2sp t1isr tiss4 ti3s2th tis3ti ti1s4tr ti2s1u t1it2a ti2tal 3ti3te ti1th 3titi 2ti3tu 3tiu tium4s 3tiv ti2van ti2vel ti4vene tiver2 ti4verh ti4verk ti4verl ti2v1o ti4v3r ti2za ti2zir 2t1j 4t3k4 4t1l2 tlan2g tl4e t2lef tlei6der tle2ra 6t3li tlings5 tlit1 t3lo t5lÃķ tlung4 4t1m4 tmal2 tma2st tmen8schl tmen6t5 tments4 t3mo tmo4des 4t3n4 t5na tnes2 1to 3to. to4as to5at t2oba 4tobj tob2l t1obs 3tobt to1c t3ochs 3tocht to6ck5ent 3t4od tod1er2 to4dun tof4fa tof6f5ent tof4f3er 2toffi toff3s 3tog 2t3ohr 3toi 4toi. toi4r 4toiz 5toj 3tok4 3tol to3le 4tolp 4tolz tomar4b to4mene 3tomi to2min 3tomo to2m1u to4mun to2nan ton3au tond2 to2n2eh toner6ke to2nob 2tony 3too 3top. to2pad to2pak to2pan to3pas to2pat top1hi 3topo 2to4pt 3tor t4or. tora2g to4rÃĪn 4torc t1ord t2ordi 4t3ordn t4ore to2rei to2rel to2rem to6renna tor4fan t1or3g 4torga t5orient torin4s tor3int 5tork to2rÃķ t4ors 4t1ort. tor3t2a t1orth 4tortn 4tort2s to4ru to3rÞ to4rÞb 4tory to3sc to3s2e to3s2h to4ska to3s2p 4toss 3to1st2 4toß to1ßu to2tÃĪ 3tote to2tho 3totr tots2 5t2ou touil2 to3un 3tow to1x 3toz 1tÃķ 3tÃķch 4tÃķck 2t1Ãķ2d 2tÃķ2f 4t1Ãķk 2tÃķl. 3tÃķn t2Ãķr t1Ãķst 3tÃķt 2t3p4 tpf4 tpi2n 2t1q 1t2r4 2tr. 5tra. 3trac tra3cha tra3chl 2t3rad. 2trade tra4dem 4t3radie tra4fah tra4far t4rag 3trahi 4trahl 2trahm 5t4rai 3trak 4t3rake t4rakt 3tral tral3l 3t4ran. 4trand 4trang t3rann 5t4rans tra2st 4traß 4traub. 4trauc t4raue t4rauf 2traup 4trauß 5trÃĪc 2trÃĪd 3trÃĪg 3trÃĪne 4trÃĪng 4trÃĪs 4trÃĪß 2trÃĪuc 4trÃĪus 4trÃĪuß 4t5re. 2trea t3reak 4treb tre2br 4trec t3rech t4reck 5treck. tre5cke 2t3red 3tref 4trefe 5treff 4trefl 4trefo 4treg t3reh t4rei. 3t4reib 4treic 4treif 2t3reig 2t3reih 2treim 4t3rein 2t3reis tre7isch. 4treit t3reiz 2trek 4t3rel t4rem t4ren. 3trend 4trendi 3trennu t3rent 2trepe 2t3repo 3trepp t3repr t4rer 5t4res. tre2ta t4rete tret3r 2t3rett 3treuh 4t3rev t4rex 4trez 5t4rÃĐ 2t3rh 3tri t4rib 4tric t4rick t4rid2 5trieb trie3fr tri4ena tri2er tri4ers trie1s 4trig. 5trigg tri3gl t4rik tri4ke. tri4kes 5triko 4t3rind 4tring tri3ni 4t3rinn t4rip 4tript 4t3riv tri2x trizi1 5tro. tro3b4 4trock. 3troe tro4kes trol4la 6trom. tro4men tro2mi 4tromk 4troms 4tromv 3tron tro3na t4rop tro1pe 3tropf 5tros. tro5sm 3trost t1rot. 2trout 3troy 4t3rÃķc 2trÃķh 6trÃķm 3trÃķp 3trÃķs 4t3rÃķss 3trÃķt 3trua 3trub 2t3ruc 4truf 4truk trum2 t3rumÃĪ trums1 t3rund 3trunk 5t4rup t3russ 2trut1 tru2th 4truw trÞ1be trÞ1bu 2t3rÞc trÞcker6 t4rÞg 3trÞmm try1 2ts 4ts. ts3ab t4sachs t2s1a2d ts1ahn t2sall t2salt t4samp t4s1amt t2san ts3ane tsa2r ts3are ts3ari t2s1a2s3 t2sau ts2av t2sÃĪh ts1ÃĪn ts1ÃĪus t4scham t6schart t3sche t4schef t3schl tsch4li t4schro t3schÞ ts4cor t2s1e2b tse2e t2sef tse4he. ts2eil t3seme ts1eng ts2ens t2s1ent t2s1ep t2s1er t6s5essen tse2t ts1eta t2s1eti t2s1e2v t2sex t3sexi ts3he t2s1i2d t2s3i2k t2sim tsing4 t2sini ts1ir 4tsk t3skal ts4kele tski2 t4s3ko t1slal ts1off t2s1op tso2r ts1orc t2s1ori ts3ort. t2sÃķ t2spac t2spal ts1pas t2spat ts3pate t2spÃĪ t3sped t3spei t3s2pek ts4pend t2sph t3s2pi t4s3pic t4spins ts3ple t2spo t3s2pon t3s2por t2spro ts2pul ts2put ts3s4 4t1st4 t4stabe t2staf t4stag ts3tak t4stale t4s3tanz t4stas t4stat. t4s3tÃĪti t2stea t3stein ts4terb t3s4tern t3s4tero t4sth t3stif t3stim t4stit t4stoch t4stoi ts4tol t4ston t3strec t4stren t4strie ts2tu t5stub ts4tÞm t4sty ts1u t2su. 5tsubi t2sumg t2sums t2sumv t2sumz t2s3un tswa2s t3sy 4t1t tt1ab tt2ac tt3achs tt1ad tt2ag tta6g5ess t4t1ah tta2ke tt2al t4tan4a t2tanm tt2ant t4t1ap tt1art tt3atr tt1ÃĪh tt1ebe tt1eif tt1ein t2t1eis tte4l1a2 tte4l3e4b tte4len tte4lin ttel1o ttels4t ttel5ste t2temu tte4na tten6sem t4tentb tten3te t4tentf t4tents tten3z t2teo tt4ere tt3erfo tte4rik tte2ro tt2erÃķ tt4es1 tte4s3a2 tte4s3ÃĪ2 tte2so ttest4r tt2hÃĪu tt1hi t2t1ho t2ti4d t4t3igi t2tins tt2int t2tiso t6t3la t4torg t2trou tt3rÞ ttschi4 tts1eh tt2sen tts1p tt2spe tt2spr tt4s3tÃĪt tt2sum tt3s2z tt5t2 tt1u2f t3tÞ tt3z2 1tu 3tua tu4ale tu1alm tu1alv tu3ant 2tub2 tuba3b 3tuc tu2chi tu1cho 2tud tudie4n3 3tue tu2ere 2tuf tuf2e tu3fen t3u2fer 3tuff tu2gan 4tuh tuh4ler tu1ist tu2kr tul2i 3tum. tum2b5l 3tume 4t3umf 2t3umg 2t1umh 2t3umk 2tuml 3t2umo 2t3umr 4t3umsat 2t1umsc tum2si tum2so tum4s5tr 2t3umt 2t1umw 2t3umz 3tun. 2t1una 2t1und tund2e tun2en 2t3unf 3tung t3unga tung4s5 2tunif 2tu2nio 2tuniv 2t1unm 3tunn t1u2no t3uns 3tuns. 4t3unt 2t1unv 2t1up. t1upg tu2r1ag tu2ran turan4l tu2ras tu2rau tu2rÃĪ tur1c tu2r1e2b tu2rei tur3eis tu4rene tu2r1er tu4res tu2re4t tu2r3e2v tur3f4 tur3g2 tur1in1 tur4mun 3turn tu2r3o tu4ru 3tus tu2sa tu4schl tu2se tu2so tu3t2a tuto5 tuto3re 2tÞ 4tÞb tÞ3ber. 3tÞch tÞck2s 3tÞf 4tÞh 3tÞm 3tÞr. tÞr1c 3tÞre 3tÞrg 3tÞr3s 3tÞrw 4tÞrz 3tÞtc 3tÞte 4tÞtz 4t1v2 t3vo tvoran4 4t3w4 t5wa2 twi4e t4wist 1ty 2t1ya 3typ ty2p1a ty1s2 2t1z t2za2 tz1ag tz3ar tz1au t2z1ÃĪ t3zÃĪh tz1ec t2z1e2d tz1ehr t2z1eie t4z1eis tze2m tz1emi tze4n1 tz2ene tzen5s4t tzen3ta t4zentg t4zentl t4zents tze4reb tzer6gre tz1erw tz2er3z tz3erzi tze2s3 tz1e2t t2z1i2d tzi4m tz1imi tz1int tz1inv t2z3om t2zop tz2th tz4tin tzu2gu t2zuni tzwan4d3 tz1wÃĪ tz1wi t3zwie tz1wu 2ua u3a2b u3a2c ua2dan uad4r ua2g u1al. u1a2l1a u1a2l1ÃĪ u1alb u1ald u3aleb u3a4lent u3aler2 ua4lerg ual3erk u3a2let u1alf u1alg u1alh u3a2lid u1aln ua2l1o2 u1alp u1alr u1als u1al5t4 ua2lu u1alw u1alz u1am uan2a u1ans u3ar. uara2b u1ars uar4t3an ua3sa uasi1 ua2th uat2i uat2o u3au u1ay u1ÃĪm uÃĪ2s u1ÃĪu 2u1b u2barb ubb4l ube2be ube2e u2b1ehe u4b3eins u2b1e2m ube4n1a uben3o ub2er u4b3erde ubert4 ub4es ub1eul u3bit ub2l ub3lÃĪu ub3lic ub3lu ub4lut u2bob u2bop u2boz u2b3rit ub4rÞ ub2san ubsau2 ub4s3che ub2s1o ub2sp ubst2 ub3t2h 4uc uc1c uch1a u1cha. uch1ÃĪ u1che uch1ec u2ched uch1ei ucherin8t u3ches u1chi uch3im uch1in uch3l uch3m uch3n uch1op u2ch3r uch4sel uch2so uch2sp uch2ta uch3tan uch6t5erf uch6t5ert u1chu uch3Þ uch1w u1ci uck3elf u2ckem u4ckent uck2er ucker8geb u2ck3i uck4sti u1cl 2u1d u3d4a uda3d ud2e ude3i4 udein7 ude2n1 uden3e uden3s2 udert4 udes2 udi3en uditi4 ud2o u3dob u2d3on ud3ra u3dru 4u1e ueb4l ue1ch ue2ck u2ed ue2en4 u2eg u2eh ue2ke u4ela ue2lek ueli4 uel2la u3eln ue2mi uen1 u3en. ue4n3a2 ue2nÃĪ u3end uene2 ue2neb ue2ner uen4gag uenge2 uenge4m uengene7 uenge4s uen2gl u3e2ni uenk4 ue2no uen6zene uen2zu u2ep ue2r3a2 uera4t ue2r1ÃĪ uerb2 uer6baut uer3d2 uere2 ue2rec u5ereinn uer3eis uer3ela u3eremp u3e4r3ent ue3r4erb u3ererf ue4rer4g uerer4h uerer4k uerer4m ue6rersc uerer6sp ue6rerst uer3esk ue2re4t u3erex uer3g2 uer4geb u3erh ueri2d ue2r1i4m u3erin4t u3erl. u3ern uer4nan uer4nar uer4ne uern3s4t ue2r3o4 uer2Ãķ u3errÞ uer3sc uerst6 uer3t2 u3eruh u3erum u3erunf u3erunt uer3z2 ue2ta ue4tek ue2tik uety2 u2ev ue2x1 uf1ab u3fac ufa2ck u3fah u3fal ufall4 u3fam ufa2n uf3ane u2f3a2r u3fas uf1aß ufa2t uf1au u2f1ÃĪn u2f1ÃĪs u2f1ÃĪ2ß u2f1ei ufel4s3a u2f1em 4ufen u3fen. u2fent u2ferf u2f1erh u4ferla u4ferle u4ferne u2f1et 2uff uf3fe uff4l uf2fro u2f1id u2fim u2f1ins uf3l u2fob ufo2r uf1ori uf3r uf5sÃĪ uf2spo uf4stab 2uft ufta2b uft1eb uft3erd uft3er4g ufter4l uft3s4 u2fum 2u1g ug2abe u4gabte ug1a2d ug1ak u2gana u2ganb u2gani u2g1ans u2gant ug1ap u2g1ar uga2s ug1au ug3d2 u3ge. u2g1ec ug1e2i u2geig u2gein uge4lob ug1emi ugene2 ugen3s2 u2g1erf u2g1erl u2gerr u2gerv u3ges. u2g1esk ug2et ugg2 ugge4st ug2gl ugg4t ug3hu u2g1i2d u2gim ug1in u2g1l u4glÃĪ u6gleitb u6gleitu u4glic u4glis ug3liz u4g3lo u4glu u4g3n ugo3 u2go4b ug3oc u3gon ugo4p ug1o4r u3gos u2gÃķ u2g3rÃĪ u2greg u4g3reis u2gres u2g3rie ug3ro u2grou ug3rÞs ug3span ug4spe ugs4por ug4spr ug4spu ugst2 ug3sta ug3stÃĪ ugs4to ug3s4tr ug3stu ug4stur ug3s4tÞ u2gum ugu3te u2gÞ u1h uh2a 2u3he uhe3a2 uhe1e2 uhe1s 2uhi 2uhl uh1la uh2lar uh1lÃĪ uh4l3ent uhl3erb uh2li uhl2Ãķ 2uhm uhme2 uhr1a uhrei4s uh2r3er3 2uh3ri uh4rin uh2r3o uh2ru uh4rÞ uhs4 uh3t2 u2hu 2uhÞ uh1w 2ui ui2a ui1ch ui2che ui4cker u1idd u1ie ui1em u3ig u4ige uil4les u1im u3in. u3isch. u3ischs uis2e uisi4n uis3t uit3s u1j uji3 uk2a ukÃĪ2 uk1ÃĪh u3kÃĪu u1k2e uke2n1 u1ki u1k2l ukle1 uk4n u2k1ob uko2m1 ukom3a uk2Ãķ u1k4r uk2ta uk2t1el uk4tent uk2t1er uk2tin uk4t3o4ri uk4t3r uk2tum u1ku uku2s uk2Þ u1l ul1am ulan2e ul2ar ula2s ul1ÃĪm ulb4l ul4dan ul2dr uld2se 2ule u2l1el ul1emb ule4n ul1er2h ules3t ule2t ul1eta 2ul3f4 ulg4 2uli ul1id uli2k ul1ins uli1p ul3ka ul2kn ull1au ul3len ul3l2i ul2lo ull3s2 ulm2e ulni2 ulo2i u2lop u2l1or ulp1h ul2pha ul2sa ul4sam ul2s1ec ul2sei ul2ser uls2th ul2sum 4ult2a ul3tan ult3ar ul2tau ulter4m ul3ti ul4tri ult3s u2lÞ ul2vr ulz2w 2uma. u2maa3 u2mab u2m1ad u2m1a2k um1all um1ang um1anz u2m1ap um1ar u2marc u2marm u2mart u2matl u2matm um1aus u2maut u2m1ÃĪh 1umd2 u3me. u2m1ef u2m1ein ume2n1e um5engel umer2a u2m1erf um1erg u3merk u2m1erl um1erw umes2t 1umf 4umfi 1umg um1ind um1inh um1ir umi2t um1ite 1umk 1uml 2umme um2mei um3mi um1ob u3mol um3ot ump2fa ump4fin umpf4li um2pho 1umr um4s3an 1umsat um4s1er um2sim um4sk um2s1pe um2sum um3t2 u2mum u2m1u2r 1umz un1 4un. 2una. 1unab un2a3br un2ag un2al u3n2am u2n3an u2nap u2narb 2un2a1s4 un3at un2ÃĪr 2und. un2da unda2b un2dÃĪn 1undd 2unde un3de. underer6 und3erf und3erÃķ underten8 under8tend und3erz un2dex 1undf 2undg un2did un2dim 1undn undo2b un2dop un2dor 4un2d3r und3s 4unds. 2undsc un2d1um undÞ4 1undv 1undz u3ne2 un3eid un3ein un2emi une4n1 unen2t une3re une3ri u4nerk u4n3erz. un2es4 unf2 un3fa unft4s un2gab un2gam un2gat 3ungena unger4e 1unget 1ungew ung5h 1ungl un2glu un2go un2gr ung3ri ungs3 ung4sa ungs5tr u3nic un2id un3ide 4unie 3u2nif uni3k4 un2im 1unio un2ir un3iro un3isl u3n2it 1u2niv 2unk un2k1a2 un3ker un2k1es un2ket un2kne un2ko2p un2kro unk3s2 unk4tit unk2tr unlÃķ2 unna2 un4n1ad unn2e unne4n u2nob uno4r un2os 1unr uns2 2uns. unsch5el un3se 1un3si un3sk un4ski un3sp unsta4g unste4c uns4t1r 4unsy 4unsz 1unt un3ta un3te unte4ri 4unti un3tr unt3s 2untu 3unty 2u2nu u3nuc unvol2 unvoll3 1unw 4unwÃĪ 3unwe u2ny 2unz un3z2a unz2e 2uo u1o2b u3of u1or u3or. uo2r3a uor3c u3oret uo2ris u3ors uor5t uos2 u1os. uote2 u1ox uÃķ2d u1Ãķk u1pa 3upd u1pe2 uper1 uperer4 up2fa u2pfe2 u2pfi up2fu u3p4i up4lu u3po 2upp up2pl u1pr upra3 u2p3ras up4t3a2 upten1 up4tene upt3erf upt3erg upt3erk upt3ers up4tin up4t1o up4tr u1q 4ur. u1ra u2rab u3raba ura2be u2r1akt u2ral4t u2r1am ura4na u3rand uran6fÃĪn ur1ang uran4ge ur2anh uran5s ur1anz ur3ap u2r3ar ura4ri u3rasc ur1asp ura4str ur4ate u2r1att ur1au 2u1rÃĪ ur1ÃĪl ur1ÃĪ2m ur1ÃĪn ur3b2a 2urc urch1 urcht3e urd2 ur3da ur3di ure1e ur1eff ur1eig u2rele ure2n ure4na u4ren4se u4rentn u2r1ep urer3h urer3k ur2ert u2rerw ur1eta ur2e3th ure3u 2urf ur2f3l ur2fro urf4spr urf3t ur6gense urg3inn urg1l ur2gla ur2gri urgros4 urg1s4 uri2c ur1ide uri3en u2r1ind urin6sek urin8stin u2ri2so ur3ku ur3l ur4matt ur2m1au urm2ei ur4mern urmet1 ur2mum ur2mun ur3n2e 2u1ro urob2l ur1off uroh2 uro1s4 urost2 2u1rÃķ ur3p4 2urr ur3re ur2rh 3ursac ur2san ursau4 ur2s1er ur4s1of ur2spa ur3sze urt2 2urta ur2tai urt3ein ur2tro urts2c u3ru uruf4 urÞ2 ur2z1a2 ur2zÃĪ ur2z1ec ur2zep ur2zi ur2z1op urzt4 ur2z1w 2us us3a2b usa2gi u4s1amb u4samt u2sang us2ann us3ark usa2s3 us1ast u2sÃĪh u2s1ÃĪs u4schab u4schak u3sche. u4schef usch5eic u4sch3eu u3schi usch3mÞ u3schu usch5wer u3s2e3b u2s1ec use2ei u2s1ei u4sen4se u4sentl u3sep use4rec u2s1erl u2serp us1erw u2s1ese u2sex u2sid usi3er. usi5ers. u3sik usi4kat us1inn us3kl us3oc us1oh u3sol u2sop us1orc us1ou u2spac us3part u2s1pas u3spec u3spek u2sph us1pic u3spit u3s4piz u2spo us2por u2spu usrich7 us2s1ad us2s3eb usse4g usse4n us2sep us5ser. uss3erf usser4z us4sesp us2sez uss3k us2sof us2sum u1stad u1stal us3tau us4tein u1stel ust3erl us2th us3ther us3tin us3tr us4tras us6tris u1stu u2stun u2stur u2sumd u2sumg u2sumz u3sur 3usus u2sÞ 2uß uß1u 2u1t 4ut. u3taf u2t1alt u4t1a2m ut2ans u2t1ap u2t1ar uta2s u2taut ut1ÃĪh u2tÃĪr ut3c ut1e2d u3teh ut1ei. ut1eie ut1ein u3tek ut1ela u3tem ute2n1 uten2a u2tent u4tentf utera2 ute4ral ute5r4er ute6ring uter3k ute4ros ut2es ut2et u2t2ev u2t1ex utfi2 ut3hal ut3hei ut1hel u2t1hi u2t1ho u2thu u2t1id u4tigel uti2vi utli4n uto3c u5to3m uto1p uto3pa u2tops utor2a u4tord uto2re uto4rin uto3s2 4utou u2tÃķl 4utr ut3rea u2trou ut3rÞ 4uts utsau2 ut2sÃĪu ut4schl ut4schm ut4scho ut4schÃķ ut3ser ut3s2k uts2p ut3sta utt4er ut5t2l utts2 utu2b u2tum utu4n u2t1une utu4re utu3ro utu5ru u3tÞ u6tz ut2zeh utz3eng utz2er ut2zet ut2z1in ut2zis ut2zÃķ ut2z1w 2u1u4 uufe2 uum1 uuma4 uume2 u1Þ2 2u1v4 u2ve. uve3rÃĪ u1w 2u1x ux2e ux2o ux3oe ux3t4 u1y u2yo 2u1z uze2 u2z1ec u2z1ene uz2er uzo2f uz3ot uz1we uz3z2 1Þb Þb1ÃĪ 2Þbc 2Þbd Þbe2 Þbe3c Þbe3le Þbe4na Þbe3ne Þber1 Þ4bet Þb3l Þb5r Þb2s3t 2Þc Þ1che Þch3l Þch2s1c Þcht4e Þ3cke4n Þck1er Þck3eri Þcker6ke Þ4ckers Þ2ckin Þ2ckum Þ4d3a4 Þde2c Þde2l Þ3den. Þden2g Þ3d2ens Þd3o4 Þd3r Þd3s2 Þd3t4 Þdu2 Þe2 Þeb3 Þ1ei 2Þf Þ2f1a Þ2f1ÃĪ Þ2f1ei Þ2fent Þfer2 Þ2f1erg Þf2fl Þ2f1i Þf3l Þ2fo Þ2fum Þ1g Þg2e Þge2l1a2 Þge2lÃĪ Þge4lec Þge6lei6s Þge2lo Þgen3s Þ2g3l Þ2gn Þg3s2 Þg4s3t Þh3a2 Þ1he Þ2h1ei Þ2h3e4m Þ3hem. Þ2h1eng Þ2h1ent Þ2h1erf Þ2h1er2k Þ2h1er2z Þ2hex Þh1i4 Þhla2 Þh1lÃĪ Þh2lel Þhl2er Þh2lÃķ Þhl4sk Þhl4sta Þhl4sti Þh3mo Þh3ne Þhn2s Þh1o2 Þh3r2e Þhr3ei. Þhre2n1 Þhren3s4 Þh1ro Þhr3ta Þh1s Þhs2p Þh3t Þht2a Þht4r Þ1hu Þh1w Þ1k2 Þl1a Þl2c Þ3l2e Þ4l3ef Þle2r3a2 Þl2l1a2 Þl2l1ei Þll2er Þl2lid Þl2lo Þl2lÃķ Þlls2 Þ2lÃķ Þ1lu Þ2ma Þ2ment Þme2ra Þ2m1id Þ2m1in Þ2m1u 2Þn Þ4n3a2 Þn2da Þn2dr Þnd3s Þ2n1erd Þnf1 Þnf3li Þn2g3l Þn2s Þn3sc Þn3se Þn3sp Þn3sta Þnster3 Þn3str Þn2za Þn2z1i Þnzu2 Þn2zun Þn2zw Þ1pe Þpf3l Þ1pi Þp2pl 2Þr Þr1a Þ2r1ei Þ2r1e2l Þr2f1er Þr2fl Þr2fr Þr4g3en4g Þrge4ra Þrk2e Þ3r2o3 Þrom2 Þror2 Þrr2 Þr2s Þr3sc Þr3se Þr3si Þr3sp Þr3sta Þrte2l3 Þrt2h Þr2z1in Þr2zÃķ Þr2z1w Þs2a Þ2schl Þ3s2e Þse1e2 Þse3l2 Þse4n Þse3r4 Þse1s Þs4s3a Þs2s1c Þss2e Þs4s3o Þs2st Þst3a Þste2n 2Þ1ß 2Þt Þ2t1al Þte3m Þte4n Þten3s Þtent4 Þten3z2 Þte2ra Þte2r1e Þterich6 Þter3n Þ2t1h Þ2t3r Þt2se Þt2st Þtte4n Þt2tr Þt3zen Þt2zw Þ1v Þ1z 3va. 2v1ab vab4r va1c va1f4 va3g vag2a va4gh va2la 2valu v2an. 2vanb 2vang v2ans 2varb v1arm vas2 2v1ass va1st v4at va2t1a4 va6tag va4tan va2tei va4t3eng va4tess va2t3h va4tid vati3k2 va4tim va4t1in vati8ons. va4tord va4t3r vat3s4 va2t1u 2v1au 2v1b 2v1c 2v1d2 1ve2 ve3an ve3ar veau3 veau1s ve3b4 ve3d ve3fa ve3g ve3h2 2veig v2eil 2vein veit2 veits3 ve3la 2velan vel2ar ve4l1au v1ele ve3lei ve3l2i ve3lo vel2o1p ve3ma ve3me 2v1emp 2vemu ve3nal ve4nas ven2c ve3ne ve3ni ve4nin ve3nÃķ ven6t3ag vent4sk 2veo ve3of ve4pi ver1 ver3a ve3rad 2veral ve3rand ve3r4ane vera4s ver6bart ver3b2l ver3d2 vere2 verf4 ver3g4 ve3ri ve4rin ver3k vern2 ver4sep vert4 ver5te ver3u4 ve3rus ves1 ve3sa 2ve3s2c 2ve3s2e ves3ti ve3ta vete1 vete3r ve3ti ve3tr ve3t2s 2veÞ ve3v ve3w 2v1f4 2v1g 2v1h vi1an vi3ar vi4a3t vi2ÃĪ vi2c vi3de vid3s2t 3vie vie2h1a vi2el viela2 viele2 vi2er vie4rec vie2w1 vig2 2vii v2il vi2l1a vi2lÃĪ vi4l1e2h vi2lei viler4 vi4lers vi2l1in vi2ma2 vi4na vin3d ving3 vings4 v1ins vi3sa vise4 vi3s2i vi3s2o vi2sp vis2u viv2 viz2 vize5 2v1k 2v1l4 v3le v2lie 2v1m vm2e 2v1n2 1vo 2v1ob vo2be vob4l voge2l3 vo2gu vol2a vol4l1a vollen6 vol6lend vol6ler6t vol2li 2v1op vo2r1 vo4r3a voran8schl vor3g vo3ri vo4rie vo5rig vorm2 vormen4 vor3o vort4 vot2a voy1 vÃķ2c 2v1p vr2 v1ra v2ree 3v2ri 2vs vs2c vs2e vs2p v1sta v1steu v3s2z 2v1t vue3 vu2enu vu2et 2vumf 2vumg 2vumk v1Þ 2v1v 2v1w 2v1z w2a 1waa wab2bl wa3che wach8stub wach4t4r 1wack waffe2 waffel3 1wag wa5ge 3wage4n wa2g3n wa3go 1wah wahl5ent wah4ler wah2l1i 1wal wa2lar 2walb wal4d3a wal4din wal2dr wa2les wa3li wal2m1 wals2 walt1a wal6tere wal6terl wal4to wal4tur 3walz wa3na wan2d1a2 wandels6 wan2dr w3anf 2wang wan3g2e wang4s 1wann wan6z5en6d wan4zer wa2p 1war2e ware1i wa5ren 1warn war4ni wart4e war2th war2za 1was wa3sa was2c wa4scha wa3sche wa4sch3l wa4schw wa3se wa3sh was3s wass4e2 wa3su w2ÃĪ 1wÃĪh 1wÃĪl 2wÃĪng 1wÃĪs wÃĪs2c wÃĪss4e 2w3ÃĪu 2w1b2 wbu2 2w1c 2w1d we2a we2b1a webe1i we2b3l we2bo we2b3r webs2c we3cke. we5cken. we3ckes we2e2 weed3 we2fl 1weg we2g1a we4g1ei weg5ersc we4g3l we4gn we2g1o2 we4g3r weg3s2 wegs4t 1weh weh4r3er4 wei2bl weib4r 2weie weifel6d wei4fre wei2gr weigs4 wei3k4 3weil weinsau6 wei3sc weis6sel weis6spi wei2t1r wei5ze wel5le4 wel6schl wel6schr wel2t1 wel4t3a2 welte4 wel6t5en6d wel4th welt3i wel4to wel6t3r wen3a2 wendes4 wen2gl we3n2i wen2ka wen4kla wen4k3ri we2r3a2 wer5be werbe3i wer2bl werb2s 1werbu wer3d2 5werdens 1werdu werer2 wer2fl 2werg wer2ga wer6gels wer2g3o wer2gr werin2 we3rins we2ri4o 1werk. wer2k1a 1werke wer2ki wer2k3l wer2kn wer2k3o wer4k3re wer2ku we2rÃķ wer2s wer3sp wer2t1a wer2tÃĪ wert3ei wer6teig wer6t5erm wer2th wer4tin wer4t1o2 wer4tre wer6t3ri wer4tum 1wes2e we2sp we4st wes4t1a weste2 west3ei wes6ten6d wes4tex wes2ti wes4t1o2 wes4t3r wes4tu 1wet 2wets wett3s 2w3ey 2w1f 2w1g whi4 w3ho w2i wicht4s wi1cka 1wid wi2e 2wieb 1wied wie3l wie3n2e wik2 1wild wim2ma wim6ment wim4m3u win2a win4d3e4c win3del win6d5erz 1win2d3r 2wing win2g3r win2kl win8n7er8sc win2no win3s wint2 1wi4r wire3 wi5s2e wi2sp 1wiss wiss4z wi3th 1witz. 1witzl wiz2 2w1k 2w1l 2w1m 2wn wns2a wn3sh 1wo1c wo2cha woch2e4 1woh woh4lei woh4na 1wolf wolf2s3 wol2la wol4ler wor3a wor3d wo4r3i worn2 wort1a wor4tel wor6terh wor4t3r wort3s2 wo4r3u wor3Þ 3wos wot2 1wÃķc wÃķl2fo wÃķrt2h 2w1p w2r w3re w3ro 2w1s ws2e w3s2h w3s2k ws2t w4s1u 2w1t wti2 w2u 1wuc wuch4sc wuch4st w3u2f wul2 wul3se wund4e wung3r wungs4 wun2s wunsch5l 4wur. wur2fa wur2f1o wur2fr wur2s 1wurst wus2 wus3te 1wu4t1 1wÞh wÞl2 wÞn3 1wÞrf 1wÞrst 2w1w 2w1z x1a 1xa. 2xa2b 1x2ac 1x2ad 1xae xa1fl 1x2a3g2 2xal xal2l xa2m 1xane 1xani x2an3t2 x2anz xa2r 1x2as xa2z 2x1b4 x1ce x1ch x1cl 4x1d xda4 xdy2 1xe 3xe. 2x1e4g 2xek xe2l 3xel. x1ele xe3lei x1em 3x2em. 2xemp x2ems x2en 3xen. xen3s2 3x2er. x2ere 2x1erl xer2la x2ern xers2 x2ers. 3xes 2x1eu 2x1ex 2x1f 2x1g 2x1h xi1c xich2 2xid xi2dan xide2 xi2dei xi2d3em x1i2do 3x2ie xie3l xi3g xi2ler xili3a xi2lo xi2l1u xim2 xin3s2 x2is xi2sa xi2s1e xi2sp xis3s2 xis3t xis4tÃĪ xi2su 3xit xi3te x1i4tu xive4 x1j 4x1k2 xkal2 4x2l2 x3lÃĪ x3le 2x1m 2x1n 2xod 2xoe4 x1o2r xos2 2x1Ãķ2 4x1p xpor6ter xpor4t3r x1q x1r 2x3s2 4x1t xt1a xta2b3 x3tan xt2ant x3tas x2t1ÃĪ x3tÃĪt xtblo4 xtblock5 x2t1e2d xt1ein x2t1el x4tent x2t1er2f x2t1ev xtfi2 x2t1h x2t1id xti2la x2til2l x2t1o4 x4tor xtra3b4 x2t3ran x2trau xt3rec xt3s2 x2t1um x2t1un 1xu xu1a xu2n 2xunt xu2s3 xusa2 xuss4 2xv 2x1w 3xy. x1z 2y1ab 1ya2c y2ach ya1h y1al. yan2g y1ank ya1q ya3ra yas2 yas3t y1ÃĪt y1b ybe2r y1c y2chi y3chis ych3n y1d yd2o ydri2 ydrid3 ydro3 y1e y2ec ye2d y2ef y2el2 yen4n yera2 y2ere yer2n1 y2es y4es. yes2p ye2th y1f2 y1g ygi2 ygie3 yg2l y1h y3ho yhr2 2y1i4 y1j y1k2 yke3n yk4l yk3s2 yl1a2 yl2a3g y1l2ak yla4l y2lam yl3ane y1lant yl4ante yl4anti yl2as ylau2 yl3c yle2 y2le. yl1em y2l1es3 y2l1e4t yli4n ylo1i2 yloid3 yloni1 yl2op yl1ora yl3s2 yl5t ym2a ym4an ym4ar ym4as ym4e ymp4 ym2pha ympi1e ynÃĪ4r yn2eu ynk2 y2n1o2 yno4t yn2oz yn3t2 yob2 y2od yoga3 yom2 yon2a y1ont yo2pe yo1s y2ost y1ou 2y1p ypa2b3 ypa2n yp2e2 ype4r3o2 y2pf y2p1i2d y2p1in y2plo y3po3 y4p3s yp3th ypu2 y2p1um y1q y1r y3r2e y3ri yri1e yri3en y3ro yros3t yrr2 2ys ys2an ysch4 ys2e1 ysein2 y4s3l ysme3 ys2po ys1pr yst2e yst2h ys2the ys3to ys3tr ys4tra y4stro y3s2ty ysu2 y2s1ur y3s2z y1t y2te. y2tes yt2h ythe1 y3to1 ytos2 y4t3r yu2r yur2e3 y1v y1w y1y y1z2 yze3r2i 2z1a2b zab3l za1c 2z1ach zach2s 2z1a2d 2z1af za3gr 3z2ah zah3len zah4ner4 z1ak 4z3akk 2z1al 4z3ald 3zali 2z1a2m z1a2n 4z3a4n4a 2z3anb za3ne 2z3anf 2z3angs 3z2ank zan2ka z3anl 2z3anr zanti1 za4pf z1aq z1ar 3zar. 2zarb za3re 2zarm 3z2aro z2arr zar2t1r 2z1as za2sc zast4 z3at zat2e za2to 3zaub 2z1au2f 2z3aug 3zaun z3aur 2z1aut zÃĪ2 2z1ÃĪc z2ÃĪh zÃĪ3hi 3zÃĪhn 2z1ÃĪm z1ÃĪn z1ÃĪp z1ÃĪr 2z1ÃĪus 2zÃĪuß 4z3b4 zber2e zbÞ1b zbÞbe3 2z3c 2z3d2 zdan2 zdÃĪ1 zdi1st 3ze. 2zea 2z1e2ben ze1c 2z1e2cho ze1e2 zeeu3 2z1eff z1e2ga zehe4 zehen1 zeh2l ze3ho zei1f4 zeik4 zeil2 zei3la zeile4 2z1ein ze3in. z2e1ind zei4ne 4z3einh ze3inse ze2i1s4 zei3sk 3zeit zei2t1a zei4t3er zei4to zei2tr zeit3ri zek4 ze2l1a zela2d zel3a2n ze2l1ÃĪ zel3d4 4ze2lek 4zelem ze2len ze2l1er ze2l1in 2z1e2lit zel3la zel4lab zel4l3ac zel4lar zel6lein zel6ler6t zeller6z zell3s2 zelm4 ze2l1o zels2 zel3sa zel3sz zel2ti zembe2 2z1emp 5zen. ze4n1ac ze4nas zen3au ze2nÃĪ ze3n2em zenen1 4zenge. z4engl 2zengp 2zeni ze2nid zenk2 zen3n ze2n3o ze4not 4zen4sem zen4ser zens2p z2entn z1ents 2zentw 2zentz zen4z3er zen2zw zeo4r 3z2er. ze2rad ze1ral ze2rat z2ere ze5rek zer2em z2erfe z3erfÞl 2z1ergÃĪ 4z3ergeb z4erges z4ergl zer4gon 4z1ergu 3z2erhe 2z3erhÃķ zerin6te z2erko 3zerl. zer4lau zer4le. 4zerleb zer4len 2zerlÃķ 3z2ern zer4nan zer4n3e4b zer4nei 2z1erÃķ zer2Ãķf 2z1erq 4z3erreg zers2 z2ers. 2z1er4sa zerta2 zer4t3ag zert4an zer6teng zer6tere zer6terl zer4tin zer2to 6z5ertrag zer6trau z1erwe 4zerwei z1erz zer2ze 3z2es. ze2sÃĪ ze3sch zes1e ze2sp ze4spo zes2sa zessen4 zes6s5end zes6sent zes4ser4 zes2sp zes2st ze1sta ze3stau ze1str z2et. 2zeta 2ze2th ze2tr 2zetts zeu4gem zeu2g3r 2z1eul ze1ur 2z1e2x1 4z3f4 zfeue2 2z3g4 zger2a zger4s3 2z1h2 z2hen zhir3 zi3alo zi2ar zich2o zi2dei zie4ler zie2l1i zien3s zi1erh zi1es zi3ess zig4s z2il zil2e 2zimp zim4t3 2z1ind zin2e zin3ei 2z1inf z1inh zi4n3in zin1it 2z1inj zin4na zin4o zin2sa zin4ser 4zinsuf 2zint zi2o3 zirk2 zirk6s z1iso zi2sp zisse4 zi3s2z zi1th zithe2 zi4t1o2 zit2u ziv2 2z1j 4z1k4 2z1l2 zlei3ti zle1s z3ly 2z3m2 zme2e 2z3n2 z3oas 2z1ob 2z1of zo2gl zog4s3 2z1oh zol2la zoller4 zol6lerl zol6lert zonal2 zon3au zon5s4 zon4t3er zo2o 2zope 2z1o2r zo3re 3z2orn zor4ne 2z1osz 2z1ou 2z1o2z 2zÃķ2f 2z1Ãķk z1Ãķl 2zÃķl. 3z2Ãķll 2zÃķls 2zÃķn 4z3p4 2z1q 4z3r2 2z1s4 z3sa zsau2 z3sh z3sk zspor2 4zst2 z3sz 2z1t zta2n zt3ane z2t1au z4tehe ztein1 zt3eins zt2el zte3ma z4t1ent z4t1erz zte3str zt2et zt1he z3them z3t2her zt1hi zt3ho z3thr z3thy z3ti zt3rec zt3ric zt3s2 z3tÞ zu1 zu3a zub4 3zuc zuch2e zucht3r zud4 zudi4 zu2el zu3e2r1 zue2t zu3f4 zug2em zu4gent zug2i zu3gl zu4gla zu4glÃķ zu2go 2z1uhr zu3hu zui2 zu3k zul2 2z1um. zum2a 2z1umb zumen2 2zumf 2zumg zum2i 2zumk 2zuml 2zumr 2z1ums zum2u 2zunab zun2e 2z1unem zunf4 zung4 4zunget 2zungl z1uni 2zu2nio 2zuniv 2zunr 2z1uns 2zunt zuo2 zup2fi zu3pl zu3r2a 2z1urk 2z1url 2z1urn 2z1urs 2z1urt zu3s4 zusch4 zu5t2 zut4r zut4u zut3z zuz2 2zÞ4b 3zÞc zÞr1c 2z1v zw2 z1wac 2zwag 4zwah 4zwap z1war 2zwa2s 2zwÃĪs 2z1wed 2zweg 2zweh z2weig 2zweil zweiter6 2z1wel 2z1wen 2z1wer 2z1wes z2wic zwi4e 3zwing 2zwirt z2wisc 2zwiss z2wit 2z1wo z1wÃķr z1wur 2z1wÞ zy1an. zy2le 2z1z z3z2a zza3b4 z4z3al zz4at z2z1id z2z1in1 zzi1s4 zz2Ãķ zzug4s",
+ ["data"]=".ab1a .abi4 .ab3l .abo2 .ab3ol .ab1or .ack2 .ag4n .ag4r .ag2u .ai2s .akt2a .al2e .al3k .al5l4en .al4tei .alt3s .ampe4 .amt2s .amt4sc .an3d2 .anden6k .and4ri .ang2 .an3gli .angs4 .angst3 .an3s2 .an4si. .an4tag .an3th .an3z2 .apo1 .ap5p6le. .aps2 .ari1e .ark2a .ar4m3ac .ar2sc .ar4t3ei .arter4 .ar6t5erh .as3t .as4ta .at4h .au3d .au4f3 .au4s3 .ausch3 .ax4 .ÃĪm3 .ÃĪr6schl .ÃĪt2s .be3erb .be3r2a .be3r2e .berg3a .ber6gab .ber6g5e6b .ber4gl .ber4g3r .boge2 .bo4s3k .bu4ser .by4t .ch2 .chi3er .dab4 .da2r1 .da4rin .dar2m1 .da4te. .da4tes .de2al .de1i .de4in. .de8ments .de1o2 .de3r4en .de1s .des2e .de3sk .des2t .dien4e .do2mo .do1pe .dorf1 .dÞ1b .dys1 .ebe2r1 .ehe1i .ei4ds .ei3e2 .ei4na .einen6g .ei2sp .ei4st .ei4tr .eke2 .el2a .el2bi .elb3s .em3m2 .en1 .en4d3er .en5der. .en2d3r .end3s .en2gl .enn2 .enns3 .en2t3 .en4tei .en4tr .er8brecht .erb3s .er2bu .er2da .er4dan .er4dar .er4dei .erden6k .er4der .er1e .ere3c .erf4 .er1i .er8stein .erster6 .er8stritt. .er8stritten. .er4zen4 .esel4s .es3p .es3ta .es5t4e .est2h .es3to .es5tr .et2s .eu1 .eu3g4 .eu3t .eve4r .ext4 .fe4i .fer4no .fi3est .fi4le. .fi4len .fi2s .flug1 .for2t .fs4 .fu2sc .ga4t .gd2 .geb2l .gel2d1 .ge5nar .ge3n2e .gene7cke .ge3r2a .ge3r2e .ge3u .gs4 .guss1 .hau2t1 .he2 .he3fe .her3an .he3ri .he6r5inn .hi4n .hin3u .hi2s .ho4met .ia4 .im2a .ima4ge .im5m2 .in1 .in3e .in3gl .ink4 .inn2e .inu1 .ioni1 .ire3 .is2a .ka2b5l .ka2i .kamp2 .ka4t3io .ki4e .kle4i .kopf1 .ks2 .kus2 .le4ar .lich8t7er8s .li2f .li4tu .li4ve. .lo4g3in .lo3ver .lus4tr .ma3d .ma3la .mal4e .ma2st .md2 .mel2a .me3no .men8schl .men8schw .men3t4 .mi4t1 .mm2 .nÃĪs1c .ne4s .ni4e .nob4 .no4th .nus2 .oa3 .ob1a .obe2 .oper4 .or2a .ort2 .orts3e .os5t6alg .oste2 .ost5end .os8ten8de .oste6re .ost3r .ozo4 .Ãķd2 .pa4r1e .par3t4h .pe2c .pes4te .pf4 .ph2 .poka2 .pro1 .ps2 .rabe4 .ra3me .ram3s .reb3s2 .re3cha .rein4t .reli1 .reli3e .res6tr .ri2as .rich5te .ro4a .ro3m2a .rÃķ2s1 .runder6 .rÞ1b .rÞ6cker6 .sali3e .sami3 .sch4 .se3ck .sen3s .ser2u .se2t1 .sha2 .si4te .ski1e .spiege8lei .st6 .sto4re .sucher6 .tage4s .tan4k3l .ta2to .te2e .te2f .te3no .te2s .te4st .th4 .ti2a .tid1 .ti2e .ti4me. .ti4mes .ti2s .ti5ta .to4nin .to4pl .to2w .tri3es .tro2s .ts2 .tu3ri .uf2e2 .ufer1 .um3 .umo2 .un3a2 .un3d .une2 .un3g .uni4t .un3s .uns4t .ur1 .ur2i .urin4s .ur3o2m .uro2p .ur3s2 .ut2a .ut3r .Þbe4 .ve5n2e .vi2e .vo4r .wah4l .wa2s .wei4ta .welter8e .welter8k .wi4e .wor2 .wort5en6 .wor8tend .wor4tu .xe3 .ya4l .za2s .zi2e .zin4st .zwe2 a1ab aa2be aa1c aa2gr 2a1a2n 2a2ar aa2r1a aar3f4 aar3k4 aar5sc aas5t aata2 aa2th aa2t3r aat4s3 2a3au a1ÃĪ a1b 2aba ab4am ab1auf ab1ÃĪ ab2ÃĪu 1abd ab1eb abe1e abei1 ab1eil 4abel abe2la2 a3ber ab1er2k ab1er2r ab1er2z ab3esse 2abet 2abew 1abf 3abfi 1abg 1abh 2abi ab1ins ab1ir ab1it 1abk ab1l 1a2bla 1a2blÃĪ 2able ab4le. ab3li ab4lo 3a2blÃķ a2blu 1abn a2bo. ab2of 1a2bon 2a3bor ab3r a3bra a4brÃĪ 2abrÞ 1abs 2abs. abs2a 2absar ab3s2i ab3s2p abst2 2abst. ab3ste ab3sz 1abtei 2a3bu ab1ur 2abÞ 1abw 2aby aby4t 1abz 2aca 2ac1c a1cem 2ach. ach1a a1chal ach3au 2achb 2a1che a2ch1e2c ach1ei a4cherf a4cherk a4cherÃķ a4ch3erw a1chi ach3l ach3m ach3n a1cho a3cho. ach1o2b ach1or ach3Ãķ ach3r ach3s2i ach3su a4cht acht7ersc ach2t1o ach8traum ach8trÃĪume. ach8trÃĪumen. ach6trit a1chu ach1u2f ach3Þ 2achv 2ach1w a1ci ac1in 2ack. a1ckar a2ckin ack2se ack3sl ack3sta4 a1cl acon4n 2acu a1ç a1d 2ada. a3d2ab ad2ag ada2m ad3ama a2d1an 3a4dap a3d2ar3 4adav 1a2dÃĪ ad1c 1add 2ade. ade2al adefi4 a2dein 2aden ade1r2a a2deri 4ade1s ade3s2p ades4s ade5str 2adf 2adh 4a3di adi3en 5adj 2ado ad2ob 2adp 2adq 2ad3rec ad4res 2ads2 ad3st ad3sz ad2t1 adta2 ad4te ad4tr 2adu 2a1e ae2b ae2c a3e2d a3ei a2ek a3el. a2ela a2ele a2eli a3els ae2o3 a3e2p ae1r 3a2er2o1 ae2s ae4sc aes5t a2et a2ew ae2x af1a a2fak a2fan a3far af4at a2fau 2afe a2f1ec a2fent af1erl a2fex af2fei af2f3l af4flu 2afi 2af3l afo1s a2fÃķ af3ra af3rÃĪ af3re af3rÃķ af3s2a af2sp 2aft af2t1a af2tei af4t3erl af2t1o af2t3r af4t5re af2tur a2f3ur a1g 2aga ag1a2b ag1a2d ag1ar ag1au ag2di ag2du 2age. age1i age4na age4neb a2gent a4gentu ag2er age4ral 2ages age2sa age4sel age4si age2s3p ag3esse age4s3ti ag3gl 3aggr 3a2git 2a2gl ag6la a4glÃķ ag2n a2gna ag4ne. ag4nu a2g3re a2g3ri ag4ro agsa2 ag3s2ah ag4sam ag4set ags3p ag4spo ag3sta ag3ste 2agt ag2th a2gund 2ah. 2a1ha ah4at 2a1he ahe1in a2h1erh ahe1s a1h2i ahin3 ahl3a2 ah4l1ei ah4l3erh ah2lÃķ ahl3sz ah4n1a ahner4e ahnt2 1ahor ah1os a2h3Ãķ ahr1a ah3re ahre4s3 ah3ri ahrta4 ahr6tri ah2ta aht3h ah4t5r aht3s a1hu ah1w a1hy ai3a aian3 aid2s ai1e2 aien3 aif4 ai1fr ai3g4 a3ik. ai3ke aik4r a2il ai2lo aim2o ain2a a1ind ain4e a1ing ain3sp 2ais ai2sa a3isch. ai3s2e ait4 a3iv. a3ivl a3ivs a1j aje2 ajekt4o 2ak. 1a2k4ad 2akal 2a3kam 2akar ak4at 1a2kaz 2akb 2akc 2akd 2a1ke a2kef aken2n a2keu 2a1ki 2ak3l ak4li 4ako 2a1kr 4akra ak3rau 3akro 2aks ak3sh 2akta ak5tan 2aktb 2aktik ak2t3r ak5t4ri 2aktsi 2aktst 2a1ku a2kun 4a3kÞ 1akz a1la 2ala. al1ab al3abs ala3ch2 al1af ala2g al1age a3lal al1am al3ame alami5 al3amp al1ana a2l1ang al1ans al1anz a2lar a3lar. a3lare al2arm al3arr ala4s al1asi al1ass 2alat al1au al3aug a1lÃĪ al1ÃĪm alb3ein al4berh al4b3er4w al2b1l alb3li al2boh al2br alb3ru alb3s al2dÃĪ al2dr alds2t 2ale ale4a 3a2l1e2b 3a4l1ef a4l1eh a2l1ei a4lein a2l1el alen1 al3ends a2leng a3lentf ale2p al1epo al1erf a2l1erh al3erl 3alerm a2l1ert 3alerz a2l1esk ale4t al1eta al1eth a2l1eu a4leur 3a2lex alf4r 3algi al2gli 2ali ali4ene ali4nal al1ins a2linv alk1ar al2kne 1alkoh alk3s2 alks4t al2l1a2b al2l3a4r al2l1au al3lend all5erfa al3les 1allgÃĪ alli5er. alli7ers. al2lob al4m3ast 3almb 2alo a2l1o2b 3a2loe alo2ga al1orc a2l1Ãķ al3Ãķf al2Ãķs 3alpe. 1alph al3skl al5s6terb al3sun al4tak al3tam al3tar alt3eig al4t3er3f al3ti alt1op al4tÃķ al2tri alt3ric al2tro alt2se alt4stÞ a1lu al2uf a2lum al1umb al1ur 4aly alzer4z al2zw 2am. 2am2a amab4 amad2 ama3g 2amÃĪ 2am4e 4ame. a2meb ame2n1 amer2a am5erf a2meri ame3ru a4mesh a3met a2mew 2amf 2amir ami3ta ami3ti 2amk 2aml 4amm. 2ammal am2mar am2mei am2min 2amml 2ammt ammu2 amni1 a2mÃķ amp2fa2 am3pr 2am2s am3sa am4schl am3str 1amt. am2t1a am2t1ÃĪ am4tel 2amtem am4t3ern am4tÃķ am2t3r am4tre am2tu 2amu 2ana. 2anab ana3c anadi3 a3nak an1alg ana4lin 2anam 2anan 2ana1s4 an1ath an4atm an1ÃĪs 1anb 2anbu an3ch 2and. 3an3d2ac an4d3ei ande2s an2dex an4drau an2d3rÞ and4sas and6spas and3ste and2su 2andu and1ur 2ane an3e2c a3nee an2ei. an3eif an1e4k 3a4n1erb an1eth 1anf 2anfi an3f2u 4ang. an2g1ar 3angeb an2g1ei an4g3erf an4g3erl an4gerw an4g3erz 2angf 2angh 2angie ang1l an2gla 2ango ang1r an4g3ra 4angs. ang4s3po 1anh 2a3ni an2i3d ani3els ani5ers. 3a4nim a4nins 2anj 2ank. an2k1an 3ankÃĪ an2kei an3kl an4klÃķ an2klu an2k3no ank1r ank3ra ank3rÃĪ ankt4 1anl 1anmu 2ann 3an3na ann2ab 3annÃĪ an3n2e ann4sto an1od a3nol a2n1or a3nos 2a1nÃķ 2anpr 1anr 1an3s2ÃĪ 1ansc ans2en an2seu 2ansk an3skr an3s1pa 1anspr an3s2z 2ant. an2t3a4r 1antÃĄ 1antei 3antenn an3t4he 1anthr an3ti 2anto 1antr ant3rin an2tro 1antw 2a1nu anu1s a1nÞ 1anw 2anwet 2anzb 1anzei anze2n 2anzg an2z1i4n 2anzs 1anzÞ 2anzw an2zwa an2zwi 2ao ao1i a1op a1or a1os3 ao3t2 a3ot. a1Ãķ a1p 2ap. 2apa 2ape a2pef a3pel a2pÃĐ a2pf a3p2fa a3pfl a3phÃĪ a2ph3t 2ap3l ap2n a2pot ap2pf 3appl ap3pu 2apr 3apri 2a3pu 2aq 2ar. a1ra a3ra. ar2ab ar3abt ara3d2 a2r3al a3rali 2aran a2r1ang a2r1ans a2r1anz a2r3app 2a2rar a2r1au a1rÃĪ 1arb 2arb. 4arba ar2bau ar2bec 2arbek 2arben 4arbi ar2bl 2arbr ar2bre 2arbs2 2arbt 2arbu ar2b3un 1ar1c ar2dro 2are a2rea ar1eff a4reg ar1ehr a2rein a4rek 4arem a3ren 4aren. are3r2a ar2erf a2r1erh a2reri are3u ar2ew 2arf ar2fÃĪ arf1r ar2f3ra ar2gl ar2gn ar3g4r 2arh 2ari ar2ia ari3e4n ari3erd ari3erg ar1im arin3it arin5s4 ar1int a3riu ar2kal ark3amt ar2k1ar ark3aue ar2k3l ar4klag ar2kor ar4k3ri ark3sa ark3she ark4tre ar2les 2arma ar3m2ÃĪ ar3m2or ar2nan arn2e 2a1ro ar1ob a2r1o2d a2r1of a2r1op a2ror 2arp 2arr ar2r3ad ar3re arre4n ar2rh arr3he 2arsa ar4schl arse3 ar3s2h 2arsi ar2st ar3sta ar3t2e ar2the ar3ti artin2 2arto ar4t3ram art3re 2arts 2artuc 2aru ar1uh ar1um a2rÞ 2arv arwa2 2ary ar2zÃĪ 2arze 1arzt ar2z1w as1ala as3au a2s1ÃĪ a2sca a4schec a3schi asch1l a2schm a3schu 4as2e a2seb a2s3e2m a3s4es 2asg 4ash a3s2hi asin2g 4asis aska3s a3skop a2s1o2f as1or a2sÃķ a2s1p aspek6to as2ph as2pi as2po a3spu as3s2a as3s2e as4s3ei as3s2i as2s1p as2st ass3ti as3str as3stu 2as3ta a1s4tas as4tau as3te as2th as3ti as3to as4tof 2astr as4trau ast3rÃĪu as6t3re asu2s a2sÞ aswa2s 3a2syl a1ß aße2 aßen3 2a1t ata1 at1ab at2af at4ag a2t1akt ata3l a3tam at1apf at1au a2taus a2tÃĪ at1ÃĪn at2c a2teb a3te1c ateien4 at1eig a2teli at2en a2tep ater3s2 ate2ru at2h at3ha athe1 3athl a4thr 4a3ti atil4s ati2st 3atm 4atmus ato4man 4ator a2t1ort at1Ãķ 4atr atra4t at3rÃĪ at3re at3rom at3rÞ at2sa at4schn at2se at4set at2si at2so at2s1p at3ta 3attac at4tak att3ang at4tau at2tÃĪ at2tei at3t4hÃĪ at2t3rÃĪ att3s a3tub atu2n a3tÞ atz1er at4zerk at4zerw at2z1in at2zo atz3t2 at2z1w a2u 2au. 2au1a2 2aub au2bab aube4n au2bli au2blo 4auc auch3ta au2dr 2aue aue2b au5erein auer3Ãķ aue2s au2fa auf1an 2aufe. 2aufeh auf1er au4ferk auff4 3aufn auft2 2auft. 2aug 4augeh 4au1i au2is 2auj aule2s au3lÞ 4aum au2mal aum2ei au2m1e4r1 aum3eri au2m1o aum3p2 aum3s6 4aun au3n2a aun2e au4nei au2nio au1nu a4unz au1o 2aup2 aup4ter 2au3r2 au2s1ah ausan8ne. au2sau 4ausc au4schm 1ausd 2ausen aus3erp au4s3erw 3ausf 1ausg 1ausl au2so au2spr 1ausr 3aussag auss2e aus4se. auss2t 2auste aust2o aus5tri 1ausÞ 1ausz 2aut. au2t1ÃĪu 2aute au4ten4g au4t3erh 1auto au4trÃķ 2auts 2auu 2auw 2aux 2auz auz2w 2a1Þ 2a1v a3v4a ava3t4 a2vr 2a1w awi3e a1x ax4am ax2e 2a1ya a1yeu ays4 aysi1 ay3t 2a1z a3z2a aza3d az2i az2o az2u ÃĪ1a ÃĪand4 ÃĪ1b ÃĪ2b3l ÃĪb2s ÃĪ1che ÃĪche1e ÃĪ1chi ÃĪch3l ÃĪ2chr ÃĪch2sp ÃĪch4st ÃĪ1chu ÃĪ1ck ÃĪ3ck2e ÃĪ1d ÃĪ2da ÃĪ2d1ia ÃĪ2dr ÃĪd2s 2ÃĪ1e ÃĪf2e ÃĪfe4n ÃĪf2f3l ÃĪf3l ÃĪf3r ÃĪf4ro ÃĪf2s ÃĪft4s3 ÃĪ1g ÃĪge1i ÃĪge2ra ÃĪge3s ÃĪ2g3l ÃĪg2n ÃĪ2g3r ÃĪg4ra ÃĪg3str 1ÃĪ2gy ÃĪh1a 2ÃĪ3he ÃĪ3hi ÃĪhl1a ÃĪh3l2e ÃĪh4l3e4be 2ÃĪhm ÃĪh3na ÃĪh3ne 1ÃĪhnl 2ÃĪhr ÃĪh3ri 2ÃĪhs 2ÃĪh3t ÃĪ1hu ÃĪh1w 2ÃĪi ÃĪ1im ÃĪ1is. ÃĪ3isch. ÃĪ1isk ÃĪ1j ÃĪ1k ÃĪ2k3l ÃĪ2k3r ÃĪ1la ÃĪlbe2 ÃĪl2bl 2ÃĪle ÃĪl2l1a ÃĪl2p3 ÃĪl4schl ÃĪl2st ÃĪ1lu ÃĪmi3en 2ÃĪml ÃĪmoni3e 2ÃĪmp ÃĪm2s ÃĪmt2e 2ÃĪn. ÃĪn5de ÃĪn2dr 2ÃĪne ÃĪne2n1 ÃĪne1s ÃĪn2f5 ÃĪnft2 2ÃĪnge 2ÃĪn2g3l ÃĪn2gr ÃĪng3se 2ÃĪ3ni ÃĪnk2e ÃĪn2k3l ÃĪn2kr ÃĪnk2s ÃĪnn4e2 ÃĪno3 2ÃĪns ÃĪn2s1c ÃĪns2e ÃĪnse3h 2ÃĪnz ÃĪ1on ÃĪ1pa ÃĪp2pl ÃĪp2pr ÃĪp2s1c ÃĪp4st 1ÃĪq ÃĪ2r3a2 ÃĪr4af ÃĪr1ÃĪ ÃĪr2b3le ÃĪr1c 4ÃĪre ÃĪ2r1ei ÃĪre2n ÃĪ2r1ene ÃĪr2gr ÃĪr1int ÃĪr2k3l ÃĪrk2s ÃĪr4ment ÃĪrm2s ÃĪr1o2 ÃĪ1rÃķ ÃĪrse2 ÃĪr4si ÃĪr2st ÃĪrt4e ÃĪr2th ÃĪrt2s3 ÃĪ2rÞ ÃĪr2zw ÃĪ5s4e ÃĪse3g2 ÃĪser4ei ÃĪse4ren ÃĪser2i ÃĪse3t ÃĪskop2 ÃĪskopf3 ÃĪ3s2kr ÃĪ2s1p ÃĪs6s1c ÃĪss2e ÃĪs4s3erk ÃĪs2s3t ÃĪ4s3t2 ÃĪs4tr ÃĪ3su ÃĪ1ß ÃĪß1erk ÃĪ2t1a2 ÃĪ3te ÃĪte1i ÃĪtein2 ÃĪte2n ÃĪt2h ÃĪt1ob ÃĪ2t3r ÃĪt2sa ÃĪt2sÃĪ ÃĪt4schl ÃĪt4schr ÃĪt2s1i ÃĪts3l ÃĪt2s1p ÃĪt2s3t ÃĪt2tei ÃĪt4tr ÃĪt2zw ÃĪu2b3l ÃĪu2br ÃĪu1c ÃĪude3 ÃĪu3el ÃĪ2uf ÃĪuf2e 1ÃĪug ÃĪug3l 4ÃĪul 2ÃĪum ÃĪu2ma ÃĪum4s5 2ÃĪ2un ÃĪun2e ÃĪu1nu 2ÃĪu3r 2ÃĪ3us. ÃĪu4schm ÃĪu3se ÃĪ3usg ÃĪ3usk ÃĪ3usn ÃĪu2sp ÃĪus2s1c 1ÃĪuß ÃĪu2tr 4ÃĪ1v 1ÃĪx ÃĪ1z ÃĒ1t ÃĄ1n ba2bl 2babs bach5t4e backs4 b1a2dr 2b1af 3bah bah2nu bahr2e bais2 ba2ka ba2k1er ba2k1i bak1l bak1r ba2kra 3bal bal2a bal4l3eh bal6lerg 2b3am ba2me ban2a 3b2and ban2dr ba3n2e b1ang ban3gl ban2k1a ban4kl ban2kr 2banl 2b1ans ban3t b1anz bar3b bar3de ba2rei bar2en bar3ins bar3n bar3zw 3bas ba3s2a ba2sc ba2st ba4t3ent bauer4l bauer4s bau3g bau1s bau3s2k bau3sp baus4t ba1yo 3b2ÃĪ1c b2ÃĪr b2ÃĪs 4b1b b3be bben3 bbens2 bbe4p bb3ler bb2lÃķ b3bru bbru2c bb2s bbu1 2b1c 2b3d4 bde1s 1be. 3bea be3an be3ar 3beb b2ebe 1be1c be2del bedi4 be1eh be1erl be1eta 3bef4 be3g2 2b1eier bei1f4 bei4ge. beik4 beil2 bei3la 2b1eime b2ein be1ind be1in2h bei3sc beis2e bei1s4t beit2s 3bek 3bel be3las bel3d be3lec be3lei be2l1en be2let be3li bel3la be2l3Ãķ bel3sz bel3t4 1bem 1ben. ben3ar be4nas be4nÃĪ ben3dor be3nei 3beng be3n2i ben3n ben2se ben4spa ben4spr benst4 ben2su 2bentb b2enti ben5t4r b1ents 2bentw ben3un ben3z2 be1o be1ra be2rab be2ran berb2 berd4 ber4ei. be4r3eiw be4rerk bere4s ber6gan. ber4hab ber4in. ber3iss ber3na b1ernt be1rop ber3st4a be3rum ber2zÃķ 3be1s bes2a be2s1er be3slo bes2po bess4e b3esst. bes3sz beste2 be6stein be4s3tol best4r be3s4ze 3bet be2tap be3tha be1ur 3b2ew 2b1ex 1bez 4b5f4 bfal2 2b1g2 bge3 bges4 2b1h2 bhut2 1bi bi3ak bib2 bibe2 bien3s bie2s 3bietu bik2a bi2ke. bi2kes 3bil bil2a bi2lau 4b1illu bi2lu 2b1inb bin2e 2b1inf bin3gl 2b1inh 2b1int bi2o1 bio3d bi3on biri1 bi3se b1iso bi2sol bi2sp bis2s1c bi2s5t b2it. b2it2a b2ite bi3ti bi2tu b2i3tus biz2 4b1j bjek4to 2b1k4 bl2 2bl. bla3b4 b3lad b5lag b2lanc 3blat b2latt 2b3law b2lÃĪse b2le 3blea b3leb 3blec 2b3leg 2bleh 2b3leid 4b3lein blei7sc 3blem 3ble4n b3lese ble3sz b4let b3leu 2blich 3blick b2lie 2blig bling4 b4lis b2lit 3blitz b2lo b4loc b3los 2blun 3blut 3blÞ 2b1m 4b3n2 bni2 bnis1 bo4a bo5as b1ob3 bo2bl bo2br bo2c bo3ch2 bo3d2 boe1 bo2ei 2b1of bo3fe bo1is bo2l1an 3bon. bond1 bon2de bo2ne 3bons b1op bo1r2a bo4rÃĪ bor2d3r bo2rei bo4rig bor2s b1ort bor2t3r bo2sc bo4s3p bote3n4e bo3th bot2st bÃķ2b3 2bÃķf b1Ãķl 2b1p2 bpa2g 2b1q b2r4 2br. b4ra. 2b3rad b4rah b4ra3k bra1st4 3brÃĪ brÃĪ4u 2bre. 3brea 6b5rechte 2b3ref 2breg b3reif 3brem 2b3rep b4rer 2b3riem bri2er b4rio b3roh 2b3rol b4ron b4ruc bru4s brust1 bru2th 3brÞ 4b1s b2s1ad bs3ar bsat2 b3sÃĪ b4sÃĪr bs2ÃĪu b5sc bs2ca bsch2 b6schan b6schef bs4cu b3se. bse2b b3sel. bse2n1 b4s1erf bs3e4r3in bs1erk b4s1ers b3s2es bsi4t bs2ku b4sl b2s1of bso2r b2sÃķ b3s2pi bs2pl b3s2pu bss2 bs2t bst1a2b bst3ac bst1ak bs3tÃĪt bst1er b2stip b3sto b4s4tob b4stod b3stÃķ b4strac b2s3trÃĪ bs3treu bs4tri bst3ro b3stÞ b4stÞb b2s1un 4b3t btast3r b5te b4th btil4 bt4r b4ts2 btÞ1 bu2chi bu2e3 bu2f bug3 bul2la 2b3umk bunde4s bung4 b3ungn b2urg bu3r4i 4burn bu2sa bu4s3cha bu4schl bu4sch3m bu4schw bus1er bu2sin bu2s1p bu2s1u bu3tan bÞ1c bÞgel3e 2b1v 2b1w by1 by3p bys2 2b1z2 bzeit1 1ca 2c1ab ca2ch ca2e3 ca3g4 ca1h cal3t 3cam c4an ca2pe 3car car3n carri1 ca3s2a3 cas3t ca3t4h ca1y2 cÃĪ3 cÃĪs2 2cc c1ce c1ch2 c2d2 c3do 2cec ceco4 1ced ce2dr 2cef ce1i 2cek 1cen 1cer cere3 ce3s2h 1cet 2ceta2 ce1u 1cÃĐ 2c1f c4h 4ch. 2chab ch3a2bi cha2ck 2chaf 2ch1ak ch2anb 3chanc ch1ang ch3anst 4chanz 1chao 4char. 1chara 3charta cha2sc 3chato 4chatu ch1ÃĪrm ch1ÃĪs 1chÃĒ 2chb 2chc 2chd ch3e4ben 1chef 3chef. che4fer 3chefi 3chefs 2chei ch1eim 4chelem che4ler 4chents 4chentw cher3a che3rei 6chergeb cher6zie ch3ess 2cheta 2ch3e4x 1chÃĐ 2chf 2chg 2chh 1ch1ia 2chic chi3na 4chind 3chines 2chinf 2chinh ch1ins ch1int 2ch1inv 1chiru 2chj 2chk 2chl2 ch2le ch2lu 4ch2m 4chn4 chner8ei. 2chob cho2f ch1off ch1oh chol2a ch1orc 2chp ch2r4 4chre chre3s ch3rh 1chron 4chs chst3ri 2cht 2chuf 2chuh 2chum 2ch1unf 2chunt 4chÞ 2chv 4chw 1chy 2chz ci1c ci1es ci2s c1j c4k 4ck. ck1a 1cka. 2ckac 2ckal 2ck3an cka4r1 ck1ÃĪ 2ckb 2ckc 2ckd 1cke 4ckeff 2ckeh ck1ehe 4ck1ei 4ckense 4ckentf 4ckentw cke2ra ck2ere 6ckergeb ck1erh 4ckerhÃķ 4ckerke ck2ern 2ckero 2ck1er2r 2ckerz 2ck1ese 2ckex 2ckf 2ckg 2ckh 1cki 2ck1id ck1im ck1in 3ckis 2ckk 2ck3l 2ckm 2ck3n ck1o2 2ckp 2ck3r 4cks ck4stro 2ckt ckt2e ck3t2i 1cku 2ck1um3 2ckunt 2ck1up 2ckv 2ckw 1cky 2ckz c4l2 cle4a clet4 clo1 clo2ck 1clu c2m2 3co co2c co3ch co2d2 co3di coff4 coi2 co1it co2ke co2le col2o com4te. comtes4 con2ne co2pe co1ra cor3d co3re cos3t co4te cÃī4 2cp 2c1q 1c4r2 cre2 cre4mes cry2 2cs cs2a c2si c1s4tr 4c1t cte3e c3ti2 cti4o ctur6 3cu cu2p3 cussi4 1cy 2c1z 3da. da1a 2d1ab d2abÃĪ da2ben 3d2abl da2bre dab4rÞ 2d1ac d2ac. dach3a da2cho dach1s 4d3achse d1af d1ag dagi2 dah3l da1ho 3d2ai da1in da1is dal2a 2d1alar dal3b2 da3lÃķ d1alt d1amma 2d1ammÃĪ damo3 d4amp dampf8erf 2d1amt d2an. 2d1ana dan4ce. 2d1an3d2 d3anei d1ang 2dange 3dank dan4kl dan5kla dan2k1o dan2kr 2d1ans 4dantw 2danw d2anz. 4danzi 2d1ap d2aph 4dapp da2r3a 2darb2 dark4 3d2arl dar2ma dar2m1i da2ro d3arr 3d2ar3s d1art 2dart. da2ru d2arw d1arz da1s dasch2 da3s2h das4t 3dat dat2a da3t2e2 date4n 4d3atl 4d1atm 3dau3e 4d1au2f d3aug 4d1aus3 2d1ax 2d1ÃĪh 2d1ÃĪmt 2d1ÃĪnd 2d1ÃĪng 2d1ÃĪp 2d1ÃĪrz 2d1ÃĪ2u dÃĪ3us 2d1b4 dbu2c 2dc d1ch dco4r 2d1d2 ddar2 d3dÃĪ d3dh d5do 1de de2ad de3a2t 3deb4 4d1e2ben 3de1c de4ca. de2cka de3e4 2d1eff deg2 de3gl dehe2 de3ho 2d1ehr d1ei 3d2eic 3d2e1im dein2d dein2s de3inse de2l1a4g de4l3aug del1ÃĪn del1ec delei4g 2delek 2delem deler4 2delfm delle2 del4l3eb del4lei de2l1ob de2lop de3lor de2lÃķ del2s5e del2so del2s1p del5ster del3t4 dem2ar dement4 de6mentg 2d1emp d2en. dend2 de4n3end 4denerg 4d3en4ge. d2enh de2ni den4k3li den2kn 4den4sem den4sen den6s5tau den3th 2dentw de1nu 2deol de1on depi2 d4er. de1rad de2rap der2bl 2derdb de2re2b de4reck de4r3ei4s derer3 de3r4erb de3r4erf de4r3ero derer4t derer6ze d4erfi d2erh 4der4hÃķh d4erhÞ 3derie derin4f 4derklÃĪ derm2 4derneu de1ro de2rop 4der4sat der4spa der3tau der6t5en6d dert4ra 6der6trag de3ru de4ruh de4rum des1 d2es. de2sa desa4g de4sam des2ÃĪc de2seb de4seh de2sei des3elt de2sen1 de4set de2sin de2sor de2sp de3spe des3s2 dest5alt de2sto dest5rat de4stre des4tum de2su det2 deten4t 2d1etw de1un de1url de3us devil4 d1exi de2xis 2dexp 2d1f4 2d1g2 dga2 d2ge. dge4t1e 2d1h2 dha1s4 d2his 1di di4ab di2ad di4am di4ath 3dic di1ce dich1 di2e di3e2d die4neb di3eni di3ens. di3ern die2s3c diet3 die2th dige4s dik2a dil2s5 2d1imb 2d1imp din2a 2d1ind 2d1inf 2d1inh 2d1in1it 4d3inner 2d1ins 2d1int di2ob dion3s di1p di4re. di2ren di2ris 2d1irl di2s1a2 di2sp di3s4per 2d1isr dist2 di2ste di4stra di2ta di4teng di4t3erl di4t3erm di4t3ers di2th di4t3r dit3s di2tu di5v di3z2 2d1j 2d1k4 4d1l2 d3la d3le dle2ra dli2f dl3m dl3s 2d3m2 4d5n2 dni2 dnis1 d1ob d2oba 2dobe dob4l d2obr 2d1o2f dole4 doll2a do2mar do5na donau1 doni1e do2o 2dope 2d1opf d2opp d2o3r4a 2dorc 2d1ord dor2f1a dor2fÃĪ dor2fl dor2fr 2d1org dori1 2dort dor2ta dor4ter d2os. dos3s dost1 dot6h do2t1o do3un d1Ãķ dÃķ2d dÃķ2l1 d2Ãķn 3d2Ãķr dÃķ2s1c 2d3p2 2d1q d2r4 3d4ra. 2d3rad drag4 2drahm d3rai 3d4ram d3rand 2d3rast d3raub 2d3rauc 2draup 2drÃĪd d4rÃĪh 2d3rÃĪt 2d3rÃĪu 4d5re. d4rea. d4reas 3d4reck 2dref 2dreg 3d4reh 2d3reic d4reiv 4drem 4d3ren 2d3rep 4d3rer 4dres. d4resc 2d3rh d3ri d4ri. 3d4ria 2d5ric d4rid d4rif d4rik d4rin. d4risc 3d4rit 4dritu d3rob d3roc 2d3rod d4roi 2d3rose 2d3rost 2d3rot d3rou 2d3rov d3rÃķ drÃķ2s1 d5rub 3d4ruc 2d3rud 2d3ruh 2d3rui 4drund drunge3 2d5rut drÞ1b drÞ5cke 2d1s 4ds. d4s1amt d2san ds3assi d2sau2 ds1ÃĪn 4dsb d4schef d4schin d2s1e2b d2s1ef ds1ehr d3sei ds2eig d4seins d2s1eng d2s1ent d2s1erf d2serh d2s1erk ds1err d2s1erz dse4t d4s1eta d3s2ha d3sho d2sid d2s1im d3s2inf d3s2kan d3skul 4dsl d2s1op dso2r ds1ori d2sÃķ d2s1par ds1pas d2spÃĪ ds2po d3spri d2spro ds2pu dss4 dst4 d4stabe d4stag ds3tauf d4s3tÃĪti d2ste d4stea d3stei d3stell d4stem d3s4tern ds2ti ds4til ds4tip ds2tu ds1ums d2sun ds2zen 2d1t dta2d d5tea d2th d4thei dt3ho dto2 d3tÃķ dt3r dtran2 dt5s2 d3tÞ 1du du1alv du1ar dub3l du2bli du2f 2d1ufe 2d1uh du1i 2d1umb 2dumd 2d1u2m1e 2dumf 2dumg 2d3umk 2duml d2ump 2dumr d1ums d2ums. 2d1umv 2d1un3d dund2a 2d1unf dung4 2d1ungl dun3ke dun2kl 2dunr dun2s dunst3r 2dunt 2dunw du1o dur2 dur3au 5durc 2d1url 2dursa du4schn du4schr du4schw dus3t 2dÞb 2d1v2 4d1w dwa2 dwest1 dy2s 2d3z2 2e1a e3a2b eab3l ea2c ea3der eadli4 ea2dr ea2g4 ea3ga ea4ge ea3gl eakt2 e3akto ea2la e3alei ealer2 e4aler. ealer4t e2alti2 eam3 eam1o ea2na e2ano e3ar. ea2ra e4are. ea4rene e4arer e4ares ea2sc eas3s eat4e2 eater1 e3ath ea5tr eat3s2 e3at5t4 e3au2f e3aug eau1st e3ÃĪ2 e1b 2eba e3b2ak 2ebed ebe2i 2ebel eb2en ebens3e ebe4rel ebert4 2ebet 2ebl eb3ler eb4leu e3blie eb3lo eb2lÃķ 2eb2o ebot2 ebÃķ2s 2ebr eb3rei eb4ru eb2s1 eb6sche ebse2 ebs3pa eb3sta eb4stÃĪt ebs3tem ebs3t2h eb3str 2e3bu ebu2t1 2e3ca e1ce ech1ÃĪ 2e1che ech1ei e6ch5erzi ech3l ech3m ech3n e2cho. ech1o2b e2ch3r ech3t4ei e1chu ech1uh ech1w e1ci eci6a e1cka eck3se eck4sta 2eckt 2e1cl 2eco eco3d e3cr ec1s 2ect e1d e3d2a ed2dr ed2e ede2al ede3n2e edens1 eden4se eden4sp ede2r eder3t2 edi4al 2edip e3d2o ed2Ãķ eds2ÃĪ ed4seh ed2s1es ed2s1o ed2s1p ed2s3tr ed2su edu2s e3dy3 4ee ee3a2 eeb2l ee2ce ee1ch ee2cho ee2ck eede3 eed3s2 ee1e e1eff eef4l eeg2 e1ei ee1im eein4se eel2e ee2lek ee5len e1emp e1en eena2 ee4nag e2enÃĪ e2enc e2eno een3s e1e2pi ee2r3as e1erbt e1erd ee3r2e ee4r3en4g eere2s ee1ro ee1rÃķ eer2Ãķs eert2 e1ertr ee3r2u e1erz ee3s2 ees3k ee3ta ee4tat ee1u eeu2f eewa4r e1e2x e1f 2ef. 2efa e2f1a2d ef1ana ef1ar e2fat e2fÃĪu 2efe e3fe. e2f1e2b efell4 ef1em e2fent ef2er efeuil4 2eff. 3effek 1effi ef2fl 2efi ef1id e2f1ins efi2s 1efku 2efl e3f4lu 2e3f2o e3fra ef3rea ef3rol ef3rom ef4rÞ efs2 ef3so ef3sp ef2tan ef2tei 2efu e2fum 2efÞ e1g egas3 eg1d4 e3ge ege4ler ege4n3a4 ege4nec ege2ra ege4str ege1u e2glo e2glu e2gn eg3nÃĪ eg3ni eg4sal eg4san eg4se4r1 eg4sto eg2th egung4 egus3 2e1ha eh1ach eh2al e2hap eh2aus 2e1hÃĪ e1he eh4ec eh1eff eh2el ehe5na ehen6t3 1e2hep e3her ehe1ra ehe3str e1hi eh1int eh1lam eh1lÃĪ ehl3ein eh4lent eh5l2er eh2lin eh3lo ehl2se ehls2t 2ehm eh3mu e1ho e3hol ehr1a2 ehr1ÃĪ ehr1e2c eh2rei ehr4erf ehr6erle ehre3s eh3ri eh1ro2 ehr1ob ehr1of ehs2 eh3sh eh3sp eh1ste 2eht e1hu e2hunt e1hÞ eh3Þb eh1w e1hy 2ei3a2 ei2bar ei2bl eibu4t ei4b3ute ei2cho eich5te e2id ei2d1a ei3de eid4ein ei4d3er4r 2eidn ei3dra eid3sc ei1e ei3el 4ei3en3 eienge4 eif2e 1eifr ei3g2a 4eigeno eig2er 2eiges 2eigew ei3gl 1ei2g3n 2eigru 2eigt 2eigu eik2ar ei3kau eik4la e4il 2eil. ei2lar ei2lau 2eilb eil3d ei4lein eilen1 eil3f4 eil3ins 2eiln 1eilzu ei2m1a4g eim3all ei2mor e1imp eim2pl e4i2n1a ein3a2d ei4nas ei4nÃĪ ein3dr 2eindu ei4neng ei2neu 2einfo ein4fo. ein4fos ein3g2 ein4hab e1init eink4 ein6karn 3einkÃĪ 3einkom einn2 1einna ei2n1o2 e4insa 3einsat e3insta ein6stal ein4sz 1einu e4inver ei3o2 ei1p eip2f 2eir ei3re e1irr e2is. ei2sa4 ei4s3erw eis2pe eis4tel eis4th ei1sto ei2sum e4it ei2tab ei2tan ei2tar 2eitÃĪ ei3te ei2th ei2tor ei2tro eitt4 eit3um 2eiu 2e1j e1k ek2a 1ekd e3ke. e3ken e3kes e3key e3k2l ek3lip ek4n ek2o 2ek4r 2ekt ekt4ant ekt3erf ekt3erg ek4t3er4z ekt2o ek5tri ek2u e3k2w e1la ela4ben el3abi el2abt ela2c el3ader el1af ela2h e2l1ak el3al e2l3a2m el4ami el4amp e6landa e2lanm el1ans el1anz 2elao e2l1ap e2l1a2r el3ari ela4s el1asi el1asp el2ast 2e1lÃĪ 3elbis el2da eld3erh elder4p eld5erst el3des eld3s2 e3lea2 ele2c 2elei e6l5ei6er. e6l5ei6ern el1ein e4leinf e4leing e4leinh 1elek e2l1el 1e2lem e3lem. el1emp 2e3len. e4lense e4l1ent e3lep e2l1erd el1erf e4ler4fa e2l1erg el1erk el1erl e4ler4la e4l3ernÃĪ e4ler2Ãķ e2l1err eles2 el1ess e4l1e4ta e3leu 2elev ele2x 1elf. el3fe elf4l 1elfm 1elft elg2a elgi5er. elgi5ers elg4r e2l1id e3lie e2lim el1ita 2elk elk3s2c el3lan el3le el5le. ell3ein ell3eis el2lim el3lin ell3sp 2eln el5na 2elo e2lof e2lol elon2 e2l1or elo2ri elÃķ2s el2sum el5ten. elter4b 3eltern elter4s elto2 elt3r elt3s2k elts2p 2e1lu el1ur el3use e1lÞ e2lya 2elz el2zar elz2e el2zwa e1m 2ema em1ad ema2k e2m3anf e2m1ans 3emanz e3mÃĪs em4d3a2 e3m2en emen6gel emen4t3h e2m1erw eme2s 1e2meti e2m1im emi5na em1int emi3ti 2emm emma3u em2m1ei e2mop 1empf4 em3pfl em2sa em2spr em2st em3t2 1emul 2emÞ e2n1a 4ena. 2en2a2c en3ack e3nad e4naf 4enah e4n3a2k ena3l2i enal3p 4enam en4ame e4nand en3ang e4nanz en3are ena4sc 4enat en3att e3naue en1ÃĪ e2nÃĪr en4ce. en3d2ac en2dal en4d3ess end4ort end3rom end3s2p end3sz end2um 2ene. ene4ben en1e2c e2neff en2eid e3neien e4nein e2n1el ene4le 2enem 2enen e4n1ent en4entr 4e3ner. e2n1erd e2nerf 1e2nerg e4nerh e4nerk e2n1erl e4n3ermo 4enern e2n1err e2n1ers e2n1ert e2n3eru e2n1erw e4nerz 2enes e4n3ess en3f enf2a enf2u 1engad 3engag enge3ra en3g2i en3glo en3gn 1engp eng3se 2eni e3ni. e3nic e2nid e3nie eni3er. eni5ers. e2n1i4m e2n1in e3nio eni2Ãķ e3nit en3k2Þ e2n1o2b enob4le e2nof en1oh e3nol eno2ma en1on e2n1op e2n1o2r enost3 e3not eno2w 2e1nÃķ en1Ãķ2d en3sac en2sau en5sche en2seb 3ensem ensen1 en2sep en4seta en3ska en3sp ens2po enst5alt en4s3tÃĪt ens2th 2ensto e4nt ent4ag ent4ark 1entd en2teb en4terb 1entf 2entfo 1entga 3entgeg en2thi 3entla 1entn en4t3rol 3entspr 1entw 4entwet 1entz en1u 2enut e1nÞ enÞ1st 4enwÞ e1ny enz1ec en4z3erf en4z3erg en4z3erk e1Ãą 2eo e1o2b1 e1of eo2fe e1oh eo3m e1on. e1ond e1onf e1onh e1onl e1onr e1ons e1ope e1opf eop4t e1or e3or. e3orb e3ors e3orw eo1s2 e3os. eota2 eo3ul e1ov e1Ãķ2 e1p epa2g e3p2f4 e2pis 1episo 2epl ep3le 1e2poc ep2pa ep2pf ep4pl ep2pr ept2a ep2tal 2e3pu epu2s e1q er1a e3ra. era2be e3rad. er3adm eraf4a era2g e1rai er3aic e2rak e1ral er3all eran3d e3rane er3anf e2ranh er3anm e1rap er3apf e2rar e3rari e1ras e2r3a4si er4ast era2ß e2rath e3rati e2ratm e1raub er3aue erau2f er3aug e1raw e1raz e1rÃĪ er1ÃĪh er1ÃĪm e2r1ÃĪs erb2e erb4sp er1c er3chl erda3me 1erdb er3de 2erdec erde3in er4d3en4g erd3erw erd3s 4ere. er1eb e3rech er3echs er1e2ck er1edi ere4dit er1eff er1e2h 4e3rei. er1eig e2rein e4r3eis. ere2l er1ele ere3lev 2e3rem e2remp 2eren 4e3ren. e3rena e4rense e4rentf e4rentn e3renz eren8z7en8d er1ep 2erer 4erer. e2r3erf e2r1erh 4erern e3rero er1err er1ers e2rert er1erw 2eres er1ess e4r3e4ti er1eul ere4vid erf2e er3f4r 4erfÞr 3ergebn 4ergehÃĪ erg3el4s3 1ergol 4ergrem erg3s ergs4t e2rh 1erhab 4erhals er3he 4erhÃķhe er3hu 2erhÞ 2eri e2riat e3rib 4e3ric er1i2de 4e3rie eri3e4n3 e3ri3k4 4e3rin. er1inb e2r1ini er1ink er1ins er1int e3rio er1ita 2erk. 1erklÃĪ er3ko 2erkre erk3t 2erlag 3erlebn 4erln erm2e ermen4s erm3ers er4nerk ern1os e1ro. er3oa er1o2b e2r1o2f e1rog e1r1oh e1rok e1rol e1rom e3ron er3ony er1o2p e4ro2r e1ros e1rou e1row er1ox e1roz erÃķ2d 2erÃķk er1Ãķs er3p4 er3rÃĪ 2errÞ ersch2 er5schn er3se ers2i er3sk er3smo er3sn er3sp er5stel er3sz ert2ak er6terei er4t3erf er4ter4h er4ters er2t3ho 4er3ti ert3ins erts2e 2ertÞr 2eru eruf4s er1u2m er1und erung4 er1uns er3uz erÞ4b 3erweck es3ab e3sac e2s1a2d es3ak es4ank es3anz e3s2as e4s3ato es3av 2esb esbi5er. es2c es3cap e3sce esch2 e3scha e2s3ein es2el es3eva 2esf 4esh es2har es2id e2sil es1ini es3int es2ir es2is es2kat e4ske es3kl es3ku e4sky es3l es4log 2esm eso2r es2ort es2Ãķ 2esp es2pek e3spi e3s2por e3s4pra 2esr essali3 es2sau es3sc es3se 4essem ess4e3re ess3erg 2esso es2sof es2s1pa es2spu es3stu estab4b es4t1ak e1star e4starb 1e2stas e1stat e1s2tec e3stel es4t3eng es4t3erh es4t3ess e1stil e2stip estmo6de est3ori e1str es4tri es3trop e1stu e1s4tÞ e2s1um es3ums es3w e3sy es3z e1ß eße3r2e e1t etab4 et1am eta2mi 3etap et4at et1ÃĪh 2e3te e4t1ein ete3ke et2en eten3d2 ete2o eter4hÃķ eter4tr et2h et3hal ethi1 et3hÞ e3ti eti2m eti2ta 2eto eto2b e2t1of etons4 e2torg e3tÃķ 2etr e4traum e6t3rec e2tres et4rig etsch3w ets2p et3su ett1a et2tab et2tad et2t3au et2tei ette4n1 et2th et2t3r et4tro ett3sz et4t1um e3tÞ etwa4r 2etz et2zÃĪ et4z3ent etze4s et2zw eu1a2 eu3b4 euen2g eu3erei eue6reif euer4ri eu2esc 2euf eu2fer eu2ga eu4gent eu3g2er eugs4 eu1in 1euk eu2kÃĪ e1um e3um. e3umb e3uml e3um2s eum4sc eums1p eum3st 2eun eun2e eu4nei eun4er e3un2g eu2nio eun3ka eu1o2 eu3p2 e2u3r2e 1euro eu2rys eu4sis eu3sp eust4 eu1sta eu1sto eu1str 2eut eut2h eut6schn 2eux eu2zo eu2z1w e3Þ 2e1v e2vela e2vent 4ever eve5r2i e3vo e1w 2ewa e3wÃĪ ewÃĪ2s 2ewe e2we. ewinde3 e3wir ewi2s e3wit ew2s 2ex. ex3at 1e2xem ex1er e1xi 2exie e2x1in 1exis ex3l 3exp 2ext. ex2tin ex2tu 2exu 2e3xy ey1 ey4n eys4 e1z e3z2a e2z1enn e3zi ezi2s ez2w ÃĐ1b ÃĐ1c ÃĐ1g ÃĐ1h ÃĐ1l ÃĐlu2 ÃĐ1o ÃĐ1p ÃĐ1r ÃĐ1s ÃĐ1t2 ÃĐ1u2 ÃĐ1v ÃĐ1z2 ÃĻ1c ÃĻ1m ÃĻ1n ÃĻ1r Ê1p Ê4t 1fa fab4 f1abe fa2ben 2f1a2bl fab5s fa4cheb fa2ch1i fa2cho f1ader fa2dr f4ah faib4 fa2ke f2al fa3l2a fal2kl fal6l5er6k fal6scha fal6schl fal6schm fal3te f1amt 2fanb 2fanf fan2gr 2f1ank 2fanl f1anp 2fanr fan3s 2fanw f1an3z 2f1ap f2ar far2br farb3s 2f3arc 3fari farr3s f3art 2f3arz fa3s4a fa3sh f3at fa2to 2f1auf f3aug f1ausb 3f4av fa2xa 1fÃĪ fÃĪ1c fÃĪh2r1u f1ÃĪlte 2f1ÃĪrm f1ÃĪrz fÃĪ2ßer 2f1b2 2f1c 2f3d4 fdie2 1fe featu4 fe2c f2ech fe3che 2f1eck fe2dr fe2ei fe1em fef4l feh4lei f4eie 2f1eing 4f1einh fe1ini 2f1einw f1eis fek2ta fe2l1a fel4da fel2dr 2fe2lek fe2l1er fe2les fel4lei fe2l1o fel4soh fels2t fel3t4 f2em. fem4m 2femp fen3a2 fe2nÃĪ fe2no fen3s2a fens2c fenst2 f1ent 3fep f2er. fe1ra fer2an fe4rang fe4r3anz fe2rau fe2r1ÃĪ ferde3 f2ere fer2er fer3erz f1erfa fe2rid 3ferk f2erl. 4ferneu fe1ro f4erpa f2ers. f2ert f1erw fer8zeuge fe2st fest1a fest3ei 2f1eta fe4tag 3fete fet2t3a feuer3e feu4ru 3few f1ex 2fexp 3fez 1fÃĐ 2f1f ff3ar ff4art ff1au ff2e ffe2e f2f3ef ff3ei ffe1in ffe2m f2f3emi ff4en f2fex fff4 ff3lag ff3li f3flu f3flÞ f3f4rÃĪ ff2s ffs3tan 4f3g2 fge3s 2f1h2 1fi 3fi. fi3at fid2 fien3 fi1er2f fi2kin fi3kl fik1o2 fi2kob fi2kr fi2l1an fil4auf fil3d fi2les filg4 fi3li fi4lin fil2ip f2ina fing4s fi3ni fin2s fin3sc fin3sp 2f1int fi2o fi3ol fi2r fi3ra fi4re 3fis fis2a fisch3a fisch3o fisch3w fis2p fi2st fit1o2 fi2tor fi3tu 3fiz 2f1j 4f1k4 f2l2 2fl. f3lad flan3d f3lap 1flÃĪ 3f4lÃĪc 2f5lÃĪd f3lÃĪn 2f3lÃĪu 2f3leb 2f3lein f3ler f3li. 3f4lim fli4ne 2f5lon 1f4lop 1f4lot flo2w f3lÃķ 4f5lÃķf 1f4lug flu4ger f4lÞ f5lÞm 2f1m2 fma2d 2f3n2 fni2s 1fo fob2l 2f1o2f foli3 fol2k1 fo2na fon3au fon2e fo2nu 2f1op fo1ra 4f3org fo3rin 3form for4m3a4g forni7er. for4st fort3 for4tei for2th for2t1r for3tu f1o2x 1fÃķ 2fÃķ2f 2f1Ãķk 2f1Ãķl fÃķr2s 4f1p2 2f1q f2r2 f4rac frach6tr 2f5rad fra4m f3rand f5rap 1f4rÃĪn 2fre. f3rec f3red 2freg f3reic freik2 frein2 f3rep 3f4reu 2f3ric fri3d fri2e 2frig 1fris f4risc f3roc 1f4ron fro2na fro2s f3rot f3ru f3rÞ 4f1s fs1all fs4amm f2san fs3ar f2s1as f2sauf f2saus f2saut f3sc f4sce f4schan f4schef fs4co fs1e2b f4s1ehr f2s1em f2s1ent f2s1er fse4t f4s1eta f3si f2si2d f3s2kie f2s1o2 f3span f2s1pas fs1pen f2sph f3spi f3s2pl f3s2por fs1pr f2spre fs2pri f2spro fs2pru fs3s4 fs2t fs3tak f2stas f4s3tÃĪti f3stei f3s4tel f3stern fs3th f2stip f3st4r f4s3tres fs3trÞ f3stÞ f4s3tÞte f2s1un f3sy 4f1t f4ta. f2tab ft1a2be ft1af f2t1al ft1an ft1ar f3tat f2t1ÃĪu ft1e2h ft1eig ft1ein ft1eis f4t1ent f4t1e4ti f2th f4thei ft3ho f2t1id ft1op f2t3ot f3tÃķ f2t3ro f2trÃķ f3t4ru ft2s1 ftsa4g ft4sam ft3s2c ft4sche ftse4 ft4seh ft3st ft4s3tan ft4s3tÃĪ fts2ti ft4stri f2tum ft1url f3tÞ ftwa4 ft3z2 1fu 3fuc 3fug 3f2uh f1um 2f1unf fung4 2f1u2ni fun2kl fun2ko fun2k3r 2f1unm 2funt f2ur fu4re. fus2sa fus2s1p fus2st fu2ß1er 3fut 1fÞ 2fÞb fÞ2r 2f1v 2f1w 1fy 2f1z fz2a fzeiten6 fzei8tend fz2Ãķ fzu3 fzu4ga f3z2w 3ga. 2gabf ga2b5l gab4r 2gabz ga1c 2gadl 2ga2dr ga1fl ga3ge 5gai ga1k ga2ka gal2a 2g1a2lau g1amb g4amo 2g1amt 2ganb gan3d 4gangeb gan2gr 2ganh 2g3anku 2ganl g3anla 3g2ano 2ganw ga1ny 3gar. 2garb 2garc 3gard 2g1arm ga3r2o 3g2ars 2g1arti ga3ru 2g1arz ga2sa gas3ei ga2si ga2sor ga3sp ga4spe ga4spr gas3s gas4ta gas5tan ga4ste gas4t3el gat2a 2g1atm gat4r gau1c 2g1auf 2g3aug g2auk g1aus 2g1aut 2g1ÃĪp 2g1ÃĪrz gÃĪs5 gÃĪ4u 2g1b2 gber2 gbi2 gby4t 2g1c 2gd g1da g2d1au g2d1er gd1in g1do g1dÃķ gd3r gd3s2 gdt4 gd1ur 1ge ge3a2 geb2a gebe4am ge3ble geb4r ge1c ged4 ge1e2 ge3ec ge2es gef4 ge3g2l ge3ha ge4ig ge1im ge2in. gein2s ge2int gein2v ge1ir ge2is 2g1eise2 gei3sh 2gek. ge4lanz gelb1r gel4b3ra gelder4 gel6ders ge3le 2ge4lek geler3Ãķ ge4l3ers ge4less gell2a ge3lor gel3sa gels2p gels2t gel3ste gel3sz gel3t2a ge3lÞ gelz2 gem2 gem4e ge3mi 3gen ge3na ge4n3ac ge4nam ge4nar gen2as gen4aug gen2d1r gen1eb ge3nec gen3eid gen3ern gen6erwe gener4z gen3n gen4sam gen3sz 2gentf gen3th 4gentw geo2r ge1ou ge3p4 ge1ra ge2rab 4g3ereig ge4reng ge4ren4s ge4r3ent ger2er gerin4f ger4inn gerin4t ger3no ge1ro ge1r2Ãķ ger4sto ge3r2u g1erwa 4g3erwer g2e1s2 ges3auf ges3elt ge2s3er ge3si ges4pi ges3s2t gest2 ge3ste ge4s3ter ges3th ge3t2a 2getap ge5tr ge3t4u 2g1e1ul 2g1ex 2g1f4 4g1g gga4t g3ge gge2ne g2g3l gg4lo g2g3n gg4r 2g1h 4gh. 3ghale gh2e 3g2het 3g2hie gh1l 3gh2r g2hu gh1w gi3alo gie3g gi2e1i gi2el gien2e1 gie1st gift5s gi2gu gi2m gi4mes 2g1ind gi3ne g1inf gin2ga 2g1ins 2giok 2g3isel gi3t2a gi3tu gi4us 2g1j 4g3k2 4gl. gl2a 4g1lab g1lac g2lade 2g1lag 2gland 3g2laub 4g1lauf 2glÃĪuf g2l4e 2gle. 3gle3a 2g3leb g3lec g3leg 2gleh 3gleic 4g3lein glei4t5r g3len 4g3ler 2gles g3lese g4lia 2glib 3g2lid g2lie 2glif g2lik 2glil g2lim 4glin g2lio 2glis g3lisc 3g2lit g2liz 3g2loa 3g2lob 4g3loch glo3g 3g4lok g2lom 3g2lop g2lor 3g2lot 2glÃķs 2gls g1lu 2g3luf 2glun 4glus g2lut g1lÞg g2ly 2g1m2 g1n 2gn. g2n2a g4na. 4gnah 3g4nat 3g2nÃĪ gn2e g3neh 2gnel gne2tr 2gneu 2gng g2nie g2nif g4nin 2gni2s1 g2no gno1r g3not 2gnp 2gns 2gnt 2gnu 3g2num. g2nÞ g2ny 2gnz go4a goa3li 2g1o2f 2gog 2g1oh go1i gol2a 2gonis 2g1ope 2g1opf g2o1ra 2g1ord 2gorg go2s1 go3st go3th got6t5erg go1y 2g1p2 2g1q g2r4 gra2bi gra2bl 2g3radl 2g3rah 4g3rak grammen6 gram8m7end grau3f grÃĪs1c 2g3rÃĪu 2g5re. g4reb 2g3rec 2g3rede g4re2e 2g3reic 2greim 2g3rein g3reit g4rem 2g3renn gre3no gren6z5ei g4rer g3ret g3rev 2g3ric gri2e g3riese 3grif 2grig 2g3ring gro2bl 2groc 2groh gron4 2g3rose gros6sel gro4u 2grÃķh g4ruf 2g3rui 2g3rum grun2g 3g4rup 2grut 2g3rÞc 3g4rÞn 4g2s1 gsa2d g4s3a2k g3sal gs3all g4salt gs3ama gs3an gs3ar g3s2c g4sca g4s3ce gsch4 g4schef g4sco g4s3cr gse2 gse3e gs2eh g3s2eil g3sel. g3seln gsen1 gs3er gser5f gs5erk gse4t g4seta gsi2d g3sil g4s3l gso2 gsp4 g3s2pek g3spi gs4pie g4spin g4s3pl g3s2por g4spru gsrat4 gsrÞ2c gs5s4 gs3ta g3s4tan g3s4tar g3s4tati g4s3tÃĪ g5stÃĪm g3stel gst3ent gst3err g1steu gst2he g3stir g3sto g4stol gs3top g4s3tor g3stÃķ gs3tr gst4ra g3s4tras gs4trat gst5reit gst4ri gs4t5rit gs4t3ros g3stu g4stur gs3tÞ g4sw g3sy 2g1t g3te g3ti gti2m gt4r gt2s g3tÞ 1gu gu1an. gu1ant gu1as gu1c gu4d3r gu2e 2gued guet4 2g1u2f 2g1uh gu1ins gu1is 3gumm 2g1unf g2ung. gunge2 4gungew 2g1ungl 2g3unk g2un4s 2gunt2 2g1url gurt3s gu2s3a guschi5 gus4ser gus2sp gus2st gu4st gu2t gut1a gu4t3erh gut3h 2gÞb gÞr1 gÞs3 2g1v 2g1w 2g3z2 3haa hab2a hab2e 2habn hab2st ha2cho ha2del ha4din h1adle haf3f4l haft4s3p h1ah h2ahs h2ai ha3ia h2aj 2haka ha1kl 2h2al. halan4c ha2lau hal2ba hal4bei hal4b3r 2hale hal2la hal6lerf h1alp hal2st hal4t5r h1amt h2an. 2hanb h2and han2da hand3s han2kr h4ann 2hanr 2hant h1ap ha2pl ha2pr h2a3ra 2harb h2ard h1arm. har3ma har4me. har4mes har2th h1arti h2as 2ha3sa hasi1 hat5t2 hau5f6lie 2h1aufm h1aukt hau2sa hau4san hau2sc hau4spa hau5stei hau6terk 2hauto hau2tr h1ÃĪff h1ÃĪrz hÃĪ6s5chen hÃĪu2s1c hÃĪ3usp 2h3b2 hba2r3a 2h1c 2h3d4 hdan2 2hea he2ad he3be he4b1ei he2bl he3br he1ch he3ch2e h3echt he3cke hed2g he3di he2e3l hee4s he2fan he2fÃĪ he2f1ei hef3erm 2heff he2fid he4f3ing he2f3l he2fr he3fri he2fu he3gu h4eib h1eie h1eif h1eig he2im heim3p hei4mu 2hein heine2 4heio he1ism he1ist heit4s3 h1eiw he2l3a hel1ec h3e2lek he3len hel3ers he3li hel4l3au hel4mei he3lo he4lof he2lÃķ 3hemd he3mi 3hemm 4h3emp h2en. he4na2 hen3a4g he2nÃĪ hend2s he2n1e2b hen3end hen3erg he2net heng2 2heni he2no hen3sk henst2 hen3str hen5tr h1ents 2h3entw hen3z 4he2o he3on he3op he3pa he3ph h2er. her3a2b he2ral 2herap he3ras herb1r her4b3ra he4reck 4hereig he4r3eis he2rel he4rerw h1er2fo h3erfÞ herg2 her2ho 4herif herin4f he6rin6nu herin4s herin8ter h1erke h3erlau 2herm he3ro he4r3o4b h1erÃķ hert2 her3th her2z1w he1sta he2s5tr he2tap heter2 he3th het2i he3t4s h2e2u heu3g 3heusc he3x he1x4a he1y2 1hÃĻ 2h3f4 hfell1 hfel6ler hfi2s 2h3g2 hget4 2h1h2 hhoh2 4hi. 2hia hi2ac hi2ang h2ias hi1ce hich6ter 2hi3d h2ide h1i4di hi2e hi3ens hier1i hie4rin hiers2 hif3f4r hi2kr hi2l3a4 hil2fr hi2n h1indu hi3nel hin2en h1inf h1inh hi3n2i hin3n2 hi3no hin3s2 hin4t1a 2hio hi4on hi3or 2hip1 hip3f hi2ph hi2pi h2i2r hi3ra 2hi3re hi3ri hirn1 hir4ner hi3ro hir2s his2a hi2se hi2st hi1th hi3ti 2hiu 2h1j 2h1k4 2hl hl2ag hla2n hl1anz h1las h1lat h1laut h3lÃĪche h3lÃĪd hl1ÃĪr h1lÃĪs h1lÃĪu hlb4 hl3d4 h3leb hle3e h3lein h2leis h5len. hl2eng hl2enn h3ler hle2ra h2l1erg h6l3er4nÃĪ hle3run hl1erw h4lerz h3les h4lesi h3lex hlg4 h2lie h2lif h2lim hl1ind h2lip h2lis h3list h2lit h2lo h3loc hl1of hl1op h4lor hlo2re h3losi h2lÃķs hl3sku hl3slo hlst4 hl3str hl3t2 h3luf h3luk h3lumpe h1lÞf 2h1m h2mab h3mad h3mag h3man h3mar h3mÃĪ h4mÃĪc h4mÃĪh h4mÃĪl h3me. hme1e hme1in h3men hmen2s hme2ra h2mo h4mon h3mÃķ hm3p4 hm2s hm3sa hms1p h2mu h3mul 2hn h2na hna2c h3nam hn1an h3nau. h2nÃĪ hn1ÃĪh hn1ÃĪr hn3d4 hn2e hne3b hne2e hn3eig hn3ein h2nel hne4n1 hne4pf h3ner hner3ei h4nersa hn3ex hnhof8stras h2nic h2nid h2nie hn1im hn1in h2nip hn3k4 h2nor hn3s2k hnsuch4 hn3ti hnts2 h1nu h2nuc h2nul hn1unf h3nunge ho2bl ho2ch3 ho2cka ho6ckerl hock3t 2hod hoe2 ho2ef ho2fa hof3fa ho2f3r 2hoi hol1au 3hole ho2l1ei hol3g4 ho4lor 3hol3s h1o2ly 3holz hol6zene hom2e ho2mec ho2med h2on hond4 hono3 2hoo 2hop ho1ra hor3d 2h1org ho4sei ho3sl ho2sp ho4st 2hot. ho3th hotli4 2hots2 3hov 2ho2w1 h1o2x ho1y2 1h2Ãķ hÃķ2c hÃķ3ck 3hÃķhe h4Ãķr hÃķ2s1 h3Ãķst 2h3p2 h1q 2hr hra2b hr1ac hr3ad h1rai h1rane h3rÃĪu hr1c hr3d h2rec h3rech h3red h3ref h4rei. hrei4ba h3reic h4r1eig h3rel h3ren h3rep hr4erbe hr4erbu hr2erg hr2erk h4rer4la h3rerle h6rer6leb hr6erlei hr2erm hr2erz h3re2s1 hre2t h2r1eta h3rev hrg2 h2ri h3ric h4rick hri4e h3riesl h3rin h4rinh hr1ins h4rist hr3l hrm2 h2rob h2rof h3roh h3rol h4rome h4romi h4ron h2ror h3rou hrr4 hr2s1ac hr4s3an hr2s3au hr3schl hr2s1en hr2ser hr4set hr4s1in hrs3k hr4s1of hr2su hr4sw hr2t5ab hr2tan hr2th hr2tor hrt3ri hr2tro hrt2sa hrt2se h3ruh hr1ums h3rÞ h4rÞb h4ry hrz2 4hs h4s3acht h2s1a2d h4samt h2san h2sau h2s1ÃĪh h4schan h2s1ec hse4ler h2s1erl h3s2ex h2s1ing h2s1o2f h2spac h2s1par h2spel h2sper h2sph hs2por h2sprÃĪ h2spro hss2 h1sta h2staf hst3alt hst2an h2s3tau h1stec h3stein h5stell h3s4terb hst2he h1s2ti h1sto h2stor h1s4tr hst3ran h1stun h1stÞ h2s1u hs2ung 4h1t ht1a h2tak h3t4akt. ht2al h4talo ht3alt h4t3a2m h2ta4n ht3ane h3tank h3tann h2tar ht2as h2t3ass h2tasy h2t3a2t h2tau ht3aug h4tax h2t1ÃĪr ht1e2c h2t1ef ht1eh hte2he h2teif h4teilz h2t1eim ht1ein h2t1eis h2t1eke h4t3elit h2temp h4tentf h4t3ents hter6de. ht3erfÞ ht3ergr h2t1er2h ht5erken h4terkl h6t5erleu h6terneu h4t3er4re h6t5er6spa h4t3er4st ht6erste h2t1erz hte2s h4t1ese h4t1ess hte3sta h2t1eu h2t1ex h2th h4thei hthe3u h2t1im h2t1in hto2 h2toly h2torg h3tÃķp h4t3rak ht3rand h2t3ras h2t3rat ht3rau h4traub ht6raume h5trec h4tref ht3reif ht3reit ht4ri h4t5rieg h4t5rin h2t3rol h2t3ros ht3rÃķs h2t3ru h2t3rÞ h4ts ht4s3an ht4s3end ht2so ht2sp ht4spin ht3spri ht4stab hts2ti hts4tie ht4s3tur ht4s3tÞr htt4 htti2 h2t1urs h3tÞ ht3z2 hu2b1a hu2b3ei hu2b1en hu2b3l hu4b3r hu2bu hu1c hu2h1a hu2h1i huko1 huk3t4 hu2l3a hu2lÃĪ hu2l3ei hu4leng hu4lent hu2ler hu2let hu2l1in hu2lo hu3m2a h1ums hu2n h1una hung4s hu3ni1 h1ups 2h2ur hurg2 hu3sa hu2so hus4sa hus2sp hu2tab hu3t2h hu2ti hut2t hut4zen hut4z3er h2Þ h4Þbs h3Þbu hÞhne4 hÞs3 2h1v hvi2 hvil4 2hw h2wall hwe1c h1weib h1weih 3hyg 3hyp hy2pe. 2hy2t 2h1z hz2a hz2o hzug4 i1a 2ia. i4aa i2ab iab4l 2iac i2af iaf4l i4a3g2 i2ah i3ai i2aj i2ak i3ak. i3akt 2ial i5al. ia2l1a4 ia2lÃĪ ial3b ial3d i3alei i3alent i3a4lerf i3alerh ia4l3erm i3a2let i3a4lia ialk2 i3all ial3la ia2lor ial3t4 ia2lu ial3z2 i2am i4amo 2ian ia2nal i3and2 ian2e i3ann i2ano i3ant i3anz i2ap ia1q i3ar. ia2ra i2asc ia3sh i2asi i2a3sp ias3s iast4 i3at. i3a4ta i4ate i3at4h 1iatr i3ats i3au ia3un 2iav 2iÃĪ i1ÃĪm i1ÃĪp iÃĪr2 i1ÃĪr. i1ÃĪrs i1ÃĪt. i1ÃĪta i1ÃĪt3s4 2i1b ib1art i2b1auf ib2bli ib1ei i2beig i2beis ibela2 ibe4n iben3a ibi2k i3bla i4blad i3blÃĪ i3ble i4bleu ib2o i2bÃķ i4brÃĪ ib3ren ib2ser ib4ste i2bunk i2bunt ibu2s1 2ic ic1c ice1 ich1a ich1ÃĪ i1che ich1ei i1chi i2chin ich3l i3chlo ich3m i1cho i2ch3r ich3ter ich2tr i1chu ich1w i1ci i3cke i1cl i1d id2ab4 i3d2ac i3dam id1au 1i2dee idein3 i4deis idel2ÃĪ ide3so 1i2dio idni3 i2dol 1idol. 2i2dr i3d2sc id2s1p id3str idt4 1i2dy ie3a4 ie2bÃĪ ie2bl ie2bre ie2bri ieb4sto ieb4str ie1c ie2cho ie2ck ie2dr ie1e2 ie2f1ak ie2f1an ie2fau ief3f4 ief2i ie2f3l ie2fro ie4g5l ie3g4n ie2g3r ie3g4ra ieg4s3c ieg4st i1ei i2e2l1a ie3las iel3d i2ele iel1ec ie3lerd ieler8geb ie4less i2eli i1ell ielo4b i2els2 iel3sz iel3ta 2i1en i3en. i3ena iena2b ie4n3a4g i3e2nÃĪ i3en3d i2ene ien1eb ie3ner ien4erf ie4n3erg i3enf i3eng ienge4f i3enh i3enj i3enk i3enm i3enn i3e2no i3enÃķ i3enp i3enr ien2s ien3sc ien3s2e ien3si iens2k iens6t5er iens4tr ienst5rÃĪ ien3sz ie1nu i3env i3enw i3enz ie1o2 ier3a2 ie2rap i2ere ie3red ie3r2er ie4rerf ie4r3erz ie3res i3ereu ierf4 i4eri ierin3 ier3k2 i1ern i3ern. i4erna i2er5ni ie2rÃķ ier4seh iers2t ier3sta ier3ste ier3te iesen3s4 ie2spu ies2sp ies2s3t ie1sta iest6e ie3su ie2t1a ie4t3erh ie4t3ert ie2t3ho ie2t1o ie4t1Ãķ4 ie2tri ie2t3ru iet2se i1ett ieu2e ie1un ie2w3u i1ex 2if if1ar i2f3arm if4at if1au i2fec ife2i if2en if1erh if2fl iff4st if3l i1f4la if4lÃĪ i1flÞ if3r if4ra i1frau i1fre if4rei if4rÞ if2s if3sa if3se if3sp if2ta ift3erk if2top if4t3ri ift3sp ifts2t ift3sz 2i1g iga3i i2g1ang ig1art iga1s4 i4gefar ige4na ige2ra ige3ran ig1erz i2g1im i2gl ig1lÃĪ i4glo ig4na i4gnÃĪ i3g4neu i3g4no i3go ig4ra ig3rei ig3s2a ig4sal igsau4g ig3sÃĪ ig4se ig3so ig3sp ig4spa ig3stei ig4s3to ig4stÃķ ig3str igs4tra ig4stre ig3s4tÞ igung4 2i1h i2h1am i2har i3he ihe1e ihe4n ih3m ih3n ih3r ihs2 i2h1um ih1w ii2 ii3a4 i1ie i3i4g i1im i1in i1i4s i2is. ii3t i1j 2i1k ik1ak ika4ka ik1amt i2k1ano ikanten8n ik1anz i4kanze ik1art ik3att i2k1au i2k1ÃĪr 4ike i2k1ei ik2e2l1 i2k1e4r2e ik1erf iker6fah i2k1er2h i2ker2l i2k1eta i3ki. ik1in i2kind i2k3l i3kla i3k4lÃĪ i2kn ik3no ik2o3p4 iko1s i2kÃķl ik3ra ik3rÃĪ ik3re iks2 ik3so ik3sz ikt2e ikt3erk ikt3r ik2tre i3kus i1la i2l3ab il1a2d i2l1ak i2l3a2m il1ans il1asp il1au il4aufb il3aus i2laut i1lÃĪ1 6ilb il2c il2da il4dac il4d3en4t il3d2er ild1o il2dor il2dr il1e2c il1ein il1el i4lents i2l1erf i2l1erg i2l1err il2erz il2f3l il2f3re ilf4s3 ilg2a il2gl ili3e4n1 ilig1a2 ili4gab i2l1ind i2l1ip i3lip. i3lips 2ill. il3l2a il3l2er ill2i 2ills il2mak il4mang il2m3at il2m1au il2min 2ilo i2l1or ilt2 il3th il3tr i1lu2 i2lum ilung4 i3lus ilv4 il2zar ilz3erk 2im. i2manw i2m1arm im4at ima2tr imat5sc ima4tur 2ime i2mej i2mele i2melf i3men i2m1erf i2m1erz i4mesh imes3s i2meti i2m1inf i2m1ins im2mei im4m3ent 1immo 2imo im1org imp2fa 1impo imp4s im3pse 1impu im2st im3sta 2imt imt3s2 2imu in1a2c in3ach. i4nack i2n1ad in2af in3am i3nap in2ars in2art ina4s i2n3au in1ÃĪh in1ÃĪs in2dal in2dan in3dau 1index in3do 2indr ind4ri in3drÞ 1indus in3d2Þ 2ine i2n1e2be in1ehe i2n1eng in3erbe i4nerbi in2erh iner4lÃķ i4n3er4tr i4nesk in1eu ine3un ine2x in3f 1info. 1infos 2inga ing1af in2g1a4g in2gl ing4sam ings3pr 1inhab 2inhar 2inhau 4inhe in2i3d i3nie 2inig ini3kr in2ir 2inis ini3se i3nitz 3inkarn in3k2Þ inma4le 2inn. in4n3erm 2innl in2nor inn4sta 1innta 2ino in1od in3ols in1or ino1s4 ino3t i1nÃķ in1Ãķ2d 2inp 2inr ins2am insch2 in2seb 2insen ins3ert in3skan in3skr in4s3tÃĪt in3stel ins4tip in3su 1insuf in4s3um in3s2z 2inta 1integ int2h in3t4r in5tri int3s in1u i3n2um in3unz invil4 i1ny i1Ãą 2i1o io1c io2d i2oda io3e2 iof4l i2o3h io2i3d io3k4 i3ol. i3om. i3oms ion2 i3on. ional3a io2n3au ion3d i3ons3 ion4spi ion4stÃĪ ion3t i2ony i2o1p io4pf i3ops i3opt i2or i3or. i3orc iore4n i3orp i3ors i3ort io3s2 i2ost i3ot. i3ots i2ou i2ov io2x i3oz. i1Ãķ2k i1Ãķn i1Ãķs. 2ip. i1pa i1pe ipen3 i3per iph2 2i1pi ipi3el ipi3en i3p4l ip2pf ip2pl ip3pu i1pr 2ips 2ipu 2i1q i1r2a i3rad 1i2rak irat2 i1rÃĪ ir1ÃĪh ir2bl ir1c ir2e i3ree 2irek 2irÃĐ ir2gl irg4s ir2he ir2i 2irig 2irk ir2k3l irli4n ir2mak ir2mau ir2mÃĪ ir2m1ei ir2mum ir4m3unt 2irn ir2nar ir2no i1ro 1iron iro2s i1rÃķ irpla4 irre4l irr2h ir4schl ir4schm ir4sch3w ir3se ir3sh ir2st irt2s3t 2iru iru2s1 i3sac i4s1amt is2ap is3are i2sau i2s1ÃĪn 2isb i2sca i3s2che i4schef i4sch3e4h i4sch3ei i4schin i5sching i2sch1l isch3le i2schm isch3ma isch3ob isch3re isch3ru i4schwo isch3wu i2s3cr 2ise ise3e ise3ha ise3hi ise3inf i4seint ise2n1 ise4n3a is2end isen3s i2serh i2s1erm iser2u i2s1ess i4s3etat is2has isi2a i2s1id i2s1of iso2n isonen4 iso6nend is1op 3i2sot is1pa i2spar is1pe is1pic is2pit is2por i2spro is3sa is4s1ac is4sau is4s3che is4sper is2st is3sta is3sto iss3tr is3stu is2sum is3t is4tab ist3ac is5taf is4tam ist2an i1s4tat iste4n istes3 i1s4teu i1s4til is4toc is4tÃķ is5tÃķr ist4ra ist3re i1s4tÞ isum3p i2sÞ i1ß iß1ers it1ab. ital1a it1alt it1a2m it1an it2an. it3a4re it1art i3tat it1au i3tauc i4t1ax 4itÃĪ i2t1ÃĪs itÃĪt2 i2t1ei i4teig it2eil i4tein 2itel ite2la ite4n iten3s2 i4tepo i2tex i5thr i2t1id 1itii iti4kan iti3k2e i2t1in1 it2inn ition4 i6tl itmen2 i5toc i2t1of i3tÃķ it3raf it3ran it3ras it3rau it3rÃĪu it3re it3rom it4ron i3tru it3run it2sa its1a4g it2s1e4 its3er1 it2so it2s1pe it2s3to it2teb it4tri itt2sp it1uh i2t1um i2tuns it1urg itut4 i3tÞ 2itz it2zÃĪ it4z3er4g it2z1w 2i3u2 ium1 i1Þ 2i1v i2v1ak iv1ang i2veb iv1elt ive4n iv1ene i2v1ent iv1erl i2v1ur 2i1w iwur2 2i1x i2xa ix2em i3xi ixt2 4i1z iz1ap iz1au iz2ei izei3c ize2n i2z1ene iz4er i2z1ir izo2b i2zÃķ i2z1w í1l ja1c jah4rei jahr4s ja3l2a ja3ne jani1 jani3t4 ja1st 2jat je2a jean2s je1c je2g jek4ter jektor4 jek2tr je3na je2p je4s3t je2t1a je2t3h je2t3r jet3s2 jet3t je2t1u2 je3w ji2a jit3 ji2v joa3 jo2b1 job3r jo2i joni1 jo1ra jord2 jo2sc jou4l j2u ju2bl jugen2 jugend3 ju2k jung3s4 ju3ni jur2o jus3 jute1 2j1v 1ka 3ka. k1a2a ka3ar kab2bl ka2ben 2kabh 2kabla 2kablÃĪ 2k1a2bo ka3b4r 2kabs 2k1abt ka1c k2ad 2k3ada 2k3a2dr ka1f4l ka1fr kaf3t2 k2ag ka1in ka3ka kaken4 ka1k4l 2kakt 2kala. ka2lan ka3lei ka3len. ka4lens kal3eri kal2ka kal2k3l kal2kr k1all kalo5 kal2tr ka2lu k3ama kamp8ferf kan2al ka4n1a4s ka2nau kand4 2kanda kan2e 2k1ang kank4 2kanl 2k1anna k1ans k2ans. 6kantenn ka3nu3 2kanw k2anz. ka2o 2k1apf 3kara 2karb k2ard k2arg ka3ri kari3es k2ark 2k1arm karp3 kar2pf k2ars kar3t k2arta 2k1arti karu2 k2arw 3kas ka3se kasi1 kas3s ka2s3t ka3tan ka3t4h ka4t3r 2katt kau2f1o 4kaufr kauf4sp kaufs5te k1aus kau3t2 2kauto 1kÃĪ k1ÃĪh k1ÃĪ2mi k1ÃĪn kÃĪr2 kÃĪ2s1c kÃĪse3 2k3b2 kbo4n kbu2s kby4 2k3c 2k3d2 kdamp2 2k1e1c k1eff kefi4 kege2 ke2gl ke2he. kehr2s kehr4s3o 2k1eic 2k1eig k1ein ke1in2d 2keinh kei1s 2k1eise keit2 ke2l1a ke3l2ag ke2lÃĪ kel3b4 2ke2lek ke2len ke2l1er 2kelet kell4e kel3s2k k4elt 2k1emp k2en. ken3a ke4nac ke2nÃĪ kend4 ken3dr 4ken4gag 2kenlÃĪ ke2no ken4sem kens2k ken5stei ken3sz k3en4te. k3en4ten ken3th 2k1ents 2kentw 2kentz 2keo2 ke2pl k2er. ke1rad k2erc ke3reig 4kerfah k4erfam k3ergeb ker6gebn k3er2hÃķ ke6rin6nu kerin6st kerin4t ker4ken k2erko k2erl k4erl. ker4lau k3er4leb k6erlebe k4erlÃķ ker4neu k1ero ker4reg k2ers. kerz2 k1erz. ker4zeu 2k1er2zi k6es. ke2sel ke4t1a ke2t3h ket3s ke1up keu6schl 2k1e2x 2k3f4 2k1g2 2k1h4 kho3m ki3a4 ki1c 2k1i2de ki3dr ki2el kie2l3o ki1f4l ki1f4r ki3k4 2kil2a ki3lo k2imi k2in. k2ing 2kinh k2ini k2inn ki3n4o3 kin3s 2k1inse 2k1int ki3or kio4s 3kir kis2p kis3s kist2 kis4to kiv2 2kiz ki3zi 2k3j 2k1k4 kl4 4kl. 4kla. 4kland k4lar 4k1last k3laug k2le 4kle. kle2br k3lee 4kleh k4leid 4k3leit k3lem. 2k3ler kle2ra 2k3leu kle3us 2klic 2klig k2lim k2lin k2lip k2lir k2lisc 2klist klit2s 4kliz 2k3loc klo2i3 k3lor 2klos. klost6 k2lÃķt k1lu k2lud kluf2 k2lug klung4 k1lÞc 2kly 2k1m k2n2 3knab k3ne k4nec k4nei 2knes kno4bl 2k5nor k3nu 3knÞ 1ko ko2al 2kobj 2k1o2fe koff4 koh3lu ko1i2 kol4a ko3le kol2k5 3kom ko4mu k2on ko3n2e kon3s4 ko3nu 2kop. ko1pe kop4fen 2kops 2kopz ko1r2a 2k1orc kor6derg ko3ri kor4n1a k2os ko2sp ko3ta kots2 kot4tak 2k1ou 3kow ko2we k1o2x 1kÃķ kÃķ2f k1Ãķl 2k1p2 2k3q k2r4 2k3rad k4ral k3rats 2kraum k4raz k4rÃĪc k4rÃĪn 2k3rÃĪt 2k3rÃĪum 2kre. 2k3rec 2kred. 2k3rede 2k3ref 2kreg k3reic kre1i2e4 kreier4 k3reih 2k3rh 2krib 2k3ric k3ries 2krip 3kris 3k4ron 2kruf krÞ1b 2k1s k4s1amt k2san ks4ana ks3ar k2sau k4s1ÃĪl ks2ÃĪn ksch4 ks1e2b k2sent ks1erl k2s1ers k2s1erw ks3ha k3shi k2s1id k2s1in k2s1o2 ks1pa ks2pat k3spe ks2por ks2pu ks3s2 kst4 k2stal k4s3tanz k3stat4 k2stea ks2ti k2stor k2strÃĪ k2stum k2s1u ks2zen 4k1t k2t1ad kt1akt k3tal kt1am kt1an k2t3a2r kta4re k2t3au ktÃĪ3s kte3e kt1ei k2temp k2tent k4t3erfo k2t1erh kte3ru k2tex k2th kt3ho k2t1id kt1im k2t1ing kt1ins ktion4 kti4ter k2t1of k3top k4torga kt3orie kt4ran kt3ras k4tref kt4ro ktro1s kt3run kt3s2 kts4t ktt2 k2tuns k3tÞ kt3z ku1c ku2h3 2k1uhr kul2a ku3l2e ku3l2i 4kulp 2k3uml kum2s1 k2u3n2a kung4 kun4s4 kunst3 2kunt 2kunw 2k1up. kur2bl ku2rei kuri2e kuri4er ku2ro kur2sp kur2st ku4schl ku2sp kus3t ku2su 1kÞ kÞ1c kÞr4s 2k1v 2k1w 2k3z2 kze3l 3la. 3l2ab. la3ba 2labb lab2br 4l3aben 2labf 2labg 2labh 4l1a2bl lab2o l2abr lab4ra lab4ri 2labs l1abt 3labu 2labw la1ce la2ce. 1lad lad2i l1adl 2ladm 2l1a2dr 3ladu l1adv 2laf la2fa laf3s laf3t la2ga la2gio la2gn lago2 la2g1ob lag3s2e 2la1ho 1lai la2kes la2k1i l2akk la1k4l 2l1al 4lalp l2ami la3min 1lammf l2amp 4l1amt lamt4s la4mun l1anal la2nau 2lanb 5l2and lan2d1a2 lan4d3au lan6d5erw lan6d5erz lan2dr lan4ds laner2 2lanf lan2gl lang3s4 2lanhÃĪ l2anhe 2lanl 4lanli 2l3ann l1anp 2lans2 4lansÃĪ 2lantr lan2z1w 3lao 2l1apf l1a2po2 lap4pl la2r1an la2r1ei la4rene 3l2ar3g lar3ini l2armi lar3s 2l1ar3t l3arti la2ru la2sau 4lasd la3se 3lasg 2lash 2lasi la2so 2lasp 3lasser last1o lat2a la3t2e la4tel 2l3ath la2t3ra lat2s 2lat2t1a lat4tan lat4t3in lat2t3r 1laub. laub4se lauf1i lau4fin lau2fo 1laug l2aus. 2lausl 2lausr 2l1auss 2lauto 1law lawa4 lay1 lÃĪ1c 1lÃĪd 2lÃĪf 2l1ÃĪhn 2lÃĪmt 1lÃĪnd lÃĪr2m1a l1ÃĪrz lÃĪ2s1c 4lÃĪt 2lÃĪub 2lÃĪuc 2lÃĪue 1lÃĪuf 1là 2l1b l3bac lbb2 l2b1ede lb3eise l4beta l2b1id l2b1ins lb2lat l3blÃĪ lb3le l2bli l3blo l3brec lb3rit lb2s lb3sa lb3se lb4sh lb3si lb4sk lb3sp lbs6t lbst1e lb4sto lb2u l2b3uf lbzei2 2l1c l3che l4chei l5chen l3chi lch3l lch3m lch3n lch3r lch3Þ lch1w l3cl 4l1d ld3a2b1 l3d2ac ld3a2ck l2d1a2d lda4g l2d1ak ld1al l3dam ld1amm l2d1a2n ld3ane l2d1a2r ld3ari l3das ld1au ld1ÃĪr l3de. l2deh l2dei l2dele l3der. l3d2erl l3d2ern l2d1er2p lder4tr l2d1e2se l2dex l2d1id l2d1im l2dob ldo2r ld2os ld2Ãķ2 ld3r l2dran ld4ros l3d4ru ld4rÞ ld3sa ld3st ldt4 ld3th l2d1um 1le 3le. le2a le3an le3ar leben4s3 le2bl 2lec lech5t4e 3led 4ledd le2er lef2a le2g1as le2gau le2gÃĪ le2gl leg4r 3leh leh3re 4lehs 4leht lei4bl lei2br l2eic l2eid 4l1eig le2im l2ein. l2eind lein4du l2eine lei6nerb 4leink l2eint l2einu lei6schw leis6s5er l4eist lei4ßer l2eit lei2ta lei8t7er8sc lei5tri leit3s2 lekt2a 2lektr 3l2ela 2le2lek l2eli lel3s 3lemes le2m1o2 4lemp lem3s l1emu l2en. le4nad le2nÃĪ 4lendet 2lendu 4lendun le4n3end 4lenerg l1engl le3ni l2enk 2l1enni le2no len4sem len3sz 2lentf l1ents 2l3entw lent4wÃĪ 5lentwet len2zi le1os 2lep 3lepa 3lepf 3lepr l2er. l2e1ra le2ra4g le2rap le2rau lerb4 l3erei4g ler6eign le4r3ei4m le4rers 2l1erfo l2erfr l2erfÞ l3ergeb 3lergeh l3ergen 3l4ergew 2l1ergi lerin4s lerk2 l2erka l2erko l4erlei le1ro le2rob 2l1erÃķ 3l2erra l4ers. lers2k lers2t l4erwa 2lerwo 2l1erz l2erza ler2zi les2am les2e 2l1esel le3ser le3sh lesi1 le3sk les2ko le2spo les2t leste3 le1sto 4lesw 2lesy le2tat 2le3th let4tu le2u 4leud 2leuro 3leut 2lexe le2xis 2lexz 2l1f l3fah lfang3 l2f1ec lfe1e l4feis l3f4lÃĪ lf3lo l3f4lu lf3ram lf2s lf4spe lf2tr lf4u lfun2 lfur1 l3fÞ 2l1g lg1art l3gas lga3t lg1d4 lgen2a lge3ra lgerÃĪu3 l2geti lg2lÃķ l3go lg3re l3gro 2l3h2 3lhi. 1li 3lia li3ac li2ad li3ak li3ar lia1s lib4 libi3 li1c li3chi 4lick li2cka lid2 li3da 2l1ido li4ds lid3sc l2ie 3lie. liebe4s li3ene lien3s lie2s3c lie2st 3lig lig4n li2gre li3ke lik2sp lik4ter li3l lil2a li3m2a 3limo 2limp li3n2a lin3al 2l1indu li2nef li2neh li2nep li2nes 2l1inf lings5 2l1inh 2l1in1it 2l1inj lin2k1a link2s li2nol l2ins. l2insa l2insc 2linsp 2linst 2l1int li1nu l1inv 2linz li2o li4om li3os. li2p3a 3lipt 3lis. li3s2a li4schu 2l1isl 2l1i4so li2sp liss2 lit2a li2tal li3te lit2h lit1s2 lit3sz li3tu 3liu liv2e livi1 2lixi li2za lizei3 4l1j 2l1k lk1alp l3k2an l3kar. lken3t lk2l lk3lad lk3lic l2k3lÃķ l3k4lu l3k2me lk4ne lk5ner lkor2b1 lk4ra l2k3ru lk2s1 lk3sÃĪ lks3t lk4stÃĪ lk2Þ 4l1l ll1abb lla4ben l2labt ll1akt l3l2al l2l1am ll3a2ma lla2n ll2anw ll1anz l3l2ap ll1arm ll3aug ll1aus l4lausf ll1ÃĪm llb4 llch4 ll3d4 ll1ech l2l1ef ll1eim ll2em l3len. lle4n3a llen3dr ll3en4du ll2eng l4lents l3ler. lle2ra l6lereig ller4fo ller6geb l6lergen l4lergo ll3ernt ll3ertr ll2es l2lex llf4 llg4 llik4 ll1imb ll1imp l2l1ind ll1ins llk4 ll3l2 ll5m lln2 ll1ob l2lobe l2l1of ll1opf l2l1o2r l3lor. l3lore l2l1ou l3low ll3sÃĪ ll3sh ll3s2k ll2spr ll3t llti2m ll5t4r llts2 llu2f ll1ur llus5t6 ll3z2 2l1m l3ma. l2m3a2b l2marc lm1art lm1ÃĪst lm1c lm2ei lm3eins lme4na l2m1e2p l2m1erz lm1ind lm1ins l2mÃķl lm3p lmpf4 lms2t lm3ste lm3s2z lm3t 4ln lna4r ln3are lnd2 l3n2e l3ni l1nu l1nÞ 1lo lo4ak 3l2ob. lo2ber 2lobj 2l1o2bl l2obr lob4ri l1o2fe lo1fl lof4r lo2gau lo3h2e 2l1ohr loi4r 3lok lo2k3r lol2a l1o2ly lo2min lo2n1o lo2o 2lopf 2lopt lo1ra lo2rak lo4rÃĪ 5lorb 2lorc l1ord lo3ren 2l1or3g2 3lorq 3los. lo4sa 3lose lo4ske lo2spe loss2e lo4ste los3t4r lo2ta lo3tha loti4o 2l1ov lo2ve 2lox 1lÃķ lÃķ2b3 2lÃķck 2lÃķd l2Ãķ2f 2l3Ãķfe 4lÃķg l1Ãķhr 2l1Ãķ4l3 4lÃķß 2l1p l3pa lpe2n3 lp2f l2p1ho lp3t4 l3pu 2l1q 2l3r2 lrat4s lre1s lrut4 lrÞ1b 4l1s l3sac l2s1a2d l3s2al l4s1amb l4samt l2sang l2sann l2sanz l3sare l2sau ls2ÃĪm l4schin l4schmÞ l2s1e2b l2s1ec l2s1em ls1ere ls1erg l2serh ls1erl l2s1ers l2s1erw l3s2ex l4s3ha l2s1id l2s1imp ls2log ls3ohne l4s3ort. ls2Ãķ l2spac l3s2pi ls2po ls2pu l3spul ls3s2 lst2a lstab6 ls4taf l4s3tÃĪti l2ste l3stec l3stei l3stel l4stem ls6terne ls6terns ls2tie l2stit ls4tr ls2tu ls1um l2sun 4l1t l2tab ltag4 lt1ak lt1am l4t3ame lt3and lt1ang l4tarm lt1art l2t3ato l2t1au lt1eh lt1ein l2t1eis l4te4lem lt2en lten6gel lter3a lter2f lt2erg lter6ken lter6leb lter4nÃĪ lt2erÃķ l4t1e4sk lte2th l2t1eu l2th l3thas lt3ho l3thu ltimo4 l2tob l2t1of l2t1o2ri lto2w l3tÃķ lt1Ãķl lt1Ãķs lt1Ãķt ltra3l lt3rÃĪu l2t3re lt4rie lt3roc lt3ros l2t3rÃķ l4ts lt2so lt4stab ltt2 lt1uh l2t1um ltu4ran ltu2ri l3tÞ lu1an 4lu4b3 luba2 lubs2 lu2dr lu2es 1luf 2l1ufe 2luff luf2t1a luf2t1e luf2tr lu2g1a lu2g1e2b lu2gi lu4g3l lu2go lu2g3r lug3sp lu2gu 2l1uh lu1id. lume2 2lumf 2l1umj 2lumk 2luml 2l1ums l1umw 1lu2n 2l1una 2l1unf lung4sc 2l1uni 2lunt 2lunw 4luo 2lur l1urn l1urt 2luse lu2sp lus4s3a lus2s1c lus6serf lus6serk lus6sers lus2s1o lus2s1p lus2s3t lus4stÃĪ 1lu4st lus4t1a lust3re lu2s1u lu2t1a lu2tÃĪ lu4teg luter2 lu4t3erg lu2t1o2f lu2top lu4t3r lut5schl 3lux 2lÞb 5lÞd lÞh1l 2l1v 4l3w 2lx 1ly ly1ar ly3c 2lymp 3lyn ly3no ly1o ly1u 2l1z l2z3ac l3z2an l2z1ap lz1ar l2z1ÃĪr l3zen lz2erk lz1ind lz3l lzo2f l2zÃķ lz3t2 l2z1u4fe lz1w lz2wec 1ma m1ab m2abe 2mabk 3m2ab4r 2mabs ma3chan mach4tr ma2ci ma3da m2ade 2madm ma2d4r ma4d2s ma1f ma2ge. ma2geb ma2gef ma2geg ma2gek ma2gep ma4ges. ma2get ma2gev ma2gew 2m1agg magi5er. magi5ers ma3g4n 2m1ago mai4se 2m1akt mal1ak ma4lakt ma2lan ma4l3at ma2lau ma3le mal2er mali1e mal3lo 2mallt malu4 ma2l3ut mam3m 2m1anal ma2nau 2manb man4ce. man3d2 man3ers ma2net m2anf 2m1angr m2anh 2manl m4ann 2mansa 2mansÃĪ 2mantw manu3 2manz ma2or 2m1apf m2app 2marb mar3g2 ma3r2i 4ma3r2o maro3d 4marr mar6schm mar6schr ma3r2u m1arz 3mas ma3s2pa 4m1aspe massen3 mas4tel ma1s4tr 3maß ma2ta2b ma2tan mat4c ma2tel ma4t3erd ma5tri mat3se mat3sp mat3url 2m1au2f 3maul ma3un 2mausg m4ay ma1yo 1mÃĪ 2m1ÃĪhn mÃĪ1i2 2m1ÃĪnd 2mÃĪo m1ÃĪrg 3mÃĪß mÃĪ3t4r mÃĪu2s1c 2m1b2 mbe2e mb6l m3b4r mby4t 2mc m3ch 2m1d md1a m2d1ÃĪ m2dei mds2e m2d1um 1me meb4 me2ben m2e1c medi3 medie4 medien3 2medy me1ef mee2n1 mee4r3ei mega1 3meh 2m1eif 2m1eig mei3l2 mein4da me1i4so 3meist me3lam me2lau 3meld me2lek me2ler melet4 2melf. mell2 mel2se mel5t4 6mel6tern 2m1e2mi 2m1emp m2en. mena2b me3nal men3ar men3au 2mendl men3ge m4ens men4sk men2so men3ta men6tanz 2mentn ment4sp 4m3entwi me1o 2meou 2meÃķ 3m2er. me1ra mera1f me2r3ap me4rens mer2er 4m3ergÃĪn merin4d merin4t m4ersh merz4en 3mes mes1a me2sal me4sÃĪ 4meser 2me3sh 4m1essa mes6ser6g mes2s1o mes2s1p mes2st meste2 me1sto 4mesu m2et me3t2a me3th meu1 2m1ex 1mÃĐ 2m1f4 mfi4l 2m1g2 2m1h4 1mi mi2ad mi3ak mibi1 mi1c mi3da mie3dr mi2e1i mie3l mien3s mi2er mierer4 mi4et mie4ti 3mig mi2kar mi2ki mi2ku mi3l2a 3milb 3milc milch1 mil4che mild4s 2m1imp minde4s min2en min2eu min2ga ming3s4 mi3ni min2o mi1nu 3minz mi2o mioni1 3mir. mi3ra 3miri 3mirs 3mirw mi2sa mi4scha mi4schn mi4sch3w mise1 mi2ste 3mit mi2ta mi2th mi2t1r mit3s2 mit5sa mi5tsu mi2t1u 4mitz 2m1j 4m1k4 m3ka mk5re. 4m1l2 ml3c ml3s 2m1m m2mab m2m1ak m2m1al mm1ang m2m1ans mm1anz mm1art m2m1au mmd2 mm1ein mme4lin mme4na m4mentw mme2ra mme4rec mme2sa mm1inb mm1inf mm1inh mm1ins mm1int mmi3sc mmi1s4t m2m1Ãķ mm3p2 mmpf4 mm2s mm3si mm3sp mm3sta mm3str mm3te m2mum mmÞl2 mmÞll1 2m3n2 m4nesi 1mo moa3 2mobj 3m2od mode3s mo2dr 4mog. mo2gal 3moh mo2i3 mo2k1l 3mom mom2e 3m2on mo2nÃĪ mo3ne mo4n1er mon2s3 mon3su 3mo2o 2m1ope 2mopt mo1ra mo2rar 2m1orc mor4d3a mor2dr mo2rer morgen5s6 3mos mo3s4ta moster4 3mot mo3ti m1o2x mo1y 1mÃķ mÃķ2c 4mÃķk m1Ãķl 4m1p mpa3ne m2pf mp4f3erg mpf3erp mpf3err mp4f3erz mp2f3l mpf1or mp1hos m3pi mpi3as. m4p3lem. m2p3len m2p3les m3pon mp3ta m3pu 2m1q 2m3r2 2m1s m2san ms3and m4sap ms1as m2sau m3sÃĪ m3sc msch2 m4sco m3se m4s1ef ms1erw m4sex ms1ini mso2r ms1ori m2spÃĪ m2sped ms2po m2spot m2spro ms2pu ms3s2 m4stag m3stel m3s2ti m3sto ms4tr ms5trÃĪ ms5tren m3s2tu ms4tÞ m2sÞ m3sy 2m1t mt1ab mt1ak m3tam mt1ar mt3are mt1ein mt1elt m2t1erf m4t1erg m2t1erl m2t1ers m2t1ert m4t1eta m2t1eu m2th mt3ho m3ti m4t1im m4t1ins m4tint mti2s mtmen2 m3tÃķ m4tÃķl mt1Ãķs m2trÃķ m4ts1 mt2sa mt2se mt3s2ka mt2spr mt4s3tÃĪt mtt2 mt1um mt1urt m3tÞ mt3z 1mu mu1a mu3cke 2m3uh mu3la 2muls 3mun mun2d1a 4m3unf 4m3ungeb mu3ni m4unk m2unr munt2 4munz mu3ra mu4r1u2f m4us 3mus. mu4s1a 3musc 3musi mu2s1o mu2sp mus3t mu2su mut1au muts3t mut4str 1mÞ 2mÞb 3mÞh mÞ2her mÞl4len 3mÞn 3mÞt mÞtter3 2m1v mvoll1 2m1w2 mwa2 mwa4r mwel4 mwelt3 mwu1 1my my4s 2m1z 1na 3na. 2n1ab na2bÃĪ 4nabg 4nabh na2bl n2abo na2br 4n3abs 4nabt 3nac na2ch1 na3chen nach3s nach8ters nacht8raum 4nadd n2ade 4n1a2dr n1af na1f4r 3n2ag na2gem 3n2ah na2h1a n4ahm n3ahn 3nai nai2e n1aig 2n1ak na2ka 3nako n2al. na2l1a2 na4lal na2lÃĪ 3n2ald n4ale na4lent na2let nal3l2a nalmo2 na2lop nal2ph n2als. nal3t4 na2lu 2naly n4am. 3name na3me. n4amen namen4s3 4n3a2mer na3m4n 3namo 2n1amt namt4s 2n1an. 4n1a2na 4nanb n1and2 4n1ang 2nanh 2nani 4nank 2nanl 3nann na3no n1anp 2nanr 4n1ans 2nantr 2nanw nap2si n1ar 5nar. na2r1a 2narc n2ard 4narg 3nari n2ark n2arle 2narm 4nart n3arti na3r2u 3nas n2as. na4schw 4nasp 4n1a2sy nasyl2 3nat n4ata n3a3t4h na4the 4n1atm nats1 nat4sa nat4sc 4natt n1au 4nauf nauf4fr n3aug 5naui 3n2aul 4nausb 4nausg n2auso 4nauss 4nausw navi5er. navi5ers 1nÃĪ 3n2ÃĪc 3nÃĪe 2n1ÃĪhn 3nÃĪi 2n1ÃĪ2m 2n1ÃĪn nÃĪr4s5 n1ÃĪrz 3nÃĪs nÃĪ2sc n2ÃĪss 2nÃĪu 3nÃĪ1um 2n3b4 nbe2in nbe3n nbe3r2e nbes4 nbu2s nby4 2n1c n3ce2n3 nch3m n2ck 2n1d nd2ag n2d1ak n2danl nd1ann n2d1anz ndat2 n2d1au nd1c nde4al. n2dei nde4lÃĪn n4dentl n4d3ents nder6lÃĪs nde4rob nder5ste nde2se nde4spe ndi2a3 n2dob ndo2be ndo1c nd1op nd1or ndo2ri n2dÃķ n2d3rat n2d3re n2drob nd3rol n2drÃķ n2d3run nd2sor nd2spr nd3th nd3ti ndt4r n2duns ndy3 1ne 3ne. ne2ap ne3at ne2bl 2n1ebn 2nec 3neca 3ned 2nee3 ne2e2i4 ne3ein n1ef neg4 2ne2he. 2nehen2 3nehm 4n1ehr 2n1ei 4neier 4neif 3neigt 4n3eing 4n3eink ne2ke nek3t4 ne2l 3nela nel3b 2n1ele 4nelek 4nelem ne3len ne3li 3nelk n2ell nel4la 3ne3lo 3ne3lu n2em. 2n1emb nem4e n1e2mi 2n3emp 2n1ems 3nen n4en. n2en3a4 ne2nÃĪ n2enb n2enc 4n1endb 4n1endd 4n1endf n1endg 4n1endh 4n1endk 4n1endp 4n1endt 4n1endw ne2n1e2b nen3ei nenen1 ne4nene n2enf 4nengb nen4ge. nen4gen 4nengs 4nengt n2enh ne2ni n2enj nen3k ne2no n2ens nens4e nen3sk 5n2en3t2a n1entb 4n1entl 4nentn 5nentr n1ents 4n3entw 4nentz ne2n3u n2env n2enw n2enz ne2ob ne1os 2nepf 2n1epo ne2pos n2er. ne1ra ne2rab ne2r3af ne3r4al ne2r3am ne2ran ne2rap ne2rau nerb2 4nerbe. 4nerben n1erbi nere2 ne2reb n1erf 4n5erfo nerfor4 2nerfÞ 3nergr n1erh 4n3erhÃķ 3neri n2erj n1erk n2erli 2n1erlÃķ ner4mit n2ern. n1ernÃĪ ner4neu 4n1ernt ne1rÃķs n2erp 3n2ers. n3ersa n2ert. ne2rup n2erv 2n1erz 3n2es n4es. nes4c ne2sei ne2sev nesi1 ne3ska nes1o ne2sor ne2s1pa 4n3essi ne1sta nes3ti ne2tad ne2t1ak ne2t1an ne2tap n1etat ne2tau ne2th net3ha nett4sc n1e2tu net2zi ne2u neu1c neuer4f neuer4k neuer4s neuer4w neu3g 2n1eup neur2 n2ew 2n1ex 3nez 1nÃĐ 2n1f nf1ak nfalt4 n3far n3fi nfi4le. nf4l nf5lin nf2o nfo1s nf4r nf3s nf2tan nft2o nf2t3r nft4st n2f1u 4n1g ng2abs n2g1ac ng1ad n2g1ak n2g3a2m n2g1and ng2anf ng1anz n2g1ÃĪl ng3d4 n3gef n2g1ein ng2en ngen2a n3ger nge4ram n4g3erse nge4zÃĪn ng3g4 ng3hu n2g1i2d n2glic n2glo n3g2loc n2gn ng3ne ng1or n3gra ng3rat ng3roc ngsa4g ngs3au ngs3c ng4s3e4h ngs3pa ng3ts n2gum 2n1h4 n3han n3har n3hau n3hÃĪ n3he nhe2r n3hu 1ni 3nia nib4l nich1s nicht5er nich8ters n1id 3n2id. ni2de ni3dr n4ie nie3b ni1el nie3l2a nie4n3 ni3ene ni1ero nifes3 nig2a 2n3i2gel 2niget nig3r ni2gre nig4sp 3nik ni2kal ni2kar ni3ker ni4k3ing ni3kl ni2kr 3n2il nim2o 4n1imp nin1 3n2in. n2in2a 4n3ind 2ninf 3n2ing4 4n1inh ni2nor 2n1ins n2ins. 4ninse 4n1int 2n1inv ni2ob ni3ok ni3ol n2ip ni3ra 3n2is ni4schw ni2s1e ni3se. ni2s1p ni3spi nis3s4 ni2s1u 2nit ni2ti nit4r nitts1 nitt4sa ni3tu ni3v 3nix n1j 2n1k n2k3ad n2k1ak n3k2al n4k3alg nk2am n2kans n2k3aus n2kÃĪh n2k1ÃĪp nke2c nke4lei n3k2er n4k3erfa nk4erg nk1inh n2k1ins nk3len nk3les n3klin nk2lo nk4na n2k1ort nk2Ãķf n2kÃķl n2k3ro nk2s1al nks2ei nk3s2z nk2tak nk2tan nkt1it nk4top nk2tru n2kÞb 2n3l2 2n3m4 nmen2s 4n1n nna2be n2nada n4n1all n2n1an n5nat n2nau nn3d nn4ens n4nents nner4fÞ nn2erh nn2erk nne2rÃķ n4n3er4wa nner2z nne2s1e nne4st nn2ex nn3f nng4 n3ni n2nof nn1o2r nn3sc nn3se nn3s2p nn4s3pe nnst4 nn2th n2n1uf n2n1unf nn1ur nnvoll4 1no 3no. no2bla n2o3ble 3noblo 2n1ob2s no1c noch4r 2no2d no3dr n1of 2n3o2fe n3ole no2leu n2on. 3n2opa 3nor. nor2a no2rad n2o1rak no3ral 2norc nor4da nor2d5r 3norh 3norm 3nors n1ort 3n2os. no3sh no2s3p n2oste nost1r 2nostv nos2u no3tab no2tÃĪ no4t1ei no2tel no3t3h no4tha no2t3in no2top no2tr 3nov 3now 2n1o2x 3noz 2nÃķd 2nÃķ2f 2n1Ãķk 4n1Ãķ4l 1n2Ãķt 2n3p4 npa2g npf4 npro1 npsy3 2n1q 4n3r2 nrÃĪu3s nre3sz nrÃķ2s1 6n1s n2s1a2d n2s1all n2sang n2sant n3s2arg n2saus n2s1ÃĪn n2s1ÃĪus ns2ca n4schl. n3schu nsch7werd ns1eb nse2ha2 nseh5ere nsen4sp ns1ent ns1erf ns1erg n2serh n2s1erk n2s1erÃķ ns1ers n2s1erw n2s1erz n3sex nsfi4l n3sil n2simp n2s1ini nsinn4s nsi4te nsi2tr ns2kal ns2kel n2s1op n4s3ort. nsp4 n2spat n5s4pen n4speri n4spers n4sph n3s2pi ns4pie n2spo ns3pon n2sprÃĪ n4s3prie n4spro nsrÞ2 ns3s2 nst1ak n3star n2stas n3stat n4stat. n4s3tate nst3eif n3stemm ns4tent ns6terbe n5s6terne n5s6terns ns2ti ns4tic ns4tob nst5opfe ns4tor n4strac n4strie nst4ru ns4trun ns2tu nst2Þ nstÞ1b n2sty ns2um n2s1un ns2ung ns4unr ns4uns n3sy n4s3zi 2n1t nt3abs n3t2a3c n3t2al nt1ang n4tanza nt2arb nt1ark nt4at nt1ÃĪm n2t1ÃĪu nte3au nte2b nt1ebe nte1e nte3g6 nt1eh nt1ein nte5lei nt2en nt4ene nten6te. n3ter nte4ras nt4erh nt4ern nt4ers nt4ert n4t1ess nteu3 nte3v nt2her n2t3ho n3t4hu nti3c nti3k4l n2tinf n2t1inh ntini1 n3ti1t nt4lem ntmen2 ntmo2 n3to nton2s1 n3tÃķ nt3rec n5t4ree nt3reif n5trep nt4rig n5trop n2t3rÞ n4ts nts2o nt4spar nts2t nt2s3to nt3su n3tu 3n4tu. ntum4 ntu2ra ntu4re. ntu4res n3tÞ nt3z 1nu. 1nu1a nu4ale nu3ar nubi1 1nu1c 1nud 3nue nu2es nuf2 nu2fe 1nug 2n1uh 1nui nu3k4 n2um. 2n3umb 2numf 2numg 3numm 2numr 2n1ums 2n3umz nu2n 2nuna nunf2 1n2ung4 3nung. n3ungl 2n1uni 2nunt 1nuo 2nup 2nur 3nu2s nu3sc nu3se nus1i nu3sl 1nut nu2ta nu4t3r 1nuu 1nux 1nuz 3nÞ. 2nÞ4b nÞr1c 3nÞs 1nÞt 2n1v2 n3ver nvol7ler 4n1w 1ny. 1nyh 2nymu n1yo 1nyr 1nys 1nyw 2n1z n2z1a4g n2zan n2z1au nz1ÃĪn n2z1ÃĪr nzdi1s nze6l3a n4zense n4zentw n4zentz nz3erwe nzi2ga nzig4s nz1ini nz3le n2zor nz2Ãķl nz3s n2zurk nz1wa n2z1wÃĪ n4zwir n2zwÃķ n2z1wu Ãąo1 2o3a2 o4abi o4ac oa3che oa3chi o4ad oa3de oa4g o4a3i oa3ke oa4k1l o4a3la o4a3mi o2as 3oa3se o4at o5au o1ÃĪ o1b ob2al obal2t1 2oban o3bar 2o3b2ÃĪ 2obb ob2e 2o3be. 2obea ob3ein obel2i 2o3b4en oben3d4 oben3se ober3in4 obe4ris 2obew 2o3b2i obi4t ob3ite 1obj ob1l ob3lei 1o2b3li 2o3blo2 2o3bo o2b3re ob3s2h ob3sk obs2p ob2sta ob3sz 2o3bu obu2s 2o3bÞ 2oby4 2oc o3ca oc1c o1ce och1a ocha2b o1che oche4b o2ch1ec och1ei ocher4k och3l och3m och1o och3Ãķ2 och3r och1s ocht4 och3te o1chu ochu2f och1w o1ci o1ck o2ckar o3cke ock2er o3cki o2cko ock3sz o1cl o1ç o1d o3d2a od2dr o3d2e1i odein3 ode2n1 odene2 odesi1 ode3sp o3dex 2o3dia odi4er o3dir o3div o2don odo4s 2odr o2dre odt4 2o3du o3dy 2o1e oe2b o2ec oe2d oe2h oe2l oe2n1 o4es o2et o3et. o3ets oe2x o1ÃŦ 2ofa of1a2c of1au o2f1ei of2en o3fer of2f1a of2f1in 1offiz of2f3l of2fo of2f3r offs2 off3sh of2fu 2ofi of3l of1la of4lÃĪ of4lÃķ 2ofo 2o1f1r of3ra of3rÃĪ of4rÞ ofs1a of4sam of2spe of2spr of2s1u 2oft of2tei of3th 2o1g o2g1ab oga3d og1ala og1ang o2g1ei oge2l1i o3gh ogi2er og2lo og4n ogo4i og3s2p og1ste o1ha o1hÃĪ o1he o2h1eis ohen3s o2h1er4t o2h1er2z o1hi ohl1a oh3lec ohl1ei oh3len oh3lep oh4lerg oh4l3erh oh4lerw oh3lo ohls2e oh2lu oh4n1ac oh3nee 3ohng oh2ni 1ohnm oh2n1o o1ho oho2la oh1o2p o2h3Ãķ ohr3a oh4rin oh1ro oh1s o1hu oh1w 2o1hy 2oi o1i2d o3ie o1im oimmu4 o1in oi2ra oi2re o2isc o3isch. o1ism oiss2 oi1th 2o1j 2o1k oka2la okale4 3o2kel oki2o ok1lÃĪ ok2li ok4n 4okr ok2s1p okt4 2ol o1la o2lab o2l1ak ol2ar olars2 ol1auf o1lÃĪ ol4dam ol4dr ol1eie ol1eis oler2 ole3s ol1ex o1lÃĐ ol2fa ol2fl olf1r ol2fra olf3sp ol2gl ol2gr ol2i oli3k4 ol2kl olk3r ol2kre ol2lak ol2l1au oll1e2c ol2l1ei ol2lel oll5ends ol4lerk oll3erw oll3sp o3lo ol2of olo3p2 ol1ort ol2str o1lu 3oly 1olym ol2z1a ol4z3ern ol2zin ol2zw 2om o2mab oma4ner om2anw om1art o2m1au o2meb om1ebe ome3c o2m1ei o3m2eis o2mel o2mene o2mep omer2 o2meru om1erz om2es omiet1 o2m1ind om1ing om1ins o2m1int om3ma om1org om3pf oms2 omtu3 o4munt omy1 2ona ona2b o2nae o3nal on1ap o2narb on4at on2au 2onÃĪ on1ÃĪh onbe3 2onc onderer5 2one one4i one2n3 onens2 on1erb o2n1erd on1erg on1erÃķ o3nett on3f2 on3g2l ong4r ong3s 4o3ni on2i3d o4nikr o4n1im on3ing on3k2 onli4 onlo2c on3n2an on3n2e ono1 o3nod o2noke on1orc ono3s ons1a onsa4g on4sam on2seb onse2l onsi2 ons3l ons1p onst2h on3t2a ont3ant on4t3end ont3erw on4t3ri o1nu 2onuk on3v 1ony on3z o1Ãą oof2 oo2k3l o1op o1or oo4sk oos3s4 oo2su oo2tr 2o1Ãķ2 o1pa opab4 o2p3ad op3akt o3pan opa5s o1pec o1pei o1pe4n 1oper 2opf. op2f3a op3fah o2pfe op4ferd opf5erde opf1l opf3la op1flÞ 4oph2 o3phe o1pi opi5a4 opi3er. opi5ers. opin2 op5lag o2p3le op3li 2o3po op4pl op2p3r 2o1pr 1opsi op3sz 1op3t4 o1q 2or. or1a or3a2b o1rad 2o1ral o2r3alm or4alt 3oram or2and o2ranh or3arb o1ras or3att o3rÃĪ or1ÃĪnd or1ÃĪt or2bar orb2l or1c 2orca or2ce 4orda or2d3am or4dar or4dau or4d3eng or2deu or4d3ing or2d1ir or2dit 1ordn or2do 2ordr 2ords ord3s2t or2dum 2ordw 2ore ore2a ore2b o2r1e2ck o2r1ef ore2h or1eig o2rein or1er o2rerf or1eth o2r1eu 2orf orf3s4 or3ga 2orget or3g2h 2orgia orgi1e or2gl or3gle or2gn 2orh 2o3ric 4orie. o4rient o3rier 4oril 4orin1 or1ins ork2a or2k3ar ork4r ork2s 2orm or4mans or4ment 2orn or2na2c or2n3ar or2n3ÃĪ or5ne. or3n2o1 2o1ro or1o2b oro3n2a 2o1rÃķ 2orp 2orq 2orr orr4a or3re or3rh 2ors2 or3sa or3sh or3sz or2t1ak or4t1an or2t1au or2tÃĪr or2tef or4t3ent ort2er or4t3ere ort3erf ort3erk ort5ersc or2t3ev or2the ort3ins or4t3off or2tor or4tÃķ or4trau or4t3rÃĪu ort3ric or2t1um o3ru or2uf o4r3un o2r3Þ o2rya 2o3s2a os3ad os4an osa1s o4sca osch3ar o3sche osch3le os4co 2o3se ose3e o2s1ei ose2n o4sents os2ex 2osh o3s2hi o1sho 2osi o3sk o4ska os3ke o4ski 2oskl 2os2ko os2lo 2oso 2os1p os2pe os3pec o3s2po os2sa oss1a2c oss3and os4sÃĪ os2sei os4s3en4k os4s3enz os2s3o os4son os2s3p os2s3t ost1a2b os4t3am ost3ang os3tarr osta4s ost1au os4tei oster3e os6t5er6we os2t3h os3til os3to os4tob ost3ran ost3rÃĪ ost3re ost3rot ost3uf 2osu4 os1um 2o3sy o3s2ze o2ß1el o2ß1en2k o2ß1enz o2ß1ere o2ß1erf 2o1t ota2go o3tark o2t1au ot3aug ot1ÃĪ o2teb o3tei o4t1eib ote1i4n ote3ine ote2l1a ote4lei ot2em3 otemp2 o2t1erw ote2s 4ot2h ot4he ot5hel o4t3hi ot3ho o2thr o2til o2t1i2m ot2in otli2 ot4ol ot1opf ot2or oto2ra oto1s o3tra o2t3re ot3rin ot2sa ot3sc ots1p ot4spa ots2pe ot2spr ott1a ot2tan ot2teb ot4terh ot4terk ot2th ot2t3r ot3t4ra ot4tri o3tÞ o2u oub4 ou2ce ou1f4l oug2 ou2ge ou3gl o3uh ou4le. o3um o3unds oun4ge. 2our ouri4 our4ne. ou3s2i outu4 2ouv 2o1Þ o1v ove3s 2ovi oviso3 2ovo 2o1w o3wec owe2r1 o3wi o1x 2ox. ox2a ox2e ox3l o2xu 1oxy o1yo oy1s4 2o1z o3z2a oz2e ozen4ta o3zi ozon1 Ãģrd2 Ãķ1b Ãķbe2la Ãķbe4li Ãķb2l Ãķ2ble Ãķ2b3r Ãķb2s3 Ãķ1c Ãķch1l Ãķ2chr Ãķch2s Ãķchs4tu Ãķ1d Ãķdi3 Ãķdien3 Ãķd2st 1Ãķdu Ãķ1e 1Ãķf Ãķf2fl Ãķf3l Ãķgen2s1 Ãķg3l Ãķg3r Ãķ1he Ãķh3l2e Ãķh3ri Ãķ1hu Ãķ3ig. Ãķ3isch. Ãķ1ke Ãķ2ko1 Ãķk3r Ãķk2s 3Ãķl. Ãķl1a2 Ãķl1ei Ãķl1em Ãķl4en Ãķl2f1ei Ãķlf3s Ãķl1im Ãķl1in Ãķl2k3l Ãķl3la Ãķl2nar Ãķl1o2 Ãķls2 Ãķl3sa Ãķl3sz Ãķ2l1u Ãķl2ung Ãķlz2w Ãķ1m Ãķm2s Ãķn2e Ãķ3ni Ãķnizi1 Ãķnn2e Ãķn2s Ãķn3sc Ãķn3sp Ãķ1nu Ãķo1 Ãķot2 Ãķoti1 Ãķ1pe Ãķpf3l Ãķp4s3t Ãķr3a2 Ãķr2b3l Ãķr1c Ãķr2dr Ãķ2r3ec Ãķ2r1ei Ãķ2r1e2l Ãķr2erg Ãķr2erk Ãķrer2l Ãķ3r2erz Ãķr2f3l Ãķr2gl Ãķ2r1im Ãķr2kl Ãķrn2e Ãķr1o2 Ãķrs2e Ãķr3s2k Ãķrt2e Ãķru4 Ãķ2r1une Ãķ2sa Ãķ2scha Ãķ4sch3ei Ãķ2schl Ãķ2sch3m Ãķ2schw Ãķ2s1ei Ãķ2sp Ãķs2s1c Ãķs2st Ãķ2st Ãķs3te Ãķs2th Ãķs3tr Ãķ3su Ãķ1ß Ãķ1t Ãķ2t3a Ãķte4n3 Ãķt2h Ãķts2 Ãķt2sc Ãķt2tr Ãķ1v Ãķ1w Ãķ1z Ãķze3 Ãķzes4 p2a 1pa. 1paa 1pac pa3da pa2dr pa1f4r pag4 pa3gh pa1ho 1pak pa1k4l pak2to 3pala pala3t 1palÃĪ pa3li pal2ma pal2mÃĪ pal2m1o 2palt pa2nar pa4nat pan3d pan4ds pa2neu pank4 2panl 2pann 1pa2no pan3sl pant2 panz4 1pap papi2 papieren8 papie8r7end 1para pa2r3af par3akt 1parc pa5reg pa5rek 2par2er 2parg pargel6d 1park. par4kam par4kau par2kr 1paro 2parp 1partn 1party par3z2 pa3s2p pa4st 2paß pat1a pat4c pate2 1pati 1pa5t4r 1pau p3auf pa3uni 1pÃĪ 3pÃĪ2c 3pÃĪd 3pÃĪr 3pÃĪs pÃĪ4t1e2h pÃĪ4t3ent pÃĪ2t3h pÃĪ2to pÃĪt3s4 2p1b 2p3c 2p1d2 pda4 p2e 1pe. pe2a pea4r pech1 1ped pe2en pef4 pei1 2peic pe1im pekt4s 2peku 1pel pe2l1a4 pe4lein pe2let pe4leu pe2lex pe3li4n pe4l3ink pel3k pell4e pel3t 1pem pena4 pe3n2al pe2nÃĪ pen3da pe4nen 1penn pe2n1o 3pensi 1pensu penz2 1pep pe1ra per2an 1perle per4na 3pero per2r1a 1pers 2perse 2persi 3perso 1perÞ perwa4 pe3sa pes3s2 pe2st pes2th 3pet 1pÃĐ 4pf. p2fab p2fad p2faf pf1ai p2f1ak pf1ans p2fa4r pf3are p2f1au 4p3fe. p2fei pf1eim pf1ein p3fen. p2fent p3fer. pf2erw p3f2es pff4 p2f1in3s pf4lan p2f3lÃĪ pf4leg pf3lei pf3lo p2for pf3r pf1ra 3pf4ro 2pfs2 pf3sl pf3sz 2pf3t 2pfÞ 2p1g pgra2 1ph 4ph. 2phÃĪ 2phb 2phd 2p1hei phen3d phen3s 2ph1ers 2phf 2phg phien3 phi2ka 2phk ph2l 2phm 2phn p3hop 2phÃķ ph4r 2phs pht2 2ph3the phu4s 2p1hÞ 2phz pi2a3 piap2 pias4 pi3chl p4id2 piegelei8 pi2el piela2 pie4lei 3pier 3pik 1pil pi3le pil4zer 2pind pin2e pingen4 ping3s 3pinse pi2o pi3oi pi3onu 3pip pi2pe pi3ri 3pirin 3pis 4piso pi3t2a pi1th pit2s 2pitz pi2z1in p1j 2p1k2 pku2 pkur1 1p2l4 4pl. 3p4la p5la. p5lad plan3g 3plÃĪ 2ple. ple1c ple2e p4leg ple5n2 2p3ler 2plig p4lik p4liz p4lo 2p3lu 2p1m2 2p1n 1p2o po3b4 po1c 3pod 2poh po2i po3id 3poin 3pok 3p4ol po2lau po3li po4lor 2pond po1o2b po2p3ak po2p3ar po1pe po2pl po3pt po1rau porf4 por3s por4tin por4tre por6tri pos2e po4sta pos4t3ag po4stÃĪ po2s3te post3ei po2sto pos6tr post3ra po3ta 3pote po2t1u po2w po3x pÃķ2bl pÃķ2c 2p1p p2p3a2b pp3anl ppe1e ppeli5ne ppe2n1 ppf4 pp1fr p2p1h p3p2ho p2p1ia pp3l pp1lÃĪ p2ple pp3oh ppp2 p2p3ra p2pri pp3sa ppt2 p2r2 1prak 1prax p4rÃĪ 1prÃĪd 1prÃĪg 3prÃĪm 3prÃĪs 2pre. 2prec 3pred pre2e1 1prei 3preis prei4s3c 2preiz 2p3rer 3p4res pri4e 2prig 3prinz pri2t1 priter4 2pritz 1p4ro 3prob 2proc 3prod 3prog 3proj 2pross pro1st 3prot 1prÞf 2prÞh 2prÞn 2p1s 4ps. ps4an p3se p3s2h ps1id p2sÃķ ps2po p2st p3sta p3stea p3stel p3s2ti pst3re ps2tu p3stÞ 3p2sy ps2ze 2p1t pt1a pt2ab pt3alb pt3at p3te p4t3ec p4t1ei pte4l p4tele p4t1ent p4t1ep pt3erei p4t1erw p4t1erz p2th pt1in1 p4tos pto2w p2t3r pt3s2 ptt2 pt1um pt1urs ptÞ4 3p2ty pt3z 1pu pu1a pub4 2puc pu2dr 2p1uh 2puk pul2sp 2pund 3punk pun2s 2punt 2pur pu3ri pu2s3t 3put put2s 1pÞf 2pÞl 2p1v 2p1w pwa4r 3py1 pys4 py3t 2p1z qu4 que4te. 1queu 1ra. 2r1aa ra2ab 3ra3ar 3raau r1ab ra2bar rab2bl 2rabd r2ab2er 2rabf 2rabg 1r4abi ra2br 2rabs 2rabt ra2bÞ 2r3abw 1raby ra1ce 2r1acet ra4cheb ra4chin racht3r rach6trÃĪ ra2chu r2ack r2ad r4ad. ra2dam 2radap 3radf r3a2d3r rad5t4 1ra2e ra3er r2af raf3ar ra2fer ra3ge ra3gle ra2gn 3r2ahm 2raho 4raht r2ai 2raic rail4l 2r3air 3ra1k4l ra2kre ra2kro 2rakti 3rakÞ r2al r4al. ra2la2 ral3ab rala4g r3alar ral3b 3r4ald ra3le 2ralg r4ali rali5er. rali5ers ralk2 ral3la rall2e 2rallg 2r3alm. r3alp. 2ralpe r4als r3alt 2ralta r4al5t2h ra2lu 3raly rama3s ra2mer 1r2ami ram4man ram6m5ers ram4mu 2r1amt ramt4s r2an. ra5nat 2ranb r2anbe 4ranc r4anda r4ande ran4dep ran4d3er rand3s 4r3anei r4aner 2ranf 1rangi rani1e ran2kr 2ranl 2r1anm r2anmu 2r1anp 2ranr r2ans. r2ansp ran4spa ran2th 2rantr 2r3anw r2ap 2rapf ra2pri r1ar r2ara 2rarb 3rarei rar3f4 ra2r1in r2ark 2r3arz r2as r4as. ras2a ra4schl 2rasph 2raß 1rat r4at. ra2t1a rat2o rat4r 2r3atta 4ratz 4rau. 3raub. 4raud rau3e2n 2rauf 2raug 3raum rau4m3ag rau4man rau2mi 3raup 4raur 2rausb 2rausg rau2sp raus5se raut5s 1raÞ r2ax raxe3 3r2ÃĪd 4rÃĪf rÃĪ1fr 4rÃĪg 2rÃĪh 2rÃĪm 3rÃĪn. 3rÃĪni 3rÃĪns 2r1ÃĪr r2ÃĪr. rÃĪ3ra rÃĪ4sc 3rÃĪtse rÃĪ2u 4rÃĪue 4rÃĪun rÃĪu2s rÃĪu5sche 4rÃĪut 4r1b r2b1ab r2b1a2de r2bak rbal3a rba3re rb1art rb1auf rbb2 rb1ech rbeid4 r4belÃĪ r4belis r3ben. rb1ent rbe3r2e rber4gl rbla2d r2blan r8blasser r4b3last r3blÃĪ r2ble. rb3ler r2bleu rb2lin rb2lÃķ rb2o rb4ri rb2s rb3se rb4sei rb3ska rbs1o rb3sp rb4stÃĪ rb2u rbu2sc rby4t 2rc r1ce r1che. r1chen r1chi rch3l rch3m rch3r rch1s2 rch3sp rchst4 rch3t2a rch6terg rch6terw rch1w r1ci r2ck r1cl r1ç 2r1d r3da r4dab rd2ac r4daf r4d1ak r4d1al rd2am rdani1 rd1ant rd1anz r4dap r2dei rd2ei. r4deis r2d1elb r3den rden3d rde3re rder4er rderin6s r4d3ernt rde3sp rdgas3 rdi3a2 rdia4l r2d1inn rd1it rdo2be r3don rd1os r2dÃķ rd3rat rd4ri rdt4 rd3ta rd3th rdwa4 1re 3re. re3aler re2am re3at. re3ats 2reÃĪ re2b1a re2b1l reb1r reb3ra re2bÞ r2ech rech3ar 4rechs 2reck. re2cka 2recki 3red. 4redd 2redi re1el re1er 3refe 2reff 3refl 3refo 3reg 5reg. rege4l3ÃĪ 2reh re2hac re4h3ent re2h1i rehl4 reh3n re2h1o r2ei. r2eie 2reig rei3l2a rei3l2i 3reim reim2p r1ein 4reinb rei3nec 4reing r3eink 4reinr rein8s7tre re1in2v reister6 3rek 4re2ke re3la 2r1elb rel2e re3lei 2re2lek 2r1elf re3lo 2r1elt relu2 r4em. r2emi 4rempf 4remu r4en. r2ena rena2b re3nal re2nÃĪ 3rendi ren3dr re4n3end ren2gl 2rengp re2ni ren4nar ren3sau 2r1entg 2r1entl 2r1ents 2rentw 4rentz r2enz ren2zw re3or 3repe re4pis 3repo 4repp 3r4er. 2r1erb rer2bi r4erbil r2erbr 2r1erd r1erf r2erfe r2erfl r1erg r4ergen r1erk 4r3erken r2erki 2rerkl 2r1erl 5rerlag 2r1erm rer2n 2r1ernÃĪ 4r3erns 4r3ernt r2e1ro re2rob r1erÃķ 3r2ers. 2r1ersa r2erse 2rersp r1ert r2erte 2rertr 2r1erz rer5ze r2erzy 3r4es. re2sa re4schw 3rese 3reso 2ress ress2e res6s5erw 3rest re1sta re2s2tu 3resu re2thy re2u reu3g2 2reul re3uni 2r1eur 2reÞ 2r3evid r1ew rewa4r re2wi 4r3e2x1 3rez 4rezi 1rÃĐ 2r1f r2fent rf2es rfi4le. r2flan rf3lic rf3lin rf4lÃķ r3flÞ rfolg4s r3for rf4ru rf4rÞ rf2sa rf2s1ÃĪ rf4s1id rf2spr rf2s3t rf2ta rf3t4r rf2u 4r1g rg2ab r2g1a2d r2g1ah r2g1ak rg2an rge4an rge2bl rg2el rge4l3er rgen4z3w rge4ral rge4tap r2geto rgi4sel r3gla r2glan r2gleu r2glig rg2lÃķ rg2lu r2gna r2gno r2g1ob rgÃķ2 r2g1Ãķd r2g3ral r2greg r2gres r2gret rg3rin rg3sp rgs2ti rgs4tr rg5s2tu r1h4 2rh. 2rha r2ha. r3hals 2rhÃĪ 3r4he. 2r3her r2hoe r3hof rho2i3 2rhol 2rhÃķ 2rhs rhu2s 1ri ri3am ria1s ri3at rib2bl ri1ce ri1cha ri2dan ri2dau rid2g 2ridol 2ridy r2ie rie2fr ri1el ri3els riene4 ri3eni rien3s rie2nu ri1er. ri4ere ri3ers. ri3esti ri1eu ri2f1a ri2f1ei ri2f1er ri2f1o ri2fr rif3s rif4ter 3rig ri4gene 5rigj rig1l 4rigr rik1l ri4kla r2imb ri2me. 2rimp rim2s rim4sc r2i3na 2r1ind rin4dex rin4diz ri3n2e rine1i 2r1inf rin2fo rin2ga ring3l rin2gr 2r1inh 2rinit 2rink rin2kl 3rinn 6r5innenm 4r3inner 4rinnta r1innu 2rins 3r4ins. rin4so rin2sp r4inspi 2rint rin4teg rin4t5r 2r1inv 4r1ir r2is ris2a ri4scho ri4schw 3risik rismu2 ri3so ri4s1p 3riss ri4st ris6t5ers r2it r3i2tal ri3t2i ri3t4r rit2tr 5ritu rix1 1rí 2r1j 2r1k rk2am rk4ap rkauf4s r2kÃĪh r3kla rk4las rk4lau r2klis rk2lo rk2lu rk4n r2k5nu rk3rÃĪu r2k3rea r3kri rk2s1e rk2sp rkstati6 rk4stec rk2ta rk4t3eng rk4t3erf rkt3ers rk6tersc rk4t3erw rk4t3erz rk2tin rk2t1o2 rk2t3r rk3tra rk4tri rk2um rku2n rk1uni 4r1l rl2ab r5lag r5lan r2l1ar r2l1a4sc r2l3aug rl2e rle4a r3lec rle4i r3let r3l2i rli2s r3l2o rlÃķs3s rl2s1p rl3ste rl2s3to rl3t r3lu rlz2 4r1m r2mab r3m2ag rma2la r2m1ald r2m1ank rm1ans rm1anz rm1a2p r2maph rm3d2 r2m1ef r2meo r2m1erp rm2es r2mide r2m1im r2m1o2ri rmo1s rm3sa rm3sta rmt2a rm2u rm3ums 4rn rna2b rna4n rn2and rn3ani r2n1anz rna2r rn2arb rn3are rn3ari r2nau rnd4 rn3dr r3ne rn3e4ben r4nef rn2ei rn3eif r4n3eis rne2n r4n1ene r4nerf r4n1erg rn4erhi r4n1ert rner4ve r5nes rn2et rne3uf r4nex rn3f rng2 r3ni r4n1in r3nod r2n1op r2n1or rn1Ãķ rn3sa rn3s2ÃĪ rn3s2p rn3s2z rn3t2e r1nu rn1ur r1nÞ r1ny ro2bei 2robj 1robo 2robs ro1c 3rock. r2o3de ro3e4 roh1l 3r2ohr 3roi ro1ir ro3le rol4lan rol3l4en rol3s 2roly 4rom. ro2mad ro2mer 4romm 4romt r2on ro4nerb 3ronn rons2 ron4tan 4ro1ny ro1pe 2ropf ro3ph r1or r2ora ro2r3al ro2rat ro2rei ro2r1o ror3th ro3sh ro3s2i ro3smo ros4san ros2s1c ro3sta rost1r 4roß ro2ßu ro4tag ro2tÃĪ ro2tei ro2tho ro4tri rots2o rot2ta ro3t2u ro3unt 3rout rÃķ2b3l rÃķ2du 2rÃķ2f 3rÃķh r1Ãķk 1rÃķl 3rÃķmi 4rÃķp r1Ãķr r2Ãķs. r2Ãķse 3rÃķtu 2r1p2 r3p4a r3p4e rpe2re rpe4r3in rpf4 r2pli rpro1 rps3t rp3t r3pu 2r1q 2r1r rr2ab rr2ar rrat2s rr1ÃĪm rrb2 rr1c rr2e rre4ale r5rega r5rei rre2le rre2pa rrer4s rre2st rre2ve r2rew rr2he r3r4hen rrik2 rr2n3a r3r2o r4r3ob rro3m rr2st rr3stu rr2th r3ru r3r2Þ rrÞ1b 4r1s r2s1a2d r4samp r4s1amt rs2an r2s3ang rs3anp rs3ant rs2au r3sche r6scherl r3schu r3schw r2sein rse2n1 rs2end rse4ne rs1ere rs1erÃķ rs1ers rs1erz rse2t rs1eta r3sho r3si r4sins rs2kal rs2kan rs2kie rs2kis rs2kl r4sko r4skr r4sku rs3l rs4no r3so r4sob rson4e r4s1op r4sord r4s3ort. rs2p4 rs4pel r2s3ph r5spi rs3s2 r4stant r5statu r6st5eing rs4temp rster2 rs4terb rs4t3erw rs2th rs2ti r3stie r5stim r2stin rst3ing r3stink r2stip r3sto rs4tob r4stot r3stÃķ r3s4tr rst3ran r6strang r4strun rs2tu r3s4tÞ r2sumf r3swi r3sy 4r1t rt4abl rtal2 r2t1alm rtals1 rt1am rt1ang rt1ann rt1ant r2t1ar rt3a4re r2t3att rt1ÃĪr rte1e2 rtei3la rt1ein rtei1s4 r2telf r2temo rte2n1 rte4na rten3s2 rt3erei r4terfa r4terfo rt1erh r4t3er4la rter6mit r4t3ernÃĪ rter4re rt1ers rte3s2k r2thi rt2hum r2t1id r2t1ima r2tinf rt4is rto1p rt1or rto2ri r3tÃķ r4t3rak rt3rec r5tri rt3ros rtrÞ2c r4ts rt4s1eh rt2so rt2spa rt3t4 r2t1urt r3tÞ rt3z rtz2a 1ru ru1a ru3a2r3 rube2 ruch3st ru6ckerl ru2cku rude2a ru2dr 3ruf ru2fa ruf2s3 ruf4ter 2r1uhr ru1ins ru1is 2rum 4rumf ru2mi 4ruml r2ums. 4rumz 2r1una 2rund run2d1a r2unde rund3er run6derf run6der6l run6ders run6derw 2r1unf 2rungl 2r1u2ni 4r3unio run2kr 2r1unl 2r1unm 4runn 4r3unt 2runw ru3pr 4r3ur ru2ra ru2r1e 5ruro ru2si rus2s1p rus4st ru2st ru3sta 3rut ru4tei rut3h ru2t1o2 ru2t3r 4ruz ru2zw 1rÞ 2rÞb rÞ1ben rÞ1ch rÞck5sta 4rÞmm rÞn3z 2r1v rve4n1e 2r1w r5wei rwun3s 4r1x 1ry ry2c rysti1 2r1z rz2an r2zar r2zas r3ze. rz1eck r5zene rz1eng r4z3ents r2z1erf r2z1erg r2z1erk r2z1erw rz1id r3z2of rz2Ãķ rz3te rz2th rz2t3ro rzug2u r3zÞ r3zwÃĪ r3z2wec 1sa 3sa. 3s2aa 2s1ab sa2be 3sabet sa2bl sa3ble sa2br 4sabs 5sache sa2cho2 sach3t 5sack. 2s1ada s1adm 2s1a2dr 3safa sa2fe 2s3aff 3safi sa1f4r 3saga sa4gent sag4n sa2gr 3s2ai sa3i2k1 sail2 2s1ak sa2ka 3saki 3sakr 4sakt 3s2al. 4s1alar sa4l3erb sa2l1id 3salo sal2se 2s1alt 3s2alz 3sam s3ameri 5samm 6s1amma 4s1amn s1am3p4 sam2to s1an s2an. 2s3a2na s3anb s2an2c 3s2and s4and. san4dar san4dri 3sang. 2s3anh 3sani 2s3anl 2s3ans san4sk 4s3antr 2s3anw 2s1ap s2aph sa2po 3sapr 2s1ar 3sar. 3s2ara 4s3arb 3s2ard 3sari s3arr 3s2ars 4sarti s1asp 4s3a2sy 3sat sat2a 4s3ath 4s3atl 4s1atm sa2tr sa3ts sat4z3en s1a4u 3s4au. 3sauc 3saue sau8erste 2s3aufb sau2gr 3saum 3saur sauri1 2s3ausb s3ausw sa2vo 1sÃĪ s3ÃĪhn 3sÃĪl 4s1ÃĪlt 2s1ÃĪm 2s1ÃĪnd 2s1ÃĪr 3s2ÃĪt 3sÃĪul 2sÃĪuß 4s3b4 sba4n sbe3r2e 1sc 2sc. 2scam s2cap 2scar 2s1ce 6sch. 2schak s4ch2al 4schanc 4schang 2schao s4chÃĪ 4schb 4schc 2schd sch2e 3sche. 6schef. 6schefs sch3ei. 4schemp 3sches 4schess 4schex 2schf 2schg 2schh schi4e s4chil 4schiru 3schis 2schk s4chl sch4lag 4schle. 6schlein 4schmas 2schmÃķ 4schmÞh 2schn. 4schobj 2schox s4chÃķ 2schp 2schq 4schre. 4schrin sch3rom 4schron 4schrou 6schs schs2e sch3s2k sch3sta 4sch3t scht2a scht4r s4chu 4schunt 3schÞ 2schv 4schwaa 4schwet sch4wil 2schz 2scj 4s3cl 2sco 3s4cop 3sco4r s2cr 2scs 2scu 4s3d2 sda3me sde1s sdien4e sd4r 1se se3at. 2s1e2ben seb4r 2s1echo s1echt 2s1e2ck se2dik 3see se1ec se2e1i4 see3ig seein2 se1er. se1erk se1erÃķ 2s1eff sef4l se2gal se2gl seg4r 3seh seh1a se2ha4g se2han se3he se4h1ei se4hel se4herk se2hin seh1l seh3re seh1s seh3t se2hÞb 2s1ei. 2s1eie 2s1eig sei3le s1ein 5s4ein. 2seinb sein4du sei3n2e sein4fo 4seing 2seinh 4seink 2seinl 2seinn 4seinr s4eins. 4seinsa 4seinsp 4seinst 2seinw 4s1eis 3s2eit 3sek 4s1e2ke s2el. se2l1a se3lad sela4g se3lam sel1ec 4selem se4lerl sel3ers 2self. s1elix se2l3Ãķ s2els sel3sz sel3tr s4e3ma 2s1emp 3s2en. se4nag se2nÃĪ 2s1endl 3seni 3senk se2no 3s2ens s2ent. sen3ta 4sentf 2s3entg s2enti 2s1ents 2sentw 2sentz se2n3u seo2r 4s1e2pos 3seq 3s4er. 3sera ser3a2d se2r3al s3ereig 6sereign se4r3eim se4r3enk ser2er 2s1erfo s2erfr s3erfÞ 4ser4fÞl s4ergr s1erh 2serhÃķ 3seri serk4 4s3erken s2ern. 2s3ernt se1rot 4s3erÃķf ser3r s2ers. 2sersa 4serseh s4ert. s2erta seru2 se4r1uf se3rum se3rund 3s4erv 5ses. se2sel se3sk se1sta se3su 3set 4se4tap se2tat 4s1e2th se1u2n 2s1ex se2xe 4sexp sex3t2 1sÃĐ 4s3f4 sfal6l5er sflo4 4s3g2 2s1h 4sh. sh2a 3s2ha. sha2k 4s3han 1shas s3hÃĪ s3h2e 3shi. 3shid 4shil shi4r sh3n s3hoc 4shof 3shop sho4re 3show s3hÃķ sh4r 4shs 1si si3ach. si2ad si3am. 2siat sib4 5si1c 2s1ideo s2ido 3s4ie siege4s sieh1e sie4hes sien3 si3ene si1err sie2s si1f4 3s4ig si2g1a2 sig4n si3gnu si2g3r sig4st si2k1ab si2kak si2k1ÃĪ sik3erl si2ki si4k1l si2kr sik3s sik3t4 si2ku sil2br 3silo 2s1imm si3n4a 2s1ind 2s1inf sing1a sin3gl sing4le sin4gr sing3sa 4s1inh sin1i sini1e 2s1inq 2s1ins s2ins. 2s1int 4s1inv 3sio sion4 3siru 3sis si2sa si4schu si2s1e si2s1o si2s1p sis3s 3s2it si2tau sit3r si2tra si3tu siv1a sive3 si2vr 1sí 2s1j 2s1k2 4sk. 3skala 4skam 4skanz s3kar 4skas skas4tr ska4te. 4skateg ska4tes 4skÃĪ 4skb s4kep 3s2ki. s2kif s2kig 3s2kik 4skir ski1s 3skiz sk4l 4s3klas 3s2klav 4sk4n 4skom 4skor 4skow 4skÃķ s3kro 4sks 4sk3t 3skulp 2s1l2 3slal 4slan sla2ve s2law s3lÃĪ sl3b s3le sler3s s3li 3s4lip sli4tu s3lo. slo3be s3loe 2s3m2 2s3n2 4s5na snab4 sni3er. sni3ers 4s5not 4snÃķ 1so 3so. so4a 2s1o2b so1c so3et 3soft 3sog s1o2he 4sohng 2s1ohr 3sol so3la so2l1ei sol4ler 4so2ly 3som 3s2on son3au sone2 son3end son3sÃĪ son2s1o so3o 2sopf sop3s 3sor. s1orc 2s3ord so2rei so3ren 2s1orga 5s2orge 2s1o2rie so2ro 3sors so4ru 3sos s4os. 4s1ost 3soß so3unt 3sov 4s1o2ve 3sow 2s1ox 3soz 1sÃķ sÃķ2c sÃķ2f 2s1Ãķk s1Ãķ2l s1Ãķs 1sp2 2sp. 4spaa 4spak 2spala spani7er. 4spap 2s3para 4sparo 5s6parten 3sparu 3spaß 4spatr 4spau s2paz s2pÃĪ 3spÃĪh 2spÃĪr 2s3pe. s3pel 4spensi spe3p4 s2pera s1peri 2spero s2perr 2spers 4spet 3s2pez 4s3pf 2spha s4phÃĪ s3phe 3s2pi4e 4spier4 spi2k 4spil 3spio 4spip 4spis 2spl 4spla 4splÃĪ 4sple 3s2pli s3p4lu s3pn 2spod 2spog s2poi 4spok 4spol 4s3pos s2pott 4spr. s2prac s2pran 4sprax 2sprÃĪm 4sprÃĪs 3s4prec 4spred s2pren 2spres s2pric 2sprob 2sprop 3spross 3spru 4sprÞf 2s3ps 2s4pt 3spuk 2spun 2spup 3spur 4sput 4spy 2s1q 4s3r4 srat2s srat4sc sret3 srÃķ2s1 srÞcker6 6s1s ssa3bo s5saf s3sag ss1aj s3sal s4s1alb s4s3amt s4s3ang s2sano s4sans ss2ant s4s3anz s3sa1s2 ss3att s3s2ÃĪ s4sce ssch2 s4sco ss1ec s2s1ega sse3inf sse3in4t sse6r5att ss1erÃķ ss3erse s3s2es sse3ta ss3l ss1off ssoi4 s2s1op ss1ori s2sÃķl s3spe ss2po s2spro ssquet4 ss3s4 sst2a s3stel ss2th ss2ti ss4tip s3s4tras s3strec ss2tur s3stÞ ss1ums s1t 4st. s2ta 4sta. 3staa 2stabb s4t2ac sta2ck 3s4tad 3staff 2stag 3stah 2stak 2stale s3ta3li 2stalk st1alm st1alp st1a2mi 4stan. sta4na 3stand 2stani 4s3tann 2stans 2stanw s4tar. 4stari s4tars st1asi 2s3tat. s4tau. 2stauf 2staum 3staur 2staus 2stax 3s2tÃĪ 4stÃĪg 4stÃĪlt s4tÃĪnd 5stÃĪtt s3tÃĪus 2stb 2st3c 2std 4s5te. 4stechn s2ted 4stee 3s2teg ste2gr 3s4teh s2te4i st1eid 3steig 4steil 3steilh steil4z stei4na 1s2t2el 2stel. stel4l3ÃĪ 2steln 2stels 2stem 4stem. ste4mar 4sten s5ten. ste4na s4t3ends st2ens s4tentf s2tep 2ster 6s5ter. st5erbie ste4rec ste6rers st3erfÞ st5ergeb 4sterm 3sternc 4stes ste2se stes6se. ste4st 2stet s4teti 3s4tett 3s2teu 1steue 4steuf st3ev 4stex 2stf 2stg 4sth s4thÃĪ s3them s4thi s2t3ho s2thu 2stia 2stib 3stic 2stie. s2tieg s2tiel 2stien 3s2tif 2stig 2stik s2til 3s4tim s4tinf s3tinn st1ins 2stio 1s2ti2r 2stis st1i4so 1stitu 2stiv 2stj 2stk 4stl 4stm 2stn s2to 2sto. s3tob 2sto3d 4stod. 1stof s4toff s4t3om 4ston 4stoo s4tope 2stopo 2stor. 2store 2storg 2stori 2stors s3tort 2stose sto3s2t 1stoß 4stote 4stou 2stow 2stoz 1stÃķ 2stÃķch 2s3tÃķl 2stÃķt 2stp 2stq s2tr 2strad 2s3trag 1strah 4strahi 4strai 4strak 2stral 4strans 5straß 4s3traum 4s5trÃĪg 4strÃĪne 4s5tref 4s5treib 5st4reif st3renn 2strib 2s4trig 1s4tri2k 2s5tris st3roll stro4ma 2strÃķp 1stru 2strua 2strug 3struk 2st3run 2strup 2s4t3s2 sts4k 2st3t4 st2u 5stub 4stuc 3s4tud 2stue 3stuf 5stuh 2stum2s stum4sc 2stumt stu2n 2stun. 3s4tund s2t3uni 4stunn 2s3tuns 2stunt stu3re st3url 2sturn 2st3urt 2s3tus 1stÞc 2stÞch 2stÞr. 3stÞt 2stv 2stw 3s2tyl 4st3z 1su su1an 3su2b3 su4ba2 4subi 3su1c su2cha such4st 2s1u2f 2s1uh su1is su1it. sul2a sul2i sult2 su2mar su2mau 3s2ume su2mel su6m5ents s3umfe 3summ sum1o2 su2mor s2ump s3umsa s3umst su2n 3sun. sunder4 sun6d5erh su4ne s1unf 2s1uni 4sunt 3s2up sup3p4 su2ra 2s1url s1urt s4us1 su2sp sus3s 3suv 1sÞ 2sÞ2b 3sÞc sÞ2d1 sÞden2 3sÞn 3s2Þs 3sÞß 4s3v 2s1w s3wa s3we sweh2 4swie 4swil 1s4y syl1 sym3 sy2n3 sy4na sy4nÃĪ 2s1z2 4s3za 4szÃĪ 4s3zei s2zena 3s4zene 4s3zent s2zes 4s3zet s2zis 4s3zu s3zÞ 4s3zw 2ß1a2 2ß1b2 2ß1c 2ß1d 1ße 2ß1ec 2ß1e2g 2ß1ei ße2l1a ße2ni ße2no 2ßentz ß2ers. 2ßerse ßer3t 2ß1f 2ß3g2 ßge2bl 2ß1h 1ßi ßi2g1a2 ßig4s 2ß1in ß1j 2ß1k4 2ß1l ßler3 2ß1m 2ß1n2 ß1o2 ßos2 2ß1p2 2ß3r2 2ß3s4 ßsch2 ßst2 2ß1t 1ßu 2ß1um 2ß1Þ 2ß1v 2ß1w 2ß1z 1ta 3ta. 4taa 5taan 2tab. ta2b1an 2t1abb 3tabel 2taben ta4bend 2tabf 2tabg 2tabh 2tabk 3t6able 2t3abn ta2br 4tabs 2t3abt ta2bÞ 2tabw 2tabz 2t1ac 3tacu t1ada tadi3 2t1a2dr ta3d2s 3taf. 3taf2e 4taff t1afg t1af4r 3t2ag ta2ga ta2g1ei 4t3a4gent 4ta3gl t3ago tag4st tah2 tah3le tahl3sk t2ai ta3i2k tai2l ta1ins tai4r ta1ir. t1a2ka ta2kro tak6ta 3taktb 3takts 3t2aktu 2takz 3t2al. ta2la ta3lag ta3lak tal3au t1alb. t1albk tal3d 3t4ale tal2en ta4lens tal2ga tal2l1Ãķ4 3talo ta2l1op 2talt 2tam 3tame ta2mer t1ampl t1amt 3tan. t1a2na 2tanb 4t2and tand4ar ta3ne 4tanf 2tang 3tani t2ank t3ankl 4tanl t1anm 2tanme 4t1anna t2ano t1ans 3t2ans. 4t3ansi 4t3ansp 2tanwa 2tanwÃĪ t2anz. t1anza tan6zerh t1anzu tan2z1w ta3or ta2pe. ta2pes 2tapf ta2pl 2tappa t2appe 2tarb ta4ren4s ta4r3ere 5t4a3ri 2tark 2t1arm 2tart t1arti tar2to ta2ru 2t1arz 3tas. ta3sa 3tasc t1asp 3tast ta2ta2b ta2tan ta2tau tat1ei ta2tem ta2t1er ta2th tat3he t3atl t4atm ta2tom 4tatue ta2t1um 4taud 2t1auf 4taufg tau3f4li 4taufn t1auk 3taum t1ausb 3tausc tau6schr tau6schw t2ause 4t3ausg t1ausk 4tausl 4t3auss 4t1ausw 3tav 3tax ta3xi taxi3s 1tÃĪ 3tÃĪa 4tÃĪb tÃĪ1c 4tÃĪd 3tÃĪe 3tÃĪg 4tÃĪgy 2tÃĪh 2t1ÃĪlt 4tÃĪm t1ÃĪmt t1ÃĪngs 3tÃĪnz t1ÃĪp t2ÃĪr. tÃĪ2ru tÃĪ2s t2ÃĪt 4tÃĪtt 2tÃĪug 2tÃĪuß 2tÃĪx 1tà 4t3b2 tbauer4 tbe3r2e tblock5e tblocken8 4t1c t3cha t3che tch2i tch3l t2ch1u tch1w t4ck t3cl t3cr 4t3d4 tdun2 1te 3te. te2a2 2teak te3al te3an 3teba 3t4ebb 4t1e2ben t2ech te3cha 2teche 3techn 2techt te2chu 2teck te2cka teck2e te2cki te2de te1em te2en3 te1erw te2es 2teff 2t1egg teg3re 2teh 3teha 3tehÃĪ 3tei. 2teign teik4 3teil 4teilhe 2tein tein3e4c t3einge t3einla 4teinn t1eis. t1eisb te2kel tekt2 3tel. 3tela te2l3ab te2l1ac te2l1au telb4 tel3d4 3te3le tel1eb tele4be te4l1ec te4l1eh te4lein 2telem te4lerd te4leu 4t3elf. 3telg te2l1in te2lit 3telk tell2e tel6lein 4tellu 3teln te4lost te2l1Ãķ 3telp 3tels tel3s2k 3telt4 tel3ta tel3th 3tem. te2m1ei te2min 2temme te2m1o2r 3temper 2tempf tem3s te4m1u 3ten t6en. tena2b te4n3a2d te4n3a4g te4nas te4n3au te2nÃĪ ten3ÃĪh t4enb ten3da 4t3endf t6endi 4t1endl t6endo 4t3endp ten3d4r te2n1e2b te2nef ten3ei te3n4ei. 4tenerg te2net 4t1eng. ten4gag 4t3engla t4enh te2ni te4n3in t4enj t4enm ten3n tens2e 4tensem tens3th t4enta t1entb 4tentd t4ente 4tentn tent3ri 4t3entw 4tentz ten6zerh ten3zw t1e2pi 3t6er. ter3a2c te1raf ter3am te3ran. te3rand ter3a4s 4terbs 4terbt 3terc 4t3erde. te2re2b te4r3eif te2rel ter3end te4reng te4rerk terer4z 4t3erfol t4erfr 4terfÞl 3terg2 ter3ga 6ter6grei t4ergru t4eri te3ria te2rid ter3k 5terkla 4terklÃĪ 2t3erlÃķ ter4mer 3termi ter4n3ar 2ternc t3erneu t4ero t1erÃķ ter4re. t4ers. ter3sc ter4ser terst4 t4erst. 5t4ersti 5t4erstu tert2 teru2 te4r1uf ter3za 2t1erzb 3t2erzu 3tes tesa2c te2san 4t1e2sel te2sep tes1er te2spr tes3si t2est tes3tan test3ei tester4 tes6terg tes6terk testes4 te2su 3tet2 t2et. te2tat 4teth 4tetl teu3ere teu3eri 3teuf 3teum te1un 3teur. teu2r3a 5teus te2vi te1xa 2t1e2xe 2t1e2xi 4texp 3text 2t1exz 4t1f4 tfi2l 4t1g2 tger2 t1h 4th. 2th4a 3t4ha. t2hag t3hai t2hak 3thal. 4t3hau 2t3hÃĪ th2e 1t2he. 3thea 2theb t2hec 2t3hei t4hein t2hek t2hem 1then t4hene t4heni 3theo t2hes 3these t2heu 1thi thi3er t2hik 2t3hil 2t3him t3hir 2thk 4th3l 4th3m 2th3n 1t2ho t4ho. 2t3hoc t3hof 2t3hoh t4hol. t4holo t3hor 2t3hot thou2 2thov 4t3hÃķ 2thp 1th2r2 2ths 2thub 4thun 2thÞ 2thv t2hy 1ti ti2ad ti3a2m 3tib4 2tic ti1ce tiden2 ti4dend 3tief. tie2fr tieg4 2tieh ti1el ti2el. tiel3a ti3e4n3 3tier tie4rec ti2ern ti1et ti1eu 3tif. ti1fr 4tift 3t4ig ti4gerz 3tik ti2kam ti2kar ti2kin ti2kra ti2krÃĪ ti2kÞ ti2lar ti2lau ti2lei ti2lel 3tilg ti2l3Ãķ til3s tilt4 ti2lu ti2ma2g t2imi tim2m1a 4t1imp 3t2in. ti3na t1inb 4t1ind ti3n2e t1inf tin2g1a ting3l ting3s t1in1it 2t1inj tin2k1l 3t2ins. 4t1inse 2t1int ti1nu 4t1inv 3tio 3tip ti4que. ti1rh 3tis ti4scha tisch3w ti2sei ti2sp ti1sta 3ti3t2e ti3ti 2ti3tu tiu4 tium2 3tiv ti2van tive3 ti2vel ti4vene tiver2 ti4verl ti2v1o ti2v3r ti2za 2t1j 4t3k4 4t3l tl4e 5tlem tle2r3a 6t5li tlung4 4t3m2 tmal2 tmen6t3 tmo4des 4t3n2 t5na tnes2 1to 3to. to4as to5at 4tobj tob2l t1obs to1c t3ochs 3tocht to6ckent 3tod tode2 4to2d1er tode4s to4d1u toi4r 3tok to3la 3tole 4tolz tom1e2 2tomg 3ton to2nau to2neh 3too to2pak to2pat 3topo 2topt 3tor. to1ra to2rau to4rÃĪn 4torc t1ord 3tore to2rel t1org t3orga 3torin tor3int to2rÃķ 3tors t1ort. to2ru t2orw to3sc 3tose to3sh to4sk tos2p 4toss 3tost4 to1sta 4toß 3to3te to2tho 3totr tots2 3t4ou touil4 to3un 3tow 2tÃķ 3tÃķch 4tÃķf 4t1Ãķk tÃķ4l 5tÃķn t1Ãķst 4tÃķß 3tÃķt 4t3p2 tpf4 2t1q 1t2r4 2tr. 5tra. 3trac tra3cha t3rad. tra4dem tra4far 3trahi 4trahl 6trahm 5t4rai 3trak 3tral 2t3rams 3t4ran. 2trand 3trank t1rann 3trans t3rase t3rasi 4traß t4raue 2traup 5trÃĪc 3trÃĪg 3trÃĪne 4trÃĪs 4trÃĪß 4t5re. tre4ale 4treb tre2br 4trec t3rech t4reck 6t3red 3tref 4trefe 4trefo 4treg t4rei. 3t4reib 4treic 2treif t3reig 2t3reih t3rein 2t3reis 6treit t3reiz 2trek 6t3rel t4rem t4ren. 3trend 4trendi t3rent 2trepe 2trepo t4repr t4rer t4res. t4ret tre2t3r t5rett t4reu 3treuh 2t3rev 2trez 5t4rÃĐ 2t3rh 3tri 4tric 5trieb 2trieg tri2er tri4ers 5trigg t3rind 4tring tri3ni 4trinn t4rip 4tript t4rit tri2x trizi1 3tro. 4trock. 3troe t4roi tro2ke 4trom. tro2mi 3tron 2t3roo t4rop 3tropf 3troy t3rÃķc 2trÃķh 3trÃķp 3trÃķs 4trÃķss 3trÃķt 3trua 2truf 4truk trum2 trums1 2t3rund 3t4runk 5t4rup tru2th trÞ1be trÞ1bu 2t3rÞc trÞcker6 t4rÞg try1 2ts tsa4b t3s2ac t2s1a2d t2s1ah ts1al t4s1amt4 t2san ts3ar ts1as t2sau t2s1ÃĪh t2s1ÃĪn t3s2cha t4schar t3sche t4schef ts4chem tsch4li t4schro ts4cor t2s1e2b t3seil t4seind ts1em tse2n1 t2s1eng t2s1ent t2s1er t6s5essen t2s1i2d tsing4 ts1ini t2s1ir ts3kr t1slal ts1o tso2r t3sou t2sÃķ t3spal ts1par ts4pare t2spÃĪ ts2ped t3spek t2sph t3s2pi ts2pon t3s2por t4sprei ts3s4 t1st4 t2staf t4stag ts3tak ts4tal ts3tÃĪti t2stea t2s3tep t3s4tern t3s4tero t2stip t4stit ts3trad t2s3trÃĪ t4streu t2stri tstro2 t4strop t2s3trÞ ts2tu t2s1u 1tsub t3sy4 4t1t tt1ab tta2be tt2ac tta6gess tt1ak tt2al tt3ank tt2ant tt1art tta1s tt1ebe tt1eif tt1ein tt1eis t3tel tte2la tte4leb tte4len ttel1o tte4rec ttes1 tte4sa tte2sÃĪ4 tt2hÃĪu t2t3ho t3ti t3to tto1s t3tÃķ t3tro tt3rÞ tt2sen tt2sor tts1p tt2spe tt2spr tt2sti tt5t t3tu tt2un t3tÞ 1tu tu1alm tu3an 2tub2 tuba3b 3tuc tu2chi 2tud 3tue 4tuf tuf2e tu3fen t3u2fer tuff3 4tuh tu2is 2tuk t3u2kr tul2a t2um. 3t2ume 2t3umf 2t3umg 2t1umh 2t3umk 2t3umr tum2si tum2so tums5tr 2t3umt 2t1umw 2t3umz 3tun. 2t1una 2t1und 3t4une 2t3unf 3tung t3unga tung4s5 2tunif 2t1u2nio 2t3unt t1up. tu2r1a4g tu2rÃĪ tur1c tu2re. tu2rei tu2r1er tu2res tu2r1e4t turin1 3turn tu2ro tu4ru tu2sa tu4schl tu2so tu3ta 2tÞ 4tÞb 3tÞch tÞck2s 3tÞf 3tÞm 3tÞr. tÞr1c 3tÞre 3tÞrg 3tÞr3s 3tÞten 4tÞtz 4t3v 4t3w twa2 twi4e 1ty1 3typ ty2pa tys4 6t1z t2za4 tz1ag tz1al tz1ar tz1au tz1ÃĪ t3ze. t2z1e2c t2z1eie t2z1eis tze4n1 tz2ene tz3ents tz1erl tz2ers t3ze2s tz1ind t2zor tz2Ãķ tz2th tz2tin tz1wÃĪ tz1wi tz1wu 2ua u1a2b u3a2c uad4 u1al. ua2lau u1alb u3alet u1alf u3a2lo u1alr u1als u1alt ua2lu u1alz u3am u1ans u3ar. uara2b u1ars ua3sa ua2th uat2i u3au u1ay u1ÃĪm u1ÃĪu 2u1b u8be8cken. u3b4i ubi3os. ub2l ub3lic u2b3lu u2bop ub3rÃĪ u2b3rit ub2san ub2s1o ub2spa u2bÞb 2uc uc1c u1ce uch1a u1cha. uch1ÃĪ u1che u2ch1e4c uch1ei u3ches u1chi uch1il uch1in uch3l uch3m uch3n u2ch3r uch2so uch4spr uchst4 uch4tor uch2t3r u1chu uch3Þ uch1w u1ci u2ckem u4ckent uck2er uck3erl u3ckerr u2cki u1cl 2u1d u3d2a uden3s2 uder2e udert4 udi3en uditi4 u2don ud3ra u3dru 2u1e ue2ck u2ed ue2en u2eg u4ela ue2le ueli4 ue2mi uen1 ue2nÃĪ ue2ner uenge4 uen2gl u3e2ni ue2no uen2zu u2ep ue2r3a ue2r1ÃĪ uer6baut u2ere2 u3e2rec u3ered u3ereh ue3reig u3erer ue4rerg u3erex uer3g2 u3erh u4erinn u3erin4t uer4nan uer2ne uer4ner uern3s4t uer3o uer2Ãķ u3err uer3sc uer3t2 u3erum u3erunf u3erunt ue2ta ue4tek u3fac ufa2ck u3fah uf1ak u3fal uf3ar u3fas uf1au u2f1ÃĪs u2f1ÃĪ2ß u2f1ei u2f1em u3fen. u2fent u2f1erh u4ferle uf2ern 2uff uff4l uf2fro uf3l u2fob ufo2r uf1ori uf3r uf3sÃĪ uf4sin uf4so uf2spo uf2t1eb uft3erd uft3s2 u2fum 2u1g u4gabte ug1af ug1ak u2g1ap uga4s ug1au ug3d2 u2g1ei u2g1erf u2g1erl ug4es ugge4st ug3hu u2g1l ug3lad u4g3lo u3g2lÃķ u4glu u2g3n ugo3 ug1or u2gÃķ u4g3reis ug3ro u2grol ug4ros ug3rÞs ug3se ug4ser ug3si ug3spa ug4spr ug4spu ug5stÃĪ ug3str ug3s4tÞ u2gÞ u1h uhe3s6 uh1la uh1lÃĪ uh2li uhme4 uhr1a uh2rer uh3ri uh4rin uhrt4 uh2ru uh4rÞ uhs4 uh1w 2ui ui2ch ui4cker u1ie ui1em u3ig u4ige uil4les u1in. u1is. u3isch. u3ischs uisi4n ui4s5t u1j uk2a u3kÃĪu u1ke u1ki u1k2l ukle1i uk4n uk2Ãķ u1k4r uk2ta uk2t1in uk2t3r u1ku uku2s uk2Þ u1l ul1ab3 ul1am ula2s ul1ÃĪm ulb4 ul2dr uld2se 2ule u2l1el ule4n ul1erf ul1er2h ul1erw ule2sa ules3t ule2t ul1eta u2lex ul3f4 ulg4 uli2k ul1ins ul3ka ul2kn ul2les ull3s ulo2i ul1or ul2p1h ul2sa ul4sam uls2th 2ulta ul4tri ult3s u2lÞ ul2vr ulz2w u2m3a2k um1all um1anz u2m1art u2m1aus u2maut u2m1ÃĪh 1um3d2 um2en ument4s umer2a um1erf um1erg um1erl um1erw 1umf 1umg um1inh u2m1ins um1ir 1umk 1uml 2umm umm2a u2mÃķl umpf4li um2pho um2p3le 1umr um4san 3umsat um4ser um2sim um2s1pe um2s1u um3t2 um2un u2m1ur 1umz un1 4un. 4una. 1unab un4al u3n2am u2n3an 4un2as un3at 1unda un4dab 1undd un3de. un4dei und3erf un2dex 1undf 2undg un2did 1undn un2dor un2d3r 4unds. und3sp und3st un2d1um undÞ4 1undv 1undz u3ne une2b une2d une2h un2ei. un3ein un3eis unen2t u4n3erz unes4 unft4s 1unget 1ungew ung5h 1unglÞ un3gn un2gr ung3ri ung4sa ungs5tr un2id un3ide 1u2nif unik4 un2im uni2r 2unis un3isl u3n2it 3u2niv 2unk un2k1a2 un2kei un2kne unks2 unk4tit unk2t3r 3unku unlÃķ2 unna2 un2n3ad un3n2e uno4r un2os 1unr uns2 2uns. unsch5el un3se 1un3si un3sk un3sp uns4t1r 1unt un3ta unte4ri 2unth 2unto un3tr unt3s 2untu unvol2 unvoll3 1unw 2unz 2uo u1o2b u3of u3or. u1or3c u3ors uos2 u1os. uote2 u1pa u1pe2 uper1 up2fa u2pf2e u2pf1i u3pi up4lu up2pl u1pr upt3a2 upt3erf upt3erg upt1o up4tr u1q 2ur. u1ra u2rab u3raba ura2be ural4t u2r1a2m ur3ame u2r1ana uran4fa uran4fo u2r1ang uran4ge ur2anh u2r1an5s u2rar ur3a4ren u2r3att u2r1au 2u1rÃĪ ur1ÃĪn ur3b2a urch1 urd2 ur3di ur1eff u2rele ure4n u4r1ep ur1erh ur1erw 2urf urf3t ur2gri urgros4 urg3s4 uri2c u2r1im ur1ini ur3ins ur1int urk2s ur3l ur4matt 4u1ro u3rol uro1s u1rÃķ ur3p ur3re ur3sac ur2san ur2s3au ur2ser urst4r ur4sw ur3s2ze urt2 ur3ti u3ru urÞ2 ur2z1a2 ur2zÃĪ ur2zec ur2zi ur2z1o ur2z1w 2us u2saf us4ann u6schent u5schmu usch5wer u2s1ec u2s1ei u3seid u3sep use1ra u2serp u2s1ese usi3er. usi5ers. us1is. us3kl us3oc u3soh u2s1op us1ou u2spac us3part u2s1pas u2spat us1pe u3s2pek us1pic u5s4piz u2spo us2por u2spu usse4g uss5erfa usser6kl uss5er6su us2sez us2sof ust3abe u1stal us3tau us2th ust2in us3tr u5s4tras us6tris u1stu u2stun u2stur us2ur u2sÞ 2uß 2u1t ut1alt ut3a2m u2t1ap u2t1ar u2t1ÃĪr u3te u4t1ed ut1e4ge ut1ei. ut1eie ute2n1 u2tent uter4er u4t3er4sa ut2es ut2et u4tev u4t1ex utfi4 ut2he u2thi u2t3ho u2thu utli4n uto1 uto4ber uto3c ut1opf u2tops ut4or utos4 u3tÃķ ut3rea ut3rÞ ut3s2a ut2s1ÃĪ ut4schl ut4schm ut4schÃķ ut3si ut2spa utt4an ut3te ut5t4l utts2 utu4re utu5ru u3tÞ utz3eng ut2z1in ut2zo ut2z1w 2u1u2 uufe2 u1Þ2 2u1v4 u2ve. uve3rÃĪ u1w 2u1x ux2e ux2o ux3t u1ya 2u1z uz3ot uz1we uz3z4 1Þb Þb1ÃĪ 2Þbc 2Þbd Þbe2 Þbe3c Þbe4n3 Þber3 Þ4bet Þb3l Þb3r Þb2s3t 2Þc Þ1che Þch3l Þch2s1c Þch5t4e Þ3cken Þck1er Þck3eri Þ4ckers Þck4spe 2Þd Þ4d3a4 Þ3den. Þden2g Þ3d2ens Þd1o4 Þd3r Þd3s2 Þdsa1 Þd3t4 Þdwes2 Þ2f1a Þ2f1ei Þfer2 Þ2f1erg Þf2fl Þ2f1i Þf3l Þf2to Þ1g Þge6lei6s Þ2g3l Þ2gn Þg3s Þg4st Þh1a Þ1he Þ2h1ei Þ2h1eng Þh1erf Þ2h1er2k Þ2h1er2z Þh1i Þhla2 Þhl1ac Þh1lam Þh3l2e Þhl2se Þh3mo Þh3ne Þhn2s Þh1o Þh3r2e Þhr3ei. Þh1ro Þhr3ta Þh1s Þhs2p Þh3t Þh4th Þht4r Þ1hu Þh1w Þ1k2 Þl1a Þl2c Þ3l4e Þl2l1a Þl2l1ei Þl2lo Þl2lÃķ Þ1lu Þ2ment 4Þn Þ2n1a Þn2da Þn2dr Þnd3s Þnen3 Þn2f1a Þn2f1ei Þn2fli Þn2fr Þn2g3l Þnn2s Þn2s Þn3sc Þn3se Þn3sp Þn3str Þnt2 Þ1nu Þn2za Þn2zw Þ1pe Þpf3l Þ1pi Þp2pl Þr1a Þ2r1ei Þr2fl Þr2fr Þr4g3en4g Þ1r2o3 Þrr2 Þr2s Þr3sc Þr3se Þr3sp Þrt2h Þr2zÃķ Þr2zw Þs2a Þ2schl Þse3h Þse3l Þse1s Þs2s1c Þss2e Þs2st Þ2st 2Þ1ß 2Þt Þ2t1al Þ2t3r Þt2s1 Þt2tr Þ1v Þ1z 2v1ab va1c val2s 2vang 2varb va1s v4at va2t3a4 va2tei va2t3h vatik2 va4t1in vati8ons. va2t3r vat3s4 va2t1u 2v1au 2v1b 2v1d 1ve2 ve3ar ve3b ve3c ve3d ve3g ve3h ve4i 2v1ein veit4 veits3 ve3la ve4l1au ve3le ve3li ve3lo ve3ma 2ve3mu ve3nal ven2c ve3ne venen4d ve3ni ve3nÃķ ve3o ver1 ver3a ve3rad ve3rand ve3ras ver3b2 ver5d2 vere2 ve4rek verf4 verg4 ve3ri ve4rin ver3k ver3st vert2 ver5te ver3u ves1 2ve3sc 2ve3s2e ves3ti ve3ta vete1 ve3to ve3tr 2veÞ ve3v ve3x2 2v1f4 2v1g 2v1h vi3ar vi4a3t vi2c vi3de vid3s2t vie2h3a vi2el vi3en vie4rec vie2w1 vig2 2vii vi2l1a vi4l1e2h vi2l1in 2v1i2m vima2 vi4na vin2s 2v1int vi3sa vise4 vi3s2o vi2sp vis2u 2v1k 2v1l2 2v1m 2v1n 2v1ob vo3ga vo2gu 3vol voll1a vollen4 vol6l5end voller4 vol6lerw vol2li 2v1op vo2r1 vor3a vor3e vor3g vo3ri vo5rig vormen4 3voy vÃķ2c 2v1p v2r 2v3ra v3re v4ree 2v3ro 2vs vs2e v1sta v1steu v3s2z 2v3t vu2et 2vumf 2v1v 2v1w 2v1z w2a 1waa wab2bl wa3che wach6stu wach4t4r waffe2 waffel3 1wag wa5ge 3wagen wa2g3n wa3go 1wah wahl5ent wah4ler wah2li wai2b 1wal 2walb wal4da wa2les 2walm wal2ta wal2to walt4st 3walz wa3na wandels6 w3anf wang4s 1wann wan6z5en6d wa2p 1war2e ware1i war3ste wart4e 1was wa3sa wa4scha wa3sche wa3se wa3sh wass4e 1wÃĪh 1wÃĪl 2wÃĪng 1wÃĪs wÃĪs2c 2w1b2 wbu2 2w1c 2w1d we2a we2ba 4webeb we2bl web3s we3cke. we5cken. we3ckes we2e4 weed3 we2fl 1weg we2g1a we2g3l we4gn we2g3r weg3s4 1weh we4i wei4bl 2weie weifel6d weik4 3weil wei3sc weis4s3p weis4t wei3str wei4tr wel6schl wel6schr wel2t1 wel4t3a4 wel6t5en6d wen3a4 wen2gl we3ni wen4k3ri we2r3a wer2bl 1werbu werd2 5werdens 1werdu werer2 wer2fl wer4gel we4r3io 1werk. wer2ka 1werke wer2kl wer2ku we2rÃķ wer2s wer2t1a wer4t3ei wer6t5erm wer2to 1wese we2s1p we4st west1a west3ei wes2th west1o2 west3r wes4tu 1wet wet2s wett3s 2w1ey 2w1g 2w3h wi1cka 1wid wi2e wie3l wien2e wie2st wik2 1wil wim2ma wim4mu win4d3e4c win2dr win2e 2wing win8n7er8sc 1wi4r wi3s2e wi2sp 1wiss wi3th 1witzl 2w1k 2w1l 2w1m 2wn wn3s 1wo1c wo2cha woche4 1woh woh4lei 1wolf wolf4s3 wol4ler wor3a wo2r3i wor2t3r wo4r3u wot2 1wÃķc wÃķrt2h 2w1p w2r w3ro 2w1s w3s2k ws2t 2w1t wti2 w2u 1wuc wuch4sc wul2 wul3se wun2da wun4g3r wun2s 4wur. wur2fa wur2s 1wurst wus2 wus3te 1wu4t1 1wÞh wÞl2 wÞn3 2w1w 2w1z x1a 1xa. 2xa2b 1x2ad 1xae xa1fl 1x2ag x3a2m xand4 x2anz 1x2as 2x1b 2xc x1ce x1ch x1cl 4x1d 1xe x1e4g 2xek xe2l x1em 3x2em. x2en xen3s2 x2er. x2ere xers2 3xes 2x3eu 2x1f 2x1g 2x1h xib4 xi1c xich2 2xid xide2 xi2d1em x1i2do xie3l xi3g xil1 xil2a xi2lo xi2lu xin3s2 x2i2s1 xi3s2c xiso2 xis3s xis4tÃĪ x1i2tu x1j 2x1k2 4x2l2 x3lÃĪ x3le 2x1m 2x1n x1or 4x1p xpor6ter x1q 2x1r 2x3s2 4x1t x2t1a x3t2as xt1ÃĪ x2tÃĪn xtblo4 x2t1e2d x2t1ei x4tent x2t1er2f x2t3ev xtfi4 x2t1il2l xtra3b4 x2t3ran xt3s2 xt1u x3t2ur 1xu xu1a x1u2n xu2s 2xv 2x1w 2xy 3xy. 3xys x1z 2y1ab 1yac y1al. y1a2m yan2g y1ank y1ÃĪt y1b y1c2 y2chi y3chis ych3n y1d4 y1e y2ef yen4n y2ere y2es. yes2p ye2th y1f2 y1g ygi2 ygie5 yg2l y1h yhr2 y1i4 y1j y1k2 yke3n yk3s2 y1l y2l3a2m yl4ante yl3c y4le. yli4n yloni1 yl3s2 y2l1u yma4t ymp4 ym2pha ympi1 y2n1o yno4d ynt2 y1nu y1of yom2 yon4i y1ont y1os y1ou y1p ypa2 yp3an ype2 y2pf y3ph y2p1in ypo3 y4p3s y1r y3r2e y3ri yri2a yri1e y3r4o yrr2 ys2an ys2c yse1 y3s2h y4s3l ysme3 ys2po ys1pr ys3t2 y1s4ty y2s1u2 y3s2z y1t2 y2te. y2tes y3to1 yu2r yure3 y1v y1w y1y y1z2 2z3a2b zab3l za1c 2z1a2d 2z1af za3gr 3z2ah zah4ner 2z3a2k 2z1all 2z1am z1an za2na 2z3anf 3zani 3z2ank zan4kl 2z3anl zanti1 2zarb 2zarc 2z1arm z1arti zar2tr 2z1arz z1as za1st4 2z3at3 3zaub z1au2f z3aug 3zaun zÃĪ2 2z1ÃĪ4c 3z2ÃĪh 2z1ÃĪm 2zÃĪngs 2z1ÃĪp z1ÃĪrg z1ÃĪrm 4z1b4 zbÞ1b zbÞbe3 2z3c 2z3d2 zdan2 zdÃĪ1 2z1e2ben 2zecho ze1e 2z1eff zehe4 zehen1 zeh2l zeik4 zei3la zeile4 2z1ein zei1s6 zei3sk zeist4 zei2t1a zeit5end zei4t3er zei2tr zeit3ri ze2l1a2 ze2len ze2l1er ze2l1in zell2a zels2 zel3sz zel3t2h zel3tr zelu2 2z1emp 5zen. ze4n3ac ze2nÃĪ zen3n ze2no zens2e zen4sem zen5s4tr zent3s zen4z3er z2er. ze2r3a ze2re2b 2z1ergÃĪ 4z3ergeb z3erhal 2zerhÃķ zerin4t zerk2 z2erl. 2zerlÃķ z2ern zer4neb zer4n3ei 2z1erq zers2 2z1ersa 4z3erste 4z3erstr 3zert zert1a4 zer4t3ag zert4an zer6tere zer6terl zer4tin zer6trau 4zerwei 2z1erz 3z2erza ze2sÃĪ ze3sc ze3sku ze2sp zessen4 zes6s5end zes2sp zes2st ze2s3t ze3sta ze2tr 2zetts 2z1ex 2z1f4 2z1g2 zger2a 2z1h z2hen zhir3 zi3alo zi3ar zi2dei zid3r zie4lei zi1erh ziers1 zi1es. zil2e 2z1imp zim4t3 zin2e zin3ei zin4er 2z1inf 2z1inh zin1it zin2sa zin4ser 4zinsuf z1int 2z1inv zi2o3 zi3op zirk2 zirk6s zi3s2z zi1t2h zi2t1o2 ziv2 2z1j 2z1k4 2z1l2 2z1m2 2z3n2 2z1ob 2z1of zo2gl 2z1oh 3zol zon4ter zo2o 2z1ope z1or zo2ri zor4ne 2z1osz 2zÃķ2f 2z1Ãķk z1Ãķl 2zÃķn 2z3p4 2z1q 2z3r2 4z1s2 z3sa z3sh z3sk z3sz 2z1t z2t1au z4tehe z3t2her zt3ho z3tic zt1ins z3tÃķ zt3rec zt3s2 z3tÞ zu1 zu3a zu3b4 3zuc zu4ch zu3cke zud4 zudi4 zu2el zu3f4 zu2g1ar zu4gent zu3gl zug1un 2z1uhr zu3k 2z1um. zumen2 2zumf 2zumg 2zuml 2zumr 2z1ums zun2e zung4 2zunt zup2fi zu3r2a z1urk 2z1url 2z1urs 2z1urt zu3s4 zu5t zut2a zuz2 2zÞb zÞr1c 2z1v zw2 z1wac 2zwag 2zwah zwan2d1 z2wang z1war 2zwas 4zwÃĪl 2zweg 2zweh z2weig 2z1wel 2z1wen 2z1wer z2werg 2z1wes 2zwet 2zwir z2wit 2z1wo z1wÃķr z1wur 2z1wÞ 4z1z z3z4a zzi1s4 z3z2o zz2Ãķ",
["lefthyphenmin"]=1,
- ["length"]=169219,
- ["n"]=24536,
+ ["length"]=101488,
+ ["n"]=15207,
["righthyphenmax"]=1,
},
["version"]="1.001",
diff --git a/Master/texmf-dist/tex/context/patterns/mkiv/lang-deo.lua b/Master/texmf-dist/tex/context/patterns/mkiv/lang-deo.lua
index 46516245aa6..4e437f839b1 100644
--- a/Master/texmf-dist/tex/context/patterns/mkiv/lang-deo.lua
+++ b/Master/texmf-dist/tex/context/patterns/mkiv/lang-deo.lua
@@ -6,65 +6,24 @@ return {
["metadata"]={
["mnemonic"]="deo",
["source"]="hyph-de-1901",
- ["texcomment"]="% title: German Hyphenation Patterns (Traditional Orthography)\
-%\
-% notice: TeX-Trennmuster fÞr die traditionelle deutsche Rechtschreibung\
-%\
-% version: 2018-03-31\
-%\
-% authors:\
-% -\
-% name: Deutschsprachige Trennmustermannschaft\
-% contact: trennmuster@dante.de\
-%\
-% copyright: Copyright (c) 2013-2018\
-% Stephan Hennig, Werner Lemberg, GÞnter Milde,\
-% Sander van Geloven, Georg Pfeiffer, Gisbert W. Selke,\
-% Tobias Wendorf\
-%\
-% licence:\
-% name: MIT\
-% url: http://opensource.org/licenses/mit-license.php\
-% text: >\
-% Permission is hereby granted, free of charge, to any person\
-% obtaining a copy of this software and associated documentation\
-% files (the “Software”), to deal in the Software without\
-% restriction, including without limitation the rights to use,\
-% copy, modify, merge, publish, distribute, sublicense, and/or\
-% sell copies of the Software, and to permit persons to whom the\
-% Software is furnished to do so, subject to the following\
-% conditions:\
+ ["texcomment"]="% dehypht-x-2014-05-21.pat\
+% \
+% \\message{German Hyphenation Patterns (Traditional Orthography) `dehypht-x' 2014-05-21 (WL)}\
+% \
+% TeX-Trennmuster fÞr die traditionelle deutsche Rechtschreibung\
%\
-% The above copyright notice and this permission notice shall be\
-% included in all copies or substantial portions of the Software.\
%\
-% THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND,\
-% EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\
-% OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\
-% NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\
-% HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\
-% WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\
-% FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\
-% OTHER DEALINGS IN THE SOFTWARE.\
+% Copyright (C) 2008, 2009, 2011, 2012, 2013, 2014 Werner Lemberg <wl@gnu.org>\
%\
-% source: http://repo.or.cz/w/wortliste.git?a=commit;h=8b9a428c271e064f0047a364c532308f0fd4051f\
+% 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.\
%\
-% language:\
-% name: German, traditional spelling\
-% tag: de-1901\
%\
-% hyphenmins:\
-% generation:\
-% left: 2\
-% right: 2\
-% typesetting:\
-% left: 2\
-% right: 2\
+% The word list is available from\
%\
-% ===========================================================================\
-% \
-% \\message{German Hyphenation Patterns (Traditional Orthography) `dehypht-x' 2018-03-31 (WL)}\
-% \
+% http://repo.or.cz/w/wortliste.git?a=commit;h=3a97953c0ddd099a1785ea7927cbf24e639090b0\
%\
% The used patgen parameters are\
%\
@@ -81,10 +40,10 @@ return {
},
["patterns"]={
["characters"]="abcdefghijklmnopqrstuvwxyzÃŸÃ ÃĄÃĒÃĪçÃĻÃĐÊÃŦÃ­ÃąÃģÃīÃķÞ",
- ["data"]=".ab1a .ab3l .abo2 .ab3ol .ab1or .ab3s2 .ab3u .ade3n .ae3 .aft2 .ag2a .ag4r .ag2u .ai2s .akt2a .al2e .al3k .al3lei .al5len .al3se .al4tei .al4tel .alter6s5 .alt1s .al2tu .ampe4 .amt2s .amt4sc .ana1c .an4a3t .an3d2 .anden6k .and4ri .an1er .ang2 .an3gli .an3go .ang4s2 .angst3 .ani2s .an3k4 .an3na .an3s2 .an4si. .an4tar .an3z2 .aos4 .ap5p6le. .ari1e .ar3k2a .ar4m3ac .ar4mun .ar2sc .ar4tan .ar4t3ei .arter4 .ar6t5erh .ar2t1r .arz2 .as6sest .as2t .ata1 .at2h .at4r .au3d .au4f3 .aufs2 .au2s1 .au6stes .auß2 .ax2 .ÃĪm3 .ÃĪr6schl .ÃĪt2h .ÃĪt2s .ÃĪu3 .bahn3 .bah6ner .bal3t .baus4 .be3erb .beige4 .bel2a .be3r2a .ber2e .ber4g3a .berga6s .ber6g5e6b .ber4g3r .ber4tr .bi4os .bi2t .bit1a .boge2 .bo4s3k .bu4ser .bus3se .bussy4 .bu3ta .ce2ra .ch6 .char8mes .chi3er .dab4 .da2r1 .dar3in .dar2m1 .da4te. .da4tes .de2al .de1i .dein2 .de8ments .de3na .den4ka .den4kl .den4ko .de1o2 .de3r4en .derma3 .dermas6 .de3sk .di3el .di4en2 .dienst7a8d .do3b .do2mo .do1pe .dor2f1 .do2tr .dys3 .ebe2r1 .eh2e .ehe1i .ehe5n .ei3e2 .ei3f2e .ei3k .ei4na .einbus6 .ein3d .ei2ne2 .ein3eb .ein6erl .eins2 .ein3sp .eise4 .ei2sp .eis3s2 .ei4s1t .ei2tr .eke2 .ek3li .el2bi .el2bl .el4fei .el2fl .em3m2 .en1 .en4da .en4d3er4 .en2d3r .en4dÞ .en3ga .en2gl .enk2 .enn2 .ent3 .en2ta .en4tei .en7thalp .en4tio .en2t1r .ents2 .epi1 .ep3p .er4bei .er8brecht .er2bu .er4dan .erden6k .er4d3er .er1e .ere3c .er2em .erf4 .er1i .ers2 .er8stein .erster6 .er8sterb .er8stritt. .er8stritten. .ert2 .er4z3el .er4zen4 .es3p .es2st .es2t .esta2 .est6e .est3r .et2s .eu3 .eug4 .eur4 .ext4 .fÃĪs3se .fe3la .fer4no .fi3d4 .fi4le. .fi4len .fi2s .flÃķ8s7se. .flÃķ8s7sen. .flÃķ8s7ses .flu2g1 .fs4 .fu2sc .ga2me .gan4ga .gangs4 .ga4s3e .ga6sten .ga4su .ga2t .gd2 .gebe4a .geb2l .gel4b3r .gel2d1 .ge3lu .ge3m .ge5nar .ge3n4e .ge3n2o .gente4 .ge3r4a .ger2e .ge3ro .ge3s2 .glan2 .glanz3 .gla4s3t .gol6der .grif8fes .gus2 .haft3s .hal5le .halt4e .hau2t1 .he2 .he4bei .he3fe .he3le .he4r3an .he3rat .her6b5ra .he3rer .he3ri .he6r5inn .hin3u .hof1 .ho4fen .ho4met .hÃķch2 .ia2 .il3 .im2a .ima4ge .im5m2 .in1 .ind2 .in3gl .ink2 .in3n2e .in3sk .in3t2 .inu1 .io4d .ioni1 .ire3 .is2a .it2h .iv2 .joni1 .ka2b3l .ka2i .kal2a .ka3le .ka3t2a .kat3i .ka4ti4o .ken6num .ker3s .ki4e .klang3 .ko3b .kopf1 .kor4da .kraf2 .ks4 .kus2 .la3be .lan8de8mi .le4ar .le4gas .le3n2i .lich8t7er8s .li2f .li3po .li4ve. .lo4g3in .lo2sc .los3s2 .lo2tr .lo3ver .lÃķ4ss .lus2 .luster6 .lu4str .lut2h .ly2s3 .ma3d .ma3ge .mal4e .mas8sen. .ma4str .mat4c .matu3 .md2 .mel2a .me3ne .me3no .men8schl .men8schw .mes4sp .mi2f .mik4 .mil2z1 .mi2t1 .mm2 .na3no .na3t .nÃĪs5c .nebe4n .ner2f .ne1ro .nich2 .nicht5e .ni2e .ni3k4l .no2c .no2s .no2th .nul2 .nus2 .oa5s .ob1a .obe2 .ober5ei .ob3i2t .och3 .of2e .ohr5s .oper4 .or2a .ord4e .or3g .or3k2 .ort2 .orts3e .os3s .osta4 .oste2 .ost5end .osten8de .oste6re .ost3i .ost3r .ot1a .ou2t .ozo4 .Ãķl3l .pab4 .part4h .pe2c .pe3la .pe3le .pe3na .pe4ste .pf4 .ph4 .poka2 .postei6 .po8steig .po4sto .po4str .ps2 .rabe4 .ra3ch4e .ra3me .ra4sp .ra4s3s .rau2m .rau8schl .rÃĪu3sc .re3ale .rebs2 .re3cha .re5insz .reis6e5i .rei6str .res2t .re4stu .ri4as .richt6e .ri4f .ro4a .ro3be .ro2e .ro2ha .ro3m .rom4a .ro2t3r .ro3tu .rÃķ2sc .rÃķ4ss .rÃķs3se .ruf3s .ruh2r1 .runder6 .ru5s6ses .rÞ1b .rÞcker6 .rÞ4ss .sa3br .sali1 .sali3e .sami1 .sas2 .sa5sse .sau1c .sau4er .sau5er. .sÃĪ5s4 .sch4 .schaf8t7end .scheiner8 .scho7s8se. .scho7s8ses. .se2e .seein4 .se2ha .sein2 .sen4f .sen3s .se3re .se1ro .se2t1 .sha2 .si4en .si3gn .sini3 .si2te .ski1e .sour2 .spani7er. .spÃĪ5s4 .spiege8lei .st4 .stau8becken. .ste2i .steiner8k .sto4re .stras4 .stro6ma .sucher6 .sy5s .tage4s .ta3mi .tan4k3a .tan4k3l .ta3ra .tar3t2 .ta2t1h .ta2to .ta4tor .ta2t1u .te2e .te2f .tehe3 .teiler8s .tei8l7ersc .te3le .te3no .te1ra .tes4t .te6stei .te6stel .test3r .th4 .ti2a .ti2e .ti2me .ti4mes .ti3r .ti2s .tischen8 .ti8sch7end .tite4 .tode2 .to4der .todes3 .to2n .to4nat .to3nes .ton3i .to4nin .tons2 .to4pl .to2pr .to2w .tras3 .tra4ss .tri3e4s .trockenmas8 .ts4 .tse3 .tu3ra .tu3ri .turm1 .tur4ma .ub2 .ufe2 .ufer3 .ul2b3 .um3 .ume2 .umo2 .ums2 .un3a2 .un3d .une4 .un3g2 .uni2t .ur3a2d .ural4 .uran6fa .ur1c .ur1e .ur4inf .ur3o4m .ur1o2p .ur3s2 .ut2a .ut3r .ve5n2e .vol2 .vo4r .wah4l .wa2s .weg5s .weine4 .wei4ta .welter8e .welter8k .wer6ker .wer4kr .wer4tr .wetterer8 .wi4e .wor2 .wort5en6 .wur2f1 .xe3 .ya4l .zeit3s .zel4la4 .zelle4 .zel6lei .zel4li .zeug4i .zi2e .zie4l3u .zin4ka .zin4s3c .zin4st .zol2 .zuch2 .zug3l .zu4gra .zu2pf .zweigen8 .zwei8g7end a1ab aa2be aa1c a1a2ce aa2gr a1akt a1a2n a2ans a1aq 2a2ar aa2r3a aar3b aar3d aa3rea aa2rei aarf4 aar3g2 aar3k4 aart4 1aas aas1t aa2th aa2t3r aat4s1 2a3au a1ÃĪ a1b 2aba 3abad ab1alt a3b2am ab2ant ab1au ab2aut ab1ÃĪ ab2ÃĪr ab2ÃĪu 2abbat 2abbin 1abd 2a3be. 2a3bec 2abee ab1eic abe3i4d ab1eil ab1ein 2ab2el abe2la abela4d abe2le 2aben. 1abent 2aber a2berd a3beri ab1er2k ab1er2r ab1er2z 4abes abe2s1e ab3esse abes2t ab1eß 2abet 2abew 1abf 1abg 3abga 1abh 2abi 4abil ab1ins ab1ir ab1it 1abk ab1l 1a2bla a3blat 1a2blÃĪ a2b3led 3ab3lei a3blem 2ablet ab3li a2blin ab4lit 2ablo 1a2blÃķ a2blu abma3s 1abn 2abo 3a2bo. ab2of 3a2bon 4abot 2abÃķ ab3r a4brÃĪ a2bre ab4ros 2abrÃķ a4bs 1absc 1ab3s2p abs2t2 1abstu 1abtei 3abtr 2abu abu3g4 a2bum ab1ur 2abÞ 1abw 2aby 3abz 2ac. 2a3ca 1ac1c 2acci ace1 a1cem a1cen a1cet ach1a a1chal a3chari ach3as ach3au 2achb a1che a2ch1e2c ach1ei ach4ei. a2chep a4cherf ach5erfa a4ch3erh a4ch3erl a4cherÃķ a4ch3erw 2achf 2a1chi a2chim ach3l 2ach3m ach3n a1cho a3cho. a2cho2r ach3Ãķf 4ach3r 2achsc achs4el ach3s2i ach3skr achs4or ach3su a4cht ach4tak ach6terf ach8tersp ach6t5erw ach2t1o acht5rat ach8traum ach8trÃĪume. ach8trÃĪumen. ach6trit acht6s5al ach4tum a1chu ach1u2f ach3Þ 2achv 4ach1w a2chy a1ci ackmu4 ackmus3 ack2sp acksta4 2a1cl a3co acon4n 2acu a1ç a1d 2ad. 2ada. 4adab ad2abr ad2ag adai4 ad1an 3adap 4a3d2a2r3 2adas 2adat a2d1au a3dau. 1a2dÃĪ ad1c 1add 2ade. ade2al a3dec a3dee adefi2 2adeg a3dell 4aden a3den1a ade4nat adeo2 ade1ra a2d1erk 4ades2 ade3sp ades4s 2adf 4adh 4adi adi3en adi3er. adie4sc 3adj 2adli 4admu ad2ob ado2n ado4na a2dop 2adp 2adq a2dre 2ad3rec ad3rei ad3run 2ads2 ad3sz 2ad2t1 adte2 ad4tor 1adv 2a3dy 2a1e1 ae2b a2ec ae2d4 ae2i a2ek a2el a3el. a4ela a4ele a4eli a3els ae2m ae2o3 aeop2 ae2p 3a4er2o a2es2 ae2sc ae2ta a2ew ae2x 2afa af1ab a2f1a2n a3far a2f1au 2afÃĪ a2f1ÃĪn 2afe a2f1ec a4fentl a4f1ep aff4a af2f3l aff4th 2afi afi6kanz afi4kat afi2t 2af3l af1la a1f4lu 2afo a2f3oc a2ford a2f1ort 2afra af3rau af3rÃĪ af3re 2afro af3rÃķ af4rÞ af3s2a af3sh af2si af2sp af2t1a af3tat af2tei af2te2l aft4erk af2t1o af2tÃķ aft3r af2tra aft5rei af2tur a2f3ur 2afÞ a1g 2ag. 2aga ag1a2b ag1a2d ag1am ag1ar a2g1au ag2del ag2dr ag2du 4age. age4l3ei age4ler 2agen. age4neb a2gent 2ages age4sam age4s3in age4so ages3p ages5s ages6sen age4s3ti 3aggr a2g1id a2gim 2a2gl ag4lan ag4las ag3le a4glÃķ 2agm ag2n ag4nat a4gnÃĪ ag4ne. ag4nu ago3b ag3rat a2g3re a2gri ag3rie ag3rin 2ags ag3sah ag4sam ag3s4eid ag2sp ag7s8porta ag2s1tr 2agt ag2th 2agu a2gund 2ah. 2a1ha ah2an ah4at a1hÃĪ 2a1he ahe1in a2h1er2h ahe3u a1h2i ahin3 ah2l3a2 ah2l1ÃĪ ah2l1ei ah2lel ahle4na ah4l3erd ah4l3erh ahl1o2 ah2lÃķ ahl3sz ahme1i ah3mu ah4n3a ah2nÃĪ ah3nee ah2nef ahn3el ah4nerd ahner4e ahner6le ahner4n ah2nin ah2no 1a2hor ah1os ah3Ãķs 4ahr ahr1a ah3r2e ahren6sc ahre4s3 ahr2ti ahr4tri ahr4tro ahr4tun ah2ta ah2te2l ah2t1ex ah2t3r aht1s a1hu ah1w a1hy 2ai. ai1a4 a1ia. 2aib ai2bl aid4s aids1t ai1e4 ai3en1 aif4 ai1fr a4i3g4 a3ik. ai3ke ai2lar ail3d4 ai2lei ail3g ai2lo 4ain ain2a a1ind ai5n4e ain3s ains2p 3airb ai2sa a3isch. ai5schw ai3s2e ais3sen ais5st ai2sti ait4 a3iv. a3ivl a3ivs a1j a2jat ajekt4o 2ak. 2aka. 2aka3b akab4r a2kad 2akal 2a3kam 2akan 2akar ak4at akat1a aka4tak 1akaz 4akÃĪ 2akb 2akc 2akd 2a1ke a2kef a2k1em a2kent a2kes ak2et a2keu 2a1ki ak1ins 1akku 2ak3l a1k4la ak4li 3aklÃķ a1kna 2ako 2a1kr ak3res a3k4ri 3akro3 ak3rÞ 2aks ak3sh ak2t1a2b ak4tag ak3tan 2aktb ak2tel ak3ten akt2er 2aktg 2aktik 2aktis 2aktm ak2to4b ak2tÃķ ak2t3r ak3t4ri 2aktsi 2aktsp 2aktst 2aktw a1ku 2akun a2kup 2akur 2akÞ 1akz 3akze a1la 2ala. 2alabo al1af al1age 2alai al1akr al1am al1ana 2aland a2lang al1anz al1app a3lar. al3arc a3lare 2al1arr a2lart ala2s al1asi al1ass a3lat. al4atm alat5t alat3z al1au al3aug a1lÃĪ a2l1ÃĪm al1ÃĪn al1ÃĪrm al1ÃĪu 3albat al2bÃĪr alber4e al4berh al4b3er4w al2b1l al2boh al2bon alb3ru alb5st al4dan al2dÃĪ al4d3erl al4d3ern alde2s ald3inn al2dra al2drÃĪ alds2 2ale 4a3le. ale4ar a2l1e2b al1eck a4l1ef a2l1ei a3l2eic a4lein a2l1el 5a2lema a2l1e2mi 4a3len. alende4 al3endr a4l3ends a2leng al2enn ale2p al1epo 4aler. a2l1erb aler2e a2l1erf a2l1er2h aler4kl a2l3erl al1erm aler4mi a2l1er4r al2ers a2l1ert 3a4l3erwÃĪ 4ales a2l1e4sk a2less a4leth a2l1eu alf4r 3algi al2gli al3glo 1algo 3algor alg4r 2ali al2imb al1imm ali4nal al1ind alin4ge a2l1in2q al1ins alken1 al2klÃķ al2kne al2kof 1alkoh alk3s2 al2lab al3la3d alla4me al2lan al2l1a2r al6later al2lÃĪ al3lÃĪu al3le. al4lec 3allee alle4gi al4leh al3lend all3erk aller4z al3les alle3se al2leu al2lid alli5er. alli7ers. al2lob al2lo2c al2lop al2lo2s al2lÃķ2 all3Ãķse al2luf allu4s al2lÞ4s al2map al3mas al4m3ast almo6de. 2alo. a2l1ob 3a2loe a2l1of 4alog alo2ga alo2gr al1ont al1ort 2alos a2l1Ãķ al2Ãķs 3alp. 3alpe. 1alph al2pho alrat4 al3sak al6schei al4sh al3skl al2stu al2sum al2t1ak alt3alg al2t1an al2tat al2tau 1altÃĪ alt3eis alt3elt al4temu al4t3er5f al2teu al2tid al2tin alt1op al2tÃķ al4t3rat al2tre al2t3ri al2t3ro alt4stÞ a1lu alu3b4 al2u3f alu3g al1u2k a2lum al1umb a2l1ur a3lus 4aly al2zar al2zau al3zen alz4erk al2zw am2a ama2ba ama3d2 ama3g 2amah a2malg 2a3m4an 2amar ama4sta 1a2maz 2amÃĪ 4ame. a2meb 2amel am2e4n1 amen6s5pr ame3r2a amera3u a2m1erf 3a2meri ame5r2u 2ames a4mesh 2a3met 2amf a3mi. a3mie ami2k 2a3mir 2a3mis 2amit 2amk 2aml 2amm. am2mab am2ma2c 2ammal amma2n am2mar am2mas amma4sc am2maß am4ma4te ammen8ge. ammes3 am2mid ammi2e am2min am2mit am4mo2d am2m1Ãķ ammu2 amm3unt am4mus am4mÞ amni1 a2mÃķ 2ampe. 2ampen amp2f1a2 2am2ple 2ampo am3pr 4amsc am4schl 1amse am3sh 1amt. am2t1a2 am2t1ÃĪ am2tei amt3eig am2tel 2amtem am4terh am4t3ern am2t1ex am2tis am2tit am2to am4tou am2tÃķ am2t3r am2t1u 2amtv 2amu 3a2mul 2ana. 2anab ana3c an2ad anadi1 an2ag 2a3nak an1alg ana4lin 2anam an2a3ma 2anan an4and 2anas a5nat. ana4th a5n4atm a2nato ana2tr a5nats an3aug 1a2n1ÃĪs 1anb 2anbas 2anbÃķ 2anbu an3ch 2and. 3an3d2ac and3arm and3ei anden6ga an4d3ent and5erob ande2s an2d1ex and4sas and4seh and2so and6spar and6spas and6s5paß and2su 4andu2 an2d1ur 2ane an3ec a3nee an2ei. an3eif 3aneig a4neis 3a2n1e4k ane2l an1e2mi a2nemo aner4fa a3nerg an2erh a4nerke 4anern a4nerz. an4erze an1eth 3anex 1anf 2anf. 2anfab 3anfÃĪ an3fe 2anfi an4fj anf3le 4anfors anf5rau 2anfs an3f2u 4ang. 1anga 2anga. an2g1ar 2angas 2ange. 1angeb 1angeh an2g1ei an4g3erf an4g3er4h an4g3er4w an4g3erz 2angh 2angie ang1l an2gla ang5n ang1r ang3ra 1an3gri 4angs. ang4sto angt2 1anh 2a3ni an2i3d 4anie ani3els ani5ers. anig2 ani3ke 3a4nim a4nind ani2o an3i4on a4niso anis2t 2anj 2ank. an2kab an2k1ak an2kan an2kei 2an3ken ank5erfa an3kes 2anki an2kid an2klÃķ an2klu ank3no an4k3opf an2kor ank1r ank3ra an4kras ank3rÃĪ an2kro 2anks2 ank3se 2ankt4 3ankÞ 1anl 2anlad 3anlag anma3s2 2anmo 1anmu 2ann. 1annah an2nar an3ne an4nef an4nei an4nene ann2er 2anns ann4s3p 2annt 2ano. 1an1od 2anof 2anog 2a3nol ano2la 1a2nom a3nom. 2anoo a2n1or ano2ri 2a3nos 2a1nÃķ 2anpu 1anr 2anrÃķ an4same an3s4ar 1an3s2ÃĪ 1ansc an3skr ans1pa ans3pon 1anspr 1anst an3s2z 2ant. ant3ar anta4re an3t2ÃĪ 1antÃĄ 3antei an3tha 2antie 3antise anton2 3antr ant3rin 1antw 2anu anu3r anu3s anus3s a1nÞ 1anw 2anwi an2zÃĪ 2anzb 2anzd 1anzei anz3elf anze2n 2anzes 2anzg 2anzh anzi2d an2z1i4n 2anzk 2anzm 2anzr 2anzs 2anzt 1anzÞ 3anzÞn 2anzv 2anzw an2zwi 2anzy 2ao aof4 ao3i4 a1op aopf4 a1or a1os3 aost2 a3ot. ao3t2s 2a1Ãķ2 a1p 4ap. ap4a apa3b a2pe. a3pel a2pÃĐ a2pf ap2fa 1apfel 2apfes a3pfl a2pht 2api 2apl ap4la a3plÃĪ ap3le ap3li ap2n 3a2pos a2pot 1appro 2apr ap2so ap4ster ap3t2 2a3pu 2ar. a1ra a3ra. ar2ab 2ar3abb ar3abf ar3abt ara3d2 ar3adr ara3ge 2a2r3al a3rale a3ra3li a3ralo 2aran a2r1ang a2r1anz 2arap a4r3app 2a2rar ar2asy 4arat a2r1au a1rÃĪ ar1ÃĪs 1arb 2arb. 2arba ar2bak ar2b3at ar2bau 4arbef ar4b3ein 2arbek 2arben 2arber 4arbi 2ar2bl 2arbo 2arb1r 2arbs2 arb3se arb3sk arb3so 2arb3t2 2arbu 1ar1c 2archl 2archr ar2dau arde4i ar2dop ar2d3r ar2du 2are. a2rea are5aler a2reb4 aree2 ar1eff a2reh ar1ehr 2arei a3rei. ar1eid a3reie a3reih areim3 a2rein arein4b arein4s arein4t a2rele 4arem 4aren. aren6sem are3r2a arer2e a4r3erei a2rerg a2rer3h a2reri a2rerk a2rerl a2rert ar2erw 2ares ar2et are3u a2rev arf1r arf3ra arf2sp 4arg. ar3gan ar2gl ar4gn 2arg4o ar3g4r 2arh 2ari ar2ia a2rid ari3e2n ari3erd ari3erg arin3it ar1int a3r4io ar2ir ar4is ari2su a3riu ar2kal ar2k1ar ark3aue arker2 ar2kil 2ark3l ar4klag ar2kle ar2klo ark4lÃķ ar2koa ar2kor ark3s2a ark2se ark3she arku2 ar2les ar3mad arm1au ar3m2ÃĪ ar2m1eg ar2m1ei arm2or ar2mum 4armÞ 4arn ar2nan arn2el ar3ni a1ro arob2 4aroc ar1o2d ar1of aro2fe 2a3rol aro3m a2r1op a2ror 1a2rou a2r1Ãķ4 2arp arr1ac ar2r3ad ar2r1as ar4rek arre4n1 ar2rh 2arri ar2r3or ar3s2h ar3s2i ar3sse ar2tau 2artb ar3t2e 2artei artel6li6 2artex art2i 2arto art3r art4res ar2tri 2arts art3ske 2artuc 2arty 2aru a2r1uh ar1um a3rumm a2rÞ 2arv arwa2 2a3r2y 2arza ar2zau ar2zÃĪ 2arze 2arzi ar2zÃķ 1arzt arz2t3r 2arzu ar2z1w 2asa a4s3aa as2ad a4s3af a3s2al asal2t1 as1am as3art asa2s2 asa3sse as3at asau4f a4s3aug asau2s1 as3ÃĪt a2sca a4schec a4schef a4sch3ei a6scher6g as4chi a2schm 2ascht a3schu a4schum 2asd 4a3se a4seb a4sec a4s1ef as1eie a5sen. ase4na ase4n3o asens2 asen6sem as1ent as2er as4erd ase2re aser6geb a4s3erke as4es ase2t as1eta a4sex 2asf 2ash a4s3ha as2hi as3hir 2asig a2s3i2k 2asim asin2g as1inn 2asis as3ku a4s3l a4sn 2a1so as3ob as1of a3sol a3som aso2p as1or a4soz as1p as3pe aspek6to a4spel a4s2ph as2pi as3pik as4pin as3pio a4spir a4spl 2aspr as2pra as3sa ass2a3b ass6aus. ass2e ass3ein as3sel asse3le as3ser asserma6 a4ss2i as3sin as3ski as3so as2spo as2spr as4st as5sta as5stei as5str as5stu 2asta a4stab a3stÃĪ a4s1tec as2tee ast2el a4stemp a4s3tep ast2er a4st3ese as2tex a4s2th ast2id as2to a2stoc ast3orc as4trau a2st3re ast4ren a6stritt a3stro a4strol ast5roll a4s1tub a4stuf a2stum 2a1su as2ur a3su4s3 a4sw aswa2s 1asy 3a4syl 2asys as3z aße4 aß2en3 a2ß1er aß2th 2a1t 4ata at1abe at1abr at2a1f a3ta3g at2ago a3tah ata3la a3tam at1ang at3ank at1apf at2ast at3att a2t1au at1ÃĪn 4atb at2c a2teb ateien6d at1eig 3a2teli a3tell 3atemg at2en ate4na atens4 a2tep 4ater ate3r4al ate3ran at4ere atern2 ate2ru at2eu a2tew 4atha at3hag at3hal a3t2heb ath3in. 3athl a4thr at2hu at3hÞ 4a3ti ati4kab ati6k5erw a4tinf at2is ati2sa ati2se a4tiso atis3s ati6v5erf 3atla 4atli 3atm 4atma 4atmÃĪ at3mu 4atmus a2t1ob a3tod a3tog a3tol 3a2t4om atom1e ato2mo at1op a3tor at1ort a3tos a3tra. atra2t a2t3rau a2t3rÃĪ at3re at3rin at3rom a3t4ron at3rot at3rÞ at2sa at4schn at2se ats1e2h at2si ats1in at2s1o ats1p ats3tÃĪt at3ta 3attac at4tad at2ta2g at4t1ak at2ta2l at4tang at4tar at4tau at2tÃĪ 4atte. at2tec at2tei at3t2el at4temp 4at5ter attes2 at3thÃĪ 4atto at2tob at2t3rÃĪ att3s2 at3t2u at2ty2 at4typ 4atu atu2n atze4l atz3ela atz3elt at2zem at2z1er a3tzere at2z1i atz3t2 at2z1w a2u 2au. 2au1a2 2aub au2bab au2ban au2b1au au2bei aube4n au2beu au2blÃĪ au2bli au2blo au2blu aub2si aubu4s 2auc au2dr 2aue aue2b au2ere aue3rei auer3Ãķ au5erst. au3ert au2fa auf1ak auf1an aufas2 3aufber 2aufe. 2aufeh 4aufen. 3aufent auf1er au4fer4k au2feu auff4 auf3ind 1aufla 1aufn 2aufo auf3ski auf3t2 2auft. 5aufzeic 3aufzug 1aufzÞ 2aug au2ga au3g2ar 4augeb 4augeh 4augel aug2er 4augl 4augr au3gu 2auh au3ha auh1u 2au1i au2is 4auj auk3t aule2s aul4les au3lÞ 2aum au2mal aume4n au4m3ent au2m1e2r1 aum3eri au2m1id au4mil au4mit au2m1o aumo2r aum3p2 aum3s2 au4mun 4aun au3n2a aun2e au4n3ei au2nio au2no au3nu a4unz 2aup2 2aur2 au1rh au4sag au2s1ah ausan8ne. au2sas au2sau 2ausc au6schmi 1ausd 2ause. au4s1eh 2au3sen au4s3erb au4serf au4s3erk aus3erp au4serw 1ausg au2sin au4sis 1ausl au2so aus1or au2spr 1ausr auss2 3aussag au3sse aus4se. au8ssende aus4ser aus4ses au2st2a aus3tau 2auste au4stec aus3tie aust2o au2stÃķ aus3tri 3ausÞ 1ausw 1ausz auße2 a4ut au2tab au2t1ÃĪu 2autb au2t1e2l au3ten. auten4g au4t3erh aut5ero au3tet 2autg au2thy 1auto au2trÃķ 2auts 2auu 2auv auve4 2auw 2aux 2auz auz2w 2a1Þ a1v av2a a3vang ava3t2 avener4 2avi a2v3r av2s 2a1w awi3e a2wr a1x ax2am a2xans a3x2e a3xid a2xio axi2s1 2a1ya a1yeu ayma2 ay1of aysi1 ay3t a1z az4a a3za3d 3azal a3z2i az2o a3z2u az2zen az2zw ÃĪ1a 1ÃĪÃĪ 2ÃĪ1b ÃĪ2b3l ÃĪb2s ÃĪbte3 ÃĪ1ce ÃĪ1che ÃĪche1e ÃĪche4n ÃĪchenma5 ÃĪchenmas8 ÃĪ1chi ÃĪch3l ÃĪ2chr ÃĪch4sa ÃĪch2s1o ÃĪch2sp ÃĪcht4e ÃĪ1chu ÃĪ1d ÃĪ2da ÃĪ2d1ia ÃĪ2dr ÃĪd2s ÃĪd3te 2ÃĪ1e ÃĪe4k ÃĪ3eu ÃĪe2x ÃĪfe4n ÃĪf2fl ÃĪf3l ÃĪf3r ÃĪf4ro ÃĪf2s ÃĪft2 ÃĪft4s ÃĪ1g ÃĪ2g1a 1ÃĪ2gÃĪ ÃĪgd2 ÃĪ5ge ÃĪgen4e ÃĪge2r3a ÃĪ2g3l ÃĪg2n ÃĪ2g3r ÃĪg4ra ÃĪg2s ÃĪg3sta ÃĪg3str 1ÃĪ2gy ÃĪh1a 2ÃĪ1he ÃĪh1ein ÃĪher8gebn ÃĪher3t ÃĪ1hi ÃĪh1in ÃĪhl1a ÃĪh3l2e ÃĪh4l3e4be ÃĪh5ler 4ÃĪhm ÃĪh3na ÃĪh3ne 1ÃĪhnl 2ÃĪhr ÃĪh2rel ÃĪh3ri 2ÃĪh2s 2ÃĪht ÃĪ1hu ÃĪh1w 2ÃĪi ÃĪ1im ÃĪ2is ÃĪ3is. ÃĪ3isch. ÃĪ3isk ÃĪ1j ÃĪ1k ÃĪka2la ÃĪk3l ÃĪ2kle ÃĪk4li ÃĪ2k3r ÃĪ1la ÃĪlbe2 ÃĪl4bl ÃĪlk3 ÃĪlks2 ÃĪl2l1a ÃĪl2p3 ÃĪl4schl ÃĪlt2e ÃĪlte1i ÃĪ1lu 2ÃĪm4a3 ÃĪmer2s ÃĪmi3en 2ÃĪml ÃĪm2ma4 ÃĪmmas2 ÃĪmoni3e 2ÃĪmp ÃĪmp7f4e ÃĪm2s ÃĪmt2e ÃĪmter3 2ÃĪn. ÃĪn2dr 2ÃĪn2e ÃĪne2n1 2ÃĪn2f3 ÃĪnft2 4ÃĪn3g2e ÃĪnge4ra 2ÃĪn2gl ÃĪng3le ÃĪn2gr ÃĪngs2 ÃĪng3se 2ÃĪ3ni ÃĪn3k2e ÃĪn2k3l ÃĪn2kr 2ÃĪnn ÃĪn3n4e2 2ÃĪns ÃĪn4s1a ÃĪn2s1c ÃĪns2e 2ÃĪnz ÃĪ1on ÃĪo3s2 ÃĪ1pa 1ÃĪpfel ÃĪp2pl ÃĪp2pr ÃĪp2s1c 1ÃĪq ÃĪ2r3a4 ÃĪr4af ÃĪr1ÃĪ ÃĪr2b3le ÃĪr1c 2ÃĪrd ÃĪrde4s 2ÃĪre ÃĪ2r1ei ÃĪ2r1e2l ÃĪre2m ÃĪr1emi ÃĪre2n ÃĪ2rene ÃĪ2rerh ÃĪr2es ÃĪr3ge ÃĪ2r1ind ÃĪr1int ÃĪr3ke ÃĪrm3arm ÃĪrm3at ÃĪrme1e ÃĪrm3ent ÃĪrno2 ÃĪr1ob ÃĪr1of ÃĪr1op ÃĪ1rÃķ ÃĪr3re ÃĪrse2 ÃĪr2seb ÃĪr4seh ÃĪrs1er ÃĪr2si ÃĪr3spu 2ÃĪrt ÃĪrt4e ÃĪr2th ÃĪrt4s1 ÃĪ2rÞ 1ÃĪrz ÃĪrz3te ÃĪr2zu ÃĪr2zw ÃĪ1s ÃĪs4c 2ÃĪ3s2e ÃĪse3g ÃĪse1i4 ÃĪse5ref ÃĪser4ei ÃĪse4ren ÃĪser2i ÃĪ5si ÃĪ3s2kr ÃĪ2s1p ÃĪ3s2s 2ÃĪs4s1c ÃĪss2e ÃĪss5erkr ÃĪs3sern ÃĪss5ersa ÃĪss3erw ÃĪ5sses ÃĪs4sh ÃĪs4s1t ÃĪs4t4e 1ÃĪsth ÃĪ2str ÃĪ1ß 2ÃĪßc ÃĪß1erk ÃĪß1ers ÃĪ2t3a2 2ÃĪ3te ÃĪte3a ÃĪte1e ÃĪte1i ÃĪte3l2 ÃĪte2n ÃĪteo2 ÃĪter4bl ÃĪte3se ÃĪt2et ÃĪ2th ÃĪ1ti ÃĪt1id ÃĪ1to ÃĪt1ob ÃĪt3r ÃĪt4sa ÃĪts3au ÃĪt2sÃĪ ÃĪt4schl ÃĪt4schr ÃĪt2s1i2 ÃĪts3l ÃĪts1or ÃĪts1p ÃĪt4s1t ÃĪts3te ÃĪt2tei ÃĪtte4n ÃĪt2tr ÃĪ1tu ÃĪtze3l ÃĪt2zw ÃĪu2b3l ÃĪu2br ÃĪu1c ÃĪu3d ÃĪude3 ÃĪuder2 2ÃĪ2uf 1ÃĪug ÃĪu4g3l 2ÃĪul 2ÃĪum ÃĪu2ma ÃĪum3p ÃĪumpf4 ÃĪum2s1 2ÃĪ2un ÃĪun2e ÃĪu3nu 2ÃĪu3r2 ÃĪure1 ÃĪu1s 2ÃĪ3us. 2ÃĪusc ÃĪu4schi ÃĪu4schm ÃĪu6schÞ ÃĪu3s2e ÃĪuse1i ÃĪ3usg ÃĪ3usk ÃĪ3usn ÃĪu2s1p ÃĪu3s2s ÃĪuss1c 1ÃĪuß ÃĪut2e ÃĪu2tr ÃĪ1v ÃĪ2vi 1ÃĪx ÃĪ1z ÃĪ3ze ÃĒ1t ÃĄ1n 5ba. b2aa b3a2ba 2babf 2babg ba2bl ba2br 2b1abs bach7t4e back3er back3s2 ba3d2e bade1i 2b1adel 2b1adl 2b1adm b1a2dr ba2du 2b1af 3bah bah6nene bai3d bais2 b2ak ba2ka ba2k1er ba2k1i ba2k5l ba2k3r ba2lab ba2l1ak ba3lal ba2lau baler2 ba4l3erk balk4a balke4 bal4lan balle4b bal4l3ei bal6lerg ball6erk bal4li4g bal4lo4k ballÃķ3s 2b1am b2a3ma ba2me 4bamt ban2a 3b2and band1a ban4dal ban4dan ban4dar ban6deng ban2dr ba3n2e 2banf b1ang ban3gl ban4k1a banker4 ban2kl ban2kn ban2kr ban2ku 2banl b1anna ban2o 2b1ans b1ant 2banw b1anz ba2r3ab ba2rad bar3ast ba2rat bar3de ba2rei ba3r2en barer5ei barer4t barf4 3bars b1arz bar3zw 3b2as ba3s2a ba2sc bas2i bas4sa bas6st bas4t ba2str ba2ß1 ba4t3ent bat2o 3bau. bau3b bauer4l bauer4s bauer4w bau3fa bau1fl bau1fr bau3g2 b2auk bau3r bau3s2k bau3sta b1a2x ba1yo 3b2ÃĪc bÃĪ1ch 3b2ÃĪd 2b1ÃĪh b2ÃĪl 2bÃĪrz b2ÃĪ4s3 2bÃĪug 4b1b bbe4n bbe4p b4be2se bb3le. bb2lÃķ b3brec b3bru bbru2c bb2s bbu1 4b1c 2b5d4 bdÃĪ4 bdÃĪn3 bdome4 1be. 3bea be3ab be3an beat2m be3au be4au. 3beb b1ebb 1bec be1ch 2becht 2b1e2del bedi4 be1e2h bee2l be3ela bee4rei be1erh be1erl be1ert be1eta bef4 2b1eff be3g4 be2he. beh5ri bei3b 2b1eier bei1f4 bei4ge. beige4l beige4p bei3k4 bei3l2a 2b1eime be1ind be1inh bein6hal bein4hi bei3s2 bei5st beit4e beit2s beit4sk beit4sp 3bek 3bel be3lag be3las bel3d be3lec 4be2lek be2l1en bel3ere be2let bel3f bel3la belle4n3 bel3li bel3om be2lor be2lÃķf bel3sz belt2 bel4un 1bem4 3b2em. 3b2e3ma 2b1emp 2bemul 1ben 3ben. be5nabe ben3ar be4nas be4nat be2nÃĪ4 bend3s2 b2ene be3nei be4n3end be4ners ben2eu 3beng be2nid be4nis ben3n 5benp b2ens ben4s3pa ben4spr benst4 3bensv 3bensz 2b1entb 2bentd 4benteu 2bentf ben3th ben6thei bent4r 2b1ents 2b3entw be2nu ben3un b2en3z2 be1o 2b1epi 2bepoc be1ra be2rak be2r3am be2ran bera4s berb2 berbla4 ber3d be2r1e2b be4reck be4r3eiw bere2m be4rene ber4erg ber4erw bere4sc bere2t berf4 ber4g3af ber4gal ber4gli ber4hab beri2d ber4in. be5r6inne berin4s be2ri4o ber3iss ber3ko ber3kr bermas4 berma7sse ber3n2a bern2e b1ernt be2rÃķ4 3bers. ber5se ber3st4a ber3t2a bert2e bert2i berz2 ber3ze ber2zÃķ 3b2es be3sa bes4abb bes2am be4sap be4sar bes2au be2sep be2s1er be2s1id bes2po bes3sa bess4e b3esst. bes3sz beste2 be6stein bester4 be6sterh be4s3tol be4st3o4r best4r be4strÃĪ be4s3tur be2sur be3s2ze 3bet be3tam be3tha be3thi bet2to be1un be1ur 3bev 3b2ew2 2b3e2x 3b2ez 2b5f4 bfal2 bflÃķ4 bflÃķs3 2b1g2 b5ga bgas1 bga4st bga4su bge3 bgel2e bge5n bges2 2b1h2 b5hÃĪ 1bi bi1ak bi2ar 3bib2 bibe2 biber1 bi2c bi3do bieres4 bie4str biet4s 3bietu biga1 bik2a bi2ke. bi2kes bi2kre 3bil bil4deb bi2lei 4billu bi2lu 2bimp 2b1inb bin2e bine4n b1inf bin4fo bin2g3a 2b1inh bi2n3ok bin4ol 2b1int 2b1inv bi2o3 bioi2 biri1 3bis bis2a bi3si b1iso bi2sp bis4s1c bi3sta bi2s1to bi3str bi2stu bi2stÞ b2it. b2ita b2ite b2iti bit4r bit2ta2 bi2tu bi3tum bi3z2 2b1j bjek4to 2b5k4 bl4 2bl. bla3b4 2b3lac b3lad b2lanc blas3er b2latt b2lau. b3laus 2b3law 2b1lÃĪn b2lÃĪse 3blÃĪt b2le 3ble2a b3leb 3blec b3leg 4bleh b4lei. 2b3leid 2bleih b3lein blei3s 2bleit ble3l ble2n b3lenk b3lese 2blesu ble3sz 3blet b3leu 2blich 3blick b2lie 2blief 4blig b2lind 2b5ling4 b2lis 2blis. b2lit b3lite b2lo b4lo. 3b4loc b4loi b3los2 blo3sse 3b4lum 2blun b2lus 3blut blut1o 3blÞ 2b1m bmas2 4b5n2 bnas4 bni2 bnis1 bo4a bo5as b1o2b bo3ben bob3r bo1ch2 bo3d2 boe1 bo2e3i 2b1of bo3fe bo3he boh2ra boh3rer boh2u bo1is bo2lan bo2lau bol3le 3bon. bo3n2a bon2da bon2d1e bo2ne 3bons boo4l boo2ti b1op 3bor. bo1ra bor2an bo2r3as bo4rÃĪ bor2da bor2d3r bo2rei bo4rig bor3m b1ort bor4ter bor6t5rat bo4ruh bo2sc bo3se bo4s3p 3bot bote3n4e bo3th bot2so bot2st bot3t bo2xo b1oz bÃķ2b3 2bÃķf 2b1Ãķl 2b1p4 bpa2g 2b1q b2r4 2br. b4ra. 2b3rad 2b4rah b4ra3k bra4ss brast4 2b3rat. brat3er4 bra6terg 2b3ratg 3brÃĪ 4brÃĪd brÃĪ4u 2bre. 6b5rechte 2b3red 2b3ref 2breg b3reif 2brek b4rem b4ren. 2b3rent 2breo 2b3rep b4rer b4res. b3rest b4ret bret6t5en b4rez bri2da brie4fa 2b3riem b4rien bri2er b3ries 2brigk b4rina 2b3rind b4rio b4risc 2briß b3ritt brob2 2b3roh 2b3rol bro2ma b4ron 2b3rost bro2tr brot3t4 2b3rou 3b4rÃķ b4ruc 2bruf b4rum 2b3rund bru4s brust3 bru2th 3brÞ 4b3rÞb brÞ4ss 2b1s b2sad bs1amb b4samt bsas2 bsa3sse bsau2r b4s3ÃĪr b3sÃĪu b5sc bsch2a b6schan b6schef b6sco b3se. bs1e2b b3sel. bse2n1 b3sen. b2s1ent bs1er bs3e4r3in b3ses b2sim bsi2t b4s3ki bs3kr b2s1of b3s2oh b3sol b4sop bso2r b2sÃķ b3s2pi bs2pl bs2pu bss2 bst1a2b bs2t1ak bst3ank bs2t1a4s bs2tau b3stÃĪ bs1tÃĪt bst3emi bst1er b4stern bs2t1h bst3ink b2stip b3sto b4stob b4stod b4stor b3stÃķ bs2tr b3stra b2s3trÃĪ b4s3treu bst3ro bs2tu b3stÞ b4stÞb b2s1un b3sz bs2zep bs2zi 4b1t b3ta bta4st3r b5te b2t1h bt2i bti2s bt4r btran2 bts2 btÞ1 bu4chec bucher4 bu6ch5ers bu3ches bu2chi buch3s4p bu2e3 bu2f bug3 bu2gr bull3a 2bumf 2b3umk 2buml 2b3umr bun4a bun4d3er bunde4s b1une b3un3gn 2b1unh bur1c b2ure b2urg burg1a bur4gan bur4gar bur4gin bur2gr bu3r2i 2burn b3ursa burt4s bu2sa bu2sc bus3cha bu3sche bu6schei bu6sch5el busch3w bu3shi bu2si bu2s1p bu4sses bussy2 buster4 bu6s5term bu2s1tr bu2su but2a buto3re 2bÞb bÞ1c bÞgel3e bÞ3s4 2b1v 4b5w 3b2y1 bya4 byo2 by3p2 bys2 2b1z4 b5ze bzeit1 bzu1 1c2a cab4 ca3bl 3ca2c ca2e3 ca3g2 ca1h cal2a cala3b cal2f3 cal3t2 2can cana3 ca2pe car3n2 carri1 car3tr ca3s2a3 ca3t2h ca1y2 cÃĪ3 cÃĪs2 c1b 2cc c1ce c1ch2 c2d2 c3do 2cec 1ced ce2dr ce1e 2cef ce1i ce3in 2cek 3cels cen3a ce3nu cen3un ceo2 1cer cer3a cere1 cere3u ce3r2i ce4ris ce1ro ce3s4h cet1am ce1u 1cÃĐ c1f c1g4 c2h 4ch. 2chab ch3a2b3i 2chac 2ch1a2g ch1ah 2ch1ak chan4a 3chanc chan3f ch1ang 4chanl 2chanz 1chao 2char. 1chara 3chard 3charta cha2sc chasi1 1chato 2chatt 2chatu ch5austr chau3t ch1ÃĪh ch1ÃĪrm ch1ÃĪs 1chÃĒ 2chb 6chc 2chd che3b4 ch3e4ben ch3echt ch1edi che2el 1chef 3chef. che4fer 3chefs 2chei ch1eim 4chelem che4ler 1chemi 3chemik 2chemp che4neb che4nid che2no 4chents 4chentw che2r3a 4ch3erbs 6chergeb 4cherke cher6zie ch3es2s 4ch1e2ta 2ch3e4x 1chÃĐ 2chf 2chg 2chh 1chia chi3na 4chind 3chines 2chinf 2chinh 2ch1ins 2ch1int 2ch1inv 1chip. 1chiru 2chiso 2chj 2chk 2chl4 ch2le chle2i ch3lein 4chli ch2lu 4ch2m4 2chn4 chner8ei. ch2neu 2chob cho2f ch1off chof2s ch1oh cho3l2a ch1orc cho4rei ch1ori ch2os ch3Ãķl 2chÃķn 3chÃķr 2chp ch2r4 2chra ch3rad chra3g 2chre chre3s ch3rh 2chrit 3chromo 3chron ch5ros 4chs ch4stal 2cht ch2tru 2chuf 2chuh 2ch1unf 2chunm 2chunt 2chur ch1urs 2chut 2chÞ 2chv 2chw 1chy 2chz ci1c ci1es c1ind cins2 c1int ci2s1 1ci3t2 c1j 4c2k c4k1a cka2b ck2ad ck2ag cka2m cka4r1 ck1ÃĪ ck1ef ck1eh ck1ei cke4na cke2ra ck2ere ck3er4hÃķ ckerk4 cker6lau ck2ern cke2ro ck1err ck2et cket2t ck1i2d ck1in ck4is ck3l ck5n ck3o4 ck3Ãķ2 ck3r cks2al ck4spen ck3te ck3t2i ck1uh ck1um ck1up c2l2 cle4a clet2 clin2g cli2p1 clip3a clo1c clo3f 1clu clu4b c2m2 c3me c3mu 1co co1ch 3co2d2 co4de. co3di cof3f2 coi4 co1it co2ke co3la1 co2leu co3l2o com4te. comtes4 con2ne co2o coo1p co1p co1ra cor2da co4re cor3t cos4 co2te cou3si 2cp c1q 1c2r2 cra4s c3rÃĪ c4re2 2cree cre4me 2cri cros4 2cry 2c1s2 cs4f c4si cst2 4c1t cti2 cti4o2 ction5 ctur6 1c4u 2cua cu2e cu2p3 cup1e cussi4 c1w 2cx 3cy c1z 3da. da1a 2d1ab d3a2bak d2abÃĪ d2abe d3a2ben d3a2bi da3blu d3a2bo dab4ra da2bri da3brie d2ab4rÞ d1ac dach3a da2cho 4d3achse 2d1ad da2de da2do da2d4r d1af 2daff da1f4l dafo4n d1ag dagi4o dag2o da1h dah3l dail5 da1in 2d1air da1is da2kro dal2a 2d1a2lar dal3b2 4d1all da2lop da3lÃķ 2d1alp d1al3t2 2dalte da1lÞ 3dam da2mei d1amma 4d1ammÃĪ damo3 d2amp damp7f8erf 4d1amt 3d2an. d1ana da2nan da4n4at 2danb dan4ce. d1and2 2danda d2andy 3dane 4d3anei 2danf d1ang 2danh dan2kl dan2k1o dan2kr 2danl d1ann 2danna d1a2no 2d1ans 2dantw 2danw d1anz d2anz. 2danzi 2danzÞ 2d1ap d2apa d2aph da2po da3pos 4dapp d3apte 2daq da4r1a dara4s 2darb2 2d3arc dar2d1e dare2 daren1 dar3g dark2a 3darl dar2m1a dar2m1i dar4mu da2r3o 3dars4 2d1art dar2th dar2tr da2ru d1arz das2 da3sh d1asp das3s dat2e2 da3tei 4d3a2tel date4n da2th 2d3atl 4datm d3ato dat2st 2d3atta 3daub 2daud dau3e2 dauer3e daue6rei 2d3au2f 2d3aug 2dauk da3unt 2d1aus dau4ss dau2ß 3daw d1ax 3dÃĪc 2d1ÃĪg 2d1ÃĪh 2d1ÃĪmt dÃĪn3a 2d1ÃĪnd 2d1ÃĪp 2dÃĪq 2dÃĪrz 2d1ÃĪ2u dÃĪ3us 2dÃĪx 4d1b4 dbau2c dbauch3 dbe2e dbu2c dbu3s 2dc d3ch 4d1d2 d3da d3dÃĪ d3de d3dh d5do 1de dea2d de3ar de3a2t deb4 3debÞ de1ch deco3 de2del de2dit 2de3e4 def4a de2fa. 2d1eff def4l deg2 degene7 de3gl deh2a dehe2 3dehn de3ho 2d1ehr d1ei 3d2eic de3i4den de3il 3d2eim 4deime dein2d de3inse de3inst dein6sta dein6sti 4d3einw de3io 2deise d4e1ism dei2sp 2dekz de2l1ac del4ade de3lak de4l3aug del3ÃĪnd del3b2 del3d del1ec 3de3leg delei4g 2delek 2delem de2len deler2 deler4r 2delf. 2delfm 3delik della3d del4lan del4lar dell3au del2l1ÃĪ dell3eb del4lei del4ler del2lÃķ2 de2l1ob de2lop del2se del2so del2s1p del3t dem2ar 2d1emb dement4 de6mentg dem5ents de3min 2d1emot 2d1emp d2emu d4en. den2am de2n1e2d de4n3end de2nep 4denerg de3n2es 4d3en4ge. de2ni denk3li deno2s deno4st dens4am den6s5cho dense2 4den4sem den6sere den6s5tau 2dentd den3te 2dentf 2dentg den3th 2dentn 2dentw 2dentz den6zers de2ob 2deol dep4l 2depoc d4er. der3af de2rak dera2n de3rand de2r3ap de1r2as de4r3asi der2bl 4d1erbs 2derdb de2r1e2b de4reck de3reie de4r3ei4s 5d4erem d4eren de4r3end 5d4erer der4erf derer3n der3ero derer4t 5d4eres de2r3eu derf4 d4erfl d3erheb d2erhÞ de2r3id derin4f de6rinnu derin8teg der3k2 4derklÃĪ d4erlan d2erm de1ro derÃķ4 der3r derst2 der3sta dert7ende. derter6e dert4ra 6dertrag der8trage 3de3ru de4ruh de4rum 2d1erz. 2d1erzv d2es. de2sa de4s1ag des1ah de4s1am des3an de2s1ÃĪn de2seb de4s1e2h de2sei de4s3eil 2d1esel des3elt de3sem de3s4end desen3e de3sens des3erm de2s1et de2s1in 3desk des1o de2sor de2s1p de3spe dess2 des3se des5st de6st5alt de6stant de8steige de8steins des4tex de4stit de6st5rat de4stre de2su des1un 3desw de3ta deten4t 2d1e2th 2d1etw 2d1eul deum3 de1un de1url de3us 2d1e2vid devil2 de1x2a de2xer de2xis 2dexpe 2dexpo 2d1f6 2d1g2 dga4s3tr d2ge. dger2 dge3s d2gesh dge2t3a dge4t1e 2d1h2 4dho d3hu 1di di4ap di2a3s diat4 di4ath 3dic di1ce di3chl dicht6er dick3el 4d3i2co 3dida d1ide 2didee di2den 2didy di2e di3e4d di3enb di3end die4neb diener6l di3e2ni dienst5r die2p di3ers. dies3c di3e4th 3dif 3dig dig4n dik2a dil2s1 2d1imb 2dimp din4a 2d1ind di3n2e 2d1inf 3ding 2d1inh di3ni 2d1inj 2d1ink 2d1ins 2d3int 2d1inv di2o3b dion3in dion5s2 di3ora dios2 di2osk di1p2 di3pt d1i2ra di4re. di2ren di2rin di2ris 2d1irl 2d1irr di4s1a2 2d1iso di2sp di3s4per 2d1isr dist2 di2s1to di4s3tra di4sz di2ta dite1c di4t3erl di4t3erm di4t3ers di2tin di2tob di2t3r dit3s di2t1u di5v2 diz2 2d1j d2jar 2d1k4 4d1l2 dla3g dlap4 d3le dle2ra dli4f dl3m dl3s 2d3m2 4d3n2 dni2 dnis1 dni3v do5at 2d1ob 3d2oba do1chi d1of do2fe 2d1oh do3ha doll2 dol3la d3oly 3dom do2mal do2mar domen1 do3mi do4ming 4domn do2mu do3n2a do5nan doni1 4dony 2d1ope 2d1opf do1r4a 2d1orc 2d1ord dor2f1a dor2fÃĪ dor2f1i dor2fl dor2fo dor2fr dor2f3u 2d1org d2orn 2dort dor4ter dor2tr d2os. do3se dos2k 2dosm dost1 dost3a dosten4 do3ta do2tof do3un dow2s d2o3x2 d1Ãķ dÃķ2d dÃķ2f dÃķl3 dÃķlla3 d2Ãķn 3d2Ãķr dÃķ2s1c 2d3p2 dpass3 dpol4n dpo4st1 2d1q d2r4 3d4ra. 3d4rab 4d3rad 2drahm 2d3rak 3d4ral d3ramp d3rand dran3k dra4s3s 2d3rast dra4tin 2draub 2d3rauc d4rauf 2draum 2draup 2drÃĪd d4rÃĪh 2d3rÃĪt 2d3rÃĪu 4dre. 2d3rea d4rea. d4reas 3d4reck 2d3ref 4dreg 3d4reh dre2ha 2d3reic 3d4reie drei3s d4reiv d4rej 4drem 4d3ren d4reo 4d3rep 4d3rer 4dres. d4resc dres6sei dres6sel d4rew 2drez 2d3rh d3ri 3d4ri. d4ria d4rib 4d5ric d4rid d4rie d5rieg 3drif 4driff d4rift d4rik d4ril d4rin. 4d5rind 2drip d4risc 2drisi 2driss 2driß d4rit 2d5ritu d4rix 2d3rob d3rod 2drogg 2drohr 3d4rohu 2d3roll 2d3rose d4ross 2d3rost 2d3rot 2d3rou 2d3rov d3row drÃķ2sc d5rub 3d4ruc 2d3rud 2d3ruh 2d5rut drÞ1b 3d4rÞs 2d1s 4ds. ds3ab d2sad ds1al d2salk d2sall d4s1amt d2san ds3ane ds3assi dsau2 d2saut ds1ÃĪn ds2ÃĪu 4dsb d4schef d4schin d3s2co d2scr d2s1e2b dse2e d2s1ef ds1ehr ds4eign d2sein d2s1emb dsen3er d2s1eng d2s1ent d2s1erf d2serh d2s1erk d2s1erl ds1err d2s1ers d2s1ert d2serz dse2t d2s1eta d2s1ev d2sex d3sha2 ds2hak d4shal d3sho d4shor d2sid d2s1im d3s2inf d3s2kal d3s2kel 4dsl d4sli d3soh d2sop dso2r ds1ori d2sÃķ ds1pa4s3 d2s1pat d2spÃĪ d2s1pec ds2pen d4speri d2s3ph d3s2pi ds2por d6sporto d3spri d2spro ds2pu dss2 dst2 d4stabe d2stas ds3tauf d4s3tÃĪti d4stea d4stele ds2til d2s1tis d4stoch d2stod dstras4 d4stren d3s2tro dsu2m d2sun ds2zen 2d1t dta2be d3t2ac dtach3 dta2d d3t2ag dta2n dt3ane d3t2as dt2ax d3tea dte3mo dt2et d2th d4thei d3to2 d4tob dt2op d3tÃķ dt3r dtran2 dt1s dt3sa dt5st dtt4 dt2un d3t2ur d3ty 1du du1alv du1ar du2b3li du1ce duel3la du2f 2d1ufe duf4ter duf2to duf2tr 2d1uh du1i du2in du2kr dul3art 2d1umb 2dumd 2d1u2m1e 2dumf 2dumg 4d3umk 2duml d2ump 2dumr 2d1ums d2ums. 2d1umv du2n 2d3und 2d1unf 2dungl 2d1uni dun3ke dun2kl 2dunr 2dunsi dun4st3r 2dunt 2dunw 2d3unz du1os dup4 dur2c durch3 2d1urk 2d1url 2d1urn 2d1ursa 2d1urt du4schn du4schr du4sch3w dus2t 1dÞ 2dÞb d3Þber 2d1v2 2d1w dwa2 dwa4r dwer3te dwe2s dwe4st1 1dy dy2l1 dym3 3dyn dy2s1 4d3z2 2e1a ea2be ea2b3l ea4br eadli4 e3a2dr ea2g ea3ga2 ea3g4l eakt2 e2akta e3akto ea2la e3alei e4alem ea4l3ent ealen4z ealer2 e3a4lerg e3alex e3a2lin eal5le eal3lÃķ eallÃķ3s eal1o ea2lon ea2lop e2alti2 eal3tr ea2l3u2 eam3a e2ame eam1o eams2 eam3t2 ea4na ean3a2r e3anf e2ano e3ar. ea2ra ea3rat e2are e4are. ea2r1ei ea4rene e4arer e4ares ea2ro e3arz e3a2sc e3asf easin4 ea2sp eas5s eate2 ea3te. ea3ten eater1 eat4mes eat2mu eat4mun eat3s e3at3t4 eatu2 e3aue e3auf eau2fe eau4fl e4aufo eau3n eaus3s e2av e2az e3ÃĪ4 e1b 2eba e3bak eba2p e3bÃĪn 2ebec ebe1er ebein7h eb2el ebe4ler ebe2lo ebenen3 e3ber ebe4ras ebert4 ebese2 ebe4s3eh ebe2so 2ebet ebet4s 2ebh 2ebi 2ebl eb2laß e3blÃĪ eb3le. eb3ler eb4leu e3blie eb3lo eb2lÃķ 2ebo e2bob ebÃķ2s 2ebr e5brau eb4rea eb2s eb6sche ebse2 ebs1in ebs1o ebs1p ebs7panne ebs3tau eb4stÃĪt ebs3t2h ebs1ti eb4stot eb3str eb4sz 2ebu e2bunt ebus3s ebu2t3 2eca 2e1ce ech1am ech1ÃĪ 2e1che ech1ei ech2en1 e6ch5erzi e1chi ech3l ech3m ech3n e2cho. ech3Ãķ2 ech3r ech4ri echs4er echst5re ech3tab ech3t4ei ech6terh echter8ha e1chu ech1w 2echz e1ci eci2a ec4k ecke4n1 eck3ser eck4sta 2eckt 3eckty 2e1cl 2eco 2e3cr 2ect e1d ed2a ed2dr ed4e ede2al ede3n4er eden4sa eden4s3e eden4s3p edeo2 ede2r eder3a ede3rat ederer4 edert2 ed2i e3di. 2edip edma3 edmas2 e3d2o ed2Ãķ e3drei ed2sal ed4seh ed2s1es ed2si ed2s1o ed2s1p ed2sto ed2s1tr ed2s1u edun3 edund2 e3dy3 edys2 2ee ee3a4 eeb2l ee1c ee2ce ee2cho e1eck eed3s2 ee1e2 e1eff eef4l eeg4 e1ei ee2i3e eein4se eei4sc eei3se eeis3s e2ela eel2e e3e2lek eele4n eel2Ãķ e2e3m2a eemas3s e1emb ee3min e1emp e1en eena2g e2enÃĪ e2enc een1e e3eng ee3ni e3enk e3enl e2eno een3s een2z ee3o e2ep ee3po eer4at e1erbt e1erd ee3re2 eer1ei ee4r3en4g eer2e4s1 eer3eti e1ermÃĪ ee1ro ee1rÃķ e1erÃķf eer2Ãķs ee3r2un e1erz ee3sh ee3sp ees2t e2et. ee3t2a ee4tat ee2th eet2i ee3t4r ee2tu ee1u2 eewa4r eeweis4 e1e2x e1f e2f1ad e3fah ef1ana ef1ar e2farc ef3arm e2fat 2efÃĪ ef2ÃĪl efÃĪ5sse e2fÃĪu 2efe e2f1e2b e3fef efe4l3ei ef1em e2femi efe2n1 3e2f1ene e2fent efer5f eferin6d efer5r efeuil4 ef2fÃĪ2 3effek 1effi ef2fl ef3flu 2efi ef1id e2f1ins efi2s 2efl ef4le e3f4lu e3flÞ 2e3f2o 2efr ef4reih ef3rol ef3rom ef4ru ef4rÞ efs2 ef3sc ef3so ef3sp ef2tan ef2tei ef2tro 2efu e2fum e1g ega2m e3g2anz egd4 e3ge egein3 ege4lan ege4l3au ege8l7ei8er ege4ler ege2lo eg2en ege4n1a ege6nero ege2ra ege5stal ege4s3to ege4s3tr ege1u 2egi e3gio 2egl e2glo e2glu e2gn eg3nÃĪ eg3ni ego1p egro5sse eg4sal egsau3g eg3se eg4sei egs2e3l eg3si egs2of egs2pe egst2 eg4sto eg2th 2e1ha eh1ach eh1ad eh2ade e3h2ah eh2al ehalt4s e3hand e2harz e3haut e1hÃĪ ehÃĪs3 e1he eh1eff eh1ein eh1elt e4hense e4h3ente ehen4tr ehe3o 1e2hep 2eher ehe1ra e2h1er2f e2h1er2l 2e1hi eh3im ehis4 ehl1a eh1lam eh2l3au eh1lÃĪ ehl3ein eh4lent eh5l2er ehlo2 ehl1or eh2lÃķ ehl2se 2ehm eh2mab eh4mant eh3mu eh3na eh3no 2e1ho eho2f eho2l eh3oly 2e3hÃķ ehÃķ4rer eh2r1a4 ehr1ÃĪ ehr1ec eh2rei eh2rel ehr6erle ehr4ern ehre3s eh4rin eh1roc ehr1of eh1rÃķ eh2s2 eh3sa eh3se eh3sh eh3si eh3so eh3sp ehst2 eh3sta eh3sto eh3str 2eh3t2 eht3h eht4r 2e1hu e2hum eh1unf e2huni e3hur e1hÞ eh3Þb eh1w e1hy 2ei3a2 eia4t ei2bar ei2bli ei4blu eibu2t ei4b3ute e4ic ei1ce ei2cho e2id ei2d1a ei3de ei4deis eid5erre 2eidn ei3do ei3dr ei1e eie2b eie2d ei3e2l eie2m 4ei3e2n1 eienge4 ei3e4s eie2t 4eif. ei1flo 1eifr eif3t 2eig. 2eiga eig2ar 2eigÃĪ 2eige. 2eigeb 2eigeh 4eigeno 5eigensc 4eig2er 2eiges 2eigew 2eigi 1ei2g3n ei2go ei4g3rat 2eigre 2eigrÃķ 2eigru 2eigrÞ 2eigs 2eigt 2eigu 4eih ei2hum ei2kab ei2kak eik4am eik2ar eik2i eik2l ei3k4la ei3klÃĪ eik2o e2il 2eil. ei4l3ab ei2lam eila2n ei4l3ane ei4lang ei4l3anz ei2lar 2eilb eil3d4 ei4lein eile2n1 ei2let eil3f4 eilm2 ei2lob eil2Ãķ 2eim. ei2mab ei2m1ag eim3all eim3alp eima4to ei2m1or 2eimÃķ 2eimp eim2p4l eim3sa ei2mur e4i2n1a ei4na2d ei4nae ei4n3an ei4na4s ei4n3at ei2n3ÃĪ ein3d2e ein6derk e1indu 2eineb einen4e ei4n3en4g ei6nen6se ein5erbe ei4nerf ei4nerk ein5er6la einer6sc ei2neu ein4fiz 5einflus 5einfluß 2einfo ein4fo. ein4fos ein3g2 3einger e2ingr e2inhÃĪ ei2nie e1init ein3k4 ein6karn 3einkÃĪ e2inl ein3n2 ei2n1o4 1einri e6insa einsas6s einsa7sse 3einsat e2insc 5einschÃĪ ein6stal ein6terv 3eintÃķ 3eintrÃĪ 1einu ei3o eio2p eio2s ei1p eip2f 2eir eir2c ei3re e1irr e4is. ei2sa ei3sas ei6schwu e4ise ei4ser4g ei4s3er4l ei6s5erst ei4s3erw 1eisho ei3s2ky ei2so eis2pe e2i3s2s eisser6s 4eisto eistra6s ei2sum ei2sur 1eiswo e2it ei2t1a2b ei2tal ei2t1an ei2tap ei2tar ei4tat 2eitÃĪ ei2tÃĪn ei3tei eite4ra ei2t1h ei2tin eito2 ei4trau ei2tro eit4sa4g eit3t4 ei2t1um ei2t1ur eit3z2 eiv2 eive4 ei2zar ei2z1in 2e3j e1k 2ek. 2e3k2a 1ekd ek2e e3ke. e3ke4n e3kes e3key e3k2l ek4lo ek4n e3k2o ekor4da e3kr ek4s1p 2ekt ek5t6ante ekt3at ek2t1ÃĪ ek2te2l ekt3erf ekt3erk ek4t3er4z ekt2o ek2t3o4b 2e3ku ekur2a e3k2w 1ekz e1la el2abt el3abu el3ader el1af ela4h e2l1ak e2l1a2m el2a3mi e3lamp el1ana e4landa e2lanm e4lans e2l1ant e4lanw el1anz 2elao e2l1ap e2l1ar el3a2ri el1a4si el1asp el3aufw 2e1lÃĪ e3lÃĪd 2elbil 2elbr 2eld elda2r eld3ari eld4arm el4d3erf eld3erl elder4p elder4s eld5erst el3des elds2 4e3le. 2e3lea elea2r 2e3leb 4ele2c el1ech 1elefa 4eleh el3ehe. 2elei e6l5ei6ern e2l1ein e3leine e5leit 1elek 2eleko e2l1el 1e2lem 2e3lem. e3lema ele2mi e3lemm 2el1emp 2e3len. elen4k3l e4lense e2l1ent e3lep 2eler e3ler. eler2a el1erd e6lereig el1erf e4ler4fa e4lerfi e2lerg el1erh el1erk e2l1erl e4l3ernÃĪ eler2Ãķ e2l1err el3eru el1erw e2l1ess e2l1e2ta ele2ti elet4ta 2el1ex e3lex. 1elf. elf2er 1elfm elf4r 1elft elgi5er. elgi5ers el3g2l elg4r e2l1id 2e3lie elif3 2elig e2lim elin3a eli3no el1ins 2elk elks2 ella5den el2lap el4larb ellar4t ella2s el3le. ell2ei ell3ein el4lel ellenen5 ell2er eller8fas eller7g ell3erh el3lie el2lil 1ellip el2lo2g el2lor el2lot ell2Ãķ ell3sp ellu2m el2lÞ el3m2a elm2e elm3ein 2eln el3na 2elo e2l3oa e2lof e2lol e2lom e2lonk el1opf el1or elo2ri e3lot e3l2ov 2elÃķ el3p4 el4s5ein el3sent el2sum el4tans el3te. elte4m el5ten. el4t3ent elter4b elter4f elt3erh elter6le 3elter4n elt5ero elter6sc elt3eth el3the elt1r elt3se 2e1lu el1uf e2l1um e2l3u2r el3use elu2t el3uto e1lÞ 2ely e2lya el3z2ac el2zar el4zene elz1in el2zwa 2elzy e1m e2m3a2b e2m1alk em3anf e2m1ano e2m1ans 1emanz e4m3a2sp emas2s ema3sse e3maß em1au 2e3mÃĪ em2ÃĪh 1emba 1embo 1embry em2dÃĪ emd1r em2dra 2eme e2m1e2b e2mef eme2i e2mele em2en emen6gel emen4t3h eme3r2i e2m1er2l em1erw 3e2meti e2m1i2d emi2ei e2mig emik2 em1im 2emin emi3n2a e3mind em1int 1e2mir e3misc emma3u em2mec e2moa e3mol emo3s 1empf4 em3pfl em3po em2sa em4scha em2sim em2spr ems1tr em3t2 1e2mul 3emuls emune7 e3mur e3mus 2emÞ emÞ3s2 e2na 4ena. e4na2b en3aba en3abo 4enac e4n3ack enadi4 e4naf 4enah en3ak en1al enal2a e4nalb e3nale en2alg ena3l2i e4nalk e4nalm e4nalo enal3p 4en1am ena4n e4nand en3ane e4nant e4nanz en1ap ena2pa en3are en3ark en3aro en1as ena2sc e4na4st 2enat 4e5nati e4natl enat4s e4n3att 4enatu e4nau2f en3aug e4n3aur e6nausta e4naut en1a2x en1a4z en1ÃĪ en3ÃĪb e3nÃĪi e2nÃĪr en2ÃĪ3s en3ÃĪst enbu4s3 en2ce. end2ac en2dal en4dang 2endel ende4lÃĪ endermas8 en4d3es4s en2dex en2did en3d4ort end3rom end3s2l end3s2p end3sz en3d2um en3d2Þ 2ene. en3e4ben en1ec e2neff ene2h en2eid e3neien e4neige 4eneigu e4nein e4neis e2n1el ene4le 2ene2m e2n1emi 2enen e4nense e4n1ent en4entr en3envi en1ep 4e3ner. en2era e2n1erd en3erei e2nerf en4erfr 1energ e2nerh e2nerk e2n1erl e4nermi e4n3ermo 4enern e4n3erne ene2ro e2n1err en1ers 4eners. e2n1ert en4ert. e2n3eru e2n1erw 2enes e3nes. e2n1e2sc e2n1esk e2n1ess en1eta e2n1eth en1eul e2n1e2v e4ne2x en3f enft2 enf2u 1engad 1engag en3g2al enge3r4a en3g2i en3gn en3g2o 1engp eng4ra eng1s2 eng3se 2eni e3ni. e3nic 4e3nie eni3er. eni3erp eni5ers. en3i2ko en3ill eni4m en1ima en1imi e2n1in e3nio eni2Ãķ e2nir eni4sa e4n3iso e3nit2 e3niv enk3aus 3enkeli enk3erg en4k3erk en3k2Þ en2nef en2nel en4ner4f enn3erg en4n3erl enn2i enni6ger 2enniv e2n3oa e2n1ob e3nobel eno2br e2nof en3oli en3olm eno2ma eno4n e2n1op e2n1o2r en2ora eno4ri 4enorm e2n1ost 4e3not eno2w 2e1nÃķ en1Ãķ2d en3sabb en2san ensas4s ensa5sse en5sche en2seb 1ensem en4sen3e ens3ere en3spo ens4por ens4tak enst5alt en4s3tÃĪt ens4tel en6stele en6s5test 2ensto enst2Þ en2sun en3t2ag 2entan en4tanm en4tanw en3t4ark 1entd en3t2el ente2n 3entera en4terb en3tes 1entf 2entfo 1entg 3entgeg en2thi 1enthu 1enthÞ en2t1id 3entla 1entn en2tob entopf3 en2t1os 2entÃķ en4t3rol 1entsc 1entso ent4sto 1entw 4entwet 3entwic 1entz en1u e2nuf e2num enu4r 2enu2t e4nuto e1nÞ 4enwÞ 2e1ny en3zare enz2ÃĪp 1enzep enz3erg en4z3erk en4zerl en4z3erm enz5ersc enzi2d enzlan4 enzo2l 1enzy e1Ãą 4eo e1o2b1 eo3ben eo3bl eo3bo eo3br eo1c eoch2 eo3dr e1of eo3g2 e1oh eo3la e3o2ly e1on e3o2nat eo1o e1ope e1opf eop4r e1or e3or. eo1ra e3orb eorgi1 e3ors eort4 e3orw eos2 e3os. eo3se e1o4ste e1ou2 eo1ul e1Ãķ2 e1p 2ep2a epa2g epas6ser 2eper e3p2f4 e5pfi eph2 1e2pid e2pig e2pik 1e2pile e3pio 1epis 2epist 1e2pit ep3le 1epoc eport4 1e2pos. ep2pa eppe3l ep2pin ep2pl ep2pr 2epr ep3sh ep2tal ept2an ep2tau 2e3pu epu2s 2e3q er1a e3ra. era2be era3ber era2c e2rach e3rad. e3radi e2radj e2r3adm e4radmi e4r3adr eraf4a era2g e1rah e1rai er3aic e3rake e1rald eral4eb er3alke e2r3all era4mat er2an. era4n4a eran3d4 e3rand. e4rangr e2ranh e2rano e1rap er3apa er3apf e2rar er3are e3rari e3ras. era2si era4sie era2sp era4s3s e1rast era2ß e4ratel e1raub e1rauc er3aue erau2f er3aug e2ra2v e1raw e2r3ax e1raz e1rÃĪ er1ÃĪf er1ÃĪh er1ÃĪ2m er1ÃĪp e2r1ÃĪ4s er1ÃĪtz 3erbarm erb2au erb2e 2erbru erb2sp er1c er3chl erch2o erd4am erda3me 1erdb 2erdec 2erdel er4d3en4g erd3erw erdeu2 1erdg 2erdy 4ere. er3e4ben e3r2ech er3echs er1eck er1edi ere4dit er1eff e2r1e2h ere4i 4e3rei. e3reib er1eig 4ereih e3reik e4r3eime e4reink er3eis. er5eisar er3eisb er3eisf er3eisr erei5str e4rek er1e2l e2rele ere3lev 2erem 4erem. er1emi ere4mis e2remp 2eren 4e3ren. e3rena eren1e e4rense e4rentn e4rents e3renz eren8z7en8d er1epe 4erer. 2ererb e4r3erfo e2rerh e2rerk e2rer2l erer5lau 4erern. e4rerne e2rer2o erer4ri er1ers 4erers. e8rersche e2rert 2ererv 2ererw 2eres 4eres. er1ess eres3sk er1eß er1eta er1eu ere4vid erf2e 4erform erf4r 4erfÞr er4g3are 4ergebi 3ergebn 4ergebÞ 4ergeha 4ergehÃĪ erg5elst 4ergeni 2ergn er2gop 4ergrem erg1s2o ergs2p e4rh 1erhab er3hag 2erhai 4erhals 2erham 2erhan 2erhas er3hei 2erher er3hu 2eri e2riat e3rib 4e3ric e4r3ico er1id 4e3rie eri3en1 erien7s e3ri3k erik4l 4e3rin. e2r1ind e2r1ini er1ink er1inl er1int er1inz e2ri2on 4eris e2riso e2risr er1ita 3eritr e3riv 2erk. 2erkaj er3ker 1erklÃĪ 2erkm 2erkre erk3t4 er2kum 2erl. 2erlag 3erlebn 4erleh 2erln er3m2 ermen4s er4m3ers er4n3alt er3ne er4nene er4nerf er4nerk 3erneue er2nob erno2r ern1os 2e1ro. e1roa er1ob ero2bl ero2br e2r1o2f e1rog e1roh e1rok e1rol er3oly e1rom er3omb 2e3ron e2r1oo er1op 2e4ro4r eror2a e1ros 1erosi e3rosit e1rou e1row er1o2x er1oz erÃķ2d 2erÃķh erÃķ4l er1Ãķ2s er3p er4rade er3rÃĪ 2erren er3ro 2errÞ er3s2a ers4ana ersch4 er5schn 4ersei ers2el er5s2i er3sk ersma3s4 4ersted er6st5ers 4erstil er3swi er3sz er2t1ab er3tat er4t3erf er4t3er4g er4ter4h er4ter4k er4ters ert1h er2tho 4ertÃķ 4ertru ert3s2e ert1s2p 2eru eruf4s e4r3uhr er1u2m1 er1und e4rundu er1up. er3ur er3use e2r3uz erÞ4b 3erweck er4zerk er4z3ers e1s es3ab es2abb e4sabe e3sac esa2d e3saf e4sall es1ami es2an es4and es3anf es3ant esa2ra e3sa1s2 esa3ss esa5sse esa2v es1ax esÃĪs4 es2ÃĪu 2esb esbi5er. e3s2ce es2chi esch2l esch2n e4sco e3se. es1ebe e2s1ec es1ehr esein4s es2el ese4nal ese4neu e3senk esen3o esen3sk esen3th eser4at ese4r1u2 eses2k es3e2x 2esf 2esh es3ha es4ham es4har es3he 2esi esi1er e4s3i2k e2s1il e4s3ins e4siso es2kat e4s3ke e4s3kl e4s3ky e4s3l 2esm e4sn e2s3oa e4sob e2s1od es2oh es2opa eso2r es1ora eso3re es2ort e3sot e3s2Ãķ 4esp e3spal es4park es2pek e4spers e4sph e3s2pi e3s2por e3s2pu 2esr 2ess. es4s1ag essali3 essau4s 1essay 2essÃĪ 2essc e4ssel e4ssent ess6ere ess4erf e4ss3erg es4serh e4sserl ess5er6la 2essk 2esso es2sof 2essp es2s1pa es2spu es4stab es4ste estab4b e4stabs esta3ge est1ak es2tan est4ap e4starb es2t1a4s e3stat es2tau e4staum es2te. este2c este4i est5eing e6st5eink e6st5einl este2l e4stele e4st3emi e4st3eng est5entr est5erha e4ster4Ãķ e4st3erz estes2 e4st3ess e3sti e4stid e4stip estmo6de 1estn e2stod e4strad es3trak e5strec e5strick es2tu est3ums e3s2tÞ e3s2ty e3suh e2s1um es1ur esu4s 2e4sw e3sy e2ß1el e2ßent eße3re e2ß1erg e2ß1erl e1t e3ta. etab4 et2a2c 2e3taf 2etal etalla4 etal6lag etal6li6n et1ami e3t4an. et4at etat3r et1ÃĪh 2e3te ete2e e4t1ef e4t1ein ete3ke eten3d2 ete2o eter4hÃķ ete1ro eter4tr ete4sp 2eth. et2ha e4t3hal e3the et2hi e4thik 3ethn et2hu e4t1i2d eti2m etin1 et1ini et2it eti2ta eti2th 2e3to e2tob e4t1o2f et4on eto4n3al etons4 e4torg 2etr et3rad e4traum et3rec e2t3res et4ros ets2c etscher7e etsch3w ets1p et1su ett1a et2ta2b et2tad et2tak ett2as et2tau et2tÃĪ et2tei ette4n1 et4th et2tÃķ4 et2t3r et2t1um et2tur et2tÞ4 3e2tui e3tur etwa4r 1e2tym 2etz etze4s et2zw eu1a2 eu3b4 2euc euch4ta 2eud eudi4e 2eue eu2eb eue6r5eif eue6reis eueren4 euerer6s euerer6t eu3eri eu3erk eu3err eue3s eu2e5sc 4euf eu2fer eu2g1a euge4mi eu6gense eu3g2er eugin2 eugin4f eu4gin4g eu2gre eu2gri eug1s2 eu3h eu1id eu1in1 e4uk 1eukal eu2kÃĪ eulan2 euland3 eu3l2e eul2i 2e1um e3um. eu3m4a euma3s2 e3umb e3umf e3uml e3um2s eums1p eum3st e3umw 2eun eu2na eun2e eu4nei e3un2g eu2nio eu4nis eunk2 eun3ka eu1o2 eu1p e1up. eup2f e3upg eu4r1an eu4r3ast eura3t eu2rau eur1c e2ure euren2 eu4rens eur4er eur3f4 1euro 2eu1s4 e3usar eusch4o eu4s5k eu3sp eu3ss eust4 2eut eut2e eu5ted eut2h 3eu3tha eut2i eu3t2o eut6scha eut6schn eut6schr 2eux eu2za eu2zo eu2z1w e3Þ e1v e2vak e3var 2ev2e eve5ri evie3le 2e3vor ev2s e1w ewÃĪ4 ewÃĪ6s e2we. ewei4sc ewert4 ewer3te e3wir ewi2s e3wit 2ex. 1exam ex3at 2exc 2exd e2xel ex1er 2exes e1xi 2exik e2xil e2x1in e3xio 1exis ex3l 1exp 2expu 2exs 2ext. 2ex2ta ex2tin 1extr 2extu 2extv 2exu e2xum 2e1xy ey1l2 ey2n ey3no eys2 e1z e3z2a ez2ÃĪ e2z1enn e3zi ezi2s e3z2o ez2w ez3z2 ÃĐ1b ÃĐ1c ÃĐ1g ÃĐgi2 ÃĐ1h ÃĐ1l2 ÃĐlu2 ÃĐ1m2 ÃĐ1n ÃĐ1o ÃĐ1p ÃĐ1r2 ÃĐ1s ÃĐ1t ÃĐ1u2 ÃĐ1v ÃĐ1z2 ÃĻ1c ÃĻ1m ÃĻ1r 1ÃŦn ÃŦ1t Ê1p 1fa fab4 2f1ab5b fa2ben 2fabf 2fabg 2f1a2b5l 2fabn f2abr 2f1ab5s 2fabw fa4cheb fa4chel fa2ch1i fa2cho fachs2 fach3sp fa2ci fa2dan fa2del f1ader fa2di fa2dr fa3e fah6l5ent fai3b f1a2ka fa2ke f3aktio f4akto 3f2aku fa3la fa3le fal2kl falla4g fal4lei fal6lenk fall5ent fal6lerk faller6s falli4 fal6lini fal4lis fal6scha fal6schl fal6schm fal3te fal4tei fal2tr 3fam fa2mei f1amp f1amt 3f2an. fa2nar fand2a f2anf fan2ga fan2gr 2f1an3k 2fanl 4fann f1anp 2fanr 2fanw 2f1an3z 2f1a2p f2ar far2b1a far4bel far4b3er far4bin farb3l far2bo far2b3r far2b3u f3arc 3fa5ri far2r1a farre2 far4rec far4reg 2f3art 2f3arz 3fas. fa3s4a fa3sh f1assi fas2t 2f1a4str fa2ß f1aße f3at f4at. fa2to f4ats 2f1auf f3aug fau2s f1ausb faust3r 3f4av fa2xa 1fÃĪ 3fÃĪ1c fÃĪh4rin fÃĪh2ru f1ÃĪlte 2fÃĪq 3fÃĪrb 2f1ÃĪrm 2fÃĪrz fÃĪ4s fÃĪ6sser4 3fÃĪßc fÃĪ2ßer 2f1ÃĪtz 2fÃĪug 2fÃĪx 4f1b4 fbau1 fber2 2f1c f3ch 2f3d4 fdien4e 1fe 3fe. featu4 f2ech fe2del fe2dr fe2e1i feein5 fe1em 2f1e2he fehle2 feh4lei f2eie f2eind 2f1eing fe3ini fe3ins. 2f1einw f1eis fek4tin fe2l3a2 fe2l1ÃĪ fel2da felde4m feld6erh fel2dr feld5ri 2fe2lek 2felem fe2l1er fe2les fel3la fel4lan fel2lÃĪ fe2l1o fel4s3oh 6fel6tern felt4r fel3tu f2em. 2femb fem4m 2femp fen3a fe2nÃĪ fend2a 4fenerg fe2ni fe2no fen3s2a fen5s2c fenst2 fen6stri f1ent fen3t2a 2f3entf f2enti 4fentla f2ento 2f3entw 4f3entz fe2nu 3fep fe2pi f2er. fe1ra fe2rab fer3a2d fe2ral fe4rang fer4ant fe4ranz fe2rau fe2r1ÃĪ 2ferd. fer3da fer3d2e3 f2ere fe2r1e2b fe2rec 3fer2ei 4f3ereig fer3eis f4erel fer3ell fe4rer4g fer4fah fer4fol ferg4 f4ergr feri2d ferie4n3 feri4on 4fer4leb f2ern. fer4nei fe2rÃķ f4erpa f4erpf f4erpl f4erra fer4reg ferri2 f2ers. f2ert fert4r f2erz fess2e fes4t fe2sta fest3a4b fest3an fe4st3ei fe4stin fe2st1o fe2st3r 2f1e2ta 3fete fe2th fet4t3a fetti3s 2feu. feuer3Ãķ 3few 2f1ex fe1y2 3fez 1fÃĐ 4f1f f3fa. ffa2b ffa2ce ff1a2d f3fak f3fal ff1alt ff1ans ff3ar ff4arb ffa4s ffa2t ff1au ffa4z f2f1e2b ffe2e f2f1ef f2f1ei ffe3in. f5fek ffel3l ff1e2m f2femi ff2en ff3erle f2fetz fff4 ffi3k f2fil f2fim ffi4xi ff1lag ff3le ff3li f3flÞ ffo2 ff1ori ff1ox f2fÃķ f3f4rÃĪ ff3ro ffs2am ff3sch ff2s1p ffs4tau ffs3tie ffs3tut ff3stÞ ff3t2 ffus3s f2fy 4f3g2 fgeb2 fge3s2 fglim2 4f3h2 1fi 3fi. fi4ak fi2ar fi3at fiden2 fi2do f2ie fi2e1i fi1er2f fi2gr fi2k1as fi2kel fi2kin fi2kn fi2k1o4 fi4k3r f2il fi2l3an fil3d fi2les fil2et filg4 fi3li fi4lin fil2ip fil2ma fil2mÃĪ fil4med fil4mei fi2lo 2fimp 3f2in2a fin2e 2f1inf fing2 fings2 fi3ni f2ink fin2sp 2f1int fi2o fi3ol fi2r fi3ra fi4re fir3me fi3s4a fi4sch3a fi6schei fisch3l fisch3o fi4schr fi4sch3w fi3s2h 2f1iso fis2p fite2 fi2tin fit1o2 fi2tor five4 fi2xel fi2za 2f1j 3f2jo 4f1k4 fka4t3 f2l2 2fl. f3lad f5land f4lans f3lap f4lasc f3lats flauma4 1flÃĪ 3f4lÃĪc 4f3lÃĪd 2flÃĪh 2f3lÃĪn 2flÃĪr 2flÃĪß 2f3lÃĪu f5le. 2f3leb f4lee 2f5lein flek3 flekt2 f3ler f4lex f3li. 3f4lim f3lind fli4ne f3ling 2f3lins 2f5lon 1f4lop flo7s8ses. 1f4loß 1f4lot flo2w f3lÃķ 4flÃķf 3f4luc f3luf 1f4lug 1f4luss 1fluß f4lut flut1o f4lÞ f5lÞd f5lÞm 4f3m2 fma5che fma2d fmas2s fma3sse 4f3n2 fni2s 1fo f1ob fo2be 2fober fob2l 2f1o2f foli3 fo2na fo4nan fon3au fon3dr fo4n3in fo2nop fons2 fo2nu 2f1op 4f3org for4m3a4g for4mas for4m3ei for4min forni7er. for6schl for4sta for4sti for4t3ei for4ter5 for2t1h for2t3r fort3s2 for3tu for2u fot4r 1fÃķ 2fÃķ2f 2f1Ãķk 4f1Ãķl 4f3p4 2f1q f2r4 f3ra. frach6tr 2f3rad 2f3rah fra4m f3rand f5rap f3rat 1frau. f3rauc 2frÃĪd 1f4rÃĪn 2fre. f3rec f3red 2fref f4rei. f3reic f4reie frei1f f4reig frei3k2 2frein 2frek 2f3rep 2frest 3f4reu 2f3ric fricht6e fri3d fri2e 2frig f4ri3k f3rip 1fris f4risc f4rist fri6ster 2f3roc 2frol 1f4ro2n fro4n1a f4rop fro2sc f3rot frÃķs2 f3ru f4ruc f3rÞ 4f1s f3sac f2s1al f2sa2n fs3ane f4s3ar f2s1a4s fsa2t fs3ate f2saut fs2ÃĪn f2sca f4sce f4schan f4schef f4schro f2scr f2s1e2b fse2ei f4sehr fse2n fs1en1e f2s1ent f2s1er fse2t f2s1eta f2s1i4d f3s2ky f2s1o2 f3soh f3sol fsp4 f3spann f2s1pas f2sph fs2pie f3s2pl f3s2por f2spre f2spro fs2pul fs3s2 fs2tal f2stas f3s2tat f4s3tÃĪti f2stip f2s1tis fst4r f4s3tres fs1trÞ f4stÞte f2s1un f3sy 4f1t f2ta. ft1a2be ft1abl ft1af f3t2ag ft1ala ft1an f2t1ap ft1a2r ft3att f2t1ÃĪu f3te. ft1eck ft1edi ft1eh fte2he ft1eig ft1ein ft1eis ft1eli fte3ma ft1emi f2t1ent ft3erfÞ ft1erk f2t1erl f2t1erz f2t1e2ti f2t1ex f2t1h f4t3hei f2t1id f4tim f2t1in f3t2ing fto2 f2t1of fton1 ft1op f3tor. f2t3ot f3t4ran f2t3res f3treu ft4rit ft3ro ft3ruh fts1 ft2sa2 ft4sag ft4sam ft2sÃĪn fts2c ft4sche ft2se2 ft4seh ftsen1 ft2si ft2so fts3tei ft4stem ft4ster ft4stes ft3stie ft6stier ft3stri fttra4 f2tum ft1urk ft1url ftwa4 ftwa6r ft3z2 ftze3d 1fu 3fuc 3fug f2uh fuku3 fulb4 f1um1 fu2mei f2umm fund3er fun6derg fun6derh 2f1unf 2fungl 2f1u2ni fun2kl fun2ko fun2k3r fun2ku 2f1unm 2funr 2funt f2ur furch2 fu4re. 2f3url fus2 fu3sse fus6sen fu4sser fuss1p fuss1t fus4ste fu2ß1er 3fut 1fÞ 2fÞb fÞhl4sc fÞn2 fÞ2r fÞ3s2 2f1v 4f1w f1y 4f1z fz2a fzeiten6 fzei8t7end fz2Ãķ fzu2ga fz2w 3ga. 2gabf 2gabg 2g1a2b3l gab2o g1abr gab4ri 2gabsc g2abt. 2gabtr ga3bu 2gabw 2gabz gade2r ga3d2i gadi4e ga2dr gae2 ga1fl 5gag. ga1k ga2ka ga2ku gal2a ga3laf ga2lar 2g1alau 2g1alb 2g1alg gall4e gal3lo 2g1alp 2g1alta 2g1altd g1a2lu ga2mec ga3mel gam3ma 5g4amo 2g1amt g1a2na 2ganal gan3d4 2ganf 2ganga 4gangeb gan2gr gang4sp gan2g1u 2g1ank 2ganl 2ganmu 3g2ano ga2nob 2ganr gans2 2g1ansi 2ganst 2ganw ga1ny 2g1anz ga3pe 2g1app ga1q 3gar. g2ara 2garc 3g2ard ga3ret ga3r2i 2g3arm ga3r2o 2g1arti ga3ru 2g1arz ga2s g2as. ga4s3al ga4sam gasche4 gase2 ga5se. ga4sei ga4sel ga4s1e4m ga5ses ga4set gas5s2 5g4asse. g3asses 6gassess ga5ssest ga4st3el ga3sti ga4stin gastra4 ga6stras5 gas4t3rÃĪ ga3stri ga6strom gas1tu ga3sun ga3t2a 2gatm gat4r gau1c 2g1auf 2g3aug g2auk gau5ne 2g1au4s 2g1aut ga3z 2g1ÃĪp gÃĪr3th 2gÃĪrz gÃĪ3s2 gÃĪ5st gÃĪ4u 2g3b4 gbau5s gber2 gbi2 2g1c 2gd g1da g3d2ad gda3de g2d1ak g2d1an g2d1ar g2d1au g1dÃĪ1 g2dei4 gd1els g2dent g2d1er g2d1et g2d1in g1do g2dop g1dÃķ g1dr gd3re gd3ru gd3s2 gdt4 1ge ge3a2 ge4ate geb2a ge3ble geb4lin geb4lo gebot2 3gebÞ ge1ch ged4 ge1e2 ge3ec ge2es geest3 ge5fa 3gefÃĪ 4g1eff gef4l gef4r ge3fu g4eg gege2n1 gegene4 ge3g2l geg4r geher3l ge3ho 2g1eid ge4ie2 ge4ig g2eil ge1in1 ge2inf gein4h 2g1einr gein2s gein2v ge1ir geis4 2g1eise gei3sh geiss3c gei4sta geist3r 2gek. ge4lanz gelb1r gel4b3ra gelb5s gel4den gelder4 gel6derh gel6ders ge3lec ge2lef 2ge2lek 2gelem gelen1 ge4lene gel3ere ge4lerk geler3Ãķ ge4l3ers ge2l1ev gel3f gel1i4m gel3l2a gel3le gell2i gel2Ãķ gel3s2a gels2p gel3sz gel3ta gelt4r gel3z2 gem2 ge4ma. gem6e 4g1emp gem3s ge3mu ge3na ge4n1ac ge4nad ge4nak ge4n3al ge4nam ge4nap ge4nar ge4nat gen4aug 4genda. gend3in3 4g3endmo gen2dr gen3eid gener4f 4generg ge4n3ern gen6erwe gener4z ge2nim gen3k4 genma7sse. gen3n ge2noc gen6semb gen3sk gen3sz gen3tÃĪ 2gentf gen3t2h gen3tr 2gentw ge2nun genzma3 genzmas6 gen3zw ge1oo geo2ri g2ep4 ge3pl ge3po ge1ra ge2rab ge2rak ge2r3al ge3rann ge4rant ge4r3a2r ger2as 2gerdg ge3rem ge4rene ge4reng ge4ren4s ge4r3ent ger2er gerin4d gerin4f ger4inn gerin4t 4ger4klÃĪ g3erlas germas6s ger5me ger3no 2g1ernt ge1ro ge2rob ge1r2Ãķ ger4sat 4g3er4seh ge3r2u g6es. 3ge3s2c ge6sche. ge2seb 4g3e4sel. ges3elt ge2s1er ge3sha ge3s2i ge3so ges2p ge3spa ges4pi gess2t gest2 gest4a gest6e ge4s3tur get2a g1etap ge2thi ge5trei get1s ge3t4u 2g1e1ul ge3unk ge1urt ge3u2t 4g1e2x 2g3f4 gfi2l 2g1g gga2t g5ge gge2ne gg2l g3gla g3glo g2g3n gg4r 2g1h 4gh. gh2a 3ghale gh2e 3g2het 3g2hie gh1l 3gh2r ghs2 g2hu gh1w gi3alo gia2s gich2 gicht1 gie3g gi2e1i gi2e3l giel2a gie5n2e gi4eno gie3res gies4 gift5s gi2gu gi2kel 2g1ill 3gime gi2me. gi4mes gi2met 2gimp 2gin2d gi3ne 2g1inf 2gin4h 2g1ins gin2sa 2g3int 2gin2v gi2ob 2giok 2g3isel git2a gitt6e gi4us 2g1j 4g3k4 gl2 4gl. 4g1lab 2g1lac 2gladu 2g1lag 2g1lam 2gland gla2s1c glast4 gla4str gla4stu 3g2laub 2g1lauf g1lÃĪd 2glÃĪnd 3glÃĪs g1lÃĪß 2glÃĪuf gl3b g2l4e 2g3le. 3glea 2g3leb g3lec 4g3led g3lee 2g3leg 2gleh g4leic 4g3lein gleiter8s glei4t5r g3len 4glenk 4g3ler glerei4 2gles 3gles. g3lese g2lia 2glib 3g2lid 3g2lie 4g3lieb 2glif g2lik 4glil g2lim 2glin g2lio 2glis g2lit g3lite g2liz g3lize g2loa g2lob g2loc 2g3loch g2lok g2lom g2lop 2glorb 2glos g2lot 2glÃķch 2glÃķs 2glÃķw 2gls g1lu 2g3luf 2gluk 2g3lun g2lut 3g2lÞ g3lÞg 2glw 3g2ly 2g1m2 gmen4tr gmi2s g1n 2gn. g2n2a g4na. 2gnac g4nad 2g5nah gn4al gna4l3er3 2gnanl 3g2nÃĪ 2gnb 2gnc 2gnd gn2e g3neh 2gn3ent gne2tr 2gnf 2gng 2gnh g2nie g2nif g4nin 2gnint 2gni2s3 gnise2 2gnk 2gnl 2gnm g2no1 3g4non g3not 2gnp 2gnr 2gns 2gnt 2gnu 3g2num. g2nÞ 2gnv 2gnw g2ny 2gnz go4a goa3li g1ob gobe3l 2gobj g2ob2l 2g1o2f 2gog 2g1oh2 goh3ren go1i2 gol2a gol2da gol2fr 3gon. go4nat gon2e 3gons 3g2opa gopf4 go2pos 2gopt gor2a 2g1ord 2g1org go2si go3sl go2sp 2g1osz 3goß go3t2h got6terb got6t5erg 3gou go1y gÃķ2f g1Ãķl 3gÃķt 2g3p4 2g1q g2r4 g4rab gra2ba gra2bi gra4bl 2g3radl 2g3rah 2g3rak gram1 grammen6 gram8m7end gram6mer g3rand. 2gra2r grar1e gra4s3a gra4sh gra4sp gra4str 2g3raub grau3f 2graum grau3sk 2grÃĪd grÃĪs5c g3rÃĪu 2g5re. g4reb 2g3rec g3rede g4re2e 2g3ref gre2fr 2grege 2g3reic grei4fr 2g3reih g3rein g3reit 3g4rem 3gren 4g3renn gre3no gren6z5ei grenz3w g4rer 2grese gres6ser6 g3ret g3rev 2g3ric gri2e 2g3riem g3riese 2grig gril4la 4g3ring 4g3rinn gro2b3a gro3ber gro2bl gro2b3r 2groc 2groh 2g3rol gros4 2g3rose g4ross gro5sse. gro7ssen. gro7sser. gro7sses. g4roß g4rot 2grÃķh 2gruf. g4ruft 2g3ruh g3rui 2g3rum grun2g 3grup 3grus grus2s gru3sse 3gruß 2g3rut 2g3rÞc grÞs2 4gs g2sa gs3a2b gs3ach g3sack gsa2d gs3a2k g3s1al g4s3alb g4sall g4salm g4salt g4sama gs1amb g4samp gs3ane gs3a4p gs3a2r gs1as g3sat gs3ato gsau2g gsau4r gsa2v gs1ÃĪ g3sc g4sca g4sce gsch4 g4schef g5s2chi g5schn g4sco gs3d g2s1e2 gs2e3h g5s2eil gse4kl g3sel. g4s3ela g3seln gs3em gsen1 gs2enk g4sent g4ser g3sere gs3er1i g4se4s g4seu gsfi2l gsgene4 gs3ha g2s1i gsi2d g3sig gs3i2k g3sil g4s3io g4sis g4sita gs2ki1e gsmas8sen gs1o2 gso4b g5son g2s3op g5s4orge g5soz gs1p4 gs2pac gs4pant g5spei g3s2pek g3s2pi g5spie gs3pl g5s6port. g4s3pru gsrat4 gs3s4 g2s1tab g3stad g2staf g2s1tÃĪt gs2te. g5stein gst2el g5stell gs4tem. g4stemp gs4ten. gste2r gs4ter. gs4tere g6sterei g4sterm gst3err gs4tes. g4stest g5steu gs2thy g3s2ti gs3tie gs3tis g3sto g4stoch g4stod g4stor gs1tot gst4ra gst5reit gst4res g4s3treu gst3rit gst3ros g2stru gs1trÞ gs1tur gs1u gs3un gsÞ3s g3sy 4g1t g3te gt1h gt2hy gt2i gti2m g3to gt4r gt2se 1gu gu4ale gu1an. gu1ant gu1as gu4d3r gu2e 2gued guet2 2g1u2f 2g1uh gu3ins gu1i4s gum2e 3gumm gummi1 gun2e 2g1unf gunge2 4gungew 2gungl 2g1u2ni 2g3unk 2gunr 2gunt 3gur gure4 4g1url gur2t3h gur2tr gurt3s gu4s3a gu2sÃĪ guschi5 gus3se. gus3ses guss1o gus2sp gus4st gust3a4b gu4stap gu6stein gu6st5en6d gu3sti gu2str gu2ß1 gußt2 gu2t gut1a gu3te gu4t3er4h gut1h gut2s3p 2gÞb 3gÞr3 gÞ3st 2g3v 2g1w gy3n gy4na 2g3z2 gzeu4gi 2ha. hab2a hab2e hab2i h1ablu 2habn h1a2br h1abs 2habw ha4ch3en ha2cho 2hada ha2del hade2n h1adle h1a2dr ha3dri 2hae ha3el ha4far haf2e h1affÃĪ haf3f4l h2aft haf2tr haft2s hafts3p hag2a h2agg ha3ha h2ahs h2ai 3hai. h2aj 2haka ha1kl 2h2al. ha3l2al halan4c h1a2lar ha2lau hal2ba hal4bel hal4bin hal2b3r hal2bu 2hale 2halh hal2i 2halk hal4lei hal6lere haller6f hal6lerg hal4leu hal4lo4k ha3lo 4halp hal2sp hal4tal hal4tei hal2t3r hamot2 2h1amt ham3te h2an. 2hana ha2nal ha2nan han2au 2hanb h2anbe h2and han2da han4d3er han2d3r ha2nem han2f1 han6g5end han4gro hang3s han2k1 2hanl 2hano 2hanr 2hanz hao2s 2h1ap 3h2ape ha2pl ha2po ha2pr h2a3ra ha4rab 2harb 2harc h2ard har2fr h1arm. har3ma h2arme har4me. har4ne ha2rom 2hars hart4e har2th h1arti har2za h2as 2has. 2ha3sa has2c has4h3 has4sa hasser4 hass1t ha4str ha2ß1 h1aße ha2ta hat2i h3atl ha2t3r 2hats hatt2 h3attr h1audi h1aufb hau5f6lie hau3f4lo 2h1aufm h1aufs h3au3g2 h1aukt hau2sa hau4san hau2s1c h2ause hau4sel hau6s5ent hau4spa hau4spe hau4ss haus5sen6 hau4s3ti hau4sto hau4sur h2aut. hau2t1a hau2t3r ha2ve. hÃĪde2 h1ÃĪff 2hÃĪi hÃĪ2kl 2hÃĪrz hÃĪ4s hÃĪ5sc hÃĪ6s5chen 2h1ÃĪst 2hÃĪug hÃĪu2s1c hÃĪ3usp 2h1b4 hba4ras hber2e 2h1c 2h3d4 hdan2 2hea he2ad he3be heb3eis he2b3l he3br he3bu he3ch2e he3chi he1cho h3echs hed2g he2dit he1e4m hee2n hee2s he1e2t h2ef. he3fab he2fan he2fau he2f1ei he3f2em hef3erm 2heff he2fid he4f3in4g he2f5le 2hefr hef4ra he2fre 3heft he2fu he3gu he2hel hei4a h4eib h1eie h1eif h1eig he2im hei4mal hei4mar hei4mei heim3p hei4mu 2hein hei4na heine2 hei4n3eb hei6nene hei4n3er h3eintr 2heio 2he1ism heis4s he1i4st h2eit heit4s1 h1eiw hekt3a he2la he3lag hel1an hel3au hel1ec he2lek h3elem he2len h2elf he3li hell2a hell3au hel4lic hel4mei he3l2or he2lÃķ 4helt h4em. 2hema hema4s3 hem2b 1hemd 2heme2 h2e3m2i he4mia h3e4miss 1hemm 2h3emp h2en. he4n3a2 he2nÃĪ hen3ebe henen1 hen3end he4nene he4nens hen3erg he4nerm he2n1e4t 2henga hen4gag hen4kan hen4kau 2heno heno3t hen4sem hen3st2 hent2a hen3te hen4ter hen3tr h1ents 2h3entw h3entz he4n3u hen3z2 2he2o he3on he3op he3pa he3ph h1e2pi hept2 h2er. her3a2b he2rad 2herap he4r3a2r herau2 herb2 he2r1e2b he4reck her4eif 4he3reig he6reis. her7eises he2rel he4rene he6rersc he4rerw h1erfo her4fol 6hergebn 2herif herin4d herin4f he6rin6nu herin4s h1erke her4klÃĪ h5er6kran h6erlad 2herm herma3s he3ro he4r3o4b he4rof he4rop he4rot h1erÃķr her3sta hert4 her3th her3um her4zap her6zeng 4h3erzeu her2z1w he3sa 2hese he3si he3s2p hes2t he2tap he3tÃĪ heter2 he3th het2i he3t4s he2u heu3g he3unt 3heusc he3x he1x2a 2hexp hey2 he1ye 1hÃĻ 4h1f4 hfaller6 hfan2 hfel2l3 hfi2s hflei2 2h3g4 hgas1 hga4sen 2h1h2 hhoh2 4hi. 2hia hi2ar h1iat 2hic hi1ce hich6t5er hicht6sp hi3d hid4e hi4dio 2hido hi2e hi3ens hie4rei hier3i hie4rin hiers2 hif3f4r hi2k3r hi2l3a4 hile3n2 hil2fr h2im 2hima h1imb h3i4mit h4imm h3impe hi2n hi3nak hi3nam hi3nap hi5n2as h2inde hine2i hi3nel hin2en5 h1inf h1inh 2hi3n2i hin3n2 hi3n2o3 hin2t1a 2hio hi3ob hi4on hi2p3 hi4pl hi2r hi3ra hi3re hi3ri hir2m1a hir2mi hirn1 hir4ner hir2s 1hirt 2his. his2a hi2se h1i2so hi2spa hi3tac hi2tan hi2tel hi3t2i hit1r hi2tro hit3z2e hi2v1o 2h1j 2h1k4 hkamp2 h2keu hki2n1 hklo3s 2hl hl2ag hla2gr hlam8meng hlan4d3a h1las h1lat h1laut h1lay h3lÃĪche h3lÃĪd h1lÃĪs h1lÃĪß h1lÃĪu hlb4 hl3d4 h3le. hle3a h3leb h3led hle3e h2leis h3leist hl1el h5len. hle4nas hlenen3 hl2enn h4l3entr h4lents hl2enz h3ler hle2r3a hl4ere h2lerg hler4hÃķ hl2erk h6l3er4nÃĪ hle3run hl1erw h4lerz h3les h4lesi hlf4 hlg4 h2lie h3lied h2lif h2lim hl1ind hling4s3 h2lip h2lis h3list h2lit1 hl3l2 hlle3b hl3m2 hlma3s2 h2lo hl1ob h3loc hl1o2f h3log hl1op h4lor hlo2ra h3los. h3losi hlos4st hlo2ß1 h2lÃķs3 hlÃķ4ss hl4sar hl2ser hl3ska hl3s2lo hls3tie hl3str hl2su hl3t2 h3luf h3luk h3lumpe h1lÞf hlz2 2h1m h3mad h3mag h3mak h3man h2mant h3mar h4marc h3mas hma3sse h3maß h3mÃĪ h4mÃĪc h4mÃĪh h4mÃĪl hm2e h3me. h3med hme1e4 hmeer4s h3mein h3meist h3meld hme3le h3men hmen2s hme4ran hme4rei h3mex hmi2e h3mind h3mini h3minz h3mirr h2mo h3mop h3mot h3m2Ãķ h4mÃķl hm3p2 hm2s1p h2mu h3mul h3musi hmut4s 2hn h2na h3nag h3nam h4nar hn3a2te h4natt h3nau. hn1ÃĪh hn3d4 hn2e hne3b hne2e3 hn3eff hn3eig hn3ein h2nel hne4n hn4eng hne4pf h3ner hner4de hner3ei h4n3e2ro h4n3ersa hn3ex hn3f4 hnflei4 hnhof8stra8s h2nic h2nid h2nie hn1im hn1in h2nip hni4sa hnk4 hnno2 h2no2r hnra2 hn3sa hn3s2p hns2t hnsuch4 hntra4 hnts2 h2nul h2n1unf hn3z2 ho4ar ho3bern ho2b3l ho2c hoch3 hoche2 hock3t 2hod 2ho2e hoe3n ho3er ho4f1a4 ho2fÃĪ ho2fed ho2feu hof3f4a ho2f3l ho2f1o ho2f3r ho2fu 2hoi ho2l1a hol3ar 1hole ho2l1ei ho2lem hol3g4 hol3k holl4 2holy h3olym 1holz hol6zene hom2e ho2me. ho2mec ho2med h2on hond4 hon2er ho1on hoo2r 2hop h1ope ho1ra h1o2r2an ho2rau h1or3d 2hore ho4rens ho3ret 2h1org hor3ta hor4ter hort3s h1ortu h2os. ho3se2 ho4sei ho3sl ho4sla ho2str ho4ßene 2hot. ho3th 2hotr 2hot1s2 1hou hou4s 2ho2w1 h1ox ho1y2 hÃī1 1h2Ãķ 2hÃķ. hÃķ2c 5hÃķhe 2hÃķ4s hÃķs1c hÃķs3se h3Ãķst 2h3p2 h1q 2hr hra2b hr3ac hr3ad hr1a2g h1r4ah h1rai h1rane hr3ap hras3s h3rÃĪu hrb4 hr1c hr3d h2rec h3r2ech h3red h3ref hr3eff h2r1eh h4rei. hrei4ba hrei4br h3reic h3reif h4r3eig hr4eini h4reinl hrei3th h3rep hrer6geb hr2erh hr2erk h4rerla h6rer6leb hr2erm hrer4sa hrer5st hr2erw hr2erz h3re2s1 hres5s2 hrest2 hre2t h2r1eta h2r1eu h2rev hrg2 hrga4 hrgu4 h2ri h3ric h4rick hri4e h3riesl h3rin h4r1ind hr1int h4rist hr3l hr3m2 h3rog h3roh h1ro2l h4romat h4rome h4romi h4romo h4ron h1ropa hro4r h3rou h3rÃķ2s hr2s1ac hr4s3and hr3sch hr2s1em hr2sen hr3sena hr2s1er hr2set hr4sh hr2sin hrs3k hrs3l hr2s1of hrst2 hr4stec hr6stele hr2su hr2tab hr2tan hr2te2l hr2th hr2top hrt3ric hrt2s hrt4ste h3ruh hr1ums h3rut h3rÞ h4rÞb h4ry hrz2 4h1s h4s3acht h2sa2d h2s1alk h2sall h4samt h2san hs3and h2s1as h2sath h2sato h2saud h4s3aur h2saut h2sÃĪh h2sÃĪug h3sc h4schan hs2cr h3se. h2s3ec hse4e h4s1ehr h2s1eie h4seind h6seinst h3sele hse4lin hs1emi hsen5erg h2s1ent h2s1erf hs1erg h2serh h4serkl h2s1erl hs1ern hs4erne h2serÃķ h2s1erw h2serz h2sex h3s2ext hsha2k h2s1i2d hs2im h2s1ing h3s4inni h4s1ita hs2kal h3skand hs1of h2sofe h2sop hs1org h2spac h4s3pani h2s1par h2s1pat h3spec h3spei h2sper h2sph h2spo h3spoi h2sprÃĪ h2spro hss2 h2staf hst3alt hst2an h2stau h2stÃĪl h2stÃĪu h4stea h4stele h4sterm hs3tier h2stin h2stit h2s1tol h2s1tor h3stÃķ h4s3treu hstro2 h2stu h3stun h3stÞ h2s1u hs2ung h3sy 4h1t ht1a h2tab hta2bl h2ta2d ht2ag ht4akt. ht4akte h2tall h2talo h2talp h2talt hta2m h2ta2n ht3ane h3tank h2tap h2ta2r ht2as h2t3asi h2tasy h2t3at h3tat. h3tate h2tau h3taug h4tax ht1ÃĪ h2tÃĪr h3te. ht3e4ber ht1ec hte3cha h2t1e2d ht1eff ht1e2he h2teif h2t1eig h4t3eilz h2t1eim ht1ein h2t1eis h2t1eke ht3elas hte6l5ei. h4telek h4t3elfe h4t3elit hte4m ht1emi h2temp h3ten. ht3engl ht3enta h4tentf hter6de. hterer6s ht3erfo ht3erfÞ h6terfÞl h6tergeb ht3ergr hter6gri ht1erh hter6hÃĪl hter8hÃķhu h6terleb h6t5erleu h6terneu ht5erspa hter8spar ht3erst h6tersta hter6tra ht3erwÃĪ ht3erze h2t1ese h2t1ess h2teta hte4th h2t1eu h3teum h3teun h4textr h2t1h h4thei h3thera h3thes h4tho h2t1i2d h3tig h2t1im h2t1i6n3 ht3ine h2t1is h3tisc hti3t4 htni2 h2t1ob hto2d1 h2t1o2f h2t3oly h2tope h2tord ht3rak h3tran ht3rand h4t3ras ht6rates ht3rau h4traub ht6raume ht3rec h3treck ht3rei h2t3res ht3ric h4t3rieg h2t3rin h3trit h2t3rol h2t3ros h2t3roß ht3rÃķm ht3ru h2t3rÞ h4ts ht2sah ht2sal ht4s3a4n ht2scr ht4sein ht2sel ht4s3end ht4seng htse2r1 hts3eri htsha2 ht3s4hak hts3kr ht2s1o hts3par hts3tÃĪt ht4s3tem hts4tie ht4stip ht4s3tur ht4s3tÞr htt4 htti2 htu2e h2t1urs ht3z2 hu2a hu2b1a hu2bei hu4bel hu2b1en2 hu2bi hu2b3l hu4b5r hu2bu hu2fa hu2h3a hu2h1i h1uhr h1uhu hu2kÃĪ hu2k1in huk3t4 hu2l3a2 hu4lab hu2lÃĪ hule2 hu2l1eb hu2l1ei hu2lem hu4l3eng hu4lent hu2l1er hu2let hu2lid hu2l1in hul3l2 hu2lo hu2lÃķ hul3s hu3m2a h1umh h1ums hu2n h1una h2und hun3d2e hunde3i hun2e 2hunf hung2 hun3ge hungsa4 h1uni h1unm 2hunt h1ups 2hur hur3g2 hur2t3h hu3s2a hus3h hu2so hus2s3a hus3se hus4ser4 hus2s1o hus2sp hus4st hu2ß1 hu2tab hu2ti hu2t1o hu2t3r hut2t hut4zen hut4z3er hut2zu h2Þ h3Þber h4Þbs h3Þbu hÞf2 hÞft1 hÞhne4 2h1v hvil2 2hw2 h2wall hwe1c h1weib h1weih hweins3 hwein6sa hweis4s h2wirr 1hyd hy3dr hy2lor 1hymn h1yo hy3os 1hyp hy2pe. 2hy2t 2h1z hz2a h3z2o hzug4 h3z2w i3ad. iad2a i1adn ia3do iaf4l i2ago ia1h2 i1ai i3ak. i3ake ia2kei ia2kr i1akt i1al ia2l1a2 ial3ar ial3as ia2lÃĪ ial3b4 ial3d4 i3aleb i3alef i3alei ia3lek i3alel i3aleng i3alent i3alerb i3aler4f i3alerh i3a4lerm i3a2l1et i3alex i3a2lia i3alim i3a2lin i3al3l ial4ler iall2i i2alo ia2lon ia2lop ia2l1o2r ial3p ial3s ial3t2 ia2l3u2 ial3z2 i1am. ia3ma iampe4 i1ams i1an. i1an2a ia2nal ian3alt ia2nau i1anc i3and2 i3a2n1e2b ian2er i1ann i1ans ian2s1p i3ant i3anz ianza4 ia1o ia2op ia3p ia1q i1ar i3ar. ia2ra i2are iar3r i1as i3as. ia3sh i2asi ia1s2p ias5s iast4 i3at. i3at2h i4athe 1iatr i3ats i3au ia3un iau2s1 i2az 2iÃĪ i1ÃĪ2m i1ÃĪp i1ÃĪr. i1ÃĪrs i1ÃĪt i3ÃĪ4tem iÃĪ2ti iÃĪt5s2 i1ÃĪv 4i1b ib1art i2b1auf i2b1aus i2baut ib3be ib2bli i2b1eig i2b1eis ibe4n1 i6ber6geb i4b3er4la ibe1ro i2bim i2b1in i2blad i2bleu i3blu i3b2o i2bÃķ i2b3rau ib3ric i2b3roc ib2ser ib4ste ib2un i2b3unk i2b3unt ibus3 ibus1c 2ic i3ca ic1c ich1a2 ich6art. ich1ÃĪ i1che ich1ei ich2er icherin5 ichermas8 ichgro3 i1chi ich1l ich3le ich3li i3ch6lo ich5m ichmas4 ich3n i1cho ich3ort i2ch3r ich6sele ich2s1i ich6stie ich2tr i1chu ich1w i1ci ickt2 i1cl ic3la ic3ra i3cu i1d 2ida id2ab i3d2ac id4al id2am id1a2n i3d2ans i3d4at id1au id2ax idÃĪ1 idbu4 id2e 2i3de. i2dea 1idee id3eis 2idel idel4ÃĪ i4demul 4i3den. ide4n1o iden4se ide3ran iderin8nu ide1rÃķ ider6reg 2i3des ide5sa ide3so ides2p 1i2di2o idi4on i4diot 2idk idni3 id2o i2dol 2idoo i2dÃķ i2dr id4ro id2s1p idt4 1i2dy ie3a2 ie2bÃĪ ie2bl ieb3re ie2bri ie4b3rÞ ieb4sto ie1c ie2cho iech3t ie2d3an ie3de ie2dr ie1e2 ief3akt ie2f1an ie2far ie2fau ie2fÃĪh iefe2m ief3f4 ief2i ie2f3l ie4fonk ief1r ie2fro ie2gl ieg5li ie3g4n ie2g3re ieg2s ieg6s3c ieg4se ieg4si ieg6s1t ie3her ie2h1in ieh3r2 i1ei ie1ind i2e2l1a iela2r ie2lÃĪs iel3d4 i2ele ie4l1e2b iel1ec iel3eid ie2lek i4elen ie4lene ie4leng ieler4e ieler6fi ieler8geb ieler6ke ieler6la ieler8lebn iel4erw ieles2 i2eli ieli2d i1ell ie2lo4b ie2lop ie6lor i2els2 iel3sz ielt2 iem2e iemis2 i1en i3en. i3ena ien1ag ien2am ie4nas i3enÃĪ i2ene ien1eb i3enec i3e2n1e4k iener6fo ien3er4g iener6la i3enex i3enf i3eng4 ienge4f ienge4z i3enh ie2nid ie2nim ie4n3in i3enj i3enk i3enla i3enle i3enm ienma3s4 i3enn i3e2no i3enÃķ i3enp i3enr i3ens. i3ensa i3ensc i3ens2e ien3s2k i3ens2p ien6st5er ien6stop iens4tr ienst5rÃĪ i3en3sz ien4t3ar ien3te i3enth ien3tr i3enty i3env i3enw i3enz ie1o4 ie2r3a2d ier3al ier3an ie2r3ap ierb4 i3erbun ier3d i2ere ie4reck iere5ins ie4r3eis ie3r2er ierer3k ie4r3erz ierf4 ierg4 i1ergi i4eri ierk4 ierken4 ierma6ss i1ern i3ern. iern2a i2erni ie2rÃķ ier4re. ier4s3eh ier3sei ier3sta ier3te iert2i ier3z2 2ie3s2 ie4san i2esc i2ese ie4sh ie4s3k ies3o ie4sof ie4spu iesser6g ie5sset iess3ti iest6e ie4stin ießer4g ie2t1ag ie2t1ak ie2tan ie2t1ap ie2tat ie2tau ie4tent ie4t3erh ie4t3ert i4ethe iet3her ie2t1ho ie2thy ie4tob ie2t1Ãķ2s ie2t3ri ie2t3ru iet2se i1ett iet3zw ieu2e ie1un ie2w3u i1e2x 2if if1ab if3ange if1ar i2f3arm if4at i2f1au if1ÃĪn i2fec i2f1ef ife4i if1ein if2e4n i2f1erg if1erh if2fa iffe4s if6feste if2f3l if4form if2fro iff2s iff4ste if3l if1lac if4lÃĪ iflo4 if4los i1flÞ if3r i1fre i2freg if4rev ifrÞ4 if3sa if2t3a if2ted if2t3ef if2t1ei if2te2l if2tep if4terk ifte4s if4t3esc if4th if2top if2t1r ift3ri ift1sp ifts2t ift3sz if2tur i1fy 2i1g i2ganb i2garb ig1art iga3s i2g3att igd2 i6gebrau i4gefar ige4fÞg 3i2gel. ige5lau i2geln ige4me ige4mis ige4na ige6nene ige4nid igen5s ige2o ige2pa ige2ra igerma3 ig5erwer ig1erz iger4ze ige4sel i2g1ess ige4tra ige4tre ige4woh i2gim i2gl ig1lau i3gle ig3lim ig4na i4gnÃĪ i3g4neu ig4no igo1p ig3rad i2g3re ig4ren igro3 i2grou ig4sal ig3sÃĪ ig4schr ig1s2o ig1sp ig2spa ig4sti ig4s1to ig2stÃķ ig6stra6s ig4stur 2i1h i2har i3he ihe1e ih1elt ihe4n ihe3u ih3m ih3n ih3r2 ih2s ih3sp ih3sti ih1um. ih1w ii2 ii3a4 i1ie i3ig i1im i3in i1i4s i2is. ii3t i1it. i1j 1i2js 2i1k ika2ge ik1aka ikaken3 i2k1akt ik3amt i2k1ang i6kantei ikanten8n ik1art ik3att i2k1au i3kaz ik1ÃĪh i2k1ÃĪn i2kÃĪr 4ike i2keb ik1ebe i2k1ed i2k1ef i2k1ei ike4l1 ike2n1 ik1en2s ik1ent ike2ra i2k1e4r2e i2k1er2f i5kerfam i2k1er2h i2ker2l i2kero i2ke3ru i2k1eta 4iki i3ki. ik1i2d i3kie ik1in i2kins i2k3l ik4lÃĪn i3k4leri i3k4let ik4lim i3klu i2kne ik3nu iko3be i2k1off iko1p2 ik1or iko2ri ikot3t i2kÃķl ik3rÃĪ ik3re i2kres ik4ris i3kro ikro3s i2krÃķ ik3sa ik3s2z ik3ta ikt3erk ik4t3esk ik2t3re ikt2u i2k1uh i2kup i3kus i2kÞ i1la i2lab i2l1ac i2l1ak il1a2ma il1ang i2l1anm i2lano il2anz ilan6zer i2larb il1asp i2l1au i3laub i3l4aufb ilau2s1 i1lÃĪ1 i2lÃĪr 2ilb ilb4l il2c il5chen il2da il2dÃĪ ild3ebe il4d3en4t il3der ild4erp ildi2 ild1o il2dor il2dr 4ile il1ec ileid4 il1ein il1el i2lemb i2l1e2mi il1ent i4lentl i4lents i2l1erd iler4ei i6lereig il1erf iler4fo i2ler2g i2l1er2h i4ler4kl il1err i4lerri i3l2erz ile4th il1ex ilf2 il2f3l il2f3re ilf4s1 il2gl 2ilh 2ili ili3e4n3 iliga2 ili4g3ab ilik4 i2l1ind i4l3init il1ins i2l1ip ili1pf il3la il4lad ill2an ill4ant il2lÃĪ2 il2leg ille4ge il4lenn il3l2er 1illu il2mak il2m1ap il2m1au ilm1ei il2min il2mor 2ilo il1ob il2oh il4on il2op i2l1o2r i3lou i3lov il1ox ils3ent ils2to ilt2 il3th i1lu iluf4 i2lum i2l1ur i3lus ilÞ4 2ilv4 il2zar il2zau ilz3erk il2zwa imad2 ima1i im2al i2m3anh i2mans i2marc im3aren i2m1arm i2m1art im4at ima2tr imat5sc ima4tur im1aus i2maut im3b i2meg im1ein i2mej i2mek i2mele i2melf im2en i2m1er2f i2m1er2l i2m1er2z i4me3sh imes3s i2meti i2mew imhau2 i2mid im1i2de i2mim i2m1ind i2minf i2m1ins 3immatr immen1 imm3ent im6menth im2mit 1immo im4mo2d im2mÃķ imni2 2imo i2m1ob i2m1o2p imo3re i2mÃķ 1imp imp2fa im3pf2o imp2s im3pse 2imt imt2e im3t2i imtu2 2imu im2um im1urk 2in. ina2be in3abu in1ac i4nack in1ad i3nald inaler4 ina6lere in2alp i2n1am in2an in3an. in3ana in3ann i2narb in3att i2n3au2 inaus1 2inÃĪ i2n1ÃĪh in2ÃĪr in1ÃĪs 2ind. inda2 ind2ac in2dal in2dan 2indÃĪ 2inde. 2inden ind5erke inde3sp indes4t 1index ind2i 1indik in3dÃķ 2indr ind4ri ind3se 1indus in3d2Þ 2ine in1ec i3nee i2neff in4elen ine2n1 ine3nÃĪ i4nen4zy i5ner. i4n3erbi in4erha i4ner4he i3nerk i3n3erle i6ner6leb iner4lÃķ i4n3er4tr i3nes in2et in1eu ine3un in3f4 1infek 1infiz 1info 2inga in2g1af in2g1ag in2g1al in2gam ing1ar 2ingÃĪ 3ingeni in3g2er in4g3er4w 2in2gl in3gla ingmas4 ing4sam ings6por 1inhab 2inhar 2inhau 2inhe 2ini. in2id ini3de 2inie 2inig inig2a ini3k4r 2inis ini3se init2 i3nitz 3inkarn 1inkas in4k3ent ink4er in2kro inks1t ink4ste in3k2Þ inma4le 2inn. inne4n in4ner4m in2neu in4ni2v 2innl in2nor 1innta 2ino in1od ino3e4 in3ols in1or i3no3t i2n1ou i1nÃķ in1Ãķ2d 2inr 2ins. ins2am in6samt. insch2 2inse. in2seb 2insed 2insen 2insk 3instal in4s3tÃĪt 4inst2e 3instit 4instra in4strÞ 1insuf ins3umz in2sur in3sz 2inta 2inte. 1integ in3tei 2intep 2int2h inthi1 in3ti int2o 2intÃķ 2in3t4r 4intrÃĪ 3intrig int3s i2n1u i4nuh in3unz inu3t 4inverm invil2 i1ny2 in3z2e inzel8ler in3z2i in3z2sc inz2u in3zw i1Ãą 2i1o ioa4 iob2l io1c io2d io3da io3du io3e4 i2of iof4l i2oh io1i io3k6r i3ol. i3ols i3om. io3me i3oms ion2 i3on. ion3an io2n3au ion3d2 io4nee i3ono io2nor i3on4s1 ions3a ions3el i2ony i2oo i2o1p i3o4pf i3opt i2or i3or. i3orc ior2e iore4n io1r2h i3orp i3ors i3ort 4ios i3os. io3sh i2ost ios2u i2o3sz io3t i3ot. iote3l iot4r i3ots i2ou i2ov i3ox i2oz i3oz. i1Ãķ2k i1Ãķn i1Ãķs. i1Ãķ4st i1pa ip2an i1pe i3ped i3per 2ipf2 ip5fam i3pfan ipfe2 iph2 2i1pi ipi3a ipi3el ipi3en ip4lu i2poi ip2pan ip3pe ipp1f ip4pl i1pr ip2sa ip2sei ip2sp ip2sta ip4stÞ ipt2a ipt2i ipt2u 2ipu 2i1q i1r4a i3ra. 2i3rad i3ras irat4 i1rÃĪ ir1ÃĪh ir2b3l ir1c ir2ch1o ir4e i3ree 2irek ire4na i3rÃĐ irg2 irg4s ir2he ir2i 2i5rig 2irk irke4n ir4kene ir2k3l irk4s3c ir3k2u irli4n ir2m1ag ir2mak irm1au ir2mÃĪ ir2m1ei irme4n1 ir2m1o2 irm4th ir2mum ir4munt 2irn ir2n3a ir4nat ir2no i3ro i1rÃķ irpla2 ir2rei irre4l ir4reli ir2rh irs2 ir3sche ir4schl ir4schm ir4sch3r ir4sch3w ir3se3 ir3sh irt2s1t 2iru ir1u2m iru2s1 iru3te i3r2Þ i1s i3sac isa2m3 i4samp i4s1amt is2ap isa2r i3sat is3att i2sau is3auf isau2g i2sÃĪh i2s1ÃĪn 2isb i2sca i2sce i4schar i3s2che i4schef i4sch3e4h isch3ei ische4m i6schemi i6scher6z i4schin i5sching i2schl i2schm isch3ma i4schna i4sch3re isch3ru i6schÞb i4schwa i6schwir i4schwo isch3wu i4schwÞ i2scr 2ise ise3a ise1e iseh2a ise3hi is4eind is2el ise3lad i6sel6ter ise2n1 ise4na is2end i4senho isen3s ise4r3ei is1erg i2serh iser4he i2s1erm i2s1es2s i3s2et i4s3etat i3s2eu 2isf 4ish 2isi isi2a i2s1i2d isi4de isik2 i2sim i3sin3g4 i4ski i4sku is3la 3islam 2isma 2ismi ismu2 is1of i3soh 1i2sol 2is4o2n1 isonen4 iso6nend isono2 i2sop is1ort 3isot i2s1ou 2isp is1pa i2spar is2pat is1pe is1pic is2por i2spro is3sa is4s1ac is4sau is3sc iss5chen is3senk isser4f issermas8 is3so is3sp iss2po is2st is3sta is4ste is3sto iss1tr is3strÃĪ is3stu is2su i2stab ist3ac is4tal i4stam ist2an i4s3tang ist4e i4stea i4s1tec iste4n istin4f ist6o ist4ra is3tras3 i2strÃĪ i2stre is5tromm i2stur is1tÞm i3suf isu2m isum3p i2sÞ 2isy i1ß ißer4s iß3ersc i1ta it1ab. it1abs i3t2ag ital1a ital5l it1alt it1am ita3ne it1ang it3anr it1app it1a2re it1art i3tat it1au i3tauc i2tauf i2taut 4i1tÃĪ it1ÃĪnd i2t1ÃĪs itÃĪt2 i1te it1eff i2t1ei it2eic i4teig i4tein i4teis 2itel ite4l1a i4telek it1emi i2temp ite2n i3ten. i4tents i2tepo i6tereig i4t3er4fo iterin6d iter6klÃĪ it2erÃķ i8t7ersche i2t1es2k i2t1ex i3text i3thr i1ti i3tic i2t1id i3tig 1itii it1in1 i3tis i4tiso iti3sp i4tiss i3tiv iti2v5a it5le itmen2 4i1to i3to. it1ob i3toc ito3d i2t1of ito2p it2os i1tÃķ 4i1tr i2t3rad i3tradi it3raf it3ras it3rau it3rÃĪu it3re it4ret i3trie it3rob it3rom i2t3run i2t3rut 2its it2sa its1ag it2s1e it4se2h its3e2r1 it4sh its1or it3spen it4stec it4s3tem it4sten it4s3tes it6stra6s 2itt it2teb it4temp it3ter itt5erfo itt3hÃĪ it2tob it2top it2tri itt3ric itt6schi itt4se4h itt4sei itt4sor itt4sti i1tu it1uh it1ums it2ung i2tuns ituran4 it1urg i3tus itut4 i1tÞ 4ity1 ityl2 2itz it2zec itz2er itz3erg it6zergr it4z3erl it2zÃķ it2z1w 2i3u2 i4u3l ium3 iuma2 ium4se iun2 iungs3 i4up iu4r ius1t i1Þ4 2i1v i2v1ad i2v1ak i2v1am iv1an i2v1ÃĪ i2veb i2v1ef iv1ei iv1elt ive4n iv1ene i2v1ent i2v1ep ive3re iv1erh iver4kl iv1erl iver3s i2v1ex ivil3l i2v1im i2v1ind iv1int i3vol ivo3re i2v1r i2vun i2v1ur i2vÞ 2i1w 2i1x i2xa ix2em ixt2 i1y 4i1z iz1a iz2ac i2zag i2zan i2zap i3z2as i2zau i2zÃĪ i3ze iz2ei izei3c izeit3s4 i2zele ize2n i4zener i4zentz iz1erg i4z1erl izid3 iz1ir izo2f i2zÃķ i2zuna i2z1w i3z2wi í1l j2a jab4 jah4r3ei jahr4s ja3l jal2a ja3ne jani1 jani3t4 ja5ru jas2o jat2 2j1d4 jda3 je2a jean2s je2g jek2t3a jek4ter jek4tin jekt3o2 jektor4 jek2t3r je3na je2p je3r jer2e je2t1a je4t3h je2tin je4tor je2t3r jet3t je2t1u2 ji2v 2j1m joa3 jo2b1 job3r jo2da jo2i jol2a jong2 jo2p3 jo1r2a jor3d2 jo2sc jost2 3jou jou2l 2j1t jty1 j2u ju2b3l jude2 jugen6 jugend3 ju1i ju2k jul2i jung5s2 ju3ni ju3r jur4a jur2o ju3t2e1 2j1v 1ka 3ka. ka3ar 2k1abb kab2bl 2kabd 2k1a2ben 2kabf 2kabg 2kabh 2kabn 2k3a2bo 2k1abs 2k1abt 2kabw 2kabz ka1c kade2r 2k1adm 2k3a2dr 3kadu 2kadv ka3e ka1f4l ka1fr kaf3t2 kag2 2k1age 3kah ka1ho ka1in kaken2 ka1kl 2k1akt. 2kala. kala3b ka2l1a2d ka2lan kal3d ka4l1eh ka4lens kal3eri 3k2alk kal2k1a kal4kan kal2k3l kal3l kall2i kallÃķ3 2k1allt ka2lop ka2l1os kals2 kal4tex kal4th ka2lu k2amt 3kana kan4al ka4n1a2s ka2nau 2kanb kan3d2 2kanda 2kandÃĪ kan2e 2kanf 2kanim kank4 2kanl 2kanom 2k1anor 2k1ans k2ans. kan4tar 6k5antenn 2k1anth ka3nu kan2um 2kanw 2k1anzu 2kanzÞ ka2o1 3kape ka3po 3kara 2karbe 2karc k2ard kar3d2a k1area k2arg ka3r2i kari3es k2ark 2k1arm kar2pf k2ars k2ar3ta k1arti 4kartik karu2 k2arw 3k2asc kas2e kase1i kasi1 kas2o ka2sp kas2t 2k1ast. ka3sta ka4ster 3kasu ka3sz ka2tan 3kateg k3atel ka3t2h ka2t3r kat3se 2katt4 kau4fer kau2f1o kauf6s5ag kauf4sp kauf8s7tem kauf6sti k2aus. 2k1auss 2kausw kau3t2 2kauto ka3ve 2kaz 1kÃĪ kÃĪl3 k1ÃĪ2mi kÃĪr2 2k1ÃĪrg kÃĪ2s5c kÃĪse3 kÃĪ3th 4k3b4 kbe1 kbo4n kby2 2k3c 2k3d4 ke2ben 2k1ec ke2di 2k1eff kefi2 kege2 ke2gl ke2he. ke2hen kehrer4 kehr2s kehrs3o 2k1eic 2k1eig kei2li 2k1ein kein4du kein4e k1eis 2keise keit2 ke2l1a ke3lade ke3l2ag ke4l3am ke2lÃĪ kelb4 keld4 kel3eis 2ke2lek ke2l1en ke2l1er kel3la kel7l4e kell2i ke2l1o2 ke2lÃķ kel3sk k4elt kelt4e 2k1e2mi 2k1emp k2en. ken1a ken3au ke2nÃĪ ken3dr ke2n1e2b kenen1 ke4nene ke4nens kener4n kene4t 4ken4gag k5en6gel. ke2nim ken3in 4kenlad 4kenlÃĪd kenn2a kenn2e ke2no k2ensa 4ken4sem ken3s2i ken3s2k ken5s4te ken3sz k3en4te. ken6ten. 4kentf 2kentg ken3th 2kentl 2k1ents 2kentw 2kentz ke3ny k2en3z2 2ke1o2 2kep ke2pl k2er. ke1ra ke2ran ke2rau ke2r1ÃĪ ker4ble k2erc 4kerd ke2r1e2b ke2rec ke3reig ker3ein 4kerfah k4erfam ker2fo k3ergeb 2kergu ke6rin6nu kerin6st kerin4t k3erken k2erko k3erlau k3er4leb k6erlebe ker2na ker4nei 4k3er4neu kern5eur k1ero k2e1rod 2keros ker4reg k2ers. 2kersa kert2i ker6werb kerz2 k1erz. ker4zeu 2k1er2zi k2es. ke2s3a k2esc k1ese ke2sel kes2sa ke2t1a ket2ag kete4 ke4t1eb ke4tel 2k1e2th ket3ha ket3s ketta4s kett1h ke2tu keu6schl 2k1e2va 2k1e2x 4k3f4 2k3g2 kga4s1 kge3s2 2k1h4 k3he kho3m k3hu ki1a ki2ad ki2ag ki3ak ki3a2r ki1ch ki3dr k2ids 2kidy ki2el kie4lei kiel3o 2kiern kier2s kie4sa kie4z ki1f4l ki1f4r ki3k4 2ki3l2a 2kilÃĪ 2kim 3kin. ki2nÃĪ 4kindex 2k1indi 2k1indu 2k1inf k2ing kin2ga king3s 2kinh k2ini3 kinik2 k2inn ki3n4o kin3s 2k1inse k1inst 2k1int ki3or kio4s 3kir 2k1i2so kis2p kis5s kist2 kiv2 kive4 2kiz 2k3j 2k1k4 kkab4 kl4 4kl. 4kla. 2k1lac klan2 2kland klan3du k4lar k1last k1lauf k3laug 2k1lÃĪd k2lÃĪr k2le 4k3le. kle2br k3leg 2kleh klei2e k3leit k3lem. kle2o 2k3ler kle2ra 2k3leu kle3us 2klic k2lien k2lif 2klig 3k2lim k2lin k3lin. 3k4lina k4link k2lip k2lir k2lisc 2klist klit2s 2k3liz 2k3loc 2klok 3k4lop k3lor klos2 klo3sse klost6 2klÃķc 2klÃķf k2lÃķst k4lÃķt k1lu klu4b k2lud k2lug k2lum 2klux 2k1lÞc 2kly 2k1m2 4kma kma2la kmas2 kma3sse k2n2 k4nac 2k5nach 2k3nad 2knah 2k3nam 2k3nÃĪp k3ne k4nec kne1e 2knes kne3tu 2knetz 2k5neu 4kney kni4e 2k3niv kno2b3l k4nol 2knorm 2knov 2k3num 1ko ko5ad ko2al kobal2 2kobj kob4s kof3f2 koffe3i kohl2e kohle3i koh3lu ko3l2a ko3le kol2k3 3kom komer3 4komn ko4mu k2on kone2 ko2nem kon3s4 kont6e ko2nu ko3on 2kop. ko1pe 2koper kopfa2 kop4fen kop6f5err ko3pte ko3r2a kor2ba kor2bl kor2br 2k1orc korder4 kor6derg ko2rel 2k1org kor2k1a kor3m kor4nac kor2n3ÃĪ kor4no2 2korpi k2os k4os. ko4sk ko2s1p 3k4ost ko2ter ko3ti kot4r kot1s2 kot4tak k1ou ko3un 3kow ko2we 2k1ox 1kÃķ kÃķde2 k2Ãķf k1Ãķl 2k1p2 2k3q k2r2 2k3rad 2k3rah k4ral kras3 kra4ss k3rats 2kraum k4raw k4raz k4rÃĪc 2krÃĪd k4rÃĪn 2k3rÃĪum 2k5re. 2k3reak 2k3real k4reb 2k3rec 2kred. 2k3rede 2kredn 2kredu 2k3ref 2kreg 2k3reic kre1i2e4 kreier4 k3reif 2k3reih 2kreim krei6sei k3ren 2kresu 2k3rh 2krib 2k3ric 2k3ries 2krip k3risi krob4 k4roch 4k3roh k4rok k4ron k4rop kro4ss 2krot 3kroth k3rou 2krÃķh 2kruf 2k3run 4k1s ks3a2b k3sac ksa2k k4s1amt k2san ks3a2r ksa4s k2sau ksau2f k2sav k2sÃĪh k3s2c ksch4 k2s1e2b k2s1ec k3s2ed ks1ei ks2eid ks2eif k4seind kse2le k2s1eng k2s1ent ks1er ks2ere k2serf k2serg k2serk k2serl k2sers k2serw k2s1e2v k2sex k4s1i2d ks2im k2s1in k4s1is k3s2ke ks3kl kso2 ks4on k2sop k2s1or k2sÃķ ks1pa k2spal k3s2pat k2spÃĪ k3spe ks2pel ks2pen k2sph ks2por ks2pul ks5s2 kst2 k2stal k4s3tanz kstat4 ks3tat. k3stÃĪl ks4tel ks1tie k4stier k2s1tis k2stit k2s1tor k4strop k2stuc k2stum k2s1tur k2stÞt k2s1u k3sul ks2zen 4k1t kt1abr kt1abs k2t1ad k3tag kt1akt k3tal kt1am k2t1an kt2and k2t1a2r kt3a4re kta3ri k2t1au kt3aug ktau2s ktÃĪ3s kt1ein k2tek k2t1ela kte3li kte4n1 k2t1ent k4tentl kten3z kte2ra kte3ran kt4ere k4t3erfo kt1erg k2t1erh k2terÃķ kte3ru ktes2 k2tex k2t1h k2t1i2d kti2me kt3ind kt1ing kt1ini kt3inn k2tint kti2s1e k2tiso kti2st kti4ter kto3b k2t1of kto5ren. k3t4ran kt3ras k2t3rau ktro3me kt3run kt3rÞ kt1s kt3s4a kt3sÃĪ kt3se kts2el ktsen1 kt3si kts1o kt2sor kt3s2z ktt2 kt1ums k2tuns kt3z2 ku2al ku1c kud4r 3kug ku2h 2k1uhr kuh3s ku3la ku3l2e2 ku3l2i 2kulp kul2to kul2tr k2um. k2um4e 2kumg 2kuml kum2sp k2u3n2a kun3da kund2e kun4s kunst3 2kunt 2kunw 4k1up. kur2bl ku2rei kuri2e kuri4er 2k1urk ku2ro kurs1c kur2sp kur2st kur4ste 2k1urt4 kur3tsc kusa2r ku4schl ku2sp kus3ses 2kust kus3ta ku2su ku2ß 2kut. kut2a kuto3 1kÞ kÞ1c 3kÞne kÞnf3 3kÞr kÞr2s 2k3v 2k1w k3wa 2k3z2 kze3l 3la. la3ar l1ab 3l2ab. lab2a la2bad l2abÃĪ 2labb lab2br 2labd lab2e 4la2ben 4labf 2labg 2labh 3labi l3a2bit 2la2b3l 2labn 3lab2o 4labo. la3b4ra lab4res la2bri 2labs la2bus 2labw 2labz la1ceb l4a3che lachter8f lacks2 1lad 2l1ad2a 2ladd la3de. la3d2i 2ladj 2l1adl 2ladm l1adop 2l1a2dr 3l2adu 2laf la2fa la2f1ei la2f1er laf1r laf3t4 la2fu la2ga lag3d l2ager lagerin5 4lagg la2gio lag3l la4g3n lago4 la2gob lag3str 2la3ho 3lai lai4s1t lake2 la2kin l2akk la1k4l la2kro lak3t2 2l1al la2la 3lala. 3lali 4lalt l2am. lami3t lam2m1a lammen8ge 1lammf la2mor l2amp l3ampu 2l1amt lamt4s la4mun la2na l1anal la3nan la4n4at la4nau 2la2nÃĪ 3l2and l4and. lan2da lan4dam land3au l4ande lan6derh lan6d5erw lan6d5erz lan6d5inn l4an2d3r lan3dri lan3erd laner4f 2lanf lan4gan lan6g5esc lang3s2 2lanha l2anhe 3lan2i 4lanl 2l1ann l1ano la2nof 2l1anp 2lans2 l1ansi 2lantr 2lantw 2lanw lan2z1w 3lao 2l1apf la2ph 2l1a2po lap2pl la2r1an 2larc lar1e2b la2r1ei la2rel la4rene larf4 lar3g lar3ini 4l1a2rom l1art 2lart. lart2h l3arti lart4r 3laru l2as. la2sa la4sam la4sÃĪ lasche4 4lasd la5seb la4sei la4s1e2l 2lash la2sin la4sis la2so 2la2sp 3lasser l2ast la4sta last3an la4steu la2str last3ri las3tro las3tur la2stÞ 1la2ß3 la3t2e 2l3a4tel la5t2i 2l3atl 2latm lat2o la2tÃķ la2t3ra lat4ri lat2s lat3st 2lat4ta lat4tex lat4t3in lat2t3r latzer4 1laub. lauben6s5 lau2b3r laub4se laub4st lau4fin 2laufn lau2fo lau4fri 1laug lau3gl 3laun 4laun. la4us 3l2aus. 2l1ausb lau6scha 2lausd 2l1ausf 2lausg 2lausl 2lausr 2l1auss 2lausz 2lauto lau2tr la3va lave4n 1law lawa4 1l2ax la4xel l2ay lÃĪ1c 2l1ÃĪhn 1lÃĪnd l1ÃĪpf 2lÃĪq lÃĪr2ma l1ÃĪrme 2lÃĪrz lÃĪ2s5c lÃĪ4s3s 2lÃĪt 2lÃĪub 2lÃĪuc 2lÃĪue 1lÃĪuf 2lÃĪug 2lÃĪx 1là 4l1b l3bac l2bant lb3a2ri lbau1c lb1ÃĪrm lbb4 lb2ei l4b3eink l4b3eise lbe4ral lberin5 lbe7s l4b1e2ta l2b1id l2b1ins lb4lad l3b2lat l3blÃĪ lb3le l2bled l2blic l3blo l3b2lÃķ l3b2lu l2b1o2ra lb3rea lb2s lb3sa lb3se lb3si lb3sp lbs2t lbst3ac lb4ste lbst3ei lbst1u l2b1uf l3bum lbu4n lbus3s lbzei2 2l1c l3ca l3che l4chei l4chent lchermas8 l3chi lch3le lch3li l3chlo lch3n lch3r lch3s2 lch3Þ lch1w l3cl l3co 4l1d ld3a2b1 ld2ac ld3ack l2daf lda2g l2d1ah lda2i l2d1ak l2d1al l2d3a4n ld1arm ld1ass l2d1au ld3au4s l3dÃĪm ld1ÃĪr ld1ÃĪs ld1ÃĪt ldbus2 l3de. lde4ben l2dei ldein7 l2d1elf l2d1e2mi l2d1ems lde4na lden5erg l4dentl l3der. l4d3er4fa l6der6geb ld1erh l4der4he l3d2erl l6derlas l6derlaß l3d2ern l2d1er2p lder4tr lde3sa lde4sel l2d1es2s l2dex ldi2c l2d1id ld1i4mi l2d3ion ldo2b ld2on l2dop ldo2r l2d1ori ld2os ld2Ãķ2 ld3r ld4ram l2dran l2dre ld5rie l3d4ris ld4ru l2drÞc ld3sa ld3ska ldt4 ld3th ldt5s ld3tu l2d1ul l2d1um 1le le2ad le3ar le2as 3le3ba leben4s3 le2bl 3lebr le2b3re 2lec lech1a le2chi lech7t6e le2dr le2er lee4ret le3f2a 2l1eff lef4o le2g1ab leg1as le2gÃĪ le2gl 3leg4r 3leh 4lehe. leh3r2e 4lehs 4leht lei4ble l2eid lei3ere lei4fan lei4fei leifer6g 2l1eig lei3gl 3leih lei4hau lei3l2 leim3p 3l2ein. leinbu4 leinbus5 3l2eind lein4du l4eine lei6nerb le2inf le2ini 2leink l1einn l3einsa 2leint l2einu le2is leisch5a lei8schei lei6scho lei6sern l1eisf lei6ss5er leis3st lei4str lei4ßer l2eit lei2ta lei2to leit3s2 3leko 2lektr 2lekz 3l2ela le2le le3lei 2lelek 6leleme le3len leler2 leler4s le3les 2lelf. 2l1elfe l2eli lel3s l2em. le3mal le2mau le2m1ei 3lemes 3lemet lem1o2 le2mor 2lemp le2mu le4mun l4en. len1a len3ab le4na2d le4n3an le4n3a4t le2nÃĪ l1endp 4lendun l4endur le2n1ed 4lenerg le4neur 4leneuv len4gag len4kau len4k3lo len4klu l1enni len6sein 4len4sem len6serk len3ska len3sz 2lentg 2l1entk 4lentla 2lentn 4l3en4tro 4l3entw lent4wÃĪ 5lentwet 2lentz 2lenzy leo2f le1o4s 2lep 3lepa 3lepf 4l1e2pi 4lepoc lep4pi 3lepr l2er. l2e1ra le2rag le2r3ap le2ra4s le2rau le2r1ÃĪ le2r1e2b ler2ec l3ereig le4r3ei4m le4r3eis le2rel le4reng le4rerg le4rers le2re2t 4l3erfas 2l1erfo l2erfr l2erfÞ l1erg l2erga l4ergef 3lergeh 6lergen. l4erger l4erges 3l4ergew 2lergi l2ergl l2ergr lergro3 4ler4heb 4lerhol lerin4s lerk2 l2erka 2lerke l1erkl 4lerklÃĪ l4erkle l2erko ler3kr ler3l 5l6erlebe 3l4erlei 2lermÃĪ 3lerna ler4nal ler4nar 3l4erne ler4nei 2l1erÃķ 3l2erra ler4ric l4ers. l1ersa ler4sto lert2 le2rup l4erwa ler4wer 2ler2wo 2l1erz ler2zÃĪ l3erzeu ler2zo l4es. les2am les2e le3seb lese1i 2l1esel le5s4h lesi1 le3s2k les4ki le3so le2spo lest6 leste3 lester6i 3lesu 4lesw 2lesy le2tab 2le2tap 2le2tat l1e2th le3tha 2lethi let2i letsche6 let2to2 lett1r lett1s4 le2u 4leue 3le3u2f 2l1eul le3unt 3leut l1e2vol 2lex 3lexd 3lexik le2xis 3ley 1lÃĐ 2l1f l3fah lf4at lfÃĪs3 l2f1ec lfe1e lf3einh l2feis lf2en l4ferei lfe4rel lf1erl l3fi l3f4lÃĪ lf3led lflo7sses lf4lÃķ l3f4lu lf3ram lf3res lf4ru lf4rÞ lf2spe lf2s1ti lf2su lfun2 lfur1 2l1g l3gas lga3t lgen2a lgene2 lgerÃĪu3 l2geti l3g2i lg2lÃķ l3go lgoa3 lg4p l3gra lg3re l3gro lgro3s lg2s lg4s3t 4l3h2 5lhi. 1li l4i1a lia2b li2ad li2am. li2ams lian2g li2ast 3lib4 libi3 li1c lich4ta lich4to 4lick li2cl li3d2a l1ido l2idy liebe4s3 lie2br 3liefer li3efl lie4n1a2 li3ene lien3t li2er lie4rei li3ern lie4s3c lie4sta lif4fes lif2fo lif3ti 3lig li4g3ers lig4n ligs2 li3ker li3k2o lik2sp lik4tau lik4ter lik2ti lik2t1o2 lik2u li3l lil2a li3m2a lima1c lima3t4 2l1imb 2limm 3limo 2limp lin2a li3nar 2lindi 2l1indu li2nef li2neh li2nep li5ner li2nes 2l1inf 2l1inh lin1it 2l1inj lin4kan lin4kar link2s li2nol l2insa 4linsel 2linsp 2linst 2linsu 2linsz 2l1int li3n2u 2l1inv 2linz li2o li4om lion5s li3o2st 3lipf 3lipt 3lis. li3s2a li3schm li4schu lis2h li3shi 3lisk 2l1isl 2l1i2so 3lison li2sp liss4 2liß lit4a l1i2tal li3t2ÃĪ l2i3t2e 3liter li1th li2t3r lit1s2 lit3se lit3sz li4tun li2tur litz4er 3liu liv2e li2vea li2ves livi3e li3vr 2lixi li4z3ÃĪ lizei3 4l3j 2l1k l3kale lk1alp l3k2an l3kap l3kar. l3ke lk1erd lke3r2e lk2l lk3lad l3k4las lk3lic l3k4lu lk2men lk4ne lk5ner lk3nu lko2f lk1ofe lkor2b lk3roc lk2s1 lk3sÃĪn lk4set lk3si lk4spe lkt2 lk2Þ 4l1l lla2be l2labk l2labt l3labu ll3acht lla2de ll1aff lla3gl l2l1am lla2ma ll2ami ll2anb lla4ner l4lani l3lans. ll4anwa ll1anz l4l3appl ll1arm lla6tern l2lath l4latm l2l3att l2lau ll3aufg ll3aufk ll1au2s1 l4lausf l2la2w l2l1ÃĪm l3lÃĪs l2lÃĪu llb4 llch4 ll3d4 l2le2b ll5ebene l3lec ll1ech lle3er l2l1ef lle2gu lle2he l2leib ll1eic ll1eim l4l3eise lle2la lle2m l2l1emi l3len. lle4na ll3endl llen3dr ll3endu llen6dun l4lentf l4lents l3lep l3ler. lle2ra l3lere l6ler6eig ller4fo ller6geb l8lergene l4lergo ll3erho l4l3ermi l4l3ernt ll3ertr ll6erwei ll2es l3les. l2le2se lle4th l2leuc l3leur. ll1exe llg4 l2lieb l2lieg lli4gan l3lik lli4la l2l1ind l4linf ll1ins llin6sen l2lipo ll3k4 ll5m2 ll3n2 ll1ob l2lobe l2lo2d4 l2l1o2f llo2ge ll3ol l2lope ll1opf ll1or l6lorb llor2g l2lo2ri llo2te l2l1ou l3low ll1ox llÃķ2g l3lÃķh ll2sÃĪu ll2s1es ll3ska ll2spr ll4stor ll3t llt2e llt2i llti2m llt4r llts2 llu2d l2lu2me l3lung l2lu2p ll1ur llust6 l3lut l2lÞc llÞ2d l2lÞ2g l3ly ll3z2 4l1m l2m3a2b l2m1ad lm1a2ge lm1aka l2m1a2m l3mana lm1apf lm1art lm3att lmÃĪ2s lm1ÃĪ4st lm1c lmd2 lm3e4dit l2m1ef l2ment l2m1e2p lmer2 l2m1erf l2m1erl l2m1erz l4messa l2m1i2d lm1ind lm1ins lm3m l2mof lm1orc lm3p2 lmpf4 lm3s2k lms2t lm3str lm3s2z lm3t4 l2mum l4munt 4ln ln2ab lna2r ln3are l3n2e lnes2 l2n1in lnus2 l1nÞ l1ny 1lo lo4ak 3lob. l2oba 3lobb lobe4s 2lobj l1o2bl l2obr lob4ri lo4chel 3lodr lo3dri l1ofe lo2fen lo4gh lo2gl lo2gor lo2gre lo3ha lo3h2e 4l1ohr loi4r 3lok 4l3okk lo2k3r 5loks l4ole 2l3o2ly lomÃĪ3 lo2min lo2ner lo4nin lo2n1o lo2o l1ope 2lopf lop2p1a lop2pr 2lopt lor3am lor2an lo4rÃĪ 5lorb 2l1orc 2l1ord lo3r2en 2l1org2 lori4di 2lort4 l2os. lo4sa 3lose lo4ske lo2spe lo2s1pr los3ta lo4stel lo4steu lo2s3to lo2s3t4r lo2ßu lo2t1a lo3tha loti4o lots2 2l1ov lo2ve 2lox 1lÃķ lÃķ2b3 2lÃķck 2lÃķd lÃķ2f 2l3Ãķfe 4lÃķg 2l1Ãķhr 2lÃķk 2l1Ãķl 2lÃķp 3lÃķsc 4lÃķß 4lÃķz 2l1p lp2ar lpar2k1 l4p1ÃĪr lp2f lph4 l3phÃĪ l2phir lp1ho l3phr lpt4 l3pu 2l1q 2l3r2 lra4ss lrau2s lrebs2 lro2h lrÃķ4 lrÃķs3 4l1s ls3a2b l3sac l2sa2d ls2al l4s1amb l4samp l2san ls3ane l3sare ls3a2ri l3sark lsau2 lsau4m lsau4r l3s2ÃĪm lsÃĪ6s ls2ÃĪug ls1ÃĪus ls2c l4schin l4schmÞ l2s1e2b ls2ele ls1eli l2sent ls1er l2serf l2serg l2serh l2serk l2serl l2sers l2serw lse2t ls1eta ls3ha l2s1id l2simp ls2kal l3s4kele l4skla l4sko ls2ky lso4b l2sop l4s3ort. l3sos l3s2Ãķl l2spac ls2pe l2s3ph l2s1pir ls2po l3spri ls2pu l3spul l2spun l4s3s2 lst2a lstab6 ls2taf l2stas l4s3tat. l4state l3stau l4s3tÃĪti l4st3erk l4s3terr l2s1tis l2stit l4stoch ls1tor l4stor. l4store l4stors l2s1trÞ l3suf ls1um l2s1un ls2und ls3unk 4l1t l3ta. l2tab lt1abs ltag4 lt1am l3tami ltampe4 l3t2an. ltan3d l2t1ap lt1ara ltar8beitn l3tark lt1art ltar6tik l3tartu lt1au l4tauf lt3aut lt1ÃĪh ltbau1 lt1eh lt1eig lt1ein lte3mi l3t2en lten6gel lten4sp l4tentl lt3ents lte4ral lter4fa l3t2erg l4terhe lter6ken lter4ku lter4nÃĪ lte2ro lt2erÃķ lter4se l2t1esk l3t2est lte3sta lt2et l3tet. l2t1h lt3hag l3thas l4t3hei lthol2 l3t2hu lt1ide ltimo4 l3tin. l3tine l2tiso l3t2i3t l2t1ob l2t1o2f l2tord l2torg l2t1o2ri lto2w lt1Ãķl l3tÃķn lt1Ãķs lt1Ãķt ltra3l lt3rÃĪu lt3rec lt3rei lt3ris lt1roc lt3rol l2t3rÃķ l2t3rus l4ts lt2se2l lt4s3ort lts1pe lt1s2ph lt4stec lt2sti lt3t lt1uh l2t1um lt2um. lturan4 lturen4 ltu2ri lu1an 4lu2b3 luba2 lub5s2 lu2dr lu2ec lu2es lu2et 1lu2f2 2l1ufe 2luff lu3fo luft1a luft3e luft3r lu2g1a lu2g1e2b lu2gei lugen1 lu2gi lug3l lu2go lu2g3r lug3se lu2gu 2l1uh lu1id. lu4ig lu1is. lul2Ãķ lume4 2lumf 2lumg l1umh 2lumk 2luml l2ump 1lumpe lum2ph 2lumr 2l1ums lu3mu 2l1umw 2lumz 1lu2n 2l1una lund4 2l1unf 2l1uni 2lunr 2l1uns 2lunt 2lunw 4luo lu2pf l2ura lu2r1an lu2rat lu2rei 2lurg l2uri lu2ris l1urn lu2ro 2lurs l1urt lu4ru lu3sak lu2san 2luse lu2sp lus4s3a lus2s1c lus4sel lus3sen luss3er6 lus2s1o lus2s1p lus4s1t 1lust lu2sta lu2stÃĪ lu6sterl lu2st1o2 lu3str lust3re lu2s1u 4lu2ß1 lu2t1a4 lut3au lu2tÃĪ lu2t1e4g lu2tel luter2 lut3erg luter4s lu6t5ersa lu2thy 2luto lu2tob lu2t1o2f lu2top lu2t1or lu2t3r lut5schl 2lÞb 3lÞbd lÞck4e2 lÞcker3 2lÞd lÞf3te lÞ2hel lÞh1l 2l1v2 lva3 l3vl l3vo lv3r 4l3w4 lweis4s 2lx 1ly ly1a2 ly3c ly3es ly1l 2lymp 3lyn ly3no ly1o lys2 ly3t ly1u 2l1z lza2 l2z1ac l2z1ag l2zan l2z1ap l2zat lz1aus l2zÃĪp l2zÃĪr lze2l l2zele l4z3enth l2z1ep l2z1er2h l2zerz l2z1id lzi4m lz1imi lz3l lzo2f l2zÃķ lz3t2 l2z1u4fe lzug4s lzvol2 lz1w lz2wec l2zwu 1ma 3ma. maa2 m1ab m3a2bar m2abÃĪ 2mabb m2abe 2m3abf 2mabg 2mabh 2mabk m2abli 2mabm ma2br m2a3b4ra 2mabs 2mabt 2mabz ma3chan mach2e mach8terh mach8t7ers mach4tr ma2ci mack2s 2m1act mada2m m2adÃĪ ma2del ma3dj 2m1adm 2m1a2d4r ma4d2s ma1f4 mag2a ma2ge. ma2geb ma2gef ma2geg ma2gek ma2gep ma4ges. ma2get ma2gev ma2gew 2m1agg magi5er. magi5ers ma3gl 2magm ma3g4n 2m1ago ma3ha mahl2s ma1ho mai4s3e ma2ke. 2m1akt mal2ag mal1ak ma4lakt ma2lan ma2lau ma2lÃĪr 2mal2de m2aldi ma3le ma4leb mal2er ma4lex mali1 mali3e mal3lo mal3lÃķ3 2mallt ma2lon ma2lop m2alp mal3t malu2 ma2l3ut 3malv ma2mid mam3m 2m1a2nal ma2nar 2m1a4n4at ma2nau 2m1anÃĪ 2manb man2ce 3man3d4 ma2net m2anf mang2 2man3ga m4angel 2m1angr m2anh 3manip 2manl m2anle 3mann 2manod man3s 2m1ansa 2mansÃĪ man4sh man2t1h 2mantr ma4n1ut 2manw 2manz m1anza ma2or ma2phr ma2po ma1q m2ara 4marag mar2an 2m3arb mar3g2 3ma1rh ma3r2i m2ark mar2kr 4mar2o maro3d 4marr mar6schl mar6schm mar6schr mar2sp mar2su 2m1arti ma3r2u m1arz m2as ma3s4a mas2e 3ma1s2p masse4n ma3sses mas6ses. mas6sest ma5sset mass1t ma3s2su 3mas2t ma2sti ma4sz ma2ta2b ma2tan ma2tÃĪ m3a2tel ma4t3erd ma4t3erz m4atme 2matmo ma2to ma4tort mat3se mat1sp matta3g matt4r mat3url 2m1au2f 3maul ma3un mau3r 2maus mau2ta m4ay ma1yo 1mÃĪ 3mÃĪc mÃĪ3he 2m1ÃĪhn mÃĪh1r 3mÃĪn 4m1ÃĪnd 2mÃĪo 2m1ÃĪp mÃĪr1 mÃĪr2kl mÃĪr2z1 mÃĪ1t4r mÃĪu2s1c 2m1b2 mbe2e mber2e mbe3ri mbert4 mbi3er. mb4l mble1i mb4r mbu3sc 2mc m3ch 4m1d m2dan m2d1a2s md1ÃĪr mde2a m2dei mde2m m2d1emi m2d1ent mder2 m2d1erl md2Ãķ md3ras md3s2e mdt4 m2d1um 1me me3an me3at meau2 meb4 me2ben 3mebr me1c medi3e4 me1e2m mee2n mee4r3ei 2m1eff mega3 me4gel 3meh meh6l3er mehrer4 2m1eif 2m1eig m2ei3l2 mein4da meiner6k mei6nerl 3m2einu m2eist me3lam me3l4ant me2l1au melb2 mel3d2 melde3i me2lek 2melem me2ler melet2 2melf. 3melk mel4k3ei mell2i 3melo me2lob mel2se melt4 6mel6tern 2m1e2mis 2m1emp 2m1e2mu m2en. men3ab me3nage me4n3an men3ar me4nas men3au 2m1endl menen1 4men4gag men3ge me2nim men3k4 men2on men4se. men4sem 6mensemb men4sen men4ser men4ses mensi4d men2so menst4 m4enta men4t3ak m4entei ment5eig men6t5ers 2mentn ment4sp me1o 2meou 2meÃķ 2mepa 2m1e2pi 3m2er. me1ra mera3l mer2as me2r1e2b me4rens mer4err mer4erw 4m3er4gÃĪn merin4d merin4t 4mer4klÃĪ m4ersh mer5sm mer6stel mert4r merz6eng 3mes me2sal me2sÃĪ mes2e 4meser mes2po 2mes2sa mess3an mes6ser6g mes4s1o mes2sp mes2s1t mes1ta me2str me3su me3sze 3me2ß3 me3ta me3th meto1 me2tÃķ me4trig met6t5en6d meu1 2m1ex me2xe 1mÃĐ 2m1f4 mfi2le 4m1g2 mgang4 mglim2 4m1h2 1mi mi1a mia2b mi2am 2m1iat mi1ÃĪ mibi1 mic1e mi1ch mi2ci mi3da mi2di. mi3dr 2midy mie3dr mi3ele mi4e3no mierer4 mie2ti mie4to mie2tr mi1f4 3mige mi3h mik1an mi3ke mi4kel mi4kens mi3k4l mi2ku 3mil mi3la milch1 mil4che mi3l2i mil3le mi3l2u 4milz m2im2a 2m1imm 2mimp min2ac mi3nak min5anze m2inde 2m1indu mi2nef miner1 mi4n3e4ri min2eu 2minfo min2ga mings2 2minh mi3ni mini3k4 mi3nod mi2nof 2m1inse m1inst mi3nu mioni1 mi1p 3mir. 3miri 3mirs 3mirw 3mirz 3mis. mi2sa mi4scha mi4schr mi4sch3w mise1 2m1i2so mis2pa mi2spe mis5sar mis4ser mis4st mi2sta mi3str 3misu mi2ß1 3mit mi2t1a mi2t1h mi2to mi2tr mi3tra mit3s2 mit5sa mit3ta mit3t2e mitte3s mi2t1u 4mitz mi3v2 2m1j 4m1k4 m3kn 4m1l2 ml3c m3le ml3f ml3k m3lo ml3p ml3s 4m1m mma3a mm3achs m2m1ak m2m1al m2mans mm1anz m2m1ap mm2app mm1art mmas4p mma2ß mm1aus m2mÃĪ4 mm1ÃĪu mmd2 m2m1e2b mme2c m2m1ef m4meh m2mei mm1ein mm3eise mme2l1a2 mme4lin mm2ene mmen6te. mmen6ten m4mentl m4ments m4mentw m2me2nÞ mme2r3a mme4rec mmer6geb mme2s1 mmes3a mme3sc mme4sz m2me4te m2m1eu mmga4s mmi3el mmi3m mm1inb mm1inh m2m1ins mm1int mm2is mmi3sc m4mita mmi5tw m2mo2l m2mor mm3p2 mmpf4 mms2 mm3sa mm3si mm3te m2mum mm2un mmu3r m2mus mmÞl2 2m3n2 m4nesi 1mo 2m1o2be 3mobi 2mobj 3m2od mo3de mo2dr m1of mo2fe 3mog 2mog. mo2g1al 3m2oh moh2a moi3r mo2k1l 2mol. mol3d 3mom mom2e 3m2on mo2nan mo2nÃĪ mon4dac mon4del mon2do mo2ner mon3s2 mont2a mon3th mo1ny 3m2o2o 2m1o1pe mo2per 2m1opf 2mopt mo1ra mor2an mor2d3a mor2dr mo2rei mor3g mor3t2 3mos mo4ska moster4 mo2sto mo3t2h mot4r mous2 2m1ox mo1y 1mÃķ mÃķbe2 mÃķ2c 2mÃķ2f 4mÃķk 2m1Ãķl 4m1p mpa3ne mpe2la mpe4lin mpe2n m2p1ene m2pf mpf1ef mp4f3erf mpf3erg mp6fer6ge mpf3erp mp6ferpr mp4f3err mp4f3er4z mp2f3l mpf1or mp2fr mp1haf mp1hos mpin2 m3plÃĪ mp3lei m4p3lem. m2p3len m2p3les m3pon mpor6ter mpot2 mps2 mp3sh m3pu 2m1q 2m3r4 4m1s m2san ms1as m3sat msau3e m2s1ÃĪn msch2 m3se. m2s1e2d m2s1ef m2sein m2se2le mse2n m2s1ene m2sent ms1erf ms2erh mse2t ms1eti m2s1eu m2sex m2s1o2d mso2r ms1orc ms1ori m2spÃĪ m2sped m4spl ms2por m2spot m2spro ms2pu m4s3s4 m4stag m2stal m2stit m2sÞ m4sw m4szi 4m1t mt1ab mt1ak mta2m mt1ar mt3aug m2t1e2d m3tei. mt1ein mt1eis mt1elt mt1emi m4tenga m4t3engl m4tentf m4tentg m4t3en4tr m4tents mter2 m2t1erb m4t3erei m2t1erf m2t1erg mt1erh m2t3e2r4i m2t1erk m2t1erl mter4n m2t1ers m2t1ert m2teta m2t1eu m2t1ev m2t1h mt3ho m2t1i2d m2tim m2t1in m2t1i2r mti2s mtmen2 mt1ob mt1op m2t1Ãķl mt1Ãķs mtra4s3 m2t3ro m2trÃķ m4ts mt2sa mts3chi mt3sco mt2s1e mt3send mt3s2ka mt3s4kel mts3tÃĪt mtt4 mt1um mtu3re mt3z 1mu mu1a 2m1uh mu3la 3muld 3mult 3mumi m1ums mum2s1p 3mun mundan4 mun6derf mu2ner2 4m1unf 4m3ungeb mu3ni mu4nin 4mu4niv 4munw 4munz mu4r1u2f 3mus. mu4s1a 3musc mu2s1o mu2sp mu3s4se. mu3s4ses mus4ste must4e mu2s1to mu2str mu2su muße3 mut1au mut2st 1mÞ 2mÞb 3mÞh mÞ2her mÞhl1a mÞl4len 3mÞn mÞ3s2si 3mÞt 2m1v mvoll1 2m1w2 mwa2 mwa4r mweg2 mwel4t3 mwu1 3my my1al 2m1z2 mzel4li mzu1 mzug4 1na 3na. 2n1ab 3naba na2bÃĪ n3abh 3nabi n3abk na2b3l na2bor na2br nab4rÞ 4n3abs2 na2bus 3na2c n4ac. nach1 nachen4 na5chen. n3achse nach3sp nach8t7ersc nacht8raum n1ada na3dab 3nade na3de. nadel1 na3den na2der 4n1adl 4n3adm n1a2dr 3na3e 2n1af na1fra nag2a na3ge. na2gem 4n1agg n1a2gi na3gin na3g4r 3n2ah na2h1a n4ahm 4n3ahn 4n3aho2 3nai nai2e n1aig 4n3air nai4re n2ais 2n1ak 3nakÃĪ 3nako na2kro 4nakt n2al. na2l1a2 nal3am na4lar na2lÃĪ 2n1albk n2ald nal3da nal3ei na4l3ent na6lerei na4ler4g na4lerm na4l3erw nales2 nal1et nal1ex nalg2 na2lid nal3la na2lop nal2ph nal3s n2als. nal3t2 n2alty na2lu 2naly n2am. na2mat 3name na3me. 4na2mei n4a3men 4n1a2mer na2mid na2min na3m4n 3n2amo n1amp nam2sp 2n1amt namt4s na4my n1an 4na2n4a na4nat n3a2nÃĪ 4n3anb n3and2 nan1eu 4n3anf 4n3ang 4nanh 2nani 4n3ank 4n3anl 3n2ann 4n3anna 4nano nan2o3b 4n3anp 2nanr 4n3ans 2nantr 2nanw n2anz. nanzen4 nan6zene nan6zeng nanzer4 na3ot na2per n1apfe 4napfel n3a2pr n1aq n1ar 5nar. na2r1a 2narc n2ard n2are n4are. 3nari n2ark n2arle 2narm n2aro na2rom n2arr n2ars 2nart n2arta n2arth na3r2u 3nas n4as. na4schw 4n1a2sp nas2s1c 4n1assi na2str 4na2sy nasyl2 3naß 3nat n4at. nat3au nat1ei na3ten na2t2h 4natm nat2o 4natom 5nator nat1r nat4sa nats1e na3tu n1au nauf4fr nau2fr 5naui 3n2aul 4nausb 4nausd 4nausf 4nausg 4nausl n2auso 4nausr 4n3auss 4nausw 4nausz nau3te 3nav nave4 navi5er. navi5ers 1nÃĪ 2nÃĪb 3n4ÃĪc 3nÃĪe 2n1ÃĪf 3nÃĪg nÃĪ2hi 3nÃĪhm 2n1ÃĪhn nÃĪ2hu 2n1ÃĪ2m 2n1ÃĪn 2nÃĪp 2nÃĪq nÃĪ2sc n2ÃĪ6s3s 2nÃĪu 3nÃĪ1um 2n3b4 nbe2in nber2e nbu3s nby2 2n1c n2c3ab n3can n3ce4n n3ces. n3chl nch3m ncor2 n3cr n3cu 2n1d nda1f nd2ag n3dai n2d1ak n2dana n2dani n2danz nd1arr n3dat nd3att nd1au n2daut n2dax nd1ÃĪng nd1c nde4al. n2d1ede n3dee n2dei nd3elfe ndel3l ndel4sa ndels5en nde4mot nden3sk n4dentl n4dents nde3o2 n5der. n5deren nd2erh n5deri nder6lÃĪs nde4rob n4de4ros n6der6sat n3d2es nde2se ndes3s ndi2a3 nd1imm n2dof ndo4n3a n2dopt nd1or n2do2ri n2d3ott n2dÃķ nd2Ãķs nd4ram n2d3rat nd3rau n2d3re n2drif n2d3roc n2drod n2d3rÃķ n2drui n2d3run nd4sene nd2spr nd3th ndt4r n2duns ndwa5re ndy3 ndys2p 1ne 3ne. ne2ap 3nea4s ne3at ne3au 4n3ebene ne2bl 2n1ebn neb4r 2nec 3neca 3nece ne2ch neck2a ne2dit 2nee neei2 ne3ein ne3eis neema4 neen2 nee1r neer2e n1ef n2ef. n2e3f2a 2nefr 2n1egg neg4l n1e2go neg4r n1ehe 2ne2he. 2nehem 2nehen2 nehe2r 3nehm 4n3ehr 2n1ei 3neia 4neic nei4dei nei4dr 4neier 3neigt 3neigu nei4la 4neing 4neinh 4neink 4neinl 4neinz 4neip neiss4 ne2ke 2n1eks nek3t2 2nekz ne2la nel3b n1e2le 4nelek 4nelem ne3len ne3lex nel2i ne3lid ne2lit 3nelk n2ell nel4la4 nel4lei neller6f nel4lif 3nel2o 3nelu 3n2em. ne3mas 4n1emb 4n3emp 2n1ems 4nemu 3nen n4en. n2en3a nen4am ne4nan ne2nÃĪ n2enb n2enc nen4dar 4n1endb 4n1endd 4n1endf n1endg 4n1endh 4n1endk n1endl 4n1endp 4n1endt 4n1endw nene2b nen3ei nene4m nenen1 ne4nene nen3erb ne2n3eu n2enf 4n1engb nen4gen 4n1engs 4n1engt n1engu nen4gun n2enh ne4n3i n2enj n2enk2 n2enm nen4nar ne2no4 nen3s4e nen3sk nen3s2p 5n2en3t2a 4n1entb 4nentd 4nentf 5n2enti 4n1entl 4nentn nen3to 5nentr 4n1ents 4n3entw 4nentz ne4n3u n2env n2enw nenz4er ne2o3b ne2oh ne2or ne2pen 2nepf 2ne2pi 2nepo ne2pos nept4 n4er. ne1ra ne2rab ne2rac ne2r3af ne2rag ne3r4al ne2ram ne2ran ne2r3ap n2erat ne6ratio ne3rato ne2rau n2erb2a 4n3erbe. 4n3erben 2nerdb ner4dig ne2r1e2b ne2rec n1erf 4nerfas 3nerfr 2nerfÞ 2ner3g4 3nergr n1erh 4n3erhÃķ 3neri n2erj n1erk 5nerka n2erkÃķ n2erli 2n1erlÃķ nerma3 nermas4 n1ermi 2n1ernÃĪ 4n3erneu 2n1ernt n1eros n1erÃķf ne1rÃķs n2ers. 2n1ersa 3nerse ner4sk 4n3ersts nert4 3nert. ne2rup 3n2erv 4nerwar 2n1erz n2es. ne2sal ne2sei ne2s1ev 2ne3sh ne3ska ne2s1of ne2s1or ne2s1pa 4n1es2si 2n1e2st3r 4nesyn 3n2eß ne2tab 2ne2tag net1ak ne2t1an 2ne2tap 2ne2tat ne2tau ne4te2l ne2th net3ha ne3ti ne4tin ne4tob net1s2 n2ett net3ta net3te net3tr 2n1e2tu net4zer net2z1i ne2u neu1c neu4ere neuer4f neuer4k neuer4r neuer4s neuer4w neu3g4 2n1eup neur2 neu2ra neu3t 3n2evi n2ew ne3wa 2n1ex ne2xi 5ney 3nez 3nÃĐ 2n1f n3f2al nfalt2 n3f2ang nf4ar n3f2ÃĪ nfÃĪs3 nfe2i n3f2en n3f2er nf2es n4fex nff4 n3fi nfi4le. nf4le nf2o nf4r nf3s2 nf2tan nf3tei nf2t3r nft2st nft4ste n2f1u 4n1g n3gabe ng1abt n2g1ac n2g1ad n2g1ak ng1a2me ng3anda ngang6st n2ganh n4ganl ng1ant ng1are n3g2ars n2g1a2v n2g1ÃĪl ng3d4 n2g1eif n2g1ein ngelb4 nge3l4ei n3g4en n5gene nge5nerw ngenmas6 ngen3s2 nge4ram n2g1erg nger4zÃĪ n3g4es nge3s2a ng3hu n2g1id ng2lad ng2lÃĪs n2glic ng4lok n3glot ngma7sse. n2gn ng3ne n4g3ni ng4nom ng2nu ng2ob n2g1op n2g1or ngo2ri n2gÃķ n2g3rai ng4ran n2g3rat ng3roc ngro3s ng3rost ng2s1 ngs3an ng4s3au ng5schr ng4s3e4h ngs3pa ng4spar ng4stec ng3ts n2gum ngzei4t 4n3h2 nhe2r 1ni 3n2ia ni3alo ni2ar nibb4 nic4 ni1ce n1id 3n2id. ni3da ni2de 2nidea ni3dr 2n3idy n2ie nie3b ni1el nie3l2a nie4n ni3ene ni3eni nie4rei ni4erna nie4sa nie5sse ni2eu ni1fl niga2 ni2g1ab ni2g1am ni2g1an 4n3i2gel n4igen 2niget ni4gl nig3li ni2gn nig4sp nihi3 ni2kar 3nike ni2kel ni3kerh ni2ki nik3ing ni2kor ni2k3r nik3t4 3n2il ni3l2a ni3l2i nil3l 4nimp nin1 3nin. 3n2ina nin2ac ni2nal 3n2inb 2n1ind 2ninf 3n2ing ning4s 2n1inh 4n1ink2 3nino ni2nor 3n2inp 2n1ins 4ninse 4ninsu 4n1int ni3nu 4n1inv 3n2inw ni2ob ni3ok ni3ora n2ip ni4ron n1irr 3n2is ni4sam ni2san ni2sÃĪ nis3cha ni4schw ni2s1e ni3se. nis3el 4n3isol ni2som 4nisot ni2sp ni3spi nis5s4 nis3tha ni2stu ni3stun ni2s1u 2nit 3nita ni1th ni2ti 4ni4tia nit2o 3nitr nit3s nit4tec nit6tell nit6ter6g nit6t5er6k nit4tie nit4tra nitt4sa 3niu niv2 3nix 2n1j 4n1k nk1abr n2k1ac nka2ge n3kal n4kalg nk1ang nk1apf nk3art. nka3sc n2katm n2kato nk1aus n2kaut n2k1ÃĪh n2k1ÃĪp nk1ei nk2eil nke4lei n4kelem nkelma3 nkelmas6 nke4na nken4te n4k3erle nke4ros nk3ersa n3kesc nke2t nk1eti n2ketu nk1i2d n2kide nk1inh n2k1ins n4klade n3klag nk3leis n2k3len nk3les n3klin nk2lo nk4neb n2knis n2knit n2knu n2k1o4be nk1ope n2kopt nko2r nkord2 nk1ori n2k1ort n2kÃķl nk4rab nk3rÃĪt n4kre. n2k3rel n2kren nk3rep n2krez nk3ro n2krol nk2sal nk2se nk3sen nk2so nks2ti nk3s2z nk2tak nk4terg nk4t3ern nkte3sk nkt2et nk2tin nkt1it nk2top nkt1r nkt3ric nk2tro nk2tru nkt4sen n2k1um nku2n nk1urh n2kÞb 2n3l2 nla3ge nle2ga nli4ne 2n1m2 n3ma n3mÃĪ nmen2s n5mi 4n1n n2nada nna2g n2nalg n2n1all nna3m n2nan nna3st n2nau n3nÃĪ n3nec nn2ei. n3nelb nne4le nne4na nn2ens nner4ei n6n5ereig nner4fÞ nner6geb nn4ergr nn2erh nn2erk nner4la nn2ero nne2rÃķ4 nn3erwa nner6war nner2z nne4s1e n2ness nn2eu nn2ex nn3f nng4 n3ni nnk2 nn2o3b nn3obl nn3obs n2nof n2n1op nno2r nn1ori nn4sam nn3ser nn3s2p nnst4 nns3tat nn4stoc nn2stÃķ nn3t2a nn2th n2n1uf n2n1unf nn1ur 1no 3no. no5at 3n2oba n2obel 2nobj no2bla n2oble 3noblo 3noblÃķ 2n1obs nobu2 nobut3 3noby no1c noche4 noch4r 2nod no2de no2ed n1of no2fe 2noff 2n1oh 3n2ohe no2kel 2n3okk no3kr n3ole no2leu no4lig no2liv 2n3o2ly 3no3me3 no3mi 3nomp non2e n1onk n1ont 2nony no2o 3n2opa 3nopÃĪ no2per 2n1o2pi 2n1ops no3p2te 3nor. nor2a no2rad n2o3rak no3ral no3rar 2norc nor4da 3nordb nor4des nor2d5r no3r2e 2n1org 3norh 3n2orl 3norm norm2a nor3mal 3norÃķ 3nors 2n1ort 3n2os. nos2e1 no3sh no5s2k no2sp 2nosti nost1r 2nostv nos2u no2tan no3tart no2tÃĪ not1e2i no6t5entr no2ter2 noterb3 no2tex not1h no2tho no2t3in no2t3op no2t3r not3tr 3nov 2n1o2x 3noz 2nÃķd 4nÃķ2f 4n1Ãķk 4n1Ãķl n2Ãķr nÃķ4s3s 1n2Ãķt 4n3p4 npa2ge npf4 npsy3 2n1q 6n3r2 nran2 nra4s3s nrau4ma nrÃĪu3s nrebe2 nre3sz nro2h nrÃķ2s nrÞcker6 4n1s n3sabo n2sa2d n4s1a2gi n2sall n2salt ns3ane nsa2r ns2arg ns3ari n3sark nsa4s ns4ath nsau4r nsau4se n2saut ns2av ns2ax n2s1ÃĪn ns2ÃĪug n2s1ÃĪus n3sche. n4schef nsch5eul n4schl. nsch2o nscht4 n3schu nsch7werd ns2cr ns1eb nse4ein ns2eh nse2ha2 nseh5ere n4seinf ns2ele ns3elem n2sem. nsen4sp n2sepo n2s1erf n2s1erg n2serh n3seri ns1erk ns1erl n4serle n4s3erne n2serÃķ ns1ers n4sersc ns3ertr n2s1erw n2serz n4sety n2s1eu nsfi2l ns3hor ns3iden n5sim n6simp n2sini nsinn2 nsi2te nsi2tr n3s2kal n3s2kel ns2kis n3skle n3s2ky n5smara n2s1o2d ns1of n2soff ns4om n4s3ont n2sop n4s3ort. nsp4 ns2pac ns2pek ns2pel n5s4pen n4speri n2sph ns2pi n5spie n2spo n2sprÃĪ n4s3prie n2spro n2sput ns3s2 nst1ak n4stale ns4ta2n1 nst3ane ns4tar n2stas n4s3tat. n6staten n4stats ns2tau n5s2te. n4steif nst5eife nst7einhe ns4tem. ns4ten. n4stent ns4ter. nst5erge ns4tes. n5steu n5s2tic n4stilg n2stob n4stole nst5opfe ns2tor n4strac n4strad n6strieb n4strik ns4trun ns2tum nst3u2t n3suf ns2um ns1un ns2ung n2s1urs n2sut n3sy ns2zin 2n1t n3t2a3c ntak4ta ntal1a nta4lin n4t1all nta2lo nt2alp n3ta3m nt2anb nta3ne nt1ang n4tansp nt1ant n4tanza n3t2arb nt1ark n3t2arm nt1art ntar6tik nt3artu n2t1ass n2tath n3tatl n2tauf nt1ÃĪm n2t1ÃĪu nte3au nte1e nte3g6 n2t1eh n3tehe n2teig nt1ein n2t1eis nt1emo nt4en nte4na nten6te. ntera4 nte6r5eis nt4erh nt4erk nt4erm nt4ern ntern4e nt4ers nt4ert ntes2 nte3sa n2t1ess n6testri n2te2ta nteu3 nteu6eri nte3v nt1hel nt1hie n2thot n3thr nt4hu n2t5hum nt4hy nt2i ntim3p n2t3ind nt3inf nt3inh ntini1 n3t4lem ntmen2 ntmo4 ntni2 ntnis1 nto3re n2torg n4t3o4rie n2t1Ãķl nt4ral ntras3s nt1rau nt4raum nt3rea nt3rec n3t4ree nt3reif n3trep nt4repr nt3rich n4t3rieg n2troh n3trop n2t3rÞ n4t1s nts2ah nts2p nts3par nt5spe nts2ti nt2sur ntt2 nttÞ3 ntu4re. nt3z 1nu 3nu1a nu3a2r3 nubi1 2nuc nude2 3nue nu2es nu2fe 2n1uh 3nuhi 3nui n2uk4 nu3kl n3u2kr null3eb nul4lin n2um. 2n3umb n2ume 2numf 2numg 2numl 3n2umm 4numr 2n1ums 2n1umv 2n3umz nu4n 2nuna 2n1une 3n2ung 4n3ungl 4n1uni n3unk 2nunr 2nunt 2nunv 2nunw 3nuo 2nup 2nu2r nur2i nurs2 nur2z 3nu2s nu3sc nu3se nu4si nus1p nu4ss nuss3er4 nu4s1t nu2ß1 3nut nu2t1a n3uto nu2top nu2t3r 3nuu 3nux 3nuz 2nÞ4b nÞr1c 1nÞt 2n1v2 n3ver n3vl nvoran4 2n3w nwei4st 1ny. 2n1ya n2ya. 1nyh n1yo 1nyr 1nys 1nyw 4n1z n2zac n2z1a2g n2z3a2k n2zan nz3a4ne n3zani n2zar nza4s n2zat n2z1au n2zÃĪn n2zÃĪr nze4la nzel3l nzel6lig n6zenerg n3zeni n4zense n4zentl n4zents nz3erem n2z1erh nz1erl nzer4lÃķ n5z4err nz5erste nzer6tra n3z4es nze3sk nze2t nz1eta nze3u2t n2z1id nzi2ga n2zinh n2z1ini nz1int nz1inv nz3le nzlei3 n2z1op n2zÃķl nzt4r nzug2s n2z1wa n2z1wÃĪ n2zwet n2zwir n2zwÃķ n2z1wu Ãąo1 Ãąor2 2o3a2 o4a3bi o4ac oa3che oa3chi o4ad oa3de oa3in o4a3ke oak5l o4a3la o4a3mi oa4n oan4a o4a3q o2a4r o2a3s 3oase oa4si oa4sp o5ass o4at oa3te o5au 2o1ÃĪ2 o1b 2ob. o3b2al obal3l ob2am ob2ar ob1auf 2o3b2ÃĪ 2obb ob2e 2obe. 2obea 2o3bec 2obef o2b3ein 2oben obe4na oben3d4 1o2ber 2o3ber. ober5eis ober3in oberin6g obe4ris 2obev 2obez 2o3b2i 3obj ob1la ob3lei 1ob3li 2oblo 2ob2lÃķ ob2lu 2obo ob1or 2obÃķ ob3rei 2obrÞ o4bs2 ob3sh ob3sk 2o3bu o4bunt obus3s 2o3bÞ o4bÞb 2oby 2oc o3ca oc1c 3occl o1ce och1a ocha2b ocha2r o1che oche4b o2ch1ec och1eh och1ei oche2l ocher4k ochi4d och3l och3m och1o ochÃķ2f och3r ocht4 o1chu ochu2f och3u2t och1w o3ci oc4k ock5er6sc ock3sz ock3ta o1cl o3co o1ç o1d 2od2a od3ak od2dr o3de2c o3d2e3i odein3 ode4l3ag ode2n1 ode2s1e ode3sp od2et o3dex od2i 2o3dia 2odi3c 2odif 2o3dir 2odn o2don o2d1op odo4s od2Ãķ 2odr o2dre odt4 2odu o3dy ody2m 2o1e2 oe4b oe3di oe4m oen1e oe3ri o2e3s oe4sc o2e3t2 o3et. o3ets 2ofa of1a2d of1a2g of2an of1au 2ofÃĪ o2f1e2b o2f1ec 2ofee o2f1ei 2ofem o2fent 2o3fer o4ferb 2o3f2es o2f1e2t 2ofeu of3eun of2fa4 of4fal of4fam off3erz of2f1in of2fir of2fix 1offiz of2f3l of2fo of2f3r offs2 off3sh off3si off3sp of2fu of2fÞ 2ofi ofi3e2i ofi3k4l 2o1fl of3le of3li of4lÃķ 2ofo 2ofÃķ 2o1fr of3rÃĪ of4rÞ ofs1 of2sa of4sam ofs2ch of2se of2si of2sp of4staf of2sto ofs2tr ofstra8ssen of2su 2oft oft2a of2tei of3th oft4r 2ofu of3ur 2o1g o2g1ab o2g1ac oga3d og1ang o2g1e2i ogel3dr oge2li ogener4 ogenmas6 ogerÃĪtein8 o2g1eth og2gl o3gh ogi2er ogin1 o2g1ini og3ins og1l og3le og2lo o3g4n ogoi3 og1o2ri og2s og3si og3s2p ogs1t 2o1ha oh1alk o1hÃĪ o1he o2h1eis o2h1er2t oh1er2z 2o1hi 2ohl ohl1a oh2la2d oh2lÃĪ oh3lec ohl1ei oh3lep ohler2 oh4lerg oh4l3erh oh4lerw oh3lo2 ohl1or ohls2 oh2lu ohm2a 1ohmi oh3mu ohn1a oh4nac oh3nee oh2ni 1ohnm oh2n1o ohn3sk 2o1ho oho2l1e ohol1o oh1o2p 2ohÃķ oh3Ãķl ohr3a oh2rel oh2rem ohren3s ohrer2 oh4rerg oh3ri oh4rin ohr1o oh2rol ohrt4r ohs2 oh3sa oh3t o1hu oh1w 2o1hy 2oi o1id. o3i2da o1ids o3ie o1i2m o1in o4ine oi2r o3isch. o4ische oi3se o1ism oiss2 oi4st o1i4tu 2o1j 2o1k ok2a oka3b2 o2k3ac oka3i oka2la okale2 oka6lere ok2e oki4o ok2la ok3lau ok1lÃĪ ok2li ok2o oko4pt ok2so ok2s1p ok3t2 o3ku 3okw 2ol o1la ol3abu olaf4 o2l1a2m ol1ant ol2ar o3l2a3s olast4 ol1a2v 4o1lÃĪ ol1ÃĪt ol2chr ol4d1am ol2dÃĪ ol2d1ed ol4d3eng old5ersa ol2deu ol2dim ol2d3o ol2dr 4o3le. o2l1ef ol1eie o2l1eis ol1emb oler2 ol1erk ol1er3t ol1ess ole3u2 ol1exz ol2fa ol2fem olf3ere ol2f3l olf1r ol2f3ra olft4 olgege3 olge4ne ol2gl ol2gr ol2i olie4n1 oli4er oli3k4 oli3tu 3oliv ol2kl olk3re ol2kro olks3 olk4sc olk4si oll1ac ol4la4d ol2l1ak ol4lang ol4lau ollÃĪ2 ol2lÃĪd ol3le. oll1eb ol4l1ec ol2lei oll3ein ol3lem oll3erh oller4k oll3erl oll3erw oll3ess ol2lic ol4li4st ol2lo2c ol2lo2g ol2lop ol2lÃķ2 olls2 oll3sa oll3sp ol2lu ol3lus 4olo ol2of olo1p ol1ort olo3st ol2ov ol3s2k ol3te ol3t2h ol3ti o1lu olu2th ol2y 4o3lys ol2z1a ol3zan ol4z3ern ol2zim ol2zo ol2zw ol2zy 2om o2mab oma2bl o2m1a2ge om1alg om1all oma4n3er o2m1ang om2anr o4mante o2m1ap o2m1ar2s o2m1art omar4te o2m3a2sy omat2i o4matom o2m1au o3mÃĪ o2meb om1ebe o2m1ef o2m1ei o2mel o3meld omen5t6an o4mep omer2 om1erh o2meru om1erz omi2c3 omiet1 o3mig om1ind om1ing om1ins o2m1int om3ma om3mÃĪ om3m2e om3mu 3omn 4omo o2m3oa o2m1org om1o2ri om3pf oms2 om3sk om3t2 o2mum o4munt o3mus 2ona on3a2b on2ac ona3g o3nal on3ann onan6z5ei o2n1ap o2n3arb ona3th 4onatol onat2s o4n3at4t on2au 2onÃĪ on1ÃĪh 2onc on2dan onde8rers onderer7t ond1r on2dra on4drin ond3sk 2one on1ec o3nee o2nef o3neig on3ein on1ema one2n1 o4n3ends on2eng on1ep o3ner. on1erb o2n1erd oner4fa o2nerh on4erka on1ers o3nett on2eu on3f2 on3gl ong4le ong4r ong3s on2gue 4o3ni on2i3d onie3g oni2ga on4ik o4nikr o4nim o4nind o4ninh o4nins on3k4 3onke onli2 onli6n onlo2c onna2 onna3g on3n2an on3n2e 2ono1 o3nod o2nof ono2i o2n3oke o3nom on1ope on1orc on3ord ono3s ono3t2 onrad3 ons1a2 on2seb onsen1 onse2t on4sho onsi2d ons3ing ons3l ons1p onst2a ons3tie onst4r on3ta on2t1eb on2te2l ont5end on4t3erl on2th on4t3rat 2onuk o3nur 2onut on3v 1ony o3ny. on3z2 onze3in o1Ãą oo1c ooch2 oofs2 oo2gl oo2k3l oo2kn oo2mo oo2ne o1op oop2s o1or oor3d oo4sk oo2su oo2t1a oot1ei oo2t1h oo2tr oot2s1t oot3t oo2tur 2o1Ãķ2 2op. o1pa op3adr op1akt opa2le op1ang 2opax 2opÃĪ o1pec o1ped op1ef o1pei o1pek 2open o2pera op1erh o1pes 2opf. op2f3a op3fah op2fÃĪ o2pfe op2fem op2fin opf3la op1flÞ op2fo op3for 4oph2 o3phe o1pi opi5a2 opi3er. opi5ers. opie4r3u opin2 2opl op3lag o2p5le o3p2n 2opo opo2la op2pan op4pl 1oppo 2oppt 2o1pr 3o4psi op3sz 1opt4 2opte op3th o2pum 2opy 2o1q 2or. or1a 2ora. o1raa 2or3a2b o2rabb o2r3add or3adr o1r2ag o2rak 1orake o1ral oral5l o4r3alm or4alt or2am or3a2mi o1ran3d4 or4ane oran2f oran2m oran4ze or3ap 2orar o1r2as o2ratt 2orau4 orau2s oraus6wa or2av 2o1raw o1ray o3rÃĪ or1ÃĪnd or1ÃĪt orb2l or1c 2orca or2ce 2ord. 2orda ord1am or2dar or2dau 2ordb ord3eng orde4s or2deu or4d3ing or2d1ir or2dit 1ordn or2do4 2ordr ord3t 2ordu 2ordw 2ore ore2a o2r1e2b o2r1eck ore2di o5ree o3ref or1eff ore2h or1ei o3rei. o3reie o3r2eif o3r2eis orems2 o3renn o3rep o2r1er o3r2ere o3r2ero ore4th o2r1eu 2orf or2fac or2far org4a org2e 2orget or3ghi 2orgia or2gl or3gla or3gle or2gn or3gne 2orgr 2orh 2o3ria 2o3r2id orid3i 4o3rie. o3rien. o6rienti o3rier o3ril or1ima ori4mi 2o3rin1 o4r1ind o4rins 2or4io o2riso 2orit 2ork ork4r ork3s 2orm or2mam or4mang or4mans orm3asp or2m1eb or4m3erf or4m3er4g or2mor orm3ord or2mum ormu4n or4muni or4munt ormvol4 ormwa5 or2n1ac or2nal or2nan or2nar or5ne. or3ni or4nin or3no 2o1ro o2r1ob or3oly oro3n2a or1ope or1opf o2ro2r o3rou or1ox 2o1rÃķ 2orp 2orq 2orr orr4a or3r2e 2ors2 or3s4a or3sh or3si or3sk or3sz or2t1ak or2tan orta2r or2t1au or2tef orte4n or4ten5g ort3erb or4t3ere ort3erf ort3erg or4terk or4t3erl or2t3e2v or2the or2tin or4t3off or2t1o2r or2tÃķ ort3rad or4trau or4t3rÃĪu ort3re or2t1um 2o3ru or2uf or1uh orum4s o4r3un oru2r o5rus3 o2rÞ or3z2e orzel5 or2zw o1s 2o3s2a os3ad osal2 o4s3ami 2osc o4s3ca osch3ar o3sche osch3le 2ose ose1e ose1in2 os2el ose2n o2s1er2k os2ex 2osh o3s2hi os4hu 2osi os2im o3sk os2kal o4ski 2os2kl 2os2ko o4skr o4sky 1osm os4mog 2os2o osol1 o2sÃķ 2osp os1pec os3pero o3s2po 2oss os6s3ac oss3ala oss3and os4sÃĪ o6ssel o3ssem. oss5enke o3ssent oss3enz oss1ep oss3er4b osser4e osser4f o4ssi os2s1o2 os2sp oss1pa os2s1t os2su os2t ost1a o3stal. ost4art ost3aut oste2n o4s3tep o4sterd oster3e ost5erwe oster8wei ost3eur ost1h o2stid o2stin os3ton osto4s ost3ran o2st3rÃĪ ost3re ost3rot os4tru ost3uf 2osu4 os1um 2o3sy o3s4ze 2oß o2ß1el o2ß1ent o2ß1en2z oßer2 o2ß1erb o2ß1ere o2ß1erf oß1is oß1u 2o1t o2t3abi ot1ah o2t1ak o3tal o3tam ot1ant o3tark o2tarz ota4s ot1ast o2t1au o3tau. ot2ax ot1ÃĪ o2teb ote1i o4t1eib o4t1eic otei4n o4t1eis ot2el ote4l1a o3tem o4t1emi ot2em3p2 ote4na o4tentb ot1erb o4t1er2l o4t1erw ot2es ot2har o2them o2t1hi o2thr 4oti o2til o2t1i2m ot2in ot3inh o4tl otli4 ot2o oto3b4 ot3off oto2ph o2t1Ãķ otra3c o3t4ran otra4s3 ot3rat ot4rau ot3re ot3ric ot4rig ot3rin ot3rus ot2s3at ots1o ots1p ots2pe ot3s4tra ott3akt ott3an ot2t1a2s ot2tau ot2teb ot4terh ot4ter4k ot2t1h ot2tim ott2o ot2t3r ot3t4ra ot3t4ru ot1url ouff6 ou1f4l oug2 ou4ge ou3gl o1uh ou1is. 2oul ou2le. ou2les ou4li 2o1um 2o2u2n oung5 oun4ge. oungs2 o4up 4our oure2 ou2ret ouri4e4 ourme4 our4ne. ou3sa ous2i ou2s2t o4ut ou3ti 3outp out3s2 outu4 2o1Þ o1v ov2a 2ovel o3ven oviso3 2ovo 2o1w o2w3al o3wec o2wh o5wi o2wu 2ox. o1x2a 2oxe o2x1el 2oxk ox3l o1xo o2x1u 1o2xy o1yo o1z2 o3za 1ozea 2o3zen ozen4ta ozes4sc 2o3zi ozir3 ozon1a 2ozy oz3z Ãģr3 Ãģrd2 Ãķ1b Ãķ3b4a Ãķb2l Ãķ2b3le Ãķ2b3r Ãķ1ch Ãķch3l Ãķ2chr Ãķchs2t Ãķch6st5ei Ãķchst3r Ãķ1d Ãķde1r Ãķdi3 1Ãķdu Ãķ1e 1Ãķf Ãķf2fa Ãķf2fl Ãķf3l Ãķge3le Ãķgen4s1 Ãķg3l Ãķg3r Ãķg2s Ãķ1he Ãķhe4n1 Ãķhl2e4 Ãķhre4 Ãķh3ri Ãķh2s Ãķ1hu Ãķ3ig. Ãķ3isch. Ãķ1ke 1Ãķ2k2o3 Ãķk3r Ãķk2s Ãķ2l 3Ãķl. Ãķl1a2 Ãķl1ei Ãķl1em Ãķl2f1ei Ãķlf2er Ãķl1in Ãķlk4e Ãķl2k3l Ãķl2la2 Ãķll1an 3Ãķlm Ãķl2nar Ãķl1o2 Ãķls2 Ãķl3sa Ãķl3sz Ãķl3tu 1Ãķlu Ãķlz2w Ãķ1m Ãķm2s Ãķn2e Ãķ3ni Ãķnizi1 Ãķnn2e Ãķo1 Ãķo2ta Ãķoti1 2Ãķp Ãķ1pe Ãķpf3l Ãķr3a2 Ãķrb2e Ãķr2b3l Ãķr1c Ãķr2dr Ãķr3dra Ãķ2r1ec Ãķ2r1ei Ãķ2r1e2l Ãķ2r1e2m Ãķre2n Ãķ2r1ene Ãķ2rent Ãķ3r2erb Ãķ2r1er2e Ãķ2rer2f Ãķ2rer2g Ãķr2erh Ãķ2rer2l Ãķr2err Ãķr2erw Ãķ3r2erz Ãķr1ess Ãķr2f3l Ãķr2gl Ãķ2rim Ãķr2kl Ãķrn2e Ãķrner4v Ãķr1o Ãķrpe2 Ãķrs2e Ãķr3sk Ãķrt2e Ãķru4 Ãķ2r1une Ãķ1s Ãķ2sa 2Ãķsc Ãķ2sch3a Ãķsche2 Ãķ4sch3ei Ãķscher4 Ãķ6sch5erf Ãķ6sch5eri Ãķ2schi Ãķ2sch1l Ãķ2sch3m Ãķ2schn Ãķ2schw Ãķs1ei Ãķ2sein Ãķs4en Ãķs4es 2Ãķsl Ãķs2o Ãķ2sp Ãķ3s2s Ãķs4s1c Ãķs3set Ãķs4st Ãķs4t Ãķ2st1a2 Ãķs4u Ãķ1ß Ãķßen3 Ãķß2ti Ãķ1t Ãķ2t3a Ãķte4n1 Ãķ2t3r Ãķt2sc Ãķt2tr Ãķ1v2 Ãķ1w Ãķ1z Ãķze3 Ãķzes4 1pa. 1paa p1ab p2abe pab2l pab4rÞ 2pabw 1pac 1p2ad pa3el pa1fr 1pag4 pa3gh pa1ho 1pak pa3ke pa1kl pak2to 3pala pala3t 3palÃĪ 3pal2e pa3l2i 1palm pal2ma pal2mÃĪ pal2m1o 2palt pal2t1a pal4tei pal2tr pa2m3a pa2nar pa4n3at pan3d pand2a pan4ds pa2neu panf4 pang4 pa4nisl pank4 2panl 2pann panne2 pan4n3eb 4pannu 1pa2no pan3sl pan3t2h 1panto 2pantr panz2 pan3ze 1pap papi2 papieren8 papie8r7end pap2pr pap2s papst1 pa1q 1para pa4r3aff par3akt pa4rant pa3rap pa2rÃĪ 2parb 1p2arc par3d parer8geb 1parf 2parfÃķ pargel6d 1park. park3am par4kau par4kr 1parks par3m2 par3ne 1pa2ro 2parp 2parr 4parta 3partei 1parti 1partn 3party par3z pa1sp pa2spe passer4 pas6serg pas2s1p pas2t pa2ßu pat1a pat4c pa3t4e2 2patel 1pat2h 1pati 1pat4r 1pau 2p1auf pa3uni 2pausz 1pav 1pÃĪ 3pÃĪc pÃĪck3er 3pÃĪd pÃĪde2 pÃĪ2d1er 3pÃĪr 3pÃĪ4s3 pÃĪ4t1e2h pÃĪ4tent pÃĪ4tep pÃĪ4t3erb pÃĪt1h pÃĪ2to pÃĪ2tr pÃĪt5s 2p1b pbe1 2p3c 2p1d2 pda2 1pe. pe2a2 pea4r pea4s p1e2b pech1 1peda 1peel pe2en 2pef 4p1eff 1peg pege2l pei1 2peic 1peil p2eim 2peis 1peit pekt2i 1p4el 3pel. pe4l3ab pe4lai pe2l1au pe2l3ax pe2l1ÃĪ pelb2 pel3d4 3pele pe4l1e2h pe2l1er pe2let pe2leu peli2d peli4n pe4l3ink pel3inn pel4ins pel3k pel3l2a pel3lÃĪ pel3l4e pell2i pe2lob 3pels4 pel3sp pel3ta pel4zin 1pem 1pen pena2 pe4nas pe2nÃĪ pen3d2a pe4nen1 pe4ni2t pe2n1o2 pens2 3pen3si pen3so3 pen3sz pent2a 2pentw penty2 pe2nu2 pen3z 1pep pe3pi pe1ra pe2rak per2am pe2r1ÃĪ per1e2b perer4f pe3r2id 3pe3r4io 1perle 1perlh perra2 per4r3an per4rÃĪ2 per4ric per6rieg 1pers 2perse 2persi 3perso 3persp peru2 pe3run 1perÞ perwa4r pe3s2a pese2n 1pes5s2 pes2t pest1o pe4stop 3pet pet4r 1pÃĐ 4pf. p2f1ab p2fad p2faf pf1ai p2f1ak p4f1am pf1ans p2fa2r pf3are p2f1au 1pfÃĪ p2fÃĪr p2f1ÃĪu 4pfe. p2fef p2fei pf1eim pf1ein pf1e2m p3fen. p4fener p3fens p3fent p4f1ep pfer5a p4ferde pfer6pro pf4es p2f1et pff4 pffa3 p2f1i2d pf1inn p2f1ins pf1lam pf4lan pf4leg pf3lei pf3lo p2fob p2fom p2fo2r pf1ori pf3r pf1ra pf4rÞ pfs2 pf3sa pf3se pf3sl pf3sz pf3t2 pft4r p2fum 2p3g2 pgra2 1ph 4ph. phal4te p1hand 3phas p1hau phÃĪ1 3phÃĪn 4phb 2phd 2p1hei phen3d2 phe4n1e phen3s 2ph1ers 4phf 4phg p2hid phik1a phi4kan 2phk ph2l 4phm 2phn p2ho. p2hob pho2s 2phÃķ ph2r 4phs ph3t2 2phthe phu4s phu3t 2p1hÞ 3p2hy 4phz p2i2a1 piab4 pia3k pi4ali pia3n piap2 pia3s pi1ce pi2e1i pi2el piel3a 1pier pie2ra pie4reb pie4rei pies4 1pig pi3gl 1pil pi3le 3pilo pil4zer pil2zw p2im 3pin. pi2nad 3ping pingen4 ping3s 3pins. 3pinse pin3s2p pi2o pi3oide pi3onu pi3os 1pip pi2pe 3pirate pi3ri 3pirin 1pis 2piso pis2t pi3sto pit2a pi3t2h pit2s pit3z2e pi2z1in 2p1j 2p1k2 pku2 1p2l2 2pl. 3pla 4p3lad p1lah pla3na p4lau pla2y1 2p3le. ple1c ple2e p4leg ple3n2 2p3ler p4leu 2plig 3p4lik p4liz plo3n 2p3lu 2p3m2 2p1n2 1p2o pob2 2po1c 3pock 3pod 3poe po2el 2poh po2i po3id. po3ids 3poin 3pol po2lan po2l1au pold2e po3li pol3lo po3lo3p pol3z2 pom2ph 2pond pont2 po1ob po2p1ak po2p1ar po2p3l po3p2t po1rau porf4 3portal por2t1h 3portio 3porto. 3portos 3portr por4tre por6tric 3posi pos3s2 pos4t po2sta po2stÃĪ post3ei po6stein po4stem post3ra po2ta pot1ar 3potÃĪ 3pote pot2h po2t3in pott1r po2t1u po3un po2w powe2 po3x pÃķ2bl pÃķ2c 4p1p p2pab pp1ang pp1ans ppa2p p2pat pp1au ppe3e p2p1ei ppe2l1a ppeli5ne pp2e2n1 p2p1erz p2pf4 pp1fr p2p1h pp3he pp3l p4p1lac p4plan p2p1lÃĪ p2ple pp3oh p2p1Ãķ2 pp3p4 p2p3ra p2p5rÃĪ pp3ren p2pri pp3rol pp3rot p2p3ru p4ps2 pp3sa pp3sy ppt4 p3puc p2pul p2p1um p2punk p3pur ppyl2 p2r4 1prak pra4s3 pra5sp 1prax p4rÃĪ 1prÃĪd 1prÃĪf 1prÃĪg 1prÃĪl 3prÃĪm 1prÃĪp 3prÃĪs 1prÃĪv 2pre. 2prec 3pred 2pree1 pre2ei 2preg 1prei 3preis prei4s3c prei6sei prei4ss prei4s3t 2preiz 1prem pren4ga 2p3rer 1pres pre3sa press4e 1preß pri4e 2prig pri2l1 2pring prings4 1prinz pri2t1 priter4 prit3t4 1priv 1pro1 3prob pro3be 2proc 7prod 3prog 3proj 2pross 2proß prot2e 3proto 2prott pro3x 2prÃķ 1prÞf 1prÞg 2prÞh 2prÞn 2p1s 4ps. ps3k ps1od p2sÃķ ps4pi pss2 pst1au p2stu 3p2sy 4psys ps2ze 2p1t pt1a pt2ab pta2g p2t3a4t p3te. p2t1e2b pt3ec pt1ef pt1ei pt1emi 4p3ten p4t1en2g p4t1ent pt1ep pt3erei pt1erw pt1erz p3tes p3tet p4teta p4t1e2ti p2t1h pt1id pti2de pt1in1 pto2mo pto4na pto2p pto2w ptpo4 pt3r p2tro pt1s2 pt3si pts4t pt1uh pt1um p3tung pt1urs p2tÞ4 3p2ty pt3z2 1pu pu1a pub4 2puc pu2dr 2p1uh 2puk pu2kl pu2k1o pu2lin pul2sp pul2s1t 3pulv 2pulw pum2pl 4pund pun2e pun2s 2punt 3pup 2pur pu2ra pu2rei pus2h pu3she pu5t2e 3put2s 3putz puzi3 1pÞf pÞl3l 2p1v 2p1w pwa4r 3p4y1 py3s py3t 2p1z2 qu4 quel4la que3rel quer5n que4te. 1queu 1ra. r1aa ra2ab 2raac 2raal ra3ar r2a1as r1ab ra2b1ar r2abÃĪ 1rabbi rab2b3l 2rabd ra2bei rab2er rab3erd 2rabf 2rabg 2rabh 1rabi 2rabk r2able ra2bli ra4b5lo 2ra2br 2rabs2 2rabt 2r3abw 1raby 2rabz ra2ce 2r1acet ra4cheb ra2cho 2rachs rach6t5rÃĪ ra2chu r2ack 1r2ad r4ad. rada2 ra2dac ra4d1am ra2dan 2radap 3radar ra2de4i rade5s 3radf 3radh 3radio 4radit 3rado 3radp ra4d1r rad5ri rad3t4 r2af raf3ahn raf3ar rafe2 ra2f1er raf3r rag2a ragein4 rages4 2ragg ra3g4le 4ragm ra2gn r2ago rahle4n 5r2ahm r1ahn 2ra1ho 4raht r2ai 2raic rail2l 2r3air raka3 1ra3ke 2rakk 3ra1k4l ra2kre ra2kro 2rakti 1rakÞ 2rakz r2al r4al. ra2la2 ra4l3ab ral1ak rala4s ra2lÃĪ ral3b4 3r4ald r4ale ra4l3end ra4lent ra4l5ern ra3lex r4ali ra2lid rali3er ra4lin4d ra4l3ing ralin6sp ralin4t 2r3alk. 2r3alm. 2ralp. 4ralpe r4als ral3su r3alt 3r4al3t2h ra2l3u 3raly ra2mei ra2mer r2ami r2amm ram4man ram6mens ram6m5ers ram4mit ram4mu 2ramn 3ramsc 2r1amt ramt4s 2ramu 2rana ran1ad ran3ade r1a2nal ra2nan ra2nar ra2nau 2ranb r2anbe r4anda r4ande ran4dep ran4d3er 3r2andi rand3s 1raner 2ranf 2ranga ran6g5e6be 3rangi r2angl rangs2 rang3sp rani3e r3a4nil ran3ka ran2kr ran2kÞ 4ranl 2r1anm r2anmi r2anmu 2ranna ran5ne 2r1anp 2ranr 2rans r2ans. ran4spa 4r5antei r1anth r2anto 2rantr 1ranu 2ranw r2anz. r2ap 2rapa ra2par 2rapf 2rapo ra2pok rap2pr 2r3a2pri 2r1aq r1ar r2ar1a 2rarb r2are 3r4arei raren1 rar3et rar1e2v r2arf4 ra3rie rar3in ra3ris r3a4rist 4r3arit r2ark raro2 ra2rom 2rart 2rarz rar3zw ra3s2 r4as. ra4schl ra4sk r2asm ras3si ras3sp r2ast ra4st3ei r3asth ra4sto ras3tri 2rasyl 2raß 1rat ra2t1an ra2t1ei r3a2tel ra4tid 2ratla 2ratm rat2o 2ratom rat4r r3att 2ratta 2rattr 4ratz rat3ze 4rau. 3raub. 4raue rau3e4n 2rauf rau3fÃĪ 2rau3g2 3raum rau4m3ag rau5mes rau2mi 3raup 4raur 2rausb 3raus2c 2rausd rau3se 2rausf 2rausg raus8gewÃĪ 2raush 2rausl rau2sp 2rauss raus8sche raus3tr 2rausv 2rausw rau3ße 2raut raut1r rau4tra rau4tro raut5s 1raÞ r2ax raxi4s r3axt r2ay ray1o r2az rÃĪch4s 3r2ÃĪd 4rÃĪf rÃĪ1fr 4rÃĪg 2rÃĪh 4rÃĪm 3rÃĪn. 3rÃĪni 3rÃĪns 2rÃĪp 2rÃĪq 2r1ÃĪr r2ÃĪr. rÃĪ3ra rÃĪ1ro rÃĪ2sc rÃĪse2 rÃĪ5sse rÃĪ2st 3rÃĪtse 4rÃĪtz rÃĪ2u 4rÃĪue rÃĪu2s rÃĪus2c rÃĪu7schen. 2rÃĪuss 2rÃĪuß 4rÃĪut 2rÃĪx 4r1b r2b3a2b1 r3bac rba4del rb2al r3bam r2bang r2bant rb1art r2barz rb1auf rbb2 rb1ech rbe3erf rbei3d2 rbe3inf rb3einh rbe3int r4belÃĪ rbel2o rbe3r2e rber6gin rb1erl rbe3rum rbe5sl r2bim r2binf r3bit rbit2a rbi3tu rb2la rb4la2d r2blan r8blasser r4b3last r3blat r3blau r2b3le. r3blen rb3ler r2bleu rb2lin rb2lÃķ rb3lÃķs rbmas3 rb2ob r2bonk rb3ras rb3rea r8b7rechts rb4sam rb2sei rb2ser rb2s1o rb4stÃĪ rbs3tri rb2su rb4sz rb2u rbÞ4b 2rc r1ce r1che. r1chen r1ch2i rch3l r3chlo rch3m rch3r rch4ro rchs4 rch3sp rch3t2a rchter6r rch1w r1ci r1cl r1ç 2r1d rd2ac r2daf r2d1ak r2d1a2l rd2amm rdani1 r2dann rd1ant rd1ara rd1ark r2darz rdÃĪr2 r3de. r3dee r2dei rd2ei. r2d1elb r2de2le r2delf rdels2 rdem6 rden3d2 r4dengl r4dents rde3ob rde3ono rde3r4er rderin6s r4d3ernt r3des rde3sp r2d1e2x r2d1inn rd1iri rd1ita rdo2 r2dof r3don rd1os rd3oss r2d1oz r2dÃķ rd3rat r2drau rd4ri rd5ris rd4rÃķ r3d4rÞ rd2sÃĪn rd3s2k rd3s2z rdt4 rd3ta rd3th rdt2s r2d1uk rdwa6r 1re 3re. rea2d rea6l5erw 4re2am re3at. re3ats reatu3 2reÃĪ re2b1a re2b1l reb1r reb3ra reb3so rech3ar 4rechs 2reck. 2recki 3red. 4redd 2redi re2dik 3redn 3redu re1ebe re1el re1em ree4mi re1er 3refe 4reff r2eff. 3refl 3refo 3reg rege4l3ÃĪ regene7ra 4r1egg re2hac re2h1ar re4hen4e re4h3ent re2hi reh1l4 re2h1o re3hol 3rehÃķ reh4th re2hÞ r2ei. r2eib rei4bel rei4ble r2eic 2reid r2eie 4reier. rei4fei 4reifel 2reig 3reigÃĪ 3reigeh r4eigel 6reigens 3reigi 4reign 3reigru rei3l2a rei3l2i 2r1eilt 3reim reim2p r1ein 2rein2a rei3nal 2reinb rein4du rei3n4ec reinen5 2reinf rein4fe re4info 2reing 2reinh 4reinn 4r3einr 2reins 4reinsa rein6sel rein8s7tre rein4sz 2reint rein6teg re1in2v 2reinw 2reinz 4reisar 4reisb 2reisf 2reish 2reisr reister6 4reisu 2reisw reit3s2 3rek 4re2ke 4rekk 5rekn 2rekz r2el. r2ela re3lat 2relb rel2e relea4 re5lei re2lek 4relem r2elev 2relf reli1 2relit 2relix r2ell rel4lar rel4lei re3lo r2els 2relt relu2 3r2em. 2r1emb rem2da re2m1ei re5men 2remi re3mig 2rempf rems1c rem4str 2rem2u r2en. r2ena 2rena. re4nac re3nad re3nal re4n3an re2nÃĪ r1endg 3rendi ren3dr 4renerg 4rengag ren4gan 2rengp 3renh re2ni 3renm ren4nar ren6nene ren6sein rens2p 2rentd 6rentera 2rentf 3rentfo 2rentg r3enthÃĪ 2r1entl 2r1ents 2r3entw 2rentz r2enz ren6z5er6f renzer6l ren6z5er6s renzer6w ren4z3in ren2zw re2ob re3or 3repe 4re2pen 2repi re2pis 2repoc 2r1e2pos 4repp 3repu 3r2er. rera2 2r1erb 3r4erber rer2bi 2r1erd rere2 4r3ereig r1erek re2r1ep r2erer r1erf r3erfa 4rerfah 2rerfi 2rerfo r2erfr rer2fÞ r1erg 4r3ergeb 5rergebÞ r4ergen 3r4erges 2rer2go rer2gr r4ergru r1erh rer2hÃķ re3ri re4rid r1erk rer4kan rer2ke 4r3erken 3r2erki 3r2erko r1erl 2r3er2la 5r4erlag r3erleb r2erli 2rerlÃķ 2r1erm rer2n 2r1ernÃĪ r1erne 2r1erni 4r3erns 4r1ernt re1ro re2rob re4rosi 2r1er2Ãķ r1erre rer4reg rer4rei r1erri 5r2ers. 2r1ersa r6erschi r2erse 2rersp rer4sta r6erstad 2rer6su r1er3t4 r2erte 2rertr r1erw rer4wac rer4wec r4erwes 2r1erz rer2zÃĪ 3r2erzy 3r2es. re2sa re4sam resche4 re4schw 3rese re4se2h res1of 3resol 3reson res2po 2ress 4resse res3sei res6s5erw res4sto 4ressu resten4 re6stent re4stra 2restu 3resu 2re2ß1 re2t1ak 2re2tap re2tau ret2e 2r1e2th re2tra re4trol re2u reu4eri reu3g2 2reul re3uni 2reur 4reuu 2reÞ 4r3eva 2r1evid rewa4r re2wi 2rewo 2r1e2x1 3rez 2rezi 1rÃĐ 4r1f rf1ack r3fahre r5fahrt rfall4s rfÃĪs3 rfe2i r2fent r3f2es rff2 rffa3 rf3fe rfi4le. r4fland r3f4lÃĪ rf3lic rf4lÃķ r3flÞ r2fo2b rfolg4s r5foli r4frauc rf4ru rf4rÞ rf2sa rf4sam rf2s1ÃĪ rf2su rf2ta rft4r rf2u rfzu3 2r1g r2g1a2d r2g1ah r2g1ak rga4ner r2g1ap r2garb rg3art. r2g1ask rgas2t rga5stes rgd2 rge4an rge2bl r2g1e2c r3gel r4gelef rge4l3er rgen4z3w r4ge4tap r2geto rgi4sel rg2lad r2glan r3glanz rgleich8s7 r2gleu r2glig r2g3lit rg2log rg2lu r2g3na r2gne r2g3ni r2g3no r2g3oa r2gob r3gog rg3op r2g1or rgÃķ2 r2g1Ãķd r2g3ral rg4rau r2greg r2g3res r2gret rg3rin rgro5sse r3grun rg3rÞs rg3se rgs2ei rg4sel rg3s2i rg1sp rgs2pe rgs2po rgs4ti rgs2tu rg1su r1h4 2rh. r2hag 2rhah 2rhak r4haltb r3han 2rhau 2r3hÃĪ 3r2he. r3hea 2rheb 2rhef 2rhi 2rhol r3hop 2rhot 2rhÃķl 2rhs 2rhÞ 1ri ri1an ri2ano ri2ast rib2bl ri1ce ri1cha ri3chl richt8spo 3richtu ri2con ri2dau 2ride ri2d3e2l ri4dent r2i3di 2ridol rid3r 2ridy r2ie rieb6ste 4riefm rie2f3r rieg4s3 ri2e1i riein1 ri1el rie3l2a ri3els ri4enÃĪ riene2 ri3eni rie2nu ri1er. rie3r2e riere4n ri3ers. ri1eu ri2f1a ri2fÃĪ ri2fei ri2fer rif6f5end rif4fer ri2f1o ri2fr rif4ter 3rig 4riga 4r3i2gel ri4gene 4rigg 5rigj rig1l ri4glÃĪ ri3g2o3 4rigr 4rij ri2kar ri2kÃĪ ri2kin ri2kn ri4kone ri2kor 2rima ri2mag ri2me. 2rimm 4rimp rim2s ri3na r1inbe rin2c 2r1indu ri3n2e rine1i 2r1inf rin2fo 3r2infr r2ing rin2ga ring3le rin2gr ring3sp 2r1inh 2rinit 4rinj 4rink rin2kl rin2ko rin2kr 2rinl 6r5innenm 4r3inner 2r1innr r1innu 4r1in2q 2r1ins rin2si rin2so r4inspi 3r2insy 2rint 4rinte rin6tent rin4t5re 2r1inv rin2va 2rinz ri2ob r3ion ri3o2st ri2pl ri3po 4r1ir r2is ris2a ri3s4an ri4sch3o ri4schw 3risik ri3s2ko r3iso ri4s3p r3isr 3riss ris2t rist5ers ristes4 ri2st3r 3ri2ß1 r2it r3i2tal rit3ant rit2i 2ri3t4r rit1s rit4t3au rit4tei 3ritter rit6ter6f rit2to rit2t3r rit2u r1i2tum rix1 ri3xi 1rí 2r1j 4r1k rka2b3l rk1ah r2k1ak rk1all rk2am rk1are rk1asp rkauf4s r2k1ÃĪh r3kel r4kelem rke2n1 rken4er r2k1er2l rk5ersta r2k1er4w r3k2es r3ket rk1im rk4las rk4lau rk4lim r2klis rk2lo rk2lu rk4ne r2kob r3kol r3kon rk2op rk1o2ri r2kou rk2Ãķ rk3rÃĪu r3kri rk3rin r2k3rom r2krou rk2sal rk2sei rk2sel rk2ser rk2so rk2sp rk3spi rkstati6 rk4stec rk4stoc rk2ta rk2tel rk4t3eng rk4t3erf rk4terg rk4t3erl rkt3ers rk6tersc rk4t3erw rk4t3erz rk4teta rkt2i rk2t3in rk2t1o2 rkto4b rk2t3r rk2tum rk1ums rku2n r3kup r3kus rku2sa rkus3s rku2s1t r2kÞb 2r1l rl2ab r3lag r5land rlan4d3i r2l1ar r2l1a2sc rlas2t r2l3aug rle2a r3lec r5lei. r3lep rl2et r3lex rlg4 r3l2i rli4ne. r3l2o rlou1 rl2Ãķ rlÃķs5s rls2a rl2spr rl2sto rl3t r3l2u rlus2t rlu6ster rlu4str r3ly rlz2 4r1m r2mab r2m1ad rma2la rm1ald rm1ami r2m1ank rm1anz r4m3aph r2marc r2marz r3mas rma4spe rmas3se rma5ssen rmas8sens rmat2o rm2ÃĪr rm3d2 r4m3einh rme4na rm2ene r2ment r2meo rmer4fo r2m1erh r2m1erl r2m1erp r2m1erw rm2es rme3sa rme3st rmeta2 r2mide rmi6nanz rminen4 rmi6neng rm3m r4mn r2m1ob rm1o2ri rm3p2 rms2 rm3sa rm3sk rm3sta rm3t rmt2a rmu2n r4muna r2muni 2rn rna2b r3nad rn4ade r3nage r2n1all rna4n rn4and rn3ani r2nanz rna2r rn3are r4n3ari r4n1a4st r4n3att r2nau rn3aug rn3de rn3d4r r4nef rn2eid r4neif r4neis rn1ema rne2n r2n1ene rn2eng r4n1e2p r4n1erg rn4erhi rner4ke rner4ku r4n1erl r4n1ert r4n1erw r4nerz r5nes rn2e2t rnet1e rne4tem rne4ter rne4to rn2eu rne3uf r4nex rn3f rn3g2 rngene4 r2nid r2n1in r4ninf r3nit rnk2 rnn2 r3nod rn2oh r2n1op r2n1or rn1Ãķ rnÃķ2d rn3sa rn3s2ÃĪ rnse4ha rn3s4p rns2u rn3s2z rn3t2a rn3t2e rn1ur r1nÞ r1ny rnz2 r2oba 2robj 1robo ro2bo2r 2robr ro2bre 2robs ro1ch roch2a 3rock. r2o3de rod4r roe4 2roff ro3fl 4rog. ro3g2a 3rogg ro2h1in roh1l2 4rohn ro2hÃķ 3rohr 1roi ro3in rok2l ro3le ro2liv rol4lan rolle4 roll4en rol6lerg rol6lerw rolli4n rol6lini 2roly 4rom. ro2mad ro2mal 3roman. 2romb romen3e ro2m1er 4romm 2romn 4romt r2on ro3n4ab ro2nan 3rond ro4nerb 4ronk 3ronn rons2 ron4tan ron6tend ron2t3r ron2t1u ro1ny ro1o2f rop2a 2rope 2ro2pf 1ropl 2ropt r1or ro2r3al ro2rat 2rorc ro2rel ro2ro ror3th rort4s ror2Þ ro3sh ro3s2i ros2p ross1c ros4st ro3sta ros3tel ro2st1r ro2sum 4r3osz roßen2 ro4ßenk ro2ßi ro2ßu ro2tan rot3au ro2tÃĪ ro3te ro2te3i ro2t1ho ro2tru rot1s rots2o 3roul ro3unt 3rout 2ro1x 4roy rÃķ2b3l rÃķ2du 2rÃķ2f 3rÃķh 2r1Ãķk 1rÃķl 2rÃķl. rÃķ3le r1Ãķlp 3rÃķmi r1Ãķr r2Ãķs. rÃķs1c r2Ãķ3se 1rÃķsl 3rÃķtu 2r1p2 r3pa r3pe rperer5 rper3in rpf4 r2pli rp4lu r3po rpo4str rp3se rps1t r4p3t r3pu 2r1q 4r1r rr2ab rra4s3s rr4at rrat2s rr1auf rr1ÃĪm rrb2 rr1c r5rega rr2ei rre2le rre2pa rrer2 r2rerh r2rerl r3res rres2t rre2ve r4rezi r3r2hen rr2hos rr4i rri3k2 rrm2 rrn3au rr2o rr3obs rro3m rro2re rr2th r3r2u r3r2Þ rrz2 6r1s r3sabo r2sa2d rs2al r4samp r4s1amt rs2an rs3ana r4sanf r2s3ang rs3anm r4sanp rs3ar rs4ark r4sarm r4sch3e4b r6scherl r5schu r5schwu r5schwÞ r2s1ebe rse2e r2s1ef r2sein rse2n rs2end rse4ne r2sepi rs1ere r2serh rs1ers r2serz rse2t rs1eta rs2ext r3s2hav r3shir r3sho rs2hor r4shu rs2il rs2ka rs2kel rs2ki r4skir rs2kl r4skor r3s4kri r4sky rs4mog r3s4no rs4om r2sop r4s3ort. rso4s rs1ost rs2p4 r3span rspa3s r2s3ph r3spi r3spl rs4por r2spun r2sput rs3s2 rst3abl r5stad rst3ala r4stale r4stans r4stant r2stas r3stat rs2tau rs2tea rs2tee rst5eing r6st5eint r4st3emi rster2 rst4erb r6sterbt r4st3erl r4sterÃķ r4st3erw rs2t1h rst3ing r2stip r2stit rs2tob r2s1tot r6strang r4stris rs2tu rsuch4s r3suf rs2ums rsÞ3s r3sy rs2zin r1ß 4r1t rt1abs r2t1a2d r2t3ae rt1akr r4t3albe rta3l2e r2t1all rtal4s3e rt1am r3t2ame rt1an r2tanw r2t1ar rt3att r4tauft rt3ÃĪh rt1ÃĪnd rt1ÃĪrm r3te. rte1e2 rt1ein rt4eind r4t3einh rte2is r2telf rte3li rtel6lei rte2n1 r3ten. rte4na rten3s2 r4t3ents rten3z rteo2 rt3erei r6tereig r4ter4fa r4ter4fo rt1erh rt1erk r4t3er4la rter6mit r4t3ernÃĪ r2ter2Ãķ rter4re rt1er4s rt4er5sp rt1erz r3tes2 rte3sk rt1he r2thel r2t1hi rt2hum r2t1id rtik2 r2t1ima rt3inf rt2is rt2it rt3m r2t1ob r3top. rto1pf rt1orc r2torg r3tork rt3rams rt3rand rtra4s3 rt3rati rt3rec rt3ris rt3rol rt3roma r3trop r2trou rt3sc rt4s1eh rts2el rt3sex rts3ing rts1o rts1pa rt1spe rt4s3tan rts4tie rt3t4 rt1umb rt2u3na r4tunt r2t1urt rtu2t r2t3ute rty1 rt3z2 1ru ru1a ru4ale ru3a2r3 rube4 rub2i ru3ches rucht3s4 rude2a ru2dr ru2et 3ruf ru2f1a ruff4 ruf2s1 ruf4ter ru2g3r 3ruhm 2r1uhr 3ruin ru3ins ru1is 2rum ruma2 4r3umd 4r3umf 4r3umg ru2mi 4r3uml 4r3umsa 4r3umw 4rumz 2r1una 2rund run4d1a runden5e run4d3er run2e runei2 4r1unf run2ga 2rungl 4r1u2ni r3unio ru4nis. run2kr 4r1unl 2r1unm 4runn 4runr r1unse 4r3unt 4runw 2rupd ru3pr 4r1ur ru2ra ru2r1e 5ruro r4us. ru2si rus2p rus3sen rus2s1p rus6st rus2t ru2tab rute4 ru2tei ru2t1el ru2t1er ru2t1o2 ru2t3r rut6scha 4ruz ru2z1w 1rÞ 2rÞb 4rÞbu rÞ1ch rÞcks2 rÞck5sta rÞ2hel rÞher2 rÞh1l 4rÞmm rÞn3z rÞ3ss rÞ4ssi 2r1v r3ve rv2el rve4n1e rvenen4 r4ventz rve5s r3v2o rv2s 2r1w rwe4gel r3wei rwelt4s r5werk r5wert r2wo. r3woh r3wort rwun3s 4r1x 1ry 2r1ya ry2c rygi3 ry1la ry2le ry1os ry3s2t rysti1 2r1z rz2an rz3ant r2zar r2zat rz2ÃĪn rzell4a r5zene rz1eng r4zents rze2p rze2ra r2z1erd r2z1erf r2z1erg rz1erk r2z1erl r2z1erw rzes2 r2z1ess rz1id rz1int rzir3 r3z2of r2z3ot rz2tan rz2th rzu4g3l r2zwÃĪ r3z2wec r2zwir 1sa 3sa. 3s2aa 2s1ab sab2ÃĪ 4sabd sa2be 3sabet sa2bit sa2bl 4sabm sa2br 4s3abs 4sacc 5s2ache sa2cho sachs2 sach3t s2ack s1ad 2s3ada sa2der 2s3adm 2s3a2dr sa4fe 4s3aff sa1f4r 3saft saf2tr 3sag sag2e 5sage. 5sagen. 4s3agent 4s1agg sag4n 4s1a2gr 3sahs 3s2ai sa3i2k1 sail4 sai4r 2s1ak sa2ka sak2e 3saki 4sakk 3sako 4sakt 3s2al. s2al2a sa2l3an sa2lar sa3lat 3s2alb sal3bl 3s2ald sa4lerk 3sali sa2l1id s1all sal3la sal4le. sallo3 3sal2o sal3or sal2se s1alt s2al3t2h 3salz 3sam s2am. s1ama 4sa2mat s2ame 4s3a2mei sa3men sa2min 5s2amm 6s3amma 4s1amn s1am3p4 4samph s2ams s1an s2an. 2sa2na san4at sa2nÃĪ 2s3anb s2an2c 3s2and san4dan san4dri sand3s sa2ner 3sang. 4sanga 2s3anh 3sani 3sanken 2s3anl 2sanm 2sa2no 2s3anp 2s3ans s4anse san4sk san3sp 4santei 4santr 4s3anw 2s3anz s4anz. s4anzt 2s1ap sa2pe s2aph sap3p 3sapr 2s1aq 2s1ar 3s4ar. 3sara 4s3arb 3s2ard 3sarg sar2ga sa3rin s2ark sa2rom s2ars 4sart sa4r1u2 s1asc 2s1a4si 2s1a2sp 4sa2sy 3saß sat2a satan2 sa4t3ant sat1ei 2s3a2tem s3ath 3sat2i 4s3atl 4satm sat2o sa4tol sa2tr sa3ts s3atta 4s3attr 3satz 5satza sat4zel sat4z3en s1au 3sau. 3sauc 3sau2e 2sauf 4s3aufb 3saug saug3le sau2gr sau3h 3saum 3saur sauri1 2saus 3saus. 4s3ausb 4sausf 4sausg sau2sp 4sauss 3sauste 4s3ausw 2sauß s1av sa2ve sa2xi sa3xo sa2y1 1sÃĪb 3s2ÃĪc 3s2ÃĪg s1ÃĪh 4s3ÃĪhn 2s1ÃĪlt 2s1ÃĪm 4s3ÃĪnd 4s3ÃĪp 2sÃĪq 2s1ÃĪr 3s2ÃĪrg sÃĪ4s3 sÃĪ5sse 3s2ÃĪt 1sÃĪu 2sÃĪuß 4s3b4 sba4ne sbau6men sber2e sbus3 1sc 2sc. 2scab 2scac 2scaf 2scal 2scam 2scar 2scat s1ce 4s3cei 6sch. 5schaf 5s2chal sch3ana 4schanc 4schang 5schanz 4schao 4s3chara 4sch3ar5m s2chÃĪ 2schÃĪq 2schb 2schc 2schd sch2e 4schech sche2f 6schef. 6schefi 6schefs 4sch3ei. sch6ein. 4schemp sch5erfÞ sch5erla 3sches 4schess 4schex 2schf 2schg 2schh schi4d schi4e 4schiru 3schis 2schk sch4lac 4schle. 6schlein 4schloc 4schlÃķc 4schmas 4schmed 2schmÃķ 4schmÞh 2schmy 2schn. 4schneb 4schnut 4schobj 4schorc 2schox 4schÃķr 4schp 2schq 4schrad 4schre. 4schrin s3chris sch3rom 4schron 4schrou 6schs4 sch3sk 6sch3t scht2a scht2i scht1s s4chu 4schunt 5schÞ 2schv sch4web 4schweg 6schwerk 4schwet 4schwid 3schwÞ s5chy 2schz 2scj 6s1cl 2sco 4scoa 3s2co2p 2scs 2scu 2scy 4s1d2 sd4a sda3me sdes4 sdien4e s3do sd4r 1se se3at. seau4 seb2 5sebÃĪ 2s1e2ben 2s1echo sech6str 2s1echt 2s1eck se2dik 3see see1i2 see3ig se2el see3len se3en. see3n2e se3enp se3er. see1ra seer2e se1erf se3e2r1i se1erk se1ers see5s2 2s3eff sef4l 3s2eg s3e2gal se2gl seg4r 3seh seh1a se2hag se2hak se2hel seher4e se4herk se2h1in seh3l se4h3Ãķ seh3ra seh3re seh5r2i seh3s se2hÞb 2sei. 2s1eic 2s1eid. sei3da 4s3eifer 2s1eig 3seil s2eim s1ein 5s2ein. 2seinb seinbus6 sein4du 2sei3ne seine3i 4seinfl sein4fo 2seing 2s3einh 2seini 2seink 2seinl 2seinn sein4ne 2seinr s4eins. 4seinsc 4seinsp sein8stit sein6str 2seint 4seintr 2seinw 2s3einz 2s1eis 3s2eism 5s2eit seits1 3sek 4s1e2kel 4sekz s2el. se2l1a 3s2elb sel3d4 sel1ec se2lef 2s3e2leg 6selektr 2selem se2ler sel3ers 2self. selin4s s1e2lit 2s1elix s2ell sel3le se2lob s2els sel3sz selt2e selz2 sem2e 2s1e2mis 2s3emp s4en. se4nad se3nal se4nas sen3au se2nÃĪ s2enb 3sendet 4s1endl sen3d4r 2s1endw senen1 4senerg se4ners s2enf 5seni se2nid se2n1im sen6keli 3senku se2no se4nott se4noz s2ensa sen4s3e4h 4sensem sen4si4d s2enso senst2 sen8s7turm sent2a sen3tan sen3tÃĪ 2sentd 2sentf 4sentg 4sentn s2ento sen3tr 2s1ents 2sentw 2sentz se4n3u2 3senva sen3za sen4zer sen3zw 5seo seo2r se2pen 5seq s4er. se2r3a2d ser3al se3rand ser3ÃĪus serb2 s3erbe. serd2 se2r1e2b se3reie se4r3eim se4rein sere2m s4eren se4r3enk s4erfe s1erfo s2erfr s3erfÞ 4serfÞl ser3g2a s1ergÃĪ ser3gl s2ergr s1erh 5serie serk4 3serl. 4s3ermit s2ern. 2s1ernÃĪ s3erneu 4s3ernt sero4b s1e2ros s1erot s1erÃķ s2ers. 2sersa ser6sehn 4ser4set se3ru se4ruh ser2um s3e4rup 3s4er3v s1erz s4es. se3s2a se2sel 2sesh se3sk s1essa sest3ri se3su 2s1e4tap se2tat 2s1e2th set2i 2s1e2tik set1s se3tun 3sety 3setz 3seuc 4s3eul se1u2n s1ex 5sex. 2sexa se2xe sex3en s2exi s2exo 4sexp sex3t4r 2sexz 6s3f4 sfal6l5er 4s3g4 sgang4 sge3s2 sgro3 2s1h 4sh. sh2a 3sha. shal4li shalt2 shalt4s 4shan 4shc sh2e 1shen 4shf sh2i 3shi. 1shid s4hig s2hip s2hi4r 4shk sh3n 4shoc 4shof 4shom 3shop sho4re 5show 4s3hÃķ sh4r2 4shs 4sht s3hu 4s3hÞ 1si 3si. si3ach. sial5l sia4s 2siat 5si1c si2cha 2s1idea 2sidee 2s1ideo si3der s2i3do 2sidy 3s4ie sie2bu siege4s si3ene si1err si1f4 si2g1a si2g1ei sig4n si2g3r sigs2 si2k1ab si2kak si2kar si2k1ÃĪ si2k1el si4kens sik3erl si2k3i sikin1 si2k3n si2k3r sik3s2 3sik3t2 si2ku sil2br sil2e 3sili s1ill 3silo 2s1imm sim2st 3simu si3n4a 2s1ind 2s1inf 4sinfe sing1a sin3g4le sin2g3r sing3s2 2s1inh s1in1i1 s2ink sinner4 2s1inno 2s1inq 2s1ins 2s1int 2s1inv 3sio sirn4 2sirr 3siru 3sis si2sa si4sam si4schu si2s1e2 si2si si4sis s1i2so sis1or si2s3p sis3s2 5s2ist si4star si3sto si2stu si2su 3sit si2tal si2tau si2tra s2it2u 3siu si2va sive3 siver2 si4v3erf si2vin siv1o4 si2vor siz2 1sí 4s3j 2s1k2 4sk. sk4a 4s3kab s3kad 1skala 4skalk s3kalt 4s3kam 4skana 4s3kanÃĪ 3skanda 4skann 4skap 4s3kar 4s3kas ska4te. 4skateg ska4tes ska4to 4skau 4s3kÃĪ 4skb ske2li 4sken 3skep 4sker 4s3ket s3kh 3s2ki. 3s2kif 3s2kik s3kim s3kin s2kis. 3skiz sk4l 4s3klas 3s2klav 4s3klu 4sk4n 4skoh 4skol 4skom 4skon 3skop. sko2pr 4skos 4skow 4s3kÃķ sk4r 4s3kra 4skro 4sks 4sk3t2 skto2 3skulp 4skun sku2s3 4skÞ 4skv 2s1l2 4sl. s3lab 3slal sla2ma 4slar sla2ve s2law sl3b 4s5le s3li 3s4lip 4sln slo3be s3loc s4loga 3s2low s3lu s3ly 4s3m4 sma3b4 sma3sc smas4p sme3na smi2t3 2s3n2 snab4 sni4a sni3er. sni3ers 4s5not s5ny 3so. 2s3oas 2s1o2b 3s2o3ba 4sobj 4s3obo so1ch so2di so2do so3et s1o2fe 3soft 3sog sog4l s1o2he 3sohl sohle2 2s3ohng 2s1ohr 3soi2 so3id 2s3ok 1sol 3sol. so3la so4lau 3sold 3sole so2l1ei so3li sol2la2 sol4ler so3l2o 4s3o2ly 1somm 3s2on son2a son3au sone2 son4gl son3sÃĪ son2s1o so3o s1op 2sope 2sopf 3sopr 2s1ord sore2 so2rei so2rel 2s1orga 1sorge so1rh 2s1o2rie so2ro 3sorp 3s2orti so4ru 1so3s2 3s2os. 3sosc so4sk 2sosm 2sost so4sth s1o4sz 3so3ß 2sot so3t2h 3sott soun2 sound1 so3unds so3unt 2s1out 3sov 3sow 2s1o2x 3soz s1oze 2s1Ãķ2d 2sÃķ2f 2s1Ãķk 2s1Ãķl 2s1Ãķ4s sp2 2sp. 2spaa s2pace 2spack 2spag spa2ge 2spak 2spala 2spalÃĪ 3spalt spa2m 1span s2pan. 3spannu 2spano s2pans 3spant 2spanz 4spap 2s3para 1spare 2sparo 1sparr 5s6parten 4spartn spas2 spa3sse spa5ssi 1spat. 2spati 2spatr 2spau 3s2paz s2pÃĪ 2spÃĪd 3spÃĪh 2spÃĪr 2spÃĪs 2spe. 2speg 1spei 4spein 4spensi spe3p4 s2pera 3sperb 3s2perg s1peri 4sperle 2spero s2perr sper4ra 2spers 4spet 3s4pez 2s3pf4 4spha s2phÃĪ 3sphÃĪr s3phe 1spi 3spi4e 4s3pier spier4r spi2k 4s3pil 2s3pip 4s3pis 3s2pit 3s2piz 2spl 4spla 4s3plÃĪ 3s2pli 4s3p4lu s3pn 2spod 4spoe s2poi 2s3pok 4spol 1spon s2pons 4spoo 2spop 1spor s2pore 3s2porn 4s3pos 4spote 4spr. 3s2prac 2sprak s2pran 2sprax 2sprÃĪm s2prÃĪn 2sprÃĪs 3sprec 2spred 5s2pren 2s3pres 3spring 4sprinz s2prit 4sprob 4sprod 2sprog 4sproj 2sprop 5spross 2sprot 2sproz 3sprÃķ 3s2pru 3sprÞc 2sprÞf 1sprÞn 2s3ps 2sp3t 2spub 2spud 1spuk 3s2pule s3pun 4spup 3spur spu4rer 1spÞ 2spy 2s1q 4s3r4 sra4s3s srat2s sre3cha sro2h sro3tu srÃķ2s srÞcker6 2s1s 6ss. 4ssa s3saba ss3abi ssa3bo s5sack ss2ad ss4agi s2s1aj ss3alba s2sall s4samt s2sanf s4sang s4sano s4sans ss2ant s4sanz ss2ara ss2arg s3sars s2s3att ssau3e ssau4r 4s3s2ÃĪ 4ssb 6ssc s2sce ssch2 sschanker8 s2scr 4ssd sse3a 4ss1ec 4ssee sse1ec 4ssef 4sseg 4sseh sseh2a 4ssei s2sein ss4eind sse3int 4ssek 4sselek sse2lÃķ 4ssemp 6ssendet 4s3sendu 6ssenerg ssen6kel ssenmas6 ssen6sem 4ssentl 4ssents 4ssentz ss1epe sse6ratt ss5ereig ss4ergr sser4hÃķ sser6mit s2serÃķ sser4Ãķf 4ss3erse ss4eru sser6wei 4ssesc 3ssesh sses4sa 4ss3e4str 4sset sse3ta s3seth 4ssez 4ssf 4ssg 4ssh ss3hi 4ssic ss3i2ko s2simp 6ssio ss1isr 4ssit 4ssj 4ssk s3skala 4s4s3l 4ssm ssmut2 4ssn 4sso ss1off ssoi4 s3sol s4sop 4ssÃķ 4ssp ss2pen ss2phi s3sprÃĪ s3spri ssquet4 4ssr 4s4s3s4 sssau4 4sst sst2a s5stad s6stag s3stÃĪ ss1t2e s4ste. s5stel s5s2tep s5stern s4stes s4stet s5steu sst2i sst3in ss1tis s5stop ss1tor s3s4trat s3strÃķ s3stÞ 4ssum s2sumg s2sumr 4ssunt 4ssup ss2ur s3sus 4ssÞ 4ssv 4ssw 4s3sy 4ssz 1st 6st. 3s4ta. 5staa 5stab. 2stabb 4stabel 2stabg 2stabh 4stabit 2stabl 2stabn 2stabt 2stabz st2ac s2tad 2stada 3staff 2stag 3s2tagr 3stah 2stak 2stala sta3lak 2stalb 2stalg 3sta3l2i 2stalk st1alp st1alr 3stam st1ami stam4ma 4stampl 4stamt 2stanb 3s2tand 4stanf 6stangeh 4stanh 4stanl 4st1ann st3ansp 4stanst 3stant 4stantr 2stanw 4stanza sta3po 2st1app s2tar. sta6rens s2t2ars s4tart 2stasc sta4sie stast4 2statb 7s2tati 7statth 7statu 2stauf 5staur 2staus st1a2ve 2stax 3stÃĪb 3stÃĪd 2stÃĪg 2stÃĪlt 2stÃĪmt 3stÃĪnd 4stÃĪp 5s2tÃĪr 3stÃĪtt 2stÃĪus 4stb 2st3c 4std 3ste 4steam s2tean 4stechn ste2d st1edi ste2g3r s2teh 4stehr st4ei. 4steic 4st1eid 5s4teig stei4gr 4steil s3teilc stei4na 6steinga 6steinhe stein6sp s2tel st1elb s3tele st2ell stel6l5ÃĪn ste4mar ste6ment 6stemper 4stempf ste4na 4st3ends st2ens 4stentf 4stentl 4stents 4stentw 4stepi st1e2po ste2r3a s2terb 4sterbs 6stereig s2terf st3erfÞ st2erg s2terh s2terj s2terk sterma7sse s2tern 6sterras s2ters ster4zo ste4s1e stes3ta 4stestb 4stestn 4stests 4steta ste4tab ste4tag s2teu 4steuf st3eun st1ev 4stex s2texa 4stf 2stg 2sth st2hen st1hi st3ho st1hy st1i2d 4stief. 4stiefl 5s4tiel 5stif sti4gel st2il 3stimm 4stimma 2stimp 2st1inb 4stinf 3sting 4stinh 2stins 4stint s4tio 2stip. 4stipps sti2r st1ira st1iri st1iro 2stite 2stj 2stk 4stl 4stm stma3s2 2stn sto2bl 4stocht s2tode 3s2tof stoffen6 stof8fens 6stoffiz sto3mi 2stomn 2ston 4stona 3s2to4ne 4stonl 2stope 2stopo 2stord 2storf 2storg s2tory 4stou 4stÃķch 2stÃķl 5s2tÃķr 2stÃķst 2stÃķt 4stp 2stq st4rade stra4fa 2strag s2trah 2strai 3s2tral 4strans 3s2tras 3straß 4straum 2strÃĪc 2s3trÃĪg 4strÃĪne 2stre. 4strech 2stref 2streg 4streib 5st6reif 2strep 2stret 2strev 3s4tria 2strib 4strig 4strisi 4stroc 3s2trof 3s2troh 3s2trok 4stropf 3s4tropo st4ross 4strost 3stroy 2strÃķp 2strub 3struk s2trum 2strun 2strup 2strut 4st3s2 stsas2 stsi4d sts4p 2st3t4 st2u 3stub 4stuch 3stud 2stue 3stuf 2stug st3uga 3stuh 2stuk 2stumo 2stumr 2stum2s s3tumsc 2stumt 2stumz 2stun. 2st3una 2stune 2stunf 2st3uni 2stuns 2stunt 3stuÃķ stu3ra stu5re 2st3url 2s3turn 2st3urt 3s2turz 4stÞch 3s2tÞck 3stÞh 2stÞr. 2stÞre 2stÞrg 2stÞrs 2stÞrw 2stÞtc 2stv 2stw stwor2 2sty 4sty. 4styp 4stys 2st3z2 su1an 3su2b3 su4ba 4subi su4br subs4 5su1c su2cha su2cho 3sud su2eb 2s1u2f su3fi 2s1uh 1sui su1is su1it. su2k su3l2i sum1a su2man su2mar 3s2ume su2mei su2mel sument4 su6ments su2m1et 2s3umf su2m1id su2min 3s2umm sum1o2 su2mor s2ump s1ums s3umsa 2sumse s2umsp 2s3umst 2s3umwa su2n 2s1una sunder4 sun6d5erh su4ne 4s1unf 6sungena 2s3ungl 4s1uni 2s1unm s1uns 2sunt 3sup 4supd sup3p4 su2ra sure4 su2rei su2rer 3surf 2s1urk s1url su2r1o s1urt su2s su3s2a sus1e sus3i s3u2t su3tr suz2 2sÞ4b 3sÞc sÞ2d1 sÞden4 sÞ3den. 1sÞf 3sÞn 1sÞs4 sÞ3sse sÞ3ssi 1sÞß 4s3v2 svoran4 2s3w swe6gers sweh2 swe5s 4swie 4swil 4swink 4swis 4swit 1s2y 2syl1 sy2lo sy2lu sym3 sy2n3 3synd sy4no 3sys 2s1z2 4s3za 4szÃĪ 4s3zei 4szel 3s2zena 3s2ze3n2e 4szent 4szer s2zes s2zeß s4zew 4s3zie s3zins 4s3zo s3zs sz3ta 4s3zu 4szÞ 4szw 4szy 2ß3a4 ßan1 ßat3 2ß1ÃĪ 2ß1b4 ßbus3 2ß1c 2ß1d4 1ße 2ß1e2b 2ß1ec 2ß1ef 2ß1e2g 2ß1ei 2ß1ek ße2l 2ßelek ße3lu 2ß1emp ße4n3a4 4ßenerg ße2ni ß1enke ße2no 3ß2en3te 2ßentz ße2nu 2ß1e2p 3ß2er. ßer3b ßer2ei ßer2la ße2ro 2ß1erse ßer3t ß1erw ße2s 2ß1es2s 2ß1est3r ße2t 2ß1ex 2ß1f4 2ß3g2 ßge2bl 2ß1h 1ßi ßi2g1a 2ß3i2k 2ß1il 2ß1im 2ß1in ß1j 2ß3k4 2ß1l2 2ß1m2 ßmut2 2ß3n2 2ß3o4 ß1Ãķ4 2ß1p2 2ß1q ßquet2 4ß3r2 ßrÃķ2 ßrus3 2ß3s4 ßsau4 ßsch2 2ß1t ßt1h ßt1in ßts2 1ßu2 ß1uf 2ß1uh 2ß1um ß2ung ß1uni 2ßunt ß1Þ4 2ß1v 2ß1w 2ß3z2 2taa 2tab. 3taba ta2b3an 2t1abb 4tabd 1tabel 2tabf 2tabg 2tabh 2t3a2bit 2tabk 2tabla 1table 4tabm 2t3abn 2ta4br 4tabs t1abst 2t3abt 3tabu 4tabw 4tabz 2t1ac t2ache 3tacu t1ada 2tadd ta2der tadi3 tadi5o4 tadi4s t1adm ta2dol 2t1a2dr ta3d2s ta2er 1tafe 2tafet t1afg t1afr 1tag ta2ga ta2g1e2i 4t3agent tage2s 2t1agg ta3gl 2t1a2go tag2s1 tag4san tag4st 2tah2 3tai ta3i2k tai2l1 ta1ins tai4r ta1ir. ta1i2s 1tak 2t1a2ka ta3kes 2t1akk ta2kro 2taks tak2t1o2 t2aktu 2takz 3t2al. ta2la ta3lad ta3lag tal3au 1talbr 1talbu tald4 1tale tal2en ta4l3end tal3eng ta4l3ens taler2 ta4ler3g ta2let tal2ga tali6ene tal4l3ac tal4leg tal4lei tal4let tal6leut tal6lin6s tal4los tall2Ãķ tall3s tal4lus 2t1alm. ta2lop ta2l1o2r t1al3ta tal3th talt4r ta2lu 2tam 3t2am. t2amen t1a2mer ta2mi tam2ma2 tam4m3er tam4mi tam4mut t1ampl 3t2ams 4t1amt t1a2na tan3ab 4tanal ta4nat 2t1a2nÃĪ tan3d4ar tan2dr ta4nerf 4tanf 2tang tan4gra 2tanh t2anho t4ani 3tanj 1t2ank tan2kl 4t3anl t1anm 2t1anna 3t2anne t1ano 2tanom t1ans t2ans. 4tansi tan4tan t4ante. 4tantei 2tantr tanu4 2tanwa 2tanwÃĪ t2anz. t1anza 4tanzei 3tanzk 3tanzr t1anzu tan2z1w tao2 ta3or t4ape ta2pes 2tapf ta2pl ta4poka t2appe ta2ra 2tarab 3tarabb ta3rak 3tar5al 2taram tar3ap ta3ras t2arau 2tarb 3tarba 3tarbek 3tarber 3tarbi 3tar3bl 2tarc 3tarchl 3tarchr t2ard ta2rel ta2r1er tar3g ta1r2h 3tari 2tark 3tark4l 3t2arko t2arl 2t1arm t2armÃĪ ta2rom 2tarot 2tart 3t2arta 3tartei tar6ter6e 3tartex 3t2arth t1arti 3t4artis tar2to tar2tr 3tarty ta2ru t1arz 2tarzt t2as. ta3s2a 1tasc 4t1asp 2t3assi 1tast ta4stem ta2sto ta3str t2asy t4at. ta2ta2b ta2tan 3tatb t4ate tat1ei t5a2tel ta2tem 1taten ta2t1er 2t3atl 2tatom 2ta2tr 1tatsa 2tatt tau2b1a 1taubh tau2bl tau2b3r tauchs4 tauch5sp 2taud t1auf 3taufe. tau3f4li 4taufm 2taufn t3au2f1o 4taufp taufs2 4taufw 1taug 4t3auge t1auk 3taum 4tauma 1taume 1taus 4t1ausb tau6scha tau6schm tau6schr tau6schw 2tausd t2aus2e 2t1ausf t3ausg t1ausk 2tausl 2tausr 2t3auss 2t5ausw 2tausz ta2van 3tax taxi3s 4t1axt 2tÃĪÃĪ 2tÃĪb tÃĪ1c 2tÃĪd t2ÃĪf 1tÃĪg 2tÃĪgy 2tÃĪh 3tÃĪle 2tÃĪll 2t1ÃĪlt 2tÃĪ2m t1ÃĪmt t1ÃĪngs 1tÃĪnz 2t1ÃĪp 2tÃĪq tÃĪ4reng tÃĪ2ru 2tÃĪrz tÃĪ2s t2ÃĪt 3tÃĪtigk 4tÃĪtt 2tÃĪug 1tÃĪus 2tÃĪuß 2tÃĪx 1tà 4t3b4 tbauer4 tber2e tblocken8 tbus3 2t1c t3cha t3che tch2i tch3l t3chr t2ch1u tch1w t3cl tcor2 t3cr 4t3d4 tdar2m1 tdun2 1te2a2 te3ab tea3c te3ag 2teak te3al teamma3 te3an te3ar tea4s 3teba t4ebb 2t1e2ben t2ech 1techn te2chu 2teck t1ecu te2dit 1tee te1em teen1 te2er. te1erw te2es 3tefa 2teff 2t1egg te2hac 2tehe te2him 2t1ehr te3hu 1teic tei1fl 2teign teik4 1t2eil tei6lent teim2 2tein teinbus6 teinen4 tei6nens tein6hab t3einkÞ 2t1eis. t1eisb tei3sc te5isch. teit4 t1eiw tei3z te2kel 3teko tek3t4 te2la tel3ab tel1ac te3lan te4lant tel1au te2lÃĪ telb4 tel3d4 tel1ec 1telef 1teleg tel3ehr 2telem tel3eng te2ler te2leu 4t3elf. te4lim te2l1in te2lit tel3le tel6lein tel3li tel6li6st te2lob te3lom te4lost te2l1Ãķ tel3s2k tel3ta telt4r t2ema te2man te2m1ap te2mau 2tem2bo te2m1ei te2m1er 2temg 2te2mi tem3i2m tem3ing 2teml 2temn 2te2mo tem1o2r 3temper 2tempf 1tempo tems2 te2mu te4mun t6en. ten1a2 te4nad te4n3an ten3ar te4nas te4nat ten3au te2n3ÃĪ4 ten3da t3endal tend4an 4tendap 2t5endf 2t1endl t6endo 2t5endp ten3d4r te2n1e2b te2nef te2neh ten3ei te3n4ei. tenei4d tene4m tenen1 te4n3end te4nene te4neng te4nens 4t3energ te4n3ern tenf4 t1eng. teng2a 4ten4gag t3engla te2ni te4nil ten1im te4n3in tenk4 ten3n2 te2nol te2nos te3nÃķ 4t3ensem 1tenso tens2p t2enta t1entb 2tentd 2t3entl 2t3entn ten6tric t1ents 4t5entw 2tentz te2nu t2enz ten4z3er teo2f 2t1e2pi tept2 t4er. t4era ter3ac te2rad te1ral ter3alg te3r4ane te2r3ap 2t1erbs 2t1erbt 4t3erde. ter3d2s te2r1e2b te2rec t3ereig te5rek tere2m te4rema te4r3end te4rene te4reng te4r3ent teren5th terer3k terer6ku terer3l te4r3erp te4rers te4rerw t4erfr terg2 ter3ga 6tergebn t6ergem t6erges t6ergew ter3gl 6tergrei t4ergru 2t1ergu 2tergÞ t6erhall t6erhau t4erhÃĪu t4erhei t2erhi t2erho 6terhÃķhu t2erhu te3ria 4terii ter3iko teri4o te2r3it teri4ta 4terklÃĪ t4erlÃĪ t4erli ter4lÃķs termas4 1termi t2ern. ter4nar t6ernc t4ero te1rob ter4obe 2teros t1e2r1Ãķ t4erp t4erra 3terras ter4re. t4erro t4ers. t2erse t4erst. t6erstad ter6stat t4erstÃĪ t4ersti t4erstr t4erstu t4erstÞ ter3t4a ter4trÃĪ t4eru2 te4r1uf te3rung t4erv 4t3erwÃĪh ter3z2a 2t1erzb t4erzei 4terzeu ter3zw te2s t2es. tesa2k te3sÃĪ te3sc tes3eli te3ser te3si te3so te3sp tes1pe te4sper te4spr 2t1essa tes3si tes2t tes3tÃĪt 1testb tester4 te6sterg te6st5erh te6sterk te3sto tes3tra t3est3ri 1tests t1eta te4tabl 2te2tap te2tat teten3 2t1e2th te3tho 4tetl 3teuf te1u2n 2t1eup te2va te2vi tewa2s 3tewo 1tex 2texam 2t1e2xe 2t1e2xi 4texp tex4ta 2t1exz tÃĻ2 2t3f6 tfÃĪs3 4t1g2 tga4s3er tga4su t3ge tge4nen3 tger2a tger2i tg4r tgro3 4th. 2t1h2a 3tha. 3t2hag 4thak 3thal. 3thalh t4hali 1t2hals t2han. t3hand t3hap 4t3hau 2t1hÃĪ 3thÃĪi 4thÃĪl 2thb 4thc 1th2e 3t4hea 2t1heb 2t1hef 2t1hei the1in 4theit t2hek 2themd 2themm t1henn 3theo t1herd thero1 2t1herr 2t1herz 4t1hess t2heu 2thf th2i 3thi. thic3k4 thi3er. 2t1hil 2t1him 2t1hin thi3nu 2t1hir 2thk 2th3l 4th3m2 thmu2 2th3n2 2t1hob tho3chr t1hof 2t1hoh t1holt 2tholz t2hon 4thops t1hose t1hot 4thote 2thou t1hov 2thÃķ 2thp 1th2r2 2ths 2tht2 t1hu 2thub 2thuh 4t3hun 2thut 2t1hÞ 2thv t4ia ti3ac ti1ag tial2l ti3alo ti1a2m ti1ce ti3chr 3ticket t2id. 2tidee ti4d3en4d ti3dy 1tief. 4tiefel 1tiefl tie2fr tieg4 ti2e1i ti1el ti2el. tiel3a ti3e2n1 tie4rei tie4reu tiermas6 ti2ern 1tierr tie5sse ti1eu ti3fe tif3f ti1f4r tifter6k ti4gerz ti2git tih2 tihi4 ti2kam ti2kar tiken2 ti4kent ti3k4ere ti3kerl ti2kin ti4klu ti2kn ti2k1op tik1r ti2kra ti2krÃĪ ti4krei tiks2 ti2lar til3d ti2lei ti2lel 1tilg 3tilgu tille4b 2tillu ti2lÃķ tilt4 ti2lu ti2ma2g tim4man tim6ma6te timmer4 tim6merg tim4mit 2timp t4ina ti3naf ti3nak ti2n3an t1ind ti5n2e tine1i 2t1inf tin2ga ting3l ting3s2 2t1inh 3tinis t1in1it t1inka tin2k1l tin2kn tin2kr t1inku t2inn ti2nor t1ins t3insa t2insÃĪ 4t3inse tin4spa tin4sum t1int 3tinte. ti3nu tin2um 4t1inv 3tio ti2osk tioxi3 1tip. ti3p4l 1tipp 3tips ti4que. 1tirad ti1rh ti4ron t2isc ti6schei tisch3l tisch3w ti2sei ti3sk t1isl t1iso ti2sp t1isr ti3s2th ti4s3tic ti2su 2t1iß t1it2a ti2tal 3ti3te 3tiu tium4s ti2van ti2vel ti4vene tiver2 ti4verh ti4verk ti4verl ti2v1o ti4v3r ti2za ti2zir 2t1j 4t3k4 2t3l2 tlan2g tl4e tlei6der t4lep tle2ra 4t5li tlings3 tli5ni tlit1 t5lÃķ 4t1m2 tmal2 tmen8schl tmen4t5 tments4 tmo4des 2t3n4 t5na tnes4 tni3v to4as to5a4t t2oba 4tobj tob2l t1obs 1tobt to1ch 2t3ochs 1tocht 2tock tock5ent 1t4od 3tod. tod1er2 to2dun tof6f5ent tof4f3er 2toffi 2t3ohr toi4r tok4 to3le 1toler tomar4b to4mene 3tomi to2min 1tomo to2m1u to4mun 1ton to2nan ton3au tond2 to2n2eh toner6ke to2nob 2tony 3too to2pad to2pak to2pan to3pas to2pat t1ope top1hi 1topo 2to4pt t4or. tora2g to4rÃĪn t1ord t2ordi 2t3ordn t4ore to2rei to2rel to2rem to6renna 1torf tor4fan t1or3g 2torga 6t5orient torin4s tor3int to2rÃķ 1torp t4ors 1tort 2t1ort. tor3t2a t1orth 4tortn 4tort4s to4ru to3rÞ to4rÞb to3s2 to4s3ka tost2 to2tÃĪ 1toten to2tho 3t2ou touil2 to3un to1x tÃķ2c 1tÃķch 2tÃķck 2t1Ãķ2d 2tÃķ2f 4t1Ãķk 1tÃķl 2tÃķl. 1tÃķn t2Ãķr t1Ãķ4st 1tÃķt 2t3p4 tpf4 tpi2n 2t1q t2r4 2tr. 1trac tra3cha tra3chl 2t3rad. 2trade tra4dem 1tradi t3radie tra4fah tra4far 2traff 1t4rag tra5gen 2trahm 3t4rai 2t3rake t4rakt tral3l 1tram 3t4ran. 4trand 2trang 1trank t3rann 5t4rans 1trapp tra4sta tra4str 2traß t1raub 4traub. 4trauc t4rauf 1traum 2traup traus2 1trÃĪc 2trÃĪd 1trÃĪg 1trÃĪne 2trÃĪng 2trÃĪuc 1trÃĪum 4t5re. 2trea t3reak 2treb tre2br 2trec t3rech t4reck 3treck. 2t3red 1tref 2trefe 2trefl 2trefo 2treg t3reh t4rei. 1t4reib 2treif 2t3reig 2t3reih 2treim 2t3rein 2t3reis tre7isch. 2treit t3reiz 2trek 2t3rel t4rem t4ren. 1trend 1trenn t3rent 2trepe 2t3repo 1trepp t3repr t4rer t4res. 1tret tre2ta t4rete tret3r tre4tri 2t3rett 2t3rev t4rex 2trez 3t4rÃĐ 2t3rh 3t4rib t4rick t4rid2 1trieb trie3fr tri4ena tri2er tri4ers 2trig. tri3gl t4rik tri4ke. tri4kes 1triko 1tril 1trin t3rind 2tring tri3ni t3rinn 3trio t4rip 2triß 1triu 2t3riv tri2x trizi1 tro3b4 1troc 4trock. tro4kes trol4la 2trom. tro4men tro2mi 2tromk tro3na t4rop tro1pe 3tropf tro5sm 1trost t1rot. 2trout 4t3rÃķc 2trÃķh 2trÃķm 1trÃķp 2t3rÃķ4s3s 1trÃķt 1trub 2t3ruc 4truf 1trug 2truk trum2 t3rumÃĪ trums1 t3rund 1trunk 3t4rup t3russ 2t3ruß 1trut1 tru2th trÞ1be trÞ1bu 2t3rÞc trÞcker6 t4rÞg 3trÞmm try1 2ts 4ts. ts3ab t3sac tsa3che t4sachs t2sa2d ts1ahn t2sall t2salt t4samp t4s1amt t2san ts3ane tsa2r ts3ari t2s1a4s tsa5ssen t2sau ts2av t1sÃĪ t2sÃĪh ts1ÃĪn ts1ÃĪus t2sce t4scham t6schart t3sche t4schef t3schl tsch4li t3schra t4schro t3schÞ ts2cor t2s1e2b tse2e t2sef tse4he. ts2eil t3seme ts1eng t3s2ens t2s1ent t2s1ep t2s1er t6s5essen tse2t ts1eta t2s1eti t2s1e2v t2sex t3sexi ts3he t2s1i2d t2s3i2k t2sim tsing4 t2sini ts1ir 4tsk t3skal ts4kele tski2 t4s3ko tsmas4s tsma5sse t1so ts1off t2sop tso2r ts1orc t2s1ori ts3ort. t3sos ts3part ts1pas ts3pate t1sped t1s2pek ts4pend ts2pi t2s3pic t4spins ts3ple ts2pon ts2por ts2put ts5s4 4tst4 t4stabe t2staf t4stale t4s3tanz t2stas t4s3tat. t4s3tÃĪti t4stee t4s1tep t4sterm t4s3terr ts1tie t3s2til t3stim t2s1tis t2stit t4stoch t2stoi t2stor t4strac t4strad t3s4traf t3strec t4stren ts4tric t4strie ts2tro2 ts2tub ts2tÞm ts1u 3tsubi t2sumz ts3un t1sÞ tsÞ3s tswa2s 4t1t tt1ab tt2ac tt3achs tt1ad tt2ag tta6g5ess t4t1ah tta2ke tt2al t2tan ttan4a tt4anke t3t2ant t4t1ap tt1art tt3atr tt1ÃĪh t2tÃĪn tt1ebe tt3echs tt1eif tt1ein t2t1eis tte4l1a2 tte4l3e4b t4te4leg tte4len ttel3l ttel1o t2temu tte4na ttens2 tten6sem t4tentb tten3te t4tentf t4tents tten3z t2teo t3t4ere tt2erg tte4rik ttermas7s tter3nÃĪ tte2ro tt2erÃķ tt4es tte4s3a tte4s3ÃĪ tte4s1o t3tess ttest4r t4teuf tt2hÃĪu tt1hi t2t1ho t2ti4d t2t3igi t2tins tt2int t2tiso t4t5la t3to. t2torg t3tos ttras3s t2trou tt3rÞ1 ttschi4 tts1eh tt2sen tts1p tt4s3tÃĪt tt4s3tem tt4ster tt3s2z ttu2 ttu3b t2tuc tt1uf t4tunt t2tu4s ttÞ2 tt3z2 3tua tu4ale tu1alm tu1alv tu3ant tub2 tuba3b 1tuc tu2chi tu1cho tudie4n3 3tue tu3en tu2ere 2tuf tuf2e tu3fen t3u2fer 3tuff tuf4fel tu2gan 3tuge 2tuh tuh4ler tu1ist t3u2kr tul2i 1tum tum2b5l 4t3umf 2t3umg 2t1umh 2t3umk 2tuml 3t2umo 2tump 2t3umr 4t3umsat 2t1umsc tum2si tum2so 2t3umt 2t1umw t3umz 1tun. 2t1una 2t1und tund2e 1tune tun2en 2t3unf t3unga 2tunif 2tu2nio 2tuniv 2t1unm 3tunn t1u2no t3uns 1tuns. 2t3unt 2t1unv 2t1up. t1upg tu2r1ag tu2ran turan4l tu2ras tu2rau tu2rÃĪ tur1c tu2r1e2b tu2rei tur3eis tu4rene tu2r1er tu4res tu2re2t tu2r3e2v tur3f4 tur3g2 tur1in1 tur4mun 1turn tu2r3o tur3s2 tu4ru tu2sa tu4schl tu2se tu2so tu3t2a tuto5 tuto3re 2tÞb tÞ3ber. 1tÞch tÞck2s 1tÞf 2tÞh 1tÞr. tÞr1c 1tÞre 1tÞrg 1tÞrs 1tÞrw 2tÞrz 1tÞtc 1tÞte 2tÞtz 4t1v2 t3vo tvoran4 4t3w4 t5wa2 twÃĪ4 twegs2 twi4e t4wist 1ty 3ty. 2t1ya 3typ ty2p1a 3tys 2t1z t2za2 tz1ag tz3ar tz1au t2z1ÃĪ t3zÃĪh tz1ec t2z1e2d tz1ehr t2z1eie t4z1eis tze2m tz1emi tze4n1 tz2ene tzen3ta t4zentg t4zentl t4zents tzer6gre tz1erw tz2er3z tz3erzi tzes1 tz1e2t tz1i2d tzi4m tz1imi tz1int tz1inv t2z3om t2zop tz2th tz2tin tzu2gu t2zuni tzwan4d3 tz1wÃĪ tz1wi t3zwie tz1wu 2ua u3a2b u1a2c ua2dan uad4r u1a2g u1ah u1al. u1a2l1a u1a2l1ÃĪ u1alb u1ald u3aleb u3a4lent u3aler2 ua4lerg ual3erk u3a2let u1alf u1alg u1alh u3a2lid ual3l ualle2 u1aln ua2l1o2 u1alp u1alr u1als u1al3t4 ua2lu u1alw u1alz u1am uan2a u1ans u3ar. uara2b u1ars uar4t3an ua3s2a ua2th uat2i uat2o u3au uau2s u1ay u1ÃĪm u1ÃĪn uÃĪs4 u1ÃĪu 2u1b u2barb ubb4l ube2be ube2e u2b1ehe ub1ein u2b1e2m ube4n1a uben3o ub2er u4b3erde ubert4 ub4es ub1eul u3bit ub2l ub3lÃĪu ub3lic ub3lu ub4lut u2bob u2bop u2boz u2b3rit ub4rÞ ub2san ubsau2 ub6s3che ub2s1o ub2sp ubst2 ub4sz ub3t2h ubu3s 2uc uc1c uch1a u1cha. uch1ÃĪ u1che uch1ec u2ched uch1ei ucherin8t ucherma8s u1chi uch3im uch1in uch3l uch3m uchma6ss uch3n uch1op u2ch3r uch4sel uch2so uch2sp uchst2 uch2ta uch3tan uch6t5erf uch6t5ert u1chu u2chum uch3Þ uch1w u1ci uck3elf uck2er ucker8geb uck3i uck4sti uck3t u1cl 2u1d u3d4a uda3d ud2e ude3i4 udein7 udel3se uden1 uden3e udert4 udi3en uditi4 u3d2ob u2don ud3ra u3dru 4u1e ueb4l ue1ch u2ed ue2en4 u2eg u2eh ue2ke u2ela ue2lek ueli4 uel2la uel2lÃĪ u3eln ue2mi uen1 u3en. ue4n3a2 ue2nÃĪ u3end uene2 ue2neb ue2ner uen4gag uenge2 uenge4m uengene7 uenge4s uen2gl u3e2ni uenk4 ue2no ue2nu uen6zene uen2zu u2ep ue2r3a2 ue2r1ÃĪ uerb2 uer6baut uer3d2 uere2 ue2rec u5ereinn uer3eis uer3ela u3eremp u3e4r3ent ue3r4erb u3ererf ue4rer4g uerer4h uerer4k uerer4m ue6rersc uerer6sp ue6rerst uer3esk ue2ret u3erex uer3g2 uer4geb u3erh ueri2d ue2r1i4m u3erin4t u3erl. uerma6s u3ern uer4nan uer4nar uer4ne ue2r3o4 uer2Ãķ uer3r u3errÞ uer3sc uerst6 uer3t2 u3eruh u3erum u3erunf u3erunt uer3z2 ue4s ue5se ue5sp ue2ta ue4tek ue2tik uety2 u2ev ue2x1 uf1ab u3fac u3fah u3fal ufall4 ufa2n uf3ane u2f3a2r ufa2t uf1au u2f1ÃĪn u2f1ÃĪ6s u2f1ÃĪ2ß u2f1ei ufel4s3a u2f1em 4ufen u3fen. u2fent u2ferf u2f1erh u4ferla u4ferle u4ferne u2f1eß u2f1et 2uff uf3fe uffel2 uff4l uf2fro u2f1id u2fim u2f1ins uf3l u2fob ufo2r uf1ori uf3r uf5sÃĪ uf3sc uf2spo uf4stab uf4ster 2uft ufta2b uft1eb uf3ten uft3erd uft3er4g ufter4l uf3ti uf4tin uft3s2 u2fum 2u1g ug2abe u4gabte ug1a2d ug1ak u2gana u2ganb ugang4 u2gani u2gans u2gant ug1ap u2g1ar ug1au ug3d2 u3ge. u2g1ec ug1e2i u2geig u2gein uge4lob ug1emi ugene2 ugenma3 ugenmas6 u2g1erf u2g1erl u2gerr u2gerv uges2 u3ges. u2g1esk ug2et ugg2 ug2gl ug5g4t ug3hu u2g1i2d u2gim ug1in u2g1l u4glÃĪ u6gleitb u6gleitu u4glic u4glis ug3liz u4g3lo u4glu u4g3n u2gob ug3oc u3gon ug1op ug1o2r u3gos u2gÃķ u2g3rÃĪ u2greg u4g3reis u2gres u2g3rie ug3ro ugro3s u2grou ug3rÞs ugsma3 ugsmas4 ug6spe ugs4por ug3stÃĪ ugs1te ug4stur u2gum ugu6ster u2gÞ u1h uh2a 2u3he uhe3a uhe1e2 2uhi 2uhl uh1la uh2lar uh1lÃĪ uh4l3ent uhl3erb uh2li uhl2Ãķ 2uhm uhme4 uhr1a uhrei4s uh2r3er5 2uh3ri uh4rin uh2r3o uh2ru uh4rÞ uhs4 uh3t2 u2hu 2uhÞ uh1w 2ui ui2a ui1ch ui2che u1idd u1ie ui1em u3ig u4ige uil4les u1im u3in. uin3n u3isch. u3ischs uis2e uisi4n ui2st ui3sta uit3s u1j uji3 uk2a uk1ÃĪh u3kÃĪu u1k2e uke2n1 u1ki u1k2l ukle1 u1k4n u2k1ob uko2m1 ukom3a uk2Ãķ u1k4r uk2ta uk2t1el uk2t1er uk2tin uk4t3o4ri uk2t3r ukts4 uk2tum u1ku uku2s uk2Þ u1l ul1am ulan2e ul2ar ula2sc ul1ÃĪm ulb4l ul4dan ul2dr uld2se 2ule u2l1el ul1emb ule4n ul1er2h ule4s1t ule2t ul1eta 2ulf4 ulg4 2uli ul1id uli2k ul1ins uli1p ul3ka ul2kn ulla2g ull1au ul2lÃĪ ul3len ul3l2i ulli2n ul2lo ul2lÃķ2 ull3s2 ulm2e ulni2 ulo2i u2l1op u2l1or ulp1h ul2pha ul2sa ul4sam ul2s1ec ul2sei ul2ser ul2sum 2ult2a ul3tan ult3ar ul2tau ulter4m ul2tri ult3s u2lÞ ul2vr ulz2w 2uma. u2maa u2mab u2m1ad u2m1a2k um1all um1ang um1anz u2m1ap um1ar u2marc u2marm u2mart u2matl u2matm um1aus u2maut u2m1ÃĪh 1umd2 u3me. u2m1ef u2m1ein ume2n1e um5engel umer2a u2m1erf um1erg u3merk u2m1erl um1erw ume4s 1umf 4umfi 1umg um1ind um1inh um1ir umi2t um1ite 1umk 1uml umm4a 2umme um4mess um3mi um1ob u3mol um3ot ump2fa ump4fin umpf4li um2pho 1umr um4sam um4s3an 1umsat um2s1er um2sim um4sk um2s1pe um4stem um2sum um3t2 u2mum u2m1u2r 1umz un1 2un. 2una. 1unab 3unabh un2a3br un2ag un2al u3n2am u2n3an u2nap u2narb 2un2as un3at unau2s un2ÃĪr 2und. un2da unda2b un2dÃĪn 1undd 2unde un3de. underer6 und3erf und3erÃķ underten8 under8tend und3erz un2dex 1undf 2undg un2did un2dim 1undn undo2b un2dop un2dor 2un2d3r 4unds. 2undsc und3sp un2d1um undÞ4 1undv 1undz u3ne2 un3eid un3ein un2emi une4n1 unen2t une3re une3ri u4nerk u4n3erz. un2es2 unf2 un3fa unft2s un2gab un2gam un2gat 3ungena unger4e 1unget 1ungew 1ungl un2glu un2go un2gr ung3ri ung4s ungs3tr ungstra8s7 u3nic un2id un3ide 4unie 3u2nif uni3k4 un2im 1unio un2ir un3iro un3isl u3n2it 1u2niv 2unk un2k1a2 un3ker un2k1es un2ket un2kne un2ko2p un2kro unk3s2 unk4tit unk2tr unlÃķ2 un4n1ad unn2e unne4n u2nob uno4r un2os 1unr uns2 2uns. unsch5el 1unsi un3sk un4ski un3sp uns4t unsta4g unst1r 2unsy 2unsz 1unt un3ta un3te unte4ri 2unti un3tr unt3s 2untu 3unty 2u2nu u3nuc u1nÞ unvol2 unvoll3 1unw 2unwÃĪ u2ny 2unz un3z2a unz2e 2uo u1o2b u3of u1op u1or u3or. uo2r3a uor3c u3oret uo2ris u3ors u1os. uote2 u1ox u1Ãķ2d u1Ãķk u1pa 3upd u1pe2 uper1 uperer4 up2fa upfe2 u1pfl u1p2fu u3p4i up4lu u3po 2upp up2pl u1pr upra3 u2p3ras up4t3a2 upten1 up4tene upt3erf upt3erg upt3erk upt3ers upt1o u1q 4ur. u1ra u2rab u3raba ura2be u2r1akt u2ral2t u2r1am ura4na u3rand uran6fÃĪn ur1ang uran4ge ur2anh uran5s ur1anz ur3ap u2r3ar ura4ri u3rasc ur1a4sp ura4str ur4a3te u2r1att ur1au 2u1rÃĪ ur1ÃĪl ur1ÃĪ2m ur1ÃĪn ur3b2a 2urc urch1 urchas4 urcht3e ur3d2a ur3d2i ure1e ur1eff ur1eig u2rele ure2n ure4na u4ren4se u4rentn u2r1ep urer3h urer3k ur2ert u2rerw ur1eta ur2e3th ure3u 2urf ur2f3l ur2fro urf4spr urf3t ur6gense urg3inn urg1l ur2gla ur2gri uri2c ur1ide uri3en u2r1ind urin6sek urin8stin u2ri2so 2urli ur4matt ur2m1au urm2ei ur4mern urmet1 ur2mum ur2mun ur3n2e 2u1ro urob2l ur1off uroh2 uros4 urost2 2u1rÃķ ur3p4 2urr ur3re ur2rh 3ursac ur2san ursau4 ur2s1er ur2s1of ur2spa ur2sun urt2 2urta ur4tai urt3ein ur2tro urts2c urts1t u3ru ur2z1a ur2zÃĪ ur2z1ec ur2zep ur2zi ur2z1op urzt4 ur2z1w 2us us3a2b usa2gi u4s1amb u4samt u2sang us2ann us3ark us5art usa4s us1ast us3ate u1sÃĪ u2sÃĪh u2s1ÃĪs u2sce u4schab u4schak u3sche. u4schef usch5eic u4sch3eu u3schi usch3mÞ u3schu usch5wer u3se. u3s2e3b u2s1ec use2ei u2s1ei u4sen4se u4sentl u3sep use4rec u2s1erl u2serp us1erw u2s1ese u2sex u2sid usi3er. usi5ers. u3sig usi4kat us1inn us3kl u4sko usmas2 usma5sse u1so us3oc us1oh u3sol u2sop us1orc us1ou u1sÃķ u1sp u2spac us3part u2s1pas u3spec u3spek u2sph us1pic u2spo us2por u2spu usrich7 us2s3ad us2s3eb usse4g u4s3sel us2se4n us5sende us6seni us2sep us2ser us3ser. uss3erf usser4z us2sez u3s2sig uss3k us2sof us2sum u2stab u3stad u3stal us2ten us4ter ust3erl u3stis u2s1tor u2s3trÃĪ u4strit us2tum u2s1tur u1su u2sumd u2sumg u2sumz 3usus 2uß u2ß1u 2u1t 4ut. u3ta. u3taf u2t1alt ut1a2m ut2ans u2t1ap u2t1ar u2taut ut1ÃĪh u2tÃĪr ut3c u3te. u4t1e2d ut1ei. ut1eie ut1ein ut1ela ute2n1 uten2a u2tent ute4ral ute5r4er ute6ring uter3k ute4ros u3t2es ut2et u2t2ev u2t1ex utfi2 ut3hal ut3hei ut1hel u2t1hi u2t1ho u2thu u2t1id u4tigel uti2vi utli4n utmas2 utma5sse u3to. uto3c u5to3m uto1p uto3pa u2tops utor2a u2tord uto2re uto4rin 4utou u2tÃķl 4utr ut3rea u2trou ut3rÞ utsau2 ut2sÃĪu ut4schl ut4schm ut4scho ut4schÃķ ut3ser ut3s2k ut1s2p ut3sta ut3sto ut3tan ut3t4l utt1s2 utu2b u2tum utu4n u2t1une utu4re utu3ro utu5ru u4tz utze2 ut2zeh utz3eng utz2er ut2zet ut2z1in ut2zis ut2zÃķ ut2z1w 2u1u4 uum1 uum3a2 uume2 uungsma5 uungsmas8 u1Þ4 u1v4 u2ve. uve3rÃĪ u1w 2u1x ux2e ux2o ux3oe uxt4 u1y u2yo 2u1z uze2 u2z1ec u2z1ene uz2er uzo2f uz3ot uz1we uz3z2 1Þb Þb1ÃĪ 2Þbc 2Þbd Þbe2 Þbe3le Þbe4na Þbe3ne Þber1 Þberas4 Þ4bet Þb3l Þb5r 2Þc Þ1che Þch3l Þch4s1c Þcht4e Þcke4n Þck1er Þck3eri Þcker6ke Þ4d3a4 Þde2l Þden2g Þ3d2ens Þd3o4 ÞdÃķ4 Þd3r Þd3s2 Þd3t4 Þdu2 Þdwe4 Þe2 Þeb3 Þ1ei Þ4f1a Þ2f1ÃĪ Þ2f1ei Þ2fent Þfer2 Þ2f1erg Þf2fl Þ2f1i Þf3l Þ2fo Þf3ten Þ2fum Þ1g Þg2e Þge2l1a2 Þge2lÃĪ Þge4lec Þge6lei6s Þge2lo Þgen3s Þ2g3l Þ2gn Þg3s Þh3a2 Þ1he Þ2h1ei Þ2h3e4m Þ3hem. Þ2h1eng Þ2h1ent Þ2h1erf Þ2h1er2k Þ2h1er2z Þ2hex Þh1i4 Þh1lÃĪ Þh2lel Þhl2er Þh2lÃķ Þhl4sk Þhl4sta Þhl4sti Þh3mo Þh3ne Þh1o2 Þh3r2e Þhr3ei. Þhre2n1 Þh1ro Þhr3ta Þhs2 Þh3sp Þh3stu Þh3t Þht2a Þht4r Þ1hu Þh1w Þ1k2 Þl1a Þl2c Þ3l2e Þ4l3ef Þle2r3a2 Þl2la4 Þll1ad Þll1au Þl2lei Þll2er Þl4leu Þl2lic Þl2lid Þl2li2n Þl2lo Þl2lÃķ Þlls2 Þ2lÃķ Þ1lu Þ2ma Þ2ment Þme2ra Þ2m1id Þ2m1in Þ2m1u 2Þn Þ4n3a Þn2da Þn2dr Þ2n1erd Þnf1 Þnf3li Þn2g3l Þngs2 Þnster3 Þn2za Þn2z1i Þnzu2 Þn2zun Þn2zw Þ1pe Þpf3l Þ1pi Þp2pl 2Þr Þr1a Þ2r1ei Þ2r1e2l Þr2f1er Þr2fl Þr2fr Þr4g3en4g Þrge4ra Þrk2e Þ3r2o3 Þrom2 Þror2 Þr4ster Þrte2l1 Þrt2h Þr2z1in Þr2zÃķ Þr2z1w Þs2a Þ2schl Þ3s2e Þse1e2 Þse3l2 Þse4n Þse3r4 Þ1sp Þs4s3a Þs2s1c Þss2e Þ4s3sel Þs4s3o Þs4st Þs2su Þs4t Þ2st3a Þ4stei Þste2n Þ2str Þ1su Þ1ß 2Þt Þ1ta Þ2t1al Þ1te Þte3m Þte4n Þten3s Þtent4 Þten3z2 Þte2ra Þte2r1e Þterich6 Þter3n Þ2t1h Þ1ti Þt3r Þt2se Þt2s1t Þtte4n Þt2tr Þ1tu Þt3zen Þt2zw Þ1v Þ1z 3va. 2v1ab vab4r va1c va1f4 va3g vag2a va4gh va2la 2valu v2an. 2vanb 2vang v2ans 2varb v1arm vas2 2v1ass va2s3to v4at va2t1a4 va4tag va2tei va4t3eng vates2 va2t3h va4tid vati3k2 va4tim va4t1in vati8ons. va4tord va4torg va2t3r vat3s2 va2t1u vat3z 2v1au vÃĪ1 2v1b 2v1c 2v1d2 1ve2 ve3an ve3ar veau3 ve3b4 ve3c ve3d ve3fa ve3g ve3h 2veig v2eil 2vein veit2 veits1 ve3la 2velan vel2ar ve4l1au v1ele ve3lei ve3l2i ve3lo vel2o1p ve3ma ve3me 2v1emp 2ve3mu ve3nal ve4nas ven2c ve3ne ve3ni ve4nin ve3nÃķ ven5st ven4t3ag vent4sk ve3nÞ 2veo ve3of ve4pi ver1 ver3a ve3rad 2veral ve3rand ve3r4ane vera4s ver6bart ver3b2l ver3d2 vere2 verf4 ver3g4 vergas6 verga7sse ve3ri ve4rin ver3k vermas8sen vern2 ver4sep ver3sta vert4 ver5te ver3u4 ve3rus ve3s 2vesc 2vese ve4sh ve4s1p ves4t ve3ta vete1 vete3r ve3ti ve3tr ve3t2s 2veÞ ve3v ve3w 2v1f4 2v1g 2v1h vi1an vi3ar vi4a3t vi2ÃĪ vi3de 3vie vie2h1a vi2el viela2 viele2 vi2er vie4rec vie2w1 vig2 2vii v2il vi2l1a vi2lÃĪ vi4l1e2h vi2lei viler4 vi4lers vi2l1in vi2ma2 vi4na vin3d ving3 vings2 v1ins vi3sa vise4 vi3s2i vi3s2o vi2sp vis2u viv2 viz2 vize5 2v1k 2v1l4 v3le v2lie 2v1m vm2e 2v1n2 1vo 2v1ob vo2be vob4l voge2l1 vo2gu vol2a vol4la voll3ar voll7auf. vollen6 voll5end voller6t 2v1op vo2r1 vo4r3a voran8schl vor3g vo3ri vo4rie vo5rig vorm2 vormen4 vor3o vorÃķ4 vort4 vot2a voy1 2v1p vr2 v1ra v2ree 3v2ri 2v1s2 v3sz 2v1t vue3 vu2enu vu2et 2vumf 2vumg 2vumk v1Þ 2v1v 2v1w 2v1z w2a 1waa wab2bl wa3che wach8stub wach4t4r 1wack waffe2 waffel3 1wag wa5ge wage4n wa2g3n wa3go 1wah wahl5ent wah4ler wah2l1i 1wal wa2lar 2walb wal4d3a wal4din wal2dr wa2les wa3li wal4li4n wal2m1 wals2 walt1a wal6tere wal6terl wal2to wal4tur wa3na wan2d1a2 wan2dr w3anf 2wang wan3g2e wang4s 1wann wan6z5en6d wan4zer wa2p 1war2e ware1i wa5ren 1warn war4ni wart4e war2th war2za 1was wa3sa was2c wa4scha wa3sche wa3schi wa4sch3l wa4schw wa3sh wass4e2 wa3su w2ÃĪ 1wÃĪh 1wÃĪl wÃĪm3 2wÃĪng 1wÃĪs3 wÃĪ5sc wÃĪ4ss wÃĪss4e 2w3ÃĪu3 2w1b2 wbu2 2w1c 2w1d we2a we2b1a webe1i we2b3l we2bo we2b3r we2e2 weed3 we2fl 1weg we2g1a we4g1ei weg5ersc we4g3l we4gn we2g1o2 we4g3r weg1s weg3s2a 1weh weh4r3er4 wei2bl weib4r 2weie weifel6d wei4fre wei2gr wei3k4 1weil weinsau6 wei3sc wei2t1r weit1s wei5ze welle4 wel6schl wel6schr wel2t1 welt3a2 welte4 wel6t5en6d wel4th welt3i welt3r wem2ma2 wen3a2 wen2gl we3n2i wen2ka wen4kla wen4k3ri we2r3a2 wer5be werbe3i wer2bl werb2s 1werbu wer3d2 5werdens 1werdu werer2 wer2fl 2werg wer2ga wer6gels wer2g3o wer2gr werin2 we3rins we2ri4o 1werk. wer4k1a 1werke wer2ki wer2k3l wer2kn wer2k3o wer4k3re wer2ku we2rÃķ wer4sta wer2ta wer2tÃĪ wert3ei wer6teig wer6t5erm wer2th wer4tin wer2t1o2 wer4tre wer4t3ri wer4tum 1we3s2e wesen4s3 we2sp wes4t we4st1a we4st3ei we5sten. we6sten6d we5stens we4steu we4sti we2st1o4 we2st3r we4stu 1wet 2wets wett3s 2w1ey 2w1f 2w1g whi2 w3ho w2i wicht4s 1wid wi2e 2wieb 1wied wie3l2 wie3n2e wie4st wik2 1wild wim2ma wim6ment wim4m3u win2a win4d3ec win3del win6d5erz 1win2d5r 4wing win2g3r win2kl win8n7er8sc win2no win4num win3s wint2 1wi4r wire3 wisch3l wi3s2e wi2sp 1wiss wiss4z wi3st wi3th 1witz. 1witzl wiz2 2w1k 2w1l 2w1m 2wn wns2a wn3sh 1wo1c wo2cha woch2e4 1woh woh4lei woh4na 1wolf wolf2s wol4la wol2lÃĪ wol4ler wor3a wor3d wo4r3i worn2 wort1a wor4tel wor6terh wor2t3r worts2 wo4r3u wor3Þ wot2 1wÃķc wÃķl2fo wÃķrt2h 2w1p w2r w3re w3ro 2w1s ws2e w3s2h w3s2k w4s1u 2w1t wti2 w2u 1wuc wuch4sc wuch4st w3u2f wuls2 wul3se wund4e wung3r wung5s2 wun2s wunsch5l 4wur. wur2fa wur2f1o wur2fr wurs4 1wurst wus4 1wu2t1 1wÞh 1wÞrf 1wÞrst wÞs4 2w1w 2w1z x1a 1xa. 2xa2b 1x2ac 1x2ad 1xae xa1fl 1x2a3g2 2xal xal2l xa2m xand4 1xane 1xani x2an3t2 x2anz xa2r 1x2as xau3 xaus2 xa2z 2x1b4 x1ce x1ch x1cl 4x1d xda2 1xe 3xe. 2x1e4g 2xek xe2l 3xel. x1ele xe3lei x1em 3x2em. 2xemp x2ems x2en 3xen. xen3s2 3x2er. x2ere 2x1erl xer2la x2ern xers2 x2ers. 3xes 2x1eu 2x1ex 2x1f 2x1g 2x1h xi1c xich2 2xid xi2dan xide2 xi2dei xi2d3em x1i2do 3x2ie xie3l xi3g xi2ler xili3a xi2lo xi2l1u xim2 xin3s2 x2is xi2sa xi2s1e xi2sp xis5s2 xi3s2tÃĪ xi2su 3xit x1i4tu xive4 x1j 4x1k2 xkal2 4x2l2 x3lÃĪ x3le 2x1m 2x1n 2xod 2xoe4 x1o2r xos2 2x1Ãķ2 4x1p xpor6ter xpor4t3r x1q x1r 2x3s2 4x1t xt1a x3ta. xta2b3 x3tan xt2ant x3tas x2t1ÃĪ x3tÃĪt xtblock5 x2t1e2d xt1ein x2t1el x2tent x2t1er2f x2t1ev xtfi2 x2t1h x2t1id xti2la x2til2l x2t1o4 xtra3b4 x2t3ran x2trau xt3rec xt3s2 x2t1um x2t1un 1xu xu1a xu2n 2xunt xu2s3 xusa2 xuss2 2xv 2x1w 3xy. x1z 2y1ab 1ya2c y2ach ya1h y1al. yan2g y1ank ya1q ya3ra y1ÃĪt y1b ybe2r y1c y2chi y3chis ych3n y1d yd4r ydri2 ydrid3 ydro3 y1e y2ec ye2d y2ef y2el2 yen4n yera2 y2ere yer2n1 y2e2s y4es. ye3s2p ye4st ye2th y1f2 y1g ygi2 ygie3 yg2l y1h y3ho yhr2 2y1i4 y1j y1k2 yke3n yk3s yl1a2 yl2a3g y1l2ak yla4l y2lam yl3ane y1lant yl4ante yl4anti yl2as ylau2 yl3c yle4 y2le. yl1em y2l1es y2l1et yli4n yl4lo2s yl2lÃķ2 ylo1i2 yloid3 yloni1 yl2op yl1ora ym2a ym4an ym4ar ym4as ym4e ymp2 ym2pha ympi1e ynÃĪ4r yn2eu ynk2 y2n1o2 yn2oz yn3t2 yob2 y2od yoga3 yom2 yon2a y1ont y1o2pe y2ost y1ou 2y1p ypa2b3 ypa2n yp2e2 ype4r3o2 y2pf y2p1i2d y2p1in y2plo y3po3 y4p3s yp3th ypu2 y2p1um y1q y1r y3r2e y3ri yri1e yri3en y3ro yro4ste yrr2 2y1s ys2an ysch4 ys2e1 ysein2 ys1er y4s3l ysme3 ys2o ys2pi yst2e yst2h ys2tra y4stro y3s2ty ysu2 y3s2z y1t y2te. y2tes yt2h ythe1 y3to y4t3r yu2r yur2e3 y1v y1w y1y y1z2 yzer2i 2z1a2b zab3l 2z1ach za1cha za1chÃĪ zach2s 2z1a2d 2z1af za3gr 3z2ah zah3len zah4ner4 z1ak 4z3akk 2z1al 4z3ald 3zali 2z1a2m z1a2n 4z3a4n4a 2z3anb za3ne 2z3anf 2z3angs 3z2ank zan2ka z3anl 2z3anr zanti1 za4pf z1aq z1ar 3zar. 2zarb za3re 2zarm 3z2aro z2arr zar2t1r 2z1as za3st4 2z1aß z3at zat2e za2to 3zaub 2z1au2f 2z3aug 3zaun z3aur 2z1aut 2z1ÃĪc z2ÃĪh 3zÃĪhn 2z1ÃĪm z1ÃĪn z1ÃĪp z1ÃĪr 2z1ÃĪus 2zÃĪuß 4z3b4 zber2e zbÞ1b zbÞbe3 2z3c 2z3d2 zdan2 zdÃĪ1 3ze. 2zea zeau3 zeaus4 2z1e2ben 2z1echo ze1e2 zeeu3 2z1eff z1e2ga zehe4 zehen1 zeh2l ze3ho zei1f4 zeik4 zeil2 zei3la zeile4 2z1ein ze3in. zeinbus6 z2e1ind zei4ne 4z3einh ze3inse ze2i3s2 3zeit zei2t1a zei4t3er zei2to zei2tr zeit3ri zek4 ze2l1a zela2d zel3a2n zelau2 ze2l1ÃĪ zel3d4 4ze2lek 4zelem ze2len ze2l1er ze2l1in 2z1e2lit zel3la zel4lab zel4l3ac zel4lar zel2lÃĪ zel4leh zel6lein zel6ler6t zeller6z zelli4n zel4lum zelm4 ze2l1o zels2 zel3sa zel3sz zel2ti zelu2 zembe2 2z1emp 5zen. ze4n1ac ze4nas zen3au ze2nÃĪ ze3n2em zenen1 4zenge. z4engl 2zengp 2zeni ze2nid zenk2 zen3n ze2n3o ze4not 4zen4sem zen4ser zens2p z2entn z1ents 2zentw 2zentz ze2nu zen4z3er zen2zw zeo4r 3z2er. zer3a ze1ral ze2rat z2ere ze5rek zer2em z2erfe z3erfÞl z2erga 2z1ergÃĪ 4z3ergeb z4erges z4ergl zer4gon 4zergu 3z2erhe 2z3erhÃķ ze3ri zerin6te z2erko 3zerl. zer4lau zer4le. 4zerleb zer4len 2zerlÃķ 3z2ern zer4nan zer4n3e4b zer4nei 2z1erÃķ zer2Ãķf 2z1erq 4z3erreg z2ers. 2z1er4sa zerta2 zer4t3ag zert4an zer4tau zer6tere zer6terl zer4tin zer2to 6z5ertrag zer6trau z1erwe 4zerwei z1erz zer2ze ze2s 3z2es. ze3sc zes1e zes3er ze4s3po zes2sa zessen4 zes6s5end zes4ser4 zes2sp ze3sta zes2th ze3str ze2ß1 z2et. 2zeta 2ze2th ze2tr 2zetts zeu4gem zeu2g3r 2z1eul ze1ur 2z1e2x1 2z3f4 zfÃĪs3 zfeue2 2z3g4 zgang5 zger2a zger2s1 2z1h2 z2hen zhir3 3zi. zial5l zi3alo zi2ar zich2o zi2dei zid3r zie4ler zie2l1i zi1erh zi1es zi3ess 3zig 3z2il zil2e z2imm 2zimp zim2t3 2z1ind zin2e zin3ei 2z1inf z1inh zi4n3in zin1it 2z1inj zin4na zin4o zin2sa zin4ser 4zinsuf zi2o3 zirk2 zirk6s z1iso zi2sp zisse4 zis4t zistras6 zi3s2z zite4 zithe2 zi2t1o2 zit2u ziv2 2z1j 4z1k4 2z1l2 z3ly 2z3m2 zmas6sen zme2e 2z3n2 z3oas 2z1ob 2z1of zo2gl zog4s 2z1oh zolla2 zol3len zoller4 zol2li2 zonal2 zon3au zon5s4 zon4t3er zo2o 2z1ope 2z1o2r zo3re 3z2orn zor4ne 2z1osz 2z1ou 2z1o2z 2zÃķ2f 2z1Ãķk z1Ãķl 2zÃķl. 3z2Ãķll 2zÃķls 2zÃķn 2z3p4 2z1q 2z3r2 2z1s2 z3sa zsau2 z3sh z3sk zspor2 4zst z3str z3sz 2z1t zta2n zt3ane z2t1au ztein1 zt3eins zt2el zte3ma z2t1ent z2t1erz z3tes zte3str zt2et zt1he z3them z3t2her zt1hi zt3ho z3thr z3thy zt3rec zt3ric zt3s zu3a zu1ÃĪ2 zub4 zubus2 3zuc zuch2e zucht3r zud4 zudi4 zu2el zu3e2r1 zue2t zu3f4 zug2em zu4gent zug2i zu3gl zu4gla zu4glÃķ zu2go zug4ste 2z1uhr zu3hu zu1i2 zu3k zul2 2z1um. zum2a 2z1umb zumen2 2zumf 2zumg zum2i 2zumk 2zuml 2zumr 2z1ums zum2u 2zunab zun2e 2z1unem 4zunget 2zungl z1uni 2zu2nio 2zuniv 2zunr 2z1uns 2zunt zuo2 zup2fi zu3pl zu3r2a 2z1urk 2z1url 2z1urn 2z1urs 2z1urt zu3s2 zusch4 zu3t2 zut4r zut4u zut3z zuz2 2zÞ4b 3zÞc zÞr1c 2z1v zw2 z1wac 2zwag 4zwah 4zwap z1war 2zwa2s 2zwÃĪs 2z1wed 2zweg 2zweh z2weig 2zweil zweiter6 2z1wel 2z1wen 2z1wer 2z1wes z2wic zwi4e 3zwing 2zwirt z2wisc 2zwiss z2wit 2z1wo z1wÃķr z1wur 2z1wÞ zy1an. zy2le 2z1z z3z2a zza3b4 z4z3al zz4at zze3s z2z1id z2z1in1 zz2Ãķ zzug4s",
+ ["data"]=".ab1a .ab3l .abo2 .ab3ol .ab1or .ack2 .ag2a .ag4r .ag2u .ai2s .akt2a .al2e .al3k .al5l4en .al4tei .alt3s .ampe4 .amt4s1 .an3d2 .anden6k .and4ri .ang2 .an3gli .ang4s2 .angst3 .an3s2 .an4si. .an4tag .an3th .an3z2 .aos4 .ap5p6le. .aps2 .ari1e .ark2a .ar4m3ac .ar2sc .ar4t3ei .arter4 .ar6t5erh .as6sest .as2t .ata1 .at4h .au3d .au4f3 .aufs2 .au2s1 .ausch3 .au6stes .ax2 .ÃĪm3 .ÃĪr6schl .ÃĪt2s .ÃĪu3 .be3erb .be3r2a .be3r2e .berg3a .ber6gab .ber6g5e6b .ber4gl .ber4g3r .boge2 .bo4s3k .bu4ser .bus3se .bu7s8ser. .ch2 .chi3er .dab4 .da2r1 .da4rin .dar2m1 .da4te. .da4tes .de2al .de1i .de4in. .de8ments .de1o2 .de3r4en .derma3 .dermas6 .de3sk .dien2 .do2mo .do1pe .dorf1 .dÞ1b .ebe2r1 .ehe1i .ei4ds .ei3e2 .ei4na .einen6g .ei2sp .ei4s1t .ei2tr .eke2 .el2a .el2bi .em3m2 .en1 .en4d3er .en5der. .en2d3r .en2gl .enn2 .en2t3 .epi1 .ep3p .er8brecht .er2bu .er2da .er4dan .er4dar .er4dei .erden6k .er4der .er1e .ere3c .erf4 .er1i .ers2 .er8stein .erster6 .er8sterb .er8stritt. .er8stritten. .er4zen4 .esel4s .es3p .es2st .es2t .est4e .est2h .et2s .eu1 .eu3g4 .eu3t .eve4r .ext4 .fe4i .fer4no .fe4sta .fid2 .fi4le. .fi4len .fi2s .flÃķ8s7se. .flÃķ8s7sen. .flÃķ8sses .fs4 .fu2sc .ga2t .gd2 .geb2l .gel2d1 .ge5nar .ge3n2e .ge3r2a .ge3r2e .ge3s2 .get4 .ge3u .grif8fes .guss1 .haft3s .hal2s .hau2t1 .he2 .he3fe .her3an .he3ri .he6r5inn .hi4n .hin3u .ho4met .ia2 .il3 .im2a .ima4ge .im5m2 .in1 .in3e .in3gl .ink4 .inn2e .inu1 .ioni1 .ire3 .is2a .ka2b5l .ka2i .kamp2 .ka4t3io .ken6num .ker3s .ki4e .kle4i .kopf1 .ks2 .kus2 .le4ar .lich8t7er8s .li2f .li4ve. .lo4g3in .lo3ver .lÃķ4ss .lÃķs3se .lu4str .ma3d .ma3la .mal4e .ma4str .md2 .mel2a .me3no .men8schl .men8schw .men3t4 .mi2t .mi4ti .mm2 .nÃĪs5c .ni2e .nob4 .no2c .no2s .no4th .nul2 .nus2 .ob1a .obe2 .ohr5s .oper4 .or2a .ort2 .orts3e .ort4st .os5t6alg .oste2 .ost5end .osten8de .oste6re .ost3r .ozo4 .Ãķl3l .pa4r1e .par3t4h .pe2c .pe4ste .pf4 .ph2 .poka2 .po4str .ps2 .rabe4 .ra3me .ra4sp .ra4s3s .reb3s2 .re3cha .rein4t .reli1 .reli3e .ri2as .rich5te .ro4a .ro3m4a .rÃķ2s1c .rÃķ4ss .rÃķs3se .runder6 .ru5s6ses .rÞ1b .rÞcker6 .rÞ4ss .sali1 .sami3 .sas2 .sa3sse .sÃĪs4 .sch4 .scho7s8se. .scho7s8ses. .sen3s .ser2u .se2t1 .sha2 .si2te .ski1e .spas4 .spÃĪ5s4 .spiege8lei .st6 .sto4re .stras4 .sucher6 .tan4k3l .ta2to .te2e .te2f .te3no .th4 .ti2a .tid1 .ti2e .ti4me. .ti4mes .ti2s .to4nin .to4pl .to2w .tras3 .tra4ss .tri3e4s .ts2 .tu3ri .uf2e2 .ufer1 .um3 .umo2 .ums2 .un3a2 .un3d .une4 .un3g .uni2t .ur1 .ural4 .ur2i .urin4s .ur3o2m .uro2p .ur3s2 .ut2a .ut3r .Þbe4 .ve5n2e .vi2e .vo4r .wah4l .wa2s .weg5s .welter8e .welter8k .wi4e .wor2 .wort5en6 .xe3 .ya4l .zeit3s .zel4la4 .zelle4 .zel6lei .zi2e .zin4st .zol2 a1ab aa2be aa1c aa2gr 2a1a2n 2a2ar aa2r1a aar3f4 aar3k4 aar5sc aas1t aa2th aa2t3r aat4s1 2a3au a1ÃĪ a1b 2aba ab1auf ab1ÃĪ ab2ÃĪu 1abd ab1eb abe1e ab1eil 4abel abe2la a3beri ab1er2k ab1er2r ab1er2z ab3esse abes2t ab1eß 2abet 2abew 1abf 3abfi 1abg 1abh 2abi ab1ins ab1ir ab1it 1abk ab1l 1a2bla 1a2blÃĪ 2able ab4le. ab3li ab4lo 3a2blÃķ a2blu abma3s 1abn a2bo. ab2of 1a2bon 2abor ab3r a3bra a4brÃĪ 2abrÞ 1abs 2abs. abs2a 2absar ab3s2i ab3s2p abs4t2 2abst. ab3sz 1abtei 2a3bu ab1ur 2abÞ 1abw 2aby 1abz 2aca 2ac1c a1cem 2ach. ach1a a1chal ach3au 2achb 2a1che a2ch1e2c ach1ei a4cherf a4cherk a4cherÃķ a4ch3erw a1chi ach3l ach3m ach3n a1cho a3cho. ach1o2b ach1or ach3Ãķ ach3r ach3s2i ach3su a4cht acht7ersc ach2t1o ach8traum ach8trÃĪume. ach8trÃĪumen. ach6trit a1chu ach1u2f ach3Þ 2achv 2ach1w a1ci ac1in 2ack. ackmu4 ackmus3 ack2se ack3sl ack3sta4 a1cl a3co acon4n 2acu a1ç a1d 2ada. a3d2ab ad2ag adai4 ada2m ad3ama a2d1an 3a4dap a3d2ar3 4adav 1a2dÃĪ ad1c 1add 2ade. ade2al adefi4 a2dein 2aden ade1r2a a2deri 4ades2 ade3sp ades6s 2adf 2adh 4a3di adi3en 5adj 2ado ad2ob 2adp 2adq 2ad3rec ad4res 2ads2 ad3sz ad2t1 adta2 2adu 2a1e1 ae2b a3e2d a3e2i a2ek a3el. a2ela a2ele a2eli a3els ae2o3 a3e2p 3a2er2o ae4sc a2et a2ew ae2x af1a a2fak a2fan a3far af4at a2fau4 2afe a2f1ec a2fent af1erl a2fex af2fei af2f3l af4flu 2afi 2af3l a2fÃķ af3ra af3rÃĪ af3re af3rÃķ af3s2a af2sp 2aft af2t1a af2tei af4t3erl af2t1o af2t3r aft5re af2tur a2f3ur a1g 2aga ag1a2b ag1a2d ag1am ag1ar ag1au ag2di ag2du 2age. age1i age4na age4neb a2gent a4gentu ag2er age4ral 2ages age2sa age4sel age4si age2s3p ages5s ag3esse age6stem ag3gl 3aggr 3a2git 2a2gl ag4la a4glÃķ ag2n a2gna ag4ne. ag4nu a2g3re a2g3ri ag4ro agsa2 ag3sah ag4sam ag3sc ags3p ag6spo ag4sti ag2s1tr 2agt ag2th a2gund 2ah. 2a1ha ah4at 2a1he ahe1in a2h1erh a1h2i ahin3 ahl3a4 ah4l1ei ah4l3erh ah2lÃķ ahl3sz ah4n1a ahner4e ahnt2 1ahor ah1o2s a2h3Ãķ ahr1a ah3re ahre4s3 ah3ri ahrta4 ahr4tri ah2ta aht3h ah2t5r aht1s a1hu ah1w a1hy 2ai ai3a4 aian3 aid4s aids1t ai1e2 aif4 ai1fr ai3g4 a3ik. ai3ke aik4r ai2lo aim2o ain2a a1ind ain4e a1ing ain3sp 3airb ai2sa a3isch. ai3s2e aiss2 ais3sen ais5st ait4 a3iv. a3ivl a3ivs a1j ajekt4o 2ak. 1a2k4ad 2akal 2a3kam 2akar ak4at 1a2kaz 2akb 2akc 2akd 2a1ke a2kef aken2n a2keu 2a1ki 2ak3l ak4li 4ako 2a1kr ak3rau 3akro3 2aks ak3sh 2akta 2aktb ak3te ak4tei 2aktik ak2t3r ak3t4ri 2aktsi 2aktst 2a1ku a2kun 2a3kÞ 1akz a1la 2a5la. al1ab ala3ch2 al1af ala2g al1age a3lal al1am alami5 al3amp al1ana a2l1ang al1ans al1anz a2lar a3lar. a3lare al2arm al3arr ala2s al1asi al1ass 2alat al1au al3aug a1lÃĪ al1ÃĪm alb3ein al4berh al4b3er4w al2b1l alb3li al2boh al2br alb3ru alb3s al2dÃĪ al2dr 2ale ale4a 3a2l1e2b 3a4l1ef a4l1eh a2l1ei a4lein a2l1el alen1 al3ends a2leng a3lentf ale2p al1epo al1erf a2l1erh al3erl 3alerm a2l1ert 3alerz a2l1esk ale4t al1eta al1eth a2l1eu a4leur 3a2lex alf4r 3algi al2gli 1algo 2ali ali4ene al2imb ali4nal al1ins a2linv alk1ar al2kne 1alkoh alk3s2 al2l1ab alla3d al2lan al2l3a4r al6later al2lÃĪn al3lÃĪu al4lec alle4gi al4leh al5lein al3lend all5erfa al3les alle3se al2leu 1allgÃĪ alli5er. alli7ers. al2lob al2lo2c al2lo2k al4lo2s al2lÃķ2 all3Ãķse al2luf allu4s al2lÞ4s al4m3ast 3almb 2alo a2l1o2b 3a2loe alo2ga al1orc a2l1Ãķ al3Ãķf al2Ãķs 3alpe. 1alph al3skl als2to al2sum al3sun al4tak al3tar alt3eig al4t3er3f alt1op al2tÃķ al2tri alt3ric al2tro alt2se alt4stÞ a1lu al2uf a2lum al1umb al1ur 4aly alzer4z al2zw 2am. 2am2a amab4 amad2 ama3g 2amÃĪ am2e 2ame. a2meb 2amel am4e2n1 amer2a am3erf a2meri ame3ru a4mesh a3met a2mew 2amir ami3t2a ami3ti 2aml 2amm. am2ma2c 2ammal amma4n am2mar am2mas amma4sc am2maß am4ma4te am2mÃĪ ammen8ge. am2min am2mit 2amml am4mod 2ammt ammu2 am4mÞ amni1 a2mÃķ amp2fa2 am3pr 2ams am4schl 1amt. am2t1a am2t1ÃĪ am2tel am4t3ern am2tÃķ am2t3r am2tu 2amu 2ana. 2anab ana3c anadi3 a3nak an1alg ana4lin 2anam 2anan 2anas an1ath an4atm an1ÃĪs 1anb 2anbu an3ch 2and. 3an3d2ac an4d3ei ande4sc an2dex an4drau an2d3rÞ and4sas and6spas and6s5paß and2su 2andu and1ur 2ane an3ec a3nee an2ei. an3eif an1e4k 3a4n1erb an1eth 1anf 2anfi anft3s an3f2u 4ang. an2g1ar 3angeb an2g1ei an4g3erf an4g3erl an4gerw an4g3erz 2angf 2angh 2angie ang1l an2gla 2ango ang1r an4g3ra 4angs. ang3sc ang6s3po 1anh 2a3ni an2i3d ani3els ani5ers. 3a4nim a4nins 2anj 2ank. an2k1an 3ankÃĪ an2kei an3kl an4klÃķ an2klu an2k3no ank1r ank3ra ank3rÃĪ ankt4 1anl anma3s2 1anmu 2ann 3an3na ann2ab 3annÃĪ an3n2e ann4sto an1od a3nol a2n1or a3nos 2a1nÃķ 1anr 1an3s2ÃĪ 1ansc ans2en an2seu 2ansk an3skr an3s1pa 1anspr an3s2z 2ant. an2t3a4r 1antÃĄ 1antei 3antenn an3t4he 1anthr 2anto anton4 3antr ant3rin an2tro 1antw 2a1nu anu1s a1nÞ 1anw 2anwet 2anzb 1anzei anze2n 2anzg an2z1i4n 2anzs 1anzÞ 2anzw an2zwa an2zwi 2ao ao1i4 a1op a1or a1os3 ao3t2 a3ot. a1Ãķ a1p 2ap. 2a3pa 2ape a2pef a3pel a2pÃĐ a2pf ap2fa a3pfl a3phÃĪ a2ph3t 2ap3l ap4la ap2n a2pot ap2pf 3appl 2apr 3apri ap2str 2a3pu 2aq 2ar. a1ra a3ra. ar2ab ar3abt ara3d2 a2r3al a3ra3li 2aran a2r1ang a2r1ans a2r1anz a2r3app 2a2rar a2r1au a1rÃĪ 1arb 2arb. 4arba ar2bau ar2bec 2arbek 2arben 4arbi ar2bl 2arbr ar2bre 2arbs2 2arbt 2arbu ar2b3un 1ar1c ar2dro 2are a2rea ar1eff a4reg ar1ehr a2rein 4arem a3ren 4aren. are3r2a ar2erf a2r1erh a2reri are3u ar2ew 2arf ar2fÃĪ arf1r ar2f3ra ar2gl ar2gn ar3g4r 2arh 2a3ri ar2ia ari3e4n ari3erd ari3erg ari5ers. ar1im arin3it a4r1int a4rinw ar2kal ark3amt ar2k1ar ark3aue ar2k3l ar4klag ar2kor ar4k3ri ark3sa ark3she ar2les 2arma ar3m2ÃĪ ar3m2or ar2nan arn2e 2a1ro ar1ob a2r1o2d a2r1of a2r1op a2ror 2arp 2arr ar2r3ad ar2rek arre4n ar2rh arr3he 2arsa ar4schl arse3 ar3s2h 2arsi ar3t2e artel6li6 ar2the artin2 2arto ar4t3ram art3re 2arts 2artuc 2aru ar1uh ar1um a2rÞ 2arv arwa2 2ary ar2zÃĪ 2arze 1arzt ar2z1w as2ad as1ala asas2 asa3sse as3au asau2s1 a2sca a4schec asch3la a2schm a3schu 4a3s2e a4seb as3e2m a5s4es a4sex 2asg 4ash a4s3ha as4hi asin2g 4a5sis asi4st a3skop a4s3l a4sn a1so1 as1o2f a3sol as1or as1p aspek6to a4s2ph as2pi a4spl as2po a1spu as3s2a ass2e as2s3ei as3sel as3ser asserma6 as3s2i as2s1p as4st ass1ti ass1to as5str as5stu 2asta a4stec a4s3tep as2ter a4stese 2astr as4trau a4strÃĪ ast3rÃĪu a2s2t3re a4strol a2stum a3su asu2s a4sw aswa2s 3a2syl aße2 aßen3 2a1t at1ab at2a1f at4ag a2t1akt ata3l a3tam at1apf at1au a2taus a2tÃĪ at1ÃĪn at2c a2teb ate1c ateien4 at1eig a4teli at2en a2tep ate2ru atex3 at2h at3ha athe1 3athl a4thr 4a3ti atingma5 3atm 4atmus ato4man 4ator a2t1ort a2t1Ãķ 4atr atra4t at3rÃĪ at3re at3rom at3rÞ at2sa at4schn at2se at4set at2si ats1p at3ta 3attac at4tak at2ta2l att3ang at4tau at2tÃĪ at4tec at2tei at3t4hÃĪ at2t3rÃĪ att3s at3tu atu2n atz1er at4zerk at4zerw at2zi atz1in at2zo atz3t2 at2z1w a2u 2au. 2au1a2 2aub au2bab aube4n au2bli au2blo 4auc auch3ta au2dr 2aue aue2b au3en. au2ere au5erein auer3Ãķ au2fa auf1an 3aufber 2aufe. 2aufeh auf1er au4ferk auff4 3aufn auft2 2auft. 2aug 4augeh 2auh au3ha au2hu 4au1i au2is 2auj aule2s au3lÞ 2aum au2mal aum2ei au2m1e4r1 aum3eri au2m1o aum3p2 aum3s2 4aun au3n2a aun2e au4nei au2nio au1nu a4unz 2aup2 aup4ter 2au3r2 au2s1ah ausan8ne. au2sau 4ausc au4schm 1ausd 2ausen aus3erp au4s3erw 1ausf 1ausg 1ausl au2so au2spr 1ausr 1auss2 au3sse aus4se. au8ssende aus4ser au2sta 2auste au4stec aus3tie aust2o aus3tri 1ausÞ 1ausz au3ße a4ut au2t1ÃĪu au4ten4g au4t3erh 1auto au2trÃķ 2auts 2auu 2auw 2aux 2auz auz2w 2a1Þ 2a1v a3v4a ava3t4 a3vi a2vr av2s 2a1w awi3 awi1e a1x ax2am ax2e axi2s 2a1ya a1yeu aysi1 ay3t 2a1z a3z2a3 az2i az2o az2u ÃĪ1a ÃĪand4 ÃĪ1b ÃĪ5be ÃĪ2b3l ÃĪb2s ÃĪ1che ÃĪche1e ÃĪchenma5 ÃĪchenmas8 ÃĪ1chi ÃĪch3l ÃĪ2chr ÃĪch2sp ÃĪ1chu ÃĪck2e ÃĪ1d ÃĪ2da ÃĪ2d1ia ÃĪ2dr ÃĪd2s 2ÃĪ1e ÃĪf2e ÃĪfe4n ÃĪf2f3l ÃĪf3l ÃĪf3r ÃĪf4ro ÃĪf2s ÃĪft2 ÃĪft4s ÃĪ1g ÃĪ5ge ÃĪge1i ÃĪge2ra ÃĪ2g3l ÃĪg2n ÃĪ2g3r ÃĪg4ra ÃĪg2s ÃĪg3sc ÃĪg3str 1ÃĪ2gy ÃĪh1a 2ÃĪ3he ÃĪ1hi ÃĪhl1a ÃĪh3l2e ÃĪh4l3e4be 2ÃĪhm ÃĪh3na ÃĪh3ne 1ÃĪhnl 2ÃĪhr ÃĪh3ri 2ÃĪh2s 2ÃĪh3t ÃĪ1hu ÃĪh1w 2ÃĪi ÃĪ1im ÃĪ1is. ÃĪ3isch. ÃĪ1isk ÃĪ1j ÃĪ1k ÃĪ2k3l ÃĪ2k3r ÃĪ1la ÃĪlbe2 ÃĪl2bl ÃĪ5le ÃĪl2l1a ÃĪl2p3 ÃĪl4schl ÃĪ1lu ÃĪmi3en 2ÃĪml ÃĪm2ma4 ÃĪmmas2 ÃĪmoni3e 2ÃĪmp ÃĪm2s ÃĪmt2e 2ÃĪn. ÃĪn5de ÃĪn2dr 2ÃĪne ÃĪne2n1 ÃĪn2f5 ÃĪnft2 2ÃĪnge 2ÃĪn2g3l ÃĪn2gr ÃĪng3se 2ÃĪ3ni ÃĪnk2e ÃĪn2k3l ÃĪn2kr ÃĪnn4e2 ÃĪno3 2ÃĪns ÃĪn2s1c ÃĪns2e ÃĪnse3h 2ÃĪnz ÃĪ1on ÃĪ1pa ÃĪp2pl ÃĪp2pr ÃĪp2s1c 1ÃĪq ÃĪ2r3a2 ÃĪr4af ÃĪr1ÃĪ ÃĪr2b3le ÃĪr1c 4ÃĪre ÃĪ2r1ei ÃĪre2n ÃĪ2r1ene ÃĪr2gr ÃĪr1int ÃĪr2k3l ÃĪr4ment ÃĪrme3s ÃĪr1o ÃĪ1rÃķ ÃĪrse2 ÃĪr2seb ÃĪr2si ÃĪrt4e ÃĪr2th ÃĪrt4s1 ÃĪ2rÞ ÃĪr2zw ÃĪ1s ÃĪs4c ÃĪ3s4e ÃĪse3g2 ÃĪser4ei ÃĪse4ren ÃĪser2i ÃĪse3t ÃĪ5si ÃĪskop2 ÃĪskopf3 ÃĪ3s2kr ÃĪ2s1p ÃĪ3s2s ÃĪs4s1c ÃĪss2e ÃĪss3erk ÃĪ5sses ÃĪs4s1t ÃĪst2 ÃĪs2te ÃĪ2str ÃĪ1ß ÃĪß1erk ÃĪ2t1a2 ÃĪ3te ÃĪte1i ÃĪtein2 ÃĪte2n ÃĪ2t2h ÃĪ1ti ÃĪ1to ÃĪt1ob ÃĪt3r ÃĪt2sa ÃĪt2sÃĪ ÃĪt4schl ÃĪt4schr ÃĪt2s1i ÃĪts3l ÃĪts1p ÃĪt2s1t ÃĪt4s3te ÃĪt4sti ÃĪt2tei ÃĪt2tr ÃĪ1tu ÃĪt2zw ÃĪu2b3l ÃĪu2br ÃĪu1c ÃĪude3 ÃĪu3el ÃĪ2uf ÃĪuf2e 1ÃĪug ÃĪu4g3l 2ÃĪul 2ÃĪum ÃĪu2ma ÃĪum2s1 2ÃĪ2un ÃĪun2e ÃĪu1nu 2ÃĪu3r ÃĪu1s 2ÃĪ3us. ÃĪu4schÃĪ ÃĪu4schm ÃĪu3se ÃĪ3usg ÃĪ3usk ÃĪ3usn ÃĪu2s1p ÃĪu3s2s ÃĪuss1c 1ÃĪuß ÃĪu2tr 4ÃĪ1v 1ÃĪx ÃĪ1z ÃĒ1t ÃĄ1n ba2bl 2babs bach5t4e backs2 b1a2dr 2b1af bah2nu bahr2e bais2 ba2ka ba2k1er ba2k1i bak1l bak1r ba2kra 3bal bal2a bal4lan balle4b bal6lerg bal4li4g bal4lok bal3lÃķ3 2b1am ba2me ban2a 3b2and ban2dr ba3n2e b1ang ban3gl ban2k1a ban4kl ban2kr 2banl 2b1ans ban3t b1anz bar3b bar3de ba2rei bar2en ba4r3ins bar3n bar3zw 3bas ba3s2a ba2sc ba2str ba4t3ent bauer4l bauer4s bau3g bau3s2k bau3sp ba1yo 3b2ÃĪc bÃĪ1ch b2ÃĪr b2ÃĪ4s3 4b1b bbe4p b4be2se bb3ler bb2lÃķ b3bru bbru2c bb2s bbu1 2b1c bch2 2b3d4 1be. 3bea be3an be3ar 3beb b2ebe 1bec be1ch be2del bedi4 be1eh be1erl be1eta 3bef4 be3g2 2b1eier bei1f4 bei4ge. beik4 beil2 bei3la 2b1eime be1imm b2ein be1ind be1in2h bei3s2 beit2s 3bek 3bel be3las bel3d be3lec be3lei be2l1en be2let be3li bel3la bel3lÃĪ bel3li be2l3Ãķ bel3sz bel3t4 1bem bema5sse bemas8sen 1ben. ben3ar be4nas be4nÃĪ ben3dor be3nei 3beng be3n2i ben3n ben2se ben4spa ben4spr benst4 ben2su 3bensv 2bentb b2enti bent4r b1ents 2bentw ben3un ben3z2 be1o be1ra be2rab be2ran beras4s berb2 berd4 ber4ei. be4r3eiw be4rerk bere4s ber6gan. ber4hab ber4in. ber3iss bermas4 berma7sse ber3na b1ernt be1rop berÃķ4 ber3st4a be3rum ber2zÃķ 3bes bes2a be2s1er be5slo bes2po bess4e b3esst. bes3sz beste2 be6stein be4s3tol be4stor best4r be3s2ze 3bet be2tap be3tha bet2to be1ur 3b2ew 2b1ex 1bez 4b5f4 bfal2 bflÃķ4 bflÃķs3 2b1g2 bgas1 bga4st bge3 bges2 2b1h2 bhut2 1bi bi3ak bib2 bibe2 bie4str 3bietu bik2a bi2ke. bi2kes 3bil bil2a bi2lau 4b1illu bi2lu 2b1inb bin2e 2b1inf bin3gl 2b1inh 2b1int bi2o1 bio3d bi3on biri1 bi3se b1iso bi2sol bi2sp bis4s1c bis3si bi2stu bi2stÞ b2it. b2ita b2ite bit4ta4 bi2tu bi3tum b2i3tus biz2 4b1j bjek4to 2b1k4 bl2 2bl. bla3b4 b3lad b5lag b2lanc 3blat b2latt 2b3law b2lÃĪse b2le 3blea b3leb 3blec 2b3leg 2bleh 2b3leid 4b3lein blei7s 3blem 3ble4n b3lese ble3sz b4let b3leu 2blich 3blick b2lie 2blig b4lis b2lit 3blitz b2lo b4loc b3los2 blo3sse blÃķs4s 2blun 3blut 3blÞ 2b1m bmas2 4b3n2 bni2 bnis1 bo4a bo5as b1ob3 bo2bl bo2br bo1ch2 bo3d2 boe1 bo2ei 2b1of bo3fe bo1is bo2l1an 3bon. bond1 bon2de bo2ne 3bons b1op bo1r2a bo4rÃĪ bor2d3r bo2rei bo4rig b1ort bor2t3r bo2sc bo3se bo4s3p bote3n4e bo3th bot2st bÃķ2b3 2bÃķf b1Ãķl 2b1p2 bpa2g 2b1q b2r4 2br. b4ra. 2b3rad b4rah b4ra3k bra4sp bra4ss brast4 3brÃĪ brÃĪ4u 2bre. 3brea 6b5rechte 2b3ref 2breg b3reif b3rek 3brem 2b3rep b4rer 2b3riem bri2er b4rio bro1 b3roh 2b3rol b4ron b4ruc bru4s brust1 bru2th 3brÞ brÞ4ss 4b1s b2sad bs3ar bsas2 bsa3sse bsat2z b3sÃĪ b4sÃĪr b5sc bs2ca b6schan b6schef bs4cu b3se. bs1e2b b3sel. bs1ele bse2n1 b3sen. bs1ent bs1er b2serf bs3e4r3in b2sers b3ses b3set bsi2t b4sl b2s1of bs1op bso2r b2sÃķ b3s2pi bs2pl b3s2pu b4ss2 bs2t bst1a2b bst3ac bs3tag bst1ak bs3tÃĪt bst1er b4stern b2s3tip b3sto b4stob b4stod b3stÃķ b3stra b2s3trÃĪ bs3treu b2st3ro b3stÞ b4stÞb b2s1un 4b1t b3ta bta4st3r b5te b2th bt4r bts2 btÞ1 bu3ches bu2chi bu2e3 bu2f bug3 2b3umk bunde4s b3ungn b2urg bu3r4i 4burn burt4s bu2sa bu4s3cha bu4schl bu4sch3m bu4schw bus1er bu2si bu2s1p bu4s3ses bu6s5term bu2s1tr bu2s1u bu3tan bÞ1c bÞgel3e bÞ3s4 2b1v 2b1w bwel3 by1 by3p bys2 2b1z2 bzeit1 bzu1 1ca 2c1ab ca2ch ca2e3 ca3g4 ca1h cal3t c4an ca2pe 3car car3n carri1 ca3s2a3 cas2t ca3t4h ca1y2 cÃĪ3 cÃĪs2 2cc c1ce c1ch2 c2d2 c3do 2cec ceco4 1ced ce2dr 2cef ce1i 2cek 1cen ce1nu 1cer cere3 ce1ro ce3s2h 1cet 2ceta ce1u 1cÃĐ c1f c4h 4ch. 2chab ch3a2bi 2ch1ak ch2anb 3chanc ch1ang ch3anst 2chanz 1chao 2char. 1chara 3charta cha2sc 1chato ch1ÃĪrm ch1ÃĪs 1chÃĒ 2chb 6chc 2chd ch3e4ben 1chef 3chef. che4fer 3chefs 2chei ch1eim 4chelem che4ler 4chents 4chentw cher3a che3rei 6chergeb cher6zie ch3ess 2cheta 2ch3e4x 1chÃĐ 2chf 2chg 2chh 1ch1ia chi3na 4chind 3chines 2chinf 2chinh ch1ins ch1int 2ch1inv 1chiru 2chj 2chk 2chl2 ch2le ch2lu 4ch2m 2chn4 chner8ei. ch2neu 2chob cho2f ch1off ch1oh chol2a ch1orc 2chp ch2r4 2chre chre3s ch3rh 1chron 4chs ch4stal chst3ri 2cht 2chuf 2chuh 2ch1unf 2chunt 2chÞ 2chv 2chw 5chy 2chz ci1c ci1es cil3l ci2s c1j 4c4k ck1a ck3an cka4r1 ck1ÃĪ ck1ehe ck1ei cke2ra ck2ere ck1erh ck2ern ck1er2r ck1ese ck1id ck1im ck1in ck3l ck3n ck1o2 ck3r ck4stro ckt2e ckt2i ck1um3 ck1up c4l2 cle4a clet2 clo1 1clu c2m2 1co co1ch co2d2 co3di coff4 coi2 co1it co2ke co2le col2o com4te. comtes4 con2ne co2pe co1ra cor3d co3re cor3t cos4 co2te 2cp c1q 1c4r2 cre2 cre4mes cry2 2c1s2 c2si 4c1t cte3e cti2 cti4o ctur6 3cu cu2p3 cussi4 1cy c1z 3da. da1a 2d1ab d2abÃĪ da2ben 3d2abl da2bre dab4rÞ 2d1ac d2ac. dach3a da2cho 4d3achse d1af d1ag dagi2o dah3l da1ho 3dai2 da1in da1is dal2a 2d1alar dal3b2 da3lÃķ d1alt d1amma 2d1ammÃĪ damo3 d2amp dampf8erf 2d1amt d2an. 2d1ana dan4ce. 2d1an3d2 d3anei d1ang 2dange 3dank dan4kl dan5kla dan2k1o dan2kr 2d1ans 4dantw 2danw d2anz. 4danzi 2d1ap d2aph 4dapp da2r3a 2darb2 dark4 3d2arl dar2ma dar2m1i da2ro d3arr 3d2ars d1art 2dart. da2ru d2arw d1arz dasch4 da3s2h 3dat dat2a dat2e2 da3tei date4n 4d3atl 4d1atm 3dau3e 4d1au2f d3aug 4d1aus 2d1ax 2d1ÃĪh 2d1ÃĪmt 2d1ÃĪnd 2d1ÃĪng 2d1ÃĪp 2d1ÃĪrz 2d1ÃĪ2u dÃĪ3us 2d1b4 dbu2c dbu3s 2dc d1ch dco4r 2d1d2 ddar2m d3dÃĪ d3dh d5do 1de de2ad de3a2t 3deb4 4d1e2ben 3dec de1ch de3e4 2d1eff deg2 de3gl dehe2 de3ho 2d1ehr d1ei 3d2eic 3d2e1im dein2d dein2s de3inse de2l1a4g de4l3aug del1ÃĪn del1ec delei4g 2d1elek 2delem deler4 2delfm del4lan dell3eb del4lei del4ler del2lÃķ2 de2l1ob de2lop de3lor de2lÃķ del2s5e del2so del2s1p del3t4 dem2ar dement4 de6mentg 2d1emp d2en. de4n3end 4denerg 4d3en4ge. d2enh de2ni den4k3li den2kn 4den4sem den4s3en den6s5tau den3th 2dentw de1nu 2deol de1on depi4so d4er. de1rad de2rap der2bl 2derdb de2re2b de4reck de4r3ei4s derer3 de3r4erb de3r4erf de4r3ero derer4t derer6ze d4erfi d2erh 4der4hÃķh d4erhÞ 3derie derin4f 4derklÃĪ der3m2 4derneu de1ro de2rop derÃķ4 der3r 4der4sat der4spa der6t5en6d dert4ra 6der6trag de3ru de4ruh de4rum d2es. de2s1a de4sa4g de4sam des3an des1ÃĪn de4seh des1en1 des1et des1in 3desk des1o de2sor de2s1p de3spe des5s2 dest5alt de4stam de6stant de4stei de4stit dest5rat de3stri de3stro de2s1u deten4t 2d1etw de1un de1url de3us devil4 d1exi de2xis 2dexp 2d1f4 2d1g2 d2ge. dge2ta dge4t1e 2d1h2 d2his 1di di4ab di2ad di4am di4ath 3dic di1ce dich1 dich5ter di2e di3e2d di3end die4neb di3eni di3ens. di3ern die4s3c diet3 die2th dige4s dik2a dil2s3 2d1imb 2d1imp din2a 2d1ind 2d1inf 2d1inh 2d1in1it 4d3inner 2d1ins 2d1int di2ob dion5s di1p di4re. di2ren di2ris 2d1irl di4s1a2 di2sp di3s4per 2d1isr dist2 di2s1to di4s3tra di2ta di4teng di4t3erl di4t3erm di4t3ers di2t3r dit1s di2tu di5v diz2 2d1j 2d1k4 4d1l2 d3le dle2ra dli2f dl3m dl3s 2d3m2 4d5n2 dni2 dnis1 dni3v d1ob d2oba 2dobe dob4l d2obr do1chi 2d1o2f doll2a do2mar do5na doni1 do2o 2dope 2d1opf d2opp d2o3r4a 2dorc 2d1ord dor2f1a dor2fÃĪ dor2fl dor2fr 2d1org dori1 2dort dor2ta dor4ter d2os. dos3s dost1 do4sta dot6h do2t1o do3un d1Ãķ dÃķ2d dÃķ2l3 dÃķlla3 d2Ãķn 3d2Ãķr dÃķ2s1c 2d3p2 2d1q d2r4 3d4ra. 2d3rad 2drahm d3rai 3d4ram d3rand 2d3rast d3raub 2d3rauc 2draup 2drÃĪd d4rÃĪh 2d3rÃĪt 2d3rÃĪu 4d5re. d4rea. d4reas 3d4reck 2dref 2dreg 3d4reh 2d3reic d4reiv 4drem 4d3ren 2d3rep 4d3rer 4dres. d4resc 2d3rh d3ri 3d4ri. 3d4ria 2d5ric d4rid d4rif d4rik d4rin. d4risc 2driß 3d4rit 4dritu d3rob d3roc 2d3rod d4roi 2d3rose 2d3rost 2d3rot d3rou 2d3rov d3rÃķ drÃķ2s1 d5rub 3d4ruc 2d3rud 2d3ruh 2d3rui 4drund drunge3 2d5rut drÞ1b 2d1s 4ds. d4s1amt d2san ds3assi d2sau2 ds1ÃĪn 4dsb d4schef d4schin d2s1e2b d2s1ef ds1ehr d3sei ds2eig d4seins d2s1eng d2s1ent d2s1erf d2serh d2s1erk ds1err d2s1erz dse2t d2s1eta d3s2ha d3sho d2sid d2s1im d3s2inf d3s2kan d3skul 4dsl d2s1op dso2r ds1ori d2sÃķ d2s1par ds1pa4s d2spÃĪ ds2pe ds2po d3spri d2spro ds2pu dss2 ds3si dst4 d4stabe ds3tauf d4s3tÃĪti d4stea ds2til ds2tip d2s1tis d2stod dstras4 ds1ums d2sun ds2zen 2d1t dta2d dtam3m d3tea d2th d4thei dt3ho dto2 dt3r dtran2 dt5s2 1du du1alv du1ar dub3l du2bli du2f 2d1ufe 2d1uh du1i 2d1umb 2dumd 2d1u2m1e 2dumf 2dumg 2d3umk 2duml d2ump 2dumr d1ums d2ums. 2d1umv 2d1un3d dund2a 2d1unf 2d1ungl dun3ke dun2kl 2dunr dun4st3r 2dunt 2dunw du1o 5dur2c 2d1url 2dursa du4schn du4schr du4schw 2dÞb 3dÞf 3dÞn 2d1v2 4d1w dwa2 dwest1 dy1 dy2s1 2d3z2 2e1a e3a2b eab3l ea3der eadli4 ea2dr ea2g4 ea3ga ea4ge ea3gl eakt2 e3akto ea2la e3alei ealer2 e4aler. eal5le eal3lÃķ eallÃķ3s e2alti2 e2ame eam3m eam1o eam3t ea2na e2ano e3ar. ea2ra e4are. ea4rene e4arer e4ares ea2sc eas5s eat4e2 eater1 e3ath eat3s2 e3at3t4 e3au2f e3aug eaus3s eau3st e3ÃĪ4 e1b 2eba e3b2ak 2ebed ebe2i 2ebel eb2en e3ben. ebens3e e3ber ebe4rel ebert4 2ebet 2ebl eb2laß eb3ler eb4leu e3blie eb3lo eb2lÃķ 2eb2o ebÃķ2s 2ebr eb3rei eb4ru eb2s eb6sche ebse2 ebs1i ebs1o ebs1p ebs3pa eb4stÃĪt ebs3t2h eb4s3ti eb4s3tot eb3str ebs1u 2e3bu ebus3s ebu2t1 2eca e1ce ech1ÃĪ 2e1che ech1ei e6ch5erzi ech3l ech3m ech3n e2cho. ech1o2b e2ch3r ech3t4ei e1chu ech1uh ech1w e1ci eci6a eck3se eck4sta 2eckt 2e1cl 2eco eco3d 2ect e1d e3d2a ed2dr ed2e ede2al ede3n2e eden4se eden4s3p ede2r edert2 edi4al 2edip edma3 edmas2 e3d2o ed2Ãķ eds2ÃĪ ed4seh ed2s1es ed2s1o ed2s1p ed2s3tr ed2su edu2s e3dy3 4ee ee3a2 eeb2l ee2ce ee1ch ee2cho eede3 eed3s2 ee1e e1eff eef4l eeg2 e1ei ee1im eein4se eei5se eel2e e1e2lek ee5len e1emp e1en eena2 ee4nag e2enÃĪ e2enc e2eno een3s e1e2pi eera4 ee2r3as e1erbt e1erd ee3r2e ee4r3en4g eere4s1 ee1ro ee1rÃķ eer2Ãķs eert2 e1ertr ee3r2u e1erz ees2 ee3sh ees3k ee3ta ee4tat ee1u eeu2f eewa4r e1e2x e1f 2ef. 2efa e2f1a2d ef1ana ef1ar e2fat efÃĪs4 efÃĪ5sse e2fÃĪu 2efe e3fe. e2f1e2b efell4 ef1em e2fent ef2er efeuil4 2eff. ef2fÃĪ2 3effek 1effi ef2fl 2efi ef1id e2f1ins efi2s 1efku 2efl e3f4lu 2e3f2o e3fra ef3rea ef3rol ef3rom ef4rÞ efs2 ef3so ef3sp ef2tan ef2tei 2efu e2fum 2efÞ e1g eg1d4 e3ge ege4ler ege4n3a4 ege4nec ege2ra ege4s3to ege4str ege1u e2glo e2glu e2gn eg3nÃĪ eg3ni egro5sse eg4sal eg4san eg3se eg4sei egs3e4r1 egs2pe eg4sto egs3tÞ eg2th 2e1ha eh1ach eh2al e2hap eh2aus 2e1hÃĪ ehÃĪs3 e1he eh4ec eh1eff eh2el ehe5na ehen2t3 1e2hep e3her ehe1ra e1hi eh1int ehis4 eh1lam eh1lÃĪ ehl3ein eh4lent eh5l2er eh2lin eh3lo ehl2se 2ehm eh3mu e1ho e3hol ehr1a2 ehr1ÃĪ ehr1ec eh2rei ehr4erf ehr6erle ehre3s eh3ri eh1ro2 ehr1ob ehr1of eh2s2 eh3se eh3sh eh3si eh3so eh3sp eh3sta 2eht e1hu e2hunt e1hÞ eh3Þb eh1w e1hy 2ei3a2 ei2bar ei2bl eibu4t ei4b3ute ei2cho eich5te e2id ei2d1a ei3de eid4ein ei4d3er4r 2eidn ei3dra ei1e ei3el 4ei3en eienge4 eie4s eif2e 1eifr ei3g2a 4eigeno eig2er 2eiges 2eigew ei3gl 1ei2g3n 2eigru 2eigt 2eigu eik2ar ei3kau eik4la e4il 2eil. ei2lar ei2lau 2eilb eil3d ei4lein eilen1 eil3f4 ei4l3ins 2eiln 1eilzu ei2m1a4g eim3all ei2mor e1imp eim2pl e4i2n1a ein3a2d ei4nas ei4nÃĪ ein3dr 2eindu ei4neng ei2neu 2einfo ein4fo. ein4fos ein3g2 ein4hab e1init eink4 ein6karn 3einkÃĪ 3einkom ein3n2 1einna ei2n1o2 1einri e4insa einsas4 einsa7sse 3einsat e3insta ein6stal ein4sz 1einu e4inver ei3o2 ei1p eip2f 2eir ei3re e1irr e2is. ei2sa4 ei6schin ei4s3erw eis2pe ei3spru ei3s2s ei2str eistra6s ei2sum e4it ei2tab ei2t1an ei2tar 2eitÃĪ ei3te ei2th ei2tor ei2tro eitt4 eit3um 2eiu 2e1j e1k ek2a 1ekd e3ke. e3ken e3kes e3key e3k2l ek3lip ek4n ek2o 2ek4r 2ekt ekt4ant ekt3erf ekt3erg ek4t3er4z ekt2o ek2u e3k2w e1la ela4ben el3abi el2abt el3a4der e3ladu el1af ela2h e2l1ak el3al e2l1a2m e4landa e2lanm el1ans el1anz 2elao e2l1ap e2l1a4r el3ari el1asi el1asp el2ast 2e1lÃĪ 3elbis el2da eld3erh elder4p eld5erst el3des eld3s2 e3lea 2elei e6l5ei6er. e6l5ei6ern el1ein e4leinf e4leing e4leinh e2l1el 1e2lem e3lem. el1emp 2e3len. e4lense e4l1ent e3lep e2l1erd el1erf e4ler4fa e2l1erg el1erk el1erl e4ler4la e4l3ernÃĪ e4ler2Ãķ e2l1err eles2 el1ess e4l1e2ta e3leu 2elev ele2x 1elf. el3fe elf4l 1elfm 1elft elg2a elgi5er. elgi5ers elg4r e2l1id e3lie e2lim el1ita 2elk elks2 elk3sc ella3d el3lan el2lap ella2s el2lÃĪ el3lÃĪd ell3ein el3ler el2leu el3lie el2lil el3l2in el2log el2lot ell3sp el2lu2m el2lÞ 2eln el5na 2elo e2lof e2lol elon2 e2l1or elo2ri el2sum elt2ak el3te. el5ten. elter4b 3eltern elter4s el3tes elto2 elt3r elt1s2 elt3se elt3sk 2e1lu el1ur el3use e1lÞ e2lya 2elz el2zar elz2e el2zwa e1m 2ema em1ad ema2k e2m3anf e2m1ans 3emanz emas8sens em4d3a2 e3m2en emen6gel emen4t3h e2m1erw 1e2meti e2m1im emi5na em1int emi3ti 2emm em2map emma3u e2mop 1empf4 em3pfl em2sa em3se em2spr em3t2 1emul 2emÞ emÞ3s4 e2n1a 4ena. 2en2ac en3ack e3nad e4naf 4enah e4n3a2k ena3l2i enal3p 4enam en2ame e4nand en3ang e4nanz en3are ena4sc 4enat en3att e3naue en1ÃĪ e2nÃĪr enÃĪ4s enbu4s3 en2ce. en3d2ac en2dal endermas8 en4d3ess end4ort end3rom end3s2p end3sz end2um 2ene. ene4ben en1ec e2neff en2eid e3neien e4nein e2n1el ene4le 2enem 2enen e4n1ent en4entr 4e3ner. e2n1erd e2nerf 1e2nerg e4nerh e4nerk e2n1erl e4n3ermo 4enern e2n1err e2n1ers e2n1ert e2n3eru e2n1erw e4nerz 2enes e2n3ess en3f enf2a enf2u 1engad 3engag enge3ra en3g2i en3glo en3gn 1engp eng1s eng3sc eng3se 2eni e3ni. e3nic e2nid e3nie eni3er. eni5ers. e2n1i4m e2n1in e3nio eni2Ãķ e3nit en3k2Þ e2n1o2b enob4le e2nof en1oh e3nol eno2ma en1on e2n1op e2n1o2r eno2s enost3 e3not eno2w 2e1nÃķ en1Ãķ2d en3sac ensas2 ensa5sse en2sau en5sche en2seb 3ensem ensen1 en2sep en3ska en3s2po enst5alt en4s3tÃĪt en6s5test 2ensto ens5trie e4nt ent4ag ent4ark 1entd en2teb en4terb en3tes 1entf 2entfo 1entga 3entgeg en2thi 3entla 1entn en4t3rol 3entspr 1entw 4entwet 1entz en1u 2enut e1nÞ 4enwÞ e1ny enz1ec en4z3erf en4z3erg en4z3erk e1Ãą 2eo e1o2b1 e1of eo2fe e1oh eo3m e1on. e1ond e1onf e1onh e1onl e1onr e1ons e1ope e1opf eop4t e1or e3or. e3orb e3ors e3orw eos2 e3os. eota2 eo3ul e1ov e1Ãķ2 e1p epa2g e3p2f4 e2pis 1episo 2epl ep3le 1e2poc ep2pa ep2pf ep2pin ep4pl ep2pr ept2a ep2tal 2e3pu epu2s e1q er1a e3ra. era2be e3rad. er3adm eraf4a era2g e1rai er3aic e2rak e1ral er3all eran3d e3rane er3anf e2ranh er3anm e1rap er3apf e2rar e3rari e1ras e2r3a6si era4sp era4s3s er4ast era2ß e2rath e3rati e2ratm e1raub er3aue erau2f er3aug e1raw e1raz e1rÃĪ er1ÃĪh er1ÃĪm e2r1ÃĪ4s erb2e erb2sp er1c er3chl erda3me 1erdb er3de 2erdec erde3in er4d3en4g erd3erw 4ere. er1eb e3rech er3echs er1eck er1edi ere4dit er1eff er1e2h 2e3rei. er1eig e2rein e4r3eis. ere2l er1ele ere3lev 2e3rem e2remp 2eren e3ren. e3rena e4rense e4rentf e4rentn e3renz eren8z7en8d er1ep 2erer. e2r3erf e2r1erh 2erern e3rero er1err er1ers e2rert er1erw 2eres er1ess er1eß e4r3e4ti er1eul ere4vid erf2e er3f4r 4erfÞr 3ergebn 4ergehÃĪ erg3els 1ergol 4ergrem e2rh 1erhab 4erhals er3he 4erhÃķhe er3hu 2erhÞ 2eri e2riat e3rib 4e3ric er1i2de e3rie eri3e4n3 eri5ers. e3ri3k4 4e3rin. er1inb e2r1ini er1ink er1ins er1int e3rio er1ita 2erk. 1erklÃĪ 2erkli er3ko 2erkre erk3t 2erlag 3erlebn 4erln erm2e ermen4s erm3ers er4nerk ern1os e1ro. er3oa er1o2b e2r1o2f e1rog e1r1oh e1rok e1rol e1rom e3ron er3ony er1op e4ro2r e1ros e1rou e1row er1ox e1roz erÃķ2d 2erÃķk er1Ãķs er3p4 er3rÃĪ er5rei erri3er 2errÞ ers2a ersch2 er5schn er3se er5sen er3s2i er3sk ersma3s4 er5smo er3sn er3sp er3sto er3sz ert2ak er6terei er4t3erf er4ter4h er4ters er2t3ho 4erti ert3ins ert3s2e 2ertÞr 2eru eruf4s er1u2m er1und er1uns er3uz erÞ4b 3erweck e1s e4s3ab e3sac esa2d es2an es4and es4ank es3ant e3s2as esa3sse esas6sen esa6sset e4s3ato es3av esÃĪs4 es2ÃĪu 2esb esbi5er. e3sc es2ca es3cap es2ce esch2l esch2n e4sco e4scu e3se. es1ebe es1ehr e2sein es3eva 2esf 4esh es3ha es4har e3sig e2s1il es1ini e4s3ins es3int es2kat e4s3ke e4sky e4s3l es4log 2esm e4sn eso2r es2ort es2Ãķ 2esp es2pek e3spi e3s2por e3s4pra e3s2pu 2esr essali3 es2sau 4essem ess4e3re ess3erg es3si 2esso es2sof es2s1pa es2spu es4ste estab4b est1ak e3stan e4starb 1e2stas es2tau es2te este2c e4st3eng e4st3erh e4st3ess e5stev e3sti e4stip estmo6de e2stod est3ori 2estro es3trop es2tu e3s2tÞ es2ty e2s1um es1ur e4sw e3sy eße3r2e e1t e3ta. etab4 etal4la4 etal6li6n et1am eta2mi 1etap etari1 et4at et1ÃĪh 2e3te e4t1ein ete3ke et2en eten3d2 ete2o eter4hÃķ eter4tr et2h et3hal ethi1 et3hÞ e3ti eti2m eti2ta 2eto eto2b e2t1of e2torg 2etr e4traum et3rec e4tres etsch3w et1s2p et1su etta2 et2tab et2tad etta3ge et2ta4s et2tau et2tÃĪ et2tei ette4n1 et4teu et4th et2tÃķ4 et2t3r et4tro ett3sz et2t1um et2tur et2tÞ4 etwa4r 2etz et2zÃĪ et4z3ent etze4s et2zw eu1a2 eu3b4 euen2g eue6reif euer4ri eu2e5sc 2euf eu2fer eu2ga eu4gent eu3g2er eug1s2 eu1in 1euk eu2kÃĪ e1um e3um. e3umb e3uml e3um2s eums1p eum3st 2eun eun2e eu4nei eun4er e3un2g eu2nio eun3ka eu1o2 eu1p2 e2u3r2e 1euro eu2rys eu1s4 eu4sis eu3sp eu3ss eust4 2eut eut2h eut6schn 2eux eu2zo eu2z1w e3Þ 2e1v e2vela e2vent 4ever eve5r2i e3vo ev2s e1w 2ewa e3wÃĪ4 ewÃĪ6s 2ewe e2we. e3wir ewi2s e3wit ew2s 2ex. ex3at 1e2xem ex1er e1xi 2exie e2x1in 1exis ex3l 3exp 2ext. ex2tin ex2tu 2exu 2e3xy ey2n eys2 e1z e3z2a e2z1enn e3zi ezi2s ez2w ÃĐ1b ÃĐ1c ÃĐ1g ÃĐ1h ÃĐ1l ÃĐlu2 ÃĐ1o ÃĐ1p ÃĐ1r ÃĐ1s ÃĐ1t2 ÃĐ1u2 ÃĐ1v ÃĐ1z2 ÃĻ1c ÃĻ1m ÃĻ1n ÃĻ1r Ê1p 1fa 3fa. fab4 f1abe fa2ben 2f1a2bl fab5s fa4cheb fa2ch1i fa2cho fa2ci f1ader fa2dr f4ah faib4 fa2ke f2al fa3l2a fal2kl falla2 fal4lei fal6lenk fal6l5er6k fal2li4 fal6scha fal6schl fal6schm fal3te 3fam f1amt 2fanb 2fanf fan2gr 2f1ank 2fanl f1anp 2fanr fan3s 2fanw f1an3z 2f1ap f2ar far2br 2f3arc 3fari farre2 far4rec far4reg f3art 2f3arz 3fas. fa3s4a fa3sh f3at fa2to 2f1auf f3aug fau2s f1ausb 3f4av fa2xa 1fÃĪ fÃĪ1c fÃĪh2r1u f1ÃĪlte 2f1ÃĪrm f1ÃĪrz fÃĪ4s fÃĪ6s3ser fÃĪ2ßer 2f1b2 2f1c 2f3d4 fdie2 1fe featu4 f2ech 2f1eck fe2dr fe2ei fe1em fef4l feh4lei f4eie 2f1eing 4f1einh fe1ini 2f1einw f1ei3s fek2ta fe2l1a fel4da fel2dr 2f1e2lek fe2l1er fe2les fel3la fel4lei fe2l1o fel4soh fels2t fel3t f2em. fem4m 2femp fen3a2 fe2nÃĪ fe2no fen3s2a fens2c fens2t2 fen6stri f1ent 3fep f2er. fe1ra fer2an fe4rang fe4r3anz fe2rau fe2r1ÃĪ ferde3 f2ere fer2er fer3erz f1erfa fe2rid 3ferk f2erl. 4ferneu fe1ro f4erpa f2ers. fers2t f2ert f1erw fer8zeuge fes4t fe2st1a fe4st3ei fe2str 2f1eta fe2tag 3fete fet2t3a feuer3e feu4ru 3few f1ex 2fexp 3fez 1fÃĐ 2f1f ffa2b ffa2ce f3fal ff1ans ff3ar ff4arb ff4art ffa4s ff1au ffa2z ff2e ffe2e f2f3ef ff3ei ffe1in ffel3l ffe2m f2f3emi f2fetz f2fex f2fil ffi2xi ff3lag ff3li f3flu f3flÞ ffo2 f2fÃķ f3f4rÃĪ ff2sa ff2sp ffs3tan 4f3g2 fge3s 2f1h2 1fi 3fi. fi3at fi1er2f fi2kin fi3kl fik1o2 fi2kob fi2kr fi2l1an fil4auf fil3d fi2les filg4 fi3li fi4lin fil2ip f2ina fi3ni 2f1int fi2o fi3ol fi2r fi3ra fi4re 3fis fis4a fisch3a fisch3o fisch3w fi3so fis2p fit1o2 fi2tor fi3tu 3fiz 2f1j 4f1k4 f2l2 2fl. f3lad f5lan3d f3lap 1flÃĪ 3f4lÃĪc 2f5lÃĪd f3lÃĪn 2f3lÃĪu 2f3leb 2f3lein f3ler f3li. 3f4lim fli4ne 2f5lon 1f4lop flo7s8ses. 1f4lot flo2w f3lÃķ 4f5lÃķf 1f4lug flu4ger f4lÞ f5lÞd f5lÞm 2f1m2 fma2d fmas2s fma3sse 2f3n2 fni2s 1fo fob2l 2f1o2f foli3 fol2k1 fo2na fon3au fon2e fo2nu 2f1op fo1ra 4f3org fo3rin for4m3a4g forni7er. for4sta for4sti fort3 for4tei for2th for2t1r fort1s for3tu f1o2x 1fÃķ 2fÃķ2f 2f1Ãķk 2f1Ãķl 4f1p2 2f1q f2r2 f4rac frach6tr 2f5rad fra4m f3rand f5rap 1f4rÃĪn 2fre. f3rec f3red 2freg f3reic freik2 frein2 f3rep 3f4reu 2f3ric fri3d fri2e 2frig 1fris f4risc fri6ster f3roc 1f4ron fro2na fro2sc f3rot f3ru f3rÞ 4f1s fs2amm f2san fs3ar f2s1as f2sauf f2saus f2saut fsÃĪ4 f3sc f4sce f4schan f4schef f2s1e2b f4sehr f2s1em f2s1ent f2s1er fse2t f2s1eta fsi2d f3s2kie f2s1o2 f3span f2s1pas f2sph f3spi f3s2pl f3s2por fs1pr f2spre fs2pri f2spro fs2pru fs3s4 f2stas f4s3tÃĪti f5stel f2stip f2s1tis fst4r f4s3tres fs1trÞ f3stÞ f4s3tÞte f2sty f2s1un f3sy 4f1t f2ta. f2tab ft1a2be ft1af f2t1al ft1an ft1ar f3tat f2t1ÃĪu ft1e2h ft1eig ft1ein ft1eis f2t1ent f2t1e4ti f2th f4thei ft3ho f2t1id ft1op f2t3ot f2t3ro f2trÃķ f3t4ru fts1 ft2sa ft4sa4g ft4sam fts2c ft4sche ft2se4 ft4seh ft2si ft4stÃĪ ft4ster ft4stes fts2ti fttra4 f2tum ft1url ftwa4 ft3z2 1fu 3fuc 3fug 3f2uh f1um 2f1unf 2f1u2ni fun2kl fun2ko fun2k3r 2f1unm 2funt f2ur fu4re. fus2 fu3sse fus6sen fu4sser fuss1p fus4s1t fu2ß1er 3fut 1fÞ 2fÞb fÞ2r fÞ3s4 2f1v 2f1w 1fy 2f1z fz2a fzeiten6 fzei8tend fz2Ãķ fzu3 fzu4ga f3z2w 3ga. 2gabf ga2b5l gab4r 2gabz ga1ch 2gadl 2ga2dr ga1fl ga1k ga2ka gal2a 2g1a4lau g4amo 2g1amt 2ganb gan3d 4gangeb gan2gr 2ganh 2g3anku 2ganl g3anla 3g2ano gans2 2ganw ga1ny 3gar. 2garb 2garc 3gard 2g1arm ga3r2o 3g2ars 2g1arti ga3ru 2g1arz ga2s ga3sc gas3ei ga4sem ga3sp ga4spe ga4spr gas5s ga3s6ses gas3tan ga4st3el ga3str ga4stra4 gastras5 gas4trÃĪ ga4stre gas1tu gat2a 2g1atm gat4r gau1c 2g1auf 2g3aug g2auk g1aus 2g1aut 2g1ÃĪp 2g1ÃĪrz gÃĪs2 gÃĪ4u 2g3b2 gbau5s gber2 gbi2 2g1c 2gd g1da g2d1au g2d1er gd1in g1do g1dÃķ gd3r gd3s2 gdt4 gd1ur 1ge ge3a2 geb2a gebe4am ge3ble geb4r ge1c ged4 ge1e2 ge3ec ge2es gef4 ge3g2l ge3ha ge4ig ge1im ge2in. gein2s ge2int gein2v ge1ir ge2is4 2g1eise2 gei3sh gei4sta 2gek. ge4lanz gelb1r gel4b3ra gelder4 gel6ders ge3le 2g1e4lek geler3Ãķ ge4l3ers ge4less gel3l2a gel3le ge3lor gel3sa gels2p gels2t gel3sz gel3t2a ge3lÞ gelz2 gem2 gem4e ge3mi 3gen ge3na ge4n3ac ge4nam ge4nar gen2as gen4aug gen2d1r gen1eb ge3nec gen3eid gen3ern gen6erwe gener4z genma7sse. gen3n gen3sz 2gentf gen3th 4gentw geo2r ge1ou ge3p4 ge1ra ge2rab 4g3ereig ge4reng ge4ren4s ge4r3ent ger2er gerin4f ger4inn gerin4t germas6s ger3no ge1ro ge1r2Ãķ ger4sto ge3r2u g1erwa 4g3erwer ges2c ges3elt ge2s1er ge3s2i ges2p ges4pi gess2t gest2 get2a ge3tan 2getap ge3t4u 2g1e1ul 2g1ex 2g1f4 4g1g gga2t g3ge gge2ne g2g3l gg4lo g2g3n gg4r 2g1h 4gh. 3ghale gh2e 3g2het 3g2hie gh1l 3gh2r g2hu gh1w gi3alo gia2s gie3g gi2e1i gi2el gien2e1 gift5s gi2gu gi2m gi4mes 2g1ind gi3ne g1inf gin2ga 2g1ins 2giok 2g3isel gi3t2a gi4us 2g1j 4g3k2 4gl. gl2a 4g1lab g1lac g2lade 2g1lag 2gland gla4s3ti gla4stu 3g2laub 4g1lauf g1lÃĪß 2glÃĪuf g2l4e 2gle. 3gle3a 2g3leb g3lec g3leg 2gleh 3gleic 4g3lein glei4t5r g3len 4g3ler 2gles g3lese g4lia 2glib 3g2lid g2lie 2glif g2lik 2glil g2lim 4glin g2lio 2glis g3lisc 3g2lit g2liz 3g2loa 3g2lob 4g3loch glo3g 3g4lok g2lom 3g2lop g2lor 3g2lot 2glÃķs 2gls g1lu2 2g3luf 2glun 4glu3s g2lut g1lÞg g2ly 2g1m2 gmÞl3 g1n 2gn. g2n2a g4na. 4gnah 3g4nat 3g2nÃĪ gn2e g3neh 2gnel gne2tr 2gneu 2gng g2nie g2nif g4nin 2gni2s1 g2no1 g3not 2gnp 2gns 2gnt 2gnu 3g2num. g2nÞ g2ny 2gnz go4a goa3li 2g1o2f 2gog 2g1oh go1i2 gol2a 2gonis 2g1ope 2g1opf g2o1ra 2g1ord 2gorg go2s go3th got6t5erg go1y 2g1p2 2g1q g2r4 gra2bi gra2bl 2g3radl 2g3rah 4g3rak grammen6 gram8m7end grau3f grÃĪs5c 2g3rÃĪu 2g5re. g4reb 2g3rec 2g3rede g4re2e 2g3reic 2greim 2g3rein g3reit g3rek g4rem 2g3renn gre3no gren6z5ei g4rer g3ret g3rev 2g3ric gri2e g3riese 3grif 2grig 2g3ring gro2bl 2groc 2groh gron4 gros2 2g3rose gro5sse. gro7ssen. gro7sser. gro5sses g4roß gro4u 2grÃķh g4ruf 2g3rui 2g3rum grun2g 3g4rup grus2s gru3sse 2grut 2g3rÞc 3g4rÞn 4gs g2sa gs1ac gsa2d gs1af gs1ag g4s3a2k g3sal gs3all g4salt gs3ama g4s1amb gs3an gs3ar gs1as gs1ÃĪ g4sca g4sce gsch4 g4schef g5schÞ gs3cr g2s1e2 gse3e gs2eh g3s2eil g3sel. g3seln gsen1 g4ser gser5f g4seu g2s1i gsi2d g3sig g5sil gs3l gs1o2 gs1p4 g3s2pek gs4pie gs3pl g5s2por gsrat4 gs3s2 g3star gs1tau g4s1tÃĪ g5stÃĪm g5stel g4stemp gst3ent g4sterm gst3err g4s3test gst2he g3sti gs1tis g3sto g4ston gs1top g4s1tor gs1tot gst4ra gst5reit gst4ri gst5rit gst3ros gs1trÞ g3stun gs1tÞ gs2tÞc gs1u g3sy 4g1t g3te gti2m gt4r gt2se 1gu gu1an. gu1ant gu1as gu4d3r gu2e 2gued guet2 2g1u2f 2g1uh gu1ins gu1i4s 3gumm 2g1unf g2ung. gunge2 4gungew 2g1ungl 2g3unk g2uns 2gunt2 3gur 4g1url gurt3s gu2s3a guschi5 gus2sp gus4st gu3sti gu2ß1 gu2t gut1a gu4t3erh gut3h 2gÞb gÞr1 gÞ3st 2g1v 2g1w 2g3z2 3haa hab2a hab2e 2habn ha2cho ha2del ha4din h1adle haf3f4l haft2s hafts3p h1ah h2ahs ha3ia h2aj 2haka ha1kl 2h2al. halan4c ha2lau hal2ba hal4bei hal4b3r 2hale hal4lei hal6lerf hal4leu hal4lok h1alp halt5r h1amt h2an. 2hanb h2and han2da han2kr h4ann 2hanr 2hant hao2s h1ap ha2pl ha2pr h2a3ra 2harb h2ard h1arm. har3ma har4me. har4mes har2th h1arti h2as 2ha3sa hasi1 ha2ß1 hatt2 hau5f6lie 2h1aufm h1aukt hau2sa hau4san hau2sc hau4spa hau4ss haus5sen hau4s3ti hau4sto h2aut. hau6terk 2hauto hau2tr h1ÃĪff h1ÃĪrz hÃĪ4s hÃĪ5sc hÃĪ6s5chen hÃĪu2s1c hÃĪ3usp 2h1b2 hba2r3a 2h1c 2h3d4 hdan2 2hea he2ad hea5t he3be he4b1ei he2bl he3br he1ch he3ch2e h3echt hed2g he3di he2e3l hee2s he2fan he2fÃĪ he2f1ei hef3erm 2heff he2fid he4f3ing he2f3l he2fr he3fri he2fu he3gu h4eib h1eie h1eif h1eig he2im heim3p hei4mu 2hein heine2 4heio he1ism he1i4st heit4s1 h1eiw he2l3a hel1ec h3e2lek he3len hel3ers he3li hell3au hel4mei he3lo he4lof he2lÃķ 3hemd he3mi 3hemm 4h3emp h2en. he4na2 hen3a4g he2nÃĪ he2n1e2b hen3end hen3erg he2net heng2 2heni he2no hen3sk hen3s2t2 h1ents 2h3entw hen3z 4he2o he3on he3op he3pa he3ph h2er. her3a2b he2ral 2herap he3ras herau2 herb1r her4b3ra he4reck 4hereig he4r3eis he2rel he4rerw h1er2fo h3erfÞ herg2 her2ho 4herif herin4f he6rin6nu herin4s herin8ter h1erke h3erlau 2herm herma3s he3ro he4r3o4b h1erÃķ hers2t hert2 her3th her2z1w he2tap heter2 he3th het2i he3t4s h2e2u heu3g 3heusc he3x he1x2a he1y2 1hÃĻ 2h1f4 hfell1 hfel6ler hfi2s 2h3g2 hget4 2h1h2 hhoh2 4hi. 2hia hi2ac hi2ang h2ias hi1ce hich6ter 2hi3d h2ide h1i4di hi2e hi3ens hier1i hie4rin hif3f4r hi2kr hi2l3a4 hil2fr hi2n h1indu hi3nel hin2en h1inf h1inh hi3n2i hin3n2 hi3no hin2t1a 2hio hi4on hi3or 2hip1 hip3f hi2ph hi2pi h2i2r hi3ra 2hi3re hi3ri hirn1 hir4ner hi3ro hir2s his2a hi2se hi2spa hi3ti 2hiu 2h1j 2h1k4 hklo3s 4hl hl2ag hlam8meng hla2n hl1anz h1las h1lat h1laut h3lÃĪche h3lÃĪd hl1ÃĪr h1lÃĪs h1lÃĪß h1lÃĪu hlb4 hl3d4 h3leb hle3e h3lein h2leis h5len. hl2eng hl2enn h3ler hle2ra h2l1erg h6l3er4nÃĪ hle3run hl1erw h4lerz h3les h4lesi h3lex hlg4 h2lie h2lif h2lim hl1ind h2lip h2lis h3list h2lit hl3l hlle3b hlma3s2 h2lo h3loc hl1of hl1op h4lor hlo2re h3losi h2lÃķs3 hlÃķ4ss hl2ser hl3sku hl3slo hlst4 hls2te hl2sto hl3str hl3t2 h3luf h3luk h3lumpe h1lÞf 2h1m h2mab h3mad h3mag h3man h3mar h3mas hma3sse h3maß h3mÃĪ h4mÃĪc h4mÃĪh h4mÃĪl h3me. hme1e hme1in h3meist h3men hmen2s hme2ra h2mo h4mon h3mÃķ hm3p4 hm2s1p h2mu h3mul h3musc h3musi 2hn h2na h3nam hn1an h3nau. h2nÃĪ hn1ÃĪh hn1ÃĪr hn3d4 hn2e hne3b hne2e hn3eig hn3ein h2nel hne4n1 hne4pf h3ner hner3ei h4nersa hn3ex hnhof8stra8s h2nic h2nid h2nie hn1im hn1in h2nip hn3k4 h2nor hn3s2k hns2t hnsuch4 hntra4 hnts2 h1nu h2nuc h2nul hn1unf h3nunge ho2bl ho2c hoch3 hock3t 2hod hoe4 ho2ef ho4fa hof3fa ho2f3r 2hoi 3hole ho2l1ei hol3g4 ho4lor 3hols h1o2ly 3holz hol6zene hom2e ho2mec ho2med h2on hond4 hono3 2hoo 2hop ho1ra hor3d 2h1org ho3se ho4sei ho3sl ho4sta ho2str 2hot. ho3th hotli4 2hot1s2 3hov 2ho2w1 h1o2x ho1y2 hÃī1 1h2Ãķ hÃķ2c 3hÃķhe h4Ãķr hÃķ4s hÃķs1c hÃķs3se h3Ãķst 2h3p2 h1q 2hr hra2b hr1ac hr3ad h1rai h1rane h3rÃĪu hr1c hr3d h2rec h3rech h3red h3ref h4rei. hrei4ba h3reic h4r1eig h3rel h3ren h3rep hr4erbe hr4erbu hr2erg hr2erk h4rer4la h3rerle h6rer6leb hr6erlei hr2erm hr2erz h3re2s1 hre2t h2r1eta h3rev hrg2 h2ri h3ric h4rick hri4e h3riesl h3rin h4rinh hr1ins h4rist hr3l hrm2 h2rob h2rof h3roh h3rol h4rome h4romi h4ron h2ror h3rou hrr4 hr2s1ac hr4s3an hr2sau hr3sch hr2s1en hr2ser hr2set hr2s1in hrs3k hr2s1of hr4stec hr2su hr4sw hr2t5ab hr2tan hr2th hr2tor hrt3ri hr2tro hrt2sa hrt2se hrt4ste h3ruh hr1ums h3rÞ h4rÞb h4ry hrz2 4h1s h4s3acht h2sa2d h4samt h2san h2sau h2sÃĪh hsÃĪ4s h3sc h4schan h2s1ec hse4ler h2s1erl h3s2ex h2s1ing h2s1o2f h2spac h2s1par hs2pen h2sper h2sph hs2por h2sprÃĪ h2spro hss2 h2staf hst3alt hst2an h4starb h2stau h2stÃĪl h4stea h5stel hst2he hs1tie h2stin h2s1tor h3stÃķ h3str hst3ran h2stu h3stun h3stÞ h2s1u hs2ung h3sy 4h1t ht1a h2tak h3t4akt. ht2al h2talo ht3alt hta2m h2ta4n ht3ane h3tank h3tann h2tar ht2as h2t3ass h2tasy h2t3a2t h2tau ht3aug h2tax h2t1ÃĪr h3te. ht1ec h2t1ef ht1eh h3teha h3tehÃĪ hte2he h2teif h4teilz h2t1eim ht1ein h2t1eis h2t1eke h4t3elit h2temp h4tentf h4t3ents hter6de. ht3erfÞ ht3ergr h2t1er2h ht5erken h4terkl h6t5erleu h4t3er4re h6t5er6spa h4t3er4st ht6erste h2t1erz h2t1ese h2t1ess h2t1eu h2t1ex h2th h4thei hthe3u h2t1im h2t1in h4tl htni2 hto2 h2toly h2torg ht3rak ht3rand h2t3ras h2t3rat ht3rau h4traub ht6raume h3trec ht3reif ht3reit ht4ri ht5rieg h2t5rin h3trit ht3ro h2trol h2tros ht4rot ht3rÃķs h2t3ru h2t3rÞ h4ts ht4s3an ht4s3end ht4spin ht3spri ht4stab hts2ti ht4s3tur ht4s3tÞr htt4 htti2 htu2e h2t1urs ht3z2 hu2a hu2b1a hu2bei hu2b1en hu2b3l hu4b3r hu2bu hu2h1a hu2h1i huk3t4 hu2l3a hu2lÃĪ hu2l3ei hu4leng hu4lent hu4ler hu2let hu2l1in hul3l hu2lo hu3m2a h1ums hu2n h1una hu3ni1 h1ups 2h2ur hurg2 hu3sa hu2so hus4sa hus3se hus2sp hus4st hu2tab hu3t2h hu2ti hut2t hut4zen hut4z3er h2Þ h4Þbs h3Þbu hÞhne4 2h1v hvi2 hvil4 2hw h2wall hwe1c h1weib h1weih h2wirr 3hyg hyl4 3hyp hy2pe. 2hy2t 2h1z hz2a hz2o hzug4 i1a 2ia. i4aa i2ab iab4l 2iac i2af iaf4l i4a3g2 i2ah i3ai i2aj i2ak i3ak. i3akt 2ial i5al. ia2l1a4 ia2lÃĪ ial3b ial3d i3alei i3alent i3a4lerf i3alerh ia4l3erm i3a2let i3a4lia ialk2 i3al5l ia2lor ial3s ial3t4 ia2lu ial3z2 i2am4 i4amo 2ian ia2nal i3and2 ian2e i3ann i2a3no i3ant i3anz i2ap ia3pf ia1q i3ar. ia2ra i2asc ia3sh i2asi i2a1sp ias5s iast4 i3at. i3a2ta i4ate i3at4h 1iatr i3ats i3au ia3un iau2s1 2iav 2iÃĪ i1ÃĪm i1ÃĪp i1ÃĪr. i1ÃĪrs i1ÃĪt. i1ÃĪta i1ÃĪt3s4 2i1b ib1art i2b1auf ib3be ib2bli ib1ei i2beig i2beis ibe4n iben3a ibi2k i3bla i4blad i3blÃĪ i3ble i4bleu ib2o i2bÃķ i4brÃĪ ib3ren ib2ser ib4ste i2bunk i2bunt ibus1c ibus3s 2ic ic1c ich1a ich1ÃĪ i1che ich1ei ichermas8 ichgro3 i1chi i2chin ich3l i3chlo ich3m ichmas4 i1cho i2ch3r ich3ter ich2tr i1chu ich1w i1ci icks2 i1cl i1d id2ab4 i3d2ac i3dam id1au idbu4 1i2dee idein3 i4deis idel2ÃĪ ide3so 1i2dio idni3 i2dol 1idol. 2i2dr i3dsc id2s1p idt4 1i2dy ie3a4 ie2bÃĪ ie2bl ie2bre ie2bri ieb4sto ieb4str ie1c ie2cho ie2dr ie1e2 ie2f1ak ie2f1an ie2fau ief3f4 ief2i ie2f3l ie2fro ie4g3l ie3g4n ie2g3r ie3g4ra ieg2s iegs1c ieg4se ieg4s1t i1ei i2e2l1a ie3las iel3d i2ele iel1ec ie3lerd ieler8geb ie4less i2eli i1ell iel3lÃĪ ielo4b i2els2 iel3sz iel3ta 2i1en i3en. i3ena iena2b ie4n3a4g i3e2nÃĪ ien3d i2ene ien1eb ie3ner ien4erf ie4n3erg i3enf i3eng ienge4f i3enh i3enj i3enk i3enm ienma3s4 i3enn i3e2no i3enÃķ i3enp i3enr ien3s2e iens2k ien6st5er ien6stop iens4tr ienst5rÃĪ ien3sz ie1nu i3env i3enw i3enz ie1o2 iera2 ier3ad ier3an ie2r3ap i2ere ie3red ie3r2er ie4rerf ie4r3erz ie3res i3ereu ierf4 i4eri ierin3 ier3k4 ierken4 ierma6ss i1ern i3ern. i4erna i2er5ni ie2rÃķ iers2e ier4s3eh ier3sta ier3te ie3s2 ie4sh ie4s3k ie4spu ies4s iess1t ie4stas iest6e ie2t1a ie4t3erh ie4t3ert ie2t3ho ie2t1o ie2t3Ãķ2 ie2tri ie2t3ru iet2se i1ett ieu2e ie1un ie2w3u i1ex 2if if1ar i2f3arm if4at if1au i2fec ife2i if2en if1erh if2fa iffe4s if6feste if2fl if4form iff2s if3l i1f4la if4lÃĪ i1flÞ if3r if4ra i1frau i1fre if4rei if4rÞ if3sa if2ta ift3erk if2top if2t3ri ift1sp ifts2t ift3sz 2i1g iga1i i2g1ang ig1art iga3s i4gefar ige4na ige2ra ige3ran igerma3 ig1erz i2g1im i2gl ig1lÃĪ i4glo ig4na i4gnÃĪ i3g4neu ig4no i3go ig4ra ig3rei igro3 ig3s2a ig4sal igsau4g ig1so ig1sp ig2spa ig4sti ig4s1to ig2stÃķ ig4s3tre 2i1h i2h1am i2har i3he ihe1e ihe4n ih3m ih3n ih3r ih2s ih3sp i2h1um ih1w ii2 ii3a4 i1ie i3i4g i1im i1in i1i4s i2is. ii3t i1j 2i1k ik1ak ika4ka ik1amt i2k1ano ikanten8n ik1anz i4kanze ik1art ik3att i2k1au i2k1ÃĪr 4ike i2k1ei ik2e2l1 i2k1e4r2e ik1erf iker6fah i2k1er2h i2ker2l i2k1eta i3ki. ik1in i2kind i2k3l i3kla i3k4lÃĪ i2kn ik3no ik2o3p4 ikot3t i2kÃķl ik3ra ik3rÃĪ ik3re ikro3 ik3so ik3s2z ikt2e ikt3erk ikt3r ik2tre i3kus i1la i2l3ab il1a2d i2l1ak i2l3a2m il1ans il1asp il1au il4aufb il3aus i2laut i1lÃĪ1 4ilb il2c il2da il4dac il4d3en4t il3d2er ild1o il2dor il2dr il1ec ileid4 il1ein il1el i4lents i2l1erf i2l1erg i2l1err il2erz il2f3l il2f3re ilf4s1 ilg2a il2gl ili3e4n1 ilig1a2 ili4gab i2l1ind i2l1ip i3lip. i3lips 2ill. il3l2a il4lad ill4an il2lÃĪ2 il2leg ille4ge il3l2er ill2i 2ills il2mak il4mang il2m3at il2m1au il2min 2ilo i2l1or ilt2 il3th il3tr i1lu2 i2lum i3lus ilv4 il2zar ilz3erk 2im. i2manw i2m1arm im4at ima2tr imat5sc ima4tur 2ime i2mej i2m1ele i2melf i3men i2m1erf i2m1erz i4mesh i2meti i2m1inf i2m1ins im4m3ent im4mit im4mod imni2 2imo im1org imp2fa 1impo imp4s im3pse 1impu im2str 2imt imtu2 2imu in1ac in3ach. i4nack i2n1ad in2af ina4lin in1am i3nap in2ars in2art ina4s i2n3au2 inaus1 in1ÃĪh in1ÃĪs inbus2 in2dal in2dan in3dau indes4t 1index in3do 2indr ind4ri in3drÞ 1indus in3d2Þ 2ine i2n1e2be in1ehe i2n1eng in3erbe i4nerbi in2erh iner4lÃķ i4n3er4tr i3nes i4nesk in1eu ine3un ine2x in3f 1info. 1infos 2inga ing1af in2g1a4g in2gl ingmas4 ing3sc ing4sto 1inhab 2inhar 2inhau 4inhe in2i3d 2inig ini3kr in2ir 2inis ini3se i3nitz 3inkarn ink4ste in3k2Þ inma4le 2inn. in4n3erm in2neu in4ni2v 2innl in2nor inn4sta 1innta 2ino in1od in3ols in1or ino3t i1nÃķ in1Ãķ2d 2inp 2inr ins2am insch2 2inse. in2seb 2insen ins3ert in3skan in3skr in4s3tÃĪt ins2te ins2ti in3su 1insuf in4s3um in3s2z i4nt 2inta 1integ int2h in3t4r int3s in1u i3n2um in3unz invil4 i1ny i1Ãą 2i1o ioa4 io1c io2d i2oda io3du io3e2 iof4l i2o3h io2i3d io3k4 i3ol. i3om. i3oms ion2 i3on. ional3a io2n3au ion3d i3on4s1 ions3p ion3t i2ony i2o1p io4pf i3ops i3opt i2or i3or. i3orc iore4n i3orp i3ors i3ort io3s i2ost ios2u i3ot. i3ots i2ou i2ov io2x i3oz. i1Ãķ2k i1Ãķn i1Ãķs. 2ip. i1pa i1pe ipen3 i3per iph2 2i1pi ipi3el ipi3en i3p4l ip2pf ip2pl i1pr 2ips 2ipu 2i1q i1r2a i3rad 1i2rak ira4s irat2 i1rÃĪ ir1ÃĪh ir2bl ir1c ir2e i3ree 2irek irg2 ir2gl irg4s ir2he ir2i 2irig 2irk ir2k3l irli4n ir2mak ir2mau ir2mÃĪ ir2m1ei ir2mum ir4m3unt 2irn ir2nar ir2no i1ro 1iron i1rÃķ irpla2 ir2rei irre4l ir4reli irr2h ir4schl ir4schm ir4sch3w ir3se ir3sh irt4s1t 2iru iru2s1 i1s i3sac i4s1amt is2ap is3are i2sau i2s1ÃĪn 2isb i2sca i3s2che i4schef i4sch3e4h i4sch3ei i2sch1l isch3le i2schm isch3ma isch3ob isch3re isch3ru i4schwo isch3wu i2s3cr 2ise ise3e ise3ha ise3hi ise3inf i4seint ise2n1 ise4n3a is2end isen3s i2serh i2s1erm iser2u i2s1ess i4s3etat isi2a i2s1id i2s1of iso2n isonen4 iso6nend is1op 3i2sot 2isp is1pa i2spar is1pe is1pic is2por i2spro is3sa is4s1ac is4sau is3sc is4s3che is3senk issermas8 is3so is3spa is4sper is3spo is2s1t is3sta is4ste is3sto is3stu is2su i2stab ist3ac i4stam ist2an i4stea iste4n is2ter ist4ra is3tras3 ist3re is1trÞ i2stur is1tÞm i2sty isum3p i2sÞ i1ß iß1ers i1ta it1ab. i3tag ital1a ital5l it1alt it1a2m it1ang it3a4re it1art i3tat it1au i3tauc i2tauf i2t1ax 4i1tÃĪ i2t1ÃĪs itÃĪt2 i1te i2tei i4t1eig i4t1ein 2itel ite2la ite4n itens2 i4tepo i2tex i3thr i1ti i2t1id 1itii iti4kan iti3k2e i2t1in1 it2inn i3tis it3iss i3tiv i4tl itmen2 i1to i3toc i2t1of i1tÃķ i1tr i3tra. it3raf it3ran it3ras it3rau it3rÃĪu it3re it3rom it4ron i3tru it3run it2sa it4s1a4g it2s1e4 its3er1 it4set it4stec it4s3tem it4s3tes it2sti it4stie it2s1to it6stra6s it2teb it4temp it2tri i1tu it1uh i2t1um i2tuns it1urg itut4 i1tÞ 2itz it2zÃĪ it4z3er4g it2z1w 2i3u2 ium1 ius1t i1Þ 2i1v i2v1ak iv1ang i2veb iv1elt ive4n iv1ene i2v1ent iv1erl i2v1ur 2i1w iwur2 2i1x i2xa ix2em ixt2 4i1z iz1ap iz1au iz2ei izei3c ize2n i2z1ene iz4er i2z1ir izo2b i2zÃķ i2z1w í1l jah4rei jahr4s ja3l2a ja3ne jani1 jani3t2 2jat je2a jean2s je2g jek4ter jektor4 jek2tr je3na je2p je2t1a je2t3h je2t3r jet3t je2t1u2 ji2a ji2v joa3 jo2b1 job3r jo2i joni1 jo1ra jord2 jo2sc jou4l j2u ju2bl jugen2 jugend3 ju2k jung5s ju3ni jur2o jute1 2j1v 1ka 3ka. k1a2a ka3ar kab2bl ka2ben 2kabh 2kabla 2kablÃĪ 2k1a2bo ka3b4r 2kabs 2k1abt ka1c k2ad 2k3ada 2k3a2dr ka1f4l ka1fr kaf3t2 k2ag ka1in ka3ka kaken4 ka1k4l 2kakt 2kala. ka2lan ka3lei ka3len. ka4lens kal3eri kal2ka kal2k3l kal2kr k1all kal3lÃķ3 kalo5 kal2tr ka2lu k3ama kamp8ferf kan2al ka4n1a4s ka2nau kand4 2kanda kan2e 2k1ang kank4 2kanl 2k1anna k1ans k2ans. 6kantenn ka3nu3 2kanw k2anz. ka2o 2k1apf 3kara 2karb k2ard k2arg kari3es k2ark 2k1arm karp3 kar2pf k2ars kar3t k2arta 2k1arti karu2 k2arw kasi1 ka2sp kas3s ka3tan ka3t4h ka2t3r kat3se 2katt kau2f1o 4kaufr kauf4sp kauf6s5te k1aus kau3t2 2kauto 1kÃĪ k1ÃĪh k1ÃĪ2mi k1ÃĪn kÃĪr2 kÃĪ2s5c kÃĪse3 kÃĪ3th 2k3b2 kbe1 kbo4n kby2 2k3c 2k3d2 kdamp2 2k1ec k1eff kefi4 kege2 ke2gl ke2he. kehr2s kehrs3o kehr4st 2k1eic 2k1eig k1ein ke1in2d 2keinh 2k1eise ke2l1a ke3l2ag ke2lÃĪ kel3b4 2k1e2lek ke2len ke2l1er 2kelet kel3la kell4e kel3li kel3s2k k4elt 2k1emp k2en. ken3a ke4nac ke2nÃĪ kenbu5s4 ken3dr 4ken4gag 2kenlÃĪ ke2no ken4sem kens2k ken5s4te ken3sz k3en4te. k3en4ten ken3th 2k1ents 2kentw 2kentz 2keo2 ke2pl k2er. ke1rad k2erc ke3reig 4kerfah k4erfam k3ergeb ker6gebn k3er2hÃķ ke6rin6nu kerin6st kerin4t ker4ken k2erko k2erl k4erl. ker4lau k3er4leb k6erlebe k4erlÃķ ker4neu k1ero ker4reg k2ers. kerz2 k1erz. ker4zeu 2k1er2zi k6es. ke2sel ke2t1a ke2t3h ket3s ke1up keu6schl 2k1e2x 2k3f4 2k1g2 2k1h4 kho3m ki3a4 ki1ch 2k1i2de ki3dr ki2el kie2l3o ki1f4l ki1f4r ki3k4 2kil2a ki3lo k2imi k2in. k2ing 2kinh k2ini k2inn ki3n4o kin3s 2k1inse 2k1int ki3or kio4s 5kir kis2p kis5s kist2 kiv2 2kiz ki3zi 2k3j 2k1k4 kl4 4kl. 4kla. 4kland k4lar 4k1last k3laug k2le 4kle. kle2br k3lee 4kleh k4leid 4k3leit k3lem. 2k3ler kle2ra 2k3leu kle3us 2klic 2klig k2lim k2lin k2lip k2lir k2lisc 2klist klit2s 4kliz 2k3loc klo2i3 k3lor klos2 2klos. klo3sse klost6 k2lÃķt k1lu k2lud kluf2 k2lug k1lÞc 2kly 2k1m kmas2 k2n2 3knab k3ne k4nec k4nei 2knes kni4e kno4bl 2k5nor k3nu 3knÞ 1ko ko2al 2kobj 2k1o2fe koff4 koh3lu ko1i2 kol2a ko3le kol2k5 3kom ko4mu k2on ko3n2e kons4 ko3nu 2kop. ko1pe kop4fen 2kops 2kopz ko1r2a 2k1orc kor6derg ko3ri kor4n1a k2os ko2s1p ko3ta kot1s2 kot4tak 2k1ou 3kow ko2we k1o2x 1kÃķ kÃķ2f k1Ãķl 2k1p2 2k3q k2r4 2k3rad k4ral kra4s3 k3rats 2kraum k4raz k4rÃĪc k4rÃĪn 2k3rÃĪt 2k3rÃĪum 2kre. 2k3rec 2kred. 2k3rede 2k3ref 2kreg k3reic kre1i2e4 kreier4 k3reih 2k3rh 2krib 2k3ric k3ries 2krip 3kris 3k4ron kro4ss 2kruf krÞ1b 2k1s k4s1amt k2san ks4ana k2sau k2s1ÃĪl ks2ÃĪn ksch4 ks1e2b k2sent ks1erl k2s1ers k2s1erw k3shi k2s1id k2s1in k2s1o2 ks1pa ks2pat k3s2pe ks2por ks2pu kss2 kst4 k2stal k4s3tanz kstat4 k4stea k2s1tis k2s1tor k2strÃĪ k2stum k2s1u ks2zen 4k1t k2t1ad k3tag kt1akt k3tal kt1am kt1an k2t3a2r kta4re k2t3au ktau2s ktÃĪ3s kte3e kt1ei k2temp k2tent k4t3erfo k2t1erh kte3ru k2tex k2th kt3ho k2t1id kt1im k2t1ing kt1ins kti4ter k2t1of k3top k4torga kt3orie kt4ran kt3ras kt4ro kt3run kt3s2 ktt2 k2tuns kt3z ku1c ku2h3 2k1uhr kul2a ku3l2e ku3l2i 2kulp 2k3uml kum2s k2u3n2a kun4s kunst3 2kunt 2kunw 2k1up. kur2bl ku2rei kuri2e ku2ro kur2sp kur4st ku4schl ku2sp kus3ses ku2su ku2ß 1kÞ kÞ1c kÞr2s 2k1v 2k1w 2k3z2 kze3l 3la. 3l2ab. la3ba 2labb lab2br 4l3aben 2labf 2labg 2labh 2l1a2bl lab2o l2abr lab4ra lab4ri 2labs l1abt 3labu 2labw la1ce la2ce. 1lad lad2i l1adl 2ladm 2l1a4dr l1adv 2laf la2fa laf3t la2ga la2gio la2gn lago2 la2g1ob lag5s2e 2la1ho 1lai lai4s1t la2kes la2k1i l2akk la1k4l 2l1al 4lalp l2ami la3min lammen8ge 1lammf l2amp 4l1amt lamt4s la4mun l1anal la2nau 2lanb 3l2and lan2d1a2 lan4d3au lan6d5erw lan6d5erz lan2dr lan4ds laner2 2lanf lan2gl lang3s2 l2anhe 2lanl 4lanli 2l3ann l1anp 2lans2 4lansÃĪ 2lantr lan2z1w 3lao 2l1apf l1a2po lap4pl la2r1an la2r1ei la4rene 3l2ar3g lar3ini l2armi 2l1ar3t l3arti la2ru la2sau 4lasd la5se 3lasg 2lash 2lasi la2so 2la2sp 3lasser la2sta last1o la2str las3tur la2stÞ 1la2ß3 lat2a la3t2e la4tel 2l3ath la2t3ra lat2s 2lat2ta lat4tal lat4tan lat4t3in lat2t3r 1laub. laub4se lauf1i lau4fin lau2fo 1laug 3laun l2aus. 2lausl 2lausr 2lauss 2lauto 1law lawa4 lÃĪ1c 2lÃĪf 2l1ÃĪhn 1lÃĪnd lÃĪr2m1a l1ÃĪrz lÃĪ2s5c lÃĪ4s3s 4lÃĪt 2lÃĪub 2lÃĪuc 2lÃĪue 1lÃĪuf 1là 4l1b l3bac lbb2 l2b1ede lb3eise l4beta l2b1id l2b1ins lb2lat l3blÃĪ lb3le l2bli l3blo l3brec lb3rit lb2s lb3sa lb3se lb4sh lb3si lb4sk lb3sp lb4st1e lb4sto lb2u l2b3uf lbus3s lbzei2 2l1c lch2au l3che l4chei l5chen lchermas8 l3chi lch3l lch3m lch3n lch3r lch3s lch3Þ lch1w l3cl l3co 4l1d ld3a2b1 l3d2ac ld3ack l2d1a2d lda4g l2d1ak ld1al l3dam ld1amm l2d1a2n ld3ane l2d1a4r ld3ari l3das ld1au ld1ÃĪr ldbus2 l3de. l2deh l2dei l2dele l3der. l3d2erl l3d2ern l2d1er2p lder4tr l2d1e2se l2dex ldi2c l2d1id l2d1im l2dob ldo2r ld2os ld2Ãķ2 ld3r l2dran ld4ros l3d4ru ld4rÞ ld3sa lds2t ldt4 ld3th l2d1um ldy3 ldys2 1le 3le. le2a le3an le3ar 3le3ba leben4s le2bl 2lec lech5t4e 3led 4ledd le2er lef2a le2g1as le2gau le2gÃĪ le2gl 3leg4r 3leh leh3re 4lehs 4leht lei4bl lei2br l2eic l2eid 4l1eig le2im l2ein. leinbu4 leinbus5 l2eind lein4du l2eine lei6nerb 4leink l1einn l2eint l2einu lei6schw lei6ss5er lei4str lei4ßer l2eit lei2ta lei8t7er8sc lekt2a 2lektr 3l2ela 2l1e2lek l2eli lel3s 3lemes le2m1o2 4lemp l1emu l2en. le4nad le2nÃĪ 4lendet 2lendu 4lendun le4n3end 4lenerg l1engl le3ni l2enk 2l1enni le2no len4sem len3sz 2lentf l1ents 2l3entw lent4wÃĪ 5lentwet len2zi le1os 2lep 3lepa 3lepf lep4pi 3lepr l2er. l2e1ra le2ra4g le2rap le2rau lerb4 l3erei4g ler6eign le4r3ei4m le4rers 2l1erfo l2erfr l2erfÞ l3ergeb 3lergeh l3ergen 3l4ergew 2l1ergi lergro3 lerin4s lerk2 l2erka l2erko l4erlei le1ro le2rob 2l1erÃķ 3l2erra l4ers. lers2k 3lerw l4erwa 2lerwo 2l1erz l2erza ler2zi les2am les2e 2l1esel le3sh lesi1 le3sk les2ko le2spo les3s leste3 4lesw 2lesy le2tat 2le3th let2to2 le2u 4leud 3leut 2lexe le2xis 2lexz 2l1f l3fah lfÃĪs3 l2f1ec lfe1e l4feis l3f4lÃĪ lf3lo l3f4lu lf3ram lf2s lf4spe lf4s1ti lf2tr lf4u lfun2 lfur1 l3fÞ 2l1g lg1art l3gas lga3t lg1d4 lgen2a lge3ra lgerÃĪu3 l2geti lg2lÃķ l3go lgoa3 lg3re l3gro lgro3s lg2s lg4s1t 2l3h2 3lhi. 1li 3l4ia li3ac li2ad li3ak li3ar lib4 libi3 li1c 3lic. li3chi 4lick li3d2a 2l1ido li4ds l2ie liebe4s li3ene lie4s3c lie4sta lif2fo 3lig lig4n li2gre ligs2 li3ke li3ko lik2sp lik4ter li3l2a li3li li3m2a 2l1imb 3limo 2limp li3n2a lin3al 2l1indu li4ned li2nef li2neh li2nep li2nes 2l1inf ling4s3 2l1inh 2l1in1it 2l1inj lin2k1a link2s li2nol l2ins. l2insa l2insc 2linsp 2l1int li1nu l1inv 2linz li2o li4om lion5s li3os. li2p3a 2li2po 3lipt 3lis. li3s2a li4schu 2l1isl 2l1i2so li2sp liss2 2liß li2tal li3te li1t2h lit1s2 lit3sz li2tur 3liu liv2e livi1 2lixi li2za lizei3 4l1j 2l1k lk1alp l3k2an l3kar. lken3t lk2l lk3lad lk3lic l2k3lÃķ l3k4lu l3k2me lk4ne lk5ner lkor2b1 lk4ra l2k3ru lk2s1 lk3sÃĪ lk4stÃĪ lk2Þ 2l1l ll1abb lla2be l2labt lla2de ll1aff ll1akt l3l2al l2l1a2m ll3ama lla2n ll2anw ll1anz ll1arm lla6tern l2lau ll3aufg ll3aufk ll3aug ll1aus l4lausf l2la2w l2lÃĪd l2l1ÃĪm l2lÃĪu llb4 llch4 ll3d4 l2le2b l3lec ll1ech l2l1ef lle2gu lle2he l2leib ll1eim ll3eise ll2em l3len. lle4n3a ll3endl llen3dr ll3en4du ll2eng l4lents l3ler. lle2ra l6lereig ller4fo ller6geb l6lergen l4lergo ll3ernt ll3ertr ll6erwei ll2es l2le2se l2leuc l3leur. l2lex llf4 llg4 l2lic l2lieb l2lieg l3lik4 lli4la ll1imp l2l1ind l2l1ins llin6sen llk4 ll5m lln2 ll1ob l2lobe l2lo2d l2l1of llo2gi ll1opf l2l1o2r l3lor. l3lore llo2te l2l1ou l3lÃķh ll3sÃĪ ll3sh ll3s2k ll2spr ll4stor ll3t llti2m llt4r llts2 llu2d llu2f llu2me l2lu2p ll1ur llust6 l2lÞc llÞ2d ll3z2 4l1m l3ma. l2m3a2b l2marc lm1art lmÃĪ2s lm1ÃĪ4st lm1c lm2ei lm3eins lme4na l2m1e2p l2m1erz lm1ind lm1ins lm3m l2mÃķl lm3p lmpf4 lm3s2z lm3t 4ln lna4r ln3are l3n2e l3ni l1nu l1nÞ 1lo lo4ak 3l2ob. lo2ber 2lobj 2l1o2bl l2obr lob4ri 3lodr l1o2fe lo1fl lof4r lo2gau lo3h2e 2l1ohr loi4r 3lok lo2k3r lol2a l1o2ly lo2min l4on lo2n1o lo2o 2lopf lop2pr 2lopt lo1ra lo2rak lo4rÃĪ 5lorb 2lorc l1ord lo3ren 2l1or3g2 3los. lo4sa 3lose lo4ske lo2spe loss2e lo4steu lo2s3to lo2s3t4r lo2ßu lo2ta lo3tha loti4o 2l1ov lo2ve 2lox 1lÃķ lÃķ2b3 2lÃķck 2lÃķd l2Ãķ2f 2l3Ãķfe 4lÃķg l1Ãķhr 2l1Ãķ4l 4lÃķß 2l1p l3pa lpe2n3 lp2f l2p1ho lp3t4 l3pu 2l1q 2l3r2 lra4ss lrat4s lrÃķ4 lrÃķs3 lrut4 lrÞ1b 4l1s l3sac l2sa2d l3s2al l4s1amb l4samt l2sanf l2sang l2sann l2sanz l3sare l2sau2 ls2ÃĪm lsÃĪ4s l4schin l4schmÞ l3se. l2s1e2b l2s1ec l2s1em ls1ere ls1erg ls1erl l2s1ers l2s1erw l3ses l3s2ex l4s3ha l2s1id l2s1imp ls2log ls3ohne l4s3ort. ls2Ãķ l2spac ls2pe l3s2pi ls2po ls2pu l3spul ls3pun ls3s2 lst2a lstab6 ls2taf l4s3tÃĪti l2s1tis l2stit ls1tor l4stor. l4store l4stors ls2tr ls1um l2sun 6l1t l2tab ltag4 lt1ak lt1am l3tami lt3and lt1ang l4tarm lt1art l2t3ato l2t1au lt1eh lt1ein l2t1eis lte4lem l3t2en lten6gel lter3a lter2f l3t2erg lter6ken lter6leb lter4nÃĪ lt2erÃķ lte3se l2t1esk lte3str l3tet. lte2th l2t1eu l2th l3thas lt3ho l3thu ltimo4 l2tob l2t1of l2t1o2ri lto2w lt1Ãķl l3tÃķn lt1Ãķs lt1Ãķt lt4rak ltra3l lt3rÃĪu l2t3re lt4rie lt3roc lt3ros l2t3rÃķ l4ts lt1spa lt4stab lt5ste ltt2 lt1uh l2t1um ltu4ran ltu2ri lu1an 4lu4b3 luba2 lubs2 lu2dr lu2es 1luf 2l1ufe 2luff luf2t1a luf2t1e luf2tr lu2g1a lu2g1e2b lug3erp lu2gi lu4g3l lu2go lu2g3r lu2gu 2l1uh lu1id. lume2 2lumf 2l1umj 2lumk 2luml 1lumpe 2l1ums l1umw 1lu2n 2l1una 2l1unf 4l1uni 2lunt 2lunw 4lu2o lu2pf 2lur l1urn l1urt 2luse lu2sp lus4s3a lus2s1c lus3sen lus2s1o lus2s1p lus4s1t 1lus2t lu2st1a lu4stÃĪ lu3str lust3re lu2s1u 4lu2ß1 lu2t1a lu4teg luter2 lu4t3erg lut1o2f lu2top lu2t3r lut5schl 3lux 2lÞb 2lÞd lÞh1l 2l1v 4l3w 2lx 1ly ly1ar ly3c 2lymp 3lyn ly3no ly1o lys2 ly3te ly1u 2l1z l2z3ac l3z2an l2z1ap lz1ar l2z1ÃĪr l3zen lz2erk lz1ind lz3l lzo2f l2zÃķ lz3t2 l2z1u4fe lzug4s lz1w lz2wec 1ma maa2 m1ab m2abe 2mabk 3m2ab4r 2mabs ma3chan mach4tr ma2ci ma3da m2ade 2madm ma2d4r ma4d2s ma1f ma2ge. ma2geb ma2gef ma2geg ma2gek ma2gep ma4ges. ma2get ma2gev ma2gew 2m1agg magi5er. magi5ers 2magm ma3g4n 2m1ago mai4se 2m1akt mal1ak ma4lakt ma2lan ma4l3at ma2lau ma3le mal2er mali1 mal3l mallÃķ3 2mallt malu4 ma2l3ut mam3m 2m1anal ma2nau 2manb man4ce. man3d2 man3ers ma2net m2anf 2m1angr m2anh 2manl m4ann man3s 2mansa 2mansÃĪ 2mansc man4sh 2mantw manu3 2manz ma2or 2m1apf m2app 2m3arb mar3g2 mar2i 4ma3r2o maro3d 4marr mar6schm mar6schr ma3r2u m3arz 3mas. ma1s2pa 2m1aspe ma3sses mas6ses. mas6sest ma6sset ma3s2su 3mas2t ma2ta2b ma2tan mat4c ma2tel ma4t3erd mat3se mat1sp mat3url 2m1au2f 3maul ma3un 2mausg m4ay ma1yo 1mÃĪ 2m1ÃĪhn mÃĪ1i2 4m1ÃĪnd 3mÃĪnn 2mÃĪo m1ÃĪrg mÃĪ1t4r mÃĪu2s1c 2m1b2 mbe2e mb6l m3b4r 2mc m3ch 2m1d md1a m2d1ÃĪ m2dei mds2e m2d1um 1me meb4 me2ben m2e1c medi3 medie4 medien3 2medy me1ef mee2n1 mee4r3ei mega3 3meh 2m1eif 2m1eig mei3l2 mein4da m2eis2 me1i2so me3lam me2lau 3meld me2lek me2ler melet2 2melf. mel2se mel2sp mel3t4 6mel6tern 2m1e2mi 2m1emp m2en. mena2b me3nal men3ar men3au 2mendl men3ge m4ens men4sk men2so men3ta 2mentn ment4sp 4m3entwi me1o 2meou 2meÃķ 3m2er. me1ra mera1f me2r3ap me4rens mer2er 4m3ergÃĪn merin4d merin4t m4ersh merz4en 3mes me2sal me2sÃĪ mes2e 4meser 2me3sh 4m1essa mes6ser6g mes2s1o mes2s1p meste2 me2str 4mesu 3me2ß1 m2et me3t2a me3th me3tr meu1 2m1ex 1mÃĐ 2m1f4 mfi4l 2m1g2 2m1h4 1mi mi2ad mi3ak mibi1 mi1ch mi3da mie3dr mi2e1i mie3l mi2er mierer4 mi2et mie4ti 3mig mi2kar mi2ki mi2ku mi3l2a 3milb 3milc milch1 mil4che 2m1imp min2en min2eu min2ga mi3ni min2o mi1nu 3minz mi2o mioni1 3mir. mi3ra 3miri 3mirs 3mirw mi2sa mi4scha mi4schn mi4sch3w mise1 mis4ser mis3si mis4st mi2sta mi2ß1 3mit1 mi2ta mi2th mi2tr mit3s2 mit5sa mi3tsu mit3ta mi2tu 4mitz 2m1j 2m1k4 m3ka mk5re. 2m1l2 ml3c ml3s 2m1m m2mab m2m1ak m2m1al mm1ang m2m1ans mm1anz mm1art mma2ß m2m1au mmÃĪ4 mmd2 m2me2c m4meh m2mei mm1ein mm3eise mme4lin mme4na m4mentw m2me2nÞ mme2ra mme4rec mme2s3a m2me4te mm1inb mm1inf mm1inh mm1ins mm1int mmi3sc m4mita mmo2du m2mo2l m2mor m2m1Ãķ mm3p2 mmpf4 mms2 mm3te m2mum m2mus 2m3n2 m4nesi 1mo moa3 2mobj 3m2od mode3s mo2dr 4mog. mo2gal 3moh mo2i3 mo2k1l 2mol. 3mom mom2e 3m2on mo2nÃĪ mo3ne mo4n1er mon3s 3mo2o 2m1ope 2mopt mo1ra mo2rar 2m1orc mor4d3a mor2dr mo2rer 3mos mo3se moster4 3mot m1o2x mo1y 1mÃķ mÃķ2c 4mÃķk m1Ãķl 4m1p mpa3ne m2pf mp4f3erg mpf3erp mpf3err mp4f3erz mp2f3l mpf1or mp1hos mpi3as. m4p3lem. m2p3len m2p3les mp4lif m3pon mpot2 mp3ta m3pu 2m1q 2m3r2 2m1s m2san ms3and ms1as m3sÃĪ msch2 m4s1ef ms1erf ms1erw ms1ini mso2r ms1ori m2spÃĪ m2sped ms2por m2spot m2spro ms2pu ms3s2 m4stag m2stal m2sÞ 2m1t mt1ab mt1ak m3tam mt1ar mt3are mt1ein mt1elt m2t1erf m2t1erg m2t1erl m2t1ers m2t1ert m2t1eta m2t1eu m2th mt3ho m2t1im m2t1ins m2tint mti2s mtmen2 m2tÃķl mt1Ãķs mtra4s3 m2trÃķ m4ts mt2sa mt2s1e mt3s2ka mts1p mt1spa mtt2 mt1um mt1urt mt3z 1mu mu1a 2m3uh mu3la 2muls 3mun mun2d1a 4m3unf 4m3ungeb mu3ni m4unk m2unr munt2 4munz mu3ra mu4r1u2f 3mus. mu4s1a mu2s1o mu2sp mu3s4se. mu3s4ses mu2s1to mu2str mu2su muße3 muts3t mut4str 1mÞ 2mÞb 3mÞh mÞ2her mÞl2 mÞl3lu 3mÞn mÞ3s4si 3mÞt 2m1v mvoll1 2m1w2 mwa2 mwa4r mwel4t3 mwu1 1my 2m1z mzug4 1na 3na. 2n1ab na2bÃĪ na3ber 4nabg 4nabh na2bl n2abo na2br 4n3abs 4nabt 3na2c nach1 na3chen nach3s nach8ters nacht8raum 4nadd n2ade 4n1a2dr n1af na1f4r 3n2ag na2gem 3n2ah na2h1a n4ahm n3ahn 3nai nai2e n3aig n3air 2n1ak na2ka 3nako n2al. na2l1a2 na4lal na2lÃĪ 3n2ald n4ale na4lent na2let nal3la nalmo2 na2lop nal2ph n2als. nal3t4 na2lu 2naly 3name na3me. n2amen namen4s3 4n1a2mer na3m4n 3namo nam2sp 2n1amt namt4s 2n1an. 4n1a2na 4nanb n1and2 4n1ang 2nanh 2nani 4nank 2nanl 3nann na3no n1anp 2nanr 4n1ans 2nantr 2nanw nap2si n1ar 5nar. na2r1a 2narc n2ard 4narg 3nari n2ark n2arle 2narm 4nart n3arti na3r2u 3nas n2as. na4schw 4nasp 4n1a2sy nasyl2 3naß 3nat n4ata n3a3t4h na4the 4n1atm nats1 nat4sa nat4sc 4natt n1au 4nauf nauf4fr n3aug 5naui 3n2aul 4nausb 4nausg n2auso 4nauss 4nausw navi5er. navi5ers 1nÃĪ 3n2ÃĪc 3nÃĪe 2n1ÃĪhn 3nÃĪi 2n1ÃĪ2m 2n1ÃĪn n1ÃĪrz 3nÃĪs nÃĪ2sc n2ÃĪ6s3s 3nÃĪß 2nÃĪu 3nÃĪ1um 2n3b4 nbe2in nbe3n nbe3r2e nbu3s nby2 2n1c n3ce2n3 nch3m 2n1d nd2ag n2d1ak n2danl nd1ann n2d1anz ndat2 n2d1au nd1c nde4al. n2dei nde4lÃĪn n4dentl n4d3ents nder6laß nder6lÃĪs nde4rob nde2s ndes1e nde4spe ndi2a3 n2dob ndo2be nd1op nd1or ndo2ri n2dÃķ n2d3rat n2d3re n2drob nd3rol n2drÃķ n2d3run nd2sor nd2spr nd3th ndt4r n2duns n2dÞ ndy3 1ne 3ne. ne2ap nea4s ne3at ne2bl 2n1ebn 2nec 3neca 3ned 2nee3 ne2e2i4 ne3ein n1ef neg4 2ne2he. 2nehen2 3nehm 4n1ehr 2n1ei 4neier 4neif 3neigt 4n3eing 4n3eink ne2ke nek3t4 ne2l 3nela nel3b 2n1ele 4nelek 4nelem ne3len ne3li 3nelk n2ell nel4la4 nel4lif 3ne3lo 3ne3lu n2em. 2n1emb nem4e n1e2mi 2n3emp 2n1ems 3nen n2en. n2en3a2 ne2nÃĪ n2enb n2enc 4n1endb 4n1endd 4n1endf n1endg 4n1endh 4n1endk 4n1endp 4n1endt 4n1endw ne2n1e2b nen3ei nenen1 ne4nene n2enf 4nengb nen4ge. nen4gen 4nengs 4nengt n2enh ne2ni n2enj nen3k ne2no n2ens nens4e nen3sk 5n2en3t2a n1entb 4n1entl 4nentn 5nentr n1ents 4n3entw 4nentz ne2n3u n2env n2enw n2enz ne2ob ne1os 2nepf 2n1epo ne2pos n2er. ne1ra ne2rab ne2r3af ne3r4al ne2r3am ne2ran ne2rap ne2rau nerb2 4nerbe. 4nerben n1erbi nere2 ne2reb n1erf 4n5erfo nerfor4 2nerfÞ 3nergr n1erh 4n3erhÃķ 3neri n2erj n1erk n2erli 2n1erlÃķ nerma3 nermas4 ner4mit n2ern. n1ernÃĪ ner4neu 4n1ernt ne1rÃķs n2erp 3n2ers. n3ersa n2ert. ne2rup n2erv 2n1erz n2es n4es. nes2c ne2sei ne2sev nesi1 ne3ska nes1o ne2sor ne2s1pa 4n3essi ne2tad ne2t1ak ne2t1an ne2tap n1etat ne2tau ne2th net3ha nett4sc n1e2tu net2zi ne2u neu1c neuer4f neuer4k neuer4s neuer4w neu3g 2n1eup neur2 n2ew 2n1ex 3nez 1nÃĐ 2n1f nf1ak nfalt2 n3far n3fi nfi4le. nf4l nf5lin nflÃķs4 nf2o nf4r nf2tan nft2o nf2t3r nft2s nft4ste n2f1u 4n1g ng2abs n2g1ac ng1ad n2g1ak n2g1a2m n2g1and ng2anf ng1anz n2g1ÃĪl ng3d4 n3gef n2g1ein ng2en ngen2a ngens2 n3ger nge4ram n4g3erse ng6es nges2t nge4zÃĪn ng3g4 ng3hu n2g1i2d n2glic n2glo n3g2loc ng3m n2gn ng3ne ng1or n3gra ng3rat ng3roc ngro3s ng2s ngsa4g ngs1ah ngs3au ng4s3e4h ngs3pa ng3ts n2gum 2n1h2 n3han n3har n3hau n3hÃĪ n3he nhe2r n3hu 1ni 3nia nib4l nibu2 nicht5er nich8ters n1id 3n2id. ni2de ni3dr n4ie nie3b ni1el nie3l2a nie4n ni3ene ni1ero nig2a 2n3i2gel 2niget nig3r ni2gre nig2sp 3nik ni2kal ni2kar ni3ker ni4k3ing ni3kl nikma3 ni2kr 3n2il nim2o 4n1imp nin1 3n2in. n2in2a 4n3ind 2ninf 3n2ing4 4n1inh ni2nor 2n1ins n2ins. 4ninse 4n1int 2n1inv ni2ob ni3ok ni3ol n2ip ni3ra 3n2is ni4schw ni2s1e ni3se. ni2s1p nis5s2 ni2stu ni3stun ni2s1u 2nit ni1th ni2ti nit4r nit4tec nit4tie nitt4sa ni3tu 3nix n1j 2n1k n2k3ad n2k1ak n3k2al n4k3alg nk2am n2kans n2k3au4s n2kÃĪh n2k1ÃĪp nke4lei nkelma3 nkelmas6 n3k2er n4k3erfa nk4erg nk1inh n2k1ins nk3len nk3les n3klin nk2lo nk4na n2k1ort nk2Ãķf n2kÃķl n2k3ro nk2sal nks2ei nk3s2z nk2tak nk2tan nkt1it nk4top nk2tru n2kÞb 2n3l2 2n3m4 nmen2s nmÞl3 4n1n nna2be n2nada n4n1all n2n1an n5nat n2nau nn3d nn4ens n4nents nner4fÞ nn2erh nn2erk nne2rÃķ4 n4n3er4wa nner2z nne2s1e n2ness nn2ex nn3f nng4 n3ni n2nof nn1o2r nn3se nn3s2p nn4s3pe nnst4 nn2th n2n1uf n2n1unf nn1ur 1no 3no. no2bla n2o3ble 3noblo 2n1obs no1c noch4r 2no2d no3dr n1of 2n3o2fe n3ole no2leu n2on. 3n2opa 3nor. nor2a no2rad n2o1rak no3ral 2norc nor4da nor2d5r 3norh 3norm 3nors n1ort 3n2os. no3se no3sh no2sp no4ss n2oste nost1r 2nostv nos2u no3tab no2tÃĪ no4t1ei no2tel no3t3h no4tha no2t3in no2top no2tr 3nov 3now 2n1o2x 3noz 2nÃķd 2nÃķ2f 2n1Ãķk 4n1Ãķ4l nÃķ4s3s 1n2Ãķt 2n3p4 npa2g npf4 npsy3 2n1q 4n3r2 nra4s3s nrÃĪu3s nre3sz nrÃķ2s1 6n1s n2sa2d n2sall n2sang n2sant n3s2arg n2saus n2s1ÃĪn nsÃĪ4s n2s1ÃĪus ns2ca n4schl. n3schu nsch7werd ns1eb nse2ha2 nseh5ere n3senk nsen4sp ns1ent ns1erf n4serfo ns1erg n2serh n3seri n2s1erk n2s1erÃķ ns1ers n2s1erw n2s1erz n3sex nsfi4l n2simp n2s1ini nsinn4s nsi2te nsi2tr ns2kal ns2kel n2s1op n4s3ort. nsp4 nspas2 n2spat n5s2pen n4speri n2sph ns2pi n2spo ns3pon n2sprÃĪ n4s3prie n4spro ns3s2 ns2t1ak n2stas n4stat. n4s3tate ns2tau n5s2te. n4st3eif n5stel ns4tem. ns4ten. n4stent ns2ter ns3term ns4tes. n5steu ns2tob n6stoffi nst5opfe ns2tor n4strac n6strieb nst4ru ns2tum nst2Þ nstÞ1b n2sty ns2um n2s1un ns2ung ns2unr n4s3zi 2n1t nt3abs n3t2a3c n3t2al nt1ang n4tanza nt2arb nt1ark nt4at n2tauf nt1ÃĪm n2t1ÃĪu n3te. nte3au nte2b nt1ebe nte1e nte3g6 nt1eh nt1ein nte5lei n3t2en nt4ene nten6te. n3ter ntera4 nte4ras nt4erh nt4ern nt4ers nt4ert n2t1ess n3tet nte3v nt2her n2t3ho n3t4hu nti3k4l n2tinf n2t1inh ntini1 n3tit nt4lem ntmen2 ntmo2 n3to nton2s1 ntras3s nt3rec n3t4ree nt3reif n3trep nt4rig n3trop n2t3rÞ n4t1s nts2o nts2p nt4s3par nts2ti nt4s1to nttÞ3 3n4tu. ntum2 ntu2ra ntu4re. ntu4res nt3z 1nu. 1nu1a nu4ale nu3ar nubi1 1nuc 1nud 3nue nu2es nuf2 nu2fe 1nug 2n1uh 1nui nu3k4 n2um. 2n3umb 2numf 2numg 3numm 2numr 2n1ums 2n3umz nu2n 2nuna nunf2 1n2ung 3nung. n3ungl 2n1uni 2nunt 1nuo 2nup 2nur 3nu2s nu3sc nu3se nus1i nu3sl nus1p nu4s1t 1nu2ß 1nut nu2ta nu2t3r 1nuu 1nux 1nuz 2nÞ4b nÞr1c 1nÞt 2n1v2 n3ver nvol7ler 4n1w nwei4st 2nx 1ny. 1nyh 2nymu n1yo 1nyr 1nys 1nyw 2n1z n2z1a4g n2zan n2z1au nz1ÃĪn n2z1ÃĪr nze4l3a nzel3l n4zense n4zentw n4zentz nz3erwe nzi2ga n2zinh nz1ini nz3le n2zor nz2Ãķl nzug2s n2zurk nz1wa n2z1wÃĪ n4zwir n2zwÃķ n2z1wu Ãąo1 2o3a2 o4abi o4ac oa3che oa3chi o4ad oa3de oa4g o4a3i oa3ke oak1l o4a3la o4a3mi o2a3s 3oase oa4si o4at oa3te o5au o1ÃĪ o1b ob2al obal2t1 2oban o3bar 2o3b2ÃĪ 2obb ob2e 2o3be. 2obea ob3ein obel2i 2o3b4en oben3d4 oben3se ober3in4 obe4ris 2obew 2o3b2i obi2t ob3ite 1obj ob1l ob3lei 1o2b3li 2o3blo 2o3bo o2b3re obs2 ob3sh ob3sk ob2sta ob3sz 2o3bu obus3s 2o3bÞ 2oby2 2oc oc1c o1ce och1a ocha2b o1che oche4b o2ch1ec och1ei ocher4k och3l och3m och1o och3Ãķ2 och3r ocht4 och3te o1chu ochu2f och1w o3ci ock2er ock3sz o1cl o3co o1ç o1d o3d2a od2dr ode2c o3d2e1i odein3 ode2n1 odene2 odesi1 ode3sp o3dex 2o3dia odi4er o3dir o3div o2don odo4s 2odr o2dre odt4 2odu o3dy 2o1e oe4b o2ec oe2d oe2h oe2l oe2n1 o4es o2et o3et. o3ets oe2x o1ÃŦ 2ofa of1ac of1au o2f1ei of2en o3fer of2fa of2f1in of2fir of2fix 1offiz of2f3l of2fo of2f3r offs2 off3sh of2fu of2fÞ 2ofi of3l of1la of4lÃĪ of4lÃķ 2ofo 2o1f1r of3ra of3rÃĪ of4rÞ ofs1a of4sam of2spe of2spr ofstra8ssen of2s1u 2oft of2tei of3th 2o1g o2g1ab oga3d og1ala og1ang o2g1ei oge2l1i ogenmas6 o3gh ogi2er o3gis og2lo og4n ogo4i3 og2s og3sc og3si og3s2p o1ha o1hÃĪ o1he o2h1eis o2h1er2t o2h1er2z o1hi ohl1a oh3lec ohl1ei oh3len oh3lep oh4lerg oh4l3erh oh4lerw oh3lo ohls2e oh2lu oh4n1ac oh3nee 3ohng oh2ni 1ohnm oh2n1o o1ho oho2la oh1o2p o2h3Ãķ ohr3a oh4rin oh1ro o1hu oh1w 2o1hy 2oi o1i2d o3ie o1im oimmu4 o1in oi2ra oi2re o2isc o3isch. oi3se o1ism oiss2 oi4st 2o1j 2o1k oka2la okale4 o3kat 3o2kel oki2o ok1lÃĪ ok2li ok4n 4okr ok2s1p okt4 2ol o1la o2lab o2l1ak ol2ar ol1auf o1lÃĪ ol4dam ol4dr ol1eie ol1eis oler2 ol1ex o1lÃĐ ol2fa ol2fl olf1r ol2fra olf3sp olf3st ol2gl ol2gr ol2i oli3k4 oli3tu ol2kl olk3r ol2kre ol2la2d ol2lak oll3ans ol2las ollÃĪ2 ol4l1ec ol4lei oll3ein ol2l1el oll5ends ol4lerk oll3erw ol4li4st ol2lo2c ol2log ol2lÃķ2 oll3sp ol2lu ol3lus o3lo ol2of olo1p2 ol1ort ols2t ol2str o1lu 3oly 1olym ol2z1a ol4z3ern ol2zin ol2zw 2om o2mab oma4ner om2anw om1art o2m1au o2meb om1ebe ome3c o2m1ei o3meis o2mel o2mene o2mep omer2 o2meru om1erz om2es omiet1 omil3l o2m1ind om1ing om1ins o2m1int om3ma om3me om3mu om1org om3pf omp4l oms2 omtu3 o4munt omy1 2ona ona2b o2nae o3nal ona4lin on1ap o2narb on4at on2au 2onÃĪ on1ÃĪh onbe3 2onc onderer5 2one one4i one2n1 on1erb o2n1erd on1erg on1erÃķ o3nett on3f2 on3g2l ong4r ong3s 4o3ni on2i3d o4nikr o4n1im on3ing on3k2 onli4n onlo2c on3n2an on3n2e ono1 o3nod o2noke on1orc ono3s ons1a onsa4g on2seb onse2l on4sh onsi2d ons3l ons1p onst2h on3t2a on4t3end ont3erw on2t3ri o1nu 2onuk on3v 1ony on3z o1Ãą oo2k3l o1op o1or oo4sk oos5s oo2su oo2tr 2o1Ãķ2 o1pa opab4 o2p3ad op3akt o3pan o1pec o1pei ope4n 1oper o1pes 2opf. op2f3a op3fah op4ferd opf5erde opf1l opf3la op1flÞ op3for 4oph2 o3phe o1pi opi5a2 opi3er. opi5ers. opin2 op3lag o2p3le op3li 2o3po op4pl 2o1pr 1opsi op3sz 1op3t4 o1q 2or. or1a or3a2b o1rad 2o1ral o2r3alm or4alt 3or2am or2and o2ranh or3arb o1ras or3att orau4 orau2s o3rÃĪ or1ÃĪnd or1ÃĪt or2bar orb2l or1c 2orca or2ce 2orda or2d1am or4dar or4dau or4d3eng or2deu or4d3ing or2d1ir or2dit 1ordn or2do 2ordr 2ords or2dum 2ordw 2ore ore2a ore2b o2r1eck o2r1ef ore2h or1eig o2rein or1er o2rerf or1eth o2r1eu 2orf orf3s2 or3g4a 2orget or3g2h 2orgia orgi1e or2gl or3gle or2gn 2orh 2o3ric 4orie. o4rient o3rier 4oril 4orin1 or1ins ork2a or2k3ar ork4r 2orm or4mans or4ment 2orn or2nac or2n3ar or2n3ÃĪ or5ne. or3n2o 2o1ro or1o2b oro3n2a 2o1rÃķ 2orp 2orq 2orr orr4a or3re or3rh 2ors2 or3s4a or3sh or3si or3sz or2t1ak or2t1an or2tau or2tÃĪr or2tef or4t3ent ort2er or4t3ere ort3erf ort3erk ort5ersc or2t3ev or2the or2tin ort3ins or4t3off or2tor or2tÃķ or4trau or4t3rÃĪu ort3ric or2t1um o3ru or2uf o4r3un orus3 o2r3Þ o2rya o1s 2o3s2a os3ad os4an o4s3ca osch3ar o4schÃĪ o3sche osch3le 2ose ose3e o2s1ei ose2n os2ex 2osh o3s2hi 2osi o3sk o4s3ka o4ski 2os2kl 2os2ko os2lo 2oso 2osp os1pec o3s2po os2sa oss1ac oss3and os4sÃĪ o6ssel o3ssem oss3en4k o3ssent oss3enz os3si os2s3o os4son os2s3p os4s1t os2su os2t o2st1a2b o3stal. o4st1am ost3ang osta4s ost1au o4sterd oster3e ost5er6we ost3h o2stin o4s3ton. ost3ran o2st3rÃĪ ost3re os3tri ost3rot ost3uf 2osu4 os1um 2o3sy o3s2ze o2ß1el o2ß1en2k o2ß1enz o2ß1ere o2ß1erf oß3t 2o1t ota2go o3tark o2t1au ot3aug o3tax ot1ÃĪ o2teb o3tei o4t1eib ote1i4n ote3ine ote2l1a ote4lei ot2em3 otemp2 otens2 o2t1erw 4ot2h ot4he ot5hel o4t3hi ot3ho o2thr o2til o2t1i2m ot2in o4tl otli2 ot4ol ot1opf ot2or oto2ra o3tra o2t3re ot3rin ot2sa ots1p ot2spa ots2pe ott1a ot2tan ot2tau ot2teb ot4terh ot4terk ot2th ot2t3r ot3t4ra o2u oub4 ou2ce ou1f4l oug2 ou2ge ou3gl o3uh ou4le. o3um o3unds oung5 oun4ge. oungs2 o4up 2our ouri2e our4ne. ou3s2i ous2t outu4 2ouv 2o1Þ o1v 2ovi oviso3 2ovo 2o1w o3wec owe2r1 o3wi o1x 2ox. ox2a ox2e ox3l o2xu 1oxy o1yo 2o1z o3z2a oz2e ozen4ta o3zi ozon1 Ãģrd2 Ãķ1b Ãķbe2la Ãķbe4li Ãķb2l Ãķ2ble Ãķ2b3r Ãķ1ch Ãķch1l Ãķ2chr Ãķchs2t Ãķch4str Ãķ1d Ãķdi3 1Ãķdu Ãķ1e 1Ãķf Ãķf2fa Ãķf2fl Ãķf3l Ãķgen4s1 Ãķg3l Ãķg3r Ãķg2s Ãķ1he Ãķh3l2e Ãķh3ri Ãķh2s Ãķ1hu Ãķ3ig. Ãķ3isch. Ãķ1ke Ãķ2ko Ãķk3r Ãķk2s 3Ãķl. Ãķl1a2 Ãķl1ei Ãķl1em Ãķl2f1ei Ãķlf3s Ãķl1im Ãķl1in Ãķl2k3l Ãķl2la2 Ãķl2nar Ãķl1o2 Ãķls2 Ãķl3sa Ãķl3sz Ãķ2l1u Ãķl2ung Ãķlz2w Ãķ1m Ãķm2s Ãķn2e Ãķ3ni Ãķnizi1 Ãķnn2e Ãķ1nu Ãķo1 Ãķot2 Ãķoti1 Ãķ1pe Ãķpf3l Ãķr3a2 Ãķr2b3l Ãķr1c Ãķr2dr Ãķ2r3ec Ãķ2r1ei Ãķ2r1e2l Ãķr2erg Ãķr2erk Ãķrer2l Ãķ3r2erz Ãķr2f3l Ãķr2gl Ãķ2r1im Ãķr2kl Ãķrn2e Ãķr1o Ãķrs2e Ãķr3s2k Ãķrt2e Ãķru4 Ãķ2r1une Ãķ1s Ãķ2sa Ãķ2scha Ãķ4sch3ei Ãķ2schl Ãķ2sch3m Ãķ2schw 2Ãķse Ãķ2s1ei Ãķs4en Ãķs4es Ãķ2sp Ãķ3s2s Ãķs4s1c Ãķs3ses Ãķ4s3set Ãķs4st Ãķs4t Ãķ2sta Ãķs4u Ãķ1ß Ãķ1t Ãķ2t3a Ãķte4n3 Ãķt2h Ãķt2sc Ãķt2tr Ãķ1v Ãķ1w Ãķ1z Ãķze3 Ãķzes4 p2a 1pa. 1paa 1pac pa3da pa2dr pa1f4r pag4 pa3gh pa1ho 1pak pa1k4l pak2to 3pala pala3t 1palÃĪ pa3li pal2ma pal2mÃĪ pal2m1o 2palt pa2nar pa4nat pan3d pan4ds pa2neu pank4 2panl 2pann 1pa2no pan3sl pant2 panz4 1pap papi2 papieren8 papie8r7end 1para pa2r3af par3akt 1parc pa5reg 2par2er 2parg pargel6d 1park. par4kam par4kau par2kr 1paro 2parp 1partn 1party par3z2 pa1s2p pa2ßu pat1a pat4c pate2 1pati 1pat4r 1pau p3auf pa3uni 1pÃĪ 3pÃĪc 3pÃĪd 3pÃĪr 3pÃĪ4s3 pÃĪ4t1e2h pÃĪ4t3ent pÃĪt3h pÃĪ2to pÃĪt3s 2p1b pbe1 2p3c 2p1d2 pda2 p2e 1pe. pe2a pea4r pech1 1ped pe2en pef4 pei1 2peic pe1im 1peit pekt4s 1pel pe2l1a4 pe4lein pe2let pe4leu pe2lex pe3li4n pe4l3ink pel3k pel3la pel3lÃĪ pel3l4e pel3li pel3t 1pem 1pen pena4 pe3n2al pe2nÃĪ pen3da pe4nen pe2n1o pens2 3pensi penz2 1pep pe1ra per2an 1perio 1perle per4na 1pero per2ra2 perr3an per4rÃĪ2 per4ric per6rieg 1pers 2perse 2persi 3perso 1perÞ perwa4 pe3sa pes3s2 pes2t 3pet 1pÃĐ 4pf. p2fab p2fad p2faf pf3ai p2f1ak pf1ans p2fa4r pf3are p2f1au 4p3fe. p2fei pf1eim pf1ein p3fen. p2fent p3fer. pf2erw p3f2es pff4 pffa3 p2f1ins pf4lan p2f3lÃĪ pf4leg pf3lei pf3lo p2for pf3r pf1ra 3pf4ro pfs2 pf3sl pf3sz pf3t 2pfÞ 2p1g pgra2 1ph 4ph. 2phÃĪ 2phb 2phd 2p1hei phen3d2 phen3s 2ph1ers 2phf 2phg phi2ka 2phk ph2l 2phm 2phn p3hop pho2s 2phÃķ ph4r 2phs pht2 2ph3the phu4s 2p1hÞ 2phz pi2a1 pia3k piap2 pia3s pi3chl p4id piegelei8 pi2el piela2 pie4lei 1pier 1pig 3pik 1pil pi3le pil4zer 2pind pin2e pingen4 ping3s 3pinse pi2o pi3oi pi3onu 3pip pi2pe pi3ri 3pirin 3pis 4piso pis2t pi3t2a pit2s pi2z1in p1j 2p1k2 pku2 pkur1 1p2l4 4pl. 3pla p3lad plan3g 3plÃĪ 2ple. ple1c ple2e p4leg ple5n2 2p3ler p3lic p3lif 2plig p4lo 2p3lu 2p1m2 pma1 2p1n 1p2o po3b4 po1c 3pod 2poh po2i po3id 3poin 3pok 3p4ol po2lau po3li pol3lo po4lor 2pond po1o2b po2p3ak po2p3ar po2pl po3pt po1rau porf4 por4tre por4tri po3s2e pos4t po2sta post3ag po4stÃĪ po4st3ei post3ra po3ta 3pote po2t1u po2w po3x pÃķ2bl pÃķ2c 2p1p p2p3a2b pp3anl ppa2p ppe1e ppeli5ne ppe2n1 ppf4 pp1fr p2p1h p3p2ho p2p1ia pp3lÃĪ p2p3le pp3oh ppp2 p2p3ra pp3ren p2pri pp3sa ppt2 pp3ta p3puc p2pul p2punk p3pur p2r2 1prak pra4s3 1prax p4rÃĪ 1prÃĪd 1prÃĪg 3prÃĪm 3prÃĪs 2pre. 2prec 3pred pre2e1 2preg 1prei 3preis prei4s3c prei4s3s 2preiz 2p3rer 3p4res 1preß pri4e 2prig 3prinz pri2t1 priter4 1p4ro1 3prob 2proc 3prod 3prog 3proj 2pross 2proß 3prot 1prÞf 2prÞh 2prÞn 2p1s 4ps. ps4an p3se p3s2h ps1id p2sÃķ ps2po ps2te pst3re p2stu 3p2sy ps2ze 2p1t pt1a pt2ab pt3alb pt3at p3te p4t3ec p4t1ei pte4l p4tele p4t1ent p4t1ep pt3erei p4t1erw p4t1erz p2th pt1in1 p4tos pto2w ptpo4 p2t3r pt1s2 ptt2 pt1um p3tung pt1urs p2tÞ4 3p2ty pt3z 1pu pu1a pub4 2puc pu2dr 2p1uh 2puk pul2sp 3pulv 2pund pun2s 2punt 2pur pu3ri 3put put2s 1pÞf pÞl3l 2p1v 2p1w pwa4r 3py1 py3t 2p1z qu4 quel4la que4te. 1queu qui3s 1ra. 2r1aa ra2ab 3ra3ar 3raau r1ab ra2bar rab2bl 2rabd r2a3b2er 2rabf 2rabg 1r4abi ra2br 2rabs 2rabt ra2bÞ 2r3abw 1raby ra1ce 2r1acet ra4cheb ra4chin racht3r rach6trÃĪ ra2chu r2ack r2ad r4ad. ra2dam 2radap 3radf r3a2d3r rad3t4 1ra2e ra3er r2af raf3ar ra2fer ra3ge ra3gle ra2gn 3r2ahm 2raho 4raht 2raic rail4l 2r3air 3ra1k4l ra2kre ra2kro 2rakti 3rakÞ r2al r4al. ra2la4 ral3ab r3alar ral3b 3r4ald ra3le 2ralg r4ali rali5er. rali5ers ralk2 ral3la ral5l2e 2rallg 2r3alm. r3alp. 2ralpe r4als r3alt 2ralta r4al3t2h ra2lu 3raly r2ame ra2mer 1r2ami ram4man ram6m5ers ram4mit ram4mu 2r1amt ramt4s r2an. ra5nat 2ranb r2anbe 4ranc r4anda r4ande ran4dep ran4d3er 4r3anei r4aner 2ranf 1rangi rani1e ran2kr 2ranl 2r1anm r2anmu 2r1anp 2ranr r2ans. r2ansp ran4spa ran2th 2rantr 2r3anw r2ap 2rapf ra2pri r1ar r2ara 2rarb 3rarei rar3f4 ra4r1in r2ark 2r3arz r2a3s2 r4as. ras4a ra4schl ra5sen ra5si ra4sk 2rasph ra4ssi 2raß 1rat ra2t1a ra3ta. ra3te rat2o rat4r 2r3atta 4ratz 4rau. 3raub. 4raud 4raue rau3e2n 2rauf 2raug 3raum rau4m3ag rau4man rau2mi 3raup 4raur 2rausb 2rausg rau2sp raus3tr 4raut raut5s 1raÞ r2ax raxe3 raxi4s1 rÃĪch4s 3r2ÃĪd 4rÃĪf rÃĪ1fr 4rÃĪg 2rÃĪh 2rÃĪm 3rÃĪn. 3rÃĪni 3rÃĪns 2r1ÃĪr r2ÃĪr. rÃĪ3ra rÃĪ4sc rÃĪ2st 3rÃĪtse rÃĪ2u 4rÃĪue 4rÃĪun rÃĪu2s rÃĪu5sche 4rÃĪut 4r1b r2b1ab r2b1a2de r2bak rbal3a rba3re rb1art rb1auf rbb2 rb1ech rbeid2 r4belÃĪ r4belis r3ben. rb1ent rbe3r2e rber4gl rb2la rbla2d r2blan r8blasser r4b3last r3blÃĪ r2ble. rb3ler r2bleu rb2lin rb2lÃķ rbmas3 rb2o rb4ri rb2sa rb2sei rb3ska rb2s1o rb2sta rb4stÃĪ rb2stu rb2su rb2u rbu2sc 2rc r1ce r1che. r1chen r1chi rch3l rch3m rch3r rchs2 rch3sp rchst4 rch3t2a rch6terg rch6terw rch1w r1ci r1cl r1ç 2r1d r3da r4dab rd2ac r4daf r4d1ak r4d1al rdani1 rd1ant rd1anz r4dap r2dei rd2ei. r4deis r2d1elb r3den rden3d2 rde3re rder4er rderin6s r4d3ernt rde3sp rdga4 rdgas3 rdi3a2 rdia4l r2d1inn rd1it rdo2be r3don rd1os rdo4st r2dÃķ rd3rat rd4ri rdrÞ4 rdt4 rd3ta rd3th rdwa4 1re 3re. re3aler re2am re3at. re3ats 2reÃĪ re2b1a re2b1l reb1r reb3ra re2bÞ r2ech rech3ar 4rechs 2reck. 2recki 3red. 4redd 2redi re1el re1er 3refe 2reff 3refl 3refo 3reg 5reg. rege4l3ÃĪ 2reh re2hac re4h3ent re2h1i rehl4 reh3n re2h1o r2ei. r2eie 2reig rei3l2a rei3l2i 3reim reim2p r1ein 4reinb rei3nec 4reing r3eink 4reinr rein8s7tre re1in2v reister6 reis5tro re2ke re3la 2r1elb rel2e relea4 re3lei 2re2lek 2r1elf re3lo 2r1elt relu2 r4em. r2emi 4rempf 4remu r4en. r2ena rena2b re3nal re2nÃĪ 3rendi ren3dr re4n3end ren2gl 2rengp re2ni ren4nar ren3sau 2r1entg 2r1entl 2r1ents 2rentw 4rentz r2enz ren2zw re3or 3repe re4pis 3repo 4repp 3r4er. 2r1erb rer2bi r4erbil r2erbr 2r1erd r2erer r1erf r2erfe r2erfl r1erg r4ergen re3ri r1erk 4r3erken r2erki 2rerkl 2r1erl 5rerlag 2r1erm rer2n 2r1ernÃĪ 4r3erns 4r3ernt r2e1ro re2rob r1erÃķ 3r2ers. 2r1ersa r2erse 2rersp r1ert r2erte 2rertr 2r1erz rer5ze r2erzy 3r4es. re2sa res3an re4schw 3rese 3reso 2ress ress2e res6s5erw 3rest res3tem re2stu 3resu 2re2ß1 re2thy re2u reu3g2 2reul re3uni 2r1eur 2reÞ 2r3evid r1ew rewa4r re2wi 4r3e2x1 3rez 4rezi 1rÃĐ 2r1f rfall4s rfÃĪs3 r2fent rf2es rfi4le. r2flan rf3lic rf3lin rf4lÃķ r3flÞ r3for rf4ru rf4rÞ rf2sa rf2s1ÃĪ rf2s1id rf2spr rf2ta rf3t4r rf2u 4r1g rg2ab r2g1a2d r2g1ah r2g1ak rg2an rga5ssen rgas2t rga4str rge4an rge2bl rg2el rge4l3er rgen4z3w rge4ral rge4tap r2geto rgi4sel r3gla r2glan rgleich8s7 r2gleu r2glig rg2lÃķ rg2lu r2gna r2gno r2g1ob rgÃķ2 r2g1Ãķd r2g3ral r2greg r2gres r2gret rg3rin rgro5sse r1h4 2rh. 2rha r2ha. r3hals 2rhÃĪ 3r4he. 2r3her r2hoe r3hof rho2i3 2rhol 2rhÃķ 2rhs 1ri ri3am ri3at rib2bl ri1ce ri1cha ri2dan ri2dau rid2g 2ridol 2ridy r2ie rieb4s3t rie2fr ri1el ri3els riene4 ri3eni rie2nu ri1er. ri4ere ri3e4sti ri1eu ri2f1a ri2f1ei ri2f1er ri2f1o ri2fr rif4ter 3rig ri4gene 5rigj rig1l 4rigr rik1l ri4kla r2imb ri2me. 4rimp rim2s r2i3na 2r1ind rin4dex rin4diz 4rindu ri3n2e rine1i 2r1inf rin2fo rin2ga ring3l rin2gr 2r1inh 4rinit 2rink rin2kl 3rinn 6r5innenm 4r3inner 4rinnta r1innu 2rins2 3r4ins. rin2so rin2sp r4inspi 2rint rin4teg rin4t5r 2r1inv 4r1ir r2is ris4a ri4scho ri4schw 3risik rismu2 ri3so ri2s1p 3riss ris3si rist5ers ristes4 ri6stess ri2ß1 r2it r3i2tal ri3t2i ri3t4r rit4tei rit2tr 5ritu rix1 ri3xi 1rí 2r1j 4r1k rk2am rk4ap rkauf4s r2kÃĪh r3kla rk4las rk4lau r2klis rk2lo rk2lu rk4n r2k5nu rk3rÃĪu r2k3rea r3kri rk2s1e rk2sp rkstati6 rk4stec rk2ta rk4t3eng rk4t3erf rkt3ers rk6tersc rk4t3erw rk4t3erz rk2tin rk2t1o2 rk2t3r rk3tra rk2um rku2n rk1uni rkus3s rku4s1t 4r1l rl2ab r5lag r5lan r2l1ar r2l1a4sc r2l3aug rl2e rle4a r3lec rle4i rle2st r3let r3l2i r3l2o rlÃķs5s rl2s1p rl2sto rl3t r3lu rlu4str rlz2 4r1m r2mab r3m2ag rma2la r2m1ald r2m1ank rm1ans rm1anz rm1a2p r2maph rma5ssen rmas8sens rm3d2 r2m1ef r2meo r2m1erp rm2es r2mide r2m1im rm3m rmmo3 r2m1o2ri rm3sa rms2t rm3sta rmt2a rm2u rm3ums 4rn rna2b rna4n rn2and rn3ani r2n1anz rna4r rn2arb rn3are rn3ari r2nau rn3d4r r3ne rn3e4ben r4nef rn2ei rn3eif r4n3eis rne2n r4n1ene r4nerf r4n1erg rn4erhi r4n1ert rner4ve r5nes rn2et rne3uf r4nex rn3f rng2 r3ni r4n1in r3nod r2n1op r2n1or rn1Ãķ rn3sa rn3s2ÃĪ rn3s2p rn3s2z rn3t2e r1nu rn1ur r1nÞ r1ny ro2bei 2robj 1robo 2robs ro1ch 3rock. 4rockn r2o3de ro3e2 4rog. 4rogs roh1l 3r2ohr 3roi ro3le rol4lan rol3l4en rolli4n rol6lini 2roly 4rom. ro2mad ro2mer 4romm 4romt r2on ro4nerb 3ronn rons2 ron4tan 4ro1ny 2ro2pf ro3ph r1or r2ora ro2r3al ro2rat ro2rei ro2r1o ror3th ro3se ro3sh ro5s2i ro5smo ros6san ross1c ro3sta ro2st1r ro2ßu ro2tag ro2tÃĪ ro2tei ro2tho ro2tri rot1s rots2o ro3t2u ro3unt 3rout rÃķ2b3l rÃķ2du 2rÃķ2f 3rÃķh r1Ãķk 1rÃķl rÃķlla4 3rÃķmi 4rÃķp r1Ãķr r2Ãķs. 3rÃķtu 2r1p2 r3p4a r3p4e rpe2re rpe4r3in rpf4 r2pli rpo4str rps1t rp3t r3pu 2r1q 2r1r rr2ab rr2ar rra4s3s rrat2s rr1ÃĪm rrb2 rr1c rr2e rre4ale r5rega rre2le rre2pa rrer4s r3res rre2ve r2rew rr2he r3r4hen rrik2 rr2n3a r3r2o r4r3ob rro3m rr2th r3ru r3r2Þ rrÞ1b 4r1s rs3ab r2sa2d r4samp r4s1amt rs2an r2s3ang rs3anp rs3ar r3sche r6scherl rs1ebe r2sein rse2n1 rs2end rse4ne rs1ere rs1erÃķ rs1ers rs1erz rse2t rs1eta r3sho rs2kal rs2kan rs2kie rs2kis rs2kl r4sko r4skr r4sku rs3l rs4no rson4e r2s1op r4s3ort. rs2p4 rspa3s2 rs4pel r2s3ph r5spi r4s3s2 r5stad r4stant rs2tau r6st5eing rster2 r6sterbt r4st3erw rs2th r5stim rst3ing r2stip r2s1tot rs2tr rst3ran r6strang rs2tu r2sumf rsÞ3s r3swi 4r1t rt4abl r2t1alm rtals1 rt1am rt1ang rt1ann rt1ant r2t1ar rt3a4re r2t3att rt1ÃĪr r3te. rte1e2 rtei3la rt1ein r2telf rtel6lei r4tempf rte2n1 r3ten. rte4na rtens2 rt3erei r4terfa r4terfo rt1erh r4t3er4la rter6mit r4t3ernÃĪ rter4re rt1ers r3tes2 rte3sk r2thi rt2hum r2t1id r2t1ima rt4is rto1p rt1or rto2ri r2t3rak rtra4s3 rt3rec rt3ros r4ts rt4s1eh rt1s2pe rt3t4 r2t1urt rt3z rtz2a 1ru ru1a ru3a2r3 rube2 ru3ches rude2a ru2dr 3ruf ru2fa ruf2s1 ruf4st ruf4ter 2r1uhr ru1ins ru1is 2rum 4rumf ru2mi 4ruml r2ums. 4rumz 2r1una 2rund run2d1a r2unde rund3er run6derf run6der6l run6ders run6derw 2r1unf 2rungl 2r1u2ni 4r3unio run2kr 2r1unl 2r1unm 4runn 4r3unt 2runw ru3pr 4r3ur ru2ra ru2r1e 5ruro ru2si rus3sen rus2s1p rus6s3t 3rut ru4tei rut3h ru2t1o2 ru2t3r 4ruz ru2zw 1rÞ 2rÞb rÞ1ben rÞ1ch rÞck5sta 4rÞmm rÞn3z rÞ3s2s 2r1v rve4n1e rve5s rv2s 2r1w r5wei rwun3s 4r1x 1ry ry2c rys2t rysti1 2r1z rz2an r2zar r2zas r3ze. rz1eck r5zene rz1eng r4z3ents r2z1erf r2z1erg r2z1erk r2z1erw rz1id r3z2of rz2Ãķ rz3te rz2th rz2t3ro rzug2u r3zÞ r3zwÃĪ r3z2wec 1sa 3sa. 3s2aa 2s1ab sa2be 3sabet sa2bl sa3ble sa2br 4sabs 5sache sa2cho2 sach3t 5sack. s1ad 2s3ada s3adm 2s3a2dr sa2fe 2s3aff 3safi sa1f4r 3saft 3sag sa4gent sag4n 4s1a2gr 3sai sa3i2k1 sail2 2s1ak sa2ka 3saki 3sakr 4s3akt 3sal. 4s1alar sa4l3erb sa2l1id s1all sal5lo3 3salo sal2se 2s1alt 3s2alz 3sam s2ame s3ameri 5samm 6s1amma 4s1amn s1am3p4 sam2to s1an s2an. 2s3a2na 2s3anb s2an2c 3s2and s4and. san4dar san4dri 3sang. sang4s 2s3anh 3s4ani 2s3anl 2sanp 2s3ans san4sk 4santr 2s3anw s3anz 2s1ap s2aph sa2po 3sapr 2s1ar 3s4ar. 3s2ara 4s3arb 3s2ard 3sari s3arr 3s2ars 4sarti s1a2sp sas6sest 4s3a2sy 3sat sat2a 4s3ath 4s3atl 4s1atm sa2tr sa3ts sat4z3en s1a4u 3sau. 3sauc 3saue sau8erste 2s3aufb sau2gr 3saum 3saur sauri1 2s3ausb sa2vo 3sÃĪc s1ÃĪh s3ÃĪhn 2s1ÃĪlt 2s1ÃĪm 2s1ÃĪnd 2s1ÃĪr sÃĪ2s3 3s2ÃĪt 1sÃĪu 2sÃĪuß 4s3b4 sba4n sbe3r2e sbus3 1sc 4sc. 2scam s2cap 4scar 2s1ce 6sch. sch2ab 3schaf 2schak sch2al 4schanc 4schang 5schanz 4schao s2chau 3s2chÃĪ 2schb 2schc 2schd sch2e 3sche. 6schef. 6schefs sch3ei. 4schemp 3sches 4schess 4schex 4schf 4schg 2schh schi4e 3sching 4schiru 3schis 2schk sch4lag 4schle. 6schlein 4schmas 2schmÃķ 4schmÞh 2schn. 4schobj 2schox 3schÃķ 4schÃķl 4schp 2schq 4schre. 4schrin sch3rom 4schron 4schrou 6schs2 sch3sk 6sch3t scht2a scht4r s2chu 4schunt 3schÞ 2schv 4schwaa 4schwet sch4wil 2schz 2scj 6s1cl 2sco 3s2cop 3sco4r s2cr 2scs 2scu 4s3d2 sda3me sdien4e sd4r 1se se3at. seau4 2s1e2ben seb4r 2s1echo s1echt 2s1eck se2dik 3see se1ec se2e1i4 see3ig seein2 se1er. se1erk se1erÃķ 2s1eff sef4l 3seg se2gal se2gl seg4r 3seh seh1a se2ha4g se2han se3he se4h1ei se4hel se4herk se2hin seh1l seh3re seh3s seh3t se2hÞb 2s1ei. 2s1eie 2s1eig sei3le s1ein 5s2ein. 2seinb sein4du sei3n2e sein4fo 2seing 2seinh 4seink 2seinl 2seinn 2seinr s4eins. 4seinsa 4seinsp 4seinst 2seinw 2s1eis 5s2eit 3sek 4s1e2ke s2el. se2l1a se3lad sela4g se3lam 3selb sel1ec 2selem se4lerl sel3ers 2self. s1elix 3selk sel3le se2l3Ãķ s2els sel3sz sel3tr s4e3ma 2s1emp s2en. se4nag se2nÃĪ 3sendet 4s1endl 5seni 3senku se2no s2ens s2ent. sen3ta 2sentf 4s3entg s2enti 2s1ents 2sentw 2sentz se2n3u 3senva seo2r 4s1e2pos 3seq s4er. ser3a2d se2r3al s3ereig se4r3eim se4r3enk ser2er s1erfo s2erfr s3erfÞ 4ser4fÞl s1ergÃĪ s4ergr s1erh 5serie serk4 s3erken s1erkl 3serl. s2ern. s1ernÃĪ 4s3ernt se1rot s3erÃķf s2ers. 2sersa sers2t s4ert. seru2 se4r1uf se3rum se3rund 3s4erv se2sel 2sesh se3sk se3su 2se4tap se2tat s1e2th 3setz se1u2n 2s1ex se2xe 4sexp sex3t2 6s3f4 sfal6l5er sflo4 4s3g2 sges2 sgro3 2s1h 4sh. sh2a 3s2ha. sha2k 4s3han 4shc s3h2e 3shi. 3shid 4shil shi4r 4shk sh3n 4shof 3shop sho4re 3show sh4r 4shs 4sht 4s3hÞ 1si si3ach. si2ad si3am. sia4s 2siat sib4 5si1c 2s1ideo s2ido 3s4ie siege4s sieh1 sie4hes si3ene si1err si1f4 si2g1a 3sigh sig4n si3gnu si2g3r si2k1ab si2kak si2k1ÃĪ sik3erl si2ki si4k1l si2kr sik3s2 sik3t4 si2ku sil2br 3silo 2s1imm si3n4a 2s1ind 2s1inf sing1a sin3gl sing4le sin4gr sing3sa 2s1inh sin1i1 4s1inq 2s1ins s2ins. 4sinso 4sinst 2s1int 4s1inv 3sio 3siru 3sis si2sa si4schu si2s1e si2s1o si2s1p sis3s2 si2stu 3s2it si2tau sit3r si2tra si3tu siv1a sive3 si2vr 1sí 4s3j 2s1k2 4sk. 1skala 4skam 4skanz 4skas ska4te. 4skateg ska4tes 4skÃĪ 4skb s2kep 3s2ki. s2kif s2kig 3s2kik 4skir 3skiz sk4l 4s3klas 3s2klav 4sk4n 4skom 4skor 4skow 4skÃķ 4sks 4sk3t 3skulp skus3 2s1l2 4sl. 3slal 4slan sla2ve s2law sl3b s5le s3li 3s4lip 4sln s3lo. slo3be s3loe s3lu 4s3m2 2s3n2 4s5na snab4 sni3er. sni3ers 4s5not 4snÃķ 3so. so4a 2s1o2b so3et 3soft 3sog s1o2he 6sohng 2s1ohr 1sol so3la so2l1ei sol2la4 sol4ler 2so2ly 3som 3s2on son3au sone2 son3end son3sÃĪ son2s1o so3o 2s1opf 3sor. s1orc 2s1ord so2rei so3ren 2s1orga 5s2orge 2s1o2rie so2ro 3sors so4ru 3so3s2 s4os. 4s1ost 3soß 1sou so3unt 3sov 4s1o2ve 3sow 2s1ox 5soz sÃķ2f 2s1Ãķk s1Ãķ2l s1Ãķ4s sp2 2sp. 2spaa 2spak 2spala spani7er. 2spano 4spap 2s3para 1spare 2sparo 5s6parten 3sparu spa3sse spa3ssi 3s2paß 2spau s2paz s2pÃĪ 2spÃĪr 2spe. 2s3pel 4spensi spe3p4 s2pera 2spero s2perr 2spers 4spet 1s2pez 2s3pf 2spha s3phe 1spi 3s2pi4e 4s3pier4 spi2k 4spil 3spio 4spip 4spis 3s2pit 3s2piz 2spl 4spla 4splÃĪ 3s2pli s3p4lu s3pn 2spod 2spog s2poi 2spok 4spol 1spon 1spor 2s3pos s2pott 4spr. s2prac s2pran 2sprax 2sprÃĪm 4sprÃĪs 3s4prec 2spred s2pren 2spres s2prit 2sprob 2sprop 5spross 1spru 2sprÞf 3sprÞn 2s3ps 2spt 1spuk 2spup 3spur 4sput 1spÞ 4spy 2s1q 4s3r4 sra4s3s srat2s srat4sc sret3 srÃķ2s srÃķs1c srÞcker6 2s1s 6ss. 4ssa ssa3bo ss2ad ss1aj s3sal s4s1alb s4s3amt s5sand s4s3ang s2sano s4sans ss2ant s4sanz s3sas ss3att 4s3s2ÃĪ 4ssb 6ssc ssch2 4ssd 4ss1ec 4ssee 4sseg s4s1ega 4sseh 4ssei sse3inf sse3in4t 4ssek 6ssendet 4s3sendu ssenmas6 4ssentz sse6r5att s2s1erÃķ 4ss3erse ss2es 4ssesc 3ssesh sse3ta 4ssez 4ssf 4ssg 4ssh 4ssic 4ssie s2sig s4sind s4sinf s4sint 4ssio 4ssit 4ssk s3skala 4s4s3l 4ssm 4ssn 4sso ss1off ssoi4 s2s1op ss1ori s2sÃķl 4ssp s3spe ss2pen ss2po s3spru ssquet4 4ssr 4s4s3s2 4sst sst2a s5stad ss2tar ss1te s4ste. s5stel s4sten s4stes s4stet s5steu ss2th ss2tip ss1tis ss2top s3strec ss2tur s3s2tÞ 4ssum ss1ums 4ssup 4ssÞ 4ssv 4ssw 4s3sy 4ssz 1st 6st. s4ta. 3staa 2stabb 2stabh s2tabi 2stabt 2stabz st2ac 3s2tad 4stada 4stadr 3staff 2stag 3stah 2stak 2stal. 2stale 3sta3li 2stalk st1alm st1alp 3stam st1a2mi 4stamt sta4na 3stand 4stanf 4stanl 4stann 2stanw 4stanza s2tar. s2tars 3start st1asi 3stat 2stat. 5statu s4tau. 2stauf 2staum 5staur 2staus 2stax 3stÃĪ 4stÃĪg 4stÃĪlt 4stÃĪmt s2tÃĪr 5stÃĪtt 4stÃĪus 4stb 2st3c 4std 3ste s2tean 4stechn 4stee ste2gr ste4i 4st1eid 5s2teig 4s3teil steil4z stei4na s2t2el s3telem 5stell stel4l3ÃĪ ste4mar 4stempf ste4na 4st3ends 4stentf 4stentw 4stepi st5erbie ste4rec ste6rers st3erfÞ st2erg st5ergeb sterma7sse s2tern 6sterras s2ters stes3ta ste4stÃĪ 4stests s2teu 4steuf 4st3ev 4stex 4stf 2stg 4sth st3ho 5s2tic 3stie 4stief. 3stim 2stinb 2stinf 2st1ins s4tio sti2r st3i2so 2stj 2stk 4stl 4stm stma3s2 2stn 2stob 3stoc sto3d s2tode s2tof stoffen6 stof8fens 2st3om 2stope 2stopo 2stord 2storg s2tory 3stos 4stou 2stÃķch 2stÃķl 2stÃķn 5s2tÃķr 2stÃķt 4stp 2stq 3s2traf 2strag 3strah 4strai 3s2tral 4strans 3s2tras 3straß 4straum s2trÃĪf 2s3trÃĪg s2trÃĪn 4strÃĪne 2stre. 4strech 4stred 4stref 4streg s3treib 3st4reif 4streis st3renn 2strep 2stret 2strev 2stri. 3s4tria 2strib 4strig stri2k 4strisi 2stroc 3s2trof 3s2trok st3roll stro4ma 2strÃķp 4strÃķt 3struk 2st3run 2strup 4st3s2 stsas2 sts4k 2st3t4 st2u 5s2tub 4stuc 3stud 2stue 3stuf 5stuh 2stuk 2stumr stum2s 2stumz stu2n 2stun. 2stunf 2st3uni 2stuns 2stunt 3stuÃķ stu3re st3url 2s3turn 2st3urt 4stÞch s4tÞck 2stÞr. 2stÞre 2stÞrg 2stÞrs 2stv 2stw 2sty. 2stys 4st3z 1su. su1an 3su2b3 su4ba2 4subi 5su1c su2cha such4st 2s1u2f 4s1uh su1is su1it. sul2a sul2i sult2 su2mar su2mau 3s2ume su2m1el su6m5ents s3umfa s3umfe 3summ sum1o2 su2mor s2ump s3umsa s3umst su2n sunder4 sun6d5erh su4ne s1unf s3ungl 2s1uni 4sunt 3s2up sup3p4 su2ra 2s1url s1urt sus1e su2sp sus3s 2sÞ2b 3sÞc sÞ2d1 sÞden2 sÞ3den. 3sÞn 1sÞs4 sÞ3sse sÞ3ssi 1sÞß 4s3v 2s1w s3we sweh2 4swie 4swil s3wÃķ s3wu 1s2y syl1 sym3 sy2n3 sy4na sy4nÃĪ sy5s 2s1z2 4s3za 4szÃĪ 4s3zei s2zena 5s2zene 4s3zent s2zes s2zeß s3zet s2zis sz3ta 4s3zu 4s3zw 2ß3a2 ß1ÃĪ 2ß1b2 ßbus3 2ß1c 2ß1d4 ßdie3 1ße 2ß1ec 2ß1e2g 2ß1ei ße2l1a ße2le ße2ni ße2no 2ßentz ß2ers. 2ßerse ßer3t ße2s ße2t ß1ex 2ß1f 2ß3g2 ßge2bl 2ß1h2 1ßi ßi2g1a 2ß1in ß1j 2ß1k4 2ß1l2 2ß1m 2ß1n2 ß1o2 ß1Ãķ 2ß1p2 2ß1q ßquet2 4ß3r2 ßrus3 2ß3s2 ßsch2 ßst2 2ß1t ß2th ßts2 1ßu2 ß1uf 2ß1uh 2ß1um ß1uni ß1Þ 2ß1v 2ß1w 2ß1z2 2tab. ta2b1an 2t1abb 1tabel 2taben ta4bend 2tabf 2tabg 2tabh 2tabk 1t6able 2t3abn ta2br 4tabs 2t3abt ta2bÞ 2tabw 2tabz 2t1ac 3tacu t1ada tadi3 2t1a2dr ta3d2s 1taf2e 2taff t1afg t1af4r 1t2ag 3tag. ta2ga ta2g1ei 4t3a4gent ta3gl t3ago tag2s tag4st tah2li tahl3sk ta3i2k tai2l ta1ins tai4r ta1ir. 1tak t3a2ka ta2kro tak2ta 3taktb 3takts 3t2aktu 2takz 3t2al. ta2la ta3lag ta3lak tal3au t1alb. t1albk 1talbu tal3d 1t4ale tal2en ta4lens tal2ga tal4leg tal4lei tal4let tal6leut tallin6s tal4lus ta2l1op tal2se 2talt 2tam ta2mer tam2ma2 tam4mi tam4mut t1ampl t1amt t1a2na 2tanb t2and tand4ar ta3ne 4tanf 2tang t2ank t3ankl 2tanl t1anm 2tanme 4t1anna t1ans t2ans. 4t3ansi 2t3ansp 2tanwa 2tanwÃĪ t2anz. t1anza 4tanzei tan6zerh t1anzu tan2z1w ta3or ta2pe. ta2pes 2tapf ta2pl 2tappa t2appe 2tarb ta4ren4s ta4r3ere 3t4ari 2tark 2t1arm 2tart tar2ta t1arti tar2to ta2ru 2t1arz ta3sa 1tasc t1asp 1tas2t ta3str 1tat. ta2ta2b ta2tan ta2tau tat1ei ta2tem ta2t1er ta2th tat3he t3atl t4atm ta2tom 1tats ta2t1um 4taud t1auf 4taufg tau3f4li 4taufn 2taufw 1taug t1auk 3taum 1taus 2taus. t1ausb tau6schr tau6schw t2ause t3ausg t1ausk 2tausl 2t3auss 4t1ausw 1tax ta3xi taxi3s 3tÃĪa tÃĪ1c 2tÃĪd 3tÃĪe 1tÃĪg 2tÃĪgy 2tÃĪh 2t1ÃĪlt 2tÃĪm t1ÃĪmt t1ÃĪngs 1tÃĪnz t1ÃĪp t2ÃĪr. tÃĪ2ru tÃĪ2s t2ÃĪt 2tÃĪtt 2tÃĪug 1tÃĪus 2tÃĪuß 2tÃĪx 1tà 4t3b2 tbauer4 tbe3r2e tblock5e tblocken8 tbus3 2t1c t3cha t3che tch2i tch3l t2ch1u tch1w t3cl t3cr 2t3d4 tdun2 1te2a4 te3al teamma5 te3an 3t4ebb 4t1e2ben 1t2ech te1cha 3techn te2chu 2teck teck2e te2de 1tee te1em te2en3 te1erw te2es 2teff 2t1egg teg3re 2teh 2teign teik4 1teil 2tein tein3ec t3einge t3einla 4teinn t1eis. t1eisb tei3st te2kel tek3t2 tela4 te2l3ab te2l1ac te2l1au telb4 tel3d4 te3le tel1eb tele4be te4l1ec 3telef 3teleg te4l1eh te4lein 2telem te4lerd te4leu 4t3elf. te2l1in te2lit tel3lau tel3lÃĪ tel3l2e tel6lein tel6li6st te4lost te2l1Ãķ tel3s2k tel3ta tel3th tel3t4r te3mÃĪ te2m1ei te2min 2temo te2m1o2r 3temper 1tempo te4m1u t6en. tena2b te4n3a2d te4n3a4g te4nas te4n3au te2nÃĪ ten3ÃĪh t4enb ten3da 4t3endf t6endi 2t1endl t6endo 4t3endp ten3d4r te2n1e2b te2nef ten3ei te3n4ei. 4tenerg te2net 4t1eng. ten4gag t3engla t4enh te2ni te4n3in t4enj t2enk t2enl t4enm ten3n t2eno t2ens tens2e 4tensem t4enta t1entb 2tentd t4ente 4tentn ten4t3ri 4t3entw 4tentz t2enz ten6zerh ten3zw t1e2pi t6er. ter3ac te1raf ter3am te3ran. te3rand ter3as 4terbs 4terbt 4t3erde. te2re2b te4r3eif te2rel ter3end te4reng te4rerk terer4z 4t3erfol t4erfr 4terfÞl terg2 ter3ga 6ter6grei t4ergru 2t1ergu 4tergÞ t4eri te3ria te2rid ter3k 4terklÃĪ 2t3erlÃķ 1term termas4 ter4mer ter4n3ar 4t3erneu t4ero t1erÃķ 3terras ter4re. 1terro t4ers. ter3sc ter4ser terst4 t4erst. t4ersti t4erstu tert4a tert2o teru2 te4r1uf ter3za 2t1erzb t2erzu te2s tes1ac te3sÃĪ t1esel tes1er te3si te3so te3sp te4spr 3tesse. t2es2t tes3tÃĪt te4st3ei tester4 te6sterg te6sterk testes4 1tests t2et. te2tat 4tetl 3teuf te1un teu2r3a4 te2vi 1tex te1xa t1e2xe 2t1e2xi 4texp 3text 2t1exz 2t1f4 tfÃĪs3 tfi2l 2t1g2 tger2 tgro3 t1h 4th. 2th2a 3t4ha. t2hag t3hai t2hak 3thal. 4t3hau 2t3hÃĪ 4thc 1th2e t2he. 3thea 2theb t2hec 2t3hei t4hein t2hek t2hem t4hene t4heni 3theo 2therr t2hes 3these t2heu 1thi. thi3er t2hik 2t3hil 2t3him t3hir 2thk 4th3l 4th3m 2th3n t2ho t4ho. 2t3hoc t3hof 2t3hoh t4hol. t4holo t3hor 2t3hot thou2 2thov 2t3hÃķ 2thp 1th2r2 2ths 2thub 4thun 2thÞ 2thv t2hy ti2ad ti3a2m tib4 ti1ce ti3chr tiden2 ti4dend t2ie 1tief. tie2fr ti1el ti2el. tiel3a ti3e4n1 tie4rec ti2ern 1tierr 2tieß ti1et ti1eu 1tif. tif3f ti1fr t4ig ti4gerz tihi4 ti2kam ti2kar ti2kin ti2kra ti2krÃĪ tiks2 ti2kÞ ti2lar ti2lau ti2lei ti2lel 1tilg tille4b ti2l3Ãķ tilt4 ti2lu ti2ma2g t2imi tim2ma2 4t1imp t2in. ti3na t1inb 4t1ind ti3n2e t1inf tin2g1a ting3l ting3s t1in1it 2t1inj tin2k1l t2ins. 4t1inse t1int ti1nu 4t1inv 3tio 1tip 3tip. ti4que. ti1rh t2is ti4scha tisch3w ti2sei ti2sp 3ti3te tium2 ti2van tive3 ti2vel ti4vene tiver2 ti4verl ti2v1o ti2v3r ti2za 2t1j 2t3k4 2t3l tl4e 3tlem tle2r3a 4t5li tli3ni 2t1m2 tmal2 tmen4t3 tmo4des t3mu 2t3n2 t5na tnes4 to4as to5a4t 1tob 2tobj tob2l t1obs to1ch t3ochs 3tocht 2tock 1tod 3tod. tode2 to2d1er tode4s1 to2d1u toi4r to3la tom1e2 2tomg 1ton to2nau to2neh 3too to2pak to2pat 1topo 2topt to1ra to2rau to4rÃĪn 2torc t1ord to2r1el t1org t3orga tor3int to2rÃķ 1tort t1ort. to2ru t2orw to3s2 to4sk tost4 1toten to2tho tots2 3t4ou touil4 to3un tÃķ2c 1tÃķch 2tÃķf 2t1Ãķk 1tÃķ4l 1tÃķn t1Ãķ4st 1tÃķt 2t3p2 tpf4 2t1q t2r4 2tr. 1trac tra3cha t3rad. tra4dem tra4far 1trag 2trahm 3t4rai tra4lin 1tram 2t3rams 3t4ran. 2trand 1trank t1rann 1trans t3rase t3rasi tra4str 2traß 1traum 2traup traus2 1trÃĪ 2trÃĪh 3trÃĪne 2trÃĪs 2trÃĪß 2trÃĪus 2trÃĪuß 4t5re. tre4ale tre2br 2trec t3rech t4reck 2t3red 1tref 2trefe 3t4reff 2trefo 2treg t4rei. 1t4reib 2treif t3reig 2t3reih t3rein 2t3reis 2treit t3reiz 2t3rek 2t3rel t4rem t4ren. 1trend t3rent 1trep 2trepe 2trepo t4repr t4rer t4res. 1t4ret tre2t3r t5rett t4reu 2t3rev 2trez 3t4rÃĐ 2t3rh 1trib 3trieb. 3triebs 6trieg tri2er 1trigg 1trin t3rind 2tring tri3ni 3trio t4rip t3riß t4rit 1triu tri2x trizi1 1troc 4trock. t4roi tro2ke tro2mi 2t3roo t4rop tro1pe 3tropf 2troß t3rÃķc 2trÃķh 2trÃķm 1trÃķp 2trÃķ4s3s 1trÃķt 2truf 1trug 2truk trum2 trums1 2t3rund 1t4runk 3t4rup t3ruß tru2th trÞ1be trÞ1bu 2t3rÞc trÞcker6 t4rÞg 3trÞmm try1 2ts t3s2ac t2sa2d t2s1ah ts1al t4s1amt4 t2san ts3ar ts1as tsa3sse t2sau t1sÃĪ t2sÃĪh t2s1ÃĪn t4schar t3sche t4schef t3schl tsch4li t4schro ts2cor t2s1e2b t3seil t4seind ts1em tse2n1 t2s1eng t3sens t2s1ent t2s1er t6s5essen t3set t4seth t2s1i2d tsing4 ts1ini t2s1ir t3skala ts3kr ts1o tso2r t1spal t1span ts1par ts4pare t1spas ts2ped t1spek ts2pi ts3ple ts2pon ts2por ts3s2 tst4 t2staf ts2tat ts2tau ts3tÃĪti t4stea t4s1tep t4sterm t4s3terr ts1tie t2s1tis t2stit t2ston t4s3trad t2strÃĪ t2s1tri ts2tro t4strop t2s1trÞ ts1u 1tsub t1sÞ 4t1t tt1ab tt2ac tta6gess tt1ak t4tals tt3ank t2tanz tt1art t2tÃĪn tt1ebe tt1eif tt1ein tt1eis tte2la tte4leb t4te4leg tte4len ttel3l ttel1o t3ter tte4rec tt2erg ttermas7s tte4sa tte4s1ÃĪ tt2hÃĪu t2t3ho t3to. t3tos ttras3s t3tro tt3rÞ tt2sen tts1p tt4s3tem tt4ster tt4sti ttu2 t2tuc tt2un t2tu4s ttÞ2 tu1alm tu3an tub2 tuba3b 1tuc tu2chi 1tue tu3en tu2ere 2tuf tuf2e tu3fen t3u2fer tuf4fel 2tuh tu2is t3u2kr tul2a 1tum t2um. t2ume 2t3umf 2t3umg 2t1umh 2t3umk 2tump 2t3umr tum2si tum2so 2t3umt 2t1umw t3umz 1tun. 2t1una 2t1und t4une 2t3unf t3unga tung6s 2tunif 2t1u2nio 1tunn 1tuns 2t3unt t1up. tu2r1a4g tu2rÃĪ tur1c tu2re. tu2rei tu2r1er tu2res tu2r1e2t turin1 1turn tu2ro tur3s tu4ru tu2sa tu4schl tu2so tu3ta 2tÞb 1tÞch tÞck2s 1tÞf 1tÞr. tÞr1c 1tÞre 1tÞrg 1tÞrs 1tÞten 2tÞtz 2t3v 4t3w twa2 twÃĪ4 twi4e 1ty 3ty. 3typ ty2pa 3tys 4t1z t2za4 tz1ag tz1al tz1ar tz1au tz1ÃĪ t3ze. t2z1ec t2z1eie t2z1eis tze4n1 tz2ene tz3ents tz1erl tz2ers t3zes1 tzes3t tz1ind t2zor tz2Ãķ tz2th tz2tin tz1wÃĪ tz1wi tz1wu 2ua u1a2b u3a2c uad4 u1ah u1al. ua2lau u1alb u3alet u1alf ual3l ualle2 u3a2lo u1alr u1als u1al3t ua2lu u1alz u3am u1ans u3ar. uara2b u1ars ua3sa ua2th uat2i u3au uau2s u1ay u1ÃĪm u1ÃĪn uÃĪs4 u1ÃĪu 2u1b u8becken. ub3ein u3b4i ubi3os. ub2l ub3lic u2b3lu u2bop ub3rÃĪ u2b3rit ub2san ub2s1o ub2spa ubus3 u2bÞb 2uc uc1c u1ce4 uces3 uch1a u1cha. uch1ÃĪ u1che u2ch1ec uch1ei ucherma8s u1chi uch1il uch1in uch3l uch3m uchma6ss uch3n u2ch3r uch2so uch4spr uchst4 uch4tor uch2t3r u1chu u2chum uch3Þ uch1w u1ci uck2er uck3erl u1cl 2u1d u3d2a uder2e udert4 udi3en uditi4 u2don ud3ra u3dru 2u1e u2ed ue2en u2eg u4ela ue2le ueli4 uel2la ue2mi uen1 ue2nÃĪ ue2ner uenge4 uen2gl u3e2ni ue2no uen2sa uen2zu u2ep ue2r3a ue2r1ÃĪ uer6baut uere2 ue2rec ue3reig u3eremp u3erent ue4rerg uer3g2 u3erh u3erinf u3erin4t uerma6s uer4nan uer2ne uer4ner uer3o uer2Ãķ u3err uer3sc uer3t2 u3erum u3erunf u3erunt u3erur ue4s ue5se ue5sp ue2ta ue4tek u3fac u3fah uf1ak u3fal uf3ar uf1au u2f1ÃĪ6s u2f1ÃĪ2ß u2f1ei u2f1em u3fen. u2fent u2f1erh u4ferle uf2ern u2f1eß 2uff uffel2 uff4l uf2fro uf3l u2fob ufo2r uf1ori uf3r uf3sÃĪ uf2spo uf4ster uf2t1eb uf3ten uft3erd uft3s2 u2fum 2u1g u4gabte ug1af ug1ak ugang4 u2g1ap uga4s ug1au ug3d2 u2g1ei ugenma3 ugenmas6 u2g1erf u2g1erl ug4es ug3hu u2g1l ug3lad u4g3lo u3g2lÃķ u4glu u2g3n ugo3 ug1or u2gÃķ u4g3reis ug3ro u2grol ug4ro3s ug3rÞs ug3sc ug3se ug3si ugsma3 ugsmas4 ug1spa ug5stÃĪ u2gÞ u1h uh2au uh1la uh1lÃĪ uh2li uhme4 uhr1a uh2rer uh3ri uh4rin uhrt4 uh2ru uh4rÞ uh1un uh1w 2ui ui2c u1ie ui1em u3ig u4ige uil4les u1im u1in. uin3n u1is. u3isch. u3ischs uisi4n ui2st u1j uk2a u3kÃĪu u1ke u1ki u1k2l ukle1i u1k4n u3ko uk2Ãķ u1k4r uk2ta uk2t1in uk2t3r u1ku uku2s uk2Þ u1l ul1ab3 ul1am ul1ÃĪm ulb4 ul2dr uld2se 2ule u2l1el ule4n ul1erf ul1er2h ul1erw ule2sa ule4s3t ule2t ul1eta u2lex ulf4 ulg4 uli2k ul1ins ul3ka ul2kn ulla2g ul2lÃĪ ul3len ul2les ulli2n ul2lÃķ2 ulo2i ul1or ul2p1h ul2sa ul4sam uls2t 2ulta ul2tri ult3s u2lÞ ul2vr ulz2w u2m3a2k um1all um1anz u2m1art u2maus u2maut u2m1ÃĪh 1um3d2 um2en ument4s umer2a um1erf um1erg um1erl um1erw u5mes 1umf 1umg um1inh u2m1ins um1ir 1umk 1uml 2umm umm2a um4mess u2mÃķl umpf4li um2pho um2p3le 1umr um4san 3umsat um2sau um2ser um2sim um2s1pe um4stem um2s1u um3t2 um2un u2m1ur 1umz un1 2un. 4una. 1unab un4al u3n2am u2n3an 4un2as un3at unau2s 1unda un4dab 1undd un3de. un4dei und3erf un2dex 1undf 2undg un2did 1undn un2dor un2d3r 4unds. und3sp un2d1um undÞ4 1undv 1undz u3ne une2b une2d une2h un2ei. un3ein un3eis unen2t u4n3erz unes2 1unget 1ungew 1unglÞ un3gn un2gr ung3ri ung4s1 un2id un3ide 1u2nif unik4 un2im uni2r 2unis un3isl u3n2it 3u2niv 2unk un2k1a2 un2kei un2kne unks2 unk4tit unk2t3r 3unku unlÃķ2 un2n3a2d un3n2e uno4r un2os 1unr uns2 2uns. unsch5el un3se 1unsi un3sk un3sp unst1r 1unt un3ta unte4ri 2unth 2unto un3tr unt3s 2untu u1nÞ unvol2 unvoll3 1unw 2unz 2uo u1o2b u3of u1op u1or u3or. u3or3c u3ors u1os. uote2 u1pa u1pe2 uper1 up2fa upf2e upf1i u1pfl u3pi up4lu up2pl u1pr upt3a2 upt3erf upt3erg upt1o u1q 2ur. u1ra u2rab u3raba ura2be ural2t ural4ta u2r1a2m ur3ame u2r1ana uran4fa uran4fo u2r1ang uran4ge ur2anh u2r1an5s u2rar ur3a4ren u2r3att u2r1au 2u1rÃĪ ur1ÃĪn ur3b2a urch1 ur3d2i ur1eff u2rele ure4n u4r1ep ur1erh ur1erw 2urf urf3t ur2gri uri2c u2r1im ur1ini ur3ins ur1int urk3se ur4matt 4u1ro u3rol u1rÃķ ur3p 2urr ur3re ur2san ur2sau ur2ser urst4r ur4sw urs2ze urt2 u3ru ury5 ur2z1a ur2zÃĪ ur2zec ur2zi ur2z1o ur2z1w 2us u2s1af us4ann us5art u1sÃĪ u6schent u5schmu usch5wer u2s1ec u2s1ei u3seid u3sep use1ra u2serp u2s1ese usi3er. usi5ers. u3sig us5is. us3kl usmas2 usma5sse u1so us3oc u3soh u3sol u2s1op us1ou u1sÃķ u1sp u2spac us3part u2s1pas u2spat u3spek us1pic u2spo us2por u2spu usse4g u4s3sel us2sen us5sende us6seni ussenma7s us2ser us3ser. uss5erfa usser6kl uss5er6su u4sset us2sez u3ssig us2sof u2stab ust3abe u3stal us2tat us2ten us2ter us2th ust2in u3stis u2s1tor u2strÃĪ u4strit u3s4trop u2s1tur u2sty u1su us2ur 2uß u2ß1u 2u1t u3ta. ut1alt ut3a2m u2t1ap u2t1ar u2t1ÃĪr u3te u4t1ed ut1e4ge ut1ei. ut1eie ute2n1 u2tent uter4er u4t3er4sa ut2es ut2et u4tev u4t1ex utfi4 ut2he u2thi u2t3ho u2thu utli4n utmas2 utma5sse u3to. uto4ber uto3c u3tom ut1opf u2tops ut4or ut3rea ut3rÞ ut3s2a ut2s1ÃĪ ut4schl ut4schm ut4schÃķ ut3si ut1s2p ut2s3pa utt4an ut3te ut3t4l utt1s2 utu4re utu5ru utz3eng ut2z1in ut2zo ut2z1w 2u1u2 u1Þ2 u1v4 u2ve. uve3rÃĪ u1w 2u1x ux2e ux2o ux3t u1ya 2u1z uz3ot uz1we uz3z4 1Þb Þb1ÃĪ 2Þbc 2Þbd Þbe2 Þbe4n3 Þber3 Þ4bet Þb3l Þb3r 2Þc Þ1che Þch3l Þch4s1c Þch5t4e Þck1er Þck3eri Þck4spe Þ4d3a4 Þden2g Þ3d2ens Þd1o4 ÞdÃķ4 Þd3r Þd3s2 Þdsa1 Þd3t4 Þdwe2 Þ4f1a Þ2f1ei Þfer2 Þ2f1erg Þf2fl Þ2f1i Þf3l Þf2to Þ1g Þge6lei6s Þ2g3l Þ2gn Þg3s Þh1a Þ1he Þ2h1ei Þ2h1eng Þh1erf Þ2h1er2k Þ2h1er2z Þh1i Þhl1ac Þh1lam Þh3l2e Þh3mo Þh3ne Þh1o Þh3r2e Þhr3ei. Þh1ro Þhr3ta Þhs2 Þh3stu Þh3t Þh4th Þht4r Þ1hu Þh1w Þ1k2 2Þl Þl1a Þl2c Þ3l4e Þlla4 Þll1au Þl2lei Þl3ler Þl4leu Þl2lo Þ1lu Þ2ment 4Þn Þ2n1a Þn2da Þn2dr Þnen3 Þn2f1a Þn2f1ei Þn2fli Þn2fr Þn2g3l Þnt2 Þ1nu Þn2za Þn2zw Þ1pe Þpf3l Þ1pi Þp2pl Þr1a Þ2r1ei Þr2fl Þr2fr Þr4g3en4g Þ1r2o3 Þr4ster Þrt2h Þr2zÃķ Þr2zw Þs2a Þ2schl Þ5se Þse3h Þse3l Þ1sp Þs2s1c Þss2e Þ4s3sel Þs3si Þs4st Þs2su Þ2sta Þ2str Þ1su Þ1ß 2Þt Þ1ta Þ2t1al Þ1te Þ1ti Þt3r Þt4s1 Þt2tr Þ1tu Þ1v Þ1z 2v1ab va1c val2s 2vang 2varb vas2 v4at va2t3a4 va2tei va2t3h vatik2 va4t1in vati8ons. va2t3r vat3s4 va2t1u vat3z 2v1au vÃĪ1 2v1b 2v1d 1ve2 ve3ar ve3b ve3c ve3d ve3g ve3h ve4i 2v1ein veit4 veits1 ve3la ve4l1au ve3le ve3li vel3l ve3lo ve3ma 2ve3mu ve3nal ven2c ve3ne venen4d ve3ni ve3nÃķ ve3nÞ ve3o ver1 ver3a ve3rad ve3rand ve3ras ver3b2 ver5d2 vere2 verf4 verg4 vergas6 ve3ri ve4rin ver3k vermas8sen ver3sta vert2 ver5te ver3u ve3s 2vesc 2vese ve4sh ve4s1p ves4t ve3ta vete1 ve3to ve3tr 2veÞ ve3v ve3x2 2v1f4 2v1g 2v1h vi3ar vi4a3t vi2c vi3de vie2h3a vi2el vi3en vie4rec vie2w1 vig2 2vii vi2l1a vi4l1e2h vi2l1in vil3l 2v1i2m vima2 vi4na vin2s 2v1int vi3sa vise4 vi3s2o vi2sp vis2u 2v1k 2v1l2 2v1m 2v1n 2v1ob vo3ga vo2gu 3vol vol2la voll7auf. vollen4 vol6l5end voller4 vol6lerw vol2li 2v1op vo2r1 vor3a vor3e vor3g vo3ri vo5rig vormen4 vorÃķ4 3voy 2v1p v2r 2v3ra v3re v4ree 2v3ro 2v1s vs2e v3s2z 2v1t vu2et 2vumf 2v1v 2v1w 2v1z w2a 1waa wab2bl wa3che wach6stu wach4t4r waffe2 waffel3 1wag wa5ge wa2g3n wa3go 1wah wahl5ent wah4ler wah2li wai2b 1wal 2walb wal4da wa2les wal4li4n 2walm wal2ta wal2to walt4st wa3na w3anf wang4s 1wann wan6z5en6d wa2p 1war2e ware1i wart4e 1was wa3sa wa4scha wa3sche wa3schi wa3sh wass4e 1wÃĪh 1wÃĪl wÃĪm3 2wÃĪng 1wÃĪs3 wÃĪ5sc wÃĪ4ss 2w1b2 wbu2 2w1c 2w1d we2a we2ba 4webeb we2bl web3s we2e4 weed3 we2fl 1weg we2g1a we2g3l we4gn we2g3r weg1s weg3sa 1weh we4i wei4bl 2weie weifel6d weik4 1weil wei3sc weiss3p wei4tr weit1s wel6schl wel6schr wel2t1 welt3a4 wel6t5en6d wem2ma2 wen3a4 wen2gl we3ni wen4k3ri we2r3a wer2bl 1werbu werd2 5werdens 1werdu werer2 wer2fl wer4gel we4r3io 1werk. wer2ka 1werke wer2kl wer2ku we2rÃķ wer4sta wer2t1a wer4t3ei wer6t5erm wer2to 1wese wesen4s3 we2sp wes2t we2st1a we4st3ei we4steu we4sti we2st1o2 we2stÃķ we2st3r we4stu 1wet wet2s wett3s 2w1ey 2w1g 2w3h 1wid wi2e wie3l2 wien2e wie4st wik2 1wil wim2ma wim4mu win4d3ec win2dr win2e 2wing win8n7er8sc win4num 1wi4r wi3s2e wi2sp 1wiss wi3st wi3th 1witzl 2w1k 2w1l 2w1m 2wn wn3s 1wo1c wo2cha woche4 1woh woh4lei 1wolf wolf4s1 wol4la wol2lÃĪ wol4ler wor3a wo2r3i wor2t3r wo4r3u wot2 1wÃķc wÃķrt2h 2w1p w2r w3ro 2w1s w3s2k 2w1t wti2 w2u 1wuc wuch4sc wuls2 wun2da wun4g3r wun2s 4wur. wur2fa 1wurst wus4 1wu4t1 1wÞh wÞs4 2w1w 2w1z x1a 1xa. 2xa2b 1x2ad 1xae xa1fl 1x2ag xa2m xand4 x2anz 1x2as xau3 xaus2 2x1b 2xc x1ce x1ch x1cl 4x1d 1xe x1e4g 2xek xe2l x1em 3x2em. xemp4 x2en xen3s2 x2er. x2ere xers2 3xes 2x3eu 2x1f 2x1g 2x1h xib4 xi1c xich2 2xid xide2 xi2d1em x1i2do xie3l xi3g xil1 xil2a xi2lo xi2lu xin3s2 x2is xi2s1e xi2s1o2 xis5s xi2su x1i2tu x1j 2x1k2 4x2l2 x3lÃĪ x3le 2x1m 2x1n x1or 4x1p xpor6ter x1q 2x1r 2x3s2 4x1t x2t1a x3ta. x3t2as xt1ÃĪ x2tÃĪn x2t1e2d x2t1ei x2tent x2t1er2f x2t3ev xtfi4 x2t1il2l xtra3b4 x2t3ran xt1s2 xt1u x3t2ur 1xu xu1a x1u2n xu2s 2xv 2x1w 2xy 3xy. 3xys x1z 2y1ab 1yac y1al. y1a2m yan2g y1ank y1ÃĪt y1b y1c2 y2chi y3chis ych3n y1d4 y1e y2ef yen4n y2ere yes2 y2es. ye4st ye2th y1f2 y1g ygi2 ygie5 yg2l y1h yhr2 y1i4 y1j y1k2 yke3n yk3s2 y1l y2l3a2m yl4ante yl5b yl3c y4le. yli4n yllo2 yllÃķ2 yloni1 y2l1u yma2t ymp2 ym2pha ympi1 y2n1o yno4d ynt2 y1of yom2 yon4i y1ont y1os y1ou y1p ypa2 yp3an ype2 y2pf y3ph y2p1in ypo3 y4p3s y1r y3r2e y3ri yri2a yri1e y3r4o yrr2 y1s ys2an ys2c yse1 y3s2h y4s3l ysme3 ys2pa yst2 y2s1u2 y3s2z y1t2 y2te. y2tes y3to yu2r yure3 y1v y1w y1y y1z2 za2 2z3ab zab3l za3cha za3chÃĪ 2z1ad 2z1af za3ge za3gr 3z2ah zah4ner 2z3ak za3li 2z1all 2z1am z1an za3ne 2z3anf 3zani 3z2ank zan4kl 2z3anl za3no zanti1 za3ra 2zarb 2zarc za3re 2z1arm za3ro z1arti zar2tr 2z1arz z1as zast4 2z3at3 3zaub z1au2f z3aug 3zaun 2z1ÃĪc 3z2ÃĪh 2z1ÃĪm 2zÃĪngs 2z1ÃĪp z1ÃĪrg z1ÃĪrm 4z1b4 zbÞ1b zbÞbe3 2z3c 2z3d2 zdan2 zdÃĪ1 zeau3 zeaus4 2z1e2ben 2zecho ze1e 2z1eff zehe4 zehen1 zeh2l zeik4 zei3la zeile4 2z1ein zei3s2 zeist4 zei2t1a zeit5end zei4t3er zei2tr zeit3ri ze2l1a2 zelau2 ze2len ze2l1er ze2l1in zel3l2a zel4leh zel4li4n zels2 zel3sz zel3t2h zel3tr zelu2 2z1emp 5zen. ze4n3ac ze2nÃĪ zen3n ze2no zens2e zen4sem zent3s zen4z3er z2er. ze2r3a ze2re2b 2z1ergÃĪ 4z3ergeb z3erhal 2zerhÃķ zerin4t zerk2 z2erl. 2zerlÃķ z2ern zer4neb zer4n3ei 2z1erq zers2 2z1ersa 4z3erste 4z3erstr 3zert zert1a4 zer4t3ag zert4an zer6tere zer6terl zer4tin zer6trau 4zerwei 2z1erz 3z2erza ze2s zes2c ze3sku zessen4 zes6s5end zes2sp ze3stau ze2ß1 ze2tr 2zetts 2z1ex 2z1f4 zfÃĪs3 2z1g2 zger2a 2z1h z2hen zhir3 3zi. zi3alo zi3ar zi2dei zid3r zie4lei zi1erh zi1es. 3zig zil2e zil3l 2z1imp zim2t3 zin2e zin3ei zin4er 2z1inf z1inh zin1it zin2sa zin4ser 4zinsuf z1int z1inv zi2o3 zi3op zirk2 zirk6s1 zis4t zistras6 zi3s2z zit2h zi2t1o2 ziv2 2z1j 2z1k4 2z1l2 2z1m2 2z3n2 2z1ob 2z1of zo2gl 2z1oh 3zol zolla2 zol3le zol2li2 zol3lu zon4ter zo2o 2z1ope z1or zo2ri zor4ne zo3se 2z1osz 2zÃķ2f 2z1Ãķk z1Ãķl 2zÃķn 2z3p4 2z1q 2z3r2 4z1s2 z3sa z3sh z3sk z3str z3sz 2z1t z2t1au z4tehe zte3str z3t2her zt3ho zt1ins zt3rec zt3s2 zu3a zu3b4 3zu4c zud4 zudi4 zu2el zu3f4 zu2g1ar zu4gent zu3gl zug4ste zug1un 2z1uhr zuh2u zu1i zu3k 2z1um. zumen2 2zumf 2zumg 2zuml 2zumr 2z1ums zun2e 2zunt zup2fi zu3r2a z1urk 2z1url 2z1urs 2z1urt zu3s2 zu3t2a zuz2 2zÞb zÞr1c 2z1v zw2 z1wac 2zwag 2zwah zwan2d1 z2wang z1war 2zwas 4zwÃĪl 2zweg 2zweh z2weig zwei3s 2z1wel 2z1wen 2z1wer z2werg 2z1wes 2zwet 2zwir z2wit 2z1wo z1wÃķr z1wur 2z1wÞ 2z1z z3z4a zze3s z3z2o zz2Ãķ",
["lefthyphenmin"]=1,
- ["length"]=170328,
- ["n"]=24631,
+ ["length"]=104906,
+ ["n"]=15624,
["righthyphenmax"]=1,
},
["version"]="1.001",
diff --git a/Master/texmf-dist/tex/context/patterns/mkiv/lang-fr.lua b/Master/texmf-dist/tex/context/patterns/mkiv/lang-fr.lua
index 3e8983588a3..9ff7e42b220 100644
--- a/Master/texmf-dist/tex/context/patterns/mkiv/lang-fr.lua
+++ b/Master/texmf-dist/tex/context/patterns/mkiv/lang-fr.lua
@@ -6,16 +6,13 @@ return {
["metadata"]={
["mnemonic"]="fr",
["source"]="hyph-fr",
- ["texcomment"]="% copyright: Daniel Flipo and Bernard Gaulle 1994-2002, Arthur Reutenauer 2016\
+ ["texcomment"]="% copyright: Daniel Flipo, Bernard Gaulle 1994-2002\
% title: French hyphenation patterns\
-% version: V2.13 2016/05/12\
-% language:\
-% name: French\
-% tag: fr\
+% version: V2.12 2002/12/11\
% notice: >\
% This file is part of the hyph-utf8 package.\
% See http://www.hyphenation.org for more information.\
-% licence:\
+% license:\
% name: MIT\
% url: https://opensource.org/licenses/MIT\
% text: >\
@@ -58,10 +55,10 @@ return {
},
["patterns"]={
["characters"]="'abcdefghijklmnopqrstuvwxyzàÃĒçÃĻÃĐÊÃŪÃŊÃīÃŧœ’",
- ["data"]="2'2 2’2 .a4 'a4 ’a4 .ÃĒ4 'ÃĒ4 ’ÃĒ4 ab2h .ab3rÃĐa 'ab3rÃĐa ’ab3rÃĐa ad2h a1ÃĻ2dre .ae3s4ch 'ae3s4ch ’ae3s4ch 1alcool '2alcool ’2alcool a2l1algi .amino1a2c 'amino1a2c ’amino1a2c .ana3s4tr 'ana3s4tr ’ana3s4tr 1a2nesthÃĐsi '2a2nesthÃĐsi ’2a2nesthÃĐsi .anti1a2 'anti1a2 ’anti1a2 .anti1e2 'anti1e2 ’anti1e2 .anti1ÃĐ2 .anti2enne 'anti2enne ’anti2enne 'anti1ÃĐ2 ’anti1ÃĐ2 .anti1s2 'anti1s2 ’anti1s2 .apo2s3ta 'apo2s3ta ’apo2s3ta apo2s3tr archi1ÃĐ2pis .as2ta 'as2ta ’as2ta a2s3tro 1ba 1bÃĒ .bai2se3main 1be 1bÃĐ 1bÃĻ 1bÊ 4be. 4bes. 2bent. 1bi 1bÃŪ .bi1a2c .bi1a2t .bi1au .bio1a2 .bi2s1a2 .bi1u2 1b2l 4ble. 4bles. 2blent. 1bo 1bÃī 1b2r 4bre. 4bres. 2brent. 1bu 1bÃŧ 1by 1ç 1ca 1cÃĒ ca3ou3t2 1ce 1cÃĐ 1cÃĻ 1cÊ 4ce. 4ces. 2cent. ja3cent. ac3cent. ÃĐ3cent. munifi3cent. rÃĐti3cent. privatdo3cent. inno3cent. es3cent. acquies4cent. is3cent. immis4cent. .ch4 1c2h 4ch. 2chb 4che. 4ches. 2chent. .chÃĻ2vre3feuille 2chg ch2l 4chle. 4chles. chlo2r3a2c chlo2r3ÃĐ2t 2chm 2chn 2chp ch2r 4chre. 4chres. 2chs 2cht 2chw 1ci 1cÃŪ .ci2s1alp 1c2k 4ck. 2ckb 4cke. 4ckes. 2ckent. 2ckf 2ckg 2ck3h 2ckp 2cks 2ckt 1c2l 4cle. 4cles. 2clent. 1co 1cÃī co1acc co1acq co1a2d co1ap co1ar co1assoc co1assur co1au co1ax 1cœ co1ÃĐ2 co1ef co1en co1ex .con4 .cons4 .contre1s2c .contre3maÃŪtre co2nurb .co1o2 .co2o3lie 1c2r 4cre. 4cres. 2crent. 1cu 1cÃŧ 1cy .cul4 1d' 1d’ 1da 1dÃĒ .dacryo1a2 d1d2h 1de 1dÃĐ 1dÃĻ 1dÊ 4de. 4des. 2dent. dÃĐca3dent. ÃĐ3dent. cci3dent. inci3dent. confi3dent. tri3dent. dissi3dent. chien3dent. .ar3dent. impu3dent. pru3dent. .dÃĐ1a2 .dÃĐ1io .dÃĐ1o2 .dÃĐ2s .dÃĐ3s2a3cr .dÃĐs2a3m .dÃĐ3s2a3tell .dÃĐ3s2astr .dÃĐ3s2c .dÃĐ2s1ÃĐ2 .dÃĐ3s2ÃĐ3gr .dÃĐ3s2ensib .dÃĐ3s2ert .dÃĐ3s2exu .dÃĐ2s1i2 .dÃĐ3s2i3d .dÃĐ3s2i3gn .dÃĐ3s2i3li .dÃĐ3s2i3nen .dÃĐ3s2invo .dÃĐ3s2i3r .dÃĐ3s2ist .dÃĐ3s2o3dÃĐ .dÃĐ2s1œ .dÃĐ3s2o3l .dÃĐ3s2o3pil .dÃĐ3s2orm .dÃĐ3s2orp .dÃĐ3s2oufr .dÃĐ3s2p .dÃĐ3s2t .dÃĐ2s1u2n 3d2hal 3d2houd 1di 1dÃŪ di2s3cop .di1a2cÃĐ .di1a2cid .di1ald .di1a2mi .di1a2tom .di1e2n .di2s3h 2dlent. 1do 1dÃī 1d2r 4dre. 4dres. 2drent. d1s2 1du 1dÃŧ 1dy .dy2s3 .dy2s1a2 .dy2s1i2 .dy2s1o2 .dy2s1u2 .e4 'e4 ’e4 .Ê4 'Ê4 ’Ê4 .ÃĐ4 'ÃĐ4 ’ÃĐ4 .ÃĻ4 'ÃĻ4 ’ÃĻ4 ÃĐd2hi 1ÃĐ2drie 1ÃĐ2drique 1ÃĐ2lectr 1ÃĐ2lÃĐment .en1a2 'en1a2 ’en1a2 1ÃĐ2nerg e2n1i2vr .en1o2 'en1o2 ’en1o2 ÃĐpi2s3cop ÃĐpi3s4cope e2s3cop .eu2r1a2 'eu2r1a2 ’eu2r1a2 eu1s2tat extra1 extra2c extra2i 1fa 1fÃĒ 1fe 1fÃĐ 1fÃĻ 1fÊ 4fe. 4fes. 2fent. 1fi 1fÃŪ 1f2l 4fle. 4fles. 2flent. 1fo 1fÃī 1f2r 4fre. 4fres. 2frent. f1s2 1fu 1fÃŧ 1fy 1ga 1gÃĒ 1ge 1gÃĐ 1gÃĻ 1gÊ 4ge. 4ges. 2gent. rÃĐ3gent. entre3gent. indi3gent. dili3gent. intelli3gent. indul3gent. tan3gent. rin3gent. contin3gent. .ar3gent. 'ar3gent. ’ar3gent. ser3gent. ter3gent. rÃĐsur3gent. 1g2ha 1g2he 1g2hi 1g2ho 1g2hy 1gi 1gÃŪ 1g2l 4gle. 4gles. 2glent. 1g2n 'a2g3nat ’a2g3nat .a2g3nat a2g3nos co2g3niti 'i2g3nÃР’i2g3nÃĐ .i2g3nÃĐ 'i2g3ni ’i2g3ni .i2g3ni .ma2g3nicide .ma2g3nificat .ma2g3num o2g3nomoni o2g3nosi .pro2g3nath pu2g3nable pu2g3nac .sta2g3n .syn2g3nath wa2g3n 4gne. 4gnes. 2gnent. 1go 1gÃī 1g2r 4gre. 4gres. 2grent. 1gu 1gÃŧ g1s2 4gue. 4gues. 2guent. .on3guent. 'on3guent. ’on3guent. 1gy 1ha 1hÃĒ 1he 1hÃĐ 1hÃĻ 1hÊ hÃĐmi1ÃĐ hÃĐmo1p2t 4he. 4hes. 1hi 1hÃŪ 1ho 1hÃī 1hu 1hÃŧ 1hy hypera2 hypere2 hyperÃĐ2 hyperi2 hypero2 hypers2 hype4r1 hyperu2 hypo1a2 hypo1e2 hypo1ÃĐ2 hypo1i2 hypo1o2 hypo1s2 hypo1u2 .i4 'i4 ’i4 .ÃŪ4 'ÃŪ4 ’ÃŪ4 i1algi i1arthr i1ÃĻ2dre il2l cil3l rcil4l ucil4l vacil4l gil3l hil3l lil3l l3lion mil3l mil4let ÃĐmil4l semil4l rmil4l armil5l capil3l papil3la papil3le papil3li papil3lom pupil3l piril3l thril3l cyril3l ibril3l pusil3l .stil3l distil3l instil3l fritil3l boutil3l vanil3lin vanil3lis vil3l avil4l chevil4l uevil4l uvil4l xil3l 1informat '2informat ’2informat .in1a2 'in1a2 ’in1a2 .in2a3nit 'in2a3nit ’in2a3nit .in2augur 'in2augur ’in2augur .in1e2 'in1e2 ’in1e2 .in1ÃĐ2 'in1ÃĐ2 ’in1ÃĐ2 .in2effab 'in2effab ’in2effab .in2ÃĐ3lucta 'in2ÃĐ3lucta ’in2ÃĐ3lucta .in2ÃĐ3narra 'in2ÃĐ3narra ’in2ÃĐ3narra .in2ept 'in2ept ’in2ept .in2er 'in2er ’in2er .in2exora 'in2exora ’in2exora .in1i2 'in1i2 ’in1i2 .in2i3miti 'in2i3miti ’in2i3miti .in2i3q 'in2i3q ’in2i3q .in2i3t 'in2i3t ’in2i3t .in1o2 'in1o2 ’in1o2 .in2o3cul 'in2o3cul ’in2o3cul .in2ond 'in2ond ’in2ond .in1s2tab 'in1s2tab ’in1s2tab 'inte4r3 ’inte4r3 .intera2 'intera2 ’intera2 .intere2 'intere2 ’intere2 .interÃĐ2 'interÃĐ2 ’interÃĐ2 .interi2 'interi2 ’interi2 .intero2 'intero2 ’intero2 .inte4r3 .interu2 'interu2 ’interu2 .inters2 'inters2 ’inters2 .in1u2 'in1u2 ’in1u2 .in2uit 'in2uit ’in2uit .in2u3l 'in2u3l ’in2u3l io1a2ct i1oxy i1s2tat 1j 2jk 4je. 4jes. 2jent. 1ka 1kÃĒ 1ke 1kÃĐ 1kÃĻ 1kÊ 4ke. 4kes. 2kent. 1k2h 4kh. .kh4 1ki 1kÃŪ 1ko 1kÃī 1k2r 1ku 1kÃŧ 1ky 1la 1lÃĒ 1là la2w3re 1le 1lÃĐ 1lÃĻ 1lÊ 4le. 4les. 2lent. .ta3lent. iva3lent. ÃĐquiva4lent. monova3lent. polyva3lent. re3lent. .do3lent. indo3lent. inso3lent. turbu3lent. succu3lent. fÃĐcu3lent. trucu3lent. opu3lent. corpu3lent. ru3lent. sporu4lent. 1li 1lÃŪ 1lo 1lÃī l1s2t 1lu 1lÃŧ 1ly 1ma 1mÃĒ .ma2c3k .macro1s2c .ma2l1a2dres .ma2l1a2dro .ma2l1aisÃĐ .ma2l1ap .ma2l1a2v .ma2l1en .ma2l1int .ma2l1oc .ma2l1o2d .ma2r1x 1me 1mÃĐ 1mÃĻ 1mÊ .mÃĐ2g1oh .mÃĐ2sa .mÃĐ3san .mÃĐ2s1es .mÃĐ2s1i .mÃĐ2s1u2s .mÃĐta1s2ta 4me. 4mes. ÃĒ2ment. da2ment. fa2ment. amalga2ment. cla2ment. ra2ment. tempÃĐra3ment. ta2ment. testa3ment. qua2ment. ÃĻ2ment. carÊ2ment. diaphrag2ment. ryth2ment. ai2ment. rai3ment. abÃŪ2ment. ÃĐci2ment. vidi2ment. subli2ment. ÃĐli2ment. reli2ment. mi2ment. ani2ment. veni2ment. ri2ment. dÃĐtri3ment. nutri3ment. inti2ment. esti2ment. l2ment. flam2ment. gram2ment. .gem2ment. om2ment. .com3ment. Ãī2ment. slalo2ment. chro2ment. to2ment. ar2ment. .sar3ment. er2ment. antifer3ment. .ser3ment. fir2ment. or2ment. as2ment. au2ment. ÃĐcu2ment. fu2ment. hu2ment. fichu3ment. llu2ment. plu2ment. bou2ment. bru2ment. su2ment. tu2ment. 1mi 1mÃŪ .milli1am 1m2nÃĐmo 1m2nÃĻs 1m2nÃĐsi 1mo 1mÃī 1mœ .mono1a2 .mono1e2 .mono1ÃĐ2 .mono1i2 .mono1ÃŊ2dÃĐ .mono1o2 .mono1u2 .mono1s2 mon2t3rÃĐal m1s2 1mu 1mÃŧ 1my moye2n1ÃĒ2g 1na 1nÃĒ 1ne 1nÃĐ 1nÃĻ 1nÊ 4ne. 4nes. 2nent. rÃĐma3nent. imma3nent. perma3nent. .ÃĐmi3nent. prÃĐÃĐmi3nent. proÃĐmi3nent. surÃĐmi3nent. immi3nent. conti3nent. perti3nent. absti3nent. 1ni 1nÃŪ 1no 1nÃī 1nœ .no2n1obs 1nu 1nÃŧ n3s2at. n3s2ats. n1x 1ny .o4 'o4 ’o4 'Ãī4 ’Ãī4 .Ãī4 o2b3long 1octet '2octet ’2octet o1d2l o1ÃĻ2dre o1ioni ombud2s3 omni1s2 o1s2tas o1s2tat o1s2tÃĐro o1s2tim o1s2tom o1s2trad o1s2tratu o1s2triction .oua1ou 'oua1ou ’oua1ou .ovi1s2c 'ovi1s2c ’ovi1s2c oxy1a2 1pa 1pÃĒ palÃĐo1ÃĐ2 .pa2n1a2f .pa2n1a2mÃĐ .pa2n1a2ra .pa2n1is .pa2n1o2ph .pa2n1opt .pa2r1a2che .pa2r1a2chÃĻ .para1s2 .pa2r3hÃĐ 1pe 1pÃĐ 1pÃĻ 1pÊ 4pe. 4pes. 2pent. re3pent. .ar3pent. 'ar3pent. ’ar3pent. ser3pent. .pen2ta per3h pÃĐ2nul .pe4r .per1a2 .per1e2 .per1ÃĐ2 .per1i2 .per1o2 .per1u2 pÃĐ1r2ÃĐ2q .pÃĐri1os .pÃĐri1s2 .pÃĐri2s3s .pÃĐri2s3ta .pÃĐri1u2 1p2h .ph4 4ph. .phalan3s2t 4phe. 4phes. 2phent. ph2l 4phle. 4phles. 2phn photo1s2 ph2r 4phre. 4phres. 2phs 2pht 3ph2talÃĐ 3ph2tis 1pi 1pÃŪ 1p2l 4ple. 4ples. 2plent. .pluri1a 1p2nÃĐ 1p2neu 1po 1pÃī po1astre poly1a2 poly1e2 poly1ÃĐ2 poly1ÃĻ2 poly1i2 poly1o2 poly1s2 poly1u2 .pon2tet .pos2t3h .pos2t1in .pos2t1o2 .pos2t3r .post1s2 1p2r 4pre. 4pres. 2prent. .prÃĐ1a2 .prÃĐ2a3la .prÃĐ2au .prÃĐ1ÃĐ2 .prÃĐ1e2 .prÃĐ1i2 .prÃĐ1o2 .prÃĐ1u2 .prÃĐ1s2 .pro1ÃĐ2 .pro1s2cÃĐ pro2s3tat .prou3d2h 1p2sych .psycho1a2n 1p2tÃĻr 1p2tÃĐr 1pu .pud1d2l 1pÃŧ 1py 1q 4que. 4ques. 2quent. ÃĐ3quent. ÃĐlo3quent. grandilo3quent. 1ra 1rÃĒ radio1a2 1re 1rÃĐ 1rÃĻ 1rÊ .rÃĐ1a2 .rÃĐ2a3le .rÃĐ2a3lis .rÃĐ2a3lit .rÃĐ2aux .rÃĐ1ÃĐ2 .rÃĐ1e2 .rÃĐ2el .rÃĐ2er .rÃĐ2ÃĻr .rÃĐ1i2 .rÃĐ2i3fi .rÃĐ1o2 .re1s2 .re2s3cap .re2s3cisi .re2s3ciso .re2s3cou .re2s3cri .re2s3pect .re2s3pir .re2s3plend .re2s3pons .re2s3quil .re2s3s .re2s3t .re3s4tab .re3s4tag .re3s4tand .re3s4tat .re3s4tÃĐn .re3s4tÃĐr .re3s4tim .re3s4tip .re3s4toc .re3s4top .re3s4tr .re4s5trein .re4s5trict .re4s5trin .re3s4tu .re3s4ty .rÃĐu2 .rÃĐ2uss .rÃĐtro1a2 4re. 4res. 2rent. .pa3rent. appa3rent. transpa3rent. ÃĐ3rent. tor3rent. cur3rent. 1r2h 4rhe. 4rhes. 2r3heur 2r3hydr 1ri 1rÃŪ 1ro 1rÃī 1ru 1rÃŧ 1ry 1sa 1sÃĒ .sch4 1s2caph 1s2clÃĐr 1s2cop 1s2ch e2s3ch i2s3chÃĐ i2s3chia i2s3chio 4sch. 4sche. 4sches. 2schs 1se 1sÃĐ 1sÃĻ 1sÊ sesqui1a2 4se. 4ses. 2sent. ab3sent. prÃĐ3sent. .res3sent. .seu2le .sh4 1s2h 4sh. 4she. 4shes. 2shent. 2shm 2s3hom 2shr 2shs 1si 1sÃŪ 1s2lav 1s2lov 1so 1sÃī 1sœ 1s2patia 1s2perm 1s2por 1s2phÃĻr 1s2phÃĐr 1s2piel 1s2piros 1s2tandard 1s2tein stÃĐrÃĐo1s2 1s2tigm 1s2tock 1s2tomos 1s2troph 1s2tructu 1s2tyle 1su 1sÃŧ .su2b1a2 .su3b2alt .su2b1ÃĐ2 .su3b2ÃĐ3r .su2b1in .su2b3limin .su2b3lin .su2b3lu sub1s2 .su2b1ur supero2 supe4r1 supers2 .su2r1a2 su3r2ah .su3r2a3t .su2r1e2 .su3r2eau .su3r2ell .su3r2et .su2r1ÃĐ2 .su2r3h .su2r1i2m .su2r1inf .su2r1int .su2r1of .su2r1ox 1sy 1ta 1tÃĒ 1tà tachy1a2 tchin3t2 1te 1tÃĐ 1tÃĻ 1tÊ tÃĐlÃĐ1e2 tÃĐlÃĐ1i2 tÃĐlÃĐ1o2b tÃĐlÃĐ1o2p tÃĐlÃĐ1s2 4te. 4tes. 2tent. .la3tent. .pa3tent. compÃĐ3tent. ÃĐni3tent. mÃĐcon3tent. omnipo3tent. ventripo3tent. ÃĐquipo3tent. impo3tent. mit3tent. .th4 1t2h 4th. 4the. 4thes. thermo1s2 2t3heur 2thl 2thm 2thn th2r 4thre. 4thres. 2ths 1ti 1tÃŪ 1to 1tÃī 1t2r tran2s1a2 tran3s2act tran3s2ats tran2s3h tran2s1o2 tran2s3p tran2s1u2 4tre. 4tres. 2trent. .tri1a2c .tri1a2n .tri1a2t .tri1o2n t1t2l 1tu 1tÃŧ tung2s3 1ty .u4 'u4 ’u4 .Ãŧ4 'Ãŧ4 ’Ãŧ4 uni1o2v uni1a2x u2s3tr 1va 1vÃĒ 1ve 1vÃĐ 1vÃĻ 1vÊ vÃĐlo1s2ki 4ve. 4ves. 2vent. conni3vent. .sou3vent. 1vi 1vÃŪ 1vo 1vÃī vol2t1amp 1v2r 4vre. 4vres. 2vrent. 1vu 1vÃŧ 1vy 1wa 1we 4we. 4wes. 2went. 1wi 1wo 1wu 1w2r 2xent. .y4 'y4 ’y4 y1asth y1s2tom y1algi 1za 1ze 1zÃĐ 1zÃĻ 4ze. 4zes. 2zent. privatdo3zent. 1zi 1zo 1zu 1zy",
+ ["data"]="2'2 2’2 .a4 'a4 ’a4 .ÃĒ4 'ÃĒ4 ’ÃĒ4 ab2h .ab3rÃĐa 'ab3rÃĐa ’ab3rÃĐa ad2h a1ÃĻ2dre .ae3s4ch 'ae3s4ch ’ae3s4ch 1alcool a2l1algi .amino1a2c 'amino1a2c ’amino1a2c .ana3s4tr 'ana3s4tr ’ana3s4tr 1a2nesthÃĐsi .anti1a2 'anti1a2 ’anti1a2 .anti1e2 'anti1e2 ’anti1e2 .anti1ÃĐ2 .anti2enne 'anti2enne ’anti2enne 'anti1ÃĐ2 ’anti1ÃĐ2 .anti1s2 'anti1s2 ’anti1s2 .apo2s3ta 'apo2s3ta ’apo2s3ta apo2s3tr archi1ÃĐ2pis .as2ta 'as2ta ’as2ta a2s3tro 1ba 1bÃĒ .bai2se3main 1be 1bÃĐ 1bÃĻ 1bÊ 4be. 4bes. 2bent. 1bi 1bÃŪ .bi1a2c .bi1a2t .bi1au .bio1a2 .bi2s1a2 .bi1u2 1b2l 4ble. 4bles. 2blent. 1bo 1bÃī 1b2r 4bre. 4bres. 2brent. 1bu 1bÃŧ 1by 1ç 1ca 1cÃĒ ca3ou3t2 1ce 1cÃĐ 1cÃĻ 1cÊ 4ce. 4ces. 2cent. ja3cent. ac3cent. ÃĐ3cent. munifi3cent. rÃĐti3cent. privatdo3cent. inno3cent. es3cent. acquies4cent. is3cent. immis4cent. .ch4 1c2h 4ch. 2chb 4che. 4ches. 2chent. .chÃĻ2vre3feuille 2chg ch2l 4chle. 4chles. chlo2r3a2c chlo2r3ÃĐ2t 2chm 2chn 2chp ch2r 4chre. 4chres. 2chs 2cht 2chw 1ci 1cÃŪ .ci2s1alp 1c2k 4ck. 2ckb 4cke. 4ckes. 2ckent. 2ckf 2ckg 2ck3h 2ckp 2cks 2ckt 1c2l 4cle. 4cles. 2clent. 1co 1cÃī co1acc co1acq co1a2d co1ap co1ar co1assoc co1assur co1au co1ax 1cœ co1ÃĐ2 co1ef co1en co1ex .con4 .cons4 .contre1s2c .contre3maÃŪtre co2nurb .co1o2 .co2o3lie 1c2r 4cre. 4cres. 2crent. 1cu 1cÃŧ 1cy .cul4 1d' 1d’ 1da 1dÃĒ .dacryo1a2 d1d2h 1de 1dÃĐ 1dÃĻ 1dÊ 4de. 4des. 2dent. dÃĐca3dent. ÃĐ3dent. cci3dent. inci3dent. confi3dent. tri3dent. dissi3dent. chien3dent. .ar3dent. impu3dent. pru3dent. .dÃĐ1a2 .dÃĐ1io .dÃĐ1o2 .dÃĐ2s .dÃĐ3s2a3cr .dÃĐs2a3m .dÃĐ3s2a3tell .dÃĐ3s2astr .dÃĐ3s2c .dÃĐ2s1ÃĐ2 .dÃĐ3s2ÃĐ3gr .dÃĐ3s2ensib .dÃĐ3s2ert .dÃĐ3s2exu .dÃĐ2s1i2 .dÃĐ3s2i3d .dÃĐ3s2i3gn .dÃĐ3s2i3li .dÃĐ3s2i3nen .dÃĐ3s2invo .dÃĐ3s2i3r .dÃĐ3s2ist .dÃĐ3s2o3dÃĐ .dÃĐ2s1œ .dÃĐ3s2o3l .dÃĐ3s2o3pil .dÃĐ3s2orm .dÃĐ3s2orp .dÃĐ3s2oufr .dÃĐ3s2p .dÃĐ3s2t .dÃĐ2s1u2n 3d2hal 3d2houd 1di 1dÃŪ di2s3cop .di1a2cÃĐ .di1a2cid .di1ald .di1a2mi .di1a2tom .di1e2n .di2s3h 2dlent. 1do 1dÃī 1d2r 4dre. 4dres. 2drent. d1s2 1du 1dÃŧ 1dy .dy2s3 .dy2s1a2 .dy2s1i2 .dy2s1o2 .dy2s1u2 .e4 'e4 ’e4 .Ê4 'Ê4 ’Ê4 .ÃĐ4 'ÃĐ4 ’ÃĐ4 .ÃĻ4 'ÃĻ4 ’ÃĻ4 ÃĐd2hi 1ÃĐ2drie 1ÃĐ2drique 1ÃĐ2lectr 1ÃĐ2lÃĐment .en1a2 'en1a2 ’en1a2 1ÃĐ2nerg e2n1i2vr .en1o2 'en1o2 ’en1o2 ÃĐpi2s3cop ÃĐpi3s4cope e2s3cop .eu2r1a2 'eu2r1a2 ’eu2r1a2 eu1s2tat extra1 extra2c extra2i 1fa 1fÃĒ 1fe 1fÃĐ 1fÃĻ 1fÊ 4fe. 4fes. 2fent. 1fi 1fÃŪ 1f2l 4fle. 4fles. 2flent. 1fo 1fÃī 1f2r 4fre. 4fres. 2frent. f1s2 1fu 1fÃŧ 1fy 1ga 1gÃĒ 1ge 1gÃĐ 1gÃĻ 1gÊ 4ge. 4ges. 2gent. rÃĐ3gent. entre3gent. indi3gent. dili3gent. intelli3gent. indul3gent. tan3gent. rin3gent. contin3gent. .ar3gent. 'ar3gent. ’ar3gent. ser3gent. ter3gent. rÃĐsur3gent. 1g2ha 1g2he 1g2hi 1g2ho 1g2hy 1gi 1gÃŪ 1g2l 4gle. 4gles. 2glent. 1g2n 'a2g3nat ’a2g3nat .a2g3nat a2g3nos co2g3niti 'i2g3nÃР’i2g3nÃĐ .i2g3nÃĐ 'i2g3ni ’i2g3ni .i2g3ni .ma2g3nicide .ma2g3nificat .ma2g3num o2g3nomoni o2g3nosi .pro2g3nath pu2g3nable pu2g3nac .sta2g3n .syn2g3nath wa2g3n 4gne. 4gnes. 2gnent. 1go 1gÃī 1g2r 4gre. 4gres. 2grent. 1gu 1gÃŧ g1s2 4gue. 4gues. 2guent. .on3guent. 'on3guent. ’on3guent. 1gy 1ha 1hÃĒ 1he 1hÃĐ 1hÃĻ 1hÊ hÃĐmi1ÃĐ hÃĐmo1p2t 4he. 4hes. 1hi 1hÃŪ 1ho 1hÃī 1hu 1hÃŧ 1hy hypera2 hypere2 hyperÃĐ2 hyperi2 hypero2 hypers2 hype4r1 hyperu2 hypo1a2 hypo1e2 hypo1ÃĐ2 hypo1i2 hypo1o2 hypo1s2 hypo1u2 .i4 'i4 ’i4 .ÃŪ4 'ÃŪ4 ’ÃŪ4 i1algi i1arthr i1ÃĻ2dre il2l cil3l rcil4l ucil4l vacil4l gil3l hil3l lil3l l3lion mil3l mil4let ÃĐmil4l semil4l rmil4l armil5l capil3l papil3la papil3le papil3li papil3lom pupil3l piril3l thril3l cyril3l ibril3l pusil3l .stil3l distil3l instil3l fritil3l boutil3l vanil3lin vanil3lis vil3l avil4l chevil4l uevil4l uvil4l xil3l 1informat .in1a2 'in1a2 ’in1a2 .in2a3nit 'in2a3nit ’in2a3nit .in2augur 'in2augur ’in2augur .in1e2 'in1e2 ’in1e2 .in1ÃĐ2 'in1ÃĐ2 ’in1ÃĐ2 .in2effab 'in2effab ’in2effab .in2ÃĐ3lucta 'in2ÃĐ3lucta ’in2ÃĐ3lucta .in2ÃĐ3narra 'in2ÃĐ3narra ’in2ÃĐ3narra .in2ept 'in2ept ’in2ept .in2er 'in2er ’in2er .in2exora 'in2exora ’in2exora .in1i2 'in1i2 ’in1i2 .in2i3miti 'in2i3miti ’in2i3miti .in2i3q 'in2i3q ’in2i3q .in2i3t 'in2i3t ’in2i3t .in1o2 'in1o2 ’in1o2 .in2o3cul 'in2o3cul ’in2o3cul .in2ond 'in2ond ’in2ond .in1s2tab 'in1s2tab ’in1s2tab 'inte4r3 ’inte4r3 .intera2 'intera2 ’intera2 .intere2 'intere2 ’intere2 .interÃĐ2 'interÃĐ2 ’interÃĐ2 .interi2 'interi2 ’interi2 .intero2 'intero2 ’intero2 .inte4r3 .interu2 'interu2 ’interu2 .inters2 'inters2 ’inters2 .in1u2 'in1u2 ’in1u2 .in2uit 'in2uit ’in2uit .in2u3l 'in2u3l ’in2u3l io1a2ct i1oxy i1s2tat 1j 2jk 4je. 4jes. 2jent. 1ka 1kÃĒ 1ke 1kÃĐ 1kÃĻ 1kÊ 4ke. 4kes. 2kent. 1k2h 4kh. .kh4 1ki 1kÃŪ 1ko 1kÃī 1k2r 1ku 1kÃŧ 1ky 1la 1lÃĒ 1là la2w3re 1le 1lÃĐ 1lÃĻ 1lÊ 4le. 4les. 2lent. .ta3lent. iva3lent. ÃĐquiva4lent. monova3lent. polyva3lent. re3lent. .do3lent. indo3lent. inso3lent. turbu3lent. succu3lent. fÃĐcu3lent. trucu3lent. opu3lent. corpu3lent. ru3lent. sporu4lent. 1li 1lÃŪ 1lo 1lÃī l1s2t 1lu 1lÃŧ 1ly 1ma 1mÃĒ .ma2c3k .macro1s2c .ma2l1a2dres .ma2l1a2dro .ma2l1aisÃĐ .ma2l1ap .ma2l1a2v .ma2l1en .ma2l1int .ma2l1oc .ma2l1o2d .ma2r1x 1me 1mÃĐ 1mÃĻ 1mÊ .mÃĐ2g1oh .mÃĐ2sa .mÃĐ3san .mÃĐ2s1es .mÃĐ2s1i .mÃĐ2s1u2s .mÃĐta1s2ta 4me. 4mes. ÃĒ2ment. da2ment. fa2ment. amalga2ment. cla2ment. ra2ment. tempÃĐra3ment. ta2ment. testa3ment. qua2ment. ÃĻ2ment. carÊ2ment. diaphrag2ment. ryth2ment. ai2ment. rai3ment. abÃŪ2ment. ÃĐci2ment. vidi2ment. subli2ment. ÃĐli2ment. reli2ment. mi2ment. ani2ment. veni2ment. ri2ment. dÃĐtri3ment. nutri3ment. inti2ment. esti2ment. l2ment. flam2ment. gram2ment. .gem2ment. om2ment. .com3ment. Ãī2ment. slalo2ment. chro2ment. to2ment. ar2ment. .sar3ment. er2ment. antifer3ment. .ser3ment. fir2ment. or2ment. as2ment. au2ment. ÃĐcu2ment. fu2ment. hu2ment. fichu3ment. llu2ment. plu2ment. bou2ment. bru2ment. su2ment. tu2ment. 1mi 1mÃŪ .milli1am 1m2nÃĐmo 1m2nÃĻs 1m2nÃĐsi 1mo 1mÃī 1mœ .mono1a2 .mono1e2 .mono1ÃĐ2 .mono1i2 .mono1ÃŊ2dÃĐ .mono1o2 .mono1u2 .mono1s2 mon2t3rÃĐal m1s2 1mu 1mÃŧ 1my moye2n1ÃĒ2g 1na 1nÃĒ 1ne 1nÃĐ 1nÃĻ 1nÊ 4ne. 4nes. 2nent. rÃĐma3nent. imma3nent. perma3nent. .ÃĐmi3nent. prÃĐÃĐmi3nent. proÃĐmi3nent. surÃĐmi3nent. immi3nent. conti3nent. perti3nent. absti3nent. 1ni 1nÃŪ 1no 1nÃī 1nœ .no2n1obs 1nu 1nÃŧ n3s2at. n3s2ats. n1x 1ny .o4 'o4 ’o4 'Ãī4 ’Ãī4 .Ãī4 o2b3long 1octet o1d2l o1ÃĻ2dre o1ioni ombud2s3 omni1s2 o1s2tas o1s2tat o1s2tÃĐro o1s2tim o1s2tom o1s2trad o1s2tratu o1s2triction .oua1ou 'oua1ou ’oua1ou .ovi1s2c 'ovi1s2c ’ovi1s2c oxy1a2 1pa 1pÃĒ palÃĐo1ÃĐ2 .pa2n1a2f .pa2n1a2mÃĐ .pa2n1a2ra .pa2n1is .pa2n1o2ph .pa2n1opt .pa2r1a2che .pa2r1a2chÃĻ .para1s2 .pa2r3hÃĐ 1pe 1pÃĐ 1pÃĻ 1pÊ 4pe. 4pes. 2pent. re3pent. .ar3pent. 'ar3pent. ’ar3pent. ser3pent. .pen2ta per3h pÃĐ2nul .pe4r .per1a2 .per1e2 .per1ÃĐ2 .per1i2 .per1o2 .per1u2 pÃĐ1r2ÃĐ2q .pÃĐri1os .pÃĐri1s2 .pÃĐri2s3s .pÃĐri2s3ta .pÃĐri1u2 1p2h .ph4 4ph. .phalan3s2t 4phe. 4phes. 2phent. ph2l 4phle. 4phles. 2phn photo1s2 ph2r 4phre. 4phres. 2phs 2pht 3ph2talÃĐ 3ph2tis 1pi 1pÃŪ 1p2l 4ple. 4ples. 2plent. .pluri1a 1p2nÃĐ 1p2neu 1po 1pÃī po1astre poly1a2 poly1e2 poly1ÃĐ2 poly1ÃĻ2 poly1i2 poly1o2 poly1s2 poly1u2 .pon2tet .pos2t3h .pos2t1in .pos2t1o2 .pos2t3r .post1s2 1p2r 4pre. 4pres. 2prent. .prÃĐ1a2 .prÃĐ2a3la .prÃĐ2au .prÃĐ1ÃĐ2 .prÃĐ1e2 .prÃĐ1i2 .prÃĐ1o2 .prÃĐ1u2 .prÃĐ1s2 .pro1ÃĐ2 .pro1s2cÃĐ pro2s3tat .prou3d2h 1p2sych .psycho1a2n 1p2tÃĻr 1p2tÃĐr 1pu .pud1d2l 1pÃŧ 1py 1q 4que. 4ques. 2quent. ÃĐ3quent. ÃĐlo3quent. grandilo3quent. 1ra 1rÃĒ radio1a2 1re 1rÃĐ 1rÃĻ 1rÊ .rÃĐ1a2 .rÃĐ2a3le .rÃĐ2a3lis .rÃĐ2a3lit .rÃĐ2aux .rÃĐ1ÃĐ2 .rÃĐ1e2 .rÃĐ2el .rÃĐ2er .rÃĐ2ÃĻr .rÃĐ1i2 .rÃĐ2i3fi .rÃĐ1o2 .re1s2 .re2s3cap .re2s3cisi .re2s3ciso .re2s3cou .re2s3cri .re2s3pect .re2s3pir .re2s3plend .re2s3pons .re2s3quil .re2s3s .re2s3t .re3s4tab .re3s4tag .re3s4tand .re3s4tat .re3s4tÃĐn .re3s4tÃĐr .re3s4tim .re3s4tip .re3s4toc .re3s4top .re3s4tr .re4s5trein .re4s5trict .re4s5trin .re3s4tu .re3s4ty .rÃĐu2 .rÃĐ2uss .rÃĐtro1a2 4re. 4res. 2rent. .pa3rent. appa3rent. transpa3rent. ÃĐ3rent. tor3rent. cur3rent. 1r2h 4rhe. 4rhes. 2r3heur 2r3hydr 1ri 1rÃŪ 1ro 1rÃī 1ru 1rÃŧ 1ry 1sa 1sÃĒ .sch4 1s2caph 1s2clÃĐr 1s2cop 1s2ch e2s3ch i2s3chÃĐ i2s3chia i2s3chio 4sch. 4sche. 4sches. 2schs 1se 1sÃĐ 1sÃĻ 1sÊ sesqui1a2 4se. 4ses. 2sent. ab3sent. prÃĐ3sent. .res3sent. .seu2le .sh4 1s2h 4sh. 4she. 4shes. 2shent. 2shm 2s3hom 2shr 2shs 1si 1sÃŪ 1s2lav 1s2lov 1so 1sÃī 1sœ 1s2patia 1s2perm 1s2por 1s2phÃĻr 1s2phÃĐr 1s2piel 1s2piros 1s2tandard 1s2tein stÃĐrÃĐo1s2 1s2tigm 1s2tock 1s2tomos 1s2troph 1s2tructu 1s2tyle 1su 1sÃŧ .su2b1a2 .su3b2alt .su2b1ÃĐ2 .su3b2ÃĐ3r .su2b1in .su2b3limin .su2b3lin .su2b3lu sub1s2 .su2b1ur supero2 supe4r1 supers2 .su2r1a2 su3r2ah .su3r2a3t .su2r1e2 .su3r2eau .su3r2ell .su3r2et .su2r1ÃĐ2 .su2r3h .su2r1i2m .su2r1inf .su2r1int .su2r1of .su2r1ox 1sy 1ta 1tÃĒ 1tà tachy1a2 tchin3t2 1te 1tÃĐ 1tÃĻ 1tÊ tÃĐlÃĐ1e2 tÃĐlÃĐ1i2 tÃĐlÃĐ1o2b tÃĐlÃĐ1o2p tÃĐlÃĐ1s2 4te. 4tes. 2tent. .la3tent. .pa3tent. compÃĐ3tent. ÃĐni3tent. mÃĐcon3tent. omnipo3tent. ventripo3tent. ÃĐquipo3tent. impo3tent. mit3tent. .th4 1t2h 4th. 4the. 4thes. thermo1s2 2t3heur 2thl 2thm 2thn th2r 4thre. 4thres. 2ths 1ti 1tÃŪ 1to 1tÃī 1t2r tran2s1a2 tran3s2act tran3s2ats tran2s3h tran2s1o2 tran2s3p tran2s1u2 4tre. 4tres. 2trent. .tri1a2c .tri1a2n .tri1a2t .tri1o2n t1t2l 1tu 1tÃŧ tung2s3 1ty .u4 'u4 ’u4 .Ãŧ4 'Ãŧ4 ’Ãŧ4 uni1o2v uni1a2x u2s3tr 1va 1vÃĒ 1ve 1vÃĐ 1vÃĻ 1vÊ vÃĐlo1s2ki 4ve. 4ves. 2vent. conni3vent. .sou3vent. 1vi 1vÃŪ 1vo 1vÃī vol2t1amp 1v2r 4vre. 4vres. 2vrent. 1vu 1vÃŧ 1vy 1wa 1we 4we. 4wes. 2went. 1wi 1wo 1wu 1w2r 2xent. .y4 'y4 ’y4 y1asth y1s2tom y1algi 1za 1ze 1zÃĐ 1zÃĻ 4ze. 4zes. 2zent. privatdo3zent. 1zi 1zo 1zu 1zy",
["lefthyphenmin"]=1,
- ["length"]=9673,
- ["n"]=1216,
+ ["length"]=9581,
+ ["n"]=1208,
["righthyphenmax"]=1,
},
["version"]="1.001",
diff --git a/Master/texmf-dist/tex/context/patterns/mkiv/lang-la.lua b/Master/texmf-dist/tex/context/patterns/mkiv/lang-la.lua
index a706c7c3e1b..5a0e2cc9330 100644
--- a/Master/texmf-dist/tex/context/patterns/mkiv/lang-la.lua
+++ b/Master/texmf-dist/tex/context/patterns/mkiv/lang-la.lua
@@ -6,79 +6,35 @@ return {
["metadata"]={
["mnemonic"]="la",
["source"]="hyph-la",
- ["texcomment"]="% title: Hyphenation patterns for modern and medieval Latin\
-% copyright: Copyright (c) 1999-2016 Claudio Beccari\
-% e-mail claudio dot beccari at gmail dot com\
-% notice: This file is part of the hyph-utf8 package.\
-% See http://www.hyphenation.org for more information.\
-% language:\
-% name: Latin\
-% tag: la\
-% version: 3.201 2016-08-28\
-% licence:\
-% - This file is available under any of the following licences:\
-% -\
-% name: MIT\
-% url: https://opensource.org/licenses/MIT\
-% text: >\
-% Permission is hereby granted, free of charge, to any person\
-% obtaining a copy of this software and associated documentation\
-% files (the “Software”), to deal in the Software without\
-% restriction, including without limitation the rights to use,\
-% copy, modify, merge, publish, distribute, sublicense, and/or sell\
-% copies of the Software, and to permit persons to whom the\
-% Software is furnished to do so, subject to the following\
-% conditions:\
-%\
-% The above copyright notice and this permission notice shall be\
-% included in all copies or substantial portions of the Software.\
-%\
-% THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND,\
-% EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\
-% OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\
-% NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\
-% HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\
-% WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\
-% FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\
-% OTHER DEALINGS IN THE SOFTWARE.\
-% -\
-% name: LPPL\
-% version: 1\
-% or_later: true\
-% url: https://latex-project.org/lppl/\
-% changes:\
-% -\
-% date: 1999\
-% version: 1.0\
-% author: Claudio Beccari\
-% description: First public release\
-% -\
-% date: 2007-04-16\
-% version: 3.1\
-% author: Claudio Beccari\
-% -\
-% date: 2010-05-31\
-% author: Claudio Beccari\
-% description: Removal of OT1 support\
-% -\
-% date: 2010-06-01\
-% version: 3.2\
-% author: Claudio Beccari\
-% description: Removal of pattern 2'2\
-% -\
-% date: 2016-08-28\
-% version: 3.201\
-% author: Claudio Beccari\
-% description: updated header with MIT licence notice;\
-% added few missing patterns\
-%\
-% ==========================================\
+ ["texcomment"]="%\
+% ********** hyph-la.tex *************\
+%\
+% Copyright 1999-2014 Claudio Beccari\
+% [latin hyphenation patterns]\
+%\
+% -----------------------------------------------------------------\
+% IMPORTANT NOTICE:\
+%\
+% 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.\
+% -----------------------------------------------------------------\
+%\
% Patterns for the latin language mainly in modern spelling\
% (u when u is needed and v when v is needed); medieval spelling\
% with the ligatures \\ae and \\oe and the (uncial) lowercase `v'\
% written as a `u' is also supported; apparently there is no conflict\
% between the patterns of modern Latin and those of medieval Latin.\
%\
+%\
+% Prepared by Claudio Beccari\
+% Politecnico di Torino\
+% Torino, Italy\
+% e-mail claudio dot beccari at gmail.com\
+%\
+% \\versionnumber{3.2a} \\versiondate{2014/06/04}\
+%\
% For more information please read the babel-latin documentation.\
%\
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\
@@ -148,18 +104,22 @@ return {
% Read the documentation coming with the discription of the Latin language\
% interface of Babel in order to see the shortcuts and the facilities\
% introduced in order to facilitate the insertion of \"compound word marks\"\
-% which are very useful for inserting etymological break points.\
+% which are very useful for inserting etimological break points.\
%\
% Happy Latin and multilingual typesetting!\
%\
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\
+%\
+% \\message{Latin Hyphenation Patterns Version 3.2a <2014/06/04>}\
+%\
% ",
},
["patterns"]={
["characters"]="abcdefghijklmnopqrstuvxzÃĶœ",
- ["data"]=".a2b3l .anti1 .anti3m2n .circu2m1 .co2n1iun .di2s3cine .e2x1 .o2b3 .para1i .para1u .su2b3lu .su2b3r 2s3que. 2s3dem. 3p2sic 3p2neu ÃĶ1 œ1 a1ia a1ie a1io a1iu ae1a ae1o ae1u e1iu io1i o1ia o1ie o1io o1iu uo3u 1b 2bb 2bc 2bd b2l 2bm 2bn b2r 2bt 2bs 2b. 1c 2cc c2h2 c2l 2cm 2cn 2cq c2r 2cs 2ct 2cz 2c. 1d 2dd 2dg 2dm d2r 2ds 2dv 2d. 1f 2ff f2l 2fn f2r 2ft 2f. 1g 2gg 2gd 2gf g2l 2gm g2n g2r 2gs 2gv 2g. 1h 2hp 2ht 2h. 1j 1k 2kk k2h2 1l 2lb 2lc 2ld 2lf l3f2t 2lg 2lk 2ll 2lm 2ln 2lp 2lq 2lr 2ls 2lt 2lv 2l. 1m 2mm 2mb 2mp 2ml 2mn 2mq 2mr 2mv 2m. 1n 2nb 2nc 2nd 2nf 2ng 2nl 2nm 2nn 2np 2nq 2nr 2ns n2s3m n2s3f 2nt 2nv 2nx 2n. 1p p2h p2l 2pn 2pp p2r 2ps 2pt 2pz 2php 2pht 2p. 1qu2 1r 2rb 2rc 2rd 2rf 2rg r2h 2rl 2rm 2rn 2rp 2rq 2rr 2rs 2rt 2rv 2rz 2r. 1s2 2s3ph 2s3s 2stb 2stc 2std 2stf 2stg 2st3l 2stm 2stn 2stp 2stq 2sts 2stt 2stv 2s. 2st. 1t 2tb 2tc 2td 2tf 2tg t2h t2l t2r 2tm 2tn 2tp 2tq 2tt 2tv 2t. 1v v2l v2r 2vv 1x 2xt 2xx 2x. 1z 2z. a1ua a1ue a1ui a1uo a1uu e1ua e1ue e1ui e1uo e1uu i1ua i1ue i1ui i1uo i1uu o1ua o1ue o1ui o1uo o1uu u1ua u1ue u1ui u1uo u1uu a2l1ua a2l1ue a2l1ui a2l1uo a2l1uu e2l1ua e2l1ue e2l1ui e2l1uo e2l1uu i2l1ua i2l1ue i2l1ui i2l1uo i2l1uu o2l1ua o2l1ue o2l1ui o2l1uo o2l1uu u2l1ua u2l1ue u2l1ui u2l1uo u2l1uu a2m1ua a2m1ue a2m1ui a2m1uo a2m1uu e2m1ua e2m1ue e2m1ui e2m1uo e2m1uu i2m1ua i2m1ue i2m1ui i2m1uo i2m1uu o2m1ua o2m1ue o2m1ui o2m1uo o2m1uu u2m1ua u2m1ue u2m1ui u2m1uo u2m1uu a2n1ua a2n1ue a2n1ui a2n1uo a2n1uu e2n1ua e2n1ue e2n1ui e2n1uo e2n1uu i2n1ua i2n1ue i2n1ui i2n1uo i2n1uu o2n1ua o2n1ue o2n1ui o2n1uo o2n1uu u2n1ua u2n1ue u2n1ui u2n1uo u2n1uu a2r1ua a2r1ue a2r1ui a2r1uo a2r1uu e2r1ua e2r1ue e2r1ui e2r1uo e2r1uu i2r1ua i2r1ue i2r1ui i2r1uo i2r1uu o2r1ua o2r1ue o2r1ui o2r1uo o2r1uu u2r1ua u2r1ue u2r1ui u2r1uo u2r1uu",
+ ["data"]=".a2b3l .anti1 .anti3m2n .circu2m1 .co2n1iun .di2s3cine .e2x1 .o2b3 .para1i .para1u .su2b3lu .su2b3r 2s3que. 2s3dem. 3p2sic 3p2neu ÃĶ1 œ1 a1ia a1ie a1io a1iu ae1a ae1o ae1u e1iu io1i o1ia o1ie o1io o1iu uo3u 1b 2bb 2bd b2l 2bm 2bn b2r 2bt 2bs 2b. 1c 2cc c2h2 c2l 2cm 2cn 2cq c2r 2cs 2ct 2cz 2c. 1d 2dd 2dg 2dm d2r 2ds 2dv 2d. 1f 2ff f2l 2fn f2r 2ft 2f. 1g 2gg 2gd 2gf g2l 2gm g2n g2r 2gs 2gv 2g. 1h 2hp 2ht 2h. 1j 1k 2kk k2h2 1l 2lb 2lc 2ld 2lf l3f2t 2lg 2lk 2ll 2lm 2ln 2lp 2lq 2lr 2ls 2lt 2lv 2l. 1m 2mm 2mb 2mp 2ml 2mn 2mq 2mr 2mv 2m. 1n 2nb 2nc 2nd 2nf 2ng 2nl 2nm 2nn 2np 2nq 2nr 2ns n2s3m n2s3f 2nt 2nv 2nx 2n. 1p p2h p2l 2pn 2pp p2r 2ps 2pt 2pz 2php 2pht 2p. 1qu2 1r 2rb 2rc 2rd 2rf 2rg r2h 2rl 2rm 2rn 2rp 2rq 2rr 2rs 2rt 2rv 2rz 2r. 1s2 2s3ph 2s3s 2stb 2stc 2std 2stf 2stg 2st3l 2stm 2stn 2stp 2stq 2sts 2stt 2stv 2s. 2st. 1t 2tb 2tc 2td 2tf 2tg t2h t2l t2r 2tm 2tn 2tp 2tq 2tt 2tv 2t. 1v v2l v2r 2vv 1x 2xt 2xx 2x. 1z 2z. a1ua a1ue a1ui a1uo a1uu e1ua e1ue e1ui e1uo e1uu i1ua i1ue i1ui i1uo i1uu o1ua o1ue o1ui o1uo o1uu u1ua u1ue u1ui u1uo u1uu a2l1ua a2l1ue a2l1ui a2l1uo a2l1uu e2l1ua e2l1ue e2l1ui e2l1uo e2l1uu i2l1ua i2l1ue i2l1ui i2l1uo i2l1uu o2l1ua o2l1ue o2l1ui o2l1uo o2l1uu u2l1ua u2l1ue u2l1ui u2l1uo u2l1uu a2m1ua a2m1ue a2m1ui a2m1uo a2m1uu e2m1ua e2m1ue e2m1ui e2m1uo e2m1uu i2m1ua i2m1ue i2m1ui i2m1uo i2m1uu o2m1ua o2m1ue o2m1ui o2m1uo o2m1uu u2m1ua u2m1ue u2m1ui u2m1uo u2m1uu a2n1ua a2n1ue a2n1ui a2n1uo a2n1uu e2n1ua e2n1ue e2n1ui e2n1uo e2n1uu i2n1ua i2n1ue i2n1ui i2n1uo i2n1uu o2n1ua o2n1ue o2n1ui o2n1uo o2n1uu u2n1ua u2n1ue u2n1ui u2n1uo u2n1uu a2r1ua a2r1ue a2r1ui a2r1uo a2r1uu e2r1ua e2r1ue e2r1ui e2r1uo e2r1uu i2r1ua i2r1ue i2r1ui i2r1uo i2r1uu o2r1ua o2r1ue o2r1ui o2r1uo o2r1uu u2r1ua u2r1ue u2r1ui u2r1uo u2r1uu",
["lefthyphenmin"]=1,
- ["length"]=1760,
- ["n"]=336,
+ ["length"]=1756,
+ ["n"]=335,
["righthyphenmax"]=1,
},
["version"]="1.001",
diff --git a/Master/texmf-dist/tex/context/patterns/mkiv/lang-th.lua b/Master/texmf-dist/tex/context/patterns/mkiv/lang-th.lua
index a9b4bc42036..3f54a47d332 100644
--- a/Master/texmf-dist/tex/context/patterns/mkiv/lang-th.lua
+++ b/Master/texmf-dist/tex/context/patterns/mkiv/lang-th.lua
@@ -6,32 +6,33 @@ return {
["metadata"]={
["mnemonic"]="th",
["source"]="hyph-th",
- ["texcomment"]="% title: Hyphenation patterns for Thai\
-% copyright: Copyright 2012-2013 Theppitak Karoonboonyanan <theppitak at gmail.com>\
-% notice: This file is part of the hyph-utf8 package.\
-% See http://www.hyphenation.org for more information.\
-% language:\
-% name: Thai\
-% tag: th\
-% licence:\
-% name: LPPL\
-% version: 1.3\
-% or_later: true\
-% status: maintained\
-% maintainer: Theppitak Karoonboonyanan\
-% url: https://latex-project.org/lppl/\
-% ==========================================\
-% https://linux.thai.net/projects/thailatex\
-% https://github.com/tlwg/thailatex\
+ ["texcomment"]="% Thai hyphenation patterns\
+%\
+% Copyright 2012-2013 Theppitak Karoonboonyanan <theppitak at gmail.com>\
+%\
+% 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 2005/12/01 or later.\
+%\
+% This work has the LPPL maintenance status `maintained'.\
+%\
+% The Current Maintainer of this work is Theppitak Karoonboonyanan.\
+%\
+% http://linux.thai.net/projects/thailatex\
+% http://linux.thai.net/svn/software/thailatex/trunk\
%\
% ",
},
["patterns"]={
["characters"]="āļāļ‚āļƒāļ„āļ…āļ†āļ‡āļˆāļ‰āļŠāļ‹āļŒāļāļŽāļāļāļ‘āļ’āļ“āļ”āļ•āļ–āļ—āļ˜āļ™āļšāļ›āļœāļāļžāļŸāļ āļĄāļĒāļĢāļĪāļĨāļĶāļ§āļĻāļĐāļŠāļŦāļŽāļ­āļŪāļ°āļąāļēāļģāļīāļĩāļķāļ·āļļāļđāļšāđ€āđāđ‚āđƒāđ„āđ…āđ‡āđˆāđ‰āđŠāđ‹āđŒāđāđŽ",
- ["data"]=".āļāļąāļ™3 .āļŠāļĩ5āļ§āļą .āļ—āļąāļĻāļ™āļđ5 .āļ—āļĩāđˆ3 .āļšāļ—1 .āļĢāļ‡4 .āļĢāļēāļĒ3 .āļĨāļģ3 .āļŠāļ™5āļ— .āļŠāļđ3āļ• .āđƒāļš3 2āļ1āļ āļ4āļāļĄ āļāļ4āļŠ 2āļ1āļ‚ āļ4āļ‚āļ„ āļāļ‚5āļ„āļ“ āļ4āļ‚āļŠ āļāļ‚5āļŠāļē āļ4āļ‚āļ“ āļ5āļ‚āļ“āļ° āļ5āļ‚āļ“āļē āļ4āļ‚āļš āļāļ‚5āļšāļļ āļ4āļ‚āļ  āļāļ‚5āļ āļą āļ4āļ‚āļĄ āļ5āļ‚āļĄāļą āļāļ‚5āļĄāļē āļāļ‚5āļĄāļđ āļāļ‚5āļĨāļē āļāļ‚5āļĻāļą āļ4āļ‚āđ€ āļāļ‚5āđ€āļ— āļāļ‚5āđ€āļ§ āļ4āļ‚āđŒ āļ1āļ„ āļāļ‡5āļšāļ§ āļ1āļˆ āļ1āļŠ 2āļāļ‹ āļāļ5āļˆāļ™ āļāļŽ5āļŦāļĄ āļāļŽ5āđ€āļ āļāļ5āļŦāļĄ āļ5āļ”āļīāļ™ āļ1āļ• āļ4āļ•āļ” āļāļ•5āļ”āļī āļ4āļ•āļŠ āļ4āļ•āđ€ āļ1āļ— āļ1āļ™ āļ4āļ™āļ” āļ4āļ™āļ˜ āļ1āļš āļ1āļ› āļāļ›4āļĢ āļ1āļž āļ1āļŸ āļ1āļĄ āļ4āļĄāļĄ āļ4āļĄāļŠ āļ4āļĄāđ€ āļāļĒ5āļĄāļļ āļ3āļĒāđ‰ āļāļĢ5āļāļŽ āļ5āļĢ5āļ“āļą āļāļĢ5āļ•āđ‹ 1āļ4āļĢāļĢ āļāļĢ5āļĢāļē āļāļĢ5āļĨāļē āļāļĢ5āļ§āļĢ āļ5āļĢāļēāļ„ āļ5āļĢāļīāļ™āļ— āļ4āļĢāļđ āļāļĢ5āđ„āļŸ āļāļĨ5āļ™āļ„ āļāļĨ5āļĄāļŦ āļ2āļ§ āļ5āļ§āļąāļ• āļ5āļĐāļ“āļ™ āļ3āļĐāļ“āļ° āļ5āļĐāļ“āļē āļ5āļĐāļĄāļē āļ5āļĐāļĄāļĩ āļāļĐ5āđ€āļ— āļ1āļŠ āļāļŠ4āļ™ āļ4āļŠāđ‚ āļ1āļŦ āļāļ­5āļ­āļī āļāļ°5āļ–āļą āļāļ°5āļœāļĨ 4āļāļ°āļĢ 1āļāļą 1āļāļē āļāļē5āļāļ° āļāļē5āļ”āļđ āļāļē5āļ™āļĩ āļāļē5āļ™āđ‰ āļāļē5āļšāļ­ āļāļē5āļāļē āļāļē5āļĢāļ­ āļāļē5āļĢāđˆ āļāļģ5āļ”āđ‰ āļāļģ5āļ—āļ­ āļāļģ5āļœāļĨ 1āļāļī āļāļī5āļāļ° āļāļī4āļ• āļāļī5āļ™āļĩ āļāļĩ5āļĢāļ“ āļāļĩ5āļĢāļ• āļāļĩ5āļŠāļ– 1āļāļļ āļāļļ5āļ‡āļ­ āļāļļ5āļŠāļī āļāļļ5āļŽāļļ āļāļļ5āļĄāļļ āļāļļ5āļĢāļĢ āļāļļ5āļĨāļĩ āļāļļ5āđāļŦ 1āļāļđ āļāļđ5āļ›āļĢ āļāļđ5āļĢāļ‚ āļāļđ5āļĢāļĄ āļāļđ5āļĨāļī āļ1āđ€ āļ1āđ āļ1āđ‚ āļ1āđ„ āļāđˆ5āļāļ­ āļāđˆ5āļšāđ‰ āļāđˆ5āļ›āđˆ āļāđŒ5āļ—āđ‡ āļ‚2 āļ‚āļĄ5āļŦāļī 4āļ‚āļĨāļē āļ‚āļ­5āļ‚āļĄ āļ‚āļ­5āļ‡āđ‰ āļ‚āļ­5āļ­āļ  1āļ‚āļą 1āļ‚āļē āļ‚āļē5āļāđŠ āļ‚āļē5āļ—āļ™ āļ‚āļī5āļ›āļŠ āļ‚āļĩāđ‰1 āļ‚āđˆ5āļĄāļļ āļ‚āđˆ5āļŦāļ‡ āļ‚āđ‰āļēāļ§3 āļ„1āļ„ āļ„1āļŠ āļ„āļŠ5āļŠāļĩ āļ„4āļŠāđ€ āļ„4āļ“āļī āļ„4āļ—āļĢ āļ„āļ—5āļĢāļĩ āļ„āļ—5āļ§āļ­ āļ„āļ™5āļĒāļ­ 4āļ„āļ™āļī āļ„āļ›5āļ‹āļđ āļ„āļ›5āļœāļ 3āļ„āļĄāļ™ āļ„āļĄ5āļŸāļĢ āļ„āļĄ5āļĨāļ­ 2āļ„āļĒ āļ„āļĢ5āļ‹āļ­ āļ„āļĢ5āļ™āļ­ āļ„āļĢ5āļ™āļĩ āļ„āļĢ5āļžāļ™ āļ„āļĢ5āļĄāđ€ āļ„āļĢ5āļĢāđ‰ āļ„āļĢ5āļĨāļī āļ„āļĢ5āļŦāļē 4āļ„5āļĢāļąāļ āļ„5āļĢāļēāļ• āļ„āļĪ5āļŦāļš āļ„āļĪ5āļŦāļē āļ„āļĪ5āđ‚āļ† āļ„āļĨ5āļ„āļđ āļ„2āļ§ āļ„āļ§5āļ—āļ­ 3āļ„āļ§āļē 2āļ„āļŠ āļ„āļŠ5āļ•āļī āļ„āļŦ5āļāļĢ āļ„āļŦ5āļ™āļī āļ„āļŦ5āļšāļ” āļ„āļŦ5āļŠāļ– 3āļ„āļ­āļ™ 3āļ„āļąāļ™ 1āļ„āļē āļ„āļē5āļ›āļđ āļ„āļē5āļžāļˆ āļ„āļē5āļžāļĒ āļ„āļē5āļĢāļ§ āļ„āļē5āļ§āļˆ āļ„āļģ5āļ”āļĩ āļ„āļģ5āđ‚āļ­ āļ„āļģ5āđ„āļ 1āļ„āļļ āļ„āļļ5āļ“āļđ āļ„āļļ5āļĨāļĩ 4āļ„āļļāđŒ āļ„āļđ5āļ›āļ­ āļ„āļđ5āļĨāļ­ 2āļ„1āđ€ āļ„1āđ‚ 2āļ„āđŒ āļ„āđŒ5āļˆāļģ 1āļ†āļē āļ†āļē5āļ“āļą āļ†āļĩ5āļĒāļ āļ‡1āļ āļ‡4āļāļŦ āļ‡āļāļ°4āļĢ āļ‡4āļāđ€ āļ‡4āļāđŒ āļ‡1āļ‚ āļ‡4āļ‚āļ āļ‡4āļ‚āļ• āļ‡1āļ„ āļ‡4āļ„āļˆ āļ‡4āļ„āļŠ āļ‡5āļ„āļŠāļēāļ•āļī āļ‡4āļ„āļ āļ‡4āļ„āļ˜ āļ‡4āļ„āļš āļ‡4āļ„āļ› āļ‡āļ„5āļ§āļą āļ‡4āļ„āļĻ āļ‡4āļ„āđ‚ āļ‡āļ†5āļ›āļĢ āļ‡āļ†5āļŠāļ  āļ‡āļ†5āđ€āļ– āļ‡āļ†5āđ€āļ  āļ‡1āļ‡ āļ‡4āļ‡āđ€ āļ‡1āļˆ āļ‡1āļ‰ āļ‡1āļŠ āļ‡4āļŠāļĩ āļ‡1āļ‹ āļ‡1āļ” āļ‡1āļ• āļ‡1āļ— āļ‡1āļ™ āļ‡āļš5āļ”āļļ āļ‡1āļ› āļ‡1āļœ āļ‡1āļž āļ‡1āļĄ āļ‡1āļĒ āļ‡1āļĢ āļ‡1āļĨ āļ‡1āļ§ āļ‡4āļ§āđ€ āļ‡1āļŠ āļ‡āļŠ5āļāļĨ āļ‡āļŠ5āļāļļ āļ‡4āļŠāļš āļ‡4āļŠāļž āļ‡āļŠ5āļžāļĒ āļ‡4āļŠāļ  āļ‡1āļŦ āļ‡āļŦ5āļ™āļē āļ‡4āļŦāļš āļ‡āļŦ5āļšāļą āļ‡āļŦ5āļĢāļē 1āļ‡āļē āļ‡āļē5āļŠāđ‰ āļ‡āļē5āļĢāļģ āļ‡āļđ5āļŠāļ§ āļ‡1āđ€ āļ‡1āđ āļ‡1āđ‚ āļ‡1āđ„ āļ‡āđˆ5āļ‡āļ­ āļˆ1āļˆ āļˆ4āļˆāļ§ āļˆ1āļ‰ āļˆāļ”5āļˆāđˆ āļˆāļ•5āļˆāļģ āļˆāļ•5āļĄāļđ āļˆāļ•5āļĢāļī āļˆāļ›4āļ āļˆāļŸ5āļŸāļĢ āļˆāļĄāļš5āļž 3āļˆāļĢāļī āļˆāļ­5āļ‡āļ­ 1āļˆāļą 1āļˆāļē āļˆāļē5āļĄāļĢ āļˆāļē5āļĢāļķ āļˆāļģ5āļ—āļ§ āļˆāļģ5āļ­āļ§ 1āļˆāļī āļˆāļī5āļˆāļđ āļˆāļī5āļ•āļ­ āļˆāļĩ5āļ”āļĩ āļˆāļļ5āļ‘āļē āļˆāļļ5āļŠāļĄ āļˆāļđ5āļ›āļī āļˆ1āđ€ āļ‰2 āļ‰āļ5āļ‰āļ§ āļ‰āļ4āļĐ āļ‰āļ—5āļ—āļī āļ‰āļĢ5āļ‰āļī 1āļ‰āļą 1āļ‰āļē āļ‰āļē5āļāđŠ āļ‰āļē5āļžāļĒ āļŠ1āļŠ āļŠ1āļŒ āļŠ4āļŒāļ āļŠ4āļŒāļ† āļŠāļ”5āļŠāđ‰ āļŠ5āļ™āļĩāļ 4āļŠāļ™āđŒ āļŠ1āļš āļŠāļŸ5āļĢāļ­ āļŠāļŸ5āđ‚āļĢ āļŠāļĢ5āļāļĨ āļŠāļĢ5āļĢāļī āļŠāļĢ5āļĪāļ āļŠāļĢ5āļŦāļĨ āļŠāļĢ5āļŦāļķ āļŠāļĢ5āļ­āļļ āļŠ3āļĢāļē āļŠāļ§4āđ‚ āļŠāļ­āļ‡4 1āļŠāļą 1āļŠāļē āļŠāļē2āļ• āļŠāļē5āļ•āļĢ āļŠāļē5āļ›āļĩ āļŠāļē5āļĄāļ• āļŠāļē5āļĒāļ• āļŠāļē5āļŠāļ‡ āļŠāļģ5āļ‡āļą āļŠāļī5āļ™āļĩ āļŠāļī5āļĢāļ“ āļŠāļī5āđāļ āļŠāļĩ5āļœāļ° āļŠāļĩ5āļœāđ‰ āļŠāļĩ5āļŸāļ­ āļŠāļĩ5āļĢāļ“ 1āļŠāļĩāļ§ āļŠāļĩ5āļ§āļ™ āļŠāļļ5āļ•āļī āļŠāļļ5āļĨāļ” āļŠāļđ5āļ›āļ āļŠāļđ5āļ›āļ– āļŠāļđ5āļ›āđ‚ āļŠ1āđ€ āļŠāđˆ5āļ­āļī āļŠāđ‰5āļŠāļ­ āļŠāđ‰5āđ„āļ” āļ‹āļ5āļ‹āļ­ āļ‹āļ™5āļ—āļĢ āļ‹5āļĢāļēāļĄ āļ‹āļĨ5āļŸāļĩ 1āļ‹āļą 1āļ‹āļē āļ‹āļē5āļŠāļđ āļ‹āļē5āļĄāļđ 1āļ‹āļī āļ‹āļī5āļ•āļĢ āļ‹āļī5āđāļĨ āļ‹āļĩ5āļ”āļĩ āļ‹āļĩ5āļ™āļĩ āļ‹āļĩ5āļĢāļē āļ‹āļĩ5āļĢāļī āļ‹āļĩ5āļĢāđ‡ āļ‹āļĩ5āļĨāļĩ 3āļ‹āļķāļĄ āļ‹āļđ5āļ‹āļđ āļ‹āļđ5āļšāļī āļ‹āļđ5āļĢāļī āļ‹āļđ5āļĨāļī āļ‹āļđ5āļŪāļē āļ‹1āđ€ āļ‹1āđ‚ āļ‹āđˆ5āļ‡āđˆ āļ‹āđˆ5āļ‹āđ‰ 1āļ‹āđˆāļē āļ‹āđŒ5āļ„āļĨ āļāļˆ5āļ”āļļ āļ4āļˆāļ™ āļ5āļˆ5āļ™āļ— āļ5āļˆ5āļ™āļš āļ5āļˆāļ™āļē āļāļˆ5āļšāļĢ āļ5āļˆ5āļĄāļš āļāļˆ5āļĢāļ‡ āļāļˆ5āļ§āļĩ āļāļˆ5āļĻāļĩ āļ4āļ‰āļ™ āļ1āļŠ āļ1āļ āļāļ›āļĢāļ°4 1āļāļē āļāļē5āļāđˆ āļāļē4āļ• āļāđˆ5āļšāđ‰ āļ1āļ āļ4āļāļš āļāļī5āļ—āļī āļāļī5āļ›āļ— āļāļī5āļ›āļļ āļāļī5āļŠāļ™ āļāļī5āļŠāļ§ āļ4āļ āļą āļāļĄ5āļŒāļē āļāļĄ5āļžāļĒ āļāļĄ5āļĪāļ 1āļāļē āļāļē5āļ™āļĩ āļāļļ5āļŠāļļ āļ‘āļē5āļĄāļ“ āļ‘āļē5āļŠāļ– 3āļ‘āļđāļĢ āļ’āļī5āļŠāļ  āļ’āļī5āļŠāļĄ āļ“1āļ‘ āļ“4āļ‘āļ āļ“4āļ‘āļ† āļ“4āļ‘āļ™ āļ“5āļ‘āļ™āļ° āļ“4āļ‘āļš āļ“4āļ‘āļĄ āļ“āļ‘5āļĨāļē āļ“4āļ‘āļŠ āļ“5āļ‘āļŠāļ āļ“āļ‘5āļŠāļ– āļ“5āļ‘5āļŠāļĩ āļ“āļ‘5āđ‚āļĨ āļ“4āļ‘āđŒ āļ“āļĒ5āļĢāļą āļ“1āļĢ āļ“4āļ§āļē āļ“āļŦ5āļžāļĨ āļ“āļŦ5āļ āļđ 1āļ“āļē āļ“āļē5āļ›āļĩ āļ“āļē5āļ§āļĢ 1āļ“āļī 1āļ“āļĩ āļ“āļĩ5āļŠāļ‡ āļ“āļđ5āļ›āđ‚ āļ”1āļ āļ”4āļāļ‡ āļ”4āļāļ” āļ”āļ5āļ”āļ· āļ”4āļāđ€ āļ”4āļāđ āļ”1āļ‚ āļ”1āļ„ āļ”āļ‡4āļ„ āļ”āļ‡5āļ­āļ­ āļ”5āļŠāļ™āļ° āļ”1āļ” āļ”4āļ”āđ€ āļ”1āļ• āļ”1āļ— āļ”1āļ› āļ”1āļž āļ”āļĄ5āļ„āļ• āļ”āļĢ5āļĨāļī āļ”4āļĢāļđ āļ”3āļĢāđ‰ 4āļ”āļĢāđŒ āļ”1āļŠ āļ”4āļŠāļ āļ”āļŠ4āđ€ āļ”1āļŦ 1āļ”āļą 1āļ”āļē āļ”āļē5āļĄāļļ āļ”āļē5āļĢāļ āļ”āļē5āļŠāļ§ āļ”āļģ5āļĪāļĐ āļ”āļī5āļ—āļ­ āļ”āļī5āļ—āļī āļ”āļī4āļš āļ”āļī5āļ§āļĢ āļ”āļī5āļĻāļ§ 4āļ”āļīāđŒ āļ”āļĩ5āļ”āļĩ 3āļ”āļĩāļ™ āļ”āļĩ5āļāđˆ āļ”āļĩ5āļĢāļ­ āļ”āļĩ5āļĨāļī āļ”āļĩ5āļ§āļĩ āļ”āļĩ5āļŦāļĄ āļ”āļĩ5āļŦāļ§ āļ”āļđ5āļ–āļđ āļ”āļđ5āļ›āļ­ āļ”āļđ5āļĢāļą āļ”āļđ5āļŦāļĄ āļ”āļđ5āđāļ„ āļ”1āđ€ āļ”1āđ āļ”1āđ‚ āļ”āđ‰5āļĒāļī 2āļ”āđŒ āļ”āđŒ5āļ›āļĢ āļ”āđŒ5āļŠāļ› 2āļ•āļ āļ•āļ5āļĢāđ‰ āļ•1āļ„ 2āļ•1āļŠ 2āļ•1āļ• āļ•4āļ•āļ  āļ•4āļ•āļŠ āļ•āļ•5āļŠāļ” āļ•4āļ•āđ‚ āļ•5āļ–āļāļ° āļ•āļ–5āļāļī āļ•3āļ–āļē āļ•5āļ–āļļāļ› āļ•5āļ–āļļāļĻ āļ•āļ–5āđ€āļĨ āļ•āļ—āļąāļĻāļ™āļđāļ›5 2āļ•āļ™ āļ•āļ™5āļŸāļ­ āļ•āļ™5āļ§āļĢ 2āļ•1āļš āļ•4āļšāļŠ āļ•āļš5āļŠāļ§ āļ•āļ›5āļ™āļĩ āļ•1āļ  2āļ•āļĒ 4āļ•āļĢāļ āļ•āļĢ5āļ‡āļ­ āļ•āļĢ5āļˆāļĩ āļ•āļĢ5āļˆāļļ 4āļ•āļĢāļ āļ•āļĢ5āļ•āļĢ āļ•āļĢ5āļ—āļ§ āļ•āļĢ5āļœāļĨ āļ•āļĢ5āļāļĢ āļ•āļĢ5āļžāļĨ āļ•āļĢ5āļĢāļ‡ āļ•āļĢ5āļĨāļ” 4āļ•āļĢāļĻ āļ•5āļĢāļīāļĒāļē āļ•4āļĢāļđ 2āļ•āļĢāđŒ āļ•āļĪ5āļ•āļĩ āļ•āļĨ5āļĢāļą āļ•āļŠ5āļ§āļē āļ•āļŠ4āđ€ āļ•āļŠ5āđ€āļ‹ āļ•āļŠ5āđāļ• āļ•āļ­5āļĄāđˆ āļ•āļ°5āđƒāļ  1āļ•āļą 1āļ•āļē āļ•āļē5āļāļĨ āļ•āļē5āļāļ§ āļ•āļē5āļ™āļķ āļ•āļē5āļ›āļĢ āļ•āļē5āļ›āļĨ āļ•āļē5āļœāļī āļ•āļē5āļŸāļđ āļ•āļē3āļĄāļŦ āļ•āļē5āļĄāļ­ āļ•āļē5āļĄāļ° āļ•āļē5āļŽāļĩ 1āļ•āļīāļ. āļ•āļī5āļˆāļđ āļ•āļī5āļŠāđˆ āļ•āļī5āļ‹āļ­ āļ•āļī5āļ—āļī āļ•āļī5āļ™āļĢ āļ•āļī5āļšāļ­ āļ•āļī3āļĄ āļ•āļī5āļĒāļ  āļ•āļī5āļĒāļĄ 4āļ•āļīāđŒ āļ•āļĩ5āļ‚āļĨ āļ•āļĩ5āļ„āļđ āļ•āļĩ5āļ•āļ· āļ•āļĩ5āļĢāļ§ āļ•āļĩ5āļĨāļą 3āļ•āļĩāđ‰. āļ•āļļ5āļ•āļ– āļ•āļļ5āļ—āļŠ āļ•āļļ5āļ›āđˆ āļ•āļļ5āļĄāļŦ āļ•āļļ5āļĢāļ āļ•āļļ5āļĨāļą āļ•āļļ5āļŠāļ” āļ•āļđ5āļ”āļī āļ•1āđ€ āļ•3āđāļĨ āļ•1āđ‚ āļ•āđˆ5āļ–āļē āļ•āđˆ5āļ§āđˆ āļ•āđˆ5āļŠāļ§ āļ•āđ‰5āļāđ‹ āļ•āđ‰5āļ•āļ­ āļ•āđ‰5āļāļļ āļ•āđ‹5āđ€āļ• āļ•āđŒ5āļ„āļĨ āļ•āđŒ5āļŸāļđ āļ•āđŒ5āļĻāļ• āļ–4āļāļī āļ–āļ”5āļ–āļ­ āļ–āļĄ5āļ–āļ· āļ–āļĨ5āđ„āļ– āļ–āļ§5āđ„āļĄ āļ–āļ°5āļ–āļą āļ–4āļēāļ˜ āļ–āļē5āļ§āļĢ āļ–4āļĩāļĒ āļ–āļĩ5āļĨāļī 3āļ–āļļāļ™ āļ–āđˆ5āļ–āļ­ āļ–āđˆ5āļ–āļē 4āļ—āļāļē āļ—āļ„5āļ•āļī āļ—āļ„5āļ™āļĩ āļ—āļ”5āļĢāļ­ āļ—āļ”5āļĨāļ­ āļ—āļ˜5āļ„āļĒ āļ—5āļ˜āļŠāļ° āļ—āļ˜5āļŽāļĩ āļ—āļ˜5āļ›āļ āļ—āļ˜5āļžāļĢ āļ—āļ˜5āļĢāļą āļ—āļ˜5āļĻāļ• āļ—āļ˜5āļŠāļĩ āļ—āļ˜5āļ­āļ‡ āļ—5āļ˜āļīāļ āļ—5āļ˜āļīāļŠ āļ—5āļ˜āļīāļš āļ—5āļ˜āļīāļ› āļ—5āļ˜āļīāļœ āļ—5āļ˜āļīāļž āļ—5āļ˜āļīāļ  āļ—5āļ˜āļīāļĢ āļ—5āļ˜āļīāļĪ āļ—5āļ˜āļīāļĻ āļ—5āļ˜āļīāļŠ āļ—5āļ˜āļīāđ‚ āļ—āļ˜5āđ€āļˆ āļ—āļž5āļ˜āļī āļ—āļž5āļĒāļļ āļ—āļŸ5āļĨāļ­ 2āļ—āļĒ āļ—5āļĒāļēāļ™ āļ—āļĢ5āļ„āļ• āļ—āļĢ5āļ„āļĢ āļ—āļĢ5āļ˜āļ™ 3āļ—āļĢāļĢ āļ—āļĢ5āļŠāđ‚ āļ—āļĢ5āļŦāļ§ āļ—āļĢ5āļŦāļķ 3āļ—āļĢāļą 1āļ—āļĢāļē āļ—5āļĢāļēāļ 4āļ—5āļĢāļēāļŦ 1āļ—āļĢāļĩ āļ—āļ§5āļ—āļŦ āļ—āļ§5āļŠāļ– āļ—āļĻ5āļ—āļī āļ—āļĻ5āļ§āļĢ āļ—āļŠāļ™5āļ— āļ—āļŦ5āļ§āļą āļ—āļŦ5āļŽāļī 1āļ—āļą 1āļ—āļē āļ—āļē5āļāļī āļ—āļē5āļ’āļī āļ—āļē5āļ™āļ­ āļ—āļē5āļĄāļ• āļ—āļē5āļĄāļĢ āļ—āļē5āļĢāļž āļ—āļģ5āļ‚āļ§ āļ—āļģ5āļ‹āđ‰ āļ—āļģ5āļ—āđˆ āļ—āļģ5āđ‚āļ— āļ—āļī5āļ†āļą āļ—āļī5āļāļī āļ—āļī4āļž āļ—āļī5āļžāļē āļ—āļī5āļ§āļ‡ āļ—āļĩ5āļ™āļ§ āļ—āļĩ5āļ™āļ­ āļ—āļĩ5āļ™āļĩ āļ—āļĩ5āļĢāļē āļ—āļļ5āļ„āļ• āļ—āļļ5āļ•āļī āļ—āļļ5āļĨāļą āļ—āļļ5āļĻāļĩ 1āļ—āļđ āļ—āļđ5āļ™āđˆ āļ—1āđ€ 2āļ—āđŒ āļ—āđŒ5āļ”āļ­ 1āļ˜āļĢ 4āļ˜āļĢāļŠ 4āļ˜āļĢāļą 1āļ˜āļē āļ˜āļē5āļĢāļ“āļē āļ˜āļī5āļĪāļ— āļ˜āļī5āļĻāļĩ āļ˜āļī5āļŠāļĄ āļ˜āļļ5āļ”āļ‡ āļ˜āļļ5āļĨāļĩ āļ˜āļđ5āļ›āļ™ āļ™1āļ āļ™4āļāļ„ āļ™4āļāļ› āļ™āļ5āļĒāļđ āļ™āļ5āļĢāļđ āļ™1āļ‚ āļ™āļ‚5āļĨāļī āļ™1āļ„ āļ™āļ„5āļĢāļī āļ™1āļˆ āļ™4āļˆāļ­ āļ™āļˆ5āļ­āļ™ āļ™1āļŠ āļ™4āļŠāļ āļ™1āļ‹ āļ™1āļ” āļ™1āļ• āļ™āļ•5āļāļ§ āļ™5āļ•āļāļ° āļ™āļ•5āļ”āļī āļ™4āļ•āļ— āļ™āļ•5āļ—āļī āļ™āļ•5āļ›āļī āļ™4āļ•āļ  āļ™5āļ•āļĢāļ° āļ™5āļ•āļĢāļą āļ™3āļ•āļĢāļē āļ™5āļ•5āļĢāļī āļ™āļ•5āļĪāļ” āļ™3āļ•āļī āļ™5āļ•āļļāļ āļ™5āļ•āļļāļ āļ™4āļ•āđŒ āļ™āļ–5āļ˜āļļ āļ™āļ–5āļĢāļˆ āļ™āļ—5āļ‚āļĩ āļ™āļ—5āļ™āļ™ āļ™5āļ—āļ™āļ° āļ™āļ—5āļœāļĨ āļ™āļ—4āļĒ āļ™5āļ—āļĢāļ‡ āļ™5āļ—āļĢāļļ āļ™āļ—5āļĪāļ āļ™5āļ—āļĨāļē āļ™5āļ—āļ§āļĒ āļ™3āļ—āļ­ āļ™1āļ—āļī āļ™3āļ—āļĩ āļ™āļ˜5āļāļĢ āļ™5āļ˜āļāļ° āļ™5āļ˜āļ™āļ° āļ™5āļ˜āļļāļ āļ™5āļ˜āļļāļĢ āļ™5āļ˜āļļāļ§ āļ™5āļ˜āļļāļĻ āļ™āļ˜5āđ„āļĄ āļ™1āļ™ āļ™4āļ™āļ• āļ™4āļ™āļ— āļ™4āļ™āļĢ āļ™1āļš āļ™āļš5āļ™āļ­ āļ™1āļ› āļ™4āļ›āļˆ āļ™āļ›5āļˆāļđ āļ™4āļ›āļ— āļ™1āļž āļ™āļž5āļ›āļŽ āļ™āļž5āļĻāļđ āļ™āļ 5āļĻāļđ āļ™5āļĒāļ™āļ• āļ™3āļĢāļē āļ™āļĪ5āļ„āļŦ āļ™āļĪ5āļ›āđ€ āļ™āļĪ5āđ€āļ— āļ™āļĪ5āđ€āļš āļ™1āļĨ āļ™4āļĨāļĨ āļ™āļ§5āļĢāđˆ āļ™1āļĻ āļ™āļĐ5āļāļĢ āļ™1āļŠ āļ™āļŠ5āļŸāļ­ āļ™āļŠ5āđāļ” āļ™āļŠ5āđāļ• āļ™1āļŦ āļ™āļ­5āļāļ° 3āļ™āļ­āļ™ 1āļ™āļą 1āļ™āļē āļ™āļē4āļ„āļĢ āļ™āļē5āļ“āļą āļ™āļē5āļ›āļĢ āļ™āļē5āļĢāļĒ āļ™āļē5āļ§āļ• āļ™āļē5āļ§āļĨ āļ™āļē5āļŠāļ“ āļ™āļē5āļŠāļ™ āļ™āļē5āļŠāļ§ āļ™āļē5āļŽāļī 4āļ™āļēāļ° 1āļ™āļī āļ™āļī5āļˆāļđ āļ™āļī5āļ”āđ‰ āļ™āļī5āļŸāļ­ āļ™āļī5āļĄāļ™ āļ™āļī5āļĒāļĄ āļ™āļī5āļĒāļē āļ™āļī5āļĢāļ­ āļ™āļī5āļĨāļļ āļ™āļī5āļ§āļĢ āļ™āļī5āļŠāļ‡ āļ™āļī5āļŠāļ– āļ™āļī5āļŠāļĩ āļ™āļī5āđāļ” 1āļ™āļļ āļ™āļļ5āļžāļĒ 1āļ™āļđ 2āļ™1āđ€ āļ™1āđ āļ™1āđ‚ āļ™1āđ„ āļ™āđˆ5āļ­āļĩ 3āļ™āđ‰āļ­ 1āļ™āđ‰āļģ āļ™āđŒ5āļŠāđ„ āļš1āļ āļš4āļāļĐ āļšāļāļīāļŠ5 āļš4āļāđ āļš1āļ‚ āļš1āļ„ āļš4āļ„āļ— āļšāļ„5āļ—āļĩ āļš4āļ„āđ‚ 1āļšāļ”āļĩ. āļš1āļ— āļšāļš5āļ‰āļš āļšāļš5āļāļķ āļšāļš5āļ­āļĒ āļš1āļ› āļš1āļž āļšāļĢ5āļĄāļĩ āļš5āļĢāļąāļ” āļš1āļŠ āļš4āļŠāļš āļšāļŠ4āđ€ āļš1āļŦ āļšāļ­5āļ”āļĩ āļšāļ­5āļĢāļ° 3āļšāļ­āļĨ 1āļšāļą āļšāļąāļžāļžāļēāļŠāļ™āļĩ5 1āļšāļē āļšāļēāļˆ5āļĢ āļšāļē4āļ• āļšāļē5āļ•āļ­ āļšāļē2āļ— āļšāļē5āļ—āļē āļšāļē5āļ—āļļ āļšāļē5āļĢāļ™ āļšāļē5āļĢāļ­ āļšāļē5āļŠāļĄ āļšāļī5āļāđ‰ āļšāļī5āļŠāļ­ 3āļšāļīāļ™ āļšāļĩ5āļ„āļī āļšāļĩ5āļĢāđˆ 1āļšāļļ āļšāļļāļ„3 āļšāļļ5āļ•āļĢ āļšāļļ5āļ–āļļ āļšāļļ5āļĢāļž 1āļšāļđ āļšāļđ4āļŠ5āļ™ āļšāļđ5āļ•āļī āļšāļđ5āļĒāđˆ āļš1āđ€ āļš1āđ āļš1āđ‚ āļšāđŠ5āļˆāļĩ āļšāđŠ5āđ€āļš āļ›āļ4āļŠ āļ›4āļˆāļą āļ›4āļˆāļē āļ›āļ5āļ›āļ— āļ›āļ5āļžāļĩ āļ›āļ•5āļ–āļ āļ›āļ•5āļžāļĨ āļ›1āļ› āļ›4āļ›āđ€ āļ›āļĄ5āļ”āđ‰ āļ›4āļĒāļļ āļ›āļĢ5āļ•āļ­ āļ›āļĢ5āļ•āļī āļ›āļĢ5āļ•āļĩ āļ›āļĢ5āļ•āļļ āļ›āļĢ5āļœāļą āļ›āļĢ5āļĐāļ“ 1āļ›āļĢāļ° āļ›5āļĢāļīāļ„ āļ›āļĢ5āđāļ āļ›āļĢ5āđāļ— āļ›āļĢ5āđ„āļš āļ›āļĢ5āđ„āļŸ āļ›āļĨ5āļāļ§ āļ›4āļ§āļē āļ›āļŠ4āļ• 1āļ›āļą 1āļ›āļē āļ›āļē5āļāļ āļ›āļē5āļ“āļ āļ›āļē5āļ™āļĩ āļ›āļē5āļ›āļī āļ›āļēāļĢ4 āļ›āļē5āļĢāđ€ āļ›āļī5āļ”āļ­ āļ›āļī5āļ”āļī āļ›āļī5āļĒāļ  āļ›āļī5āļĒāļ­ āļ›āļī5āļŦāļ āļ›āļĩ5āļŠāļĩ āļ›āļĩ5āļŽāļ āļ›āļĩāđˆ3 āļ›āļļ5āļ„āļĨ āļ›āļļ5āļ–āļļ āļ›āļđ5āļˆāđ‹ āļ›āļđ5āļ•āļī āļ›1āđ€ āļ›1āđ„ āļœāļ5āļœāļą āļœāļ“āļī5āļĻ āļœāļ™5āļœāļą āļœ4āļ™āļī āļœ4āļĒāļē āļœāļĨ5āļžāļĨ āļœāļĨ5āđ„āļĄ āļœ4āļŠāļē āļœāļĩ5āļ”āļī āļœāļĩ5āļ•āļ­ āļœāļĩ5āļ–āđ‰ āļœāļĩ5āļŦāđˆ āļœāđ‰āļē3 3āļāļ­āļĒ āļāđˆ5āļāļą 3āļžāļˆāļ™ āļžāļˆ5āļ™āļĩ āļžāļŠ5āļ‰āļĨ āļž3āļ•āļī āļžāļ—5āļĢāļī āļžāļ—āļąāļ4 āļžāļ™5āļ—āļ° āļž4āļ™āļą āļžāļ™āļī4 āļž1āļž 2āļž2āļĒ āļžāļĒ5āļāđŠ āļžāļĢ5āļŠāļĒ āļžāļĢ5āļ‹āļĩ āļžāļĢ5āļĄāļĩ 1āļžāļĢāļĢ āļž4āļĢāļđ āļžāļĢ5āđ„āļŸ 3āļžāļĪāļ āļžāļĪ5āļ’āļē āļžāļĨ5āļ—āļī āļžāļĨ5āļĢāđˆ āļžāļŠ5āđ€āļŸ āļžāļ­5āļ„āļ§ āļžāļ­5āļŠāļĄ 1āļžāļą 1āļžāļē 4āļžāļēāļˆ āļžāļē5āļŠāļ™ āļžāļē5āļ™āļĢ 1āļžāļī āļžāļī5āļ–āļą āļžāļī5āļ–āļĩ āļžāļī5āļ›āļĨ āļžāļī5āļĢāļ­ āļžāļī5āļĢāļĩ āļžāļī5āļĨāļķ āļžāļī5āļĻāļļ āļžāļīāļŠ5āļĄ āļžāļĩ5āļĢāļ° āļžāļļ5āļŠāļī āļžāļļ5āļžāļ­ āļžāļđ5āļ—āļ§ āļžāļđ5āļžāļ­ āļž1āđ€ āļž4āđ€āļĒ āļžāđˆ5āļ›āđŠ āļžāđˆāļ­3 āļžāđ‰5āļ—āđ‰ 2āļžāđŒ āļžāđŒ5āļ”āļĩ āļŸāļ‹5āļ•āļī āļŸāļ‹5āļ—āļī āļŸāļĢ5āļ•āļī āļŸāļŠ5āļ•āļī āļŸāļŠ5āļ—āļī 1āļŸāļą 1āļŸāļē 1āļŸāļī āļŸāļī4āļĨāļē āļŸāļĩ5āļŸāđˆ āļŸāļđ5āļŸāđˆ āļŸ1āđ€ 1āļŸāđ‰ āļ āļ„5āļ—āļĢ āļ āļ„3āļ§ āļ āļŠ5āļ™āļĩ 1āļ āļą 1āļ āļē āļ āļē5āļ“āļ āļ āļē5āļ“āļ§ āļ āļē5āļĢāļ” āļ āļē5āļĢāļ• āļ āļē5āļĢāļĒ āļ āļē5āļ§āļ™ āļ āļī5āļŠāļ™ āļ āļī5āļĄāļŦ āļ āļī3āļĢ āļ āļī5āļŠāļĄ āļ āļĩ5āļĐāļĄ āļ āļļ5āļŠāļ‡ 1āļ āļđ āļ āļđ5āļāļē āļ āļđ5āļĢāļī āļĄ1āļ āļĄ4āļāļĄ āļĄ4āļāļĐ āļĄ1āļ‚ āļĄ4āļ‚āļĨ āļĄ3āļ„āļĢ āļĄāļ„5āļ­āļī 1āļĄāļ‡āļ„āļĨ āļĄāļ‡5āļŸāļ­ āļĄ1āļˆ āļĄ1āļŠ āļĄāļŠ4āļ§ āļĄ1āļ‹ 3āļĄāļ“āļ‘ āļĄāļ“5āļ‘āļ™ āļĄāļ“5āļšāļĢ āļĄāļ“5āļžāļĢ āļĄāļ“5āđ€āļ‘ āļĄāļ“5āđ€āļž āļĄāļ”5āļŠāļĄ āļĄāļ”5āļĒāļ­ āļĄāļ”5āļĨāļđ āļĄ1āļ• āļĄ4āļ•āļ˜ āļĄ4āļ•āļī āļĄ4āļ•āđ„ āļĄāļ•5āđ„āļ• āļĄ1āļ— 3āļĄāļ™āļ•āļĢ āļĄāļ™5āļŪāļą āļĄ4āļ™āļļ āļĄ1āļš āļĄāļš4āļž āļĄ1āļ› āļĄāļ›4āļŠ āļĄāļ›4āļ— āļĄāļ›5āļĪāļ” āļĄāļ›5āļĪāđ… āļĄ4āļ›āđŒ āļĄ1āļž āļĄ4āļžāļ āļĄ4āļžāļ§ āļĄ1āļ  āļĄāļ 5āļāļ– āļĄ1āļĄ āļĄ4āļĄāđ€ āļĄ4āļĄāđ‚ āļĄāļĒ5āļĢāļē 3āļĄāļĢāļĢ āļĄ3āļĢāļą āļĄ1āļĢāļī āļĄāļĪ5āļ„āļī āļĄāļĪ5āđ€āļ„ āļĄāļĨ5āļ—āļī āļĄ3āļĨāļē āļĄ3āļĨāļī āļĄ3āļĨāđ‰ āļĄ1āļ§ āļĄāļ§5āļĄāļ­ āļĄ4āļ§āļĨ āļĄ1āļŠ āļĄāļŦ5āļāļĢ āļĄ3āļŦāļ™ āļĄāļŦ5āļ āļē āļĄ5āļŦāļēāļ āļĄ5āļŦāļēāļĒ āļĄāļŦāļē3āļŠ āļĄāļ­5āļ‚āļ§ āļĄāļ­5āļ„āļĢ āļĄāļ­5āļ”āļđ āļĄāļ­5āļ•āļģ āļĄāļ­5āļ™āļ§ āļĄāļ­5āļ™āļ­ āļĄāļ­5āļĢāļ° 4āļĄāļ­āļą āļĄāļ°5āļ–āļą āļĄāļ°5āļāđˆ āļĄāļ°5āļŪāļ­ 1āļĄāļą āļĄ4āļąāđˆ 1āļĄāļē āļĄāļē5āļ”āļĢ āļĄāļē5āļ™āļĢ āļĄāļē5āļ™āļ­ āļĄāļē5āļ›āđˆ āļĄāļē5āļžāļˆ āļĄāļē5āļĄāļ āļĄāļē5āļĄāļļ āļĄāļē5āļĄāđˆ āļĄāļē5āļĒāļ“ āļĄāļē5āļĒāļ­ āļĄāļē5āļĢāđˆ āļĄāļē3āļ§4 1āļĄāļī āļĄāļī5āļāļ  āļĄāļī5āļ‹āļĢ āļĄāļī5āļ•āļĨ āļĄāļī5āļ–āļī āļĄāļī5āļ™āđˆ āļĄāļī5āļŸāļĨ āļĄāļī5āļĨāļģ āļĄāļī5āļĨāļĩ āļĄāļī5āđāļž āļĄāļĩ5āļ‚āļĄ 3āļĄāļ·āļ” 1āļĄāļ·āļ­. āļĄāļļ5āļ—āļ° āļĄāļļ5āļ—āļą āļĄāļļ5āļ—āļī āļĄāļļ5āļ—āļļ āļĄāļļ5āļŪāļą āļĄāļđ5āļ‹āļĩ āļĄāļđ5āļ›āđˆ āļĄāļđ5āļĢāļ• āļĄāļđ5āļĨāļī āļĄāļđ5āļŦāļĒ āļĄāļđ5āļŦāļĢ āļĄāļđ5āļŪāļą āļĄāļđ5āđāļ” āļĄāļđ5āđāļœ āļĄāļđ5āđāļŪ āļĄ1āđ€ āļĄ1āđ āļĄ1āđ‚ āļĄ1āđ„ āļĄ4āđˆāļē āļĄāđ‰āļĄ4 3āļĄāđ‰āļē āļĄāđŒ5āļ āļī āļĒāļ5āļĒāđˆ āļĒ1āļāļĢ āļĒ4āļ5āļĢāđ‰ āļĒ1āļ„ āļĒāļ‡5āļšāđˆ āļĒāļ‡5āļāđ‰ āļĒāļ‡5āļ­āļĒ āļĒāļˆ5āļ„āļĢ āļĒāļ”5āļĒāđ‰ āļĒ1āļ• āļĒ1āļ— āļĒ1āļ˜ āļĒāļš5āļĢāđ‰ āļĒ1āļ› āļĒ1āļž āļĒ1āļ  āļĒāļĄ5āļĒāļ­ āļĒāļĄ5āļĢāļē āļĒāļĄ5āļŦāļē āļĒāļĄ5āļ­āļĩ āļĒ4āļĄāļī āļĒ1āļĒ āļĒāļĒ4āļŠ āļĒāļĢ5āļ–āļĩ āļĒ5āļĢ4āļšāļą āļĒāļĨ5āđ„āļ— āļĒāļ§5āļ‚āđ‰ āļĒāļ§5āļˆāđŠ āļĒāļ§5āļ”āļ­ āļĒ5āļ§āļ”āļĩ āļĒāļ§5āļ™āļĩ āļĒāļ§5āļĒāđˆ āļĒāļ§5āļĢāļą āļĒāļ§5āđ„āļŠ āļĒ1āļĻ āļĒ1āļŠ āļĒ1āļŦ āļĒ4āļŦāļ āļĒāļŦ5āļāļē āļĒ4āļŦāļ› āļĒāļŦ5āļ›āļĢ āļĒāļ­5āļšāļĩ āļĒāļ­5āļĢāļĄ 1āļĒāļą 1āļĒāļē āļĒāļē5āļāļĪ āļĒāļē5āļāļ§ āļĒāļē5āļ‰āļļ āļĒāļē5āļ“āļĄ āļĒāļē5āļ“āļ§ āļĒāļē5āļ–āđˆ āļĒāļē5āļšāļĢ āļĒāļē5āļĢāļŠ āļĒāļē5āļŠāļĨ āļĒāļē5āļŠāļĩ āļĒāļē5āļŽāļą āļĒāļģ5āļ—āļ§ āļĒāļĩ5āļĢāļē 1āļĒāļļ āļĒāļļ5āļ„āļĨ āļĒāļļ5āļ•āļ 4āļĒāļļāļ  āļĒāļļ5āđāļĒ āļĒāļļ5āđāļŦ āļĒāļđ5āļ„āļĨ āļĒāļđ5āļ–āļī āļĒāļđ5āļŸāđˆ āļĒāļđ5āļĒāļī āļĒāļđ5āļĢāļī āļĒāļđ5āđ„āļ™ āļĒ1āđ€ āļĒ1āđ āļĒ1āđ‚ āļĒāđŒ5āļāļĨ āļĒāđŒ5āļ–āđˆ āļĒāđŒ5āļĄāļ™ āļĒāđŒ5āļŦāļ™ 2āļĢāļ āļĢāļ5āļ‹āļ­ āļĢāļ5āļ‹āđ‰ āļĢ1āļāļĢ āļĢāļ5āļĢāļē āļĢāļ5āļĢāđ‰ āļĢāļ„5āļžāļ§ āļĢāļ‡5āļžāļĒ āļĢāļ‡5āļĢāļ­ āļĢāļˆ5āļ–āļĢ āļĢ1āļŠ āļĢ4āļŠāļ āļĢ4āļŠāļŠ āļĢ4āļŠāļ™ āļĢ4āļŠāļĒ āļĢāļ“5āļ„āļ” āļĢāļ“5āļ•āļĢ āļĢāļ“5āļ–āļą āļĢāļ“5āļžāļĪ āļĢāļ“5āļŠāļ– āļĢ5āļ“āļēāļ āļĢāļ“āļđ5āļ› 4āļĢāļ“āđŒ āļĢ1āļ” āļĢ4āļ”āļ› āļĢ4āļ”āđ āļĢ4āļ”āđ‚ āļĢ4āļ”āđ„ āļĢāļ”5āđ„āļ­ āļĢāļ–1 āļĢāļ–5āļžāļĒ āļĢ1āļ— āļĢ4āļ—āļĪ āļĢāļ—5āļĪāļ” āļĢ4āļ—4āļ§ āļĢāļ—5āļ§āļī āļĢāļ˜5āļ‚āļķ āļĢāļ˜5āļŠāļĢ āļĢāļ˜5āđ€āļ āļĢāļ™5āļ—āļļ 4āļĢāļ™āļē āļĢ1āļš āļĢ4āļšāļ„ āļĢ4āļšāļ– āļĢāļš5āļ–āđ‰ āļĢ4āļšāļĄ āļĢ4āļšāđ„ āļĢāļš5āđ„āļ āļĢ1āļ› āļĢ4āļ›āļ“ āļĢ5āļžāļŠāļē āļĢ5āļž5āļŠāļī āļĢāļž5āļ—āļī āļĢ1āļ  āļĢ4āļ āļĒ āļĢāļĄ5āļĢāļ­ āļĢāļĄāļēāļ§5 āļĢāļĄ4āđ€āļŦ āļĢ4āļĒāļą āļĢāļĢ4āļ āļĢāļĢ5āļ„āļē āļĢāļĢ5āļˆāļ– āļĢāļĢ5āļˆāļ§ āļĢāļĢ5āļ“āļķ āļĢāļĢ5āļ–āļē āļĢāļĢ5āļĒāļ‡ āļĢāļĢ5āļĒāđ€ āļĢāļĢ3āļĨ āļĢāļĢ5āļŦāļē āļĢāļĢ5āđāļ— āļĢāļĢ5āđāļŠ āļĢāļĢ5āđ„āļ āļĢāļĢ5āđ„āļ• āļĢāļĻ5āļ™āļĩ āļĢāļĐ5āļāļī āļĢāļĐ5āļ•āļĢ āļĢ1āļŠ āļĢ4āļŠāļ āļĢ4āļŠāļŠ āļĢ4āļŠāđ€ āļĢ4āļŠ4āđ‚ āļĢ3āļŦāļī āļĢāļ°1 āļĢāļ°5āļŠāļē āļĢāļ°5āļŦāļ 5āļĢāļąāļ‡āļŠ 3āļĢāļąāļ 1āļĢāļąāļ• āļĢāļē5āļāļ āļĢāļē5āļāļĪ āļĢāļē5āļāļ§ 1āļĢāļēāļŠ āļĢāļē5āļŠāļđ āļĢāļē5āļ”āļĢ āļĢāļē5āļ”āļ§ āļĢāļē5āļ”āļđ āļĢāļē5āļĄāđˆ āļĢāļē5āļ§āļ“ āļĢāļē5āļŠāļ‡ āļĢāļē2āļŦ āļĢāļē5āļŦāļļ āļĢāļģ5āļ‡āļą āļĢāļģ5āļˆāļ§ āļĢāļī5āļāļ­ āļĢāļī5āļ•āļĢ āļĢāļī5āļ—āļķ 4āļĢāļīāļž āļĢāļī5āļĄāļ™ 4āļĢāļīāļĒāļˆ 4āļĢāļīāļĒāļĒ 4āļĢāļīāļĢ āļĢāļī5āđāļĨ 4āļĢāļīāđˆ āļĢāļĩ5āļ„āļđ āļĢāļĩ5āļ‘āļē āļĢāļĩ5āļ”āļđ āļĢāļĩ5āļ•āļĢ āļĢāļĩ5āļ•āļ­ āļĢāļĩ5āļĢāļą āļĢāļĩ5āļĢāļē āļĢāļĩ5āļĢāļī āļĢāļĩ5āļĨāļą āļĢāļĩ5āļĨāļī āļĢāļĩ5āļĨāđˆ āļĢāļĩ5āļŠāļ­ āļĢāļĩ5āļŠāļ° āļĢāļļ5āļāļ§ āļĢāļļ5āļ‚āļĢ āļĢāļļ5āļ„āļĢ āļĢāļļ5āļ—āļ§ āļĢāļļ5āļ˜āļī āļĢāļļ5āļĄāļļ āļĢāļļ5āļ§āļ™ 1āļĢāļđ āļĢāļđ5āļ—āļĩ āļĢāļđ5āļ™āļĩ āļĢāļđ5āļšāļī āļĢāļđāļ›5āļ āļĢāļđ5āļ›āļī āļĢāļđ5āļĄāļē āļĢāļđ5āļĄāļđ āļĢāļđ5āļŦāļĢ 2āļĢ1āđ€ āļĢ1āđ‚ āļĢāđˆ5āļāļ° āļĢāđˆ5āļ•āļĢ āļĢāđˆ5āļĢāđˆ āļĢāđˆ5āļŦāļĨ āļĢāđŒ5āļāļ­ āļĢāđŒ5āļāļĩ āļĢāđŒ5āļ„āļą āļĢāđŒ5āļ”āļī āļĢāđŒ5āļ•āļī āļĢāđŒ5āļ•āļđ āļĢāđŒ5āļ—āļī āļĢāđŒ5āļŸāļ­ āļĢāđŒ5āļŸāļđ āļĢāđŒ5āļĨāļĩ āļĢāđŒ5āļ§āļ­ āļĪ4āļ”āļē āļĪāļ›4āđ€ āļĪāļĐ5āļŽāļĩ āļĪāļŦ5āļšāļ” āļĨ5āļāļ™āļ° āļĨāļ5āļĨāļē āļĨāļ5āļ§āļą āļĨ3āļāļ­ āļĨ4āļāļąāļĒ āļĨāļ‚5āļ„āļ“ āļĨāļ‚5āļŦāļĄ āļĨāļŠāļĩ4 āļĨāļ”5āļĢāļ° āļĨāļ”5āļĨāļī āļĨ4āļ”āļē āļĨ1āļ• āļĨ4āļ•āļŸ āļĨāļ•5āļŸāļ­ āļĨāļš5āļ•āļ° āļĨāļš5āļĄāļļ āļĨāļš5āļĨāđ‰ āļĨāļš5āđ„āļŠ āļĨāļ›5āļ•āļ­ āļĨāļĄ5āļ„āđ‰ āļĨāļĄ5āļ‡āļ§ āļĨ3āļĄāļ­ 2āļĨāļĒ āļĨ1āļĨ āļĨ3āļ§āļĩ āļĨāļ§5āđ„āļŦ āļĨāļŠ5āđ„āļ• āļĨāļŦ5āļāļļ āļĨāļ­āļ5āļĨ āļĨāļ­5āļˆāļĩ āļĨāļ­5āļŠāļĢ āļĨāļ°5āļœāļĨ 1āļĨāļąāļāļĐ āļĨāļē5āļāļĨ āļĨāļē5āļ™āļĩ āļĨāļē5āļšāļĢ āļĨāļē5āļ›āđ‹ āļĨāļē5āļžāļ­ 3āļĨāļēāļĢ āļĨāļē5āļĢāļ­ āļĨāļē5āļĢāđ‰ āļĨāļē5āļĪāļ āļĨāļē5āļŠāđ‰ āļĨāļī5āļāļ­ āļĨāļī5āļāđˆ āļĨāļī5āļˆāļđ āļĨāļī5āļ•āļ­ āļĨāļī5āļ™āļ­ āļĨāļī5āļ™āđˆ āļĨāļī5āļŸāļ­ āļĨāļī5āļĄāļđ āļĨāļĩ5āļ•āļ° 3āļĨāļĩāļ™ āļĨāļĩ5āļœāļĨ āļĨāļĩ5āļĨāļē āļĨāļĩ5āļ§āļđ āļĨāļļāļ5āļĢ āļĨāļļāļ5āļĨ āļĨāļļ5āļĨāđˆ āļĨāļđāļ1 āļĨāļđ5āļ‹āļĩ āļĨāļđ5āļ—āļĩ āļĨāļđ3āļĄāļī āļĨāļđ5āļĨāļ­ āļĨāļđ5āļ­āļ­ āļĨāļđ5āđāļš 2āļĨ1āđ€ 2āļĨ1āđ āļĨ1āđ‚ āļĨāđˆ5āļ•āļī āļĨāđˆ5āļ—āļĩ āļĨāđˆ5āļŦāļĨ āļĨāđˆ5āļ­āļ­ āļĨāđ‰5āđ‚āļž 2āļĨāđŒ āļĨāđŒ5āļŠāļ• āļ§3āļāļĢ āļ§āļ5āļ§āđˆ āļ§5āļāļēāļĢ āļ§1āļ„ 1āļ§āļ‡āļĻ āļ§āļˆ5āļ•āļĢ āļ§āļˆ5āļŠāļ­ āļ§āļŠ5āļ™āļĩ āļ§āļ”5āļ–āđˆ āļ§āļ”5āļĄāļ§ āļ§āļ”5āļĒāļī āļ§āļ”5āļĢāļ° āļ§āļ”5āļĨāļē āļ§āļ”5āļĨāđ‰ āļ§āļ”5āļ­āđ‰ āļ§1āļ• āļ§4āļ•āļ‰ āļ§āļ™5āļ–āļĩ āļ§āļ™5āļ—āđ‰ āļ§āļ™5āļœāļŠ āļ§āļ™5āļĢāļ§ āļ§āļ™5āļĢāđˆ āļ§āļ™5āļ­āļī āļ§āļ™5āļ­āļļ āļ§āļš5āļĒāļ­ āļ§āļš5āļĢāļ§ āļ§āļš5āļĢāļą āļ§āļš5āļŪāļē āļ§1āļ› āļ§1āļž āļ§āļĄ5āļĢāļ­ āļ§3āļĄāļđ āļ§āļĒ5āļāđ‰ āļ§āļĒ5āļˆāļĩ āļ§āļĒ5āļĢāļī āļ§āļĒ5āļĢāļ· āļ§āļĒ5āļĨāđ‰ āļ§āļĒ5āđ„āļ— āļ§āļĒ5āđ„āļĄ āļ§āļĢ5āļ˜āļī āļ§āļĢ5āļĄāļ“ āļ§āļĢ5āļĄāļŦ āļ§4āļĢāļĒ āļ§āļĢāļĢ4 3āļ§āļĢāļĢāļ“ āļ§4āļĢāđŒ āļ§āļĨ5āļĢāļ° āļ§āļŠ5āļ›āļ­ āļ§1āļŦ āļ§āļ­5āļŠāļī 1āļ§āļą āļ§āļąāļ™3 āļ§āļąāļ™āļ•5 āļ§āļąāļ™āļ—4 1āļ§āļē āļ§āļē5āļ”āļ° āļ§āļē4āļ• āļ§āļē5āļ•āļ āļ§āļē5āļ•āļī āļ§āļē5āļ™āļĢ āļ§āļē5āļ™āļķ āļ§āļē5āļšāļĢ āļ§āļē5āļĄāļ™ āļ§āļē5āļĢāļ“ āļ§āļē5āļŠāļ™āļ° āļ§āļē4āļŦ āļ§āļē5āļŦāļ™ āļ§āļē5āļŦāļī 1āļ§āļī āļ§āļī5āļāļĨ āļ§āļī5āļāļŠ āļ§āļī5āļ„āļŦ āļ§āļī5āļˆāļļ āļ§āļī5āļ”āļĩ āļ§āļī5āļ•āļ āļ§āļī5āļ•āļĢ āļ§āļī5āļ•āļĩ āļ§āļī5āļ–āļĩ 3āļ§āļīāļ— āļ§āļī5āļ—āļī āļ§āļī5āļ˜āļļ āļ§āļī5āļ˜āļđ āļ§āļī5āļ›āļ āļ§āļī5āļ›āļ āļ§āļī5āļ›āļĨ āļ§āļī5āļ›āļ§ āļ§āļīāļ āļđ5 āļ§āļī5āļĄāļĨ āļ§āļī5āļĢāļ‡ āļ§āļī5āļ§āļĢ āļ§āļī5āļĻāļĢ āļ§āļī5āļĻāļļ āļ§āļī5āļĐāļļ āļ§āļī5āļŠāļĢ āļ§āļī5āļŠāļĪ āļ§āļīāđ€āļĨ5 āļ§āļĩ5āļ„āļđ āļ§āļĩ5āļŠāļ™ āļ§āļĩ5āļ”āļī 1āļ§āļļ āļ§1āđ€ āļ§1āđ āļ§1āđ‚ āļ§āđˆ5āļŦāđ‰ āļ§āđ‰5āļŠāļ· āļ§āđ‰5āļ—āļļ āļ§āđ‰5āļĨāļē āļ§āđŒ5āļĨāļī āļĻ1āļˆ āļĻāļ•5āļ§āļĢ āļĻāļ™5āļ­āļļ āļĻāļžāļī4 3āļĻāļĢāļĩ āļĻāļĐ5āļ‹āđ‰ āļĻāļĐ5āļ§āļĢ āļĻāļĐ5āđ€āļ āļĻāļĐ5āđ€āļŦ 1āļĻāļą āļĻāļąāļ5āļĢ 1āļĻāļē2 āļĻāļē5āļāļē āļĻāļē5āļ‚āļš āļĻāļē5āļ™āļļ āļĻāļē5āļ āļī āļĻāļē5āļĢāļĒ āļĻāļē5āļĢāļą āļĻāļē5āļĢāļī āļĻāļē5āļĨāļē 1āļĻāļī āļĻāļī5āļĢāļž āļĻāļī5āļĢāļ§ āļĻāļī5āļĻāļĩ 1āļĻāļķ āļĻāļļ5āļāļĨ āļĻāļđ5āļĨāļī āļĻāđ€āļˆ5āļĢ āļĐ3āļŽāļē āļĐāļ5āļ āļ„ āļĐ5āļĄāļ“āļĩ āļĐ4āļĄāļē 1āļĐāļą 1āļĐāļē āļĐāļē5āļ„āđ€ 1āļĐāļī āļĐāđŒ5āļžāļĒ āļŠāļ5āļĨāļī āļŠāļ5āļĨāļķ āļŠāļ5āļ§āļą āļŠāļ5āļ§āļē āļŠ4āļāļē 4āļŠ4āļāļļ āļŠāļ‚5āļšāļļ āļŠāļ‡5āļ‚āļĨ āļŠ1āļ‹ āļŠāļ”5āļŠāļ· āļŠ4āļ”āļļ āļŠ5āļ”āļļāļ  āļŠ4āļ•āļ— āļŠāļ•5āļ—āļī āļŠ3āļ•āļĢāļē 2āļŠāļ•āđŒ āļŠāļ–5āļ§āļĩ 4āļŠāļ–āđŒ āļŠāļ™5āļ˜āļĒ āļŠāļ™5āļ˜āļī āļŠ5āļ™āļĩāļĒāļ° āļŠ4āļ™āļļ āļŠāļ™āļđāļ›5 āļŠ4āļ›āļē āļŠ2āļĄ āļŠāļĄ5āļ„āļ§ āļŠāļĄ5āļ”āļļ 3āļŠāļĄāļš āļŠāļĄ5āļœāļŠ āļŠāļĄ5āļœāļļ āļŠāļĄ5āļœāđ€ āļŠāļĄ5āļĒāļ­ āļŠāļĄ5āļĪāļ” āļŠāļĄ5āļĪāļ• āļŠāļĄ5āļŦāļ§ āļŠ5āļĄāļąāļ— āļŠ5āļĄāļąāļ™ āļŠāļĄāļļ4 āļŠāļĢāļĢ5āļŠ āļŠāļĢ5āļĨāļ­ āļŠāļĨ5āļšāļĢ āļŠāļ§4āļ āļŠāļ§5āļĒāļĄ āļŠāļ§5āļĢāļī āļŠ4āļ§āļē 4āļŠāļ§āļī āļŠ1āļŠ āļŠāļŦ5āļāļĢ āļŠāļŦ5āļāļē āļŠāļŦ5āļŠāļē āļŠāļŦ5āļ˜āļĢ āļŠāļŦ5āļ›āļĢ āļŠāļŦ5āļžāļą āļŠāļŦ5āļ āļē āļŠāļŦ5āļĢāļē āļŠāļŦ5āļĻāļķ āļŠāļ­5āļžāļĨ āļŠāļ­5āļžāļ­ āļŠāļ°5āđƒāļ  1āļŠāļą āļŠāļąāļāļ›āļĢāļ°5 āļŠāļąāļ™3āļ– āļŠāļąāļĄ3 1āļŠāļē āļŠāļē5āļ„āđ€ 4āļŠāļēāļ˜ āļŠāļē5āļ™āļķ āļŠāļē5āļĄāļ™ āļŠāļē5āļ§āļž āļŠāļģ5āļ­āļ­ āļŠāļģ5āđ‚āļĢ 1āļŠāļī āļŠāļī5āļ–āļī āļŠāļĩ5āļ‚āđ‰ āļŠāļĩ5āļŠāļ­ āļŠāļĩ5āļ”āļ§ āļŠāļĩ5āļ•āļĨ āļŠāļĩ5āļ•āđ‚ āļŠāļĩ5āļ–āđˆ āļŠāļĩ5āļœāļķ āļŠāļĩ5āļāļļ āļŠāļĩ5āļĨāļ° āļŠāļĩ5āļĨāļą āļŠāļĩ5āļ§āļĨ 1āļŠāļļ āļŠāļļ5āļāļĢ āļŠāļļ5āļāļģ āļŠāļļ5āļāļĩ āļŠāļļ5āļ‚āļī āļŠāļļ5āļ‚āļļ āļŠāļļ5āļ„āļ• āļŠāļļ5āļ„āļĢ āļŠāļļ5āļ™āļĩ āļŠāļļ5āļšāļĢ āļŠāļļ5āļ›āļĢ āļŠāļļ5āļĄāļ™ āļŠāļļ5āļŠāļ‡ āļŠāļļ5āđ„āļŦ 2āļŠāļļāđŒ 1āļŠāļđ āļŠ1āđ€ āļŠ4āđ€āļŸ āļŠ1āđ‚ āļŠ4āđ‚āļ„ 3āļŠāđˆāļ§ āļŠāđˆ5āđ„āļ„ āļŠāđ‰5āļāļĢ āļŠāđ‰5āļ•āļī āļŠāđ‰5āđ„āļ 2āļŠāđŒ āļŠāđŒ5āļŦāļĒ āļŦ2 2āļŦ1āļ āļŦāļ5āļĢāļ° āļŦāļ5āļĨāđ‰ 5āļŦāļāļēāļĢ āļŦāļ‡4āļŠ āļŦāļ‡5āļŠāļē āļŦāļĪ5āļŦāļĢ āļŦāļĪ5āđ‚āļŦ āļŦāļĨ5āļŠāļ° āļŦāļ­5āļ„āļ­ āļŦāļ­5āļŠāļĄ 1āļŦāļą āļŦāļē5āļāļ āļŦāļē5āļšāļž āļŦāļē5āļ›āļ“ āļŦāļē5āļžāļĢ āļŦāļē5āļĢāļ· āļŦāļē5āļĪāļ āļŦāļē5āļ§āļĢ āļŦāļī5āļĢāļ āļŦāļī5āļĻāļ§ āļŦāļļ5āļ„āļđ āļŦāļđ5āļāļĢ āļŦāļđ5āļāļ§ āļŦāļđ5āļŦāļ™ āļŦāđ‰5āļ—āđˆ āļŦāđ‰5āļ—āđ‰ āļŦāđ‰5āļĢāđ‰ 2āļŦāđŒ āļŦāđŒ5āļāļĢ āļŦāđŒ5āļŠāļ™ āļŽāļ§5āļĢāļē āļŽāļŦ5āļšāļđ 1āļŽāļē āļŽāļē5āļĄāļ“ āļŽāļē5āļĢāļķ āļ­āļ5āļ‹āļ­ āļ­āļ5āļ–āļĨ āļ­āļ5āļĢāļ“ āļ­āļ5āļĢāļĩ āļ­āļ5āļĢāļđ āļ­āļ5āļĢāđˆ āļ­āļ5āļĪāļ— āļ­āļ5āļĨāļ§ āļ­āļ5āļĨāļ­ āļ­āļ5āļĨāļē āļ­āļ5āļĨāđˆ āļ­āļ5āļ§āđˆ āļ­āļ5āđƒāļš āļ­āļ„5āļ—āļĩ āļ­āļ†5āļŠāļ‡ āļ­āļ‡4āļ„āļĄ āļ­āļ‡5āļ–āļī āļ­āļ‡5āļšāļĢ āļ­āļ‡5āļŸāļ­ āļ­āļ‡5āļŸāļļ āļ­āļ‡5āļĢāļ° āļ­āļ‡5āļ­āļļ āļ­āļ‡5āļ­āđ‰ āļ­āļ”5āļŠāđˆ āļ­āļ”5āļ–āļ­ āļ­āļ”5āļ™āđˆ āļ­āļ”5āļāļē āļ­āļ”5āļĒāļ­ āļ­āļ”5āļĢāļą āļ­āļ”5āļ­āļĒ āļ­āļ”5āļ­āļ­ āļ­āļ”5āļ­āļļ āļ­āļ”5āļ­āđ‰ āļ­3āļ”āļī āļ­āļ•5āļ”āļ­ āļ­āļ•5āļ”āđ‡ āļ­āļ•5āļŠāļ§ āļ­āļ•5āđ„āļ§ āļ­1āļ— āļ­4āļ—āļ„ āļ­āļ—5āļ„āļ­ āļ­āļ™5āļ‡āđ‰ āļ­āļ™5āļˆāļ­ āļ­āļ™5āļ—āļģ āļ­āļ™5āļœāļą āļ­āļ™5āļāļđ āļ­āļ™5āļĒāđ‰ āļ­4āļ™āļē āļ­4āļ™āļļ1 āļ­āļš5āļŠāđ‰ āļ­āļš5āļ–āļē āļ­āļš5āļšāļĩ āļ­āļš3āļ­ āļ­āļš5āđ„āļĨ āļ­āļ›5āļ„āļ­ āļ­āļ›5āļ•āļī āļ­āļ›5āļžāļĢ āļ­āļ›5āļžāļĨ āļ­āļ›4āļĢ āļ­āļ›5āļ§āļē āļ­āļ›5āđ‚āļĨ āļ­āļž5āļĢāļī āļ­āļŸ5āļŸāļĩ āļ­āļŸ5āļĢāļī āļ­āļŸ5āđ‚āļĢ āļ­āļŸ5āđ„āļĨ āļ­4āļ āļą āļ­āļĄ5āļ„āļĨ āļ­āļĄ5āļ„āđ‰ āļ­āļĄ5āļŽāļ­ āļ­āļĄ5āļ”āļ­ āļ­āļĄ5āļ–āļ­ āļ­āļĄ5āļŸāļ­ āļ­āļĄ5āļĒāļī āļ­āļĄ5āļĢāļē āļ­āļĄ5āļĢāđˆ āļ­āļĄ5āļĪāļ• āļ­āļĄ5āļŦāļĨ āļ­āļĄ5āļŦāļ§ āļ­āļĄ5āļŦāđ‰ āļ­5āļĄāļ­āļ™ āļ­āļĒ5āļāļ­ āļ­āļĒ5āļāđ‹ āļ­āļĒ5āļ™āļ§ āļ­āļĒ5āļĢāđˆ āļ­āļĒ5āļĢāđ‰ āļ­āļĒ5āļ­āļī āļ­4āļĒāļē āļ­āļĒ5āđ„āļ” āļ­āļĢ5āļĄāļ™ āļ­3āļĢāļ­ āļ­1āļĢāļą āļ­3āļĢāļē āļ­1āļĢāļī āļ­1āļĢāļĩ āļ­3āļĢāđ‰ āļ­āļĢāđŒ1 āļ­āļĨ5āļˆāļĩ āļ­āļĨ5āļ™āļĩ āļ­āļĨ5āļŸāđˆ āļ­āļĨ5āļŦāļĄ āļ­3āļĨāļą āļ­1āļĨāļī āļ­āļ§5āļĢāļļ āļ­āļĻ5āļāļĢ āļ­āļĻ5āļ„āļĢ āļ­āļĐ5āļāļŠ āļ­āļĐ5āļāļ  āļ­āļŠ5āļāļē āļ­āļŠ5āļ•āļī āļ­āļŠ5āļ•āļđ āļ­āļŠ5āļ™āļĩ āļ­āļŠ5āļžāļĨ āļ­āļŠ5āļŸāļ­ āļ­āļŠ5āļĄāļī āļ­āļŠ5āđ€āļŸ āļ­āļŠ5āđāļ­ āļ­āļŠ5āđ„āļž āļ­1āļŦ 3āļ­āļ­āļ™ āļ­āļ­5āļ­āļ§ āļ­āļ°5āļ˜āļĩ āļ­āļ°5āļŪāļą 1āļ­āļą 1āļ­āļē āļ­āļē5āļ„5āđ€ āļ­āļē5āļāļē āļ­āļē5āļ“āļą āļ­āļē5āļ”āļļ āļ­āļē5āļ”āļđ āļ­āļē2āļ• āļ­āļē5āļ–āļĢ āļ­āļē5āļ™āļ™ āļ­āļē5āļ›āļ“ āļ­āļē5āļĄāļĨ āļ­āļē5āļĒ5āļ• āļ­āļē5āļĢāļ” āļ­āļē5āļĢāļ• āļ­āļē5āļĢāļš āļ­āļē3āļĢāļĒ āļ­āļē5āļĨāļ› āļ­āļē5āļ§āļĢ āļ­āļē5āļ§āļĩ āļ­āļē5āļŠāļ§ āļ­āļģ5āļĒāļ§ āļ­āļģ5āļ­āļ§ āļ­āļī5āļŠāļĒ āļ­āļī5āļ”āļ° āļ­āļī5āļĢāļ° āļ­āļī5āļĻāļ§ āļ­āļĩ5āļ„āļī āļ­āļĩ5āļˆāļđ āļ­āļĩ5āļ‹āļđ āļ­āļĩ5āļĒāļī āļ­āļĩ5āļĢāļļ āļ­āļĩ5āļĨāļļ āļ­āļĩ5āļĻāļ§ āļ­āļĩ5āļŦāļĢ āļ­āļļ5āļāļĪ āļ­āļļ5āļāļĨ āļ­āļļ5āļ„āļĢ āļ­āļļ5āļ”āļĄ āļ­āļļ5āļ”āļĢ āļ­āļļ5āļ”āđ‰ āļ­āļļ3āļ•āļĢāļē āļ­āļļ5āļ•āļļ āļ­āļļ5āļ—āļĢ āļ­āļļ5āļ—āļī āļ­āļļ5āļ—āļļ āļ­āļļ5āļ˜āļą āļ­āļļ5āļšāļĨ āļ­āļļ5āļšāđŠ āļ­āļļ5āļĄāļ‡ āļ­āļļ5āļĢāļž āļ­āļļ5āļĨāļ āļ­āļļ5āđāļ§ āļ­āļđ5āļ„āļđ āļ­āļđ5āļĄāļē āļ­āļđ5āļĢāļē āļ­āļđ5āļĨāļē āļ­1āđ€ āļ­āđ€āļ›5āļĢ āļ­āđ€āļŠāļ5 āļ­āđ€āļŠ5āļ‚ āļ­āđ€āļŦ5āļ• āļ­1āđ āļ­1āđ‚ āļ­1āđ„ 3āļ­āđˆāļ­ āļ­āđˆ5āļ­āļ§ āļ­āđˆ5āļ­āđˆ āļ­āđˆ5āđ‚āļ– āļ­āđ‰5āļ­āļ§ āļ­āđ‰5āđ‚āļ– āļ­āđ‰5āđ‚āļĨ āļŪāļ5āļŪāļē āļŪāļ5āļŪāļ· āļŪāļŠ5āđāļ— āļŪāļ™5āļĢāļĩ āļŪāļŸ5āļ§āļĩ āļŪāļĨ5āļ”āļī 3āļŪāļ­āļĨ āļŪāļē5āļ™āļ­ āļŪāļē5āļ›āđˆ āļŪāļē5āļĢāđˆ āļŪāļī5āļšāļĢ āļŪāļĩ5āļšāļĢ 3āļŪāļ·āđ‰ āļŪāļđ5āļĨāļē āļŪāļđ5āļĨāđˆ āļŪ1āđ€ āļŪ1āđ‚ āļŪāđˆ5āļāļķ āļ°1āļ āļ°1āļ‚ āļ°1āļ„ āļ°1āļ‡ āļ°1āļˆ āļ°1āļ‰ āļ°1āļŠ āļ°1āļ‹ āļ°1āļ” āļ°1āļ• āļ°āļ•āļ°4 āļ°1āļ— āļ°1āļ™ āļ°1āļš āļ°1āļ› āļ°āļœāļĩ4 āļ°1āļž āļ°1āļĄ āļ°1āļĒ āļ°1āļĢ āļ°1āļĨ āļ°1āļ§ āļ°1āļŠ āļ°1āļŦ āļ°1āļ­ āļ°1āđ€ āļ°1āđ āļ°1āđ‚ āļ°1āđ„ āļą2 āļąāļ5āļ‡āđˆ āļąāļ5āļ‹āđ‰ āļąāļ5āļ•āļš āļąāļ5āļœāđˆ āļąāļ5āļāđˆ āļąāļ5āļĒāļ­ āļąāļ5āļĒāļī āļąāļ5āļĢāļą āļąāļ5āļĢāđ‰ āļąāļ3āļĨ āļąāļ5āļ§āļī āļąāļ5āļĐāļĢ āļąāļ5āļĐāļ­ āļąāļ5āļ­āļī āļąāļ5āļ­āļĩ āļąāļ5āļ­āđˆ āļąāļ5āđƒāļ„ āļąāļ5āđƒāļ āļąāļ„5āļ†āļī āļąāļ„5āļ‹āļĩ āļąāļ„5āļŠāļ– āļąāļ‡5āļ–āļķ āļąāļ‡5āļĻāļļ āļąāļ‡4āļŠ5āļ§ āļąāļ‡5āļ­āļ§ āļąāļ‡5āļ­āļļ āļąāļ‡5āļŪāļĩ āļąāļˆ5āļāļĨ āļąāļˆ5āļāļ° āļąāļˆ5āļ–āļĢ āļąāļˆ5āļ™āļķ āļąāļˆ5āđ‚āļˆ āļąāļŠ5āļŽāļē āļąāļŠ5āļ™āļĩ āļąāļŠ5āļžāļĒ āļąāļŠ5āļžāļ· āļąāļŠ5āļĢāļī āļąāļŠ5āļŠāļ āļąāļŠ5āļŠāļĄ āļąāļŠ5āđāļž āļąāļŠ5āđ‚āļ āļąāļŠ5āđ‚āļĒ āļąāļ1 āļąāļ5āļ—āļļ āļąāļ5āļŠāļ‡ āļąāļ5āļ—āļī āļąāļ5āļšāļĢ āļąāļ5āļŠāļ  āļąāļ5āđ€āļ„ āļąāļ“5āļāļ āļąāļ“3āļ āļąāļ“5āļĒāļ āļąāļ“5āđ€āļ‘ āļąāļ“5āđ‚āļĢ āļąāļ”1 āļąāļ”5āļĢāļđ āļąāļ•5āļ”āļķ āļąāļ•5āļ–āļĨ āļąāļ•5āļ–āļą āļąāļ•5āļ–āļī āļąāļ•5āļĄāļ“ āļąāļ•5āļĄāļŦ āļąāļ•5āļĢāļē āļąāļ•5āļĢāļĩ āļąāļ•5āļĪāļ āļąāļ•5āļĨāļą āļąāļ•3āļŠ āļąāļ•5āļŦāļĨ āļąāļ•5āļŦāļĩ āļąāļ—5āļ„āļĩ āļąāļ—5āļ—āļ§ āļąāļ—5āļ˜āļ™ āļąāļ—5āļ˜āļī āļąāļ—5āļĢāļē āļąāļ—5āļĨāļĩ āļąāļ—5āļĨāļļ āļąāļ˜5āļĒāļĄ āļąāļ™5āļ‰āđˆ āļąāļ™2āļ• āļąāļ™5āļ•āļ  āļąāļ™5āļ•āļ° āļąāļ™5āļ•āļą āļąāļ™5āļ•āļē āļąāļ™5āļ–āļ˜ āļąāļ™5āļ—āļķ āļąāļ™5āļ—āļļ āļąāļ™4āļ˜ āļąāļ™5āļ˜āļē āļąāļ™5āļ˜āļī āļąāļ™5āļœāļ§ āļąāļ™5āļāļĢ āļąāļ™5āļāđˆ āļąāļ™5āļĒāļ° āļąāļ™5āļĒāđˆ āļąāļš1 āļąāļ›5āļ„āļą āļąāļ›5āļœāļē āļąāļ›4āļĢ āļąāļ›5āļĨāļē āļąāļ›5āļŦāļ‡ āļąāļ›5āđ‚āļ› āļąāļ›5āđ‚āļŦ āļąāļž5āļĒāļ­ āļąāļž5āļĒāļē āļąāļž5āđ‚āļž āļąāļž5āđ‚āļŦ āļąāļŸ5āļĢāļī āļąāļĄ4āļŠ āļąāļĄ5āļŦāļĄ āļąāļĒ5āļĄāļĢ āļąāļĒ5āļĢāļļ āļąāļĨ5āļ”āļĩ āļąāļĨ5āļ›āļ™ āļąāļĨ5āļ›āļž āļąāļĨ5āļ›āļī āļąāļĨ5āļĄāļļ āļąāļĨ5āļ­āļ­ āļąāļĨ5āđ„āļ‹ āļąāļĨ5āđ„āļŸ āļąāļ§1 āļąāļĻ5āļ™āļĩ āļąāļĻ5āļĄāļĩ āļąāļĻ5āđ€āļˆ āļąāļĻ5āđ„āļ™ āļąāļŠ1 āļąāļŠ5āļāļē āļąāļŠ5āļĄāļą āļąāļŠ5āļĄāļī āļąāļŠ5āļ§āļē āļēāļ5āļ–āļē āļēāļ5āļāļĢ āļēāļ5āļāļą āļē1āļāļĢ āļē4āļ5āļĢāļļ āļē3āļāļ­ āļēāļ5āļŪāļ­ āļē3āļāļĩ āļē1āļ‚ āļē4āļ‚āļš āļēāļ‚5āļšāļđ āļē1āļ„ āļē4āļ„āļˆ āļē4āļ„āļ— āļē4āļ„āļš āļē4āļ„āļ› āļēāļ„5āļ›āļĢ āļē4āļ„āļž āļēāļ„5āļžāļ· āļē4āļ„āļ  āļē5āļ„āļĢāļĩ āļēāļ‡5āļšāļģ āļēāļ‡5āļāļĩ āļēāļ‡5āļ­āļ­ āļēāļ‡5āļ­āļī āļē1āļˆ āļē4āļˆāļ āļē4āļˆāļŦ āļēāļˆ5āļŦāļē āļē4āļˆāļ­ āļē4āļˆāđ€ āļēāļŠ5āļāļĢ āļēāļŠ5āļ„āļĢ āļēāļŠ5āļ„āļĪ āļēāļŠ5āļ—āļī āļē5āļŠāļ™āļ° āļēāļŠ5āļ™āļĩ āļēāļŠ5āļ›āļ° āļēāļŠ5āļĨāļą āļēāļŠ5āļ§āđ‚ āļēāļŠ5āļŠāļ āļēāļŠ5āļŠāļĩ āļēāļŠ5āļ­āļ‡ āļē1āļŠāļī āļē3āļŠāļĩ āļēāļŠ5āđ‚āļ­ āļē1āļ‹ āļēāļ5āļĢāļ­ āļē5āļāļāļ° āļēāļ5āļ”āļ™ āļē5āļāļĨāļī āļēāļ5āļĨāļĩ āļē3āļāļī āļēāļ5āļāļ– āļēāļ“5āļ„āļ” āļēāļ“5āļŠāļ– āļēāļ”5āļœāļ§ āļē3āļ”āļ­ āļē3āļ”āļī āļēāļ”5āđ„āļ— āļēāļ”5āđ„āļŦ āļē1āļ• āļē4āļ•āļ āļē4āļ•āļ  āļēāļ•4āļ§ āļē1āļ— āļē4āļ—āļ˜ āļē4āļ—āļ™ āļē5āļ—āļ™āļ° āļēāļ—5āļšāļ‡ āļēāļ—5āļšāļĢ āļēāļ—5āļŠāļ āļēāļ—5āļŦāļĨ āļē1āļ˜ āļē4āļ˜āļ™ āļē2āļ˜āļĒ āļēāļ˜5āļĒāļĄ āļēāļ˜āļē1 āļēāļ™5āļāđˆ āļēāļ™5āļœāļđ āļēāļ™5āļĢāļ§ āļēāļ™5āļĢāļą āļēāļ™5āļĪāļ” āļēāļ™5āļ­āļ§ āļēāļ™āļļ1 āļēāļš5āļˆāđ‰ āļēāļš5āļ‰āļ§ āļēāļš5āļŠāđ‰ āļēāļš5āļ‹āļķ āļēāļš4āļž āļēāļš5āļĢāļ· āļēāļš5āļĨāļ° āļē3āļšāļī āļēāļ›5āļŠāļĢ āļēāļ›5āļŠāđˆ āļēāļ›5āđāļŠ āļēāļž5āļ–āđˆ āļēāļž5āļĒāļ™ āļēāļž5āļĢāļą āļēāļž5āļĨāļ§ āļēāļŸ5āļ•āđ‰ āļēāļŸ5āļĢāļī āļē1āļ  āļē4āļ āļ› āļē4āļ āļĨ āļēāļ 5āļĨāļ­ āļēāļĄ5āļ„āļī āļēāļĄ5āļ‡āđˆ āļēāļĄ4āļ™4 āļēāļĄ5āļ™āļī āļēāļĄ5āļŠāļ āļēāļĄ2āļŦ āļēāļĄ5āļŦāļĄ āļēāļĄ5āļŦāļĨ āļēāļĄ5āļŦāļē āļē3āļĄāļĩ āļēāļĒ5āļāļĨ āļēāļĒ5āļāļ­ āļēāļĒ5āļ‚āļ§ āļēāļĒ5āļ‚āđ‰ āļēāļĒ5āļŠāļ™ āļēāļĒ5āļ”āļī āļēāļĒ5āļ”āđ‰ āļē5āļĒāļ•āļ™ āļē5āļĒāļ™āļ˜ āļē5āļĒāļ™āļĄ āļēāļĒ5āļ™āļ­ āļē5āļĒāļ™āđ€ āļēāļĒ5āļšāļĢ āļēāļĒ5āļœāļ­ āļēāļĒ5āļāļą āļēāļĒ5āļĄāļļ āļēāļĒ5āļĄāđˆ āļēāļĒ5āļĢāļļ āļēāļĒ5āļĢāđ‰ āļēāļĒ5āļĨāļą āļēāļĒ5āļĨāđˆ āļēāļĒ5āļ§āļ­ āļēāļĒ5āļ­āļģ āļē3āļĒāļī āļēāļĒ5āđ„āļŦ āļēāļĢ5āļāļģ āļēāļĢ3āļ„ āļē5āļĢāļ“āļ° āļēāļĢ5āļ“āļđ āļēāļĢ5āļ•āļĢ āļē5āļĢāļ—āļ° āļēāļĢ5āļ˜āļļ āļēāļĢ5āļœāļˆ āļēāļĢ5āļžāļĢ āļē5āļĢāļ āļĒ āļē1āļĢāļĄ āļēāļĢ5āļĢāļē āļēāļĢ5āļĨāļ° āļēāļĢ5āļ§āļ” āļēāļĢ5āļ§āđˆ āļēāļĢ5āļŦāļ™ āļē1āļĢāļ° āļē1āļĢāļą āļē1āļĢāļē āļē1āļĢāļī āļē5āļĢāļīāļ āļē5āļĢāļīāļĒāļ° āļē1āļĢāļĩ āļē1āļĢāļļ āļē1āļĨ āļē4āļĨāļ āļē4āļĨāļ„ āļē4āļĨāļˆ āļēāļĨ5āļŽāļĩ āļē4āļĨāļ” āļēāļĨ5āļ”āļĩ āļēāļĨ5āļ—āļŦ āļē4āļĨāļ› āļēāļĨ5āļ›āļ āļēāļĨ5āļžāļĢ āļē4āļĨāļ§ āļē4āļĨāļŠ āļēāļĨ5āļ­āļļ āļē4āļĨāđ‚ āļēāļ§5āļāđˆ āļēāļ§5āļ‚āđ‰ āļē3āļ§āļ”āļĩ āļēāļ§5āļ”āļķ āļēāļ§5āļ™āļĩ āļēāļ§5āļšāļ­ āļēāļ§5āļĒāļ­ āļēāļ§5āļĒāļ· āļē5āļ§āļĢāļ“ āļēāļ§5āļĢāļ  āļē5āļ§āļĢāļĢ āļēāļ§5āļĢāļē āļē5āļ§5āļĢāļĩ āļēāļ§5āļĢāļļ āļēāļ§5āļĢāđ‰ āļēāļ§5āļĪāļ āļē5āļ§āļ­āļ™ āļēāļĻ5āļ™āļĩ āļē3āļĻāļĢ āļēāļĻ5āđ€āļĨ āļēāļĐ5āļ”āļ· āļēāļĐ5āļ•āļĢ āļēāļĐ5āļĢāļē āļēāļĐ5āđāļ āļēāļŠ5āļāļē āļēāļŠ5āļ„āļ­ āļēāļŠ5āļ”āđ‰ āļēāļŠ5āļ•āđ‰ āļēāļŠ5āļ™āļĩ āļēāļŠ5āļ›āļ­ āļēāļŠ5āļĄāļŦ āļē1āļŦ āļēāļŦ3āļ āļēāļŦ5āļĄāļ‡ āļēāļŽ5āđ‚āļĢ āļē1āļ­ āļēāļ­āļ™āļē4 āļē1āļŪ āļē1āđ€ āļēāđ€āļĄ5āļĻ āļē1āđ āļē1āđ‚ āļē1āđ„ āļģ1āļ āļģ1āļ„ āļģāļ—4āļ§ āļģ1āļ™ āļģ1āļš āļģ1āļ› āļģ1āļž āļģ1āļĄ āļģāļĄ5āļĢāļ‡ āļģ1āļĢ āļģ1āļĨ āļģ1āļŠ āļģ1āļŦ āļģ1āđ€ āļģ1āđ āļīāļ5āļ‹āļĩ āļīāļ5āļ–āļ­ āļī1āļāļĢ āļīāļ5āļĢāđ‰ āļī3āļāļĪ āļīāļ5āļĨāđ‰ āļīāļ5āļ§āļē āļīāļ5āļĐāļļ āļīāļāļī5āļŠ āļī1āļ‚ āļī4āļ‚āļŠ āļīāļ‚5āļŠāļī āļī1āļ„ āļī4āļ„āļ• āļīāļ„5āļ•āļ­ āļī4āļ„āļ™ āļī4āļ„āļŦāļ° āļīāļ†5āđ€āļ™ āļīāļ‡5āļŠāļĩ āļīāļ‡4āļŠāļ• āļīāļ‡4āļŦ āļīāļ‡5āļŦāļē āļīāļ‡5āļŦāđ‰ āļīāļ‡5āļ­āļĢ āļīāļˆ5āļĻāļĩ āļīāļŠ4āļ™ āļīāļŠ5āļĨāļī āļī3āļŠāļī āļīāļ5āļŦāļ™ āļīāļ5āđ‚āļ āļīāļ”5āļ‰āļī āļīāļ”5āļŠāļ­ āļīāļ”5āļŠāļī āļīāļ”5āļ™āļĩ āļīāļ”5āļœāļ™ āļīāļ”5āļĢāļ­ āļīāļ”5āļĢāļ° āļīāļ”5āļĨāļą āļīāļ”5āļ­āļ­ āļīāļ”5āļ­āđˆ āļīāļ•5āļ‹āļđ āļīāļ•5āļ–āļĩ āļīāļ•5āļŸāļ­ āļīāļ•5āļĨāļ” āļīāļ•5āļĨāļē āļīāļ•5āļ§āļŠ āļīāļ•5āļŠāļĄ āļī1āļ•āļī āļī3āļ•āļļ āļīāļ—5āļ„āļ­ āļīāļ—5āļ˜āļą āļīāļ—5āļŠāļ™ āļī3āļ˜āļĩ āļīāļ™5āļ‡āļ­ āļīāļ™5āļŸāļĢ āļīāļ™5āļĒāļ§ āļīāļ™5āļĒāļ­ āļīāļ™5āļĒāđ‰ āļīāļ™5āļĢāļ° āļīāļ™5āļĢāļī āļīāļ™5āļĢāđ‰ āļī5āļ™āļ­āļš āļīāļ™5āļ­āļī āļīāļ™5āļŪāļļ āļīāļ™āļđ5āļ› āļīāļš5āļšāļī āļīāļš5āļœāļĒ āļīāļš5āļĒāļ· āļīāļš5āļĢāļ° āļīāļš5āļĢāļĩ āļīāļš5āļĨāļą āļīāļš5āļĨāļī āļīāļš5āļĨāđ‰ āļīāļ›4āļ āļīāļ›5āļ—āļ­ āļīāļ›5āļœāļĨ āļī3āļ›āļĢ āļīāļ›5āļŠāļ• āļīāļ›5āļŠāđ€ āļīāļ›5āļŪāļ­ āļīāļ›5āđ‚āļ› āļīāļ›5āđ‚āļĒ āļī1āļž āļī4āļžāļž āļī4āļžāđ‚ āļīāļž5āđ‚āļŠ āļīāļŸ5āļŸāļ­ āļī1āļ  āļīāļĄ5āļāļĩ āļī1āļĄāļļ āļīāļĒ5āļĄāļī āļīāļĢ5āļ§āļ” āļī1āļĢāļą āļī1āļĢāļē āļī1āļĢāļī āļī1āļĢāļļ āļīāļĨ5āļ›āļī āļī1āļĨāļą āļī1āļĨāļē āļī1āļĨāļī āļīāļ§5āļ‹āļĩ āļīāļ§5āļ—āļĢ āļīāļ§5āļšāļī āļīāļ§5āļĒāļ­ āļīāļ§5āļĒāļī āļī3āļ§āļĢāļĢ āļīāļ§5āļĢāļī āļīāļ§5āļĨāļī āļīāļ§5āļĨāļķ āļīāļ§āļē5āļŠ āļīāļĻ5āļžāļĢ āļīāļĻ5āļĢāđ‰ āļīāļĻ5āđ€āļĨ āļīāļĻ5āđāļž āļīāļĐ5āļ“āļļ āļīāļĐ5āļ•āļĢ āļīāļŠ5āļāļĢ āļīāļŠ5āļāļĩ āļī5āļŠāļ•āļĢ āļīāļŠ5āļ•āļī āļīāļŠ5āļ•āđ‰ āļīāļŠ5āļ—āļĩ āļīāļŠ5āļ™āļĩ āļīāļŠ5āļšāļ­ āļīāļŠ5āļĢāļē āļīāļŠ5āļĢāļī āļīāļŠ5āļĨāļē āļīāļŠ5āđ„āļ‹ āļī1āļŦ āļīāļŦāļē4 āļī1āļ­ āļī1āđ€ āļīāđ€āļ™4 āļī1āđ‚ āļī1āđ„ āļĩ1āļ āļĩ4āļāļ• āļĩ4āļāļĒ āļĩāļ5āļĒāđˆ āļĩāļ5āļĢāļī āļĩāļ†5āļŠāļĢ āļĩāļŠ5āļ„āļ“ āļĩāļ‹5āļŠāļ– āļĩāļ”5āļ†āđˆ āļĩ5āļ”āļīāļĒ āļĩāļ•5āļāļ§ āļĩāļ•5āļ›āļ āļĩ1āļ— āļĩāļ—4āļ™ āļĩāļš5āļĢāļļ āļĩāļš5āļĢāđ‰ āļĩ1āļ› āļĩ1āļž āļĩ4āļžāļˆ āļĩ1āļĄ āļĩāļĒ5āļāļ– āļĩāļĒ5āļĢāļĒ āļĩāļĒ5āļĢāļ­ āļĩāļĒ5āļĢāļ° āļĩāļĒ5āļĢāļą āļĩ5āļĒāļ§āļ™ āļĩāļĒ5āđ„āļ• āļĩāļĢ5āļ“āļą āļĩ3āļĢāļĩ āļĩāļĢāļĩ5āļš āļĩāļĨ5āļˆāļļ āļĩ4āļ§āļą āļĩāļ§āļē4 āļĩāļĐ5āļĄāļē āļĩāļŦ5āļ™āļē āļĩ5āļŦāļ™āđ‰ āļĩāļŦ5āļšāļą āļĩāļŦ5āļĄāļļ āļĩāļŦ5āļĢāļē āļĩ3āļŦāļĨ āļĩāļŦ5āđ‚āļĄ āļĩāļŦ5āđ„āļŠ āļĩ1āļ­ āļĩāļ­4āļĢ āļĩāļ­āļē4 āļĩ1āđ€ āļĩ1āđ āļĩ1āđ‚ āļĩ1āđ„ āļĩāđˆ5āļāđˆ āļĩāđˆ5āļ–āđ‰ āļĩāđˆ5āļ›āļļ āļĩāđˆ5āļ›āļđ āļĩāđˆ3āļŦ āļĩāđˆ5āđ‚āļ„ āļĩāđˆ5āđ‚āļ› āļĩāđ‰5āļāļĢ āļĩāđ‰5āļˆāđ‰ āļĩāđ‰5āļ•āļ° āļĩāđ‰5āļŸāļđ āļĩāđ‰5āļĢāļī āļĩāđ‰5āļĨāļą āļĩāđ‰5āļĨāļļ āļĩāđŠ5āļāļĢ āļĩāđŠ5āļ”āđŠ āļĩāđŠ5āļ•āđˆ āļĩāđ‹5āļˆāđ‰ āļĩāđ‹5āļ­āđ‹ āļķāļ5āļ‹āļķ āļķāļ5āļ”āļģ āļķāļ5āļ”āļ· āļķāļ5āļĒāļ· āļķāļ5āļĢāļ° āļķāļ5āļĨāļą āļķāļ5āļĨāđ‰ āļķāļ5āļŪāļą āļķāļ”5āļ–āļ· āļķāļ”5āļŪāļą āļķāļ™5āļ—āļķ āļ·āļ”5āļŪāļē āļ·āļ­5āļāļĨ āļ·āļ­5āļāļ­ āļ·āļ­5āļāļģ āļ·āļ­5āļ‚āđˆ āļ·āļ­5āļˆāđ‰ āļ·āļ­5āļŠāļ· āļ·āļ­5āļ”āļģ āļ·āļ­5āļ•āļĢ āļ·āļ­5āļ–āļ· āļ·āļ­5āļ™āļģ āļ·āļ­5āļ›āļĨ āļ·āļ­5āļ›āļ· āļ·āļ­5āļ›āđˆ āļ·āļ­5āļžāļ§ āļ·āļ­5āļžāđˆ āļ·āļ­5āļĒāļ™ āļ·āļ­5āļĒāļē āļ·āļ­5āļĢāļ· āļ·āļ­5āļĨāļē āļ·āļ­5āļĨāđ‰ āļ·āļ­5āļŠāļ­ āļ·āļ­5āļŠāļģ āļ·āļ­5āļ­āļĩ āļļāļ5āļ‡āļ­ āļļāļ5āļ‰āļ āļļāļ5āļ‹āđˆ āļļāļ5āļ”āļī āļļāļ5āļœāļē āļļāļ5āļĢāļē āļļāļ5āļĢāļļ āļļāļ5āļĨāļ° āļļāļ5āļĨāļĩ āļļāļ5āļĨāđ‰ āļļāļ5āļ­āļĩ āļļāļ5āļŪāļ· āļļāļ‚5āļ™āļē āļļāļ‚5āļ›āļē āļļāļ‚5āļ āļą āļļāļ‚5āļ āļē āļļāļ‚5āļĨāļą āļļāļ‚5āļĻāļē āļļāļ‚5āļĻāļķ āļļāļ‚5āđ€āļ” āļļāļ„5āļ—āļ­ āļļ3āļ„āļ™ āļļāļ‡5āļ–āļļ āļļāļˆ5āļĨāļī āļļāļˆ5āļŦāļ™ āļļāļ5āļˆāļ™ āļļāļ5āļĪāļ— āļļāļ5āđāļˆ āļļāļŽ5āļāļą āļļāļ‘5āļžāđˆ āļļāļ“5āļ„āđˆ āļļāļ“5āļ‘āļ āļļāļ“5āļŦāļ āļļāļ“5āļŦāļē āļļāļ“5āļŦāļī āļļāļ“āļđāļ›5 āļļāļ”5āļœāļē āļļāļ”5āļœāđˆ āļļāļ”5āļĨāļ­ āļļāļ”5āļĨāļļ āļļāļ”5āļ­āļđ āļļāļ•5āļāļ§ āļļāļ•5āļ‹āļ­ āļļāļ•5āļ•āļ āļļ5āļ•āļĢāļ° āļļ5āļ•āļĢāļī āļļāļ•5āļĨāļļ āļļāļ•5āļŠāđˆ āļļ3āļ—āļ āļļāļ—5āļ˜āļą āļļ5āļ—āļĢāļī āļļāļ—5āļĨāļļ āļļāļ—5āđ‚āļ˜ āļļāļ™5āļ—āļĢ āļļāļ™5āļœāļĨ āļļāļ™5āļĢāļ­ āļļāļš5āļ‡āļī āļļāļš5āļšāļī āļļāļš5āļœāļĨ āļļāļš5āļĒāļī āļļāļš5āļ­āļī āļļāļ›5āļāļĢ āļļāļ›5āļˆāļē āļļāļ›5āļ–āļą āļļāļ›5āļĒāļļ āļļāļ›3āļĢāļē āļļ5āļ›āļĢāļī āļļ4āļ›āļŠ āļļāļ›5āļŠāļ‡ āļļāļ›5āļŠāļĢ āļļāļ›5āļŪāļē āļļāļ›5āđ‚āļ  āļļāļ›5āđ‚āļĨ āļļāļž5āļžāļē āļļāļž5āļ āļī āļļāļ 5āļŠāļĨ āļļāļ 5āđ€āļ„ āļļāļĄ4āļ™ āļļāļĄ5āļ™āļļ āļļāļĄ5āļĢāļļ āļļāļĄ5āļŦāļĒ āļļāļĒ5āļŠāđˆ āļļāļĒ5āļāđ‰ āļļ1āļĢ āļļāļĢ5āļ‚āđˆ āļļ4āļĢāļ„ āļļ4āļĢāļ‰ āļļ4āļĢāļŠ āļļ4āļĢāļ— āļļ4āļĢāļ˜ āļļ4āļĢāļš āļļ4āļĢāļž āļļ4āļĢāļ  āļļ5āļĢāļ āļĩ āļļ4āļĢāļĒ āļļ4āļĢāļĢ āļļ4āļĢāļĨ āļļ4āļĢāļ§ āļļ4āļĢāļĻ āļļ4āļĢāļŠ āļļ4āļĢāļ­ āļļ4āļĢāđ āļļ4āļĢāđ‚ āļļāļĨ5āļˆāļ­ āļļāļĨ5āļŠāļĩ āļļāļĨ5āļ˜āļī āļļāļĨ5āļĄāļļ āļļāļĨ5āļ§āļĢ āļļāļĨ5āļŠāļ• āļļāļĨ5āļŠāđ āļļ3āļĨāļē āļļ3āļĨāļī āļļāļĻ5āđ€āļĢ āļļāļĻ5āđ‚āļĨ āļļāļĐ5āļˆāļĩ āļļāļĐ5āļŽāļĩ āļļāļĐ5āļ›āļĢ āļļ4āļĐāļĒ āļļāļĐ5āļĢāļē āļļāļĐ5āļĢāđ‰ āļļāļĐ5āđ€āļž āļļāļŠ5āļĢāļē āļļ5āļŠāļĨāļ° āļļāļŠ5āļĨāļī āļļāļŠ5āļ§āļē āļļ1āļŦ āļļāļŦ5āļāļĨ āļļāļŦ5āļ™āļē āļļ4āļŦāļĒ āļļāļŦ5āļĒāļē āļļ4āļŦāđ€ āļļāļŦ5āđ€āļ— āļļāļŦ5āđ€āļŠ āļļ4āļŦāđ‚ āļļāļŦ5āđ‚āļĒ āļļ1āđ€ āļļ1āđ‚ āļļāđŠ5āļ•āđŠ āļđāļ5āļ§āļą āļđ1āļŠ āļđāļ5āļŦāļē āļđāļ5āđ€āļ› āļđāļ5āđ€āļŠ āļđāļ”5āļšāļķ āļđāļ”5āļĢāļĩ āļđāļ•5āļĢāļđ āļđāļ˜5āđ€āļĢ āļđāļš5āđ„āļĨ āļđāļ›4āļ āļđāļ›5āļŒāļē āļđāļ›5āļ–āđˆ āļđāļ›5āļ—āļĢ āļđāļ›5āļžāļĢ āļđāļ›5āļĢāđˆ āļđāļ›5āđāļš āļđāļ›5āđ‚āļ‰ āļđāļŸ5āļ§āļĩ āļđ2āļĄ āļđ5āļĄāļīāļ™ āļđāļĢ5āļ‚āđˆ āļđāļĢ4āļ“ āļđ5āļĢāļ“āļ  āļđ5āļĢāļ“āļĄ āļđ5āļĢāļ“āļ° āļđ5āļĢāļ“āļēāļ āļđāļĢ4āļž āļđ5āļĢāļžāļ° āļđ5āļĢāļžāļē āļđāļĢ4āļĄ āļđāļĨ5āļāļĢ āļđāļĨ5āļ„āđˆ āļđ3āļĨāļą āļđāļ§5āđ„āļ™ āļđāļŠ4āļ§ āļđ1āđ€ āļđ1āđ‚ āļđāđˆ1 āļđāđ‰1 āļđāđŠ5āļ•āļķ āļđāđ‹5āļāļĢ āļđāđ‹5āļˆāļĩ āļđāđ‹5āļ­āļĩ āđ€2 āđ€āļ5āļĒāļđ āđ€āļ5āļĢāļĨ āđ€āļ5āļ§āļą āđ€āļ5āļĻāļ§ āđ€āļ5āļ­āļī āđ€āļ„5āļ‹āļ­ āđ€āļ„5āļĄāļĩ āđ€āļ„5āļĻāļ§ āđ€āļˆ5āļ”āļĩ āđ€āļˆ5āļ™āļĩ āđ€4āļˆāļĢ āđ€āļˆ5āļĨāļī āđ€āļˆ5āđ‚āļ• āđ€āļˆ5āđ‚āļĢ āđ€āļ‹5āļ—āļī āđ€āļ‹5āļ™āļ­ āđ€āļ‹5āļĢāļļ āđ€āļ‹5āđāļ„ āđ€āļ”5āļšāļī āđ€āļ”5āļĢāļą āđ€āļ”5āļĨāļē āđ€āļ”5āļĨāļī āđ€āļ”5āļĨāļĩ 2āđ€āļ•āļŠ āđ€āļ•5āļ›āļļ āđ€āļ•5āļĄāļĩ āđ€āļ•5āļĄāļđ āđ€āļ•5āļĢāļī āđ€āļ•5āļĨāļļ āđ€āļ•5āļĻāļ§ āđ€āļ•5āļŦāļ° āđ€āļ–5āļĢāļē āđ€āļ—5āļāļĢ āđ€āļ—5āļ„āļĢ āđ€āļ—5āļ„āļ§ āđ€āļ—5āđ‚āļ§ āđ€āļ—5āđ‚āļĻ āđ€āļ™4āļ• āđ€āļ™5āļ•āļī 4āđ€āļ™āļĒ āđ€āļ™5āļĢāļ° āđ€āļ™5āļĢāļą āđ€āļ™2āļŠ āđ€āļ™5āļŠāļē āđ€āļ™5āđ€āļ§ āđ€āļš5āļ•āđ‰ āđ€āļš5āļšāļĩ āđ€āļš5āļĢāļī āđ€āļš5āļĢāļļ āđ€āļš5āļĨāļĩ āđ€āļ›5āļ•āļ­ āđ€āļ›5āļŠāļ āđ€āļ›5āļŠāļĨ āđ€āļž5āļŠāļļ āđ€āļž5āļ—āļļ āđ€āļž5āļŠāļĨ āđ€āļž5āđ‚āļ— āđ€āļž5āđ„āļ™ āđ€āļŸ5āļ­āļĩ āđ€āļ 5āļ•āļĢ āđ€āļ 5āļ—āļļ āđ€āļĄ5āļ†āļī āđ€āļĄ5āļ”āļī āđ€āļĄ5āļĨāļ­ āđ€āļĄ5āļĨāđˆ āđ€āļĄ4āļŠ āđ€āļĄ5āļŠāļļ āđ€āļĢ5āļāļ­ āđ€āļĢ5āļāļ° āđ€āļĢ5āļĄāļ­ āđ€āļĢ5āļĢāļ§ āđ€āļĢ5āļ§āļ” āđ€āļĨ5āļāļĢ āđ€āļĨ5āļ„āļ­ āđ€āļĨ5āļ”āļĩ āđ€āļĨ5āļžāļ­ āđ€āļĨ5āļ§āļĢ āđ€āļĨ5āļ§āļđ āđ€āļĨ5āļŦāļĨ āđ€āļĨ5āļŪāļļ āđ€āļĨāļī4 āđ€āļ§5āļāđ‰ āđ€āļ§5āļ—āļī āđ€āļ§5āļĨāđˆ āđ€āļ§5āļŽāļļ āđ€āļ§5āđ„āļ™ āđ€āļŠ5āļ‰āļ§ āđ€āļŠ5āļ™āļĩāļĒāđŒ āđ€āļŠ5āļĢāļĩ āđ€āļŠ5āļ§āļ āđ€āļŠ5āļ§āļ™ āđ€āļŠ5āđāļŠ āđ€āļŦ5āļĄāļą āđ€āļŦ5āļĒāļ‡ āđ€āļŦ5āļĢāļ° āđ€āļŦ5āļĢāļą āđ€āļŦ5āļĻāļ§ āđ€āļŦ5āļĻāļą āđ€āļŦ5āļŠāļą āđ€āļŽ5āļ§āļĢ āđ€āļ­5āļāļ§ āđ€āļ­5āļ˜āļī āđ€āļ­5āļŽāļ āđ€āļŪ5āļĨāļ° āđ€āļŪ5āļĨāļī āđāļ5āļ§āļą āđāļ„5āļĢāļ­ āđāļ„5āļĢāļī āđāļ„5āļĨāļ­ āđāļ„5āļĨāļī āđāļ„5āđāļ• āđāļ„5āđāļŠ āđāļ‹5āļĒāļī āđāļ‹5āļŦāļ§ āđāļ”5āļĢāļĩ āđāļ•5āđāļ• āđāļ™2 āđāļš4āļ„ āđāļš5āļĢāļī āđ4āļ›āļĢ 3āđāļžāļ— āđāļŸ5āļĢāļĩ āđ4āļŸāđ‰ āđāļĄ2 āđāļĄ5āļāļē āđāļĄ5āļŠāļĩ āđāļĄ5āļĢāļī āđāļĄ5āļĢāļĩ āđāļĄ5āđ€āļĢ āđāļĄāđˆ3 āđāļ­5āļ™āļ° āđ‚āļ4āļ āđ‚āļ5āļĨāļ­ āđ‚āļ5āļĨāļē āđ‚āļ5āļĨāļī āđ‚āļ5āļ§āļē āđ‚āļ5āļ§āļĩ āđ‚āļ5āļŪāļē āđ‚āļ‚5āļ—āļą āđ‚āļ‚5āļ āļī āđ‚āļ‚5āđ€āļ  āđ‚āļ‚5āđ‚āļĨ āđ‚āļ„5āļ•āļĄ āđ‚āļ„5āļ•āļī āđ‚āļ„5āļĄāļđ āđ‚āļ„5āļĄāđˆ āđ‚āļ„5āļĢāļī āđ‚āļ„5āļĨāļ­ āđ‚āļ„5āļĨāļą āđ‚āļ„5āļĨāļĩ āđ‚āļ„5āļĨāđˆ āđ‚āļ„5āļ­āļ­ āđ‚āļ„5āļ­āļ° āđ‚āļ„5āđāļ— āđ‚āļ„5āđ„āļ‹ āđ‚āļˆ5āļ›āļ āđ‚āļˆ5āļ­āļĩ āđ‚āļ‰5āđ€āļš āđ‚āļŠ5āļŽāļķ āđ‚āļŠ5āļ”āļķ āđ‚āļŠ5āļŦāđˆ āđ‚āļ‹5āļāļĢ āđ‚āļ‹5āļ™āļĩ āđ‚āļ‹5āļĒāļđ āđ‚āļ‹5āļĨāļđ āđ‚āļ‹5āļŠāđ€ āđ‚āļ4āļŠ āđ‚āļ5āļ›āļ§ āđ‚āļ”5āļˆāļĩ āđ‚āļ”5āļ™āļĩ āđ‚āļ”5āļĢāļē āđ‚āļ”5āļĨāļī āđ‚āļ•5āļāļĢ āđ‚āļ•5āļĢāļ­ āđ‚āļ•5āļĢāļē āđ‚āļ•5āļĢāļī āđ‚āļ•5āļĨāļī āđ‚āļ•5āļŠāđ€ āđ‚āļ•5āđ„āļ„ āđ‚āļ—5āļāļĢ āđ‚āļ—5āļ„āļ­ āđ‚āļ—5āļ”āļ­ āđ‚āļ—5āļžāļĨ āđ‚āļ—5āļĢāļ­ āđ‚āļ—5āđāļ­ āđ‚āļ˜5āļ—āļ™ āđ‚āļ˜5āļ›āļ āđ‚āļ˜5āļ›āļī āđ‚āļ˜5āļ§āļ™ āđ‚āļ˜5āđ€āļŸ āđ‚āļ™5āļ—āļļ āđ‚āļ™5āļ›āļˆ āđ‚āļ™5āļĢāļĄ āđ‚āļš5āļŠāļļ āđ‚āļš5āļ‹āļ­ āđ‚āļš5āļ•āđ‰ āđ‚āļš5āļĢāļ­ āđ‚āļš5āļĢāļą āđ‚āļš5āļĢāļē āđ‚āļš5āļĨāļī āđ‚āļš5āļĨāđˆ āđ‚āļš5āļ­āļī āđ‚āļš5āđ„āļŪ āđ‚āļ›5āļāļŠ āđ‚āļ›5āļĨāļī āđ‚āļ›5āđāļ• āđ‚āļ›5āđāļĨ āđ‚āļ›5āđ‚āļ› āđ‚āļ›5āđ‚āļĨ āđ‚āļž5āļ—āļ° āđ‚āļž5āļĢāļ° āđ‚āļž5āļĨāļē āđ‚āļž5āļĨāļī āđ‚āļž5āļĨāļĩ āđ‚āļž5āļŦāļē āđ‚āļž5āđāļ— āđ‚āļž5āđ„āļ‹ āđ‚āļŸ5āļāļĢ āđ‚āļŸ5āļ•āļ­ āđ‚āļŸ5āļ™āļĩ āđ‚āļŸ5āļĨāļī āđ‚āļ 5āļ„āļī āđ‚āļ 5āđ„āļ„ āđ‚āļĄ5āļ†āļĩ āđ‚āļĄ5āļ”āļđ āđ‚āļĄ5āļĢāđ‡ āđ‚āļĄ5āļŦāļē āđ‚āļĄ5āļŪāļą āđ‚āļĒ5āļ–āļī āđ‚āļĢ5āļāļ° āđ‚āļĢ5āļ„āļī āđ‚āļĢ5āļ‡āļą āđ‚āļĢ5āļ˜āļ™āļ° āđ‚āļĢ5āļžāļĨ āđ‚āļĢ5āļŸāļ­ āđ‚āļĢ5āļŸāļĩ āđ‚āļĢ5āļĢāļē āđ‚āļĢ5āļĢāđˆ āđ‚āļĢ5āļĨāđˆ āđ‚āļĢāļŠ4 āđ‚āļĢ5āļŠāđ€ āđ‚āļĢ5āļŦāļ™ āđ‚āļĢ5āļ­āļĩ āđ‚āļĢ5āļŪāļī āđ‚āļĢ5āļŪāļĩ āđ‚āļĢ5āđāļĄ āđ‚āļĢ5āđ„āļĨ āđ‚āļĨ5āļāļĢ āđ‚āļĨ5āļāļĩ āđ‚āļĨ5āļˆāļ™ āđ‚āļĨ5āļ›āļļ āđ‚āļĨ5āļĄāļ āđ‚āļĨ5āļĢāļē āđ‚āļĨ5āļ§āļ° āđ‚āļĨ5āļŦāļī āđ‚āļĨ5āđ„āļĄ āđ‚āļ§5āļ™āļ­ āđ‚āļĻ5āļ˜āļ™ āđ‚āļĻ5āļ āļī āđ‚āļŠ5āļāļĢ āđ‚āļŠ5āļ•āļī āđ‚āļŠ5āļ˜āļ™ āđ‚āļŠ5āļ āļī āđ‚āļŠ5āļĢāļą āđ‚āļŠ5āļĨāļī āđ‚āļŠ5āļŦāļļ āđ‚āļŠ5āđ‚āļ„ āđ‚āļŦ5āļāļē āđ‚āļŦ5āļĢāļŠ āđ‚āļŦ5āļĢāļ° āđ‚āļŦ5āļĢāļē āđ‚āļŦ5āļŠāļī āđ‚āļŦ5āļŽāļē āđ‚āļ­5āļ„āļĨ āđ‚āļ­5āļ„āđ‡ āđ‚āļ­5āļ”āļĩ āđ‚āļ­5āļĢāļŠ āđ‚āļ­5āļĨāļ° āđ‚āļ­5āļŠāļ– āđ‚āļ­5āļ­āļī 3āđƒāļŠāđ‰ 1āđƒāļŦ āđ„āļ5āļĨāļē āđ„āļ5āļ§āļą āđ„āļ‚5āļ‚āđ‰ āđ„āļ‚5āļ„āļ§ āđ„āļ‚5āļĄāļą āđ„āļ‚5āļŠāļą āđ„āļ‚5āļŠāļ· āđ„āļ„5āļĻāļ§ āđ„āļŠ5āļ™āđˆ āđ„āļŠ5āļĻāļ§ āđ„āļ‹5āļ”āļ­ āđ„āļ‹5āļšāļ­ āđ„āļ‹5āļšāļĩ āđ„āļ‹5āļ›āļĢ āđ„āļ‹5āļĢāļą āđ„āļ‹5āđāļ™ āđ„āļ”5āļŸāļļ āđ„āļ”5āļŸāļđ āđ„āļ”5āļĨāļī āđ„āļ”5āļ­āļ­ āđ„āļ•5āļĢāļĩ āđ„āļ—5āļāļĢ āđ„āļ—5āļŸāļ­ āđ„āļ—5āļĢāļ­ āđ„āļ—5āđāļ— āđ„āļ›5āļĢāļī āđ„āļž5āļŠāļĒ āđ„āļž5āļ—āļ­ āđ„āļž5āļ˜āļ­ āđ„āļž5āļĢāļą āđ„āļž5āļĢāļī āđ„āļž5āļĨāļī āđ„āļž5āļŦāļē āđ„āļž5āđ‚āļĢ āđ„āļž5āđ‚āļ­ āđ„āļŸ5āđāļŠ āđ„āļŸ5āđāļ™ āđ„āļ 5āļĢāļī āđ„āļĄ5āļ–āļī āđ„āļĄāđ‰1 āđ„āļĨ5āļšāļĢ āđ„āļĨ5āļšāļĩ āđ„āļ§5āļĢāļą āđ„āļ§5āļ­āļ° āđ„āļŦ5āļĢāļ“ āđ„āļŦ5āļĻāļ§ āđ„āļŦ5āļŦāļĄ āđ„āļŦ5āļŦāļĨ āđ„āļ­5āļāļĢ āđ„āļ­5āļ„āļī āđ„āļ­5āļ‹āļĩ āđ„āļ­5āļ”āļ­ āđ„āļ­5āļ•āļī āđ„āļ­5āļžāļ­ āđ„āļ­5āļžāđ‡ āđ„āļ­5āļĻāļ§ āđ„āļ­5āļĻāļļ āđ„āļ­5āļĻāļđ āđ„āļŪ1 āđ‡āļ5āļ‹āļĩ āđ‡āļˆ5āļ‚āļš āđ‡āļˆ5āļŠāļĢ āđ‡āļ”5āļĨāļ­ āđ‡āļ”5āļ­āļĢ āđ‡āļ”5āļ­āļķ āđ‡āļ™5āļ‰āđˆ āđ‡āļ™5āļĢāļ­ āđ‡āļ™5āļ§āļđ āđ‡āļ™5āļ­āļĒ āđ‡āļ™5āļ­āđ‰ āđ‡āļš5āļ”āđ‰ āđ‡āļ›5āļ—āđ‡ āđ‡āļĄ5āļŦāļĄ āđˆāļ5āļĨāļą āđˆ1āļ„ āđˆāļ‡5āļĢāļī āđˆāļ‡5āļ­āļĢ āđˆāļ‡5āļ­āļģ āđˆāļ‡5āļ­āđˆ āđˆ4āļ‰āļĩ āđˆāļ™5āļ‡āđˆ āđˆāļ™5āļ‰āđˆ āđˆāļ™5āļ—āļ° āđˆāļ™5āļĄāļ· āđˆ4āļ™āļĒ āđˆāļ™5āļĒāļ™ āđˆāļ™5āļĒāđˆ āđˆāļ™5āļĢāļĄ āđˆāļĄ1 āđˆāļĄ5āļžāļ§ āđˆāļĒ5āļāļ° āđˆāļĒ5āļ‰āļļ āđˆāļĒ5āļĢāļē āđˆāļĒ5āļĢāđˆ āđˆāļ§5āļŠāđ‰ āđˆāļ§5āļ–āļķ āđˆāļ§5āļĒāļ§ āđˆāļ§5āļŪāđ‰ āđˆāļ§5āđ„āļŦ āđˆāļ­5āļāļĢ āđˆāļ­5āļāļ§ āđˆāļ­5āļāļ° āđˆāļ­5āļāļĩ āđˆāļ­5āļāđ‰ āđˆāļ­5āļ‚āđˆ āđˆāļ­5āļ•āļĢ āđˆāļ­5āļ•āļ° āđˆāļ­5āļ•āđ‰ āđˆāļ­5āļ–āļ· āđˆāļ­5āļšāļ· āđˆāļ­5āļœāļŠ āđˆāļ­5āļĄāļ§ āđˆāļ­5āļĄāđˆ āđˆāļ­āļĒ3 āđˆāļ­5āļĒāļ­ āđˆāļ­5āļĒāđˆ āđˆāļ­5āļĢāđˆ āđˆāļ­3āļĨ āđˆāļ­5āļ§āđˆ āđˆāļ­5āļŠāļĢ āđˆāļ­5āļŪāļą āđˆāļ­5āļŪāđˆ āđˆāļē5āļāļĨ āđˆāļē5āļŠāđ‰ āđˆāļē5āļ”āļ‡ āđˆāļē5āļ”āđ‰ āđˆāļē5āļāļ· āđˆāļē5āļžāļĢ āđˆāļē5āļĄāļ‡ āđˆāļē5āļĢāļķ āđˆāļē5āļĢāđ‰ āđˆāļēāļ§3 āđˆāļģ5āļŠāļ­ āđˆāļģ5āļŠāđ‰ āđˆāļģ5āļ•āđ‰ āđˆāļģ5āļ•āđŠ āđˆāļģ5āđ„āļŦ āđˆ1āđ€ āđˆ1āđ āđ‰āļ5āļ­āđ‰ āđ‰āļ‡5āļ–āđˆ āđ‰āļ‡5āļāļļ āđ‰āļ™5āļ‡āļđ āđ‰āļ™5āļ‰āļš āđ‰āļ™5āļ‰āđˆ āđ‰āļ™5āļ—āļ° āđ‰āļ™5āļ—āļļ āđ‰āļ™5āļ—āđ‰ āđ‰āļ™5āļĢāļļ āđ‰āļ™5āļĢāđˆ āđ‰āļĄ5āļ„āļĨ āđ‰āļĄ5āļ‡āļ§ āđ‰āļĄ5āļ‰āļļ āđ‰āļĄ5āļ™āđ‰ āđ‰āļĄ5āļĒāļī āđ‰āļĄ5āļĨāļ° āđ‰āļĄ5āļĨāļļ āđ‰āļĄ5āļ­āļĨ āđ‰āļĒ5āļāļĨ āđ‰āļĒ5āļ‡āļŠ āđ‰āļĒ5āļĨāđˆ āđ‰āļĒ5āļ­āđ‰ āđ‰āļĒ5āđƒāļš āđ‰āļ§5āļĢāļ­ āđ‰1āļŦ āđ‰āļ­5āļāļĢ āđ‰āļ­5āļāļĨ āđ‰āļ­5āļ„āļĢ āđ‰āļ­5āļ„āļđ āđ‰āļ­5āļ‡āļ­ āđ‰āļ­5āļ‰āļĩ āđ‰āļ­5āļ”āļķ āđ‰āļ­5āļ”āđ‰ āđ‰āļ­5āļ•āđŠ āđ‰āļ­5āļ–āļ­ āđ‰āļ­āļ™3 āđ‰āļ­5āļœāđ‰ āđ‰āļ­5āļāļą āđ‰āļ­5āļŸāļ· āđ‰āļ­5āļĄāļđ āđ‰āļ­5āļĢāļ° āđ‰āļ­5āļĢāđˆ āđ‰āļ­5āļ­āļķ āđ‰āļ­5āļŪāļ· āđ‰āļē5āļˆāļ­ āđ‰āļē5āļŠāļ· āđ‰āļē5āļŠāļđ āđ‰āļē5āļŠāđˆ āđ‰āļē5āļŠāđ‰ āđ‰āļē5āļ”āļĩ āđ‰āļē5āļ–āļī āđ‰āļē5āļ–āļķ āđ‰āļē5āļšāđˆ āđ‰āļē5āļšāđ‰ āđ‰āļē5āļšāđ‹ āđ‰āļē5āļ›āļĩ āđ‰āļē5āļœāļē āđ‰āļē5āļāļĢ āđ‰āļē3āļž āđ‰āļē5āļĄāļļ āđ‰āļē5āļ§āđˆ āđ‰āļē5āļŠāļĄ āđ‰āļē5āļŠāļĢ āđ‰āļē5āļŠāļĨ āđ‰āļģ1 āđ‰1āđ€ āđ‰1āđ āđŠāļ5āļ‹āļ­ āđŠāļ5āļĢāļī āđŠāļ5āļĨāļļ āđŠāļ5āļŪāļ§ āđŠāļ‡5āļšāđŠ āđŠāļ›5āļ‹āļĩ āđŠāļĒ5āļāđˆ āđ‹āļĒ5āļ­āļī āđ‹āļ­5āļ”āđ‹ āđŒāļ„5āļŠāđ€ āđŒāļ„5āđāļĨ āđŒāļ•5āđ„āļ— āđŒ4āļ—āđ€ āđŒāļ—5āđ„āļ— āđŒ1āļ™ āđŒ1āļš āđŒ1āļž āđŒ1āļĢ āđŒ1āđ€ āđŒ1āđ āđŒ1āđ‚ .āļ6 .āļ‚6 .āļƒ6 .āļ„6 .āļ…6 .āļ†6 .āļ‡6 .āļˆ6 .āļ‰6 .āļŠ6 .āļ‹6 .āļŒ6 .āļ6 .āļŽ6 .āļ6 .āļ6 .āļ‘6 .āļ’6 .āļ“6 .āļ”6 .āļ•6 .āļ–6 .āļ—6 .āļ˜6 .āļ™6 .āļš6 .āļ›6 .āļœ6 .āļ6 .āļž6 .āļŸ6 .āļ 6 .āļĄ6 .āļĒ6 .āļĢ6 .āļĪ6 .āļĨ6 .āļĶ6 .āļ§6 .āļĻ6 .āļĐ6 .āļŠ6 .āļŦ6 .āļŽ6 .āļ­6 .āļŪ6 6āļ. 6āļ‚. 6āļƒ. 6āļ„. 6āļ…. 6āļ†. 6āļ‡. 6āļˆ. 6āļ‰. 6āļŠ. 6āļ‹. 6āļŒ. 6āļ. 6āļŽ. 6āļ. 6āļ. 6āļ‘. 6āļ’. 6āļ“. 6āļ”. 6āļ•. 6āļ–. 6āļ—. 6āļ˜. 6āļ™. 6āļš. 6āļ›. 6āļœ. 6āļ. 6āļž. 6āļŸ. 6āļ . 6āļĄ. 6āļĒ. 6āļĢ. 6āļĨ. 6āļ§. 6āļĻ. 6āļĐ. 6āļŠ. 6āļŦ. 6āļŽ. 6āļ­. 6āļŪ. 6āļāđŒ. 6āļ‚āđŒ. 6āļƒāđŒ. 6āļ„āđŒ. 6āļ…āđŒ. 6āļ†āđŒ. 6āļ‡āđŒ. 6āļˆāđŒ. 6āļ‰āđŒ. 6āļŠāđŒ. 6āļ‹āđŒ. 6āļŒāđŒ. 6āļāđŒ. 6āļŽāđŒ. 6āļāđŒ. 6āļāđŒ. 6āļ‘āđŒ. 6āļ’āđŒ. 6āļ“āđŒ. 6āļ”āđŒ. 6āļ•āđŒ. 6āļ–āđŒ. 6āļ—āđŒ. 6āļ˜āđŒ. 6āļ™āđŒ. 6āļšāđŒ. 6āļ›āđŒ. 6āļœāđŒ. 6āļāđŒ. 6āļžāđŒ. 6āļŸāđŒ. 6āļ āđŒ. 6āļĄāđŒ. 6āļĒāđŒ. 6āļĢāđŒ. 6āļĨāđŒ. 6āļ§āđŒ. 6āļĻāđŒ. 6āļĐāđŒ. 6āļŠāđŒ. 6āļŦāđŒ. 6āļŽāđŒ. 6āļ­āđŒ. 6āļŪāđŒ. 6āļāļīāđŒ. 6āļ‚āļīāđŒ. 6āļƒāļīāđŒ. 6āļ„āļīāđŒ. 6āļ…āļīāđŒ. 6āļ†āļīāđŒ. 6āļ‡āļīāđŒ. 6āļˆāļīāđŒ. 6āļ‰āļīāđŒ. 6āļŠāļīāđŒ. 6āļ‹āļīāđŒ. 6āļŒāļīāđŒ. 6āļāļīāđŒ. 6āļŽāļīāđŒ. 6āļāļīāđŒ. 6āļāļīāđŒ. 6āļ‘āļīāđŒ. 6āļ’āļīāđŒ. 6āļ“āļīāđŒ. 6āļ”āļīāđŒ. 6āļ•āļīāđŒ. 6āļ–āļīāđŒ. 6āļ—āļīāđŒ. 6āļ˜āļīāđŒ. 6āļ™āļīāđŒ. 6āļšāļīāđŒ. 6āļ›āļīāđŒ. 6āļœāļīāđŒ. 6āļāļīāđŒ. 6āļžāļīāđŒ. 6āļŸāļīāđŒ. 6āļ āļīāđŒ. 6āļĄāļīāđŒ. 6āļĒāļīāđŒ. 6āļĢāļīāđŒ. 6āļĨāļīāđŒ. 6āļ§āļīāđŒ. 6āļĻāļīāđŒ. 6āļĐāļīāđŒ. 6āļŠāļīāđŒ. 6āļŦāļīāđŒ. 6āļŽāļīāđŒ. 6āļ­āļīāđŒ. 6āļŪāļīāđŒ. 6āļāļļāđŒ. 6āļ‚āļļāđŒ. 6āļƒāļļāđŒ. 6āļ„āļļāđŒ. 6āļ…āļļāđŒ. 6āļ†āļļāđŒ. 6āļ‡āļļāđŒ. 6āļˆāļļāđŒ. 6āļ‰āļļāđŒ. 6āļŠāļļāđŒ. 6āļ‹āļļāđŒ. 6āļŒāļļāđŒ. 6āļāļļāđŒ. 6āļŽāļļāđŒ. 6āļāļļāđŒ. 6āļāļļāđŒ. 6āļ‘āļļāđŒ. 6āļ’āļļāđŒ. 6āļ“āļļāđŒ. 6āļ”āļļāđŒ. 6āļ•āļļāđŒ. 6āļ–āļļāđŒ. 6āļ—āļļāđŒ. 6āļ˜āļļāđŒ. 6āļ™āļļāđŒ. 6āļšāļļāđŒ. 6āļ›āļļāđŒ. 6āļœāļļāđŒ. 6āļāļļāđŒ. 6āļžāļļāđŒ. 6āļŸāļļāđŒ. 6āļ āļļāđŒ. 6āļĄāļļāđŒ. 6āļĒāļļāđŒ. 6āļĢāļļāđŒ. 6āļĨāļļāđŒ. 6āļ§āļļāđŒ. 6āļĻāļļāđŒ. 6āļĐāļļāđŒ. 6āļŠāļļāđŒ. 6āļŦāļļāđŒ. 6āļŽāļļāđŒ. 6āļ­āļļāđŒ. 6āļŪāļļāđŒ. 6āļ° 6āļē 6āđ… 6āļģ7 6āļī 6āļĩ 6āļķ 6āļ· 6āļļ 6āļđ āđ6 āđ‚6 5āđ„6 7āđƒ6 6āđ‡ 6āđˆ 6āđ‰ 6āđŠ 6āđ‹ 6āđŒ 6āđ 6āļš 6āđŽ āđ€6āļ‚ āđ€6āļƒ āđ€6āļ„ āđ€6āļ… āđ€6āļ† āđ€6āļ‡ āđ€6āļˆ āđ€6āļ‰ āđ€6āļŠ āđ€6āļ‹ āđ€6āļŒ āđ€6āļ āđ€6āļŽ āđ€6āļ āđ€6āļ āđ€6āļ‘ āđ€6āļ’ āđ€6āļ“ āđ€6āļ” āđ€6āļ• āđ€6āļ– āđ€6āļ— āđ€6āļ˜ āđ€6āļ™ āđ€6āļš āđ€6āļ› 7āđ€6āļœ āđ€6āļ āđ€6āļž āđ€6āļŸ āđ€6āļ  āđ€6āļĄ āđ€6āļĒ āđ€6āļĢ āđ€6āļĨ āđ€6āļ§ āđ€6āļĻ āđ€6āļĐ āđ€6āļŠ āđ€6āļŦ āđ€6āļŽ āđ€6āļ­ āđ€6āļŪ āļŠ6āļ§āļē. āļŠ6āđ„ āļ˜6āđ„āļ™ āļĄ6āđ„āļŦ āļŠ6āđ„āļ• āđ€āļĨāļŠ7āđ„āļ• āļŠ6āđ„āļ™ āļŠ6āđ„āļš āļŠ6āđ„āļ› āļŠ6āđ„āļĨ āļš6āļ—āļ„āļ§ āļĄ6āļ§āļ āļĄ6āļ§āļ™ āļĄ6āļ§āļ” āļĄ7āļ§āļ”āļĩ āļĄ6āļ§āļĒ āļ°āļĄ6āļ§āļ‡ āļĨ7āļŠāļ™ āļąāļ•5āļ–āļļ āļąāļ•6āļ–āļļāđŒ 6āļ•āļĢ. āļ˜āļē6āļ•āļļ. āļšāļļ6āļ•āļĢ. āļ„6āļĢāļđ āļŪāļīāļš6āļĢāļđ āļŪāļĩāļš6āļĢāļđ āļŠ6āļ āļē āļŠ7āļ āļēāļĢ āđ€āļŠ7āļ āļē āđ‚āļŠ7āļ āļē āļœ6āļ§āļē āļ™6āļ„āļĢ. .āđ€āļŦ6āļĒāļ‡ āđ€āļ›āļĩāđˆ6 āđ€āļ‚āļĩāđ‰6 āļĄ6āļ“āļĩ āļ„āļēāļĄ7āļ“āļĩ .āļĢāļĄ7āļ“āļĩ .āļĢāļąāļĄ7āļ“āļĩ āļŦāļĄ7āļ“āļĩ āļ‡6āļ§āļ” āļ‡6āļ§āļ™ āļ§āļąāļ‡7āļ§āļ™ āļ‡6āļ§āļĒ āļĄāļ‡6āļ§āļ‡ āļ­āļĒ6āļ­āļ” āļž6āļāļē āļˆāļļ6āļĢāļ“ āļĪ6āļŠāļē .āļĪ6āļ—āļąāļĒ āļžāļĢāļĢ6āļ”āļī āļŠāļ§āļē6āļ”āļī āļ­6āļĢāļī. āļˆāļ™6āļ—āļĩ. āļ˜āļ„6āļĒāļē āļ™āļīāļĄ6āļ™āļē āļĒāđŒāļĄ6āļ™āļē āļē7āļ“āļ° āļī7āļ“āļ° āļļ7āļ“āļ° āļ“7āļ“āļ° āļ7āļ“āļ° āļ—7āļ“āļ° āļĨ7āļ“āļ° āļļāļĐ7āļ“āļ° āļĪāļĐ7āļ“āļ° āļĢāļ›7āļ“āļ° āļŦāļĄ7āļ“āļ° āļŠāļĄ7āļ“āļ° āļĨāļ§7āļ“āļ° āļĢāļ§7āļ“āļ° āļĢ5āļ“āļ° āļ“āļĢ6āļŠāļĩ āļ6āļ™āļ° āļĒāļ7āļ™āļ° āļ„7āļ™āļ° āļĒ7āļ™āļ° āļ āļ§7āļ™āļ° āļĄāļ—7āļ™āļ° āļĢāļ•7āļ™āļ° āļĨāļ§7āļ™āļ° āļ§āļˆ7āļ™āļ° āļ§āļ—7āļ™āļ° āļ§āļŠ7āļ™āļ° āļĻāļĄ7āļ™āļ° āļ āļŠ7āļ™āļ° āđ„āļŠ7āļ™āļ° āļēāļĨāļ›7āļ™āļ° āļĢāļĢāļ˜7āļ™āļ° āļŠāļ˜5āļ™āļ° āđ‚āļŠāļ˜6āļ™āļ° āļŠāļ§5āļ™āļ° āđ€āļŠāļ§6āļ™āļ° āļŠāļēāļ§7āļ™āļ° āļąāļˆ7āļ™āļ° āļąāļŠ7āļ™āļ° āļąāļ7āļ™āļ° āļąāļ’7āļ™āļ° āļąāļ•7āļ™āļ° āļąāļ—7āļ™āļ° āļąāļ›7āļ™āļ° āļąāļŠ7āļ™āļ° āļļāļˆ7āļ™āļ° āļ­āļēāļŠ7āļ™āļ° āļļ7āļ™āļ° 5āļœāļĩ 7āļˆāļģ 5āļ‡āļģ āļŦ6āļ‡āļģ āļ™7āļĢāļģ āļĒ7āļĢāļģ āļĢ7āļĢāļģ āđ‚āļ„7āļĢāļģ āđ„āļž7āļĢāļģ āļ™7āļĒāļģ āļĄ7āļĒāļģ 5āļ‡āļ‡. āļŦ6āļ‡āļ‡ āļ™7āļ‡āļ 5āļŠāļ™. āđ€6āļŠāļ™ āđ‚6āļŠāļ™ 5āļāļĢ. āļą6āļāļĢ āļē7āļ™āļ° āļ–7āļĢāļ° āļē7āļĒāļ. āļē7āļĒāļ™. āļē7āļāļĩ āļē7āļ™āļĩ āļē7āļ§āļĩ āļ›5āđ‚ āļ›6āđ‚āļĒ āļ›6āđ‚āļ  āļ§āļīāļ›7āđ‚āļĒ āļ­āļļāļ›7āđ‚āļ  āļĻ7āļ™āļ° āļĢāļĢ7āļĄāļ° āļ•5āļ–āļĩ āļļāļ•6āļ–āļĩ 5āļšāļ—. āļŠ6āļšāļ— 5āļšāļ–. āļ‚6āļšāļ– āļŠ6āļšāļ– 7āļŸāļđ 7āļĐāļļ 5āļ•āļ°. āļ„6āļ•āļ° āļĢ6āļ•āļ° āļŠāļĢ7āļ•āļ° āļĄāļī7āļœ āļē7āļāļī āļē7āļāļĨ āļī7āļāļĨ. āđŒ7āļāļĨ 5āļ™āļģ āļŦ6āļ™āļģ āļĢāļĩ7āļœ 7āļ“āļļ 5āļ™āļĩ. āļŦ6āļ™āļĩ āļ‰6āļ™āļĩ āļēāļĢ6āļ™āļĩ āļ§āļĩāļŠ6āļ™āļĩ āļŠāļŠ6āļ™āļĩ āļĄāļ—6āļ™āļĩ āļĢāļĄ6āļ™āļĩ āļ™7āļĒāļī āļī5āļĨāļĩ āļļ5āļĨāļĩ āļē7āļĨāļĩ āđ‚āļĄ7āļĨāļĩ āļ—7āļĨāļĩ āļĢ7āļĨāļĩ āļ7āļĒāļ° āļ„7āļĒāļ° āļ›7āļĒāļ° āļ—7āļĒāļ° āļ˜7āļĒāļ° āļ™7āļĒāļ° āļĐ7āļĒāļ° āļē7āļĒāļ° āļī7āļĒāļ° āļ„āļĩ7āļĒāļ° āļ†āļĩ7āļĒāļ° āļ“āļĩ7āļĒāļ° āļ™āļĩ7āļĒāļ° āļĢāļĩ5āļĒāļ° āđ€āļ›āļĢāļĩ6āļĒāļ° āļĄāđ‚āļŦ5 āļī7āļĢāļĩ āļđ7āļĢāļĩ āļŦāļē7āļĢāļĩ āļĄ7āļĢāļĩ. āļ™5āļĢāļĩ. āđ€āļ•7āļĢāļĩ. āļŠ7āļĢāļĩ. āļ–7āļĢāļĩ āļ 7āļĢāļĩ āļ āļĄ7āļĢāļĩ āđ‚āļĄ7āļĢāļĩ āļ āļļāļĄ7āļĢ āļž7āļĢāļĩ. āđ€āļ§7āļĢāļĩ 5āļœāļĨ 5āļ”āļĨ. 5āļĢāļŠ. āļ6āļĢāļŠ āļˆ6āļĢāļŠ āđ‚āļ„6āļĢāļŠ āļ—6āļĢāļŠ āļž6āļĢāļŠ āļ”6āļĢāļŠ 5āļ„āļ™. āļ“7āļŦāļē āļĪāđ…5 āļĪāļē5 .āļĒāļĩāđˆ7 āļē7āļ§āļ° āđ€āļ—7āļžāļĩ āđ€āļ—7āļ§āļĩ āļšāļĢāļĢ7āļˆ āļšāļĢāļĢ7āļ– āļšāļĢāļĢ7āļžāļ• 5āļ—āļ. 5āļ”āļĢ. āļ™7āļ—āļĢ. āļē7āļ—āļĢ. āđ‚āļ„7āļ—āļĢ. āđ‚āļĨ7āļ—āļĢ. āđ‚āļŠ7āļ—āļĢ. 7āļ­āļđ. 5āļžāļĨ. āđ„āļžāļĢāđˆ7 5āļĻāļ. āļ­āļąāļ5 āļ­āļąāļ6āļĄ āļ­āļąāļ7āļĄāļĩ āļĩ7āļ§āļĩ āļđ7āļ§āļĩ āļ–7āļ§āļĩ. āļŠ7āļ§āļĩ. āļ7āļ§āļĩ. āļ™7āļ•āļĩ āļĢ7āļ•āļĩ āļ­7āļ•āļĩ āļē7āļ•āļĩ āļī7āļ•āļĩ āļđ7āļ•āļĩ āļē7āļŠāļĩ āļ“7āļŠāļĩ āļŦ7āļŠāļĩ āđ€āļ§7āļŠāļĩ āļđ7āļŠāļĩ āļī7āļŠāļĩ āļ7āļŠāļĩ āđ‚āļš7āļĨāļē āļđ7āļĨāļē āļ­āļˆ7āļĨāļē āđ€āļ§7āļĨāļē āļšāļīāļ§7āļĨāļē āļĄāļ‚7āļĨāļē āđ€āļ­7āļĨāļē āļĩ7āļĨāļē āđ‚āļĢ7āļĨāļē āđ‚āļ­7āļĨāļē āđ‚āļ‹7āļĨāļē āļī7āļāļ° āļļ7āļāļ° āļ­7āļāļ° āļ™āļ§7āļāļ° āļīāļ“7āļāļ° āđ€āļ 7āļāļ° āļąāļĒ7āļāļ° āļīāļĒ7āļāļ° āļĢāļ˜7āļāļ° āļąāļ7āļāļ° āļąāļ’7āļāļ° āļīāļŠ7āļāļ° āļĻāļ•7āļāļ° āļĄāļĨ7āļāļ° 7āļ—āļļ. āđ‚āļ‹6āļĢ āļ˜6āļ™āļđ āļąāļŠ7āļ”āļļ. āļĢ7āļ„āļ• āļ”āļ‡7āļ„āļ• 5āļāļ‡. āđ€6āļāļ‡ 7āļŽāļ āļ“7āļĄāļĩ āļ§7āļĄāļĩ āļĻ7āļĄāļĩ āļđ7āļĄāļĩ āļĩ7āļ•āļī āļĢāļļ7āļ•āļī āļŠāļļ7āļ•āļī āļŪ7āļ•āļī āļ­āļĢ7āļ•āļī āļ§āļĩāļŠ7āļ•āļī āļ•āļīāļ‡āļŠ7āļ•āļī āļ„āļļāļ›7āļ•āļī āļĄāļļāļ•6āļ•āļī āļ āļąāļ•6āļ•āļī āļ7āļ”āļĩ āļ•7āļ”āļĩ āļž7āļ”āļĩ āļĄ7āļ”āļĩ āļĒ7āļ”āļĩ āļĻ7āļ”āļĩ āļ­5āļ”āļĩ āļē7āļ”āļĩ āļĩ7āļ”āļĩ āļļ7āļ”āļĩ āļļāļ§7āļ”āļĩ āļ”āļīāļš7āļ”āļĩ āļ™āļąāļ7 āļāļļāļ“5 āļāļļāļ“6āļ‘āđŒ 7āļ‹āļĩ. 5āļ—āļĩ. āļˆāļ™6āļ—āļĩ āļĩ7āļĢāļē āļđ7āļĢāļē āđŒ7āļĢāļē āļīāļ•7āļĢāļē āļĄ7āļĢāļē āļĒ7āļĢāļē .āļĄāļ7āļĢāļē āļĢāļš7āļĢāļē āļĨāļīāļ7āļĢāļē āđ€āļŦ7āļĢāļē. 7āļāļŽ. 7āļāļ. 5āļŦāļ° āļ„6āļŦāļ° āļ™āļīāļ„7āļŦāļ° āđ€āļ„7āļŦāļ° āļ—6āļŦāļ° āđ€āļ—7āļŦāļ° āļđ7āļŦāļē āļŽ7āļŦāļē āļ„7āļŦāļē āđ€āļ™7āļŦāļē āđˆ7āļŦāļē 5āļĄāļ° āļĢ6āļĄāļ° āļŦ6āļĄāļ° āļ•6āļĄāļ° 5āļŦāļđ 5āļ”āļģ āļŠ6āļ”āļģ 7āļ„āļģ 5āļŠāļ° āļ§6āļŠāļ° 5āļāļ° āļŠ6āļāļ° 7āļ˜āļ° 5āļžāļĩ. āļĢ6āļžāļĩ āļ—āļĢ7āļžāļĩ āļ›āļ7āļ§āļĩ āļī7āļ”āļē āļĐ7āļš āļĐ7āļ› āļī7āļĢāļ° āļĩ7āļĢāļ° āļđ7āļĢāļ° āļŠ5āļĢāļ° āļīāļ•7āļĢāļ° āļ—āļŦ7āļĢāļ° āļ—7āļĢāļ°. āļļāļ5āļĢāļ°. āļŠāļ§7āļĢāļ° āļąāļŠ7āļĢāļ° āļīāļŠ7āļĢāļ° āđ€āļ›7āļĢāļ° āļ­7āļĒāļē. āđ€āļ7āļĒāļē āļĢāļĢ7āļĒāļē āļŠāļē7āļ§āļ āļī7āļ˜āļī āļļāļ—7āļ˜āļī. āļīāļ—5āļ˜āļī. .āļŠāļīāļ—6āļ˜āļī. āļšāļļāļĢāļīāļĄāļŠāļīāļ—6āļ˜āļī. āđ„āļāļĢāļŠāļīāļ—6āļ˜āļī. āļ›7āļ˜āļī āļ‚āļąāļ”āļŠāļĄāļē6āļ˜āļī āļžāļĒāļē6āļ˜āļī. 5āļĐāļĩ. āļ”6āļ™āļđ āļī7āļ§āļ° āļĩ7āļ§āļ° āļļ7āļ§āļ° āļĩ7āļ§āļ āļĒ7āļ§āļ° āđ€āļ—7āļ§āļ° āđ„āļ—7āļ§āļ° āļąāļ—7āļ§āļ° āļēāļŠ7āļ§āļ° āđ„āļĻ7āļ§āļ° 7āļ–āļ° 7āļĐāļ° 5āļžāļĢ. 5āļœāļ‡ 5āļ˜āļĩ āļē7āļŠāļ° āļī7āļŠāļ° āļĢ5āļŠāļ° āļŠ7āļŠāļ° āđ‚āļ­7āļŠāļ° 5āļ†āļ° 5āļŸāļ° āļē7āļŸāļĩ āļī7āļ–āļĩ āļĢ7āļ–āļĩ 5āļŪāļē 5āļāļĩ 5āļœāļē 5āļŦāļī. āļŠāļīāļ™7āļ˜āļž āļŠāļīāļ™7āļ˜āļļ. āļŠāļīāļ™7āļ˜āļđ 5āļŠāļđ 5āļĻāļ° āļī7āļĨāļ° āļļ7āļĨāļ° āļđ7āļĨāļ° āļĒ7āļĨāļ° āļ”7āļĨāļ° .āļ§āļŠ7āļĨāļ° āļ­āđ€āļˆ7āļĨ āđ€āļ•7āļĨāļ° āđˆ7āļĨāļ° āļ™7āļ—āļ° āļ—7āļ—āļ° āļŠ7āļ—āļ° āļ™7āļ•āļļ. āļĢāļĢ6āļ•āļļ āļĄāļē7āļ•āļĪ āļī7āļĢāļž āļē7āļĢāļž. āđ„āļ7āļĢāļž 5āļĻāļļ. āļē7āļ–āļē āļē7āļŠāļž āļž7āļŠāļž āļļ7āļ‚āļĩ 7āļŠāļ­. āļē7āļ”āļ° 5āļšāļ°. 5āļĒāļĩ. āļŦ6āļĒāļĩ 5āļāļĩ. 5āļŦāļ. āļ‡7āļ­āļĢ. āļĄ7āļ­āļĢ. āļĩ7āļ§āļĢ āļŠ7āļ§āļĢ. āļžāļđ7āļ™āļ— 5āļˆāļĢ. āđ‚6āļˆāļĢ. 7āļĻāļž. āđ‚āļ›7āļĨāļĩ 7āļ āļž. 7āļ™āļž. 7āļ“āļž. āļē7āļĢāļ. āļ—āļ7āļĢāļ āļĒ7āļĢāļ. āļĒāļ§7āļĢāļ. 5āļĄāļĨ. āļļ5āļšāļĨ. āđ‚āļĨ7āļšāļĨ. 5āļŠāļĨ. 5āļŠāļ. 7āđ‚āļž 5āļ“āļđ 7āļ›āļĩ. āļē7āļšāļĩ. 5āļāļ°. āļē7āļŽāļĩ 5āļ›āļ°. āļ‰6āļ›āļ° āļŠ6āļ›āļ° āļđ7āļĨāļđ 5āļ•āļđ. 5āļĒāļđ. 7āļ†āļĩ. āļī7āļˆāļĩ āļĩ7āļˆāļĩ āļļ7āļˆāļĩ āļđ7āļˆāļĩ āđ€āļ§7āļˆāļĩ 5āļĻāļĩ. 5āļĄāļ™. 5āļĒāļ­. āļœ6āļĒāļ­. 5āļŠāļ‡. 7āļŠāļĢ. 5āļ”āļ. āļŠ6āļ”āļ 7āđ‚āļ. āļ7āļ āļē7āļĄāļ. 5āļ‹āļ­ āļē7āļ‚āļ° āļđ7āļ‚āļ° āļŠ5āļ‚āļ° āļĢ7āļĐāļē 5āļ āļ° āļĻ7āļ  āļī7āļĨāļ āļļ7āļŽāļĩ āļĻāļē5āļ‚ 5āļŠāļē. āļą6āļŠāļē 7āļ‹āļđ 5āļĐāļ. āļĐ7āļāļĩ 5āļ”āļĄ. āļŠ6āļ”āļĄ āļ”7āļĨāļĄ. āļŠ7āļĨāļĄ. āļ§7āļĨāļĄ. āļĩ7āļĨāļĄ. 5āļĻāļĨ. āļ™āļī7āļĒāļ• 7āļ‡āļđ 5āļˆāļ°. āļē7āļŠāļ. āđ‚āļ›7āļŠāļ 5āļĒāļĻ. 5āļ˜āļ. 5āļāļš. 7āļ„āļđ. āļŠ5āļĄāļē. 5āđāļĨ. 5āļžāļ. āđ‚āļŠ7āļ  āļĢāļĢ6āļ”āļī. āļē7āļ§āļ. āļ™7āļ™āļĢ. 5āļˆāļ­. 5āļˆāļš. 5āļ„āļš. 5āļ‰āļĨ. āļĄ7āļĢāļĄ āļ­āļš7āļĢāļĄ āļī7āļĢāļĄ. āļĩ7āļĢāļĄ. 5āļ‹āļ™. 5āļ”āļ­. 5āļāļī. āļ‹āļđ7āļ‹āļļ āļ‹āļđ7āļŪāļ 5āļšāļŠ. āļ™7āļĢāļ™. āļ•āļ7āļĨāļ‡ āļĄ7āļ•āļ™ āļ•āļąāļ§7āļ•āļ™ āļĩ7āļ§āļ‡ āļĻ7āļ§āļ‡. āđāļ•āļĢ7āļ§āļ‡ āđāļ§āļ”7āļ§āļ‡ āļē7āļ‘āļđ 5āļŦāļ”. āļ­āļš7āļ™āļš āļ™āļē7āļ„āļĢ. āļĩ7āļ‘āļē āļđ7āļ”āļđ āļē7āļĢāļ . āļē7āļ āļĨ7āļĢāļš. āļ§7āļĢāļš. āļ­7āļĢāļš. āļē7āļĢāļ“. āļ™7āļĒāļ‡ āļĄ7āļĒāļ‡ āļļ7āļĒāļ‡ āļī7āļĒāļ‡ āļī7āļĒāļ™ āļŦāļē7āļžāļ™ āļē7āļ‡āļī āļŠ7āļĢāļ–. āļ™7āļĢāļ–. āļŠ7āļĢāļ–. āļąāļ™7āļ˜āļĢ. āļĄāļ“7āļ‘āļ āļĄāļ“7āđ‚āļ‘ āļĄāļĢ7āļāļ• āļĄāļĢ7āļ‘āļ› āļĒāļ­āļ”7āļ­āļ āđ‚āļĨāđˆāļ‡7āļ­āļ āļĒāļ·āļ”7āļ­āļ āļŦ7āļŦ 5āļ—āļ”. āļ§7āļ™āļĄ. āļ—āļž7āļ™āļĄ. āđ‚āļ„7āļ™āļĄ āļĐ7āļŽāļĢ. āļī7āļ›āļļ āļī7āļ›āļđ āļĩ7āļĢāļ­. āļĒ7āļĨāļģ āļ­7āļĨāļģ āđ‰7āļĨāļģ āļ™7āļ—āļĄ. āļ›7āļ—āļĄ. āļ§āļ7āļ§āļ™ āļ­āļĨ7āļ§āļ™ āļī7āļˆāļĨ. āļŠ7āļāļ° āļĩ7āļ‚ āļĻāļĩāļĨ7 5āļ˜āļĄ. āļŠāļĄ7āļĢāļ” āļŠāļąāļ7āļ§āļē āļŠāļąāļ›7āļ” āļŠāļąāļ›7āļ— āļē7āļŠāļĄ. āļ­7āļŠāļĄ. āļē7āļ™āļĨ. āļĩ7āļĢāļļ āļđ7āļĢāļļ āđ€āļ™7āļĢāļļ āļ‡7āļŦāļĨ āļŠāļĩāļŦ7āļ™āļļ 5āļ āļĢ. 5āļˆāļ”. āļš7āļĒāļ. āļ”āļī7āļĻāļĢ āļĢ7āļĻāļĢ āļ­āļž7āļĒāļž āļĢ7āļŠāļĢ. āļĢāļŠ7āļāļē āļĨāļŠ7āļāļē āļ­āļēāļˆ7āļ­āļ‡ āļĩ7āļĄāļđ āļ­āļķāļ‡7āļ­āļĨ āļļ7āļŠāļļ āļļ7āļŠāļ . āđ€āļ7āļŠāļē āđ€āļ7āļĻāļē āļŠ7āļ•āļ. āļš7āļ•āļ. āđ€āļ‚7āļŽāļ° āļŦ7āļ“āļĩ āļ­7āļ›āļ™. āļĒ7āļŠāļĄ. āđ€āļšāļ·āđ‰āļ­āļ‡7 5āļ„āļ° āļ‡7āļ­āļ­. āļ­7āļ­āļ­. āđ€āļĢāļ·āļ­7āļ˜ āđ€āļĢāļ·āļ­7āļš āđ€āļĨāļĩāđ‰āļĒāļ§7 5āļāļ. āđ€6āļāļ āļ­7āļ‚āļ­. āļē7āļāļ­. āđāļ”7āļ§āļđ āļš7āļĒāļĨ. āđ‚āļ‰7āđ€āļ āđ‚āļ”7āļĄāļĢ āđ‚āļ•7āļĄāļĢ 7āđ‚āļœ āđ‚āļ—7āđ‚āļŠ āđ‰7āļ›āļ”. 7āļ„āļĩ. āđ‚āļĒ7āļ™āļ. āđ‚āļŠ7āļĄāļĄ 7āļŽāļŠ. āļ•7āļ–āļī 7āđ‚āļŪ āđƒāļˆ7 5āļŸāļ‡ āđ„āļŠ7āđ‚āļĒ 5āļžāļ•. āļāļĢāļĢ7āļāļĻ āļĨ7āļšāļ. āļĻ7āļĒāļ›. āļē7āļ™āļ™. āļļ7āļŽāļē āļđ7āļāļē āļē7āļĄāļ­. āļ—7āđ‚āļ— āļļ7āļ—āļŠ āļˆāđˆāļē7āļĢ āļŽ7āļŦāļĩ āļē7āļ’āļ° āļ˜āļ•7āļĢāļ āļ—7āļ„āļĨ. āļ•7āļ–āļĢ. āļī7āļāļī āļ›7āļœāļ° āļžāļĪ7āļĐāļ . āļī7āļ˜āļļ āļē7āļŽāļ. āļŦ7āļŠāļī āļ7āļāļī. āļĐ7āļāļī. āļĻāļīāļĐ7āļŽāļī āļĐ7āļāļĩ 5āļĐāļŠ. āļī7āļ›āļī āļđ7āļĢāļī. āļ‘7āļ‘āļļ āļĐ7āļāļļ āļē7āļ•āļē āļ§7āļ•āļ āļ‡7āļ•āļ āđ€āļ6āļ•āļļ. āļŠ7āļ•āļļ āļĨāļī7āļšāļ‡ 7āļ­āļļ. āļīāļĻ7āļĢāļē āļĐ7āļ­āļĢ āļŠ6āļĢāļē. āļ”7āļŠāļ° āđ‚āļš7āļĢāļī āļ›6āļ—āļē. āļĨ7āļĄāļĩ āļĄ7āļ„āļ” āļĩ7āļŠāļ› āļĢ7āļĨāļ° āļ—āļŠ7āļĨāļē āļŠ7āđ‚āļ‹ āļ‹7āļŸāļĩ",
+ ["data"]=".āļŠāļĩ5āļ§āļą .āļ—āļąāļĻāļ™āļđ5 .āļ—āļĩāđˆ3 .āļšāļ—1 .āļĢāļ‡4 .āļĢāļēāļĒ3 .āļĨāļģ3 .āļŠāļ™5āļ— .āļŠāļđ3āļ• .āđƒāļš3 2āļ1āļ āļ4āļāļĄ āļāļ4āļŠ 2āļ1āļ‚ āļ4āļ‚āļ„ āļāļ‚5āļ„āļ“ āļ4āļ‚āļŠ āļāļ‚5āļŠāļē āļ4āļ‚āļ“ āļ5āļ‚āļ“āļ° āļ5āļ‚āļ“āļē āļ4āļ‚āļš āļāļ‚5āļšāļļ āļ4āļ‚āļ  āļāļ‚5āļ āļą āļ4āļ‚āļĄ āļ5āļ‚āļĄāļą āļāļ‚5āļĄāļē āļāļ‚5āļĄāļđ āļāļ‚5āļĨāļē āļāļ‚5āļĻāļą āļ4āļ‚āđ€ āļāļ‚5āđ€āļ— āļāļ‚5āđ€āļ§ āļ4āļ‚āđŒ āļ1āļ„ āļāļ‡5āļšāļ§ āļ1āļˆ āļ1āļŠ 2āļāļ‹ āļāļ5āļˆāļ™ āļāļŽ5āļŦāļĄ āļāļŽ5āđ€āļ āļāļ5āļŦāļĄ āļ5āļ”āļīāļ™ āļ1āļ• āļ4āļ•āļ” āļāļ•5āļ”āļī āļ4āļ•āļŠ āļ4āļ•āđ€ āļ1āļ— āļ1āļ™ āļ4āļ™āļ” āļ4āļ™āļ˜ āļ1āļš āļ1āļ› āļāļ›4āļĢ āļ1āļž āļ1āļŸ āļ1āļĄ āļ4āļĄāļĄ āļāļĄ5āļĨāļē āļ4āļĄāļŠ āļ4āļĄāđ€ āļāļĒ5āļĄāļļ āļ3āļĒāđ‰ āļāļĢ5āļāļŽ āļ5āļĢ5āļ“āļą āļāļĢ5āļ•āđ‹ 1āļ4āļĢāļĢ āļāļĢ5āļĢāļē āļāļĢ5āļĨāļē āļ5āļĢāļēāļ„ āļ5āļĢāļīāļ™āļ— āļ4āļĢāļđ āļāļĢ5āđ„āļŸ āļāļĨ5āļ™āļ„ āļāļĨ5āļšāļī āļāļĨ5āļĄāļŦ āļ2āļ§ āļ5āļ§āļąāļ• āļ5āļĐāļ“āļ™ āļ3āļĐāļ“āļ° āļ5āļĐāļ“āļē āļ5āļĐāļĄāļē āļ5āļĐāļĄāļĩ āļāļĐ5āđ€āļ— āļ1āļŠ āļāļŠ4āļ™ āļ4āļŠāđ‚ āļ1āļŦ āļāļ­5āļ­āļī āļāļ°5āļ–āļą āļāļ°5āļœāļĨ 4āļāļ°āļĢ 1āļāļą 1āļāļē āļāļē5āļāļ° āļāļē5āļ”āļđ āļāļē5āļ™āļĩ āļāļē5āļ™āđ‰ āļāļē5āļšāļ­ āļāļē5āļāļē āļāļē5āļĢāđˆ āļāļģ5āļ”āđ‰ āļāļģ5āļ—āļ­ āļāļģ5āļœāļĨ 1āļāļī āļāļī5āļāļ° āļāļī4āļ• āļāļī5āļ™āļĩ āļāļĩ5āļĢāļ“ āļāļĩ5āļĢāļ• āļāļĩ5āļŠāļ– 1āļāļļ āļāļļ5āļ‡āļ­ āļāļļ5āļŠāļī āļāļļ5āļŽāļļ āļāļļ5āļĄāļļ āļāļļ5āļĢāļĢ āļāļļ5āļĨāļĩ āļāļļ5āđāļŦ 1āļāļđ āļāļđ5āļ›āļĢ āļāļđ5āļĢāļ‚ āļāļđ5āļĢāļĄ āļāļđ5āļĨāļī āļ1āđ€ āļ1āđ āļ1āđ‚ āļ1āđ„ āļāđˆ5āļāļ­ āļāđˆ5āļšāđ‰ āļāđˆ5āļ›āđˆ āļāđŒ5āļ—āđ‡ āļ‚2 āļ‚āļĄ5āļŦāļī 4āļ‚āļĨāļē āļ‚āļ­5āļ‚āļĄ āļ‚āļ­5āļ‡āđ‰ āļ‚āļ­5āļ­āļ  1āļ‚āļą 1āļ‚āļē āļ‚āļē5āļāđŠ āļ‚āļē5āļ—āļ™ āļ‚āļī5āļ›āļŠ āļ‚āļĩāđ‰1 āļ‚āđˆ5āļĄāļļ āļ‚āđˆ5āļŦāļ‡ āļ‚āđ‰āļēāļ§3 āļ„1āļ„ āļ„āļŠ5āļŠāļĩ āļ„āļŠ5āđ€āļŠ āļ„āļŠ5āđ€āļĄ āļ„4āļ“āļī āļ„4āļ—āļĢ āļ„āļ—5āļĢāļĩ āļ„āļ—5āļ§āļ­ āļ„āļ™5āļĒāļ­ 4āļ„āļ™āļī āļ„āļ›5āļ‹āļđ āļ„āļ›5āļœāļ 3āļ„āļĄāļ™ āļ„āļĄ5āļŸāļĢ āļ„āļĄ5āļĨāļ­ 2āļ„āļĒ āļ„āļĢ5āļ‹āļ­ āļ„āļĢ5āļ™āļ­ āļ„āļĢ5āļ™āļĩ āļ„āļĢ5āļžāļ™ āļ„āļĢ5āļŸāļī āļ„āļĢ5āļĄāđ€ āļ„āļĢ5āļĢāđ‰ āļ„āļĢ5āļĨāļī āļ„āļĢ5āļŦāļē 4āļ„5āļĢāļąāļ āļ„5āļĢāļēāļ• āļ„āļĪ5āļŦāļš āļ„āļĪ5āļŦāļē āļ„āļĪ5āđ‚āļ† āļ„āļĨ5āļ„āļđ āļ„2āļ§ āļ„āļ§5āļ—āļ­ 3āļ„āļ§āļē 2āļ„āļŠ āļ„āļŠ5āļ•āļī āļ„āļŦ5āļāļĢ āļ„āļŦ5āļ™āļī āļ„āļŦ5āļšāļ” āļ„āļŦ5āļŠāļ– 3āļ„āļ­āļ™ 3āļ„āļąāļ™ 1āļ„āļē āļ„āļē5āļ›āļđ āļ„āļē5āļžāļˆ āļ„āļē5āļžāļĒ āļ„āļē5āļĢāļ§ āļ„āļē5āļ§āļˆ āļ„āļģ5āļ”āļĩ āļ„āļģ5āđ‚āļ­ āļ„āļģ5āđ„āļ āļ„āļĩ5āļĢāļĩ 1āļ„āļļ āļ„āļļ5āļ“āļđ āļ„āļļ5āļĨāļĩ 4āļ„āļļāđŒ āļ„āļđ5āļ›āļ­ āļ„āļđ5āļĨāļ­ 2āļ„1āđ€ āļ„1āđ‚ 2āļ„āđŒ āļ„āđŒ5āļˆāļģ 1āļ†āļē āļ†āļē5āļ“āļą āļ†āļĩ5āļĒāļ āļ‡1āļ āļ‡4āļāļŦ āļ‡āļāļ°4āļĢ āļ‡4āļāđ€ āļ‡4āļāđŒ āļ‡1āļ‚ āļ‡4āļ‚āļ āļ‡4āļ‚āļ• āļ‡1āļ„ āļ‡4āļ„āļˆ āļ‡4āļ„āļŠ āļ‡4āļ„āļ āļ‡4āļ„āļ˜ āļ‡4āļ„āļš āļ‡4āļ„āļ› āļ‡āļ„5āļ§āļą āļ‡4āļ„āļĻ āļ‡4āļ„āđ‚ āļ‡āļ†5āļ›āļĢ āļ‡āļ†5āļŠāļ  āļ‡āļ†5āđ€āļ– āļ‡āļ†5āđ€āļ  āļ‡1āļ‡ āļ‡4āļ‡āđ€ āļ‡1āļˆ āļ‡1āļ‰ āļ‡1āļŠ āļ‡4āļŠāļĩ āļ‡1āļ‹ āļ‡1āļ” āļ‡1āļ• āļ‡1āļ— āļ‡1āļ™ āļ‡āļš5āļ”āļļ āļ‡1āļ› āļ‡1āļœ āļ‡1āļž āļ‡1āļĄ āļ‡1āļĒ āļ‡1āļĢ āļ‡1āļĨ āļ‡1āļ§ āļ‡4āļ§āđ€ āļ‡1āļŠ āļ‡āļŠ5āļāļĨ āļ‡āļŠ5āļāļļ āļ‡4āļŠāļš āļ‡4āļŠāļž āļ‡āļŠ5āļžāļĒ āļ‡4āļŠāļ  āļ‡1āļŦ āļ‡āļŦ5āļ™āļē āļ‡4āļŦāļš āļ‡āļŦ5āļšāļą āļ‡āļŦ5āļĢāļē 1āļ‡āļē āļ‡āļē5āļŠāđ‰ āļ‡āļē5āļĢāļģ āļ‡āļđ5āļŠāļ§ āļ‡1āđ€ āļ‡1āđ āļ‡1āđ‚ āļ‡1āđ„ āļ‡āđˆ5āļ‡āļ­ āļˆ1āļˆ āļˆ4āļˆāļ§ āļˆ1āļ‰ āļˆāļ”5āļˆāđˆ āļˆāļ•5āļˆāļģ āļˆāļ•5āļĄāļđ āļˆāļ›4āļ āļˆāļĄāļš5āļž 3āļˆāļĢāļī āļˆāļ­5āļ‡āļ­ 1āļˆāļą 1āļˆāļē āļˆāļē5āļĄāļĢ āļˆāļē5āļĄāļĩ āļˆāļē5āļĢāļķ āļˆāļģ5āļ—āļ§ āļˆāļģ5āļ­āļ§ 1āļˆāļī āļˆāļī5āļˆāļđ āļˆāļī5āļ•āļ­ āļˆāļĩ5āļ”āļĩ āļˆāļļ5āļ‘āļē āļˆāļļ5āļŠāļĄ āļˆ1āđ€ āļ‰2 āļ‰āļ5āļ‰āļ§ āļ‰āļ4āļĐ āļ‰āļ—5āļ—āļī āļ‰āļĢ5āļ‰āļī 1āļ‰āļą 1āļ‰āļē āļ‰āļē5āļāđŠ āļ‰āļē5āļžāļĒ āļŠ1āļŠ āļŠ1āļŒ āļŠ4āļŒāļ āļŠ4āļŒāļ† āļŠ5āļ™āļĩāļ 4āļŠāļ™āđŒ āļŠāļŸ5āļĢāļ­ āļŠāļŸ5āđ‚āļĢ āļŠāļĢ5āļāļĨ āļŠāļĢ5āļĢāļī āļŠāļĢ5āļĪāļ āļŠāļĢ5āļŦāļĨ āļŠāļĢ5āļŦāļķ āļŠāļĢ5āļ­āļļ āļŠāļ§4āđ‚ āļŠāļ­āļ‡4 1āļŠāļą 1āļŠāļē āļŠāļē2āļ• āļŠāļē5āļ•āļĢ āļŠāļē5āļ›āļĩ āļŠāļē5āļĄāļ• āļŠāļē5āļĒāļ• āļŠāļē5āļŠāļ‡ āļŠāļģ5āļ‡āļą āļŠāļī5āļ™āļĩ āļŠāļī5āļĢāļ“ āļŠāļī5āđāļ āļŠāļĩ5āļœāļ° āļŠāļĩ5āļœāđ‰ āļŠāļĩ5āļŸāļ­ āļŠāļĩ5āļĢāļ“ 3āļŠāļĩāļ§ āļŠāļĩ5āļ§āļ™ āļŠāļļ5āļ•āļī āļŠāļļ5āļĨāļ” āļŠāļđ5āļ›āļ āļŠāļđ5āļ›āļ– āļŠāļđ5āļ›āđ‚ āļŠāđˆ5āļ­āļī āļŠāđ‰5āļŠāļ­ āļŠāđ‰5āđ„āļ” āļ‹āļ™5āļ—āļĢ āļ‹5āļĢāļēāļĄ āļ‹āļĨ5āļŸāļĩ 1āļ‹āļą 1āļ‹āļē āļ‹āļē5āļŠāļđ āļ‹āļē5āļĄāļđ 1āļ‹āļī āļ‹āļī5āļ•āļĢ āļ‹āļī5āļŸāļī āļ‹āļī5āđāļĨ āļ‹āļĩ5āļ”āļĩ āļ‹āļĩ5āļ™āļĩ āļ‹āļĩ5āļĢāļē āļ‹āļĩ5āļĢāļī āļ‹āļĩ5āļĢāļĩ āļ‹āļĩ5āļĢāđ‡ āļ‹āļĩ5āļĨāļĩ āļ‹āļđ5āļ‹āļđ āļ‹āļđ5āļšāļī āļ‹āļđ5āļĢāļī āļ‹āļđ5āļĨāļī āļ‹āļđ5āļŪāļē āļ‹1āđ€ āļ‹1āđ‚ āļ‹āđˆ5āļ‡āđˆ āļ‹āđˆ5āļ‹āđ‰ 1āļ‹āđˆāļē āļ‹āđŒ5āļ„āļĨ āļāļˆ5āļ”āļļ āļ4āļˆāļ™ āļ5āļˆ5āļ™āļ— āļ5āļˆ5āļ™āļš āļ5āļˆāļ™āļē āļāļˆ5āļšāļĢ āļ5āļˆ5āļĄāļš āļāļˆ5āļĢāļ‡ āļāļˆ5āļ§āļĩ āļāļˆ5āļĻāļĩ āļ4āļ‰āļ™ āļ1āļŠ āļ1āļ āļāļ›āļĢāļ°4 1āļāļē āļāļē4āļ• āļāđˆ5āļšāđ‰ āļ1āļ āļ4āļāļš āļāļī5āļ—āļī āļāļī5āļ›āļ— āļāļī5āļ›āļļ āļāļī5āļŠāļ™ āļāļī5āļŠāļ§ āļ4āļ āļą āļāļĄ5āļŒāļē āļāļĄ5āļžāļĒ āļāļĄ5āļĪāļ 1āļāļē āļāļē5āļ™āļĩ āļāļļ5āļŠāļļ āļ‘āļē5āļĄāļ“ āļ‘āļē5āļŠāļ– 3āļ‘āļđāļĢ āļ’āļī5āļŠāļ  āļ’āļī5āļŠāļĄ āļ“1āļ‘ āļ“4āļ‘āļ āļ“4āļ‘āļ† āļ“4āļ‘āļ™ āļ“5āļ‘āļ™āļ° āļ“4āļ‘āļš āļ“4āļ‘āļĄ āļ“āļ‘5āļĨāļē āļ“4āļ‘āļŠ āļ“5āļ‘āļŠāļ āļ“āļ‘5āļŠāļ– āļ“5āļ‘5āļŠāļĩ āļ“āļ‘5āđ‚āļĨ āļ“4āļ‘āđŒ āļ“āļĒ5āļĢāļą āļ“1āļĢ āļ“4āļ§āļē āļ“āļŠāļĄ4 āļ“āļŦ5āļžāļĨ āļ“āļŦ5āļ āļđ 1āļ“āļē āļ“āļē5āļ›āļĩ 1āļ“āļī 1āļ“āļĩ āļ“āļĩ5āļŠāļ‡ āļ“āļđ5āļ›āđ‚ āļ”1āļ āļ”4āļāļ‡ āļ”4āļāļ” āļ”āļ5āļ”āļ· āļ”4āļāđ€ āļ”4āļāđ āļ”1āļ‚ āļ”1āļ„ āļ”āļ‡4āļ„ āļ”āļ‡5āļ­āļ­ āļ”1āļŠ āļ”4āļŠāļ™ āļ”5āļŠāļ™āļ° āļ”1āļ” āļ”4āļ”āđ€ āļ”1āļ• āļ”1āļ— āļ”1āļ› āļ”1āļž āļ”āļĢ5āļĨāļī āļ”3āļĢāđ‰ āļ”1āļŠ āļ”4āļŠāļ āļ”1āļŦ 1āļ”āļą āļ”āļąāļŠ5āļ• 1āļ”āļē āļ”āļē5āļĄāļļ āļ”āļē5āļĢāļ āļ”āļē5āļŠāļ§ āļ”āļģ5āļĪāļĐ āļ”āļī5āļ—āļ­ āļ”āļī5āļ—āļī āļ”āļī4āļš āļ”āļī5āļ§āļĢ āļ”āļī5āļĻāļ§ āļ”āļĩ5āļ”āļĩ 3āļ”āļĩāļ™ āļ”āļĩ5āļāđˆ āļ”āļĩ5āļĢāļ­ āļ”āļĩ5āļĨāļī āļ”āļĩ5āļ§āļĩ āļ”āļĩ5āļŦāļĄ āļ”āļĩ5āļŦāļ§ āļ”āļđ5āļ–āļđ āļ”āļđ5āļ›āļ­ āļ”āļđ5āļĢāļą āļ”āļđ5āļŦāļĄ āļ”āļđ5āđāļ„ āļ”1āđ€ āļ”1āđ āļ”1āđ‚ āļ”āđ‰5āļĒāļī 2āļ”āđŒ āļ”āđŒ5āļŠāļ› 2āļ•āļ āļ•āļ5āļĢāđ‰ āļ•1āļ„ 2āļ•1āļŠ 2āļ•1āļ• āļ•4āļ•āļ  āļ•4āļ•āļŠ āļ•4āļ•āđ‚ āļ•5āļ–āļāļ° āļ•āļ–5āļāļī āļ•3āļ–āļē āļ•5āļ–āļļāļ› āļ•5āļ–āļļāļĻ āļ•āļ–5āđ€āļĨ āļ•āļ—āļąāļĻāļ™āļđāļ›5 2āļ•āļ™ āļ•āļ™5āļŸāļ­ āļ•āļ™5āļ§āļĢ āļ•4āļ™āļēāļ˜ 2āļ•1āļš āļ•4āļšāļŠ āļ•āļš5āļŠāļ§ āļ•āļ›5āļ™āļĩ āļ•1āļ  2āļ•āļĒ 4āļ•āļĢāļ āļ•āļĢ5āļ‡āļ­ āļ•āļĢ5āļˆāļĩ āļ•āļĢ5āļˆāļļ 4āļ•āļĢāļ āļ•āļĢ5āļ•āļĢ āļ•āļĢ5āļ—āļ§ āļ•āļĢ5āļœāļĨ āļ•āļĢ5āļāļĢ āļ•āļĢ5āļžāļĨ āļ•āļĢ5āļĢāļ‡ āļ•āļĢ5āļĨāļ” āļ•5āļĢāļīāļĒāļē āļ•4āļĢāļđ 2āļ•āļĢāđŒ āļ•āļĪ5āļ•āļĩ āļ•āļĨ5āļĢāļą āļ•1āļŠ āļ•4āļŠāļ„ āļ•āļŠ5āļ§āļē āļ•āļŠ4āđ€ āļ•4āļŠāđ āļ•āļŠ5āđāļ• āļ•āļ­5āļĄāđˆ āļ•āļ°5āđƒāļ  1āļ•āļą 1āļ•āļē āļ•āļē5āļāļĨ āļ•āļē5āļāļ§ āļ•āļē5āļ™āļķ āļ•āļē5āļ›āļĢ āļ•āļē5āļ›āļĨ āļ•āļē5āļœāļī āļ•āļē5āļŸāļđ āļ•āļē3āļĄāļŦ āļ•āļē5āļĄāļ­ āļ•āļē5āļĄāļ° āļ•āļē5āļŽāļĩ 3āļ•āļīāļ. āļ•āļī5āļˆāļđ āļ•āļī5āļŠāđˆ āļ•āļī5āļ—āļī āļ•āļī5āļ™āļĢ āļ•āļī5āļšāļ­ āļ•āļī5āļĄāļĻ āļ•āļī5āļĄāļŠ āļ•āļī5āļĄāļ­ āļ•āļī5āļĒāļĄ 4āļ•āļīāđŒ āļ•āļĩ5āļ‚āļĨ āļ•āļĩ5āļ„āļđ āļ•āļĩ5āļ•āļ· āļ•āļĩ5āļĢāļ§ āļ•āļĩ5āļĨāļą 3āļ•āļĩāđ‰. āļ•āļļ5āļ•āļ– āļ•āļļ5āļ—āļŠ āļ•āļļ5āļ›āđˆ āļ•āļļ5āļĄāļŦ āļ•āļļ5āļĢāļ āļ•āļļ5āļĨāļą āļ•āļļ5āļŠāļ” āļ•āļđ5āļ”āļī āļ•1āđ€ āļ•3āđāļĨ āļ•1āđ‚ āļ•āđˆ5āļ–āļē āļ•āđˆ5āļ§āđˆ āļ•āđˆ5āļŠāļ§ āļ•āđ‰5āļāđ‹ āļ•āđ‰5āļ•āļ­ āļ•āđ‰5āļāļļ āļ•āđ‹5āđ€āļ• āļ•āđŒ5āļ„āļĨ āļ•āđŒ5āļŸāļđ āļ•āđŒ5āļĻāļ• āļ–4āļāļī āļ–āļ”5āļ–āļ­ āļ–āļĄ5āļ–āļ· āļ–āļĨ5āđ„āļ– āļ–āļ§5āđ„āļĄ āļ–āļ°5āļ–āļą āļ–4āļēāļ˜ āļ–āļē5āļ§āļĢ āļ–4āļĩāļĒ āļ–āļĩ5āļĨāļī 3āļ–āļļāļ™ āļ–āđˆ5āļ–āļ­ āļ–āđˆ5āļ–āļē 4āļ—āļāļē āļ—āļ„5āļ•āļī āļ—āļ„5āļ™āļĩ āļ—āļ”5āļĢāļ­ āļ—āļ”5āļĨāļ­ āļ—āļ˜5āļ„āļĒ āļ—5āļ˜āļŠāļ° āļ—āļ˜5āļŽāļĩ āļ—āļ˜5āļ›āļ āļ—āļ˜5āļžāļĢ āļ—āļ˜5āļĢāļą āļ—āļ˜5āļĻāļ• āļ—āļ˜5āļŠāļĩ āļ—āļ˜5āļ­āļ‡ āļ—5āļ˜āļīāļ āļ—5āļ˜āļīāļŠ āļ—5āļ˜āļīāļš āļ—5āļ˜āļīāļ› āļ—5āļ˜āļīāļœ āļ—5āļ˜āļīāļž āļ—5āļ˜āļīāļ  āļ—5āļ˜āļīāļĢ āļ—5āļ˜āļīāļĪ āļ—5āļ˜āļīāļĻ āļ—5āļ˜āļīāđ‚ āļ—āļ˜5āđ€āļˆ āļ—āļž5āļ˜āļī āļ—āļž5āļĒāļļ āļ—āļŸ5āļĨāļ­ 2āļ—āļĒ āļ—5āļĒāļēāļ™ āļ—āļĢ5āļ„āļ• āļ—āļĢ5āļ„āļĢ āļ—āļĢ5āļŠāļī āļ—āļĢ5āļ˜āļ™ 3āļ—āļĢāļĢ āļ—āļĢ5āļŠāđ‚ āļ—āļĢ5āļŦāļ§ āļ—āļĢ5āļŦāļķ 1āļ—āļĢāļē āļ—5āļĢāļēāļ 4āļ—5āļĢāļēāļŦ 1āļ—āļĢāļĩ āļ—āļ§5āļ—āļŦ āļ—āļ§5āļŠāļ– āļ—āļĻ5āļ—āļī āļ—āļĻ5āļ§āļĢ āļ—āļŠāļ™5āļ— āļ—āļŠ5āđ‚āļ āļ—āļŦ5āļ§āļą āļ—āļŦ5āļŽāļī 1āļ—āļą 1āļ—āļē āļ—āļē5āļāļī āļ—āļē5āļ’āļī āļ—āļē5āļ™āļ­ āļ—āļē5āļĄāļĢ āļ—āļē5āļĢāļž āļ—āļģ5āļ‚āļ§ āļ—āļģ5āļ‹āđ‰ āļ—āļģ5āļ—āđˆ āļ—āļģ5āđ‚āļ— āļ—āļī5āļ†āļą āļ—āļī5āļāļī āļ—āļī4āļž āļ—āļī5āļžāļē āļ—āļī5āļ§āļ‡ āļ—āļĩ5āļ™āļ§ āļ—āļĩ5āļ™āļĩ āļ—āļĩ5āļĢāļē āļ—āļļ5āļ„āļ• āļ—āļļ5āļĨāļą āļ—āļļ5āļĻāļĩ 1āļ—āļđ āļ—āļđ5āļ™āđˆ āļ—1āđ€ āļ—āđŒ5āļ”āļ­ 1āļ˜āļĢ 4āļ˜āļĢāļŠ 4āļ˜āļĢāļą 1āļ˜āļē āļ˜āļē1āļĢāļ“ āļ˜āļī5āļĪāļ— āļ˜āļī5āļĻāļĩ āļ˜āļī5āļŠāļĄ āļ˜āļĩ5āļĢāļĩ āļ˜āļļ5āļ”āļ‡ āļ˜āļļ5āļĨāļĩ āļ˜āļđ5āļ›āļ™ āļ™1āļ āļ™4āļāļ„ āļ™4āļāļ› āļ™āļ5āļĒāļđ āļ™āļ5āļĢāļđ āļ™1āļ‚ āļ™āļ‚5āļĨāļī āļ™1āļ„ āļ™āļ„5āļĢāļī āļ™1āļˆ āļ™4āļˆāļ­ āļ™āļˆ5āļ­āļ™ āļ™1āļŠ āļ™4āļŠāļ āļ™1āļ‹ āļ™1āļ” āļ™4āļ”āļĢ āļ™1āļ• āļ™āļ•5āļāļ§ āļ™5āļ•āļāļ° āļ™āļ•5āļ”āļī āļ™4āļ•āļ— āļ™āļ•5āļ—āļī āļ™āļ•5āļ›āļī āļ™4āļ•āļ  āļ™5āļ•āļĢāļ° āļ™5āļ•āļĢāļą āļ™3āļ•āļĢāļē āļ™5āļ•5āļĢāļī āļ™āļ•5āļĪāļ” āļ™3āļ•āļī āļ™5āļ•āļļāļ āļ™5āļ•āļļāļ āļ™4āļ•āđŒ āļ™āļ–5āļ˜āļļ āļ™āļ–5āļĢāļˆ āļ™āļ—5āļ‚āļĩ āļ™āļ—5āļ™āļ™ āļ™5āļ—āļ™āļ° āļ™āļ—5āļœāļĨ āļ™āļ—4āļĒ āļ™5āļ—āļĢāļ‡ āļ™5āļ—āļĢāļĨ āļ™5āļ—āļĢāļą āļ™5āļ—āļĢāļļ āļ™āļ—5āļĪāļ āļ™5āļ—āļĨāļē āļ™5āļ—āļ§āļĒ āļ™3āļ—āļ­ āļ™1āļ—āļī āļ™3āļ—āļĩ āļ™āļ˜5āļāļĢ āļ™5āļ˜āļāļ° āļ™5āļ˜āļ™āļ° āļ™5āļ˜āļļāļ āļ™5āļ˜āļļāļĢ āļ™5āļ˜āļļāļ§ āļ™5āļ˜āļļāļĻ āļ™āļ˜5āđ„āļĄ āļ™1āļ™ āļ™4āļ™āļ• āļ™4āļ™āļ— āļ™4āļ™āļĢ āļ™1āļš āļ™āļš5āļ™āļ­ āļ™1āļ› āļ™4āļ›āļˆ āļ™āļ›5āļˆāļđ āļ™4āļ›āļ— āļ™1āļž āļ™āļž5āļ›āļŽ āļ™āļž5āļĻāļđ āļ™āļ 5āļĻāļđ āļ™5āļĒāļ™āļ• āļ™3āļĢāļē āļ™āļĪ5āļ„āļŦ āļ™āļĪ5āļ›āđ€ āļ™āļĪ5āđ€āļ— āļ™āļĪ5āđ€āļš āļ™1āļĨ āļ™4āļĨāļĨ āļ™āļ§5āļĢāđˆ āļ™1āļĻ āļ™āļĐ5āļāļĢ āļ™1āļŠ āļ™4āļŠāļ‹ āļ™4āļŠāļŠ āļ™āļŠ5āđāļ” āļ™4āļŠāđ‚ āļ™1āļŦ āļ™āļ­5āļāļ° 3āļ™āļ­āļ™ 1āļ™āļą 1āļ™āļē āļ™āļē4āļ„āļĢ āļ™āļē5āļ“āļą āļ™āļē5āļ›āļĢ āļ™āļē5āļĢāļĒ āļ™āļē5āļ§āļ• āļ™āļē5āļ§āļĨ āļ™āļē5āļŠāļ“ āļ™āļē5āļŠāļ™ āļ™āļē5āļŠāļ§ āļ™āļē5āļŽāļī 4āļ™āļēāļ° 1āļ™āļī āļ™āļī5āļˆāļđ āļ™āļī5āļ”āđ‰ āļ™āļī5āļŸāļ­ āļ™āļī5āļĄāļ™ āļ™āļī5āļĒāļĄ āļ™āļī5āļĒāļē āļ™āļī5āļĢāļ­ āļ™āļī5āļĨāļļ āļ™āļī5āļ§āļĢ āļ™āļī5āļŠāļ‡ āļ™āļī5āļŠāļ– āļ™āļī5āļŠāļĩ āļ™āļī5āđāļ” āļ™āļĩ5āļĄāļĩ āļ™āļĩ5āļĄāļđ 1āļ™āļļ āļ™āļļ5āļžāļĒ 1āļ™āļđ 2āļ™1āđ€ āļ™1āđ āļ™1āđ‚ āļ™1āđ„ āļ™āđˆ5āļ­āļĩ 3āļ™āđ‰āļ­ 1āļ™āđ‰āļģ āļ™āđŒ5āļŠāđ„ āļš1āļ āļš4āļāļĐ āļšāļāļīāļŠ5 āļš4āļāđ āļš1āļ‚ āļš1āļ„ āļš4āļ„āļ— āļšāļ„5āļ—āļĩ āļš4āļ„āđ‚ 1āļšāļ”āļĩ āļš1āļ— āļšāļš5āļ‰āļš āļšāļš5āļāļķ āļšāļš5āļ­āļĒ āļš1āļ› āļš1āļž āļšāļĢ5āļĄāļĩ āļš1āļŠ āļš4āļŠāļš āļšāļŠ4āđ€ āļš1āļŦ āļšāļ­5āļ”āļĩ āļšāļ­5āļĢāļ° 3āļšāļ­āļĨ 1āļšāļą āļšāļąāļžāļžāļēāļŠāļ™āļĩ5 1āļšāļē āļšāļēāļˆ5āļĢ āļšāļē4āļ• āļšāļē5āļ•āļ­ āļšāļē2āļ— āļšāļē5āļ—āļē āļšāļē5āļ—āļļ āļšāļē5āļĢāļ™ āļšāļē5āļĢāļ­ āļšāļē5āļŠāļĄ āļšāļī5āļŠāļ­ āļšāļĩ5āļ„āļī āļšāļĩ5āļĢāđˆ 1āļšāļļ āļšāļļāļ„3 āļšāļļ5āļ•āļĢ āļšāļļ5āļ–āļļ āļšāļļ5āļĢāļž 1āļšāļđ āļšāļđ4āļŠ5āļ™ āļšāļđ5āļ•āļī āļšāļđ5āļĒāđˆ āļš1āđ€ āļš1āđ āļš1āđ‚ āļšāđŠ5āļˆāļĩ āļšāđŠ5āđ€āļš āļ›āļ4āļŠ āļ›4āļˆāļą āļ›4āļˆāļē āļ›āļ5āļ›āļ— āļ›āļ5āļžāļĩ āļ›āļ•5āļ–āļ āļ›āļ•5āļžāļĨ āļ›4āļ—āļē āļ›1āļ› āļ›4āļ›āđ€ āļ›āļĄ5āļ”āđ‰ āļ›4āļĒāļļ āļ›āļĢ5āļ•āļ­ āļ›āļĢ5āļ•āļī āļ›āļĢ5āļ•āļĩ āļ›āļĢ5āļ•āļļ āļ›āļĢ5āļœāļą āļ›āļĢ5āļĐāļ“ 1āļ›āļĢāļ° āļ›āļĢ5āđāļ āļ›āļĢ5āđāļ— āļ›āļĢ5āđ„āļŸ āļ›āļĨ5āļāļ§ āļ›4āļ§āļē āļ›āļŠ4āļ• 1āļ›āļą 1āļ›āļē āļ›āļē5āļāļ āļ›āļē5āļ“āļ āļ›āļē5āļ™āļĩ āļ›āļē5āļ›āļī āļ›āļēāļĢ4 āļ›āļē5āļĢāđ€ āļ›āļī5āļ”āļ­ āļ›āļī5āļ”āļī āļ›āļī5āļĒāļ  āļ›āļī5āļĒāļ­ āļ›āļī5āļŦāļ āļ›āļĩ5āļŠāļĩ āļ›āļĩ5āļĄāļ° āļ›āļĩ5āļŽāļ āļ›āļĩāđˆ3 āļ›āļļ5āļ„āļĨ āļ›āļļ5āļ–āļļ āļ›āļđ5āļˆāđ‹ āļ›āļđ5āļ•āļī āļ›1āđ€ āļ›1āđ„ āļœāļ5āļœāļą āļœāļ“āļī5āļĻ āļœāļ™5āļœāļą āļœ4āļ™āļī āļœ4āļĒāļē āļœāļĨ5āļžāļĨ āļœāļĨ5āđ„āļĄ āļœ4āļŠāļē āļœāļĩ5āļ”āļī āļœāļĩ5āļ•āļ­ āļœāļĩ5āļ–āđ‰ āļœāļĩ5āļŦāđˆ āļœāđ‰āļē3 3āļāļ­āļĒ āļāļĩ5āļĄāļ° āļāđˆ5āļāļą 3āļžāļˆāļ™ āļžāļˆ5āļ™āļĩ āļžāļŠ5āļ‰āļĨ āļžāļŠ5āļĢāļē āļžāļ—5āļĢāļī āļžāļ—āļąāļ4 āļžāļ™5āļ—āļ° āļž4āļ™āļą āļžāļ™āļī4 āļž1āļž 2āļž2āļĒ āļžāļĒ5āļāđŠ āļžāļĢ5āļŠāļĒ āļžāļĢ5āļ‹āļĩ āļžāļĢ5āļĄāļĩ 1āļžāļĢāļĢ āļž4āļĢāļđ āļžāļĢ5āđ„āļŸ 3āļžāļĪāļ āļžāļĪ5āļ’āļē āļžāļĨ5āļ—āļī āļžāļĨ5āļĢāđˆ āļžāļŠ5āđ€āļŸ āļžāļ­5āļ„āļ§ āļžāļ­5āļŠāļĄ 1āļžāļą 1āļžāļē 4āļžāļēāļˆ āļžāļē5āļŠāļ™ āļžāļē5āļ™āļĢ 1āļžāļī āļžāļī5āļ–āļą āļžāļī5āļ–āļĩ āļžāļī5āļ›āļĨ āļžāļī5āļĢāļ­ āļžāļī5āļĢāļĩ āļžāļī5āļĨāļķ āļžāļī5āļĻāļļ āļžāļīāļŠ5āļĄ āļžāļĩ5āļĢāļ° āļžāļļ5āļŠāļī āļžāļļ5āļžāļ­ āļžāļđ5āļ—āļ§ āļžāļđ5āļžāļ­ āļž1āđ€ āļž4āđ€āļĒ āļžāđˆ5āļ›āđŠ āļžāđˆāļ­3 āļžāđ‰5āļ—āđ‰ 2āļžāđŒ āļžāđŒ5āļ”āļĩ 1āļŸāļą 1āļŸāļē āļŸāļī4āļĨāļē āļŸāļĩ5āļŸāđˆ āļŸāļđ5āļŸāđˆ āļŸ1āđ€ 1āļŸāđ‰ āļ āļ„5āļ—āļĢ āļ āļ„3āļ§ āļ āļŠ5āļ™āļĩ 1āļ āļą 1āļ āļē āļ āļē5āļ“āļ āļ āļē5āļ“āļ§ āļ āļē5āļĢāļ” āļ āļē5āļĢāļ• āļ āļē5āļĢāļĒ āļ āļē5āļ§āļ™ āļ āļī5āļŠāļ™ āļ āļī5āļĄāļŦ āļ āļī3āļĢ āļ āļī5āļŠāļĄ āļ āļļ5āļŠāļ‡ 1āļ āļđ āļ āļđ5āļāļē āļ āļđ5āļĢāļī āļĄ1āļ āļĄ4āļāļĄ āļĄ4āļāļĐ āļĄ1āļ‚ āļĄ4āļ‚āļĨ āļĄ1āļ„ āļĄ4āļ„āļ„ āļĄ4āļ„āļ­ āļĄāļ„5āļ­āļī 1āļĄāļ‡āļ„āļĨ āļĄāļ‡5āļŸāļ­ āļĄ1āļˆ āļĄ1āļŠ āļĄāļŠ4āļ§ āļĄ1āļ‹ 3āļĄāļ“āļ‘ āļĄāļ“5āļ‘āļ™ āļĄāļ“5āļšāļĢ āļĄāļ“5āļžāļĢ āļĄāļ“5āđ€āļ‘ āļĄāļ“5āđ€āļž āļĄāļ”5āļĒāļ­ āļĄāļ”5āļĨāļđ āļĄ1āļ• āļĄ4āļ•āļ˜ āļĄ4āļ•āļī āļĄ4āļ•āđ„ āļĄāļ•5āđ„āļ• āļĄ1āļ— 3āļĄāļ™āļ•āļĢ āļĄāļ™5āļŪāļą āļĄ4āļ™āļļ āļĄ1āļš āļĄāļš4āļž āļĄ1āļ› āļĄāļ›4āļŠ āļĄāļ›5āļĪāļ” āļĄāļ›5āļĪāđ… āļĄ4āļ›āđŒ āļĄ1āļž āļĄ4āļžāļ āļĄ4āļžāļ§ āļĄ1āļ  āļĄāļ 5āļāļ– āļĄ1āļĄ āļĄ4āļĄāđ€ āļĄ4āļĄāđ‚ āļĄāļĒ5āļĢāļē 3āļĄāļĢāļĢ āļĄ3āļĢāļą āļĄ3āļĢāļī āļĄāļĪ5āļ„āļī āļĄāļĪ5āđ€āļ„ āļĄāļĨ5āļ—āļī āļĄ3āļĨāļī āļĄ3āļĨāđ‰ āļĄ1āļ§ āļĄāļ§5āļĄāļ­ āļĄ4āļ§āļĨ āļĄ1āļŠ āļĄāļŠ4āđ€ āļĄāļŦ5āļāļĢ āļĄ3āļŦāļ™ āļĄāļŦ5āļ āļē āļĄ5āļŦāļēāļ āļĄ5āļŦāļēāļĒ āļĄāļŦāļē3āļŠ āļĄāļ­5āļ‚āļ§ āļĄāļ­5āļ„āļĢ āļĄāļ­5āļ”āļđ āļĄāļ­5āļ•āļģ āļĄāļ­5āļ™āļ§ āļĄāļ­5āļ™āļ­ āļĄāļ­5āļĢāļ° 4āļĄāļ­āļą āļĄāļ°5āļ–āļą āļĄāļ°5āļāđˆ āļĄāļ°5āļŪāļ­ 1āļĄāļą āļĄ4āļąāđˆ 1āļĄāļē āļĄāļē4āļ āļĄāļē5āļ”āļĢ āļĄāļē5āļ™āļĢ āļĄāļē5āļ›āđˆ āļĄāļē5āļžāļˆ āļĄāļē5āļĄāļ āļĄāļē5āļĄāļļ āļĄāļē5āļĄāđˆ āļĄāļē5āļĒāļ“ āļĄāļē5āļĒāļ­ āļĄāļē5āļĢāđˆ āļĄāļē3āļ§4 1āļĄāļī āļĄāļī5āļāļ  āļĄāļī5āļ‹āļĢ āļĄāļī5āļ•āļĨ āļĄāļī5āļ–āļī āļĄāļī5āļ™āđˆ āļĄāļī5āļŸāļĨ āļĄāļī5āļĨāļģ āļĄāļī5āļĨāļĩ āļĄāļī5āđāļž āļĄāļĩ5āļ‚āļĄ 3āļĄāļ·āļ” 1āļĄāļ·āļ­. āļĄāļļ5āļ—āļ° āļĄāļļ5āļ—āļą āļĄāļļ5āļ—āļī āļĄāļļ5āļ—āļļ āļĄāļļ5āļŪāļą āļĄāļđ5āļ‹āļĩ āļĄāļđ5āļ›āđˆ āļĄāļđ5āļĢāļ• āļĄāļđ5āļĨāļī āļĄāļđ5āļŦāļĒ āļĄāļđ5āļŦāļĢ āļĄāļđ5āļŪāļą āļĄāļđ5āđāļ” āļĄāļđ5āđāļœ āļĄāļđ5āđāļŪ āļĄ1āđ€ āļĄ1āđ āļĄ1āđ‚ āļĄ1āđ„ āļĄ4āđˆāļē 3āļĄāđ‰āļē āļĄāđŒ5āļ āļī āļĒāļ5āļĒāđˆ āļĒ1āļāļĢ āļĒ4āļ5āļĢāđ‰ āļĒ1āļ„ āļĒāļ‡5āļšāđˆ āļĒāļ‡5āļāđ‰ āļĒāļ‡5āļ­āļĒ āļĒāļˆ5āļ„āļĢ āļĒāļ”5āļĒāđ‰ āļĒ1āļ• āļĒ1āļ— āļĒ1āļ˜ āļĒāļš5āļĢāđ‰ āļĒ1āļ› āļĒ1āļž āļĒ1āļ  āļĒāļĄ5āļĒāļ­ āļĒāļĄ5āļĢāļē āļĒāļĄ5āļŦāļē āļĒāļĄ5āļ­āļĩ āļĒ4āļĄāļī āļĒ1āļĒ āļĒāļĒ4āļŠ āļĒāļĢ5āļ–āļĩ āļĒ5āļĢāļšāļą āļĒāļĨ5āđ„āļ— āļĒāļ§5āļ‚āđ‰ āļĒāļ§5āļˆāđŠ āļĒāļ§5āļ”āļ­ āļĒāļ§5āļ™āļĩ āļĒāļ§5āļĒāđˆ āļĒāļ§5āļĢāļą āļĒāļ§5āđ„āļŠ āļĒ1āļĻ āļĒ1āļŠ āļĒ1āļŦ āļĒ4āļŦāļ āļĒāļŦ5āļāļē āļĒ4āļŦāļ› āļĒāļŦ5āļ›āļĢ āļĒāļ­5āļšāļĩ āļĒāļ­5āļĢāļĄ 1āļĒāļą 1āļĒāļē āļĒāļē5āļāļĪ āļĒāļē5āļāļ§ āļĒāļē5āļ‰āļļ āļĒāļē5āļ“āļĄ āļĒāļē5āļ“āļ§ āļĒāļē5āļ–āđˆ āļĒāļē5āļšāļĢ āļĒāļē5āļŠāļĨ āļĒāļē5āļŠāļĩ āļĒāļē5āļŽāļą āļĒāļģ5āļ—āļ§ āļĒāļĩ5āļĢāļē 1āļĒāļļ āļĒāļļ5āļ„āļĨ āļĒāļļ5āļ•āļ 4āļĒāļļāļ  āļĒāļļ5āđāļĒ āļĒāļļ5āđāļŦ āļĒāļđ5āļ–āļī āļĒāļđ5āļŸāđˆ āļĒāļđ5āļĢāļī āļĒāļđ5āđ„āļ™ āļĒ1āđ€ āļĒ1āđ āļĒ1āđ‚ āļĒāđŒ5āļāļĨ āļĒāđŒ5āļ–āđˆ āļĒāđŒ5āļĄāļ™ āļĒāđŒ5āļŦāļ™ 2āļĢāļ āļĢāļ5āļ‹āļ­ āļĢāļ5āļ‹āļķ āļĢāļ5āļ‹āđ‰ āļĢ1āļāļĢ āļĢāļ5āļĢāļē āļĢāļ5āļĢāđ‰ āļĢāļ„5āļžāļ§ āļĢāļ‡5āļžāļĒ āļĢāļ‡5āļĢāļ­ āļĢāļˆ5āļ–āļĢ āļĢāļ“5āļ„āļ” āļĢāļ“5āļ•āļĢ āļĢāļ“5āļ–āļą āļĢāļ“5āļžāļĪ āļĢāļ“5āļŠāļ– āļĢ5āļ“āļēāļ āļĢāļ“āļđ5āļ› 4āļĢāļ“āđŒ āļĢ1āļ” āļĢ4āļ”āļ› āļĢ4āļ”āđ āļĢ4āļ”āđ‚ āļĢ4āļ”āđ„ āļĢāļ”5āđ„āļ­ āļĢāļ–1 āļĢāļ–5āļžāļĒ āļĢ1āļ— āļĢ4āļ—āļĪ āļĢāļ—5āļĪāļ” āļĢ4āļ—4āļ§ āļĢāļ—5āļ§āļī āļĢāļ˜5āļ‚āļķ āļĢāļ˜5āļŠāļĢ āļĢāļ˜5āđ€āļ āļĢāļ™5āļ—āļļ 4āļĢāļ™āļē āļĢ1āļš āļĢ4āļšāļ„ āļĢ4āļšāļ– āļĢāļš5āļ–āđ‰ āļĢ4āļšāļĄ āļĢ4āļšāļą āļĢ4āļšāđ„ āļĢāļš5āđ„āļ āļĢ1āļ› āļĢ4āļ›āļ“ āļĢ5āļžāļŠāļē āļĢ5āļž5āļŠāļī āļĢāļž5āļ—āļī āļĢ1āļ  āļĢ4āļ āļĒ āļĢāļĄ5āļĢāļ­ āļĢāļĄāļēāļ§5 āļĢāļĄ4āđ€āļŦ āļĢ4āļĒāļą āļĢāļĢ4āļ āļĢāļĢ5āļ„āļē āļĢāļĢ5āļˆāļ– āļĢāļĢ5āļˆāļ§ āļĢāļĢ5āļŠāļī āļĢāļĢ5āļ“āļķ āļĢāļĢ5āļ–āļē āļĢāļĢ5āļĒāļ‡ āļĢāļĢ5āļĒāđ€ āļĢāļĢ3āļĨ āļĢāļĢ5āļŦāļē āļĢāļĢ5āđāļ— āļĢāļĢ5āđāļŠ āļĢāļĢ5āđ„āļ āļĢāļĢ5āđ„āļ• āļĢāļĨ5āļ­āļ­ āļĢāļĻ5āļ™āļĩ āļĢāļĐ5āļāļī āļĢāļĐ5āļ•āļĢ āļĢ1āļŠ āļĢ4āļŠāļ āļĢ4āļŠāļŠ āļĢ4āļŠāđ€ āļĢ4āļŠāđ‚ āļĢ3āļŦāļī āļĢāļ°1 āļĢāļ°5āļŠāļē āļĢāļ°5āļŦāļ 5āļĢāļąāļ‡āļŠ 3āļĢāļąāļ 1āļĢāļąāļ• āļĢāļē5āļāļ āļĢāļē5āļāļĪ āļĢāļē5āļāļ§ 1āļĢāļēāļŠ āļĢāļē5āļŠāļđ āļĢāļē5āļ”āļĢ āļĢāļē5āļ”āļ§ āļĢāļē5āļ”āļđ āļĢāļē5āļĄāđˆ āļĢāļē5āļ§āļ“ āļĢāļē5āļŠāļ‡ āļĢāļē2āļŦ āļĢāļē5āļŦāļļ āļĢāļģ5āļ‡āļą āļĢāļģ5āļˆāļ§ āļĢāļī5āļāļ­ āļĢāļī5āļ‹āļķ āļĢāļī5āļ•āļĢ āļĢāļī5āļ—āļķ 4āļĢāļīāļž āļĢāļī5āļĄāļ™ 4āļĢāļīāļĒāļˆ 4āļĢāļīāļĒāļĒ 4āļĢāļīāļĢ āļĢāļī5āđāļĨ 4āļĢāļīāđˆ āļĢāļĩ5āļ„āļđ āļĢāļĩ5āļ‘āļē āļĢāļĩ5āļ”āļđ āļĢāļĩ5āļ•āļĢ āļĢāļĩ5āļ•āļ­ āļĢāļĩ5āļĄāļđ āļĢāļĩ5āļĢāļą āļĢāļĩ5āļĢāļē āļĢāļĩ5āļĢāļī āļĢāļĩ5āļĨāļą āļĢāļĩ5āļĨāļī āļĢāļĩ5āļĨāđˆ āļĢāļĩ5āļŠāļ­ āļĢāļĩ5āļŠāļ° āļĢāļļ5āļāļ§ āļĢāļļ5āļ‚āļĢ āļĢāļļ5āļ„āļĢ āļĢāļļ5āļ—āļ§ āļĢāļļ5āļ˜āļī āļĢāļļ5āļĄāļļ āļĢāļļ5āļ§āļ™ 1āļĢāļđ āļĢāļđ5āļ—āļĩ āļĢāļđ5āļ™āļĩ āļĢāļđ5āļšāļī āļĢāļđāļ›5āļ āļĢāļđ5āļ›āļī āļĢāļđ5āļĄāļē āļĢāļđ5āļĄāļđ āļĢāļđ5āļŦāļĢ 2āļĢ1āđ€ āļĢ1āđ‚ āļĢāđˆ5āļāļ° āļĢāđˆ5āļ•āļĢ āļĢāđˆ5āļĢāđˆ āļĢāđˆ5āļŦāļĨ āļĢāđŒ5āļāļ­ āļĢāđŒ5āļāļĩ āļĢāđŒ5āļ„āļą āļĢāđŒ5āļ”āļī āļĢāđŒ5āļ•āļī āļĢāđŒ5āļ•āļđ āļĢāđŒ5āļ—āļī āļĢāđŒ5āļŸāļ­ āļĢāđŒ5āļŸāļđ āļĢāđŒ5āļĨāļĩ āļĢāđŒ5āļ§āļ­ āļĪ4āļ”āļē āļĪāļ›4āđ€ āļĪāļĐ5āļŽāļĩ āļĪāļŦ5āļšāļ” āļĨ5āļāļ™āļ° āļĨāļ5āļĨāļē āļĨāļ5āļ§āļą āļĨ3āļāļ­ āļĨ4āļāļąāļĒ āļĨāļ‚5āļ„āļ“ āļĨāļ‚5āļŦāļĄ āļĨāļŠāļĩ4 āļĨāļ”5āļĢāļ° āļĨāļ”5āļĨāļī āļĨ4āļ”āļē āļĨ1āļ• āļĨ4āļ•āļŸ āļĨāļ•5āļŸāļ­ āļĨāļš5āļ•āļ° āļĨāļš5āļĄāļļ āļĨāļš5āļĨāđ‰ āļĨāļš5āđ„āļŠ āļĨāļ›5āļ•āļ­ āļĨāļĄ5āļ‡āļ§ āļĨ3āļĄāļ­ 2āļĨāļĒ āļĨ1āļĨ āļĨ4āļĨāđŒ āļĨ3āļ§āļĩ āļĨāļ§5āđ„āļŦ āļĨāļŠ5āđ„āļ• āļĨāļŦ5āļāļļ āļĨāļ­āļ5āļĨ āļĨāļ­5āļˆāļĩ āļĨāļ­5āļŠāļĢ āļĨāļ°5āļœāļĨ 1āļĨāļąāļāļĐ āļĨāļē5āļāļĨ āļĨāļē5āļ™āļĩ āļĨāļē5āļšāļĢ āļĨāļē5āļ›āđ‹ āļĨāļē5āļžāļ­ āļĨāļē5āļĄāļĩ 3āļĨāļēāļĢ āļĨāļē5āļĢāļ­ āļĨāļē5āļĢāđ‰ āļĨāļē5āļĪāļ āļĨāļē5āļŠāđ‰ āļĨāļī5āļāđˆ āļĨāļī5āļˆāļđ āļĨāļī5āļ‹āļķ āļĨāļī5āļ•āļ­ āļĨāļī5āļ™āļ­ āļĨāļī5āļ™āđˆ āļĨāļī4āļš āļĨāļī5āļšāļē āļĨāļī5āļŸāļ­ āļĨāļī5āļĄāļđ āļĨāļĩ5āļ•āļ° 3āļĨāļĩāļ™ āļĨāļĩ5āļœāļĨ āļĨāļĩ5āļĨāļē āļĨāļĩ5āļ§āļđ āļĨāļļāļ5āļĢ āļĨāļļāļ5āļĨ āļĨāļļ5āļĨāđˆ āļĨāļđāļ1 āļĨāļđ5āļ‹āļĩ āļĨāļđ5āļ—āļĩ āļĨāļđ5āļĄāļī āļĨāļđ5āļĨāļ­ āļĨāļđ5āļ­āļ­ 2āļĨ1āđ€ 2āļĨ1āđ āļĨ1āđ‚ āļĨāđˆ5āļ•āļī āļĨāđˆ5āļ—āļĩ āļĨāđˆ5āļŦāļĨ āļĨāđˆ5āļ­āļ­ āļĨāđ‰5āđ‚āļž āļĨāđŒ5āļŠāļ• āļ§3āļāļĢ āļ§āļ5āļ§āđˆ āļ§5āļāļēāļĢ āļ§1āļ„ 1āļ§āļ‡āļĻ āļ§āļˆ5āļ•āļĢ āļ§āļˆ5āļŠāļ­ āļ§āļŠ5āļ™āļĩ āļ§āļ”5āļ–āđˆ āļ§āļ”5āļĄāļ§ āļ§āļ”5āļĒāļī āļ§āļ”5āļĢāļ° āļ§āļ”5āļĨāļē āļ§āļ”5āļĨāđ‰ āļ§āļ”5āļ­āđ‰ āļ§1āļ• āļ§4āļ•āļ‰ āļ§āļ™5āļ–āļĩ āļ§āļ™5āļ—āđ‰ āļ§āļ™5āļœāļŠ āļ§āļ™5āļĢāļ§ āļ§āļ™5āļĢāđˆ āļ§āļ™5āļ­āļī āļ§āļ™5āļ­āļļ āļ§āļš5āļĒāļ­ āļ§āļš5āļĢāļ§ āļ§āļš5āļĢāļą āļ§āļš5āļŪāļē āļ§1āļ› āļ§1āļž āļ§āļĄ5āļĢāļ­ āļ§3āļĄāļđ āļ§āļĒ5āļāđ‰ āļ§āļĒ5āļˆāļĩ āļ§āļĒ5āļĢāļī āļ§āļĒ5āļĢāļ· āļ§āļĒ5āļĨāđ‰ āļ§āļĒ5āđ„āļ— āļ§āļĒ5āđ„āļĄ āļ§āļĢ5āļ˜āļī āļ§āļĢ5āļĄāļ“ āļ§āļĢ5āļĄāļŦ āļ§4āļĢāļĒ 1āļ§āļĢāļĢ4 āļ§4āļĢāđŒ āļ§āļĨ5āļĢāļ° āļ§āļŠ5āļ›āļ­ āļ§1āļŦ āļ§āļ­5āļŠāļī 1āļ§āļą āļ§āļąāļ™3 āļ§āļąāļ™āļ•5 āļ§āļąāļ™āļ—4 1āļ§āļē āļ§āļē5āļ”āļ° āļ§āļē4āļ• āļ§āļē5āļ•āļ āļ§āļē5āļ•āļī āļ§āļē5āļ™āļĢ āļ§āļē5āļ™āļķ āļ§āļē5āļšāļĢ āļ§āļē5āļĄāļ™ āļ§āļē5āļĢāļ“ āļ§āļē5āļŠāļ™āļ° āļ§āļē4āļŦ āļ§āļē5āļŦāļ™ āļ§āļē5āļŦāļī 1āļ§āļī āļ§āļī5āļāļĨ āļ§āļī5āļāļŠ āļ§āļī5āļ„āļŦ āļ§āļī5āļˆāļļ āļ§āļī5āļ”āļĩ āļ§āļī5āļ•āļ āļ§āļī5āļ•āļĢ āļ§āļī5āļ•āļĩ āļ§āļī5āļ–āļĩ 3āļ§āļīāļ— āļ§āļī5āļ—āļī āļ§āļī5āļ˜āļļ āļ§āļī5āļ˜āļđ āļ§āļī5āļ›āļ āļ§āļī5āļ›āļ āļ§āļī5āļ›āļĨ āļ§āļī5āļ›āļ§ āļ§āļīāļ āļđ5 āļ§āļī5āļĄāļĨ āļ§āļī5āļĢāļ‡ āļ§āļī5āļ§āļĢ āļ§āļī5āļĻāļĢ āļ§āļī5āļĻāļļ āļ§āļī5āļĐāļļ āļ§āļī5āļŠāļĢ āļ§āļī5āļŠāļĪ āļ§āļīāđ€āļĨ5 āļ§āļĩ5āļ„āļđ āļ§āļĩ5āļŠāļ™ āļ§āļĩ5āļ”āļī 1āļ§āļļ āļ§1āđ€ āļ§1āđ āļ§1āđ‚ āļ§āđˆ5āļŦāđ‰ āļ§āđ‰5āļŠāļ· āļ§āđ‰5āļ—āļļ āļ§āđ‰5āļĨāļē āļ§āđŒ5āļĨāļī āļĻ1āļˆ āļĻāļ™5āļ­āļļ āļĻāļžāļī4 3āļĻāļĢāļĩ āļĻ2āļ§āļĢ āļĻāļĐ5āļ‹āđ‰ āļĻāļĐ5āđ€āļ āļĻāļĐ5āđ€āļŦ 1āļĻāļą āļĻāļąāļ5āļĢ 1āļĻāļē2 āļĻāļē5āļāļē āļĻāļē5āļ‚āļš āļĻāļē5āļ™āļļ āļĻāļē5āļ āļī āļĻāļē5āļĢāļĒ āļĻāļē5āļĢāļą āļĻāļē5āļĢāļī āļĻāļē5āļĨāļē 1āļĻāļī āļĻāļī5āļĢāļž āļĻāļī5āļĢāļ§ āļĻāļī5āļĻāļĩ 1āļĻāļķ āļĻāļļ5āļāļĨ āļĻāļđ5āļĨāļī āļĻāđ€āļˆ5āļĢ āļĐ3āļŽāļē āļĐāļ5āļ āļ„ āļĐ5āļĄāļ“āļĩ āļĐ4āļĄāļē 1āļĐāļą 1āļĐāļē āļĐāļē5āļ„āđ€ 1āļĐāļī āļĐāđŒ5āļžāļĒ āļŠāļ5āļĨāļī āļŠāļ5āļĨāļķ āļŠāļ5āļ§āļą āļŠāļ5āļ§āļē āļŠ4āļāļē 4āļŠ4āļāļļ āļŠāļ‚5āļšāļļ āļŠāļ‡5āļ‚āļĨ āļŠ1āļ‹ āļŠ5āļ”āļīāļ āļŠ5āļ”āļīāļ™ āļŠ5āļ”āļīāļ  āļŠ5āļ”āļīāļĄ āļŠāļ•5āļ—āļī āļŠ3āļ•āļĢāļē 2āļŠāļ•āđŒ āļŠāļ–5āļ§āļĩ 4āļŠāļ–āđŒ āļŠāļ™5āļ˜āļĒ āļŠāļ™5āļ˜āļī āļŠ5āļ™āļĩāļĒāļ° āļŠ4āļ™āļļ āļŠāļ™āļđāļ›5 āļŠ4āļ›āļē āļŠāļž5āļ•āļī āļŠ2āļĄ āļŠāļĄ5āļ”āļļ 3āļŠāļĄāļš āļŠāļĄ5āļœāļŠ āļŠāļĄ5āļœāļļ āļŠāļĄ5āļœāđ€ āļŠāļĄ5āļĒāļ­ āļŠāļĄ5āļĪāļ” āļŠāļĄ5āļĪāļ• āļŠāļĄ5āļŦāļ§ āļŠ5āļĄāļąāļ— āļŠ5āļĄāļąāļ™ āļŠāļĄāļļ4 āļŠāļĢāļĢ5āļŠ āļŠāļĢ5āļĨāļ­ āļŠāļĨ5āļšāļĢ āļŠāļ§4āļ āļŠāļ§5āļĒāļĄ āļŠ4āļ§āļĢ āļŠāļ§5āļĢāļī āļŠ4āļ§āļē 4āļŠāļ§āļī āļŠ1āļŠ āļŠāļŦ5āļāļĢ āļŠāļŦ5āļāļē āļŠāļŦ5āļŠāļē āļŠāļŦ5āļ˜āļĢ āļŠāļŦ5āļ›āļĢ āļŠāļŦ5āļžāļą āļŠāļŦ5āļ āļē āļŠāļŦ5āļĢāļē āļŠāļŦ5āļĻāļķ āļŠāļ­5āļžāļĨ āļŠāļ­5āļžāļ­ āļŠāļ°5āđƒāļ  1āļŠāļą āļŠāļąāļāļ›āļĢāļ°5 āļŠāļąāļ™3āļ– āļŠāļąāļĄ3 1āļŠāļē āļŠāļē5āļ„āđ€ 4āļŠāļēāļ˜ āļŠāļē5āļ™āļķ āļŠāļē5āļĄāļ™ āļŠāļē5āļĄāļĩ āļŠāļē5āļ§āļž āļŠāļģ5āļ­āļ­ āļŠāļģ5āđ‚āļĢ 1āļŠāļī āļŠāļī5āļ–āļī āļŠāļĩ5āļ‚āđ‰ āļŠāļĩ5āļŠāļ­ āļŠāļĩ5āļ”āļ§ āļŠāļĩ5āļ•āļĨ āļŠāļĩ5āļ•āđ‚ āļŠāļĩ5āļ–āđˆ āļŠāļĩ5āļœāļķ āļŠāļĩ5āļāļļ āļŠāļĩ5āļĨāļ° āļŠāļĩ5āļĨāļą āļŠāļĩ5āļ§āļĨ 1āļŠāļļ āļŠāļļ5āļāļĢ āļŠāļļ5āļāļģ āļŠāļļ5āļāļĩ āļŠāļļ5āļ‚āļī āļŠāļļ5āļ‚āļļ āļŠāļļ5āļ„āļ• āļŠāļļ5āļ„āļĢ āļŠāļļ5āļ™āļĩ āļŠāļļ5āļšāļĢ āļŠāļļ5āļšāļī āļŠāļļ5āļ›āļĢ āļŠāļļ5āļĄāļ™ āļŠāļļ5āļŠāļ‡ āļŠāļļ5āđ„āļŦ 2āļŠāļļāđŒ 1āļŠāļđ āļŠ1āđ€ āļŠ4āđ€āļŸ āļŠ1āđ‚ āļŠ4āđ‚āļ āļŠ4āđ‚āļ„ 3āļŠāđˆāļ§ āļŠāđˆ5āđ„āļ„ āļŠāđ‰5āļāļĢ āļŠāđ‰5āļ•āļī āļŠāđ‰5āđ„āļ 2āļŠāđŒ āļŠāđŒ5āļŦāļĒ āļŦ2 2āļŦ1āļ āļŦāļ5āļĢāļ° āļŦāļ5āļĨāđ‰ 5āļŦāļāļēāļĢ āļŦāļ‡4āļŠ āļŦāļ‡5āļŠāļē āļŦāļĪ5āļŦāļĢ āļŦāļĪ5āđ‚āļŦ āļŦāļĨ5āļŠāļ° āļŦāļ­5āļ„āļ­ āļŦāļ­5āļŠāļĄ 1āļŦāļą āļŦāļē5āļāļ āļŦāļē5āļšāļž āļŦāļē5āļ›āļ“ āļŦāļē5āļžāļĢ āļŦāļē5āļĢāļ· āļŦāļē5āļĪāļ āļŦāļī5āļĢāļ āļŦāļī5āļĻāļ§ āļŦāļļ5āļ„āļđ āļŦāļđ5āļāļĢ āļŦāļđ5āļāļ§ āļŦāļđ5āļŦāļ™ āļŦāđ‰5āļ—āđˆ āļŦāđ‰5āļ—āđ‰ āļŦāđ‰5āļĢāđ‰ 2āļŦāđŒ āļŦāđŒ5āļāļĢ āļŦāđŒ5āļŠāļ™ āļŽāļ§5āļĢāļē āļŽāļŦ5āļšāļđ 1āļŽāļē āļŽāļē5āļĄāļ“ āļŽāļē5āļĢāļķ āļ­āļ5āļ‹āļ­ āļ­āļ5āļ–āļĨ āļ­āļ5āļĢāļ“ āļ­āļ5āļĢāļĩ āļ­āļ5āļĢāļđ āļ­āļ5āļĢāđˆ āļ­āļ5āļĪāļ— āļ­āļ5āļĨāļ§ āļ­āļ5āļĨāļ­ āļ­āļ5āļĨāļē āļ­āļ5āļĨāđˆ āļ­āļ5āļ§āđˆ āļ­āļ5āđƒāļš āļ­āļ„5āļ—āļĩ āļ­āļ†5āļŠāļ‡ āļ­āļ‡4āļ„āļĄ āļ­āļ‡5āļ–āļī āļ­āļ‡5āļšāļĢ āļ­āļ‡5āļšāļī āļ­āļ‡5āļŸāļ­ āļ­āļ‡5āļŸāļļ āļ­āļ‡5āļĢāļ° āļ­āļ‡5āļ­āļļ āļ­āļ‡5āļ­āđ‰ āļ­āļ”5āļ–āļ­ āļ­āļ”5āļ™āđˆ āļ­āļ”5āļāļē āļ­āļ”5āļĒāļ­ āļ­āļ”5āļĢāļą āļ­āļ”5āļ­āļĒ āļ­āļ”5āļ­āļ­ āļ­āļ”5āļ­āļļ āļ­āļ”5āļ­āđ‰ āļ­3āļ”āļī āļ­āļ•5āļ”āļ­ āļ­āļ•5āļ”āđ‡ āļ­āļ•5āđ„āļ§ āļ­1āļ— āļ­4āļ—āļ„ āļ­āļ—5āļ„āļ­ āļ­āļ™5āļ‡āđ‰ āļ­āļ™5āļ”āļĢ āļ­āļ™5āļ—āļģ āļ­āļ™5āļœāļą āļ­āļ™5āļāļđ āļ­āļ™5āļŸāļī āļ­āļ™5āļĒāđ‰ āļ­4āļ™āļē āļ­4āļ™āļļ1 āļ­āļš5āļŠāđ‰ āļ­āļš5āļ–āļē āļ­āļš5āļšāļĩ āļ­āļš3āļ­ āļ­āļš5āđ„āļĨ āļ­āļ›5āļ„āļ­ āļ­āļ›5āļ•āļī āļ­āļ›5āļžāļĢ āļ­āļ›5āļžāļĨ āļ­āļ›4āļĢ āļ­āļ›5āļ§āļē āļ­āļ›5āđ‚āļĨ āļ­āļž5āļĢāļī āļ­āļŸ5āļŸāļī āļ­āļŸ5āļŸāļĩ āļ­āļŸ5āļĢāļī āļ­āļŸ5āđ„āļĨ āļ­4āļ āļą āļ­āļĄ5āļŽāļ­ āļ­āļĄ5āļ”āļ­ āļ­āļĄ5āļ–āļ­ āļ­āļĄ5āļĒāļī āļ­āļĄ5āļĢāļē āļ­āļĄ5āļĢāđˆ āļ­āļĄ5āļĪāļ• āļ­āļĄ5āļŦāļĨ āļ­āļĄ5āļŦāļ§ āļ­āļĄ5āļŦāđ‰ āļ­5āļĄāļ­āļ™ āļ­āļĒ5āļāļ­ āļ­āļĒ5āļāđ‹ āļ­āļĒ5āļ™āļ§ āļ­āļĒ5āļĢāđˆ āļ­āļĒ5āļĢāđ‰ āļ­āļĒ5āļ­āļī āļ­4āļĒāļē āļ­āļĒ5āđ„āļ” āļ­āļĢ5āļŠāļļ āļ­āļĢ5āļĄāļ™ āļ­3āļĢāļ­ āļ­1āļĢāļą āļ­3āļĢāļē āļ­1āļĢāļī āļ­1āļĢāļĩ āļ­3āļĢāđ‰ āļ­āļĢāđŒ1 āļ­āļĨ5āļˆāļĩ āļ­āļĨ5āļ™āļĩ āļ­āļĨ5āļŸāđˆ āļ­āļĨ5āļŦāļĄ āļ­3āļĨāļą āļ­1āļĨāļī āļ­āļ§5āļĢāļļ āļ­āļĻ5āļāļĢ āļ­āļĐ5āļāļŠ āļ­āļĐ5āļāļ  āļ­āļŠ5āļāļē āļ­āļŠ5āļ•āļī āļ­āļŠ5āļ•āļđ āļ­āļŠ5āļ™āļĩ āļ­āļŠ5āļžāļĨ āļ­āļŠ5āļŸāļ­ āļ­āļŠ5āļĄāļī āļ­āļŠ5āđ€āļŸ āļ­āļŠ5āđāļ­ āļ­āļŠ5āđ„āļž āļ­1āļŦ āļ­āļ­5āļ­āļ§ āļ­āļ°5āļ˜āļĩ 1āļ­āļą 1āļ­āļē āļ­āļē5āļ„5āđ€ āļ­āļē5āļāļē āļ­āļē5āļ“āļą āļ­āļē5āļ”āļļ āļ­āļē5āļ”āļđ āļ­āļē2āļ• āļ­āļē5āļ–āļĢ āļ­āļē5āļ™āļ™ āļ­āļē5āļ›āļ“ āļ­āļē5āļĄāļĨ āļ­āļē5āļĒ5āļ• āļ­āļē5āļĢāļ” āļ­āļē5āļĢāļ• āļ­āļē5āļĢāļš āļ­āļē3āļĢāļĒ āļ­āļē5āļĨāļ› āļ­āļē5āļ§āļĢ āļ­āļē5āļ§āļĩ āļ­āļē5āļŠāļ§ āļ­āļģ5āļĒāļ§ āļ­āļģ5āļ­āļ§ āļ­āļī5āļŠāļĒ āļ­āļī5āļ”āļ° āļ­āļī5āļĢāļ° āļ­āļī5āļĻāļ§ āļ­āļĩ5āļˆāļđ āļ­āļĩ5āļ‹āļđ āļ­āļĩ5āļĒāļī āļ­āļĩ5āļĢāļļ āļ­āļĩ5āļĨāļļ āļ­āļĩ5āļĻāļ§ āļ­āļĩ5āļŦāļĢ āļ­āļļ5āļāļĪ āļ­āļļ5āļāļĨ āļ­āļļ5āļ„āļĢ āļ­āļļ5āļ”āļĄ āļ­āļļ5āļ”āļĢ āļ­āļļ5āļ”āđ‰ āļ­āļļ3āļ•āļĢāļē āļ­āļļ5āļ•āļļ āļ­āļļ5āļ—āļĢ āļ­āļļ5āļ—āļī āļ­āļļ5āļ—āļļ āļ­āļļ5āļ˜āļą āļ­āļļ5āļšāļĨ āļ­āļļ5āļšāđŠ āļ­āļļ5āļĄāļ‡ āļ­āļļ5āļĢāļž āļ­āļļ5āļĨāļ āļ­āļļ5āđāļ§ āļ­āļđ5āļ„āļđ āļ­āļđ5āļĢāļē āļ­āļđ5āļĨāļē āļ­1āđ€ āļ­āđ€āļ›5āļĢ āļ­āđ€āļŠāļ5 āļ­āđ€āļŠ5āļ‚ āļ­āđ€āļŦ5āļ• āļ­1āđ āļ­1āđ‚ āļ­āđ‚āļĢ3 āļ­1āđ„ 3āļ­āđˆāļ­ āļ­āđˆ5āļ­āļ§ āļ­āđˆ5āļ­āđˆ āļ­āđˆ5āđ‚āļ– āļ­āđ‰5āļ­āļ§ āļ­āđ‰5āđ‚āļ– āļ­āđ‰5āđ‚āļĨ āļŪāļ5āļŪāļē āļŪāļ5āļŪāļ· āļŪāļ™5āļĢāļĩ āļŪāļŸ5āļ§āļĩ āļŪāļĨ5āļ”āļī 3āļŪāļ­āļĨ āļŪāļē5āļ™āļ­ āļŪāļē5āļ›āđˆ āļŪāļē5āļĢāđˆ āļŪāļī5āļšāļĢ āļŪāļĩ5āļšāļĢ 3āļŪāļ·āđ‰ āļŪāļđ5āļĨāļē āļŪāļđ5āļĨāđˆ āļŪ1āđ€ āļŪāđˆ5āļāļķ āļ°1āļ āļ°1āļ‚ āļ°1āļ„ āļ°1āļ‡ āļ°1āļˆ āļ°1āļ‰ āļ°1āļŠ āļ°1āļ‹ āļ°1āļ” āļ°1āļ• āļ°āļ•āļ°4 āļ°1āļ— āļ°1āļ™ āļ°1āļš āļ°1āļ› āļ°āļœāļĩ4 āļ°1āļž āļ°1āļĄ āļ°1āļĒ āļ°1āļĢ āļ°1āļĨ āļ°1āļ§ āļ°1āļŠ āļ°1āļŦ āļ°1āļ­ āļ°1āđ€ āļ°1āđ āļ°1āđ‚ āļ°1āđ„ āļą2 āļąāļ5āļ‡āđˆ āļąāļ5āļ‹āđ‰ āļąāļ5āļ•āļš āļąāļ5āļœāđˆ āļąāļ5āļāđˆ āļąāļ5āļĒāļ­ āļąāļ5āļĒāļī āļąāļ5āļĢāļą āļąāļ5āļĢāđ‰ āļąāļ3āļĨ āļąāļ5āļ§āļī āļąāļ5āļĐāļĢ āļąāļ5āļ­āļī āļąāļ5āļ­āļĩ āļąāļ5āļ­āđˆ āļąāļ5āđƒāļ„ āļąāļ5āđƒāļ āļąāļ„5āļ†āļī āļąāļ„5āļ‹āļĩ āļąāļ„5āļŠāļ– āļąāļ‡5āļ–āļķ āļąāļ‡5āļĻāļļ āļąāļ‡4āļŠ5āļ§ āļąāļ‡5āļ­āļ§ āļąāļ‡5āļ­āļļ āļąāļ‡5āļŪāļĩ āļąāļˆ5āļāļĨ āļąāļˆ5āļāļ° āļąāļˆ5āļ–āļĢ āļąāļˆ5āļ™āļķ āļąāļˆ5āđ‚āļˆ āļąāļŠ5āļŽāļē āļąāļŠ5āļ™āļĩ āļąāļŠ5āļžāļĒ āļąāļŠ5āļžāļ· āļąāļŠ5āļĢāļē āļąāļŠ5āļĢāļī āļąāļŠ5āļŠāļĄ āļąāļŠ5āđ€āļĢ āļąāļŠ5āđāļž āļąāļŠ5āđ‚āļ āļąāļ1 āļąāļ5āļ—āļļ āļąāļ5āļŠāļ‡ āļąāļ5āļ—āļī āļąāļ5āļšāļĢ āļąāļ5āļŠāļ  āļąāļ5āđ€āļ„ āļąāļ“5āļāļ āļąāļ“3āļ āļąāļ“5āļĒāļ āļąāļ“5āđ€āļ‘ āļąāļ“5āđ‚āļĢ āļąāļ”1 āļąāļ•5āļ”āļķ āļąāļ•5āļ–āļĨ āļąāļ•5āļ–āļą āļąāļ•5āļ–āļī āļąāļ•5āļĄāļ“ āļąāļ•5āļĄāļŦ āļąāļ•5āļĢāļē āļąāļ•5āļĢāļĩ āļąāļ•5āļĪāļ āļąāļ•5āļĨāļą āļąāļ•5āļŦāļĨ āļąāļ•5āļŦāļĩ āļąāļ—5āļ„āļĩ āļąāļ—5āļ—āļ§ āļąāļ—5āļ˜āļ™ āļąāļ—5āļ˜āļī āļąāļ—5āļĢāļē āļąāļ—5āļĨāļĩ āļąāļ—5āļĨāļļ āļąāļ˜5āļĒāļĄ āļąāļ™5āļ‰āđˆ āļąāļ™2āļ• āļąāļ™5āļ•āļ  āļąāļ™5āļ•āļ° āļąāļ™5āļ•āļą āļąāļ™5āļ•āļē āļąāļ™5āļ–āļ˜ āļąāļ™5āļ—āļķ āļąāļ™5āļ—āļļ āļąāļ™5āļ—āđˆ āļąāļ™4āļ˜ āļąāļ™5āļ˜āļē āļąāļ™5āļ˜āļī āļąāļ™5āļœāļ§ āļąāļ™5āļāļĢ āļąāļ™5āļāđˆ āļąāļ™5āļ āļī āļąāļ™5āļĒāļ° āļąāļ™5āļĒāđˆ āļąāļš1 āļąāļ›5āļ„āļą āļąāļ›5āļœāļē āļąāļ›4āļĢ āļąāļ›5āļĨāļē āļąāļ›5āļŦāļ‡ āļąāļ›5āđ‚āļ› āļąāļ›5āđ‚āļŦ āļąāļž5āļĒāļ­ āļąāļž5āļĒāļē āļąāļž5āđ‚āļž āļąāļž5āđ‚āļŦ āļąāļŸ5āļŸāļī āļąāļŸ5āļĢāļī āļąāļĄ4āļŠ āļąāļĄ5āļĨāļē āļąāļĄ5āļŦāļĄ āļąāļĒ5āļĄāļĢ āļąāļĒ5āļĢāļļ āļąāļĨ5āļ”āļĩ āļąāļĨ5āļ›āļ™ āļąāļĨ5āļ›āļž āļąāļĨ5āļ›āļī āļąāļĨ5āļŸāļī āļąāļĨ5āļĄāļļ āļąāļĨ5āļ­āļ­ āļąāļĨ5āđ„āļ‹ āļąāļĨ5āđ„āļŸ āļąāļ§1 āļąāļĻ5āļ™āļĩ āļąāļĻ5āļĄāļĩ āļąāļĻ5āđ€āļˆ āļąāļĻ5āđ„āļ™ āļąāļŠ5āļāļē āļąāļŠ5āļ”āļ‡ āļąāļŠ5āļ”āļ™ āļąāļŠ5āļ”āļĩ āļąāļŠ5āļ•āļī āļąāļŠ5āļ–āļē āļąāļŠ5āļ›āļđ āļąāļŠ5āļĄāļą āļąāļŠ5āļĄāļī āļąāļŠ5āļĒāļī āļąāļŠ5āļĢāļą āļąāļŠ5āļĨāļī āļąāļŠ5āļ§āļ” āļąāļŠ5āļ§āļĢ āļēāļ5āļ–āļē āļēāļ5āļāļĢ āļēāļ5āļāļą āļē1āļāļĢ āļē5āļāļĢāļĢ āļēāļ5āļĢāļļ āļē3āļāļ­ āļēāļ5āļŪāļ­ āļē3āļāļĩ āļē1āļ‚ āļē4āļ‚āļš āļēāļ‚5āļšāļđ āļē1āļ„ āļē4āļ„āļˆ āļē4āļ„āļ— āļē4āļ„āļš āļē4āļ„āļ› āļēāļ„5āļ›āļĢ āļē4āļ„āļž āļēāļ„5āļžāļ· āļē4āļ„āļ  āļē5āļ„āļĢāļĩ āļēāļ‡5āļšāļģ āļēāļ‡5āļāļĩ āļēāļ‡5āļŸāļī āļēāļ‡5āļ­āļ­ āļēāļ‡5āļ­āļī āļē1āļˆ āļē4āļˆāļ āļē4āļˆāļŦ āļēāļˆ5āļŦāļē āļē4āļˆāļ­ āļē4āļˆāđ€ āļēāļŠ5āļāļĢ āļēāļŠ5āļ„āļĢ āļēāļŠ5āļ„āļĪ āļēāļŠ5āļ—āļī āļē5āļŠāļ™āļ° āļēāļŠ5āļ™āļĩ āļēāļŠ5āļ›āļ° āļēāļŠ5āļĨāļą āļēāļŠ5āļ§āđ‚ āļēāļŠ5āļŠāļ āļēāļŠ5āļŠāļĩ āļēāļŠ5āļ­āļ‡ āļē1āļŠāļī āļē3āļŠāļĩ āļēāļŠ5āđ€āļ› āļēāļŠ5āđ€āļĨ āļēāļŠ5āđ‚āļ­ āļē1āļ‹ āļēāļ5āļĢāļ­ āļē5āļāļāļ° āļēāļ5āļ”āļ™ āļē5āļāļĨāļī āļēāļ5āļĨāļĩ āļē3āļāļī āļēāļ5āļāļ– āļēāļ“5āļ„āļ” āļēāļ“5āļŠāļ– āļēāļ”5āļœāļ§ āļē3āļ”āļ­ āļē3āļ”āļī āļēāļ”5āđ„āļ— āļēāļ”5āđ„āļŦ āļē1āļ• āļē4āļ•āļ āļē4āļ•āļ  āļēāļ•4āļ§ āļē1āļ— āļē4āļ—āļ˜ āļē4āļ—āļ™ āļē5āļ—āļ™āļ° āļēāļ—5āļšāļ‡ āļēāļ—5āļšāļĢ āļēāļ—5āļŠāļ āļēāļ—5āļŦāļĨ āļē4āļ—āđŒ āļē1āļ˜ āļē4āļ˜āļ™ āļē2āļ˜āļĒ āļēāļ˜5āļĒāļĄ āļēāļ™5āļāđˆ āļēāļ™5āļœāļđ āļēāļ™5āļĢāļ§ āļēāļ™5āļĢāļą āļēāļ™5āļĪāļ” āļēāļ™5āļ­āļ§ āļēāļ™āļļ1 āļēāļš5āļˆāđ‰ āļēāļš5āļ‰āļ§ āļēāļš5āļŠāđ‰ āļēāļš5āļ‹āļķ āļēāļš4āļž āļēāļš5āļĢāļ· āļēāļš5āļĨāļ° āļē3āļšāļī āļēāļ›5āļŠāļĢ āļēāļ›5āļŠāđˆ āļēāļ›5āđāļŠ āļēāļž5āļ–āđˆ āļēāļž5āļĒāļ™ āļēāļž5āļĢāļą āļēāļž5āļĨāļ§ āļēāļŸ5āļ•āđ‰ āļēāļŸ5āļĢāļī āļē3āļŸāļī āļē1āļ  āļē4āļ āļ› āļē4āļ āļĨ āļēāļ 5āļĨāļ­ āļēāļĄ5āļ‡āđˆ āļēāļĄ4āļ™4 āļēāļĄ5āļŠāļ āļēāļĄ2āļŦ āļēāļĄ5āļŦāļĄ āļēāļĄ5āļŦāļĨ āļēāļĄ5āļŦāļē āļēāļĒ5āļāļĨ āļēāļĒ5āļāļ­ āļēāļĒ5āļ‚āļ§ āļēāļĒ5āļ‚āđ‰ āļēāļĒ5āļŠāļ™ āļēāļĒ5āļ”āļī āļēāļĒ5āļ”āđ‰ āļē5āļĒāļ•āļ™ āļē5āļĒāļ™āļ˜ āļē5āļĒāļ™āļĄ āļēāļĒ5āļ™āļ­ āļē5āļĒāļ™āđ€ āļēāļĒ5āļšāļĢ āļēāļĒ5āļœāļ­ āļēāļĒ5āļāļą āļēāļĒ5āļĄāļļ āļēāļĒ5āļĄāđˆ āļēāļĒ5āļĢāļļ āļēāļĒ5āļĢāđ‰ āļēāļĒ5āļĨāļą āļēāļĒ5āļĨāđˆ āļēāļĒ5āļ§āļ­ āļēāļĒ5āļ­āļģ āļē3āļĒāļī āļēāļĒ5āđ„āļŦ āļēāļĢ5āļāļģ āļēāļĢ3āļ„ āļēāļĢ5āļŠāļļ āļēāļĢ5āļ“āļđ āļēāļĢ5āļ•āļĢ āļē5āļĢāļ—āļ° āļēāļĢ5āļ˜āļļ āļēāļĢ5āļšāļą āļēāļĢ5āļœāļˆ āļēāļĢ5āļžāļĢ āļē5āļĢāļ āļĒ āļē1āļĢāļĄ āļēāļĢ5āļĢāļē āļēāļĢ5āļĨāļ° āļēāļĢ5āļ§āļ” āļēāļĢ5āļ§āđˆ āļēāļĢ5āļŦāļ™ āļē1āļĢāļ° āļē1āļĢāļą āļē1āļĢāļē āļē1āļĢāļī āļē5āļĢāļīāļ āļē5āļĢāļīāļĒāļ° āļē3āļĢāļĩ āļē1āļĢāļļ āļē1āļĨ āļē4āļĨāļ āļē4āļĨāļ„ āļē4āļĨāļˆ āļēāļĨ5āļŽāļĩ āļē4āļĨāļ” āļēāļĨ5āļ”āļĩ āļēāļĨ5āļ—āļŦ āļē4āļĨāļ› āļēāļĨ5āļ›āļ āļēāļĨ5āļžāļĢ āļē4āļĨāļ§ āļē4āļĨāļŠ āļēāļĨ5āļ­āļļ āļē4āļĨāđ‚ āļē4āļĨāđŒ āļēāļ§5āļāđˆ āļēāļ§5āļ‚āđ‰ āļē3āļ§āļ”āļĩ āļēāļ§5āļ”āļķ āļēāļ§5āļ™āļĩ āļēāļ§5āļšāļ­ āļēāļ§5āļĒāļ­ āļēāļ§5āļĒāļ· āļē5āļ§āļĢāļ“ āļēāļ§5āļĢāļ  āļēāļ§5āļĢāļē āļē5āļ§5āļĢāļĩ āļēāļ§5āļĢāļļ āļēāļ§5āļĢāđ‰ āļēāļ§5āļĪāļ āļē5āļ§āļ­āļ™ āļēāļĻ5āļ™āļĩ āļē3āļĻāļĢ āļēāļĻ5āđ€āļĨ āļēāļĐ5āļ”āļ· āļēāļĐ5āļ•āļĢ āļēāļĐ5āļĢāļē āļēāļĐ5āđāļ āļēāļŠ5āļāļē āļēāļŠ5āļ”āđ‰ āļēāļŠ5āļ•āđ‰ āļēāļŠ5āļ™āļĩ āļēāļŠ5āļ›āļ­ āļēāļŠ5āļĄāļŦ āļē1āļŦ āļēāļŦ3āļ āļēāļŦ5āļĄāļ‡ āļēāļŽ5āđ‚āļĢ āļē1āļ­ āļēāļ­āļ™āļē4 āļē1āļŪ āļē1āđ€ āļēāđ€āļĄ5āļĻ āļē1āđ āļē1āđ‚ āļē1āđ„ āļģ1āļ āļģ1āļ„ āļģāļ—4āļ§ āļģ1āļ™ āļģ1āļš āļģ1āļ› āļģ1āļž āļģ1āļĄ āļģāļĄ5āļĢāļ‡ āļģāļĄ5āļĨāļē āļģ1āļĢ āļģ1āļĨ āļģ1āļŠ āļģ1āļŦ āļģ1āđ€ āļģ1āđ āļīāļ5āļ‹āļĩ āļīāļ5āļ–āļ­ āļī1āļāļĢ āļīāļ5āļĢāđ‰ āļī3āļāļĪ āļīāļ5āļĨāđ‰ āļīāļ5āļ§āļē āļīāļ5āļĐāļļ āļīāļāļī5āļŠ āļī1āļ‚ āļī4āļ‚āļŠ āļīāļ‚5āļŠāļī āļī1āļ„ āļī4āļ„āļ• āļīāļ„5āļ•āļ­ āļī4āļ„āļ™ āļī4āļ„āļŦāļ° āļīāļ†5āđ€āļ™ āļīāļ‡5āļŠāļĩ āļīāļ‡4āļŠāļ• āļīāļ‡4āļŦ āļīāļ‡5āļŦāļē āļīāļ‡5āļŦāđ‰ āļīāļ‡5āļ­āļĢ āļīāļˆ5āļĻāļĩ āļīāļŠ4āļ™ āļīāļŠ5āļĨāļī āļī3āļŠāļī āļīāļŠ5āđ€āļŠ āļīāļ5āļŦāļ™ āļīāļ5āđ‚āļ āļīāļ”5āļ‰āļī āļīāļ”5āļ™āļĩ āļīāļ”5āļœāļ™ āļīāļ”5āļĢāļ­ āļīāļ”5āļĢāļ° āļīāļ”5āļĨāļą āļīāļ”5āļ­āļ­ āļīāļ”5āļ­āđˆ āļīāļ•5āļ‹āļđ āļīāļ•5āļ–āļĩ āļīāļ•5āļŸāļ­ āļīāļ•5āļĨāļ” āļīāļ•5āļĨāļē āļīāļ•5āļ§āļŠ āļī1āļ•āļī āļī3āļ•āļļ āļīāļ—5āļ˜āļą āļīāļ—5āļŠāļ™ āļī3āļ˜āļĩ āļīāļ™5āļ‡āļ­ āļīāļ™5āļŸāļĢ āļīāļ™5āļĒāļ§ āļīāļ™5āļĒāļ­ āļīāļ™5āļĒāđ‰ āļīāļ™5āļĢāļ° āļīāļ™5āļĢāļī āļīāļ™5āļĢāđ‰ āļī5āļ™āļ­āļš āļīāļ™5āļ­āļī āļīāļ™5āļŪāļļ āļīāļ™āļđ5āļ› āļīāļš5āļšāļī āļīāļš5āļœāļĒ āļīāļš5āļĒāļ· āļīāļš5āļĢāļ° āļīāļš5āļĢāļĩ āļīāļš5āļĨāļą āļīāļš5āļĨāļī āļīāļš5āļĨāđ‰ āļīāļ›4āļ āļīāļ›5āļ—āļ­ āļīāļ›5āļœāļĨ āļī3āļ›āļĢ āļīāļ›5āļŠāļ• āļīāļ›5āļŪāļ­ āļīāļ›5āđ‚āļ› āļīāļ›5āđ‚āļĒ āļī1āļž āļī4āļžāļž āļī4āļžāđ‚ āļīāļž5āđ‚āļŠ āļīāļŸ5āļŸāļ­ āļī1āļ  āļīāļĄ5āļāļĩ āļīāļĄ5āļĨāļē āļī1āļĄāļļ āļīāļĒ5āļĄāļī āļīāļĢ5āļŠāļĢ āļīāļĢ5āļ§āļ” āļī1āļĢāļą āļī1āļĢāļē āļī1āļĢāļī āļī1āļĢāļļ āļīāļĨ5āļ›āļī āļī1āļĨāļą āļī1āļĨāļē āļī1āļĨāļī āļīāļ§5āļ‹āļĩ āļīāļ§5āļ—āļĢ āļīāļ§5āļšāļī āļīāļ§5āļĒāļ­ āļīāļ§5āļĢāļī āļīāļ§5āļĨāļī āļīāļ§5āļĨāļķ āļīāļ§5āļ­āļ­ āļīāļ§āļē5āļŠ āļīāļĻ5āļžāļĢ āļīāļĻ5āļĢāđ‰ āļīāļĻ5āđ€āļĨ āļīāļĻ5āđāļž āļīāļĐ5āļ“āļļ āļīāļĐ5āļ•āļĢ āļīāļŠ5āļāļĢ āļīāļŠ5āļāļĩ āļī5āļŠāļ•āļĢ āļīāļŠ5āļ•āļī āļīāļŠ5āļ—āļĩ āļīāļŠ5āļ™āļĩ āļīāļŠ5āļšāļ­ āļīāļŠ5āļĢāļē āļīāļŠ5āļĢāļī āļīāļŠ5āļĨāļē āļīāļŠ5āđ„āļ‹ āļī1āļŦ āļīāļŦāļē4 āļī1āļ­ āļī1āđ€ āļīāđ€āļ™4 āļī1āđ‚ āļī1āđ„ āļĩ1āļ āļĩ4āļāļ• āļĩ4āļāļĒ āļĩāļ5āļĒāđˆ āļĩāļ5āļĢāļī āļĩāļ†5āļŠāļĢ āļĩāļŠ5āļ„āļ“ āļĩāļ‹5āļŠāļ– āļĩāļ”5āļ†āđˆ āļĩāļ•5āļāļ§ āļĩāļ•5āļ›āļ āļĩ1āļ— āļĩāļ—4āļ™ āļĩāļš5āļĢāļą āļĩāļš5āļĢāļļ āļĩāļš5āļĢāđ‰ āļĩ1āļ› āļĩ1āļž āļĩ4āļžāļˆ āļĩāļĒ5āļāļ– āļĩāļĒ5āļĢāļĒ āļĩāļĒ5āļĢāļ­ āļĩāļĒ5āļĢāļ° āļĩāļĒ5āļĢāļą āļĩ5āļĒāļ§āļ™ āļĩāļĢ5āļ“āļą āļĩāļĨ5āļˆāļļ āļĩ4āļ§āļą āļĩāļ§āļē4 āļĩāļĐ5āļĄāļē āļĩāļŦ5āļ™āļē āļĩ5āļŦāļ™āđ‰ āļĩāļŦ5āļšāļą āļĩāļŦ5āļĄāļļ āļĩāļŦ5āļĢāļē āļĩ3āļŦāļĨ āļĩāļŦ5āđ‚āļĄ āļĩāļŦ5āđ„āļŠ āļĩ1āļ­ āļĩāļ­4āļĢ āļĩāļ­āļē4 āļĩ1āđ€ āļĩ1āđ āļĩ1āđ‚ āļĩ1āđ„ āļĩāđˆ5āļāđˆ āļĩāđˆ5āļ–āđ‰ āļĩāđˆ5āļ›āļļ āļĩāđˆ5āļ›āļđ āļĩāđˆ3āļŦ āļĩāđˆ5āđ‚āļ„ āļĩāđˆ5āđ‚āļ› āļĩāđ‰5āļāļĢ āļĩāđ‰5āļˆāđ‰ āļĩāđ‰5āļ•āļ° āļĩāđ‰5āļĢāļī āļĩāđ‰5āļĨāļą āļĩāđ‰5āļĨāļļ āļĩāđŠ5āļāļĢ āļĩāđ‹5āļˆāđ‰ āļĩāđ‹5āļ­āđ‹ āļķāļ5āļ‹āļķ āļķāļ5āļ”āļģ āļķāļ5āļ”āļ· āļķāļ5āļĒāļ· āļķāļ5āļĢāļ° āļķāļ5āļĨāļą āļķāļ5āļĨāđ‰ āļķāļ5āļŪāļą āļķāļ”5āļ–āļ· āļķāļ”5āļŪāļą āļķāļ™5āļ—āļķ āļ·āļ”5āļŪāļē āļ·āļ­5āļāļĨ āļ·āļ­5āļāļ­ āļ·āļ­5āļāļģ āļ·āļ­5āļ‚āđˆ āļ·āļ­5āļˆāđ‰ āļ·āļ­5āļŠāļ· āļ·āļ­5āļ”āļģ āļ·āļ­5āļ•āļĢ āļ·āļ­5āļ–āļ· āļ·āļ­5āļ™āļģ āļ·āļ­5āļšāļī āļ·āļ­5āļ›āļĨ āļ·āļ­5āļ›āļ· āļ·āļ­5āļ›āđˆ āļ·āļ­5āļžāļ§ āļ·āļ­5āļžāđˆ āļ·āļ­5āļĒāļ™ āļ·āļ­5āļĒāļē āļ·āļ­5āļĢāļ· āļ·āļ­5āļĨāļē āļ·āļ­5āļĨāđ‰ āļ·āļ­5āļŠāļ­ āļ·āļ­5āļŠāļģ āļ·āļ­5āļ­āļĩ āļļāļ5āļ‡āļ­ āļļāļ5āļ‰āļ āļļāļ5āļ‹āđˆ āļļāļ5āļ”āļī āļļāļ5āļœāļē āļļāļ5āļĢāļē āļļāļ5āļĢāļļ āļļāļ5āļĨāļ° āļļāļ5āļĨāļĩ āļļāļ5āļĨāđ‰ āļļāļ5āļ­āļĩ āļļāļ5āļŪāļ· āļļāļ‚5āļ™āļē āļļāļ‚5āļ›āļē āļļāļ‚5āļ āļą āļļāļ‚5āļ āļē āļļāļ‚5āļĨāļą āļļāļ‚5āļĻāļē āļļāļ‚5āļĻāļķ āļļāļ‚5āđ€āļ” āļļāļ„5āļ—āļ­ āļļ3āļ„āļ™ āļļāļ‡5āļ–āļļ āļļāļˆ5āļĨāļī āļļāļˆ5āļŦāļ™ āļļāļŠ5āļĢāļē āļļāļŠ5āđ€āļŠ āļļāļ5āļˆāļ™ āļļāļ5āļĪāļ— āļļāļ5āđāļˆ āļļāļŽ5āļāļą āļļāļ‘5āļžāđˆ āļļāļ“5āļ„āđˆ āļļāļ“5āļ‘āļ āļļāļ“āļŠāļĄ5 āļļāļ“5āļŦāļ āļļāļ“5āļŦāļē āļļāļ“5āļŦāļī āļļāļ“āļđāļ›5 āļļāļ”5āļœāļē āļļāļ”5āļœāđˆ āļļāļ”5āļĨāļ­ āļļāļ”5āļĨāļļ āļļāļ”5āļ­āļđ āļļāļ•5āļāļ§ āļļāļ•5āļ‹āļ­ āļļāļ•5āļ•āļ āļļ5āļ•āļĢāļ° āļļ5āļ•āļĢāļī āļļāļ•5āļĨāļļ āļļ3āļ—āļ āļļāļ—5āļ˜āļą āļļ5āļ—āļĢāļī āļļāļ—5āļĨāļļ āļļāļ—5āđ‚āļ˜ āļļāļ™5āļ—āļĢ āļļāļ™5āļœāļĨ āļļāļ™5āļĢāļ­ āļļāļš5āļ‡āļī āļļāļš5āļšāļī āļļāļš5āļœāļĨ āļļāļš5āļĒāļī āļļāļš5āļ­āļī āļļāļ›5āļāļĢ āļļāļ›5āļˆāļē āļļāļ›5āļ–āļą āļļāļ›5āļ—āļē āļļāļ›5āļĒāļļ āļļāļ›3āļĢāļē āļļ5āļ›āļĢāļī āļļ4āļ›āļŠ āļļāļ›5āļŠāļ‡ āļļāļ›5āļŠāļĢ āļļāļ›5āļŪāļē āļļāļ›5āđ‚āļ  āļļāļ›5āđ‚āļĨ āļļāļž5āļžāļē āļļāļž5āļ āļī āļļāļ 5āļŠāļĨ āļļāļ 5āđ€āļ„ āļļāļĄ4āļ™ āļļāļĄ5āļ™āļļ āļļāļĄ5āļĢāļļ āļļāļĄ5āļŦāļĒ āļļāļĒ5āļŠāđˆ āļļāļĒ5āļāđ‰ āļļ1āļĢ āļļāļĢ5āļ‚āđˆ āļļ4āļĢāļ„ āļļ4āļĢāļ‰ āļļ4āļĢāļŠ āļļ4āļĢāļ— āļļ4āļĢāļ˜ āļļ4āļĢāļš āļļ4āļĢāļž āļļ4āļĢāļ  āļļ5āļĢāļ āļĩ āļļ4āļĢāļĒ āļļ4āļĢāļĢ āļļ4āļĢāļĨ āļļ4āļĢāļ§ āļļ4āļĢāļĻ āļļ4āļĢāļŠ āļļ4āļĢāļ­ āļļ4āļĢāđ āļļ4āļĢāđ‚ āļļāļĨ5āļˆāļ­ āļļāļĨ5āļŠāļĩ āļļāļĨ5āļ˜āļī āļļāļĨ5āļĄāļļ āļļāļĨ5āļŠāļ• āļļāļĨ5āļŠāđ āļļ3āļĨāļē āļļ3āļĨāļī āļļāļĻ5āđ‚āļĨ āļļāļĐ5āļˆāļĩ āļļāļĐ5āļŽāļĩ āļļāļĐ5āļ›āļĢ āļļ4āļĐāļĒ āļļāļĐ5āļĢāļē āļļāļĐ5āļĢāđ‰ āļļāļĐ5āđ€āļž āļļāļŠ5āļĢāļē āļļ5āļŠāļĨāļ° āļļāļŠ5āļĨāļī āļļāļŠ5āļ§āļē āļļ1āļŦ āļļāļŦ5āļāļĨ āļļāļŦ5āļ™āļē āļļ4āļŦāļĒ āļļāļŦ5āļĒāļē āļļ4āļŦāđ€ āļļāļŦ5āđ€āļ— āļļāļŦ5āđ€āļŠ āļļ4āļŦāđ‚ āļļāļŦ5āđ‚āļĒ āļļ1āđ€ āļļ1āđ‚ āļļāđŠ5āļ•āđŠ āļđāļ5āļ§āļą āļđ1āļŠ āļđāļ5āļŦāļē āļđāļ5āđ€āļ› āļđāļ5āđ€āļŠ āļđāļ”5āļšāļķ āļđāļ”5āļĢāļĩ āļđāļ•5āļĢāļđ āļđāļ˜5āđ€āļĢ āļđāļš5āđ„āļĨ āļđāļ›4āļ āļđāļ›5āļŒāļē āļđāļ›5āļ–āđˆ āļđāļ›5āļ—āļĢ āļđāļ›5āļžāļĢ āļđāļ›5āļĢāđˆ āļđāļ›5āđāļš āļđāļ›5āđ‚āļ‰ āļđāļŸ5āļ§āļĩ āļđ2āļĄ āļđ5āļĄāļīāļ™ āļđāļĢ5āļ‚āđˆ āļđāļĢ4āļ“ āļđ5āļĢāļ“āļ  āļđ5āļĢāļ“āļĄ āļđ5āļĢāļ“āļ° āļđ5āļĢāļ“āļēāļ āļđāļĢ4āļž āļđ5āļĢāļžāļ° āļđ5āļĢāļžāļē āļđāļĢ4āļĄ āļđāļĨ5āļāļĢ āļđāļĨ5āļ„āđˆ āļđ3āļĨāļą āļđāļ§5āđ„āļ™ āļđāļŠ4āļ§ āļđ1āđ€ āļđ1āđ‚ āļđāđˆ1 āļđāđ‰1 āļđāđŠ5āļ•āļķ āļđāđ‹5āļāļĢ āļđāđ‹5āļˆāļĩ āļđāđ‹5āļ­āļĩ āđ€2 āđ€āļ5āļĒāļđ āđ€āļ5āļ§āļą āđ€āļ5āļĻāļ§ āđ€āļ5āļ­āļī āđ€āļ„5āļ‹āļ­ āđ€āļ„5āļĄāļĩ āđ€āļ„5āļĻāļ§ āđ€āļˆ5āļ”āļĩ āđ€āļˆ5āļ™āļĩ āđ€4āļˆāļĢ āđ€āļˆ5āļĨāļī āđ€āļˆ5āđ‚āļ• āđ€āļ‹5āļ—āļī āđ€āļ‹5āļ™āļ­ āđ€āļ‹5āļĢāļļ āđ€āļ‹5āđāļ„ āđ€āļ”5āļšāļī āđ€āļ”5āļĢāļą āđ€āļ”5āļĨāļē āđ€āļ”5āļĨāļī āđ€āļ”5āļĨāļĩ 2āđ€āļ•āļŠ āđ€āļ•5āļ›āļļ āđ€āļ•5āļĄāļĩ āđ€āļ•5āļĄāļđ āđ€āļ•5āļĢāļī āđ€āļ•5āļĨāļļ āđ€āļ•5āļĻāļ§ āđ€āļ•5āļŦāļ° āđ€āļ–5āļĢāļē āđ€āļ—5āļāļĢ āđ€āļ—5āļ„āļĢ āđ€āļ—5āļ„āļ§ āđ€āļ—5āđ‚āļ§ āđ€āļ—5āđ‚āļĻ āđ€āļ™4āļ• āđ€āļ™5āļ•āļī 4āđ€āļ™āļĒ āđ€āļ™5āļĢāļ° āđ€āļ™5āļĢāļą āđ€āļ™4āļŠ āđ€āļ™5āļŠāļē āđ€āļ™5āđ€āļ§ āđ€āļš5āļ•āđ‰ āđ€āļš5āļšāļĩ āđ€āļš5āļĢāļī āđ€āļš5āļĢāļļ āđ€āļš5āļĨāļĩ āđ€āļ›5āļ•āļ­ āđ€āļ›5āļŠāļ āđ€āļ›5āļŠāļĨ āđ€āļž5āļŠāļļ āđ€āļž5āļ—āļļ āđ€āļž5āļŠāļĨ āđ€āļž5āđ‚āļ— āđ€āļž5āđ„āļ™ āđ€āļŸ5āļ­āļĩ āđ€āļ 5āļ•āļĢ āđ€āļ 5āļ—āļļ āđ€āļĄ5āļ†āļī āđ€āļĄ5āļ”āļī āđ€āļĄ5āļĨāļē āđ€āļĢ5āļāļ­ āđ€āļĢ5āļāļ° āđ€āļĢ5āļĄāļ­ āđ€āļĢ5āļĢāļ§ āđ€āļĢ5āļ§āļ” āđ€āļĨ5āļāļĢ āđ€āļĨ5āļ„āļ­ āđ€āļĨ5āļ”āļĩ āđ€āļĨ5āļ§āļĢ āđ€āļĨ5āļ§āļđ āđ€āļĨ5āļŦāļĨ āđ€āļĨ5āļŪāļļ āđ€āļĨāļī4 āđ€āļ§5āļāđ‰ āđ€āļ§5āļ—āļī āđ€āļ§5āļĨāđˆ āđ€āļ§5āļŽāļļ āđ€āļ§5āđ„āļ™ āđ€āļŠ5āļ‰āļ§ āđ€āļŠ5āļ™āļĩāļĒāđŒ āđ€āļŠ5āļĢāļĩ āđ€āļŠ5āļ§āļ āđ€āļŠ5āļ§āļ™ āđ€āļŠ5āđāļŠ āđ€āļŦ5āļĄāļą āđ€āļŦ5āļĒāļ‡ āđ€āļŦ5āļĢāļ° āđ€āļŦ5āļĢāļą āđ€āļŦ5āļĻāļ§ āđ€āļŦ5āļĻāļą āđ€āļŦ5āļŠāļą āđ€āļŽ5āļ§āļĢ āđ€āļ­5āļāļ§ āđ€āļ­5āļ˜āļī āđ€āļ­5āļŽāļ āđ€āļŪ5āļĨāļ° āđ€āļŪ5āļĨāļī āđ€āļŪ5āđ‚āļĄ āđ€āļŪ5āđ‚āļĢ āđāļ5āļ§āļą āđāļ„5āļĢāļ­ āđāļ„5āļĢāļī āđāļ„5āļĨāļ­ āđāļ„5āļĨāļī āđāļ„5āđāļ• āđāļ„5āđāļŠ āđāļŠ5āļšāđŠ āđāļŠ5āđ€āļŠ āđāļ‹5āļĒāļī āđāļ”5āļĢāļĩ āđāļ•5āđāļ• āđāļ™2 āđāļš4āļ„ āđ4āļ›āļĢ 3āđāļžāļ— āđāļŸ5āļĢāļĩ āđ4āļŸāđ‰ āđāļĄ2 āđāļĄ5āļŠāļĩ āđāļĄ5āļĢāļĩ āđāļĄ5āđ€āļĢ āđāļĄāđˆ3 āđāļ­5āļ™āļ° āđ‚āļ4āļ āđ‚āļ5āļĨāļ­ āđ‚āļ5āļĨāļē āđ‚āļ5āļĨāļī āđ‚āļ5āļ§āļē āđ‚āļ5āļ§āļĩ āđ‚āļ5āļŪāļē āđ‚āļ‚5āļ—āļą āđ‚āļ‚5āļ āļī āđ‚āļ‚5āđ€āļ  āđ‚āļ‚5āđ‚āļĨ āđ‚āļ„5āļ•āļĄ āđ‚āļ„5āļ•āļī āđ‚āļ„5āļĄāļđ āđ‚āļ„5āļĄāđˆ āđ‚āļ„5āļĢāļī āđ‚āļ„5āļĨāļ­ āđ‚āļ„5āļĨāļą āđ‚āļ„5āļĨāđˆ āđ‚āļ„5āļ­āļ­ āđ‚āļ„5āļ­āļ° āđ‚āļ„5āđāļ— āđ‚āļ„5āđ„āļ‹ āđ‚āļˆ5āļ›āļ āđ‚āļ‰5āđ€āļš āđ‚āļŠ5āļ”āļķ āđ‚āļŠ5āļŦāđˆ āđ‚āļ‹5āļāļĢ āđ‚āļ‹5āļ™āļĩ āđ‚āļ‹5āļŸāļī āđ‚āļ‹5āļĒāļđ āđ‚āļ‹5āļĨāļđ āđ‚āļ‹5āļŠāđ€ āđ‚āļ4āļŠ āđ‚āļ5āļ›āļ§ āđ‚āļ”5āļˆāļĩ āđ‚āļ”5āļ™āļĩ āđ‚āļ”5āļĢāļē āđ‚āļ”5āļĨāļī āđ‚āļ•5āļāļĢ āđ‚āļ•5āļĢāļ­ āđ‚āļ•5āļĢāļē āđ‚āļ•5āļĢāļī āđ‚āļ•5āļĨāļī āđ‚āļ—5āļāļĢ āđ‚āļ—5āļ„āļ­ āđ‚āļ—5āļžāļĨ āđ‚āļ—5āļĢāļ­ āđ‚āļ—5āđāļ­ āđ‚āļ˜5āļ—āļ™ āđ‚āļ˜5āļ›āļ āđ‚āļ˜5āļ›āļī āđ‚āļ˜5āļ§āļ™ āđ‚āļ˜5āđ€āļŸ āđ‚āļ™5āļ—āļļ āđ‚āļ™5āļ›āļˆ āđ‚āļ™5āļĢāļĄ āđ‚āļš5āļŠāļļ āđ‚āļš5āļ‹āļ­ āđ‚āļš5āļ•āđ‰ āđ‚āļš5āļĢāļ­ āđ‚āļš5āļĢāļą āđ‚āļš5āļĢāļē āđ‚āļš5āļĨāļī āđ‚āļš5āļĨāđˆ āđ‚āļš5āļ­āļī āđ‚āļš5āđ„āļŪ āđ‚āļ›5āļāļŠ āđ‚āļ›5āļĨāļī āđ‚āļ›5āđāļĨ āđ‚āļ›5āđ‚āļ› āđ‚āļ›5āđ‚āļĨ āđ‚āļž5āļ—āļ° āđ‚āļž5āļĢāļ° āđ‚āļž5āļĨāļē āđ‚āļž5āļĨāļī āđ‚āļž5āļĨāļĩ āđ‚āļž5āļŦāļē āđ‚āļž5āđāļ— āđ‚āļž5āđ„āļ‹ āđ‚āļŸ5āļāļĢ āđ‚āļŸ5āļ™āļĩ āđ‚āļ 5āļ„āļī āđ‚āļ 5āđ„āļ„ āđ‚āļĄ5āļ†āļĩ āđ‚āļĄ5āļ”āļđ āđ‚āļĄ5āļĢāđ‡ āđ‚āļĄ5āļŦāļē āđ‚āļĄ5āļŪāļą āđ‚āļĒ5āļ–āļī āđ‚āļĢ5āļāļ° āđ‚āļĢ5āļ„āļī āđ‚āļĢ5āļ‡āļą āđ‚āļĢ5āļŠāļī āđ‚āļĢ5āļ˜āļ™āļ° āđ‚āļĢ5āļĢāļē āđ‚āļĢ5āļĨāđˆ āđ‚āļĢāļŠ4 āđ‚āļĢ5āļŠāđ€ āđ‚āļĢ5āļŦāļ™ āđ‚āļĢ5āļ­āļĩ āđ‚āļĢ5āļŪāļī āđ‚āļĢ5āđāļĄ āđ‚āļĢ5āđ„āļĨ āđ‚āļĨ5āļāļĢ āđ‚āļĨ5āļāļĩ āđ‚āļĨ5āļˆāļ™ āđ‚āļĨ5āļ›āļļ āđ‚āļĨ5āļĄāļ āđ‚āļĨ5āļĢāļē āđ‚āļĨ5āļ§āļ° āđ‚āļĨ5āļŦāļī āđ‚āļ§5āļ™āļ­ āđ‚āļĻ5āļ˜āļ™ āđ‚āļĻ5āļ āļī āđ‚āļŠ5āļāļĢ āđ‚āļŠ5āļ•āļī āđ‚āļŠ5āļ˜āļ™ āđ‚āļŠ5āļ āļī āđ‚āļŠ5āļĨāļī āđ‚āļŠ5āļ§āļĢ āđ‚āļŠ5āļŦāļļ āđ‚āļŠ5āđ‚āļ„ āđ‚āļŦ5āļāļē āđ‚āļŦ5āļĢāļŠ āđ‚āļŦ5āļĢāļ° āđ‚āļŦ5āļĢāļē āđ‚āļŦ5āļŠāļī āđ‚āļŦ5āļŽāļē āđ‚āļ­5āļ„āļĨ āđ‚āļ­5āļ„āđ‡ āđ‚āļ­5āļ”āļĩ āđ‚āļ­5āļĢāļŠ āđ‚āļ­5āļĨāļ° āđ‚āļ­5āļŠāļ– āđ‚āļ­5āļ­āļī āđ‚āļŪ5āđ‚āļĨ 3āđƒāļŠāđ‰ 1āđƒāļŦ āđ„āļ5āļĨāļē āđ„āļ5āļ§āļą āđ„āļ‚5āļ‚āđ‰ āđ„āļ‚5āļ„āļ§ āđ„āļ‚5āļĄāļą āđ„āļ‚5āļŠāļą āđ„āļ‚5āļŠāļ· āđ„āļ„5āļĻāļ§ āđ„āļŠ5āļ™āđˆ āđ„āļŠ5āļĻāļ§ āđ„āļ‹5āļ”āļ­ āđ„āļ‹5āļšāļ­ āđ„āļ‹5āļšāļĩ āđ„āļ‹5āļ›āļĢ āđ„āļ‹5āļ­āļ­ āđ„āļ”5āļŸāļļ āđ„āļ”5āļŸāļđ āđ„āļ”5āļĨāļī āđ„āļ”5āļ­āļ­ āđ„āļ—5āļŸāļ­ āđ„āļ—5āļĢāļ­ āđ„āļ—5āđāļ— āđ„āļ›5āļĢāļī āđ„āļž5āļŠāļĒ āđ„āļž5āļ˜āļ­ āđ„āļž5āļĢāļą āđ„āļž5āļĢāļī āđ„āļž5āļĨāļī āđ„āļž5āļŦāļē āđ„āļž5āđ‚āļĢ āđ„āļž5āđ‚āļ­ āđ„āļŸ5āđāļŠ āđ„āļŸ5āđāļ™ āđ„āļ 5āļĢāļī āđ„āļĄ5āļ–āļī āđ„āļĄāđ‰1 āđ„āļĨ5āļšāļĢ āđ„āļĨ5āļšāļĩ āđ„āļ§5āļĢāļą āđ„āļ§5āļ­āļ° āđ„āļŦ5āļĢāļ“ āđ„āļŦ5āļĻāļ§ āđ„āļŦ5āļŦāļĄ āđ„āļŦ5āļŦāļĨ āđ„āļ­5āļāļĢ āđ„āļ­5āļ‹āļĩ āđ„āļ­5āļ”āļ­ āđ„āļ­5āļ•āļī āđ„āļ­5āļžāļ­ āđ„āļ­5āļžāđ‡ āđ„āļ­5āļĻāļ§ āđ„āļ­5āļĻāļļ āđ„āļ­5āļĻāļđ āđ„āļ­5āļ­āļ­ āđ„āļŪ1 āđ‡āļ5āļ‹āļĩ āđ‡āļˆ5āļ‚āļš āđ‡āļˆ5āļŠāļĢ āđ‡āļ”5āļĨāļ­ āđ‡āļ”5āļ­āļĢ āđ‡āļ”5āļ­āļķ āđ‡āļ™5āļ‰āđˆ āđ‡āļ™5āļ—āļĢ āđ‡āļ™5āļĢāļ­ āđ‡āļ™5āļ§āļđ āđ‡āļ™5āļ­āļĒ āđ‡āļ™5āļ­āđ‰ āđ‡āļš5āļ”āđ‰ āđ‡āļ›5āļ—āđ‡ āđ‡āļĄ5āļŦāļĄ āđˆāļ5āļĨāļą āđˆ1āļ„ āđˆāļ‡5āļĢāļī āđˆāļ‡5āļ­āļĢ āđˆāļ‡5āļ­āļģ āđˆāļ‡5āļ­āđˆ āđˆ4āļ‰āļĩ āđˆāļ™5āļ‡āđˆ āđˆāļ™5āļ‰āđˆ āđˆāļ™5āļ—āļ° āđˆāļ™5āļĄāļ· āđˆ4āļ™āļĒ āđˆāļ™5āļĒāļ™ āđˆāļ™5āļĒāđˆ āđˆāļ™5āļĢāļĄ āđˆāļĄ1 āđˆāļĄ5āļžāļ§ āđˆāļĒ5āļāļ° āđˆāļĒ5āļ‰āļļ āđˆāļĒ5āļĢāļē āđˆāļĒ5āļĢāđˆ āđˆāļ§5āļŠāđ‰ āđˆāļ§5āļ–āļķ āđˆāļ§5āļĒāļ§ āđˆāļ§5āđ„āļŦ āđˆāļ­5āļāļĢ āđˆāļ­5āļāļ§ āđˆāļ­5āļāļ° āđˆāļ­5āļāļĩ āđˆāļ­5āļāđ‰ āđˆāļ­5āļ‚āđˆ āđˆāļ­5āļ•āļĢ āđˆāļ­5āļ•āļ° āđˆāļ­5āļ•āđ‰ āđˆāļ­5āļ–āļ· āđˆāļ­5āļšāļ· āđˆāļ­5āļœāļŠ āđˆāļ­5āļĄāļ§ āđˆāļ­5āļĄāđˆ āđˆāļ­āļĒ3 āđˆāļ­5āļĒāļ­ āđˆāļ­5āļĒāđˆ āđˆāļ­5āļĢāđˆ āđˆāļ­3āļĨ āđˆāļ­5āļ§āđˆ āđˆāļ­5āļŠāļĢ āđˆāļ­5āļŪāļą āđˆāļ­5āļŪāđˆ āđˆāļē5āļāļĨ āđˆāļē5āļŠāđ‰ āđˆāļē5āļ”āļ‡ āđˆāļē5āļ”āđ‰ āđˆāļē5āļāļ· āđˆāļē5āļžāļĢ āđˆāļē5āļĄāļ‡ āđˆāļē5āļĢāļķ āđˆāļē5āļĢāđ‰ āđˆāļēāļ§3 āđˆāļģ5āļŠāļ­ āđˆāļģ5āļŠāđ‰ āđˆāļģ5āļ•āđ‰ āđˆāļģ5āļ•āđŠ āđˆāļģ5āđ„āļŦ āđˆ1āđ€ āđˆ1āđ āđ‰āļ5āļ­āđ‰ āđ‰āļ‡5āļ–āđˆ āđ‰āļ‡5āļāļļ āđ‰āļ™5āļ‡āļđ āđ‰āļ™5āļ‰āļš āđ‰āļ™5āļ‰āđˆ āđ‰āļ™5āļ—āļ° āđ‰āļ™5āļ—āļļ āđ‰āļ™5āļ—āđ‰ āđ‰āļ™5āļĢāļļ āđ‰āļ™5āļĢāđˆ āđ‰āļĄ5āļ‡āļ§ āđ‰āļĄ5āļ‰āļļ āđ‰āļĄ5āļ™āđ‰ āđ‰āļĄ5āļĒāļī āđ‰āļĄ5āļĨāļ° āđ‰āļĄ5āļĨāļļ āđ‰āļĄ5āļ­āļĨ āđ‰āļĒ5āļāļĨ āđ‰āļĒ5āļ‡āļŠ āđ‰āļĒ5āļĨāđˆ āđ‰āļĒ5āļ­āđ‰ āđ‰āļĒ5āđƒāļš āđ‰āļ§5āļĢāļ­ āđ‰1āļŦ āđ‰āļ­5āļāļĢ āđ‰āļ­5āļāļĨ āđ‰āļ­5āļ„āļĢ āđ‰āļ­5āļ„āļđ āđ‰āļ­5āļ‡āļ­ āđ‰āļ­5āļ‰āļĩ āđ‰āļ­5āļ”āļķ āđ‰āļ­5āļ”āđ‰ āđ‰āļ­5āļ•āđŠ āđ‰āļ­5āļ–āļ­ āđ‰āļ­āļ™3 āđ‰āļ­5āļœāđ‰ āđ‰āļ­5āļāļą āđ‰āļ­5āļŸāļ· āđ‰āļ­5āļĄāļđ āđ‰āļ­5āļĢāļ° āđ‰āļ­5āļĢāđˆ āđ‰āļ­5āļ­āļķ āđ‰āļ­5āļŪāļ· āđ‰āļē5āļˆāļ­ āđ‰āļē5āļŠāļ· āđ‰āļē5āļŠāļđ āđ‰āļē5āļŠāđˆ āđ‰āļē5āļŠāđ‰ āđ‰āļē5āļ”āļĩ āđ‰āļē5āļ–āļī āđ‰āļē5āļ–āļķ āđ‰āļē5āļšāđˆ āđ‰āļē5āļšāđ‰ āđ‰āļē5āļšāđ‹ āđ‰āļē5āļ›āļĩ āđ‰āļē5āļœāļē āđ‰āļē5āļāļĢ āđ‰āļē3āļž āđ‰āļē5āļĄāļļ āđ‰āļē5āļ§āđˆ āđ‰āļē5āļŠāļĄ āđ‰āļē5āļŠāļĢ āđ‰āļē5āļŠāļĨ āđ‰āļģ1 āđ‰1āđ€ āđ‰1āđ āđŠāļ5āļ‹āļ­ āđŠāļ5āļĢāļī āđŠāļ5āļĨāļļ āđŠāļ5āļŪāļ§ āđŠāļ‡5āļšāđŠ āđŠāļ›5āļ‹āļĩ āđŠāļĒ5āļāđˆ āđ‹āļĒ5āļ­āļī āđ‹āļ­5āļ”āđ‹ āđŒāļ„5āļŠāđ€ āđŒāļ„5āđāļĨ āđŒāļ•5āđ„āļ— āđŒāļ—5āđ„āļ— āđŒ1āļš āđŒ1āļž āđŒ1āļĢ āđŒ1āđ€ āđŒ1āđ āđŒ1āđ‚ .āļ6 .āļ‚6 .āļƒ6 .āļ„6 .āļ…6 .āļ†6 .āļ‡6 .āļˆ6 .āļ‰6 .āļŠ6 .āļ‹6 .āļŒ6 .āļ6 .āļŽ6 .āļ6 .āļ6 .āļ‘6 .āļ’6 .āļ“6 .āļ”6 .āļ•6 .āļ–6 .āļ—6 .āļ˜6 .āļ™6 .āļš6 .āļ›6 .āļœ6 .āļ6 .āļž6 .āļŸ6 .āļ 6 .āļĄ6 .āļĒ6 .āļĢ6 .āļĪ6 .āļĨ6 .āļĶ6 .āļ§6 .āļĻ6 .āļĐ6 .āļŠ6 .āļŦ6 .āļŽ6 .āļ­6 .āļŪ6 6āļ. 6āļ‚. 6āļƒ. 6āļ„. 6āļ…. 6āļ†. 6āļ‡. 6āļˆ. 6āļ‰. 6āļŠ. 6āļ‹. 6āļŒ. 6āļ. 6āļŽ. 6āļ. 6āļ. 6āļ‘. 6āļ’. 6āļ“. 6āļ”. 6āļ•. 6āļ–. 6āļ—. 6āļ˜. 6āļ™. 6āļš. 6āļ›. 6āļœ. 6āļ. 6āļž. 6āļŸ. 6āļ . 6āļĄ. 6āļĒ. 6āļĢ. 6āļĨ. 6āļ§. 6āļĻ. 6āļĐ. 6āļŠ. 6āļŦ. 6āļŽ. 6āļ­. 6āļŪ. 6āļāđŒ. 6āļ‚āđŒ. 6āļƒāđŒ. 6āļ„āđŒ. 6āļ…āđŒ. 6āļ†āđŒ. 6āļ‡āđŒ. 6āļˆāđŒ. 6āļ‰āđŒ. 6āļŠāđŒ. 6āļ‹āđŒ. 6āļŒāđŒ. 6āļāđŒ. 6āļŽāđŒ. 6āļāđŒ. 6āļāđŒ. 6āļ‘āđŒ. 6āļ’āđŒ. 6āļ“āđŒ. 6āļ”āđŒ. 6āļ•āđŒ. 6āļ–āđŒ. 6āļ—āđŒ. 6āļ˜āđŒ. 6āļ™āđŒ. 6āļšāđŒ. 6āļ›āđŒ. 6āļœāđŒ. 6āļāđŒ. 6āļžāđŒ. 6āļŸāđŒ. 6āļ āđŒ. 6āļĄāđŒ. 6āļĒāđŒ. 6āļĢāđŒ. 6āļĨāđŒ. 6āļ§āđŒ. 6āļĻāđŒ. 6āļĐāđŒ. 6āļŠāđŒ. 6āļŦāđŒ. 6āļŽāđŒ. 6āļ­āđŒ. 6āļŪāđŒ. 6āļāļīāđŒ. 6āļ‚āļīāđŒ. 6āļƒāļīāđŒ. 6āļ„āļīāđŒ. 6āļ…āļīāđŒ. 6āļ†āļīāđŒ. 6āļ‡āļīāđŒ. 6āļˆāļīāđŒ. 6āļ‰āļīāđŒ. 6āļŠāļīāđŒ. 6āļ‹āļīāđŒ. 6āļŒāļīāđŒ. 6āļāļīāđŒ. 6āļŽāļīāđŒ. 6āļāļīāđŒ. 6āļāļīāđŒ. 6āļ‘āļīāđŒ. 6āļ’āļīāđŒ. 6āļ“āļīāđŒ. 6āļ”āļīāđŒ. 6āļ•āļīāđŒ. 6āļ–āļīāđŒ. 6āļ—āļīāđŒ. 6āļ˜āļīāđŒ. 6āļ™āļīāđŒ. 6āļšāļīāđŒ. 6āļ›āļīāđŒ. 6āļœāļīāđŒ. 6āļāļīāđŒ. 6āļžāļīāđŒ. 6āļŸāļīāđŒ. 6āļ āļīāđŒ. 6āļĄāļīāđŒ. 6āļĒāļīāđŒ. 6āļĢāļīāđŒ. 6āļĨāļīāđŒ. 6āļ§āļīāđŒ. 6āļĻāļīāđŒ. 6āļĐāļīāđŒ. 6āļŠāļīāđŒ. 6āļŦāļīāđŒ. 6āļŽāļīāđŒ. 6āļ­āļīāđŒ. 6āļŪāļīāđŒ. 6āļāļļāđŒ. 6āļ‚āļļāđŒ. 6āļƒāļļāđŒ. 6āļ„āļļāđŒ. 6āļ…āļļāđŒ. 6āļ†āļļāđŒ. 6āļ‡āļļāđŒ. 6āļˆāļļāđŒ. 6āļ‰āļļāđŒ. 6āļŠāļļāđŒ. 6āļ‹āļļāđŒ. 6āļŒāļļāđŒ. 6āļāļļāđŒ. 6āļŽāļļāđŒ. 6āļāļļāđŒ. 6āļāļļāđŒ. 6āļ‘āļļāđŒ. 6āļ’āļļāđŒ. 6āļ“āļļāđŒ. 6āļ”āļļāđŒ. 6āļ•āļļāđŒ. 6āļ–āļļāđŒ. 6āļ—āļļāđŒ. 6āļ˜āļļāđŒ. 6āļ™āļļāđŒ. 6āļšāļļāđŒ. 6āļ›āļļāđŒ. 6āļœāļļāđŒ. 6āļāļļāđŒ. 6āļžāļļāđŒ. 6āļŸāļļāđŒ. 6āļ āļļāđŒ. 6āļĄāļļāđŒ. 6āļĒāļļāđŒ. 6āļĢāļļāđŒ. 6āļĨāļļāđŒ. 6āļ§āļļāđŒ. 6āļĻāļļāđŒ. 6āļĐāļļāđŒ. 6āļŠāļļāđŒ. 6āļŦāļļāđŒ. 6āļŽāļļāđŒ. 6āļ­āļļāđŒ. 6āļŪāļļāđŒ. 6āļ° 6āļē 6āđ… 6āļģ7 6āļī 6āļĩ 6āļķ 6āļ· 6āļļ 6āļđ āđ6 āđ‚6 5āđ„6 7āđƒ6 6āđ‡ 6āđˆ 6āđ‰ 6āđŠ 6āđ‹ 6āđŒ 6āđ 6āļš 6āđŽ āđ€6āļ‚ āđ€6āļƒ āđ€6āļ„ āđ€6āļ… āđ€6āļ† āđ€6āļ‡ āđ€6āļˆ āđ€6āļ‰ āđ€6āļŠ āđ€6āļ‹ āđ€6āļŒ āđ€6āļ āđ€6āļŽ āđ€6āļ āđ€6āļ āđ€6āļ‘ āđ€6āļ’ āđ€6āļ“ āđ€6āļ” āđ€6āļ• āđ€6āļ– āđ€6āļ— āđ€6āļ˜ āđ€6āļ™ āđ€6āļš āđ€6āļ› 7āđ€6āļœ āđ€6āļ āđ€6āļž āđ€6āļŸ āđ€6āļ  āđ€6āļĄ āđ€6āļĒ āđ€6āļĢ āđ€6āļĨ āđ€6āļ§ āđ€6āļĻ āđ€6āļĐ āđ€6āļŠ āđ€6āļŦ āđ€6āļŽ āđ€6āļ­ āđ€6āļŪ āļŠ6āļ§āļē. āļŠ6āđ„ āļ˜6āđ„āļ™ āļĄ6āđ„āļŦ āļŠ6āđ„āļ• āđ€āļĨāļŠ7āđ„āļ• āļŠ6āđ„āļ™ āļŠ6āđ„āļš āļŠ6āđ„āļ› āļŠ6āđ„āļĨ āļš6āļ—āļ„āļ§ āļĄ6āļ§āļ āļĄ6āļ§āļ™ āļĄ6āļ§āļ” āļĄ7āļ§āļ”āļĩ āļĄ6āļ§āļĒ āļ°āļĄ6āļ§āļ‡ āļĨ7āļŠāļ™ āļąāļ•5āļ–āļļ āļąāļ•6āļ–āļļāđŒ 6āļ•āļĢ. āļ˜āļē6āļ•āļļ. āļšāļļ6āļ•āļĢ. āļ„6āļĢāļđ āļŪāļīāļš6āļĢāļđ āļŪāļĩāļš6āļĢāļđ āļŠ6āļ āļē āļŠ7āļ āļēāļĢ āđ€āļŠ7āļ āļē āđ‚āļŠ7āļ āļē āļœ6āļ§āļē āļ™6āļ„āļĢ. .āđ€āļŦ6āļĒāļ‡ āđ€āļ›āļĩāđˆ6 āđ€āļ‚āļĩāđ‰6 āļĄ6āļ“āļĩ āļ„āļēāļĄ7āļ“āļĩ .āļĢāļĄ7āļ“āļĩ .āļĢāļąāļĄ7āļ“āļĩ āļŦāļĄ7āļ“āļĩ āļ‡6āļ§āļ” āļ‡6āļ§āļ™ āļ§āļąāļ‡7āļ§āļ™ āļ‡6āļ§āļĒ āļĄāļ‡6āļ§āļ‡ āļ­āļĒ6āļ­āļ” āļž6āļāļē āļˆāļļ6āļĢāļ“ āļĪ6āļŠāļē .āļĪ6āļ—āļąāļĒ āļžāļĢāļĢ6āļ”āļī āļŠāļ§āļē6āļ”āļī āļ­6āļĢāļī. āļˆāļ™6āļ—āļĩ. āļ˜āļ„6āļĒāļē āļ™āļīāļĄ6āļ™āļē āļĒāđŒāļĄ6āļ™āļē āļē7āļ“āļ° āļī7āļ“āļ° āļļ7āļ“āļ° āļ“7āļ“āļ° āļ7āļ“āļ° āļ—7āļ“āļ° āļĨ7āļ“āļ° āļļāļĐ7āļ“āļ° āļĪāļĐ7āļ“āļ° āļĢāļ›7āļ“āļ° āļŦāļĄ7āļ“āļ° āļŠāļĄ7āļ“āļ° āļĨāļ§7āļ“āļ° āļĢāļ§7āļ“āļ° āļĢ5āļ“āļ° āļ“āļĢ6āļŠāļĩ āļ6āļ™āļ° āļĒāļ7āļ™āļ° āļ„7āļ™āļ° āļĒ7āļ™āļ° āļ āļ§7āļ™āļ° āļĄāļ—7āļ™āļ° āļĢāļ•7āļ™āļ° āļĨāļ§7āļ™āļ° āļ§āļˆ7āļ™āļ° āļ§āļ—7āļ™āļ° āļ§āļŠ7āļ™āļ° āļĻāļĄ7āļ™āļ° āļ āļŠ7āļ™āļ° āđ„āļŠ7āļ™āļ° āļēāļĨāļ›7āļ™āļ° āļĢāļĢāļ˜7āļ™āļ° āļŠāļ˜5āļ™āļ° āđ‚āļŠāļ˜6āļ™āļ° āļŠāļ§5āļ™āļ° āđ€āļŠāļ§6āļ™āļ° āļŠāļēāļ§7āļ™āļ° āļąāļˆ7āļ™āļ° āļąāļŠ7āļ™āļ° āļąāļ7āļ™āļ° āļąāļ’7āļ™āļ° āļąāļ•7āļ™āļ° āļąāļ—7āļ™āļ° āļąāļ›7āļ™āļ° āļąāļŠ7āļ™āļ° āļļāļˆ7āļ™āļ° āļ­āļēāļŠ7āļ™āļ° āļļ7āļ™āļ° 5āļœāļĩ 7āļˆāļģ 5āļ‡āļģ āļŦ6āļ‡āļģ āļ™7āļĢāļģ āļĒ7āļĢāļģ āļĢ7āļĢāļģ āđ‚āļ„7āļĢāļģ āđ„āļž7āļĢāļģ āļ™7āļĒāļģ āļĄ7āļĒāļģ 5āļ‡āļ‡. āļŦ6āļ‡āļ‡ āļ™7āļ‡āļ 5āļŠāļ™. āđ€6āļŠāļ™ āđ‚6āļŠāļ™ 5āļāļĢ. āļą6āļāļĢ āļē7āļ™āļ° āļ–7āļĢāļ° āļē7āļĒāļ. āļē7āļĒāļ™. āļē7āļāļĩ āļē7āļ™āļĩ āļē7āļ§āļĩ āļ›5āđ‚ āļ›6āđ‚āļĒ āļ›6āđ‚āļ  āļ§āļīāļ›7āđ‚āļĒ āļ­āļļāļ›7āđ‚āļ  āļĻ7āļ™āļ° āļĢāļĢ7āļĄāļ° āļ•5āļ–āļĩ āļļāļ•6āļ–āļĩ 5āļšāļ—. āļŠ6āļšāļ— 5āļšāļ–. āļ‚6āļšāļ– āļŠ6āļšāļ– 7āļŸāļđ 7āļĐāļļ 5āļ•āļ°. āļ„6āļ•āļ° āļĢ6āļ•āļ° āļŠāļĢ7āļ•āļ° āļē7āļĄāļĩ āļĄāļī7āļœ āļē7āļāļī āļē7āļāļĨ āļī7āļāļĨ. āđŒ7āļāļĨ 5āļ™āļģ āļŦ6āļ™āļģ āļĢāļĩ7āļœ 7āļ“āļļ 5āļ™āļĩ. āļŦ6āļ™āļĩ āļ‰6āļ™āļĩ āļēāļĢ6āļ™āļĩ āļ§āļĩāļŠ6āļ™āļĩ āļŠāļŠ6āļ™āļĩ āļĄāļ—6āļ™āļĩ āļĢāļĄ6āļ™āļĩ āļ™7āļĒāļī āļī5āļĨāļĩ āļļ5āļĨāļĩ āļē7āļĨāļĩ āđ‚āļ„7āļĨāļĩ āđ‚āļĄ7āļĨāļĩ āļ—7āļĨāļĩ āļĢ7āļĨāļĩ āļ7āļĒāļ° āļ„7āļĒāļ° āļ›7āļĒāļ° āļ—7āļĒāļ° āļ˜7āļĒāļ° āļ™7āļĒāļ° āļĐ7āļĒāļ° āļē7āļĒāļ° āļī7āļĒāļ° āļ„āļĩ7āļĒāļ° āļ†āļĩ7āļĒāļ° āļ“āļĩ7āļĒāļ° āļ™āļĩ7āļĒāļ° āļĢāļĩ5āļĒāļ° āđ€āļ›āļĢāļĩ6āļĒāļ° āļĄāđ‚āļŦ5 āļī7āļĢāļĩ āļĩ7āļĢāļĩ āļđ7āļĢāļĩ āļŦāļē7āļĢāļĩ āļĄ7āļĢāļĩ. āļ™5āļĢāļĩ. āđ€āļ•7āļĢāļĩ. āļŠ7āļĢāļĩ. āļ–7āļĢāļĩ āļ 7āļĢāļĩ āļ āļĄ7āļĢāļĩ āđ‚āļĄ7āļĢāļĩ āļ āļļāļĄ7āļĢ āļž7āļĢāļĩ. āđ€āļ§7āļĢāļĩ 5āļœāļĨ 5āļ”āļĨ. 5āļĢāļŠ. āļ6āļĢāļŠ āļˆ6āļĢāļŠ āđ‚āļ„6āļĢāļŠ āļ—6āļĢāļŠ āļž6āļĢāļŠ āļ”6āļĢāļŠ 5āļ„āļ™. āļ“7āļŦāļē āļĪāđ…5 āļĪāļē5 .āļĒāļĩāđˆ7 āļē7āļ§āļ° āđ€āļ—7āļžāļĩ āđ€āļ—7āļ§āļĩ āļšāļĢāļĢ7āļˆ āļšāļĢāļĢ7āļ– āļšāļĢāļĢ7āļžāļ• 5āļ—āļ. 5āļ”āļĢ. āļ™7āļ—āļĢ. āļē7āļ—āļĢ. āđ‚āļ„7āļ—āļĢ. āđ‚āļĨ7āļ—āļĢ. āđ‚āļŠ7āļ—āļĢ. 7āļ­āļđ. 5āļžāļĨ. āđ„āļžāļĢāđˆ7 5āļĻāļ. āļ­āļąāļ5 āļ­āļąāļ6āļĄ āļ­āļąāļ7āļĄāļĩ āļĩ7āļ§āļĩ āļđ7āļ§āļĩ āļ–7āļ§āļĩ. āļŠ7āļ§āļĩ. āļ7āļ§āļĩ. āļ™7āļ•āļĩ āļĢ7āļ•āļĩ āļ­7āļ•āļĩ āļē7āļ•āļĩ āļī7āļ•āļĩ āļđ7āļ•āļĩ āļē7āļŠāļĩ āļ“7āļŠāļĩ āļŦ7āļŠāļĩ āđ€āļ§7āļŠāļĩ āļđ7āļŠāļĩ āļī7āļŠāļĩ āļ7āļŠāļĩ āđ‚āļš7āļĨāļē āļđ7āļĨāļē āļ­āļˆ7āļĨāļē āđ€āļ§7āļĨāļē āļšāļīāļ§7āļĨāļē āļĄāļ‚7āļĨāļē āđ€āļ­7āļĨāļē āļĩ7āļĨāļē āđ‚āļĢ7āļĨāļē āđ‚āļ­7āļĨāļē āđ‚āļ‹7āļĨāļē āļī7āļāļ° āļļ7āļāļ° āļ­7āļāļ° āļ™āļ§7āļāļ° āļīāļ“7āļāļ° āđ€āļ 7āļāļ° āļąāļĒ7āļāļ° āļīāļĒ7āļāļ° āļĢāļ˜7āļāļ° āļąāļ7āļāļ° āļąāļ’7āļāļ° āļīāļŠ7āļāļ° āļĻāļ•7āļāļ° āļĄāļĨ7āļāļ° 7āļ—āļļ. āđ‚āļ‹6āļĢ āļ˜6āļ™āļđ āļąāļŠ7āļ”āļļ. āļĢ7āļ„āļ• āļ”āļ‡7āļ„āļ• 5āļāļ‡. āđ€6āļāļ‡ 7āļŽāļ āļ“7āļĄāļĩ āļ§7āļĄāļĩ āļĻ7āļĄāļĩ āļđ7āļĄāļĩ āļĩ7āļ•āļī āļĢāļļ7āļ•āļī āļŠāļļ7āļ•āļī āļŪ7āļ•āļī āļ­āļĢ7āļ•āļī āļ§āļĩāļŠ7āļ•āļī āļ•āļīāļ‡āļŠ7āļ•āļī āļ„āļļāļ›7āļ•āļī āļĄāļļāļ•6āļ•āļī āļ āļąāļ•6āļ•āļī āļ7āļ”āļĩ āļ•7āļ”āļĩ āļž7āļ”āļĩ āļĄ7āļ”āļĩ āļĒ7āļ”āļĩ āļĻ7āļ”āļĩ āļ­5āļ”āļĩ āļē7āļ”āļĩ āļĩ7āļ”āļĩ āļļ7āļ”āļĩ āļļāļ§7āļ”āļĩ āļ”āļīāļš7āļ”āļĩ āļ™āļąāļ7 āļāļļāļ“5 āļāļļāļ“6āļ‘āđŒ 7āļ‹āļĩ. 5āļ—āļĩ. āļˆāļ™6āļ—āļĩ āļĩ7āļĢāļē āļđ7āļĢāļē āđŒ7āļĢāļē āļīāļ•7āļĢāļē āļĄ7āļĢāļē āļĒ7āļĢāļē .āļĄāļ7āļĢāļē āļĢāļš7āļĢāļē āļĨāļīāļ7āļĢāļē āđ€āļŦ7āļĢāļē. 7āļāļŽ. 7āļāļ. 5āļŦāļ° āļ„6āļŦāļ° āļ™āļīāļ„7āļŦāļ° āđ€āļ„7āļŦāļ° āļ—6āļŦāļ° āđ€āļ—7āļŦāļ° āļđ7āļŦāļē āļŽ7āļŦāļē āļ„7āļŦāļē āđ€āļ™7āļŦāļē āđˆ7āļŦāļē 5āļĄāļ° āļĢ6āļĄāļ° āļŦ6āļĄāļ° āļ•6āļĄāļ° 5āļŦāļđ 5āļ”āļģ āļŠ6āļ”āļģ 7āļ„āļģ 5āļŠāļ° āļ§6āļŠāļ° 5āļāļ° āļŠ6āļāļ° 7āļ˜āļ° 5āļžāļĩ. āļĢ6āļžāļĩ āļ—āļĢ7āļžāļĩ āļ›āļ7āļ§āļĩ āļī7āļ”āļē āļĐ7āļš āļĐ7āļ› āļī7āļĢāļ° āļĩ7āļĢāļ° āļđ7āļĢāļ° āļŠ5āļĢāļ° āļīāļ•7āļĢāļ° āļ—āļŦ7āļĢāļ° āļ—7āļĢāļ°. āļļāļ5āļĢāļ°. āļŠāļ§7āļĢāļ° āļąāļŠ7āļĢāļ° āļīāļŠ7āļĢāļ° āđ€āļ›7āļĢāļ° āļ­7āļĒāļē. āđ€āļ7āļĒāļē āļĢāļĢ7āļĒāļē āļŠāļē7āļ§āļ āļī7āļ˜āļī āļļāļ—7āļ˜āļī. āļīāļ—5āļ˜āļī. .āļŠāļīāļ—6āļ˜āļī. āļšāļļāļĢāļīāļĄāļŠāļīāļ—6āļ˜āļī. āđ„āļāļĢāļŠāļīāļ—6āļ˜āļī. āļ›7āļ˜āļī āļ‚āļąāļ”āļŠāļĄāļē6āļ˜āļī āļžāļĒāļē6āļ˜āļī. 5āļĐāļĩ. āļ”6āļ™āļđ āļī7āļ§āļ° āļĩ7āļ§āļ° āļļ7āļ§āļ° āļĩ7āļ§āļ āļĒ7āļ§āļ° āđ€āļ—7āļ§āļ° āđ„āļ—7āļ§āļ° āļąāļ—7āļ§āļ° āļēāļŠ7āļ§āļ° āđ„āļĻ7āļ§āļ° 7āļ–āļ° 7āļĐāļ° 5āļžāļĢ. 5āļœāļ‡ 5āļ˜āļĩ āļē7āļŠāļ° āļī7āļŠāļ° āļĢ5āļŠāļ° āļŠ7āļŠāļ° āđ‚āļ­7āļŠāļ° 5āļ†āļ° 5āļŸāļ° āļē7āļŸāļĩ āļī7āļ–āļĩ āļĢ7āļ–āļĩ 5āļŪāļē 5āļāļĩ 5āļœāļē 5āļŦāļī. āļŠāļīāļ™7āļ˜āļž āļŠāļīāļ™7āļ˜āļļ. āļŠāļīāļ™7āļ˜āļđ 5āļŠāļđ 5āļĻāļ° āļī7āļĨāļ° āļļ7āļĨāļ° āļđ7āļĨāļ° āļĒ7āļĨāļ° āļ”7āļĨāļ° .āļ§āļŠ7āļĨāļ° āļ­āđ€āļˆ7āļĨ āđ€āļ•7āļĨāļ° āđˆ7āļĨāļ° āļ™7āļ—āļ° āļ—7āļ—āļ° āļŠ7āļ—āļ° āļ™7āļ•āļļ. āļĢāļĢ6āļ•āļļ āļĄāļē7āļ•āļĪ āļī7āļĢāļž āļē7āļĢāļž. āđ„āļ7āļĢāļž 5āļĻāļļ. āļē7āļ–āļē āļē7āļŠāļž āļž7āļŠāļž āļļ7āļ‚āļĩ 7āļŠāļ­. āļē7āļ”āļ° 5āļšāļ°. 5āļĒāļĩ. āļŦ6āļĒāļĩ 5āļāļĩ. 5āļŦāļ. āļ‡7āļ­āļĢ. āļĄ7āļ­āļĢ. āļĩ7āļ§āļĢ āļŠ7āļ§āļĢ. āļžāļđ7āļ™āļ— 5āļˆāļĢ. āđ‚6āļˆāļĢ. 7āļĻāļž. āđ‚āļ›7āļĨāļĩ 7āļ āļž. 7āļ™āļž. 7āļ“āļž. āļē7āļĢāļ. āļ—āļ7āļĢāļ āļĒ7āļĢāļ. āļĒāļ§7āļĢāļ. 5āļĄāļĨ. āļļ5āļšāļĨ. āđ‚āļĨ7āļšāļĨ. 5āļŠāļĨ. 5āļŠāļ. 7āđ‚āļž 5āļ“āļđ 7āļ›āļĩ. āļē7āļšāļĩ. 5āļāļ°. āļē7āļŽāļĩ 5āļ›āļ°. āļ‰6āļ›āļ° āļŠ6āļ›āļ° āļđ7āļĨāļđ 5āļ•āļđ. 5āļĒāļđ. 7āļ†āļĩ. āļī7āļˆāļĩ āļĩ7āļˆāļĩ āļļ7āļˆāļĩ āļđ7āļˆāļĩ āđ€āļ§7āļˆāļĩ 5āļĻāļĩ. 5āļĄāļ™. 5āļĒāļ­. āļœ6āļĒāļ­. 5āļŠāļ‡. 7āļŠāļĢ. 5āļ”āļ. āļŠ6āļ”āļ 7āđ‚āļ. āļ7āļ āļē7āļĄāļ. 5āļ‹āļ­ āļē7āļ‚āļ° āļđ7āļ‚āļ° āļŠ5āļ‚āļ° āļĢ7āļĐāļē 5āļ āļ° āļĻ7āļ  āļī7āļĨāļ āļļ7āļŽāļĩ āļĻāļē5āļ‚ 5āļŠāļē. āļą6āļŠāļē 7āļ‹āļđ 5āļĐāļ. āļĐ7āļāļĩ 5āļ”āļĄ. āļŠ6āļ”āļĄ āļ”7āļĨāļĄ. āļŠ7āļĨāļĄ. āļ§7āļĨāļĄ. āļĩ7āļĨāļĄ. 5āļĻāļĨ. āļ™āļī7āļĒāļ• 7āļ‡āļđ 5āļˆāļ°. āļē7āļŠāļ. āđ‚āļ›7āļŠāļ 5āļĒāļĻ. 5āļ˜āļ. 5āļāļš. 7āļ„āļđ. āļŠ5āļĄāļē. 5āđāļĨ. 5āļžāļ. āđ‚āļŠ7āļ  āļĢāļĢ6āļ”āļī. āļē7āļ§āļ. āļ™7āļ™āļĢ. 5āļˆāļ­. 5āļˆāļš. 5āļ„āļš. 5āļ‰āļĨ. āļĄ7āļĢāļĄ āļ­āļš7āļĢāļĄ āļī7āļĢāļĄ. āļĩ7āļĢāļĄ. 5āļ‹āļ™. 5āļ”āļ­. 5āļāļī. āļ‹āļđ7āļ‹āļļ āļ‹āļđ7āļŪāļ 5āļšāļŠ. āļ™7āļĢāļ™. āļ•āļ7āļĨāļ‡ āļĄ7āļ•āļ™ āļ•āļąāļ§7āļ•āļ™ āļĩ7āļ§āļ‡ āļĻ7āļ§āļ‡. āđāļ•āļĢ7āļ§āļ‡ āđāļ§āļ”7āļ§āļ‡ āļē7āļ‘āļđ 5āļŦāļ”. āļ­āļš7āļ™āļš āļ™āļē7āļ„āļĢ. āļĩ7āļ‘āļē āļđ7āļ”āļđ āļē7āļĢāļ . āļē7āļ āļĨ7āļĢāļš. āļ§7āļĢāļš. āļ­7āļĢāļš. āļē7āļĢāļ“. āļ™7āļĒāļ‡ āļĄ7āļĒāļ‡ āļļ7āļĒāļ‡ āļī7āļĒāļ‡ āļī7āļĒāļ™ āļŦāļē7āļžāļ™ āļē7āļ‡āļī āļŠ7āļĢāļ–. āļ™7āļĢāļ–. āļŠ7āļĢāļ–. āļąāļ™7āļ˜āļĢ. āļĄāļ“7āļ‘āļ āļĄāļ“7āđ‚āļ‘ āļĄāļĢ7āļāļ• āļĄāļĢ7āļ‘āļ› āļĒāļ­āļ”7āļ­āļ āđ‚āļĨāđˆāļ‡7āļ­āļ āļĒāļ·āļ”7āļ­āļ āļŦ7āļŦ 5āļ—āļ”. āļ§7āļ™āļĄ. āļ—āļž7āļ™āļĄ. āđ‚āļ„7āļ™āļĄ āļĐ7āļŽāļĢ. āļī7āļ›āļļ āļī7āļ›āļđ āļĩ7āļĢāļ­. āļĒ7āļĨāļģ āļ­7āļĨāļģ āđ‰7āļĨāļģ āļ™7āļ—āļĄ. āļ›7āļ—āļĄ. āļ§āļ7āļ§āļ™ āļ­āļĨ7āļ§āļ™ āļī7āļˆāļĨ. āļŠ7āļāļ° āļĩ7āļ‚ āļĻāļĩāļĨ7 5āļ˜āļĄ. āļŠāļĄ7āļĢāļ” āļŠāļąāļ7āļ§āļē āļŠāļąāļ›7āļ” āļŠāļąāļ›7āļ— āļē7āļŠāļĄ. āļ­7āļŠāļĄ. āļē7āļ™āļĨ. āļĩ7āļĢāļļ āļđ7āļĢāļļ āđ€āļ™7āļĢāļļ āļ‡7āļŦāļĨ āļŠāļĩāļŦ7āļ™āļļ 5āļ āļĢ. 5āļˆāļ”. āļš7āļĒāļ. āļ”āļī7āļĻāļĢ āļĢ7āļĻāļĢ āļ­āļž7āļĒāļž āļĢ7āļŠāļĢ. āļĢāļŠ7āļāļē āļĨāļŠ7āļāļē āļ­āļēāļˆ7āļ­āļ‡ āļĩ7āļĄāļđ āļ­āļķāļ‡7āļ­āļĨ āļļ7āļŠāļļ āļļ7āļŠāļ . āđ€āļ7āļŠāļē āđ€āļ7āļĻāļē āļŠ7āļ•āļ. āļš7āļ•āļ. āđ€āļ‚7āļŽāļ° āļŦ7āļ“āļĩ āļ­7āļ›āļ™. āļĒ7āļŠāļĄ. āđ€āļšāļ·āđ‰āļ­āļ‡7 5āļ„āļ° āļ‡7āļ­āļ­. āļ­7āļ­āļ­. āđ€āļĢāļ·āļ­7āļ˜ āđ€āļĢāļ·āļ­7āļš āđ€āļĨāļĩāđ‰āļĒāļ§7 5āļāļ. āđ€6āļāļ āļ­7āļ‚āļ­. āļē7āļāļ­. āđāļ”7āļ§āļđ āļš7āļĒāļĨ. āđ‚āļ‰7āđ€āļ āđ‚āļ”7āļĄāļĢ āđ‚āļ•7āļĄāļĢ 7āđ‚āļœ āđ‚āļ—7āđ‚āļŠ āđ‰7āļ›āļ”. 7āļ„āļĩ. āđ‚āļĒ7āļ™āļ. āđ‚āļŠ7āļĄāļĄ 7āļŽāļŠ. āļ•7āļ–āļī 7āđ‚āļŪ āđƒāļˆ7 5āļŸāļ‡ āđ„āļŠ7āđ‚āļĒ 5āļžāļ•. āļāļĢāļĢ7āļāļĻ āļĨ7āļšāļ. āļĻ7āļĒāļ›. āļē7āļ™āļ™. āļļ7āļŽāļē āļđ7āļāļē āļē7āļĄāļ­. āļ—7āđ‚āļ— āļļ7āļ—āļŠ āļˆāđˆāļē7āļĢ āļŽ7āļŦāļĩ āļē7āļ’āļ° āļ˜āļ•7āļĢāļ āļ—7āļ„āļĨ. āļ•7āļ–āļĢ. āļī7āļāļī āļ›7āļœāļ° āļžāļĪ7āļĐāļ . āļī7āļ˜āļļ āļē7āļŽāļ. āļŦ7āļŠāļī āļ7āļāļī. āļĐ7āļāļī. āļĻāļīāļĐ7āļŽāļī āļĐ7āļāļĩ 5āļĐāļŠ. āļī7āļ›āļī āļđ7āļĢāļī. āļ‘7āļ‘āļļ āļĐ7āļāļļ āļē7āļ•āļē āļ§7āļ•āļ āļ‡7āļ•āļ āđ€āļ6āļ•āļļ. āļŠ7āļ•āļļ āļĨāļī7āļšāļ‡ āļŪ7āđ‚ 7āļ­āļļ. āļīāļĻ7āļĢāļē",
["lefthyphenmin"]=1,
- ["length"]=53939,
- ["n"]=4342,
+ ["length"]=53269,
+ ["n"]=4289,
["righthyphenmax"]=1,
},
["version"]="1.001",
diff --git a/Master/texmf-dist/tex/context/sample/third/aesop-de.tex b/Master/texmf-dist/tex/context/sample/common/aesop-de.tex
index 80a41f295ef..80a41f295ef 100644
--- a/Master/texmf-dist/tex/context/sample/third/aesop-de.tex
+++ b/Master/texmf-dist/tex/context/sample/common/aesop-de.tex
diff --git a/Master/texmf-dist/tex/context/sample/third/cervantes-es.tex b/Master/texmf-dist/tex/context/sample/common/cervantes-es.tex
index 153797023ed..153797023ed 100644
--- a/Master/texmf-dist/tex/context/sample/third/cervantes-es.tex
+++ b/Master/texmf-dist/tex/context/sample/common/cervantes-es.tex
diff --git a/Master/texmf-dist/tex/context/sample/third/khatt-ar.tex b/Master/texmf-dist/tex/context/sample/common/khatt-ar.tex
index c9142641109..c9142641109 100644
--- a/Master/texmf-dist/tex/context/sample/third/khatt-ar.tex
+++ b/Master/texmf-dist/tex/context/sample/common/khatt-ar.tex
diff --git a/Master/texmf-dist/tex/context/sample/third/khatt-en.tex b/Master/texmf-dist/tex/context/sample/common/khatt-en.tex
index 52891af25b6..52891af25b6 100644
--- a/Master/texmf-dist/tex/context/sample/third/khatt-en.tex
+++ b/Master/texmf-dist/tex/context/sample/common/khatt-en.tex
diff --git a/Master/texmf-dist/tex/context/sample/third/quevedo-es.tex b/Master/texmf-dist/tex/context/sample/common/quevedo-es.tex
index 166b0328fb8..166b0328fb8 100644
--- a/Master/texmf-dist/tex/context/sample/third/quevedo-es.tex
+++ b/Master/texmf-dist/tex/context/sample/common/quevedo-es.tex